iOS >= 18.0
Safari >= 18.0
not kaios <= 2.5 # fix floating label issues in Firefox (see https://github.com/postcss/autoprefixer/issues/1533)
+not op_mini all # proxy browser we don't target; only source of redundant -o-object-fit prefixes
sourcesContent: true
}
+// Strip vendor-prefixed declarations Autoprefixer emits that are dead weight for
+// our `.browserslistrc` targets. Each is verified unprefixed-supported across every
+// target, with the unprefixed declaration always emitted alongside; we drop them
+// here because caniuse-lite still flags the feature so Autoprefixer can't be told
+// to skip them via config.
+// - `-webkit-mask-*`: unprefixed since Safari 15.4 (keep `-webkit-mask-box-image`,
+// the `mask-border` translation, which genuinely still needs the prefix).
+// - `-moz-column-gap`: Firefox shipped unprefixed `column-gap` in Firefox 61.
+// - `-webkit-/-moz-transition`: transitions have been unprefixed everywhere for years
+// (only added here because the rule sits inside a `::-webkit-/-moz-` pseudo).
+const removeRedundantPrefixes = {
+ postcssPlugin: 'remove-redundant-prefixes',
+ OnceExit(root) {
+ root.walkDecls(decl => {
+ const { prop } = decl
+ if (
+ (prop.startsWith('-webkit-mask') && !prop.startsWith('-webkit-mask-box-image')) ||
+ prop === '-moz-column-gap' ||
+ prop === '-webkit-transition' ||
+ prop === '-moz-transition'
+ ) {
+ decl.remove()
+ }
+ })
+ }
+}
+
export default context => {
return {
map: context.file.dirname.includes('examples') ? false : mapConfig,
prefix: 'bs-',
ignore: [/^--bs-/, /^--bd-/]
}),
- autoprefixer({ cascade: false })
+ autoprefixer({ cascade: false }),
+ removeRedundantPrefixes
]
}
}
row-gap: 3rem;
}
.column-gap-0 {
- -moz-column-gap: 0;
column-gap: 0;
}
.column-gap-1 {
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
}
.column-gap-2 {
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
}
.column-gap-3 {
- -moz-column-gap: 0.75rem;
column-gap: 0.75rem;
}
.column-gap-4 {
- -moz-column-gap: 1rem;
column-gap: 1rem;
}
.column-gap-5 {
- -moz-column-gap: 1.25rem;
column-gap: 1.25rem;
}
.column-gap-6 {
- -moz-column-gap: 1.5rem;
column-gap: 1.5rem;
}
.column-gap-7 {
- -moz-column-gap: 2rem;
column-gap: 2rem;
}
.column-gap-8 {
- -moz-column-gap: 2.5rem;
column-gap: 2.5rem;
}
.column-gap-9 {
- -moz-column-gap: 3rem;
column-gap: 3rem;
}
@media (width >= 576px) {
row-gap: 3rem;
}
.sm\:column-gap-0 {
- -moz-column-gap: 0;
column-gap: 0;
}
.sm\:column-gap-1 {
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
}
.sm\:column-gap-2 {
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
}
.sm\:column-gap-3 {
- -moz-column-gap: 0.75rem;
column-gap: 0.75rem;
}
.sm\:column-gap-4 {
- -moz-column-gap: 1rem;
column-gap: 1rem;
}
.sm\:column-gap-5 {
- -moz-column-gap: 1.25rem;
column-gap: 1.25rem;
}
.sm\:column-gap-6 {
- -moz-column-gap: 1.5rem;
column-gap: 1.5rem;
}
.sm\:column-gap-7 {
- -moz-column-gap: 2rem;
column-gap: 2rem;
}
.sm\:column-gap-8 {
- -moz-column-gap: 2.5rem;
column-gap: 2.5rem;
}
.sm\:column-gap-9 {
- -moz-column-gap: 3rem;
column-gap: 3rem;
}
}
row-gap: 3rem;
}
.md\:column-gap-0 {
- -moz-column-gap: 0;
column-gap: 0;
}
.md\:column-gap-1 {
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
}
.md\:column-gap-2 {
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
}
.md\:column-gap-3 {
- -moz-column-gap: 0.75rem;
column-gap: 0.75rem;
}
.md\:column-gap-4 {
- -moz-column-gap: 1rem;
column-gap: 1rem;
}
.md\:column-gap-5 {
- -moz-column-gap: 1.25rem;
column-gap: 1.25rem;
}
.md\:column-gap-6 {
- -moz-column-gap: 1.5rem;
column-gap: 1.5rem;
}
.md\:column-gap-7 {
- -moz-column-gap: 2rem;
column-gap: 2rem;
}
.md\:column-gap-8 {
- -moz-column-gap: 2.5rem;
column-gap: 2.5rem;
}
.md\:column-gap-9 {
- -moz-column-gap: 3rem;
column-gap: 3rem;
}
}
row-gap: 3rem;
}
.lg\:column-gap-0 {
- -moz-column-gap: 0;
column-gap: 0;
}
.lg\:column-gap-1 {
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
}
.lg\:column-gap-2 {
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
}
.lg\:column-gap-3 {
- -moz-column-gap: 0.75rem;
column-gap: 0.75rem;
}
.lg\:column-gap-4 {
- -moz-column-gap: 1rem;
column-gap: 1rem;
}
.lg\:column-gap-5 {
- -moz-column-gap: 1.25rem;
column-gap: 1.25rem;
}
.lg\:column-gap-6 {
- -moz-column-gap: 1.5rem;
column-gap: 1.5rem;
}
.lg\:column-gap-7 {
- -moz-column-gap: 2rem;
column-gap: 2rem;
}
.lg\:column-gap-8 {
- -moz-column-gap: 2.5rem;
column-gap: 2.5rem;
}
.lg\:column-gap-9 {
- -moz-column-gap: 3rem;
column-gap: 3rem;
}
}
row-gap: 3rem;
}
.xl\:column-gap-0 {
- -moz-column-gap: 0;
column-gap: 0;
}
.xl\:column-gap-1 {
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
}
.xl\:column-gap-2 {
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
}
.xl\:column-gap-3 {
- -moz-column-gap: 0.75rem;
column-gap: 0.75rem;
}
.xl\:column-gap-4 {
- -moz-column-gap: 1rem;
column-gap: 1rem;
}
.xl\:column-gap-5 {
- -moz-column-gap: 1.25rem;
column-gap: 1.25rem;
}
.xl\:column-gap-6 {
- -moz-column-gap: 1.5rem;
column-gap: 1.5rem;
}
.xl\:column-gap-7 {
- -moz-column-gap: 2rem;
column-gap: 2rem;
}
.xl\:column-gap-8 {
- -moz-column-gap: 2.5rem;
column-gap: 2.5rem;
}
.xl\:column-gap-9 {
- -moz-column-gap: 3rem;
column-gap: 3rem;
}
}
row-gap: 3rem;
}
.\32 xl\:column-gap-0 {
- -moz-column-gap: 0;
column-gap: 0;
}
.\32 xl\:column-gap-1 {
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
}
.\32 xl\:column-gap-2 {
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
}
.\32 xl\:column-gap-3 {
- -moz-column-gap: 0.75rem;
column-gap: 0.75rem;
}
.\32 xl\:column-gap-4 {
- -moz-column-gap: 1rem;
column-gap: 1rem;
}
.\32 xl\:column-gap-5 {
- -moz-column-gap: 1.25rem;
column-gap: 1.25rem;
}
.\32 xl\:column-gap-6 {
- -moz-column-gap: 1.5rem;
column-gap: 1.5rem;
}
.\32 xl\:column-gap-7 {
- -moz-column-gap: 2rem;
column-gap: 2rem;
}
.\32 xl\:column-gap-8 {
- -moz-column-gap: 2.5rem;
column-gap: 2.5rem;
}
.\32 xl\:column-gap-9 {
- -moz-column-gap: 3rem;
column-gap: 3rem;
}
}
-{"version":3,"sources":["../../scss/_banner.scss","../../scss/layout/_containers.scss","bootstrap-grid.css","../../scss/layout/_breakpoints.scss","../../scss/_config.scss","../../scss/layout/_grid.scss","../../scss/mixins/_grid.scss","../../scss/utilities/_api.scss","../../scss/mixins/_utilities.scss","../../scss/bootstrap-grid.scss"],"names":[],"mappings":"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AA;EJ4mCV;EI7mCQ;IACE,wBAAA;EJ+mCV;EIhnCQ;IACE,wBAAA;EJknCV;EInnCQ;IACE,wBAAA;EJqnCV;EItnCQ;IACE,wBAAA;EJwnCV;EIznCQ;IACE,wBAAA;EJ2nCV;EI5nCQ;IACE,wBAAA;EJ8nCV;EI/nCQ;IACE,wBAAA;EJioCV;EIloCQ;IACE,wBAAA;EJooCV;EIroCQ;IACE,yBAAA;EJuoCV;EIxoCQ;IACE,yBAAA;EJ0oCV;EI3oCQ;IACE,yBAAA;EJ6oCV;EItoCQ;IACE,oBAFS;EJ0oCnB;EIzoCQ;IACE,oBAFS;EJ6oCnB;EI5oCQ;IACE,oBAFS;EJgpCnB;EI/oCQ;IACE,oBAFS;EJmpCnB;EIlpCQ;IACE,oBAFS;EJspCnB;EIrpCQ;IACE,oBAFS;EJypCnB;EIxpCQ;IACE,oBAFS;EJ4pCnB;EI3pCQ;IACE,oBAFS;EJ+pCnB;EI9pCQ;IACE,oBAFS;EJkqCnB;EIjqCQ;IACE,qBAFS;EJqqCnB;EIpqCQ;IACE,qBAFS;EJwqCnB;EC5rCE;IGaM;MACE,wBAAA;IJkrCR;IInrCM;MACE,wBAAA;IJqrCR;IItrCM;MACE,wBAAA;IJwrCR;IIzrCM;MACE,wBAAA;IJ2rCR;II5rCM;MACE,wBAAA;IJ8rCR;II/rCM;MACE,wBAAA;IJisCR;IIlsCM;MACE,wBAAA;IJosCR;IIrsCM;MACE,wBAAA;IJusCR;IIxsCM;MACE,wBAAA;IJ0sCR;II3sCM;MACE,yBAAA;IJ6sCR;II9sCM;MACE,yBAAA;IJgtCR;IIjtCM;MACE,yBAAA;IJmtCR;II5sCM;MACE,oBAFS;IJgtCjB;II/sCM;MACE,oBAFS;IJmtCjB;IIltCM;MACE,oBAFS;IJstCjB;IIrtCM;MACE,oBAFS;IJytCjB;IIxtCM;MACE,oBAFS;IJ4tCjB;II3tCM;MACE,oBAFS;IJ+tCjB;II9tCM;MACE,oBAFS;IJkuCjB;IIjuCM;MACE,oBAFS;IJquCjB;IIpuCM;MACE,oBAFS;IJwuCjB;IIvuCM;MACE,qBAFS;IJ2uCjB;II1uCM;MACE,qBAFS;IJ8uCjB;EACF;ECnwCE;IGaM;MACE,wBAAA;IJyvCR;II1vCM;MACE,wBAAA;IJ4vCR;II7vCM;MACE,wBAAA;IJ+vCR;IIhwCM;MACE,wBAAA;IJkwCR;IInwCM;MACE,wBAAA;IJqwCR;IItwCM;MACE,wBAAA;IJwwCR;IIzwCM;MACE,wBAAA;IJ2wCR;II5wCM;MACE,wBAAA;IJ8wCR;II/wCM;MACE,wBAAA;IJixCR;IIlxCM;MACE,yBAAA;IJoxCR;IIrxCM;MACE,yBAAA;IJuxCR;IIxxCM;MACE,yBAAA;IJ0xCR;IInxCM;MACE,oBAFS;IJuxCjB;IItxCM;MACE,oBAFS;IJ0xCjB;IIzxCM;MACE,oBAFS;IJ6xCjB;II5xCM;MACE,oBAFS;IJgyCjB;II/xCM;MACE,oBAFS;IJmyCjB;IIlyCM;MACE,oBAFS;IJsyCjB;IIryCM;MACE,oBAFS;IJyyCjB;IIxyCM;MACE,oBAFS;IJ4yCjB;II3yCM;MACE,oBAFS;IJ+yCjB;II9yCM;MACE,qBAFS;IJkzCjB;IIjzCM;MACE,qBAFS;IJqzCjB;EACF;EC10CE;IGaM;MACE,wBAAA;IJg0CR;IIj0CM;MACE,wBAAA;IJm0CR;IIp0CM;MACE,wBAAA;IJs0CR;IIv0CM;MACE,wBAAA;IJy0CR;II10CM;MACE,wBAAA;IJ40CR;II70CM;MACE,wBAAA;IJ+0CR;IIh1CM;MACE,wBAAA;IJk1CR;IIn1CM;MACE,wBAAA;IJq1CR;IIt1CM;MACE,wBAAA;IJw1CR;IIz1CM;MACE,yBAAA;IJ21CR;II51CM;MACE,yBAAA;IJ81CR;II/1CM;MACE,yBAAA;IJi2CR;II11CM;MACE,oBAFS;IJ81CjB;II71CM;MACE,oBAFS;IJi2CjB;IIh2CM;MACE,oBAFS;IJo2CjB;IIn2CM;MACE,oBAFS;IJu2CjB;IIt2CM;MACE,oBAFS;IJ02CjB;IIz2CM;MACE,oBAFS;IJ62CjB;II52CM;MACE,oBAFS;IJg3CjB;II/2CM;MACE,oBAFS;IJm3CjB;IIl3CM;MACE,oBAFS;IJs3CjB;IIr3CM;MACE,qBAFS;IJy3CjB;IIx3CM;MACE,qBAFS;IJ43CjB;EACF;ECj5CE;IGaM;MACE,wBAAA;IJu4CR;IIx4CM;MACE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pDT;EMhkDE;IA5II,4BAoDG;EN2pDT;EMnkDE;IA5II,2BAoDG;EN8pDT;EMtkDE;IA5II,sBAoDG;ENiqDT;EMzkDE;IA5II,gBAoDG;ENoqDT;EM5kDE;IA5II,sBAoDG;ENuqDT;EM/kDE;IA5II,oBAoDG;EN0qDT;EMllDE;IA5II,kBAoDG;EN6qDT;EMrlDE;IA5II,oBAoDG;ENgrDT;EMxlDE;IA5II,mBAoDG;ENmrDT;EM3lDE;IA5II,kBAoDG;ENsrDT;EM9lDE;IA5II,gBAoDG;ENyrDT;EMjmDE;IA5II,mBAoDG;EN4rDT;EMpmDE;IA5II,oBAoDG;EN+rDT;EMvmDE;IA5II,0BAoDG;ENksDT;EM1mDE;IA5II,qCAoDG;ENqsDT;EM7mDE;IA5II,qCAoDG;ENwsDT;EMhnDE;IA5II,qCAoDG;EN2sDT;EMnnDE;IA5II,qCAoDG;EN8sDT;EMtnDE;IA5II,mBAoDG;ENitDT;EMznDE;IA5II,mBAyDO;EN+sDb;EM5nDE;IA5II,sBAyDO;ENktDb;EM/nDE;IA5II,qBAyDO;ENqtDb;EMloDE;IA5II,SAoDG;EN6tDT;EMroDE;IA5II,QAoDG;ENguDT;EMxoDE;IA5II,QAoDG;ENmuDT;EM3oDE;IA5II,QAoDG;ENsuDT;EM9oDE;IA5II,QAoDG;ENyuDT;EMjpDE;IA5II,QAoDG;EN4uDT;EMppDE;IA5II,QAoDG;EN+uDT;EMvpDE;IA5II,QAoDG;ENkvDT;EM1pDE;IA5II,SAoDG;ENqvDT;EM7pDE;IA5II,eAoDG;ENwvDT;EMhqDE;IA5II,cAoDG;EN2vDT;EMnqDE;IA5II,eAoDG;EN8vDT;EMtqDE;IA5II,YAoDG;ENiwDT;EMzqDE;IA5II,eAoDG;ENowDT;EM5qDE;IA5II,cAoDG;ENuwDT;EM/qDE;IA5II,YAoDG;EN0wDT;EMlrDE;IA5II,cAoDG;EN6wDT;EMrrDE;IA5II,YAoDG;ENgxDT;EMxrDE;IA5II,YAoDG;ENmxDT;EM3rDE;IA5II,gBAoDG;ENsxDT;EM9rDE;IA5II,sBAoDG;ENyxDT;EMjsDE;IA5II,qBAoDG;EN4xDT;EMpsDE;IA5II,sBAoDG;EN+xDT;EMvsDE;IA5II,mBAoDG;ENkyDT;EM1sDE;IA5II,sBAoDG;ENqyDT;EM7sDE;IA5II,qBAoDG;ENwyDT;EMhtDE;IA5II,mBAoDG;EN2yDT;EMntDE;IA5II,qBAoDG;EN8yDT;EMttDE;IA5II,mBAoDG;ENizDT;EMztDE;IA5II,mBAoDG;ENozDT;EM5tDE;IA5II,eAoDG;ENuzDT;EM/tDE;IA5II,qBAoDG;EN0zDT;EMluDE;IA5II,oBAoDG;EN6zDT;EMruDE;IA5II,qBAoDG;ENg0DT;EMxuDE;IA5II,kBAoDG;ENm0DT;EM3uDE;IA5II,qBAoDG;ENs0DT;EM9uDE;IA5II,oBAoDG;ENy0DT;EMjvDE;IA5II,kBAoDG;EN40DT;EMpvDE;IA5II,oBAoDG;EN+0DT;EMvvDE;IA5II,kBAoDG;ENk1DT;EM1vDE;IA5II,kBAoDG;ENq1DT;EM7vDE;IA5II,qBAoDG;ENw1DT;EMhwDE;IA5II,2BAoDG;EN21DT;EMnwDE;IA5II,0BAoDG;EN81DT;EMtwDE;IA5II,2BAoDG;ENi2DT;EMzwDE;IA5II,wBAoDG;ENo2DT;EM5wDE;IA5II,2BAoDG;ENu2DT;EM/wDE;IA5II,0BAoDG;EN02DT;EMlxDE;IA5II,wBAoDG;EN62DT;EMrxDE;IA5II,0BAoDG;ENg3DT;EMxxDE;IA5II,wBAoDG;ENm3DT;EM3xDE;IA5II,wBAoDG;ENs3DT;EM9xDE;IA5II,oBAoDG;ENy3DT;EMjyDE;IA5II,0BAoDG;EN43DT;EMpyDE;IA5II,yBAoDG;EN+3DT;EMvyDE;IA5II,0BAoDG;ENk4DT;EM1yDE;IA5II,uBAoDG;ENq4DT;EM7yDE;IA5II,0BAoDG;ENw4DT;EMhzDE;IA5II,yBAoDG;EN24DT;EMnzDE;IA5II,uBAoDG;EN84DT;EMtzDE;IA5II,yBAoDG;ENi5DT;EMzzDE;IA5II,uBAoDG;ENo5DT;EM5zDE;IA5II,2BAoDG;ENu5DT;EM/zDE;IA5II,0BAoDG;EN05DT;EMl0DE;IA5II,uBAoDG;EN65DT;EMr0DE;IA5II,mBAoDG;ENg6DT;EMx0DE;IA5II,yBAoDG;ENm6DT;EM30DE;IA5II,wBAoDG;ENs6DT;EM90DE;IA5II,yBAoDG;ENy6DT;EMj1DE;IA5II,sBAoDG;EN46DT;EMp1DE;IA5II,yBAoDG;EN+6DT;EMv1DE;IA5II,wBAoDG;ENk7DT;EM11DE;IA5II,sBAoDG;ENq7DT;EM71DE;IA5II,wBAoDG;ENw7DT;EMh2DE;IA5II,sBAoDG;EN27DT;EMn2DE;IA5II,sBAoDG;EN87DT;EMt2DE;IA5II,sBAoDG;ENi8DT;EMz2DE;IA5II,4BAoDG;ENo8DT;EM52DE;IA5II,2BAoDG;ENu8DT;EM/2DE;IA5II,4BAoDG;EN08DT;EMl3DE;IA5II,yBAoDG;EN68DT;EMr3DE;IA5II,4BAoDG;ENg9DT;EMx3DE;IA5II,2BAoDG;ENm9DT;EM33DE;IA5II,yBAoDG;ENs9DT;EM93DE;IA5II,2BAoDG;ENy9DT;EMj4DE;IA5II,yBAoDG;EN49DT;EMp4DE;IA5II,6BAoDG;EN+9DT;EMv4DE;IA5II,4BAoDG;ENk+DT;EM14DE;IA5II,yBAoDG;ENq+DT;EM74DE;IA5II,UAoDG;ENw+DT;EMh5DE;IA5II,gBAoDG;EN2+DT;EMn5DE;IA5II,eAoDG;EN8+DT;EMt5DE;IA5II,gBAoDG;ENi/DT;EMz5DE;IA5II,aAoDG;ENo/DT;EM55DE;IA5II,gBAoDG;ENu/DT;EM/5DE;IA5II,eAoDG;EN0/DT;EMl6DE;IA5II,aAoDG;EN6/DT;EMr6DE;IA5II,eAoDG;ENggET;EMx6DE;IA5II,aAoDG;ENmgET;EM36DE;IA5II,iBAoDG;ENsgET;EM96DE;IA5II,uBAoDG;ENygET;EMj7DE;IA5II,sBAoDG;EN4gET;EMp7DE;IA5II,uBAoDG;EN+gET;EMv7DE;IA5II,oBAoDG;ENkhET;EM17DE;IA5II,uBAoDG;ENqhET;EM77DE;IA5II,sBAoDG;ENwhET;EMh8DE;IA5II,oBAoDG;EN2hET;EMn8DE;IA5II,sBAoDG;EN8hET;EMt8DE;IA5II,oBAoDG;ENiiET;EMz8DE;IA5II,gBAoDG;ENoiET;EM58DE;IA5II,sBAoDG;ENuiET;EM/8DE;IA5II,qBAoDG;EN0iET;EMl9DE;IA5II,sBAoDG;EN6iET;EMr9DE;IA5II,mBAoDG;ENgjET;EMx9DE;IA5II,sBAoDG;ENmjET;EM39DE;IA5II,qBAoDG;ENsjET;EM99DE;IA5II,mBAoDG;ENyjET;EMj+DE;IA5II,qBAoDG;EN4jET;EMp+DE;IA5II,mBAoDG;EN+jET;EMv+DE;IA5II,sBAoDG;ENkkET;EM1+DE;IA5II,4BAoDG;ENqkET;EM7+DE;IA5II,2BAoDG;ENwkET;EMh/DE;IA5II,4BAoDG;EN2kET;EMn/DE;IA5II,yBAoDG;EN8kET;EMt/DE;IA5II,4BAoDG;ENilET;EMz/DE;IA5II,2BAoDG;ENolET;EM5/DE;IA5II,yBAoDG;ENulET;EM//DE;IA5II,2BAoDG;EN0lET;EMlgEE;IA5II,yBAoDG;EN6lET;EMrgEE;IA5II,qBAoDG;ENgmET;EMxgEE;IA5II,2BAoDG;ENmmET;EM3gEE;IA5II,0BAoDG;ENsmET;EM9gEE;IA5II,2BAoDG;ENymET;EMjhEE;IA5II,wBAoDG;EN4mET;EMphEE;IA5II,2BAoDG;EN+mET;EMvhEE;IA5II,0BAoDG;ENknET;EM1hEE;IA5II,wBAoDG;ENqnET;EM7hEE;IA5II,0BAoDG;ENwnET;EMhiEE;IA5II,wBAoDG;EN2nET;EMniEE;IA5II,oBAoDG;EN8nET;EMtiEE;IA5II,0BAoDG;ENioET;EMziEE;IA5II,yBAoDG;ENooET;EM5iEE;IA5II,0BAoDG;ENuoET;EM/iEE;IA5II,uBAoDG;EN0oET;EMljEE;IA5II,0BAoDG;EN6oET;EMrjEE;IA5II,yBAoDG;ENgpET;EMxjEE;IA5II,uBAoDG;ENmpET;EM3jEE;IA5II,yBAoDG;ENspET;EM9jEE;IA5II,uBAoDG;ENypET;EMjkEE;IA5II,uBAoDG;EN4pET;EMpkEE;IA5II,6BAoDG;EN+pET;EMvkEE;IA5II,4BAoDG;ENkqET;EM1kEE;IA5II,6BAoDG;ENqqET;EM7kEE;IA5II,0BAoDG;ENwqET;EMhlEE;IA5II,6BAoDG;EN2qET;EMnlEE;IA5II,4BAoDG;EN8qET;EMtlEE;IA5II,0BAoDG;ENirET;EMzlEE;IA5II,4BAoDG;ENorET;EM5lEE;IA5II,0BAoDG;ENurET;EM/lEE;IA5II,MAoDG;EN0rET;EMlmEE;IA5II,YAoDG;EN6rET;EMrmEE;IA5II,WAoDG;ENgsET;EMxmEE;IA5II,YAoDG;ENmsET;EM3mEE;IA5II,SAoDG;ENssET;EM9mEE;IA5II,YAoDG;ENysET;EMjnEE;IA5II,WAoDG;EN4sET;EMpnEE;IA5II,SAoDG;EN+sET;EMvnEE;IA5II,WAoDG;ENktET;EM1nEE;IA5II,SAoDG;ENqtET;EM7nEE;IA5II,UAoDG;ENwtET;EMhoEE;IA5II,gBAoDG;EN2tET;EMnoEE;IA5II,eAoDG;EN8tET;EMtoEE;IA5II,gBAoDG;ENiuET;EMzoEE;IA5II,aAoDG;ENouET;EM5oEE;IA5II,gBAoDG;ENuuET;EM/oEE;IA5II,eAoDG;EN0uET;EMlpEE;IA5II,aAoDG;EN6uET;EMrpEE;IA5II,eAoDG;ENgvET;EMxpEE;IA5II,aAoDG;ENmvET;EM3pEE;IA5II,kBAoDG;IApDH,aAoDG;ENsvET;EM9pEE;IA5II,wBAoDG;IApDH,mBAoDG;ENyvET;EMjqEE;IA5II,uBAoDG;IApDH,kBAoDG;EN4vET;EMpqEE;IA5II,wBAoDG;IApDH,mBAoDG;EN+vET;EMvqEE;IA5II,qBAoDG;IApDH,gBAoDG;ENkwET;EM1qEE;IA5II,wBAoDG;IApDH,mBAoDG;ENqwET;EM7qEE;IA5II,uBAoDG;IApDH,kBAoDG;ENwwET;EMhrEE;IA5II,qBAoDG;IApDH,gBAoDG;EN2wET;EMnrEE;IA5II,uBAoDG;IApDH,kBAoDG;EN8wET;EMtrEE;IA5II,qBAoDG;IApDH,gBAoDG;ENixET;ECryEE;IK4GA;MA5II,eAyDO;INgxEX;IM7rEA;MA5II,qBAyDO;INmxEX;IMhsEA;MA5II,cAyDO;INsxEX;IMnsEA;MA5II,aAyDO;INyxEX;IMtsEA;MA5II,oBAyDO;IN4xEX;IMzsEA;MA5II,cAyDO;IN+xEX;IM5sEA;MA5II,kBAyDO;INkyEX;IM/sEA;MA5II,mBAyDO;INqyEX;IMltEA;MA5II,aAyDO;INwyEX;IMrtEA;MA5II,oBAyDO;IN2yEX;IMxtEA;MA5II,iBAyDO;IN8yEX;IM3tEA;MA5II,kBAyDO;INizEX;IM9tEA;MA5II,aAyDO;INozEX;IMjuEA;MA5II,cAoDG;IN4zEP;IMpuEA;MA5II,mBAyDO;IN0zEX;IMvuEA;MA5II,sBAyDO;IN6zEX;IM1uEA;MA5II,2BAyDO;INg0EX;IM7uEA;MA5II,8BAyDO;INm0EX;IMhvEA;MA5II,YAoDG;IN20EP;IMnvEA;MA5II,YAoDG;IN80EP;IMtvEA;MA5II,cAoDG;INi1EP;IMzvEA;MA5II,cAoDG;INo1EP;IM5vEA;MA5II,eAyDO;INk1EX;IM/vEA;MA5II,iBAyDO;INq1EX;IMlwEA;MA5II,uBAyDO;INw1EX;IMrwEA;MA5II,2BAoDG;INg2EP;IMxwEA;MA5II,yBAoDG;INm2EP;IM3wEA;MA5II,uBAoDG;INs2EP;IM9wEA;MA5II,8BAoDG;INy2EP;IMjxEA;MA5II,6BAoDG;IN42EP;IMpxEA;MA5II,6BAoDG;IN+2EP;IMvxEA;MA5II,oBAoDG;INk3EP;IM1xEA;MA5II,kBAoDG;INq3EP;IM7xEA;MA5II,qBAoDG;INw3EP;IMhyEA;MA5II,sBAoDG;IN23EP;IMnyEA;MA5II,uBAoDG;IN83EP;IMtyEA;MA5II,qBAoDG;INi4EP;IMzyEA;MA5II,mBAoDG;INo4EP;IM5yEA;MA5II,qBAoDG;INu4EP;IM/yEA;MA5II,oBAoDG;IN04EP;IMlzEA;MA5II,yBAoDG;IN64EP;IMrzEA;MA5II,uBAoDG;INg5EP;IMxzEA;MA5II,qBAoDG;INm5EP;IM3zEA;MA5II,4BAoDG;INs5EP;IM9zEA;MA5II,2BAoDG;INy5EP;IMj0EA;MA5II,sBAoDG;IN45EP;IMp0EA;MA5II,gBAoDG;IN+5EP;IMv0EA;MA5II,sBAoDG;INk6EP;IM10EA;MA5II,oBAoDG;INq6EP;IM70EA;MA5II,kBAoDG;INw6EP;IMh1EA;MA5II,oBAoDG;IN26EP;IMn1EA;MA5II,mBAoDG;IN86EP;IMt1EA;MA5II,kBAoDG;INi7EP;IMz1EA;MA5II,gBAoDG;INo7EP;IM51EA;MA5II,mBAoDG;INu7EP;IM/1EA;MA5II,oBAoDG;IN07EP;IMl2EA;MA5II,0BAoDG;IN67EP;IMr2EA;MA5II,qCAoDG;INg8EP;IMx2EA;MA5II,qCAoDG;INm8EP;IM32EA;MA5II,qCAoDG;INs8EP;IM92EA;MA5II,qCAoDG;INy8EP;IMj3EA;MA5II,mBAoDG;IN48EP;IMp3EA;MA5II,mBAyDO;IN08EX;IMv3EA;MA5II,sBAyDO;IN68EX;IM13EA;MA5II,qBAyDO;INg9EX;IM73EA;MA5II,SAoDG;INw9EP;IMh4EA;MA5II,QAoDG;IN29EP;IMn4EA;MA5II,QAoDG;IN89EP;IMt4EA;MA5II,QAoDG;INi+EP;IMz4EA;MA5II,QAoDG;INo+EP;IM54EA;MA5II,QAoDG;INu+EP;IM/4EA;MA5II,QAoDG;IN0+EP;IMl5EA;MA5II,QAoDG;IN6+EP;IMr5EA;MA5II,SAoDG;INg/EP;IMx5EA;MA5II,eAoDG;INm/EP;IM35EA;MA5II,cAoDG;INs/EP;IM95EA;MA5II,eAoDG;INy/EP;IMj6EA;MA5II,YAoDG;IN4/EP;IMp6EA;MA5II,eAoDG;IN+/EP;IMv6EA;MA5II,cAoDG;INkgFP;IM16EA;MA5II,YAoDG;INqgFP;IM76EA;MA5II,cAoDG;INwgFP;IMh7EA;MA5II,YAoDG;IN2gFP;IMn7EA;MA5II,YAoDG;IN8gFP;IMt7EA;MA5II,gBAoDG;INihFP;IMz7EA;MA5II,sBAoDG;INohFP;IM57EA;MA5II,qBAoDG;INuhFP;IM/7EA;MA5II,sBAoDG;IN0hFP;IMl8EA;MA5II,mBAoDG;IN6hFP;IMr8EA;MA5II,sBAoDG;INgiFP;IMx8EA;MA5II,qBAoDG;INmiFP;IM38EA;MA5II,mBAoDG;INsiFP;IM98EA;MA5II,qBAoDG;INyiFP;IMj9EA;MA5II,mBAoDG;IN4iFP;IMp9EA;MA5II,mBAoDG;IN+iFP;IMv9EA;MA5II,eAoDG;INkjFP;IM19EA;MA5II,qBAoDG;INqjFP;IM79EA;MA5II,oBAoDG;INwjFP;IMh+EA;MA5II,qBAoDG;IN2jFP;IMn+EA;MA5II,kBAoDG;IN8jFP;IMt+EA;MA5II,qBAoDG;INikFP;IMz+EA;MA5II,oBAoDG;INokFP;IM5+EA;MA5II,kBAoDG;INukFP;IM/+EA;MA5II,oBAoDG;IN0kFP;IMl/EA;MA5II,kBAoDG;IN6kFP;IMr/EA;MA5II,kBAoDG;INglFP;IMx/EA;MA5II,qBAoDG;INmlFP;IM3/EA;MA5II,2BAoDG;INslFP;IM9/EA;MA5II,0BAoDG;INylFP;IMjgFA;MA5II,2BAoDG;IN4lFP;IMpgFA;MA5II,wBAoDG;IN+lFP;IMvgFA;MA5II,2BAoDG;INkmFP;IM1gFA;MA5II,0BAoDG;INqmFP;IM7gFA;MA5II,wBAoDG;INwmFP;IMhhFA;MA5II,0BAoDG;IN2mFP;IMnhFA;MA5II,wBAoDG;IN8mFP;IMthFA;MA5II,wBAoDG;INinFP;IMzhFA;MA5II,oBAoDG;INonFP;IM5hFA;MA5II,0BAoDG;INunFP;IM/hFA;MA5II,yBAoDG;IN0nFP;IMliFA;MA5II,0BAoDG;IN6nFP;IMriFA;MA5II,uBAoDG;INgoFP;IMxiFA;MA5II,0BAoDG;INmoFP;IM3iFA;MA5II,yBAoDG;INsoFP;IM9iFA;MA5II,uBAoDG;INyoFP;IMjjFA;MA5II,yBAoDG;IN4oFP;IMpjFA;MA5II,uBAoDG;IN+oFP;IMvjFA;MA5II,2BAoDG;INkpFP;IM1jFA;MA5II,0BAoDG;INqpFP;IM7jFA;MA5II,uBAoDG;INwpFP;IMhkFA;MA5II,mBAoDG;IN2pFP;IMnkFA;MA5II,yBAoDG;IN8pFP;IMtkFA;MA5II,wBAoDG;INiqFP;IMzkFA;MA5II,yBAoDG;INoqFP;IM5kFA;MA5II,sBAoDG;INuqFP;IM/kFA;MA5II,yBAoDG;IN0qFP;IMllFA;MA5II,wBAoDG;IN6qFP;IMrlFA;MA5II,sBAoDG;INgrFP;IMxlFA;MA5II,wBAoDG;INmrFP;IM3lFA;MA5II,sBAoDG;INsrFP;IM9lFA;MA5II,sBAoDG;INyrFP;IMjmFA;MA5II,sBAoDG;IN4rFP;IMpmFA;MA5II,4BAoDG;IN+rFP;IMvmFA;MA5II,2BAoDG;INksFP;IM1mFA;MA5II,4BAoDG;INqsFP;IM7mFA;MA5II,yBAoDG;INwsFP;IMhnFA;MA5II,4BAoDG;IN2sFP;IMnnFA;MA5II,2BAoDG;IN8sFP;IMtnFA;MA5II,yBAoDG;INitFP;IMznFA;MA5II,2BAoDG;INotFP;IM5nFA;MA5II,yBAoDG;INutFP;IM/nFA;MA5II,6BAoDG;IN0tFP;IMloFA;MA5II,4BAoDG;IN6tFP;IMroFA;MA5II,yBAoDG;INguFP;IMxoFA;MA5II,UAoDG;INmuFP;IM3oFA;MA5II,gBAoDG;INsuFP;IM9oFA;MA5II,eAoDG;INyuFP;IMjpFA;MA5II,gBAoDG;IN4uFP;IMppFA;MA5II,aAoDG;IN+uFP;IMvpFA;MA5II,gBAoDG;INkvFP;IM1pFA;MA5II,eAoDG;INqvFP;IM7pFA;MA5II,aAoDG;INwvFP;IMhqFA;MA5II,eAoDG;IN2vFP;IMnqFA;MA5II,aAoDG;IN8vFP;IMtqFA;MA5II,iBAoDG;INiwFP;IMzqFA;MA5II,uBAoDG;INowFP;IM5qFA;MA5II,sBAoDG;INuwFP;IM/qFA;MA5II,uBAoDG;IN0wFP;IMlrFA;MA5II,oBAoDG;IN6wFP;IMrrFA;MA5II,uBAoDG;INgxFP;IMxrFA;MA5II,sBAoDG;INmxFP;IM3rFA;MA5II,oBAoDG;INsxFP;IM9rFA;MA5II,sBAoDG;INyxFP;IMjsFA;MA5II,oBAoDG;IN4xFP;IMpsFA;MA5II,gBAoDG;IN+xFP;IMvsFA;MA5II,sBAoDG;INkyFP;IM1sFA;MA5II,qBAoDG;INqyFP;IM7sFA;MA5II,sBAoDG;INwyFP;IMhtFA;MA5II,mBAoDG;IN2yFP;IMntFA;MA5II,sBAoDG;IN8yFP;IMttFA;MA5II,qBAoDG;INizFP;IMztFA;MA5II,mBAoDG;INozFP;IM5tFA;MA5II,qBAoDG;INuzFP;IM/tFA;MA5II,mBAoDG;IN0zFP;IMluFA;MA5II,sBAoDG;IN6zFP;IMruFA;MA5II,4BAoDG;INg0FP;IMxuFA;MA5II,2BAoDG;INm0FP;IM3uFA;MA5II,4BAoDG;INs0FP;IM9uFA;MA5II,yBAoDG;INy0FP;IMjvFA;MA5II,4BAoDG;IN40FP;IMpvFA;MA5II,2BAoDG;IN+0FP;IMvvFA;MA5II,yBAoDG;INk1FP;IM1vFA;MA5II,2BAoDG;INq1FP;IM7vFA;MA5II,yBAoDG;INw1FP;IMhwFA;MA5II,qBAoDG;IN21FP;IMnwFA;MA5II,2BAoDG;IN81FP;IMtwFA;MA5II,0BAoDG;INi2FP;IMzwFA;MA5II,2BAoDG;INo2FP;IM5wFA;MA5II,wBAoDG;INu2FP;IM/wFA;MA5II,2BAoDG;IN02FP;IMlxFA;MA5II,0BAoDG;IN62FP;IMrxFA;MA5II,wBAoDG;INg3FP;IMxxFA;MA5II,0BAoDG;INm3FP;IM3xFA;MA5II,wBAoDG;INs3FP;IM9xFA;MA5II,oBAoDG;INy3FP;IMjyFA;MA5II,0BAoDG;IN43FP;IMpyFA;MA5II,yBAoDG;IN+3FP;IMvyFA;MA5II,0BAoDG;INk4FP;IM1yFA;MA5II,uBAoDG;INq4FP;IM7yFA;MA5II,0BAoDG;INw4FP;IMhzFA;MA5II,yBAoDG;IN24FP;IMnzFA;MA5II,uBAoDG;IN84FP;IMtzFA;MA5II,yBAoDG;INi5FP;IMzzFA;MA5II,uBAoDG;INo5FP;IM5zFA;MA5II,uBAoDG;INu5FP;IM/zFA;MA5II,6BAoDG;IN05FP;IMl0FA;MA5II,4BAoDG;IN65FP;IMr0FA;MA5II,6BAoDG;INg6FP;IMx0FA;MA5II,0BAoDG;INm6FP;IM30FA;MA5II,6BAoDG;INs6FP;IM90FA;MA5II,4BAoDG;INy6FP;IMj1FA;MA5II,0BAoDG;IN46FP;IMp1FA;MA5II,4BAoDG;IN+6FP;IMv1FA;MA5II,0BAoDG;INk7FP;IM11FA;MA5II,MAoDG;INq7FP;IM71FA;MA5II,YAoDG;INw7FP;IMh2FA;MA5II,WAoDG;IN27FP;IMn2FA;MA5II,YAoDG;IN87FP;IMt2FA;MA5II,SAoDG;INi8FP;IMz2FA;MA5II,YAoDG;INo8FP;IM52FA;MA5II,WAoDG;INu8FP;IM/2FA;MA5II,SAoDG;IN08FP;IMl3FA;MA5II,WAoDG;IN68FP;IMr3FA;MA5II,SAoDG;INg9FP;IMx3FA;MA5II,UAoDG;INm9FP;IM33FA;MA5II,gBAoDG;INs9FP;IM93FA;MA5II,eAoDG;INy9FP;IMj4FA;MA5II,gBAoDG;IN49FP;IMp4FA;MA5II,aAoDG;IN+9FP;IMv4FA;MA5II,gBAoDG;INk+FP;IM14FA;MA5II,eAoDG;INq+FP;IM74FA;MA5II,aAoDG;INw+FP;IMh5FA;MA5II,eAoDG;IN2+FP;IMn5FA;MA5II,aAoDG;IN8+FP;IMt5FA;MA5II,kBAoDG;MApDH,aAoDG;INi/FP;IMz5FA;MA5II,wBAoDG;MApDH,mBAoDG;INo/FP;IM55FA;MA5II,uBAoDG;MApDH,kBAoDG;INu/FP;IM/5FA;MA5II,wBAoDG;MApDH,mBAoDG;IN0/FP;IMl6FA;MA5II,qBAoDG;MApDH,gBAoDG;IN6/FP;IMr6FA;MA5II,wBAoDG;MApDH,mBAoDG;INggGP;IMx6FA;MA5II,uBAoDG;MApDH,kBAoDG;INmgGP;IM36FA;MA5II,qBAoDG;MApDH,gBAoDG;INsgGP;IM96FA;MA5II,uBAoDG;MApDH,kBAoDG;INygGP;IMj7FA;MA5II,qBAoDG;MApDH,gBAoDG;IN4gGP;EACF;ECjiGE;IK4GA;MA5II,eAyDO;IN4gGX;IMz7FA;MA5II,qBAyDO;IN+gGX;IM57FA;MA5II,cAyDO;INkhGX;IM/7FA;MA5II,aAyDO;INqhGX;IMl8FA;MA5II,oBAyDO;INwhGX;IMr8FA;MA5II,cAyDO;IN2hGX;IMx8FA;MA5II,kBAyDO;IN8hGX;IM38FA;MA5II,mBAyDO;INiiGX;IM98FA;MA5II,aAyDO;INoiGX;IMj9FA;MA5II,oBAyDO;INuiGX;IMp9FA;MA5II,iBAyDO;IN0iGX;IMv9FA;MA5II,kBAyDO;IN6iGX;IM19FA;MA5II,aAyDO;INgjGX;IM79FA;MA5II,cAoDG;INwjGP;IMh+FA;MA5II,mBAyDO;INsjGX;IMn+FA;MA5II,sBAyDO;INyjGX;IMt+FA;MA5II,2BAyDO;IN4jGX;IMz+FA;MA5II,8BAyDO;IN+jGX;IM5+FA;MA5II,YAoDG;INukGP;IM/+FA;MA5II,YAoDG;IN0kGP;IMl/FA;MA5II,cAoDG;IN6kGP;IMr/FA;MA5II,cAoDG;INglGP;IMx/FA;MA5II,eAyDO;IN8kGX;IM3/FA;MA5II,iBAyDO;INilGX;IM9/FA;MA5II,uBAyDO;INolGX;IMjgGA;MA5II,2BAoDG;IN4lGP;IMpgGA;MA5II,yBAoDG;IN+lGP;IMvgGA;MA5II,uBAoDG;INkmGP;IM1gGA;MA5II,8BAoDG;INqmGP;IM7gGA;MA5II,6BAoDG;INwmGP;IMhhGA;MA5II,6BAoDG;IN2mGP;IMnhGA;MA5II,oBAoDG;IN8mGP;IMthGA;MA5II,kBAoDG;INinGP;IMzhGA;MA5II,qBAoDG;INonGP;IM5hGA;MA5II,sBAoDG;INunGP;IM/hGA;MA5II,uBAoDG;IN0nGP;IMliGA;MA5II,qBAoDG;IN6nGP;IMriGA;MA5II,mBAoDG;INgoGP;IMxiGA;MA5II,qBAoDG;INmoGP;IM3iGA;MA5II,oBAoDG;INsoGP;IM9iGA;MA5II,yBAoDG;INyoGP;IMjjGA;MA5II,uBAoDG;IN4oGP;IMpjGA;MA5II,qBAoDG;IN+oGP;IMvjGA;MA5II,4BAoDG;INkpGP;IM1jGA;MA5II,2BAoDG;INqpGP;IM7jGA;MA5II,sBAoDG;INwpGP;IMhkGA;MA5II,gBAoDG;IN2pGP;IMnkGA;MA5II,sBAoDG;IN8pGP;IMtkGA;MA5II,oBAoDG;INiqGP;IMzkGA;MA5II,kBAoDG;INoqGP;IM5kGA;MA5II,oBAoDG;INuqGP;IM/kGA;MA5II,mBAoDG;IN0qGP;IMllGA;MA5II,kBAoDG;IN6qGP;IMrlGA;MA5II,gBAoDG;INgrGP;IMxlGA;MA5II,mBAoDG;INmrGP;IM3lGA;MA5II,oBAoDG;INsrGP;IM9lGA;MA5II,0BAoDG;INyrGP;IMjmGA;MA5II,qCAoDG;IN4rGP;IMpmGA;MA5II,qCAoDG;IN+rGP;IMvmGA;MA5II,qCAoDG;INksGP;IM1mGA;MA5II,qCAoDG;INqsGP;IM7mGA;MA5II,mBAoDG;INwsGP;IMhnGA;MA5II,mBAyDO;INssGX;IMnnGA;MA5II,sBAyDO;INysGX;IMtnGA;MA5II,qBAyDO;IN4sGX;IMznGA;MA5II,SAoDG;INotGP;IM5nGA;MA5II,QAoDG;INutGP;IM/nGA;MA5II,QAoDG;IN0tGP;IMloGA;MA5II,QAoDG;IN6tGP;IMroGA;MA5II,QAoDG;INguGP;IMxoGA;MA5II,QAoDG;INmuGP;IM3oGA;MA5II,QAoDG;INsuGP;IM9oGA;MA5II,QAoDG;INyuGP;IMjpGA;MA5II,SAoDG;IN4uGP;IMppGA;MA5II,eAoDG;IN+uGP;IMvpGA;MA5II,cAoDG;INkvGP;IM1pGA;MA5II,eAoDG;INqvGP;IM7pGA;MA5II,YAoDG;INwvGP;IMhqGA;MA5II,eAoDG;IN2vGP;IMnqGA;MA5II,cAoDG;IN8vGP;IMtqGA;MA5II,YAoDG;INiwGP;IMzqGA;MA5II,cAoDG;INowGP;IM5qGA;MA5II,YAoDG;INuwGP;IM/qGA;MA5II,YAoDG;IN0wGP;IMlrGA;MA5II,gBAoDG;IN6wGP;IMrrGA;MA5II,sBAoDG;INgxGP;IMxrGA;MA5II,qBAoDG;INmxGP;IM3rGA;MA5II,sBAoDG;INsxGP;IM9rGA;MA5II,mBAoDG;INyxGP;IMjsGA;MA5II,sBAoDG;IN4xGP;IMpsGA;MA5II,qBAoDG;IN+xGP;IMvsGA;MA5II,mBAoDG;INkyGP;IM1sGA;MA5II,qBAoDG;INqyGP;IM7sGA;MA5II,mBAoDG;INwyGP;IMhtGA;MA5II,mBAoDG;IN2yGP;IMntGA;MA5II,eAoDG;IN8yGP;IMttGA;MA5II,qBAoDG;INizGP;IMztGA;MA5II,oBAoDG;INozGP;IM5tGA;MA5II,qBAoDG;INuzGP;IM/tGA;MA5II,kBAoDG;IN0zGP;IMluGA;MA5II,qBAoDG;IN6zGP;IMruGA;MA5II,oBAoDG;INg0GP;IMxuGA;MA5II,kBAoDG;INm0GP;IM3uGA;MA5II,oBAoDG;INs0GP;IM9uGA;MA5II,kBAoDG;INy0GP;IMjvGA;MA5II,kBAoDG;IN40GP;IMpvGA;MA5II,qBAoDG;IN+0GP;IMvvGA;MA5II,2BAoDG;INk1GP;IM1vGA;MA5II,0BAoDG;INq1GP;IM7vGA;MA5II,2BAoDG;INw1GP;IMhwGA;MA5II,wBAoDG;IN21GP;IMnwGA;MA5II,2BAoDG;IN81GP;IMtwGA;MA5II,0BAoDG;INi2GP;IMzwGA;MA5II,wBAoDG;INo2GP;IM5wGA;MA5II,0BAoDG;INu2GP;IM/wGA;MA5II,wBAoDG;IN02GP;IMlxGA;MA5II,wBAoDG;IN62GP;IMrxGA;MA5II,oBAoDG;INg3GP;IMxxGA;MA5II,0BAoDG;INm3GP;IM3xGA;MA5II,yBAoDG;INs3GP;IM9xGA;MA5II,0BAoDG;INy3GP;IMjyGA;MA5II,uBAoDG;IN43GP;IMpyGA;MA5II,0BAoDG;IN+3GP;IMvyGA;MA5II,yBAoDG;INk4GP;IM1yGA;MA5II,uBAoDG;INq4GP;IM7yGA;MA5II,yBAoDG;INw4GP;IMhzGA;MA5II,uBAoDG;IN24GP;IMnzGA;MA5II,2BAoDG;IN84GP;IMtzGA;MA5II,0BAoDG;INi5GP;IMzzGA;MA5II,uBAoDG;INo5GP;IM5zGA;MA5II,mBAoDG;INu5GP;IM/zGA;MA5II,yBAoDG;IN05GP;IMl0GA;MA5II,wBAoDG;IN65GP;IMr0GA;MA5II,yBAoDG;INg6GP;IMx0GA;MA5II,sBAoDG;INm6GP;IM30GA;MA5II,yBAoDG;INs6GP;IM90GA;MA5II,wBAoDG;INy6GP;IMj1GA;MA5II,sBAoDG;IN46GP;IMp1GA;MA5II,wBAoDG;IN+6GP;IMv1GA;MA5II,sBAoDG;INk7GP;IM11GA;MA5II,sBAoDG;INq7GP;IM71GA;MA5II,sBAoDG;INw7GP;IMh2GA;MA5II,4BAoDG;IN27GP;IMn2GA;MA5II,2BAoDG;IN87GP;IMt2GA;MA5II,4BAoDG;INi8GP;IMz2GA;MA5II,yBAoDG;INo8GP;IM52GA;MA5II,4BAoDG;INu8GP;IM/2GA;MA5II,2BAoDG;IN08GP;IMl3GA;MA5II,yBAoDG;IN68GP;IMr3GA;MA5II,2BAoDG;INg9GP;IMx3GA;MA5II,yBAoDG;INm9GP;IM33GA;MA5II,6BAoDG;INs9GP;IM93GA;MA5II,4BAoDG;INy9GP;IMj4GA;MA5II,yBAoDG;IN49GP;IMp4GA;MA5II,UAoDG;IN+9GP;IMv4GA;MA5II,gBAoDG;INk+GP;IM14GA;MA5II,eAoDG;INq+GP;IM74GA;MA5II,gBAoDG;INw+GP;IMh5GA;MA5II,aAoDG;IN2+GP;IMn5GA;MA5II,gBAoDG;IN8+GP;IMt5GA;MA5II,eAoDG;INi/GP;IMz5GA;MA5II,aAoDG;INo/GP;IM55GA;MA5II,eAoDG;INu/GP;IM/5GA;MA5II,aAoDG;IN0/GP;IMl6GA;MA5II,iBAoDG;IN6/GP;IMr6GA;MA5II,uBAoDG;INggHP;IMx6GA;MA5II,sBAoDG;INmgHP;IM36GA;MA5II,uBAoDG;INsgHP;IM96GA;MA5II,oBAoDG;INygHP;IMj7GA;MA5II,uBAoDG;IN4gHP;IMp7GA;MA5II,sBAoDG;IN+gHP;IMv7GA;MA5II,oBAoDG;INkhHP;IM17GA;MA5II,sBAoDG;INqhHP;IM77GA;MA5II,oBAoDG;INwhHP;IMh8GA;MA5II,gBAoDG;IN2hHP;IMn8GA;MA5II,sBAoDG;IN8hHP;IMt8GA;MA5II,qBAoDG;INiiHP;IMz8GA;MA5II,sBAoDG;INoiHP;IM58GA;MA5II,mBAoDG;INuiHP;IM/8GA;MA5II,sBAoDG;IN0iHP;IMl9GA;MA5II,qBAoDG;IN6iHP;IMr9GA;MA5II,mBAoDG;INgjHP;IMx9GA;MA5II,qBAoDG;INmjHP;IM39GA;MA5II,mBAoDG;INsjHP;IM99GA;MA5II,sBAoDG;INyjHP;IMj+GA;MA5II,4BAoDG;IN4jHP;IMp+GA;MA5II,2BAoDG;IN+jHP;IMv+GA;MA5II,4BAoDG;INkkHP;IM1+GA;MA5II,yBAoDG;INqkHP;IM7+GA;MA5II,4BAoDG;INwkHP;IMh/GA;MA5II,2BAoDG;IN2kHP;IMn/GA;MA5II,yBAoDG;IN8kHP;IMt/GA;MA5II,2BAoDG;INilHP;IMz/GA;MA5II,yBAoDG;INolHP;IM5/GA;MA5II,qBAoDG;INulHP;IM//GA;MA5II,2BAoDG;IN0lHP;IMlgHA;MA5II,0BAoDG;IN6lHP;IMrgHA;MA5II,2BAoDG;INgmHP;IMxgHA;MA5II,wBAoDG;INmmHP;IM3gHA;MA5II,2BAoDG;INsmHP;IM9gHA;MA5II,0BAoDG;INymHP;IMjhHA;MA5II,wBAoDG;IN4mHP;IMphHA;MA5II,0BAoDG;IN+mHP;IMvhHA;MA5II,wBAoDG;INknHP;IM1hHA;MA5II,oBAoDG;INqnHP;IM7hHA;MA5II,0BAoDG;INwnHP;IMhiHA;MA5II,yBAoDG;IN2nHP;IMniHA;MA5II,0BAoDG;IN8nHP;IMtiHA;MA5II,uBAoDG;INioHP;IMziHA;MA5II,0BAoDG;INooHP;IM5iHA;MA5II,yBAoDG;INuoHP;IM/iHA;MA5II,uBAoDG;IN0oHP;IMljHA;MA5II,yBAoDG;IN6oHP;IMrjHA;MA5II,uBAoDG;INgpHP;IMxjHA;MA5II,uBAoDG;INmpHP;IM3jHA;MA5II,6BAoDG;INspHP;IM9jHA;MA5II,4BAoDG;INypHP;IMjkHA;MA5II,6BAoDG;IN4pHP;IMpkHA;MA5II,0BAoDG;IN+pHP;IMvkHA;MA5II,6BAoDG;INkqHP;IM1kHA;MA5II,4BAoDG;INqqHP;IM7kHA;MA5II,0BAoDG;INwqHP;IMhlHA;MA5II,4BAoDG;IN2qHP;IMnlHA;MA5II,0BAoDG;IN8qHP;IMtlHA;MA5II,MAoDG;INirHP;IMzlHA;MA5II,YAoDG;INorHP;IM5lHA;MA5II,WAoDG;INurHP;IM/lHA;MA5II,YAoDG;IN0rHP;IMlmHA;MA5II,SAoDG;IN6rHP;IMrmHA;MA5II,YAoDG;INgsHP;IMxmHA;MA5II,WAoDG;INmsHP;IM3mHA;MA5II,SAoDG;INssHP;IM9mHA;MA5II,WAoDG;INysHP;IMjnHA;MA5II,SAoDG;IN4sHP;IMpnHA;MA5II,UAoDG;IN+sHP;IMvnHA;MA5II,gBAoDG;INktHP;IM1nHA;MA5II,eAoDG;INqtHP;IM7nHA;MA5II,gBAoDG;INwtHP;IMhoHA;MA5II,aAoDG;IN2tHP;IMnoHA;MA5II,gBAoDG;IN8tHP;IMtoHA;MA5II,eAoDG;INiuHP;IMzoHA;MA5II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;IM14HA;MA5II,QAoDG;INq+HP;IM74HA;MA5II,SAoDG;INw+HP;IMh5HA;MA5II,eAoDG;IN2+HP;IMn5HA;MA5II,cAoDG;IN8+HP;IMt5HA;MA5II,eAoDG;INi/HP;IMz5HA;MA5II,YAoDG;INo/HP;IM55HA;MA5II,eAoDG;INu/HP;IM/5HA;MA5II,cAoDG;IN0/HP;IMl6HA;MA5II,YAoDG;IN6/HP;IMr6HA;MA5II,cAoDG;INggIP;IMx6HA;MA5II,YAoDG;INmgIP;IM36HA;MA5II,YAoDG;INsgIP;IM96HA;MA5II,gBAoDG;INygIP;IMj7HA;MA5II,sBAoDG;IN4gIP;IMp7HA;MA5II,qBAoDG;IN+gIP;IMv7HA;MA5II,sBAoDG;INkhIP;IM17HA;MA5II,mBAoDG;INqhIP;IM77HA;MA5II,sBAoDG;INwhIP;IMh8HA;MA5II,qBAoDG;IN2hIP;IMn8HA;MA5II,mBAoDG;IN8hIP;IMt8HA;MA5II,qBAoDG;INiiIP;IMz8HA;MA5II,mBAoDG;INoiIP;IM58HA;MA5II,mBAoDG;INuiIP;IM/8HA;MA5II,eAoDG;IN0iIP;IMl9HA;MA5II,qBAoDG;IN6iIP;IMr9HA;MA5II,oBAoDG;INgjIP;IMx9HA;MA5II,qBAoDG;INmjIP;IM39HA;MA5II,kBAoDG;INsjIP;IM99HA;MA5II,qBAoDG;INyjIP;IMj+HA;MA5II,oBAoDG;IN4jIP;IMp+HA;MA5II,kBAoDG;IN+jIP;IMv+HA;MA5II,oBAoDG;INkkIP;IM1+HA;MA5II,kBAoDG;INqkIP;IM7+HA;MA5II,kBAoDG;INwkIP;IMh/HA;MA5II,qBAoDG;IN2kIP;IMn/HA;MA5II,2BAoDG;IN8kIP;IMt/HA;MA5II,0BAoDG;INilIP;IMz/HA;MA5II,2BAoDG;INolIP;IM5/HA;MA5II,wBAoDG;INulIP;IM//HA;MA5II,2BAoDG;IN0lIP;IMlgIA;MA5II,0BAoDG;IN6lIP;IMrgIA;MA5II,wBAoDG;INgmIP;IMxgIA;MA5II,0BAoDG;INmmIP;IM3gIA;MA5II,wBAoDG;INsmIP;IM9gIA;MA5II,wBAoDG;INymIP;IMjhIA;MA5II,oBAoDG;IN4mIP;IMphIA;MA5II,0BAoDG;IN+mIP;IMvhIA;MA5II,yBAoDG;INknIP;IM1hIA;MA5II,0BAoDG;INqnIP;IM7hIA;MA5II,uBAoDG;INwnIP;IMhiIA;MA5II,0BAoDG;IN2nIP;IMniIA;MA5II,yBAoDG;IN8nIP;IMtiIA;MA5II,uBAoDG;INioIP;IMziIA;MA5II,yBAoDG;INooIP;IM5iIA;MA5II,uBAoDG;INuoIP;IM/iIA;MA5II,2BAoDG;IN0oIP;IMljIA;MA5II,0BAoDG;IN6oIP;IMrjIA;MA5II,uBAoDG;INgpIP;IMxjIA;MA5II,mBAoDG;INmpIP;IM3jIA;MA5II,yBAoDG;INspIP;IM9jIA;MA5II,wBAoDG;INypIP;IMjkIA;MA5II,yBAoDG;IN4pIP;IMpkIA;MA5II,sBAoDG;IN+pIP;IMvkIA;MA5II,yBAoDG;INkqIP;IM1kIA;MA5II,wBAoDG;INqqIP;IM7kIA;MA5II,sBAoDG;INwqIP;IMhlIA;MA5II,wBAoDG;IN2qIP;IMnlIA;MA5II,sBAoDG;IN8qIP;IMtlIA;MA5II,sBAoDG;INirIP;IMzlIA;MA5II,sBAoDG;INorIP;IM5lIA;MA5II,4BAoDG;INurIP;IM/lIA;MA5II,2BAoDG;IN0rIP;IMlmIA;MA5II,4BAoDG;IN6rIP;IMrmIA;MA5II,yBAoDG;INgsIP;IMxmIA;MA5II,4BAoDG;INmsIP;IM3mIA;MA5II,2BAoDG;INssIP;IM9mIA;MA5II,yBAoDG;INysIP;IMjnIA;MA5II,2BAoDG;IN4sIP;IMpnIA;MA5II,yBAoDG;IN+sIP;IMvnIA;MA5II,6BAoDG;INktIP;IM1nIA;MA5II,4BAoDG;INqtIP;IM7nIA;MA5II,yBAoDG;INwtIP;IMhoIA;MA5II,UAoDG;IN2tIP;IMnoIA;MA5II,gBAoDG;IN8tIP;IMtoIA;MA5II,eAoDG;INiuIP;IMzoIA;MA5II,gBAoDG;INouIP;IM5oIA;MA5II,aAoDG;INuuIP;IM/oIA;MA5II,gBAoDG;IN0uIP;IMlpIA;MA5II,eAoDG;IN6uIP;IMrpIA;MA5II,aAoDG;INgvIP;IMxpIA;MA5II,eAoDG;INmvIP;IM3pIA;MA5II,aAoDG;INsvIP;IM9pIA;MA5II,iBAoDG;INyvIP;IMjqIA;MA5II,uBAoDG;IN4vIP;IMpqIA;MA5II,sBAoDG;IN+vIP;IMvqIA;MA5II,uBAoDG;INkwIP;IM1qIA;MA5II,oBAoDG;INqwIP;IM7qIA;MA5II,uBAoDG;INwwIP;IMhrIA;MA5II,sBAoDG;IN2wIP;IMnrIA;MA5II,oBAoDG;IN8wIP;IMtrIA;MA5II,sBAoDG;INixIP;IMzrIA;MA5II,oBAoDG;INoxIP;IM5rIA;MA5II,gBAoDG;INuxIP;IM/rIA;MA5II,sBAoDG;IN0xIP;IMlsIA;MA5II,qBAoDG;IN6xIP;IMrsIA;MA5II,sBAoDG;INgyIP;IMxsIA;MA5II,mBAoDG;INmyIP;IM3sIA;MA5II,sBAoDG;INsyIP;IM9sIA;MA5II,qBAoDG;INyyIP;IMjtIA;MA5II,mBAoDG;IN4yIP;IMptIA;MA5II,qBAoDG;IN+yIP;IMvtIA;MA5II,mBAoDG;INkzIP;IM1tIA;MA5II,sBAoDG;INqzIP;IM7tIA;MA5II,4BAoDG;INwzIP;IMhuIA;MA5II,2BAoDG;IN2zIP;IMnuIA;MA5II,4BAoDG;IN8zIP;IMtuIA;MA5II,yBAoDG;INi0IP;IMzuIA;MA5II,4BAoDG;INo0IP;IM5uIA;MA5II,2BAoDG;INu0IP;IM/uIA;MA5II,yBAoDG;IN00IP;IMlvIA;MA5II,2BAoDG;IN60IP;IMrvIA;MA5II,yBAoDG;INg1IP;IMxvIA;MA5II,qBAoDG;INm1IP;IM3vIA;MA5II,2BAoDG;INs1IP;IM9vIA;MA5II,0BAoDG;INy1IP;IMjwIA;MA5II,2BAoDG;IN41IP;IMpwIA;MA5II,wBAoDG;IN+1IP;IMvwIA;MA5II,2BAoDG;INk2IP;IM1wIA;MA5II,0BAoDG;INq2IP;IM7wIA;MA5II,wBAoDG;INw2IP;IMhxIA;MA5II,0BAoDG;IN22IP;IMnxIA;MA5II,wBAoDG;IN82IP;IMtxIA;MA5II,oBAoDG;INi3IP;IMzxIA;MA5II,0BAoDG;INo3IP;I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qnJP;IM7hJA;MA5II,mBAoDG;INwnJP;IMhiJA;MA5II,qBAoDG;IN2nJP;IMniJA;MA5II,oBAoDG;IN8nJP;IMtiJA;MA5II,yBAoDG;INioJP;IMziJA;MA5II,uBAoDG;INooJP;IM5iJA;MA5II,qBAoDG;INuoJP;IM/iJA;MA5II,4BAoDG;IN0oJP;IMljJA;MA5II,2BAoDG;IN6oJP;IMrjJA;MA5II,sBAoDG;INgpJP;IMxjJA;MA5II,gBAoDG;INmpJP;IM3jJA;MA5II,sBAoDG;INspJP;IM9jJA;MA5II,oBAoDG;INypJP;IMjkJA;MA5II,kBAoDG;IN4pJP;IMpkJA;MA5II,oBAoDG;IN+pJP;IMvkJA;MA5II,mBAoDG;INkqJP;IM1kJA;MA5II,kBAoDG;INqqJP;IM7kJA;MA5II,gBAoDG;INwqJP;IMhlJA;MA5II,mBAoDG;IN2qJP;IMnlJA;MA5II,oBAoDG;IN8qJP;IMtlJA;MA5II,0BAoDG;INirJP;IMzlJA;MA5II,qCAoDG;INorJP;IM5lJA;MA5II,qCAoDG;INurJP;IM/lJA;MA5II,qCAoDG;IN0rJP;IMlmJA;MA5II,qCAoDG;IN6rJP;IMrmJA;MA5II,mBAoDG;INgsJP;IMxmJA;MA5II,mBAyDO;IN8rJX;IM3mJA;MA5II,sBAyDO;INisJX;IM9mJA;MA5II,qBAyDO;INosJX;IMjnJA;MA5II,SAoDG;IN4sJP;IMpnJA;MA5II,QAoDG;IN+sJP;IMvnJA;MA5II,QAoDG;INktJP;IM1nJA;MA5II,QAoDG;INqtJP;IM7nJA;MA5II,QAoDG;INwtJP;IMhoJA;MA5II,QAoDG;IN2tJP;IMnoJA;MA5II,QAoDG;IN8tJP;IMtoJA;MA5II,QAoDG;INiuJP;IMzoJA;MA5II,SAoDG;INouJP;IM5oJA;MA5II,eAoDG;INuuJP;IM/oJA;MA5II,cAoDG;IN0uJP;IMlpJA;MA5II,eAoDG;IN6uJP;IMrpJA;MA5II,YAoDG;INgvJP;IMxpJA;MA5II,eAoDG;INmvJP;IM3pJA;MA5II,cAoDG;INsvJP;IM9pJA;MA5II,YAoDG;INyvJP;IMjqJA;MA5II,cAoDG;IN4vJP;IMpqJA;MA5II,YAoDG;IN+vJP;IMvqJA;MA5II,YAoDG;INkwJP;IM1qJA;MA5II,gBAoDG;INqwJP;IM7qJA;MA5II,sBAoDG;INwwJP;IMhrJA;MA5II,qBAoDG;IN2wJP;IMnrJA;MA5II,sBAoDG;IN8wJP;IMtrJA;MA5II,mBAoDG;INixJP;IMzrJA;MA5II,sBAoDG;INoxJP;IM5rJA;MA5II,qBAoDG;INuxJP;IM/rJA;MA5II,mBAoDG;IN0xJP;IMlsJA;MA5II,qBAoDG;IN6xJP;IMrsJA;MA5II,mBAoDG;INgyJP;IMxsJA;MA5II,mBAoDG;INmyJP;IM3sJA;MA5II,eAoDG;INsyJP;IM9sJA;MA5II,qBAoDG;INyyJP;IMjtJA;MA5II,oBAoDG;IN4yJP;IMptJA;MA5II,qBAoDG;IN+yJP;IMvtJA;MA5II,kBAoDG;INkzJP;IM1tJA;MA5II,qBAoDG;INqzJP;IM7tJA;MA5II,oBAoDG;INwzJP;IMhuJA;MA5II,kBAoDG;IN2zJP;IMnuJA;MA5II,oBAoDG;IN8zJP;IMtuJA;MA5II,kBAoDG;INi0JP;IMzuJA;MA5II,kBAoDG;INo0JP;IM5uJA;MA5II,qBAoDG;INu0JP;IM/uJA;MA5II,2BAoDG;IN00JP;IMlvJA;MA5II,0BAoDG;IN60JP;IMrvJA;MA5II,2BAoDG;INg1JP;IMxvJA;MA5II,wBAoDG;INm1JP;IM3vJA;MA5II,2BAoDG;INs1JP;IM9vJA;MA5II,0BAoDG;INy1JP;IMjwJA;MA5II,wBAoDG;IN41JP;IMpwJA;MA5II,0BAoDG;IN+1JP;IMvwJA;MA5II,wBAoDG;INk2JP;IM1wJA;MA5II,wBAoDG;INq2JP;IM7wJA;MA5II,oBAoDG;INw2JP;IMhxJA;MA5II,0BAoDG;IN22JP;IMnxJA;MA5II,yBAoDG;IN82JP;IMtxJA;MA5II,0BAoDG;INi3JP;IMzxJA;MA5II,uBAoDG;INo3JP;IM5xJA;MA5II,0BAoDG;INu3JP;IM/xJA;MA5II,yBAoDG;IN03JP;IMlyJA;MA5II,uBAoDG;IN63JP;IMryJA;MA5II,yBAoDG;INg4JP;IMxyJA;MA5II,uBAoDG;INm4JP;IM3yJA;MA5II,2BAoDG;INs4JP;IM9yJA;MA5II,0BAoDG;INy4JP;IMjzJA;MA5II,uBAoDG;IN44JP;IMpzJA;MA5II,mBAoDG;IN+4JP;IMvzJA;MA5II,yBAoDG;INk5JP;IM1zJA;MA5II,wBAoDG;INq5JP;IM7zJA;MA5II,yBAoDG;INw5JP;IMh0JA;MA5II,sBAoDG;IN25JP;IMn0JA;MA5II,yBAoDG;IN85JP;IMt0JA;MA5II,wBAoDG;INi6JP;IMz0JA;MA5II,sBAoDG;INo6JP;IM50JA;MA5II,wBAoDG;INu6JP;IM/0JA;MA5II,sBAoDG;IN06JP;IMl1JA;MA5II,sBAoDG;IN66JP;IMr1JA;MA5II,sBAoDG;INg7JP;IMx1JA;MA5II,4BAoDG;INm7JP;IM31JA;MA5II,2BAoDG;INs7JP;IM91JA;MA5II,4BAoDG;INy7JP;IMj2JA;MA5II,yBAoDG;IN47JP;IMp2JA;MA5II,4BAoDG;IN+7JP;IMv2JA;MA5II,2BAoDG;INk8JP;IM12JA;MA5II,yBAoDG;INq8JP;IM72JA;MA5II,2BAoDG;INw8JP;IMh3JA;MA5II,yBAoDG;IN28JP;IMn3JA;MA5II,6BAoDG;IN88JP;IMt3JA;MA5II,4BAoDG;INi9JP;IMz3JA;MA5II,yBAoDG;INo9JP;IM53JA;MA5II,UAoDG;INu9JP;IM/3JA;MA5II,gBAoDG;IN09JP;IMl4JA;MA5II,eAoDG;IN69JP;IMr4JA;MA5II,gBAoDG;INg+JP;IMx4JA;MA5II,aAoDG;INm+JP;IM34JA;MA5II,gBAoDG;INs+JP;IM94JA;MA5II,eAoDG;INy+JP;IMj5JA;MA5II,aAoDG;IN4+JP;IMp5JA;MA5II,eAoDG;IN++JP;IMv5JA;MA5II,aAoDG;INk/JP;IM15JA;MA5II,iBAoDG;INq/JP;IM75JA;MA5II,uBAoDG;INw/JP;IMh6JA;MA5II,sBAoDG;IN2/JP;IMn6JA;MA5II,uBAoDG;IN8/JP;IMt6JA;MA5II,oBAoDG;INigKP;IMz6JA;MA5II,uBAoDG;INogKP;IM56JA;MA5II,sBAoDG;INugKP;IM/6JA;MA5II,oBAoDG;IN0gKP;IMl7JA;MA5II,sBAoDG;IN6gKP;IMr7JA;MA5II,oBAoDG;INghKP;IMx7JA;MA5II,gBAoDG;INmhKP;IM37JA;MA5II,sBAoDG;INshKP;IM97JA;MA5II,qBAoDG;INyhKP;IMj8JA;MA5II,sBAoDG;IN4hKP;IMp8JA;MA5II,mBAoDG;IN+hKP;IMv8JA;MA5II,sBAoDG;INkiKP;IM18JA;MA5II,qBAoDG;INqiKP;IM78JA;MA5II,mBAoDG;INwiKP;IMh9JA;MA5II,qBAoDG;IN2iKP;IMn9JA;MA5II,mBAoDG;IN8iKP;IMt9JA;MA5II,sBAoDG;INijKP;IMz9JA;MA5II,4BAoDG;INojKP;IM59JA;MA5II,2BAoDG;INujKP;IM/9JA;MA5II,4BAoDG;IN0jKP;IMl+JA;MA5II,yBAoDG;IN6jKP;IMr+JA;MA5II,4BAoDG;INgkKP;IMx+JA;MA5II,2BAoDG;INmkKP;IM3+JA;MA5II,yBAoDG;INskKP;IM9+JA;MA5II,2BAoDG;INykKP;IMj/JA;MA5II,yBAoDG;IN4kKP;IMp/JA;MA5II,qBAoDG;IN+kKP;IMv/JA;MA5II,2BAoDG;INklKP;IM1/JA;MA5II,0BAoDG;INqlKP;IM7/JA;MA5II,2BAoDG;INwlKP;IMhgKA;MA5II,wBAoDG;IN2lKP;IMngKA;MA5II,2BAoDG;IN8lKP;IMtgKA;MA5II,0BAoDG;INimKP;IMzgKA;MA5II,wBAoDG;INomKP;IM5gKA;MA5II,0BAoDG;INumKP;IM/gKA;MA5II,wBAoDG;IN0mKP;IMlhKA;MA5II,oBAoDG;IN6mKP;IMrhKA;MA5II,0BAoDG;INgnKP;IMxhKA;MA5II,yBAoDG;INmnKP;IM3hKA;MA5II,0BAoDG;INsnKP;IM9hKA;MA5II,uBAoDG;INynKP;IMjiKA;MA5II,0BAoDG;IN4nKP;IMpiKA;MA5II,yBAoDG;IN+nKP;IMviKA;MA5II,uBAoDG;INkoKP;IM1iKA;MA5II,yBAoDG;INqoKP;IM7iKA;MA5II,uBAoDG;INwoKP;IMhjKA;MA5II,uBAoDG;IN2oKP;IMnjKA;MA5II,6BAoDG;IN8oKP;IMtjKA;MA5II,4BAoDG;INipKP;IMzjKA;MA5II,6BAoDG;INopKP;IM5jKA;MA5II,0BAoDG;INupKP;IM/jKA;MA5II,6BAoDG;IN0pKP;IMlkKA;MA5II,4BAoDG;IN6pKP;IMrkKA;MA5II,0BAoDG;INgqKP;IMxkKA;MA5II,4BAoDG;INmqKP;IM3kKA;MA5II,0BAoDG;INsqKP;IM9kKA;MA5II,MAoDG;INyqKP;IMjlKA;MA5II,YAoDG;IN4qKP;IMplKA;MA5II,WAoDG;IN+qKP;IMvlKA;MA5II,YAoDG;INkrKP;IM1lKA;MA5II,SAoDG;INqrKP;IM7lKA;MA5II,YAoDG;INwrKP;IMhmKA;MA5II,WAoDG;IN2rKP;IMnmKA;MA5II,SAoDG;IN8rKP;IMtmKA;MA5II,WAoDG;INisKP;IMzmKA;MA5II,SAoDG;INosKP;IM5mKA;MA5II,UAoDG;INusKP;IM/mKA;MA5II,gBAoDG;IN0sKP;IMlnKA;MA5II,eAoDG;IN6sKP;IMrnKA;MA5II,gBAoDG;INgtKP;IMxnKA;MA5II,aAoDG;INmtKP;IM3nKA;MA5II,gBAoDG;INstKP;IM9nKA;MA5II,eAoDG;INytKP;IMjoKA;MA5II,aAoDG;IN4tKP;IMpoKA;MA5II,eAoDG;IN+tKP;IMvoKA;MA5II,aAoDG;INkuKP;IM1oKA;MA5II,kBAoDG;MApDH,aAoDG;INquKP;IM7oKA;MA5II,wBAoDG;MApDH,mBAoDG;INwuKP;IMhpKA;MA5II,uBAoDG;MApDH,kBAoDG;IN2uKP;IMnpKA;MA5II,wBAoDG;MApDH,mBAoDG;IN8uKP;IMtpKA;MA5II,qBAoDG;MApDH,gBAoDG;INivKP;IMzpKA;MA5II,wBAoDG;MApDH,mBAoDG;INovKP;IM5pKA;MA5II,uBAoDG;MApDH,kBAoDG;INuvKP;IM/pKA;MA5II,qBAoDG;MApDH,gBAoDG;IN0vKP;IMlqKA;MA5II,uBAoDG;MApDH,kBAoDG;IN6vKP;IMrqKA;MA5II,qBAoDG;MApDH,gBAoDG;INgwKP;EACF;ECrxKE;IK4GA;MA5II,eAyDO;INgwKX;IM7qKA;MA5II,qBAyDO;INmwKX;IMhrKA;MA5II,cAyDO;INswKX;IMnrKA;MA5II,aAyDO;INywKX;IMtrKA;MA5II,oBAyDO;IN4wKX;IMzrKA;MA5II,cAyDO;IN+wKX;IM5rKA;MA5II,kBAyDO;INkxKX;IM/rKA;MA5II,mBAyDO;INqxKX;IMlsKA;MA5II,aAyDO;INwxKX;IMrsKA;MA5II,oBAyDO;IN2xKX;IMxsKA;MA5II,iBAyDO;IN8xKX;IM3sKA;MA5II,kBAyDO;INiyKX;IM9sKA;MA5II,aAyDO;INoyKX;IMjtKA;MA5II,cAoDG;IN4yKP;IMptKA;MA5II,mBAyDO;IN0yKX;IMvtKA;MA5II,sBAyDO;IN6yKX;IM1tKA;MA5II,2BAyDO;INgzKX;IM7tKA;MA5II,8BAyDO;INmzKX;IMhuKA;MA5II,YAoDG;IN2zKP;IMnuKA;MA5II,YAoDG;IN8zKP;IMtuKA;MA5II,cAoDG;INi0KP;IMzuKA;MA5II,cAoDG;INo0KP;IM5uKA;MA5II,eAyDO;INk0KX;IM/uKA;MA5II,iBAyDO;INq0KX;IMlvKA;MA5II,uBAyDO;INw0KX;IMrvKA;MA5II,2BAoDG;INg1KP;IMxvKA;MA5II,yBAoDG;INm1KP;IM3vKA;MA5II,uBAoDG;INs1KP;IM9vKA;MA5II,8BAoDG;INy1KP;IMjwKA;MA5II,6BAoDG;IN41KP;IMpwKA;MA5II,6BAoDG;IN+1KP;IMvwKA;MA5II,oBAoDG;INk2KP;IM1wKA;MA5II,kBAoDG;INq2KP;IM7wKA;MA5II,qBAoDG;INw2KP;IMhxKA;MA5II,sBAoDG;IN22KP;IMnxKA;MA5II,uBAoDG;IN82KP;IMtxKA;MA5II,qBAoDG;INi3KP;IMzxKA;MA5II,mBAoDG;INo3KP;IM5xKA;MA5II,qBAoDG;INu3KP;IM/xKA;MA5II,oBAoDG;IN03KP;IMlyKA;MA5II,yBAoDG;IN63KP;IMryKA;MA5II,uBAoDG;INg4KP;IMxyKA;MA5II,qBAoDG;INm4KP;IM3yKA;MA5II,4BAoDG;INs4KP;IM9yKA;MA5II,2BAoDG;INy4KP;IMjzKA;MA5II,sBAoDG;IN44KP;IMpzKA;MA5II,gBAoDG;IN+4KP;IMvzKA;MA5II,sBAoDG;INk5KP;IM1zKA;MA5II,oBAoDG;INq5KP;IM7zKA;MA5II,kBAoDG;INw5KP;IMh0KA;MA5II,oBAoDG;IN25KP;IMn0KA;MA5II,mBAoDG;IN85KP;IMt0KA;MA5II,kBAoDG;INi6KP;IMz0KA;MA5II,gBAoDG;INo6KP;IM50KA;MA5II,mBAoDG;INu6KP;IM/0KA;MA5II,oBAoDG;IN06KP;IMl1KA;MA5II,0BAoDG;IN66KP;IMr1KA;MA5II,qCAoDG;INg7KP;IMx1KA;MA5II,qCAoDG;INm7KP;IM31KA;MA5II,qCAoDG;INs7KP;IM91KA;MA5II,qCAoDG;INy7KP;IMj2KA;MA5II,mBAoDG;IN47KP;IMp2KA;MA5II,mBAyDO;IN07KX;IMv2KA;MA5II,sBAyDO;IN67KX;IM12KA;MA5II,qBAyDO;INg8KX;IM72KA;MA5II,SAoDG;INw8KP;IMh3KA;MA5II,QAoDG;IN28KP;IMn3KA;MA5II,QAoDG;IN88KP;IMt3KA;MA5II,QAoDG;INi9KP;IMz3KA;MA5II,QAoDG;INo9KP;IM53KA;MA5II,QAoDG;INu9KP;IM/3KA;MA5II,QAoDG;IN09KP;IMl4KA;MA5II,QAoDG;IN69KP;IMr4KA;MA5II,SAoDG;INg+KP;IMx4KA;MA5II,eAoDG;INm+KP;IM34KA;MA5II,cAoDG;INs+KP;IM94KA;MA5II,eAoDG;INy+KP;IMj5KA;MA5II,YAoDG;IN4+KP;IMp5KA;MA5II,eAoDG;IN++KP;IMv5KA;MA5II,cAoDG;INk/KP;IM15KA;MA5II,YAoDG;INq/KP;IM75KA;MA5II,cAoDG;INw/KP;IMh6KA;MA5II,YAoDG;IN2/KP;IMn6KA;MA5II,YAoDG;IN8/KP;IMt6KA;MA5II,gBAoDG;INigLP;IMz6KA;MA5II,sBAoDG;INogLP;IM56KA;MA5II,qBAoDG;INugLP;IM/6KA;MA5II,sBAoDG;IN0gLP;IMl7KA;MA5II,mBAoDG;IN6gLP;IMr7KA;MA5II,sBAoDG;INghLP;IMx7KA;MA5II,qBAoDG;INmhLP;IM37KA;MA5II,mBAoDG;INshLP;IM97KA;MA5II,qBAoDG;INyhLP;IMj8KA;MA5II,mBAoDG;IN4hLP;IMp8KA;MA5II,mBAoDG;IN+hLP;IMv8KA;MA5II,eAoDG;INkiLP;IM18KA;MA5II,qBAoDG;INqiLP;IM78KA;MA5II,oBAoDG;INwiLP;IMh9KA;MA5II,qBAoDG;IN2iLP;IMn9KA;MA5II,kBAoDG;IN8iLP;IMt9KA;MA5II,qBAoDG;INijLP;IMz9KA;MA5II,oBAoDG;INojLP;IM59KA;MA5II,kBAoDG;INujLP;IM/9KA;MA5II,oBAoDG;IN0jLP;IMl+KA;MA5II,kBAoDG;IN6jLP;IMr+KA;MA5II,kBAoDG;INgkLP;IMx+KA;MA5II,qBAoDG;INmkLP;IM3+KA;MA5II,2BAoDG;INskLP;IM9+KA;MA5II,0BAoDG;INykLP;IMj/KA;MA5II,2BAoDG;IN4kLP;IMp/KA;MA5II,wBAoDG;IN+kLP;IMv/KA;MA5II,2BAoDG;INklLP;IM1/KA;MA5II,0BAoDG;INqlLP;IM7/KA;MA5II,wBAoDG;INwlLP;IMhgLA;MA5II,0BAoDG;IN2lLP;IMngLA;MA5II,wBAoDG;IN8lLP;IMtgLA;MA5II,wBAoDG;INimLP;IMzgLA;MA5II,oBAoDG;INomLP;IM5gLA;MA5II,0BAoDG;INumLP;IM/gLA;MA5II,yBAoDG;IN0mLP;IMlhLA;MA5II,0BAoDG;IN6mLP;IMrhLA;MA5II,uBAoDG;INgnLP;IMxhLA;MA5II,0BAoDG;INmnLP;IM3hLA;MA5II,yBAoDG;INsnLP;IM9hLA;MA5II,uBAoDG;INynLP;IMjiLA;MA5II,yBAoDG;IN4nLP;IMpiLA;MA5II,uBAoDG;IN+nLP;IMviLA;MA5II,2BAoDG;INkoLP;IM1iLA;MA5II,0BAoDG;INqoLP;IM7iLA;MA5II,uBAoDG;INwoLP;IMhjLA;MA5II,mBAoDG;IN2oLP;IMnjLA;MA5II,yBAoDG;IN8oLP;IMtjLA;MA5II,wBAoDG;INipLP;IMzjLA;MA5II,yBAoDG;INopLP;IM5jLA;MA5II,sBAoDG;INupLP;IM/jLA;MA5II,yBAoDG;IN0pLP;IMlkLA;MA5II,wBAoDG;IN6pLP;IMrkLA;MA5II,sBAoDG;INgqLP;IMxkLA;MA5II,wBAoDG;INmqLP;IM3kLA;MA5II,sBAoDG;INsqLP;IM9kLA;MA5II,sBAoDG;INyqLP;IMjlLA;MA5II,sBAoDG;IN4qLP;IMplLA;MA5II,4BAoDG;IN+qLP;IMvlLA;MA5II,2BAoDG;INkrLP;IM1lLA;MA5II,4BAoDG;INqrLP;IM7lLA;MA5II,yBAoDG;INwrLP;IMhmLA;MA5II,4BAoDG;IN2rLP;IMnmLA;MA5II,2BAoDG;IN8rLP;IMtmLA;MA5II,yBAoDG;INisLP;IMzmLA;MA5II,2BAoDG;INosLP;IM5mLA;MA5II,yBAoDG;INusLP;IM/mLA;MA5II,6BAoDG;IN0sLP;IMlnLA;MA5II,4BAoDG;IN6sLP;IMrnLA;MA5II,yBAoDG;INgtLP;IMxnLA;MA5II,UAoDG;INmtLP;IM3nLA;MA5II,gBAoDG;INstLP;IM9nLA;MA5II,eAoDG;INytLP;IMjoLA;MA5II,gBAoDG;IN4tLP;IMpoLA;MA5II,aAoDG;IN+tLP;IMvoLA;MA5II,gBAoDG;INkuLP;IM1oLA;MA5II,eAoDG;INquLP;IM7oLA;MA5II,aAoDG;INwuLP;IMhpLA;MA5II,eAoDG;IN2uLP;IMnpLA;MA5II,aAoDG;IN8uLP;IMtpLA;MA5II,iBAoDG;INivLP;IMzpLA;MA5II,uBAoDG;INovLP;IM5pLA;MA5II,sBAoDG;INuvLP;IM/pLA;MA5II,uBAoDG;IN0vLP;IMlqLA;MA5II,oBAoDG;IN6vLP;IMrqLA;MA5II,uBAoDG;INgwLP;IMxqLA;MA5II,sBAoDG;INmwLP;IM3qLA;MA5II,oBAoDG;INswLP;IM9qLA;MA5II,sBAoDG;INywLP;IMjrLA;MA5II,oBAoDG;IN4wLP;IMprLA;MA5II,gBAoDG;IN+wLP;IMvrLA;MA5II,sBAoDG;INkxLP;IM1rLA;MA5II,qBAoDG;INqxLP;IM7rLA;MA5II,sBAoDG;INwxLP;IMhsLA;MA5II,mBAoDG;IN2xLP;IMnsLA;MA5II,sBAoDG;IN8xLP;IMtsLA;MA5II,qBAoDG;INiyLP;IMzsLA;MA5II,mBAoDG;INoyLP;IM5sLA;MA5II,qBAoDG;INuyLP;IM/sLA;MA5II,mBAoDG;IN0yLP;IMltLA;MA5II,sBAoDG;IN6yLP;IMrtLA;MA5II,4BAoDG;INgzLP;IMxtLA;MA5II,2BAoDG;INmzLP;IM3tLA;MA5II,4BAoDG;INszLP;IM9tLA;MA5II,yBAoDG;INyzLP;IMjuLA;MA5II,4BAoDG;IN4zLP;IMpuLA;MA5II,2BAoDG;IN+zLP;IMvuLA;MA5II,yBAoDG;INk0LP;IM1uLA;MA5II,2BAoDG;INq0LP;IM7uLA;MA5II,yBAoDG;INw0LP;IMhvLA;MA5II,qBAoDG;IN20LP;IMnvLA;MA5II,2BAoDG;IN80LP;IMtvLA;MA5II,0BAoDG;INi1LP;IMzvLA;MA5II,2BAoDG;INo1LP;IM5vLA;MA5II,wBAoDG;INu1LP;IM/vLA;MA5II,2BAoDG;IN01LP;IMlwLA;MA5II,0BAoDG;IN61LP;IMrwLA;MA5II,wBAoDG;INg2LP;IMxwLA;MA5II,0BAoDG;INm2LP;IM3wLA;MA5II,wBAoDG;INs2LP;IM9wLA;MA5II,oBAoDG;INy2LP;IMjxLA;MA5II,0BAoDG;IN42LP;IMpxLA;MA5II,yBAoDG;IN+2LP;IMvxLA;MA5II,0BAoDG;INk3LP;IM1xLA;MA5II,uBAoDG;INq3LP;IM7xLA;MA5II,0BAoDG;INw3LP;IMhyLA;MA5II,yBAoDG;IN23LP;IMnyLA;MA5II,uBAoDG;IN83LP;IMtyLA;MA5II,yBAoDG;INi4LP;IMzyLA;MA5II,uBAoDG;INo4LP;IM5yLA;MA5II,uBAoDG;INu4LP;IM/yLA;MA5II,6BAoDG;IN04LP;IMlzLA;MA5II,4BAoDG;IN64LP;IMrzLA;MA5II,6BAoDG;INg5LP;IMxzLA;MA5II,0BAoDG;INm5LP;IM3zLA;MA5II,6BAoDG;INs5LP;IM9zLA;MA5II,4BAoDG;INy5LP;IMj0LA;MA5II,0BAoDG;IN45LP;IMp0LA;MA5II,4BAoDG;IN+5LP;IMv0LA;MA5II,0BAoDG;INk6LP;IM10LA;MA5II,MAoDG;INq6LP;IM70LA;MA5II,YAoDG;INw6LP;IMh1LA;MA5II,WAoDG;IN26LP;IMn1LA;MA5II,YAoDG;IN86LP;IMt1LA;MA5II,SAoDG;INi7LP;IMz1LA;MA5II,YAoDG;INo7LP;IM51LA;MA5II,WAoDG;INu7LP;IM/1LA;MA5II,SAoDG;IN07LP;IMl2LA;MA5II,WAoDG;IN67LP;IMr2LA;MA5II,SAoDG;INg8LP;IMx2LA;MA5II,UAoDG;INm8LP;IM32LA;MA5II,gBAoDG;INs8LP;IM92LA;MA5II,eAoDG;INy8LP;IMj3LA;MA5II,gBAoDG;IN48LP;IMp3LA;MA5II,aAoDG;IN+8LP;IMv3LA;MA5II,gBAoDG;INk9LP;IM13LA;MA5II,eAoDG;INq9LP;IM73LA;MA5II,aAoDG;INw9LP;IMh4LA;MA5II,eAoDG;IN29LP;IMn4LA;MA5II,aAoDG;IN89LP;IMt4LA;MA5II,kBAoDG;MApDH,aAoDG;INi+LP;IMz4LA;MA5II,wBAoDG;MApDH,mBAoDG;INo+LP;IM54LA;MA5II,uBAoDG;MApDH,kBAoDG;INu+LP;IM/4LA;MA5II,wBAoDG;MApDH,mBAoDG;IN0+LP;IMl5LA;MA5II,qBAoDG;MApDH,gBAoDG;IN6+LP;IMr5LA;MA5II,wBAoDG;MApDH,mBAoDG;INg/LP;IMx5LA;MA5II,uBAoDG;MApDH,kBAoDG;INm/LP;IM35LA;MA5II,qBAoDG;MApDH,gBAoDG;INs/LP;IM95LA;MA5II,uBAoDG;MApDH,kBAoDG;INy/LP;IMj6LA;MA5II,qBAoDG;MApDH,gBAoDG;IN4/LP;EACF;AACF;AOllMA;EAEI,qBAAA;EAAA,yBAAA;EAAA,yBAAA;EAAA,0BAAA;EAAA,0BAAA;EAAA,2BAAA;APwlMJ","file":"bootstrap-grid.css","sourcesContent":["$file: \"\" !default;\n\n/*!\n * Bootstrap #{$file} v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n","@use \"../config\" as *;\n@use \"breakpoints\" as *;\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n --gutter-x: #{$gutter};\n --gutter-y: 0;\n width: 100%;\n padding-inline: calc(var(--gutter-x) * .5);\n margin-inline: auto;\n}\n\n@layer layout {\n @if $enable-container-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .#{breakpoint-prefix($breakpoint, $breakpoints)}container {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n @each $name, $width in $breakpoints {\n @if ($extend-breakpoint) {\n .#{breakpoint-prefix($name, $breakpoints)}container {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n }\n}\n","/*!\n * Bootstrap Grid v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n@layer layout {\n .container,\n .container-fluid,\n .\\32 xl\\:container,\n .xl\\:container,\n .lg\\:container,\n .md\\:container,\n .sm\\:container {\n --gutter-x: 1.5rem;\n --gutter-y: 0;\n width: 100%;\n padding-inline: calc(var(--gutter-x) * 0.5);\n margin-inline: auto;\n }\n @media (width >= 576px) {\n .sm\\:container, .container {\n max-width: 540px;\n }\n }\n @media (width >= 768px) {\n .md\\:container, .sm\\:container, .container {\n max-width: 720px;\n }\n }\n @media (width >= 1024px) {\n .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 960px;\n }\n }\n @media (width >= 1280px) {\n .xl\\:container, .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 1200px;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:container, .xl\\:container, .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 1440px;\n }\n }\n}\n@layer layout {\n .row {\n --gutter-x: 1.5rem;\n --gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-inline: calc(-0.5 * var(--gutter-x));\n margin-top: calc(-1 * var(--gutter-y));\n }\n .row > * {\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-inline: calc(var(--gutter-x) * 0.5);\n margin-top: var(--gutter-y);\n }\n .col {\n flex: 1 0 0;\n }\n .row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .offset-3 {\n margin-inline-start: 25%;\n }\n .offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .offset-6 {\n margin-inline-start: 50%;\n }\n .offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .offset-9 {\n margin-inline-start: 75%;\n }\n .offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .g-0,\n .gx-0 {\n --gutter-x: 0;\n }\n .g-0,\n .gy-0 {\n --gutter-y: 0;\n }\n .g-1,\n .gx-1 {\n --gutter-x: 0.25rem;\n }\n .g-1,\n .gy-1 {\n --gutter-y: 0.25rem;\n }\n .g-2,\n .gx-2 {\n --gutter-x: 0.5rem;\n }\n .g-2,\n .gy-2 {\n --gutter-y: 0.5rem;\n }\n .g-3,\n .gx-3 {\n --gutter-x: 0.75rem;\n }\n .g-3,\n .gy-3 {\n --gutter-y: 0.75rem;\n }\n .g-4,\n .gx-4 {\n --gutter-x: 1rem;\n }\n .g-4,\n .gy-4 {\n --gutter-y: 1rem;\n }\n .g-5,\n .gx-5 {\n --gutter-x: 1.25rem;\n }\n .g-5,\n .gy-5 {\n --gutter-y: 1.25rem;\n }\n .g-6,\n .gx-6 {\n --gutter-x: 1.5rem;\n }\n .g-6,\n .gy-6 {\n --gutter-y: 1.5rem;\n }\n .g-7,\n .gx-7 {\n --gutter-x: 2rem;\n }\n .g-7,\n .gy-7 {\n --gutter-y: 2rem;\n }\n .g-8,\n .gx-8 {\n --gutter-x: 2.5rem;\n }\n .g-8,\n .gy-8 {\n --gutter-y: 2.5rem;\n }\n .g-9,\n .gx-9 {\n --gutter-x: 3rem;\n }\n .g-9,\n .gy-9 {\n --gutter-y: 3rem;\n }\n @media (width >= 576px) {\n .sm\\:col {\n flex: 1 0 0;\n }\n .sm\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .sm\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .sm\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .sm\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .sm\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .sm\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .sm\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .sm\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .sm\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .sm\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .sm\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .sm\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .sm\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .sm\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .sm\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .sm\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .sm\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .sm\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .sm\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .sm\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .sm\\:offset-0 {\n margin-inline-start: 0;\n }\n .sm\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .sm\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .sm\\:offset-3 {\n margin-inline-start: 25%;\n }\n .sm\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .sm\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .sm\\:offset-6 {\n margin-inline-start: 50%;\n }\n .sm\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .sm\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .sm\\:offset-9 {\n margin-inline-start: 75%;\n }\n .sm\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .sm\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .sm\\:g-0,\n .sm\\:gx-0 {\n --gutter-x: 0;\n }\n .sm\\:g-0,\n .sm\\:gy-0 {\n --gutter-y: 0;\n }\n .sm\\:g-1,\n .sm\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .sm\\:g-1,\n .sm\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .sm\\:g-2,\n .sm\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .sm\\:g-2,\n .sm\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .sm\\:g-3,\n .sm\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .sm\\:g-3,\n .sm\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .sm\\:g-4,\n .sm\\:gx-4 {\n --gutter-x: 1rem;\n }\n .sm\\:g-4,\n .sm\\:gy-4 {\n --gutter-y: 1rem;\n }\n .sm\\:g-5,\n .sm\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .sm\\:g-5,\n .sm\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .sm\\:g-6,\n .sm\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .sm\\:g-6,\n .sm\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .sm\\:g-7,\n .sm\\:gx-7 {\n --gutter-x: 2rem;\n }\n .sm\\:g-7,\n .sm\\:gy-7 {\n --gutter-y: 2rem;\n }\n .sm\\:g-8,\n .sm\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .sm\\:g-8,\n .sm\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .sm\\:g-9,\n .sm\\:gx-9 {\n --gutter-x: 3rem;\n }\n .sm\\:g-9,\n .sm\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 768px) {\n .md\\:col {\n flex: 1 0 0;\n }\n .md\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .md\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .md\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .md\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .md\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .md\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .md\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .md\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .md\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .md\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .md\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .md\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .md\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .md\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .md\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .md\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .md\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .md\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .md\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .md\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .md\\:offset-0 {\n margin-inline-start: 0;\n }\n .md\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .md\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .md\\:offset-3 {\n margin-inline-start: 25%;\n }\n .md\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .md\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .md\\:offset-6 {\n margin-inline-start: 50%;\n }\n .md\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .md\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .md\\:offset-9 {\n margin-inline-start: 75%;\n }\n .md\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .md\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .md\\:g-0,\n .md\\:gx-0 {\n --gutter-x: 0;\n }\n .md\\:g-0,\n .md\\:gy-0 {\n --gutter-y: 0;\n }\n .md\\:g-1,\n .md\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .md\\:g-1,\n .md\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .md\\:g-2,\n .md\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .md\\:g-2,\n .md\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .md\\:g-3,\n .md\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .md\\:g-3,\n .md\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .md\\:g-4,\n .md\\:gx-4 {\n --gutter-x: 1rem;\n }\n .md\\:g-4,\n .md\\:gy-4 {\n --gutter-y: 1rem;\n }\n .md\\:g-5,\n .md\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .md\\:g-5,\n .md\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .md\\:g-6,\n .md\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .md\\:g-6,\n .md\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .md\\:g-7,\n .md\\:gx-7 {\n --gutter-x: 2rem;\n }\n .md\\:g-7,\n .md\\:gy-7 {\n --gutter-y: 2rem;\n }\n .md\\:g-8,\n .md\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .md\\:g-8,\n .md\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .md\\:g-9,\n .md\\:gx-9 {\n --gutter-x: 3rem;\n }\n .md\\:g-9,\n .md\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1024px) {\n .lg\\:col {\n flex: 1 0 0;\n }\n .lg\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .lg\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .lg\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .lg\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .lg\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .lg\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .lg\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .lg\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .lg\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .lg\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .lg\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .lg\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .lg\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .lg\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .lg\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .lg\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .lg\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .lg\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .lg\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .lg\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .lg\\:offset-0 {\n margin-inline-start: 0;\n }\n .lg\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .lg\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .lg\\:offset-3 {\n margin-inline-start: 25%;\n }\n .lg\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .lg\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .lg\\:offset-6 {\n margin-inline-start: 50%;\n }\n .lg\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .lg\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .lg\\:offset-9 {\n margin-inline-start: 75%;\n }\n .lg\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .lg\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .lg\\:g-0,\n .lg\\:gx-0 {\n --gutter-x: 0;\n }\n .lg\\:g-0,\n .lg\\:gy-0 {\n --gutter-y: 0;\n }\n .lg\\:g-1,\n .lg\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .lg\\:g-1,\n .lg\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .lg\\:g-2,\n .lg\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .lg\\:g-2,\n .lg\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .lg\\:g-3,\n .lg\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .lg\\:g-3,\n .lg\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .lg\\:g-4,\n .lg\\:gx-4 {\n --gutter-x: 1rem;\n }\n .lg\\:g-4,\n .lg\\:gy-4 {\n --gutter-y: 1rem;\n }\n .lg\\:g-5,\n .lg\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .lg\\:g-5,\n .lg\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .lg\\:g-6,\n .lg\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .lg\\:g-6,\n .lg\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .lg\\:g-7,\n .lg\\:gx-7 {\n --gutter-x: 2rem;\n }\n .lg\\:g-7,\n .lg\\:gy-7 {\n --gutter-y: 2rem;\n }\n .lg\\:g-8,\n .lg\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .lg\\:g-8,\n .lg\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .lg\\:g-9,\n .lg\\:gx-9 {\n --gutter-x: 3rem;\n }\n .lg\\:g-9,\n .lg\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1280px) {\n .xl\\:col {\n flex: 1 0 0;\n }\n .xl\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .xl\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .xl\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .xl\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .xl\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .xl\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .xl\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .xl\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .xl\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .xl\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .xl\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .xl\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .xl\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .xl\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .xl\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .xl\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .xl\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .xl\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .xl\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .xl\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .xl\\:offset-0 {\n margin-inline-start: 0;\n }\n .xl\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .xl\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .xl\\:offset-3 {\n margin-inline-start: 25%;\n }\n .xl\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .xl\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .xl\\:offset-6 {\n margin-inline-start: 50%;\n }\n .xl\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .xl\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .xl\\:offset-9 {\n margin-inline-start: 75%;\n }\n .xl\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .xl\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .xl\\:g-0,\n .xl\\:gx-0 {\n --gutter-x: 0;\n }\n .xl\\:g-0,\n .xl\\:gy-0 {\n --gutter-y: 0;\n }\n .xl\\:g-1,\n .xl\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .xl\\:g-1,\n .xl\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .xl\\:g-2,\n .xl\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .xl\\:g-2,\n .xl\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .xl\\:g-3,\n .xl\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .xl\\:g-3,\n .xl\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .xl\\:g-4,\n .xl\\:gx-4 {\n --gutter-x: 1rem;\n }\n .xl\\:g-4,\n .xl\\:gy-4 {\n --gutter-y: 1rem;\n }\n .xl\\:g-5,\n .xl\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .xl\\:g-5,\n .xl\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .xl\\:g-6,\n .xl\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .xl\\:g-6,\n .xl\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .xl\\:g-7,\n .xl\\:gx-7 {\n --gutter-x: 2rem;\n }\n .xl\\:g-7,\n .xl\\:gy-7 {\n --gutter-y: 2rem;\n }\n .xl\\:g-8,\n .xl\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .xl\\:g-8,\n .xl\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .xl\\:g-9,\n .xl\\:gx-9 {\n --gutter-x: 3rem;\n }\n .xl\\:g-9,\n .xl\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:col {\n flex: 1 0 0;\n }\n .\\32 xl\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .\\32 xl\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .\\32 xl\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .\\32 xl\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .\\32 xl\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .\\32 xl\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .\\32 xl\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .\\32 xl\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .\\32 xl\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .\\32 xl\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .\\32 xl\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .\\32 xl\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .\\32 xl\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .\\32 xl\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .\\32 xl\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .\\32 xl\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .\\32 xl\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .\\32 xl\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .\\32 xl\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .\\32 xl\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .\\32 xl\\:offset-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .\\32 xl\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .\\32 xl\\:offset-3 {\n margin-inline-start: 25%;\n }\n .\\32 xl\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .\\32 xl\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .\\32 xl\\:offset-6 {\n margin-inline-start: 50%;\n }\n .\\32 xl\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .\\32 xl\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .\\32 xl\\:offset-9 {\n margin-inline-start: 75%;\n }\n .\\32 xl\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .\\32 xl\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .\\32 xl\\:g-0,\n .\\32 xl\\:gx-0 {\n --gutter-x: 0;\n }\n .\\32 xl\\:g-0,\n .\\32 xl\\:gy-0 {\n --gutter-y: 0;\n }\n .\\32 xl\\:g-1,\n .\\32 xl\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .\\32 xl\\:g-1,\n .\\32 xl\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .\\32 xl\\:g-2,\n .\\32 xl\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .\\32 xl\\:g-2,\n .\\32 xl\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .\\32 xl\\:g-3,\n .\\32 xl\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .\\32 xl\\:g-3,\n .\\32 xl\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .\\32 xl\\:g-4,\n .\\32 xl\\:gx-4 {\n --gutter-x: 1rem;\n }\n .\\32 xl\\:g-4,\n .\\32 xl\\:gy-4 {\n --gutter-y: 1rem;\n }\n .\\32 xl\\:g-5,\n .\\32 xl\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .\\32 xl\\:g-5,\n .\\32 xl\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .\\32 xl\\:g-6,\n .\\32 xl\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .\\32 xl\\:g-6,\n .\\32 xl\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .\\32 xl\\:g-7,\n .\\32 xl\\:gx-7 {\n --gutter-x: 2rem;\n }\n .\\32 xl\\:g-7,\n .\\32 xl\\:gy-7 {\n --gutter-y: 2rem;\n }\n .\\32 xl\\:g-8,\n .\\32 xl\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .\\32 xl\\:g-8,\n .\\32 xl\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .\\32 xl\\:g-9,\n .\\32 xl\\:gx-9 {\n --gutter-x: 3rem;\n }\n .\\32 xl\\:g-9,\n .\\32 xl\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n .grid {\n --columns: 12;\n --rows: 1;\n --gap: 1.5rem;\n display: grid;\n grid-template-rows: repeat(var(--rows), 1fr);\n grid-template-columns: repeat(var(--columns), 1fr);\n gap: var(--gap);\n }\n .g-col-1 {\n grid-column: auto/span 1;\n }\n .g-col-2 {\n grid-column: auto/span 2;\n }\n .g-col-3 {\n grid-column: auto/span 3;\n }\n .g-col-4 {\n grid-column: auto/span 4;\n }\n .g-col-5 {\n grid-column: auto/span 5;\n }\n .g-col-6 {\n grid-column: auto/span 6;\n }\n .g-col-7 {\n grid-column: auto/span 7;\n }\n .g-col-8 {\n grid-column: auto/span 8;\n }\n .g-col-9 {\n grid-column: auto/span 9;\n }\n .g-col-10 {\n grid-column: auto/span 10;\n }\n .g-col-11 {\n grid-column: auto/span 11;\n }\n .g-col-12 {\n grid-column: auto/span 12;\n }\n .g-start-1 {\n grid-column-start: 1;\n }\n .g-start-2 {\n grid-column-start: 2;\n }\n .g-start-3 {\n grid-column-start: 3;\n }\n .g-start-4 {\n grid-column-start: 4;\n }\n .g-start-5 {\n grid-column-start: 5;\n }\n .g-start-6 {\n grid-column-start: 6;\n }\n .g-start-7 {\n grid-column-start: 7;\n }\n .g-start-8 {\n grid-column-start: 8;\n }\n .g-start-9 {\n grid-column-start: 9;\n }\n .g-start-10 {\n grid-column-start: 10;\n }\n .g-start-11 {\n grid-column-start: 11;\n }\n @media (width >= 576px) {\n .sm\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .sm\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .sm\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .sm\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .sm\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .sm\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .sm\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .sm\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .sm\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .sm\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .sm\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .sm\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .sm\\:g-start-1 {\n grid-column-start: 1;\n }\n .sm\\:g-start-2 {\n grid-column-start: 2;\n }\n .sm\\:g-start-3 {\n grid-column-start: 3;\n }\n .sm\\:g-start-4 {\n grid-column-start: 4;\n }\n .sm\\:g-start-5 {\n grid-column-start: 5;\n }\n .sm\\:g-start-6 {\n grid-column-start: 6;\n }\n .sm\\:g-start-7 {\n grid-column-start: 7;\n }\n .sm\\:g-start-8 {\n grid-column-start: 8;\n }\n .sm\\:g-start-9 {\n grid-column-start: 9;\n }\n .sm\\:g-start-10 {\n grid-column-start: 10;\n }\n .sm\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 768px) {\n .md\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .md\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .md\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .md\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .md\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .md\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .md\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .md\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .md\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .md\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .md\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .md\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .md\\:g-start-1 {\n grid-column-start: 1;\n }\n .md\\:g-start-2 {\n grid-column-start: 2;\n }\n .md\\:g-start-3 {\n grid-column-start: 3;\n }\n .md\\:g-start-4 {\n grid-column-start: 4;\n }\n .md\\:g-start-5 {\n grid-column-start: 5;\n }\n .md\\:g-start-6 {\n grid-column-start: 6;\n }\n .md\\:g-start-7 {\n grid-column-start: 7;\n }\n .md\\:g-start-8 {\n grid-column-start: 8;\n }\n .md\\:g-start-9 {\n grid-column-start: 9;\n }\n .md\\:g-start-10 {\n grid-column-start: 10;\n }\n .md\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1024px) {\n .lg\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .lg\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .lg\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .lg\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .lg\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .lg\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .lg\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .lg\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .lg\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .lg\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .lg\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .lg\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .lg\\:g-start-1 {\n grid-column-start: 1;\n }\n .lg\\:g-start-2 {\n grid-column-start: 2;\n }\n .lg\\:g-start-3 {\n grid-column-start: 3;\n }\n .lg\\:g-start-4 {\n grid-column-start: 4;\n }\n .lg\\:g-start-5 {\n grid-column-start: 5;\n }\n .lg\\:g-start-6 {\n grid-column-start: 6;\n }\n .lg\\:g-start-7 {\n grid-column-start: 7;\n }\n .lg\\:g-start-8 {\n grid-column-start: 8;\n }\n .lg\\:g-start-9 {\n grid-column-start: 9;\n }\n .lg\\:g-start-10 {\n grid-column-start: 10;\n }\n .lg\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1280px) {\n .xl\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .xl\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .xl\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .xl\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .xl\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .xl\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .xl\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .xl\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .xl\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .xl\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .xl\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .xl\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .xl\\:g-start-1 {\n grid-column-start: 1;\n }\n .xl\\:g-start-2 {\n grid-column-start: 2;\n }\n .xl\\:g-start-3 {\n grid-column-start: 3;\n }\n .xl\\:g-start-4 {\n grid-column-start: 4;\n }\n .xl\\:g-start-5 {\n grid-column-start: 5;\n }\n .xl\\:g-start-6 {\n grid-column-start: 6;\n }\n .xl\\:g-start-7 {\n grid-column-start: 7;\n }\n .xl\\:g-start-8 {\n grid-column-start: 8;\n }\n .xl\\:g-start-9 {\n grid-column-start: 9;\n }\n .xl\\:g-start-10 {\n grid-column-start: 10;\n }\n .xl\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .\\32 xl\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .\\32 xl\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .\\32 xl\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .\\32 xl\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .\\32 xl\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .\\32 xl\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .\\32 xl\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .\\32 xl\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .\\32 xl\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .\\32 xl\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .\\32 xl\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .\\32 xl\\:g-start-1 {\n grid-column-start: 1;\n }\n .\\32 xl\\:g-start-2 {\n grid-column-start: 2;\n }\n .\\32 xl\\:g-start-3 {\n grid-column-start: 3;\n }\n .\\32 xl\\:g-start-4 {\n grid-column-start: 4;\n }\n .\\32 xl\\:g-start-5 {\n grid-column-start: 5;\n }\n .\\32 xl\\:g-start-6 {\n grid-column-start: 6;\n }\n .\\32 xl\\:g-start-7 {\n grid-column-start: 7;\n }\n .\\32 xl\\:g-start-8 {\n grid-column-start: 8;\n }\n .\\32 xl\\:g-start-9 {\n grid-column-start: 9;\n }\n .\\32 xl\\:g-start-10 {\n grid-column-start: 10;\n }\n .\\32 xl\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n .grid-cols-subgrid {\n grid-template-columns: subgrid;\n }\n .grid-fill {\n --gap: 1.5rem;\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-auto-flow: row;\n gap: var(--gap);\n }\n}\n@layer utilities {\n .d-inline {\n display: inline;\n }\n .d-inline-block {\n display: inline-block;\n }\n .d-block {\n display: block;\n }\n .d-grid {\n display: grid;\n }\n .d-inline-grid {\n display: inline-grid;\n }\n .d-table {\n display: table;\n }\n .d-table-row {\n display: table-row;\n }\n .d-table-cell {\n display: table-cell;\n }\n .d-flex {\n display: flex;\n }\n .d-inline-flex {\n display: inline-flex;\n }\n .d-contents {\n display: contents;\n }\n .d-flow-root {\n display: flow-root;\n }\n .d-none {\n display: none;\n }\n .flex-fill {\n flex: 1 1 auto;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-column {\n flex-direction: column;\n }\n .flex-row-reverse {\n flex-direction: row-reverse;\n }\n .flex-column-reverse {\n flex-direction: column-reverse;\n }\n .flex-grow-0 {\n flex-grow: 0;\n }\n .flex-grow-1 {\n flex-grow: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .flex-shrink-1 {\n flex-shrink: 1;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .flex-nowrap {\n flex-wrap: nowrap;\n }\n .flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .justify-content-start {\n justify-content: flex-start;\n }\n .justify-content-end {\n justify-content: flex-end;\n }\n .justify-content-center {\n justify-content: center;\n }\n .justify-content-between {\n justify-content: space-between;\n }\n .justify-content-around {\n justify-content: space-around;\n }\n .justify-content-evenly {\n justify-content: space-evenly;\n }\n .justify-items-start {\n justify-items: start;\n }\n .justify-items-end {\n justify-items: end;\n }\n .justify-items-center {\n justify-items: center;\n }\n .justify-items-stretch {\n justify-items: stretch;\n }\n .align-items-start {\n align-items: flex-start;\n }\n .align-items-end {\n align-items: flex-end;\n }\n .align-items-center {\n align-items: center;\n }\n .align-items-baseline {\n align-items: baseline;\n }\n .align-items-stretch {\n align-items: stretch;\n }\n .align-content-start {\n align-content: flex-start;\n }\n .align-content-end {\n align-content: flex-end;\n }\n .align-content-center {\n align-content: center;\n }\n .align-content-between {\n align-content: space-between;\n }\n .align-content-around {\n align-content: space-around;\n }\n .align-content-stretch {\n align-content: stretch;\n }\n .align-self-auto {\n align-self: auto;\n }\n .align-self-start {\n align-self: flex-start;\n }\n .align-self-end {\n align-self: flex-end;\n }\n .align-self-center {\n align-self: center;\n }\n .align-self-baseline {\n align-self: baseline;\n }\n .align-self-stretch {\n align-self: stretch;\n }\n .place-items-start {\n place-items: start;\n }\n .place-items-end {\n place-items: end;\n }\n .place-items-center {\n place-items: center;\n }\n .place-items-stretch {\n place-items: stretch;\n }\n .grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .grid-cols-fill {\n grid-column: 1 / -1;\n }\n .grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .order-first {\n order: -1;\n }\n .order-0 {\n order: 0;\n }\n .order-1 {\n order: 1;\n }\n .order-2 {\n order: 2;\n }\n .order-3 {\n order: 3;\n }\n .order-4 {\n order: 4;\n }\n .order-5 {\n order: 5;\n }\n .order-last {\n order: 6;\n }\n .m-0 {\n margin: 0;\n }\n .m-1 {\n margin: 0.25rem;\n }\n .m-2 {\n margin: 0.5rem;\n }\n .m-3 {\n margin: 0.75rem;\n }\n .m-4 {\n margin: 1rem;\n }\n .m-5 {\n margin: 1.25rem;\n }\n .m-6 {\n margin: 1.5rem;\n }\n .m-7 {\n margin: 2rem;\n }\n .m-8 {\n margin: 2.5rem;\n }\n .m-9 {\n margin: 3rem;\n }\n .m-auto {\n margin: auto;\n }\n .mx-0 {\n margin-inline: 0;\n }\n .mx-1 {\n margin-inline: 0.25rem;\n }\n .mx-2 {\n margin-inline: 0.5rem;\n }\n .mx-3 {\n margin-inline: 0.75rem;\n }\n .mx-4 {\n margin-inline: 1rem;\n }\n .mx-5 {\n margin-inline: 1.25rem;\n }\n .mx-6 {\n margin-inline: 1.5rem;\n }\n .mx-7 {\n margin-inline: 2rem;\n }\n .mx-8 {\n margin-inline: 2.5rem;\n }\n .mx-9 {\n margin-inline: 3rem;\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-0 {\n margin-block: 0;\n }\n .my-1 {\n margin-block: 0.25rem;\n }\n .my-2 {\n margin-block: 0.5rem;\n }\n .my-3 {\n margin-block: 0.75rem;\n }\n .my-4 {\n margin-block: 1rem;\n }\n .my-5 {\n margin-block: 1.25rem;\n }\n .my-6 {\n margin-block: 1.5rem;\n }\n .my-7 {\n margin-block: 2rem;\n }\n .my-8 {\n margin-block: 2.5rem;\n }\n .my-9 {\n margin-block: 3rem;\n }\n .my-auto {\n margin-block: auto;\n }\n .mt-0 {\n margin-block-start: 0;\n }\n .mt-1 {\n margin-block-start: 0.25rem;\n }\n .mt-2 {\n margin-block-start: 0.5rem;\n }\n .mt-3 {\n margin-block-start: 0.75rem;\n }\n .mt-4 {\n margin-block-start: 1rem;\n }\n .mt-5 {\n margin-block-start: 1.25rem;\n }\n .mt-6 {\n margin-block-start: 1.5rem;\n }\n .mt-7 {\n margin-block-start: 2rem;\n }\n .mt-8 {\n margin-block-start: 2.5rem;\n }\n .mt-9 {\n margin-block-start: 3rem;\n }\n .mt-auto {\n margin-block-start: auto;\n }\n .me-0 {\n margin-inline-end: 0;\n }\n .me-1 {\n margin-inline-end: 0.25rem;\n }\n .me-2 {\n margin-inline-end: 0.5rem;\n }\n .me-3 {\n margin-inline-end: 0.75rem;\n }\n .me-4 {\n margin-inline-end: 1rem;\n }\n .me-5 {\n margin-inline-end: 1.25rem;\n }\n .me-6 {\n margin-inline-end: 1.5rem;\n }\n .me-7 {\n margin-inline-end: 2rem;\n }\n .me-8 {\n margin-inline-end: 2.5rem;\n }\n .me-9 {\n margin-inline-end: 3rem;\n }\n .me--1 {\n margin-inline-end: -0.25rem;\n }\n .me--2 {\n margin-inline-end: -0.5rem;\n }\n .me-auto {\n margin-inline-end: auto;\n }\n .mb-0 {\n margin-block-end: 0;\n }\n .mb-1 {\n margin-block-end: 0.25rem;\n }\n .mb-2 {\n margin-block-end: 0.5rem;\n }\n .mb-3 {\n margin-block-end: 0.75rem;\n }\n .mb-4 {\n margin-block-end: 1rem;\n }\n .mb-5 {\n margin-block-end: 1.25rem;\n }\n .mb-6 {\n margin-block-end: 1.5rem;\n }\n .mb-7 {\n margin-block-end: 2rem;\n }\n .mb-8 {\n margin-block-end: 2.5rem;\n }\n .mb-9 {\n margin-block-end: 3rem;\n }\n .mb-auto {\n margin-block-end: auto;\n }\n .ms-0 {\n margin-inline-start: 0;\n }\n .ms-1 {\n margin-inline-start: 0.25rem;\n }\n .ms-2 {\n margin-inline-start: 0.5rem;\n }\n .ms-3 {\n margin-inline-start: 0.75rem;\n }\n .ms-4 {\n margin-inline-start: 1rem;\n }\n .ms-5 {\n margin-inline-start: 1.25rem;\n }\n .ms-6 {\n margin-inline-start: 1.5rem;\n }\n .ms-7 {\n margin-inline-start: 2rem;\n }\n .ms-8 {\n margin-inline-start: 2.5rem;\n }\n .ms-9 {\n margin-inline-start: 3rem;\n }\n .ms--1 {\n margin-inline-start: -0.25rem;\n }\n .ms--2 {\n margin-inline-start: -0.5rem;\n }\n .ms-auto {\n margin-inline-start: auto;\n }\n .p-0 {\n padding: 0;\n }\n .p-1 {\n padding: 0.25rem;\n }\n .p-2 {\n padding: 0.5rem;\n }\n .p-3 {\n padding: 0.75rem;\n }\n .p-4 {\n padding: 1rem;\n }\n .p-5 {\n padding: 1.25rem;\n }\n .p-6 {\n padding: 1.5rem;\n }\n .p-7 {\n padding: 2rem;\n }\n .p-8 {\n padding: 2.5rem;\n }\n .p-9 {\n padding: 3rem;\n }\n .px-0 {\n padding-inline: 0;\n }\n .px-1 {\n padding-inline: 0.25rem;\n }\n .px-2 {\n padding-inline: 0.5rem;\n }\n .px-3 {\n padding-inline: 0.75rem;\n }\n .px-4 {\n padding-inline: 1rem;\n }\n .px-5 {\n padding-inline: 1.25rem;\n }\n .px-6 {\n padding-inline: 1.5rem;\n }\n .px-7 {\n padding-inline: 2rem;\n }\n .px-8 {\n padding-inline: 2.5rem;\n }\n .px-9 {\n padding-inline: 3rem;\n }\n .py-0 {\n padding-block: 0;\n }\n .py-1 {\n padding-block: 0.25rem;\n }\n .py-2 {\n padding-block: 0.5rem;\n }\n .py-3 {\n padding-block: 0.75rem;\n }\n .py-4 {\n padding-block: 1rem;\n }\n .py-5 {\n padding-block: 1.25rem;\n }\n .py-6 {\n padding-block: 1.5rem;\n }\n .py-7 {\n padding-block: 2rem;\n }\n .py-8 {\n padding-block: 2.5rem;\n }\n .py-9 {\n padding-block: 3rem;\n }\n .pt-0 {\n padding-block-start: 0;\n }\n .pt-1 {\n padding-block-start: 0.25rem;\n }\n .pt-2 {\n padding-block-start: 0.5rem;\n }\n .pt-3 {\n padding-block-start: 0.75rem;\n }\n .pt-4 {\n padding-block-start: 1rem;\n }\n .pt-5 {\n padding-block-start: 1.25rem;\n }\n .pt-6 {\n padding-block-start: 1.5rem;\n }\n .pt-7 {\n padding-block-start: 2rem;\n }\n .pt-8 {\n padding-block-start: 2.5rem;\n }\n .pt-9 {\n padding-block-start: 3rem;\n }\n .pe-0 {\n padding-inline-end: 0;\n }\n .pe-1 {\n padding-inline-end: 0.25rem;\n }\n .pe-2 {\n padding-inline-end: 0.5rem;\n }\n .pe-3 {\n padding-inline-end: 0.75rem;\n }\n .pe-4 {\n padding-inline-end: 1rem;\n }\n .pe-5 {\n padding-inline-end: 1.25rem;\n }\n .pe-6 {\n padding-inline-end: 1.5rem;\n }\n .pe-7 {\n padding-inline-end: 2rem;\n }\n .pe-8 {\n padding-inline-end: 2.5rem;\n }\n .pe-9 {\n padding-inline-end: 3rem;\n }\n .pb-0 {\n padding-block-end: 0;\n }\n .pb-1 {\n padding-block-end: 0.25rem;\n }\n .pb-2 {\n padding-block-end: 0.5rem;\n }\n .pb-3 {\n padding-block-end: 0.75rem;\n }\n .pb-4 {\n padding-block-end: 1rem;\n }\n .pb-5 {\n padding-block-end: 1.25rem;\n }\n .pb-6 {\n padding-block-end: 1.5rem;\n }\n .pb-7 {\n padding-block-end: 2rem;\n }\n .pb-8 {\n padding-block-end: 2.5rem;\n }\n .pb-9 {\n padding-block-end: 3rem;\n }\n .ps-0 {\n padding-inline-start: 0;\n }\n .ps-1 {\n padding-inline-start: 0.25rem;\n }\n .ps-2 {\n padding-inline-start: 0.5rem;\n }\n .ps-3 {\n padding-inline-start: 0.75rem;\n }\n .ps-4 {\n padding-inline-start: 1rem;\n }\n .ps-5 {\n padding-inline-start: 1.25rem;\n }\n .ps-6 {\n padding-inline-start: 1.5rem;\n }\n .ps-7 {\n padding-inline-start: 2rem;\n }\n .ps-8 {\n padding-inline-start: 2.5rem;\n }\n .ps-9 {\n padding-inline-start: 3rem;\n }\n .gap-0 {\n gap: 0;\n }\n .gap-1 {\n gap: 0.25rem;\n }\n .gap-2 {\n gap: 0.5rem;\n }\n .gap-3 {\n gap: 0.75rem;\n }\n .gap-4 {\n gap: 1rem;\n }\n .gap-5 {\n gap: 1.25rem;\n }\n .gap-6 {\n gap: 1.5rem;\n }\n .gap-7 {\n gap: 2rem;\n }\n .gap-8 {\n gap: 2.5rem;\n }\n .gap-9 {\n gap: 3rem;\n }\n .row-gap-0 {\n row-gap: 0;\n }\n .row-gap-1 {\n row-gap: 0.25rem;\n }\n .row-gap-2 {\n row-gap: 0.5rem;\n }\n .row-gap-3 {\n row-gap: 0.75rem;\n }\n .row-gap-4 {\n row-gap: 1rem;\n }\n .row-gap-5 {\n row-gap: 1.25rem;\n }\n .row-gap-6 {\n row-gap: 1.5rem;\n }\n .row-gap-7 {\n row-gap: 2rem;\n }\n .row-gap-8 {\n row-gap: 2.5rem;\n }\n .row-gap-9 {\n row-gap: 3rem;\n }\n .column-gap-0 {\n column-gap: 0;\n }\n .column-gap-1 {\n column-gap: 0.25rem;\n }\n .column-gap-2 {\n column-gap: 0.5rem;\n }\n .column-gap-3 {\n column-gap: 0.75rem;\n }\n .column-gap-4 {\n column-gap: 1rem;\n }\n .column-gap-5 {\n column-gap: 1.25rem;\n }\n .column-gap-6 {\n column-gap: 1.5rem;\n }\n .column-gap-7 {\n column-gap: 2rem;\n }\n .column-gap-8 {\n column-gap: 2.5rem;\n }\n .column-gap-9 {\n column-gap: 3rem;\n }\n @media (width >= 576px) {\n .sm\\:d-inline {\n display: inline;\n }\n .sm\\:d-inline-block {\n display: inline-block;\n }\n .sm\\:d-block {\n display: block;\n }\n .sm\\:d-grid {\n display: grid;\n }\n .sm\\:d-inline-grid {\n display: inline-grid;\n }\n .sm\\:d-table {\n display: table;\n }\n .sm\\:d-table-row {\n display: table-row;\n }\n .sm\\:d-table-cell {\n display: table-cell;\n }\n .sm\\:d-flex {\n display: flex;\n }\n .sm\\:d-inline-flex {\n display: inline-flex;\n }\n .sm\\:d-contents {\n display: contents;\n }\n .sm\\:d-flow-root {\n display: flow-root;\n }\n .sm\\:d-none {\n display: none;\n }\n .sm\\:flex-fill {\n flex: 1 1 auto;\n }\n .sm\\:flex-row {\n flex-direction: row;\n }\n .sm\\:flex-column {\n flex-direction: column;\n }\n .sm\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .sm\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .sm\\:flex-grow-0 {\n flex-grow: 0;\n }\n .sm\\:flex-grow-1 {\n flex-grow: 1;\n }\n .sm\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .sm\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .sm\\:flex-wrap {\n flex-wrap: wrap;\n }\n .sm\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .sm\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .sm\\:justify-content-start {\n justify-content: flex-start;\n }\n .sm\\:justify-content-end {\n justify-content: flex-end;\n }\n .sm\\:justify-content-center {\n justify-content: center;\n }\n .sm\\:justify-content-between {\n justify-content: space-between;\n }\n .sm\\:justify-content-around {\n justify-content: space-around;\n }\n .sm\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .sm\\:justify-items-start {\n justify-items: start;\n }\n .sm\\:justify-items-end {\n justify-items: end;\n }\n .sm\\:justify-items-center {\n justify-items: center;\n }\n .sm\\:justify-items-stretch {\n justify-items: stretch;\n }\n .sm\\:align-items-start {\n align-items: flex-start;\n }\n .sm\\:align-items-end {\n align-items: flex-end;\n }\n .sm\\:align-items-center {\n align-items: center;\n }\n .sm\\:align-items-baseline {\n align-items: baseline;\n }\n .sm\\:align-items-stretch {\n align-items: stretch;\n }\n .sm\\:align-content-start {\n align-content: flex-start;\n }\n .sm\\:align-content-end {\n align-content: flex-end;\n }\n .sm\\:align-content-center {\n align-content: center;\n }\n .sm\\:align-content-between {\n align-content: space-between;\n }\n .sm\\:align-content-around {\n align-content: space-around;\n }\n .sm\\:align-content-stretch {\n align-content: stretch;\n }\n .sm\\:align-self-auto {\n align-self: auto;\n }\n .sm\\:align-self-start {\n align-self: flex-start;\n }\n .sm\\:align-self-end {\n align-self: flex-end;\n }\n .sm\\:align-self-center {\n align-self: center;\n }\n .sm\\:align-self-baseline {\n align-self: baseline;\n }\n .sm\\:align-self-stretch {\n align-self: stretch;\n }\n .sm\\:place-items-start {\n place-items: start;\n }\n .sm\\:place-items-end {\n place-items: end;\n }\n .sm\\:place-items-center {\n place-items: center;\n }\n .sm\\:place-items-stretch {\n place-items: stretch;\n }\n .sm\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .sm\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .sm\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .sm\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .sm\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .sm\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .sm\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .sm\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .sm\\:order-first {\n order: -1;\n }\n .sm\\:order-0 {\n order: 0;\n }\n .sm\\:order-1 {\n order: 1;\n }\n .sm\\:order-2 {\n order: 2;\n }\n .sm\\:order-3 {\n order: 3;\n }\n .sm\\:order-4 {\n order: 4;\n }\n .sm\\:order-5 {\n order: 5;\n }\n .sm\\:order-last {\n order: 6;\n }\n .sm\\:m-0 {\n margin: 0;\n }\n .sm\\:m-1 {\n margin: 0.25rem;\n }\n .sm\\:m-2 {\n margin: 0.5rem;\n }\n .sm\\:m-3 {\n margin: 0.75rem;\n }\n .sm\\:m-4 {\n margin: 1rem;\n }\n .sm\\:m-5 {\n margin: 1.25rem;\n }\n .sm\\:m-6 {\n margin: 1.5rem;\n }\n .sm\\:m-7 {\n margin: 2rem;\n }\n .sm\\:m-8 {\n margin: 2.5rem;\n }\n .sm\\:m-9 {\n margin: 3rem;\n }\n .sm\\:m-auto {\n margin: auto;\n }\n .sm\\:mx-0 {\n margin-inline: 0;\n }\n .sm\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .sm\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .sm\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .sm\\:mx-4 {\n margin-inline: 1rem;\n }\n .sm\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .sm\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .sm\\:mx-7 {\n margin-inline: 2rem;\n }\n .sm\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .sm\\:mx-9 {\n margin-inline: 3rem;\n }\n .sm\\:mx-auto {\n margin-inline: auto;\n }\n .sm\\:my-0 {\n margin-block: 0;\n }\n .sm\\:my-1 {\n margin-block: 0.25rem;\n }\n .sm\\:my-2 {\n margin-block: 0.5rem;\n }\n .sm\\:my-3 {\n margin-block: 0.75rem;\n }\n .sm\\:my-4 {\n margin-block: 1rem;\n }\n .sm\\:my-5 {\n margin-block: 1.25rem;\n }\n .sm\\:my-6 {\n margin-block: 1.5rem;\n }\n .sm\\:my-7 {\n margin-block: 2rem;\n }\n .sm\\:my-8 {\n margin-block: 2.5rem;\n }\n .sm\\:my-9 {\n margin-block: 3rem;\n }\n .sm\\:my-auto {\n margin-block: auto;\n }\n .sm\\:mt-0 {\n margin-block-start: 0;\n }\n .sm\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .sm\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .sm\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .sm\\:mt-4 {\n margin-block-start: 1rem;\n }\n .sm\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .sm\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .sm\\:mt-7 {\n margin-block-start: 2rem;\n }\n .sm\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .sm\\:mt-9 {\n margin-block-start: 3rem;\n }\n .sm\\:mt-auto {\n margin-block-start: auto;\n }\n .sm\\:me-0 {\n margin-inline-end: 0;\n }\n .sm\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .sm\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .sm\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .sm\\:me-4 {\n margin-inline-end: 1rem;\n }\n .sm\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .sm\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .sm\\:me-7 {\n margin-inline-end: 2rem;\n }\n .sm\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .sm\\:me-9 {\n margin-inline-end: 3rem;\n }\n .sm\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .sm\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .sm\\:me-auto {\n margin-inline-end: auto;\n }\n .sm\\:mb-0 {\n margin-block-end: 0;\n }\n .sm\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .sm\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .sm\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .sm\\:mb-4 {\n margin-block-end: 1rem;\n }\n .sm\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .sm\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .sm\\:mb-7 {\n margin-block-end: 2rem;\n }\n .sm\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .sm\\:mb-9 {\n margin-block-end: 3rem;\n }\n .sm\\:mb-auto {\n margin-block-end: auto;\n }\n .sm\\:ms-0 {\n margin-inline-start: 0;\n }\n .sm\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .sm\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .sm\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .sm\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .sm\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .sm\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .sm\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .sm\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .sm\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .sm\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .sm\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .sm\\:ms-auto {\n margin-inline-start: auto;\n }\n .sm\\:p-0 {\n padding: 0;\n }\n .sm\\:p-1 {\n padding: 0.25rem;\n }\n .sm\\:p-2 {\n padding: 0.5rem;\n }\n .sm\\:p-3 {\n padding: 0.75rem;\n }\n .sm\\:p-4 {\n padding: 1rem;\n }\n .sm\\:p-5 {\n padding: 1.25rem;\n }\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n .sm\\:p-7 {\n padding: 2rem;\n }\n .sm\\:p-8 {\n padding: 2.5rem;\n }\n .sm\\:p-9 {\n padding: 3rem;\n }\n .sm\\:px-0 {\n padding-inline: 0;\n }\n .sm\\:px-1 {\n padding-inline: 0.25rem;\n }\n .sm\\:px-2 {\n padding-inline: 0.5rem;\n }\n .sm\\:px-3 {\n padding-inline: 0.75rem;\n }\n .sm\\:px-4 {\n padding-inline: 1rem;\n }\n .sm\\:px-5 {\n padding-inline: 1.25rem;\n }\n .sm\\:px-6 {\n padding-inline: 1.5rem;\n }\n .sm\\:px-7 {\n padding-inline: 2rem;\n }\n .sm\\:px-8 {\n padding-inline: 2.5rem;\n }\n .sm\\:px-9 {\n padding-inline: 3rem;\n }\n .sm\\:py-0 {\n padding-block: 0;\n }\n .sm\\:py-1 {\n padding-block: 0.25rem;\n }\n .sm\\:py-2 {\n padding-block: 0.5rem;\n }\n .sm\\:py-3 {\n padding-block: 0.75rem;\n }\n .sm\\:py-4 {\n padding-block: 1rem;\n }\n .sm\\:py-5 {\n padding-block: 1.25rem;\n }\n .sm\\:py-6 {\n padding-block: 1.5rem;\n }\n .sm\\:py-7 {\n padding-block: 2rem;\n }\n .sm\\:py-8 {\n padding-block: 2.5rem;\n }\n .sm\\:py-9 {\n padding-block: 3rem;\n }\n .sm\\:pt-0 {\n padding-block-start: 0;\n }\n .sm\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .sm\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .sm\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .sm\\:pt-4 {\n padding-block-start: 1rem;\n }\n .sm\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .sm\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .sm\\:pt-7 {\n padding-block-start: 2rem;\n }\n .sm\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .sm\\:pt-9 {\n padding-block-start: 3rem;\n }\n .sm\\:pe-0 {\n padding-inline-end: 0;\n }\n .sm\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .sm\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .sm\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .sm\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .sm\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .sm\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .sm\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .sm\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .sm\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .sm\\:pb-0 {\n padding-block-end: 0;\n }\n .sm\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .sm\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .sm\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .sm\\:pb-4 {\n padding-block-end: 1rem;\n }\n .sm\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .sm\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .sm\\:pb-7 {\n padding-block-end: 2rem;\n }\n .sm\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .sm\\:pb-9 {\n padding-block-end: 3rem;\n }\n .sm\\:ps-0 {\n padding-inline-start: 0;\n }\n .sm\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .sm\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .sm\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .sm\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .sm\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .sm\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .sm\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .sm\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .sm\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .sm\\:gap-0 {\n gap: 0;\n }\n .sm\\:gap-1 {\n gap: 0.25rem;\n }\n .sm\\:gap-2 {\n gap: 0.5rem;\n }\n .sm\\:gap-3 {\n gap: 0.75rem;\n }\n .sm\\:gap-4 {\n gap: 1rem;\n }\n .sm\\:gap-5 {\n gap: 1.25rem;\n }\n .sm\\:gap-6 {\n gap: 1.5rem;\n }\n .sm\\:gap-7 {\n gap: 2rem;\n }\n .sm\\:gap-8 {\n gap: 2.5rem;\n }\n .sm\\:gap-9 {\n gap: 3rem;\n }\n .sm\\:row-gap-0 {\n row-gap: 0;\n }\n .sm\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .sm\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .sm\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .sm\\:row-gap-4 {\n row-gap: 1rem;\n }\n .sm\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .sm\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .sm\\:row-gap-7 {\n row-gap: 2rem;\n }\n .sm\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .sm\\:row-gap-9 {\n row-gap: 3rem;\n }\n .sm\\:column-gap-0 {\n column-gap: 0;\n }\n .sm\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .sm\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .sm\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .sm\\:column-gap-4 {\n column-gap: 1rem;\n }\n .sm\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .sm\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .sm\\:column-gap-7 {\n column-gap: 2rem;\n }\n .sm\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .sm\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n @media (width >= 768px) {\n .md\\:d-inline {\n display: inline;\n }\n .md\\:d-inline-block {\n display: inline-block;\n }\n .md\\:d-block {\n display: block;\n }\n .md\\:d-grid {\n display: grid;\n }\n .md\\:d-inline-grid {\n display: inline-grid;\n }\n .md\\:d-table {\n display: table;\n }\n .md\\:d-table-row {\n display: table-row;\n }\n .md\\:d-table-cell {\n display: table-cell;\n }\n .md\\:d-flex {\n display: flex;\n }\n .md\\:d-inline-flex {\n display: inline-flex;\n }\n .md\\:d-contents {\n display: contents;\n }\n .md\\:d-flow-root {\n display: flow-root;\n }\n .md\\:d-none {\n display: none;\n }\n .md\\:flex-fill {\n flex: 1 1 auto;\n }\n .md\\:flex-row {\n flex-direction: row;\n }\n .md\\:flex-column {\n flex-direction: column;\n }\n .md\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .md\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .md\\:flex-grow-0 {\n flex-grow: 0;\n }\n .md\\:flex-grow-1 {\n flex-grow: 1;\n }\n .md\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .md\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .md\\:flex-wrap {\n flex-wrap: wrap;\n }\n .md\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .md\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .md\\:justify-content-start {\n justify-content: flex-start;\n }\n .md\\:justify-content-end {\n justify-content: flex-end;\n }\n .md\\:justify-content-center {\n justify-content: center;\n }\n .md\\:justify-content-between {\n justify-content: space-between;\n }\n .md\\:justify-content-around {\n justify-content: space-around;\n }\n .md\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .md\\:justify-items-start {\n justify-items: start;\n }\n .md\\:justify-items-end {\n justify-items: end;\n }\n .md\\:justify-items-center {\n justify-items: center;\n }\n .md\\:justify-items-stretch {\n justify-items: stretch;\n }\n .md\\:align-items-start {\n align-items: flex-start;\n }\n .md\\:align-items-end {\n align-items: flex-end;\n }\n .md\\:align-items-center {\n align-items: center;\n }\n .md\\:align-items-baseline {\n align-items: baseline;\n }\n .md\\:align-items-stretch {\n align-items: stretch;\n }\n .md\\:align-content-start {\n align-content: flex-start;\n }\n .md\\:align-content-end {\n align-content: flex-end;\n }\n .md\\:align-content-center {\n align-content: center;\n }\n .md\\:align-content-between {\n align-content: space-between;\n }\n .md\\:align-content-around {\n align-content: space-around;\n }\n .md\\:align-content-stretch {\n align-content: stretch;\n }\n .md\\:align-self-auto {\n align-self: auto;\n }\n .md\\:align-self-start {\n align-self: flex-start;\n }\n .md\\:align-self-end {\n align-self: flex-end;\n }\n .md\\:align-self-center {\n align-self: center;\n }\n .md\\:align-self-baseline {\n align-self: baseline;\n }\n .md\\:align-self-stretch {\n align-self: stretch;\n }\n .md\\:place-items-start {\n place-items: start;\n }\n .md\\:place-items-end {\n place-items: end;\n }\n .md\\:place-items-center {\n place-items: center;\n }\n .md\\:place-items-stretch {\n place-items: stretch;\n }\n .md\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .md\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .md\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .md\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .md\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .md\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .md\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .md\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .md\\:order-first {\n order: -1;\n }\n .md\\:order-0 {\n order: 0;\n }\n .md\\:order-1 {\n order: 1;\n }\n .md\\:order-2 {\n order: 2;\n }\n .md\\:order-3 {\n order: 3;\n }\n .md\\:order-4 {\n order: 4;\n }\n .md\\:order-5 {\n order: 5;\n }\n .md\\:order-last {\n order: 6;\n }\n .md\\:m-0 {\n margin: 0;\n }\n .md\\:m-1 {\n margin: 0.25rem;\n }\n .md\\:m-2 {\n margin: 0.5rem;\n }\n .md\\:m-3 {\n margin: 0.75rem;\n }\n .md\\:m-4 {\n margin: 1rem;\n }\n .md\\:m-5 {\n margin: 1.25rem;\n }\n .md\\:m-6 {\n margin: 1.5rem;\n }\n .md\\:m-7 {\n margin: 2rem;\n }\n .md\\:m-8 {\n margin: 2.5rem;\n }\n .md\\:m-9 {\n margin: 3rem;\n }\n .md\\:m-auto {\n margin: auto;\n }\n .md\\:mx-0 {\n margin-inline: 0;\n }\n .md\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .md\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .md\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .md\\:mx-4 {\n margin-inline: 1rem;\n }\n .md\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .md\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .md\\:mx-7 {\n margin-inline: 2rem;\n }\n .md\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .md\\:mx-9 {\n margin-inline: 3rem;\n }\n .md\\:mx-auto {\n margin-inline: auto;\n }\n .md\\:my-0 {\n margin-block: 0;\n }\n .md\\:my-1 {\n margin-block: 0.25rem;\n }\n .md\\:my-2 {\n margin-block: 0.5rem;\n }\n .md\\:my-3 {\n margin-block: 0.75rem;\n }\n .md\\:my-4 {\n margin-block: 1rem;\n }\n .md\\:my-5 {\n margin-block: 1.25rem;\n }\n .md\\:my-6 {\n margin-block: 1.5rem;\n }\n .md\\:my-7 {\n margin-block: 2rem;\n }\n .md\\:my-8 {\n margin-block: 2.5rem;\n }\n .md\\:my-9 {\n margin-block: 3rem;\n }\n .md\\:my-auto {\n margin-block: auto;\n }\n .md\\:mt-0 {\n margin-block-start: 0;\n }\n .md\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .md\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .md\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .md\\:mt-4 {\n margin-block-start: 1rem;\n }\n .md\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .md\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .md\\:mt-7 {\n margin-block-start: 2rem;\n }\n .md\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .md\\:mt-9 {\n margin-block-start: 3rem;\n }\n .md\\:mt-auto {\n margin-block-start: auto;\n }\n .md\\:me-0 {\n margin-inline-end: 0;\n }\n .md\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .md\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .md\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .md\\:me-4 {\n margin-inline-end: 1rem;\n }\n .md\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .md\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .md\\:me-7 {\n margin-inline-end: 2rem;\n }\n .md\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .md\\:me-9 {\n margin-inline-end: 3rem;\n }\n .md\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .md\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .md\\:me-auto {\n margin-inline-end: auto;\n }\n .md\\:mb-0 {\n margin-block-end: 0;\n }\n .md\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .md\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .md\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .md\\:mb-4 {\n margin-block-end: 1rem;\n }\n .md\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .md\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .md\\:mb-7 {\n margin-block-end: 2rem;\n }\n .md\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .md\\:mb-9 {\n margin-block-end: 3rem;\n }\n .md\\:mb-auto {\n margin-block-end: auto;\n }\n .md\\:ms-0 {\n margin-inline-start: 0;\n }\n .md\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .md\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .md\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .md\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .md\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .md\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .md\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .md\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .md\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .md\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .md\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .md\\:ms-auto {\n margin-inline-start: auto;\n }\n .md\\:p-0 {\n padding: 0;\n }\n .md\\:p-1 {\n padding: 0.25rem;\n }\n .md\\:p-2 {\n padding: 0.5rem;\n }\n .md\\:p-3 {\n padding: 0.75rem;\n }\n .md\\:p-4 {\n padding: 1rem;\n }\n .md\\:p-5 {\n padding: 1.25rem;\n }\n .md\\:p-6 {\n padding: 1.5rem;\n }\n .md\\:p-7 {\n padding: 2rem;\n }\n .md\\:p-8 {\n padding: 2.5rem;\n }\n .md\\:p-9 {\n padding: 3rem;\n }\n .md\\:px-0 {\n padding-inline: 0;\n }\n .md\\:px-1 {\n padding-inline: 0.25rem;\n }\n .md\\:px-2 {\n padding-inline: 0.5rem;\n }\n .md\\:px-3 {\n padding-inline: 0.75rem;\n }\n .md\\:px-4 {\n padding-inline: 1rem;\n }\n .md\\:px-5 {\n padding-inline: 1.25rem;\n }\n .md\\:px-6 {\n padding-inline: 1.5rem;\n }\n .md\\:px-7 {\n padding-inline: 2rem;\n }\n .md\\:px-8 {\n padding-inline: 2.5rem;\n }\n .md\\:px-9 {\n padding-inline: 3rem;\n }\n .md\\:py-0 {\n padding-block: 0;\n }\n .md\\:py-1 {\n padding-block: 0.25rem;\n }\n .md\\:py-2 {\n padding-block: 0.5rem;\n }\n .md\\:py-3 {\n padding-block: 0.75rem;\n }\n .md\\:py-4 {\n padding-block: 1rem;\n }\n .md\\:py-5 {\n padding-block: 1.25rem;\n }\n .md\\:py-6 {\n padding-block: 1.5rem;\n }\n .md\\:py-7 {\n padding-block: 2rem;\n }\n .md\\:py-8 {\n padding-block: 2.5rem;\n }\n .md\\:py-9 {\n padding-block: 3rem;\n }\n .md\\:pt-0 {\n padding-block-start: 0;\n }\n .md\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .md\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .md\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .md\\:pt-4 {\n padding-block-start: 1rem;\n }\n .md\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .md\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .md\\:pt-7 {\n padding-block-start: 2rem;\n }\n .md\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .md\\:pt-9 {\n padding-block-start: 3rem;\n }\n .md\\:pe-0 {\n padding-inline-end: 0;\n }\n .md\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .md\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .md\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .md\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .md\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .md\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .md\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .md\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .md\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .md\\:pb-0 {\n padding-block-end: 0;\n }\n .md\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .md\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .md\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .md\\:pb-4 {\n padding-block-end: 1rem;\n }\n .md\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .md\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .md\\:pb-7 {\n padding-block-end: 2rem;\n }\n .md\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .md\\:pb-9 {\n padding-block-end: 3rem;\n }\n .md\\:ps-0 {\n padding-inline-start: 0;\n }\n .md\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .md\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .md\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .md\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .md\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .md\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .md\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .md\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .md\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .md\\:gap-0 {\n gap: 0;\n }\n .md\\:gap-1 {\n gap: 0.25rem;\n }\n .md\\:gap-2 {\n gap: 0.5rem;\n }\n .md\\:gap-3 {\n gap: 0.75rem;\n }\n .md\\:gap-4 {\n gap: 1rem;\n }\n .md\\:gap-5 {\n gap: 1.25rem;\n }\n .md\\:gap-6 {\n gap: 1.5rem;\n }\n .md\\:gap-7 {\n gap: 2rem;\n }\n .md\\:gap-8 {\n gap: 2.5rem;\n }\n .md\\:gap-9 {\n gap: 3rem;\n }\n .md\\:row-gap-0 {\n row-gap: 0;\n }\n .md\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .md\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .md\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .md\\:row-gap-4 {\n row-gap: 1rem;\n }\n .md\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .md\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .md\\:row-gap-7 {\n row-gap: 2rem;\n }\n .md\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .md\\:row-gap-9 {\n row-gap: 3rem;\n }\n .md\\:column-gap-0 {\n column-gap: 0;\n }\n .md\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .md\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .md\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .md\\:column-gap-4 {\n column-gap: 1rem;\n }\n .md\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .md\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .md\\:column-gap-7 {\n column-gap: 2rem;\n }\n .md\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .md\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n @media (width >= 1024px) {\n .lg\\:d-inline {\n display: inline;\n }\n .lg\\:d-inline-block {\n display: inline-block;\n }\n .lg\\:d-block {\n display: block;\n }\n .lg\\:d-grid {\n display: grid;\n }\n .lg\\:d-inline-grid {\n display: inline-grid;\n }\n .lg\\:d-table {\n display: table;\n }\n .lg\\:d-table-row {\n display: table-row;\n }\n .lg\\:d-table-cell {\n display: table-cell;\n }\n .lg\\:d-flex {\n display: flex;\n }\n .lg\\:d-inline-flex {\n display: inline-flex;\n }\n .lg\\:d-contents {\n display: contents;\n }\n .lg\\:d-flow-root {\n display: flow-root;\n }\n .lg\\:d-none {\n display: none;\n }\n .lg\\:flex-fill {\n flex: 1 1 auto;\n }\n .lg\\:flex-row {\n flex-direction: row;\n }\n .lg\\:flex-column {\n flex-direction: column;\n }\n .lg\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .lg\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .lg\\:flex-grow-0 {\n flex-grow: 0;\n }\n .lg\\:flex-grow-1 {\n flex-grow: 1;\n }\n .lg\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .lg\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .lg\\:flex-wrap {\n flex-wrap: wrap;\n }\n .lg\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .lg\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .lg\\:justify-content-start {\n justify-content: flex-start;\n }\n .lg\\:justify-content-end {\n justify-content: flex-end;\n }\n .lg\\:justify-content-center {\n justify-content: center;\n }\n .lg\\:justify-content-between {\n justify-content: space-between;\n }\n .lg\\:justify-content-around {\n justify-content: space-around;\n }\n .lg\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .lg\\:justify-items-start {\n justify-items: start;\n }\n .lg\\:justify-items-end {\n justify-items: end;\n }\n .lg\\:justify-items-center {\n justify-items: center;\n }\n .lg\\:justify-items-stretch {\n justify-items: stretch;\n }\n .lg\\:align-items-start {\n align-items: flex-start;\n }\n .lg\\:align-items-end {\n align-items: flex-end;\n }\n .lg\\:align-items-center {\n align-items: center;\n }\n .lg\\:align-items-baseline {\n align-items: baseline;\n }\n .lg\\:align-items-stretch {\n align-items: stretch;\n }\n .lg\\:align-content-start {\n align-content: flex-start;\n }\n .lg\\:align-content-end {\n align-content: flex-end;\n }\n .lg\\:align-content-center {\n align-content: center;\n }\n .lg\\:align-content-between {\n align-content: space-between;\n }\n .lg\\:align-content-around {\n align-content: space-around;\n }\n .lg\\:align-content-stretch {\n align-content: stretch;\n }\n .lg\\:align-self-auto {\n align-self: auto;\n }\n .lg\\:align-self-start {\n align-self: flex-start;\n }\n .lg\\:align-self-end {\n align-self: flex-end;\n }\n .lg\\:align-self-center {\n align-self: center;\n }\n .lg\\:align-self-baseline {\n align-self: baseline;\n }\n .lg\\:align-self-stretch {\n align-self: stretch;\n }\n .lg\\:place-items-start {\n place-items: start;\n }\n .lg\\:place-items-end {\n place-items: end;\n }\n .lg\\:place-items-center {\n place-items: center;\n }\n .lg\\:place-items-stretch {\n place-items: stretch;\n }\n .lg\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .lg\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .lg\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .lg\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .lg\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .lg\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .lg\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .lg\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .lg\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .lg\\:order-first {\n order: -1;\n }\n .lg\\:order-0 {\n order: 0;\n }\n .lg\\:order-1 {\n order: 1;\n }\n .lg\\:order-2 {\n order: 2;\n }\n .lg\\:order-3 {\n order: 3;\n }\n .lg\\:order-4 {\n order: 4;\n }\n .lg\\:order-5 {\n order: 5;\n }\n .lg\\:order-last {\n order: 6;\n }\n .lg\\:m-0 {\n margin: 0;\n }\n .lg\\:m-1 {\n margin: 0.25rem;\n }\n .lg\\:m-2 {\n margin: 0.5rem;\n }\n .lg\\:m-3 {\n margin: 0.75rem;\n }\n .lg\\:m-4 {\n margin: 1rem;\n }\n .lg\\:m-5 {\n margin: 1.25rem;\n }\n .lg\\:m-6 {\n margin: 1.5rem;\n }\n .lg\\:m-7 {\n margin: 2rem;\n }\n .lg\\:m-8 {\n margin: 2.5rem;\n }\n .lg\\:m-9 {\n margin: 3rem;\n }\n .lg\\:m-auto {\n margin: auto;\n }\n .lg\\:mx-0 {\n margin-inline: 0;\n }\n .lg\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .lg\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .lg\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .lg\\:mx-4 {\n margin-inline: 1rem;\n }\n .lg\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .lg\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .lg\\:mx-7 {\n margin-inline: 2rem;\n }\n .lg\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .lg\\:mx-9 {\n margin-inline: 3rem;\n }\n .lg\\:mx-auto {\n margin-inline: auto;\n }\n .lg\\:my-0 {\n margin-block: 0;\n }\n .lg\\:my-1 {\n margin-block: 0.25rem;\n }\n .lg\\:my-2 {\n margin-block: 0.5rem;\n }\n .lg\\:my-3 {\n margin-block: 0.75rem;\n }\n .lg\\:my-4 {\n margin-block: 1rem;\n }\n .lg\\:my-5 {\n margin-block: 1.25rem;\n }\n .lg\\:my-6 {\n margin-block: 1.5rem;\n }\n .lg\\:my-7 {\n margin-block: 2rem;\n }\n .lg\\:my-8 {\n margin-block: 2.5rem;\n }\n .lg\\:my-9 {\n margin-block: 3rem;\n }\n .lg\\:my-auto {\n margin-block: auto;\n }\n .lg\\:mt-0 {\n margin-block-start: 0;\n }\n .lg\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .lg\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .lg\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .lg\\:mt-4 {\n margin-block-start: 1rem;\n }\n .lg\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .lg\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .lg\\:mt-7 {\n margin-block-start: 2rem;\n }\n .lg\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .lg\\:mt-9 {\n margin-block-start: 3rem;\n }\n .lg\\:mt-auto {\n margin-block-start: auto;\n }\n .lg\\:me-0 {\n margin-inline-end: 0;\n }\n .lg\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .lg\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .lg\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .lg\\:me-4 {\n margin-inline-end: 1rem;\n }\n .lg\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .lg\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .lg\\:me-7 {\n margin-inline-end: 2rem;\n }\n .lg\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .lg\\:me-9 {\n margin-inline-end: 3rem;\n }\n .lg\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .lg\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .lg\\:me-auto {\n margin-inline-end: auto;\n }\n .lg\\:mb-0 {\n margin-block-end: 0;\n }\n .lg\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .lg\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .lg\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .lg\\:mb-4 {\n margin-block-end: 1rem;\n }\n .lg\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .lg\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .lg\\:mb-7 {\n margin-block-end: 2rem;\n }\n .lg\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .lg\\:mb-9 {\n margin-block-end: 3rem;\n }\n .lg\\:mb-auto {\n margin-block-end: auto;\n }\n .lg\\:ms-0 {\n margin-inline-start: 0;\n }\n .lg\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .lg\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .lg\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .lg\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .lg\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .lg\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .lg\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .lg\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .lg\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .lg\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .lg\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .lg\\:ms-auto {\n margin-inline-start: auto;\n }\n .lg\\:p-0 {\n padding: 0;\n }\n .lg\\:p-1 {\n padding: 0.25rem;\n }\n .lg\\:p-2 {\n padding: 0.5rem;\n }\n .lg\\:p-3 {\n padding: 0.75rem;\n }\n .lg\\:p-4 {\n padding: 1rem;\n }\n .lg\\:p-5 {\n padding: 1.25rem;\n }\n .lg\\:p-6 {\n padding: 1.5rem;\n }\n .lg\\:p-7 {\n padding: 2rem;\n }\n .lg\\:p-8 {\n padding: 2.5rem;\n }\n .lg\\:p-9 {\n padding: 3rem;\n }\n .lg\\:px-0 {\n padding-inline: 0;\n }\n .lg\\:px-1 {\n padding-inline: 0.25rem;\n }\n .lg\\:px-2 {\n padding-inline: 0.5rem;\n }\n .lg\\:px-3 {\n padding-inline: 0.75rem;\n }\n .lg\\:px-4 {\n padding-inline: 1rem;\n }\n .lg\\:px-5 {\n padding-inline: 1.25rem;\n }\n .lg\\:px-6 {\n padding-inline: 1.5rem;\n }\n .lg\\:px-7 {\n padding-inline: 2rem;\n }\n .lg\\:px-8 {\n padding-inline: 2.5rem;\n }\n .lg\\:px-9 {\n padding-inline: 3rem;\n }\n .lg\\:py-0 {\n padding-block: 0;\n }\n .lg\\:py-1 {\n padding-block: 0.25rem;\n }\n .lg\\:py-2 {\n padding-block: 0.5rem;\n }\n .lg\\:py-3 {\n padding-block: 0.75rem;\n }\n .lg\\:py-4 {\n padding-block: 1rem;\n }\n .lg\\:py-5 {\n padding-block: 1.25rem;\n }\n .lg\\:py-6 {\n padding-block: 1.5rem;\n }\n .lg\\:py-7 {\n padding-block: 2rem;\n }\n .lg\\:py-8 {\n padding-block: 2.5rem;\n }\n .lg\\:py-9 {\n padding-block: 3rem;\n }\n .lg\\:pt-0 {\n padding-block-start: 0;\n }\n .lg\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .lg\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .lg\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .lg\\:pt-4 {\n padding-block-start: 1rem;\n }\n .lg\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .lg\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .lg\\:pt-7 {\n padding-block-start: 2rem;\n }\n .lg\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .lg\\:pt-9 {\n padding-block-start: 3rem;\n }\n .lg\\:pe-0 {\n padding-inline-end: 0;\n }\n .lg\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .lg\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .lg\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .lg\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .lg\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .lg\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .lg\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .lg\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .lg\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .lg\\:pb-0 {\n padding-block-end: 0;\n }\n .lg\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .lg\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .lg\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .lg\\:pb-4 {\n padding-block-end: 1rem;\n }\n .lg\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .lg\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .lg\\:pb-7 {\n padding-block-end: 2rem;\n }\n .lg\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .lg\\:pb-9 {\n padding-block-end: 3rem;\n }\n .lg\\:ps-0 {\n padding-inline-start: 0;\n }\n .lg\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .lg\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .lg\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .lg\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .lg\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .lg\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .lg\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .lg\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .lg\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .lg\\:gap-0 {\n gap: 0;\n }\n .lg\\:gap-1 {\n gap: 0.25rem;\n }\n .lg\\:gap-2 {\n gap: 0.5rem;\n }\n .lg\\:gap-3 {\n gap: 0.75rem;\n }\n .lg\\:gap-4 {\n gap: 1rem;\n }\n .lg\\:gap-5 {\n gap: 1.25rem;\n }\n .lg\\:gap-6 {\n gap: 1.5rem;\n }\n .lg\\:gap-7 {\n gap: 2rem;\n }\n .lg\\:gap-8 {\n gap: 2.5rem;\n }\n .lg\\:gap-9 {\n gap: 3rem;\n }\n .lg\\:row-gap-0 {\n row-gap: 0;\n }\n .lg\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .lg\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .lg\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .lg\\:row-gap-4 {\n row-gap: 1rem;\n }\n .lg\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .lg\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .lg\\:row-gap-7 {\n row-gap: 2rem;\n }\n .lg\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .lg\\:row-gap-9 {\n row-gap: 3rem;\n }\n .lg\\:column-gap-0 {\n column-gap: 0;\n }\n .lg\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .lg\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .lg\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .lg\\:column-gap-4 {\n column-gap: 1rem;\n }\n .lg\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .lg\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .lg\\:column-gap-7 {\n column-gap: 2rem;\n }\n .lg\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .lg\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n @media (width >= 1280px) {\n .xl\\:d-inline {\n display: inline;\n }\n .xl\\:d-inline-block {\n display: inline-block;\n }\n .xl\\:d-block {\n display: block;\n }\n .xl\\:d-grid {\n display: grid;\n }\n .xl\\:d-inline-grid {\n display: inline-grid;\n }\n .xl\\:d-table {\n display: table;\n }\n .xl\\:d-table-row {\n display: table-row;\n }\n .xl\\:d-table-cell {\n display: table-cell;\n }\n .xl\\:d-flex {\n display: flex;\n }\n .xl\\:d-inline-flex {\n display: inline-flex;\n }\n .xl\\:d-contents {\n display: contents;\n }\n .xl\\:d-flow-root {\n display: flow-root;\n }\n .xl\\:d-none {\n display: none;\n }\n .xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .xl\\:flex-row {\n flex-direction: row;\n }\n .xl\\:flex-column {\n flex-direction: column;\n }\n .xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .xl\\:justify-content-center {\n justify-content: center;\n }\n .xl\\:justify-content-between {\n justify-content: space-between;\n }\n .xl\\:justify-content-around {\n justify-content: space-around;\n }\n .xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .xl\\:justify-items-start {\n justify-items: start;\n }\n .xl\\:justify-items-end {\n justify-items: end;\n }\n .xl\\:justify-items-center {\n justify-items: center;\n }\n .xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .xl\\:align-items-start {\n align-items: flex-start;\n }\n .xl\\:align-items-end {\n align-items: flex-end;\n }\n .xl\\:align-items-center {\n align-items: center;\n }\n .xl\\:align-items-baseline {\n align-items: baseline;\n }\n .xl\\:align-items-stretch {\n align-items: stretch;\n }\n .xl\\:align-content-start {\n align-content: flex-start;\n }\n .xl\\:align-content-end {\n align-content: flex-end;\n }\n .xl\\:align-content-center {\n align-content: center;\n }\n .xl\\:align-content-between {\n align-content: space-between;\n }\n .xl\\:align-content-around {\n align-content: space-around;\n }\n .xl\\:align-content-stretch {\n align-content: stretch;\n }\n .xl\\:align-self-auto {\n align-self: auto;\n }\n .xl\\:align-self-start {\n align-self: flex-start;\n }\n .xl\\:align-self-end {\n align-self: flex-end;\n }\n .xl\\:align-self-center {\n align-self: center;\n }\n .xl\\:align-self-baseline {\n align-self: baseline;\n }\n .xl\\:align-self-stretch {\n align-self: stretch;\n }\n .xl\\:place-items-start {\n place-items: start;\n }\n .xl\\:place-items-end {\n place-items: end;\n }\n .xl\\:place-items-center {\n place-items: center;\n }\n .xl\\:place-items-stretch {\n place-items: stretch;\n }\n .xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .xl\\:order-first {\n order: -1;\n }\n .xl\\:order-0 {\n order: 0;\n }\n .xl\\:order-1 {\n order: 1;\n }\n .xl\\:order-2 {\n order: 2;\n }\n .xl\\:order-3 {\n order: 3;\n }\n .xl\\:order-4 {\n order: 4;\n }\n .xl\\:order-5 {\n order: 5;\n }\n .xl\\:order-last {\n order: 6;\n }\n .xl\\:m-0 {\n margin: 0;\n }\n .xl\\:m-1 {\n margin: 0.25rem;\n }\n .xl\\:m-2 {\n margin: 0.5rem;\n }\n .xl\\:m-3 {\n margin: 0.75rem;\n }\n .xl\\:m-4 {\n margin: 1rem;\n }\n .xl\\:m-5 {\n margin: 1.25rem;\n }\n .xl\\:m-6 {\n margin: 1.5rem;\n }\n .xl\\:m-7 {\n margin: 2rem;\n }\n .xl\\:m-8 {\n margin: 2.5rem;\n }\n .xl\\:m-9 {\n margin: 3rem;\n }\n .xl\\:m-auto {\n margin: auto;\n }\n .xl\\:mx-0 {\n margin-inline: 0;\n }\n .xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .xl\\:mx-auto {\n margin-inline: auto;\n }\n .xl\\:my-0 {\n margin-block: 0;\n }\n .xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .xl\\:my-4 {\n margin-block: 1rem;\n }\n .xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .xl\\:my-7 {\n margin-block: 2rem;\n }\n .xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .xl\\:my-9 {\n margin-block: 3rem;\n }\n .xl\\:my-auto {\n margin-block: auto;\n }\n .xl\\:mt-0 {\n margin-block-start: 0;\n }\n .xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .xl\\:mt-auto {\n margin-block-start: auto;\n }\n .xl\\:me-0 {\n margin-inline-end: 0;\n }\n .xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .xl\\:me-auto {\n margin-inline-end: auto;\n }\n .xl\\:mb-0 {\n margin-block-end: 0;\n }\n .xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .xl\\:mb-auto {\n margin-block-end: auto;\n }\n .xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .xl\\:p-0 {\n padding: 0;\n }\n .xl\\:p-1 {\n padding: 0.25rem;\n }\n .xl\\:p-2 {\n padding: 0.5rem;\n }\n .xl\\:p-3 {\n padding: 0.75rem;\n }\n .xl\\:p-4 {\n padding: 1rem;\n }\n .xl\\:p-5 {\n padding: 1.25rem;\n }\n .xl\\:p-6 {\n padding: 1.5rem;\n }\n .xl\\:p-7 {\n padding: 2rem;\n }\n .xl\\:p-8 {\n padding: 2.5rem;\n }\n .xl\\:p-9 {\n padding: 3rem;\n }\n .xl\\:px-0 {\n padding-inline: 0;\n }\n .xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .xl\\:px-4 {\n padding-inline: 1rem;\n }\n .xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .xl\\:px-7 {\n padding-inline: 2rem;\n }\n .xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .xl\\:px-9 {\n padding-inline: 3rem;\n }\n .xl\\:py-0 {\n padding-block: 0;\n }\n .xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .xl\\:py-4 {\n padding-block: 1rem;\n }\n .xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .xl\\:py-7 {\n padding-block: 2rem;\n }\n .xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .xl\\:py-9 {\n padding-block: 3rem;\n }\n .xl\\:pt-0 {\n padding-block-start: 0;\n }\n .xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .xl\\:pb-0 {\n padding-block-end: 0;\n }\n .xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .xl\\:gap-0 {\n gap: 0;\n }\n .xl\\:gap-1 {\n gap: 0.25rem;\n }\n .xl\\:gap-2 {\n gap: 0.5rem;\n }\n .xl\\:gap-3 {\n gap: 0.75rem;\n }\n .xl\\:gap-4 {\n gap: 1rem;\n }\n .xl\\:gap-5 {\n gap: 1.25rem;\n }\n .xl\\:gap-6 {\n gap: 1.5rem;\n }\n .xl\\:gap-7 {\n gap: 2rem;\n }\n .xl\\:gap-8 {\n gap: 2.5rem;\n }\n .xl\\:gap-9 {\n gap: 3rem;\n }\n .xl\\:row-gap-0 {\n row-gap: 0;\n }\n .xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .xl\\:column-gap-0 {\n column-gap: 0;\n }\n .xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:d-inline {\n display: inline;\n }\n .\\32 xl\\:d-inline-block {\n display: inline-block;\n }\n .\\32 xl\\:d-block {\n display: block;\n }\n .\\32 xl\\:d-grid {\n display: grid;\n }\n .\\32 xl\\:d-inline-grid {\n display: inline-grid;\n }\n .\\32 xl\\:d-table {\n display: table;\n }\n .\\32 xl\\:d-table-row {\n display: table-row;\n }\n .\\32 xl\\:d-table-cell {\n display: table-cell;\n }\n .\\32 xl\\:d-flex {\n display: flex;\n }\n .\\32 xl\\:d-inline-flex {\n display: inline-flex;\n }\n .\\32 xl\\:d-contents {\n display: contents;\n }\n .\\32 xl\\:d-flow-root {\n display: flow-root;\n }\n .\\32 xl\\:d-none {\n display: none;\n }\n .\\32 xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .\\32 xl\\:flex-row {\n flex-direction: row;\n }\n .\\32 xl\\:flex-column {\n flex-direction: column;\n }\n .\\32 xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .\\32 xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .\\32 xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .\\32 xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .\\32 xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .\\32 xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .\\32 xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .\\32 xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .\\32 xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .\\32 xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .\\32 xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .\\32 xl\\:justify-content-center {\n justify-content: center;\n }\n .\\32 xl\\:justify-content-between {\n justify-content: space-between;\n }\n .\\32 xl\\:justify-content-around {\n justify-content: space-around;\n }\n .\\32 xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .\\32 xl\\:justify-items-start {\n justify-items: start;\n }\n .\\32 xl\\:justify-items-end {\n justify-items: end;\n }\n .\\32 xl\\:justify-items-center {\n justify-items: center;\n }\n .\\32 xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .\\32 xl\\:align-items-start {\n align-items: flex-start;\n }\n .\\32 xl\\:align-items-end {\n align-items: flex-end;\n }\n .\\32 xl\\:align-items-center {\n align-items: center;\n }\n .\\32 xl\\:align-items-baseline {\n align-items: baseline;\n }\n .\\32 xl\\:align-items-stretch {\n align-items: stretch;\n }\n .\\32 xl\\:align-content-start {\n align-content: flex-start;\n }\n .\\32 xl\\:align-content-end {\n align-content: flex-end;\n }\n .\\32 xl\\:align-content-center {\n align-content: center;\n }\n .\\32 xl\\:align-content-between {\n align-content: space-between;\n }\n .\\32 xl\\:align-content-around {\n align-content: space-around;\n }\n .\\32 xl\\:align-content-stretch {\n align-content: stretch;\n }\n .\\32 xl\\:align-self-auto {\n align-self: auto;\n }\n .\\32 xl\\:align-self-start {\n align-self: flex-start;\n }\n .\\32 xl\\:align-self-end {\n align-self: flex-end;\n }\n .\\32 xl\\:align-self-center {\n align-self: center;\n }\n .\\32 xl\\:align-self-baseline {\n align-self: baseline;\n }\n .\\32 xl\\:align-self-stretch {\n align-self: stretch;\n }\n .\\32 xl\\:place-items-start {\n place-items: start;\n }\n .\\32 xl\\:place-items-end {\n place-items: end;\n }\n .\\32 xl\\:place-items-center {\n place-items: center;\n }\n .\\32 xl\\:place-items-stretch {\n place-items: stretch;\n }\n .\\32 xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .\\32 xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .\\32 xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .\\32 xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .\\32 xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .\\32 xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .\\32 xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .\\32 xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .\\32 xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .\\32 xl\\:order-first {\n order: -1;\n }\n .\\32 xl\\:order-0 {\n order: 0;\n }\n .\\32 xl\\:order-1 {\n order: 1;\n }\n .\\32 xl\\:order-2 {\n order: 2;\n }\n .\\32 xl\\:order-3 {\n order: 3;\n }\n .\\32 xl\\:order-4 {\n order: 4;\n }\n .\\32 xl\\:order-5 {\n order: 5;\n }\n .\\32 xl\\:order-last {\n order: 6;\n }\n .\\32 xl\\:m-0 {\n margin: 0;\n }\n .\\32 xl\\:m-1 {\n margin: 0.25rem;\n }\n .\\32 xl\\:m-2 {\n margin: 0.5rem;\n }\n .\\32 xl\\:m-3 {\n margin: 0.75rem;\n }\n .\\32 xl\\:m-4 {\n margin: 1rem;\n }\n .\\32 xl\\:m-5 {\n margin: 1.25rem;\n }\n .\\32 xl\\:m-6 {\n margin: 1.5rem;\n }\n .\\32 xl\\:m-7 {\n margin: 2rem;\n }\n .\\32 xl\\:m-8 {\n margin: 2.5rem;\n }\n .\\32 xl\\:m-9 {\n margin: 3rem;\n }\n .\\32 xl\\:m-auto {\n margin: auto;\n }\n .\\32 xl\\:mx-0 {\n margin-inline: 0;\n }\n .\\32 xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .\\32 xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .\\32 xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .\\32 xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .\\32 xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .\\32 xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .\\32 xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .\\32 xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .\\32 xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .\\32 xl\\:mx-auto {\n margin-inline: auto;\n }\n .\\32 xl\\:my-0 {\n margin-block: 0;\n }\n .\\32 xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .\\32 xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .\\32 xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .\\32 xl\\:my-4 {\n margin-block: 1rem;\n }\n .\\32 xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .\\32 xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .\\32 xl\\:my-7 {\n margin-block: 2rem;\n }\n .\\32 xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .\\32 xl\\:my-9 {\n margin-block: 3rem;\n }\n .\\32 xl\\:my-auto {\n margin-block: auto;\n }\n .\\32 xl\\:mt-0 {\n margin-block-start: 0;\n }\n .\\32 xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .\\32 xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .\\32 xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .\\32 xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .\\32 xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .\\32 xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .\\32 xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .\\32 xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .\\32 xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .\\32 xl\\:mt-auto {\n margin-block-start: auto;\n }\n .\\32 xl\\:me-0 {\n margin-inline-end: 0;\n }\n .\\32 xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .\\32 xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .\\32 xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .\\32 xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .\\32 xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .\\32 xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .\\32 xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .\\32 xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .\\32 xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .\\32 xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .\\32 xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .\\32 xl\\:me-auto {\n margin-inline-end: auto;\n }\n .\\32 xl\\:mb-0 {\n margin-block-end: 0;\n }\n .\\32 xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .\\32 xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .\\32 xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .\\32 xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .\\32 xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .\\32 xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .\\32 xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .\\32 xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .\\32 xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .\\32 xl\\:mb-auto {\n margin-block-end: auto;\n }\n .\\32 xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .\\32 xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .\\32 xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .\\32 xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .\\32 xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .\\32 xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .\\32 xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .\\32 xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .\\32 xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .\\32 xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .\\32 xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .\\32 xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .\\32 xl\\:p-0 {\n padding: 0;\n }\n .\\32 xl\\:p-1 {\n padding: 0.25rem;\n }\n .\\32 xl\\:p-2 {\n padding: 0.5rem;\n }\n .\\32 xl\\:p-3 {\n padding: 0.75rem;\n }\n .\\32 xl\\:p-4 {\n padding: 1rem;\n }\n .\\32 xl\\:p-5 {\n padding: 1.25rem;\n }\n .\\32 xl\\:p-6 {\n padding: 1.5rem;\n }\n .\\32 xl\\:p-7 {\n padding: 2rem;\n }\n .\\32 xl\\:p-8 {\n padding: 2.5rem;\n }\n .\\32 xl\\:p-9 {\n padding: 3rem;\n }\n .\\32 xl\\:px-0 {\n padding-inline: 0;\n }\n .\\32 xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .\\32 xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .\\32 xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .\\32 xl\\:px-4 {\n padding-inline: 1rem;\n }\n .\\32 xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .\\32 xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .\\32 xl\\:px-7 {\n padding-inline: 2rem;\n }\n .\\32 xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .\\32 xl\\:px-9 {\n padding-inline: 3rem;\n }\n .\\32 xl\\:py-0 {\n padding-block: 0;\n }\n .\\32 xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .\\32 xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .\\32 xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .\\32 xl\\:py-4 {\n padding-block: 1rem;\n }\n .\\32 xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .\\32 xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .\\32 xl\\:py-7 {\n padding-block: 2rem;\n }\n .\\32 xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .\\32 xl\\:py-9 {\n padding-block: 3rem;\n }\n .\\32 xl\\:pt-0 {\n padding-block-start: 0;\n }\n .\\32 xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .\\32 xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .\\32 xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .\\32 xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .\\32 xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .\\32 xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .\\32 xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .\\32 xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .\\32 xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .\\32 xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .\\32 xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .\\32 xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .\\32 xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .\\32 xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .\\32 xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .\\32 xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .\\32 xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .\\32 xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .\\32 xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .\\32 xl\\:pb-0 {\n padding-block-end: 0;\n }\n .\\32 xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .\\32 xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .\\32 xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .\\32 xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .\\32 xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .\\32 xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .\\32 xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .\\32 xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .\\32 xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .\\32 xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .\\32 xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .\\32 xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .\\32 xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .\\32 xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .\\32 xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .\\32 xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .\\32 xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .\\32 xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .\\32 xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .\\32 xl\\:gap-0 {\n gap: 0;\n }\n .\\32 xl\\:gap-1 {\n gap: 0.25rem;\n }\n .\\32 xl\\:gap-2 {\n gap: 0.5rem;\n }\n .\\32 xl\\:gap-3 {\n gap: 0.75rem;\n }\n .\\32 xl\\:gap-4 {\n gap: 1rem;\n }\n .\\32 xl\\:gap-5 {\n gap: 1.25rem;\n }\n .\\32 xl\\:gap-6 {\n gap: 1.5rem;\n }\n .\\32 xl\\:gap-7 {\n gap: 2rem;\n }\n .\\32 xl\\:gap-8 {\n gap: 2.5rem;\n }\n .\\32 xl\\:gap-9 {\n gap: 3rem;\n }\n .\\32 xl\\:row-gap-0 {\n row-gap: 0;\n }\n .\\32 xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .\\32 xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .\\32 xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .\\32 xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .\\32 xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .\\32 xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .\\32 xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .\\32 xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .\\32 xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .\\32 xl\\:column-gap-0 {\n column-gap: 0;\n }\n .\\32 xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .\\32 xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .\\32 xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .\\32 xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .\\32 xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .\\32 xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .\\32 xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .\\32 xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .\\32 xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n}\n:root {\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 1024px;\n --breakpoint-xl: 1280px;\n --breakpoint-2xl: 1536px;\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:string\";\n@use \"../config\" as *;\n\n// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px)\n//\n// The map defined in the `$breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl 2xl))\n// md\n@function breakpoint-next($name, $breakpoints: $breakpoints, $breakpoint-names: map.keys($breakpoints)) {\n $n: list.index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoint-names}`\";\n }\n // Use @if/@else because list.nth would error if evaluated when $n equals list length\n @if $n < list.length($breakpoint-names) {\n @return list.nth($breakpoint-names, $n + 1);\n } @else {\n @return null;\n }\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $breakpoints) {\n $min: map.get($breakpoints, $name);\n @return if(sass($min != 0): $min; else: null);\n}\n\n// Maximum breakpoint width for range media queries.\n// Returns the breakpoint value to use as an upper bound in range queries.\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n// >> breakpoint-max(xxl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// null\n@function breakpoint-max($name, $breakpoints: $breakpoints) {\n @if $name == null {\n @return null;\n }\n $max: map.get($breakpoints, $name);\n @return if(sass($max and $max > 0): $max; else: null);\n}\n\n// Escape a name for use at the start of a CSS identifier.\n// Leading digits are hex-escaped (e.g., 2xl becomes \\32 xl).\n@function css-escape-ident($name) {\n $name-str: \"#{$name}\";\n $digits: \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\";\n $first: string.slice($name-str, 1, 1);\n\n @if list.index($digits, $first) {\n @return \"\\\\3#{$first} #{string.slice($name-str, 2)}\";\n }\n\n @return $name-str;\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name\n// with an escaped colon as a Tailwind-style prefix for responsive class names.\n// Leading digits are CSS-escaped (e.g., 2xl becomes \\32 xl) for valid identifiers.\n//\n// >> breakpoint-prefix(xs, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\" (Returns a blank string)\n// >> breakpoint-prefix(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"sm\\:\"\n// >> breakpoint-prefix(2xl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\\32 xl\\:\"\n@function breakpoint-prefix($name, $breakpoints: $breakpoints) {\n @if breakpoint-min($name, $breakpoints) == null {\n @return \"\";\n }\n\n @return \"#{css-escape-ident($name)}\\\\:\";\n}\n\n// Iterate all breakpoints and provide the current name and prefix.\n//\n// @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-up($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n @content($breakpoint, $prefix);\n }\n}\n\n// Iterate all breakpoints and provide the current name, next name, and next prefix.\n//\n// @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-down($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $next: breakpoint-next($breakpoint, $breakpoints);\n $prefix: breakpoint-prefix($next, $breakpoints);\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Backwards-compatible alias for next/down breakpoint loops.\n@mixin loop-breakpoints($breakpoints: $breakpoints) {\n @include loop-breakpoints-down($breakpoints) using ($breakpoint, $next, $prefix) {\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (width >= $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (width < $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n\n\n// Container queries\n//\n// Container queries allow elements to respond to the size of a containing element\n// rather than the viewport. These mixins mirror the media-breakpoint-* mixins above.\n//\n// scss-docs-start container-query-mixins\n\n// Set an element as a query container.\n//\n// @include set-container(); // container-type: inline-size\n// @include set-container(size); // container-type: size\n// @include set-container(inline-size, sidebar); // container: sidebar / inline-size\n//\n@mixin set-container($type: inline-size, $name: null) {\n @if $name {\n container: #{$name} / #{$type};\n } @else {\n container-type: #{$type};\n }\n}\n\n// Container query of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider within the container.\n//\n// @include container-breakpoint-up(md) { ... }\n// @include container-breakpoint-up(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-up($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower within the container.\n//\n// @include container-breakpoint-down(lg) { ... }\n// @include container-breakpoint-down(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-down($name, $container-name: null, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @if $container-name {\n @container #{$container-name} (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width < #{$max}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints within the container.\n//\n// @include container-breakpoint-between(md, xl) { ... }\n// @include container-breakpoint-between(md, xl, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-between($lower, $upper, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($lower, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($upper, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n\n// Container query between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint within the container.\n//\n// @include container-breakpoint-only(md) { ... }\n// @include container-breakpoint-only(md, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-only($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($name, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($next, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n// scss-docs-end container-query-mixins\n","@use \"sass:map\";\n@use \"sass:meta\";\n\n// Configuration\n//\n// Variables and settings not related to theme, components, and more go here. It does include layout.\n\n// Merge overrides on top of defaults, stripping null entries.\n// Null values let users remove map keys via @use ... with().\n// Accepts a list as $defaults (converted to a map with `true` values).\n@function defaults($defaults, $overrides) {\n @if meta.type-of($defaults) == \"list\" {\n $map: ();\n @each $key in $defaults {\n $map: map.merge($map, ($key: true));\n }\n $defaults: $map;\n }\n $merged: map.merge($defaults, $overrides);\n @each $key, $value in $merged {\n @if $value == null {\n $merged: map.remove($merged, $key);\n }\n }\n @return $merged;\n}\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: true !default;\n$enable-gradients: true !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: false !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: true !default;\n$enable-button-pointers: true !default;\n// $enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n\n$enable-dark-mode: true !default;\n\n$color-mode-type: \"media-query\" !default;\n$color-contrast-dark: #000 !default;\n$color-contrast-light: #fff !default;\n$min-contrast-ratio: 4.5 !default;\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer * .75,\n 4: $spacer,\n 5: $spacer * 1.25,\n 6: $spacer * 1.5,\n 7: $spacer * 2,\n 8: $spacer * 2.5,\n 9: $spacer * 3,\n) !default;\n\n$negative-spacers: (\n \"-1\": $spacer * -.25,\n \"-2\": $spacer * -.5,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n$sizes: (\n 1: $spacer,\n 2: $spacer * 2,\n 3: $spacer * 3,\n 4: $spacer * 4,\n 5: $spacer * 5,\n 6: $spacer * 6,\n 7: $spacer * 7,\n 8: $spacer * 8,\n 9: $spacer * 9,\n 10: $spacer * 10,\n 11: $spacer * 11,\n 12: $spacer * 12,\n) !default;\n\n$radius: .5rem !default;\n$radii: (\n 0: 0,\n 1: $radius * .25,\n 2: $radius * .375,\n 3: $radius * .5,\n 4: $radius * .75,\n 5: $radius,\n 6: $radius * 1.25,\n 7: $radius * 1.5,\n 8: $radius * 2,\n 9: $radius * 3,\n) !default;\n\n// Breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start breakpoints\n$breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 1024px,\n xl: 1280px,\n 2xl: 1536px\n) !default;\n// scss-docs-end breakpoints\n\n// @include _assert-ascending($breakpoints, \"$breakpoints\");\n// @include _assert-starts-at-zero($breakpoints, \"$breakpoints\");\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-x: 1.5rem !default;\n$grid-gutter-y: 0 !default;\n$grid-row-columns: 6 !default;\n\n$gutters: $spacers !default;\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1200px,\n 2xl: 1440px\n) !default;\n// scss-docs-end container-max-widths\n\n$container-padding-x: $grid-gutter-x !default;\n\n$utilities: () !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent)) !default;\n// scss-docs-end variable-gradient\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Links\n//\n// Style anchor elements.\n\n$link-decoration: underline !default;\n$link-underline-offset: .2em !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: color-mix(in oklch, var(--gray-100), var(--gray-200)) !default;\n// scss-docs-end border-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"auto\": auto,\n \"1x1\": #{\"1 / 1\"},\n \"4x3\": #{\"4 / 3\"},\n \"16x9\": #{\"16 / 9\"},\n \"21x9\": #{\"21 / 9\"}\n) !default;\n// scss-docs-end aspect-ratios\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$font-sizes: defaults(\n (\n \"xs\": (\n \"font-size\": .75rem,\n \"line-height\": 1.25\n ),\n \"sm\": (\n \"font-size\": .875rem,\n \"line-height\": 1.5\n ),\n \"md\": (\n \"font-size\": 1rem,\n \"line-height\": 1.5\n ),\n \"lg\": (\n \"font-size\": clamp(1.25rem, 1rem + .625vw, 1.5rem),\n \"line-height\": 1.5\n ),\n \"xl\": (\n \"font-size\": clamp(1.5rem, 1.1rem + .75vw, 1.75rem),\n \"line-height\": calc(2.5 / 1.75)\n ),\n \"2xl\": (\n \"font-size\": clamp(1.75rem, 1.3rem + 1vw, 2rem),\n \"line-height\": calc(3 / 2.25)\n ),\n \"3xl\": (\n \"font-size\": clamp(2rem, 1.5rem + 1.875vw, 2.5rem),\n \"line-height\": 1.2\n ),\n \"4xl\": (\n \"font-size\": clamp(2.25rem, 1.75rem + 2.5vw, 3rem),\n \"line-height\": 1.1\n ),\n \"5xl\": (\n \"font-size\": clamp(3rem, 2rem + 5vw, 4rem),\n \"line-height\": 1.1\n ),\n \"6xl\": (\n \"font-size\": clamp(3.75rem, 2.5rem + 6.25vw, 5rem),\n \"line-height\": 1\n ),\n ),\n $font-sizes\n);\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: var(--spacer-2) !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start type-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n// scss-docs-end type-variables\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-menu: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n// $zindex-drawer-backdrop: 1040 !default;\n$zindex-drawer: 1045 !default;\n$zindex-dialog: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n","@use \"../config\" as *;\n@use \"../mixins/grid\" as *;\n\n// mdo-do\n// - check gap utilities as replacement for gutter classes from v5\n\n@layer layout {\n @if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n\n @include make-grid-columns();\n }\n\n @if $enable-cssgrid {\n .grid {\n --columns: #{$grid-columns};\n --rows: 1;\n --gap: #{$grid-gutter-x};\n\n display: grid;\n grid-template-rows: repeat(var(--rows), 1fr);\n grid-template-columns: repeat(var(--columns), 1fr);\n gap: var(--gap);\n\n }\n\n @include make-cssgrid();\n }\n\n // mdo-do: add to utilities?\n .grid-cols-subgrid {\n grid-template-columns: subgrid;\n }\n\n .grid-fill {\n --gap: #{$grid-gutter-x};\n\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-auto-flow: row;\n gap: var(--gap);\n }\n\n // .g-col-auto {\n // grid-column: auto;\n // }\n\n // mdo-do: add to utilities?\n // .grid-cols-3 {\n // --columns: 3;\n // }\n // .grid-cols-4 {\n // --columns: 4;\n // }\n // .grid-cols-6 {\n // --columns: 6;\n // }\n\n // .grid-full {\n // grid-column: 1 / -1;\n // }\n}\n","@use \"sass:map\";\n@use \"sass:math\";\n@use \"sass:meta\";\n@use \"../config\" as *;\n@use \"../layout/breakpoints\" as *;\n\n// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter-x: $grid-gutter-x, $gutter-y: $grid-gutter-y) {\n --gutter-x: #{$gutter-x};\n --gutter-y: #{$gutter-y};\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-inline: calc(-.5 * var(--gutter-x));\n margin-top: calc(-1 * var(--gutter-y));\n}\n\n@mixin make-col-ready() {\n // Add box sizing if only the grid is loaded\n // stylelint-disable-next-line scss/at-function-named-arguments\n box-sizing: if(sass(meta.variable-exists(include-column-box-sizing) and $include-column-box-sizing): border-box; else: null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-inline: calc(var(--gutter-x) * .5);\n margin-top: var(--gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: math.percentage(math.div($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: math.div($size, $columns);\n // stylelint-disable-next-line scss/at-function-named-arguments\n margin-inline-start: if(sass($num == 0): 0; else: math.percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// number of columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: math.percentage(math.div(1, $count));\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-x, $breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n .#{$prefix}col {\n flex: 1 0 0;\n }\n\n .#{$prefix}row-cols-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .#{$prefix}row-cols-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .#{$prefix}col-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .#{$prefix}col-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($prefix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .#{$prefix}offset-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .#{$prefix}g-#{$key},\n .#{$prefix}gx-#{$key} {\n --gutter-x: #{$value};\n }\n\n .#{$prefix}g-#{$key},\n .#{$prefix}gy-#{$key} {\n --gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .#{$prefix}g-col-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is an invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .#{$prefix}g-start-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/utilities\" as *;\n@use \"../utilities\" as *;\n\n@layer utilities {\n @include generate-utilities-loop($utilities, $breakpoints);\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"../layout/breakpoints\" as bp;\n\n// Utility generator\n\n// - Utilities can use three different types of selectors:\n// - class: .class\n// - attr-starts: [class^=\"class\"]\n// - attr-includes: [class*=\"class\"]\n// - Utilities can target children via `child-selector`, wrapped in :where() for zero specificity\n// - Utilities can generate regular CSS properties and CSS custom properties\n// - Utilities can be responsive or not\n// - Utilities can have state variants (e.g., hover, focus, active)\n// - Utilities can define local CSS variables\n//\n// CSS custom properties can be generated in two ways:\n//\n// 1. Property map with null values (CSS var receives the utility value):\n// \"bg-color\": (\n// property: (\n// \"--bg\": null,\n// \"background-color\": var(--bg)\n// ),\n// class: bg,\n// values: (\n// primary: var(--blue-500),\n// )\n// )\n// Generates:\n// .bg-primary {\n// --bs-bg: var(--bs-blue-500);\n// background-color: var(--bs-bg);\n// }\n//\n// 2. Variables map (static CSS custom properties on every class):\n// \"link-underline\": (\n// property: text-decoration-color,\n// class: link-underline,\n// variables: (\n// \"link-underline-opacity\": 1\n// ),\n// values: (...)\n// )\n// Generates:\n// .link-underline {\n// --bs-link-underline-opacity: 1;\n// text-decoration-color: ...;\n// }\n\n// Helper mixin to emit CSS custom properties from a utility's `variables` key.\n// When variables is a map, the provided static values are used on each class.\n// When variables is a list or single identifier, each variable receives the current utility value.\n@mixin generate-variables($utility, $value) {\n @if map.has-key($utility, variables) {\n $variables: map.get($utility, variables);\n @if meta.type-of($variables) == \"map\" {\n @each $var-key, $var-value in $variables {\n --#{$var-key}: #{$var-value};\n }\n } @else {\n // Treat as a list (or single identifier) — each variable gets the utility value\n @each $var-name in $variables {\n --#{$var-name}: #{$value};\n }\n }\n }\n}\n\n// Helper mixin to generate CSS properties for both legacy and property map approaches\n@mixin generate-properties($utility, $property-map, $properties, $value) {\n @if $property-map != null {\n // Property-Value Mapping approach\n @each $property, $default-value in $property-map {\n // If value is a map, check if it has a key for this property.\n // Otherwise, use default-value (or $value if default-value is null).\n $actual-value: $default-value;\n @if meta.type-of($value) == \"map\" and map.has-key($value, $property) {\n $actual-value: map.get($value, $property);\n } @else if $default-value == null {\n $actual-value: $value;\n }\n @if map.get($utility, important) {\n #{$property}: $actual-value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $actual-value;\n }\n }\n } @else {\n // Legacy approach\n @each $property in $properties {\n @if map.get($utility, important) {\n #{$property}: $value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $value;\n }\n }\n }\n}\n\n@mixin generate-utility($utility, $prefix: \"\") {\n // Validate required keys\n @if not map.has-key($utility, property) {\n @error \"Utility is missing required `property` key: #{$utility}\";\n }\n @if not map.has-key($utility, values) {\n @error \"Utility is missing required `values` key: #{$utility}\";\n }\n\n // Warn on unknown keys (likely typos)\n $valid-keys: property, values, class, selector, responsive, print, dark, important, state, variables, child-selector, enabled;\n @each $key in map.keys($utility) {\n @if not list.index($valid-keys, $key) {\n @warn \"Unknown utility key `#{$key}` found. Valid keys are: #{$valid-keys}\";\n }\n }\n\n // Validate boolean keys\n @each $bool-key in (responsive, print, dark, important, enabled) {\n @if map.has-key($utility, $bool-key) {\n $val: map.get($utility, $bool-key);\n @if $val != true and $val != false {\n @error \"Utility key `#{$bool-key}` should be a boolean (true or false), got: #{$val}\";\n }\n }\n }\n\n // Determine if we're generating a class, or an attribute selector\n $selector-type: \"class\";\n @if map.has-key($utility, selector) {\n $selector-type: map.get($utility, selector);\n // Validate selector type\n $valid-selectors: \"class\", \"attr-starts\", \"attr-includes\";\n @if not list.index($valid-selectors, $selector-type) {\n @error \"Invalid `selector` value `#{$selector-type}`. Must be one of: #{$valid-selectors}\";\n }\n }\n // Then get the class name to use in a class (e.g., .class) or in an attribute selector (e.g., [class^=\"class\"])\n $selector-class: map.get($utility, class);\n\n // Attribute selectors require a `class` key\n @if $selector-type != \"class\" and not map.has-key($utility, class) {\n @error \"Utility with `selector: #{$selector-type}` requires a `class` key.\";\n }\n\n // Get the list or map of values and ensure it's a map\n $values: map.get($utility, values);\n @if meta.type-of($values) != \"map\" {\n @if meta.type-of($values) == \"list\" {\n $list: ();\n @each $value in $values {\n $list: map.merge($list, ($value: $value));\n }\n $values: $list;\n } @else {\n $values: (null: $values);\n }\n }\n\n @each $key, $value in $values {\n $properties: map.get($utility, property);\n $property-map: null;\n $custom-class: \"\";\n\n // Check if property is a map (Property-Value Mapping approach)\n @if meta.type-of($properties) == \"map\" {\n $property-map: $properties;\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n }\n } @else {\n // Legacy approach: multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if meta.type-of($properties) == \"string\" {\n $properties: list.append((), $properties);\n }\n // Use custom class if present, otherwise use the first value from the list of properties\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n } @else {\n $custom-class: list.nth($properties, 1);\n }\n @if $custom-class == null {\n $custom-class: \"\";\n }\n }\n\n // State params to generate state variants\n $state: ();\n @if map.has-key($utility, state) {\n $state: map.get($utility, state);\n }\n\n // Don't add a dash before value key if value key is null (e.g. with shadow class)\n $custom-class-modifier: \"\";\n @if $key {\n @if $custom-class == \"\" {\n $custom-class-modifier: $key;\n } @else {\n $custom-class-modifier: \"-\" + $key;\n }\n }\n\n // Build the class name fragment (without prefix or dot) for reuse in state variants\n $class-name: \"\";\n @if $selector-type == \"class\" {\n @if $custom-class != \"\" {\n $class-name: $custom-class + $custom-class-modifier;\n } @else if $selector-class != null and $selector-class != \"\" {\n $class-name: $selector-class + $custom-class-modifier;\n } @else {\n $class-name: $custom-class-modifier;\n }\n }\n\n $selector: \"\";\n @if $selector-type == \"class\" {\n $selector: \".#{$prefix + $class-name}\";\n } @else if $selector-type == \"attr-starts\" {\n $selector: \"[class^=\\\"#{$selector-class}\\\"]\";\n } @else if $selector-type == \"attr-includes\" {\n $selector: \"[class*=\\\"#{$selector-class}\\\"]\";\n }\n\n // Apply child-selector wrapping if present (wraps in :where() for zero specificity)\n $child-sel: null;\n @if map.has-key($utility, child-selector) {\n $child-sel: map.get($utility, child-selector);\n }\n\n $final-selector: $selector;\n @if $child-sel {\n $final-selector: \":where(#{$selector} #{$child-sel})\";\n }\n\n #{$final-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n\n // Generate state variants (e.g., hover:link-10 instead of link-10-hover)\n @if $state != () {\n @each $state-variant in $state {\n $state-selector: \".#{$prefix}#{$state-variant}\\\\:#{$class-name}:#{$state-variant}\";\n @if $child-sel {\n $state-selector: \":where(#{$state-selector} #{$child-sel})\";\n }\n\n #{$state-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n }\n }\n }\n}\n\n// Generates all utility classes: base, responsive, print, and dark.\n// Extracted so that tests can call this mixin directly with a custom $utilities map\n// rather than having to mirror the loop conditions inline.\n@mixin generate-utilities-loop($utilities, $breakpoints) {\n // Base + responsive (one pass per breakpoint)\n @each $breakpoint in map.keys($breakpoints) {\n @include bp.media-breakpoint-up($breakpoint, $breakpoints) {\n $prefix: bp.breakpoint-prefix($breakpoint, $breakpoints);\n\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and (map.get($utility, responsive) or $prefix == \"\") {\n @include generate-utility($utility, $prefix);\n }\n }\n }\n }\n\n // Print utilities\n @media print {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, print) == true {\n @include generate-utility($utility, \"print\\\\:\");\n }\n }\n }\n\n // Dark utilities\n @media (prefers-color-scheme: dark) {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, dark) == true {\n @include generate-utility($utility, \"dark\\\\:\");\n }\n }\n }\n}\n","@use \"banner\" with (\n $file: \"Grid\"\n);\n\n@use \"config\" as *;\n@use \"functions\" as *;\n\n@forward \"utilities\"; // Make utilities available downstream\n@use \"utilities\" as *; // Bring utilities into the current namespace\n\n@forward \"layout/containers\";\n@forward \"layout/grid\";\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$utilities: map-get-multiple(\n $utilities,\n (\n \"display\",\n \"order\",\n \"grid-column-counts\",\n \"grid-columns\",\n \"grid-auto-flow\",\n \"gap\",\n \"row-gap\",\n \"column-gap\",\n \"flex\",\n \"flex-direction\",\n \"flex-grow\",\n \"flex-shrink\",\n \"flex-wrap\",\n \"justify-content\",\n \"justify-items\",\n \"align-items\",\n \"align-content\",\n \"align-self\",\n \"place-items\",\n \"margin\",\n \"margin-x\",\n \"margin-y\",\n \"margin-top\",\n \"margin-end\",\n \"margin-bottom\",\n \"margin-start\",\n \"negative-margin\",\n \"negative-margin-x\",\n \"negative-margin-y\",\n \"negative-margin-top\",\n \"negative-margin-end\",\n \"negative-margin-bottom\",\n \"negative-margin-start\",\n \"padding\",\n \"padding-x\",\n \"padding-y\",\n \"padding-top\",\n \"padding-end\",\n \"padding-bottom\",\n \"padding-start\",\n )\n);\n\n// check-unused-imports-disable-next-line — side-effect import: generates utility CSS.\n@use \"utilities/api\";\n\n:root {\n @each $name, $value in $breakpoints {\n --breakpoint-#{$name}: #{$value};\n }\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["../../scss/_banner.scss","../../scss/layout/_containers.scss","bootstrap-grid.css","../../scss/layout/_breakpoints.scss","../../scss/_config.scss","../../scss/layout/_grid.scss","../../scss/mixins/_grid.scss","../../scss/utilities/_api.scss","../../scss/mixins/_utilities.scss","../../scss/bootstrap-grid.scss"],"names":[],"mappings":"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AA;EJ4mCV;EI7mCQ;IACE,wBAAA;EJ+mCV;EIhnCQ;IACE,wBAAA;EJknCV;EInnCQ;IACE,wBAAA;EJqnCV;EItnCQ;IACE,wBAAA;EJwnCV;EIznCQ;IACE,wBAAA;EJ2nCV;EI5nCQ;IACE,wBAAA;EJ8nCV;EI/nCQ;IACE,wBAAA;EJioCV;EIloCQ;IACE,wBAAA;EJooCV;EIroCQ;IACE,yBAAA;EJuoCV;EIxoCQ;IACE,yBAAA;EJ0oCV;EI3oCQ;IACE,yBAAA;EJ6oCV;EItoCQ;IACE,oBAFS;EJ0oCnB;EIzoCQ;IACE,oBAFS;EJ6oCnB;EI5oCQ;IACE,oBAFS;EJgpCnB;EI/oCQ;IACE,oBAFS;EJmpCnB;EIlpCQ;IACE,oBAFS;EJspCnB;EIrpCQ;IACE,oBAFS;EJypCnB;EIxpCQ;IACE,oBAFS;EJ4pCnB;EI3pCQ;IACE,oBAFS;EJ+pCnB;EI9pCQ;IACE,oBAFS;EJkqCnB;EIjqCQ;IACE,qBAFS;EJqqCnB;EIpqCQ;IACE,qBAFS;EJwqCnB;EC5rCE;IGaM;MACE,wBAAA;IJkrCR;IInrCM;MACE,wBAAA;IJqrCR;IItrCM;MACE,wBAAA;IJwrCR;IIzrCM;MACE,wBAAA;IJ2rCR;II5rCM;MACE,wBAAA;IJ8rCR;II/rCM;MACE,wBAAA;IJisCR;IIlsCM;MACE,wBAAA;IJosCR;IIrsCM;MACE,wBAAA;IJusCR;IIxsCM;MACE,wBAAA;IJ0sCR;II3sCM;MACE,yBAAA;IJ6sCR;II9sCM;MACE,yBAAA;IJgtCR;IIjtCM;MACE,yBAAA;IJmtCR;II5sCM;MACE,oBAFS;IJgtCjB;II/sCM;MACE,oBAFS;IJmtCjB;IIltCM;MACE,oBAFS;IJstCjB;IIrtCM;MACE,oBAFS;IJytCjB;IIxtCM;MACE,oBAFS;IJ4tCjB;II3tCM;MACE,oBAFS;IJ+tCjB;II9tCM;MACE,oBAFS;IJkuCjB;IIjuCM;MACE,oBAFS;IJquCjB;IIpuCM;MACE,oBAFS;IJwuCjB;IIvuCM;MACE,qBAFS;IJ2uCjB;II1uCM;MACE,qBAFS;IJ8uCjB;EACF;ECnwCE;IGaM;MACE,wBAAA;IJyvCR;II1vCM;MACE,wBAAA;IJ4vCR;II7vCM;MACE,wBAAA;IJ+vCR;IIhwCM;MACE,wBAAA;IJkwCR;IInwCM;MACE,wBAAA;IJqwCR;IItwCM;MACE,wBAAA;IJwwCR;IIzwCM;MACE,wBAAA;IJ2wCR;II5wCM;MACE,wBAAA;IJ8wCR;II/wCM;MACE,wBAAA;IJixCR;IIlxCM;MACE,yBAAA;IJoxCR;IIrxCM;MACE,yBAAA;IJuxCR;IIxxCM;MACE,yBAAA;IJ0xCR;IInxCM;MACE,oBAFS;IJuxCjB;IItxCM;MACE,oBAFS;IJ0xCjB;IIzxCM;MACE,oBAFS;IJ6xCjB;II5xCM;MACE,oBAFS;IJgyCjB;II/xCM;MACE,oBAFS;IJmyCjB;IIlyCM;MACE,oBAFS;IJsyCjB;IIryCM;MACE,oBAFS;IJyyCjB;IIxyCM;MACE,oBAFS;IJ4yCjB;II3yCM;MACE,oBAFS;IJ+yCjB;II9yCM;MACE,qBAFS;IJkzCjB;IIjzCM;MACE,qBAFS;IJqzCjB;EACF;EC10CE;IGaM;MACE,wBAAA;IJg0CR;IIj0CM;MACE,wBAAA;IJm0CR;IIp0CM;MACE,wBAAA;IJs0CR;IIv0CM;MACE,wBAAA;IJy0CR;II10CM;MACE,wBAAA;IJ40CR;II70CM;MACE,wBAAA;IJ+0CR;IIh1CM;MACE,wBAAA;IJk1CR;IIn1CM;MACE,wBAAA;IJq1CR;IIt1CM;MACE,wBAAA;IJw1CR;IIz1CM;MACE,yBAAA;IJ21CR;II51CM;MACE,yBAAA;IJ81CR;II/1CM;MACE,yBAAA;IJi2CR;II11CM;MACE,oBAFS;IJ81CjB;II71CM;MACE,oBAFS;IJi2CjB;IIh2CM;MACE,oBAFS;IJo2CjB;IIn2CM;MACE,oBAFS;IJu2CjB;IIt2CM;MACE,oBAFS;IJ02CjB;IIz2CM;MACE,oBAFS;IJ62CjB;II52CM;MACE,oBAFS;IJg3CjB;II/2CM;MACE,oBAFS;IJm3CjB;IIl3CM;MACE,oBAFS;IJs3CjB;IIr3CM;MACE,qBAFS;IJy3CjB;IIx3CM;MACE,qBAFS;IJ43CjB;EACF;ECj5CE;IGaM;MACE,wBAAA;IJu4CR;IIx4CM;MACE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pDT;EMhkDE;IA5II,4BAoDG;EN2pDT;EMnkDE;IA5II,2BAoDG;EN8pDT;EMtkDE;IA5II,sBAoDG;ENiqDT;EMzkDE;IA5II,gBAoDG;ENoqDT;EM5kDE;IA5II,sBAoDG;ENuqDT;EM/kDE;IA5II,oBAoDG;EN0qDT;EMllDE;IA5II,kBAoDG;EN6qDT;EMrlDE;IA5II,oBAoDG;ENgrDT;EMxlDE;IA5II,mBAoDG;ENmrDT;EM3lDE;IA5II,kBAoDG;ENsrDT;EM9lDE;IA5II,gBAoDG;ENyrDT;EMjmDE;IA5II,mBAoDG;EN4rDT;EMpmDE;IA5II,oBAoDG;EN+rDT;EMvmDE;IA5II,0BAoDG;ENksDT;EM1mDE;IA5II,qCAoDG;ENqsDT;EM7mDE;IA5II,qCAoDG;ENwsDT;EMhnDE;IA5II,qCAoDG;EN2sDT;EMnnDE;IA5II,qCAoDG;EN8sDT;EMtnDE;IA5II,mBAoDG;ENitDT;EMznDE;IA5II,mBAyDO;EN+sDb;EM5nDE;IA5II,sBAyDO;ENktDb;EM/nDE;IA5II,qBAyDO;ENqtDb;EMloDE;IA5II,SAoDG;EN6tDT;EMroDE;IA5II,QAoDG;ENguDT;EMxoDE;IA5II,QAoDG;ENmuDT;EM3oDE;IA5II,QAoDG;ENsuDT;EM9oDE;IA5II,QAoDG;ENyuDT;EMjpDE;IA5II,QAoDG;EN4uDT;EMppDE;IA5II,QAoDG;EN+uDT;EMvpDE;IA5II,QAoDG;ENkvDT;EM1pDE;IA5II,SAoDG;ENqvDT;EM7pDE;IA5II,eAoDG;ENwvDT;EMhqDE;IA5II,cAoDG;EN2vDT;EMnqDE;IA5II,eAoDG;EN8vDT;EMtqDE;IA5II,YAoDG;ENiwDT;EMzqDE;IA5II,eAoDG;ENowDT;EM5qDE;IA5II,cAoDG;ENuwDT;EM/qDE;IA5II,YAoDG;EN0wDT;EMlrDE;IA5II,cAoDG;EN6wDT;EMrrDE;IA5II,YAoDG;ENgxDT;EMxrDE;IA5II,YAoDG;ENmxDT;EM3rDE;IA5II,gBAoDG;ENsxDT;EM9rDE;IA5II,sBAoDG;ENyxDT;EMjsDE;IA5II,qBAoDG;EN4xDT;EMpsDE;IA5II,sBAoDG;EN+xDT;EMvsDE;IA5II,mBAoDG;ENkyDT;EM1sDE;IA5II,sBAoDG;ENqyDT;EM7sDE;IA5II,qBAoDG;ENwyDT;EMhtDE;IA5II,mBAoDG;EN2yDT;EMntDE;IA5II,qBAoDG;EN8yDT;EMttDE;IA5II,mBAoDG;ENizDT;EMztDE;IA5II,mBAoDG;ENozDT;EM5tDE;IA5II,eAoDG;ENuzDT;EM/tDE;IA5II,qBAoDG;EN0zDT;EMluDE;IA5II,oBAoDG;EN6zDT;EMruDE;IA5II,qBAoDG;ENg0DT;EMxuDE;IA5II,kBAoDG;ENm0DT;EM3uDE;IA5II,qBAoDG;ENs0DT;EM9uDE;IA5II,oBAoDG;ENy0DT;EMjvDE;IA5II,kBAoDG;EN40DT;EMpvDE;IA5II,oBAoDG;EN+0DT;EMvvDE;IA5II,kBAoDG;ENk1DT;EM1vDE;IA5II,kBAoDG;ENq1DT;EM7vDE;IA5II,qBAoDG;ENw1DT;EMhwDE;IA5II,2BAoDG;EN21DT;EMnwDE;IA5II,0BAoDG;EN81DT;EMtwDE;IA5II,2BAoDG;ENi2DT;EMzwDE;IA5II,wBAoDG;ENo2DT;EM5wDE;IA5II,2BAoDG;ENu2DT;EM/wDE;IA5II,0BAoDG;EN02DT;EMlxDE;IA5II,wBAoDG;EN62DT;EMrxDE;IA5II,0BAoDG;ENg3DT;EMxxDE;IA5II,wBAoDG;ENm3DT;EM3xDE;IA5II,wBAoDG;ENs3DT;EM9xDE;IA5II,oBAoDG;ENy3DT;EMjyDE;IA5II,0BAoDG;EN43DT;EMpyDE;IA5II,yBAoDG;EN+3DT;EMvyDE;IA5II,0BAoDG;ENk4DT;EM1yDE;IA5II,uBAoDG;ENq4DT;EM7yDE;IA5II,0BAoDG;ENw4DT;EMhzDE;IA5II,yBAoDG;EN24DT;EMnzDE;IA5II,uBAoDG;EN84DT;EMtzDE;IA5II,yBAoDG;ENi5DT;EMzzDE;IA5II,uBAoDG;ENo5DT;EM5zDE;IA5II,2BAoDG;ENu5DT;EM/zDE;IA5II,0BAoDG;EN05DT;EMl0DE;IA5II,uBAoDG;EN65DT;EMr0DE;IA5II,mBAoDG;ENg6DT;EMx0DE;IA5II,yBAoDG;ENm6DT;EM30DE;IA5II,wBAoDG;ENs6DT;EM90DE;IA5II,yBAoDG;ENy6DT;EMj1DE;IA5II,sBAoDG;EN46DT;EMp1DE;IA5II,yBAoDG;EN+6DT;EMv1DE;IA5II,wBAoDG;ENk7DT;EM11DE;IA5II,sBAoDG;ENq7DT;EM71DE;IA5II,wBAoDG;ENw7DT;EMh2DE;IA5II,sBAoDG;EN27DT;EMn2DE;IA5II,sBAoDG;EN87DT;EMt2DE;IA5II,sBAoDG;ENi8DT;EMz2DE;IA5II,4BAoDG;ENo8DT;EM52DE;IA5II,2BAoDG;ENu8DT;EM/2DE;IA5II,4BAoDG;EN08DT;EMl3DE;IA5II,yBAoDG;EN68DT;EMr3DE;IA5II,4BAoDG;ENg9DT;EMx3DE;IA5II,2BAoDG;ENm9DT;EM33DE;IA5II,yBAoDG;ENs9DT;EM93DE;IA5II,2BAoDG;ENy9DT;EMj4DE;IA5II,yBAoDG;EN49DT;EMp4DE;IA5II,6BAoDG;EN+9DT;EMv4DE;IA5II,4BAoDG;ENk+DT;EM14DE;IA5II,yBAoDG;ENq+DT;EM74DE;IA5II,UAoDG;ENw+DT;EMh5DE;IA5II,gBAoDG;EN2+DT;EMn5DE;IA5II,eAoDG;EN8+DT;EMt5DE;IA5II,gBAoDG;ENi/DT;EMz5DE;IA5II,aAoDG;ENo/DT;EM55DE;IA5II,gBAoDG;ENu/DT;EM/5DE;IA5II,eAoDG;EN0/DT;EMl6DE;IA5II,aAoDG;EN6/DT;EMr6DE;IA5II,eAoDG;ENggET;EMx6DE;IA5II,aAoDG;ENmgET;EM36DE;IA5II,iBAoDG;ENsgET;EM96DE;IA5II,uBAoDG;ENygET;EMj7DE;IA5II,sBAoDG;EN4gET;EMp7DE;IA5II,uBAoDG;EN+gET;EMv7DE;IA5II,oBAoDG;ENkhET;EM17DE;IA5II,uBAoDG;ENqhET;EM77DE;IA5II,sBAoDG;ENwhET;EMh8DE;IA5II,oBAoDG;EN2hET;EMn8DE;IA5II,sBAoDG;EN8hET;EMt8DE;IA5II,oBAoDG;ENiiET;EMz8DE;IA5II,gBAoDG;ENoiET;EM58DE;IA5II,sBAoDG;ENuiET;EM/8DE;IA5II,qBAoDG;EN0iET;EMl9DE;IA5II,sBAoDG;EN6iET;EMr9DE;IA5II,mBAoDG;ENgjET;EMx9DE;IA5II,sBAoDG;ENmjET;EM39DE;IA5II,qBAoDG;ENsjET;EM99DE;IA5II,mBAoDG;ENyjET;EMj+DE;IA5II,qBAoDG;EN4jET;EMp+DE;IA5II,mBAoDG;EN+jET;EMv+DE;IA5II,sBAoDG;ENkkET;EM1+DE;IA5II,4BAoDG;ENqkET;EM7+DE;IA5II,2BAoDG;ENwkET;EMh/DE;IA5II,4BAoDG;EN2kET;EMn/DE;IA5II,yBAoDG;EN8kET;EMt/DE;IA5II,4BAoDG;ENilET;EMz/DE;IA5II,2BAoDG;ENolET;EM5/DE;IA5II,yBAoDG;ENulET;EM//DE;IA5II,2BAoDG;EN0lET;EMlgEE;IA5II,yBAoDG;EN6lET;EMrgEE;IA5II,qBAoDG;ENgmET;EMxgEE;IA5II,2BAoDG;ENmmET;EM3gEE;IA5II,0BAoDG;ENsmET;EM9gEE;IA5II,2BAoDG;ENymET;EMjhEE;IA5II,wBAoDG;EN4mET;EMphEE;IA5II,2BAoDG;EN+mET;EMvhEE;IA5II,0BAoDG;ENknET;EM1hEE;IA5II,wBAoDG;ENqnET;EM7hEE;IA5II,0BAoDG;ENwnET;EMhiEE;IA5II,wBAoDG;EN2nET;EMniEE;IA5II,oBAoDG;EN8nET;EMtiEE;IA5II,0BAoDG;ENioET;EMziEE;IA5II,yBAoDG;ENooET;EM5iEE;IA5II,0BAoDG;ENuoET;EM/iEE;IA5II,uBAoDG;EN0oET;EMljEE;IA5II,0BAoDG;EN6oET;EMrjEE;IA5II,yBAoDG;ENgpET;EMxjEE;IA5II,uBAoDG;ENmpET;EM3jEE;IA5II,yBAoDG;ENspET;EM9jEE;IA5II,uBAoDG;ENypET;EMjkEE;IA5II,uBAoDG;EN4pET;EMpkEE;IA5II,6BAoDG;EN+pET;EMvkEE;IA5II,4BAoDG;ENkqET;EM1kEE;IA5II,6BAoDG;ENqqET;EM7kEE;IA5II,0BAoDG;ENwqET;EMhlEE;IA5II,6BAoDG;EN2qET;EMnlEE;IA5II,4BAoDG;EN8qET;EMtlEE;IA5II,0BAoDG;ENirET;EMzlEE;IA5II,4BAoDG;ENorET;EM5lEE;IA5II,0BAoDG;ENurET;EM/lEE;IA5II,MAoDG;EN0rET;EMlmEE;IA5II,YAoDG;EN6rET;EMrmEE;IA5II,WAoDG;ENgsET;EMxmEE;IA5II,YAoDG;ENmsET;EM3mEE;IA5II,SAoDG;ENssET;EM9mEE;IA5II,YAoDG;ENysET;EMjnEE;IA5II,WAoDG;EN4sET;EMpnEE;IA5II,SAoDG;EN+sET;EMvnEE;IA5II,WAoDG;ENktET;EM1nEE;IA5II,SAoDG;ENqtET;EM7nEE;IA5II,UAoDG;ENwtET;EMhoEE;IA5II,gBAoDG;EN2tET;EMnoEE;IA5II,eAoDG;EN8tET;EMtoEE;IA5II,gBAoDG;ENiuET;EMzoEE;IA5II,aAoDG;ENouET;EM5oEE;IA5II,gBAoDG;ENuuET;EM/oEE;IA5II,eAoDG;EN0uET;EMlpEE;IA5II,aAoDG;EN6uET;EMrpEE;IA5II,eAoDG;ENgvET;EMxpEE;IA5II,aAoDG;ENmvET;EM3pEE;IA5II,aAoDG;ENsvET;EM9pEE;IA5II,mBAoDG;ENyvET;EMjqEE;IA5II,kBAoDG;EN4vET;EMpqEE;IA5II,mBAoDG;EN+vET;EMvqEE;IA5II,gBAoDG;ENkwET;EM1qEE;IA5II,mBAoDG;ENqwET;EM7qEE;IA5II,kBAoDG;ENwwET;EMhrEE;IA5II,gBAoDG;EN2wET;EMnrEE;IA5II,kBAoDG;EN8wET;EMtrEE;IA5II,gBAoDG;ENixET;ECryEE;IK4GA;MA5II,eAyDO;INgxEX;IM7rEA;MA5II,qBAyDO;INmxEX;IMhsEA;MA5II,cAyDO;INsxEX;IMnsEA;MA5II,aAyDO;INyxEX;IMtsEA;MA5II,oBAyDO;IN4xEX;IMzsEA;MA5II,cAyDO;IN+xEX;IM5sEA;MA5II,kBAyDO;INkyEX;IM/sEA;MA5II,mBAyDO;INqyEX;IMltEA;MA5II,aAyDO;INwyEX;IMrtEA;MA5II,oBAyDO;IN2yEX;IMxtEA;MA5II,iBAyDO;IN8yEX;IM3tEA;MA5II,kBAyDO;INizEX;IM9tEA;MA5II,aAyDO;INozEX;IMjuEA;MA5II,cAoDG;IN4zEP;IMpuEA;MA5II,mBAyDO;IN0zEX;IMvuEA;MA5II,sBAyDO;IN6zEX;IM1uEA;MA5II,2BAyDO;INg0EX;IM7uEA;MA5II,8BAyDO;INm0EX;IMhvEA;MA5II,YAoDG;IN20EP;IMnvEA;MA5II,YAoDG;IN80EP;IMtvEA;MA5II,cAoDG;INi1EP;IMzvEA;MA5II,cAoDG;INo1EP;IM5vEA;MA5II,eAyDO;INk1EX;IM/vEA;MA5II,iBAyDO;INq1EX;IMlwEA;MA5II,uBAyDO;INw1EX;IMrwEA;MA5II,2BAoDG;INg2EP;IMxwEA;MA5II,yBAoDG;INm2EP;IM3wEA;MA5II,uBAoDG;INs2EP;IM9wEA;MA5II,8BAoDG;INy2EP;IMjxEA;MA5II,6BAoDG;IN42EP;IMpxEA;MA5II,6BAoDG;IN+2EP;IMvxEA;MA5II,oBAoDG;INk3EP;IM1xEA;MA5II,kBAoDG;INq3EP;IM7xEA;MA5II,qBAoDG;INw3EP;IMhyEA;MA5II,sBAoDG;IN23EP;IMnyEA;MA5II,uBAoDG;IN83EP;IMtyEA;MA5II,qBAoDG;INi4EP;IMzyEA;MA5II,mBAoDG;INo4EP;IM5yEA;MA5II,qBAoDG;INu4EP;IM/yEA;MA5II,oBAoDG;IN04EP;IMlzEA;MA5II,yBAoDG;IN64EP;IMrzEA;MA5II,uBAoDG;INg5EP;IMxzEA;MA5II,qBAoDG;INm5EP;IM3zEA;MA5II,4BAoDG;INs5EP;IM9zEA;MA5II,2BAoDG;INy5EP;IMj0EA;MA5II,sBAoDG;IN45EP;IMp0EA;MA5II,gBAoDG;IN+5EP;IMv0EA;MA5II,sBAoDG;INk6EP;IM10EA;MA5II,oBAoDG;INq6EP;IM70EA;MA5II,kBAoDG;INw6EP;IMh1EA;MA5II,oBAoDG;IN26EP;IMn1EA;MA5II,mBAoDG;IN86EP;IMt1EA;MA5II,kBAoDG;INi7EP;IMz1EA;MA5II,gBAoDG;INo7EP;IM51EA;MA5II,mBAoDG;INu7EP;IM/1EA;MA5II,oBAoDG;IN07EP;IMl2EA;MA5II,0BAoDG;IN67EP;IMr2EA;MA5II,qCAoDG;INg8EP;IMx2EA;MA5II,qCAoDG;INm8EP;IM32EA;MA5II,qCAoDG;INs8EP;IM92EA;MA5II,qCAoDG;INy8EP;IMj3EA;MA5II,mBAoDG;IN48EP;IMp3EA;MA5II,mBAyDO;IN08EX;IMv3EA;MA5II,sBAyDO;IN68EX;IM13EA;MA5II,qBAyDO;INg9EX;IM73EA;MA5II,SAoDG;INw9EP;IMh4EA;MA5II,QAoDG;IN29EP;IMn4EA;MA5II,QAoDG;IN89EP;IMt4EA;MA5II,QAoDG;INi+EP;IMz4EA;MA5II,QAoDG;INo+EP;IM54EA;MA5II,QAoDG;INu+EP;IM/4EA;MA5II,QAoDG;IN0+EP;IMl5EA;MA5II,QAoDG;IN6+EP;IMr5EA;MA5II,SAoDG;INg/EP;IMx5EA;MA5II,eAoDG;INm/EP;IM35EA;MA5II,cAoDG;INs/EP;IM95EA;MA5II,eAoDG;INy/EP;IMj6EA;MA5II,YAoDG;IN4/EP;IMp6EA;MA5II,eAoDG;IN+/EP;IMv6EA;MA5II,cAoDG;INkgFP;IM16EA;MA5II,YAoDG;INqgFP;IM76EA;MA5II,cAoDG;INwgFP;IMh7EA;MA5II,YAoDG;IN2gFP;IMn7EA;MA5II,YAoDG;IN8gFP;IMt7EA;MA5II,gBAoDG;INihFP;IMz7EA;MA5II,sBAoDG;INohFP;IM57EA;MA5II,qBAoDG;INuhFP;IM/7EA;MA5II,sBAoDG;IN0hFP;IMl8EA;MA5II,mBAoDG;IN6hFP;IMr8EA;MA5II,sBAoDG;INgiFP;IMx8EA;MA5II,qBAoDG;INmiFP;IM38EA;MA5II,mBAoDG;INsiFP;IM98EA;MA5II,qBAoDG;INyiFP;IMj9EA;MA5II,mBAoDG;IN4iFP;IMp9EA;MA5II,mBAoDG;IN+iFP;IMv9EA;MA5II,eAoDG;INkjFP;IM19EA;MA5II,qBAoDG;INqjFP;IM79EA;MA5II,oBAoDG;INwjFP;IMh+EA;MA5II,qBAoDG;IN2jFP;IMn+EA;MA5II,kBAoDG;IN8jFP;IMt+EA;MA5II,qBAoDG;INikFP;IMz+EA;MA5II,oBAoDG;INokFP;IM5+EA;MA5II,kBAoDG;INukFP;IM/+EA;MA5II,oBAoDG;IN0kFP;IMl/EA;MA5II,kBAoDG;IN6kFP;IMr/EA;MA5II,kBAoDG;INglFP;IMx/EA;MA5II,qBAoDG;INmlFP;IM3/EA;MA5II,2BAoDG;INslFP;IM9/EA;MA5II,0BAoDG;INylFP;IMjgFA;MA5II,2BAoDG;IN4lFP;IMpgFA;MA5II,wBAoDG;IN+lFP;IMvgFA;MA5II,2BAoDG;INkmFP;IM1gFA;MA5II,0BAoDG;INqmFP;IM7gFA;MA5II,wBAoDG;INwmFP;IMhhFA;MA5II,0BAoDG;IN2mFP;IMnhFA;MA5II,wBAoDG;IN8mFP;IMthFA;MA5II,wBAoDG;INinFP;IMzhFA;MA5II,oBAoDG;INonFP;IM5hFA;MA5II,0BAoDG;INunFP;IM/hFA;MA5II,yBAoDG;IN0nFP;IMliFA;MA5II,0BAoDG;IN6nFP;IMriFA;MA5II,uBAoDG;INgoFP;IMxiFA;MA5II,0BAoDG;INmoFP;IM3iFA;MA5II,yBAoDG;INsoFP;IM9iFA;MA5II,uBAoDG;INyoFP;IMjjFA;MA5II,yBAoDG;IN4oFP;IMpjFA;MA5II,uBAoDG;IN+oFP;IMvjFA;MA5II,2BAoDG;INkpFP;IM1jFA;MA5II,0BAoDG;INqpFP;IM7jFA;MA5II,uBAoDG;INwpFP;IMhkFA;MA5II,mBAoDG;IN2pFP;IMnkFA;MA5II,yBAoDG;IN8pFP;IMtkFA;MA5II,wBAoDG;INiqFP;IMzkFA;MA5II,yBAoDG;INoqFP;IM5kFA;MA5II,sBAoDG;INuqFP;IM/kFA;MA5II,yBAoDG;IN0qFP;IMllFA;MA5II,wBAoDG;IN6qFP;IMrlFA;MA5II,sBAoDG;INgrFP;IMxlFA;MA5II,wBAoDG;INmrFP;IM3lFA;MA5II,sBAoDG;INsrFP;IM9lFA;MA5II,sBAoDG;INyrFP;IMjmFA;MA5II,sBAoDG;IN4rFP;IMpmFA;MA5II,4BAoDG;IN+rFP;IMvmFA;MA5II,2BAoDG;INksFP;IM1mFA;MA5II,4BAoDG;INqsFP;IM7mFA;MA5II,yBAoDG;INwsFP;IMhnFA;MA5II,4BAoDG;IN2sFP;IMnnFA;MA5II,2BAoDG;IN8sFP;IMtnFA;MA5II,yBAoDG;INitFP;IMznFA;MA5II,2BAoDG;INotFP;IM5nFA;MA5II,yBAoDG;INutFP;IM/nFA;MA5II,6BAoDG;IN0tFP;IMloFA;MA5II,4BAoDG;IN6tFP;IMroFA;MA5II,yBAoDG;INguFP;IMxoFA;MA5II,UAoDG;INmuFP;IM3oFA;MA5II,gBAoDG;INsuFP;IM9oFA;MA5II,eAoDG;INyuFP;IMjpFA;MA5II,gBAoDG;IN4uFP;IMppFA;MA5II,aAoDG;IN+uFP;IMvpFA;MA5II,gBAoDG;INkvFP;IM1pFA;MA5II,eAoDG;INqvFP;IM7pFA;MA5II,aAoDG;INwvFP;IMhqFA;MA5II,eAoDG;IN2vFP;IMnqFA;MA5II,aAoDG;IN8vFP;IMtqFA;MA5II,iBAoDG;INiwFP;IMzqFA;MA5II,uBAoDG;INowFP;IM5qFA;MA5II,sBAoDG;INuwFP;IM/qFA;MA5II,uBAoDG;IN0wFP;IMlrFA;MA5II,oBAoDG;IN6wFP;IMrrFA;MA5II,uBAoDG;INgxFP;IMxrFA;MA5II,sBAoDG;INmxFP;IM3rFA;MA5II,oBAoDG;INsxFP;IM9rFA;MA5II,sBAoDG;INyxFP;IMjsFA;MA5II,oBAoDG;IN4xFP;IMpsFA;MA5II,gBAoDG;IN+xFP;IMvsFA;MA5II,sBAoDG;INkyFP;IM1sFA;MA5II,qBAoDG;INqyFP;IM7sFA;MA5II,sBAoDG;INwyFP;IMhtFA;MA5II,mBAoDG;IN2yFP;IMntFA;MA5II,sBAoDG;IN8yFP;IMttFA;MA5II,qBAoDG;INizFP;IMztFA;MA5II,mBAoDG;INozFP;IM5tFA;MA5II,qBAoDG;INuzFP;IM/tFA;MA5II,mBAoDG;IN0zFP;IMluFA;MA5II,sBAoDG;IN6zFP;IMruFA;MA5II,4BAoDG;INg0FP;IMxuFA;MA5II,2BAoDG;INm0FP;IM3uFA;MA5II,4BAoDG;INs0FP;IM9uFA;MA5II,yBAoDG;INy0FP;IMjvFA;MA5II,4BAoDG;IN40FP;IMpvFA;MA5II,2BAoDG;IN+0FP;IMvvFA;MA5II,yBAoDG;INk1FP;IM1vFA;MA5II,2BAoDG;INq1FP;IM7vFA;MA5II,yBAoDG;INw1FP;IMhwFA;MA5II,qBAoDG;IN21FP;IMnwFA;MA5II,2BAoDG;IN81FP;IMtwFA;MA5II,0BAoDG;INi2FP;IMzwFA;MA5II,2BAoDG;INo2FP;IM5wFA;MA5II,wBAoDG;INu2FP;IM/wFA;MA5II,2BAoDG;IN02FP;IMlxFA;MA5II,0BAoDG;IN62FP;IMrxFA;MA5II,wBAoDG;INg3FP;IMxxFA;MA5II,0BAoDG;INm3FP;IM3xFA;MA5II,wBAoDG;INs3FP;IM9xFA;MA5II,oBAoDG;INy3FP;IMjyFA;MA5II,0BAoDG;IN43FP;IMpyFA;MA5II,yBAoDG;IN+3FP;IMvyFA;MA5II,0BAoDG;INk4FP;IM1yFA;MA5II,uBAoDG;INq4FP;IM7yFA;MA5II,0BAoDG;INw4FP;IMhzFA;MA5II,yBAoDG;IN24FP;IMnzFA;MA5II,uBAoDG;IN84FP;IMtzFA;MA5II,yBAoDG;INi5FP;IMzzFA;MA5II,uBAoDG;INo5FP;IM5zFA;MA5II,uBAoDG;INu5FP;IM/zFA;MA5II,6BAoDG;IN05FP;IMl0FA;MA5II,4BAoDG;IN65FP;IMr0FA;MA5II,6BAoDG;INg6FP;IMx0FA;MA5II,0BAoDG;INm6FP;IM30FA;MA5II,6BAoDG;INs6FP;IM90FA;MA5II,4BAoDG;INy6FP;IMj1FA;MA5II,0BAoDG;IN46FP;IMp1FA;MA5II,4BAoDG;IN+6FP;IMv1FA;MA5II,0BAoDG;INk7FP;IM11FA;MA5II,MAoDG;INq7FP;IM71FA;MA5II,YAoDG;INw7FP;IMh2FA;MA5II,WAoDG;IN27FP;IMn2FA;MA5II,YAoDG;IN87FP;IMt2FA;MA5II,SAoDG;INi8FP;IMz2FA;MA5II,YAoDG;INo8FP;IM52FA;MA5II,WAoDG;INu8FP;IM/2FA;MA5II,SAoDG;IN08FP;IMl3FA;MA5II,WAoDG;IN68FP;IMr3FA;MA5II,SAoDG;INg9FP;IMx3FA;MA5II,UAoDG;INm9FP;IM33FA;MA5II,gBAoDG;INs9FP;IM93FA;MA5II,eAoDG;INy9FP;IMj4FA;MA5II,gBAoDG;IN49FP;IMp4FA;MA5II,aAoDG;IN+9FP;IMv4FA;MA5II,gBAoDG;INk+FP;IM14FA;MA5II,eAoDG;INq+FP;IM74FA;MA5II,aAoDG;INw+FP;IMh5FA;MA5II,eAoDG;IN2+FP;IMn5FA;MA5II,aAoDG;IN8+FP;IMt5FA;MA5II,aAoDG;INi/FP;IMz5FA;MA5II,mBAoDG;INo/FP;IM55FA;MA5II,kBAoDG;INu/FP;IM/5FA;MA5II,mBAoDG;IN0/FP;IMl6FA;MA5II,gBAoDG;IN6/FP;IMr6FA;MA5II,mBAoDG;INggGP;IMx6FA;MA5II,kBAoDG;INmgGP;IM36FA;MA5II,gBAoDG;INsgGP;IM96FA;MA5II,kBAoDG;INygGP;IMj7FA;MA5II,gBAoDG;IN4gGP;EACF;ECjiGE;IK4GA;MA5II,eAyDO;IN4gGX;IMz7FA;MA5II,qBAyDO;IN+gGX;IM57FA;MA5II,cAyDO;INkhGX;IM/7FA;MA5II,aAyDO;INqhGX;IMl8FA;MA5II,oBAyDO;INwhGX;IMr8FA;MA5II,cAyDO;IN2hGX;IMx8FA;MA5II,kBAyDO;IN8hGX;IM38FA;MA5II,mBAyDO;INiiGX;IM98FA;MA5II,aAyDO;INoiGX;IMj9FA;MA5II,oBAyDO;INuiGX;IMp9FA;MA5II,iBAyDO;IN0iGX;IMv9FA;MA5II,kBAyDO;IN6iGX;IM19FA;MA5II,aAyDO;INgjGX;IM79FA;MA5II,cAoDG;INwjGP;IMh+FA;MA5II,mBAyDO;INsjGX;IMn+FA;MA5II,sBAyDO;INyjGX;IMt+FA;MA5II,2BAyDO;IN4jGX;IMz+FA;MA5II,8BAyDO;IN+jGX;IM5+FA;MA5II,YAoDG;INukGP;IM/+FA;MA5II,YAoDG;IN0kGP;IMl/FA;MA5II,cAoDG;IN6kGP;IMr/FA;MA5II,cAoDG;INglGP;IMx/FA;MA5II,eAyDO;IN8kGX;IM3/FA;MA5II,iBAyDO;INilGX;IM9/FA;MA5II,uBAyDO;INolGX;IMjgGA;MA5II,2BAoDG;IN4lGP;IMpgGA;MA5II,yBAoDG;IN+lGP;IMvgGA;MA5II,uBAoDG;INkmGP;IM1gGA;MA5II,8BAoDG;INqmGP;IM7gGA;MA5II,6BAoDG;INwmGP;IMhhGA;MA5II,6BAoDG;IN2mGP;IMnhGA;MA5II,oBAoDG;IN8mGP;IMthGA;MA5II,kBAoDG;INinGP;IMzhGA;MA5II,qBAoDG;INonGP;IM5hGA;MA5II,sBAoDG;INunGP;IM/hGA;MA5II,uBAoDG;IN0nGP;IMliGA;MA5II,qBAoDG;IN6nGP;IMriGA;MA5II,mBAoDG;INgoGP;IMxiGA;MA5II,qBAoDG;INmoGP;IM3iGA;MA5II,oBAoDG;INsoGP;IM9iGA;MA5II,yBAoDG;INyoGP;IMjjGA;MA5II,uBAoDG;IN4oGP;IMpjGA;MA5II,qBAoDG;IN+oGP;IMvjGA;MA5II,4BAoDG;INkpGP;IM1jGA;MA5II,2BAoDG;INqpGP;IM7jGA;MA5II,sBAoDG;INwpGP;IMhkGA;MA5II,gBAoDG;IN2pGP;IMnkGA;MA5II,sBAoDG;IN8pGP;IMtkGA;MA5II,oBAoDG;INiqGP;IMzkGA;MA5II,kBAoDG;INoqGP;IM5kGA;MA5II,oBAoDG;INuqGP;IM/kGA;MA5II,mBAoDG;IN0qGP;IMllGA;MA5II,kBAoDG;IN6qGP;IMrlGA;MA5II,gBAoDG;INgrGP;IMxlGA;MA5II,mBAoDG;INmrGP;IM3lGA;MA5II,oBAoDG;INsrGP;IM9lGA;MA5II,0BAoDG;INyrGP;IMjmGA;MA5II,qCAoDG;IN4rGP;IMpmGA;MA5II,qCAoDG;IN+rGP;IMvmGA;MA5II,qCAoDG;INksGP;IM1mGA;MA5II,qCAoDG;INqsGP;IM7mGA;MA5II,mBAoDG;INwsGP;IMhnGA;MA5II,mBAyDO;INssGX;IMnnGA;MA5II,sBAyDO;INysGX;IMtnGA;MA5II,qBAyDO;IN4sGX;IMznGA;MA5II,SAoDG;INotGP;IM5nGA;MA5II,QAoDG;INutGP;IM/nGA;MA5II,QAoDG;IN0tGP;IMloGA;MA5II,QAoDG;IN6tGP;IMroGA;MA5II,QAoDG;INguGP;IMxoGA;MA5II,QAoDG;INmuGP;IM3oGA;MA5II,QAoDG;INsuGP;IM9oGA;MA5II,QAoDG;INyuGP;IMjpGA;MA5II,SAoDG;IN4uGP;IMppGA;MA5II,eAoDG;IN+uGP;IMvpGA;MA5II,cAoDG;INkvGP;IM1pGA;MA5II,eAoDG;INqvGP;IM7pGA;MA5II,YAoDG;INwvGP;IMhqGA;MA5II,eAoDG;IN2vGP;IMnqGA;MA5II,cAoDG;IN8vGP;IMtqGA;MA5II,YAoDG;INiwGP;IMzqGA;MA5II,cAoDG;INowGP;IM5qGA;MA5II,YAoDG;INuwGP;IM/qGA;MA5II,YAoDG;IN0wGP;IMlrGA;MA5II,gBAoDG;IN6wGP;IMrrGA;MA5II,sBAoDG;INgxGP;IMxrGA;MA5II,qBAoDG;INmxGP;IM3rGA;MA5II,sBAoDG;INsxGP;IM9rGA;MA5II,mBAoDG;INyxGP;IMjsGA;MA5II,sBAoDG;IN4xGP;IMpsGA;MA5II,qBAoDG;IN+xGP;IMvsGA;MA5II,mBAoDG;INkyGP;IM1sGA;MA5II,qBAoDG;INqyGP;IM7sGA;MA5II,mBAoDG;INwyGP;IMhtGA;MA5II,mBAoDG;IN2yGP;IMntGA;MA5II,eAoDG;IN8yGP;IMttGA;MA5II,qBAoDG;INizGP;IMztGA;MA5II,oBAoDG;INozGP;IM5tGA;MA5II,qBAoDG;INuzGP;IM/tGA;MA5II,kBAoDG;IN0zGP;IMluGA;MA5II,qBAoDG;IN6zGP;IMruGA;MA5II,oBAoDG;INg0GP;IMxuGA;MA5II,kBAoDG;INm0GP;IM3uGA;MA5II,oBAoDG;INs0GP;IM9uGA;MA5II,kBAoDG;INy0GP;IMjvGA;MA5II,kBAoDG;IN40GP;IMpvGA;MA5II,qBAoDG;IN+0GP;IMvvGA;MA5II,2BAoDG;INk1GP;IM1vGA;MA5II,0BAoDG;INq1GP;IM7vGA;MA5II,2BAoDG;INw1GP;IMhwGA;MA5II,wBAoDG;IN21GP;IMnwGA;MA5II,2BAoDG;IN81GP;IMtwGA;MA5II,0BAoDG;INi2GP;IMzwGA;MA5II,wBAoDG;INo2GP;IM5wGA;MA5II,0BAoDG;INu2GP;IM/wGA;MA5II,wBAoDG;IN02GP;IMlxGA;MA5II,wBAoDG;IN62GP;IMrxGA;MA5II,oBAoDG;INg3GP;IMxxGA;MA5II,0BAoDG;INm3GP;IM3xGA;MA5II,yBAoDG;INs3GP;IM9xGA;MA5II,0BAoDG;INy3GP;IMjyGA;MA5II,uBAoDG;IN43GP;IMpyGA;MA5II,0BAoDG;IN+3GP;IMvyGA;MA5II,yBAoDG;INk4GP;IM1yGA;MA5II,uBAoDG;INq4GP;IM7yGA;MA5II,yBAoDG;INw4GP;IMhzGA;MA5II,uBAoDG;IN24GP;IMnzGA;MA5II,2BAoDG;IN84GP;IMtzGA;MA5II,0BAoDG;INi5GP;IMzzGA;MA5II,uBAoDG;INo5GP;IM5zGA;MA5II,mBAoDG;INu5GP;IM/zGA;MA5II,yBAoDG;IN05GP;IMl0GA;MA5II,wBAoDG;IN65GP;IMr0GA;MA5II,yBAoDG;INg6GP;IMx0GA;MA5II,sBAoDG;INm6GP;IM30GA;MA5II,yBAoDG;INs6GP;IM90GA;MA5II,wBAoDG;INy6GP;IMj1GA;MA5II,sBAoDG;IN46GP;IMp1GA;MA5II,wBAoDG;IN+6GP;IMv1GA;MA5II,sBAoDG;INk7GP;IM11GA;MA5II,sBAoDG;INq7GP;IM71GA;MA5II,sBAoDG;INw7GP;IMh2GA;MA5II,4BAoDG;IN27GP;IMn2GA;MA5II,2BAoDG;IN87GP;IMt2GA;MA5II,4BAoDG;INi8GP;IMz2GA;MA5II,yBAoDG;INo8GP;IM52GA;MA5II,4BAoDG;INu8GP;IM/2GA;MA5II,2BAoDG;IN08GP;IMl3GA;MA5II,yBAoDG;IN68GP;IMr3GA;MA5II,2BAoDG;INg9GP;IMx3GA;MA5II,yBAoDG;INm9GP;IM33GA;MA5II,6BAoDG;INs9GP;IM93GA;MA5II,4BAoDG;INy9GP;IMj4GA;MA5II,yBAoDG;IN49GP;IMp4GA;MA5II,UAoDG;IN+9GP;IMv4GA;MA5II,gBAoDG;INk+GP;IM14GA;MA5II,eAoDG;INq+GP;IM74GA;MA5II,gBAoDG;INw+GP;IMh5GA;MA5II,aAoDG;IN2+GP;IMn5GA;MA5II,gBAoDG;IN8+GP;IMt5GA;MA5II,eAoDG;INi/GP;IMz5GA;MA5II,aAoDG;INo/GP;IM55GA;MA5II,eAoDG;INu/GP;IM/5GA;MA5II,aAoDG;IN0/GP;IMl6GA;MA5II,iBAoDG;IN6/GP;IMr6GA;MA5II,uBAoDG;INggHP;IMx6GA;MA5II,sBAoDG;INmgHP;IM36GA;MA5II,uBAoDG;INsgHP;IM96GA;MA5II,oBAoDG;INygHP;IMj7GA;MA5II,uBAoDG;IN4gHP;IMp7GA;MA5II,sBAoDG;IN+gHP;IMv7GA;MA5II,oBAoDG;INkhHP;IM17GA;MA5II,sBAoDG;INqhHP;IM77GA;MA5II,oBAoDG;INwhHP;IMh8GA;MA5II,gBAoDG;IN2hHP;IMn8GA;MA5II,sBAoDG;IN8hHP;IMt8GA;MA5II,qBAoDG;INiiHP;IMz8GA;MA5II,sBAoDG;INoiHP;IM58GA;MA5II,mBAoDG;INuiHP;IM/8GA;MA5II,sBAoDG;IN0iHP;IMl9GA;MA5II,qBAoDG;IN6iHP;IMr9GA;MA5II,mBAoDG;INgjHP;IMx9GA;MA5II,qBAoDG;INmjHP;IM39GA;MA5II,mBAoDG;INsjHP;IM99GA;MA5II,sBAoDG;INyjHP;IMj+GA;MA5II,4BAoDG;IN4jHP;IMp+GA;MA5II,2BAoDG;IN+jHP;IMv+GA;MA5II,4BAoDG;INkkHP;IM1+GA;MA5II,yBAoDG;INqkHP;IM7+GA;MA5II,4BAoDG;INwkHP;IMh/GA;MA5II,2BAoDG;IN2kHP;IMn/GA;MA5II,yBAoDG;IN8kHP;IMt/GA;MA5II,2BAoDG;INilHP;IMz/GA;MA5II,yBAoDG;INolHP;IM5/GA;MA5II,qBAoDG;INulHP;IM//GA;MA5II,2BAoDG;IN0lHP;IMlgHA;MA5II,0BAoDG;IN6lHP;IMrgHA;MA5II,2BAoDG;INgmHP;IMxgHA;MA5II,wBAoDG;INmmHP;IM3gHA;MA5II,2BAoDG;INsmHP;IM9gHA;MA5II,0BAoDG;INymHP;IMjhHA;MA5II,wBAoDG;IN4mHP;IMphHA;MA5II,0BAoDG;IN+mHP;IMvhHA;MA5II,wBAoDG;INknHP;IM1hHA;MA5II,oBAoDG;INqnHP;IM7hHA;MA5II,0BAoDG;INwnHP;IMhiHA;MA5II,yBAoDG;IN2nHP;IMniHA;MA5II,0BAoDG;IN8nHP;IMtiHA;MA5II,uBAoDG;INioHP;IMziHA;MA5II,0BAoDG;INooHP;IM5iHA;MA5II,yBAoDG;INuoHP;IM/iHA;MA5II,uBAoDG;IN0oHP;IMljHA;MA5II,yBAoDG;IN6oHP;IMrjHA;MA5II,uBAoDG;INgpHP;IMxjHA;MA5II,uBAoDG;INmpHP;IM3jHA;MA5II,6BAoDG;INspHP;IM9jHA;MA5II,4BAoDG;INypHP;IMjkHA;MA5II,6BAoDG;IN4pHP;IMpkHA;MA5II,0BAoDG;IN+pHP;IMvkHA;MA5II,6BAoDG;INkqHP;IM1kHA;MA5II,4BAoDG;INqqHP;IM7kHA;MA5II,0BAoDG;INwqHP;IMhlHA;MA5II,4BAoDG;IN2qHP;IMnlHA;MA5II,0BAoDG;IN8qHP;IMtlHA;MA5II,MAoDG;INirHP;IMzlHA;MA5II,YAoDG;INorHP;IM5lHA;MA5II,WAoDG;INurHP;IM/lHA;MA5II,YAoDG;IN0rHP;IMlmHA;MA5II,SAoDG;IN6rHP;IMrmHA;MA5II,YAoDG;INgsHP;IMxmHA;MA5II,WAoDG;INmsHP;IM3mHA;MA5II,SAoDG;INssHP;IM9mHA;MA5II,WAoDG;INysHP;IMjnHA;MA5II,SAoDG;IN4sHP;IMpnHA;MA5II,UAoDG;IN+sHP;IMvnHA;MA5II,gBAoDG;INktHP;IM1nHA;MA5II,eAoDG;INqtHP;IM7nHA;MA5II,gBAoDG;INwtHP;IMhoHA;MA5II,aAoDG;IN2tHP;IMnoHA;MA5II,gBAoDG;IN8tHP;IMtoHA;MA5II,eAoDG;INiuHP;IMzoHA;MA5II,aAoDG;INouHP;IM5oHA;MA5II,eAoDG;INuuHP;IM/oHA;MA5II,aAoDG;IN0uHP;IMlpHA;MA5II,aAoDG;IN6uHP;IMrpHA;MA5II,mBAoDG;INgvHP;IMxpHA;MA5II,kBAoDG;INmvHP;IM3pHA;MA5II,mBAoDG;INsvHP;IM9pHA;MA5II,gBAoDG;INyvHP;IMjqHA;MA5II,mBAoDG;IN4vHP;IMpqHA;MA5II,kBAoDG;IN+vHP;IMvqHA;MA5II,gBAoDG;INkwHP;IM1qHA;MA5II,kBAoDG;INqwHP;IM7qHA;MA5II,gBAoDG;INwwHP;EACF;EC7xHE;IK4GA;MA5II,eAyDO;INwwHX;IMrrHA;MA5II,qBAyDO;IN2wHX;IMxrHA;MA5II,cAyDO;IN8wHX;IM3rHA;MA5II,aAyDO;INixHX;IM9rHA;MA5II,oBAyDO;INoxHX;IMjsHA;MA5II,cAyDO;INuxHX;IMpsHA;MA5II,kBAyDO;IN0xHX;IMvsHA;MA5II,mBAyDO;IN6xHX;IM1sHA;MA5II,aAyDO;INgyHX;IM7sHA;MA5II,oBAyDO;INmyHX;IMhtHA;MA5II,iBAyDO;INsyHX;IMntHA;MA5II,kBAyDO;INyyHX;IMttHA;MA5II,aAyDO;IN4yHX;IMztHA;MA5II,cAoDG;INozHP;IM5tHA;MA5II,mBAyDO;INkzHX;IM/tHA;MA5II,sBAyDO;INqzHX;IMluHA;MA5II,2BAyDO;INwzHX;IMruHA;MA5II,8BAyDO;IN2zHX;IMxuHA;MA5II,YAoDG;INm0HP;IM3uHA;MA5II,YAoDG;INs0HP;IM9uHA;MA5II,cAoDG;INy0HP;IMjvHA;MA5II,cAoDG;IN40HP;IMpvHA;MA5II,eAyDO;IN00HX;IMvvHA;MA5II,iBAyDO;IN60HX;IM1vHA;MA5II,uBAyDO;INg1HX;IM7vHA;MA5II,2BAoDG;INw1HP;IMhwHA;MA5II,yBAoDG;IN21HP;IMnwHA;MA5II,uBAoDG;IN81HP;IMtwHA;MA5II,8BAoDG;INi2HP;IMzwHA;MA5II,6BAoDG;INo2HP;IM5wHA;MA5II,6BAoDG;INu2HP;IM/wHA;MA5II,oBAoDG;IN02HP;IMlxHA;MA5II,kBAoDG;IN62HP;IMrxHA;MA5II,qBAoDG;INg3HP;IMxxHA;MA5II,sBAoDG;INm3HP;IM3xHA;MA5II,uBAoDG;INs3HP;IM9xHA;MA5II,qBAoDG;INy3HP;IMjyHA;MA5II,mBAoDG;IN43HP;IMpyHA;MA5II,qBAoDG;IN+3HP;IMvyHA;MA5II,oBAoDG;INk4HP;IM1yHA;MA5II,yBAoDG;INq4HP;IM7yHA;MA5II,uBAoDG;INw4HP;IMhzHA;MA5II,qBAoDG;IN24HP;IMnzHA;MA5II,4BAoDG;IN84HP;IMtzHA;MA5II,2BAoDG;INi5HP;IMzzHA;MA5II,sBAoDG;INo5HP;IM5zHA;MA5II,gBAoDG;INu5HP;IM/zHA;MA5II,sBAoDG;IN05HP;IMl0HA;MA5II,oBAoDG;IN65HP;IMr0HA;MA5II,kBAoDG;INg6HP;IMx0HA;MA5II,oBAoDG;INm6HP;IM30HA;MA5II,mBAoDG;INs6HP;IM90HA;MA5II,kBAoDG;INy6HP;IMj1HA;MA5II,gBAoDG;IN46HP;IMp1HA;MA5II,mBAoDG;IN+6HP;IMv1HA;MA5II,oBAoDG;INk7HP;IM11HA;MA5II,0BAoDG;INq7HP;IM71HA;MA5II,qCAoDG;INw7HP;IMh2HA;MA5II,qCAoDG;IN27HP;IMn2HA;MA5II,qCAoDG;IN87HP;IMt2HA;MA5II,qCAoDG;INi8HP;IMz2HA;MA5II,mBAoDG;INo8HP;IM52HA;MA5II,mBAyDO;INk8HX;IM/2HA;MA5II,sBAyDO;INq8HX;IMl3HA;MA5II,qBAyDO;INw8HX;IMr3HA;MA5II,SAoDG;INg9HP;IMx3HA;MA5II,QAoDG;INm9HP;IM33HA;MA5II,QAoDG;INs9HP;IM93HA;MA5II,QAoDG;INy9HP;IMj4HA;MA5II,QAoDG;IN49HP;IMp4HA;MA5II,QAoDG;IN+9HP;IMv4HA;MA5II,QAoDG;INk+HP;IM14HA;MA5II,QAoDG;INq+HP;IM74HA;MA5II,SAoDG;INw+HP;IMh5HA;MA5II,eAoDG;IN2+HP;IMn5HA;MA5II,cAoDG;IN8+HP;IMt5HA;MA5II,eAoDG;INi/HP;IMz5HA;MA5II,YAoDG;INo/HP;IM55HA;MA5II,eAoDG;INu/HP;IM/5HA;MA5II,cAoDG;IN0/HP;IMl6HA;MA5II,YAoDG;IN6/HP;IMr6HA;MA5II,cAoDG;INggIP;IMx6HA;MA5II,YAoDG;INmgIP;IM36HA;MA5II,YAoDG;INsgIP;IM96HA;MA5II,gBAoDG;INygIP;IMj7HA;MA5II,sBAoDG;IN4gIP;IMp7HA;MA5II,qBAoDG;IN+gIP;IMv7HA;MA5II,sBAoDG;INkhIP;IM17HA;MA5II,mBAoDG;INqhIP;IM77HA;MA5II,sBAoDG;INwhIP;IMh8HA;MA5II,qBAoDG;IN2hIP;IMn8HA;MA5II,mBAoDG;IN8hIP;IMt8HA;MA5II,qBAoDG;INiiIP;IMz8HA;MA5II,mBAoDG;INoiIP;IM58HA;MA5II,mBAoDG;INuiIP;IM/8HA;MA5II,eAoDG;IN0iIP;IMl9HA;MA5II,qBAoDG;IN6iIP;IMr9HA;MA5II,oBAoDG;INgjIP;IMx9HA;MA5II,qBAoDG;INmjIP;IM39HA;MA5II,kBAoDG;INsjIP;IM99HA;MA5II,qBAoDG;INyjIP;IMj+HA;MA5II,oBAoDG;IN4jIP;IMp+HA;MA5II,kBAoDG;IN+jIP;IMv+HA;MA5II,oBAoDG;INkkIP;IM1+HA;MA5II,kBAoDG;INqkIP;IM7+HA;MA5II,kBAoDG;INwkIP;IMh/HA;MA5II,qBAoDG;IN2kIP;IMn/HA;MA5II,2BAoDG;IN8kIP;IMt/HA;MA5II,0BAoDG;INilIP;IMz/HA;MA5II,2BAoDG;INolIP;IM5/HA;MA5II,wBAoDG;INulIP;IM//HA;MA5II,2BAoDG;IN0lIP;IMlgIA;MA5II,0BAoDG;IN6lIP;IMrgIA;MA5II,wBAoDG;INgmIP;IMxgIA;MA5II,0BAoDG;INmmIP;IM3gIA;MA5II,wBAoDG;INsmIP;IM9gIA;MA5II,wBAoDG;INymIP;IMjhIA;MA5II,oBAoDG;IN4mIP;IMphIA;MA5II,0BAoDG;IN+mIP;IMvhIA;MA5II,yBAoDG;INknIP;IM1hIA;MA5II,0BAoDG;INqnIP;IM7hIA;MA5II,uBAoDG;INwnIP;IMhiIA;MA5II,0BAoDG;IN2nIP;IMniIA;MA5II,yBAoDG;IN8nIP;IMtiIA;MA5II,uBAoDG;INioIP;IMziIA;MA5II,yBAoDG;INooIP;IM5iIA;MA5II,uBAoDG;INuoIP;IM/iIA;MA5II,2BAoDG;IN0oIP;IMljIA;MA5II,0BAoDG;IN6oIP;IMrjIA;MA5II,uBAoDG;INgpIP;IMxjIA;MA5II,mBAoDG;INmpIP;IM3jIA;MA5II,yBAoDG;INspIP;IM9jIA;MA5II,wBAoDG;INypIP;IMjkIA;MA5II,yBAoDG;IN4pIP;IMpkIA;MA5II,sBAoDG;IN+pIP;IMvkIA;MA5II,yBAoDG;INkqIP;IM1kIA;MA5II,wBAoDG;INqqIP;IM7kIA;MA5II,sBAoDG;INwqIP;IMhlIA;MA5II,wBAoDG;IN2qIP;IMnlIA;MA5II,sBAoDG;IN8qIP;IMtlIA;MA5II,sBAoDG;INirIP;IMzlIA;MA5II,sBAoDG;INorIP;IM5lIA;MA5II,4BAoDG;INurIP;IM/lIA;MA5II,2BAoDG;IN0rIP;IMlmIA;MA5II,4BAoDG;IN6rIP;IMrmIA;MA5II,yBAoDG;INgsIP;IMxmIA;MA5II,4BAoDG;INmsIP;IM3mIA;MA5II,2BAoDG;INssIP;IM9mIA;MA5II,yBAoDG;INysIP;IMjnIA;MA5II,2BAoDG;IN4sIP;IMpnIA;MA5II,yBAoDG;IN+sIP;IMvnIA;MA5II,6BAoDG;INktIP;IM1nIA;MA5II,4BAoDG;INqtIP;IM7nIA;MA5II,yBAoDG;INwtIP;IMhoIA;MA5II,UAoDG;IN2tIP;IMnoIA;MA5II,gBAoDG;IN8tIP;IMtoIA;MA5II,eAoDG;INiuIP;IMzoIA;MA5II,gBAoDG;INouIP;IM5oIA;MA5II,aAoDG;INuuIP;IM/oIA;MA5II,gBAoDG;IN0uIP;IMlpIA;MA5II,eAoDG;IN6uIP;IMrpIA;MA5II,aAoDG;INgvIP;IMxpIA;MA5II,eAoDG;INmvIP;IM3pIA;MA5II,aAoDG;INsvIP;IM9pIA;MA5II,iBAoDG;INyvIP;IMjqIA;MA5II,uBAoDG;IN4vIP;IMpqIA;MA5II,sBAoDG;IN+vIP;IMvqIA;MA5II,uBAoDG;INkwIP;IM1qIA;MA5II,oBAoDG;INqwIP;IM7qIA;MA5II,uBAoDG;INwwIP;IMhrIA;MA5II,sBAoDG;IN2wIP;IMnrIA;MA5II,oBAoDG;IN8wIP;IMtrIA;MA5II,sBAoDG;INixIP;IMzrIA;MA5II,oBAoDG;INoxIP;IM5rIA;MA5II,gBAoDG;INuxIP;IM/rIA;MA5II,sBAoDG;IN0xIP;IMlsIA;MA5II,qBAoDG;IN6xIP;IMrsIA;MA5II,sBAoDG;INgyIP;IMxsIA;MA5II,mBAoDG;INmyIP;IM3sIA;MA5II,sBAoDG;INsyIP;IM9sIA;MA5II,qBAoDG;INyyIP;IMjtIA;MA5II,mBAoDG;IN4yIP;IMptIA;MA5II,qBAoDG;IN+yIP;IMvtIA;MA5II,mBAoDG;INkzIP;IM1tIA;MA5II,sBAoDG;INqzIP;IM7tIA;MA5II,4BAoDG;INwzIP;IMhuIA;MA5II,2BAoDG;IN2zIP;IMnuIA;MA5II,4BAoDG;IN8zIP;IMtuIA;MA5II,yBAoDG;INi0IP;IMzuIA;MA5II,4BAoDG;INo0IP;IM5uIA;MA5II,2BAoDG;INu0IP;IM/uIA;MA5II,yBAoDG;IN00IP;IMlvIA;MA5II,2BAoDG;IN60IP;IMrvIA;MA5II,yBAoDG;INg1IP;IMxvIA;MA5II,qBAoDG;INm1IP;IM3vIA;MA5II,2BAoDG;INs1IP;IM9vIA;MA5II,0BAoDG;INy1IP;IMjwIA;MA5II,2BAoDG;IN41IP;IMpwIA;MA5II,wBAoDG;IN+1IP;IMvwIA;MA5II,2BAoDG;INk2IP;IM1wIA;MA5II,0BAoDG;INq2IP;IM7wIA;MA5II,wBAoDG;INw2IP;IMhxIA;MA5II,0BAoDG;IN22IP;IMnxIA;MA5II,wBAoDG;IN82IP;IMtxIA;MA5II,oBAoDG;INi3IP;IMzxIA;MA5II,0BAoDG;INo3IP;IM5xIA;MA5II,yBAoDG;INu3IP;IM/xIA;MA5II,0BAoDG;IN03IP;IMlyIA;MA5II,uBAoDG;IN63IP;IMryIA;MA5II,0BAoDG;INg4IP;IMxyIA;MA5II,yBAoDG;INm4IP;IM3yIA;MA5II,uBAoDG;INs4IP;IM9yIA;MA5II,yBAoDG;INy4IP;IMjzIA;MA5II,uBAoDG;IN44IP;IMpzIA;MA5II,uBAoDG;IN+4IP;IMvzIA;MA5II,6BAoDG;INk5IP;IM1zIA;MA5II,4BAoDG;INq5IP;IM7zIA;MA5II,6BAoDG;INw5IP;IMh0IA;MA5II,0BAoDG;IN25IP;IMn0IA;MA5II,6BAoDG;IN85IP;IMt0IA;MA5II,4BAoDG;INi6IP;IMz0IA;MA5II,0BAoDG;INo6IP;IM50IA;MA5II,4BAoDG;INu6IP;IM/0IA;MA5II,0BAoDG;IN06IP;IMl1IA;MA5II,MAoDG;IN66IP;IMr1IA;MA5II,YAoDG;INg7IP;IMx1IA;MA5II,WAoDG;INm7IP;IM31IA;MA5II,YAoDG;INs7IP;IM91IA;MA5II,SAoDG;INy7IP;IMj2IA;MA5II,YAoDG;IN47IP;IMp2IA;MA5II,WAoDG;IN+7IP;IMv2IA;MA5II,SAoDG;INk8IP;IM12IA;MA5II,WAoDG;INq8IP;IM72IA;MA5II,SAoDG;INw8IP;IMh3IA;MA5II,UAoDG;IN28IP;IMn3IA;MA5II,gBAoDG;IN88IP;IMt3IA;MA5II,eAoDG;INi9IP;IMz3IA;MA5II,gBAoDG;INo9IP;IM53IA;MA5II,aAoDG;INu9IP;IM/3IA;MA5II,gBAoDG;IN09IP;IMl4IA;MA5II,eAoDG;IN69IP;IMr4IA;MA5II,aAoDG;INg+IP;IMx4IA;MA5II,eAoDG;INm+IP;IM34IA;MA5II,aAoDG;INs+IP;IM94IA;MA5II,aAoDG;INy+IP;IMj5IA;MA5II,mBAoDG;IN4+IP;IMp5IA;MA5II,kBAoDG;IN++IP;IMv5IA;MA5II,mBAoDG;INk/IP;IM15IA;MA5II,gBAoDG;INq/IP;IM75IA;MA5II,mBAoDG;INw/IP;IMh6IA;MA5II,kBAoDG;IN2/IP;IMn6IA;MA5II,gBAoDG;IN8/IP;IMt6IA;MA5II,kBAoDG;INigJP;IMz6IA;MA5II,gBAoDG;INogJP;EACF;ECzhJE;IK4GA;MA5II,eAyDO;INogJX;IMj7IA;MA5II,qBAyDO;INugJX;IMp7IA;MA5II,cAyDO;IN0gJX;IMv7IA;MA5II,aAyDO;IN6gJX;IM17IA;MA5II,oBAyDO;INghJX;IM77IA;MA5II,cAyDO;INmhJX;IMh8IA;MA5II,kBAyDO;INshJX;IMn8IA;MA5II,mBAyDO;INyhJX;IMt8IA;MA5II,aAyDO;IN4hJX;IMz8IA;MA5II,oBAyDO;IN+hJX;IM58IA;MA5II,iBAyDO;INkiJX;IM/8IA;MA5II,kBAyDO;INqiJX;IMl9IA;MA5II,aAyDO;INwiJX;IMr9IA;MA5II,cAoDG;INgjJP;IMx9IA;MA5II,mBAyDO;IN8iJX;IM39IA;MA5II,sBAyDO;INijJX;IM99IA;MA5II,2BAyDO;INojJX;IMj+IA;MA5II,8BAyDO;INujJX;IMp+IA;MA5II,YAoDG;IN+jJP;IMv+IA;MA5II,YAoDG;INkkJP;IM1+IA;MA5II,cAoDG;INqkJP;IM7+IA;MA5II,cAoDG;INwkJP;IMh/IA;MA5II,eAyDO;INskJX;IMn/IA;MA5II,iBAyDO;INykJX;IMt/IA;MA5II,uBAyDO;IN4kJX;IMz/IA;MA5II,2BAoDG;INolJP;IM5/IA;MA5II,yBAoDG;INulJP;IM//IA;MA5II,uBAoDG;IN0lJP;IMlgJA;MA5II,8BAoDG;IN6lJP;IMrgJA;MA5II,6BAoDG;INgmJP;IMxgJA;MA5II,6BAoDG;INmmJP;IM3gJA;MA5II,oBAoDG;INsmJP;IM9gJA;MA5II,kBAoDG;INymJP;IMjhJA;MA5II,qBAoDG;IN4mJP;IMphJA;MA5II,sBAoDG;IN+mJP;IMvhJA;MA5II,uBAoDG;INknJP;IM1hJA;MA5II,qBAoDG;INqnJP;IM7hJA;MA5II,mBAoDG;INwnJP;IMhiJA;MA5II,qBAoDG;IN2nJP;IMniJA;MA5II,oBAoDG;IN8nJP;IMtiJA;MA5II,yBAoDG;INioJP;IMziJA;MA5II,uBAoDG;INooJP;IM5iJA;MA5II,qBAoDG;INuoJP;IM/iJA;MA5II,4BAoDG;IN0oJP;IMljJA;MA5II,2BAoDG;IN6oJP;IMrjJA;MA5II,sBAoDG;INgpJP;IMxjJA;MA5II,gBAoDG;INmpJP;IM3jJA;MA5II,sBAoDG;INspJP;IM9jJA;MA5II,oBAoDG;INypJP;IMjkJA;MA5II,kBAoDG;IN4pJP;IMpkJA;MA5II,oBAoDG;IN+pJP;IMvkJA;MA5II,mBAoDG;INkqJP;IM1kJA;MA5II,kBAoDG;INqqJP;IM7kJA;MA5II,gBAoDG;INwqJP;IMhlJA;MA5II,mBAoDG;IN2qJP;IMnlJA;MA5II,oBAoDG;IN8qJP;IMtlJA;MA5II,0BAoDG;INirJP;IMzlJA;MA5II,qCAoDG;INorJP;IM5lJA;MA5II,qCAoDG;INurJP;IM/lJA;MA5II,qCAoDG;IN0rJP;IMlmJA;MA5II,qCAoDG;IN6rJP;IMrmJA;MA5II,mBAoDG;INgsJP;IMxmJA;MA5II,mBAyDO;IN8rJX;IM3mJA;MA5II,sBAyDO;INisJX;IM9mJA;MA5II,qBAyDO;INosJX;IMjnJA;MA5II,SAoDG;IN4sJP;IMpnJA;MA5II,QAoDG;IN+sJP;IMvnJA;MA5II,QAoDG;INktJP;IM1nJA;MA5II,QAoDG;INqtJP;IM7nJA;MA5II,QAoDG;INwtJP;IMhoJA;MA5II,QAoDG;IN2tJP;IMnoJA;MA5II,QAoDG;IN8tJP;IMtoJA;MA5II,QAoDG;INiuJP;IMzoJA;MA5II,SAoDG;INouJP;IM5oJA;MA5II,eAoDG;INuuJP;IM/oJA;MA5II,cAoDG;IN0uJP;IMlpJA;MA5II,eAoDG;IN6uJP;IMrpJA;MA5II,YAoDG;INgvJP;IMxpJA;MA5II,eAoDG;INmvJP;IM3pJA;MA5II,cAoDG;INsvJP;IM9pJA;MA5II,YAoDG;INyvJP;IMjqJA;MA5II,cAoDG;IN4vJP;IMpqJA;MA5II,YAoDG;IN+vJP;IMvqJA;MA5II,YAoDG;INkwJP;IM1qJA;MA5II,gBAoDG;INqwJP;IM7qJA;MA5II,sBAoDG;INwwJP;IMhrJA;MA5II,qBAoDG;IN2wJP;IMnrJA;MA5II,sBAoDG;IN8wJP;IMtrJA;MA5II,mBAoDG;INixJP;IMzrJA;MA5II,sBAoDG;INoxJP;IM5rJA;MA5II,qBAoDG;INuxJP;IM/rJA;MA5II,mBAoDG;IN0xJP;IMlsJA;MA5II,qBAoDG;IN6xJP;IMrsJA;MA5II,mBAoDG;INgyJP;IMxsJA;MA5II,mBAoDG;INmyJP;IM3sJA;MA5II,eAoDG;INsyJP;IM9sJA;MA5II,qBAoDG;INyyJP;IMjtJA;MA5II,oBAoDG;IN4yJP;IMptJA;MA5II,qBAoDG;IN+yJP;IMvtJA;MA5II,kBAoDG;INkzJP;IM1tJA;MA5II,qBAoDG;INqzJP;IM7tJA;MA5II,oBAoDG;INwzJP;IMhuJA;MA5II,kBAoDG;IN2zJP;IMnuJA;MA5II,oBAoDG;IN8zJP;IMtuJA;MA5II,kBAoDG;INi0JP;IMzuJA;MA5II,kBAoDG;INo0JP;IM5uJA;MA5II,qBAoDG;INu0JP;IM/uJA;MA5II,2BAoDG;IN00JP;IMlvJA;MA5II,0BAoDG;IN60JP;IMrvJA;MA5II,2BAoDG;INg1JP;IMxvJA;MA5II,wBAoDG;INm1JP;IM3vJA;MA5II,2BAoDG;INs1JP;IM9vJA;MA5II,0BAoDG;INy1JP;IMjwJA;MA5II,wBAoDG;IN41JP;IMpwJA;MA5II,0BAoDG;IN+1JP;IMvwJA;MA5II,wBAoDG;INk2JP;IM1wJA;MA5II,wBAoDG;INq2JP;IM7wJA;MA5II,oBAoDG;INw2JP;IMhxJA;MA5II,0BAoDG;IN22JP;IMnxJA;MA5II,yBAoDG;IN82JP;IMtxJA;MA5II,0BAoDG;INi3JP;IMzxJA;MA5II,uBAoDG;INo3JP;IM5xJA;MA5II,0BAoDG;INu3JP;IM/xJA;MA5II,yBAoDG;IN03JP;IMlyJA;MA5II,uBAoDG;IN63JP;IMryJA;MA5II,yBAoDG;INg4JP;IMxyJA;MA5II,uBAoDG;INm4JP;IM3yJA;MA5II,2BAoDG;INs4JP;IM9yJA;MA5II,0BAoDG;INy4JP;IMjzJA;MA5II,uBAoDG;IN44JP;IMpzJA;MA5II,mBAoDG;IN+4JP;IMvzJA;MA5II,yBAoDG;INk5JP;IM1zJA;MA5II,wBAoDG;INq5JP;IM7zJA;MA5II,yBAoDG;INw5JP;IMh0JA;MA5II,sBAoDG;IN25JP;IMn0JA;MA5II,yBAoDG;IN85JP;IMt0JA;MA5II,wBAoDG;INi6JP;IMz0JA;MA5II,sBAoDG;INo6JP;IM50JA;MA5II,wBAoDG;INu6JP;IM/0JA;MA5II,sBAoDG;IN06JP;IMl1JA;MA5II,sBAoDG;IN66JP;IMr1JA;MA5II,sBAoDG;INg7JP;IMx1JA;MA5II,4BAoDG;INm7JP;IM31JA;MA5II,2BAoDG;INs7JP;IM91JA;MA5II,4BAoDG;INy7JP;IMj2JA;MA5II,yBAoDG;IN47JP;IMp2JA;MA5II,4BAoDG;IN+7JP;IMv2JA;MA5II,2BAoDG;INk8JP;IM12JA;MA5II,yBAoDG;INq8JP;IM72JA;MA5II,2BAoDG;INw8JP;IMh3JA;MA5II,yBAoDG;IN28JP;IMn3JA;MA5II,6BAoDG;IN88JP;IMt3JA;MA5II,4BAoDG;INi9JP;IMz3JA;MA5II,yBAoDG;INo9JP;IM53JA;MA5II,UAoDG;INu9JP;IM/3JA;MA5II,gBAoDG;IN09JP;IMl4JA;MA5II,eAoDG;IN69JP;IMr4JA;MA5II,gBAoDG;INg+JP;IMx4JA;MA5II,aAoDG;INm+JP;IM34JA;MA5II,gBAoDG;INs+JP;IM94JA;MA5II,eAoDG;INy+JP;IMj5JA;MA5II,aAoDG;IN4+JP;IMp5JA;MA5II,eAoDG;IN++JP;IMv5JA;MA5II,aAoDG;INk/JP;IM15JA;MA5II,iBAoDG;INq/JP;IM75JA;MA5II,uBAoDG;INw/JP;IMh6JA;MA5II,sBAoDG;IN2/JP;IMn6JA;MA5II,uBAoDG;IN8/JP;IMt6JA;MA5II,oBAoDG;INigKP;IMz6JA;MA5II,uBAoDG;INogKP;IM56JA;MA5II,sBAoDG;INugKP;IM/6JA;MA5II,oBAoDG;IN0gKP;IMl7JA;MA5II,sBAoDG;IN6gKP;IMr7JA;MA5II,oBAoDG;INghKP;IMx7JA;MA5II,gBAoDG;INmhKP;IM37JA;MA5II,sBAoDG;INshKP;IM97JA;MA5II,qBAoDG;INyhKP;IMj8JA;MA5II,sBAoDG;IN4hKP;IMp8JA;MA5II,mBAoDG;IN+hKP;IMv8JA;MA5II,sBAoDG;INkiKP;IM18JA;MA5II,qBAoDG;INqiKP;IM78JA;MA5II,mBAoDG;INwiKP;IMh9JA;MA5II,qBAoDG;IN2iKP;IMn9JA;MA5II,mBAoDG;IN8iKP;IMt9JA;MA5II,sBAoDG;INijKP;IMz9JA;MA5II,4BAoDG;INojKP;IM59JA;MA5II,2BAoDG;INujKP;IM/9JA;MA5II,4BAoDG;IN0jKP;IMl+JA;MA5II,yBAoDG;IN6jKP;IMr+JA;MA5II,4BAoDG;INgkKP;IMx+JA;MA5II,2BAoDG;INmkKP;IM3+JA;MA5II,yBAoDG;INskKP;IM9+JA;MA5II,2BAoDG;INykKP;IMj/JA;MA5II,yBAoDG;IN4kKP;IMp/JA;MA5II,qBAoDG;IN+kKP;IMv/JA;MA5II,2BAoDG;INklKP;IM1/JA;MA5II,0BAoDG;INqlKP;IM7/JA;MA5II,2BAoDG;INwlKP;IMhgKA;MA5II,wBAoDG;IN2lKP;IMngKA;MA5II,2BAoDG;IN8lKP;IMtgKA;MA5II,0BAoDG;INimKP;IMzgKA;MA5II,wBAoDG;INomKP;IM5gKA;MA5II,0BAoDG;INumKP;IM/gKA;MA5II,wBAoDG;IN0mKP;IMlhKA;MA5II,oBAoDG;IN6mKP;IMrhKA;MA5II,0BAoDG;INgnKP;IMxhKA;MA5II,yBAoDG;INmnKP;IM3hKA;MA5II,0BAoDG;INsnKP;IM9hKA;MA5II,uBAoDG;INynKP;IMjiKA;MA5II,0BAoDG;IN4nKP;IMpiKA;MA5II,yBAoDG;IN+nKP;IMviKA;MA5II,uBAoDG;INkoKP;IM1iKA;MA5II,yBAoDG;INqoKP;IM7iKA;MA5II,uBAoDG;INwoKP;IMhjKA;MA5II,uBAoDG;IN2oKP;IMnjKA;MA5II,6BAoDG;IN8oKP;IMtjKA;MA5II,4BAoDG;INipKP;IMzjKA;MA5II,6BAoDG;INopKP;IM5jKA;MA5II,0BAoDG;INupKP;IM/jKA;MA5II,6BAoDG;IN0pKP;IMlkKA;MA5II,4BAoDG;IN6pKP;IMrkKA;MA5II,0BAoDG;INgqKP;IMxkKA;MA5II,4BAoDG;INmqKP;IM3kKA;MA5II,0BAoDG;INsqKP;IM9kKA;MA5II,MAoDG;INyqKP;IMjlKA;MA5II,YAoDG;IN4qKP;IMplKA;MA5II,WAoDG;IN+qKP;IMvlKA;MA5II,YAoDG;INkrKP;IM1lKA;MA5II,SAoDG;INqrKP;IM7lKA;MA5II,YAoDG;INwrKP;IMhmKA;MA5II,WAoDG;IN2rKP;IMnmKA;MA5II,SAoDG;IN8rKP;IMtmKA;MA5II,WAoDG;INisKP;IMzmKA;MA5II,SAoDG;INosKP;IM5mKA;MA5II,UAoDG;INusKP;IM/mKA;MA5II,gBAoDG;IN0sKP;IMlnKA;MA5II,eAoDG;IN6sKP;IMrnKA;MA5II,gBAoDG;INgtKP;IMxnKA;MA5II,aAoDG;INmtKP;IM3nKA;MA5II,gBAoDG;INstKP;IM9nKA;MA5II,eAoDG;INytKP;IMjoKA;MA5II,aAoDG;IN4tKP;IMpoKA;MA5II,eAoDG;IN+tKP;IMvoKA;MA5II,aAoDG;INkuKP;IM1oKA;MA5II,aAoDG;INquKP;IM7oKA;MA5II,mBAoDG;INwuKP;IMhpKA;MA5II,kBAoDG;IN2uKP;IMnpKA;MA5II,mBAoDG;IN8uKP;IMtpKA;MA5II,gBAoDG;INivKP;IMzpKA;MA5II,mBAoDG;INovKP;IM5pKA;MA5II,kBAoDG;INuvKP;IM/pKA;MA5II,gBAoDG;IN0vKP;IMlqKA;MA5II,kBAoDG;IN6vKP;IMrqKA;MA5II,gBAoDG;INgwKP;EACF;ECrxKE;IK4GA;MA5II,eAyDO;INgwKX;IM7qKA;MA5II,qBAyDO;INmwKX;IMhrKA;MA5II,cAyDO;INswKX;IMnrKA;MA5II,aAyDO;INywKX;IMtrKA;MA5II,oBAyDO;IN4wKX;IMzrKA;MA5II,cAyDO;IN+wKX;IM5rKA;MA5II,kBAyDO;INkxKX;IM/rKA;MA5II,mBAyDO;INqxKX;IMlsKA;MA5II,aAyDO;INwxKX;IMrsKA;MA5II,oBAyDO;IN2xKX;IMxsKA;MA5II,iBAyDO;IN8xKX;IM3sKA;MA5II,kBAyDO;INiyKX;IM9sKA;MA5II,aAyDO;INoyKX;IMjtKA;MA5II,cAoDG;IN4yKP;IMptKA;MA5II,mBAyDO;IN0yKX;IMvtKA;MA5II,sBAyDO;IN6yKX;IM1tKA;MA5II,2BAyDO;INgzKX;IM7tKA;MA5II,8BAyDO;INmzKX;IMhuKA;MA5II,YAoDG;IN2zKP;IMnuKA;MA5II,YAoDG;IN8zKP;IMtuKA;MA5II,cAoDG;INi0KP;IMzuKA;MA5II,cAoDG;INo0KP;IM5uKA;MA5II,eAyDO;INk0KX;IM/uKA;MA5II,iBAyDO;INq0KX;IMlvKA;MA5II,uBAyDO;INw0KX;IMrvKA;MA5II,2BAoDG;INg1KP;IMxvKA;MA5II,yBAoDG;INm1KP;IM3vKA;MA5II,uBAoDG;INs1KP;IM9vKA;MA5II,8BAoDG;INy1KP;IMjwKA;MA5II,6BAoDG;IN41KP;IMpwKA;MA5II,6BAoDG;IN+1KP;IMvwKA;MA5II,oBAoDG;INk2KP;IM1wKA;MA5II,kBAoDG;INq2KP;IM7wKA;MA5II,qBAoDG;INw2KP;IMhxKA;MA5II,sBAoDG;IN22KP;IMnxKA;MA5II,uBAoDG;IN82KP;IMtxKA;MA5II,qBAoDG;INi3KP;IMzxKA;MA5II,mBAoDG;INo3KP;IM5xKA;MA5II,qBAoDG;INu3KP;IM/xKA;MA5II,oBAoDG;IN03KP;IMlyKA;MA5II,yBAoDG;IN63KP;IMryKA;MA5II,uBAoDG;INg4KP;IMxyKA;MA5II,qBAoDG;INm4KP;IM3yKA;MA5II,4BAoDG;INs4KP;IM9yKA;MA5II,2BAoDG;INy4KP;IMjzKA;MA5II,sBAoDG;IN44KP;IMpzKA;MA5II,gBAoDG;IN+4KP;IMvzKA;MA5II,sBAoDG;INk5KP;IM1zKA;MA5II,oBAoDG;INq5KP;IM7zKA;MA5II,kBAoDG;INw5KP;IMh0KA;MA5II,oBAoDG;IN25KP;IMn0KA;MA5II,mBAoDG;IN85KP;IMt0KA;MA5II,kBAoDG;INi6KP;IMz0KA;MA5II,gBAoDG;INo6KP;IM50KA;MA5II,mBAoDG;INu6KP;IM/0KA;MA5II,oBAoDG;IN06KP;IMl1KA;MA5II,0BAoDG;IN66KP;IMr1KA;MA5II,qCAoDG;INg7KP;IMx1KA;MA5II,qCAoDG;INm7KP;IM31KA;MA5II,qCAoDG;INs7KP;IM91KA;MA5II,qCAoDG;INy7KP;IMj2KA;MA5II,mBAoDG;IN47KP;IMp2KA;MA5II,mBAyDO;IN07KX;IMv2KA;MA5II,sBAyDO;IN67KX;IM12KA;MA5II,qBAyDO;INg8KX;IM72KA;MA5II,SAoDG;INw8KP;IMh3KA;MA5II,QAoDG;IN28KP;IMn3KA;MA5II,QAoDG;IN88KP;IMt3KA;MA5II,QAoDG;INi9KP;IMz3KA;MA5II,QAoDG;INo9KP;IM53KA;MA5II,QAoDG;INu9KP;IM/3KA;MA5II,QAoDG;IN09KP;IMl4KA;MA5II,QAoDG;IN69KP;IMr4KA;MA5II,SAoDG;INg+KP;IMx4KA;MA5II,eAoDG;INm+KP;IM34KA;MA5II,cAoDG;INs+KP;IM94KA;MA5II,eAoDG;INy+KP;IMj5KA;MA5II,YAoDG;IN4+KP;IMp5KA;MA5II,eAoDG;IN++KP;IMv5KA;MA5II,cAoDG;INk/KP;IM15KA;MA5II,YAoDG;INq/KP;IM75KA;MA5II,cAoDG;INw/KP;IMh6KA;MA5II,YAoDG;IN2/KP;IMn6KA;MA5II,YAoDG;IN8/KP;IMt6KA;MA5II,gBAoDG;INigLP;IMz6KA;MA5II,sBAoDG;INogLP;IM56KA;MA5II,qBAoDG;INugLP;IM/6KA;MA5II,sBAoDG;IN0gLP;IMl7KA;MA5II,mBAoDG;IN6gLP;IMr7KA;MA5II,sBAoDG;INghLP;IMx7KA;MA5II,qBAoDG;INmhLP;IM37KA;MA5II,mBAoDG;INshLP;IM97KA;MA5II,qBAoDG;INyhLP;IMj8KA;MA5II,mBAoDG;IN4hLP;IMp8KA;MA5II,mBAoDG;IN+hLP;IMv8KA;MA5II,eAoDG;INkiLP;IM18KA;MA5II,qBAoDG;INqiLP;IM78KA;MA5II,oBAoDG;INwiLP;IMh9KA;MA5II,qBAoDG;IN2iLP;IMn9KA;MA5II,kBAoDG;IN8iLP;IMt9KA;MA5II,qBAoDG;INijLP;IMz9KA;MA5II,oBAoDG;INojLP;IM59KA;MA5II,kBAoDG;INujLP;IM/9KA;MA5II,oBAoDG;IN0jLP;IMl+KA;MA5II,kBAoDG;IN6jLP;IMr+KA;MA5II,kBAoDG;INgkLP;IMx+KA;MA5II,qBAoDG;INmkLP;IM3+KA;MA5II,2BAoDG;INskLP;IM9+KA;MA5II,0BAoDG;INykLP;IMj/KA;MA5II,2BAoDG;IN4kLP;IMp/KA;MA5II,wBAoDG;IN+kLP;IMv/KA;MA5II,2BAoDG;INklLP;IM1/KA;MA5II,0BAoDG;INqlLP;IM7/KA;MA5II,wBAoDG;INwlLP;IMhgLA;MA5II,0BAoDG;IN2lLP;IMngLA;MA5II,wBAoDG;IN8lLP;IMtgLA;MA5II,wBAoDG;INimLP;IMzgLA;MA5II,oBAoDG;INomLP;IM5gLA;MA5II,0BAoDG;INumLP;IM/gLA;MA5II,yBAoDG;IN0mLP;IMlhLA;MA5II,0BAoDG;IN6mLP;IMrhLA;MA5II,uBAoDG;INgnLP;IMxhLA;MA5II,0BAoDG;INmnLP;IM3hLA;MA5II,yBAoDG;INsnLP;IM9hLA;MA5II,uBAoDG;INynLP;IMjiLA;MA5II,yBAoDG;IN4nLP;IMpiLA;MA5II,uBAoDG;IN+nLP;IMviLA;MA5II,2BAoDG;INkoLP;IM1iLA;MA5II,0BAoDG;INqoLP;IM7iLA;MA5II,uBAoDG;INwoLP;IMhjLA;MA5II,mBAoDG;IN2oLP;IMnjLA;MA5II,yBAoDG;IN8oLP;IMtjLA;MA5II,wBAoDG;INipLP;IMzjLA;MA5II,yBAoDG;INopLP;IM5jLA;MA5II,sBAoDG;INupLP;IM/jLA;MA5II,yBAoDG;IN0pLP;IMlkLA;MA5II,wBAoDG;IN6pLP;IMrkLA;MA5II,sBAoDG;INgqLP;IMxkLA;MA5II,wBAoDG;INmqLP;IM3kLA;MA5II,sBAoDG;INsqLP;IM9kLA;MA5II,sBAoDG;INyqLP;IMjlLA;MA5II,sBAoDG;IN4qLP;IMplLA;MA5II,4BAoDG;IN+qLP;IMvlLA;MA5II,2BAoDG;INkrLP;IM1lLA;MA5II,4BAoDG;INqrLP;IM7lLA;MA5II,yBAoDG;INwrLP;IMhmLA;MA5II,4BAoDG;IN2rLP;IMnmLA;MA5II,2BAoDG;IN8rLP;IMtmLA;MA5II,yBAoDG;INisLP;IMzmLA;MA5II,2BAoDG;INosLP;IM5mLA;MA5II,yBAoDG;INusLP;IM/mLA;MA5II,6BAoDG;IN0sLP;IMlnLA;MA5II,4BAoDG;IN6sLP;IMrnLA;MA5II,yBAoDG;INgtLP;IMxnLA;MA5II,UAoDG;INmtLP;IM3nLA;MA5II,gBAoDG;INstLP;IM9nLA;MA5II,eAoDG;INytLP;IMjoLA;MA5II,gBAoDG;IN4tLP;IMpoLA;MA5II,aAoDG;IN+tLP;IMvoLA;MA5II,gBAoDG;INkuLP;IM1oLA;MA5II,eAoDG;INquLP;IM7oLA;MA5II,aAoDG;INwuLP;IMhpLA;MA5II,eAoDG;IN2uLP;IMnpLA;MA5II,aAoDG;IN8uLP;IMtpLA;MA5II,iBAoDG;INivLP;IMzpLA;MA5II,uBAoDG;INovLP;IM5pLA;MA5II,sBAoDG;INuvLP;IM/pLA;MA5II,uBAoDG;IN0vLP;IMlqLA;MA5II,oBAoDG;IN6vLP;IMrqLA;MA5II,uBAoDG;INgwLP;IMxqLA;MA5II,sBAoDG;INmwLP;IM3qLA;MA5II,oBAoDG;INswLP;IM9qLA;MA5II,sBAoDG;INywLP;IMjrLA;MA5II,oBAoDG;IN4wLP;IMprLA;MA5II,gBAoDG;IN+wLP;IMvrLA;MA5II,sBAoDG;INkxLP;IM1rLA;MA5II,qBAoDG;INqxLP;IM7rLA;MA5II,sBAoDG;INwxLP;IMhsLA;MA5II,mBAoDG;IN2xLP;IMnsLA;MA5II,sBAoDG;IN8xLP;IMtsLA;MA5II,qBAoDG;INiyLP;IMzsLA;MA5II,mBAoDG;INoyLP;IM5sLA;MA5II,qBAoDG;INuyLP;IM/sLA;MA5II,mBAoDG;IN0yLP;IMltLA;MA5II,sBAoDG;IN6yLP;IMrtLA;MA5II,4BAoDG;INgzLP;IMxtLA;MA5II,2BAoDG;INmzLP;IM3tLA;MA5II,4BAoDG;INszLP;IM9tLA;MA5II,yBAoDG;INyzLP;IMjuLA;MA5II,4BAoDG;IN4zLP;IMpuLA;MA5II,2BAoDG;IN+zLP;IMvuLA;MA5II,yBAoDG;INk0LP;IM1uLA;MA5II,2BAoDG;INq0LP;IM7uLA;MA5II,yBAoDG;INw0LP;IMhvLA;MA5II,qBAoDG;IN20LP;IMnvLA;MA5II,2BAoDG;IN80LP;IMtvLA;MA5II,0BAoDG;INi1LP;IMzvLA;MA5II,2BAoDG;INo1LP;IM5vLA;MA5II,wBAoDG;INu1LP;IM/vLA;MA5II,2BAoDG;IN01LP;IMlwLA;MA5II,0BAoDG;IN61LP;IMrwLA;MA5II,wBAoDG;INg2LP;IMxwLA;MA5II,0BAoDG;INm2LP;IM3wLA;MA5II,wBAoDG;INs2LP;IM9wLA;MA5II,oBAoDG;INy2LP;IMjxLA;MA5II,0BAoDG;IN42LP;IMpxLA;MA5II,yBAoDG;IN+2LP;IMvxLA;MA5II,0BAoDG;INk3LP;IM1xLA;MA5II,uBAoDG;INq3LP;IM7xLA;MA5II,0BAoDG;INw3LP;IMhyLA;MA5II,yBAoDG;IN23LP;IMnyLA;MA5II,uBAoDG;IN83LP;IMtyLA;MA5II,yBAoDG;INi4LP;IMzyLA;MA5II,uBAoDG;INo4LP;IM5yLA;MA5II,uBAoDG;INu4LP;IM/yLA;MA5II,6BAoDG;IN04LP;IMlzLA;MA5II,4BAoDG;IN64LP;IMrzLA;MA5II,6BAoDG;INg5LP;IMxzLA;MA5II,0BAoDG;INm5LP;IM3zLA;MA5II,6BAoDG;INs5LP;IM9zLA;MA5II,4BAoDG;INy5LP;IMj0LA;MA5II,0BAoDG;IN45LP;IMp0LA;MA5II,4BAoDG;IN+5LP;IMv0LA;MA5II,0BAoDG;INk6LP;IM10LA;MA5II,MAoDG;INq6LP;IM70LA;MA5II,YAoDG;INw6LP;IMh1LA;MA5II,WAoDG;IN26LP;IMn1LA;MA5II,YAoDG;IN86LP;IMt1LA;MA5II,SAoDG;INi7LP;IMz1LA;MA5II,YAoDG;INo7LP;IM51LA;MA5II,WAoDG;INu7LP;IM/1LA;MA5II,SAoDG;IN07LP;IMl2LA;MA5II,WAoDG;IN67LP;IMr2LA;MA5II,SAoDG;INg8LP;IMx2LA;MA5II,UAoDG;INm8LP;IM32LA;MA5II,gBAoDG;INs8LP;IM92LA;MA5II,eAoDG;INy8LP;IMj3LA;MA5II,gBAoDG;IN48LP;IMp3LA;MA5II,aAoDG;IN+8LP;IMv3LA;MA5II,gBAoDG;INk9LP;IM13LA;MA5II,eAoDG;INq9LP;IM73LA;MA5II,aAoDG;INw9LP;IMh4LA;MA5II,eAoDG;IN29LP;IMn4LA;MA5II,aAoDG;IN89LP;IMt4LA;MA5II,aAoDG;INi+LP;IMz4LA;MA5II,mBAoDG;INo+LP;IM54LA;MA5II,kBAoDG;INu+LP;IM/4LA;MA5II,mBAoDG;IN0+LP;IMl5LA;MA5II,gBAoDG;IN6+LP;IMr5LA;MA5II,mBAoDG;INg/LP;IMx5LA;MA5II,kBAoDG;INm/LP;IM35LA;MA5II,gBAoDG;INs/LP;IM95LA;MA5II,kBAoDG;INy/LP;IMj6LA;MA5II,gBAoDG;IN4/LP;EACF;AACF;AOllMA;EAEI,qBAAA;EAAA,yBAAA;EAAA,yBAAA;EAAA,0BAAA;EAAA,0BAAA;EAAA,2BAAA;APwlMJ","file":"bootstrap-grid.css","sourcesContent":["$file: \"\" !default;\n\n/*!\n * Bootstrap #{$file} v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n","@use \"../config\" as *;\n@use \"breakpoints\" as *;\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n --gutter-x: #{$gutter};\n --gutter-y: 0;\n width: 100%;\n padding-inline: calc(var(--gutter-x) * .5);\n margin-inline: auto;\n}\n\n@layer layout {\n @if $enable-container-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .#{breakpoint-prefix($breakpoint, $breakpoints)}container {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n @each $name, $width in $breakpoints {\n @if ($extend-breakpoint) {\n .#{breakpoint-prefix($name, $breakpoints)}container {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n }\n}\n","/*!\n * Bootstrap Grid v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n@layer layout {\n .container,\n .container-fluid,\n .\\32 xl\\:container,\n .xl\\:container,\n .lg\\:container,\n .md\\:container,\n .sm\\:container {\n --gutter-x: 1.5rem;\n --gutter-y: 0;\n width: 100%;\n padding-inline: calc(var(--gutter-x) * 0.5);\n margin-inline: auto;\n }\n @media (width >= 576px) {\n .sm\\:container, .container {\n max-width: 540px;\n }\n }\n @media (width >= 768px) {\n .md\\:container, .sm\\:container, .container {\n max-width: 720px;\n }\n }\n @media (width >= 1024px) {\n .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 960px;\n }\n }\n @media (width >= 1280px) {\n .xl\\:container, .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 1200px;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:container, .xl\\:container, .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 1440px;\n }\n }\n}\n@layer layout {\n .row {\n --gutter-x: 1.5rem;\n --gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-inline: calc(-0.5 * var(--gutter-x));\n margin-top: calc(-1 * var(--gutter-y));\n }\n .row > * {\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-inline: calc(var(--gutter-x) * 0.5);\n margin-top: var(--gutter-y);\n }\n .col {\n flex: 1 0 0;\n }\n .row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .offset-3 {\n margin-inline-start: 25%;\n }\n .offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .offset-6 {\n margin-inline-start: 50%;\n }\n .offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .offset-9 {\n margin-inline-start: 75%;\n }\n .offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .g-0,\n .gx-0 {\n --gutter-x: 0;\n }\n .g-0,\n .gy-0 {\n --gutter-y: 0;\n }\n .g-1,\n .gx-1 {\n --gutter-x: 0.25rem;\n }\n .g-1,\n .gy-1 {\n --gutter-y: 0.25rem;\n }\n .g-2,\n .gx-2 {\n --gutter-x: 0.5rem;\n }\n .g-2,\n .gy-2 {\n --gutter-y: 0.5rem;\n }\n .g-3,\n .gx-3 {\n --gutter-x: 0.75rem;\n }\n .g-3,\n .gy-3 {\n --gutter-y: 0.75rem;\n }\n .g-4,\n .gx-4 {\n --gutter-x: 1rem;\n }\n .g-4,\n .gy-4 {\n --gutter-y: 1rem;\n }\n .g-5,\n .gx-5 {\n --gutter-x: 1.25rem;\n }\n .g-5,\n .gy-5 {\n --gutter-y: 1.25rem;\n }\n .g-6,\n .gx-6 {\n --gutter-x: 1.5rem;\n }\n .g-6,\n .gy-6 {\n --gutter-y: 1.5rem;\n }\n .g-7,\n .gx-7 {\n --gutter-x: 2rem;\n }\n .g-7,\n .gy-7 {\n --gutter-y: 2rem;\n }\n .g-8,\n .gx-8 {\n --gutter-x: 2.5rem;\n }\n .g-8,\n .gy-8 {\n --gutter-y: 2.5rem;\n }\n .g-9,\n .gx-9 {\n --gutter-x: 3rem;\n }\n .g-9,\n .gy-9 {\n --gutter-y: 3rem;\n }\n @media (width >= 576px) {\n .sm\\:col {\n flex: 1 0 0;\n }\n .sm\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .sm\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .sm\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .sm\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .sm\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .sm\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .sm\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .sm\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .sm\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .sm\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .sm\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .sm\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .sm\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .sm\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .sm\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .sm\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .sm\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .sm\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .sm\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .sm\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .sm\\:offset-0 {\n margin-inline-start: 0;\n }\n .sm\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .sm\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .sm\\:offset-3 {\n margin-inline-start: 25%;\n }\n .sm\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .sm\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .sm\\:offset-6 {\n margin-inline-start: 50%;\n }\n .sm\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .sm\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .sm\\:offset-9 {\n margin-inline-start: 75%;\n }\n .sm\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .sm\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .sm\\:g-0,\n .sm\\:gx-0 {\n --gutter-x: 0;\n }\n .sm\\:g-0,\n .sm\\:gy-0 {\n --gutter-y: 0;\n }\n .sm\\:g-1,\n .sm\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .sm\\:g-1,\n .sm\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .sm\\:g-2,\n .sm\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .sm\\:g-2,\n .sm\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .sm\\:g-3,\n .sm\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .sm\\:g-3,\n .sm\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .sm\\:g-4,\n .sm\\:gx-4 {\n --gutter-x: 1rem;\n }\n .sm\\:g-4,\n .sm\\:gy-4 {\n --gutter-y: 1rem;\n }\n .sm\\:g-5,\n .sm\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .sm\\:g-5,\n .sm\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .sm\\:g-6,\n .sm\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .sm\\:g-6,\n .sm\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .sm\\:g-7,\n .sm\\:gx-7 {\n --gutter-x: 2rem;\n }\n .sm\\:g-7,\n .sm\\:gy-7 {\n --gutter-y: 2rem;\n }\n .sm\\:g-8,\n .sm\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .sm\\:g-8,\n .sm\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .sm\\:g-9,\n .sm\\:gx-9 {\n --gutter-x: 3rem;\n }\n .sm\\:g-9,\n .sm\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 768px) {\n .md\\:col {\n flex: 1 0 0;\n }\n .md\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .md\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .md\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .md\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .md\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .md\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .md\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .md\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .md\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .md\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .md\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .md\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .md\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .md\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .md\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .md\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .md\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .md\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .md\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .md\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .md\\:offset-0 {\n margin-inline-start: 0;\n }\n .md\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .md\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .md\\:offset-3 {\n margin-inline-start: 25%;\n }\n .md\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .md\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .md\\:offset-6 {\n margin-inline-start: 50%;\n }\n .md\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .md\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .md\\:offset-9 {\n margin-inline-start: 75%;\n }\n .md\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .md\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .md\\:g-0,\n .md\\:gx-0 {\n --gutter-x: 0;\n }\n .md\\:g-0,\n .md\\:gy-0 {\n --gutter-y: 0;\n }\n .md\\:g-1,\n .md\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .md\\:g-1,\n .md\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .md\\:g-2,\n .md\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .md\\:g-2,\n .md\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .md\\:g-3,\n .md\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .md\\:g-3,\n .md\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .md\\:g-4,\n .md\\:gx-4 {\n --gutter-x: 1rem;\n }\n .md\\:g-4,\n .md\\:gy-4 {\n --gutter-y: 1rem;\n }\n .md\\:g-5,\n .md\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .md\\:g-5,\n .md\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .md\\:g-6,\n .md\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .md\\:g-6,\n .md\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .md\\:g-7,\n .md\\:gx-7 {\n --gutter-x: 2rem;\n }\n .md\\:g-7,\n .md\\:gy-7 {\n --gutter-y: 2rem;\n }\n .md\\:g-8,\n .md\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .md\\:g-8,\n .md\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .md\\:g-9,\n .md\\:gx-9 {\n --gutter-x: 3rem;\n }\n .md\\:g-9,\n .md\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1024px) {\n .lg\\:col {\n flex: 1 0 0;\n }\n .lg\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .lg\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .lg\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .lg\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .lg\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .lg\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .lg\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .lg\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .lg\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .lg\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .lg\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .lg\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .lg\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .lg\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .lg\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .lg\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .lg\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .lg\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .lg\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .lg\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .lg\\:offset-0 {\n margin-inline-start: 0;\n }\n .lg\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .lg\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .lg\\:offset-3 {\n margin-inline-start: 25%;\n }\n .lg\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .lg\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .lg\\:offset-6 {\n margin-inline-start: 50%;\n }\n .lg\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .lg\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .lg\\:offset-9 {\n margin-inline-start: 75%;\n }\n .lg\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .lg\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .lg\\:g-0,\n .lg\\:gx-0 {\n --gutter-x: 0;\n }\n .lg\\:g-0,\n .lg\\:gy-0 {\n --gutter-y: 0;\n }\n .lg\\:g-1,\n .lg\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .lg\\:g-1,\n .lg\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .lg\\:g-2,\n .lg\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .lg\\:g-2,\n .lg\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .lg\\:g-3,\n .lg\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .lg\\:g-3,\n .lg\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .lg\\:g-4,\n .lg\\:gx-4 {\n --gutter-x: 1rem;\n }\n .lg\\:g-4,\n .lg\\:gy-4 {\n --gutter-y: 1rem;\n }\n .lg\\:g-5,\n .lg\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .lg\\:g-5,\n .lg\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .lg\\:g-6,\n .lg\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .lg\\:g-6,\n .lg\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .lg\\:g-7,\n .lg\\:gx-7 {\n --gutter-x: 2rem;\n }\n .lg\\:g-7,\n .lg\\:gy-7 {\n --gutter-y: 2rem;\n }\n .lg\\:g-8,\n .lg\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .lg\\:g-8,\n .lg\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .lg\\:g-9,\n .lg\\:gx-9 {\n --gutter-x: 3rem;\n }\n .lg\\:g-9,\n .lg\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1280px) {\n .xl\\:col {\n flex: 1 0 0;\n }\n .xl\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .xl\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .xl\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .xl\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .xl\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .xl\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .xl\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .xl\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .xl\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .xl\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .xl\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .xl\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .xl\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .xl\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .xl\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .xl\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .xl\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .xl\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .xl\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .xl\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .xl\\:offset-0 {\n margin-inline-start: 0;\n }\n .xl\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .xl\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .xl\\:offset-3 {\n margin-inline-start: 25%;\n }\n .xl\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .xl\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .xl\\:offset-6 {\n margin-inline-start: 50%;\n }\n .xl\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .xl\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .xl\\:offset-9 {\n margin-inline-start: 75%;\n }\n .xl\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .xl\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .xl\\:g-0,\n .xl\\:gx-0 {\n --gutter-x: 0;\n }\n .xl\\:g-0,\n .xl\\:gy-0 {\n --gutter-y: 0;\n }\n .xl\\:g-1,\n .xl\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .xl\\:g-1,\n .xl\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .xl\\:g-2,\n .xl\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .xl\\:g-2,\n .xl\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .xl\\:g-3,\n .xl\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .xl\\:g-3,\n .xl\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .xl\\:g-4,\n .xl\\:gx-4 {\n --gutter-x: 1rem;\n }\n .xl\\:g-4,\n .xl\\:gy-4 {\n --gutter-y: 1rem;\n }\n .xl\\:g-5,\n .xl\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .xl\\:g-5,\n .xl\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .xl\\:g-6,\n .xl\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .xl\\:g-6,\n .xl\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .xl\\:g-7,\n .xl\\:gx-7 {\n --gutter-x: 2rem;\n }\n .xl\\:g-7,\n .xl\\:gy-7 {\n --gutter-y: 2rem;\n }\n .xl\\:g-8,\n .xl\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .xl\\:g-8,\n .xl\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .xl\\:g-9,\n .xl\\:gx-9 {\n --gutter-x: 3rem;\n }\n .xl\\:g-9,\n .xl\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:col {\n flex: 1 0 0;\n }\n .\\32 xl\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .\\32 xl\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .\\32 xl\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .\\32 xl\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .\\32 xl\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .\\32 xl\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .\\32 xl\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .\\32 xl\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .\\32 xl\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .\\32 xl\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .\\32 xl\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .\\32 xl\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .\\32 xl\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .\\32 xl\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .\\32 xl\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .\\32 xl\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .\\32 xl\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .\\32 xl\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .\\32 xl\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .\\32 xl\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .\\32 xl\\:offset-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .\\32 xl\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .\\32 xl\\:offset-3 {\n margin-inline-start: 25%;\n }\n .\\32 xl\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .\\32 xl\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .\\32 xl\\:offset-6 {\n margin-inline-start: 50%;\n }\n .\\32 xl\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .\\32 xl\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .\\32 xl\\:offset-9 {\n margin-inline-start: 75%;\n }\n .\\32 xl\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .\\32 xl\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .\\32 xl\\:g-0,\n .\\32 xl\\:gx-0 {\n --gutter-x: 0;\n }\n .\\32 xl\\:g-0,\n .\\32 xl\\:gy-0 {\n --gutter-y: 0;\n }\n .\\32 xl\\:g-1,\n .\\32 xl\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .\\32 xl\\:g-1,\n .\\32 xl\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .\\32 xl\\:g-2,\n .\\32 xl\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .\\32 xl\\:g-2,\n .\\32 xl\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .\\32 xl\\:g-3,\n .\\32 xl\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .\\32 xl\\:g-3,\n .\\32 xl\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .\\32 xl\\:g-4,\n .\\32 xl\\:gx-4 {\n --gutter-x: 1rem;\n }\n .\\32 xl\\:g-4,\n .\\32 xl\\:gy-4 {\n --gutter-y: 1rem;\n }\n .\\32 xl\\:g-5,\n .\\32 xl\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .\\32 xl\\:g-5,\n .\\32 xl\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .\\32 xl\\:g-6,\n .\\32 xl\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .\\32 xl\\:g-6,\n .\\32 xl\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .\\32 xl\\:g-7,\n .\\32 xl\\:gx-7 {\n --gutter-x: 2rem;\n }\n .\\32 xl\\:g-7,\n .\\32 xl\\:gy-7 {\n --gutter-y: 2rem;\n }\n .\\32 xl\\:g-8,\n .\\32 xl\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .\\32 xl\\:g-8,\n .\\32 xl\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .\\32 xl\\:g-9,\n .\\32 xl\\:gx-9 {\n --gutter-x: 3rem;\n }\n .\\32 xl\\:g-9,\n .\\32 xl\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n .grid {\n --columns: 12;\n --rows: 1;\n --gap: 1.5rem;\n display: grid;\n grid-template-rows: repeat(var(--rows), 1fr);\n grid-template-columns: repeat(var(--columns), 1fr);\n gap: var(--gap);\n }\n .g-col-1 {\n grid-column: auto/span 1;\n }\n .g-col-2 {\n grid-column: auto/span 2;\n }\n .g-col-3 {\n grid-column: auto/span 3;\n }\n .g-col-4 {\n grid-column: auto/span 4;\n }\n .g-col-5 {\n grid-column: auto/span 5;\n }\n .g-col-6 {\n grid-column: auto/span 6;\n }\n .g-col-7 {\n grid-column: auto/span 7;\n }\n .g-col-8 {\n grid-column: auto/span 8;\n }\n .g-col-9 {\n grid-column: auto/span 9;\n }\n .g-col-10 {\n grid-column: auto/span 10;\n }\n .g-col-11 {\n grid-column: auto/span 11;\n }\n .g-col-12 {\n grid-column: auto/span 12;\n }\n .g-start-1 {\n grid-column-start: 1;\n }\n .g-start-2 {\n grid-column-start: 2;\n }\n .g-start-3 {\n grid-column-start: 3;\n }\n .g-start-4 {\n grid-column-start: 4;\n }\n .g-start-5 {\n grid-column-start: 5;\n }\n .g-start-6 {\n grid-column-start: 6;\n }\n .g-start-7 {\n grid-column-start: 7;\n }\n .g-start-8 {\n grid-column-start: 8;\n }\n .g-start-9 {\n grid-column-start: 9;\n }\n .g-start-10 {\n grid-column-start: 10;\n }\n .g-start-11 {\n grid-column-start: 11;\n }\n @media (width >= 576px) {\n .sm\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .sm\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .sm\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .sm\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .sm\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .sm\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .sm\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .sm\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .sm\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .sm\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .sm\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .sm\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .sm\\:g-start-1 {\n grid-column-start: 1;\n }\n .sm\\:g-start-2 {\n grid-column-start: 2;\n }\n .sm\\:g-start-3 {\n grid-column-start: 3;\n }\n .sm\\:g-start-4 {\n grid-column-start: 4;\n }\n .sm\\:g-start-5 {\n grid-column-start: 5;\n }\n .sm\\:g-start-6 {\n grid-column-start: 6;\n }\n .sm\\:g-start-7 {\n grid-column-start: 7;\n }\n .sm\\:g-start-8 {\n grid-column-start: 8;\n }\n .sm\\:g-start-9 {\n grid-column-start: 9;\n }\n .sm\\:g-start-10 {\n grid-column-start: 10;\n }\n .sm\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 768px) {\n .md\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .md\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .md\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .md\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .md\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .md\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .md\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .md\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .md\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .md\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .md\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .md\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .md\\:g-start-1 {\n grid-column-start: 1;\n }\n .md\\:g-start-2 {\n grid-column-start: 2;\n }\n .md\\:g-start-3 {\n grid-column-start: 3;\n }\n .md\\:g-start-4 {\n grid-column-start: 4;\n }\n .md\\:g-start-5 {\n grid-column-start: 5;\n }\n .md\\:g-start-6 {\n grid-column-start: 6;\n }\n .md\\:g-start-7 {\n grid-column-start: 7;\n }\n .md\\:g-start-8 {\n grid-column-start: 8;\n }\n .md\\:g-start-9 {\n grid-column-start: 9;\n }\n .md\\:g-start-10 {\n grid-column-start: 10;\n }\n .md\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1024px) {\n .lg\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .lg\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .lg\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .lg\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .lg\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .lg\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .lg\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .lg\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .lg\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .lg\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .lg\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .lg\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .lg\\:g-start-1 {\n grid-column-start: 1;\n }\n .lg\\:g-start-2 {\n grid-column-start: 2;\n }\n .lg\\:g-start-3 {\n grid-column-start: 3;\n }\n .lg\\:g-start-4 {\n grid-column-start: 4;\n }\n .lg\\:g-start-5 {\n grid-column-start: 5;\n }\n .lg\\:g-start-6 {\n grid-column-start: 6;\n }\n .lg\\:g-start-7 {\n grid-column-start: 7;\n }\n .lg\\:g-start-8 {\n grid-column-start: 8;\n }\n .lg\\:g-start-9 {\n grid-column-start: 9;\n }\n .lg\\:g-start-10 {\n grid-column-start: 10;\n }\n .lg\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1280px) {\n .xl\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .xl\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .xl\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .xl\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .xl\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .xl\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .xl\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .xl\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .xl\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .xl\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .xl\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .xl\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .xl\\:g-start-1 {\n grid-column-start: 1;\n }\n .xl\\:g-start-2 {\n grid-column-start: 2;\n }\n .xl\\:g-start-3 {\n grid-column-start: 3;\n }\n .xl\\:g-start-4 {\n grid-column-start: 4;\n }\n .xl\\:g-start-5 {\n grid-column-start: 5;\n }\n .xl\\:g-start-6 {\n grid-column-start: 6;\n }\n .xl\\:g-start-7 {\n grid-column-start: 7;\n }\n .xl\\:g-start-8 {\n grid-column-start: 8;\n }\n .xl\\:g-start-9 {\n grid-column-start: 9;\n }\n .xl\\:g-start-10 {\n grid-column-start: 10;\n }\n .xl\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .\\32 xl\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .\\32 xl\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .\\32 xl\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .\\32 xl\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .\\32 xl\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .\\32 xl\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .\\32 xl\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .\\32 xl\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .\\32 xl\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .\\32 xl\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .\\32 xl\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .\\32 xl\\:g-start-1 {\n grid-column-start: 1;\n }\n .\\32 xl\\:g-start-2 {\n grid-column-start: 2;\n }\n .\\32 xl\\:g-start-3 {\n grid-column-start: 3;\n }\n .\\32 xl\\:g-start-4 {\n grid-column-start: 4;\n }\n .\\32 xl\\:g-start-5 {\n grid-column-start: 5;\n }\n .\\32 xl\\:g-start-6 {\n grid-column-start: 6;\n }\n .\\32 xl\\:g-start-7 {\n grid-column-start: 7;\n }\n .\\32 xl\\:g-start-8 {\n grid-column-start: 8;\n }\n .\\32 xl\\:g-start-9 {\n grid-column-start: 9;\n }\n .\\32 xl\\:g-start-10 {\n grid-column-start: 10;\n }\n .\\32 xl\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n .grid-cols-subgrid {\n grid-template-columns: subgrid;\n }\n .grid-fill {\n --gap: 1.5rem;\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-auto-flow: row;\n gap: var(--gap);\n }\n}\n@layer utilities {\n .d-inline {\n display: inline;\n }\n .d-inline-block {\n display: inline-block;\n }\n .d-block {\n display: block;\n }\n .d-grid {\n display: grid;\n }\n .d-inline-grid {\n display: inline-grid;\n }\n .d-table {\n display: table;\n }\n .d-table-row {\n display: table-row;\n }\n .d-table-cell {\n display: table-cell;\n }\n .d-flex {\n display: flex;\n }\n .d-inline-flex {\n display: inline-flex;\n }\n .d-contents {\n display: contents;\n }\n .d-flow-root {\n display: flow-root;\n }\n .d-none {\n display: none;\n }\n .flex-fill {\n flex: 1 1 auto;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-column {\n flex-direction: column;\n }\n .flex-row-reverse {\n flex-direction: row-reverse;\n }\n .flex-column-reverse {\n flex-direction: column-reverse;\n }\n .flex-grow-0 {\n flex-grow: 0;\n }\n .flex-grow-1 {\n flex-grow: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .flex-shrink-1 {\n flex-shrink: 1;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .flex-nowrap {\n flex-wrap: nowrap;\n }\n .flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .justify-content-start {\n justify-content: flex-start;\n }\n .justify-content-end {\n justify-content: flex-end;\n }\n .justify-content-center {\n justify-content: center;\n }\n .justify-content-between {\n justify-content: space-between;\n }\n .justify-content-around {\n justify-content: space-around;\n }\n .justify-content-evenly {\n justify-content: space-evenly;\n }\n .justify-items-start {\n justify-items: start;\n }\n .justify-items-end {\n justify-items: end;\n }\n .justify-items-center {\n justify-items: center;\n }\n .justify-items-stretch {\n justify-items: stretch;\n }\n .align-items-start {\n align-items: flex-start;\n }\n .align-items-end {\n align-items: flex-end;\n }\n .align-items-center {\n align-items: center;\n }\n .align-items-baseline {\n align-items: baseline;\n }\n .align-items-stretch {\n align-items: stretch;\n }\n .align-content-start {\n align-content: flex-start;\n }\n .align-content-end {\n align-content: flex-end;\n }\n .align-content-center {\n align-content: center;\n }\n .align-content-between {\n align-content: space-between;\n }\n .align-content-around {\n align-content: space-around;\n }\n .align-content-stretch {\n align-content: stretch;\n }\n .align-self-auto {\n align-self: auto;\n }\n .align-self-start {\n align-self: flex-start;\n }\n .align-self-end {\n align-self: flex-end;\n }\n .align-self-center {\n align-self: center;\n }\n .align-self-baseline {\n align-self: baseline;\n }\n .align-self-stretch {\n align-self: stretch;\n }\n .place-items-start {\n place-items: start;\n }\n .place-items-end {\n place-items: end;\n }\n .place-items-center {\n place-items: center;\n }\n .place-items-stretch {\n place-items: stretch;\n }\n .grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .grid-cols-fill {\n grid-column: 1 / -1;\n }\n .grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .order-first {\n order: -1;\n }\n .order-0 {\n order: 0;\n }\n .order-1 {\n order: 1;\n }\n .order-2 {\n order: 2;\n }\n .order-3 {\n order: 3;\n }\n .order-4 {\n order: 4;\n }\n .order-5 {\n order: 5;\n }\n .order-last {\n order: 6;\n }\n .m-0 {\n margin: 0;\n }\n .m-1 {\n margin: 0.25rem;\n }\n .m-2 {\n margin: 0.5rem;\n }\n .m-3 {\n margin: 0.75rem;\n }\n .m-4 {\n margin: 1rem;\n }\n .m-5 {\n margin: 1.25rem;\n }\n .m-6 {\n margin: 1.5rem;\n }\n .m-7 {\n margin: 2rem;\n }\n .m-8 {\n margin: 2.5rem;\n }\n .m-9 {\n margin: 3rem;\n }\n .m-auto {\n margin: auto;\n }\n .mx-0 {\n margin-inline: 0;\n }\n .mx-1 {\n margin-inline: 0.25rem;\n }\n .mx-2 {\n margin-inline: 0.5rem;\n }\n .mx-3 {\n margin-inline: 0.75rem;\n }\n .mx-4 {\n margin-inline: 1rem;\n }\n .mx-5 {\n margin-inline: 1.25rem;\n }\n .mx-6 {\n margin-inline: 1.5rem;\n }\n .mx-7 {\n margin-inline: 2rem;\n }\n .mx-8 {\n margin-inline: 2.5rem;\n }\n .mx-9 {\n margin-inline: 3rem;\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-0 {\n margin-block: 0;\n }\n .my-1 {\n margin-block: 0.25rem;\n }\n .my-2 {\n margin-block: 0.5rem;\n }\n .my-3 {\n margin-block: 0.75rem;\n }\n .my-4 {\n margin-block: 1rem;\n }\n .my-5 {\n margin-block: 1.25rem;\n }\n .my-6 {\n margin-block: 1.5rem;\n }\n .my-7 {\n margin-block: 2rem;\n }\n .my-8 {\n margin-block: 2.5rem;\n }\n .my-9 {\n margin-block: 3rem;\n }\n .my-auto {\n margin-block: auto;\n }\n .mt-0 {\n margin-block-start: 0;\n }\n .mt-1 {\n margin-block-start: 0.25rem;\n }\n .mt-2 {\n margin-block-start: 0.5rem;\n }\n .mt-3 {\n margin-block-start: 0.75rem;\n }\n .mt-4 {\n margin-block-start: 1rem;\n }\n .mt-5 {\n margin-block-start: 1.25rem;\n }\n .mt-6 {\n margin-block-start: 1.5rem;\n }\n .mt-7 {\n margin-block-start: 2rem;\n }\n .mt-8 {\n margin-block-start: 2.5rem;\n }\n .mt-9 {\n margin-block-start: 3rem;\n }\n .mt-auto {\n margin-block-start: auto;\n }\n .me-0 {\n margin-inline-end: 0;\n }\n .me-1 {\n margin-inline-end: 0.25rem;\n }\n .me-2 {\n margin-inline-end: 0.5rem;\n }\n .me-3 {\n margin-inline-end: 0.75rem;\n }\n .me-4 {\n margin-inline-end: 1rem;\n }\n .me-5 {\n margin-inline-end: 1.25rem;\n }\n .me-6 {\n margin-inline-end: 1.5rem;\n }\n .me-7 {\n margin-inline-end: 2rem;\n }\n .me-8 {\n margin-inline-end: 2.5rem;\n }\n .me-9 {\n margin-inline-end: 3rem;\n }\n .me--1 {\n margin-inline-end: -0.25rem;\n }\n .me--2 {\n margin-inline-end: -0.5rem;\n }\n .me-auto {\n margin-inline-end: auto;\n }\n .mb-0 {\n margin-block-end: 0;\n }\n .mb-1 {\n margin-block-end: 0.25rem;\n }\n .mb-2 {\n margin-block-end: 0.5rem;\n }\n .mb-3 {\n margin-block-end: 0.75rem;\n }\n .mb-4 {\n margin-block-end: 1rem;\n }\n .mb-5 {\n margin-block-end: 1.25rem;\n }\n .mb-6 {\n margin-block-end: 1.5rem;\n }\n .mb-7 {\n margin-block-end: 2rem;\n }\n .mb-8 {\n margin-block-end: 2.5rem;\n }\n .mb-9 {\n margin-block-end: 3rem;\n }\n .mb-auto {\n margin-block-end: auto;\n }\n .ms-0 {\n margin-inline-start: 0;\n }\n .ms-1 {\n margin-inline-start: 0.25rem;\n }\n .ms-2 {\n margin-inline-start: 0.5rem;\n }\n .ms-3 {\n margin-inline-start: 0.75rem;\n }\n .ms-4 {\n margin-inline-start: 1rem;\n }\n .ms-5 {\n margin-inline-start: 1.25rem;\n }\n .ms-6 {\n margin-inline-start: 1.5rem;\n }\n .ms-7 {\n margin-inline-start: 2rem;\n }\n .ms-8 {\n margin-inline-start: 2.5rem;\n }\n .ms-9 {\n margin-inline-start: 3rem;\n }\n .ms--1 {\n margin-inline-start: -0.25rem;\n }\n .ms--2 {\n margin-inline-start: -0.5rem;\n }\n .ms-auto {\n margin-inline-start: auto;\n }\n .p-0 {\n padding: 0;\n }\n .p-1 {\n padding: 0.25rem;\n }\n .p-2 {\n padding: 0.5rem;\n }\n .p-3 {\n padding: 0.75rem;\n }\n .p-4 {\n padding: 1rem;\n }\n .p-5 {\n padding: 1.25rem;\n }\n .p-6 {\n padding: 1.5rem;\n }\n .p-7 {\n padding: 2rem;\n }\n .p-8 {\n padding: 2.5rem;\n }\n .p-9 {\n padding: 3rem;\n }\n .px-0 {\n padding-inline: 0;\n }\n .px-1 {\n padding-inline: 0.25rem;\n }\n .px-2 {\n padding-inline: 0.5rem;\n }\n .px-3 {\n padding-inline: 0.75rem;\n }\n .px-4 {\n padding-inline: 1rem;\n }\n .px-5 {\n padding-inline: 1.25rem;\n }\n .px-6 {\n padding-inline: 1.5rem;\n }\n .px-7 {\n padding-inline: 2rem;\n }\n .px-8 {\n padding-inline: 2.5rem;\n }\n .px-9 {\n padding-inline: 3rem;\n }\n .py-0 {\n padding-block: 0;\n }\n .py-1 {\n padding-block: 0.25rem;\n }\n .py-2 {\n padding-block: 0.5rem;\n }\n .py-3 {\n padding-block: 0.75rem;\n }\n .py-4 {\n padding-block: 1rem;\n }\n .py-5 {\n padding-block: 1.25rem;\n }\n .py-6 {\n padding-block: 1.5rem;\n }\n .py-7 {\n padding-block: 2rem;\n }\n .py-8 {\n padding-block: 2.5rem;\n }\n .py-9 {\n padding-block: 3rem;\n }\n .pt-0 {\n padding-block-start: 0;\n }\n .pt-1 {\n padding-block-start: 0.25rem;\n }\n .pt-2 {\n padding-block-start: 0.5rem;\n }\n .pt-3 {\n padding-block-start: 0.75rem;\n }\n .pt-4 {\n padding-block-start: 1rem;\n }\n .pt-5 {\n padding-block-start: 1.25rem;\n }\n .pt-6 {\n padding-block-start: 1.5rem;\n }\n .pt-7 {\n padding-block-start: 2rem;\n }\n .pt-8 {\n padding-block-start: 2.5rem;\n }\n .pt-9 {\n padding-block-start: 3rem;\n }\n .pe-0 {\n padding-inline-end: 0;\n }\n .pe-1 {\n padding-inline-end: 0.25rem;\n }\n .pe-2 {\n padding-inline-end: 0.5rem;\n }\n .pe-3 {\n padding-inline-end: 0.75rem;\n }\n .pe-4 {\n padding-inline-end: 1rem;\n }\n .pe-5 {\n padding-inline-end: 1.25rem;\n }\n .pe-6 {\n padding-inline-end: 1.5rem;\n }\n .pe-7 {\n padding-inline-end: 2rem;\n }\n .pe-8 {\n padding-inline-end: 2.5rem;\n }\n .pe-9 {\n padding-inline-end: 3rem;\n }\n .pb-0 {\n padding-block-end: 0;\n }\n .pb-1 {\n padding-block-end: 0.25rem;\n }\n .pb-2 {\n padding-block-end: 0.5rem;\n }\n .pb-3 {\n padding-block-end: 0.75rem;\n }\n .pb-4 {\n padding-block-end: 1rem;\n }\n .pb-5 {\n padding-block-end: 1.25rem;\n }\n .pb-6 {\n padding-block-end: 1.5rem;\n }\n .pb-7 {\n padding-block-end: 2rem;\n }\n .pb-8 {\n padding-block-end: 2.5rem;\n }\n .pb-9 {\n padding-block-end: 3rem;\n }\n .ps-0 {\n padding-inline-start: 0;\n }\n .ps-1 {\n padding-inline-start: 0.25rem;\n }\n .ps-2 {\n padding-inline-start: 0.5rem;\n }\n .ps-3 {\n padding-inline-start: 0.75rem;\n }\n .ps-4 {\n padding-inline-start: 1rem;\n }\n .ps-5 {\n padding-inline-start: 1.25rem;\n }\n .ps-6 {\n padding-inline-start: 1.5rem;\n }\n .ps-7 {\n padding-inline-start: 2rem;\n }\n .ps-8 {\n padding-inline-start: 2.5rem;\n }\n .ps-9 {\n padding-inline-start: 3rem;\n }\n .gap-0 {\n gap: 0;\n }\n .gap-1 {\n gap: 0.25rem;\n }\n .gap-2 {\n gap: 0.5rem;\n }\n .gap-3 {\n gap: 0.75rem;\n }\n .gap-4 {\n gap: 1rem;\n }\n .gap-5 {\n gap: 1.25rem;\n }\n .gap-6 {\n gap: 1.5rem;\n }\n .gap-7 {\n gap: 2rem;\n }\n .gap-8 {\n gap: 2.5rem;\n }\n .gap-9 {\n gap: 3rem;\n }\n .row-gap-0 {\n row-gap: 0;\n }\n .row-gap-1 {\n row-gap: 0.25rem;\n }\n .row-gap-2 {\n row-gap: 0.5rem;\n }\n .row-gap-3 {\n row-gap: 0.75rem;\n }\n .row-gap-4 {\n row-gap: 1rem;\n }\n .row-gap-5 {\n row-gap: 1.25rem;\n }\n .row-gap-6 {\n row-gap: 1.5rem;\n }\n .row-gap-7 {\n row-gap: 2rem;\n }\n .row-gap-8 {\n row-gap: 2.5rem;\n }\n .row-gap-9 {\n row-gap: 3rem;\n }\n .column-gap-0 {\n column-gap: 0;\n }\n .column-gap-1 {\n column-gap: 0.25rem;\n }\n .column-gap-2 {\n column-gap: 0.5rem;\n }\n .column-gap-3 {\n column-gap: 0.75rem;\n }\n .column-gap-4 {\n column-gap: 1rem;\n }\n .column-gap-5 {\n column-gap: 1.25rem;\n }\n .column-gap-6 {\n column-gap: 1.5rem;\n }\n .column-gap-7 {\n column-gap: 2rem;\n }\n .column-gap-8 {\n column-gap: 2.5rem;\n }\n .column-gap-9 {\n column-gap: 3rem;\n }\n @media (width >= 576px) {\n .sm\\:d-inline {\n display: inline;\n }\n .sm\\:d-inline-block {\n display: inline-block;\n }\n .sm\\:d-block {\n display: block;\n }\n .sm\\:d-grid {\n display: grid;\n }\n .sm\\:d-inline-grid {\n display: inline-grid;\n }\n .sm\\:d-table {\n display: table;\n }\n .sm\\:d-table-row {\n display: table-row;\n }\n .sm\\:d-table-cell {\n display: table-cell;\n }\n .sm\\:d-flex {\n display: flex;\n }\n .sm\\:d-inline-flex {\n display: inline-flex;\n }\n .sm\\:d-contents {\n display: contents;\n }\n .sm\\:d-flow-root {\n display: flow-root;\n }\n .sm\\:d-none {\n display: none;\n }\n .sm\\:flex-fill {\n flex: 1 1 auto;\n }\n .sm\\:flex-row {\n flex-direction: row;\n }\n .sm\\:flex-column {\n flex-direction: column;\n }\n .sm\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .sm\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .sm\\:flex-grow-0 {\n flex-grow: 0;\n }\n .sm\\:flex-grow-1 {\n flex-grow: 1;\n }\n .sm\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .sm\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .sm\\:flex-wrap {\n flex-wrap: wrap;\n }\n .sm\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .sm\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .sm\\:justify-content-start {\n justify-content: flex-start;\n }\n .sm\\:justify-content-end {\n justify-content: flex-end;\n }\n .sm\\:justify-content-center {\n justify-content: center;\n }\n .sm\\:justify-content-between {\n justify-content: space-between;\n }\n .sm\\:justify-content-around {\n justify-content: space-around;\n }\n .sm\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .sm\\:justify-items-start {\n justify-items: start;\n }\n .sm\\:justify-items-end {\n justify-items: end;\n }\n .sm\\:justify-items-center {\n justify-items: center;\n }\n .sm\\:justify-items-stretch {\n justify-items: stretch;\n }\n .sm\\:align-items-start {\n align-items: flex-start;\n }\n .sm\\:align-items-end {\n align-items: flex-end;\n }\n .sm\\:align-items-center {\n align-items: center;\n }\n .sm\\:align-items-baseline {\n align-items: baseline;\n }\n .sm\\:align-items-stretch {\n align-items: stretch;\n }\n .sm\\:align-content-start {\n align-content: flex-start;\n }\n .sm\\:align-content-end {\n align-content: flex-end;\n }\n .sm\\:align-content-center {\n align-content: center;\n }\n .sm\\:align-content-between {\n align-content: space-between;\n }\n .sm\\:align-content-around {\n align-content: space-around;\n }\n .sm\\:align-content-stretch {\n align-content: stretch;\n }\n .sm\\:align-self-auto {\n align-self: auto;\n }\n .sm\\:align-self-start {\n align-self: flex-start;\n }\n .sm\\:align-self-end {\n align-self: flex-end;\n }\n .sm\\:align-self-center {\n align-self: center;\n }\n .sm\\:align-self-baseline {\n align-self: baseline;\n }\n .sm\\:align-self-stretch {\n align-self: stretch;\n }\n .sm\\:place-items-start {\n place-items: start;\n }\n .sm\\:place-items-end {\n place-items: end;\n }\n .sm\\:place-items-center {\n place-items: center;\n }\n .sm\\:place-items-stretch {\n place-items: stretch;\n }\n .sm\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .sm\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .sm\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .sm\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .sm\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .sm\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .sm\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .sm\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .sm\\:order-first {\n order: -1;\n }\n .sm\\:order-0 {\n order: 0;\n }\n .sm\\:order-1 {\n order: 1;\n }\n .sm\\:order-2 {\n order: 2;\n }\n .sm\\:order-3 {\n order: 3;\n }\n .sm\\:order-4 {\n order: 4;\n }\n .sm\\:order-5 {\n order: 5;\n }\n .sm\\:order-last {\n order: 6;\n }\n .sm\\:m-0 {\n margin: 0;\n }\n .sm\\:m-1 {\n margin: 0.25rem;\n }\n .sm\\:m-2 {\n margin: 0.5rem;\n }\n .sm\\:m-3 {\n margin: 0.75rem;\n }\n .sm\\:m-4 {\n margin: 1rem;\n }\n .sm\\:m-5 {\n margin: 1.25rem;\n }\n .sm\\:m-6 {\n margin: 1.5rem;\n }\n .sm\\:m-7 {\n margin: 2rem;\n }\n .sm\\:m-8 {\n margin: 2.5rem;\n }\n .sm\\:m-9 {\n margin: 3rem;\n }\n .sm\\:m-auto {\n margin: auto;\n }\n .sm\\:mx-0 {\n margin-inline: 0;\n }\n .sm\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .sm\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .sm\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .sm\\:mx-4 {\n margin-inline: 1rem;\n }\n .sm\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .sm\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .sm\\:mx-7 {\n margin-inline: 2rem;\n }\n .sm\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .sm\\:mx-9 {\n margin-inline: 3rem;\n }\n .sm\\:mx-auto {\n margin-inline: auto;\n }\n .sm\\:my-0 {\n margin-block: 0;\n }\n .sm\\:my-1 {\n margin-block: 0.25rem;\n }\n .sm\\:my-2 {\n margin-block: 0.5rem;\n }\n .sm\\:my-3 {\n margin-block: 0.75rem;\n }\n .sm\\:my-4 {\n margin-block: 1rem;\n }\n .sm\\:my-5 {\n margin-block: 1.25rem;\n }\n .sm\\:my-6 {\n margin-block: 1.5rem;\n }\n .sm\\:my-7 {\n margin-block: 2rem;\n }\n .sm\\:my-8 {\n margin-block: 2.5rem;\n }\n .sm\\:my-9 {\n margin-block: 3rem;\n }\n .sm\\:my-auto {\n margin-block: auto;\n }\n .sm\\:mt-0 {\n margin-block-start: 0;\n }\n .sm\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .sm\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .sm\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .sm\\:mt-4 {\n margin-block-start: 1rem;\n }\n .sm\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .sm\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .sm\\:mt-7 {\n margin-block-start: 2rem;\n }\n .sm\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .sm\\:mt-9 {\n margin-block-start: 3rem;\n }\n .sm\\:mt-auto {\n margin-block-start: auto;\n }\n .sm\\:me-0 {\n margin-inline-end: 0;\n }\n .sm\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .sm\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .sm\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .sm\\:me-4 {\n margin-inline-end: 1rem;\n }\n .sm\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .sm\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .sm\\:me-7 {\n margin-inline-end: 2rem;\n }\n .sm\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .sm\\:me-9 {\n margin-inline-end: 3rem;\n }\n .sm\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .sm\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .sm\\:me-auto {\n margin-inline-end: auto;\n }\n .sm\\:mb-0 {\n margin-block-end: 0;\n }\n .sm\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .sm\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .sm\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .sm\\:mb-4 {\n margin-block-end: 1rem;\n }\n .sm\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .sm\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .sm\\:mb-7 {\n margin-block-end: 2rem;\n }\n .sm\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .sm\\:mb-9 {\n margin-block-end: 3rem;\n }\n .sm\\:mb-auto {\n margin-block-end: auto;\n }\n .sm\\:ms-0 {\n margin-inline-start: 0;\n }\n .sm\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .sm\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .sm\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .sm\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .sm\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .sm\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .sm\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .sm\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .sm\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .sm\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .sm\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .sm\\:ms-auto {\n margin-inline-start: auto;\n }\n .sm\\:p-0 {\n padding: 0;\n }\n .sm\\:p-1 {\n padding: 0.25rem;\n }\n .sm\\:p-2 {\n padding: 0.5rem;\n }\n .sm\\:p-3 {\n padding: 0.75rem;\n }\n .sm\\:p-4 {\n padding: 1rem;\n }\n .sm\\:p-5 {\n padding: 1.25rem;\n }\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n .sm\\:p-7 {\n padding: 2rem;\n }\n .sm\\:p-8 {\n padding: 2.5rem;\n }\n .sm\\:p-9 {\n padding: 3rem;\n }\n .sm\\:px-0 {\n padding-inline: 0;\n }\n .sm\\:px-1 {\n padding-inline: 0.25rem;\n }\n .sm\\:px-2 {\n padding-inline: 0.5rem;\n }\n .sm\\:px-3 {\n padding-inline: 0.75rem;\n }\n .sm\\:px-4 {\n padding-inline: 1rem;\n }\n .sm\\:px-5 {\n padding-inline: 1.25rem;\n }\n .sm\\:px-6 {\n padding-inline: 1.5rem;\n }\n .sm\\:px-7 {\n padding-inline: 2rem;\n }\n .sm\\:px-8 {\n padding-inline: 2.5rem;\n }\n .sm\\:px-9 {\n padding-inline: 3rem;\n }\n .sm\\:py-0 {\n padding-block: 0;\n }\n .sm\\:py-1 {\n padding-block: 0.25rem;\n }\n .sm\\:py-2 {\n padding-block: 0.5rem;\n }\n .sm\\:py-3 {\n padding-block: 0.75rem;\n }\n .sm\\:py-4 {\n padding-block: 1rem;\n }\n .sm\\:py-5 {\n padding-block: 1.25rem;\n }\n .sm\\:py-6 {\n padding-block: 1.5rem;\n }\n .sm\\:py-7 {\n padding-block: 2rem;\n }\n .sm\\:py-8 {\n padding-block: 2.5rem;\n }\n .sm\\:py-9 {\n padding-block: 3rem;\n }\n .sm\\:pt-0 {\n padding-block-start: 0;\n }\n .sm\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .sm\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .sm\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .sm\\:pt-4 {\n padding-block-start: 1rem;\n }\n .sm\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .sm\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .sm\\:pt-7 {\n padding-block-start: 2rem;\n }\n .sm\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .sm\\:pt-9 {\n padding-block-start: 3rem;\n }\n .sm\\:pe-0 {\n padding-inline-end: 0;\n }\n .sm\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .sm\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .sm\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .sm\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .sm\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .sm\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .sm\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .sm\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .sm\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .sm\\:pb-0 {\n padding-block-end: 0;\n }\n .sm\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .sm\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .sm\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .sm\\:pb-4 {\n padding-block-end: 1rem;\n }\n .sm\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .sm\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .sm\\:pb-7 {\n padding-block-end: 2rem;\n }\n .sm\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .sm\\:pb-9 {\n padding-block-end: 3rem;\n }\n .sm\\:ps-0 {\n padding-inline-start: 0;\n }\n .sm\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .sm\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .sm\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .sm\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .sm\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .sm\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .sm\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .sm\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .sm\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .sm\\:gap-0 {\n gap: 0;\n }\n .sm\\:gap-1 {\n gap: 0.25rem;\n }\n .sm\\:gap-2 {\n gap: 0.5rem;\n }\n .sm\\:gap-3 {\n gap: 0.75rem;\n }\n .sm\\:gap-4 {\n gap: 1rem;\n }\n .sm\\:gap-5 {\n gap: 1.25rem;\n }\n .sm\\:gap-6 {\n gap: 1.5rem;\n }\n .sm\\:gap-7 {\n gap: 2rem;\n }\n .sm\\:gap-8 {\n gap: 2.5rem;\n }\n .sm\\:gap-9 {\n gap: 3rem;\n }\n .sm\\:row-gap-0 {\n row-gap: 0;\n }\n .sm\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .sm\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .sm\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .sm\\:row-gap-4 {\n row-gap: 1rem;\n }\n .sm\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .sm\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .sm\\:row-gap-7 {\n row-gap: 2rem;\n }\n .sm\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .sm\\:row-gap-9 {\n row-gap: 3rem;\n }\n .sm\\:column-gap-0 {\n column-gap: 0;\n }\n .sm\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .sm\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .sm\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .sm\\:column-gap-4 {\n column-gap: 1rem;\n }\n .sm\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .sm\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .sm\\:column-gap-7 {\n column-gap: 2rem;\n }\n .sm\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .sm\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n @media (width >= 768px) {\n .md\\:d-inline {\n display: inline;\n }\n .md\\:d-inline-block {\n display: inline-block;\n }\n .md\\:d-block {\n display: block;\n }\n .md\\:d-grid {\n display: grid;\n }\n .md\\:d-inline-grid {\n display: inline-grid;\n }\n .md\\:d-table {\n display: table;\n }\n .md\\:d-table-row {\n display: table-row;\n }\n .md\\:d-table-cell {\n display: table-cell;\n }\n .md\\:d-flex {\n display: flex;\n }\n .md\\:d-inline-flex {\n display: inline-flex;\n }\n .md\\:d-contents {\n display: contents;\n }\n .md\\:d-flow-root {\n display: flow-root;\n }\n .md\\:d-none {\n display: none;\n }\n .md\\:flex-fill {\n flex: 1 1 auto;\n }\n .md\\:flex-row {\n flex-direction: row;\n }\n .md\\:flex-column {\n flex-direction: column;\n }\n .md\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .md\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .md\\:flex-grow-0 {\n flex-grow: 0;\n }\n .md\\:flex-grow-1 {\n flex-grow: 1;\n }\n .md\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .md\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .md\\:flex-wrap {\n flex-wrap: wrap;\n }\n .md\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .md\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .md\\:justify-content-start {\n justify-content: flex-start;\n }\n .md\\:justify-content-end {\n justify-content: flex-end;\n }\n .md\\:justify-content-center {\n justify-content: center;\n }\n .md\\:justify-content-between {\n justify-content: space-between;\n }\n .md\\:justify-content-around {\n justify-content: space-around;\n }\n .md\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .md\\:justify-items-start {\n justify-items: start;\n }\n .md\\:justify-items-end {\n justify-items: end;\n }\n .md\\:justify-items-center {\n justify-items: center;\n }\n .md\\:justify-items-stretch {\n justify-items: stretch;\n }\n .md\\:align-items-start {\n align-items: flex-start;\n }\n .md\\:align-items-end {\n align-items: flex-end;\n }\n .md\\:align-items-center {\n align-items: center;\n }\n .md\\:align-items-baseline {\n align-items: baseline;\n }\n .md\\:align-items-stretch {\n align-items: stretch;\n }\n .md\\:align-content-start {\n align-content: flex-start;\n }\n .md\\:align-content-end {\n align-content: flex-end;\n }\n .md\\:align-content-center {\n align-content: center;\n }\n .md\\:align-content-between {\n align-content: space-between;\n }\n .md\\:align-content-around {\n align-content: space-around;\n }\n .md\\:align-content-stretch {\n align-content: stretch;\n }\n .md\\:align-self-auto {\n align-self: auto;\n }\n .md\\:align-self-start {\n align-self: flex-start;\n }\n .md\\:align-self-end {\n align-self: flex-end;\n }\n .md\\:align-self-center {\n align-self: center;\n }\n .md\\:align-self-baseline {\n align-self: baseline;\n }\n .md\\:align-self-stretch {\n align-self: stretch;\n }\n .md\\:place-items-start {\n place-items: start;\n }\n .md\\:place-items-end {\n place-items: end;\n }\n .md\\:place-items-center {\n place-items: center;\n }\n .md\\:place-items-stretch {\n place-items: stretch;\n }\n .md\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .md\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .md\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .md\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .md\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .md\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .md\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .md\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .md\\:order-first {\n order: -1;\n }\n .md\\:order-0 {\n order: 0;\n }\n .md\\:order-1 {\n order: 1;\n }\n .md\\:order-2 {\n order: 2;\n }\n .md\\:order-3 {\n order: 3;\n }\n .md\\:order-4 {\n order: 4;\n }\n .md\\:order-5 {\n order: 5;\n }\n .md\\:order-last {\n order: 6;\n }\n .md\\:m-0 {\n margin: 0;\n }\n .md\\:m-1 {\n margin: 0.25rem;\n }\n .md\\:m-2 {\n margin: 0.5rem;\n }\n .md\\:m-3 {\n margin: 0.75rem;\n }\n .md\\:m-4 {\n margin: 1rem;\n }\n .md\\:m-5 {\n margin: 1.25rem;\n }\n .md\\:m-6 {\n margin: 1.5rem;\n }\n .md\\:m-7 {\n margin: 2rem;\n }\n .md\\:m-8 {\n margin: 2.5rem;\n }\n .md\\:m-9 {\n margin: 3rem;\n }\n .md\\:m-auto {\n margin: auto;\n }\n .md\\:mx-0 {\n margin-inline: 0;\n }\n .md\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .md\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .md\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .md\\:mx-4 {\n margin-inline: 1rem;\n }\n .md\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .md\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .md\\:mx-7 {\n margin-inline: 2rem;\n }\n .md\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .md\\:mx-9 {\n margin-inline: 3rem;\n }\n .md\\:mx-auto {\n margin-inline: auto;\n }\n .md\\:my-0 {\n margin-block: 0;\n }\n .md\\:my-1 {\n margin-block: 0.25rem;\n }\n .md\\:my-2 {\n margin-block: 0.5rem;\n }\n .md\\:my-3 {\n margin-block: 0.75rem;\n }\n .md\\:my-4 {\n margin-block: 1rem;\n }\n .md\\:my-5 {\n margin-block: 1.25rem;\n }\n .md\\:my-6 {\n margin-block: 1.5rem;\n }\n .md\\:my-7 {\n margin-block: 2rem;\n }\n .md\\:my-8 {\n margin-block: 2.5rem;\n }\n .md\\:my-9 {\n margin-block: 3rem;\n }\n .md\\:my-auto {\n margin-block: auto;\n }\n .md\\:mt-0 {\n margin-block-start: 0;\n }\n .md\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .md\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .md\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .md\\:mt-4 {\n margin-block-start: 1rem;\n }\n .md\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .md\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .md\\:mt-7 {\n margin-block-start: 2rem;\n }\n .md\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .md\\:mt-9 {\n margin-block-start: 3rem;\n }\n .md\\:mt-auto {\n margin-block-start: auto;\n }\n .md\\:me-0 {\n margin-inline-end: 0;\n }\n .md\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .md\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .md\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .md\\:me-4 {\n margin-inline-end: 1rem;\n }\n .md\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .md\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .md\\:me-7 {\n margin-inline-end: 2rem;\n }\n .md\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .md\\:me-9 {\n margin-inline-end: 3rem;\n }\n .md\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .md\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .md\\:me-auto {\n margin-inline-end: auto;\n }\n .md\\:mb-0 {\n margin-block-end: 0;\n }\n .md\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .md\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .md\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .md\\:mb-4 {\n margin-block-end: 1rem;\n }\n .md\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .md\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .md\\:mb-7 {\n margin-block-end: 2rem;\n }\n .md\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .md\\:mb-9 {\n margin-block-end: 3rem;\n }\n .md\\:mb-auto {\n margin-block-end: auto;\n }\n .md\\:ms-0 {\n margin-inline-start: 0;\n }\n .md\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .md\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .md\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .md\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .md\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .md\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .md\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .md\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .md\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .md\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .md\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .md\\:ms-auto {\n margin-inline-start: auto;\n }\n .md\\:p-0 {\n padding: 0;\n }\n .md\\:p-1 {\n padding: 0.25rem;\n }\n .md\\:p-2 {\n padding: 0.5rem;\n }\n .md\\:p-3 {\n padding: 0.75rem;\n }\n .md\\:p-4 {\n padding: 1rem;\n }\n .md\\:p-5 {\n padding: 1.25rem;\n }\n .md\\:p-6 {\n padding: 1.5rem;\n }\n .md\\:p-7 {\n padding: 2rem;\n }\n .md\\:p-8 {\n padding: 2.5rem;\n }\n .md\\:p-9 {\n padding: 3rem;\n }\n .md\\:px-0 {\n padding-inline: 0;\n }\n .md\\:px-1 {\n padding-inline: 0.25rem;\n }\n .md\\:px-2 {\n padding-inline: 0.5rem;\n }\n .md\\:px-3 {\n padding-inline: 0.75rem;\n }\n .md\\:px-4 {\n padding-inline: 1rem;\n }\n .md\\:px-5 {\n padding-inline: 1.25rem;\n }\n .md\\:px-6 {\n padding-inline: 1.5rem;\n }\n .md\\:px-7 {\n padding-inline: 2rem;\n }\n .md\\:px-8 {\n padding-inline: 2.5rem;\n }\n .md\\:px-9 {\n padding-inline: 3rem;\n }\n .md\\:py-0 {\n padding-block: 0;\n }\n .md\\:py-1 {\n padding-block: 0.25rem;\n }\n .md\\:py-2 {\n padding-block: 0.5rem;\n }\n .md\\:py-3 {\n padding-block: 0.75rem;\n }\n .md\\:py-4 {\n padding-block: 1rem;\n }\n .md\\:py-5 {\n padding-block: 1.25rem;\n }\n .md\\:py-6 {\n padding-block: 1.5rem;\n }\n .md\\:py-7 {\n padding-block: 2rem;\n }\n .md\\:py-8 {\n padding-block: 2.5rem;\n }\n .md\\:py-9 {\n padding-block: 3rem;\n }\n .md\\:pt-0 {\n padding-block-start: 0;\n }\n .md\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .md\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .md\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .md\\:pt-4 {\n padding-block-start: 1rem;\n }\n .md\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .md\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .md\\:pt-7 {\n padding-block-start: 2rem;\n }\n .md\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .md\\:pt-9 {\n padding-block-start: 3rem;\n }\n .md\\:pe-0 {\n padding-inline-end: 0;\n }\n .md\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .md\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .md\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .md\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .md\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .md\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .md\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .md\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .md\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .md\\:pb-0 {\n padding-block-end: 0;\n }\n .md\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .md\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .md\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .md\\:pb-4 {\n padding-block-end: 1rem;\n }\n .md\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .md\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .md\\:pb-7 {\n padding-block-end: 2rem;\n }\n .md\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .md\\:pb-9 {\n padding-block-end: 3rem;\n }\n .md\\:ps-0 {\n padding-inline-start: 0;\n }\n .md\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .md\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .md\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .md\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .md\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .md\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .md\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .md\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .md\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .md\\:gap-0 {\n gap: 0;\n }\n .md\\:gap-1 {\n gap: 0.25rem;\n }\n .md\\:gap-2 {\n gap: 0.5rem;\n }\n .md\\:gap-3 {\n gap: 0.75rem;\n }\n .md\\:gap-4 {\n gap: 1rem;\n }\n .md\\:gap-5 {\n gap: 1.25rem;\n }\n .md\\:gap-6 {\n gap: 1.5rem;\n }\n .md\\:gap-7 {\n gap: 2rem;\n }\n .md\\:gap-8 {\n gap: 2.5rem;\n }\n .md\\:gap-9 {\n gap: 3rem;\n }\n .md\\:row-gap-0 {\n row-gap: 0;\n }\n .md\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .md\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .md\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .md\\:row-gap-4 {\n row-gap: 1rem;\n }\n .md\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .md\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .md\\:row-gap-7 {\n row-gap: 2rem;\n }\n .md\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .md\\:row-gap-9 {\n row-gap: 3rem;\n }\n .md\\:column-gap-0 {\n column-gap: 0;\n }\n .md\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .md\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .md\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .md\\:column-gap-4 {\n column-gap: 1rem;\n }\n .md\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .md\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .md\\:column-gap-7 {\n column-gap: 2rem;\n }\n .md\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .md\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n @media (width >= 1024px) {\n .lg\\:d-inline {\n display: inline;\n }\n .lg\\:d-inline-block {\n display: inline-block;\n }\n .lg\\:d-block {\n display: block;\n }\n .lg\\:d-grid {\n display: grid;\n }\n .lg\\:d-inline-grid {\n display: inline-grid;\n }\n .lg\\:d-table {\n display: table;\n }\n .lg\\:d-table-row {\n display: table-row;\n }\n .lg\\:d-table-cell {\n display: table-cell;\n }\n .lg\\:d-flex {\n display: flex;\n }\n .lg\\:d-inline-flex {\n display: inline-flex;\n }\n .lg\\:d-contents {\n display: contents;\n }\n .lg\\:d-flow-root {\n display: flow-root;\n }\n .lg\\:d-none {\n display: none;\n }\n .lg\\:flex-fill {\n flex: 1 1 auto;\n }\n .lg\\:flex-row {\n flex-direction: row;\n }\n .lg\\:flex-column {\n flex-direction: column;\n }\n .lg\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .lg\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .lg\\:flex-grow-0 {\n flex-grow: 0;\n }\n .lg\\:flex-grow-1 {\n flex-grow: 1;\n }\n .lg\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .lg\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .lg\\:flex-wrap {\n flex-wrap: wrap;\n }\n .lg\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .lg\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .lg\\:justify-content-start {\n justify-content: flex-start;\n }\n .lg\\:justify-content-end {\n justify-content: flex-end;\n }\n .lg\\:justify-content-center {\n justify-content: center;\n }\n .lg\\:justify-content-between {\n justify-content: space-between;\n }\n .lg\\:justify-content-around {\n justify-content: space-around;\n }\n .lg\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .lg\\:justify-items-start {\n justify-items: start;\n }\n .lg\\:justify-items-end {\n justify-items: end;\n }\n .lg\\:justify-items-center {\n justify-items: center;\n }\n .lg\\:justify-items-stretch {\n justify-items: stretch;\n }\n .lg\\:align-items-start {\n align-items: flex-start;\n }\n .lg\\:align-items-end {\n align-items: flex-end;\n }\n .lg\\:align-items-center {\n align-items: center;\n }\n .lg\\:align-items-baseline {\n align-items: baseline;\n }\n .lg\\:align-items-stretch {\n align-items: stretch;\n }\n .lg\\:align-content-start {\n align-content: flex-start;\n }\n .lg\\:align-content-end {\n align-content: flex-end;\n }\n .lg\\:align-content-center {\n align-content: center;\n }\n .lg\\:align-content-between {\n align-content: space-between;\n }\n .lg\\:align-content-around {\n align-content: space-around;\n }\n .lg\\:align-content-stretch {\n align-content: stretch;\n }\n .lg\\:align-self-auto {\n align-self: auto;\n }\n .lg\\:align-self-start {\n align-self: flex-start;\n }\n .lg\\:align-self-end {\n align-self: flex-end;\n }\n .lg\\:align-self-center {\n align-self: center;\n }\n .lg\\:align-self-baseline {\n align-self: baseline;\n }\n .lg\\:align-self-stretch {\n align-self: stretch;\n }\n .lg\\:place-items-start {\n place-items: start;\n }\n .lg\\:place-items-end {\n place-items: end;\n }\n .lg\\:place-items-center {\n place-items: center;\n }\n .lg\\:place-items-stretch {\n place-items: stretch;\n }\n .lg\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .lg\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .lg\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .lg\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .lg\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .lg\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .lg\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .lg\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .lg\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .lg\\:order-first {\n order: -1;\n }\n .lg\\:order-0 {\n order: 0;\n }\n .lg\\:order-1 {\n order: 1;\n }\n .lg\\:order-2 {\n order: 2;\n }\n .lg\\:order-3 {\n order: 3;\n }\n .lg\\:order-4 {\n order: 4;\n }\n .lg\\:order-5 {\n order: 5;\n }\n .lg\\:order-last {\n order: 6;\n }\n .lg\\:m-0 {\n margin: 0;\n }\n .lg\\:m-1 {\n margin: 0.25rem;\n }\n .lg\\:m-2 {\n margin: 0.5rem;\n }\n .lg\\:m-3 {\n margin: 0.75rem;\n }\n .lg\\:m-4 {\n margin: 1rem;\n }\n .lg\\:m-5 {\n margin: 1.25rem;\n }\n .lg\\:m-6 {\n margin: 1.5rem;\n }\n .lg\\:m-7 {\n margin: 2rem;\n }\n .lg\\:m-8 {\n margin: 2.5rem;\n }\n .lg\\:m-9 {\n margin: 3rem;\n }\n .lg\\:m-auto {\n margin: auto;\n }\n .lg\\:mx-0 {\n margin-inline: 0;\n }\n .lg\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .lg\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .lg\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .lg\\:mx-4 {\n margin-inline: 1rem;\n }\n .lg\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .lg\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .lg\\:mx-7 {\n margin-inline: 2rem;\n }\n .lg\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .lg\\:mx-9 {\n margin-inline: 3rem;\n }\n .lg\\:mx-auto {\n margin-inline: auto;\n }\n .lg\\:my-0 {\n margin-block: 0;\n }\n .lg\\:my-1 {\n margin-block: 0.25rem;\n }\n .lg\\:my-2 {\n margin-block: 0.5rem;\n }\n .lg\\:my-3 {\n margin-block: 0.75rem;\n }\n .lg\\:my-4 {\n margin-block: 1rem;\n }\n .lg\\:my-5 {\n margin-block: 1.25rem;\n }\n .lg\\:my-6 {\n margin-block: 1.5rem;\n }\n .lg\\:my-7 {\n margin-block: 2rem;\n }\n .lg\\:my-8 {\n margin-block: 2.5rem;\n }\n .lg\\:my-9 {\n margin-block: 3rem;\n }\n .lg\\:my-auto {\n margin-block: auto;\n }\n .lg\\:mt-0 {\n margin-block-start: 0;\n }\n .lg\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .lg\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .lg\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .lg\\:mt-4 {\n margin-block-start: 1rem;\n }\n .lg\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .lg\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .lg\\:mt-7 {\n margin-block-start: 2rem;\n }\n .lg\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .lg\\:mt-9 {\n margin-block-start: 3rem;\n }\n .lg\\:mt-auto {\n margin-block-start: auto;\n }\n .lg\\:me-0 {\n margin-inline-end: 0;\n }\n .lg\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .lg\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .lg\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .lg\\:me-4 {\n margin-inline-end: 1rem;\n }\n .lg\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .lg\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .lg\\:me-7 {\n margin-inline-end: 2rem;\n }\n .lg\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .lg\\:me-9 {\n margin-inline-end: 3rem;\n }\n .lg\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .lg\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .lg\\:me-auto {\n margin-inline-end: auto;\n }\n .lg\\:mb-0 {\n margin-block-end: 0;\n }\n .lg\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .lg\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .lg\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .lg\\:mb-4 {\n margin-block-end: 1rem;\n }\n .lg\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .lg\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .lg\\:mb-7 {\n margin-block-end: 2rem;\n }\n .lg\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .lg\\:mb-9 {\n margin-block-end: 3rem;\n }\n .lg\\:mb-auto {\n margin-block-end: auto;\n }\n .lg\\:ms-0 {\n margin-inline-start: 0;\n }\n .lg\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .lg\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .lg\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .lg\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .lg\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .lg\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .lg\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .lg\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .lg\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .lg\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .lg\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .lg\\:ms-auto {\n margin-inline-start: auto;\n }\n .lg\\:p-0 {\n padding: 0;\n }\n .lg\\:p-1 {\n padding: 0.25rem;\n }\n .lg\\:p-2 {\n padding: 0.5rem;\n }\n .lg\\:p-3 {\n padding: 0.75rem;\n }\n .lg\\:p-4 {\n padding: 1rem;\n }\n .lg\\:p-5 {\n padding: 1.25rem;\n }\n .lg\\:p-6 {\n padding: 1.5rem;\n }\n .lg\\:p-7 {\n padding: 2rem;\n }\n .lg\\:p-8 {\n padding: 2.5rem;\n }\n .lg\\:p-9 {\n padding: 3rem;\n }\n .lg\\:px-0 {\n padding-inline: 0;\n }\n .lg\\:px-1 {\n padding-inline: 0.25rem;\n }\n .lg\\:px-2 {\n padding-inline: 0.5rem;\n }\n .lg\\:px-3 {\n padding-inline: 0.75rem;\n }\n .lg\\:px-4 {\n padding-inline: 1rem;\n }\n .lg\\:px-5 {\n padding-inline: 1.25rem;\n }\n .lg\\:px-6 {\n padding-inline: 1.5rem;\n }\n .lg\\:px-7 {\n padding-inline: 2rem;\n }\n .lg\\:px-8 {\n padding-inline: 2.5rem;\n }\n .lg\\:px-9 {\n padding-inline: 3rem;\n }\n .lg\\:py-0 {\n padding-block: 0;\n }\n .lg\\:py-1 {\n padding-block: 0.25rem;\n }\n .lg\\:py-2 {\n padding-block: 0.5rem;\n }\n .lg\\:py-3 {\n padding-block: 0.75rem;\n }\n .lg\\:py-4 {\n padding-block: 1rem;\n }\n .lg\\:py-5 {\n padding-block: 1.25rem;\n }\n .lg\\:py-6 {\n padding-block: 1.5rem;\n }\n .lg\\:py-7 {\n padding-block: 2rem;\n }\n .lg\\:py-8 {\n padding-block: 2.5rem;\n }\n .lg\\:py-9 {\n padding-block: 3rem;\n }\n .lg\\:pt-0 {\n padding-block-start: 0;\n }\n .lg\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .lg\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .lg\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .lg\\:pt-4 {\n padding-block-start: 1rem;\n }\n .lg\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .lg\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .lg\\:pt-7 {\n padding-block-start: 2rem;\n }\n .lg\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .lg\\:pt-9 {\n padding-block-start: 3rem;\n }\n .lg\\:pe-0 {\n padding-inline-end: 0;\n }\n .lg\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .lg\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .lg\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .lg\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .lg\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .lg\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .lg\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .lg\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .lg\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .lg\\:pb-0 {\n padding-block-end: 0;\n }\n .lg\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .lg\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .lg\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .lg\\:pb-4 {\n padding-block-end: 1rem;\n }\n .lg\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .lg\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .lg\\:pb-7 {\n padding-block-end: 2rem;\n }\n .lg\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .lg\\:pb-9 {\n padding-block-end: 3rem;\n }\n .lg\\:ps-0 {\n padding-inline-start: 0;\n }\n .lg\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .lg\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .lg\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .lg\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .lg\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .lg\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .lg\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .lg\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .lg\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .lg\\:gap-0 {\n gap: 0;\n }\n .lg\\:gap-1 {\n gap: 0.25rem;\n }\n .lg\\:gap-2 {\n gap: 0.5rem;\n }\n .lg\\:gap-3 {\n gap: 0.75rem;\n }\n .lg\\:gap-4 {\n gap: 1rem;\n }\n .lg\\:gap-5 {\n gap: 1.25rem;\n }\n .lg\\:gap-6 {\n gap: 1.5rem;\n }\n .lg\\:gap-7 {\n gap: 2rem;\n }\n .lg\\:gap-8 {\n gap: 2.5rem;\n }\n .lg\\:gap-9 {\n gap: 3rem;\n }\n .lg\\:row-gap-0 {\n row-gap: 0;\n }\n .lg\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .lg\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .lg\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .lg\\:row-gap-4 {\n row-gap: 1rem;\n }\n .lg\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .lg\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .lg\\:row-gap-7 {\n row-gap: 2rem;\n }\n .lg\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .lg\\:row-gap-9 {\n row-gap: 3rem;\n }\n .lg\\:column-gap-0 {\n column-gap: 0;\n }\n .lg\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .lg\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .lg\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .lg\\:column-gap-4 {\n column-gap: 1rem;\n }\n .lg\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .lg\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .lg\\:column-gap-7 {\n column-gap: 2rem;\n }\n .lg\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .lg\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n @media (width >= 1280px) {\n .xl\\:d-inline {\n display: inline;\n }\n .xl\\:d-inline-block {\n display: inline-block;\n }\n .xl\\:d-block {\n display: block;\n }\n .xl\\:d-grid {\n display: grid;\n }\n .xl\\:d-inline-grid {\n display: inline-grid;\n }\n .xl\\:d-table {\n display: table;\n }\n .xl\\:d-table-row {\n display: table-row;\n }\n .xl\\:d-table-cell {\n display: table-cell;\n }\n .xl\\:d-flex {\n display: flex;\n }\n .xl\\:d-inline-flex {\n display: inline-flex;\n }\n .xl\\:d-contents {\n display: contents;\n }\n .xl\\:d-flow-root {\n display: flow-root;\n }\n .xl\\:d-none {\n display: none;\n }\n .xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .xl\\:flex-row {\n flex-direction: row;\n }\n .xl\\:flex-column {\n flex-direction: column;\n }\n .xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .xl\\:justify-content-center {\n justify-content: center;\n }\n .xl\\:justify-content-between {\n justify-content: space-between;\n }\n .xl\\:justify-content-around {\n justify-content: space-around;\n }\n .xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .xl\\:justify-items-start {\n justify-items: start;\n }\n .xl\\:justify-items-end {\n justify-items: end;\n }\n .xl\\:justify-items-center {\n justify-items: center;\n }\n .xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .xl\\:align-items-start {\n align-items: flex-start;\n }\n .xl\\:align-items-end {\n align-items: flex-end;\n }\n .xl\\:align-items-center {\n align-items: center;\n }\n .xl\\:align-items-baseline {\n align-items: baseline;\n }\n .xl\\:align-items-stretch {\n align-items: stretch;\n }\n .xl\\:align-content-start {\n align-content: flex-start;\n }\n .xl\\:align-content-end {\n align-content: flex-end;\n }\n .xl\\:align-content-center {\n align-content: center;\n }\n .xl\\:align-content-between {\n align-content: space-between;\n }\n .xl\\:align-content-around {\n align-content: space-around;\n }\n .xl\\:align-content-stretch {\n align-content: stretch;\n }\n .xl\\:align-self-auto {\n align-self: auto;\n }\n .xl\\:align-self-start {\n align-self: flex-start;\n }\n .xl\\:align-self-end {\n align-self: flex-end;\n }\n .xl\\:align-self-center {\n align-self: center;\n }\n .xl\\:align-self-baseline {\n align-self: baseline;\n }\n .xl\\:align-self-stretch {\n align-self: stretch;\n }\n .xl\\:place-items-start {\n place-items: start;\n }\n .xl\\:place-items-end {\n place-items: end;\n }\n .xl\\:place-items-center {\n place-items: center;\n }\n .xl\\:place-items-stretch {\n place-items: stretch;\n }\n .xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .xl\\:order-first {\n order: -1;\n }\n .xl\\:order-0 {\n order: 0;\n }\n .xl\\:order-1 {\n order: 1;\n }\n .xl\\:order-2 {\n order: 2;\n }\n .xl\\:order-3 {\n order: 3;\n }\n .xl\\:order-4 {\n order: 4;\n }\n .xl\\:order-5 {\n order: 5;\n }\n .xl\\:order-last {\n order: 6;\n }\n .xl\\:m-0 {\n margin: 0;\n }\n .xl\\:m-1 {\n margin: 0.25rem;\n }\n .xl\\:m-2 {\n margin: 0.5rem;\n }\n .xl\\:m-3 {\n margin: 0.75rem;\n }\n .xl\\:m-4 {\n margin: 1rem;\n }\n .xl\\:m-5 {\n margin: 1.25rem;\n }\n .xl\\:m-6 {\n margin: 1.5rem;\n }\n .xl\\:m-7 {\n margin: 2rem;\n }\n .xl\\:m-8 {\n margin: 2.5rem;\n }\n .xl\\:m-9 {\n margin: 3rem;\n }\n .xl\\:m-auto {\n margin: auto;\n }\n .xl\\:mx-0 {\n margin-inline: 0;\n }\n .xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .xl\\:mx-auto {\n margin-inline: auto;\n }\n .xl\\:my-0 {\n margin-block: 0;\n }\n .xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .xl\\:my-4 {\n margin-block: 1rem;\n }\n .xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .xl\\:my-7 {\n margin-block: 2rem;\n }\n .xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .xl\\:my-9 {\n margin-block: 3rem;\n }\n .xl\\:my-auto {\n margin-block: auto;\n }\n .xl\\:mt-0 {\n margin-block-start: 0;\n }\n .xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .xl\\:mt-auto {\n margin-block-start: auto;\n }\n .xl\\:me-0 {\n margin-inline-end: 0;\n }\n .xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .xl\\:me-auto {\n margin-inline-end: auto;\n }\n .xl\\:mb-0 {\n margin-block-end: 0;\n }\n .xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .xl\\:mb-auto {\n margin-block-end: auto;\n }\n .xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .xl\\:p-0 {\n padding: 0;\n }\n .xl\\:p-1 {\n padding: 0.25rem;\n }\n .xl\\:p-2 {\n padding: 0.5rem;\n }\n .xl\\:p-3 {\n padding: 0.75rem;\n }\n .xl\\:p-4 {\n padding: 1rem;\n }\n .xl\\:p-5 {\n padding: 1.25rem;\n }\n .xl\\:p-6 {\n padding: 1.5rem;\n }\n .xl\\:p-7 {\n padding: 2rem;\n }\n .xl\\:p-8 {\n padding: 2.5rem;\n }\n .xl\\:p-9 {\n padding: 3rem;\n }\n .xl\\:px-0 {\n padding-inline: 0;\n }\n .xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .xl\\:px-4 {\n padding-inline: 1rem;\n }\n .xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .xl\\:px-7 {\n padding-inline: 2rem;\n }\n .xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .xl\\:px-9 {\n padding-inline: 3rem;\n }\n .xl\\:py-0 {\n padding-block: 0;\n }\n .xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .xl\\:py-4 {\n padding-block: 1rem;\n }\n .xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .xl\\:py-7 {\n padding-block: 2rem;\n }\n .xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .xl\\:py-9 {\n padding-block: 3rem;\n }\n .xl\\:pt-0 {\n padding-block-start: 0;\n }\n .xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .xl\\:pb-0 {\n padding-block-end: 0;\n }\n .xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .xl\\:gap-0 {\n gap: 0;\n }\n .xl\\:gap-1 {\n gap: 0.25rem;\n }\n .xl\\:gap-2 {\n gap: 0.5rem;\n }\n .xl\\:gap-3 {\n gap: 0.75rem;\n }\n .xl\\:gap-4 {\n gap: 1rem;\n }\n .xl\\:gap-5 {\n gap: 1.25rem;\n }\n .xl\\:gap-6 {\n gap: 1.5rem;\n }\n .xl\\:gap-7 {\n gap: 2rem;\n }\n .xl\\:gap-8 {\n gap: 2.5rem;\n }\n .xl\\:gap-9 {\n gap: 3rem;\n }\n .xl\\:row-gap-0 {\n row-gap: 0;\n }\n .xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .xl\\:column-gap-0 {\n column-gap: 0;\n }\n .xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:d-inline {\n display: inline;\n }\n .\\32 xl\\:d-inline-block {\n display: inline-block;\n }\n .\\32 xl\\:d-block {\n display: block;\n }\n .\\32 xl\\:d-grid {\n display: grid;\n }\n .\\32 xl\\:d-inline-grid {\n display: inline-grid;\n }\n .\\32 xl\\:d-table {\n display: table;\n }\n .\\32 xl\\:d-table-row {\n display: table-row;\n }\n .\\32 xl\\:d-table-cell {\n display: table-cell;\n }\n .\\32 xl\\:d-flex {\n display: flex;\n }\n .\\32 xl\\:d-inline-flex {\n display: inline-flex;\n }\n .\\32 xl\\:d-contents {\n display: contents;\n }\n .\\32 xl\\:d-flow-root {\n display: flow-root;\n }\n .\\32 xl\\:d-none {\n display: none;\n }\n .\\32 xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .\\32 xl\\:flex-row {\n flex-direction: row;\n }\n .\\32 xl\\:flex-column {\n flex-direction: column;\n }\n .\\32 xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .\\32 xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .\\32 xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .\\32 xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .\\32 xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .\\32 xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .\\32 xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .\\32 xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .\\32 xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .\\32 xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .\\32 xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .\\32 xl\\:justify-content-center {\n justify-content: center;\n }\n .\\32 xl\\:justify-content-between {\n justify-content: space-between;\n }\n .\\32 xl\\:justify-content-around {\n justify-content: space-around;\n }\n .\\32 xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .\\32 xl\\:justify-items-start {\n justify-items: start;\n }\n .\\32 xl\\:justify-items-end {\n justify-items: end;\n }\n .\\32 xl\\:justify-items-center {\n justify-items: center;\n }\n .\\32 xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .\\32 xl\\:align-items-start {\n align-items: flex-start;\n }\n .\\32 xl\\:align-items-end {\n align-items: flex-end;\n }\n .\\32 xl\\:align-items-center {\n align-items: center;\n }\n .\\32 xl\\:align-items-baseline {\n align-items: baseline;\n }\n .\\32 xl\\:align-items-stretch {\n align-items: stretch;\n }\n .\\32 xl\\:align-content-start {\n align-content: flex-start;\n }\n .\\32 xl\\:align-content-end {\n align-content: flex-end;\n }\n .\\32 xl\\:align-content-center {\n align-content: center;\n }\n .\\32 xl\\:align-content-between {\n align-content: space-between;\n }\n .\\32 xl\\:align-content-around {\n align-content: space-around;\n }\n .\\32 xl\\:align-content-stretch {\n align-content: stretch;\n }\n .\\32 xl\\:align-self-auto {\n align-self: auto;\n }\n .\\32 xl\\:align-self-start {\n align-self: flex-start;\n }\n .\\32 xl\\:align-self-end {\n align-self: flex-end;\n }\n .\\32 xl\\:align-self-center {\n align-self: center;\n }\n .\\32 xl\\:align-self-baseline {\n align-self: baseline;\n }\n .\\32 xl\\:align-self-stretch {\n align-self: stretch;\n }\n .\\32 xl\\:place-items-start {\n place-items: start;\n }\n .\\32 xl\\:place-items-end {\n place-items: end;\n }\n .\\32 xl\\:place-items-center {\n place-items: center;\n }\n .\\32 xl\\:place-items-stretch {\n place-items: stretch;\n }\n .\\32 xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .\\32 xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .\\32 xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .\\32 xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .\\32 xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .\\32 xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .\\32 xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .\\32 xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .\\32 xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .\\32 xl\\:order-first {\n order: -1;\n }\n .\\32 xl\\:order-0 {\n order: 0;\n }\n .\\32 xl\\:order-1 {\n order: 1;\n }\n .\\32 xl\\:order-2 {\n order: 2;\n }\n .\\32 xl\\:order-3 {\n order: 3;\n }\n .\\32 xl\\:order-4 {\n order: 4;\n }\n .\\32 xl\\:order-5 {\n order: 5;\n }\n .\\32 xl\\:order-last {\n order: 6;\n }\n .\\32 xl\\:m-0 {\n margin: 0;\n }\n .\\32 xl\\:m-1 {\n margin: 0.25rem;\n }\n .\\32 xl\\:m-2 {\n margin: 0.5rem;\n }\n .\\32 xl\\:m-3 {\n margin: 0.75rem;\n }\n .\\32 xl\\:m-4 {\n margin: 1rem;\n }\n .\\32 xl\\:m-5 {\n margin: 1.25rem;\n }\n .\\32 xl\\:m-6 {\n margin: 1.5rem;\n }\n .\\32 xl\\:m-7 {\n margin: 2rem;\n }\n .\\32 xl\\:m-8 {\n margin: 2.5rem;\n }\n .\\32 xl\\:m-9 {\n margin: 3rem;\n }\n .\\32 xl\\:m-auto {\n margin: auto;\n }\n .\\32 xl\\:mx-0 {\n margin-inline: 0;\n }\n .\\32 xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .\\32 xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .\\32 xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .\\32 xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .\\32 xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .\\32 xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .\\32 xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .\\32 xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .\\32 xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .\\32 xl\\:mx-auto {\n margin-inline: auto;\n }\n .\\32 xl\\:my-0 {\n margin-block: 0;\n }\n .\\32 xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .\\32 xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .\\32 xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .\\32 xl\\:my-4 {\n margin-block: 1rem;\n }\n .\\32 xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .\\32 xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .\\32 xl\\:my-7 {\n margin-block: 2rem;\n }\n .\\32 xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .\\32 xl\\:my-9 {\n margin-block: 3rem;\n }\n .\\32 xl\\:my-auto {\n margin-block: auto;\n }\n .\\32 xl\\:mt-0 {\n margin-block-start: 0;\n }\n .\\32 xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .\\32 xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .\\32 xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .\\32 xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .\\32 xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .\\32 xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .\\32 xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .\\32 xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .\\32 xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .\\32 xl\\:mt-auto {\n margin-block-start: auto;\n }\n .\\32 xl\\:me-0 {\n margin-inline-end: 0;\n }\n .\\32 xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .\\32 xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .\\32 xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .\\32 xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .\\32 xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .\\32 xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .\\32 xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .\\32 xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .\\32 xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .\\32 xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .\\32 xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .\\32 xl\\:me-auto {\n margin-inline-end: auto;\n }\n .\\32 xl\\:mb-0 {\n margin-block-end: 0;\n }\n .\\32 xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .\\32 xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .\\32 xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .\\32 xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .\\32 xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .\\32 xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .\\32 xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .\\32 xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .\\32 xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .\\32 xl\\:mb-auto {\n margin-block-end: auto;\n }\n .\\32 xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .\\32 xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .\\32 xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .\\32 xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .\\32 xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .\\32 xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .\\32 xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .\\32 xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .\\32 xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .\\32 xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .\\32 xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .\\32 xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .\\32 xl\\:p-0 {\n padding: 0;\n }\n .\\32 xl\\:p-1 {\n padding: 0.25rem;\n }\n .\\32 xl\\:p-2 {\n padding: 0.5rem;\n }\n .\\32 xl\\:p-3 {\n padding: 0.75rem;\n }\n .\\32 xl\\:p-4 {\n padding: 1rem;\n }\n .\\32 xl\\:p-5 {\n padding: 1.25rem;\n }\n .\\32 xl\\:p-6 {\n padding: 1.5rem;\n }\n .\\32 xl\\:p-7 {\n padding: 2rem;\n }\n .\\32 xl\\:p-8 {\n padding: 2.5rem;\n }\n .\\32 xl\\:p-9 {\n padding: 3rem;\n }\n .\\32 xl\\:px-0 {\n padding-inline: 0;\n }\n .\\32 xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .\\32 xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .\\32 xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .\\32 xl\\:px-4 {\n padding-inline: 1rem;\n }\n .\\32 xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .\\32 xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .\\32 xl\\:px-7 {\n padding-inline: 2rem;\n }\n .\\32 xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .\\32 xl\\:px-9 {\n padding-inline: 3rem;\n }\n .\\32 xl\\:py-0 {\n padding-block: 0;\n }\n .\\32 xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .\\32 xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .\\32 xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .\\32 xl\\:py-4 {\n padding-block: 1rem;\n }\n .\\32 xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .\\32 xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .\\32 xl\\:py-7 {\n padding-block: 2rem;\n }\n .\\32 xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .\\32 xl\\:py-9 {\n padding-block: 3rem;\n }\n .\\32 xl\\:pt-0 {\n padding-block-start: 0;\n }\n .\\32 xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .\\32 xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .\\32 xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .\\32 xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .\\32 xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .\\32 xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .\\32 xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .\\32 xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .\\32 xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .\\32 xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .\\32 xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .\\32 xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .\\32 xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .\\32 xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .\\32 xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .\\32 xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .\\32 xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .\\32 xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .\\32 xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .\\32 xl\\:pb-0 {\n padding-block-end: 0;\n }\n .\\32 xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .\\32 xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .\\32 xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .\\32 xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .\\32 xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .\\32 xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .\\32 xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .\\32 xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .\\32 xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .\\32 xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .\\32 xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .\\32 xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .\\32 xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .\\32 xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .\\32 xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .\\32 xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .\\32 xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .\\32 xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .\\32 xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .\\32 xl\\:gap-0 {\n gap: 0;\n }\n .\\32 xl\\:gap-1 {\n gap: 0.25rem;\n }\n .\\32 xl\\:gap-2 {\n gap: 0.5rem;\n }\n .\\32 xl\\:gap-3 {\n gap: 0.75rem;\n }\n .\\32 xl\\:gap-4 {\n gap: 1rem;\n }\n .\\32 xl\\:gap-5 {\n gap: 1.25rem;\n }\n .\\32 xl\\:gap-6 {\n gap: 1.5rem;\n }\n .\\32 xl\\:gap-7 {\n gap: 2rem;\n }\n .\\32 xl\\:gap-8 {\n gap: 2.5rem;\n }\n .\\32 xl\\:gap-9 {\n gap: 3rem;\n }\n .\\32 xl\\:row-gap-0 {\n row-gap: 0;\n }\n .\\32 xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .\\32 xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .\\32 xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .\\32 xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .\\32 xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .\\32 xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .\\32 xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .\\32 xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .\\32 xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .\\32 xl\\:column-gap-0 {\n column-gap: 0;\n }\n .\\32 xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .\\32 xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .\\32 xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .\\32 xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .\\32 xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .\\32 xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .\\32 xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .\\32 xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .\\32 xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n}\n:root {\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 1024px;\n --breakpoint-xl: 1280px;\n --breakpoint-2xl: 1536px;\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:string\";\n@use \"../config\" as *;\n\n// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px)\n//\n// The map defined in the `$breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl 2xl))\n// md\n@function breakpoint-next($name, $breakpoints: $breakpoints, $breakpoint-names: map.keys($breakpoints)) {\n $n: list.index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoint-names}`\";\n }\n // Use @if/@else because list.nth would error if evaluated when $n equals list length\n @if $n < list.length($breakpoint-names) {\n @return list.nth($breakpoint-names, $n + 1);\n } @else {\n @return null;\n }\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $breakpoints) {\n $min: map.get($breakpoints, $name);\n @return if(sass($min != 0): $min; else: null);\n}\n\n// Maximum breakpoint width for range media queries.\n// Returns the breakpoint value to use as an upper bound in range queries.\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n// >> breakpoint-max(xxl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// null\n@function breakpoint-max($name, $breakpoints: $breakpoints) {\n @if $name == null {\n @return null;\n }\n $max: map.get($breakpoints, $name);\n @return if(sass($max and $max > 0): $max; else: null);\n}\n\n// Escape a name for use at the start of a CSS identifier.\n// Leading digits are hex-escaped (e.g., 2xl becomes \\32 xl).\n@function css-escape-ident($name) {\n $name-str: \"#{$name}\";\n $digits: \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\";\n $first: string.slice($name-str, 1, 1);\n\n @if list.index($digits, $first) {\n @return \"\\\\3#{$first} #{string.slice($name-str, 2)}\";\n }\n\n @return $name-str;\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name\n// with an escaped colon as a Tailwind-style prefix for responsive class names.\n// Leading digits are CSS-escaped (e.g., 2xl becomes \\32 xl) for valid identifiers.\n//\n// >> breakpoint-prefix(xs, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\" (Returns a blank string)\n// >> breakpoint-prefix(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"sm\\:\"\n// >> breakpoint-prefix(2xl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\\32 xl\\:\"\n@function breakpoint-prefix($name, $breakpoints: $breakpoints) {\n @if breakpoint-min($name, $breakpoints) == null {\n @return \"\";\n }\n\n @return \"#{css-escape-ident($name)}\\\\:\";\n}\n\n// Iterate all breakpoints and provide the current name and prefix.\n//\n// @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-up($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n @content($breakpoint, $prefix);\n }\n}\n\n// Iterate all breakpoints and provide the current name, next name, and next prefix.\n//\n// @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-down($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $next: breakpoint-next($breakpoint, $breakpoints);\n $prefix: breakpoint-prefix($next, $breakpoints);\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Backwards-compatible alias for next/down breakpoint loops.\n@mixin loop-breakpoints($breakpoints: $breakpoints) {\n @include loop-breakpoints-down($breakpoints) using ($breakpoint, $next, $prefix) {\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (width >= $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (width < $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n\n\n// Container queries\n//\n// Container queries allow elements to respond to the size of a containing element\n// rather than the viewport. These mixins mirror the media-breakpoint-* mixins above.\n//\n// scss-docs-start container-query-mixins\n\n// Set an element as a query container.\n//\n// @include set-container(); // container-type: inline-size\n// @include set-container(size); // container-type: size\n// @include set-container(inline-size, sidebar); // container: sidebar / inline-size\n//\n@mixin set-container($type: inline-size, $name: null) {\n @if $name {\n container: #{$name} / #{$type};\n } @else {\n container-type: #{$type};\n }\n}\n\n// Container query of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider within the container.\n//\n// @include container-breakpoint-up(md) { ... }\n// @include container-breakpoint-up(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-up($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower within the container.\n//\n// @include container-breakpoint-down(lg) { ... }\n// @include container-breakpoint-down(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-down($name, $container-name: null, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @if $container-name {\n @container #{$container-name} (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width < #{$max}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints within the container.\n//\n// @include container-breakpoint-between(md, xl) { ... }\n// @include container-breakpoint-between(md, xl, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-between($lower, $upper, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($lower, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($upper, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n\n// Container query between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint within the container.\n//\n// @include container-breakpoint-only(md) { ... }\n// @include container-breakpoint-only(md, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-only($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($name, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($next, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n// scss-docs-end container-query-mixins\n","@use \"sass:map\";\n@use \"sass:meta\";\n\n// Configuration\n//\n// Variables and settings not related to theme, components, and more go here. It does include layout.\n\n// Merge overrides on top of defaults, stripping null entries.\n// Null values let users remove map keys via @use ... with().\n// Accepts a list as $defaults (converted to a map with `true` values).\n@function defaults($defaults, $overrides) {\n @if meta.type-of($defaults) == \"list\" {\n $map: ();\n @each $key in $defaults {\n $map: map.merge($map, ($key: true));\n }\n $defaults: $map;\n }\n $merged: map.merge($defaults, $overrides);\n @each $key, $value in $merged {\n @if $value == null {\n $merged: map.remove($merged, $key);\n }\n }\n @return $merged;\n}\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: true !default;\n$enable-gradients: true !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: false !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: true !default;\n$enable-button-pointers: true !default;\n// $enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n\n$color-mode-type: \"media-query\" !default;\n$color-contrast-dark: #000 !default;\n$color-contrast-light: #fff !default;\n$min-contrast-ratio: 4.5 !default;\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer * .75,\n 4: $spacer,\n 5: $spacer * 1.25,\n 6: $spacer * 1.5,\n 7: $spacer * 2,\n 8: $spacer * 2.5,\n 9: $spacer * 3,\n) !default;\n\n$negative-spacers: (\n \"-1\": $spacer * -.25,\n \"-2\": $spacer * -.5,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n$sizes: (\n 1: $spacer,\n 2: $spacer * 2,\n 3: $spacer * 3,\n 4: $spacer * 4,\n 5: $spacer * 5,\n 6: $spacer * 6,\n 7: $spacer * 7,\n 8: $spacer * 8,\n 9: $spacer * 9,\n 10: $spacer * 10,\n 11: $spacer * 11,\n 12: $spacer * 12,\n) !default;\n\n$radius: .5rem !default;\n$radii: (\n 0: 0,\n 1: $radius * .25,\n 2: $radius * .375,\n 3: $radius * .5,\n 4: $radius * .75,\n 5: $radius,\n 6: $radius * 1.25,\n 7: $radius * 1.5,\n 8: $radius * 2,\n 9: $radius * 3,\n) !default;\n\n// Breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start breakpoints\n$breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 1024px,\n xl: 1280px,\n 2xl: 1536px\n) !default;\n// scss-docs-end breakpoints\n\n// @include _assert-ascending($breakpoints, \"$breakpoints\");\n// @include _assert-starts-at-zero($breakpoints, \"$breakpoints\");\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-x: 1.5rem !default;\n$grid-gutter-y: 0 !default;\n$grid-row-columns: 6 !default;\n\n$gutters: $spacers !default;\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1200px,\n 2xl: 1440px\n) !default;\n// scss-docs-end container-max-widths\n\n$container-padding-x: $grid-gutter-x !default;\n\n$utilities: () !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent)) !default;\n// scss-docs-end variable-gradient\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Links\n//\n// Style anchor elements.\n\n$link-decoration: underline !default;\n$link-underline-offset: .2em !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: color-mix(in oklch, var(--gray-100), var(--gray-200)) !default;\n// scss-docs-end border-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"auto\": auto,\n \"1x1\": #{\"1 / 1\"},\n \"4x3\": #{\"4 / 3\"},\n \"16x9\": #{\"16 / 9\"},\n \"21x9\": #{\"21 / 9\"}\n) !default;\n// scss-docs-end aspect-ratios\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$font-sizes: defaults(\n (\n \"xs\": (\n \"font-size\": .75rem,\n \"line-height\": 1.25\n ),\n \"sm\": (\n \"font-size\": .875rem,\n \"line-height\": 1.5\n ),\n \"md\": (\n \"font-size\": 1rem,\n \"line-height\": 1.5\n ),\n \"lg\": (\n \"font-size\": clamp(1.25rem, 1rem + .625vw, 1.5rem),\n \"line-height\": 1.5\n ),\n \"xl\": (\n \"font-size\": clamp(1.5rem, 1.1rem + .75vw, 1.75rem),\n \"line-height\": calc(2.5 / 1.75)\n ),\n \"2xl\": (\n \"font-size\": clamp(1.75rem, 1.3rem + 1vw, 2rem),\n \"line-height\": calc(3 / 2.25)\n ),\n \"3xl\": (\n \"font-size\": clamp(2rem, 1.5rem + 1.875vw, 2.5rem),\n \"line-height\": 1.2\n ),\n \"4xl\": (\n \"font-size\": clamp(2.25rem, 1.75rem + 2.5vw, 3rem),\n \"line-height\": 1.1\n ),\n \"5xl\": (\n \"font-size\": clamp(3rem, 2rem + 5vw, 4rem),\n \"line-height\": 1.1\n ),\n \"6xl\": (\n \"font-size\": clamp(3.75rem, 2.5rem + 6.25vw, 5rem),\n \"line-height\": 1\n ),\n ),\n $font-sizes\n);\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: var(--spacer-2) !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start type-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n// scss-docs-end type-variables\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-menu: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n// $zindex-drawer-backdrop: 1040 !default;\n$zindex-drawer: 1045 !default;\n$zindex-dialog: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n","@use \"../config\" as *;\n@use \"../mixins/grid\" as *;\n\n// mdo-do\n// - check gap utilities as replacement for gutter classes from v5\n\n@layer layout {\n @if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n\n @include make-grid-columns();\n }\n\n @if $enable-cssgrid {\n .grid {\n --columns: #{$grid-columns};\n --rows: 1;\n --gap: #{$grid-gutter-x};\n\n display: grid;\n grid-template-rows: repeat(var(--rows), 1fr);\n grid-template-columns: repeat(var(--columns), 1fr);\n gap: var(--gap);\n\n }\n\n @include make-cssgrid();\n }\n\n // mdo-do: add to utilities?\n .grid-cols-subgrid {\n grid-template-columns: subgrid;\n }\n\n .grid-fill {\n --gap: #{$grid-gutter-x};\n\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-auto-flow: row;\n gap: var(--gap);\n }\n\n // .g-col-auto {\n // grid-column: auto;\n // }\n\n // mdo-do: add to utilities?\n // .grid-cols-3 {\n // --columns: 3;\n // }\n // .grid-cols-4 {\n // --columns: 4;\n // }\n // .grid-cols-6 {\n // --columns: 6;\n // }\n\n // .grid-full {\n // grid-column: 1 / -1;\n // }\n}\n","@use \"sass:map\";\n@use \"sass:math\";\n@use \"sass:meta\";\n@use \"../config\" as *;\n@use \"../layout/breakpoints\" as *;\n\n// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter-x: $grid-gutter-x, $gutter-y: $grid-gutter-y) {\n --gutter-x: #{$gutter-x};\n --gutter-y: #{$gutter-y};\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-inline: calc(-.5 * var(--gutter-x));\n margin-top: calc(-1 * var(--gutter-y));\n}\n\n@mixin make-col-ready() {\n // Add box sizing if only the grid is loaded\n // stylelint-disable-next-line scss/at-function-named-arguments\n box-sizing: if(sass(meta.variable-exists(include-column-box-sizing) and $include-column-box-sizing): border-box; else: null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-inline: calc(var(--gutter-x) * .5);\n margin-top: var(--gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: math.percentage(math.div($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: math.div($size, $columns);\n // stylelint-disable-next-line scss/at-function-named-arguments\n margin-inline-start: if(sass($num == 0): 0; else: math.percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// number of columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: math.percentage(math.div(1, $count));\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-x, $breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n .#{$prefix}col {\n flex: 1 0 0;\n }\n\n .#{$prefix}row-cols-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .#{$prefix}row-cols-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .#{$prefix}col-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .#{$prefix}col-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($prefix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .#{$prefix}offset-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .#{$prefix}g-#{$key},\n .#{$prefix}gx-#{$key} {\n --gutter-x: #{$value};\n }\n\n .#{$prefix}g-#{$key},\n .#{$prefix}gy-#{$key} {\n --gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .#{$prefix}g-col-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is an invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .#{$prefix}g-start-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/utilities\" as *;\n@use \"../utilities\" as *;\n\n@layer utilities {\n @include generate-utilities-loop($utilities, $breakpoints);\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"../layout/breakpoints\" as bp;\n\n// Utility generator\n\n// - Utilities can use three different types of selectors:\n// - class: .class\n// - attr-starts: [class^=\"class\"]\n// - attr-includes: [class*=\"class\"]\n// - Utilities can target children via `child-selector`, wrapped in :where() for zero specificity\n// - Utilities can generate regular CSS properties and CSS custom properties\n// - Utilities can be responsive or not\n// - Utilities can have state variants (e.g., hover, focus, active)\n// - Utilities can define local CSS variables\n//\n// CSS custom properties can be generated in two ways:\n//\n// 1. Property map with null values (CSS var receives the utility value):\n// \"bg-color\": (\n// property: (\n// \"--bg\": null,\n// \"background-color\": var(--bg)\n// ),\n// class: bg,\n// values: (\n// primary: var(--blue-500),\n// )\n// )\n// Generates:\n// .bg-primary {\n// --bs-bg: var(--bs-blue-500);\n// background-color: var(--bs-bg);\n// }\n//\n// 2. Variables map (static CSS custom properties on every class):\n// \"link-underline\": (\n// property: text-decoration-color,\n// class: link-underline,\n// variables: (\n// \"link-underline-opacity\": 1\n// ),\n// values: (...)\n// )\n// Generates:\n// .link-underline {\n// --bs-link-underline-opacity: 1;\n// text-decoration-color: ...;\n// }\n\n// Helper mixin to emit CSS custom properties from a utility's `variables` key.\n// When variables is a map, the provided static values are used on each class.\n// When variables is a list or single identifier, each variable receives the current utility value.\n@mixin generate-variables($utility, $value) {\n @if map.has-key($utility, variables) {\n $variables: map.get($utility, variables);\n @if meta.type-of($variables) == \"map\" {\n @each $var-key, $var-value in $variables {\n --#{$var-key}: #{$var-value};\n }\n } @else {\n // Treat as a list (or single identifier) — each variable gets the utility value\n @each $var-name in $variables {\n --#{$var-name}: #{$value};\n }\n }\n }\n}\n\n// Helper mixin to generate CSS properties for both legacy and property map approaches\n@mixin generate-properties($utility, $property-map, $properties, $value) {\n @if $property-map != null {\n // Property-Value Mapping approach\n @each $property, $default-value in $property-map {\n // If value is a map, check if it has a key for this property.\n // Otherwise, use default-value (or $value if default-value is null).\n $actual-value: $default-value;\n @if meta.type-of($value) == \"map\" and map.has-key($value, $property) {\n $actual-value: map.get($value, $property);\n } @else if $default-value == null {\n $actual-value: $value;\n }\n @if map.get($utility, important) {\n #{$property}: $actual-value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $actual-value;\n }\n }\n } @else {\n // Legacy approach\n @each $property in $properties {\n @if map.get($utility, important) {\n #{$property}: $value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $value;\n }\n }\n }\n}\n\n@mixin generate-utility($utility, $prefix: \"\") {\n // Validate required keys\n @if not map.has-key($utility, property) {\n @error \"Utility is missing required `property` key: #{$utility}\";\n }\n @if not map.has-key($utility, values) {\n @error \"Utility is missing required `values` key: #{$utility}\";\n }\n\n // Warn on unknown keys (likely typos)\n $valid-keys: property, values, class, selector, responsive, print, dark, important, state, variables, child-selector, enabled;\n @each $key in map.keys($utility) {\n @if not list.index($valid-keys, $key) {\n @warn \"Unknown utility key `#{$key}` found. Valid keys are: #{$valid-keys}\";\n }\n }\n\n // Validate boolean keys\n @each $bool-key in (responsive, print, dark, important, enabled) {\n @if map.has-key($utility, $bool-key) {\n $val: map.get($utility, $bool-key);\n @if $val != true and $val != false {\n @error \"Utility key `#{$bool-key}` should be a boolean (true or false), got: #{$val}\";\n }\n }\n }\n\n // Determine if we're generating a class, or an attribute selector\n $selector-type: \"class\";\n @if map.has-key($utility, selector) {\n $selector-type: map.get($utility, selector);\n // Validate selector type\n $valid-selectors: \"class\", \"attr-starts\", \"attr-includes\";\n @if not list.index($valid-selectors, $selector-type) {\n @error \"Invalid `selector` value `#{$selector-type}`. Must be one of: #{$valid-selectors}\";\n }\n }\n // Then get the class name to use in a class (e.g., .class) or in an attribute selector (e.g., [class^=\"class\"])\n $selector-class: map.get($utility, class);\n\n // Attribute selectors require a `class` key\n @if $selector-type != \"class\" and not map.has-key($utility, class) {\n @error \"Utility with `selector: #{$selector-type}` requires a `class` key.\";\n }\n\n // Get the list or map of values and ensure it's a map\n $values: map.get($utility, values);\n @if meta.type-of($values) != \"map\" {\n @if meta.type-of($values) == \"list\" {\n $list: ();\n @each $value in $values {\n $list: map.merge($list, ($value: $value));\n }\n $values: $list;\n } @else {\n $values: (null: $values);\n }\n }\n\n @each $key, $value in $values {\n $properties: map.get($utility, property);\n $property-map: null;\n $custom-class: \"\";\n\n // Check if property is a map (Property-Value Mapping approach)\n @if meta.type-of($properties) == \"map\" {\n $property-map: $properties;\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n }\n } @else {\n // Legacy approach: multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if meta.type-of($properties) == \"string\" {\n $properties: list.append((), $properties);\n }\n // Use custom class if present, otherwise use the first value from the list of properties\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n } @else {\n $custom-class: list.nth($properties, 1);\n }\n @if $custom-class == null {\n $custom-class: \"\";\n }\n }\n\n // State params to generate state variants\n $state: ();\n @if map.has-key($utility, state) {\n $state: map.get($utility, state);\n }\n\n // Don't add a dash before value key if value key is null (e.g. with shadow class)\n $custom-class-modifier: \"\";\n @if $key {\n @if $custom-class == \"\" {\n $custom-class-modifier: $key;\n } @else {\n $custom-class-modifier: \"-\" + $key;\n }\n }\n\n // Build the class name fragment (without prefix or dot) for reuse in state variants\n $class-name: \"\";\n @if $selector-type == \"class\" {\n @if $custom-class != \"\" {\n $class-name: $custom-class + $custom-class-modifier;\n } @else if $selector-class != null and $selector-class != \"\" {\n $class-name: $selector-class + $custom-class-modifier;\n } @else {\n $class-name: $custom-class-modifier;\n }\n }\n\n $selector: \"\";\n @if $selector-type == \"class\" {\n $selector: \".#{$prefix + $class-name}\";\n } @else if $selector-type == \"attr-starts\" {\n $selector: \"[class^=\\\"#{$selector-class}\\\"]\";\n } @else if $selector-type == \"attr-includes\" {\n $selector: \"[class*=\\\"#{$selector-class}\\\"]\";\n }\n\n // Apply child-selector wrapping if present (wraps in :where() for zero specificity)\n $child-sel: null;\n @if map.has-key($utility, child-selector) {\n $child-sel: map.get($utility, child-selector);\n }\n\n $final-selector: $selector;\n @if $child-sel {\n $final-selector: \":where(#{$selector} #{$child-sel})\";\n }\n\n #{$final-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n\n // Generate state variants (e.g., hover:link-10 instead of link-10-hover)\n @if $state != () {\n @each $state-variant in $state {\n $state-selector: \".#{$prefix}#{$state-variant}\\\\:#{$class-name}:#{$state-variant}\";\n @if $child-sel {\n $state-selector: \":where(#{$state-selector} #{$child-sel})\";\n }\n\n #{$state-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n }\n }\n }\n}\n\n// Generates all utility classes: base, responsive, print, and dark.\n// Extracted so that tests can call this mixin directly with a custom $utilities map\n// rather than having to mirror the loop conditions inline.\n@mixin generate-utilities-loop($utilities, $breakpoints) {\n // Base + responsive (one pass per breakpoint)\n @each $breakpoint in map.keys($breakpoints) {\n @include bp.media-breakpoint-up($breakpoint, $breakpoints) {\n $prefix: bp.breakpoint-prefix($breakpoint, $breakpoints);\n\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and (map.get($utility, responsive) or $prefix == \"\") {\n @include generate-utility($utility, $prefix);\n }\n }\n }\n }\n\n // Print utilities\n @media print {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, print) == true {\n @include generate-utility($utility, \"print\\\\:\");\n }\n }\n }\n\n // Dark utilities\n @media (prefers-color-scheme: dark) {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, dark) == true {\n @include generate-utility($utility, \"dark\\\\:\");\n }\n }\n }\n}\n","@use \"banner\" with (\n $file: \"Grid\"\n);\n\n@use \"config\" as *;\n@use \"functions\" as *;\n\n@forward \"utilities\"; // Make utilities available downstream\n@use \"utilities\" as *; // Bring utilities into the current namespace\n\n@forward \"layout/containers\";\n@forward \"layout/grid\";\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$utilities: map-get-multiple(\n $utilities,\n (\n \"display\",\n \"order\",\n \"grid-column-counts\",\n \"grid-columns\",\n \"grid-auto-flow\",\n \"gap\",\n \"row-gap\",\n \"column-gap\",\n \"flex\",\n \"flex-direction\",\n \"flex-grow\",\n \"flex-shrink\",\n \"flex-wrap\",\n \"justify-content\",\n \"justify-items\",\n \"align-items\",\n \"align-content\",\n \"align-self\",\n \"place-items\",\n \"margin\",\n \"margin-x\",\n \"margin-y\",\n \"margin-top\",\n \"margin-end\",\n \"margin-bottom\",\n \"margin-start\",\n \"negative-margin\",\n \"negative-margin-x\",\n \"negative-margin-y\",\n \"negative-margin-top\",\n \"negative-margin-end\",\n \"negative-margin-bottom\",\n \"negative-margin-start\",\n \"padding\",\n \"padding-x\",\n \"padding-y\",\n \"padding-top\",\n \"padding-end\",\n \"padding-bottom\",\n \"padding-start\",\n )\n);\n\n// check-unused-imports-disable-next-line — side-effect import: generates utility CSS.\n@use \"utilities/api\";\n\n:root {\n @each $name, $value in $breakpoints {\n --breakpoint-#{$name}: #{$value};\n }\n}\n"]}
\ No newline at end of file
* Copyright 2011-2026 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
-@layer layout{.container,.container-fluid,.\32 xl\:container,.xl\:container,.lg\:container,.md\:container,.sm\:container{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-inline:calc(var(--bs-gutter-x) * .5);margin-inline:auto}@media (min-width:576px){.sm\:container,.container{max-width:540px}}@media (min-width:768px){.md\:container,.sm\:container,.container{max-width:720px}}@media (min-width:1024px){.lg\:container,.md\:container,.sm\:container,.container{max-width:960px}}@media (min-width:1280px){.xl\:container,.lg\:container,.md\:container,.sm\:container,.container{max-width:1200px}}@media (min-width:1536px){.\32 xl\:container,.xl\:container,.lg\:container,.md\:container,.sm\:container,.container{max-width:1440px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;margin-inline:calc(-.5 * var(--bs-gutter-x));margin-top:calc(-1 * var(--bs-gutter-y));flex-wrap:wrap;display:flex}.row>*{width:100%;max-width:100%;padding-inline:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y);flex-shrink:0}.col{flex:1 0 0}.row-cols-auto>*{flex:none;width:auto}.row-cols-1>*{flex:none;width:100%}.row-cols-2>*{flex:none;width:50%}.row-cols-3>*{flex:none;width:33.3333%}.row-cols-4>*{flex:none;width:25%}.row-cols-5>*{flex:none;width:20%}.row-cols-6>*{flex:none;width:16.6667%}.col-auto{flex:none;width:auto}.col-1{flex:none;width:8.33333%}.col-2{flex:none;width:16.6667%}.col-3{flex:none;width:25%}.col-4{flex:none;width:33.3333%}.col-5{flex:none;width:41.6667%}.col-6{flex:none;width:50%}.col-7{flex:none;width:58.3333%}.col-8{flex:none;width:66.6667%}.col-9{flex:none;width:75%}.col-10{flex:none;width:83.3333%}.col-11{flex:none;width:91.6667%}.col-12{flex:none;width:100%}.offset-1{margin-inline-start:8.33333%}.offset-2{margin-inline-start:16.6667%}.offset-3{margin-inline-start:25%}.offset-4{margin-inline-start:33.3333%}.offset-5{margin-inline-start:41.6667%}.offset-6{margin-inline-start:50%}.offset-7{margin-inline-start:58.3333%}.offset-8{margin-inline-start:66.6667%}.offset-9{margin-inline-start:75%}.offset-10{margin-inline-start:83.3333%}.offset-11{margin-inline-start:91.6667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:.25rem}.g-1,.gy-1{--bs-gutter-y:.25rem}.g-2,.gx-2{--bs-gutter-x:.5rem}.g-2,.gy-2{--bs-gutter-y:.5rem}.g-3,.gx-3{--bs-gutter-x:.75rem}.g-3,.gy-3{--bs-gutter-y:.75rem}.g-4,.gx-4{--bs-gutter-x:1rem}.g-4,.gy-4{--bs-gutter-y:1rem}.g-5,.gx-5{--bs-gutter-x:1.25rem}.g-5,.gy-5{--bs-gutter-y:1.25rem}.g-6,.gx-6{--bs-gutter-x:1.5rem}.g-6,.gy-6{--bs-gutter-y:1.5rem}.g-7,.gx-7{--bs-gutter-x:2rem}.g-7,.gy-7{--bs-gutter-y:2rem}.g-8,.gx-8{--bs-gutter-x:2.5rem}.g-8,.gy-8{--bs-gutter-y:2.5rem}.g-9,.gx-9{--bs-gutter-x:3rem}.g-9,.gy-9{--bs-gutter-y:3rem}@media (min-width:576px){.sm\:col{flex:1 0 0}.sm\:row-cols-auto>*{flex:none;width:auto}.sm\:row-cols-1>*{flex:none;width:100%}.sm\:row-cols-2>*{flex:none;width:50%}.sm\:row-cols-3>*{flex:none;width:33.3333%}.sm\:row-cols-4>*{flex:none;width:25%}.sm\:row-cols-5>*{flex:none;width:20%}.sm\:row-cols-6>*{flex:none;width:16.6667%}.sm\:col-auto{flex:none;width:auto}.sm\:col-1{flex:none;width:8.33333%}.sm\:col-2{flex:none;width:16.6667%}.sm\:col-3{flex:none;width:25%}.sm\:col-4{flex:none;width:33.3333%}.sm\:col-5{flex:none;width:41.6667%}.sm\:col-6{flex:none;width:50%}.sm\:col-7{flex:none;width:58.3333%}.sm\:col-8{flex:none;width:66.6667%}.sm\:col-9{flex:none;width:75%}.sm\:col-10{flex:none;width:83.3333%}.sm\:col-11{flex:none;width:91.6667%}.sm\:col-12{flex:none;width:100%}.sm\:offset-0{margin-inline-start:0}.sm\:offset-1{margin-inline-start:8.33333%}.sm\:offset-2{margin-inline-start:16.6667%}.sm\:offset-3{margin-inline-start:25%}.sm\:offset-4{margin-inline-start:33.3333%}.sm\:offset-5{margin-inline-start:41.6667%}.sm\:offset-6{margin-inline-start:50%}.sm\:offset-7{margin-inline-start:58.3333%}.sm\:offset-8{margin-inline-start:66.6667%}.sm\:offset-9{margin-inline-start:75%}.sm\:offset-10{margin-inline-start:83.3333%}.sm\:offset-11{margin-inline-start:91.6667%}.sm\:g-0,.sm\:gx-0{--bs-gutter-x:0}.sm\:g-0,.sm\:gy-0{--bs-gutter-y:0}.sm\:g-1,.sm\:gx-1{--bs-gutter-x:.25rem}.sm\:g-1,.sm\:gy-1{--bs-gutter-y:.25rem}.sm\:g-2,.sm\:gx-2{--bs-gutter-x:.5rem}.sm\:g-2,.sm\:gy-2{--bs-gutter-y:.5rem}.sm\:g-3,.sm\:gx-3{--bs-gutter-x:.75rem}.sm\:g-3,.sm\:gy-3{--bs-gutter-y:.75rem}.sm\:g-4,.sm\:gx-4{--bs-gutter-x:1rem}.sm\:g-4,.sm\:gy-4{--bs-gutter-y:1rem}.sm\:g-5,.sm\:gx-5{--bs-gutter-x:1.25rem}.sm\:g-5,.sm\:gy-5{--bs-gutter-y:1.25rem}.sm\:g-6,.sm\:gx-6{--bs-gutter-x:1.5rem}.sm\:g-6,.sm\:gy-6{--bs-gutter-y:1.5rem}.sm\:g-7,.sm\:gx-7{--bs-gutter-x:2rem}.sm\:g-7,.sm\:gy-7{--bs-gutter-y:2rem}.sm\:g-8,.sm\:gx-8{--bs-gutter-x:2.5rem}.sm\:g-8,.sm\:gy-8{--bs-gutter-y:2.5rem}.sm\:g-9,.sm\:gx-9{--bs-gutter-x:3rem}.sm\:g-9,.sm\:gy-9{--bs-gutter-y:3rem}}@media (min-width:768px){.md\:col{flex:1 0 0}.md\:row-cols-auto>*{flex:none;width:auto}.md\:row-cols-1>*{flex:none;width:100%}.md\:row-cols-2>*{flex:none;width:50%}.md\:row-cols-3>*{flex:none;width:33.3333%}.md\:row-cols-4>*{flex:none;width:25%}.md\:row-cols-5>*{flex:none;width:20%}.md\:row-cols-6>*{flex:none;width:16.6667%}.md\:col-auto{flex:none;width:auto}.md\:col-1{flex:none;width:8.33333%}.md\:col-2{flex:none;width:16.6667%}.md\:col-3{flex:none;width:25%}.md\:col-4{flex:none;width:33.3333%}.md\:col-5{flex:none;width:41.6667%}.md\:col-6{flex:none;width:50%}.md\:col-7{flex:none;width:58.3333%}.md\:col-8{flex:none;width:66.6667%}.md\:col-9{flex:none;width:75%}.md\:col-10{flex:none;width:83.3333%}.md\:col-11{flex:none;width:91.6667%}.md\:col-12{flex:none;width:100%}.md\:offset-0{margin-inline-start:0}.md\:offset-1{margin-inline-start:8.33333%}.md\:offset-2{margin-inline-start:16.6667%}.md\:offset-3{margin-inline-start:25%}.md\:offset-4{margin-inline-start:33.3333%}.md\:offset-5{margin-inline-start:41.6667%}.md\:offset-6{margin-inline-start:50%}.md\:offset-7{margin-inline-start:58.3333%}.md\:offset-8{margin-inline-start:66.6667%}.md\:offset-9{margin-inline-start:75%}.md\:offset-10{margin-inline-start:83.3333%}.md\:offset-11{margin-inline-start:91.6667%}.md\:g-0,.md\:gx-0{--bs-gutter-x:0}.md\:g-0,.md\:gy-0{--bs-gutter-y:0}.md\:g-1,.md\:gx-1{--bs-gutter-x:.25rem}.md\:g-1,.md\:gy-1{--bs-gutter-y:.25rem}.md\:g-2,.md\:gx-2{--bs-gutter-x:.5rem}.md\:g-2,.md\:gy-2{--bs-gutter-y:.5rem}.md\:g-3,.md\:gx-3{--bs-gutter-x:.75rem}.md\:g-3,.md\:gy-3{--bs-gutter-y:.75rem}.md\:g-4,.md\:gx-4{--bs-gutter-x:1rem}.md\:g-4,.md\:gy-4{--bs-gutter-y:1rem}.md\:g-5,.md\:gx-5{--bs-gutter-x:1.25rem}.md\:g-5,.md\:gy-5{--bs-gutter-y:1.25rem}.md\:g-6,.md\:gx-6{--bs-gutter-x:1.5rem}.md\:g-6,.md\:gy-6{--bs-gutter-y:1.5rem}.md\:g-7,.md\:gx-7{--bs-gutter-x:2rem}.md\:g-7,.md\:gy-7{--bs-gutter-y:2rem}.md\:g-8,.md\:gx-8{--bs-gutter-x:2.5rem}.md\:g-8,.md\:gy-8{--bs-gutter-y:2.5rem}.md\:g-9,.md\:gx-9{--bs-gutter-x:3rem}.md\:g-9,.md\:gy-9{--bs-gutter-y:3rem}}@media (min-width:1024px){.lg\:col{flex:1 0 0}.lg\:row-cols-auto>*{flex:none;width:auto}.lg\:row-cols-1>*{flex:none;width:100%}.lg\:row-cols-2>*{flex:none;width:50%}.lg\:row-cols-3>*{flex:none;width:33.3333%}.lg\:row-cols-4>*{flex:none;width:25%}.lg\:row-cols-5>*{flex:none;width:20%}.lg\:row-cols-6>*{flex:none;width:16.6667%}.lg\:col-auto{flex:none;width:auto}.lg\:col-1{flex:none;width:8.33333%}.lg\:col-2{flex:none;width:16.6667%}.lg\:col-3{flex:none;width:25%}.lg\:col-4{flex:none;width:33.3333%}.lg\:col-5{flex:none;width:41.6667%}.lg\:col-6{flex:none;width:50%}.lg\:col-7{flex:none;width:58.3333%}.lg\:col-8{flex:none;width:66.6667%}.lg\:col-9{flex:none;width:75%}.lg\:col-10{flex:none;width:83.3333%}.lg\:col-11{flex:none;width:91.6667%}.lg\:col-12{flex:none;width:100%}.lg\:offset-0{margin-inline-start:0}.lg\:offset-1{margin-inline-start:8.33333%}.lg\:offset-2{margin-inline-start:16.6667%}.lg\:offset-3{margin-inline-start:25%}.lg\:offset-4{margin-inline-start:33.3333%}.lg\:offset-5{margin-inline-start:41.6667%}.lg\:offset-6{margin-inline-start:50%}.lg\:offset-7{margin-inline-start:58.3333%}.lg\:offset-8{margin-inline-start:66.6667%}.lg\:offset-9{margin-inline-start:75%}.lg\:offset-10{margin-inline-start:83.3333%}.lg\:offset-11{margin-inline-start:91.6667%}.lg\:g-0,.lg\:gx-0{--bs-gutter-x:0}.lg\:g-0,.lg\:gy-0{--bs-gutter-y:0}.lg\:g-1,.lg\:gx-1{--bs-gutter-x:.25rem}.lg\:g-1,.lg\:gy-1{--bs-gutter-y:.25rem}.lg\:g-2,.lg\:gx-2{--bs-gutter-x:.5rem}.lg\:g-2,.lg\:gy-2{--bs-gutter-y:.5rem}.lg\:g-3,.lg\:gx-3{--bs-gutter-x:.75rem}.lg\:g-3,.lg\:gy-3{--bs-gutter-y:.75rem}.lg\:g-4,.lg\:gx-4{--bs-gutter-x:1rem}.lg\:g-4,.lg\:gy-4{--bs-gutter-y:1rem}.lg\:g-5,.lg\:gx-5{--bs-gutter-x:1.25rem}.lg\:g-5,.lg\:gy-5{--bs-gutter-y:1.25rem}.lg\:g-6,.lg\:gx-6{--bs-gutter-x:1.5rem}.lg\:g-6,.lg\:gy-6{--bs-gutter-y:1.5rem}.lg\:g-7,.lg\:gx-7{--bs-gutter-x:2rem}.lg\:g-7,.lg\:gy-7{--bs-gutter-y:2rem}.lg\:g-8,.lg\:gx-8{--bs-gutter-x:2.5rem}.lg\:g-8,.lg\:gy-8{--bs-gutter-y:2.5rem}.lg\:g-9,.lg\:gx-9{--bs-gutter-x:3rem}.lg\:g-9,.lg\:gy-9{--bs-gutter-y:3rem}}@media (min-width:1280px){.xl\:col{flex:1 0 0}.xl\:row-cols-auto>*{flex:none;width:auto}.xl\:row-cols-1>*{flex:none;width:100%}.xl\:row-cols-2>*{flex:none;width:50%}.xl\:row-cols-3>*{flex:none;width:33.3333%}.xl\:row-cols-4>*{flex:none;width:25%}.xl\:row-cols-5>*{flex:none;width:20%}.xl\:row-cols-6>*{flex:none;width:16.6667%}.xl\:col-auto{flex:none;width:auto}.xl\:col-1{flex:none;width:8.33333%}.xl\:col-2{flex:none;width:16.6667%}.xl\:col-3{flex:none;width:25%}.xl\:col-4{flex:none;width:33.3333%}.xl\:col-5{flex:none;width:41.6667%}.xl\:col-6{flex:none;width:50%}.xl\:col-7{flex:none;width:58.3333%}.xl\:col-8{flex:none;width:66.6667%}.xl\:col-9{flex:none;width:75%}.xl\:col-10{flex:none;width:83.3333%}.xl\:col-11{flex:none;width:91.6667%}.xl\:col-12{flex:none;width:100%}.xl\:offset-0{margin-inline-start:0}.xl\:offset-1{margin-inline-start:8.33333%}.xl\:offset-2{margin-inline-start:16.6667%}.xl\:offset-3{margin-inline-start:25%}.xl\:offset-4{margin-inline-start:33.3333%}.xl\:offset-5{margin-inline-start:41.6667%}.xl\:offset-6{margin-inline-start:50%}.xl\:offset-7{margin-inline-start:58.3333%}.xl\:offset-8{margin-inline-start:66.6667%}.xl\:offset-9{margin-inline-start:75%}.xl\:offset-10{margin-inline-start:83.3333%}.xl\:offset-11{margin-inline-start:91.6667%}.xl\:g-0,.xl\:gx-0{--bs-gutter-x:0}.xl\:g-0,.xl\:gy-0{--bs-gutter-y:0}.xl\:g-1,.xl\:gx-1{--bs-gutter-x:.25rem}.xl\:g-1,.xl\:gy-1{--bs-gutter-y:.25rem}.xl\:g-2,.xl\:gx-2{--bs-gutter-x:.5rem}.xl\:g-2,.xl\:gy-2{--bs-gutter-y:.5rem}.xl\:g-3,.xl\:gx-3{--bs-gutter-x:.75rem}.xl\:g-3,.xl\:gy-3{--bs-gutter-y:.75rem}.xl\:g-4,.xl\:gx-4{--bs-gutter-x:1rem}.xl\:g-4,.xl\:gy-4{--bs-gutter-y:1rem}.xl\:g-5,.xl\:gx-5{--bs-gutter-x:1.25rem}.xl\:g-5,.xl\:gy-5{--bs-gutter-y:1.25rem}.xl\:g-6,.xl\:gx-6{--bs-gutter-x:1.5rem}.xl\:g-6,.xl\:gy-6{--bs-gutter-y:1.5rem}.xl\:g-7,.xl\:gx-7{--bs-gutter-x:2rem}.xl\:g-7,.xl\:gy-7{--bs-gutter-y:2rem}.xl\:g-8,.xl\:gx-8{--bs-gutter-x:2.5rem}.xl\:g-8,.xl\:gy-8{--bs-gutter-y:2.5rem}.xl\:g-9,.xl\:gx-9{--bs-gutter-x:3rem}.xl\:g-9,.xl\:gy-9{--bs-gutter-y:3rem}}@media (min-width:1536px){.\32 xl\:col{flex:1 0 0}.\32 xl\:row-cols-auto>*{flex:none;width:auto}.\32 xl\:row-cols-1>*{flex:none;width:100%}.\32 xl\:row-cols-2>*{flex:none;width:50%}.\32 xl\:row-cols-3>*{flex:none;width:33.3333%}.\32 xl\:row-cols-4>*{flex:none;width:25%}.\32 xl\:row-cols-5>*{flex:none;width:20%}.\32 xl\:row-cols-6>*{flex:none;width:16.6667%}.\32 xl\:col-auto{flex:none;width:auto}.\32 xl\:col-1{flex:none;width:8.33333%}.\32 xl\:col-2{flex:none;width:16.6667%}.\32 xl\:col-3{flex:none;width:25%}.\32 xl\:col-4{flex:none;width:33.3333%}.\32 xl\:col-5{flex:none;width:41.6667%}.\32 xl\:col-6{flex:none;width:50%}.\32 xl\:col-7{flex:none;width:58.3333%}.\32 xl\:col-8{flex:none;width:66.6667%}.\32 xl\:col-9{flex:none;width:75%}.\32 xl\:col-10{flex:none;width:83.3333%}.\32 xl\:col-11{flex:none;width:91.6667%}.\32 xl\:col-12{flex:none;width:100%}.\32 xl\:offset-0{margin-inline-start:0}.\32 xl\:offset-1{margin-inline-start:8.33333%}.\32 xl\:offset-2{margin-inline-start:16.6667%}.\32 xl\:offset-3{margin-inline-start:25%}.\32 xl\:offset-4{margin-inline-start:33.3333%}.\32 xl\:offset-5{margin-inline-start:41.6667%}.\32 xl\:offset-6{margin-inline-start:50%}.\32 xl\:offset-7{margin-inline-start:58.3333%}.\32 xl\:offset-8{margin-inline-start:66.6667%}.\32 xl\:offset-9{margin-inline-start:75%}.\32 xl\:offset-10{margin-inline-start:83.3333%}.\32 xl\:offset-11{margin-inline-start:91.6667%}.\32 xl\:g-0,.\32 xl\:gx-0{--bs-gutter-x:0}.\32 xl\:g-0,.\32 xl\:gy-0{--bs-gutter-y:0}.\32 xl\:g-1,.\32 xl\:gx-1{--bs-gutter-x:.25rem}.\32 xl\:g-1,.\32 xl\:gy-1{--bs-gutter-y:.25rem}.\32 xl\:g-2,.\32 xl\:gx-2{--bs-gutter-x:.5rem}.\32 xl\:g-2,.\32 xl\:gy-2{--bs-gutter-y:.5rem}.\32 xl\:g-3,.\32 xl\:gx-3{--bs-gutter-x:.75rem}.\32 xl\:g-3,.\32 xl\:gy-3{--bs-gutter-y:.75rem}.\32 xl\:g-4,.\32 xl\:gx-4{--bs-gutter-x:1rem}.\32 xl\:g-4,.\32 xl\:gy-4{--bs-gutter-y:1rem}.\32 xl\:g-5,.\32 xl\:gx-5{--bs-gutter-x:1.25rem}.\32 xl\:g-5,.\32 xl\:gy-5{--bs-gutter-y:1.25rem}.\32 xl\:g-6,.\32 xl\:gx-6{--bs-gutter-x:1.5rem}.\32 xl\:g-6,.\32 xl\:gy-6{--bs-gutter-y:1.5rem}.\32 xl\:g-7,.\32 xl\:gx-7{--bs-gutter-x:2rem}.\32 xl\:g-7,.\32 xl\:gy-7{--bs-gutter-y:2rem}.\32 xl\:g-8,.\32 xl\:gx-8{--bs-gutter-x:2.5rem}.\32 xl\:g-8,.\32 xl\:gy-8{--bs-gutter-y:2.5rem}.\32 xl\:g-9,.\32 xl\:gx-9{--bs-gutter-x:3rem}.\32 xl\:g-9,.\32 xl\:gy-9{--bs-gutter-y:3rem}}.grid{--bs-columns:12;--bs-rows:1;--bs-gap:1.5rem;grid-template-rows:repeat(var(--bs-rows), 1fr);grid-template-columns:repeat(var(--bs-columns), 1fr);gap:var(--bs-gap);display:grid}.g-col-1{grid-column:auto/span 1}.g-col-2{grid-column:auto/span 2}.g-col-3{grid-column:auto/span 3}.g-col-4{grid-column:auto/span 4}.g-col-5{grid-column:auto/span 5}.g-col-6{grid-column:auto/span 6}.g-col-7{grid-column:auto/span 7}.g-col-8{grid-column:auto/span 8}.g-col-9{grid-column:auto/span 9}.g-col-10{grid-column:auto/span 10}.g-col-11{grid-column:auto/span 11}.g-col-12{grid-column:auto/span 12}.g-start-1{grid-column-start:1}.g-start-2{grid-column-start:2}.g-start-3{grid-column-start:3}.g-start-4{grid-column-start:4}.g-start-5{grid-column-start:5}.g-start-6{grid-column-start:6}.g-start-7{grid-column-start:7}.g-start-8{grid-column-start:8}.g-start-9{grid-column-start:9}.g-start-10{grid-column-start:10}.g-start-11{grid-column-start:11}@media (min-width:576px){.sm\:g-col-1{grid-column:auto/span 1}.sm\:g-col-2{grid-column:auto/span 2}.sm\:g-col-3{grid-column:auto/span 3}.sm\:g-col-4{grid-column:auto/span 4}.sm\:g-col-5{grid-column:auto/span 5}.sm\:g-col-6{grid-column:auto/span 6}.sm\:g-col-7{grid-column:auto/span 7}.sm\:g-col-8{grid-column:auto/span 8}.sm\:g-col-9{grid-column:auto/span 9}.sm\:g-col-10{grid-column:auto/span 10}.sm\:g-col-11{grid-column:auto/span 11}.sm\:g-col-12{grid-column:auto/span 12}.sm\:g-start-1{grid-column-start:1}.sm\:g-start-2{grid-column-start:2}.sm\:g-start-3{grid-column-start:3}.sm\:g-start-4{grid-column-start:4}.sm\:g-start-5{grid-column-start:5}.sm\:g-start-6{grid-column-start:6}.sm\:g-start-7{grid-column-start:7}.sm\:g-start-8{grid-column-start:8}.sm\:g-start-9{grid-column-start:9}.sm\:g-start-10{grid-column-start:10}.sm\:g-start-11{grid-column-start:11}}@media (min-width:768px){.md\:g-col-1{grid-column:auto/span 1}.md\:g-col-2{grid-column:auto/span 2}.md\:g-col-3{grid-column:auto/span 3}.md\:g-col-4{grid-column:auto/span 4}.md\:g-col-5{grid-column:auto/span 5}.md\:g-col-6{grid-column:auto/span 6}.md\:g-col-7{grid-column:auto/span 7}.md\:g-col-8{grid-column:auto/span 8}.md\:g-col-9{grid-column:auto/span 9}.md\:g-col-10{grid-column:auto/span 10}.md\:g-col-11{grid-column:auto/span 11}.md\:g-col-12{grid-column:auto/span 12}.md\:g-start-1{grid-column-start:1}.md\:g-start-2{grid-column-start:2}.md\:g-start-3{grid-column-start:3}.md\:g-start-4{grid-column-start:4}.md\:g-start-5{grid-column-start:5}.md\:g-start-6{grid-column-start:6}.md\:g-start-7{grid-column-start:7}.md\:g-start-8{grid-column-start:8}.md\:g-start-9{grid-column-start:9}.md\:g-start-10{grid-column-start:10}.md\:g-start-11{grid-column-start:11}}@media (min-width:1024px){.lg\:g-col-1{grid-column:auto/span 1}.lg\:g-col-2{grid-column:auto/span 2}.lg\:g-col-3{grid-column:auto/span 3}.lg\:g-col-4{grid-column:auto/span 4}.lg\:g-col-5{grid-column:auto/span 5}.lg\:g-col-6{grid-column:auto/span 6}.lg\:g-col-7{grid-column:auto/span 7}.lg\:g-col-8{grid-column:auto/span 8}.lg\:g-col-9{grid-column:auto/span 9}.lg\:g-col-10{grid-column:auto/span 10}.lg\:g-col-11{grid-column:auto/span 11}.lg\:g-col-12{grid-column:auto/span 12}.lg\:g-start-1{grid-column-start:1}.lg\:g-start-2{grid-column-start:2}.lg\:g-start-3{grid-column-start:3}.lg\:g-start-4{grid-column-start:4}.lg\:g-start-5{grid-column-start:5}.lg\:g-start-6{grid-column-start:6}.lg\:g-start-7{grid-column-start:7}.lg\:g-start-8{grid-column-start:8}.lg\:g-start-9{grid-column-start:9}.lg\:g-start-10{grid-column-start:10}.lg\:g-start-11{grid-column-start:11}}@media (min-width:1280px){.xl\:g-col-1{grid-column:auto/span 1}.xl\:g-col-2{grid-column:auto/span 2}.xl\:g-col-3{grid-column:auto/span 3}.xl\:g-col-4{grid-column:auto/span 4}.xl\:g-col-5{grid-column:auto/span 5}.xl\:g-col-6{grid-column:auto/span 6}.xl\:g-col-7{grid-column:auto/span 7}.xl\:g-col-8{grid-column:auto/span 8}.xl\:g-col-9{grid-column:auto/span 9}.xl\:g-col-10{grid-column:auto/span 10}.xl\:g-col-11{grid-column:auto/span 11}.xl\:g-col-12{grid-column:auto/span 12}.xl\:g-start-1{grid-column-start:1}.xl\:g-start-2{grid-column-start:2}.xl\:g-start-3{grid-column-start:3}.xl\:g-start-4{grid-column-start:4}.xl\:g-start-5{grid-column-start:5}.xl\:g-start-6{grid-column-start:6}.xl\:g-start-7{grid-column-start:7}.xl\:g-start-8{grid-column-start:8}.xl\:g-start-9{grid-column-start:9}.xl\:g-start-10{grid-column-start:10}.xl\:g-start-11{grid-column-start:11}}@media (min-width:1536px){.\32 xl\:g-col-1{grid-column:auto/span 1}.\32 xl\:g-col-2{grid-column:auto/span 2}.\32 xl\:g-col-3{grid-column:auto/span 3}.\32 xl\:g-col-4{grid-column:auto/span 4}.\32 xl\:g-col-5{grid-column:auto/span 5}.\32 xl\:g-col-6{grid-column:auto/span 6}.\32 xl\:g-col-7{grid-column:auto/span 7}.\32 xl\:g-col-8{grid-column:auto/span 8}.\32 xl\:g-col-9{grid-column:auto/span 9}.\32 xl\:g-col-10{grid-column:auto/span 10}.\32 xl\:g-col-11{grid-column:auto/span 11}.\32 xl\:g-col-12{grid-column:auto/span 12}.\32 xl\:g-start-1{grid-column-start:1}.\32 xl\:g-start-2{grid-column-start:2}.\32 xl\:g-start-3{grid-column-start:3}.\32 xl\:g-start-4{grid-column-start:4}.\32 xl\:g-start-5{grid-column-start:5}.\32 xl\:g-start-6{grid-column-start:6}.\32 xl\:g-start-7{grid-column-start:7}.\32 xl\:g-start-8{grid-column-start:8}.\32 xl\:g-start-9{grid-column-start:9}.\32 xl\:g-start-10{grid-column-start:10}.\32 xl\:g-start-11{grid-column-start:11}}.grid-cols-subgrid{grid-template-columns:subgrid}.grid-fill{--bs-gap:1.5rem;gap:var(--bs-gap);grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:row;display:grid}}@layer utilities{.d-inline{display:inline}.d-inline-block{display:inline-block}.d-block{display:block}.d-grid{display:grid}.d-inline-grid{display:inline-grid}.d-table{display:table}.d-table-row{display:table-row}.d-table-cell{display:table-cell}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.d-contents{display:contents}.d-flow-root{display:flow-root}.d-none{display:none}.flex-fill{flex:auto}.flex-row{flex-direction:row}.flex-column{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-column-reverse{flex-direction:column-reverse}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.justify-content-start{justify-content:flex-start}.justify-content-end{justify-content:flex-end}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.justify-content-around{justify-content:space-around}.justify-content-evenly{justify-content:space-evenly}.justify-items-start{justify-items:start}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.justify-items-stretch{justify-items:stretch}.align-items-start{align-items:flex-start}.align-items-end{align-items:flex-end}.align-items-center{align-items:center}.align-items-baseline{align-items:baseline}.align-items-stretch{align-items:stretch}.align-content-start{align-content:flex-start}.align-content-end{align-content:flex-end}.align-content-center{align-content:center}.align-content-between{align-content:space-between}.align-content-around{align-content:space-around}.align-content-stretch{align-content:stretch}.align-self-auto{align-self:auto}.align-self-start{align-self:flex-start}.align-self-end{align-self:flex-end}.align-self-center{align-self:center}.align-self-baseline{align-self:baseline}.align-self-stretch{align-self:stretch}.place-items-start{place-items:start}.place-items-end{place-items:end}.place-items-center{place-items:center}.place-items-stretch{place-items:stretch stretch}.grid-cols-1{grid-template-columns:1fr}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.grid-cols-6{grid-template-columns:repeat(6,1fr)}.grid-cols-fill{grid-column:1/-1}.grid-auto-flow-row{grid-auto-flow:row}.grid-auto-flow-column{grid-auto-flow:column}.grid-auto-flow-dense{grid-auto-flow:dense}.order-first{order:-1}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-last{order:6}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-3{margin:.75rem}.m-4{margin:1rem}.m-5{margin:1.25rem}.m-6{margin:1.5rem}.m-7{margin:2rem}.m-8{margin:2.5rem}.m-9{margin:3rem}.m-auto{margin:auto}.mx-0{margin-inline:0}.mx-1{margin-inline:.25rem}.mx-2{margin-inline:.5rem}.mx-3{margin-inline:.75rem}.mx-4{margin-inline:1rem}.mx-5{margin-inline:1.25rem}.mx-6{margin-inline:1.5rem}.mx-7{margin-inline:2rem}.mx-8{margin-inline:2.5rem}.mx-9{margin-inline:3rem}.mx-auto{margin-inline:auto}.my-0{margin-block:0}.my-1{margin-block:.25rem}.my-2{margin-block:.5rem}.my-3{margin-block:.75rem}.my-4{margin-block:1rem}.my-5{margin-block:1.25rem}.my-6{margin-block:1.5rem}.my-7{margin-block:2rem}.my-8{margin-block:2.5rem}.my-9{margin-block:3rem}.my-auto{margin-block:auto}.mt-0{margin-block-start:0}.mt-1{margin-block-start:.25rem}.mt-2{margin-block-start:.5rem}.mt-3{margin-block-start:.75rem}.mt-4{margin-block-start:1rem}.mt-5{margin-block-start:1.25rem}.mt-6{margin-block-start:1.5rem}.mt-7{margin-block-start:2rem}.mt-8{margin-block-start:2.5rem}.mt-9{margin-block-start:3rem}.mt-auto{margin-block-start:auto}.me-0{margin-inline-end:0}.me-1{margin-inline-end:.25rem}.me-2{margin-inline-end:.5rem}.me-3{margin-inline-end:.75rem}.me-4{margin-inline-end:1rem}.me-5{margin-inline-end:1.25rem}.me-6{margin-inline-end:1.5rem}.me-7{margin-inline-end:2rem}.me-8{margin-inline-end:2.5rem}.me-9{margin-inline-end:3rem}.me--1{margin-inline-end:-.25rem}.me--2{margin-inline-end:-.5rem}.me-auto{margin-inline-end:auto}.mb-0{margin-block-end:0}.mb-1{margin-block-end:.25rem}.mb-2{margin-block-end:.5rem}.mb-3{margin-block-end:.75rem}.mb-4{margin-block-end:1rem}.mb-5{margin-block-end:1.25rem}.mb-6{margin-block-end:1.5rem}.mb-7{margin-block-end:2rem}.mb-8{margin-block-end:2.5rem}.mb-9{margin-block-end:3rem}.mb-auto{margin-block-end:auto}.ms-0{margin-inline-start:0}.ms-1{margin-inline-start:.25rem}.ms-2{margin-inline-start:.5rem}.ms-3{margin-inline-start:.75rem}.ms-4{margin-inline-start:1rem}.ms-5{margin-inline-start:1.25rem}.ms-6{margin-inline-start:1.5rem}.ms-7{margin-inline-start:2rem}.ms-8{margin-inline-start:2.5rem}.ms-9{margin-inline-start:3rem}.ms--1{margin-inline-start:-.25rem}.ms--2{margin-inline-start:-.5rem}.ms-auto{margin-inline-start:auto}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:2rem}.p-8{padding:2.5rem}.p-9{padding:3rem}.px-0{padding-inline:0}.px-1{padding-inline:.25rem}.px-2{padding-inline:.5rem}.px-3{padding-inline:.75rem}.px-4{padding-inline:1rem}.px-5{padding-inline:1.25rem}.px-6{padding-inline:1.5rem}.px-7{padding-inline:2rem}.px-8{padding-inline:2.5rem}.px-9{padding-inline:3rem}.py-0{padding-block:0}.py-1{padding-block:.25rem}.py-2{padding-block:.5rem}.py-3{padding-block:.75rem}.py-4{padding-block:1rem}.py-5{padding-block:1.25rem}.py-6{padding-block:1.5rem}.py-7{padding-block:2rem}.py-8{padding-block:2.5rem}.py-9{padding-block:3rem}.pt-0{padding-block-start:0}.pt-1{padding-block-start:.25rem}.pt-2{padding-block-start:.5rem}.pt-3{padding-block-start:.75rem}.pt-4{padding-block-start:1rem}.pt-5{padding-block-start:1.25rem}.pt-6{padding-block-start:1.5rem}.pt-7{padding-block-start:2rem}.pt-8{padding-block-start:2.5rem}.pt-9{padding-block-start:3rem}.pe-0{padding-inline-end:0}.pe-1{padding-inline-end:.25rem}.pe-2{padding-inline-end:.5rem}.pe-3{padding-inline-end:.75rem}.pe-4{padding-inline-end:1rem}.pe-5{padding-inline-end:1.25rem}.pe-6{padding-inline-end:1.5rem}.pe-7{padding-inline-end:2rem}.pe-8{padding-inline-end:2.5rem}.pe-9{padding-inline-end:3rem}.pb-0{padding-block-end:0}.pb-1{padding-block-end:.25rem}.pb-2{padding-block-end:.5rem}.pb-3{padding-block-end:.75rem}.pb-4{padding-block-end:1rem}.pb-5{padding-block-end:1.25rem}.pb-6{padding-block-end:1.5rem}.pb-7{padding-block-end:2rem}.pb-8{padding-block-end:2.5rem}.pb-9{padding-block-end:3rem}.ps-0{padding-inline-start:0}.ps-1{padding-inline-start:.25rem}.ps-2{padding-inline-start:.5rem}.ps-3{padding-inline-start:.75rem}.ps-4{padding-inline-start:1rem}.ps-5{padding-inline-start:1.25rem}.ps-6{padding-inline-start:1.5rem}.ps-7{padding-inline-start:2rem}.ps-8{padding-inline-start:2.5rem}.ps-9{padding-inline-start:3rem}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:2rem}.gap-8{gap:2.5rem}.gap-9{gap:3rem}.row-gap-0{row-gap:0}.row-gap-1{row-gap:.25rem}.row-gap-2{row-gap:.5rem}.row-gap-3{row-gap:.75rem}.row-gap-4{row-gap:1rem}.row-gap-5{row-gap:1.25rem}.row-gap-6{row-gap:1.5rem}.row-gap-7{row-gap:2rem}.row-gap-8{row-gap:2.5rem}.row-gap-9{row-gap:3rem}.column-gap-0{-moz-column-gap:0;column-gap:0}.column-gap-1{-moz-column-gap:.25rem;column-gap:.25rem}.column-gap-2{-moz-column-gap:.5rem;column-gap:.5rem}.column-gap-3{-moz-column-gap:.75rem;column-gap:.75rem}.column-gap-4{-moz-column-gap:1rem;column-gap:1rem}.column-gap-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.column-gap-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.column-gap-7{-moz-column-gap:2rem;column-gap:2rem}.column-gap-8{-moz-column-gap:2.5rem;column-gap:2.5rem}.column-gap-9{-moz-column-gap:3rem;column-gap:3rem}@media (min-width:576px){.sm\:d-inline{display:inline}.sm\:d-inline-block{display:inline-block}.sm\:d-block{display:block}.sm\:d-grid{display:grid}.sm\:d-inline-grid{display:inline-grid}.sm\:d-table{display:table}.sm\:d-table-row{display:table-row}.sm\:d-table-cell{display:table-cell}.sm\:d-flex{display:flex}.sm\:d-inline-flex{display:inline-flex}.sm\:d-contents{display:contents}.sm\:d-flow-root{display:flow-root}.sm\:d-none{display:none}.sm\:flex-fill{flex:auto}.sm\:flex-row{flex-direction:row}.sm\:flex-column{flex-direction:column}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:flex-column-reverse{flex-direction:column-reverse}.sm\:flex-grow-0{flex-grow:0}.sm\:flex-grow-1{flex-grow:1}.sm\:flex-shrink-0{flex-shrink:0}.sm\:flex-shrink-1{flex-shrink:1}.sm\:flex-wrap{flex-wrap:wrap}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:flex-wrap-reverse{flex-wrap:wrap-reverse}.sm\:justify-content-start{justify-content:flex-start}.sm\:justify-content-end{justify-content:flex-end}.sm\:justify-content-center{justify-content:center}.sm\:justify-content-between{justify-content:space-between}.sm\:justify-content-around{justify-content:space-around}.sm\:justify-content-evenly{justify-content:space-evenly}.sm\:justify-items-start{justify-items:start}.sm\:justify-items-end{justify-items:end}.sm\:justify-items-center{justify-items:center}.sm\:justify-items-stretch{justify-items:stretch}.sm\:align-items-start{align-items:flex-start}.sm\:align-items-end{align-items:flex-end}.sm\:align-items-center{align-items:center}.sm\:align-items-baseline{align-items:baseline}.sm\:align-items-stretch{align-items:stretch}.sm\:align-content-start{align-content:flex-start}.sm\:align-content-end{align-content:flex-end}.sm\:align-content-center{align-content:center}.sm\:align-content-between{align-content:space-between}.sm\:align-content-around{align-content:space-around}.sm\:align-content-stretch{align-content:stretch}.sm\:align-self-auto{align-self:auto}.sm\:align-self-start{align-self:flex-start}.sm\:align-self-end{align-self:flex-end}.sm\:align-self-center{align-self:center}.sm\:align-self-baseline{align-self:baseline}.sm\:align-self-stretch{align-self:stretch}.sm\:place-items-start{place-items:start}.sm\:place-items-end{place-items:end}.sm\:place-items-center{place-items:center}.sm\:place-items-stretch{place-items:stretch stretch}.sm\:grid-cols-1{grid-template-columns:1fr}.sm\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.sm\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.sm\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.sm\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.sm\:grid-cols-fill{grid-column:1/-1}.sm\:grid-auto-flow-row{grid-auto-flow:row}.sm\:grid-auto-flow-column{grid-auto-flow:column}.sm\:grid-auto-flow-dense{grid-auto-flow:dense}.sm\:order-first{order:-1}.sm\:order-0{order:0}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:order-3{order:3}.sm\:order-4{order:4}.sm\:order-5{order:5}.sm\:order-last{order:6}.sm\:m-0{margin:0}.sm\:m-1{margin:.25rem}.sm\:m-2{margin:.5rem}.sm\:m-3{margin:.75rem}.sm\:m-4{margin:1rem}.sm\:m-5{margin:1.25rem}.sm\:m-6{margin:1.5rem}.sm\:m-7{margin:2rem}.sm\:m-8{margin:2.5rem}.sm\:m-9{margin:3rem}.sm\:m-auto{margin:auto}.sm\:mx-0{margin-inline:0}.sm\:mx-1{margin-inline:.25rem}.sm\:mx-2{margin-inline:.5rem}.sm\:mx-3{margin-inline:.75rem}.sm\:mx-4{margin-inline:1rem}.sm\:mx-5{margin-inline:1.25rem}.sm\:mx-6{margin-inline:1.5rem}.sm\:mx-7{margin-inline:2rem}.sm\:mx-8{margin-inline:2.5rem}.sm\:mx-9{margin-inline:3rem}.sm\:mx-auto{margin-inline:auto}.sm\:my-0{margin-block:0}.sm\:my-1{margin-block:.25rem}.sm\:my-2{margin-block:.5rem}.sm\:my-3{margin-block:.75rem}.sm\:my-4{margin-block:1rem}.sm\:my-5{margin-block:1.25rem}.sm\:my-6{margin-block:1.5rem}.sm\:my-7{margin-block:2rem}.sm\:my-8{margin-block:2.5rem}.sm\:my-9{margin-block:3rem}.sm\:my-auto{margin-block:auto}.sm\:mt-0{margin-block-start:0}.sm\:mt-1{margin-block-start:.25rem}.sm\:mt-2{margin-block-start:.5rem}.sm\:mt-3{margin-block-start:.75rem}.sm\:mt-4{margin-block-start:1rem}.sm\:mt-5{margin-block-start:1.25rem}.sm\:mt-6{margin-block-start:1.5rem}.sm\:mt-7{margin-block-start:2rem}.sm\:mt-8{margin-block-start:2.5rem}.sm\:mt-9{margin-block-start:3rem}.sm\:mt-auto{margin-block-start:auto}.sm\:me-0{margin-inline-end:0}.sm\:me-1{margin-inline-end:.25rem}.sm\:me-2{margin-inline-end:.5rem}.sm\:me-3{margin-inline-end:.75rem}.sm\:me-4{margin-inline-end:1rem}.sm\:me-5{margin-inline-end:1.25rem}.sm\:me-6{margin-inline-end:1.5rem}.sm\:me-7{margin-inline-end:2rem}.sm\:me-8{margin-inline-end:2.5rem}.sm\:me-9{margin-inline-end:3rem}.sm\:me--1{margin-inline-end:-.25rem}.sm\:me--2{margin-inline-end:-.5rem}.sm\:me-auto{margin-inline-end:auto}.sm\:mb-0{margin-block-end:0}.sm\:mb-1{margin-block-end:.25rem}.sm\:mb-2{margin-block-end:.5rem}.sm\:mb-3{margin-block-end:.75rem}.sm\:mb-4{margin-block-end:1rem}.sm\:mb-5{margin-block-end:1.25rem}.sm\:mb-6{margin-block-end:1.5rem}.sm\:mb-7{margin-block-end:2rem}.sm\:mb-8{margin-block-end:2.5rem}.sm\:mb-9{margin-block-end:3rem}.sm\:mb-auto{margin-block-end:auto}.sm\:ms-0{margin-inline-start:0}.sm\:ms-1{margin-inline-start:.25rem}.sm\:ms-2{margin-inline-start:.5rem}.sm\:ms-3{margin-inline-start:.75rem}.sm\:ms-4{margin-inline-start:1rem}.sm\:ms-5{margin-inline-start:1.25rem}.sm\:ms-6{margin-inline-start:1.5rem}.sm\:ms-7{margin-inline-start:2rem}.sm\:ms-8{margin-inline-start:2.5rem}.sm\:ms-9{margin-inline-start:3rem}.sm\:ms--1{margin-inline-start:-.25rem}.sm\:ms--2{margin-inline-start:-.5rem}.sm\:ms-auto{margin-inline-start:auto}.sm\:p-0{padding:0}.sm\:p-1{padding:.25rem}.sm\:p-2{padding:.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:p-7{padding:2rem}.sm\:p-8{padding:2.5rem}.sm\:p-9{padding:3rem}.sm\:px-0{padding-inline:0}.sm\:px-1{padding-inline:.25rem}.sm\:px-2{padding-inline:.5rem}.sm\:px-3{padding-inline:.75rem}.sm\:px-4{padding-inline:1rem}.sm\:px-5{padding-inline:1.25rem}.sm\:px-6{padding-inline:1.5rem}.sm\:px-7{padding-inline:2rem}.sm\:px-8{padding-inline:2.5rem}.sm\:px-9{padding-inline:3rem}.sm\:py-0{padding-block:0}.sm\:py-1{padding-block:.25rem}.sm\:py-2{padding-block:.5rem}.sm\:py-3{padding-block:.75rem}.sm\:py-4{padding-block:1rem}.sm\:py-5{padding-block:1.25rem}.sm\:py-6{padding-block:1.5rem}.sm\:py-7{padding-block:2rem}.sm\:py-8{padding-block:2.5rem}.sm\:py-9{padding-block:3rem}.sm\:pt-0{padding-block-start:0}.sm\:pt-1{padding-block-start:.25rem}.sm\:pt-2{padding-block-start:.5rem}.sm\:pt-3{padding-block-start:.75rem}.sm\:pt-4{padding-block-start:1rem}.sm\:pt-5{padding-block-start:1.25rem}.sm\:pt-6{padding-block-start:1.5rem}.sm\:pt-7{padding-block-start:2rem}.sm\:pt-8{padding-block-start:2.5rem}.sm\:pt-9{padding-block-start:3rem}.sm\:pe-0{padding-inline-end:0}.sm\:pe-1{padding-inline-end:.25rem}.sm\:pe-2{padding-inline-end:.5rem}.sm\:pe-3{padding-inline-end:.75rem}.sm\:pe-4{padding-inline-end:1rem}.sm\:pe-5{padding-inline-end:1.25rem}.sm\:pe-6{padding-inline-end:1.5rem}.sm\:pe-7{padding-inline-end:2rem}.sm\:pe-8{padding-inline-end:2.5rem}.sm\:pe-9{padding-inline-end:3rem}.sm\:pb-0{padding-block-end:0}.sm\:pb-1{padding-block-end:.25rem}.sm\:pb-2{padding-block-end:.5rem}.sm\:pb-3{padding-block-end:.75rem}.sm\:pb-4{padding-block-end:1rem}.sm\:pb-5{padding-block-end:1.25rem}.sm\:pb-6{padding-block-end:1.5rem}.sm\:pb-7{padding-block-end:2rem}.sm\:pb-8{padding-block-end:2.5rem}.sm\:pb-9{padding-block-end:3rem}.sm\:ps-0{padding-inline-start:0}.sm\:ps-1{padding-inline-start:.25rem}.sm\:ps-2{padding-inline-start:.5rem}.sm\:ps-3{padding-inline-start:.75rem}.sm\:ps-4{padding-inline-start:1rem}.sm\:ps-5{padding-inline-start:1.25rem}.sm\:ps-6{padding-inline-start:1.5rem}.sm\:ps-7{padding-inline-start:2rem}.sm\:ps-8{padding-inline-start:2.5rem}.sm\:ps-9{padding-inline-start:3rem}.sm\:gap-0{gap:0}.sm\:gap-1{gap:.25rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-5{gap:1.25rem}.sm\:gap-6{gap:1.5rem}.sm\:gap-7{gap:2rem}.sm\:gap-8{gap:2.5rem}.sm\:gap-9{gap:3rem}.sm\:row-gap-0{row-gap:0}.sm\:row-gap-1{row-gap:.25rem}.sm\:row-gap-2{row-gap:.5rem}.sm\:row-gap-3{row-gap:.75rem}.sm\:row-gap-4{row-gap:1rem}.sm\:row-gap-5{row-gap:1.25rem}.sm\:row-gap-6{row-gap:1.5rem}.sm\:row-gap-7{row-gap:2rem}.sm\:row-gap-8{row-gap:2.5rem}.sm\:row-gap-9{row-gap:3rem}.sm\:column-gap-0{-moz-column-gap:0;column-gap:0}.sm\:column-gap-1{-moz-column-gap:.25rem;column-gap:.25rem}.sm\:column-gap-2{-moz-column-gap:.5rem;column-gap:.5rem}.sm\:column-gap-3{-moz-column-gap:.75rem;column-gap:.75rem}.sm\:column-gap-4{-moz-column-gap:1rem;column-gap:1rem}.sm\:column-gap-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.sm\:column-gap-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.sm\:column-gap-7{-moz-column-gap:2rem;column-gap:2rem}.sm\:column-gap-8{-moz-column-gap:2.5rem;column-gap:2.5rem}.sm\:column-gap-9{-moz-column-gap:3rem;column-gap:3rem}}@media (min-width:768px){.md\:d-inline{display:inline}.md\:d-inline-block{display:inline-block}.md\:d-block{display:block}.md\:d-grid{display:grid}.md\:d-inline-grid{display:inline-grid}.md\:d-table{display:table}.md\:d-table-row{display:table-row}.md\:d-table-cell{display:table-cell}.md\:d-flex{display:flex}.md\:d-inline-flex{display:inline-flex}.md\:d-contents{display:contents}.md\:d-flow-root{display:flow-root}.md\:d-none{display:none}.md\:flex-fill{flex:auto}.md\:flex-row{flex-direction:row}.md\:flex-column{flex-direction:column}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:flex-column-reverse{flex-direction:column-reverse}.md\:flex-grow-0{flex-grow:0}.md\:flex-grow-1{flex-grow:1}.md\:flex-shrink-0{flex-shrink:0}.md\:flex-shrink-1{flex-shrink:1}.md\:flex-wrap{flex-wrap:wrap}.md\:flex-nowrap{flex-wrap:nowrap}.md\:flex-wrap-reverse{flex-wrap:wrap-reverse}.md\:justify-content-start{justify-content:flex-start}.md\:justify-content-end{justify-content:flex-end}.md\:justify-content-center{justify-content:center}.md\:justify-content-between{justify-content:space-between}.md\:justify-content-around{justify-content:space-around}.md\:justify-content-evenly{justify-content:space-evenly}.md\:justify-items-start{justify-items:start}.md\:justify-items-end{justify-items:end}.md\:justify-items-center{justify-items:center}.md\:justify-items-stretch{justify-items:stretch}.md\:align-items-start{align-items:flex-start}.md\:align-items-end{align-items:flex-end}.md\:align-items-center{align-items:center}.md\:align-items-baseline{align-items:baseline}.md\:align-items-stretch{align-items:stretch}.md\:align-content-start{align-content:flex-start}.md\:align-content-end{align-content:flex-end}.md\:align-content-center{align-content:center}.md\:align-content-between{align-content:space-between}.md\:align-content-around{align-content:space-around}.md\:align-content-stretch{align-content:stretch}.md\:align-self-auto{align-self:auto}.md\:align-self-start{align-self:flex-start}.md\:align-self-end{align-self:flex-end}.md\:align-self-center{align-self:center}.md\:align-self-baseline{align-self:baseline}.md\:align-self-stretch{align-self:stretch}.md\:place-items-start{place-items:start}.md\:place-items-end{place-items:end}.md\:place-items-center{place-items:center}.md\:place-items-stretch{place-items:stretch stretch}.md\:grid-cols-1{grid-template-columns:1fr}.md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.md\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.md\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.md\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.md\:grid-cols-fill{grid-column:1/-1}.md\:grid-auto-flow-row{grid-auto-flow:row}.md\:grid-auto-flow-column{grid-auto-flow:column}.md\:grid-auto-flow-dense{grid-auto-flow:dense}.md\:order-first{order:-1}.md\:order-0{order:0}.md\:order-1{order:1}.md\:order-2{order:2}.md\:order-3{order:3}.md\:order-4{order:4}.md\:order-5{order:5}.md\:order-last{order:6}.md\:m-0{margin:0}.md\:m-1{margin:.25rem}.md\:m-2{margin:.5rem}.md\:m-3{margin:.75rem}.md\:m-4{margin:1rem}.md\:m-5{margin:1.25rem}.md\:m-6{margin:1.5rem}.md\:m-7{margin:2rem}.md\:m-8{margin:2.5rem}.md\:m-9{margin:3rem}.md\:m-auto{margin:auto}.md\:mx-0{margin-inline:0}.md\:mx-1{margin-inline:.25rem}.md\:mx-2{margin-inline:.5rem}.md\:mx-3{margin-inline:.75rem}.md\:mx-4{margin-inline:1rem}.md\:mx-5{margin-inline:1.25rem}.md\:mx-6{margin-inline:1.5rem}.md\:mx-7{margin-inline:2rem}.md\:mx-8{margin-inline:2.5rem}.md\:mx-9{margin-inline:3rem}.md\:mx-auto{margin-inline:auto}.md\:my-0{margin-block:0}.md\:my-1{margin-block:.25rem}.md\:my-2{margin-block:.5rem}.md\:my-3{margin-block:.75rem}.md\:my-4{margin-block:1rem}.md\:my-5{margin-block:1.25rem}.md\:my-6{margin-block:1.5rem}.md\:my-7{margin-block:2rem}.md\:my-8{margin-block:2.5rem}.md\:my-9{margin-block:3rem}.md\:my-auto{margin-block:auto}.md\:mt-0{margin-block-start:0}.md\:mt-1{margin-block-start:.25rem}.md\:mt-2{margin-block-start:.5rem}.md\:mt-3{margin-block-start:.75rem}.md\:mt-4{margin-block-start:1rem}.md\:mt-5{margin-block-start:1.25rem}.md\:mt-6{margin-block-start:1.5rem}.md\:mt-7{margin-block-start:2rem}.md\:mt-8{margin-block-start:2.5rem}.md\:mt-9{margin-block-start:3rem}.md\:mt-auto{margin-block-start:auto}.md\:me-0{margin-inline-end:0}.md\:me-1{margin-inline-end:.25rem}.md\:me-2{margin-inline-end:.5rem}.md\:me-3{margin-inline-end:.75rem}.md\:me-4{margin-inline-end:1rem}.md\:me-5{margin-inline-end:1.25rem}.md\:me-6{margin-inline-end:1.5rem}.md\:me-7{margin-inline-end:2rem}.md\:me-8{margin-inline-end:2.5rem}.md\:me-9{margin-inline-end:3rem}.md\:me--1{margin-inline-end:-.25rem}.md\:me--2{margin-inline-end:-.5rem}.md\:me-auto{margin-inline-end:auto}.md\:mb-0{margin-block-end:0}.md\:mb-1{margin-block-end:.25rem}.md\:mb-2{margin-block-end:.5rem}.md\:mb-3{margin-block-end:.75rem}.md\:mb-4{margin-block-end:1rem}.md\:mb-5{margin-block-end:1.25rem}.md\:mb-6{margin-block-end:1.5rem}.md\:mb-7{margin-block-end:2rem}.md\:mb-8{margin-block-end:2.5rem}.md\:mb-9{margin-block-end:3rem}.md\:mb-auto{margin-block-end:auto}.md\:ms-0{margin-inline-start:0}.md\:ms-1{margin-inline-start:.25rem}.md\:ms-2{margin-inline-start:.5rem}.md\:ms-3{margin-inline-start:.75rem}.md\:ms-4{margin-inline-start:1rem}.md\:ms-5{margin-inline-start:1.25rem}.md\:ms-6{margin-inline-start:1.5rem}.md\:ms-7{margin-inline-start:2rem}.md\:ms-8{margin-inline-start:2.5rem}.md\:ms-9{margin-inline-start:3rem}.md\:ms--1{margin-inline-start:-.25rem}.md\:ms--2{margin-inline-start:-.5rem}.md\:ms-auto{margin-inline-start:auto}.md\:p-0{padding:0}.md\:p-1{padding:.25rem}.md\:p-2{padding:.5rem}.md\:p-3{padding:.75rem}.md\:p-4{padding:1rem}.md\:p-5{padding:1.25rem}.md\:p-6{padding:1.5rem}.md\:p-7{padding:2rem}.md\:p-8{padding:2.5rem}.md\:p-9{padding:3rem}.md\:px-0{padding-inline:0}.md\:px-1{padding-inline:.25rem}.md\:px-2{padding-inline:.5rem}.md\:px-3{padding-inline:.75rem}.md\:px-4{padding-inline:1rem}.md\:px-5{padding-inline:1.25rem}.md\:px-6{padding-inline:1.5rem}.md\:px-7{padding-inline:2rem}.md\:px-8{padding-inline:2.5rem}.md\:px-9{padding-inline:3rem}.md\:py-0{padding-block:0}.md\:py-1{padding-block:.25rem}.md\:py-2{padding-block:.5rem}.md\:py-3{padding-block:.75rem}.md\:py-4{padding-block:1rem}.md\:py-5{padding-block:1.25rem}.md\:py-6{padding-block:1.5rem}.md\:py-7{padding-block:2rem}.md\:py-8{padding-block:2.5rem}.md\:py-9{padding-block:3rem}.md\:pt-0{padding-block-start:0}.md\:pt-1{padding-block-start:.25rem}.md\:pt-2{padding-block-start:.5rem}.md\:pt-3{padding-block-start:.75rem}.md\:pt-4{padding-block-start:1rem}.md\:pt-5{padding-block-start:1.25rem}.md\:pt-6{padding-block-start:1.5rem}.md\:pt-7{padding-block-start:2rem}.md\:pt-8{padding-block-start:2.5rem}.md\:pt-9{padding-block-start:3rem}.md\:pe-0{padding-inline-end:0}.md\:pe-1{padding-inline-end:.25rem}.md\:pe-2{padding-inline-end:.5rem}.md\:pe-3{padding-inline-end:.75rem}.md\:pe-4{padding-inline-end:1rem}.md\:pe-5{padding-inline-end:1.25rem}.md\:pe-6{padding-inline-end:1.5rem}.md\:pe-7{padding-inline-end:2rem}.md\:pe-8{padding-inline-end:2.5rem}.md\:pe-9{padding-inline-end:3rem}.md\:pb-0{padding-block-end:0}.md\:pb-1{padding-block-end:.25rem}.md\:pb-2{padding-block-end:.5rem}.md\:pb-3{padding-block-end:.75rem}.md\:pb-4{padding-block-end:1rem}.md\:pb-5{padding-block-end:1.25rem}.md\:pb-6{padding-block-end:1.5rem}.md\:pb-7{padding-block-end:2rem}.md\:pb-8{padding-block-end:2.5rem}.md\:pb-9{padding-block-end:3rem}.md\:ps-0{padding-inline-start:0}.md\:ps-1{padding-inline-start:.25rem}.md\:ps-2{padding-inline-start:.5rem}.md\:ps-3{padding-inline-start:.75rem}.md\:ps-4{padding-inline-start:1rem}.md\:ps-5{padding-inline-start:1.25rem}.md\:ps-6{padding-inline-start:1.5rem}.md\:ps-7{padding-inline-start:2rem}.md\:ps-8{padding-inline-start:2.5rem}.md\:ps-9{padding-inline-start:3rem}.md\:gap-0{gap:0}.md\:gap-1{gap:.25rem}.md\:gap-2{gap:.5rem}.md\:gap-3{gap:.75rem}.md\:gap-4{gap:1rem}.md\:gap-5{gap:1.25rem}.md\:gap-6{gap:1.5rem}.md\:gap-7{gap:2rem}.md\:gap-8{gap:2.5rem}.md\:gap-9{gap:3rem}.md\:row-gap-0{row-gap:0}.md\:row-gap-1{row-gap:.25rem}.md\:row-gap-2{row-gap:.5rem}.md\:row-gap-3{row-gap:.75rem}.md\:row-gap-4{row-gap:1rem}.md\:row-gap-5{row-gap:1.25rem}.md\:row-gap-6{row-gap:1.5rem}.md\:row-gap-7{row-gap:2rem}.md\:row-gap-8{row-gap:2.5rem}.md\:row-gap-9{row-gap:3rem}.md\:column-gap-0{-moz-column-gap:0;column-gap:0}.md\:column-gap-1{-moz-column-gap:.25rem;column-gap:.25rem}.md\:column-gap-2{-moz-column-gap:.5rem;column-gap:.5rem}.md\:column-gap-3{-moz-column-gap:.75rem;column-gap:.75rem}.md\:column-gap-4{-moz-column-gap:1rem;column-gap:1rem}.md\:column-gap-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.md\:column-gap-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.md\:column-gap-7{-moz-column-gap:2rem;column-gap:2rem}.md\:column-gap-8{-moz-column-gap:2.5rem;column-gap:2.5rem}.md\:column-gap-9{-moz-column-gap:3rem;column-gap:3rem}}@media (min-width:1024px){.lg\:d-inline{display:inline}.lg\:d-inline-block{display:inline-block}.lg\:d-block{display:block}.lg\:d-grid{display:grid}.lg\:d-inline-grid{display:inline-grid}.lg\:d-table{display:table}.lg\:d-table-row{display:table-row}.lg\:d-table-cell{display:table-cell}.lg\:d-flex{display:flex}.lg\:d-inline-flex{display:inline-flex}.lg\:d-contents{display:contents}.lg\:d-flow-root{display:flow-root}.lg\:d-none{display:none}.lg\:flex-fill{flex:auto}.lg\:flex-row{flex-direction:row}.lg\:flex-column{flex-direction:column}.lg\:flex-row-reverse{flex-direction:row-reverse}.lg\:flex-column-reverse{flex-direction:column-reverse}.lg\:flex-grow-0{flex-grow:0}.lg\:flex-grow-1{flex-grow:1}.lg\:flex-shrink-0{flex-shrink:0}.lg\:flex-shrink-1{flex-shrink:1}.lg\:flex-wrap{flex-wrap:wrap}.lg\:flex-nowrap{flex-wrap:nowrap}.lg\:flex-wrap-reverse{flex-wrap:wrap-reverse}.lg\:justify-content-start{justify-content:flex-start}.lg\:justify-content-end{justify-content:flex-end}.lg\:justify-content-center{justify-content:center}.lg\:justify-content-between{justify-content:space-between}.lg\:justify-content-around{justify-content:space-around}.lg\:justify-content-evenly{justify-content:space-evenly}.lg\:justify-items-start{justify-items:start}.lg\:justify-items-end{justify-items:end}.lg\:justify-items-center{justify-items:center}.lg\:justify-items-stretch{justify-items:stretch}.lg\:align-items-start{align-items:flex-start}.lg\:align-items-end{align-items:flex-end}.lg\:align-items-center{align-items:center}.lg\:align-items-baseline{align-items:baseline}.lg\:align-items-stretch{align-items:stretch}.lg\:align-content-start{align-content:flex-start}.lg\:align-content-end{align-content:flex-end}.lg\:align-content-center{align-content:center}.lg\:align-content-between{align-content:space-between}.lg\:align-content-around{align-content:space-around}.lg\:align-content-stretch{align-content:stretch}.lg\:align-self-auto{align-self:auto}.lg\:align-self-start{align-self:flex-start}.lg\:align-self-end{align-self:flex-end}.lg\:align-self-center{align-self:center}.lg\:align-self-baseline{align-self:baseline}.lg\:align-self-stretch{align-self:stretch}.lg\:place-items-start{place-items:start}.lg\:place-items-end{place-items:end}.lg\:place-items-center{place-items:center}.lg\:place-items-stretch{place-items:stretch stretch}.lg\:grid-cols-1{grid-template-columns:1fr}.lg\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.lg\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.lg\:grid-cols-fill{grid-column:1/-1}.lg\:grid-auto-flow-row{grid-auto-flow:row}.lg\:grid-auto-flow-column{grid-auto-flow:column}.lg\:grid-auto-flow-dense{grid-auto-flow:dense}.lg\:order-first{order:-1}.lg\:order-0{order:0}.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:order-3{order:3}.lg\:order-4{order:4}.lg\:order-5{order:5}.lg\:order-last{order:6}.lg\:m-0{margin:0}.lg\:m-1{margin:.25rem}.lg\:m-2{margin:.5rem}.lg\:m-3{margin:.75rem}.lg\:m-4{margin:1rem}.lg\:m-5{margin:1.25rem}.lg\:m-6{margin:1.5rem}.lg\:m-7{margin:2rem}.lg\:m-8{margin:2.5rem}.lg\:m-9{margin:3rem}.lg\:m-auto{margin:auto}.lg\:mx-0{margin-inline:0}.lg\:mx-1{margin-inline:.25rem}.lg\:mx-2{margin-inline:.5rem}.lg\:mx-3{margin-inline:.75rem}.lg\:mx-4{margin-inline:1rem}.lg\:mx-5{margin-inline:1.25rem}.lg\:mx-6{margin-inline:1.5rem}.lg\:mx-7{margin-inline:2rem}.lg\:mx-8{margin-inline:2.5rem}.lg\:mx-9{margin-inline:3rem}.lg\:mx-auto{margin-inline:auto}.lg\:my-0{margin-block:0}.lg\:my-1{margin-block:.25rem}.lg\:my-2{margin-block:.5rem}.lg\:my-3{margin-block:.75rem}.lg\:my-4{margin-block:1rem}.lg\:my-5{margin-block:1.25rem}.lg\:my-6{margin-block:1.5rem}.lg\:my-7{margin-block:2rem}.lg\:my-8{margin-block:2.5rem}.lg\:my-9{margin-block:3rem}.lg\:my-auto{margin-block:auto}.lg\:mt-0{margin-block-start:0}.lg\:mt-1{margin-block-start:.25rem}.lg\:mt-2{margin-block-start:.5rem}.lg\:mt-3{margin-block-start:.75rem}.lg\:mt-4{margin-block-start:1rem}.lg\:mt-5{margin-block-start:1.25rem}.lg\:mt-6{margin-block-start:1.5rem}.lg\:mt-7{margin-block-start:2rem}.lg\:mt-8{margin-block-start:2.5rem}.lg\:mt-9{margin-block-start:3rem}.lg\:mt-auto{margin-block-start:auto}.lg\:me-0{margin-inline-end:0}.lg\:me-1{margin-inline-end:.25rem}.lg\:me-2{margin-inline-end:.5rem}.lg\:me-3{margin-inline-end:.75rem}.lg\:me-4{margin-inline-end:1rem}.lg\:me-5{margin-inline-end:1.25rem}.lg\:me-6{margin-inline-end:1.5rem}.lg\:me-7{margin-inline-end:2rem}.lg\:me-8{margin-inline-end:2.5rem}.lg\:me-9{margin-inline-end:3rem}.lg\:me--1{margin-inline-end:-.25rem}.lg\:me--2{margin-inline-end:-.5rem}.lg\:me-auto{margin-inline-end:auto}.lg\:mb-0{margin-block-end:0}.lg\:mb-1{margin-block-end:.25rem}.lg\:mb-2{margin-block-end:.5rem}.lg\:mb-3{margin-block-end:.75rem}.lg\:mb-4{margin-block-end:1rem}.lg\:mb-5{margin-block-end:1.25rem}.lg\:mb-6{margin-block-end:1.5rem}.lg\:mb-7{margin-block-end:2rem}.lg\:mb-8{margin-block-end:2.5rem}.lg\:mb-9{margin-block-end:3rem}.lg\:mb-auto{margin-block-end:auto}.lg\:ms-0{margin-inline-start:0}.lg\:ms-1{margin-inline-start:.25rem}.lg\:ms-2{margin-inline-start:.5rem}.lg\:ms-3{margin-inline-start:.75rem}.lg\:ms-4{margin-inline-start:1rem}.lg\:ms-5{margin-inline-start:1.25rem}.lg\:ms-6{margin-inline-start:1.5rem}.lg\:ms-7{margin-inline-start:2rem}.lg\:ms-8{margin-inline-start:2.5rem}.lg\:ms-9{margin-inline-start:3rem}.lg\:ms--1{margin-inline-start:-.25rem}.lg\:ms--2{margin-inline-start:-.5rem}.lg\:ms-auto{margin-inline-start:auto}.lg\:p-0{padding:0}.lg\:p-1{padding:.25rem}.lg\:p-2{padding:.5rem}.lg\:p-3{padding:.75rem}.lg\:p-4{padding:1rem}.lg\:p-5{padding:1.25rem}.lg\:p-6{padding:1.5rem}.lg\:p-7{padding:2rem}.lg\:p-8{padding:2.5rem}.lg\:p-9{padding:3rem}.lg\:px-0{padding-inline:0}.lg\:px-1{padding-inline:.25rem}.lg\:px-2{padding-inline:.5rem}.lg\:px-3{padding-inline:.75rem}.lg\:px-4{padding-inline:1rem}.lg\:px-5{padding-inline:1.25rem}.lg\:px-6{padding-inline:1.5rem}.lg\:px-7{padding-inline:2rem}.lg\:px-8{padding-inline:2.5rem}.lg\:px-9{padding-inline:3rem}.lg\:py-0{padding-block:0}.lg\:py-1{padding-block:.25rem}.lg\:py-2{padding-block:.5rem}.lg\:py-3{padding-block:.75rem}.lg\:py-4{padding-block:1rem}.lg\:py-5{padding-block:1.25rem}.lg\:py-6{padding-block:1.5rem}.lg\:py-7{padding-block:2rem}.lg\:py-8{padding-block:2.5rem}.lg\:py-9{padding-block:3rem}.lg\:pt-0{padding-block-start:0}.lg\:pt-1{padding-block-start:.25rem}.lg\:pt-2{padding-block-start:.5rem}.lg\:pt-3{padding-block-start:.75rem}.lg\:pt-4{padding-block-start:1rem}.lg\:pt-5{padding-block-start:1.25rem}.lg\:pt-6{padding-block-start:1.5rem}.lg\:pt-7{padding-block-start:2rem}.lg\:pt-8{padding-block-start:2.5rem}.lg\:pt-9{padding-block-start:3rem}.lg\:pe-0{padding-inline-end:0}.lg\:pe-1{padding-inline-end:.25rem}.lg\:pe-2{padding-inline-end:.5rem}.lg\:pe-3{padding-inline-end:.75rem}.lg\:pe-4{padding-inline-end:1rem}.lg\:pe-5{padding-inline-end:1.25rem}.lg\:pe-6{padding-inline-end:1.5rem}.lg\:pe-7{padding-inline-end:2rem}.lg\:pe-8{padding-inline-end:2.5rem}.lg\:pe-9{padding-inline-end:3rem}.lg\:pb-0{padding-block-end:0}.lg\:pb-1{padding-block-end:.25rem}.lg\:pb-2{padding-block-end:.5rem}.lg\:pb-3{padding-block-end:.75rem}.lg\:pb-4{padding-block-end:1rem}.lg\:pb-5{padding-block-end:1.25rem}.lg\:pb-6{padding-block-end:1.5rem}.lg\:pb-7{padding-block-end:2rem}.lg\:pb-8{padding-block-end:2.5rem}.lg\:pb-9{padding-block-end:3rem}.lg\:ps-0{padding-inline-start:0}.lg\:ps-1{padding-inline-start:.25rem}.lg\:ps-2{padding-inline-start:.5rem}.lg\:ps-3{padding-inline-start:.75rem}.lg\:ps-4{padding-inline-start:1rem}.lg\:ps-5{padding-inline-start:1.25rem}.lg\:ps-6{padding-inline-start:1.5rem}.lg\:ps-7{padding-inline-start:2rem}.lg\:ps-8{padding-inline-start:2.5rem}.lg\:ps-9{padding-inline-start:3rem}.lg\:gap-0{gap:0}.lg\:gap-1{gap:.25rem}.lg\:gap-2{gap:.5rem}.lg\:gap-3{gap:.75rem}.lg\:gap-4{gap:1rem}.lg\:gap-5{gap:1.25rem}.lg\:gap-6{gap:1.5rem}.lg\:gap-7{gap:2rem}.lg\:gap-8{gap:2.5rem}.lg\:gap-9{gap:3rem}.lg\:row-gap-0{row-gap:0}.lg\:row-gap-1{row-gap:.25rem}.lg\:row-gap-2{row-gap:.5rem}.lg\:row-gap-3{row-gap:.75rem}.lg\:row-gap-4{row-gap:1rem}.lg\:row-gap-5{row-gap:1.25rem}.lg\:row-gap-6{row-gap:1.5rem}.lg\:row-gap-7{row-gap:2rem}.lg\:row-gap-8{row-gap:2.5rem}.lg\:row-gap-9{row-gap:3rem}.lg\:column-gap-0{-moz-column-gap:0;column-gap:0}.lg\:column-gap-1{-moz-column-gap:.25rem;column-gap:.25rem}.lg\:column-gap-2{-moz-column-gap:.5rem;column-gap:.5rem}.lg\:column-gap-3{-moz-column-gap:.75rem;column-gap:.75rem}.lg\:column-gap-4{-moz-column-gap:1rem;column-gap:1rem}.lg\:column-gap-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.lg\:column-gap-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.lg\:column-gap-7{-moz-column-gap:2rem;column-gap:2rem}.lg\:column-gap-8{-moz-column-gap:2.5rem;column-gap:2.5rem}.lg\:column-gap-9{-moz-column-gap:3rem;column-gap:3rem}}@media (min-width:1280px){.xl\:d-inline{display:inline}.xl\:d-inline-block{display:inline-block}.xl\:d-block{display:block}.xl\:d-grid{display:grid}.xl\:d-inline-grid{display:inline-grid}.xl\:d-table{display:table}.xl\:d-table-row{display:table-row}.xl\:d-table-cell{display:table-cell}.xl\:d-flex{display:flex}.xl\:d-inline-flex{display:inline-flex}.xl\:d-contents{display:contents}.xl\:d-flow-root{display:flow-root}.xl\:d-none{display:none}.xl\:flex-fill{flex:auto}.xl\:flex-row{flex-direction:row}.xl\:flex-column{flex-direction:column}.xl\:flex-row-reverse{flex-direction:row-reverse}.xl\:flex-column-reverse{flex-direction:column-reverse}.xl\:flex-grow-0{flex-grow:0}.xl\:flex-grow-1{flex-grow:1}.xl\:flex-shrink-0{flex-shrink:0}.xl\:flex-shrink-1{flex-shrink:1}.xl\:flex-wrap{flex-wrap:wrap}.xl\:flex-nowrap{flex-wrap:nowrap}.xl\:flex-wrap-reverse{flex-wrap:wrap-reverse}.xl\:justify-content-start{justify-content:flex-start}.xl\:justify-content-end{justify-content:flex-end}.xl\:justify-content-center{justify-content:center}.xl\:justify-content-between{justify-content:space-between}.xl\:justify-content-around{justify-content:space-around}.xl\:justify-content-evenly{justify-content:space-evenly}.xl\:justify-items-start{justify-items:start}.xl\:justify-items-end{justify-items:end}.xl\:justify-items-center{justify-items:center}.xl\:justify-items-stretch{justify-items:stretch}.xl\:align-items-start{align-items:flex-start}.xl\:align-items-end{align-items:flex-end}.xl\:align-items-center{align-items:center}.xl\:align-items-baseline{align-items:baseline}.xl\:align-items-stretch{align-items:stretch}.xl\:align-content-start{align-content:flex-start}.xl\:align-content-end{align-content:flex-end}.xl\:align-content-center{align-content:center}.xl\:align-content-between{align-content:space-between}.xl\:align-content-around{align-content:space-around}.xl\:align-content-stretch{align-content:stretch}.xl\:align-self-auto{align-self:auto}.xl\:align-self-start{align-self:flex-start}.xl\:align-self-end{align-self:flex-end}.xl\:align-self-center{align-self:center}.xl\:align-self-baseline{align-self:baseline}.xl\:align-self-stretch{align-self:stretch}.xl\:place-items-start{place-items:start}.xl\:place-items-end{place-items:end}.xl\:place-items-center{place-items:center}.xl\:place-items-stretch{place-items:stretch stretch}.xl\:grid-cols-1{grid-template-columns:1fr}.xl\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.xl\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.xl\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.xl\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.xl\:grid-cols-fill{grid-column:1/-1}.xl\:grid-auto-flow-row{grid-auto-flow:row}.xl\:grid-auto-flow-column{grid-auto-flow:column}.xl\:grid-auto-flow-dense{grid-auto-flow:dense}.xl\:order-first{order:-1}.xl\:order-0{order:0}.xl\:order-1{order:1}.xl\:order-2{order:2}.xl\:order-3{order:3}.xl\:order-4{order:4}.xl\:order-5{order:5}.xl\:order-last{order:6}.xl\:m-0{margin:0}.xl\:m-1{margin:.25rem}.xl\:m-2{margin:.5rem}.xl\:m-3{margin:.75rem}.xl\:m-4{margin:1rem}.xl\:m-5{margin:1.25rem}.xl\:m-6{margin:1.5rem}.xl\:m-7{margin:2rem}.xl\:m-8{margin:2.5rem}.xl\:m-9{margin:3rem}.xl\:m-auto{margin:auto}.xl\:mx-0{margin-inline:0}.xl\:mx-1{margin-inline:.25rem}.xl\:mx-2{margin-inline:.5rem}.xl\:mx-3{margin-inline:.75rem}.xl\:mx-4{margin-inline:1rem}.xl\:mx-5{margin-inline:1.25rem}.xl\:mx-6{margin-inline:1.5rem}.xl\:mx-7{margin-inline:2rem}.xl\:mx-8{margin-inline:2.5rem}.xl\:mx-9{margin-inline:3rem}.xl\:mx-auto{margin-inline:auto}.xl\:my-0{margin-block:0}.xl\:my-1{margin-block:.25rem}.xl\:my-2{margin-block:.5rem}.xl\:my-3{margin-block:.75rem}.xl\:my-4{margin-block:1rem}.xl\:my-5{margin-block:1.25rem}.xl\:my-6{margin-block:1.5rem}.xl\:my-7{margin-block:2rem}.xl\:my-8{margin-block:2.5rem}.xl\:my-9{margin-block:3rem}.xl\:my-auto{margin-block:auto}.xl\:mt-0{margin-block-start:0}.xl\:mt-1{margin-block-start:.25rem}.xl\:mt-2{margin-block-start:.5rem}.xl\:mt-3{margin-block-start:.75rem}.xl\:mt-4{margin-block-start:1rem}.xl\:mt-5{margin-block-start:1.25rem}.xl\:mt-6{margin-block-start:1.5rem}.xl\:mt-7{margin-block-start:2rem}.xl\:mt-8{margin-block-start:2.5rem}.xl\:mt-9{margin-block-start:3rem}.xl\:mt-auto{margin-block-start:auto}.xl\:me-0{margin-inline-end:0}.xl\:me-1{margin-inline-end:.25rem}.xl\:me-2{margin-inline-end:.5rem}.xl\:me-3{margin-inline-end:.75rem}.xl\:me-4{margin-inline-end:1rem}.xl\:me-5{margin-inline-end:1.25rem}.xl\:me-6{margin-inline-end:1.5rem}.xl\:me-7{margin-inline-end:2rem}.xl\:me-8{margin-inline-end:2.5rem}.xl\:me-9{margin-inline-end:3rem}.xl\:me--1{margin-inline-end:-.25rem}.xl\:me--2{margin-inline-end:-.5rem}.xl\:me-auto{margin-inline-end:auto}.xl\:mb-0{margin-block-end:0}.xl\:mb-1{margin-block-end:.25rem}.xl\:mb-2{margin-block-end:.5rem}.xl\:mb-3{margin-block-end:.75rem}.xl\:mb-4{margin-block-end:1rem}.xl\:mb-5{margin-block-end:1.25rem}.xl\:mb-6{margin-block-end:1.5rem}.xl\:mb-7{margin-block-end:2rem}.xl\:mb-8{margin-block-end:2.5rem}.xl\:mb-9{margin-block-end:3rem}.xl\:mb-auto{margin-block-end:auto}.xl\:ms-0{margin-inline-start:0}.xl\:ms-1{margin-inline-start:.25rem}.xl\:ms-2{margin-inline-start:.5rem}.xl\:ms-3{margin-inline-start:.75rem}.xl\:ms-4{margin-inline-start:1rem}.xl\:ms-5{margin-inline-start:1.25rem}.xl\:ms-6{margin-inline-start:1.5rem}.xl\:ms-7{margin-inline-start:2rem}.xl\:ms-8{margin-inline-start:2.5rem}.xl\:ms-9{margin-inline-start:3rem}.xl\:ms--1{margin-inline-start:-.25rem}.xl\:ms--2{margin-inline-start:-.5rem}.xl\:ms-auto{margin-inline-start:auto}.xl\:p-0{padding:0}.xl\:p-1{padding:.25rem}.xl\:p-2{padding:.5rem}.xl\:p-3{padding:.75rem}.xl\:p-4{padding:1rem}.xl\:p-5{padding:1.25rem}.xl\:p-6{padding:1.5rem}.xl\:p-7{padding:2rem}.xl\:p-8{padding:2.5rem}.xl\:p-9{padding:3rem}.xl\:px-0{padding-inline:0}.xl\:px-1{padding-inline:.25rem}.xl\:px-2{padding-inline:.5rem}.xl\:px-3{padding-inline:.75rem}.xl\:px-4{padding-inline:1rem}.xl\:px-5{padding-inline:1.25rem}.xl\:px-6{padding-inline:1.5rem}.xl\:px-7{padding-inline:2rem}.xl\:px-8{padding-inline:2.5rem}.xl\:px-9{padding-inline:3rem}.xl\:py-0{padding-block:0}.xl\:py-1{padding-block:.25rem}.xl\:py-2{padding-block:.5rem}.xl\:py-3{padding-block:.75rem}.xl\:py-4{padding-block:1rem}.xl\:py-5{padding-block:1.25rem}.xl\:py-6{padding-block:1.5rem}.xl\:py-7{padding-block:2rem}.xl\:py-8{padding-block:2.5rem}.xl\:py-9{padding-block:3rem}.xl\:pt-0{padding-block-start:0}.xl\:pt-1{padding-block-start:.25rem}.xl\:pt-2{padding-block-start:.5rem}.xl\:pt-3{padding-block-start:.75rem}.xl\:pt-4{padding-block-start:1rem}.xl\:pt-5{padding-block-start:1.25rem}.xl\:pt-6{padding-block-start:1.5rem}.xl\:pt-7{padding-block-start:2rem}.xl\:pt-8{padding-block-start:2.5rem}.xl\:pt-9{padding-block-start:3rem}.xl\:pe-0{padding-inline-end:0}.xl\:pe-1{padding-inline-end:.25rem}.xl\:pe-2{padding-inline-end:.5rem}.xl\:pe-3{padding-inline-end:.75rem}.xl\:pe-4{padding-inline-end:1rem}.xl\:pe-5{padding-inline-end:1.25rem}.xl\:pe-6{padding-inline-end:1.5rem}.xl\:pe-7{padding-inline-end:2rem}.xl\:pe-8{padding-inline-end:2.5rem}.xl\:pe-9{padding-inline-end:3rem}.xl\:pb-0{padding-block-end:0}.xl\:pb-1{padding-block-end:.25rem}.xl\:pb-2{padding-block-end:.5rem}.xl\:pb-3{padding-block-end:.75rem}.xl\:pb-4{padding-block-end:1rem}.xl\:pb-5{padding-block-end:1.25rem}.xl\:pb-6{padding-block-end:1.5rem}.xl\:pb-7{padding-block-end:2rem}.xl\:pb-8{padding-block-end:2.5rem}.xl\:pb-9{padding-block-end:3rem}.xl\:ps-0{padding-inline-start:0}.xl\:ps-1{padding-inline-start:.25rem}.xl\:ps-2{padding-inline-start:.5rem}.xl\:ps-3{padding-inline-start:.75rem}.xl\:ps-4{padding-inline-start:1rem}.xl\:ps-5{padding-inline-start:1.25rem}.xl\:ps-6{padding-inline-start:1.5rem}.xl\:ps-7{padding-inline-start:2rem}.xl\:ps-8{padding-inline-start:2.5rem}.xl\:ps-9{padding-inline-start:3rem}.xl\:gap-0{gap:0}.xl\:gap-1{gap:.25rem}.xl\:gap-2{gap:.5rem}.xl\:gap-3{gap:.75rem}.xl\:gap-4{gap:1rem}.xl\:gap-5{gap:1.25rem}.xl\:gap-6{gap:1.5rem}.xl\:gap-7{gap:2rem}.xl\:gap-8{gap:2.5rem}.xl\:gap-9{gap:3rem}.xl\:row-gap-0{row-gap:0}.xl\:row-gap-1{row-gap:.25rem}.xl\:row-gap-2{row-gap:.5rem}.xl\:row-gap-3{row-gap:.75rem}.xl\:row-gap-4{row-gap:1rem}.xl\:row-gap-5{row-gap:1.25rem}.xl\:row-gap-6{row-gap:1.5rem}.xl\:row-gap-7{row-gap:2rem}.xl\:row-gap-8{row-gap:2.5rem}.xl\:row-gap-9{row-gap:3rem}.xl\:column-gap-0{-moz-column-gap:0;column-gap:0}.xl\:column-gap-1{-moz-column-gap:.25rem;column-gap:.25rem}.xl\:column-gap-2{-moz-column-gap:.5rem;column-gap:.5rem}.xl\:column-gap-3{-moz-column-gap:.75rem;column-gap:.75rem}.xl\:column-gap-4{-moz-column-gap:1rem;column-gap:1rem}.xl\:column-gap-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.xl\:column-gap-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.xl\:column-gap-7{-moz-column-gap:2rem;column-gap:2rem}.xl\:column-gap-8{-moz-column-gap:2.5rem;column-gap:2.5rem}.xl\:column-gap-9{-moz-column-gap:3rem;column-gap:3rem}}@media (min-width:1536px){.\32 xl\:d-inline{display:inline}.\32 xl\:d-inline-block{display:inline-block}.\32 xl\:d-block{display:block}.\32 xl\:d-grid{display:grid}.\32 xl\:d-inline-grid{display:inline-grid}.\32 xl\:d-table{display:table}.\32 xl\:d-table-row{display:table-row}.\32 xl\:d-table-cell{display:table-cell}.\32 xl\:d-flex{display:flex}.\32 xl\:d-inline-flex{display:inline-flex}.\32 xl\:d-contents{display:contents}.\32 xl\:d-flow-root{display:flow-root}.\32 xl\:d-none{display:none}.\32 xl\:flex-fill{flex:auto}.\32 xl\:flex-row{flex-direction:row}.\32 xl\:flex-column{flex-direction:column}.\32 xl\:flex-row-reverse{flex-direction:row-reverse}.\32 xl\:flex-column-reverse{flex-direction:column-reverse}.\32 xl\:flex-grow-0{flex-grow:0}.\32 xl\:flex-grow-1{flex-grow:1}.\32 xl\:flex-shrink-0{flex-shrink:0}.\32 xl\:flex-shrink-1{flex-shrink:1}.\32 xl\:flex-wrap{flex-wrap:wrap}.\32 xl\:flex-nowrap{flex-wrap:nowrap}.\32 xl\:flex-wrap-reverse{flex-wrap:wrap-reverse}.\32 xl\:justify-content-start{justify-content:flex-start}.\32 xl\:justify-content-end{justify-content:flex-end}.\32 xl\:justify-content-center{justify-content:center}.\32 xl\:justify-content-between{justify-content:space-between}.\32 xl\:justify-content-around{justify-content:space-around}.\32 xl\:justify-content-evenly{justify-content:space-evenly}.\32 xl\:justify-items-start{justify-items:start}.\32 xl\:justify-items-end{justify-items:end}.\32 xl\:justify-items-center{justify-items:center}.\32 xl\:justify-items-stretch{justify-items:stretch}.\32 xl\:align-items-start{align-items:flex-start}.\32 xl\:align-items-end{align-items:flex-end}.\32 xl\:align-items-center{align-items:center}.\32 xl\:align-items-baseline{align-items:baseline}.\32 xl\:align-items-stretch{align-items:stretch}.\32 xl\:align-content-start{align-content:flex-start}.\32 xl\:align-content-end{align-content:flex-end}.\32 xl\:align-content-center{align-content:center}.\32 xl\:align-content-between{align-content:space-between}.\32 xl\:align-content-around{align-content:space-around}.\32 xl\:align-content-stretch{align-content:stretch}.\32 xl\:align-self-auto{align-self:auto}.\32 xl\:align-self-start{align-self:flex-start}.\32 xl\:align-self-end{align-self:flex-end}.\32 xl\:align-self-center{align-self:center}.\32 xl\:align-self-baseline{align-self:baseline}.\32 xl\:align-self-stretch{align-self:stretch}.\32 xl\:place-items-start{place-items:start}.\32 xl\:place-items-end{place-items:end}.\32 xl\:place-items-center{place-items:center}.\32 xl\:place-items-stretch{place-items:stretch stretch}.\32 xl\:grid-cols-1{grid-template-columns:1fr}.\32 xl\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.\32 xl\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.\32 xl\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.\32 xl\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.\32 xl\:grid-cols-fill{grid-column:1/-1}.\32 xl\:grid-auto-flow-row{grid-auto-flow:row}.\32 xl\:grid-auto-flow-column{grid-auto-flow:column}.\32 xl\:grid-auto-flow-dense{grid-auto-flow:dense}.\32 xl\:order-first{order:-1}.\32 xl\:order-0{order:0}.\32 xl\:order-1{order:1}.\32 xl\:order-2{order:2}.\32 xl\:order-3{order:3}.\32 xl\:order-4{order:4}.\32 xl\:order-5{order:5}.\32 xl\:order-last{order:6}.\32 xl\:m-0{margin:0}.\32 xl\:m-1{margin:.25rem}.\32 xl\:m-2{margin:.5rem}.\32 xl\:m-3{margin:.75rem}.\32 xl\:m-4{margin:1rem}.\32 xl\:m-5{margin:1.25rem}.\32 xl\:m-6{margin:1.5rem}.\32 xl\:m-7{margin:2rem}.\32 xl\:m-8{margin:2.5rem}.\32 xl\:m-9{margin:3rem}.\32 xl\:m-auto{margin:auto}.\32 xl\:mx-0{margin-inline:0}.\32 xl\:mx-1{margin-inline:.25rem}.\32 xl\:mx-2{margin-inline:.5rem}.\32 xl\:mx-3{margin-inline:.75rem}.\32 xl\:mx-4{margin-inline:1rem}.\32 xl\:mx-5{margin-inline:1.25rem}.\32 xl\:mx-6{margin-inline:1.5rem}.\32 xl\:mx-7{margin-inline:2rem}.\32 xl\:mx-8{margin-inline:2.5rem}.\32 xl\:mx-9{margin-inline:3rem}.\32 xl\:mx-auto{margin-inline:auto}.\32 xl\:my-0{margin-block:0}.\32 xl\:my-1{margin-block:.25rem}.\32 xl\:my-2{margin-block:.5rem}.\32 xl\:my-3{margin-block:.75rem}.\32 xl\:my-4{margin-block:1rem}.\32 xl\:my-5{margin-block:1.25rem}.\32 xl\:my-6{margin-block:1.5rem}.\32 xl\:my-7{margin-block:2rem}.\32 xl\:my-8{margin-block:2.5rem}.\32 xl\:my-9{margin-block:3rem}.\32 xl\:my-auto{margin-block:auto}.\32 xl\:mt-0{margin-block-start:0}.\32 xl\:mt-1{margin-block-start:.25rem}.\32 xl\:mt-2{margin-block-start:.5rem}.\32 xl\:mt-3{margin-block-start:.75rem}.\32 xl\:mt-4{margin-block-start:1rem}.\32 xl\:mt-5{margin-block-start:1.25rem}.\32 xl\:mt-6{margin-block-start:1.5rem}.\32 xl\:mt-7{margin-block-start:2rem}.\32 xl\:mt-8{margin-block-start:2.5rem}.\32 xl\:mt-9{margin-block-start:3rem}.\32 xl\:mt-auto{margin-block-start:auto}.\32 xl\:me-0{margin-inline-end:0}.\32 xl\:me-1{margin-inline-end:.25rem}.\32 xl\:me-2{margin-inline-end:.5rem}.\32 xl\:me-3{margin-inline-end:.75rem}.\32 xl\:me-4{margin-inline-end:1rem}.\32 xl\:me-5{margin-inline-end:1.25rem}.\32 xl\:me-6{margin-inline-end:1.5rem}.\32 xl\:me-7{margin-inline-end:2rem}.\32 xl\:me-8{margin-inline-end:2.5rem}.\32 xl\:me-9{margin-inline-end:3rem}.\32 xl\:me--1{margin-inline-end:-.25rem}.\32 xl\:me--2{margin-inline-end:-.5rem}.\32 xl\:me-auto{margin-inline-end:auto}.\32 xl\:mb-0{margin-block-end:0}.\32 xl\:mb-1{margin-block-end:.25rem}.\32 xl\:mb-2{margin-block-end:.5rem}.\32 xl\:mb-3{margin-block-end:.75rem}.\32 xl\:mb-4{margin-block-end:1rem}.\32 xl\:mb-5{margin-block-end:1.25rem}.\32 xl\:mb-6{margin-block-end:1.5rem}.\32 xl\:mb-7{margin-block-end:2rem}.\32 xl\:mb-8{margin-block-end:2.5rem}.\32 xl\:mb-9{margin-block-end:3rem}.\32 xl\:mb-auto{margin-block-end:auto}.\32 xl\:ms-0{margin-inline-start:0}.\32 xl\:ms-1{margin-inline-start:.25rem}.\32 xl\:ms-2{margin-inline-start:.5rem}.\32 xl\:ms-3{margin-inline-start:.75rem}.\32 xl\:ms-4{margin-inline-start:1rem}.\32 xl\:ms-5{margin-inline-start:1.25rem}.\32 xl\:ms-6{margin-inline-start:1.5rem}.\32 xl\:ms-7{margin-inline-start:2rem}.\32 xl\:ms-8{margin-inline-start:2.5rem}.\32 xl\:ms-9{margin-inline-start:3rem}.\32 xl\:ms--1{margin-inline-start:-.25rem}.\32 xl\:ms--2{margin-inline-start:-.5rem}.\32 xl\:ms-auto{margin-inline-start:auto}.\32 xl\:p-0{padding:0}.\32 xl\:p-1{padding:.25rem}.\32 xl\:p-2{padding:.5rem}.\32 xl\:p-3{padding:.75rem}.\32 xl\:p-4{padding:1rem}.\32 xl\:p-5{padding:1.25rem}.\32 xl\:p-6{padding:1.5rem}.\32 xl\:p-7{padding:2rem}.\32 xl\:p-8{padding:2.5rem}.\32 xl\:p-9{padding:3rem}.\32 xl\:px-0{padding-inline:0}.\32 xl\:px-1{padding-inline:.25rem}.\32 xl\:px-2{padding-inline:.5rem}.\32 xl\:px-3{padding-inline:.75rem}.\32 xl\:px-4{padding-inline:1rem}.\32 xl\:px-5{padding-inline:1.25rem}.\32 xl\:px-6{padding-inline:1.5rem}.\32 xl\:px-7{padding-inline:2rem}.\32 xl\:px-8{padding-inline:2.5rem}.\32 xl\:px-9{padding-inline:3rem}.\32 xl\:py-0{padding-block:0}.\32 xl\:py-1{padding-block:.25rem}.\32 xl\:py-2{padding-block:.5rem}.\32 xl\:py-3{padding-block:.75rem}.\32 xl\:py-4{padding-block:1rem}.\32 xl\:py-5{padding-block:1.25rem}.\32 xl\:py-6{padding-block:1.5rem}.\32 xl\:py-7{padding-block:2rem}.\32 xl\:py-8{padding-block:2.5rem}.\32 xl\:py-9{padding-block:3rem}.\32 xl\:pt-0{padding-block-start:0}.\32 xl\:pt-1{padding-block-start:.25rem}.\32 xl\:pt-2{padding-block-start:.5rem}.\32 xl\:pt-3{padding-block-start:.75rem}.\32 xl\:pt-4{padding-block-start:1rem}.\32 xl\:pt-5{padding-block-start:1.25rem}.\32 xl\:pt-6{padding-block-start:1.5rem}.\32 xl\:pt-7{padding-block-start:2rem}.\32 xl\:pt-8{padding-block-start:2.5rem}.\32 xl\:pt-9{padding-block-start:3rem}.\32 xl\:pe-0{padding-inline-end:0}.\32 xl\:pe-1{padding-inline-end:.25rem}.\32 xl\:pe-2{padding-inline-end:.5rem}.\32 xl\:pe-3{padding-inline-end:.75rem}.\32 xl\:pe-4{padding-inline-end:1rem}.\32 xl\:pe-5{padding-inline-end:1.25rem}.\32 xl\:pe-6{padding-inline-end:1.5rem}.\32 xl\:pe-7{padding-inline-end:2rem}.\32 xl\:pe-8{padding-inline-end:2.5rem}.\32 xl\:pe-9{padding-inline-end:3rem}.\32 xl\:pb-0{padding-block-end:0}.\32 xl\:pb-1{padding-block-end:.25rem}.\32 xl\:pb-2{padding-block-end:.5rem}.\32 xl\:pb-3{padding-block-end:.75rem}.\32 xl\:pb-4{padding-block-end:1rem}.\32 xl\:pb-5{padding-block-end:1.25rem}.\32 xl\:pb-6{padding-block-end:1.5rem}.\32 xl\:pb-7{padding-block-end:2rem}.\32 xl\:pb-8{padding-block-end:2.5rem}.\32 xl\:pb-9{padding-block-end:3rem}.\32 xl\:ps-0{padding-inline-start:0}.\32 xl\:ps-1{padding-inline-start:.25rem}.\32 xl\:ps-2{padding-inline-start:.5rem}.\32 xl\:ps-3{padding-inline-start:.75rem}.\32 xl\:ps-4{padding-inline-start:1rem}.\32 xl\:ps-5{padding-inline-start:1.25rem}.\32 xl\:ps-6{padding-inline-start:1.5rem}.\32 xl\:ps-7{padding-inline-start:2rem}.\32 xl\:ps-8{padding-inline-start:2.5rem}.\32 xl\:ps-9{padding-inline-start:3rem}.\32 xl\:gap-0{gap:0}.\32 xl\:gap-1{gap:.25rem}.\32 xl\:gap-2{gap:.5rem}.\32 xl\:gap-3{gap:.75rem}.\32 xl\:gap-4{gap:1rem}.\32 xl\:gap-5{gap:1.25rem}.\32 xl\:gap-6{gap:1.5rem}.\32 xl\:gap-7{gap:2rem}.\32 xl\:gap-8{gap:2.5rem}.\32 xl\:gap-9{gap:3rem}.\32 xl\:row-gap-0{row-gap:0}.\32 xl\:row-gap-1{row-gap:.25rem}.\32 xl\:row-gap-2{row-gap:.5rem}.\32 xl\:row-gap-3{row-gap:.75rem}.\32 xl\:row-gap-4{row-gap:1rem}.\32 xl\:row-gap-5{row-gap:1.25rem}.\32 xl\:row-gap-6{row-gap:1.5rem}.\32 xl\:row-gap-7{row-gap:2rem}.\32 xl\:row-gap-8{row-gap:2.5rem}.\32 xl\:row-gap-9{row-gap:3rem}.\32 xl\:column-gap-0{-moz-column-gap:0;column-gap:0}.\32 xl\:column-gap-1{-moz-column-gap:.25rem;column-gap:.25rem}.\32 xl\:column-gap-2{-moz-column-gap:.5rem;column-gap:.5rem}.\32 xl\:column-gap-3{-moz-column-gap:.75rem;column-gap:.75rem}.\32 xl\:column-gap-4{-moz-column-gap:1rem;column-gap:1rem}.\32 xl\:column-gap-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.\32 xl\:column-gap-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.\32 xl\:column-gap-7{-moz-column-gap:2rem;column-gap:2rem}.\32 xl\:column-gap-8{-moz-column-gap:2.5rem;column-gap:2.5rem}.\32 xl\:column-gap-9{-moz-column-gap:3rem;column-gap:3rem}}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:1024px;--bs-breakpoint-xl:1280px;--bs-breakpoint-2xl:1536px}
+@layer layout{.container,.container-fluid,.\32 xl\:container,.xl\:container,.lg\:container,.md\:container,.sm\:container{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-inline:calc(var(--bs-gutter-x) * .5);margin-inline:auto}@media (width>=576px){.sm\:container,.container{max-width:540px}}@media (width>=768px){.md\:container,.sm\:container,.container{max-width:720px}}@media (width>=1024px){.lg\:container,.md\:container,.sm\:container,.container{max-width:960px}}@media (width>=1280px){.xl\:container,.lg\:container,.md\:container,.sm\:container,.container{max-width:1200px}}@media (width>=1536px){.\32 xl\:container,.xl\:container,.lg\:container,.md\:container,.sm\:container,.container{max-width:1440px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;margin-inline:calc(-.5 * var(--bs-gutter-x));margin-top:calc(-1 * var(--bs-gutter-y));flex-wrap:wrap;display:flex}.row>*{width:100%;max-width:100%;padding-inline:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y);flex-shrink:0}.col{flex:1 0 0}.row-cols-auto>*{flex:none;width:auto}.row-cols-1>*{flex:none;width:100%}.row-cols-2>*{flex:none;width:50%}.row-cols-3>*{flex:none;width:33.3333%}.row-cols-4>*{flex:none;width:25%}.row-cols-5>*{flex:none;width:20%}.row-cols-6>*{flex:none;width:16.6667%}.col-auto{flex:none;width:auto}.col-1{flex:none;width:8.33333%}.col-2{flex:none;width:16.6667%}.col-3{flex:none;width:25%}.col-4{flex:none;width:33.3333%}.col-5{flex:none;width:41.6667%}.col-6{flex:none;width:50%}.col-7{flex:none;width:58.3333%}.col-8{flex:none;width:66.6667%}.col-9{flex:none;width:75%}.col-10{flex:none;width:83.3333%}.col-11{flex:none;width:91.6667%}.col-12{flex:none;width:100%}.offset-1{margin-inline-start:8.33333%}.offset-2{margin-inline-start:16.6667%}.offset-3{margin-inline-start:25%}.offset-4{margin-inline-start:33.3333%}.offset-5{margin-inline-start:41.6667%}.offset-6{margin-inline-start:50%}.offset-7{margin-inline-start:58.3333%}.offset-8{margin-inline-start:66.6667%}.offset-9{margin-inline-start:75%}.offset-10{margin-inline-start:83.3333%}.offset-11{margin-inline-start:91.6667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:.25rem}.g-1,.gy-1{--bs-gutter-y:.25rem}.g-2,.gx-2{--bs-gutter-x:.5rem}.g-2,.gy-2{--bs-gutter-y:.5rem}.g-3,.gx-3{--bs-gutter-x:.75rem}.g-3,.gy-3{--bs-gutter-y:.75rem}.g-4,.gx-4{--bs-gutter-x:1rem}.g-4,.gy-4{--bs-gutter-y:1rem}.g-5,.gx-5{--bs-gutter-x:1.25rem}.g-5,.gy-5{--bs-gutter-y:1.25rem}.g-6,.gx-6{--bs-gutter-x:1.5rem}.g-6,.gy-6{--bs-gutter-y:1.5rem}.g-7,.gx-7{--bs-gutter-x:2rem}.g-7,.gy-7{--bs-gutter-y:2rem}.g-8,.gx-8{--bs-gutter-x:2.5rem}.g-8,.gy-8{--bs-gutter-y:2.5rem}.g-9,.gx-9{--bs-gutter-x:3rem}.g-9,.gy-9{--bs-gutter-y:3rem}@media (width>=576px){.sm\:col{flex:1 0 0}.sm\:row-cols-auto>*{flex:none;width:auto}.sm\:row-cols-1>*{flex:none;width:100%}.sm\:row-cols-2>*{flex:none;width:50%}.sm\:row-cols-3>*{flex:none;width:33.3333%}.sm\:row-cols-4>*{flex:none;width:25%}.sm\:row-cols-5>*{flex:none;width:20%}.sm\:row-cols-6>*{flex:none;width:16.6667%}.sm\:col-auto{flex:none;width:auto}.sm\:col-1{flex:none;width:8.33333%}.sm\:col-2{flex:none;width:16.6667%}.sm\:col-3{flex:none;width:25%}.sm\:col-4{flex:none;width:33.3333%}.sm\:col-5{flex:none;width:41.6667%}.sm\:col-6{flex:none;width:50%}.sm\:col-7{flex:none;width:58.3333%}.sm\:col-8{flex:none;width:66.6667%}.sm\:col-9{flex:none;width:75%}.sm\:col-10{flex:none;width:83.3333%}.sm\:col-11{flex:none;width:91.6667%}.sm\:col-12{flex:none;width:100%}.sm\:offset-0{margin-inline-start:0}.sm\:offset-1{margin-inline-start:8.33333%}.sm\:offset-2{margin-inline-start:16.6667%}.sm\:offset-3{margin-inline-start:25%}.sm\:offset-4{margin-inline-start:33.3333%}.sm\:offset-5{margin-inline-start:41.6667%}.sm\:offset-6{margin-inline-start:50%}.sm\:offset-7{margin-inline-start:58.3333%}.sm\:offset-8{margin-inline-start:66.6667%}.sm\:offset-9{margin-inline-start:75%}.sm\:offset-10{margin-inline-start:83.3333%}.sm\:offset-11{margin-inline-start:91.6667%}.sm\:g-0,.sm\:gx-0{--bs-gutter-x:0}.sm\:g-0,.sm\:gy-0{--bs-gutter-y:0}.sm\:g-1,.sm\:gx-1{--bs-gutter-x:.25rem}.sm\:g-1,.sm\:gy-1{--bs-gutter-y:.25rem}.sm\:g-2,.sm\:gx-2{--bs-gutter-x:.5rem}.sm\:g-2,.sm\:gy-2{--bs-gutter-y:.5rem}.sm\:g-3,.sm\:gx-3{--bs-gutter-x:.75rem}.sm\:g-3,.sm\:gy-3{--bs-gutter-y:.75rem}.sm\:g-4,.sm\:gx-4{--bs-gutter-x:1rem}.sm\:g-4,.sm\:gy-4{--bs-gutter-y:1rem}.sm\:g-5,.sm\:gx-5{--bs-gutter-x:1.25rem}.sm\:g-5,.sm\:gy-5{--bs-gutter-y:1.25rem}.sm\:g-6,.sm\:gx-6{--bs-gutter-x:1.5rem}.sm\:g-6,.sm\:gy-6{--bs-gutter-y:1.5rem}.sm\:g-7,.sm\:gx-7{--bs-gutter-x:2rem}.sm\:g-7,.sm\:gy-7{--bs-gutter-y:2rem}.sm\:g-8,.sm\:gx-8{--bs-gutter-x:2.5rem}.sm\:g-8,.sm\:gy-8{--bs-gutter-y:2.5rem}.sm\:g-9,.sm\:gx-9{--bs-gutter-x:3rem}.sm\:g-9,.sm\:gy-9{--bs-gutter-y:3rem}}@media (width>=768px){.md\:col{flex:1 0 0}.md\:row-cols-auto>*{flex:none;width:auto}.md\:row-cols-1>*{flex:none;width:100%}.md\:row-cols-2>*{flex:none;width:50%}.md\:row-cols-3>*{flex:none;width:33.3333%}.md\:row-cols-4>*{flex:none;width:25%}.md\:row-cols-5>*{flex:none;width:20%}.md\:row-cols-6>*{flex:none;width:16.6667%}.md\:col-auto{flex:none;width:auto}.md\:col-1{flex:none;width:8.33333%}.md\:col-2{flex:none;width:16.6667%}.md\:col-3{flex:none;width:25%}.md\:col-4{flex:none;width:33.3333%}.md\:col-5{flex:none;width:41.6667%}.md\:col-6{flex:none;width:50%}.md\:col-7{flex:none;width:58.3333%}.md\:col-8{flex:none;width:66.6667%}.md\:col-9{flex:none;width:75%}.md\:col-10{flex:none;width:83.3333%}.md\:col-11{flex:none;width:91.6667%}.md\:col-12{flex:none;width:100%}.md\:offset-0{margin-inline-start:0}.md\:offset-1{margin-inline-start:8.33333%}.md\:offset-2{margin-inline-start:16.6667%}.md\:offset-3{margin-inline-start:25%}.md\:offset-4{margin-inline-start:33.3333%}.md\:offset-5{margin-inline-start:41.6667%}.md\:offset-6{margin-inline-start:50%}.md\:offset-7{margin-inline-start:58.3333%}.md\:offset-8{margin-inline-start:66.6667%}.md\:offset-9{margin-inline-start:75%}.md\:offset-10{margin-inline-start:83.3333%}.md\:offset-11{margin-inline-start:91.6667%}.md\:g-0,.md\:gx-0{--bs-gutter-x:0}.md\:g-0,.md\:gy-0{--bs-gutter-y:0}.md\:g-1,.md\:gx-1{--bs-gutter-x:.25rem}.md\:g-1,.md\:gy-1{--bs-gutter-y:.25rem}.md\:g-2,.md\:gx-2{--bs-gutter-x:.5rem}.md\:g-2,.md\:gy-2{--bs-gutter-y:.5rem}.md\:g-3,.md\:gx-3{--bs-gutter-x:.75rem}.md\:g-3,.md\:gy-3{--bs-gutter-y:.75rem}.md\:g-4,.md\:gx-4{--bs-gutter-x:1rem}.md\:g-4,.md\:gy-4{--bs-gutter-y:1rem}.md\:g-5,.md\:gx-5{--bs-gutter-x:1.25rem}.md\:g-5,.md\:gy-5{--bs-gutter-y:1.25rem}.md\:g-6,.md\:gx-6{--bs-gutter-x:1.5rem}.md\:g-6,.md\:gy-6{--bs-gutter-y:1.5rem}.md\:g-7,.md\:gx-7{--bs-gutter-x:2rem}.md\:g-7,.md\:gy-7{--bs-gutter-y:2rem}.md\:g-8,.md\:gx-8{--bs-gutter-x:2.5rem}.md\:g-8,.md\:gy-8{--bs-gutter-y:2.5rem}.md\:g-9,.md\:gx-9{--bs-gutter-x:3rem}.md\:g-9,.md\:gy-9{--bs-gutter-y:3rem}}@media (width>=1024px){.lg\:col{flex:1 0 0}.lg\:row-cols-auto>*{flex:none;width:auto}.lg\:row-cols-1>*{flex:none;width:100%}.lg\:row-cols-2>*{flex:none;width:50%}.lg\:row-cols-3>*{flex:none;width:33.3333%}.lg\:row-cols-4>*{flex:none;width:25%}.lg\:row-cols-5>*{flex:none;width:20%}.lg\:row-cols-6>*{flex:none;width:16.6667%}.lg\:col-auto{flex:none;width:auto}.lg\:col-1{flex:none;width:8.33333%}.lg\:col-2{flex:none;width:16.6667%}.lg\:col-3{flex:none;width:25%}.lg\:col-4{flex:none;width:33.3333%}.lg\:col-5{flex:none;width:41.6667%}.lg\:col-6{flex:none;width:50%}.lg\:col-7{flex:none;width:58.3333%}.lg\:col-8{flex:none;width:66.6667%}.lg\:col-9{flex:none;width:75%}.lg\:col-10{flex:none;width:83.3333%}.lg\:col-11{flex:none;width:91.6667%}.lg\:col-12{flex:none;width:100%}.lg\:offset-0{margin-inline-start:0}.lg\:offset-1{margin-inline-start:8.33333%}.lg\:offset-2{margin-inline-start:16.6667%}.lg\:offset-3{margin-inline-start:25%}.lg\:offset-4{margin-inline-start:33.3333%}.lg\:offset-5{margin-inline-start:41.6667%}.lg\:offset-6{margin-inline-start:50%}.lg\:offset-7{margin-inline-start:58.3333%}.lg\:offset-8{margin-inline-start:66.6667%}.lg\:offset-9{margin-inline-start:75%}.lg\:offset-10{margin-inline-start:83.3333%}.lg\:offset-11{margin-inline-start:91.6667%}.lg\:g-0,.lg\:gx-0{--bs-gutter-x:0}.lg\:g-0,.lg\:gy-0{--bs-gutter-y:0}.lg\:g-1,.lg\:gx-1{--bs-gutter-x:.25rem}.lg\:g-1,.lg\:gy-1{--bs-gutter-y:.25rem}.lg\:g-2,.lg\:gx-2{--bs-gutter-x:.5rem}.lg\:g-2,.lg\:gy-2{--bs-gutter-y:.5rem}.lg\:g-3,.lg\:gx-3{--bs-gutter-x:.75rem}.lg\:g-3,.lg\:gy-3{--bs-gutter-y:.75rem}.lg\:g-4,.lg\:gx-4{--bs-gutter-x:1rem}.lg\:g-4,.lg\:gy-4{--bs-gutter-y:1rem}.lg\:g-5,.lg\:gx-5{--bs-gutter-x:1.25rem}.lg\:g-5,.lg\:gy-5{--bs-gutter-y:1.25rem}.lg\:g-6,.lg\:gx-6{--bs-gutter-x:1.5rem}.lg\:g-6,.lg\:gy-6{--bs-gutter-y:1.5rem}.lg\:g-7,.lg\:gx-7{--bs-gutter-x:2rem}.lg\:g-7,.lg\:gy-7{--bs-gutter-y:2rem}.lg\:g-8,.lg\:gx-8{--bs-gutter-x:2.5rem}.lg\:g-8,.lg\:gy-8{--bs-gutter-y:2.5rem}.lg\:g-9,.lg\:gx-9{--bs-gutter-x:3rem}.lg\:g-9,.lg\:gy-9{--bs-gutter-y:3rem}}@media (width>=1280px){.xl\:col{flex:1 0 0}.xl\:row-cols-auto>*{flex:none;width:auto}.xl\:row-cols-1>*{flex:none;width:100%}.xl\:row-cols-2>*{flex:none;width:50%}.xl\:row-cols-3>*{flex:none;width:33.3333%}.xl\:row-cols-4>*{flex:none;width:25%}.xl\:row-cols-5>*{flex:none;width:20%}.xl\:row-cols-6>*{flex:none;width:16.6667%}.xl\:col-auto{flex:none;width:auto}.xl\:col-1{flex:none;width:8.33333%}.xl\:col-2{flex:none;width:16.6667%}.xl\:col-3{flex:none;width:25%}.xl\:col-4{flex:none;width:33.3333%}.xl\:col-5{flex:none;width:41.6667%}.xl\:col-6{flex:none;width:50%}.xl\:col-7{flex:none;width:58.3333%}.xl\:col-8{flex:none;width:66.6667%}.xl\:col-9{flex:none;width:75%}.xl\:col-10{flex:none;width:83.3333%}.xl\:col-11{flex:none;width:91.6667%}.xl\:col-12{flex:none;width:100%}.xl\:offset-0{margin-inline-start:0}.xl\:offset-1{margin-inline-start:8.33333%}.xl\:offset-2{margin-inline-start:16.6667%}.xl\:offset-3{margin-inline-start:25%}.xl\:offset-4{margin-inline-start:33.3333%}.xl\:offset-5{margin-inline-start:41.6667%}.xl\:offset-6{margin-inline-start:50%}.xl\:offset-7{margin-inline-start:58.3333%}.xl\:offset-8{margin-inline-start:66.6667%}.xl\:offset-9{margin-inline-start:75%}.xl\:offset-10{margin-inline-start:83.3333%}.xl\:offset-11{margin-inline-start:91.6667%}.xl\:g-0,.xl\:gx-0{--bs-gutter-x:0}.xl\:g-0,.xl\:gy-0{--bs-gutter-y:0}.xl\:g-1,.xl\:gx-1{--bs-gutter-x:.25rem}.xl\:g-1,.xl\:gy-1{--bs-gutter-y:.25rem}.xl\:g-2,.xl\:gx-2{--bs-gutter-x:.5rem}.xl\:g-2,.xl\:gy-2{--bs-gutter-y:.5rem}.xl\:g-3,.xl\:gx-3{--bs-gutter-x:.75rem}.xl\:g-3,.xl\:gy-3{--bs-gutter-y:.75rem}.xl\:g-4,.xl\:gx-4{--bs-gutter-x:1rem}.xl\:g-4,.xl\:gy-4{--bs-gutter-y:1rem}.xl\:g-5,.xl\:gx-5{--bs-gutter-x:1.25rem}.xl\:g-5,.xl\:gy-5{--bs-gutter-y:1.25rem}.xl\:g-6,.xl\:gx-6{--bs-gutter-x:1.5rem}.xl\:g-6,.xl\:gy-6{--bs-gutter-y:1.5rem}.xl\:g-7,.xl\:gx-7{--bs-gutter-x:2rem}.xl\:g-7,.xl\:gy-7{--bs-gutter-y:2rem}.xl\:g-8,.xl\:gx-8{--bs-gutter-x:2.5rem}.xl\:g-8,.xl\:gy-8{--bs-gutter-y:2.5rem}.xl\:g-9,.xl\:gx-9{--bs-gutter-x:3rem}.xl\:g-9,.xl\:gy-9{--bs-gutter-y:3rem}}@media (width>=1536px){.\32 xl\:col{flex:1 0 0}.\32 xl\:row-cols-auto>*{flex:none;width:auto}.\32 xl\:row-cols-1>*{flex:none;width:100%}.\32 xl\:row-cols-2>*{flex:none;width:50%}.\32 xl\:row-cols-3>*{flex:none;width:33.3333%}.\32 xl\:row-cols-4>*{flex:none;width:25%}.\32 xl\:row-cols-5>*{flex:none;width:20%}.\32 xl\:row-cols-6>*{flex:none;width:16.6667%}.\32 xl\:col-auto{flex:none;width:auto}.\32 xl\:col-1{flex:none;width:8.33333%}.\32 xl\:col-2{flex:none;width:16.6667%}.\32 xl\:col-3{flex:none;width:25%}.\32 xl\:col-4{flex:none;width:33.3333%}.\32 xl\:col-5{flex:none;width:41.6667%}.\32 xl\:col-6{flex:none;width:50%}.\32 xl\:col-7{flex:none;width:58.3333%}.\32 xl\:col-8{flex:none;width:66.6667%}.\32 xl\:col-9{flex:none;width:75%}.\32 xl\:col-10{flex:none;width:83.3333%}.\32 xl\:col-11{flex:none;width:91.6667%}.\32 xl\:col-12{flex:none;width:100%}.\32 xl\:offset-0{margin-inline-start:0}.\32 xl\:offset-1{margin-inline-start:8.33333%}.\32 xl\:offset-2{margin-inline-start:16.6667%}.\32 xl\:offset-3{margin-inline-start:25%}.\32 xl\:offset-4{margin-inline-start:33.3333%}.\32 xl\:offset-5{margin-inline-start:41.6667%}.\32 xl\:offset-6{margin-inline-start:50%}.\32 xl\:offset-7{margin-inline-start:58.3333%}.\32 xl\:offset-8{margin-inline-start:66.6667%}.\32 xl\:offset-9{margin-inline-start:75%}.\32 xl\:offset-10{margin-inline-start:83.3333%}.\32 xl\:offset-11{margin-inline-start:91.6667%}.\32 xl\:g-0,.\32 xl\:gx-0{--bs-gutter-x:0}.\32 xl\:g-0,.\32 xl\:gy-0{--bs-gutter-y:0}.\32 xl\:g-1,.\32 xl\:gx-1{--bs-gutter-x:.25rem}.\32 xl\:g-1,.\32 xl\:gy-1{--bs-gutter-y:.25rem}.\32 xl\:g-2,.\32 xl\:gx-2{--bs-gutter-x:.5rem}.\32 xl\:g-2,.\32 xl\:gy-2{--bs-gutter-y:.5rem}.\32 xl\:g-3,.\32 xl\:gx-3{--bs-gutter-x:.75rem}.\32 xl\:g-3,.\32 xl\:gy-3{--bs-gutter-y:.75rem}.\32 xl\:g-4,.\32 xl\:gx-4{--bs-gutter-x:1rem}.\32 xl\:g-4,.\32 xl\:gy-4{--bs-gutter-y:1rem}.\32 xl\:g-5,.\32 xl\:gx-5{--bs-gutter-x:1.25rem}.\32 xl\:g-5,.\32 xl\:gy-5{--bs-gutter-y:1.25rem}.\32 xl\:g-6,.\32 xl\:gx-6{--bs-gutter-x:1.5rem}.\32 xl\:g-6,.\32 xl\:gy-6{--bs-gutter-y:1.5rem}.\32 xl\:g-7,.\32 xl\:gx-7{--bs-gutter-x:2rem}.\32 xl\:g-7,.\32 xl\:gy-7{--bs-gutter-y:2rem}.\32 xl\:g-8,.\32 xl\:gx-8{--bs-gutter-x:2.5rem}.\32 xl\:g-8,.\32 xl\:gy-8{--bs-gutter-y:2.5rem}.\32 xl\:g-9,.\32 xl\:gx-9{--bs-gutter-x:3rem}.\32 xl\:g-9,.\32 xl\:gy-9{--bs-gutter-y:3rem}}.grid{--bs-columns:12;--bs-rows:1;--bs-gap:1.5rem;grid-template-rows:repeat(var(--bs-rows), 1fr);grid-template-columns:repeat(var(--bs-columns), 1fr);gap:var(--bs-gap);display:grid}.g-col-1{grid-column:auto/span 1}.g-col-2{grid-column:auto/span 2}.g-col-3{grid-column:auto/span 3}.g-col-4{grid-column:auto/span 4}.g-col-5{grid-column:auto/span 5}.g-col-6{grid-column:auto/span 6}.g-col-7{grid-column:auto/span 7}.g-col-8{grid-column:auto/span 8}.g-col-9{grid-column:auto/span 9}.g-col-10{grid-column:auto/span 10}.g-col-11{grid-column:auto/span 11}.g-col-12{grid-column:auto/span 12}.g-start-1{grid-column-start:1}.g-start-2{grid-column-start:2}.g-start-3{grid-column-start:3}.g-start-4{grid-column-start:4}.g-start-5{grid-column-start:5}.g-start-6{grid-column-start:6}.g-start-7{grid-column-start:7}.g-start-8{grid-column-start:8}.g-start-9{grid-column-start:9}.g-start-10{grid-column-start:10}.g-start-11{grid-column-start:11}@media (width>=576px){.sm\:g-col-1{grid-column:auto/span 1}.sm\:g-col-2{grid-column:auto/span 2}.sm\:g-col-3{grid-column:auto/span 3}.sm\:g-col-4{grid-column:auto/span 4}.sm\:g-col-5{grid-column:auto/span 5}.sm\:g-col-6{grid-column:auto/span 6}.sm\:g-col-7{grid-column:auto/span 7}.sm\:g-col-8{grid-column:auto/span 8}.sm\:g-col-9{grid-column:auto/span 9}.sm\:g-col-10{grid-column:auto/span 10}.sm\:g-col-11{grid-column:auto/span 11}.sm\:g-col-12{grid-column:auto/span 12}.sm\:g-start-1{grid-column-start:1}.sm\:g-start-2{grid-column-start:2}.sm\:g-start-3{grid-column-start:3}.sm\:g-start-4{grid-column-start:4}.sm\:g-start-5{grid-column-start:5}.sm\:g-start-6{grid-column-start:6}.sm\:g-start-7{grid-column-start:7}.sm\:g-start-8{grid-column-start:8}.sm\:g-start-9{grid-column-start:9}.sm\:g-start-10{grid-column-start:10}.sm\:g-start-11{grid-column-start:11}}@media (width>=768px){.md\:g-col-1{grid-column:auto/span 1}.md\:g-col-2{grid-column:auto/span 2}.md\:g-col-3{grid-column:auto/span 3}.md\:g-col-4{grid-column:auto/span 4}.md\:g-col-5{grid-column:auto/span 5}.md\:g-col-6{grid-column:auto/span 6}.md\:g-col-7{grid-column:auto/span 7}.md\:g-col-8{grid-column:auto/span 8}.md\:g-col-9{grid-column:auto/span 9}.md\:g-col-10{grid-column:auto/span 10}.md\:g-col-11{grid-column:auto/span 11}.md\:g-col-12{grid-column:auto/span 12}.md\:g-start-1{grid-column-start:1}.md\:g-start-2{grid-column-start:2}.md\:g-start-3{grid-column-start:3}.md\:g-start-4{grid-column-start:4}.md\:g-start-5{grid-column-start:5}.md\:g-start-6{grid-column-start:6}.md\:g-start-7{grid-column-start:7}.md\:g-start-8{grid-column-start:8}.md\:g-start-9{grid-column-start:9}.md\:g-start-10{grid-column-start:10}.md\:g-start-11{grid-column-start:11}}@media (width>=1024px){.lg\:g-col-1{grid-column:auto/span 1}.lg\:g-col-2{grid-column:auto/span 2}.lg\:g-col-3{grid-column:auto/span 3}.lg\:g-col-4{grid-column:auto/span 4}.lg\:g-col-5{grid-column:auto/span 5}.lg\:g-col-6{grid-column:auto/span 6}.lg\:g-col-7{grid-column:auto/span 7}.lg\:g-col-8{grid-column:auto/span 8}.lg\:g-col-9{grid-column:auto/span 9}.lg\:g-col-10{grid-column:auto/span 10}.lg\:g-col-11{grid-column:auto/span 11}.lg\:g-col-12{grid-column:auto/span 12}.lg\:g-start-1{grid-column-start:1}.lg\:g-start-2{grid-column-start:2}.lg\:g-start-3{grid-column-start:3}.lg\:g-start-4{grid-column-start:4}.lg\:g-start-5{grid-column-start:5}.lg\:g-start-6{grid-column-start:6}.lg\:g-start-7{grid-column-start:7}.lg\:g-start-8{grid-column-start:8}.lg\:g-start-9{grid-column-start:9}.lg\:g-start-10{grid-column-start:10}.lg\:g-start-11{grid-column-start:11}}@media (width>=1280px){.xl\:g-col-1{grid-column:auto/span 1}.xl\:g-col-2{grid-column:auto/span 2}.xl\:g-col-3{grid-column:auto/span 3}.xl\:g-col-4{grid-column:auto/span 4}.xl\:g-col-5{grid-column:auto/span 5}.xl\:g-col-6{grid-column:auto/span 6}.xl\:g-col-7{grid-column:auto/span 7}.xl\:g-col-8{grid-column:auto/span 8}.xl\:g-col-9{grid-column:auto/span 9}.xl\:g-col-10{grid-column:auto/span 10}.xl\:g-col-11{grid-column:auto/span 11}.xl\:g-col-12{grid-column:auto/span 12}.xl\:g-start-1{grid-column-start:1}.xl\:g-start-2{grid-column-start:2}.xl\:g-start-3{grid-column-start:3}.xl\:g-start-4{grid-column-start:4}.xl\:g-start-5{grid-column-start:5}.xl\:g-start-6{grid-column-start:6}.xl\:g-start-7{grid-column-start:7}.xl\:g-start-8{grid-column-start:8}.xl\:g-start-9{grid-column-start:9}.xl\:g-start-10{grid-column-start:10}.xl\:g-start-11{grid-column-start:11}}@media (width>=1536px){.\32 xl\:g-col-1{grid-column:auto/span 1}.\32 xl\:g-col-2{grid-column:auto/span 2}.\32 xl\:g-col-3{grid-column:auto/span 3}.\32 xl\:g-col-4{grid-column:auto/span 4}.\32 xl\:g-col-5{grid-column:auto/span 5}.\32 xl\:g-col-6{grid-column:auto/span 6}.\32 xl\:g-col-7{grid-column:auto/span 7}.\32 xl\:g-col-8{grid-column:auto/span 8}.\32 xl\:g-col-9{grid-column:auto/span 9}.\32 xl\:g-col-10{grid-column:auto/span 10}.\32 xl\:g-col-11{grid-column:auto/span 11}.\32 xl\:g-col-12{grid-column:auto/span 12}.\32 xl\:g-start-1{grid-column-start:1}.\32 xl\:g-start-2{grid-column-start:2}.\32 xl\:g-start-3{grid-column-start:3}.\32 xl\:g-start-4{grid-column-start:4}.\32 xl\:g-start-5{grid-column-start:5}.\32 xl\:g-start-6{grid-column-start:6}.\32 xl\:g-start-7{grid-column-start:7}.\32 xl\:g-start-8{grid-column-start:8}.\32 xl\:g-start-9{grid-column-start:9}.\32 xl\:g-start-10{grid-column-start:10}.\32 xl\:g-start-11{grid-column-start:11}}.grid-cols-subgrid{grid-template-columns:subgrid}.grid-fill{--bs-gap:1.5rem;gap:var(--bs-gap);grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:row;display:grid}}@layer utilities{.d-inline{display:inline}.d-inline-block{display:inline-block}.d-block{display:block}.d-grid{display:grid}.d-inline-grid{display:inline-grid}.d-table{display:table}.d-table-row{display:table-row}.d-table-cell{display:table-cell}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.d-contents{display:contents}.d-flow-root{display:flow-root}.d-none{display:none}.flex-fill{flex:auto}.flex-row{flex-direction:row}.flex-column{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-column-reverse{flex-direction:column-reverse}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.justify-content-start{justify-content:flex-start}.justify-content-end{justify-content:flex-end}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.justify-content-around{justify-content:space-around}.justify-content-evenly{justify-content:space-evenly}.justify-items-start{justify-items:start}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.justify-items-stretch{justify-items:stretch}.align-items-start{align-items:flex-start}.align-items-end{align-items:flex-end}.align-items-center{align-items:center}.align-items-baseline{align-items:baseline}.align-items-stretch{align-items:stretch}.align-content-start{align-content:flex-start}.align-content-end{align-content:flex-end}.align-content-center{align-content:center}.align-content-between{align-content:space-between}.align-content-around{align-content:space-around}.align-content-stretch{align-content:stretch}.align-self-auto{align-self:auto}.align-self-start{align-self:flex-start}.align-self-end{align-self:flex-end}.align-self-center{align-self:center}.align-self-baseline{align-self:baseline}.align-self-stretch{align-self:stretch}.place-items-start{place-items:start}.place-items-end{place-items:end}.place-items-center{place-items:center}.place-items-stretch{place-items:stretch stretch}.grid-cols-1{grid-template-columns:1fr}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.grid-cols-6{grid-template-columns:repeat(6,1fr)}.grid-cols-fill{grid-column:1/-1}.grid-auto-flow-row{grid-auto-flow:row}.grid-auto-flow-column{grid-auto-flow:column}.grid-auto-flow-dense{grid-auto-flow:dense}.order-first{order:-1}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-last{order:6}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-3{margin:.75rem}.m-4{margin:1rem}.m-5{margin:1.25rem}.m-6{margin:1.5rem}.m-7{margin:2rem}.m-8{margin:2.5rem}.m-9{margin:3rem}.m-auto{margin:auto}.mx-0{margin-inline:0}.mx-1{margin-inline:.25rem}.mx-2{margin-inline:.5rem}.mx-3{margin-inline:.75rem}.mx-4{margin-inline:1rem}.mx-5{margin-inline:1.25rem}.mx-6{margin-inline:1.5rem}.mx-7{margin-inline:2rem}.mx-8{margin-inline:2.5rem}.mx-9{margin-inline:3rem}.mx-auto{margin-inline:auto}.my-0{margin-block:0}.my-1{margin-block:.25rem}.my-2{margin-block:.5rem}.my-3{margin-block:.75rem}.my-4{margin-block:1rem}.my-5{margin-block:1.25rem}.my-6{margin-block:1.5rem}.my-7{margin-block:2rem}.my-8{margin-block:2.5rem}.my-9{margin-block:3rem}.my-auto{margin-block:auto}.mt-0{margin-block-start:0}.mt-1{margin-block-start:.25rem}.mt-2{margin-block-start:.5rem}.mt-3{margin-block-start:.75rem}.mt-4{margin-block-start:1rem}.mt-5{margin-block-start:1.25rem}.mt-6{margin-block-start:1.5rem}.mt-7{margin-block-start:2rem}.mt-8{margin-block-start:2.5rem}.mt-9{margin-block-start:3rem}.mt-auto{margin-block-start:auto}.me-0{margin-inline-end:0}.me-1{margin-inline-end:.25rem}.me-2{margin-inline-end:.5rem}.me-3{margin-inline-end:.75rem}.me-4{margin-inline-end:1rem}.me-5{margin-inline-end:1.25rem}.me-6{margin-inline-end:1.5rem}.me-7{margin-inline-end:2rem}.me-8{margin-inline-end:2.5rem}.me-9{margin-inline-end:3rem}.me--1{margin-inline-end:-.25rem}.me--2{margin-inline-end:-.5rem}.me-auto{margin-inline-end:auto}.mb-0{margin-block-end:0}.mb-1{margin-block-end:.25rem}.mb-2{margin-block-end:.5rem}.mb-3{margin-block-end:.75rem}.mb-4{margin-block-end:1rem}.mb-5{margin-block-end:1.25rem}.mb-6{margin-block-end:1.5rem}.mb-7{margin-block-end:2rem}.mb-8{margin-block-end:2.5rem}.mb-9{margin-block-end:3rem}.mb-auto{margin-block-end:auto}.ms-0{margin-inline-start:0}.ms-1{margin-inline-start:.25rem}.ms-2{margin-inline-start:.5rem}.ms-3{margin-inline-start:.75rem}.ms-4{margin-inline-start:1rem}.ms-5{margin-inline-start:1.25rem}.ms-6{margin-inline-start:1.5rem}.ms-7{margin-inline-start:2rem}.ms-8{margin-inline-start:2.5rem}.ms-9{margin-inline-start:3rem}.ms--1{margin-inline-start:-.25rem}.ms--2{margin-inline-start:-.5rem}.ms-auto{margin-inline-start:auto}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:2rem}.p-8{padding:2.5rem}.p-9{padding:3rem}.px-0{padding-inline:0}.px-1{padding-inline:.25rem}.px-2{padding-inline:.5rem}.px-3{padding-inline:.75rem}.px-4{padding-inline:1rem}.px-5{padding-inline:1.25rem}.px-6{padding-inline:1.5rem}.px-7{padding-inline:2rem}.px-8{padding-inline:2.5rem}.px-9{padding-inline:3rem}.py-0{padding-block:0}.py-1{padding-block:.25rem}.py-2{padding-block:.5rem}.py-3{padding-block:.75rem}.py-4{padding-block:1rem}.py-5{padding-block:1.25rem}.py-6{padding-block:1.5rem}.py-7{padding-block:2rem}.py-8{padding-block:2.5rem}.py-9{padding-block:3rem}.pt-0{padding-block-start:0}.pt-1{padding-block-start:.25rem}.pt-2{padding-block-start:.5rem}.pt-3{padding-block-start:.75rem}.pt-4{padding-block-start:1rem}.pt-5{padding-block-start:1.25rem}.pt-6{padding-block-start:1.5rem}.pt-7{padding-block-start:2rem}.pt-8{padding-block-start:2.5rem}.pt-9{padding-block-start:3rem}.pe-0{padding-inline-end:0}.pe-1{padding-inline-end:.25rem}.pe-2{padding-inline-end:.5rem}.pe-3{padding-inline-end:.75rem}.pe-4{padding-inline-end:1rem}.pe-5{padding-inline-end:1.25rem}.pe-6{padding-inline-end:1.5rem}.pe-7{padding-inline-end:2rem}.pe-8{padding-inline-end:2.5rem}.pe-9{padding-inline-end:3rem}.pb-0{padding-block-end:0}.pb-1{padding-block-end:.25rem}.pb-2{padding-block-end:.5rem}.pb-3{padding-block-end:.75rem}.pb-4{padding-block-end:1rem}.pb-5{padding-block-end:1.25rem}.pb-6{padding-block-end:1.5rem}.pb-7{padding-block-end:2rem}.pb-8{padding-block-end:2.5rem}.pb-9{padding-block-end:3rem}.ps-0{padding-inline-start:0}.ps-1{padding-inline-start:.25rem}.ps-2{padding-inline-start:.5rem}.ps-3{padding-inline-start:.75rem}.ps-4{padding-inline-start:1rem}.ps-5{padding-inline-start:1.25rem}.ps-6{padding-inline-start:1.5rem}.ps-7{padding-inline-start:2rem}.ps-8{padding-inline-start:2.5rem}.ps-9{padding-inline-start:3rem}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:2rem}.gap-8{gap:2.5rem}.gap-9{gap:3rem}.row-gap-0{row-gap:0}.row-gap-1{row-gap:.25rem}.row-gap-2{row-gap:.5rem}.row-gap-3{row-gap:.75rem}.row-gap-4{row-gap:1rem}.row-gap-5{row-gap:1.25rem}.row-gap-6{row-gap:1.5rem}.row-gap-7{row-gap:2rem}.row-gap-8{row-gap:2.5rem}.row-gap-9{row-gap:3rem}.column-gap-0{column-gap:0}.column-gap-1{column-gap:.25rem}.column-gap-2{column-gap:.5rem}.column-gap-3{column-gap:.75rem}.column-gap-4{column-gap:1rem}.column-gap-5{column-gap:1.25rem}.column-gap-6{column-gap:1.5rem}.column-gap-7{column-gap:2rem}.column-gap-8{column-gap:2.5rem}.column-gap-9{column-gap:3rem}@media (width>=576px){.sm\:d-inline{display:inline}.sm\:d-inline-block{display:inline-block}.sm\:d-block{display:block}.sm\:d-grid{display:grid}.sm\:d-inline-grid{display:inline-grid}.sm\:d-table{display:table}.sm\:d-table-row{display:table-row}.sm\:d-table-cell{display:table-cell}.sm\:d-flex{display:flex}.sm\:d-inline-flex{display:inline-flex}.sm\:d-contents{display:contents}.sm\:d-flow-root{display:flow-root}.sm\:d-none{display:none}.sm\:flex-fill{flex:auto}.sm\:flex-row{flex-direction:row}.sm\:flex-column{flex-direction:column}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:flex-column-reverse{flex-direction:column-reverse}.sm\:flex-grow-0{flex-grow:0}.sm\:flex-grow-1{flex-grow:1}.sm\:flex-shrink-0{flex-shrink:0}.sm\:flex-shrink-1{flex-shrink:1}.sm\:flex-wrap{flex-wrap:wrap}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:flex-wrap-reverse{flex-wrap:wrap-reverse}.sm\:justify-content-start{justify-content:flex-start}.sm\:justify-content-end{justify-content:flex-end}.sm\:justify-content-center{justify-content:center}.sm\:justify-content-between{justify-content:space-between}.sm\:justify-content-around{justify-content:space-around}.sm\:justify-content-evenly{justify-content:space-evenly}.sm\:justify-items-start{justify-items:start}.sm\:justify-items-end{justify-items:end}.sm\:justify-items-center{justify-items:center}.sm\:justify-items-stretch{justify-items:stretch}.sm\:align-items-start{align-items:flex-start}.sm\:align-items-end{align-items:flex-end}.sm\:align-items-center{align-items:center}.sm\:align-items-baseline{align-items:baseline}.sm\:align-items-stretch{align-items:stretch}.sm\:align-content-start{align-content:flex-start}.sm\:align-content-end{align-content:flex-end}.sm\:align-content-center{align-content:center}.sm\:align-content-between{align-content:space-between}.sm\:align-content-around{align-content:space-around}.sm\:align-content-stretch{align-content:stretch}.sm\:align-self-auto{align-self:auto}.sm\:align-self-start{align-self:flex-start}.sm\:align-self-end{align-self:flex-end}.sm\:align-self-center{align-self:center}.sm\:align-self-baseline{align-self:baseline}.sm\:align-self-stretch{align-self:stretch}.sm\:place-items-start{place-items:start}.sm\:place-items-end{place-items:end}.sm\:place-items-center{place-items:center}.sm\:place-items-stretch{place-items:stretch stretch}.sm\:grid-cols-1{grid-template-columns:1fr}.sm\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.sm\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.sm\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.sm\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.sm\:grid-cols-fill{grid-column:1/-1}.sm\:grid-auto-flow-row{grid-auto-flow:row}.sm\:grid-auto-flow-column{grid-auto-flow:column}.sm\:grid-auto-flow-dense{grid-auto-flow:dense}.sm\:order-first{order:-1}.sm\:order-0{order:0}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:order-3{order:3}.sm\:order-4{order:4}.sm\:order-5{order:5}.sm\:order-last{order:6}.sm\:m-0{margin:0}.sm\:m-1{margin:.25rem}.sm\:m-2{margin:.5rem}.sm\:m-3{margin:.75rem}.sm\:m-4{margin:1rem}.sm\:m-5{margin:1.25rem}.sm\:m-6{margin:1.5rem}.sm\:m-7{margin:2rem}.sm\:m-8{margin:2.5rem}.sm\:m-9{margin:3rem}.sm\:m-auto{margin:auto}.sm\:mx-0{margin-inline:0}.sm\:mx-1{margin-inline:.25rem}.sm\:mx-2{margin-inline:.5rem}.sm\:mx-3{margin-inline:.75rem}.sm\:mx-4{margin-inline:1rem}.sm\:mx-5{margin-inline:1.25rem}.sm\:mx-6{margin-inline:1.5rem}.sm\:mx-7{margin-inline:2rem}.sm\:mx-8{margin-inline:2.5rem}.sm\:mx-9{margin-inline:3rem}.sm\:mx-auto{margin-inline:auto}.sm\:my-0{margin-block:0}.sm\:my-1{margin-block:.25rem}.sm\:my-2{margin-block:.5rem}.sm\:my-3{margin-block:.75rem}.sm\:my-4{margin-block:1rem}.sm\:my-5{margin-block:1.25rem}.sm\:my-6{margin-block:1.5rem}.sm\:my-7{margin-block:2rem}.sm\:my-8{margin-block:2.5rem}.sm\:my-9{margin-block:3rem}.sm\:my-auto{margin-block:auto}.sm\:mt-0{margin-block-start:0}.sm\:mt-1{margin-block-start:.25rem}.sm\:mt-2{margin-block-start:.5rem}.sm\:mt-3{margin-block-start:.75rem}.sm\:mt-4{margin-block-start:1rem}.sm\:mt-5{margin-block-start:1.25rem}.sm\:mt-6{margin-block-start:1.5rem}.sm\:mt-7{margin-block-start:2rem}.sm\:mt-8{margin-block-start:2.5rem}.sm\:mt-9{margin-block-start:3rem}.sm\:mt-auto{margin-block-start:auto}.sm\:me-0{margin-inline-end:0}.sm\:me-1{margin-inline-end:.25rem}.sm\:me-2{margin-inline-end:.5rem}.sm\:me-3{margin-inline-end:.75rem}.sm\:me-4{margin-inline-end:1rem}.sm\:me-5{margin-inline-end:1.25rem}.sm\:me-6{margin-inline-end:1.5rem}.sm\:me-7{margin-inline-end:2rem}.sm\:me-8{margin-inline-end:2.5rem}.sm\:me-9{margin-inline-end:3rem}.sm\:me--1{margin-inline-end:-.25rem}.sm\:me--2{margin-inline-end:-.5rem}.sm\:me-auto{margin-inline-end:auto}.sm\:mb-0{margin-block-end:0}.sm\:mb-1{margin-block-end:.25rem}.sm\:mb-2{margin-block-end:.5rem}.sm\:mb-3{margin-block-end:.75rem}.sm\:mb-4{margin-block-end:1rem}.sm\:mb-5{margin-block-end:1.25rem}.sm\:mb-6{margin-block-end:1.5rem}.sm\:mb-7{margin-block-end:2rem}.sm\:mb-8{margin-block-end:2.5rem}.sm\:mb-9{margin-block-end:3rem}.sm\:mb-auto{margin-block-end:auto}.sm\:ms-0{margin-inline-start:0}.sm\:ms-1{margin-inline-start:.25rem}.sm\:ms-2{margin-inline-start:.5rem}.sm\:ms-3{margin-inline-start:.75rem}.sm\:ms-4{margin-inline-start:1rem}.sm\:ms-5{margin-inline-start:1.25rem}.sm\:ms-6{margin-inline-start:1.5rem}.sm\:ms-7{margin-inline-start:2rem}.sm\:ms-8{margin-inline-start:2.5rem}.sm\:ms-9{margin-inline-start:3rem}.sm\:ms--1{margin-inline-start:-.25rem}.sm\:ms--2{margin-inline-start:-.5rem}.sm\:ms-auto{margin-inline-start:auto}.sm\:p-0{padding:0}.sm\:p-1{padding:.25rem}.sm\:p-2{padding:.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:p-7{padding:2rem}.sm\:p-8{padding:2.5rem}.sm\:p-9{padding:3rem}.sm\:px-0{padding-inline:0}.sm\:px-1{padding-inline:.25rem}.sm\:px-2{padding-inline:.5rem}.sm\:px-3{padding-inline:.75rem}.sm\:px-4{padding-inline:1rem}.sm\:px-5{padding-inline:1.25rem}.sm\:px-6{padding-inline:1.5rem}.sm\:px-7{padding-inline:2rem}.sm\:px-8{padding-inline:2.5rem}.sm\:px-9{padding-inline:3rem}.sm\:py-0{padding-block:0}.sm\:py-1{padding-block:.25rem}.sm\:py-2{padding-block:.5rem}.sm\:py-3{padding-block:.75rem}.sm\:py-4{padding-block:1rem}.sm\:py-5{padding-block:1.25rem}.sm\:py-6{padding-block:1.5rem}.sm\:py-7{padding-block:2rem}.sm\:py-8{padding-block:2.5rem}.sm\:py-9{padding-block:3rem}.sm\:pt-0{padding-block-start:0}.sm\:pt-1{padding-block-start:.25rem}.sm\:pt-2{padding-block-start:.5rem}.sm\:pt-3{padding-block-start:.75rem}.sm\:pt-4{padding-block-start:1rem}.sm\:pt-5{padding-block-start:1.25rem}.sm\:pt-6{padding-block-start:1.5rem}.sm\:pt-7{padding-block-start:2rem}.sm\:pt-8{padding-block-start:2.5rem}.sm\:pt-9{padding-block-start:3rem}.sm\:pe-0{padding-inline-end:0}.sm\:pe-1{padding-inline-end:.25rem}.sm\:pe-2{padding-inline-end:.5rem}.sm\:pe-3{padding-inline-end:.75rem}.sm\:pe-4{padding-inline-end:1rem}.sm\:pe-5{padding-inline-end:1.25rem}.sm\:pe-6{padding-inline-end:1.5rem}.sm\:pe-7{padding-inline-end:2rem}.sm\:pe-8{padding-inline-end:2.5rem}.sm\:pe-9{padding-inline-end:3rem}.sm\:pb-0{padding-block-end:0}.sm\:pb-1{padding-block-end:.25rem}.sm\:pb-2{padding-block-end:.5rem}.sm\:pb-3{padding-block-end:.75rem}.sm\:pb-4{padding-block-end:1rem}.sm\:pb-5{padding-block-end:1.25rem}.sm\:pb-6{padding-block-end:1.5rem}.sm\:pb-7{padding-block-end:2rem}.sm\:pb-8{padding-block-end:2.5rem}.sm\:pb-9{padding-block-end:3rem}.sm\:ps-0{padding-inline-start:0}.sm\:ps-1{padding-inline-start:.25rem}.sm\:ps-2{padding-inline-start:.5rem}.sm\:ps-3{padding-inline-start:.75rem}.sm\:ps-4{padding-inline-start:1rem}.sm\:ps-5{padding-inline-start:1.25rem}.sm\:ps-6{padding-inline-start:1.5rem}.sm\:ps-7{padding-inline-start:2rem}.sm\:ps-8{padding-inline-start:2.5rem}.sm\:ps-9{padding-inline-start:3rem}.sm\:gap-0{gap:0}.sm\:gap-1{gap:.25rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-5{gap:1.25rem}.sm\:gap-6{gap:1.5rem}.sm\:gap-7{gap:2rem}.sm\:gap-8{gap:2.5rem}.sm\:gap-9{gap:3rem}.sm\:row-gap-0{row-gap:0}.sm\:row-gap-1{row-gap:.25rem}.sm\:row-gap-2{row-gap:.5rem}.sm\:row-gap-3{row-gap:.75rem}.sm\:row-gap-4{row-gap:1rem}.sm\:row-gap-5{row-gap:1.25rem}.sm\:row-gap-6{row-gap:1.5rem}.sm\:row-gap-7{row-gap:2rem}.sm\:row-gap-8{row-gap:2.5rem}.sm\:row-gap-9{row-gap:3rem}.sm\:column-gap-0{column-gap:0}.sm\:column-gap-1{column-gap:.25rem}.sm\:column-gap-2{column-gap:.5rem}.sm\:column-gap-3{column-gap:.75rem}.sm\:column-gap-4{column-gap:1rem}.sm\:column-gap-5{column-gap:1.25rem}.sm\:column-gap-6{column-gap:1.5rem}.sm\:column-gap-7{column-gap:2rem}.sm\:column-gap-8{column-gap:2.5rem}.sm\:column-gap-9{column-gap:3rem}}@media (width>=768px){.md\:d-inline{display:inline}.md\:d-inline-block{display:inline-block}.md\:d-block{display:block}.md\:d-grid{display:grid}.md\:d-inline-grid{display:inline-grid}.md\:d-table{display:table}.md\:d-table-row{display:table-row}.md\:d-table-cell{display:table-cell}.md\:d-flex{display:flex}.md\:d-inline-flex{display:inline-flex}.md\:d-contents{display:contents}.md\:d-flow-root{display:flow-root}.md\:d-none{display:none}.md\:flex-fill{flex:auto}.md\:flex-row{flex-direction:row}.md\:flex-column{flex-direction:column}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:flex-column-reverse{flex-direction:column-reverse}.md\:flex-grow-0{flex-grow:0}.md\:flex-grow-1{flex-grow:1}.md\:flex-shrink-0{flex-shrink:0}.md\:flex-shrink-1{flex-shrink:1}.md\:flex-wrap{flex-wrap:wrap}.md\:flex-nowrap{flex-wrap:nowrap}.md\:flex-wrap-reverse{flex-wrap:wrap-reverse}.md\:justify-content-start{justify-content:flex-start}.md\:justify-content-end{justify-content:flex-end}.md\:justify-content-center{justify-content:center}.md\:justify-content-between{justify-content:space-between}.md\:justify-content-around{justify-content:space-around}.md\:justify-content-evenly{justify-content:space-evenly}.md\:justify-items-start{justify-items:start}.md\:justify-items-end{justify-items:end}.md\:justify-items-center{justify-items:center}.md\:justify-items-stretch{justify-items:stretch}.md\:align-items-start{align-items:flex-start}.md\:align-items-end{align-items:flex-end}.md\:align-items-center{align-items:center}.md\:align-items-baseline{align-items:baseline}.md\:align-items-stretch{align-items:stretch}.md\:align-content-start{align-content:flex-start}.md\:align-content-end{align-content:flex-end}.md\:align-content-center{align-content:center}.md\:align-content-between{align-content:space-between}.md\:align-content-around{align-content:space-around}.md\:align-content-stretch{align-content:stretch}.md\:align-self-auto{align-self:auto}.md\:align-self-start{align-self:flex-start}.md\:align-self-end{align-self:flex-end}.md\:align-self-center{align-self:center}.md\:align-self-baseline{align-self:baseline}.md\:align-self-stretch{align-self:stretch}.md\:place-items-start{place-items:start}.md\:place-items-end{place-items:end}.md\:place-items-center{place-items:center}.md\:place-items-stretch{place-items:stretch stretch}.md\:grid-cols-1{grid-template-columns:1fr}.md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.md\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.md\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.md\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.md\:grid-cols-fill{grid-column:1/-1}.md\:grid-auto-flow-row{grid-auto-flow:row}.md\:grid-auto-flow-column{grid-auto-flow:column}.md\:grid-auto-flow-dense{grid-auto-flow:dense}.md\:order-first{order:-1}.md\:order-0{order:0}.md\:order-1{order:1}.md\:order-2{order:2}.md\:order-3{order:3}.md\:order-4{order:4}.md\:order-5{order:5}.md\:order-last{order:6}.md\:m-0{margin:0}.md\:m-1{margin:.25rem}.md\:m-2{margin:.5rem}.md\:m-3{margin:.75rem}.md\:m-4{margin:1rem}.md\:m-5{margin:1.25rem}.md\:m-6{margin:1.5rem}.md\:m-7{margin:2rem}.md\:m-8{margin:2.5rem}.md\:m-9{margin:3rem}.md\:m-auto{margin:auto}.md\:mx-0{margin-inline:0}.md\:mx-1{margin-inline:.25rem}.md\:mx-2{margin-inline:.5rem}.md\:mx-3{margin-inline:.75rem}.md\:mx-4{margin-inline:1rem}.md\:mx-5{margin-inline:1.25rem}.md\:mx-6{margin-inline:1.5rem}.md\:mx-7{margin-inline:2rem}.md\:mx-8{margin-inline:2.5rem}.md\:mx-9{margin-inline:3rem}.md\:mx-auto{margin-inline:auto}.md\:my-0{margin-block:0}.md\:my-1{margin-block:.25rem}.md\:my-2{margin-block:.5rem}.md\:my-3{margin-block:.75rem}.md\:my-4{margin-block:1rem}.md\:my-5{margin-block:1.25rem}.md\:my-6{margin-block:1.5rem}.md\:my-7{margin-block:2rem}.md\:my-8{margin-block:2.5rem}.md\:my-9{margin-block:3rem}.md\:my-auto{margin-block:auto}.md\:mt-0{margin-block-start:0}.md\:mt-1{margin-block-start:.25rem}.md\:mt-2{margin-block-start:.5rem}.md\:mt-3{margin-block-start:.75rem}.md\:mt-4{margin-block-start:1rem}.md\:mt-5{margin-block-start:1.25rem}.md\:mt-6{margin-block-start:1.5rem}.md\:mt-7{margin-block-start:2rem}.md\:mt-8{margin-block-start:2.5rem}.md\:mt-9{margin-block-start:3rem}.md\:mt-auto{margin-block-start:auto}.md\:me-0{margin-inline-end:0}.md\:me-1{margin-inline-end:.25rem}.md\:me-2{margin-inline-end:.5rem}.md\:me-3{margin-inline-end:.75rem}.md\:me-4{margin-inline-end:1rem}.md\:me-5{margin-inline-end:1.25rem}.md\:me-6{margin-inline-end:1.5rem}.md\:me-7{margin-inline-end:2rem}.md\:me-8{margin-inline-end:2.5rem}.md\:me-9{margin-inline-end:3rem}.md\:me--1{margin-inline-end:-.25rem}.md\:me--2{margin-inline-end:-.5rem}.md\:me-auto{margin-inline-end:auto}.md\:mb-0{margin-block-end:0}.md\:mb-1{margin-block-end:.25rem}.md\:mb-2{margin-block-end:.5rem}.md\:mb-3{margin-block-end:.75rem}.md\:mb-4{margin-block-end:1rem}.md\:mb-5{margin-block-end:1.25rem}.md\:mb-6{margin-block-end:1.5rem}.md\:mb-7{margin-block-end:2rem}.md\:mb-8{margin-block-end:2.5rem}.md\:mb-9{margin-block-end:3rem}.md\:mb-auto{margin-block-end:auto}.md\:ms-0{margin-inline-start:0}.md\:ms-1{margin-inline-start:.25rem}.md\:ms-2{margin-inline-start:.5rem}.md\:ms-3{margin-inline-start:.75rem}.md\:ms-4{margin-inline-start:1rem}.md\:ms-5{margin-inline-start:1.25rem}.md\:ms-6{margin-inline-start:1.5rem}.md\:ms-7{margin-inline-start:2rem}.md\:ms-8{margin-inline-start:2.5rem}.md\:ms-9{margin-inline-start:3rem}.md\:ms--1{margin-inline-start:-.25rem}.md\:ms--2{margin-inline-start:-.5rem}.md\:ms-auto{margin-inline-start:auto}.md\:p-0{padding:0}.md\:p-1{padding:.25rem}.md\:p-2{padding:.5rem}.md\:p-3{padding:.75rem}.md\:p-4{padding:1rem}.md\:p-5{padding:1.25rem}.md\:p-6{padding:1.5rem}.md\:p-7{padding:2rem}.md\:p-8{padding:2.5rem}.md\:p-9{padding:3rem}.md\:px-0{padding-inline:0}.md\:px-1{padding-inline:.25rem}.md\:px-2{padding-inline:.5rem}.md\:px-3{padding-inline:.75rem}.md\:px-4{padding-inline:1rem}.md\:px-5{padding-inline:1.25rem}.md\:px-6{padding-inline:1.5rem}.md\:px-7{padding-inline:2rem}.md\:px-8{padding-inline:2.5rem}.md\:px-9{padding-inline:3rem}.md\:py-0{padding-block:0}.md\:py-1{padding-block:.25rem}.md\:py-2{padding-block:.5rem}.md\:py-3{padding-block:.75rem}.md\:py-4{padding-block:1rem}.md\:py-5{padding-block:1.25rem}.md\:py-6{padding-block:1.5rem}.md\:py-7{padding-block:2rem}.md\:py-8{padding-block:2.5rem}.md\:py-9{padding-block:3rem}.md\:pt-0{padding-block-start:0}.md\:pt-1{padding-block-start:.25rem}.md\:pt-2{padding-block-start:.5rem}.md\:pt-3{padding-block-start:.75rem}.md\:pt-4{padding-block-start:1rem}.md\:pt-5{padding-block-start:1.25rem}.md\:pt-6{padding-block-start:1.5rem}.md\:pt-7{padding-block-start:2rem}.md\:pt-8{padding-block-start:2.5rem}.md\:pt-9{padding-block-start:3rem}.md\:pe-0{padding-inline-end:0}.md\:pe-1{padding-inline-end:.25rem}.md\:pe-2{padding-inline-end:.5rem}.md\:pe-3{padding-inline-end:.75rem}.md\:pe-4{padding-inline-end:1rem}.md\:pe-5{padding-inline-end:1.25rem}.md\:pe-6{padding-inline-end:1.5rem}.md\:pe-7{padding-inline-end:2rem}.md\:pe-8{padding-inline-end:2.5rem}.md\:pe-9{padding-inline-end:3rem}.md\:pb-0{padding-block-end:0}.md\:pb-1{padding-block-end:.25rem}.md\:pb-2{padding-block-end:.5rem}.md\:pb-3{padding-block-end:.75rem}.md\:pb-4{padding-block-end:1rem}.md\:pb-5{padding-block-end:1.25rem}.md\:pb-6{padding-block-end:1.5rem}.md\:pb-7{padding-block-end:2rem}.md\:pb-8{padding-block-end:2.5rem}.md\:pb-9{padding-block-end:3rem}.md\:ps-0{padding-inline-start:0}.md\:ps-1{padding-inline-start:.25rem}.md\:ps-2{padding-inline-start:.5rem}.md\:ps-3{padding-inline-start:.75rem}.md\:ps-4{padding-inline-start:1rem}.md\:ps-5{padding-inline-start:1.25rem}.md\:ps-6{padding-inline-start:1.5rem}.md\:ps-7{padding-inline-start:2rem}.md\:ps-8{padding-inline-start:2.5rem}.md\:ps-9{padding-inline-start:3rem}.md\:gap-0{gap:0}.md\:gap-1{gap:.25rem}.md\:gap-2{gap:.5rem}.md\:gap-3{gap:.75rem}.md\:gap-4{gap:1rem}.md\:gap-5{gap:1.25rem}.md\:gap-6{gap:1.5rem}.md\:gap-7{gap:2rem}.md\:gap-8{gap:2.5rem}.md\:gap-9{gap:3rem}.md\:row-gap-0{row-gap:0}.md\:row-gap-1{row-gap:.25rem}.md\:row-gap-2{row-gap:.5rem}.md\:row-gap-3{row-gap:.75rem}.md\:row-gap-4{row-gap:1rem}.md\:row-gap-5{row-gap:1.25rem}.md\:row-gap-6{row-gap:1.5rem}.md\:row-gap-7{row-gap:2rem}.md\:row-gap-8{row-gap:2.5rem}.md\:row-gap-9{row-gap:3rem}.md\:column-gap-0{column-gap:0}.md\:column-gap-1{column-gap:.25rem}.md\:column-gap-2{column-gap:.5rem}.md\:column-gap-3{column-gap:.75rem}.md\:column-gap-4{column-gap:1rem}.md\:column-gap-5{column-gap:1.25rem}.md\:column-gap-6{column-gap:1.5rem}.md\:column-gap-7{column-gap:2rem}.md\:column-gap-8{column-gap:2.5rem}.md\:column-gap-9{column-gap:3rem}}@media (width>=1024px){.lg\:d-inline{display:inline}.lg\:d-inline-block{display:inline-block}.lg\:d-block{display:block}.lg\:d-grid{display:grid}.lg\:d-inline-grid{display:inline-grid}.lg\:d-table{display:table}.lg\:d-table-row{display:table-row}.lg\:d-table-cell{display:table-cell}.lg\:d-flex{display:flex}.lg\:d-inline-flex{display:inline-flex}.lg\:d-contents{display:contents}.lg\:d-flow-root{display:flow-root}.lg\:d-none{display:none}.lg\:flex-fill{flex:auto}.lg\:flex-row{flex-direction:row}.lg\:flex-column{flex-direction:column}.lg\:flex-row-reverse{flex-direction:row-reverse}.lg\:flex-column-reverse{flex-direction:column-reverse}.lg\:flex-grow-0{flex-grow:0}.lg\:flex-grow-1{flex-grow:1}.lg\:flex-shrink-0{flex-shrink:0}.lg\:flex-shrink-1{flex-shrink:1}.lg\:flex-wrap{flex-wrap:wrap}.lg\:flex-nowrap{flex-wrap:nowrap}.lg\:flex-wrap-reverse{flex-wrap:wrap-reverse}.lg\:justify-content-start{justify-content:flex-start}.lg\:justify-content-end{justify-content:flex-end}.lg\:justify-content-center{justify-content:center}.lg\:justify-content-between{justify-content:space-between}.lg\:justify-content-around{justify-content:space-around}.lg\:justify-content-evenly{justify-content:space-evenly}.lg\:justify-items-start{justify-items:start}.lg\:justify-items-end{justify-items:end}.lg\:justify-items-center{justify-items:center}.lg\:justify-items-stretch{justify-items:stretch}.lg\:align-items-start{align-items:flex-start}.lg\:align-items-end{align-items:flex-end}.lg\:align-items-center{align-items:center}.lg\:align-items-baseline{align-items:baseline}.lg\:align-items-stretch{align-items:stretch}.lg\:align-content-start{align-content:flex-start}.lg\:align-content-end{align-content:flex-end}.lg\:align-content-center{align-content:center}.lg\:align-content-between{align-content:space-between}.lg\:align-content-around{align-content:space-around}.lg\:align-content-stretch{align-content:stretch}.lg\:align-self-auto{align-self:auto}.lg\:align-self-start{align-self:flex-start}.lg\:align-self-end{align-self:flex-end}.lg\:align-self-center{align-self:center}.lg\:align-self-baseline{align-self:baseline}.lg\:align-self-stretch{align-self:stretch}.lg\:place-items-start{place-items:start}.lg\:place-items-end{place-items:end}.lg\:place-items-center{place-items:center}.lg\:place-items-stretch{place-items:stretch stretch}.lg\:grid-cols-1{grid-template-columns:1fr}.lg\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.lg\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.lg\:grid-cols-fill{grid-column:1/-1}.lg\:grid-auto-flow-row{grid-auto-flow:row}.lg\:grid-auto-flow-column{grid-auto-flow:column}.lg\:grid-auto-flow-dense{grid-auto-flow:dense}.lg\:order-first{order:-1}.lg\:order-0{order:0}.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:order-3{order:3}.lg\:order-4{order:4}.lg\:order-5{order:5}.lg\:order-last{order:6}.lg\:m-0{margin:0}.lg\:m-1{margin:.25rem}.lg\:m-2{margin:.5rem}.lg\:m-3{margin:.75rem}.lg\:m-4{margin:1rem}.lg\:m-5{margin:1.25rem}.lg\:m-6{margin:1.5rem}.lg\:m-7{margin:2rem}.lg\:m-8{margin:2.5rem}.lg\:m-9{margin:3rem}.lg\:m-auto{margin:auto}.lg\:mx-0{margin-inline:0}.lg\:mx-1{margin-inline:.25rem}.lg\:mx-2{margin-inline:.5rem}.lg\:mx-3{margin-inline:.75rem}.lg\:mx-4{margin-inline:1rem}.lg\:mx-5{margin-inline:1.25rem}.lg\:mx-6{margin-inline:1.5rem}.lg\:mx-7{margin-inline:2rem}.lg\:mx-8{margin-inline:2.5rem}.lg\:mx-9{margin-inline:3rem}.lg\:mx-auto{margin-inline:auto}.lg\:my-0{margin-block:0}.lg\:my-1{margin-block:.25rem}.lg\:my-2{margin-block:.5rem}.lg\:my-3{margin-block:.75rem}.lg\:my-4{margin-block:1rem}.lg\:my-5{margin-block:1.25rem}.lg\:my-6{margin-block:1.5rem}.lg\:my-7{margin-block:2rem}.lg\:my-8{margin-block:2.5rem}.lg\:my-9{margin-block:3rem}.lg\:my-auto{margin-block:auto}.lg\:mt-0{margin-block-start:0}.lg\:mt-1{margin-block-start:.25rem}.lg\:mt-2{margin-block-start:.5rem}.lg\:mt-3{margin-block-start:.75rem}.lg\:mt-4{margin-block-start:1rem}.lg\:mt-5{margin-block-start:1.25rem}.lg\:mt-6{margin-block-start:1.5rem}.lg\:mt-7{margin-block-start:2rem}.lg\:mt-8{margin-block-start:2.5rem}.lg\:mt-9{margin-block-start:3rem}.lg\:mt-auto{margin-block-start:auto}.lg\:me-0{margin-inline-end:0}.lg\:me-1{margin-inline-end:.25rem}.lg\:me-2{margin-inline-end:.5rem}.lg\:me-3{margin-inline-end:.75rem}.lg\:me-4{margin-inline-end:1rem}.lg\:me-5{margin-inline-end:1.25rem}.lg\:me-6{margin-inline-end:1.5rem}.lg\:me-7{margin-inline-end:2rem}.lg\:me-8{margin-inline-end:2.5rem}.lg\:me-9{margin-inline-end:3rem}.lg\:me--1{margin-inline-end:-.25rem}.lg\:me--2{margin-inline-end:-.5rem}.lg\:me-auto{margin-inline-end:auto}.lg\:mb-0{margin-block-end:0}.lg\:mb-1{margin-block-end:.25rem}.lg\:mb-2{margin-block-end:.5rem}.lg\:mb-3{margin-block-end:.75rem}.lg\:mb-4{margin-block-end:1rem}.lg\:mb-5{margin-block-end:1.25rem}.lg\:mb-6{margin-block-end:1.5rem}.lg\:mb-7{margin-block-end:2rem}.lg\:mb-8{margin-block-end:2.5rem}.lg\:mb-9{margin-block-end:3rem}.lg\:mb-auto{margin-block-end:auto}.lg\:ms-0{margin-inline-start:0}.lg\:ms-1{margin-inline-start:.25rem}.lg\:ms-2{margin-inline-start:.5rem}.lg\:ms-3{margin-inline-start:.75rem}.lg\:ms-4{margin-inline-start:1rem}.lg\:ms-5{margin-inline-start:1.25rem}.lg\:ms-6{margin-inline-start:1.5rem}.lg\:ms-7{margin-inline-start:2rem}.lg\:ms-8{margin-inline-start:2.5rem}.lg\:ms-9{margin-inline-start:3rem}.lg\:ms--1{margin-inline-start:-.25rem}.lg\:ms--2{margin-inline-start:-.5rem}.lg\:ms-auto{margin-inline-start:auto}.lg\:p-0{padding:0}.lg\:p-1{padding:.25rem}.lg\:p-2{padding:.5rem}.lg\:p-3{padding:.75rem}.lg\:p-4{padding:1rem}.lg\:p-5{padding:1.25rem}.lg\:p-6{padding:1.5rem}.lg\:p-7{padding:2rem}.lg\:p-8{padding:2.5rem}.lg\:p-9{padding:3rem}.lg\:px-0{padding-inline:0}.lg\:px-1{padding-inline:.25rem}.lg\:px-2{padding-inline:.5rem}.lg\:px-3{padding-inline:.75rem}.lg\:px-4{padding-inline:1rem}.lg\:px-5{padding-inline:1.25rem}.lg\:px-6{padding-inline:1.5rem}.lg\:px-7{padding-inline:2rem}.lg\:px-8{padding-inline:2.5rem}.lg\:px-9{padding-inline:3rem}.lg\:py-0{padding-block:0}.lg\:py-1{padding-block:.25rem}.lg\:py-2{padding-block:.5rem}.lg\:py-3{padding-block:.75rem}.lg\:py-4{padding-block:1rem}.lg\:py-5{padding-block:1.25rem}.lg\:py-6{padding-block:1.5rem}.lg\:py-7{padding-block:2rem}.lg\:py-8{padding-block:2.5rem}.lg\:py-9{padding-block:3rem}.lg\:pt-0{padding-block-start:0}.lg\:pt-1{padding-block-start:.25rem}.lg\:pt-2{padding-block-start:.5rem}.lg\:pt-3{padding-block-start:.75rem}.lg\:pt-4{padding-block-start:1rem}.lg\:pt-5{padding-block-start:1.25rem}.lg\:pt-6{padding-block-start:1.5rem}.lg\:pt-7{padding-block-start:2rem}.lg\:pt-8{padding-block-start:2.5rem}.lg\:pt-9{padding-block-start:3rem}.lg\:pe-0{padding-inline-end:0}.lg\:pe-1{padding-inline-end:.25rem}.lg\:pe-2{padding-inline-end:.5rem}.lg\:pe-3{padding-inline-end:.75rem}.lg\:pe-4{padding-inline-end:1rem}.lg\:pe-5{padding-inline-end:1.25rem}.lg\:pe-6{padding-inline-end:1.5rem}.lg\:pe-7{padding-inline-end:2rem}.lg\:pe-8{padding-inline-end:2.5rem}.lg\:pe-9{padding-inline-end:3rem}.lg\:pb-0{padding-block-end:0}.lg\:pb-1{padding-block-end:.25rem}.lg\:pb-2{padding-block-end:.5rem}.lg\:pb-3{padding-block-end:.75rem}.lg\:pb-4{padding-block-end:1rem}.lg\:pb-5{padding-block-end:1.25rem}.lg\:pb-6{padding-block-end:1.5rem}.lg\:pb-7{padding-block-end:2rem}.lg\:pb-8{padding-block-end:2.5rem}.lg\:pb-9{padding-block-end:3rem}.lg\:ps-0{padding-inline-start:0}.lg\:ps-1{padding-inline-start:.25rem}.lg\:ps-2{padding-inline-start:.5rem}.lg\:ps-3{padding-inline-start:.75rem}.lg\:ps-4{padding-inline-start:1rem}.lg\:ps-5{padding-inline-start:1.25rem}.lg\:ps-6{padding-inline-start:1.5rem}.lg\:ps-7{padding-inline-start:2rem}.lg\:ps-8{padding-inline-start:2.5rem}.lg\:ps-9{padding-inline-start:3rem}.lg\:gap-0{gap:0}.lg\:gap-1{gap:.25rem}.lg\:gap-2{gap:.5rem}.lg\:gap-3{gap:.75rem}.lg\:gap-4{gap:1rem}.lg\:gap-5{gap:1.25rem}.lg\:gap-6{gap:1.5rem}.lg\:gap-7{gap:2rem}.lg\:gap-8{gap:2.5rem}.lg\:gap-9{gap:3rem}.lg\:row-gap-0{row-gap:0}.lg\:row-gap-1{row-gap:.25rem}.lg\:row-gap-2{row-gap:.5rem}.lg\:row-gap-3{row-gap:.75rem}.lg\:row-gap-4{row-gap:1rem}.lg\:row-gap-5{row-gap:1.25rem}.lg\:row-gap-6{row-gap:1.5rem}.lg\:row-gap-7{row-gap:2rem}.lg\:row-gap-8{row-gap:2.5rem}.lg\:row-gap-9{row-gap:3rem}.lg\:column-gap-0{column-gap:0}.lg\:column-gap-1{column-gap:.25rem}.lg\:column-gap-2{column-gap:.5rem}.lg\:column-gap-3{column-gap:.75rem}.lg\:column-gap-4{column-gap:1rem}.lg\:column-gap-5{column-gap:1.25rem}.lg\:column-gap-6{column-gap:1.5rem}.lg\:column-gap-7{column-gap:2rem}.lg\:column-gap-8{column-gap:2.5rem}.lg\:column-gap-9{column-gap:3rem}}@media (width>=1280px){.xl\:d-inline{display:inline}.xl\:d-inline-block{display:inline-block}.xl\:d-block{display:block}.xl\:d-grid{display:grid}.xl\:d-inline-grid{display:inline-grid}.xl\:d-table{display:table}.xl\:d-table-row{display:table-row}.xl\:d-table-cell{display:table-cell}.xl\:d-flex{display:flex}.xl\:d-inline-flex{display:inline-flex}.xl\:d-contents{display:contents}.xl\:d-flow-root{display:flow-root}.xl\:d-none{display:none}.xl\:flex-fill{flex:auto}.xl\:flex-row{flex-direction:row}.xl\:flex-column{flex-direction:column}.xl\:flex-row-reverse{flex-direction:row-reverse}.xl\:flex-column-reverse{flex-direction:column-reverse}.xl\:flex-grow-0{flex-grow:0}.xl\:flex-grow-1{flex-grow:1}.xl\:flex-shrink-0{flex-shrink:0}.xl\:flex-shrink-1{flex-shrink:1}.xl\:flex-wrap{flex-wrap:wrap}.xl\:flex-nowrap{flex-wrap:nowrap}.xl\:flex-wrap-reverse{flex-wrap:wrap-reverse}.xl\:justify-content-start{justify-content:flex-start}.xl\:justify-content-end{justify-content:flex-end}.xl\:justify-content-center{justify-content:center}.xl\:justify-content-between{justify-content:space-between}.xl\:justify-content-around{justify-content:space-around}.xl\:justify-content-evenly{justify-content:space-evenly}.xl\:justify-items-start{justify-items:start}.xl\:justify-items-end{justify-items:end}.xl\:justify-items-center{justify-items:center}.xl\:justify-items-stretch{justify-items:stretch}.xl\:align-items-start{align-items:flex-start}.xl\:align-items-end{align-items:flex-end}.xl\:align-items-center{align-items:center}.xl\:align-items-baseline{align-items:baseline}.xl\:align-items-stretch{align-items:stretch}.xl\:align-content-start{align-content:flex-start}.xl\:align-content-end{align-content:flex-end}.xl\:align-content-center{align-content:center}.xl\:align-content-between{align-content:space-between}.xl\:align-content-around{align-content:space-around}.xl\:align-content-stretch{align-content:stretch}.xl\:align-self-auto{align-self:auto}.xl\:align-self-start{align-self:flex-start}.xl\:align-self-end{align-self:flex-end}.xl\:align-self-center{align-self:center}.xl\:align-self-baseline{align-self:baseline}.xl\:align-self-stretch{align-self:stretch}.xl\:place-items-start{place-items:start}.xl\:place-items-end{place-items:end}.xl\:place-items-center{place-items:center}.xl\:place-items-stretch{place-items:stretch stretch}.xl\:grid-cols-1{grid-template-columns:1fr}.xl\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.xl\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.xl\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.xl\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.xl\:grid-cols-fill{grid-column:1/-1}.xl\:grid-auto-flow-row{grid-auto-flow:row}.xl\:grid-auto-flow-column{grid-auto-flow:column}.xl\:grid-auto-flow-dense{grid-auto-flow:dense}.xl\:order-first{order:-1}.xl\:order-0{order:0}.xl\:order-1{order:1}.xl\:order-2{order:2}.xl\:order-3{order:3}.xl\:order-4{order:4}.xl\:order-5{order:5}.xl\:order-last{order:6}.xl\:m-0{margin:0}.xl\:m-1{margin:.25rem}.xl\:m-2{margin:.5rem}.xl\:m-3{margin:.75rem}.xl\:m-4{margin:1rem}.xl\:m-5{margin:1.25rem}.xl\:m-6{margin:1.5rem}.xl\:m-7{margin:2rem}.xl\:m-8{margin:2.5rem}.xl\:m-9{margin:3rem}.xl\:m-auto{margin:auto}.xl\:mx-0{margin-inline:0}.xl\:mx-1{margin-inline:.25rem}.xl\:mx-2{margin-inline:.5rem}.xl\:mx-3{margin-inline:.75rem}.xl\:mx-4{margin-inline:1rem}.xl\:mx-5{margin-inline:1.25rem}.xl\:mx-6{margin-inline:1.5rem}.xl\:mx-7{margin-inline:2rem}.xl\:mx-8{margin-inline:2.5rem}.xl\:mx-9{margin-inline:3rem}.xl\:mx-auto{margin-inline:auto}.xl\:my-0{margin-block:0}.xl\:my-1{margin-block:.25rem}.xl\:my-2{margin-block:.5rem}.xl\:my-3{margin-block:.75rem}.xl\:my-4{margin-block:1rem}.xl\:my-5{margin-block:1.25rem}.xl\:my-6{margin-block:1.5rem}.xl\:my-7{margin-block:2rem}.xl\:my-8{margin-block:2.5rem}.xl\:my-9{margin-block:3rem}.xl\:my-auto{margin-block:auto}.xl\:mt-0{margin-block-start:0}.xl\:mt-1{margin-block-start:.25rem}.xl\:mt-2{margin-block-start:.5rem}.xl\:mt-3{margin-block-start:.75rem}.xl\:mt-4{margin-block-start:1rem}.xl\:mt-5{margin-block-start:1.25rem}.xl\:mt-6{margin-block-start:1.5rem}.xl\:mt-7{margin-block-start:2rem}.xl\:mt-8{margin-block-start:2.5rem}.xl\:mt-9{margin-block-start:3rem}.xl\:mt-auto{margin-block-start:auto}.xl\:me-0{margin-inline-end:0}.xl\:me-1{margin-inline-end:.25rem}.xl\:me-2{margin-inline-end:.5rem}.xl\:me-3{margin-inline-end:.75rem}.xl\:me-4{margin-inline-end:1rem}.xl\:me-5{margin-inline-end:1.25rem}.xl\:me-6{margin-inline-end:1.5rem}.xl\:me-7{margin-inline-end:2rem}.xl\:me-8{margin-inline-end:2.5rem}.xl\:me-9{margin-inline-end:3rem}.xl\:me--1{margin-inline-end:-.25rem}.xl\:me--2{margin-inline-end:-.5rem}.xl\:me-auto{margin-inline-end:auto}.xl\:mb-0{margin-block-end:0}.xl\:mb-1{margin-block-end:.25rem}.xl\:mb-2{margin-block-end:.5rem}.xl\:mb-3{margin-block-end:.75rem}.xl\:mb-4{margin-block-end:1rem}.xl\:mb-5{margin-block-end:1.25rem}.xl\:mb-6{margin-block-end:1.5rem}.xl\:mb-7{margin-block-end:2rem}.xl\:mb-8{margin-block-end:2.5rem}.xl\:mb-9{margin-block-end:3rem}.xl\:mb-auto{margin-block-end:auto}.xl\:ms-0{margin-inline-start:0}.xl\:ms-1{margin-inline-start:.25rem}.xl\:ms-2{margin-inline-start:.5rem}.xl\:ms-3{margin-inline-start:.75rem}.xl\:ms-4{margin-inline-start:1rem}.xl\:ms-5{margin-inline-start:1.25rem}.xl\:ms-6{margin-inline-start:1.5rem}.xl\:ms-7{margin-inline-start:2rem}.xl\:ms-8{margin-inline-start:2.5rem}.xl\:ms-9{margin-inline-start:3rem}.xl\:ms--1{margin-inline-start:-.25rem}.xl\:ms--2{margin-inline-start:-.5rem}.xl\:ms-auto{margin-inline-start:auto}.xl\:p-0{padding:0}.xl\:p-1{padding:.25rem}.xl\:p-2{padding:.5rem}.xl\:p-3{padding:.75rem}.xl\:p-4{padding:1rem}.xl\:p-5{padding:1.25rem}.xl\:p-6{padding:1.5rem}.xl\:p-7{padding:2rem}.xl\:p-8{padding:2.5rem}.xl\:p-9{padding:3rem}.xl\:px-0{padding-inline:0}.xl\:px-1{padding-inline:.25rem}.xl\:px-2{padding-inline:.5rem}.xl\:px-3{padding-inline:.75rem}.xl\:px-4{padding-inline:1rem}.xl\:px-5{padding-inline:1.25rem}.xl\:px-6{padding-inline:1.5rem}.xl\:px-7{padding-inline:2rem}.xl\:px-8{padding-inline:2.5rem}.xl\:px-9{padding-inline:3rem}.xl\:py-0{padding-block:0}.xl\:py-1{padding-block:.25rem}.xl\:py-2{padding-block:.5rem}.xl\:py-3{padding-block:.75rem}.xl\:py-4{padding-block:1rem}.xl\:py-5{padding-block:1.25rem}.xl\:py-6{padding-block:1.5rem}.xl\:py-7{padding-block:2rem}.xl\:py-8{padding-block:2.5rem}.xl\:py-9{padding-block:3rem}.xl\:pt-0{padding-block-start:0}.xl\:pt-1{padding-block-start:.25rem}.xl\:pt-2{padding-block-start:.5rem}.xl\:pt-3{padding-block-start:.75rem}.xl\:pt-4{padding-block-start:1rem}.xl\:pt-5{padding-block-start:1.25rem}.xl\:pt-6{padding-block-start:1.5rem}.xl\:pt-7{padding-block-start:2rem}.xl\:pt-8{padding-block-start:2.5rem}.xl\:pt-9{padding-block-start:3rem}.xl\:pe-0{padding-inline-end:0}.xl\:pe-1{padding-inline-end:.25rem}.xl\:pe-2{padding-inline-end:.5rem}.xl\:pe-3{padding-inline-end:.75rem}.xl\:pe-4{padding-inline-end:1rem}.xl\:pe-5{padding-inline-end:1.25rem}.xl\:pe-6{padding-inline-end:1.5rem}.xl\:pe-7{padding-inline-end:2rem}.xl\:pe-8{padding-inline-end:2.5rem}.xl\:pe-9{padding-inline-end:3rem}.xl\:pb-0{padding-block-end:0}.xl\:pb-1{padding-block-end:.25rem}.xl\:pb-2{padding-block-end:.5rem}.xl\:pb-3{padding-block-end:.75rem}.xl\:pb-4{padding-block-end:1rem}.xl\:pb-5{padding-block-end:1.25rem}.xl\:pb-6{padding-block-end:1.5rem}.xl\:pb-7{padding-block-end:2rem}.xl\:pb-8{padding-block-end:2.5rem}.xl\:pb-9{padding-block-end:3rem}.xl\:ps-0{padding-inline-start:0}.xl\:ps-1{padding-inline-start:.25rem}.xl\:ps-2{padding-inline-start:.5rem}.xl\:ps-3{padding-inline-start:.75rem}.xl\:ps-4{padding-inline-start:1rem}.xl\:ps-5{padding-inline-start:1.25rem}.xl\:ps-6{padding-inline-start:1.5rem}.xl\:ps-7{padding-inline-start:2rem}.xl\:ps-8{padding-inline-start:2.5rem}.xl\:ps-9{padding-inline-start:3rem}.xl\:gap-0{gap:0}.xl\:gap-1{gap:.25rem}.xl\:gap-2{gap:.5rem}.xl\:gap-3{gap:.75rem}.xl\:gap-4{gap:1rem}.xl\:gap-5{gap:1.25rem}.xl\:gap-6{gap:1.5rem}.xl\:gap-7{gap:2rem}.xl\:gap-8{gap:2.5rem}.xl\:gap-9{gap:3rem}.xl\:row-gap-0{row-gap:0}.xl\:row-gap-1{row-gap:.25rem}.xl\:row-gap-2{row-gap:.5rem}.xl\:row-gap-3{row-gap:.75rem}.xl\:row-gap-4{row-gap:1rem}.xl\:row-gap-5{row-gap:1.25rem}.xl\:row-gap-6{row-gap:1.5rem}.xl\:row-gap-7{row-gap:2rem}.xl\:row-gap-8{row-gap:2.5rem}.xl\:row-gap-9{row-gap:3rem}.xl\:column-gap-0{column-gap:0}.xl\:column-gap-1{column-gap:.25rem}.xl\:column-gap-2{column-gap:.5rem}.xl\:column-gap-3{column-gap:.75rem}.xl\:column-gap-4{column-gap:1rem}.xl\:column-gap-5{column-gap:1.25rem}.xl\:column-gap-6{column-gap:1.5rem}.xl\:column-gap-7{column-gap:2rem}.xl\:column-gap-8{column-gap:2.5rem}.xl\:column-gap-9{column-gap:3rem}}@media (width>=1536px){.\32 xl\:d-inline{display:inline}.\32 xl\:d-inline-block{display:inline-block}.\32 xl\:d-block{display:block}.\32 xl\:d-grid{display:grid}.\32 xl\:d-inline-grid{display:inline-grid}.\32 xl\:d-table{display:table}.\32 xl\:d-table-row{display:table-row}.\32 xl\:d-table-cell{display:table-cell}.\32 xl\:d-flex{display:flex}.\32 xl\:d-inline-flex{display:inline-flex}.\32 xl\:d-contents{display:contents}.\32 xl\:d-flow-root{display:flow-root}.\32 xl\:d-none{display:none}.\32 xl\:flex-fill{flex:auto}.\32 xl\:flex-row{flex-direction:row}.\32 xl\:flex-column{flex-direction:column}.\32 xl\:flex-row-reverse{flex-direction:row-reverse}.\32 xl\:flex-column-reverse{flex-direction:column-reverse}.\32 xl\:flex-grow-0{flex-grow:0}.\32 xl\:flex-grow-1{flex-grow:1}.\32 xl\:flex-shrink-0{flex-shrink:0}.\32 xl\:flex-shrink-1{flex-shrink:1}.\32 xl\:flex-wrap{flex-wrap:wrap}.\32 xl\:flex-nowrap{flex-wrap:nowrap}.\32 xl\:flex-wrap-reverse{flex-wrap:wrap-reverse}.\32 xl\:justify-content-start{justify-content:flex-start}.\32 xl\:justify-content-end{justify-content:flex-end}.\32 xl\:justify-content-center{justify-content:center}.\32 xl\:justify-content-between{justify-content:space-between}.\32 xl\:justify-content-around{justify-content:space-around}.\32 xl\:justify-content-evenly{justify-content:space-evenly}.\32 xl\:justify-items-start{justify-items:start}.\32 xl\:justify-items-end{justify-items:end}.\32 xl\:justify-items-center{justify-items:center}.\32 xl\:justify-items-stretch{justify-items:stretch}.\32 xl\:align-items-start{align-items:flex-start}.\32 xl\:align-items-end{align-items:flex-end}.\32 xl\:align-items-center{align-items:center}.\32 xl\:align-items-baseline{align-items:baseline}.\32 xl\:align-items-stretch{align-items:stretch}.\32 xl\:align-content-start{align-content:flex-start}.\32 xl\:align-content-end{align-content:flex-end}.\32 xl\:align-content-center{align-content:center}.\32 xl\:align-content-between{align-content:space-between}.\32 xl\:align-content-around{align-content:space-around}.\32 xl\:align-content-stretch{align-content:stretch}.\32 xl\:align-self-auto{align-self:auto}.\32 xl\:align-self-start{align-self:flex-start}.\32 xl\:align-self-end{align-self:flex-end}.\32 xl\:align-self-center{align-self:center}.\32 xl\:align-self-baseline{align-self:baseline}.\32 xl\:align-self-stretch{align-self:stretch}.\32 xl\:place-items-start{place-items:start}.\32 xl\:place-items-end{place-items:end}.\32 xl\:place-items-center{place-items:center}.\32 xl\:place-items-stretch{place-items:stretch stretch}.\32 xl\:grid-cols-1{grid-template-columns:1fr}.\32 xl\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.\32 xl\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.\32 xl\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.\32 xl\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.\32 xl\:grid-cols-fill{grid-column:1/-1}.\32 xl\:grid-auto-flow-row{grid-auto-flow:row}.\32 xl\:grid-auto-flow-column{grid-auto-flow:column}.\32 xl\:grid-auto-flow-dense{grid-auto-flow:dense}.\32 xl\:order-first{order:-1}.\32 xl\:order-0{order:0}.\32 xl\:order-1{order:1}.\32 xl\:order-2{order:2}.\32 xl\:order-3{order:3}.\32 xl\:order-4{order:4}.\32 xl\:order-5{order:5}.\32 xl\:order-last{order:6}.\32 xl\:m-0{margin:0}.\32 xl\:m-1{margin:.25rem}.\32 xl\:m-2{margin:.5rem}.\32 xl\:m-3{margin:.75rem}.\32 xl\:m-4{margin:1rem}.\32 xl\:m-5{margin:1.25rem}.\32 xl\:m-6{margin:1.5rem}.\32 xl\:m-7{margin:2rem}.\32 xl\:m-8{margin:2.5rem}.\32 xl\:m-9{margin:3rem}.\32 xl\:m-auto{margin:auto}.\32 xl\:mx-0{margin-inline:0}.\32 xl\:mx-1{margin-inline:.25rem}.\32 xl\:mx-2{margin-inline:.5rem}.\32 xl\:mx-3{margin-inline:.75rem}.\32 xl\:mx-4{margin-inline:1rem}.\32 xl\:mx-5{margin-inline:1.25rem}.\32 xl\:mx-6{margin-inline:1.5rem}.\32 xl\:mx-7{margin-inline:2rem}.\32 xl\:mx-8{margin-inline:2.5rem}.\32 xl\:mx-9{margin-inline:3rem}.\32 xl\:mx-auto{margin-inline:auto}.\32 xl\:my-0{margin-block:0}.\32 xl\:my-1{margin-block:.25rem}.\32 xl\:my-2{margin-block:.5rem}.\32 xl\:my-3{margin-block:.75rem}.\32 xl\:my-4{margin-block:1rem}.\32 xl\:my-5{margin-block:1.25rem}.\32 xl\:my-6{margin-block:1.5rem}.\32 xl\:my-7{margin-block:2rem}.\32 xl\:my-8{margin-block:2.5rem}.\32 xl\:my-9{margin-block:3rem}.\32 xl\:my-auto{margin-block:auto}.\32 xl\:mt-0{margin-block-start:0}.\32 xl\:mt-1{margin-block-start:.25rem}.\32 xl\:mt-2{margin-block-start:.5rem}.\32 xl\:mt-3{margin-block-start:.75rem}.\32 xl\:mt-4{margin-block-start:1rem}.\32 xl\:mt-5{margin-block-start:1.25rem}.\32 xl\:mt-6{margin-block-start:1.5rem}.\32 xl\:mt-7{margin-block-start:2rem}.\32 xl\:mt-8{margin-block-start:2.5rem}.\32 xl\:mt-9{margin-block-start:3rem}.\32 xl\:mt-auto{margin-block-start:auto}.\32 xl\:me-0{margin-inline-end:0}.\32 xl\:me-1{margin-inline-end:.25rem}.\32 xl\:me-2{margin-inline-end:.5rem}.\32 xl\:me-3{margin-inline-end:.75rem}.\32 xl\:me-4{margin-inline-end:1rem}.\32 xl\:me-5{margin-inline-end:1.25rem}.\32 xl\:me-6{margin-inline-end:1.5rem}.\32 xl\:me-7{margin-inline-end:2rem}.\32 xl\:me-8{margin-inline-end:2.5rem}.\32 xl\:me-9{margin-inline-end:3rem}.\32 xl\:me--1{margin-inline-end:-.25rem}.\32 xl\:me--2{margin-inline-end:-.5rem}.\32 xl\:me-auto{margin-inline-end:auto}.\32 xl\:mb-0{margin-block-end:0}.\32 xl\:mb-1{margin-block-end:.25rem}.\32 xl\:mb-2{margin-block-end:.5rem}.\32 xl\:mb-3{margin-block-end:.75rem}.\32 xl\:mb-4{margin-block-end:1rem}.\32 xl\:mb-5{margin-block-end:1.25rem}.\32 xl\:mb-6{margin-block-end:1.5rem}.\32 xl\:mb-7{margin-block-end:2rem}.\32 xl\:mb-8{margin-block-end:2.5rem}.\32 xl\:mb-9{margin-block-end:3rem}.\32 xl\:mb-auto{margin-block-end:auto}.\32 xl\:ms-0{margin-inline-start:0}.\32 xl\:ms-1{margin-inline-start:.25rem}.\32 xl\:ms-2{margin-inline-start:.5rem}.\32 xl\:ms-3{margin-inline-start:.75rem}.\32 xl\:ms-4{margin-inline-start:1rem}.\32 xl\:ms-5{margin-inline-start:1.25rem}.\32 xl\:ms-6{margin-inline-start:1.5rem}.\32 xl\:ms-7{margin-inline-start:2rem}.\32 xl\:ms-8{margin-inline-start:2.5rem}.\32 xl\:ms-9{margin-inline-start:3rem}.\32 xl\:ms--1{margin-inline-start:-.25rem}.\32 xl\:ms--2{margin-inline-start:-.5rem}.\32 xl\:ms-auto{margin-inline-start:auto}.\32 xl\:p-0{padding:0}.\32 xl\:p-1{padding:.25rem}.\32 xl\:p-2{padding:.5rem}.\32 xl\:p-3{padding:.75rem}.\32 xl\:p-4{padding:1rem}.\32 xl\:p-5{padding:1.25rem}.\32 xl\:p-6{padding:1.5rem}.\32 xl\:p-7{padding:2rem}.\32 xl\:p-8{padding:2.5rem}.\32 xl\:p-9{padding:3rem}.\32 xl\:px-0{padding-inline:0}.\32 xl\:px-1{padding-inline:.25rem}.\32 xl\:px-2{padding-inline:.5rem}.\32 xl\:px-3{padding-inline:.75rem}.\32 xl\:px-4{padding-inline:1rem}.\32 xl\:px-5{padding-inline:1.25rem}.\32 xl\:px-6{padding-inline:1.5rem}.\32 xl\:px-7{padding-inline:2rem}.\32 xl\:px-8{padding-inline:2.5rem}.\32 xl\:px-9{padding-inline:3rem}.\32 xl\:py-0{padding-block:0}.\32 xl\:py-1{padding-block:.25rem}.\32 xl\:py-2{padding-block:.5rem}.\32 xl\:py-3{padding-block:.75rem}.\32 xl\:py-4{padding-block:1rem}.\32 xl\:py-5{padding-block:1.25rem}.\32 xl\:py-6{padding-block:1.5rem}.\32 xl\:py-7{padding-block:2rem}.\32 xl\:py-8{padding-block:2.5rem}.\32 xl\:py-9{padding-block:3rem}.\32 xl\:pt-0{padding-block-start:0}.\32 xl\:pt-1{padding-block-start:.25rem}.\32 xl\:pt-2{padding-block-start:.5rem}.\32 xl\:pt-3{padding-block-start:.75rem}.\32 xl\:pt-4{padding-block-start:1rem}.\32 xl\:pt-5{padding-block-start:1.25rem}.\32 xl\:pt-6{padding-block-start:1.5rem}.\32 xl\:pt-7{padding-block-start:2rem}.\32 xl\:pt-8{padding-block-start:2.5rem}.\32 xl\:pt-9{padding-block-start:3rem}.\32 xl\:pe-0{padding-inline-end:0}.\32 xl\:pe-1{padding-inline-end:.25rem}.\32 xl\:pe-2{padding-inline-end:.5rem}.\32 xl\:pe-3{padding-inline-end:.75rem}.\32 xl\:pe-4{padding-inline-end:1rem}.\32 xl\:pe-5{padding-inline-end:1.25rem}.\32 xl\:pe-6{padding-inline-end:1.5rem}.\32 xl\:pe-7{padding-inline-end:2rem}.\32 xl\:pe-8{padding-inline-end:2.5rem}.\32 xl\:pe-9{padding-inline-end:3rem}.\32 xl\:pb-0{padding-block-end:0}.\32 xl\:pb-1{padding-block-end:.25rem}.\32 xl\:pb-2{padding-block-end:.5rem}.\32 xl\:pb-3{padding-block-end:.75rem}.\32 xl\:pb-4{padding-block-end:1rem}.\32 xl\:pb-5{padding-block-end:1.25rem}.\32 xl\:pb-6{padding-block-end:1.5rem}.\32 xl\:pb-7{padding-block-end:2rem}.\32 xl\:pb-8{padding-block-end:2.5rem}.\32 xl\:pb-9{padding-block-end:3rem}.\32 xl\:ps-0{padding-inline-start:0}.\32 xl\:ps-1{padding-inline-start:.25rem}.\32 xl\:ps-2{padding-inline-start:.5rem}.\32 xl\:ps-3{padding-inline-start:.75rem}.\32 xl\:ps-4{padding-inline-start:1rem}.\32 xl\:ps-5{padding-inline-start:1.25rem}.\32 xl\:ps-6{padding-inline-start:1.5rem}.\32 xl\:ps-7{padding-inline-start:2rem}.\32 xl\:ps-8{padding-inline-start:2.5rem}.\32 xl\:ps-9{padding-inline-start:3rem}.\32 xl\:gap-0{gap:0}.\32 xl\:gap-1{gap:.25rem}.\32 xl\:gap-2{gap:.5rem}.\32 xl\:gap-3{gap:.75rem}.\32 xl\:gap-4{gap:1rem}.\32 xl\:gap-5{gap:1.25rem}.\32 xl\:gap-6{gap:1.5rem}.\32 xl\:gap-7{gap:2rem}.\32 xl\:gap-8{gap:2.5rem}.\32 xl\:gap-9{gap:3rem}.\32 xl\:row-gap-0{row-gap:0}.\32 xl\:row-gap-1{row-gap:.25rem}.\32 xl\:row-gap-2{row-gap:.5rem}.\32 xl\:row-gap-3{row-gap:.75rem}.\32 xl\:row-gap-4{row-gap:1rem}.\32 xl\:row-gap-5{row-gap:1.25rem}.\32 xl\:row-gap-6{row-gap:1.5rem}.\32 xl\:row-gap-7{row-gap:2rem}.\32 xl\:row-gap-8{row-gap:2.5rem}.\32 xl\:row-gap-9{row-gap:3rem}.\32 xl\:column-gap-0{column-gap:0}.\32 xl\:column-gap-1{column-gap:.25rem}.\32 xl\:column-gap-2{column-gap:.5rem}.\32 xl\:column-gap-3{column-gap:.75rem}.\32 xl\:column-gap-4{column-gap:1rem}.\32 xl\:column-gap-5{column-gap:1.25rem}.\32 xl\:column-gap-6{column-gap:1.5rem}.\32 xl\:column-gap-7{column-gap:2rem}.\32 xl\:column-gap-8{column-gap:2.5rem}.\32 xl\:column-gap-9{column-gap:3rem}}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:1024px;--bs-breakpoint-xl:1280px;--bs-breakpoint-2xl:1536px}
/*# sourceMappingURL=bootstrap-grid.min.css.map */
\ No newline at end of file
-{"version":3,"sourceRoot":null,"mappings":"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","sources":["bootstrap-grid.css","../../scss/_banner.scss","../../scss/layout/_containers.scss","../../scss/layout/_breakpoints.scss","../../scss/_config.scss","../../scss/layout/_grid.scss","../../scss/mixins/_grid.scss","../../scss/utilities/_api.scss","../../scss/mixins/_utilities.scss","../../scss/bootstrap-grid.scss"],"sourcesContent":["/*!\n * Bootstrap Grid v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n@layer layout {\n .container,\n .container-fluid,\n .\\32 xl\\:container,\n .xl\\:container,\n .lg\\:container,\n .md\\:container,\n .sm\\:container {\n --gutter-x: 1.5rem;\n --gutter-y: 0;\n width: 100%;\n padding-inline: calc(var(--gutter-x) * 0.5);\n margin-inline: auto;\n }\n @media (width >= 576px) {\n .sm\\:container, .container {\n max-width: 540px;\n }\n }\n @media (width >= 768px) {\n .md\\:container, .sm\\:container, .container {\n max-width: 720px;\n }\n }\n @media (width >= 1024px) {\n .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 960px;\n }\n }\n @media (width >= 1280px) {\n .xl\\:container, .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 1200px;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:container, .xl\\:container, .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 1440px;\n }\n }\n}\n@layer layout {\n .row {\n --gutter-x: 1.5rem;\n --gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-inline: calc(-0.5 * var(--gutter-x));\n margin-top: calc(-1 * var(--gutter-y));\n }\n .row > * {\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-inline: calc(var(--gutter-x) * 0.5);\n margin-top: var(--gutter-y);\n }\n .col {\n flex: 1 0 0;\n }\n .row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .offset-3 {\n margin-inline-start: 25%;\n }\n .offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .offset-6 {\n margin-inline-start: 50%;\n }\n .offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .offset-9 {\n margin-inline-start: 75%;\n }\n .offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .g-0,\n .gx-0 {\n --gutter-x: 0;\n }\n .g-0,\n .gy-0 {\n --gutter-y: 0;\n }\n .g-1,\n .gx-1 {\n --gutter-x: 0.25rem;\n }\n .g-1,\n .gy-1 {\n --gutter-y: 0.25rem;\n }\n .g-2,\n .gx-2 {\n --gutter-x: 0.5rem;\n }\n .g-2,\n .gy-2 {\n --gutter-y: 0.5rem;\n }\n .g-3,\n .gx-3 {\n --gutter-x: 0.75rem;\n }\n .g-3,\n .gy-3 {\n --gutter-y: 0.75rem;\n }\n .g-4,\n .gx-4 {\n --gutter-x: 1rem;\n }\n .g-4,\n .gy-4 {\n --gutter-y: 1rem;\n }\n .g-5,\n .gx-5 {\n --gutter-x: 1.25rem;\n }\n .g-5,\n .gy-5 {\n --gutter-y: 1.25rem;\n }\n .g-6,\n .gx-6 {\n --gutter-x: 1.5rem;\n }\n .g-6,\n .gy-6 {\n --gutter-y: 1.5rem;\n }\n .g-7,\n .gx-7 {\n --gutter-x: 2rem;\n }\n .g-7,\n .gy-7 {\n --gutter-y: 2rem;\n }\n .g-8,\n .gx-8 {\n --gutter-x: 2.5rem;\n }\n .g-8,\n .gy-8 {\n --gutter-y: 2.5rem;\n }\n .g-9,\n .gx-9 {\n --gutter-x: 3rem;\n }\n .g-9,\n .gy-9 {\n --gutter-y: 3rem;\n }\n @media (width >= 576px) {\n .sm\\:col {\n flex: 1 0 0;\n }\n .sm\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .sm\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .sm\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .sm\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .sm\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .sm\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .sm\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .sm\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .sm\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .sm\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .sm\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .sm\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .sm\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .sm\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .sm\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .sm\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .sm\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .sm\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .sm\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .sm\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .sm\\:offset-0 {\n margin-inline-start: 0;\n }\n .sm\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .sm\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .sm\\:offset-3 {\n margin-inline-start: 25%;\n }\n .sm\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .sm\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .sm\\:offset-6 {\n margin-inline-start: 50%;\n }\n .sm\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .sm\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .sm\\:offset-9 {\n margin-inline-start: 75%;\n }\n .sm\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .sm\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .sm\\:g-0,\n .sm\\:gx-0 {\n --gutter-x: 0;\n }\n .sm\\:g-0,\n .sm\\:gy-0 {\n --gutter-y: 0;\n }\n .sm\\:g-1,\n .sm\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .sm\\:g-1,\n .sm\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .sm\\:g-2,\n .sm\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .sm\\:g-2,\n .sm\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .sm\\:g-3,\n .sm\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .sm\\:g-3,\n .sm\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .sm\\:g-4,\n .sm\\:gx-4 {\n --gutter-x: 1rem;\n }\n .sm\\:g-4,\n .sm\\:gy-4 {\n --gutter-y: 1rem;\n }\n .sm\\:g-5,\n .sm\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .sm\\:g-5,\n .sm\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .sm\\:g-6,\n .sm\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .sm\\:g-6,\n .sm\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .sm\\:g-7,\n .sm\\:gx-7 {\n --gutter-x: 2rem;\n }\n .sm\\:g-7,\n .sm\\:gy-7 {\n --gutter-y: 2rem;\n }\n .sm\\:g-8,\n .sm\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .sm\\:g-8,\n .sm\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .sm\\:g-9,\n .sm\\:gx-9 {\n --gutter-x: 3rem;\n }\n .sm\\:g-9,\n .sm\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 768px) {\n .md\\:col {\n flex: 1 0 0;\n }\n .md\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .md\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .md\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .md\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .md\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .md\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .md\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .md\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .md\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .md\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .md\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .md\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .md\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .md\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .md\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .md\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .md\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .md\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .md\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .md\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .md\\:offset-0 {\n margin-inline-start: 0;\n }\n .md\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .md\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .md\\:offset-3 {\n margin-inline-start: 25%;\n }\n .md\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .md\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .md\\:offset-6 {\n margin-inline-start: 50%;\n }\n .md\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .md\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .md\\:offset-9 {\n margin-inline-start: 75%;\n }\n .md\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .md\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .md\\:g-0,\n .md\\:gx-0 {\n --gutter-x: 0;\n }\n .md\\:g-0,\n .md\\:gy-0 {\n --gutter-y: 0;\n }\n .md\\:g-1,\n .md\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .md\\:g-1,\n .md\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .md\\:g-2,\n .md\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .md\\:g-2,\n .md\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .md\\:g-3,\n .md\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .md\\:g-3,\n .md\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .md\\:g-4,\n .md\\:gx-4 {\n --gutter-x: 1rem;\n }\n .md\\:g-4,\n .md\\:gy-4 {\n --gutter-y: 1rem;\n }\n .md\\:g-5,\n .md\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .md\\:g-5,\n .md\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .md\\:g-6,\n .md\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .md\\:g-6,\n .md\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .md\\:g-7,\n .md\\:gx-7 {\n --gutter-x: 2rem;\n }\n .md\\:g-7,\n .md\\:gy-7 {\n --gutter-y: 2rem;\n }\n .md\\:g-8,\n .md\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .md\\:g-8,\n .md\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .md\\:g-9,\n .md\\:gx-9 {\n --gutter-x: 3rem;\n }\n .md\\:g-9,\n .md\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1024px) {\n .lg\\:col {\n flex: 1 0 0;\n }\n .lg\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .lg\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .lg\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .lg\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .lg\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .lg\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .lg\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .lg\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .lg\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .lg\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .lg\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .lg\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .lg\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .lg\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .lg\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .lg\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .lg\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .lg\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .lg\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .lg\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .lg\\:offset-0 {\n margin-inline-start: 0;\n }\n .lg\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .lg\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .lg\\:offset-3 {\n margin-inline-start: 25%;\n }\n .lg\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .lg\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .lg\\:offset-6 {\n margin-inline-start: 50%;\n }\n .lg\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .lg\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .lg\\:offset-9 {\n margin-inline-start: 75%;\n }\n .lg\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .lg\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .lg\\:g-0,\n .lg\\:gx-0 {\n --gutter-x: 0;\n }\n .lg\\:g-0,\n .lg\\:gy-0 {\n --gutter-y: 0;\n }\n .lg\\:g-1,\n .lg\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .lg\\:g-1,\n .lg\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .lg\\:g-2,\n .lg\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .lg\\:g-2,\n .lg\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .lg\\:g-3,\n .lg\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .lg\\:g-3,\n .lg\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .lg\\:g-4,\n .lg\\:gx-4 {\n --gutter-x: 1rem;\n }\n .lg\\:g-4,\n .lg\\:gy-4 {\n --gutter-y: 1rem;\n }\n .lg\\:g-5,\n .lg\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .lg\\:g-5,\n .lg\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .lg\\:g-6,\n .lg\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .lg\\:g-6,\n .lg\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .lg\\:g-7,\n .lg\\:gx-7 {\n --gutter-x: 2rem;\n }\n .lg\\:g-7,\n .lg\\:gy-7 {\n --gutter-y: 2rem;\n }\n .lg\\:g-8,\n .lg\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .lg\\:g-8,\n .lg\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .lg\\:g-9,\n .lg\\:gx-9 {\n --gutter-x: 3rem;\n }\n .lg\\:g-9,\n .lg\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1280px) {\n .xl\\:col {\n flex: 1 0 0;\n }\n .xl\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .xl\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .xl\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .xl\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .xl\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .xl\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .xl\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .xl\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .xl\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .xl\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .xl\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .xl\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .xl\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .xl\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .xl\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .xl\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .xl\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .xl\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .xl\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .xl\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .xl\\:offset-0 {\n margin-inline-start: 0;\n }\n .xl\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .xl\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .xl\\:offset-3 {\n margin-inline-start: 25%;\n }\n .xl\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .xl\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .xl\\:offset-6 {\n margin-inline-start: 50%;\n }\n .xl\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .xl\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .xl\\:offset-9 {\n margin-inline-start: 75%;\n }\n .xl\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .xl\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .xl\\:g-0,\n .xl\\:gx-0 {\n --gutter-x: 0;\n }\n .xl\\:g-0,\n .xl\\:gy-0 {\n --gutter-y: 0;\n }\n .xl\\:g-1,\n .xl\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .xl\\:g-1,\n .xl\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .xl\\:g-2,\n .xl\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .xl\\:g-2,\n .xl\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .xl\\:g-3,\n .xl\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .xl\\:g-3,\n .xl\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .xl\\:g-4,\n .xl\\:gx-4 {\n --gutter-x: 1rem;\n }\n .xl\\:g-4,\n .xl\\:gy-4 {\n --gutter-y: 1rem;\n }\n .xl\\:g-5,\n .xl\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .xl\\:g-5,\n .xl\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .xl\\:g-6,\n .xl\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .xl\\:g-6,\n .xl\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .xl\\:g-7,\n .xl\\:gx-7 {\n --gutter-x: 2rem;\n }\n .xl\\:g-7,\n .xl\\:gy-7 {\n --gutter-y: 2rem;\n }\n .xl\\:g-8,\n .xl\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .xl\\:g-8,\n .xl\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .xl\\:g-9,\n .xl\\:gx-9 {\n --gutter-x: 3rem;\n }\n .xl\\:g-9,\n .xl\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:col {\n flex: 1 0 0;\n }\n .\\32 xl\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .\\32 xl\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .\\32 xl\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .\\32 xl\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .\\32 xl\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .\\32 xl\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .\\32 xl\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .\\32 xl\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .\\32 xl\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .\\32 xl\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .\\32 xl\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .\\32 xl\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .\\32 xl\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .\\32 xl\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .\\32 xl\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .\\32 xl\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .\\32 xl\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .\\32 xl\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .\\32 xl\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .\\32 xl\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .\\32 xl\\:offset-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .\\32 xl\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .\\32 xl\\:offset-3 {\n margin-inline-start: 25%;\n }\n .\\32 xl\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .\\32 xl\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .\\32 xl\\:offset-6 {\n margin-inline-start: 50%;\n }\n .\\32 xl\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .\\32 xl\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .\\32 xl\\:offset-9 {\n margin-inline-start: 75%;\n }\n .\\32 xl\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .\\32 xl\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .\\32 xl\\:g-0,\n .\\32 xl\\:gx-0 {\n --gutter-x: 0;\n }\n .\\32 xl\\:g-0,\n .\\32 xl\\:gy-0 {\n --gutter-y: 0;\n }\n .\\32 xl\\:g-1,\n .\\32 xl\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .\\32 xl\\:g-1,\n .\\32 xl\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .\\32 xl\\:g-2,\n .\\32 xl\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .\\32 xl\\:g-2,\n .\\32 xl\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .\\32 xl\\:g-3,\n .\\32 xl\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .\\32 xl\\:g-3,\n .\\32 xl\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .\\32 xl\\:g-4,\n .\\32 xl\\:gx-4 {\n --gutter-x: 1rem;\n }\n .\\32 xl\\:g-4,\n .\\32 xl\\:gy-4 {\n --gutter-y: 1rem;\n }\n .\\32 xl\\:g-5,\n .\\32 xl\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .\\32 xl\\:g-5,\n .\\32 xl\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .\\32 xl\\:g-6,\n .\\32 xl\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .\\32 xl\\:g-6,\n .\\32 xl\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .\\32 xl\\:g-7,\n .\\32 xl\\:gx-7 {\n --gutter-x: 2rem;\n }\n .\\32 xl\\:g-7,\n .\\32 xl\\:gy-7 {\n --gutter-y: 2rem;\n }\n .\\32 xl\\:g-8,\n .\\32 xl\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .\\32 xl\\:g-8,\n .\\32 xl\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .\\32 xl\\:g-9,\n .\\32 xl\\:gx-9 {\n --gutter-x: 3rem;\n }\n .\\32 xl\\:g-9,\n .\\32 xl\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n .grid {\n --columns: 12;\n --rows: 1;\n --gap: 1.5rem;\n display: grid;\n grid-template-rows: repeat(var(--rows), 1fr);\n grid-template-columns: repeat(var(--columns), 1fr);\n gap: var(--gap);\n }\n .g-col-1 {\n grid-column: auto/span 1;\n }\n .g-col-2 {\n grid-column: auto/span 2;\n }\n .g-col-3 {\n grid-column: auto/span 3;\n }\n .g-col-4 {\n grid-column: auto/span 4;\n }\n .g-col-5 {\n grid-column: auto/span 5;\n }\n .g-col-6 {\n grid-column: auto/span 6;\n }\n .g-col-7 {\n grid-column: auto/span 7;\n }\n .g-col-8 {\n grid-column: auto/span 8;\n }\n .g-col-9 {\n grid-column: auto/span 9;\n }\n .g-col-10 {\n grid-column: auto/span 10;\n }\n .g-col-11 {\n grid-column: auto/span 11;\n }\n .g-col-12 {\n grid-column: auto/span 12;\n }\n .g-start-1 {\n grid-column-start: 1;\n }\n .g-start-2 {\n grid-column-start: 2;\n }\n .g-start-3 {\n grid-column-start: 3;\n }\n .g-start-4 {\n grid-column-start: 4;\n }\n .g-start-5 {\n grid-column-start: 5;\n }\n .g-start-6 {\n grid-column-start: 6;\n }\n .g-start-7 {\n grid-column-start: 7;\n }\n .g-start-8 {\n grid-column-start: 8;\n }\n .g-start-9 {\n grid-column-start: 9;\n }\n .g-start-10 {\n grid-column-start: 10;\n }\n .g-start-11 {\n grid-column-start: 11;\n }\n @media (width >= 576px) {\n .sm\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .sm\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .sm\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .sm\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .sm\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .sm\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .sm\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .sm\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .sm\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .sm\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .sm\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .sm\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .sm\\:g-start-1 {\n grid-column-start: 1;\n }\n .sm\\:g-start-2 {\n grid-column-start: 2;\n }\n .sm\\:g-start-3 {\n grid-column-start: 3;\n }\n .sm\\:g-start-4 {\n grid-column-start: 4;\n }\n .sm\\:g-start-5 {\n grid-column-start: 5;\n }\n .sm\\:g-start-6 {\n grid-column-start: 6;\n }\n .sm\\:g-start-7 {\n grid-column-start: 7;\n }\n .sm\\:g-start-8 {\n grid-column-start: 8;\n }\n .sm\\:g-start-9 {\n grid-column-start: 9;\n }\n .sm\\:g-start-10 {\n grid-column-start: 10;\n }\n .sm\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 768px) {\n .md\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .md\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .md\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .md\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .md\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .md\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .md\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .md\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .md\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .md\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .md\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .md\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .md\\:g-start-1 {\n grid-column-start: 1;\n }\n .md\\:g-start-2 {\n grid-column-start: 2;\n }\n .md\\:g-start-3 {\n grid-column-start: 3;\n }\n .md\\:g-start-4 {\n grid-column-start: 4;\n }\n .md\\:g-start-5 {\n grid-column-start: 5;\n }\n .md\\:g-start-6 {\n grid-column-start: 6;\n }\n .md\\:g-start-7 {\n grid-column-start: 7;\n }\n .md\\:g-start-8 {\n grid-column-start: 8;\n }\n .md\\:g-start-9 {\n grid-column-start: 9;\n }\n .md\\:g-start-10 {\n grid-column-start: 10;\n }\n .md\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1024px) {\n .lg\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .lg\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .lg\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .lg\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .lg\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .lg\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .lg\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .lg\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .lg\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .lg\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .lg\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .lg\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .lg\\:g-start-1 {\n grid-column-start: 1;\n }\n .lg\\:g-start-2 {\n grid-column-start: 2;\n }\n .lg\\:g-start-3 {\n grid-column-start: 3;\n }\n .lg\\:g-start-4 {\n grid-column-start: 4;\n }\n .lg\\:g-start-5 {\n grid-column-start: 5;\n }\n .lg\\:g-start-6 {\n grid-column-start: 6;\n }\n .lg\\:g-start-7 {\n grid-column-start: 7;\n }\n .lg\\:g-start-8 {\n grid-column-start: 8;\n }\n .lg\\:g-start-9 {\n grid-column-start: 9;\n }\n .lg\\:g-start-10 {\n grid-column-start: 10;\n }\n .lg\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1280px) {\n .xl\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .xl\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .xl\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .xl\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .xl\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .xl\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .xl\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .xl\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .xl\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .xl\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .xl\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .xl\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .xl\\:g-start-1 {\n grid-column-start: 1;\n }\n .xl\\:g-start-2 {\n grid-column-start: 2;\n }\n .xl\\:g-start-3 {\n grid-column-start: 3;\n }\n .xl\\:g-start-4 {\n grid-column-start: 4;\n }\n .xl\\:g-start-5 {\n grid-column-start: 5;\n }\n .xl\\:g-start-6 {\n grid-column-start: 6;\n }\n .xl\\:g-start-7 {\n grid-column-start: 7;\n }\n .xl\\:g-start-8 {\n grid-column-start: 8;\n }\n .xl\\:g-start-9 {\n grid-column-start: 9;\n }\n .xl\\:g-start-10 {\n grid-column-start: 10;\n }\n .xl\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .\\32 xl\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .\\32 xl\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .\\32 xl\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .\\32 xl\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .\\32 xl\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .\\32 xl\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .\\32 xl\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .\\32 xl\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .\\32 xl\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .\\32 xl\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .\\32 xl\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .\\32 xl\\:g-start-1 {\n grid-column-start: 1;\n }\n .\\32 xl\\:g-start-2 {\n grid-column-start: 2;\n }\n .\\32 xl\\:g-start-3 {\n grid-column-start: 3;\n }\n .\\32 xl\\:g-start-4 {\n grid-column-start: 4;\n }\n .\\32 xl\\:g-start-5 {\n grid-column-start: 5;\n }\n .\\32 xl\\:g-start-6 {\n grid-column-start: 6;\n }\n .\\32 xl\\:g-start-7 {\n grid-column-start: 7;\n }\n .\\32 xl\\:g-start-8 {\n grid-column-start: 8;\n }\n .\\32 xl\\:g-start-9 {\n grid-column-start: 9;\n }\n .\\32 xl\\:g-start-10 {\n grid-column-start: 10;\n }\n .\\32 xl\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n .grid-cols-subgrid {\n grid-template-columns: subgrid;\n }\n .grid-fill {\n --gap: 1.5rem;\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-auto-flow: row;\n gap: var(--gap);\n }\n}\n@layer utilities {\n .d-inline {\n display: inline;\n }\n .d-inline-block {\n display: inline-block;\n }\n .d-block {\n display: block;\n }\n .d-grid {\n display: grid;\n }\n .d-inline-grid {\n display: inline-grid;\n }\n .d-table {\n display: table;\n }\n .d-table-row {\n display: table-row;\n }\n .d-table-cell {\n display: table-cell;\n }\n .d-flex {\n display: flex;\n }\n .d-inline-flex {\n display: inline-flex;\n }\n .d-contents {\n display: contents;\n }\n .d-flow-root {\n display: flow-root;\n }\n .d-none {\n display: none;\n }\n .flex-fill {\n flex: 1 1 auto;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-column {\n flex-direction: column;\n }\n .flex-row-reverse {\n flex-direction: row-reverse;\n }\n .flex-column-reverse {\n flex-direction: column-reverse;\n }\n .flex-grow-0 {\n flex-grow: 0;\n }\n .flex-grow-1 {\n flex-grow: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .flex-shrink-1 {\n flex-shrink: 1;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .flex-nowrap {\n flex-wrap: nowrap;\n }\n .flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .justify-content-start {\n justify-content: flex-start;\n }\n .justify-content-end {\n justify-content: flex-end;\n }\n .justify-content-center {\n justify-content: center;\n }\n .justify-content-between {\n justify-content: space-between;\n }\n .justify-content-around {\n justify-content: space-around;\n }\n .justify-content-evenly {\n justify-content: space-evenly;\n }\n .justify-items-start {\n justify-items: start;\n }\n .justify-items-end {\n justify-items: end;\n }\n .justify-items-center {\n justify-items: center;\n }\n .justify-items-stretch {\n justify-items: stretch;\n }\n .align-items-start {\n align-items: flex-start;\n }\n .align-items-end {\n align-items: flex-end;\n }\n .align-items-center {\n align-items: center;\n }\n .align-items-baseline {\n align-items: baseline;\n }\n .align-items-stretch {\n align-items: stretch;\n }\n .align-content-start {\n align-content: flex-start;\n }\n .align-content-end {\n align-content: flex-end;\n }\n .align-content-center {\n align-content: center;\n }\n .align-content-between {\n align-content: space-between;\n }\n .align-content-around {\n align-content: space-around;\n }\n .align-content-stretch {\n align-content: stretch;\n }\n .align-self-auto {\n align-self: auto;\n }\n .align-self-start {\n align-self: flex-start;\n }\n .align-self-end {\n align-self: flex-end;\n }\n .align-self-center {\n align-self: center;\n }\n .align-self-baseline {\n align-self: baseline;\n }\n .align-self-stretch {\n align-self: stretch;\n }\n .place-items-start {\n place-items: start;\n }\n .place-items-end {\n place-items: end;\n }\n .place-items-center {\n place-items: center;\n }\n .place-items-stretch {\n place-items: stretch;\n }\n .grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .grid-cols-fill {\n grid-column: 1 / -1;\n }\n .grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .order-first {\n order: -1;\n }\n .order-0 {\n order: 0;\n }\n .order-1 {\n order: 1;\n }\n .order-2 {\n order: 2;\n }\n .order-3 {\n order: 3;\n }\n .order-4 {\n order: 4;\n }\n .order-5 {\n order: 5;\n }\n .order-last {\n order: 6;\n }\n .m-0 {\n margin: 0;\n }\n .m-1 {\n margin: 0.25rem;\n }\n .m-2 {\n margin: 0.5rem;\n }\n .m-3 {\n margin: 0.75rem;\n }\n .m-4 {\n margin: 1rem;\n }\n .m-5 {\n margin: 1.25rem;\n }\n .m-6 {\n margin: 1.5rem;\n }\n .m-7 {\n margin: 2rem;\n }\n .m-8 {\n margin: 2.5rem;\n }\n .m-9 {\n margin: 3rem;\n }\n .m-auto {\n margin: auto;\n }\n .mx-0 {\n margin-inline: 0;\n }\n .mx-1 {\n margin-inline: 0.25rem;\n }\n .mx-2 {\n margin-inline: 0.5rem;\n }\n .mx-3 {\n margin-inline: 0.75rem;\n }\n .mx-4 {\n margin-inline: 1rem;\n }\n .mx-5 {\n margin-inline: 1.25rem;\n }\n .mx-6 {\n margin-inline: 1.5rem;\n }\n .mx-7 {\n margin-inline: 2rem;\n }\n .mx-8 {\n margin-inline: 2.5rem;\n }\n .mx-9 {\n margin-inline: 3rem;\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-0 {\n margin-block: 0;\n }\n .my-1 {\n margin-block: 0.25rem;\n }\n .my-2 {\n margin-block: 0.5rem;\n }\n .my-3 {\n margin-block: 0.75rem;\n }\n .my-4 {\n margin-block: 1rem;\n }\n .my-5 {\n margin-block: 1.25rem;\n }\n .my-6 {\n margin-block: 1.5rem;\n }\n .my-7 {\n margin-block: 2rem;\n }\n .my-8 {\n margin-block: 2.5rem;\n }\n .my-9 {\n margin-block: 3rem;\n }\n .my-auto {\n margin-block: auto;\n }\n .mt-0 {\n margin-block-start: 0;\n }\n .mt-1 {\n margin-block-start: 0.25rem;\n }\n .mt-2 {\n margin-block-start: 0.5rem;\n }\n .mt-3 {\n margin-block-start: 0.75rem;\n }\n .mt-4 {\n margin-block-start: 1rem;\n }\n .mt-5 {\n margin-block-start: 1.25rem;\n }\n .mt-6 {\n margin-block-start: 1.5rem;\n }\n .mt-7 {\n margin-block-start: 2rem;\n }\n .mt-8 {\n margin-block-start: 2.5rem;\n }\n .mt-9 {\n margin-block-start: 3rem;\n }\n .mt-auto {\n margin-block-start: auto;\n }\n .me-0 {\n margin-inline-end: 0;\n }\n .me-1 {\n margin-inline-end: 0.25rem;\n }\n .me-2 {\n margin-inline-end: 0.5rem;\n }\n .me-3 {\n margin-inline-end: 0.75rem;\n }\n .me-4 {\n margin-inline-end: 1rem;\n }\n .me-5 {\n margin-inline-end: 1.25rem;\n }\n .me-6 {\n margin-inline-end: 1.5rem;\n }\n .me-7 {\n margin-inline-end: 2rem;\n }\n .me-8 {\n margin-inline-end: 2.5rem;\n }\n .me-9 {\n margin-inline-end: 3rem;\n }\n .me--1 {\n margin-inline-end: -0.25rem;\n }\n .me--2 {\n margin-inline-end: -0.5rem;\n }\n .me-auto {\n margin-inline-end: auto;\n }\n .mb-0 {\n margin-block-end: 0;\n }\n .mb-1 {\n margin-block-end: 0.25rem;\n }\n .mb-2 {\n margin-block-end: 0.5rem;\n }\n .mb-3 {\n margin-block-end: 0.75rem;\n }\n .mb-4 {\n margin-block-end: 1rem;\n }\n .mb-5 {\n margin-block-end: 1.25rem;\n }\n .mb-6 {\n margin-block-end: 1.5rem;\n }\n .mb-7 {\n margin-block-end: 2rem;\n }\n .mb-8 {\n margin-block-end: 2.5rem;\n }\n .mb-9 {\n margin-block-end: 3rem;\n }\n .mb-auto {\n margin-block-end: auto;\n }\n .ms-0 {\n margin-inline-start: 0;\n }\n .ms-1 {\n margin-inline-start: 0.25rem;\n }\n .ms-2 {\n margin-inline-start: 0.5rem;\n }\n .ms-3 {\n margin-inline-start: 0.75rem;\n }\n .ms-4 {\n margin-inline-start: 1rem;\n }\n .ms-5 {\n margin-inline-start: 1.25rem;\n }\n .ms-6 {\n margin-inline-start: 1.5rem;\n }\n .ms-7 {\n margin-inline-start: 2rem;\n }\n .ms-8 {\n margin-inline-start: 2.5rem;\n }\n .ms-9 {\n margin-inline-start: 3rem;\n }\n .ms--1 {\n margin-inline-start: -0.25rem;\n }\n .ms--2 {\n margin-inline-start: -0.5rem;\n }\n .ms-auto {\n margin-inline-start: auto;\n }\n .p-0 {\n padding: 0;\n }\n .p-1 {\n padding: 0.25rem;\n }\n .p-2 {\n padding: 0.5rem;\n }\n .p-3 {\n padding: 0.75rem;\n }\n .p-4 {\n padding: 1rem;\n }\n .p-5 {\n padding: 1.25rem;\n }\n .p-6 {\n padding: 1.5rem;\n }\n .p-7 {\n padding: 2rem;\n }\n .p-8 {\n padding: 2.5rem;\n }\n .p-9 {\n padding: 3rem;\n }\n .px-0 {\n padding-inline: 0;\n }\n .px-1 {\n padding-inline: 0.25rem;\n }\n .px-2 {\n padding-inline: 0.5rem;\n }\n .px-3 {\n padding-inline: 0.75rem;\n }\n .px-4 {\n padding-inline: 1rem;\n }\n .px-5 {\n padding-inline: 1.25rem;\n }\n .px-6 {\n padding-inline: 1.5rem;\n }\n .px-7 {\n padding-inline: 2rem;\n }\n .px-8 {\n padding-inline: 2.5rem;\n }\n .px-9 {\n padding-inline: 3rem;\n }\n .py-0 {\n padding-block: 0;\n }\n .py-1 {\n padding-block: 0.25rem;\n }\n .py-2 {\n padding-block: 0.5rem;\n }\n .py-3 {\n padding-block: 0.75rem;\n }\n .py-4 {\n padding-block: 1rem;\n }\n .py-5 {\n padding-block: 1.25rem;\n }\n .py-6 {\n padding-block: 1.5rem;\n }\n .py-7 {\n padding-block: 2rem;\n }\n .py-8 {\n padding-block: 2.5rem;\n }\n .py-9 {\n padding-block: 3rem;\n }\n .pt-0 {\n padding-block-start: 0;\n }\n .pt-1 {\n padding-block-start: 0.25rem;\n }\n .pt-2 {\n padding-block-start: 0.5rem;\n }\n .pt-3 {\n padding-block-start: 0.75rem;\n }\n .pt-4 {\n padding-block-start: 1rem;\n }\n .pt-5 {\n padding-block-start: 1.25rem;\n }\n .pt-6 {\n padding-block-start: 1.5rem;\n }\n .pt-7 {\n padding-block-start: 2rem;\n }\n .pt-8 {\n padding-block-start: 2.5rem;\n }\n .pt-9 {\n padding-block-start: 3rem;\n }\n .pe-0 {\n padding-inline-end: 0;\n }\n .pe-1 {\n padding-inline-end: 0.25rem;\n }\n .pe-2 {\n padding-inline-end: 0.5rem;\n }\n .pe-3 {\n padding-inline-end: 0.75rem;\n }\n .pe-4 {\n padding-inline-end: 1rem;\n }\n .pe-5 {\n padding-inline-end: 1.25rem;\n }\n .pe-6 {\n padding-inline-end: 1.5rem;\n }\n .pe-7 {\n padding-inline-end: 2rem;\n }\n .pe-8 {\n padding-inline-end: 2.5rem;\n }\n .pe-9 {\n padding-inline-end: 3rem;\n }\n .pb-0 {\n padding-block-end: 0;\n }\n .pb-1 {\n padding-block-end: 0.25rem;\n }\n .pb-2 {\n padding-block-end: 0.5rem;\n }\n .pb-3 {\n padding-block-end: 0.75rem;\n }\n .pb-4 {\n padding-block-end: 1rem;\n }\n .pb-5 {\n padding-block-end: 1.25rem;\n }\n .pb-6 {\n padding-block-end: 1.5rem;\n }\n .pb-7 {\n padding-block-end: 2rem;\n }\n .pb-8 {\n padding-block-end: 2.5rem;\n }\n .pb-9 {\n padding-block-end: 3rem;\n }\n .ps-0 {\n padding-inline-start: 0;\n }\n .ps-1 {\n padding-inline-start: 0.25rem;\n }\n .ps-2 {\n padding-inline-start: 0.5rem;\n }\n .ps-3 {\n padding-inline-start: 0.75rem;\n }\n .ps-4 {\n padding-inline-start: 1rem;\n }\n .ps-5 {\n padding-inline-start: 1.25rem;\n }\n .ps-6 {\n padding-inline-start: 1.5rem;\n }\n .ps-7 {\n padding-inline-start: 2rem;\n }\n .ps-8 {\n padding-inline-start: 2.5rem;\n }\n .ps-9 {\n padding-inline-start: 3rem;\n }\n .gap-0 {\n gap: 0;\n }\n .gap-1 {\n gap: 0.25rem;\n }\n .gap-2 {\n gap: 0.5rem;\n }\n .gap-3 {\n gap: 0.75rem;\n }\n .gap-4 {\n gap: 1rem;\n }\n .gap-5 {\n gap: 1.25rem;\n }\n .gap-6 {\n gap: 1.5rem;\n }\n .gap-7 {\n gap: 2rem;\n }\n .gap-8 {\n gap: 2.5rem;\n }\n .gap-9 {\n gap: 3rem;\n }\n .row-gap-0 {\n row-gap: 0;\n }\n .row-gap-1 {\n row-gap: 0.25rem;\n }\n .row-gap-2 {\n row-gap: 0.5rem;\n }\n .row-gap-3 {\n row-gap: 0.75rem;\n }\n .row-gap-4 {\n row-gap: 1rem;\n }\n .row-gap-5 {\n row-gap: 1.25rem;\n }\n .row-gap-6 {\n row-gap: 1.5rem;\n }\n .row-gap-7 {\n row-gap: 2rem;\n }\n .row-gap-8 {\n row-gap: 2.5rem;\n }\n .row-gap-9 {\n row-gap: 3rem;\n }\n .column-gap-0 {\n column-gap: 0;\n }\n .column-gap-1 {\n column-gap: 0.25rem;\n }\n .column-gap-2 {\n column-gap: 0.5rem;\n }\n .column-gap-3 {\n column-gap: 0.75rem;\n }\n .column-gap-4 {\n column-gap: 1rem;\n }\n .column-gap-5 {\n column-gap: 1.25rem;\n }\n .column-gap-6 {\n column-gap: 1.5rem;\n }\n .column-gap-7 {\n column-gap: 2rem;\n }\n .column-gap-8 {\n column-gap: 2.5rem;\n }\n .column-gap-9 {\n column-gap: 3rem;\n }\n @media (width >= 576px) {\n .sm\\:d-inline {\n display: inline;\n }\n .sm\\:d-inline-block {\n display: inline-block;\n }\n .sm\\:d-block {\n display: block;\n }\n .sm\\:d-grid {\n display: grid;\n }\n .sm\\:d-inline-grid {\n display: inline-grid;\n }\n .sm\\:d-table {\n display: table;\n }\n .sm\\:d-table-row {\n display: table-row;\n }\n .sm\\:d-table-cell {\n display: table-cell;\n }\n .sm\\:d-flex {\n display: flex;\n }\n .sm\\:d-inline-flex {\n display: inline-flex;\n }\n .sm\\:d-contents {\n display: contents;\n }\n .sm\\:d-flow-root {\n display: flow-root;\n }\n .sm\\:d-none {\n display: none;\n }\n .sm\\:flex-fill {\n flex: 1 1 auto;\n }\n .sm\\:flex-row {\n flex-direction: row;\n }\n .sm\\:flex-column {\n flex-direction: column;\n }\n .sm\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .sm\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .sm\\:flex-grow-0 {\n flex-grow: 0;\n }\n .sm\\:flex-grow-1 {\n flex-grow: 1;\n }\n .sm\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .sm\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .sm\\:flex-wrap {\n flex-wrap: wrap;\n }\n .sm\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .sm\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .sm\\:justify-content-start {\n justify-content: flex-start;\n }\n .sm\\:justify-content-end {\n justify-content: flex-end;\n }\n .sm\\:justify-content-center {\n justify-content: center;\n }\n .sm\\:justify-content-between {\n justify-content: space-between;\n }\n .sm\\:justify-content-around {\n justify-content: space-around;\n }\n .sm\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .sm\\:justify-items-start {\n justify-items: start;\n }\n .sm\\:justify-items-end {\n justify-items: end;\n }\n .sm\\:justify-items-center {\n justify-items: center;\n }\n .sm\\:justify-items-stretch {\n justify-items: stretch;\n }\n .sm\\:align-items-start {\n align-items: flex-start;\n }\n .sm\\:align-items-end {\n align-items: flex-end;\n }\n .sm\\:align-items-center {\n align-items: center;\n }\n .sm\\:align-items-baseline {\n align-items: baseline;\n }\n .sm\\:align-items-stretch {\n align-items: stretch;\n }\n .sm\\:align-content-start {\n align-content: flex-start;\n }\n .sm\\:align-content-end {\n align-content: flex-end;\n }\n .sm\\:align-content-center {\n align-content: center;\n }\n .sm\\:align-content-between {\n align-content: space-between;\n }\n .sm\\:align-content-around {\n align-content: space-around;\n }\n .sm\\:align-content-stretch {\n align-content: stretch;\n }\n .sm\\:align-self-auto {\n align-self: auto;\n }\n .sm\\:align-self-start {\n align-self: flex-start;\n }\n .sm\\:align-self-end {\n align-self: flex-end;\n }\n .sm\\:align-self-center {\n align-self: center;\n }\n .sm\\:align-self-baseline {\n align-self: baseline;\n }\n .sm\\:align-self-stretch {\n align-self: stretch;\n }\n .sm\\:place-items-start {\n place-items: start;\n }\n .sm\\:place-items-end {\n place-items: end;\n }\n .sm\\:place-items-center {\n place-items: center;\n }\n .sm\\:place-items-stretch {\n place-items: stretch;\n }\n .sm\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .sm\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .sm\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .sm\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .sm\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .sm\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .sm\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .sm\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .sm\\:order-first {\n order: -1;\n }\n .sm\\:order-0 {\n order: 0;\n }\n .sm\\:order-1 {\n order: 1;\n }\n .sm\\:order-2 {\n order: 2;\n }\n .sm\\:order-3 {\n order: 3;\n }\n .sm\\:order-4 {\n order: 4;\n }\n .sm\\:order-5 {\n order: 5;\n }\n .sm\\:order-last {\n order: 6;\n }\n .sm\\:m-0 {\n margin: 0;\n }\n .sm\\:m-1 {\n margin: 0.25rem;\n }\n .sm\\:m-2 {\n margin: 0.5rem;\n }\n .sm\\:m-3 {\n margin: 0.75rem;\n }\n .sm\\:m-4 {\n margin: 1rem;\n }\n .sm\\:m-5 {\n margin: 1.25rem;\n }\n .sm\\:m-6 {\n margin: 1.5rem;\n }\n .sm\\:m-7 {\n margin: 2rem;\n }\n .sm\\:m-8 {\n margin: 2.5rem;\n }\n .sm\\:m-9 {\n margin: 3rem;\n }\n .sm\\:m-auto {\n margin: auto;\n }\n .sm\\:mx-0 {\n margin-inline: 0;\n }\n .sm\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .sm\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .sm\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .sm\\:mx-4 {\n margin-inline: 1rem;\n }\n .sm\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .sm\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .sm\\:mx-7 {\n margin-inline: 2rem;\n }\n .sm\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .sm\\:mx-9 {\n margin-inline: 3rem;\n }\n .sm\\:mx-auto {\n margin-inline: auto;\n }\n .sm\\:my-0 {\n margin-block: 0;\n }\n .sm\\:my-1 {\n margin-block: 0.25rem;\n }\n .sm\\:my-2 {\n margin-block: 0.5rem;\n }\n .sm\\:my-3 {\n margin-block: 0.75rem;\n }\n .sm\\:my-4 {\n margin-block: 1rem;\n }\n .sm\\:my-5 {\n margin-block: 1.25rem;\n }\n .sm\\:my-6 {\n margin-block: 1.5rem;\n }\n .sm\\:my-7 {\n margin-block: 2rem;\n }\n .sm\\:my-8 {\n margin-block: 2.5rem;\n }\n .sm\\:my-9 {\n margin-block: 3rem;\n }\n .sm\\:my-auto {\n margin-block: auto;\n }\n .sm\\:mt-0 {\n margin-block-start: 0;\n }\n .sm\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .sm\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .sm\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .sm\\:mt-4 {\n margin-block-start: 1rem;\n }\n .sm\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .sm\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .sm\\:mt-7 {\n margin-block-start: 2rem;\n }\n .sm\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .sm\\:mt-9 {\n margin-block-start: 3rem;\n }\n .sm\\:mt-auto {\n margin-block-start: auto;\n }\n .sm\\:me-0 {\n margin-inline-end: 0;\n }\n .sm\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .sm\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .sm\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .sm\\:me-4 {\n margin-inline-end: 1rem;\n }\n .sm\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .sm\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .sm\\:me-7 {\n margin-inline-end: 2rem;\n }\n .sm\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .sm\\:me-9 {\n margin-inline-end: 3rem;\n }\n .sm\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .sm\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .sm\\:me-auto {\n margin-inline-end: auto;\n }\n .sm\\:mb-0 {\n margin-block-end: 0;\n }\n .sm\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .sm\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .sm\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .sm\\:mb-4 {\n margin-block-end: 1rem;\n }\n .sm\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .sm\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .sm\\:mb-7 {\n margin-block-end: 2rem;\n }\n .sm\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .sm\\:mb-9 {\n margin-block-end: 3rem;\n }\n .sm\\:mb-auto {\n margin-block-end: auto;\n }\n .sm\\:ms-0 {\n margin-inline-start: 0;\n }\n .sm\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .sm\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .sm\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .sm\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .sm\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .sm\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .sm\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .sm\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .sm\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .sm\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .sm\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .sm\\:ms-auto {\n margin-inline-start: auto;\n }\n .sm\\:p-0 {\n padding: 0;\n }\n .sm\\:p-1 {\n padding: 0.25rem;\n }\n .sm\\:p-2 {\n padding: 0.5rem;\n }\n .sm\\:p-3 {\n padding: 0.75rem;\n }\n .sm\\:p-4 {\n padding: 1rem;\n }\n .sm\\:p-5 {\n padding: 1.25rem;\n }\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n .sm\\:p-7 {\n padding: 2rem;\n }\n .sm\\:p-8 {\n padding: 2.5rem;\n }\n .sm\\:p-9 {\n padding: 3rem;\n }\n .sm\\:px-0 {\n padding-inline: 0;\n }\n .sm\\:px-1 {\n padding-inline: 0.25rem;\n }\n .sm\\:px-2 {\n padding-inline: 0.5rem;\n }\n .sm\\:px-3 {\n padding-inline: 0.75rem;\n }\n .sm\\:px-4 {\n padding-inline: 1rem;\n }\n .sm\\:px-5 {\n padding-inline: 1.25rem;\n }\n .sm\\:px-6 {\n padding-inline: 1.5rem;\n }\n .sm\\:px-7 {\n padding-inline: 2rem;\n }\n .sm\\:px-8 {\n padding-inline: 2.5rem;\n }\n .sm\\:px-9 {\n padding-inline: 3rem;\n }\n .sm\\:py-0 {\n padding-block: 0;\n }\n .sm\\:py-1 {\n padding-block: 0.25rem;\n }\n .sm\\:py-2 {\n padding-block: 0.5rem;\n }\n .sm\\:py-3 {\n padding-block: 0.75rem;\n }\n .sm\\:py-4 {\n padding-block: 1rem;\n }\n .sm\\:py-5 {\n padding-block: 1.25rem;\n }\n .sm\\:py-6 {\n padding-block: 1.5rem;\n }\n .sm\\:py-7 {\n padding-block: 2rem;\n }\n .sm\\:py-8 {\n padding-block: 2.5rem;\n }\n .sm\\:py-9 {\n padding-block: 3rem;\n }\n .sm\\:pt-0 {\n padding-block-start: 0;\n }\n .sm\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .sm\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .sm\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .sm\\:pt-4 {\n padding-block-start: 1rem;\n }\n .sm\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .sm\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .sm\\:pt-7 {\n padding-block-start: 2rem;\n }\n .sm\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .sm\\:pt-9 {\n padding-block-start: 3rem;\n }\n .sm\\:pe-0 {\n padding-inline-end: 0;\n }\n .sm\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .sm\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .sm\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .sm\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .sm\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .sm\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .sm\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .sm\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .sm\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .sm\\:pb-0 {\n padding-block-end: 0;\n }\n .sm\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .sm\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .sm\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .sm\\:pb-4 {\n padding-block-end: 1rem;\n }\n .sm\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .sm\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .sm\\:pb-7 {\n padding-block-end: 2rem;\n }\n .sm\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .sm\\:pb-9 {\n padding-block-end: 3rem;\n }\n .sm\\:ps-0 {\n padding-inline-start: 0;\n }\n .sm\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .sm\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .sm\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .sm\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .sm\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .sm\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .sm\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .sm\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .sm\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .sm\\:gap-0 {\n gap: 0;\n }\n .sm\\:gap-1 {\n gap: 0.25rem;\n }\n .sm\\:gap-2 {\n gap: 0.5rem;\n }\n .sm\\:gap-3 {\n gap: 0.75rem;\n }\n .sm\\:gap-4 {\n gap: 1rem;\n }\n .sm\\:gap-5 {\n gap: 1.25rem;\n }\n .sm\\:gap-6 {\n gap: 1.5rem;\n }\n .sm\\:gap-7 {\n gap: 2rem;\n }\n .sm\\:gap-8 {\n gap: 2.5rem;\n }\n .sm\\:gap-9 {\n gap: 3rem;\n }\n .sm\\:row-gap-0 {\n row-gap: 0;\n }\n .sm\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .sm\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .sm\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .sm\\:row-gap-4 {\n row-gap: 1rem;\n }\n .sm\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .sm\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .sm\\:row-gap-7 {\n row-gap: 2rem;\n }\n .sm\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .sm\\:row-gap-9 {\n row-gap: 3rem;\n }\n .sm\\:column-gap-0 {\n column-gap: 0;\n }\n .sm\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .sm\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .sm\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .sm\\:column-gap-4 {\n column-gap: 1rem;\n }\n .sm\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .sm\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .sm\\:column-gap-7 {\n column-gap: 2rem;\n }\n .sm\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .sm\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n @media (width >= 768px) {\n .md\\:d-inline {\n display: inline;\n }\n .md\\:d-inline-block {\n display: inline-block;\n }\n .md\\:d-block {\n display: block;\n }\n .md\\:d-grid {\n display: grid;\n }\n .md\\:d-inline-grid {\n display: inline-grid;\n }\n .md\\:d-table {\n display: table;\n }\n .md\\:d-table-row {\n display: table-row;\n }\n .md\\:d-table-cell {\n display: table-cell;\n }\n .md\\:d-flex {\n display: flex;\n }\n .md\\:d-inline-flex {\n display: inline-flex;\n }\n .md\\:d-contents {\n display: contents;\n }\n .md\\:d-flow-root {\n display: flow-root;\n }\n .md\\:d-none {\n display: none;\n }\n .md\\:flex-fill {\n flex: 1 1 auto;\n }\n .md\\:flex-row {\n flex-direction: row;\n }\n .md\\:flex-column {\n flex-direction: column;\n }\n .md\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .md\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .md\\:flex-grow-0 {\n flex-grow: 0;\n }\n .md\\:flex-grow-1 {\n flex-grow: 1;\n }\n .md\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .md\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .md\\:flex-wrap {\n flex-wrap: wrap;\n }\n .md\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .md\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .md\\:justify-content-start {\n justify-content: flex-start;\n }\n .md\\:justify-content-end {\n justify-content: flex-end;\n }\n .md\\:justify-content-center {\n justify-content: center;\n }\n .md\\:justify-content-between {\n justify-content: space-between;\n }\n .md\\:justify-content-around {\n justify-content: space-around;\n }\n .md\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .md\\:justify-items-start {\n justify-items: start;\n }\n .md\\:justify-items-end {\n justify-items: end;\n }\n .md\\:justify-items-center {\n justify-items: center;\n }\n .md\\:justify-items-stretch {\n justify-items: stretch;\n }\n .md\\:align-items-start {\n align-items: flex-start;\n }\n .md\\:align-items-end {\n align-items: flex-end;\n }\n .md\\:align-items-center {\n align-items: center;\n }\n .md\\:align-items-baseline {\n align-items: baseline;\n }\n .md\\:align-items-stretch {\n align-items: stretch;\n }\n .md\\:align-content-start {\n align-content: flex-start;\n }\n .md\\:align-content-end {\n align-content: flex-end;\n }\n .md\\:align-content-center {\n align-content: center;\n }\n .md\\:align-content-between {\n align-content: space-between;\n }\n .md\\:align-content-around {\n align-content: space-around;\n }\n .md\\:align-content-stretch {\n align-content: stretch;\n }\n .md\\:align-self-auto {\n align-self: auto;\n }\n .md\\:align-self-start {\n align-self: flex-start;\n }\n .md\\:align-self-end {\n align-self: flex-end;\n }\n .md\\:align-self-center {\n align-self: center;\n }\n .md\\:align-self-baseline {\n align-self: baseline;\n }\n .md\\:align-self-stretch {\n align-self: stretch;\n }\n .md\\:place-items-start {\n place-items: start;\n }\n .md\\:place-items-end {\n place-items: end;\n }\n .md\\:place-items-center {\n place-items: center;\n }\n .md\\:place-items-stretch {\n place-items: stretch;\n }\n .md\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .md\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .md\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .md\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .md\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .md\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .md\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .md\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .md\\:order-first {\n order: -1;\n }\n .md\\:order-0 {\n order: 0;\n }\n .md\\:order-1 {\n order: 1;\n }\n .md\\:order-2 {\n order: 2;\n }\n .md\\:order-3 {\n order: 3;\n }\n .md\\:order-4 {\n order: 4;\n }\n .md\\:order-5 {\n order: 5;\n }\n .md\\:order-last {\n order: 6;\n }\n .md\\:m-0 {\n margin: 0;\n }\n .md\\:m-1 {\n margin: 0.25rem;\n }\n .md\\:m-2 {\n margin: 0.5rem;\n }\n .md\\:m-3 {\n margin: 0.75rem;\n }\n .md\\:m-4 {\n margin: 1rem;\n }\n .md\\:m-5 {\n margin: 1.25rem;\n }\n .md\\:m-6 {\n margin: 1.5rem;\n }\n .md\\:m-7 {\n margin: 2rem;\n }\n .md\\:m-8 {\n margin: 2.5rem;\n }\n .md\\:m-9 {\n margin: 3rem;\n }\n .md\\:m-auto {\n margin: auto;\n }\n .md\\:mx-0 {\n margin-inline: 0;\n }\n .md\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .md\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .md\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .md\\:mx-4 {\n margin-inline: 1rem;\n }\n .md\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .md\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .md\\:mx-7 {\n margin-inline: 2rem;\n }\n .md\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .md\\:mx-9 {\n margin-inline: 3rem;\n }\n .md\\:mx-auto {\n margin-inline: auto;\n }\n .md\\:my-0 {\n margin-block: 0;\n }\n .md\\:my-1 {\n margin-block: 0.25rem;\n }\n .md\\:my-2 {\n margin-block: 0.5rem;\n }\n .md\\:my-3 {\n margin-block: 0.75rem;\n }\n .md\\:my-4 {\n margin-block: 1rem;\n }\n .md\\:my-5 {\n margin-block: 1.25rem;\n }\n .md\\:my-6 {\n margin-block: 1.5rem;\n }\n .md\\:my-7 {\n margin-block: 2rem;\n }\n .md\\:my-8 {\n margin-block: 2.5rem;\n }\n .md\\:my-9 {\n margin-block: 3rem;\n }\n .md\\:my-auto {\n margin-block: auto;\n }\n .md\\:mt-0 {\n margin-block-start: 0;\n }\n .md\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .md\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .md\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .md\\:mt-4 {\n margin-block-start: 1rem;\n }\n .md\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .md\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .md\\:mt-7 {\n margin-block-start: 2rem;\n }\n .md\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .md\\:mt-9 {\n margin-block-start: 3rem;\n }\n .md\\:mt-auto {\n margin-block-start: auto;\n }\n .md\\:me-0 {\n margin-inline-end: 0;\n }\n .md\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .md\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .md\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .md\\:me-4 {\n margin-inline-end: 1rem;\n }\n .md\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .md\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .md\\:me-7 {\n margin-inline-end: 2rem;\n }\n .md\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .md\\:me-9 {\n margin-inline-end: 3rem;\n }\n .md\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .md\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .md\\:me-auto {\n margin-inline-end: auto;\n }\n .md\\:mb-0 {\n margin-block-end: 0;\n }\n .md\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .md\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .md\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .md\\:mb-4 {\n margin-block-end: 1rem;\n }\n .md\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .md\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .md\\:mb-7 {\n margin-block-end: 2rem;\n }\n .md\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .md\\:mb-9 {\n margin-block-end: 3rem;\n }\n .md\\:mb-auto {\n margin-block-end: auto;\n }\n .md\\:ms-0 {\n margin-inline-start: 0;\n }\n .md\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .md\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .md\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .md\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .md\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .md\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .md\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .md\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .md\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .md\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .md\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .md\\:ms-auto {\n margin-inline-start: auto;\n }\n .md\\:p-0 {\n padding: 0;\n }\n .md\\:p-1 {\n padding: 0.25rem;\n }\n .md\\:p-2 {\n padding: 0.5rem;\n }\n .md\\:p-3 {\n padding: 0.75rem;\n }\n .md\\:p-4 {\n padding: 1rem;\n }\n .md\\:p-5 {\n padding: 1.25rem;\n }\n .md\\:p-6 {\n padding: 1.5rem;\n }\n .md\\:p-7 {\n padding: 2rem;\n }\n .md\\:p-8 {\n padding: 2.5rem;\n }\n .md\\:p-9 {\n padding: 3rem;\n }\n .md\\:px-0 {\n padding-inline: 0;\n }\n .md\\:px-1 {\n padding-inline: 0.25rem;\n }\n .md\\:px-2 {\n padding-inline: 0.5rem;\n }\n .md\\:px-3 {\n padding-inline: 0.75rem;\n }\n .md\\:px-4 {\n padding-inline: 1rem;\n }\n .md\\:px-5 {\n padding-inline: 1.25rem;\n }\n .md\\:px-6 {\n padding-inline: 1.5rem;\n }\n .md\\:px-7 {\n padding-inline: 2rem;\n }\n .md\\:px-8 {\n padding-inline: 2.5rem;\n }\n .md\\:px-9 {\n padding-inline: 3rem;\n }\n .md\\:py-0 {\n padding-block: 0;\n }\n .md\\:py-1 {\n padding-block: 0.25rem;\n }\n .md\\:py-2 {\n padding-block: 0.5rem;\n }\n .md\\:py-3 {\n padding-block: 0.75rem;\n }\n .md\\:py-4 {\n padding-block: 1rem;\n }\n .md\\:py-5 {\n padding-block: 1.25rem;\n }\n .md\\:py-6 {\n padding-block: 1.5rem;\n }\n .md\\:py-7 {\n padding-block: 2rem;\n }\n .md\\:py-8 {\n padding-block: 2.5rem;\n }\n .md\\:py-9 {\n padding-block: 3rem;\n }\n .md\\:pt-0 {\n padding-block-start: 0;\n }\n .md\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .md\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .md\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .md\\:pt-4 {\n padding-block-start: 1rem;\n }\n .md\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .md\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .md\\:pt-7 {\n padding-block-start: 2rem;\n }\n .md\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .md\\:pt-9 {\n padding-block-start: 3rem;\n }\n .md\\:pe-0 {\n padding-inline-end: 0;\n }\n .md\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .md\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .md\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .md\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .md\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .md\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .md\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .md\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .md\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .md\\:pb-0 {\n padding-block-end: 0;\n }\n .md\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .md\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .md\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .md\\:pb-4 {\n padding-block-end: 1rem;\n }\n .md\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .md\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .md\\:pb-7 {\n padding-block-end: 2rem;\n }\n .md\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .md\\:pb-9 {\n padding-block-end: 3rem;\n }\n .md\\:ps-0 {\n padding-inline-start: 0;\n }\n .md\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .md\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .md\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .md\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .md\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .md\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .md\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .md\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .md\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .md\\:gap-0 {\n gap: 0;\n }\n .md\\:gap-1 {\n gap: 0.25rem;\n }\n .md\\:gap-2 {\n gap: 0.5rem;\n }\n .md\\:gap-3 {\n gap: 0.75rem;\n }\n .md\\:gap-4 {\n gap: 1rem;\n }\n .md\\:gap-5 {\n gap: 1.25rem;\n }\n .md\\:gap-6 {\n gap: 1.5rem;\n }\n .md\\:gap-7 {\n gap: 2rem;\n }\n .md\\:gap-8 {\n gap: 2.5rem;\n }\n .md\\:gap-9 {\n gap: 3rem;\n }\n .md\\:row-gap-0 {\n row-gap: 0;\n }\n .md\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .md\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .md\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .md\\:row-gap-4 {\n row-gap: 1rem;\n }\n .md\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .md\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .md\\:row-gap-7 {\n row-gap: 2rem;\n }\n .md\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .md\\:row-gap-9 {\n row-gap: 3rem;\n }\n .md\\:column-gap-0 {\n column-gap: 0;\n }\n .md\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .md\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .md\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .md\\:column-gap-4 {\n column-gap: 1rem;\n }\n .md\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .md\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .md\\:column-gap-7 {\n column-gap: 2rem;\n }\n .md\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .md\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n @media (width >= 1024px) {\n .lg\\:d-inline {\n display: inline;\n }\n .lg\\:d-inline-block {\n display: inline-block;\n }\n .lg\\:d-block {\n display: block;\n }\n .lg\\:d-grid {\n display: grid;\n }\n .lg\\:d-inline-grid {\n display: inline-grid;\n }\n .lg\\:d-table {\n display: table;\n }\n .lg\\:d-table-row {\n display: table-row;\n }\n .lg\\:d-table-cell {\n display: table-cell;\n }\n .lg\\:d-flex {\n display: flex;\n }\n .lg\\:d-inline-flex {\n display: inline-flex;\n }\n .lg\\:d-contents {\n display: contents;\n }\n .lg\\:d-flow-root {\n display: flow-root;\n }\n .lg\\:d-none {\n display: none;\n }\n .lg\\:flex-fill {\n flex: 1 1 auto;\n }\n .lg\\:flex-row {\n flex-direction: row;\n }\n .lg\\:flex-column {\n flex-direction: column;\n }\n .lg\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .lg\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .lg\\:flex-grow-0 {\n flex-grow: 0;\n }\n .lg\\:flex-grow-1 {\n flex-grow: 1;\n }\n .lg\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .lg\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .lg\\:flex-wrap {\n flex-wrap: wrap;\n }\n .lg\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .lg\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .lg\\:justify-content-start {\n justify-content: flex-start;\n }\n .lg\\:justify-content-end {\n justify-content: flex-end;\n }\n .lg\\:justify-content-center {\n justify-content: center;\n }\n .lg\\:justify-content-between {\n justify-content: space-between;\n }\n .lg\\:justify-content-around {\n justify-content: space-around;\n }\n .lg\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .lg\\:justify-items-start {\n justify-items: start;\n }\n .lg\\:justify-items-end {\n justify-items: end;\n }\n .lg\\:justify-items-center {\n justify-items: center;\n }\n .lg\\:justify-items-stretch {\n justify-items: stretch;\n }\n .lg\\:align-items-start {\n align-items: flex-start;\n }\n .lg\\:align-items-end {\n align-items: flex-end;\n }\n .lg\\:align-items-center {\n align-items: center;\n }\n .lg\\:align-items-baseline {\n align-items: baseline;\n }\n .lg\\:align-items-stretch {\n align-items: stretch;\n }\n .lg\\:align-content-start {\n align-content: flex-start;\n }\n .lg\\:align-content-end {\n align-content: flex-end;\n }\n .lg\\:align-content-center {\n align-content: center;\n }\n .lg\\:align-content-between {\n align-content: space-between;\n }\n .lg\\:align-content-around {\n align-content: space-around;\n }\n .lg\\:align-content-stretch {\n align-content: stretch;\n }\n .lg\\:align-self-auto {\n align-self: auto;\n }\n .lg\\:align-self-start {\n align-self: flex-start;\n }\n .lg\\:align-self-end {\n align-self: flex-end;\n }\n .lg\\:align-self-center {\n align-self: center;\n }\n .lg\\:align-self-baseline {\n align-self: baseline;\n }\n .lg\\:align-self-stretch {\n align-self: stretch;\n }\n .lg\\:place-items-start {\n place-items: start;\n }\n .lg\\:place-items-end {\n place-items: end;\n }\n .lg\\:place-items-center {\n place-items: center;\n }\n .lg\\:place-items-stretch {\n place-items: stretch;\n }\n .lg\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .lg\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .lg\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .lg\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .lg\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .lg\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .lg\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .lg\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .lg\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .lg\\:order-first {\n order: -1;\n }\n .lg\\:order-0 {\n order: 0;\n }\n .lg\\:order-1 {\n order: 1;\n }\n .lg\\:order-2 {\n order: 2;\n }\n .lg\\:order-3 {\n order: 3;\n }\n .lg\\:order-4 {\n order: 4;\n }\n .lg\\:order-5 {\n order: 5;\n }\n .lg\\:order-last {\n order: 6;\n }\n .lg\\:m-0 {\n margin: 0;\n }\n .lg\\:m-1 {\n margin: 0.25rem;\n }\n .lg\\:m-2 {\n margin: 0.5rem;\n }\n .lg\\:m-3 {\n margin: 0.75rem;\n }\n .lg\\:m-4 {\n margin: 1rem;\n }\n .lg\\:m-5 {\n margin: 1.25rem;\n }\n .lg\\:m-6 {\n margin: 1.5rem;\n }\n .lg\\:m-7 {\n margin: 2rem;\n }\n .lg\\:m-8 {\n margin: 2.5rem;\n }\n .lg\\:m-9 {\n margin: 3rem;\n }\n .lg\\:m-auto {\n margin: auto;\n }\n .lg\\:mx-0 {\n margin-inline: 0;\n }\n .lg\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .lg\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .lg\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .lg\\:mx-4 {\n margin-inline: 1rem;\n }\n .lg\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .lg\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .lg\\:mx-7 {\n margin-inline: 2rem;\n }\n .lg\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .lg\\:mx-9 {\n margin-inline: 3rem;\n }\n .lg\\:mx-auto {\n margin-inline: auto;\n }\n .lg\\:my-0 {\n margin-block: 0;\n }\n .lg\\:my-1 {\n margin-block: 0.25rem;\n }\n .lg\\:my-2 {\n margin-block: 0.5rem;\n }\n .lg\\:my-3 {\n margin-block: 0.75rem;\n }\n .lg\\:my-4 {\n margin-block: 1rem;\n }\n .lg\\:my-5 {\n margin-block: 1.25rem;\n }\n .lg\\:my-6 {\n margin-block: 1.5rem;\n }\n .lg\\:my-7 {\n margin-block: 2rem;\n }\n .lg\\:my-8 {\n margin-block: 2.5rem;\n }\n .lg\\:my-9 {\n margin-block: 3rem;\n }\n .lg\\:my-auto {\n margin-block: auto;\n }\n .lg\\:mt-0 {\n margin-block-start: 0;\n }\n .lg\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .lg\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .lg\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .lg\\:mt-4 {\n margin-block-start: 1rem;\n }\n .lg\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .lg\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .lg\\:mt-7 {\n margin-block-start: 2rem;\n }\n .lg\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .lg\\:mt-9 {\n margin-block-start: 3rem;\n }\n .lg\\:mt-auto {\n margin-block-start: auto;\n }\n .lg\\:me-0 {\n margin-inline-end: 0;\n }\n .lg\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .lg\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .lg\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .lg\\:me-4 {\n margin-inline-end: 1rem;\n }\n .lg\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .lg\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .lg\\:me-7 {\n margin-inline-end: 2rem;\n }\n .lg\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .lg\\:me-9 {\n margin-inline-end: 3rem;\n }\n .lg\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .lg\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .lg\\:me-auto {\n margin-inline-end: auto;\n }\n .lg\\:mb-0 {\n margin-block-end: 0;\n }\n .lg\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .lg\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .lg\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .lg\\:mb-4 {\n margin-block-end: 1rem;\n }\n .lg\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .lg\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .lg\\:mb-7 {\n margin-block-end: 2rem;\n }\n .lg\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .lg\\:mb-9 {\n margin-block-end: 3rem;\n }\n .lg\\:mb-auto {\n margin-block-end: auto;\n }\n .lg\\:ms-0 {\n margin-inline-start: 0;\n }\n .lg\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .lg\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .lg\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .lg\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .lg\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .lg\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .lg\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .lg\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .lg\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .lg\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .lg\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .lg\\:ms-auto {\n margin-inline-start: auto;\n }\n .lg\\:p-0 {\n padding: 0;\n }\n .lg\\:p-1 {\n padding: 0.25rem;\n }\n .lg\\:p-2 {\n padding: 0.5rem;\n }\n .lg\\:p-3 {\n padding: 0.75rem;\n }\n .lg\\:p-4 {\n padding: 1rem;\n }\n .lg\\:p-5 {\n padding: 1.25rem;\n }\n .lg\\:p-6 {\n padding: 1.5rem;\n }\n .lg\\:p-7 {\n padding: 2rem;\n }\n .lg\\:p-8 {\n padding: 2.5rem;\n }\n .lg\\:p-9 {\n padding: 3rem;\n }\n .lg\\:px-0 {\n padding-inline: 0;\n }\n .lg\\:px-1 {\n padding-inline: 0.25rem;\n }\n .lg\\:px-2 {\n padding-inline: 0.5rem;\n }\n .lg\\:px-3 {\n padding-inline: 0.75rem;\n }\n .lg\\:px-4 {\n padding-inline: 1rem;\n }\n .lg\\:px-5 {\n padding-inline: 1.25rem;\n }\n .lg\\:px-6 {\n padding-inline: 1.5rem;\n }\n .lg\\:px-7 {\n padding-inline: 2rem;\n }\n .lg\\:px-8 {\n padding-inline: 2.5rem;\n }\n .lg\\:px-9 {\n padding-inline: 3rem;\n }\n .lg\\:py-0 {\n padding-block: 0;\n }\n .lg\\:py-1 {\n padding-block: 0.25rem;\n }\n .lg\\:py-2 {\n padding-block: 0.5rem;\n }\n .lg\\:py-3 {\n padding-block: 0.75rem;\n }\n .lg\\:py-4 {\n padding-block: 1rem;\n }\n .lg\\:py-5 {\n padding-block: 1.25rem;\n }\n .lg\\:py-6 {\n padding-block: 1.5rem;\n }\n .lg\\:py-7 {\n padding-block: 2rem;\n }\n .lg\\:py-8 {\n padding-block: 2.5rem;\n }\n .lg\\:py-9 {\n padding-block: 3rem;\n }\n .lg\\:pt-0 {\n padding-block-start: 0;\n }\n .lg\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .lg\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .lg\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .lg\\:pt-4 {\n padding-block-start: 1rem;\n }\n .lg\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .lg\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .lg\\:pt-7 {\n padding-block-start: 2rem;\n }\n .lg\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .lg\\:pt-9 {\n padding-block-start: 3rem;\n }\n .lg\\:pe-0 {\n padding-inline-end: 0;\n }\n .lg\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .lg\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .lg\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .lg\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .lg\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .lg\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .lg\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .lg\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .lg\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .lg\\:pb-0 {\n padding-block-end: 0;\n }\n .lg\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .lg\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .lg\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .lg\\:pb-4 {\n padding-block-end: 1rem;\n }\n .lg\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .lg\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .lg\\:pb-7 {\n padding-block-end: 2rem;\n }\n .lg\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .lg\\:pb-9 {\n padding-block-end: 3rem;\n }\n .lg\\:ps-0 {\n padding-inline-start: 0;\n }\n .lg\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .lg\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .lg\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .lg\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .lg\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .lg\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .lg\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .lg\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .lg\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .lg\\:gap-0 {\n gap: 0;\n }\n .lg\\:gap-1 {\n gap: 0.25rem;\n }\n .lg\\:gap-2 {\n gap: 0.5rem;\n }\n .lg\\:gap-3 {\n gap: 0.75rem;\n }\n .lg\\:gap-4 {\n gap: 1rem;\n }\n .lg\\:gap-5 {\n gap: 1.25rem;\n }\n .lg\\:gap-6 {\n gap: 1.5rem;\n }\n .lg\\:gap-7 {\n gap: 2rem;\n }\n .lg\\:gap-8 {\n gap: 2.5rem;\n }\n .lg\\:gap-9 {\n gap: 3rem;\n }\n .lg\\:row-gap-0 {\n row-gap: 0;\n }\n .lg\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .lg\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .lg\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .lg\\:row-gap-4 {\n row-gap: 1rem;\n }\n .lg\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .lg\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .lg\\:row-gap-7 {\n row-gap: 2rem;\n }\n .lg\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .lg\\:row-gap-9 {\n row-gap: 3rem;\n }\n .lg\\:column-gap-0 {\n column-gap: 0;\n }\n .lg\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .lg\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .lg\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .lg\\:column-gap-4 {\n column-gap: 1rem;\n }\n .lg\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .lg\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .lg\\:column-gap-7 {\n column-gap: 2rem;\n }\n .lg\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .lg\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n @media (width >= 1280px) {\n .xl\\:d-inline {\n display: inline;\n }\n .xl\\:d-inline-block {\n display: inline-block;\n }\n .xl\\:d-block {\n display: block;\n }\n .xl\\:d-grid {\n display: grid;\n }\n .xl\\:d-inline-grid {\n display: inline-grid;\n }\n .xl\\:d-table {\n display: table;\n }\n .xl\\:d-table-row {\n display: table-row;\n }\n .xl\\:d-table-cell {\n display: table-cell;\n }\n .xl\\:d-flex {\n display: flex;\n }\n .xl\\:d-inline-flex {\n display: inline-flex;\n }\n .xl\\:d-contents {\n display: contents;\n }\n .xl\\:d-flow-root {\n display: flow-root;\n }\n .xl\\:d-none {\n display: none;\n }\n .xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .xl\\:flex-row {\n flex-direction: row;\n }\n .xl\\:flex-column {\n flex-direction: column;\n }\n .xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .xl\\:justify-content-center {\n justify-content: center;\n }\n .xl\\:justify-content-between {\n justify-content: space-between;\n }\n .xl\\:justify-content-around {\n justify-content: space-around;\n }\n .xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .xl\\:justify-items-start {\n justify-items: start;\n }\n .xl\\:justify-items-end {\n justify-items: end;\n }\n .xl\\:justify-items-center {\n justify-items: center;\n }\n .xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .xl\\:align-items-start {\n align-items: flex-start;\n }\n .xl\\:align-items-end {\n align-items: flex-end;\n }\n .xl\\:align-items-center {\n align-items: center;\n }\n .xl\\:align-items-baseline {\n align-items: baseline;\n }\n .xl\\:align-items-stretch {\n align-items: stretch;\n }\n .xl\\:align-content-start {\n align-content: flex-start;\n }\n .xl\\:align-content-end {\n align-content: flex-end;\n }\n .xl\\:align-content-center {\n align-content: center;\n }\n .xl\\:align-content-between {\n align-content: space-between;\n }\n .xl\\:align-content-around {\n align-content: space-around;\n }\n .xl\\:align-content-stretch {\n align-content: stretch;\n }\n .xl\\:align-self-auto {\n align-self: auto;\n }\n .xl\\:align-self-start {\n align-self: flex-start;\n }\n .xl\\:align-self-end {\n align-self: flex-end;\n }\n .xl\\:align-self-center {\n align-self: center;\n }\n .xl\\:align-self-baseline {\n align-self: baseline;\n }\n .xl\\:align-self-stretch {\n align-self: stretch;\n }\n .xl\\:place-items-start {\n place-items: start;\n }\n .xl\\:place-items-end {\n place-items: end;\n }\n .xl\\:place-items-center {\n place-items: center;\n }\n .xl\\:place-items-stretch {\n place-items: stretch;\n }\n .xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .xl\\:order-first {\n order: -1;\n }\n .xl\\:order-0 {\n order: 0;\n }\n .xl\\:order-1 {\n order: 1;\n }\n .xl\\:order-2 {\n order: 2;\n }\n .xl\\:order-3 {\n order: 3;\n }\n .xl\\:order-4 {\n order: 4;\n }\n .xl\\:order-5 {\n order: 5;\n }\n .xl\\:order-last {\n order: 6;\n }\n .xl\\:m-0 {\n margin: 0;\n }\n .xl\\:m-1 {\n margin: 0.25rem;\n }\n .xl\\:m-2 {\n margin: 0.5rem;\n }\n .xl\\:m-3 {\n margin: 0.75rem;\n }\n .xl\\:m-4 {\n margin: 1rem;\n }\n .xl\\:m-5 {\n margin: 1.25rem;\n }\n .xl\\:m-6 {\n margin: 1.5rem;\n }\n .xl\\:m-7 {\n margin: 2rem;\n }\n .xl\\:m-8 {\n margin: 2.5rem;\n }\n .xl\\:m-9 {\n margin: 3rem;\n }\n .xl\\:m-auto {\n margin: auto;\n }\n .xl\\:mx-0 {\n margin-inline: 0;\n }\n .xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .xl\\:mx-auto {\n margin-inline: auto;\n }\n .xl\\:my-0 {\n margin-block: 0;\n }\n .xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .xl\\:my-4 {\n margin-block: 1rem;\n }\n .xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .xl\\:my-7 {\n margin-block: 2rem;\n }\n .xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .xl\\:my-9 {\n margin-block: 3rem;\n }\n .xl\\:my-auto {\n margin-block: auto;\n }\n .xl\\:mt-0 {\n margin-block-start: 0;\n }\n .xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .xl\\:mt-auto {\n margin-block-start: auto;\n }\n .xl\\:me-0 {\n margin-inline-end: 0;\n }\n .xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .xl\\:me-auto {\n margin-inline-end: auto;\n }\n .xl\\:mb-0 {\n margin-block-end: 0;\n }\n .xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .xl\\:mb-auto {\n margin-block-end: auto;\n }\n .xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .xl\\:p-0 {\n padding: 0;\n }\n .xl\\:p-1 {\n padding: 0.25rem;\n }\n .xl\\:p-2 {\n padding: 0.5rem;\n }\n .xl\\:p-3 {\n padding: 0.75rem;\n }\n .xl\\:p-4 {\n padding: 1rem;\n }\n .xl\\:p-5 {\n padding: 1.25rem;\n }\n .xl\\:p-6 {\n padding: 1.5rem;\n }\n .xl\\:p-7 {\n padding: 2rem;\n }\n .xl\\:p-8 {\n padding: 2.5rem;\n }\n .xl\\:p-9 {\n padding: 3rem;\n }\n .xl\\:px-0 {\n padding-inline: 0;\n }\n .xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .xl\\:px-4 {\n padding-inline: 1rem;\n }\n .xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .xl\\:px-7 {\n padding-inline: 2rem;\n }\n .xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .xl\\:px-9 {\n padding-inline: 3rem;\n }\n .xl\\:py-0 {\n padding-block: 0;\n }\n .xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .xl\\:py-4 {\n padding-block: 1rem;\n }\n .xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .xl\\:py-7 {\n padding-block: 2rem;\n }\n .xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .xl\\:py-9 {\n padding-block: 3rem;\n }\n .xl\\:pt-0 {\n padding-block-start: 0;\n }\n .xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .xl\\:pb-0 {\n padding-block-end: 0;\n }\n .xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .xl\\:gap-0 {\n gap: 0;\n }\n .xl\\:gap-1 {\n gap: 0.25rem;\n }\n .xl\\:gap-2 {\n gap: 0.5rem;\n }\n .xl\\:gap-3 {\n gap: 0.75rem;\n }\n .xl\\:gap-4 {\n gap: 1rem;\n }\n .xl\\:gap-5 {\n gap: 1.25rem;\n }\n .xl\\:gap-6 {\n gap: 1.5rem;\n }\n .xl\\:gap-7 {\n gap: 2rem;\n }\n .xl\\:gap-8 {\n gap: 2.5rem;\n }\n .xl\\:gap-9 {\n gap: 3rem;\n }\n .xl\\:row-gap-0 {\n row-gap: 0;\n }\n .xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .xl\\:column-gap-0 {\n column-gap: 0;\n }\n .xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:d-inline {\n display: inline;\n }\n .\\32 xl\\:d-inline-block {\n display: inline-block;\n }\n .\\32 xl\\:d-block {\n display: block;\n }\n .\\32 xl\\:d-grid {\n display: grid;\n }\n .\\32 xl\\:d-inline-grid {\n display: inline-grid;\n }\n .\\32 xl\\:d-table {\n display: table;\n }\n .\\32 xl\\:d-table-row {\n display: table-row;\n }\n .\\32 xl\\:d-table-cell {\n display: table-cell;\n }\n .\\32 xl\\:d-flex {\n display: flex;\n }\n .\\32 xl\\:d-inline-flex {\n display: inline-flex;\n }\n .\\32 xl\\:d-contents {\n display: contents;\n }\n .\\32 xl\\:d-flow-root {\n display: flow-root;\n }\n .\\32 xl\\:d-none {\n display: none;\n }\n .\\32 xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .\\32 xl\\:flex-row {\n flex-direction: row;\n }\n .\\32 xl\\:flex-column {\n flex-direction: column;\n }\n .\\32 xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .\\32 xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .\\32 xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .\\32 xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .\\32 xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .\\32 xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .\\32 xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .\\32 xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .\\32 xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .\\32 xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .\\32 xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .\\32 xl\\:justify-content-center {\n justify-content: center;\n }\n .\\32 xl\\:justify-content-between {\n justify-content: space-between;\n }\n .\\32 xl\\:justify-content-around {\n justify-content: space-around;\n }\n .\\32 xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .\\32 xl\\:justify-items-start {\n justify-items: start;\n }\n .\\32 xl\\:justify-items-end {\n justify-items: end;\n }\n .\\32 xl\\:justify-items-center {\n justify-items: center;\n }\n .\\32 xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .\\32 xl\\:align-items-start {\n align-items: flex-start;\n }\n .\\32 xl\\:align-items-end {\n align-items: flex-end;\n }\n .\\32 xl\\:align-items-center {\n align-items: center;\n }\n .\\32 xl\\:align-items-baseline {\n align-items: baseline;\n }\n .\\32 xl\\:align-items-stretch {\n align-items: stretch;\n }\n .\\32 xl\\:align-content-start {\n align-content: flex-start;\n }\n .\\32 xl\\:align-content-end {\n align-content: flex-end;\n }\n .\\32 xl\\:align-content-center {\n align-content: center;\n }\n .\\32 xl\\:align-content-between {\n align-content: space-between;\n }\n .\\32 xl\\:align-content-around {\n align-content: space-around;\n }\n .\\32 xl\\:align-content-stretch {\n align-content: stretch;\n }\n .\\32 xl\\:align-self-auto {\n align-self: auto;\n }\n .\\32 xl\\:align-self-start {\n align-self: flex-start;\n }\n .\\32 xl\\:align-self-end {\n align-self: flex-end;\n }\n .\\32 xl\\:align-self-center {\n align-self: center;\n }\n .\\32 xl\\:align-self-baseline {\n align-self: baseline;\n }\n .\\32 xl\\:align-self-stretch {\n align-self: stretch;\n }\n .\\32 xl\\:place-items-start {\n place-items: start;\n }\n .\\32 xl\\:place-items-end {\n place-items: end;\n }\n .\\32 xl\\:place-items-center {\n place-items: center;\n }\n .\\32 xl\\:place-items-stretch {\n place-items: stretch;\n }\n .\\32 xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .\\32 xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .\\32 xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .\\32 xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .\\32 xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .\\32 xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .\\32 xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .\\32 xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .\\32 xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .\\32 xl\\:order-first {\n order: -1;\n }\n .\\32 xl\\:order-0 {\n order: 0;\n }\n .\\32 xl\\:order-1 {\n order: 1;\n }\n .\\32 xl\\:order-2 {\n order: 2;\n }\n .\\32 xl\\:order-3 {\n order: 3;\n }\n .\\32 xl\\:order-4 {\n order: 4;\n }\n .\\32 xl\\:order-5 {\n order: 5;\n }\n .\\32 xl\\:order-last {\n order: 6;\n }\n .\\32 xl\\:m-0 {\n margin: 0;\n }\n .\\32 xl\\:m-1 {\n margin: 0.25rem;\n }\n .\\32 xl\\:m-2 {\n margin: 0.5rem;\n }\n .\\32 xl\\:m-3 {\n margin: 0.75rem;\n }\n .\\32 xl\\:m-4 {\n margin: 1rem;\n }\n .\\32 xl\\:m-5 {\n margin: 1.25rem;\n }\n .\\32 xl\\:m-6 {\n margin: 1.5rem;\n }\n .\\32 xl\\:m-7 {\n margin: 2rem;\n }\n .\\32 xl\\:m-8 {\n margin: 2.5rem;\n }\n .\\32 xl\\:m-9 {\n margin: 3rem;\n }\n .\\32 xl\\:m-auto {\n margin: auto;\n }\n .\\32 xl\\:mx-0 {\n margin-inline: 0;\n }\n .\\32 xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .\\32 xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .\\32 xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .\\32 xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .\\32 xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .\\32 xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .\\32 xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .\\32 xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .\\32 xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .\\32 xl\\:mx-auto {\n margin-inline: auto;\n }\n .\\32 xl\\:my-0 {\n margin-block: 0;\n }\n .\\32 xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .\\32 xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .\\32 xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .\\32 xl\\:my-4 {\n margin-block: 1rem;\n }\n .\\32 xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .\\32 xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .\\32 xl\\:my-7 {\n margin-block: 2rem;\n }\n .\\32 xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .\\32 xl\\:my-9 {\n margin-block: 3rem;\n }\n .\\32 xl\\:my-auto {\n margin-block: auto;\n }\n .\\32 xl\\:mt-0 {\n margin-block-start: 0;\n }\n .\\32 xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .\\32 xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .\\32 xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .\\32 xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .\\32 xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .\\32 xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .\\32 xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .\\32 xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .\\32 xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .\\32 xl\\:mt-auto {\n margin-block-start: auto;\n }\n .\\32 xl\\:me-0 {\n margin-inline-end: 0;\n }\n .\\32 xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .\\32 xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .\\32 xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .\\32 xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .\\32 xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .\\32 xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .\\32 xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .\\32 xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .\\32 xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .\\32 xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .\\32 xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .\\32 xl\\:me-auto {\n margin-inline-end: auto;\n }\n .\\32 xl\\:mb-0 {\n margin-block-end: 0;\n }\n .\\32 xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .\\32 xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .\\32 xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .\\32 xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .\\32 xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .\\32 xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .\\32 xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .\\32 xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .\\32 xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .\\32 xl\\:mb-auto {\n margin-block-end: auto;\n }\n .\\32 xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .\\32 xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .\\32 xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .\\32 xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .\\32 xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .\\32 xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .\\32 xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .\\32 xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .\\32 xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .\\32 xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .\\32 xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .\\32 xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .\\32 xl\\:p-0 {\n padding: 0;\n }\n .\\32 xl\\:p-1 {\n padding: 0.25rem;\n }\n .\\32 xl\\:p-2 {\n padding: 0.5rem;\n }\n .\\32 xl\\:p-3 {\n padding: 0.75rem;\n }\n .\\32 xl\\:p-4 {\n padding: 1rem;\n }\n .\\32 xl\\:p-5 {\n padding: 1.25rem;\n }\n .\\32 xl\\:p-6 {\n padding: 1.5rem;\n }\n .\\32 xl\\:p-7 {\n padding: 2rem;\n }\n .\\32 xl\\:p-8 {\n padding: 2.5rem;\n }\n .\\32 xl\\:p-9 {\n padding: 3rem;\n }\n .\\32 xl\\:px-0 {\n padding-inline: 0;\n }\n .\\32 xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .\\32 xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .\\32 xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .\\32 xl\\:px-4 {\n padding-inline: 1rem;\n }\n .\\32 xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .\\32 xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .\\32 xl\\:px-7 {\n padding-inline: 2rem;\n }\n .\\32 xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .\\32 xl\\:px-9 {\n padding-inline: 3rem;\n }\n .\\32 xl\\:py-0 {\n padding-block: 0;\n }\n .\\32 xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .\\32 xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .\\32 xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .\\32 xl\\:py-4 {\n padding-block: 1rem;\n }\n .\\32 xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .\\32 xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .\\32 xl\\:py-7 {\n padding-block: 2rem;\n }\n .\\32 xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .\\32 xl\\:py-9 {\n padding-block: 3rem;\n }\n .\\32 xl\\:pt-0 {\n padding-block-start: 0;\n }\n .\\32 xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .\\32 xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .\\32 xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .\\32 xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .\\32 xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .\\32 xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .\\32 xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .\\32 xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .\\32 xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .\\32 xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .\\32 xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .\\32 xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .\\32 xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .\\32 xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .\\32 xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .\\32 xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .\\32 xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .\\32 xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .\\32 xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .\\32 xl\\:pb-0 {\n padding-block-end: 0;\n }\n .\\32 xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .\\32 xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .\\32 xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .\\32 xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .\\32 xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .\\32 xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .\\32 xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .\\32 xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .\\32 xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .\\32 xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .\\32 xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .\\32 xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .\\32 xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .\\32 xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .\\32 xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .\\32 xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .\\32 xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .\\32 xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .\\32 xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .\\32 xl\\:gap-0 {\n gap: 0;\n }\n .\\32 xl\\:gap-1 {\n gap: 0.25rem;\n }\n .\\32 xl\\:gap-2 {\n gap: 0.5rem;\n }\n .\\32 xl\\:gap-3 {\n gap: 0.75rem;\n }\n .\\32 xl\\:gap-4 {\n gap: 1rem;\n }\n .\\32 xl\\:gap-5 {\n gap: 1.25rem;\n }\n .\\32 xl\\:gap-6 {\n gap: 1.5rem;\n }\n .\\32 xl\\:gap-7 {\n gap: 2rem;\n }\n .\\32 xl\\:gap-8 {\n gap: 2.5rem;\n }\n .\\32 xl\\:gap-9 {\n gap: 3rem;\n }\n .\\32 xl\\:row-gap-0 {\n row-gap: 0;\n }\n .\\32 xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .\\32 xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .\\32 xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .\\32 xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .\\32 xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .\\32 xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .\\32 xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .\\32 xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .\\32 xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .\\32 xl\\:column-gap-0 {\n column-gap: 0;\n }\n .\\32 xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .\\32 xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .\\32 xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .\\32 xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .\\32 xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .\\32 xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .\\32 xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .\\32 xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .\\32 xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n}\n:root {\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 1024px;\n --breakpoint-xl: 1280px;\n --breakpoint-2xl: 1536px;\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */\n","$file: \"\" !default;\n\n/*!\n * Bootstrap #{$file} v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n","@use \"../config\" as *;\n@use \"breakpoints\" as *;\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n --gutter-x: #{$gutter};\n --gutter-y: 0;\n width: 100%;\n padding-inline: calc(var(--gutter-x) * .5);\n margin-inline: auto;\n}\n\n@layer layout {\n @if $enable-container-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .#{breakpoint-prefix($breakpoint, $breakpoints)}container {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n @each $name, $width in $breakpoints {\n @if ($extend-breakpoint) {\n .#{breakpoint-prefix($name, $breakpoints)}container {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n }\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:string\";\n@use \"../config\" as *;\n\n// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px)\n//\n// The map defined in the `$breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl 2xl))\n// md\n@function breakpoint-next($name, $breakpoints: $breakpoints, $breakpoint-names: map.keys($breakpoints)) {\n $n: list.index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoint-names}`\";\n }\n // Use @if/@else because list.nth would error if evaluated when $n equals list length\n @if $n < list.length($breakpoint-names) {\n @return list.nth($breakpoint-names, $n + 1);\n } @else {\n @return null;\n }\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $breakpoints) {\n $min: map.get($breakpoints, $name);\n @return if(sass($min != 0): $min; else: null);\n}\n\n// Maximum breakpoint width for range media queries.\n// Returns the breakpoint value to use as an upper bound in range queries.\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n// >> breakpoint-max(xxl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// null\n@function breakpoint-max($name, $breakpoints: $breakpoints) {\n @if $name == null {\n @return null;\n }\n $max: map.get($breakpoints, $name);\n @return if(sass($max and $max > 0): $max; else: null);\n}\n\n// Escape a name for use at the start of a CSS identifier.\n// Leading digits are hex-escaped (e.g., 2xl becomes \\32 xl).\n@function css-escape-ident($name) {\n $name-str: \"#{$name}\";\n $digits: \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\";\n $first: string.slice($name-str, 1, 1);\n\n @if list.index($digits, $first) {\n @return \"\\\\3#{$first} #{string.slice($name-str, 2)}\";\n }\n\n @return $name-str;\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name\n// with an escaped colon as a Tailwind-style prefix for responsive class names.\n// Leading digits are CSS-escaped (e.g., 2xl becomes \\32 xl) for valid identifiers.\n//\n// >> breakpoint-prefix(xs, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\" (Returns a blank string)\n// >> breakpoint-prefix(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"sm\\:\"\n// >> breakpoint-prefix(2xl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\\32 xl\\:\"\n@function breakpoint-prefix($name, $breakpoints: $breakpoints) {\n @if breakpoint-min($name, $breakpoints) == null {\n @return \"\";\n }\n\n @return \"#{css-escape-ident($name)}\\\\:\";\n}\n\n// Iterate all breakpoints and provide the current name and prefix.\n//\n// @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-up($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n @content($breakpoint, $prefix);\n }\n}\n\n// Iterate all breakpoints and provide the current name, next name, and next prefix.\n//\n// @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-down($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $next: breakpoint-next($breakpoint, $breakpoints);\n $prefix: breakpoint-prefix($next, $breakpoints);\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Backwards-compatible alias for next/down breakpoint loops.\n@mixin loop-breakpoints($breakpoints: $breakpoints) {\n @include loop-breakpoints-down($breakpoints) using ($breakpoint, $next, $prefix) {\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (width >= $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (width < $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n\n\n// Container queries\n//\n// Container queries allow elements to respond to the size of a containing element\n// rather than the viewport. These mixins mirror the media-breakpoint-* mixins above.\n//\n// scss-docs-start container-query-mixins\n\n// Set an element as a query container.\n//\n// @include set-container(); // container-type: inline-size\n// @include set-container(size); // container-type: size\n// @include set-container(inline-size, sidebar); // container: sidebar / inline-size\n//\n@mixin set-container($type: inline-size, $name: null) {\n @if $name {\n container: #{$name} / #{$type};\n } @else {\n container-type: #{$type};\n }\n}\n\n// Container query of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider within the container.\n//\n// @include container-breakpoint-up(md) { ... }\n// @include container-breakpoint-up(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-up($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower within the container.\n//\n// @include container-breakpoint-down(lg) { ... }\n// @include container-breakpoint-down(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-down($name, $container-name: null, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @if $container-name {\n @container #{$container-name} (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width < #{$max}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints within the container.\n//\n// @include container-breakpoint-between(md, xl) { ... }\n// @include container-breakpoint-between(md, xl, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-between($lower, $upper, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($lower, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($upper, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n\n// Container query between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint within the container.\n//\n// @include container-breakpoint-only(md) { ... }\n// @include container-breakpoint-only(md, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-only($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($name, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($next, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n// scss-docs-end container-query-mixins\n","@use \"sass:map\";\n@use \"sass:meta\";\n\n// Configuration\n//\n// Variables and settings not related to theme, components, and more go here. It does include layout.\n\n// Merge overrides on top of defaults, stripping null entries.\n// Null values let users remove map keys via @use ... with().\n// Accepts a list as $defaults (converted to a map with `true` values).\n@function defaults($defaults, $overrides) {\n @if meta.type-of($defaults) == \"list\" {\n $map: ();\n @each $key in $defaults {\n $map: map.merge($map, ($key: true));\n }\n $defaults: $map;\n }\n $merged: map.merge($defaults, $overrides);\n @each $key, $value in $merged {\n @if $value == null {\n $merged: map.remove($merged, $key);\n }\n }\n @return $merged;\n}\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: true !default;\n$enable-gradients: true !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: false !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: true !default;\n$enable-button-pointers: true !default;\n// $enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n\n$enable-dark-mode: true !default;\n\n$color-mode-type: \"media-query\" !default;\n$color-contrast-dark: #000 !default;\n$color-contrast-light: #fff !default;\n$min-contrast-ratio: 4.5 !default;\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer * .75,\n 4: $spacer,\n 5: $spacer * 1.25,\n 6: $spacer * 1.5,\n 7: $spacer * 2,\n 8: $spacer * 2.5,\n 9: $spacer * 3,\n) !default;\n\n$negative-spacers: (\n \"-1\": $spacer * -.25,\n \"-2\": $spacer * -.5,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n$sizes: (\n 1: $spacer,\n 2: $spacer * 2,\n 3: $spacer * 3,\n 4: $spacer * 4,\n 5: $spacer * 5,\n 6: $spacer * 6,\n 7: $spacer * 7,\n 8: $spacer * 8,\n 9: $spacer * 9,\n 10: $spacer * 10,\n 11: $spacer * 11,\n 12: $spacer * 12,\n) !default;\n\n$radius: .5rem !default;\n$radii: (\n 0: 0,\n 1: $radius * .25,\n 2: $radius * .375,\n 3: $radius * .5,\n 4: $radius * .75,\n 5: $radius,\n 6: $radius * 1.25,\n 7: $radius * 1.5,\n 8: $radius * 2,\n 9: $radius * 3,\n) !default;\n\n// Breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start breakpoints\n$breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 1024px,\n xl: 1280px,\n 2xl: 1536px\n) !default;\n// scss-docs-end breakpoints\n\n// @include _assert-ascending($breakpoints, \"$breakpoints\");\n// @include _assert-starts-at-zero($breakpoints, \"$breakpoints\");\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-x: 1.5rem !default;\n$grid-gutter-y: 0 !default;\n$grid-row-columns: 6 !default;\n\n$gutters: $spacers !default;\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1200px,\n 2xl: 1440px\n) !default;\n// scss-docs-end container-max-widths\n\n$container-padding-x: $grid-gutter-x !default;\n\n$utilities: () !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent)) !default;\n// scss-docs-end variable-gradient\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Links\n//\n// Style anchor elements.\n\n$link-decoration: underline !default;\n$link-underline-offset: .2em !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: color-mix(in oklch, var(--gray-100), var(--gray-200)) !default;\n// scss-docs-end border-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"auto\": auto,\n \"1x1\": #{\"1 / 1\"},\n \"4x3\": #{\"4 / 3\"},\n \"16x9\": #{\"16 / 9\"},\n \"21x9\": #{\"21 / 9\"}\n) !default;\n// scss-docs-end aspect-ratios\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$font-sizes: defaults(\n (\n \"xs\": (\n \"font-size\": .75rem,\n \"line-height\": 1.25\n ),\n \"sm\": (\n \"font-size\": .875rem,\n \"line-height\": 1.5\n ),\n \"md\": (\n \"font-size\": 1rem,\n \"line-height\": 1.5\n ),\n \"lg\": (\n \"font-size\": clamp(1.25rem, 1rem + .625vw, 1.5rem),\n \"line-height\": 1.5\n ),\n \"xl\": (\n \"font-size\": clamp(1.5rem, 1.1rem + .75vw, 1.75rem),\n \"line-height\": calc(2.5 / 1.75)\n ),\n \"2xl\": (\n \"font-size\": clamp(1.75rem, 1.3rem + 1vw, 2rem),\n \"line-height\": calc(3 / 2.25)\n ),\n \"3xl\": (\n \"font-size\": clamp(2rem, 1.5rem + 1.875vw, 2.5rem),\n \"line-height\": 1.2\n ),\n \"4xl\": (\n \"font-size\": clamp(2.25rem, 1.75rem + 2.5vw, 3rem),\n \"line-height\": 1.1\n ),\n \"5xl\": (\n \"font-size\": clamp(3rem, 2rem + 5vw, 4rem),\n \"line-height\": 1.1\n ),\n \"6xl\": (\n \"font-size\": clamp(3.75rem, 2.5rem + 6.25vw, 5rem),\n \"line-height\": 1\n ),\n ),\n $font-sizes\n);\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: var(--spacer-2) !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start type-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n// scss-docs-end type-variables\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-menu: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n// $zindex-drawer-backdrop: 1040 !default;\n$zindex-drawer: 1045 !default;\n$zindex-dialog: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n","@use \"../config\" as *;\n@use \"../mixins/grid\" as *;\n\n// mdo-do\n// - check gap utilities as replacement for gutter classes from v5\n\n@layer layout {\n @if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n\n @include make-grid-columns();\n }\n\n @if $enable-cssgrid {\n .grid {\n --columns: #{$grid-columns};\n --rows: 1;\n --gap: #{$grid-gutter-x};\n\n display: grid;\n grid-template-rows: repeat(var(--rows), 1fr);\n grid-template-columns: repeat(var(--columns), 1fr);\n gap: var(--gap);\n\n }\n\n @include make-cssgrid();\n }\n\n // mdo-do: add to utilities?\n .grid-cols-subgrid {\n grid-template-columns: subgrid;\n }\n\n .grid-fill {\n --gap: #{$grid-gutter-x};\n\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-auto-flow: row;\n gap: var(--gap);\n }\n\n // .g-col-auto {\n // grid-column: auto;\n // }\n\n // mdo-do: add to utilities?\n // .grid-cols-3 {\n // --columns: 3;\n // }\n // .grid-cols-4 {\n // --columns: 4;\n // }\n // .grid-cols-6 {\n // --columns: 6;\n // }\n\n // .grid-full {\n // grid-column: 1 / -1;\n // }\n}\n","@use \"sass:map\";\n@use \"sass:math\";\n@use \"sass:meta\";\n@use \"../config\" as *;\n@use \"../layout/breakpoints\" as *;\n\n// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter-x: $grid-gutter-x, $gutter-y: $grid-gutter-y) {\n --gutter-x: #{$gutter-x};\n --gutter-y: #{$gutter-y};\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-inline: calc(-.5 * var(--gutter-x));\n margin-top: calc(-1 * var(--gutter-y));\n}\n\n@mixin make-col-ready() {\n // Add box sizing if only the grid is loaded\n // stylelint-disable-next-line scss/at-function-named-arguments\n box-sizing: if(sass(meta.variable-exists(include-column-box-sizing) and $include-column-box-sizing): border-box; else: null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-inline: calc(var(--gutter-x) * .5);\n margin-top: var(--gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: math.percentage(math.div($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: math.div($size, $columns);\n // stylelint-disable-next-line scss/at-function-named-arguments\n margin-inline-start: if(sass($num == 0): 0; else: math.percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// number of columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: math.percentage(math.div(1, $count));\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-x, $breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n .#{$prefix}col {\n flex: 1 0 0;\n }\n\n .#{$prefix}row-cols-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .#{$prefix}row-cols-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .#{$prefix}col-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .#{$prefix}col-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($prefix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .#{$prefix}offset-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .#{$prefix}g-#{$key},\n .#{$prefix}gx-#{$key} {\n --gutter-x: #{$value};\n }\n\n .#{$prefix}g-#{$key},\n .#{$prefix}gy-#{$key} {\n --gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .#{$prefix}g-col-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is an invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .#{$prefix}g-start-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/utilities\" as *;\n@use \"../utilities\" as *;\n\n@layer utilities {\n @include generate-utilities-loop($utilities, $breakpoints);\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"../layout/breakpoints\" as bp;\n\n// Utility generator\n\n// - Utilities can use three different types of selectors:\n// - class: .class\n// - attr-starts: [class^=\"class\"]\n// - attr-includes: [class*=\"class\"]\n// - Utilities can target children via `child-selector`, wrapped in :where() for zero specificity\n// - Utilities can generate regular CSS properties and CSS custom properties\n// - Utilities can be responsive or not\n// - Utilities can have state variants (e.g., hover, focus, active)\n// - Utilities can define local CSS variables\n//\n// CSS custom properties can be generated in two ways:\n//\n// 1. Property map with null values (CSS var receives the utility value):\n// \"bg-color\": (\n// property: (\n// \"--bg\": null,\n// \"background-color\": var(--bg)\n// ),\n// class: bg,\n// values: (\n// primary: var(--blue-500),\n// )\n// )\n// Generates:\n// .bg-primary {\n// --bs-bg: var(--bs-blue-500);\n// background-color: var(--bs-bg);\n// }\n//\n// 2. Variables map (static CSS custom properties on every class):\n// \"link-underline\": (\n// property: text-decoration-color,\n// class: link-underline,\n// variables: (\n// \"link-underline-opacity\": 1\n// ),\n// values: (...)\n// )\n// Generates:\n// .link-underline {\n// --bs-link-underline-opacity: 1;\n// text-decoration-color: ...;\n// }\n\n// Helper mixin to emit CSS custom properties from a utility's `variables` key.\n// When variables is a map, the provided static values are used on each class.\n// When variables is a list or single identifier, each variable receives the current utility value.\n@mixin generate-variables($utility, $value) {\n @if map.has-key($utility, variables) {\n $variables: map.get($utility, variables);\n @if meta.type-of($variables) == \"map\" {\n @each $var-key, $var-value in $variables {\n --#{$var-key}: #{$var-value};\n }\n } @else {\n // Treat as a list (or single identifier) — each variable gets the utility value\n @each $var-name in $variables {\n --#{$var-name}: #{$value};\n }\n }\n }\n}\n\n// Helper mixin to generate CSS properties for both legacy and property map approaches\n@mixin generate-properties($utility, $property-map, $properties, $value) {\n @if $property-map != null {\n // Property-Value Mapping approach\n @each $property, $default-value in $property-map {\n // If value is a map, check if it has a key for this property.\n // Otherwise, use default-value (or $value if default-value is null).\n $actual-value: $default-value;\n @if meta.type-of($value) == \"map\" and map.has-key($value, $property) {\n $actual-value: map.get($value, $property);\n } @else if $default-value == null {\n $actual-value: $value;\n }\n @if map.get($utility, important) {\n #{$property}: $actual-value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $actual-value;\n }\n }\n } @else {\n // Legacy approach\n @each $property in $properties {\n @if map.get($utility, important) {\n #{$property}: $value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $value;\n }\n }\n }\n}\n\n@mixin generate-utility($utility, $prefix: \"\") {\n // Validate required keys\n @if not map.has-key($utility, property) {\n @error \"Utility is missing required `property` key: #{$utility}\";\n }\n @if not map.has-key($utility, values) {\n @error \"Utility is missing required `values` key: #{$utility}\";\n }\n\n // Warn on unknown keys (likely typos)\n $valid-keys: property, values, class, selector, responsive, print, dark, important, state, variables, child-selector, enabled;\n @each $key in map.keys($utility) {\n @if not list.index($valid-keys, $key) {\n @warn \"Unknown utility key `#{$key}` found. Valid keys are: #{$valid-keys}\";\n }\n }\n\n // Validate boolean keys\n @each $bool-key in (responsive, print, dark, important, enabled) {\n @if map.has-key($utility, $bool-key) {\n $val: map.get($utility, $bool-key);\n @if $val != true and $val != false {\n @error \"Utility key `#{$bool-key}` should be a boolean (true or false), got: #{$val}\";\n }\n }\n }\n\n // Determine if we're generating a class, or an attribute selector\n $selector-type: \"class\";\n @if map.has-key($utility, selector) {\n $selector-type: map.get($utility, selector);\n // Validate selector type\n $valid-selectors: \"class\", \"attr-starts\", \"attr-includes\";\n @if not list.index($valid-selectors, $selector-type) {\n @error \"Invalid `selector` value `#{$selector-type}`. Must be one of: #{$valid-selectors}\";\n }\n }\n // Then get the class name to use in a class (e.g., .class) or in an attribute selector (e.g., [class^=\"class\"])\n $selector-class: map.get($utility, class);\n\n // Attribute selectors require a `class` key\n @if $selector-type != \"class\" and not map.has-key($utility, class) {\n @error \"Utility with `selector: #{$selector-type}` requires a `class` key.\";\n }\n\n // Get the list or map of values and ensure it's a map\n $values: map.get($utility, values);\n @if meta.type-of($values) != \"map\" {\n @if meta.type-of($values) == \"list\" {\n $list: ();\n @each $value in $values {\n $list: map.merge($list, ($value: $value));\n }\n $values: $list;\n } @else {\n $values: (null: $values);\n }\n }\n\n @each $key, $value in $values {\n $properties: map.get($utility, property);\n $property-map: null;\n $custom-class: \"\";\n\n // Check if property is a map (Property-Value Mapping approach)\n @if meta.type-of($properties) == \"map\" {\n $property-map: $properties;\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n }\n } @else {\n // Legacy approach: multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if meta.type-of($properties) == \"string\" {\n $properties: list.append((), $properties);\n }\n // Use custom class if present, otherwise use the first value from the list of properties\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n } @else {\n $custom-class: list.nth($properties, 1);\n }\n @if $custom-class == null {\n $custom-class: \"\";\n }\n }\n\n // State params to generate state variants\n $state: ();\n @if map.has-key($utility, state) {\n $state: map.get($utility, state);\n }\n\n // Don't add a dash before value key if value key is null (e.g. with shadow class)\n $custom-class-modifier: \"\";\n @if $key {\n @if $custom-class == \"\" {\n $custom-class-modifier: $key;\n } @else {\n $custom-class-modifier: \"-\" + $key;\n }\n }\n\n // Build the class name fragment (without prefix or dot) for reuse in state variants\n $class-name: \"\";\n @if $selector-type == \"class\" {\n @if $custom-class != \"\" {\n $class-name: $custom-class + $custom-class-modifier;\n } @else if $selector-class != null and $selector-class != \"\" {\n $class-name: $selector-class + $custom-class-modifier;\n } @else {\n $class-name: $custom-class-modifier;\n }\n }\n\n $selector: \"\";\n @if $selector-type == \"class\" {\n $selector: \".#{$prefix + $class-name}\";\n } @else if $selector-type == \"attr-starts\" {\n $selector: \"[class^=\\\"#{$selector-class}\\\"]\";\n } @else if $selector-type == \"attr-includes\" {\n $selector: \"[class*=\\\"#{$selector-class}\\\"]\";\n }\n\n // Apply child-selector wrapping if present (wraps in :where() for zero specificity)\n $child-sel: null;\n @if map.has-key($utility, child-selector) {\n $child-sel: map.get($utility, child-selector);\n }\n\n $final-selector: $selector;\n @if $child-sel {\n $final-selector: \":where(#{$selector} #{$child-sel})\";\n }\n\n #{$final-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n\n // Generate state variants (e.g., hover:link-10 instead of link-10-hover)\n @if $state != () {\n @each $state-variant in $state {\n $state-selector: \".#{$prefix}#{$state-variant}\\\\:#{$class-name}:#{$state-variant}\";\n @if $child-sel {\n $state-selector: \":where(#{$state-selector} #{$child-sel})\";\n }\n\n #{$state-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n }\n }\n }\n}\n\n// Generates all utility classes: base, responsive, print, and dark.\n// Extracted so that tests can call this mixin directly with a custom $utilities map\n// rather than having to mirror the loop conditions inline.\n@mixin generate-utilities-loop($utilities, $breakpoints) {\n // Base + responsive (one pass per breakpoint)\n @each $breakpoint in map.keys($breakpoints) {\n @include bp.media-breakpoint-up($breakpoint, $breakpoints) {\n $prefix: bp.breakpoint-prefix($breakpoint, $breakpoints);\n\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and (map.get($utility, responsive) or $prefix == \"\") {\n @include generate-utility($utility, $prefix);\n }\n }\n }\n }\n\n // Print utilities\n @media print {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, print) == true {\n @include generate-utility($utility, \"print\\\\:\");\n }\n }\n }\n\n // Dark utilities\n @media (prefers-color-scheme: dark) {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, dark) == true {\n @include generate-utility($utility, \"dark\\\\:\");\n }\n }\n }\n}\n","@use \"banner\" with (\n $file: \"Grid\"\n);\n\n@use \"config\" as *;\n@use \"functions\" as *;\n\n@forward \"utilities\"; // Make utilities available downstream\n@use \"utilities\" as *; // Bring utilities into the current namespace\n\n@forward \"layout/containers\";\n@forward \"layout/grid\";\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$utilities: map-get-multiple(\n $utilities,\n (\n \"display\",\n \"order\",\n \"grid-column-counts\",\n \"grid-columns\",\n \"grid-auto-flow\",\n \"gap\",\n \"row-gap\",\n \"column-gap\",\n \"flex\",\n \"flex-direction\",\n \"flex-grow\",\n \"flex-shrink\",\n \"flex-wrap\",\n \"justify-content\",\n \"justify-items\",\n \"align-items\",\n \"align-content\",\n \"align-self\",\n \"place-items\",\n \"margin\",\n \"margin-x\",\n \"margin-y\",\n \"margin-top\",\n \"margin-end\",\n \"margin-bottom\",\n \"margin-start\",\n \"negative-margin\",\n \"negative-margin-x\",\n \"negative-margin-y\",\n \"negative-margin-top\",\n \"negative-margin-end\",\n \"negative-margin-bottom\",\n \"negative-margin-start\",\n \"padding\",\n \"padding-x\",\n \"padding-y\",\n \"padding-top\",\n \"padding-end\",\n \"padding-bottom\",\n \"padding-start\",\n )\n);\n\n// check-unused-imports-disable-next-line — side-effect import: generates utility CSS.\n@use \"utilities/api\";\n\n:root {\n @each $name, $value in $breakpoints {\n --breakpoint-#{$name}: #{$value};\n }\n}\n"],"names":[]}
\ No newline at end of file
+{"version":3,"sourceRoot":null,"mappings":"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","sources":["bootstrap-grid.css","../../scss/_banner.scss","../../scss/layout/_containers.scss","../../scss/layout/_breakpoints.scss","../../scss/_config.scss","../../scss/layout/_grid.scss","../../scss/mixins/_grid.scss","../../scss/utilities/_api.scss","../../scss/mixins/_utilities.scss","../../scss/bootstrap-grid.scss"],"sourcesContent":["/*!\n * Bootstrap Grid v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n@layer layout {\n .container,\n .container-fluid,\n .\\32 xl\\:container,\n .xl\\:container,\n .lg\\:container,\n .md\\:container,\n .sm\\:container {\n --gutter-x: 1.5rem;\n --gutter-y: 0;\n width: 100%;\n padding-inline: calc(var(--gutter-x) * 0.5);\n margin-inline: auto;\n }\n @media (width >= 576px) {\n .sm\\:container, .container {\n max-width: 540px;\n }\n }\n @media (width >= 768px) {\n .md\\:container, .sm\\:container, .container {\n max-width: 720px;\n }\n }\n @media (width >= 1024px) {\n .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 960px;\n }\n }\n @media (width >= 1280px) {\n .xl\\:container, .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 1200px;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:container, .xl\\:container, .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 1440px;\n }\n }\n}\n@layer layout {\n .row {\n --gutter-x: 1.5rem;\n --gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-inline: calc(-0.5 * var(--gutter-x));\n margin-top: calc(-1 * var(--gutter-y));\n }\n .row > * {\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-inline: calc(var(--gutter-x) * 0.5);\n margin-top: var(--gutter-y);\n }\n .col {\n flex: 1 0 0;\n }\n .row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .offset-3 {\n margin-inline-start: 25%;\n }\n .offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .offset-6 {\n margin-inline-start: 50%;\n }\n .offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .offset-9 {\n margin-inline-start: 75%;\n }\n .offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .g-0,\n .gx-0 {\n --gutter-x: 0;\n }\n .g-0,\n .gy-0 {\n --gutter-y: 0;\n }\n .g-1,\n .gx-1 {\n --gutter-x: 0.25rem;\n }\n .g-1,\n .gy-1 {\n --gutter-y: 0.25rem;\n }\n .g-2,\n .gx-2 {\n --gutter-x: 0.5rem;\n }\n .g-2,\n .gy-2 {\n --gutter-y: 0.5rem;\n }\n .g-3,\n .gx-3 {\n --gutter-x: 0.75rem;\n }\n .g-3,\n .gy-3 {\n --gutter-y: 0.75rem;\n }\n .g-4,\n .gx-4 {\n --gutter-x: 1rem;\n }\n .g-4,\n .gy-4 {\n --gutter-y: 1rem;\n }\n .g-5,\n .gx-5 {\n --gutter-x: 1.25rem;\n }\n .g-5,\n .gy-5 {\n --gutter-y: 1.25rem;\n }\n .g-6,\n .gx-6 {\n --gutter-x: 1.5rem;\n }\n .g-6,\n .gy-6 {\n --gutter-y: 1.5rem;\n }\n .g-7,\n .gx-7 {\n --gutter-x: 2rem;\n }\n .g-7,\n .gy-7 {\n --gutter-y: 2rem;\n }\n .g-8,\n .gx-8 {\n --gutter-x: 2.5rem;\n }\n .g-8,\n .gy-8 {\n --gutter-y: 2.5rem;\n }\n .g-9,\n .gx-9 {\n --gutter-x: 3rem;\n }\n .g-9,\n .gy-9 {\n --gutter-y: 3rem;\n }\n @media (width >= 576px) {\n .sm\\:col {\n flex: 1 0 0;\n }\n .sm\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .sm\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .sm\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .sm\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .sm\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .sm\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .sm\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .sm\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .sm\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .sm\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .sm\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .sm\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .sm\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .sm\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .sm\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .sm\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .sm\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .sm\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .sm\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .sm\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .sm\\:offset-0 {\n margin-inline-start: 0;\n }\n .sm\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .sm\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .sm\\:offset-3 {\n margin-inline-start: 25%;\n }\n .sm\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .sm\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .sm\\:offset-6 {\n margin-inline-start: 50%;\n }\n .sm\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .sm\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .sm\\:offset-9 {\n margin-inline-start: 75%;\n }\n .sm\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .sm\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .sm\\:g-0,\n .sm\\:gx-0 {\n --gutter-x: 0;\n }\n .sm\\:g-0,\n .sm\\:gy-0 {\n --gutter-y: 0;\n }\n .sm\\:g-1,\n .sm\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .sm\\:g-1,\n .sm\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .sm\\:g-2,\n .sm\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .sm\\:g-2,\n .sm\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .sm\\:g-3,\n .sm\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .sm\\:g-3,\n .sm\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .sm\\:g-4,\n .sm\\:gx-4 {\n --gutter-x: 1rem;\n }\n .sm\\:g-4,\n .sm\\:gy-4 {\n --gutter-y: 1rem;\n }\n .sm\\:g-5,\n .sm\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .sm\\:g-5,\n .sm\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .sm\\:g-6,\n .sm\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .sm\\:g-6,\n .sm\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .sm\\:g-7,\n .sm\\:gx-7 {\n --gutter-x: 2rem;\n }\n .sm\\:g-7,\n .sm\\:gy-7 {\n --gutter-y: 2rem;\n }\n .sm\\:g-8,\n .sm\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .sm\\:g-8,\n .sm\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .sm\\:g-9,\n .sm\\:gx-9 {\n --gutter-x: 3rem;\n }\n .sm\\:g-9,\n .sm\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 768px) {\n .md\\:col {\n flex: 1 0 0;\n }\n .md\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .md\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .md\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .md\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .md\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .md\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .md\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .md\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .md\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .md\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .md\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .md\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .md\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .md\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .md\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .md\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .md\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .md\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .md\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .md\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .md\\:offset-0 {\n margin-inline-start: 0;\n }\n .md\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .md\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .md\\:offset-3 {\n margin-inline-start: 25%;\n }\n .md\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .md\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .md\\:offset-6 {\n margin-inline-start: 50%;\n }\n .md\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .md\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .md\\:offset-9 {\n margin-inline-start: 75%;\n }\n .md\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .md\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .md\\:g-0,\n .md\\:gx-0 {\n --gutter-x: 0;\n }\n .md\\:g-0,\n .md\\:gy-0 {\n --gutter-y: 0;\n }\n .md\\:g-1,\n .md\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .md\\:g-1,\n .md\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .md\\:g-2,\n .md\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .md\\:g-2,\n .md\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .md\\:g-3,\n .md\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .md\\:g-3,\n .md\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .md\\:g-4,\n .md\\:gx-4 {\n --gutter-x: 1rem;\n }\n .md\\:g-4,\n .md\\:gy-4 {\n --gutter-y: 1rem;\n }\n .md\\:g-5,\n .md\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .md\\:g-5,\n .md\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .md\\:g-6,\n .md\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .md\\:g-6,\n .md\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .md\\:g-7,\n .md\\:gx-7 {\n --gutter-x: 2rem;\n }\n .md\\:g-7,\n .md\\:gy-7 {\n --gutter-y: 2rem;\n }\n .md\\:g-8,\n .md\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .md\\:g-8,\n .md\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .md\\:g-9,\n .md\\:gx-9 {\n --gutter-x: 3rem;\n }\n .md\\:g-9,\n .md\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1024px) {\n .lg\\:col {\n flex: 1 0 0;\n }\n .lg\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .lg\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .lg\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .lg\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .lg\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .lg\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .lg\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .lg\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .lg\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .lg\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .lg\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .lg\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .lg\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .lg\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .lg\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .lg\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .lg\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .lg\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .lg\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .lg\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .lg\\:offset-0 {\n margin-inline-start: 0;\n }\n .lg\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .lg\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .lg\\:offset-3 {\n margin-inline-start: 25%;\n }\n .lg\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .lg\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .lg\\:offset-6 {\n margin-inline-start: 50%;\n }\n .lg\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .lg\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .lg\\:offset-9 {\n margin-inline-start: 75%;\n }\n .lg\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .lg\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .lg\\:g-0,\n .lg\\:gx-0 {\n --gutter-x: 0;\n }\n .lg\\:g-0,\n .lg\\:gy-0 {\n --gutter-y: 0;\n }\n .lg\\:g-1,\n .lg\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .lg\\:g-1,\n .lg\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .lg\\:g-2,\n .lg\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .lg\\:g-2,\n .lg\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .lg\\:g-3,\n .lg\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .lg\\:g-3,\n .lg\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .lg\\:g-4,\n .lg\\:gx-4 {\n --gutter-x: 1rem;\n }\n .lg\\:g-4,\n .lg\\:gy-4 {\n --gutter-y: 1rem;\n }\n .lg\\:g-5,\n .lg\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .lg\\:g-5,\n .lg\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .lg\\:g-6,\n .lg\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .lg\\:g-6,\n .lg\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .lg\\:g-7,\n .lg\\:gx-7 {\n --gutter-x: 2rem;\n }\n .lg\\:g-7,\n .lg\\:gy-7 {\n --gutter-y: 2rem;\n }\n .lg\\:g-8,\n .lg\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .lg\\:g-8,\n .lg\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .lg\\:g-9,\n .lg\\:gx-9 {\n --gutter-x: 3rem;\n }\n .lg\\:g-9,\n .lg\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1280px) {\n .xl\\:col {\n flex: 1 0 0;\n }\n .xl\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .xl\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .xl\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .xl\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .xl\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .xl\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .xl\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .xl\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .xl\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .xl\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .xl\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .xl\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .xl\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .xl\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .xl\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .xl\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .xl\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .xl\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .xl\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .xl\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .xl\\:offset-0 {\n margin-inline-start: 0;\n }\n .xl\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .xl\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .xl\\:offset-3 {\n margin-inline-start: 25%;\n }\n .xl\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .xl\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .xl\\:offset-6 {\n margin-inline-start: 50%;\n }\n .xl\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .xl\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .xl\\:offset-9 {\n margin-inline-start: 75%;\n }\n .xl\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .xl\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .xl\\:g-0,\n .xl\\:gx-0 {\n --gutter-x: 0;\n }\n .xl\\:g-0,\n .xl\\:gy-0 {\n --gutter-y: 0;\n }\n .xl\\:g-1,\n .xl\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .xl\\:g-1,\n .xl\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .xl\\:g-2,\n .xl\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .xl\\:g-2,\n .xl\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .xl\\:g-3,\n .xl\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .xl\\:g-3,\n .xl\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .xl\\:g-4,\n .xl\\:gx-4 {\n --gutter-x: 1rem;\n }\n .xl\\:g-4,\n .xl\\:gy-4 {\n --gutter-y: 1rem;\n }\n .xl\\:g-5,\n .xl\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .xl\\:g-5,\n .xl\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .xl\\:g-6,\n .xl\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .xl\\:g-6,\n .xl\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .xl\\:g-7,\n .xl\\:gx-7 {\n --gutter-x: 2rem;\n }\n .xl\\:g-7,\n .xl\\:gy-7 {\n --gutter-y: 2rem;\n }\n .xl\\:g-8,\n .xl\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .xl\\:g-8,\n .xl\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .xl\\:g-9,\n .xl\\:gx-9 {\n --gutter-x: 3rem;\n }\n .xl\\:g-9,\n .xl\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:col {\n flex: 1 0 0;\n }\n .\\32 xl\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .\\32 xl\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .\\32 xl\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .\\32 xl\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .\\32 xl\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .\\32 xl\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .\\32 xl\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .\\32 xl\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .\\32 xl\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .\\32 xl\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .\\32 xl\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .\\32 xl\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .\\32 xl\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .\\32 xl\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .\\32 xl\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .\\32 xl\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .\\32 xl\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .\\32 xl\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .\\32 xl\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .\\32 xl\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .\\32 xl\\:offset-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .\\32 xl\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .\\32 xl\\:offset-3 {\n margin-inline-start: 25%;\n }\n .\\32 xl\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .\\32 xl\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .\\32 xl\\:offset-6 {\n margin-inline-start: 50%;\n }\n .\\32 xl\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .\\32 xl\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .\\32 xl\\:offset-9 {\n margin-inline-start: 75%;\n }\n .\\32 xl\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .\\32 xl\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .\\32 xl\\:g-0,\n .\\32 xl\\:gx-0 {\n --gutter-x: 0;\n }\n .\\32 xl\\:g-0,\n .\\32 xl\\:gy-0 {\n --gutter-y: 0;\n }\n .\\32 xl\\:g-1,\n .\\32 xl\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .\\32 xl\\:g-1,\n .\\32 xl\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .\\32 xl\\:g-2,\n .\\32 xl\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .\\32 xl\\:g-2,\n .\\32 xl\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .\\32 xl\\:g-3,\n .\\32 xl\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .\\32 xl\\:g-3,\n .\\32 xl\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .\\32 xl\\:g-4,\n .\\32 xl\\:gx-4 {\n --gutter-x: 1rem;\n }\n .\\32 xl\\:g-4,\n .\\32 xl\\:gy-4 {\n --gutter-y: 1rem;\n }\n .\\32 xl\\:g-5,\n .\\32 xl\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .\\32 xl\\:g-5,\n .\\32 xl\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .\\32 xl\\:g-6,\n .\\32 xl\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .\\32 xl\\:g-6,\n .\\32 xl\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .\\32 xl\\:g-7,\n .\\32 xl\\:gx-7 {\n --gutter-x: 2rem;\n }\n .\\32 xl\\:g-7,\n .\\32 xl\\:gy-7 {\n --gutter-y: 2rem;\n }\n .\\32 xl\\:g-8,\n .\\32 xl\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .\\32 xl\\:g-8,\n .\\32 xl\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .\\32 xl\\:g-9,\n .\\32 xl\\:gx-9 {\n --gutter-x: 3rem;\n }\n .\\32 xl\\:g-9,\n .\\32 xl\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n .grid {\n --columns: 12;\n --rows: 1;\n --gap: 1.5rem;\n display: grid;\n grid-template-rows: repeat(var(--rows), 1fr);\n grid-template-columns: repeat(var(--columns), 1fr);\n gap: var(--gap);\n }\n .g-col-1 {\n grid-column: auto/span 1;\n }\n .g-col-2 {\n grid-column: auto/span 2;\n }\n .g-col-3 {\n grid-column: auto/span 3;\n }\n .g-col-4 {\n grid-column: auto/span 4;\n }\n .g-col-5 {\n grid-column: auto/span 5;\n }\n .g-col-6 {\n grid-column: auto/span 6;\n }\n .g-col-7 {\n grid-column: auto/span 7;\n }\n .g-col-8 {\n grid-column: auto/span 8;\n }\n .g-col-9 {\n grid-column: auto/span 9;\n }\n .g-col-10 {\n grid-column: auto/span 10;\n }\n .g-col-11 {\n grid-column: auto/span 11;\n }\n .g-col-12 {\n grid-column: auto/span 12;\n }\n .g-start-1 {\n grid-column-start: 1;\n }\n .g-start-2 {\n grid-column-start: 2;\n }\n .g-start-3 {\n grid-column-start: 3;\n }\n .g-start-4 {\n grid-column-start: 4;\n }\n .g-start-5 {\n grid-column-start: 5;\n }\n .g-start-6 {\n grid-column-start: 6;\n }\n .g-start-7 {\n grid-column-start: 7;\n }\n .g-start-8 {\n grid-column-start: 8;\n }\n .g-start-9 {\n grid-column-start: 9;\n }\n .g-start-10 {\n grid-column-start: 10;\n }\n .g-start-11 {\n grid-column-start: 11;\n }\n @media (width >= 576px) {\n .sm\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .sm\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .sm\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .sm\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .sm\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .sm\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .sm\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .sm\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .sm\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .sm\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .sm\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .sm\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .sm\\:g-start-1 {\n grid-column-start: 1;\n }\n .sm\\:g-start-2 {\n grid-column-start: 2;\n }\n .sm\\:g-start-3 {\n grid-column-start: 3;\n }\n .sm\\:g-start-4 {\n grid-column-start: 4;\n }\n .sm\\:g-start-5 {\n grid-column-start: 5;\n }\n .sm\\:g-start-6 {\n grid-column-start: 6;\n }\n .sm\\:g-start-7 {\n grid-column-start: 7;\n }\n .sm\\:g-start-8 {\n grid-column-start: 8;\n }\n .sm\\:g-start-9 {\n grid-column-start: 9;\n }\n .sm\\:g-start-10 {\n grid-column-start: 10;\n }\n .sm\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 768px) {\n .md\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .md\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .md\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .md\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .md\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .md\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .md\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .md\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .md\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .md\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .md\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .md\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .md\\:g-start-1 {\n grid-column-start: 1;\n }\n .md\\:g-start-2 {\n grid-column-start: 2;\n }\n .md\\:g-start-3 {\n grid-column-start: 3;\n }\n .md\\:g-start-4 {\n grid-column-start: 4;\n }\n .md\\:g-start-5 {\n grid-column-start: 5;\n }\n .md\\:g-start-6 {\n grid-column-start: 6;\n }\n .md\\:g-start-7 {\n grid-column-start: 7;\n }\n .md\\:g-start-8 {\n grid-column-start: 8;\n }\n .md\\:g-start-9 {\n grid-column-start: 9;\n }\n .md\\:g-start-10 {\n grid-column-start: 10;\n }\n .md\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1024px) {\n .lg\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .lg\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .lg\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .lg\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .lg\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .lg\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .lg\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .lg\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .lg\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .lg\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .lg\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .lg\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .lg\\:g-start-1 {\n grid-column-start: 1;\n }\n .lg\\:g-start-2 {\n grid-column-start: 2;\n }\n .lg\\:g-start-3 {\n grid-column-start: 3;\n }\n .lg\\:g-start-4 {\n grid-column-start: 4;\n }\n .lg\\:g-start-5 {\n grid-column-start: 5;\n }\n .lg\\:g-start-6 {\n grid-column-start: 6;\n }\n .lg\\:g-start-7 {\n grid-column-start: 7;\n }\n .lg\\:g-start-8 {\n grid-column-start: 8;\n }\n .lg\\:g-start-9 {\n grid-column-start: 9;\n }\n .lg\\:g-start-10 {\n grid-column-start: 10;\n }\n .lg\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1280px) {\n .xl\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .xl\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .xl\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .xl\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .xl\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .xl\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .xl\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .xl\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .xl\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .xl\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .xl\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .xl\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .xl\\:g-start-1 {\n grid-column-start: 1;\n }\n .xl\\:g-start-2 {\n grid-column-start: 2;\n }\n .xl\\:g-start-3 {\n grid-column-start: 3;\n }\n .xl\\:g-start-4 {\n grid-column-start: 4;\n }\n .xl\\:g-start-5 {\n grid-column-start: 5;\n }\n .xl\\:g-start-6 {\n grid-column-start: 6;\n }\n .xl\\:g-start-7 {\n grid-column-start: 7;\n }\n .xl\\:g-start-8 {\n grid-column-start: 8;\n }\n .xl\\:g-start-9 {\n grid-column-start: 9;\n }\n .xl\\:g-start-10 {\n grid-column-start: 10;\n }\n .xl\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .\\32 xl\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .\\32 xl\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .\\32 xl\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .\\32 xl\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .\\32 xl\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .\\32 xl\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .\\32 xl\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .\\32 xl\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .\\32 xl\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .\\32 xl\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .\\32 xl\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .\\32 xl\\:g-start-1 {\n grid-column-start: 1;\n }\n .\\32 xl\\:g-start-2 {\n grid-column-start: 2;\n }\n .\\32 xl\\:g-start-3 {\n grid-column-start: 3;\n }\n .\\32 xl\\:g-start-4 {\n grid-column-start: 4;\n }\n .\\32 xl\\:g-start-5 {\n grid-column-start: 5;\n }\n .\\32 xl\\:g-start-6 {\n grid-column-start: 6;\n }\n .\\32 xl\\:g-start-7 {\n grid-column-start: 7;\n }\n .\\32 xl\\:g-start-8 {\n grid-column-start: 8;\n }\n .\\32 xl\\:g-start-9 {\n grid-column-start: 9;\n }\n .\\32 xl\\:g-start-10 {\n grid-column-start: 10;\n }\n .\\32 xl\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n .grid-cols-subgrid {\n grid-template-columns: subgrid;\n }\n .grid-fill {\n --gap: 1.5rem;\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-auto-flow: row;\n gap: var(--gap);\n }\n}\n@layer utilities {\n .d-inline {\n display: inline;\n }\n .d-inline-block {\n display: inline-block;\n }\n .d-block {\n display: block;\n }\n .d-grid {\n display: grid;\n }\n .d-inline-grid {\n display: inline-grid;\n }\n .d-table {\n display: table;\n }\n .d-table-row {\n display: table-row;\n }\n .d-table-cell {\n display: table-cell;\n }\n .d-flex {\n display: flex;\n }\n .d-inline-flex {\n display: inline-flex;\n }\n .d-contents {\n display: contents;\n }\n .d-flow-root {\n display: flow-root;\n }\n .d-none {\n display: none;\n }\n .flex-fill {\n flex: 1 1 auto;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-column {\n flex-direction: column;\n }\n .flex-row-reverse {\n flex-direction: row-reverse;\n }\n .flex-column-reverse {\n flex-direction: column-reverse;\n }\n .flex-grow-0 {\n flex-grow: 0;\n }\n .flex-grow-1 {\n flex-grow: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .flex-shrink-1 {\n flex-shrink: 1;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .flex-nowrap {\n flex-wrap: nowrap;\n }\n .flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .justify-content-start {\n justify-content: flex-start;\n }\n .justify-content-end {\n justify-content: flex-end;\n }\n .justify-content-center {\n justify-content: center;\n }\n .justify-content-between {\n justify-content: space-between;\n }\n .justify-content-around {\n justify-content: space-around;\n }\n .justify-content-evenly {\n justify-content: space-evenly;\n }\n .justify-items-start {\n justify-items: start;\n }\n .justify-items-end {\n justify-items: end;\n }\n .justify-items-center {\n justify-items: center;\n }\n .justify-items-stretch {\n justify-items: stretch;\n }\n .align-items-start {\n align-items: flex-start;\n }\n .align-items-end {\n align-items: flex-end;\n }\n .align-items-center {\n align-items: center;\n }\n .align-items-baseline {\n align-items: baseline;\n }\n .align-items-stretch {\n align-items: stretch;\n }\n .align-content-start {\n align-content: flex-start;\n }\n .align-content-end {\n align-content: flex-end;\n }\n .align-content-center {\n align-content: center;\n }\n .align-content-between {\n align-content: space-between;\n }\n .align-content-around {\n align-content: space-around;\n }\n .align-content-stretch {\n align-content: stretch;\n }\n .align-self-auto {\n align-self: auto;\n }\n .align-self-start {\n align-self: flex-start;\n }\n .align-self-end {\n align-self: flex-end;\n }\n .align-self-center {\n align-self: center;\n }\n .align-self-baseline {\n align-self: baseline;\n }\n .align-self-stretch {\n align-self: stretch;\n }\n .place-items-start {\n place-items: start;\n }\n .place-items-end {\n place-items: end;\n }\n .place-items-center {\n place-items: center;\n }\n .place-items-stretch {\n place-items: stretch;\n }\n .grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .grid-cols-fill {\n grid-column: 1 / -1;\n }\n .grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .order-first {\n order: -1;\n }\n .order-0 {\n order: 0;\n }\n .order-1 {\n order: 1;\n }\n .order-2 {\n order: 2;\n }\n .order-3 {\n order: 3;\n }\n .order-4 {\n order: 4;\n }\n .order-5 {\n order: 5;\n }\n .order-last {\n order: 6;\n }\n .m-0 {\n margin: 0;\n }\n .m-1 {\n margin: 0.25rem;\n }\n .m-2 {\n margin: 0.5rem;\n }\n .m-3 {\n margin: 0.75rem;\n }\n .m-4 {\n margin: 1rem;\n }\n .m-5 {\n margin: 1.25rem;\n }\n .m-6 {\n margin: 1.5rem;\n }\n .m-7 {\n margin: 2rem;\n }\n .m-8 {\n margin: 2.5rem;\n }\n .m-9 {\n margin: 3rem;\n }\n .m-auto {\n margin: auto;\n }\n .mx-0 {\n margin-inline: 0;\n }\n .mx-1 {\n margin-inline: 0.25rem;\n }\n .mx-2 {\n margin-inline: 0.5rem;\n }\n .mx-3 {\n margin-inline: 0.75rem;\n }\n .mx-4 {\n margin-inline: 1rem;\n }\n .mx-5 {\n margin-inline: 1.25rem;\n }\n .mx-6 {\n margin-inline: 1.5rem;\n }\n .mx-7 {\n margin-inline: 2rem;\n }\n .mx-8 {\n margin-inline: 2.5rem;\n }\n .mx-9 {\n margin-inline: 3rem;\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-0 {\n margin-block: 0;\n }\n .my-1 {\n margin-block: 0.25rem;\n }\n .my-2 {\n margin-block: 0.5rem;\n }\n .my-3 {\n margin-block: 0.75rem;\n }\n .my-4 {\n margin-block: 1rem;\n }\n .my-5 {\n margin-block: 1.25rem;\n }\n .my-6 {\n margin-block: 1.5rem;\n }\n .my-7 {\n margin-block: 2rem;\n }\n .my-8 {\n margin-block: 2.5rem;\n }\n .my-9 {\n margin-block: 3rem;\n }\n .my-auto {\n margin-block: auto;\n }\n .mt-0 {\n margin-block-start: 0;\n }\n .mt-1 {\n margin-block-start: 0.25rem;\n }\n .mt-2 {\n margin-block-start: 0.5rem;\n }\n .mt-3 {\n margin-block-start: 0.75rem;\n }\n .mt-4 {\n margin-block-start: 1rem;\n }\n .mt-5 {\n margin-block-start: 1.25rem;\n }\n .mt-6 {\n margin-block-start: 1.5rem;\n }\n .mt-7 {\n margin-block-start: 2rem;\n }\n .mt-8 {\n margin-block-start: 2.5rem;\n }\n .mt-9 {\n margin-block-start: 3rem;\n }\n .mt-auto {\n margin-block-start: auto;\n }\n .me-0 {\n margin-inline-end: 0;\n }\n .me-1 {\n margin-inline-end: 0.25rem;\n }\n .me-2 {\n margin-inline-end: 0.5rem;\n }\n .me-3 {\n margin-inline-end: 0.75rem;\n }\n .me-4 {\n margin-inline-end: 1rem;\n }\n .me-5 {\n margin-inline-end: 1.25rem;\n }\n .me-6 {\n margin-inline-end: 1.5rem;\n }\n .me-7 {\n margin-inline-end: 2rem;\n }\n .me-8 {\n margin-inline-end: 2.5rem;\n }\n .me-9 {\n margin-inline-end: 3rem;\n }\n .me--1 {\n margin-inline-end: -0.25rem;\n }\n .me--2 {\n margin-inline-end: -0.5rem;\n }\n .me-auto {\n margin-inline-end: auto;\n }\n .mb-0 {\n margin-block-end: 0;\n }\n .mb-1 {\n margin-block-end: 0.25rem;\n }\n .mb-2 {\n margin-block-end: 0.5rem;\n }\n .mb-3 {\n margin-block-end: 0.75rem;\n }\n .mb-4 {\n margin-block-end: 1rem;\n }\n .mb-5 {\n margin-block-end: 1.25rem;\n }\n .mb-6 {\n margin-block-end: 1.5rem;\n }\n .mb-7 {\n margin-block-end: 2rem;\n }\n .mb-8 {\n margin-block-end: 2.5rem;\n }\n .mb-9 {\n margin-block-end: 3rem;\n }\n .mb-auto {\n margin-block-end: auto;\n }\n .ms-0 {\n margin-inline-start: 0;\n }\n .ms-1 {\n margin-inline-start: 0.25rem;\n }\n .ms-2 {\n margin-inline-start: 0.5rem;\n }\n .ms-3 {\n margin-inline-start: 0.75rem;\n }\n .ms-4 {\n margin-inline-start: 1rem;\n }\n .ms-5 {\n margin-inline-start: 1.25rem;\n }\n .ms-6 {\n margin-inline-start: 1.5rem;\n }\n .ms-7 {\n margin-inline-start: 2rem;\n }\n .ms-8 {\n margin-inline-start: 2.5rem;\n }\n .ms-9 {\n margin-inline-start: 3rem;\n }\n .ms--1 {\n margin-inline-start: -0.25rem;\n }\n .ms--2 {\n margin-inline-start: -0.5rem;\n }\n .ms-auto {\n margin-inline-start: auto;\n }\n .p-0 {\n padding: 0;\n }\n .p-1 {\n padding: 0.25rem;\n }\n .p-2 {\n padding: 0.5rem;\n }\n .p-3 {\n padding: 0.75rem;\n }\n .p-4 {\n padding: 1rem;\n }\n .p-5 {\n padding: 1.25rem;\n }\n .p-6 {\n padding: 1.5rem;\n }\n .p-7 {\n padding: 2rem;\n }\n .p-8 {\n padding: 2.5rem;\n }\n .p-9 {\n padding: 3rem;\n }\n .px-0 {\n padding-inline: 0;\n }\n .px-1 {\n padding-inline: 0.25rem;\n }\n .px-2 {\n padding-inline: 0.5rem;\n }\n .px-3 {\n padding-inline: 0.75rem;\n }\n .px-4 {\n padding-inline: 1rem;\n }\n .px-5 {\n padding-inline: 1.25rem;\n }\n .px-6 {\n padding-inline: 1.5rem;\n }\n .px-7 {\n padding-inline: 2rem;\n }\n .px-8 {\n padding-inline: 2.5rem;\n }\n .px-9 {\n padding-inline: 3rem;\n }\n .py-0 {\n padding-block: 0;\n }\n .py-1 {\n padding-block: 0.25rem;\n }\n .py-2 {\n padding-block: 0.5rem;\n }\n .py-3 {\n padding-block: 0.75rem;\n }\n .py-4 {\n padding-block: 1rem;\n }\n .py-5 {\n padding-block: 1.25rem;\n }\n .py-6 {\n padding-block: 1.5rem;\n }\n .py-7 {\n padding-block: 2rem;\n }\n .py-8 {\n padding-block: 2.5rem;\n }\n .py-9 {\n padding-block: 3rem;\n }\n .pt-0 {\n padding-block-start: 0;\n }\n .pt-1 {\n padding-block-start: 0.25rem;\n }\n .pt-2 {\n padding-block-start: 0.5rem;\n }\n .pt-3 {\n padding-block-start: 0.75rem;\n }\n .pt-4 {\n padding-block-start: 1rem;\n }\n .pt-5 {\n padding-block-start: 1.25rem;\n }\n .pt-6 {\n padding-block-start: 1.5rem;\n }\n .pt-7 {\n padding-block-start: 2rem;\n }\n .pt-8 {\n padding-block-start: 2.5rem;\n }\n .pt-9 {\n padding-block-start: 3rem;\n }\n .pe-0 {\n padding-inline-end: 0;\n }\n .pe-1 {\n padding-inline-end: 0.25rem;\n }\n .pe-2 {\n padding-inline-end: 0.5rem;\n }\n .pe-3 {\n padding-inline-end: 0.75rem;\n }\n .pe-4 {\n padding-inline-end: 1rem;\n }\n .pe-5 {\n padding-inline-end: 1.25rem;\n }\n .pe-6 {\n padding-inline-end: 1.5rem;\n }\n .pe-7 {\n padding-inline-end: 2rem;\n }\n .pe-8 {\n padding-inline-end: 2.5rem;\n }\n .pe-9 {\n padding-inline-end: 3rem;\n }\n .pb-0 {\n padding-block-end: 0;\n }\n .pb-1 {\n padding-block-end: 0.25rem;\n }\n .pb-2 {\n padding-block-end: 0.5rem;\n }\n .pb-3 {\n padding-block-end: 0.75rem;\n }\n .pb-4 {\n padding-block-end: 1rem;\n }\n .pb-5 {\n padding-block-end: 1.25rem;\n }\n .pb-6 {\n padding-block-end: 1.5rem;\n }\n .pb-7 {\n padding-block-end: 2rem;\n }\n .pb-8 {\n padding-block-end: 2.5rem;\n }\n .pb-9 {\n padding-block-end: 3rem;\n }\n .ps-0 {\n padding-inline-start: 0;\n }\n .ps-1 {\n padding-inline-start: 0.25rem;\n }\n .ps-2 {\n padding-inline-start: 0.5rem;\n }\n .ps-3 {\n padding-inline-start: 0.75rem;\n }\n .ps-4 {\n padding-inline-start: 1rem;\n }\n .ps-5 {\n padding-inline-start: 1.25rem;\n }\n .ps-6 {\n padding-inline-start: 1.5rem;\n }\n .ps-7 {\n padding-inline-start: 2rem;\n }\n .ps-8 {\n padding-inline-start: 2.5rem;\n }\n .ps-9 {\n padding-inline-start: 3rem;\n }\n .gap-0 {\n gap: 0;\n }\n .gap-1 {\n gap: 0.25rem;\n }\n .gap-2 {\n gap: 0.5rem;\n }\n .gap-3 {\n gap: 0.75rem;\n }\n .gap-4 {\n gap: 1rem;\n }\n .gap-5 {\n gap: 1.25rem;\n }\n .gap-6 {\n gap: 1.5rem;\n }\n .gap-7 {\n gap: 2rem;\n }\n .gap-8 {\n gap: 2.5rem;\n }\n .gap-9 {\n gap: 3rem;\n }\n .row-gap-0 {\n row-gap: 0;\n }\n .row-gap-1 {\n row-gap: 0.25rem;\n }\n .row-gap-2 {\n row-gap: 0.5rem;\n }\n .row-gap-3 {\n row-gap: 0.75rem;\n }\n .row-gap-4 {\n row-gap: 1rem;\n }\n .row-gap-5 {\n row-gap: 1.25rem;\n }\n .row-gap-6 {\n row-gap: 1.5rem;\n }\n .row-gap-7 {\n row-gap: 2rem;\n }\n .row-gap-8 {\n row-gap: 2.5rem;\n }\n .row-gap-9 {\n row-gap: 3rem;\n }\n .column-gap-0 {\n column-gap: 0;\n }\n .column-gap-1 {\n column-gap: 0.25rem;\n }\n .column-gap-2 {\n column-gap: 0.5rem;\n }\n .column-gap-3 {\n column-gap: 0.75rem;\n }\n .column-gap-4 {\n column-gap: 1rem;\n }\n .column-gap-5 {\n column-gap: 1.25rem;\n }\n .column-gap-6 {\n column-gap: 1.5rem;\n }\n .column-gap-7 {\n column-gap: 2rem;\n }\n .column-gap-8 {\n column-gap: 2.5rem;\n }\n .column-gap-9 {\n column-gap: 3rem;\n }\n @media (width >= 576px) {\n .sm\\:d-inline {\n display: inline;\n }\n .sm\\:d-inline-block {\n display: inline-block;\n }\n .sm\\:d-block {\n display: block;\n }\n .sm\\:d-grid {\n display: grid;\n }\n .sm\\:d-inline-grid {\n display: inline-grid;\n }\n .sm\\:d-table {\n display: table;\n }\n .sm\\:d-table-row {\n display: table-row;\n }\n .sm\\:d-table-cell {\n display: table-cell;\n }\n .sm\\:d-flex {\n display: flex;\n }\n .sm\\:d-inline-flex {\n display: inline-flex;\n }\n .sm\\:d-contents {\n display: contents;\n }\n .sm\\:d-flow-root {\n display: flow-root;\n }\n .sm\\:d-none {\n display: none;\n }\n .sm\\:flex-fill {\n flex: 1 1 auto;\n }\n .sm\\:flex-row {\n flex-direction: row;\n }\n .sm\\:flex-column {\n flex-direction: column;\n }\n .sm\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .sm\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .sm\\:flex-grow-0 {\n flex-grow: 0;\n }\n .sm\\:flex-grow-1 {\n flex-grow: 1;\n }\n .sm\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .sm\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .sm\\:flex-wrap {\n flex-wrap: wrap;\n }\n .sm\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .sm\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .sm\\:justify-content-start {\n justify-content: flex-start;\n }\n .sm\\:justify-content-end {\n justify-content: flex-end;\n }\n .sm\\:justify-content-center {\n justify-content: center;\n }\n .sm\\:justify-content-between {\n justify-content: space-between;\n }\n .sm\\:justify-content-around {\n justify-content: space-around;\n }\n .sm\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .sm\\:justify-items-start {\n justify-items: start;\n }\n .sm\\:justify-items-end {\n justify-items: end;\n }\n .sm\\:justify-items-center {\n justify-items: center;\n }\n .sm\\:justify-items-stretch {\n justify-items: stretch;\n }\n .sm\\:align-items-start {\n align-items: flex-start;\n }\n .sm\\:align-items-end {\n align-items: flex-end;\n }\n .sm\\:align-items-center {\n align-items: center;\n }\n .sm\\:align-items-baseline {\n align-items: baseline;\n }\n .sm\\:align-items-stretch {\n align-items: stretch;\n }\n .sm\\:align-content-start {\n align-content: flex-start;\n }\n .sm\\:align-content-end {\n align-content: flex-end;\n }\n .sm\\:align-content-center {\n align-content: center;\n }\n .sm\\:align-content-between {\n align-content: space-between;\n }\n .sm\\:align-content-around {\n align-content: space-around;\n }\n .sm\\:align-content-stretch {\n align-content: stretch;\n }\n .sm\\:align-self-auto {\n align-self: auto;\n }\n .sm\\:align-self-start {\n align-self: flex-start;\n }\n .sm\\:align-self-end {\n align-self: flex-end;\n }\n .sm\\:align-self-center {\n align-self: center;\n }\n .sm\\:align-self-baseline {\n align-self: baseline;\n }\n .sm\\:align-self-stretch {\n align-self: stretch;\n }\n .sm\\:place-items-start {\n place-items: start;\n }\n .sm\\:place-items-end {\n place-items: end;\n }\n .sm\\:place-items-center {\n place-items: center;\n }\n .sm\\:place-items-stretch {\n place-items: stretch;\n }\n .sm\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .sm\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .sm\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .sm\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .sm\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .sm\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .sm\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .sm\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .sm\\:order-first {\n order: -1;\n }\n .sm\\:order-0 {\n order: 0;\n }\n .sm\\:order-1 {\n order: 1;\n }\n .sm\\:order-2 {\n order: 2;\n }\n .sm\\:order-3 {\n order: 3;\n }\n .sm\\:order-4 {\n order: 4;\n }\n .sm\\:order-5 {\n order: 5;\n }\n .sm\\:order-last {\n order: 6;\n }\n .sm\\:m-0 {\n margin: 0;\n }\n .sm\\:m-1 {\n margin: 0.25rem;\n }\n .sm\\:m-2 {\n margin: 0.5rem;\n }\n .sm\\:m-3 {\n margin: 0.75rem;\n }\n .sm\\:m-4 {\n margin: 1rem;\n }\n .sm\\:m-5 {\n margin: 1.25rem;\n }\n .sm\\:m-6 {\n margin: 1.5rem;\n }\n .sm\\:m-7 {\n margin: 2rem;\n }\n .sm\\:m-8 {\n margin: 2.5rem;\n }\n .sm\\:m-9 {\n margin: 3rem;\n }\n .sm\\:m-auto {\n margin: auto;\n }\n .sm\\:mx-0 {\n margin-inline: 0;\n }\n .sm\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .sm\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .sm\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .sm\\:mx-4 {\n margin-inline: 1rem;\n }\n .sm\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .sm\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .sm\\:mx-7 {\n margin-inline: 2rem;\n }\n .sm\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .sm\\:mx-9 {\n margin-inline: 3rem;\n }\n .sm\\:mx-auto {\n margin-inline: auto;\n }\n .sm\\:my-0 {\n margin-block: 0;\n }\n .sm\\:my-1 {\n margin-block: 0.25rem;\n }\n .sm\\:my-2 {\n margin-block: 0.5rem;\n }\n .sm\\:my-3 {\n margin-block: 0.75rem;\n }\n .sm\\:my-4 {\n margin-block: 1rem;\n }\n .sm\\:my-5 {\n margin-block: 1.25rem;\n }\n .sm\\:my-6 {\n margin-block: 1.5rem;\n }\n .sm\\:my-7 {\n margin-block: 2rem;\n }\n .sm\\:my-8 {\n margin-block: 2.5rem;\n }\n .sm\\:my-9 {\n margin-block: 3rem;\n }\n .sm\\:my-auto {\n margin-block: auto;\n }\n .sm\\:mt-0 {\n margin-block-start: 0;\n }\n .sm\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .sm\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .sm\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .sm\\:mt-4 {\n margin-block-start: 1rem;\n }\n .sm\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .sm\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .sm\\:mt-7 {\n margin-block-start: 2rem;\n }\n .sm\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .sm\\:mt-9 {\n margin-block-start: 3rem;\n }\n .sm\\:mt-auto {\n margin-block-start: auto;\n }\n .sm\\:me-0 {\n margin-inline-end: 0;\n }\n .sm\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .sm\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .sm\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .sm\\:me-4 {\n margin-inline-end: 1rem;\n }\n .sm\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .sm\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .sm\\:me-7 {\n margin-inline-end: 2rem;\n }\n .sm\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .sm\\:me-9 {\n margin-inline-end: 3rem;\n }\n .sm\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .sm\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .sm\\:me-auto {\n margin-inline-end: auto;\n }\n .sm\\:mb-0 {\n margin-block-end: 0;\n }\n .sm\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .sm\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .sm\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .sm\\:mb-4 {\n margin-block-end: 1rem;\n }\n .sm\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .sm\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .sm\\:mb-7 {\n margin-block-end: 2rem;\n }\n .sm\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .sm\\:mb-9 {\n margin-block-end: 3rem;\n }\n .sm\\:mb-auto {\n margin-block-end: auto;\n }\n .sm\\:ms-0 {\n margin-inline-start: 0;\n }\n .sm\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .sm\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .sm\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .sm\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .sm\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .sm\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .sm\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .sm\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .sm\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .sm\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .sm\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .sm\\:ms-auto {\n margin-inline-start: auto;\n }\n .sm\\:p-0 {\n padding: 0;\n }\n .sm\\:p-1 {\n padding: 0.25rem;\n }\n .sm\\:p-2 {\n padding: 0.5rem;\n }\n .sm\\:p-3 {\n padding: 0.75rem;\n }\n .sm\\:p-4 {\n padding: 1rem;\n }\n .sm\\:p-5 {\n padding: 1.25rem;\n }\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n .sm\\:p-7 {\n padding: 2rem;\n }\n .sm\\:p-8 {\n padding: 2.5rem;\n }\n .sm\\:p-9 {\n padding: 3rem;\n }\n .sm\\:px-0 {\n padding-inline: 0;\n }\n .sm\\:px-1 {\n padding-inline: 0.25rem;\n }\n .sm\\:px-2 {\n padding-inline: 0.5rem;\n }\n .sm\\:px-3 {\n padding-inline: 0.75rem;\n }\n .sm\\:px-4 {\n padding-inline: 1rem;\n }\n .sm\\:px-5 {\n padding-inline: 1.25rem;\n }\n .sm\\:px-6 {\n padding-inline: 1.5rem;\n }\n .sm\\:px-7 {\n padding-inline: 2rem;\n }\n .sm\\:px-8 {\n padding-inline: 2.5rem;\n }\n .sm\\:px-9 {\n padding-inline: 3rem;\n }\n .sm\\:py-0 {\n padding-block: 0;\n }\n .sm\\:py-1 {\n padding-block: 0.25rem;\n }\n .sm\\:py-2 {\n padding-block: 0.5rem;\n }\n .sm\\:py-3 {\n padding-block: 0.75rem;\n }\n .sm\\:py-4 {\n padding-block: 1rem;\n }\n .sm\\:py-5 {\n padding-block: 1.25rem;\n }\n .sm\\:py-6 {\n padding-block: 1.5rem;\n }\n .sm\\:py-7 {\n padding-block: 2rem;\n }\n .sm\\:py-8 {\n padding-block: 2.5rem;\n }\n .sm\\:py-9 {\n padding-block: 3rem;\n }\n .sm\\:pt-0 {\n padding-block-start: 0;\n }\n .sm\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .sm\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .sm\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .sm\\:pt-4 {\n padding-block-start: 1rem;\n }\n .sm\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .sm\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .sm\\:pt-7 {\n padding-block-start: 2rem;\n }\n .sm\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .sm\\:pt-9 {\n padding-block-start: 3rem;\n }\n .sm\\:pe-0 {\n padding-inline-end: 0;\n }\n .sm\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .sm\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .sm\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .sm\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .sm\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .sm\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .sm\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .sm\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .sm\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .sm\\:pb-0 {\n padding-block-end: 0;\n }\n .sm\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .sm\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .sm\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .sm\\:pb-4 {\n padding-block-end: 1rem;\n }\n .sm\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .sm\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .sm\\:pb-7 {\n padding-block-end: 2rem;\n }\n .sm\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .sm\\:pb-9 {\n padding-block-end: 3rem;\n }\n .sm\\:ps-0 {\n padding-inline-start: 0;\n }\n .sm\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .sm\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .sm\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .sm\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .sm\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .sm\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .sm\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .sm\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .sm\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .sm\\:gap-0 {\n gap: 0;\n }\n .sm\\:gap-1 {\n gap: 0.25rem;\n }\n .sm\\:gap-2 {\n gap: 0.5rem;\n }\n .sm\\:gap-3 {\n gap: 0.75rem;\n }\n .sm\\:gap-4 {\n gap: 1rem;\n }\n .sm\\:gap-5 {\n gap: 1.25rem;\n }\n .sm\\:gap-6 {\n gap: 1.5rem;\n }\n .sm\\:gap-7 {\n gap: 2rem;\n }\n .sm\\:gap-8 {\n gap: 2.5rem;\n }\n .sm\\:gap-9 {\n gap: 3rem;\n }\n .sm\\:row-gap-0 {\n row-gap: 0;\n }\n .sm\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .sm\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .sm\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .sm\\:row-gap-4 {\n row-gap: 1rem;\n }\n .sm\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .sm\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .sm\\:row-gap-7 {\n row-gap: 2rem;\n }\n .sm\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .sm\\:row-gap-9 {\n row-gap: 3rem;\n }\n .sm\\:column-gap-0 {\n column-gap: 0;\n }\n .sm\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .sm\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .sm\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .sm\\:column-gap-4 {\n column-gap: 1rem;\n }\n .sm\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .sm\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .sm\\:column-gap-7 {\n column-gap: 2rem;\n }\n .sm\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .sm\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n @media (width >= 768px) {\n .md\\:d-inline {\n display: inline;\n }\n .md\\:d-inline-block {\n display: inline-block;\n }\n .md\\:d-block {\n display: block;\n }\n .md\\:d-grid {\n display: grid;\n }\n .md\\:d-inline-grid {\n display: inline-grid;\n }\n .md\\:d-table {\n display: table;\n }\n .md\\:d-table-row {\n display: table-row;\n }\n .md\\:d-table-cell {\n display: table-cell;\n }\n .md\\:d-flex {\n display: flex;\n }\n .md\\:d-inline-flex {\n display: inline-flex;\n }\n .md\\:d-contents {\n display: contents;\n }\n .md\\:d-flow-root {\n display: flow-root;\n }\n .md\\:d-none {\n display: none;\n }\n .md\\:flex-fill {\n flex: 1 1 auto;\n }\n .md\\:flex-row {\n flex-direction: row;\n }\n .md\\:flex-column {\n flex-direction: column;\n }\n .md\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .md\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .md\\:flex-grow-0 {\n flex-grow: 0;\n }\n .md\\:flex-grow-1 {\n flex-grow: 1;\n }\n .md\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .md\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .md\\:flex-wrap {\n flex-wrap: wrap;\n }\n .md\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .md\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .md\\:justify-content-start {\n justify-content: flex-start;\n }\n .md\\:justify-content-end {\n justify-content: flex-end;\n }\n .md\\:justify-content-center {\n justify-content: center;\n }\n .md\\:justify-content-between {\n justify-content: space-between;\n }\n .md\\:justify-content-around {\n justify-content: space-around;\n }\n .md\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .md\\:justify-items-start {\n justify-items: start;\n }\n .md\\:justify-items-end {\n justify-items: end;\n }\n .md\\:justify-items-center {\n justify-items: center;\n }\n .md\\:justify-items-stretch {\n justify-items: stretch;\n }\n .md\\:align-items-start {\n align-items: flex-start;\n }\n .md\\:align-items-end {\n align-items: flex-end;\n }\n .md\\:align-items-center {\n align-items: center;\n }\n .md\\:align-items-baseline {\n align-items: baseline;\n }\n .md\\:align-items-stretch {\n align-items: stretch;\n }\n .md\\:align-content-start {\n align-content: flex-start;\n }\n .md\\:align-content-end {\n align-content: flex-end;\n }\n .md\\:align-content-center {\n align-content: center;\n }\n .md\\:align-content-between {\n align-content: space-between;\n }\n .md\\:align-content-around {\n align-content: space-around;\n }\n .md\\:align-content-stretch {\n align-content: stretch;\n }\n .md\\:align-self-auto {\n align-self: auto;\n }\n .md\\:align-self-start {\n align-self: flex-start;\n }\n .md\\:align-self-end {\n align-self: flex-end;\n }\n .md\\:align-self-center {\n align-self: center;\n }\n .md\\:align-self-baseline {\n align-self: baseline;\n }\n .md\\:align-self-stretch {\n align-self: stretch;\n }\n .md\\:place-items-start {\n place-items: start;\n }\n .md\\:place-items-end {\n place-items: end;\n }\n .md\\:place-items-center {\n place-items: center;\n }\n .md\\:place-items-stretch {\n place-items: stretch;\n }\n .md\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .md\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .md\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .md\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .md\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .md\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .md\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .md\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .md\\:order-first {\n order: -1;\n }\n .md\\:order-0 {\n order: 0;\n }\n .md\\:order-1 {\n order: 1;\n }\n .md\\:order-2 {\n order: 2;\n }\n .md\\:order-3 {\n order: 3;\n }\n .md\\:order-4 {\n order: 4;\n }\n .md\\:order-5 {\n order: 5;\n }\n .md\\:order-last {\n order: 6;\n }\n .md\\:m-0 {\n margin: 0;\n }\n .md\\:m-1 {\n margin: 0.25rem;\n }\n .md\\:m-2 {\n margin: 0.5rem;\n }\n .md\\:m-3 {\n margin: 0.75rem;\n }\n .md\\:m-4 {\n margin: 1rem;\n }\n .md\\:m-5 {\n margin: 1.25rem;\n }\n .md\\:m-6 {\n margin: 1.5rem;\n }\n .md\\:m-7 {\n margin: 2rem;\n }\n .md\\:m-8 {\n margin: 2.5rem;\n }\n .md\\:m-9 {\n margin: 3rem;\n }\n .md\\:m-auto {\n margin: auto;\n }\n .md\\:mx-0 {\n margin-inline: 0;\n }\n .md\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .md\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .md\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .md\\:mx-4 {\n margin-inline: 1rem;\n }\n .md\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .md\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .md\\:mx-7 {\n margin-inline: 2rem;\n }\n .md\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .md\\:mx-9 {\n margin-inline: 3rem;\n }\n .md\\:mx-auto {\n margin-inline: auto;\n }\n .md\\:my-0 {\n margin-block: 0;\n }\n .md\\:my-1 {\n margin-block: 0.25rem;\n }\n .md\\:my-2 {\n margin-block: 0.5rem;\n }\n .md\\:my-3 {\n margin-block: 0.75rem;\n }\n .md\\:my-4 {\n margin-block: 1rem;\n }\n .md\\:my-5 {\n margin-block: 1.25rem;\n }\n .md\\:my-6 {\n margin-block: 1.5rem;\n }\n .md\\:my-7 {\n margin-block: 2rem;\n }\n .md\\:my-8 {\n margin-block: 2.5rem;\n }\n .md\\:my-9 {\n margin-block: 3rem;\n }\n .md\\:my-auto {\n margin-block: auto;\n }\n .md\\:mt-0 {\n margin-block-start: 0;\n }\n .md\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .md\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .md\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .md\\:mt-4 {\n margin-block-start: 1rem;\n }\n .md\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .md\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .md\\:mt-7 {\n margin-block-start: 2rem;\n }\n .md\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .md\\:mt-9 {\n margin-block-start: 3rem;\n }\n .md\\:mt-auto {\n margin-block-start: auto;\n }\n .md\\:me-0 {\n margin-inline-end: 0;\n }\n .md\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .md\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .md\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .md\\:me-4 {\n margin-inline-end: 1rem;\n }\n .md\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .md\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .md\\:me-7 {\n margin-inline-end: 2rem;\n }\n .md\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .md\\:me-9 {\n margin-inline-end: 3rem;\n }\n .md\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .md\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .md\\:me-auto {\n margin-inline-end: auto;\n }\n .md\\:mb-0 {\n margin-block-end: 0;\n }\n .md\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .md\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .md\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .md\\:mb-4 {\n margin-block-end: 1rem;\n }\n .md\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .md\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .md\\:mb-7 {\n margin-block-end: 2rem;\n }\n .md\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .md\\:mb-9 {\n margin-block-end: 3rem;\n }\n .md\\:mb-auto {\n margin-block-end: auto;\n }\n .md\\:ms-0 {\n margin-inline-start: 0;\n }\n .md\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .md\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .md\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .md\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .md\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .md\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .md\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .md\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .md\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .md\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .md\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .md\\:ms-auto {\n margin-inline-start: auto;\n }\n .md\\:p-0 {\n padding: 0;\n }\n .md\\:p-1 {\n padding: 0.25rem;\n }\n .md\\:p-2 {\n padding: 0.5rem;\n }\n .md\\:p-3 {\n padding: 0.75rem;\n }\n .md\\:p-4 {\n padding: 1rem;\n }\n .md\\:p-5 {\n padding: 1.25rem;\n }\n .md\\:p-6 {\n padding: 1.5rem;\n }\n .md\\:p-7 {\n padding: 2rem;\n }\n .md\\:p-8 {\n padding: 2.5rem;\n }\n .md\\:p-9 {\n padding: 3rem;\n }\n .md\\:px-0 {\n padding-inline: 0;\n }\n .md\\:px-1 {\n padding-inline: 0.25rem;\n }\n .md\\:px-2 {\n padding-inline: 0.5rem;\n }\n .md\\:px-3 {\n padding-inline: 0.75rem;\n }\n .md\\:px-4 {\n padding-inline: 1rem;\n }\n .md\\:px-5 {\n padding-inline: 1.25rem;\n }\n .md\\:px-6 {\n padding-inline: 1.5rem;\n }\n .md\\:px-7 {\n padding-inline: 2rem;\n }\n .md\\:px-8 {\n padding-inline: 2.5rem;\n }\n .md\\:px-9 {\n padding-inline: 3rem;\n }\n .md\\:py-0 {\n padding-block: 0;\n }\n .md\\:py-1 {\n padding-block: 0.25rem;\n }\n .md\\:py-2 {\n padding-block: 0.5rem;\n }\n .md\\:py-3 {\n padding-block: 0.75rem;\n }\n .md\\:py-4 {\n padding-block: 1rem;\n }\n .md\\:py-5 {\n padding-block: 1.25rem;\n }\n .md\\:py-6 {\n padding-block: 1.5rem;\n }\n .md\\:py-7 {\n padding-block: 2rem;\n }\n .md\\:py-8 {\n padding-block: 2.5rem;\n }\n .md\\:py-9 {\n padding-block: 3rem;\n }\n .md\\:pt-0 {\n padding-block-start: 0;\n }\n .md\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .md\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .md\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .md\\:pt-4 {\n padding-block-start: 1rem;\n }\n .md\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .md\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .md\\:pt-7 {\n padding-block-start: 2rem;\n }\n .md\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .md\\:pt-9 {\n padding-block-start: 3rem;\n }\n .md\\:pe-0 {\n padding-inline-end: 0;\n }\n .md\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .md\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .md\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .md\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .md\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .md\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .md\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .md\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .md\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .md\\:pb-0 {\n padding-block-end: 0;\n }\n .md\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .md\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .md\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .md\\:pb-4 {\n padding-block-end: 1rem;\n }\n .md\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .md\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .md\\:pb-7 {\n padding-block-end: 2rem;\n }\n .md\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .md\\:pb-9 {\n padding-block-end: 3rem;\n }\n .md\\:ps-0 {\n padding-inline-start: 0;\n }\n .md\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .md\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .md\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .md\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .md\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .md\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .md\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .md\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .md\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .md\\:gap-0 {\n gap: 0;\n }\n .md\\:gap-1 {\n gap: 0.25rem;\n }\n .md\\:gap-2 {\n gap: 0.5rem;\n }\n .md\\:gap-3 {\n gap: 0.75rem;\n }\n .md\\:gap-4 {\n gap: 1rem;\n }\n .md\\:gap-5 {\n gap: 1.25rem;\n }\n .md\\:gap-6 {\n gap: 1.5rem;\n }\n .md\\:gap-7 {\n gap: 2rem;\n }\n .md\\:gap-8 {\n gap: 2.5rem;\n }\n .md\\:gap-9 {\n gap: 3rem;\n }\n .md\\:row-gap-0 {\n row-gap: 0;\n }\n .md\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .md\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .md\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .md\\:row-gap-4 {\n row-gap: 1rem;\n }\n .md\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .md\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .md\\:row-gap-7 {\n row-gap: 2rem;\n }\n .md\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .md\\:row-gap-9 {\n row-gap: 3rem;\n }\n .md\\:column-gap-0 {\n column-gap: 0;\n }\n .md\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .md\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .md\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .md\\:column-gap-4 {\n column-gap: 1rem;\n }\n .md\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .md\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .md\\:column-gap-7 {\n column-gap: 2rem;\n }\n .md\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .md\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n @media (width >= 1024px) {\n .lg\\:d-inline {\n display: inline;\n }\n .lg\\:d-inline-block {\n display: inline-block;\n }\n .lg\\:d-block {\n display: block;\n }\n .lg\\:d-grid {\n display: grid;\n }\n .lg\\:d-inline-grid {\n display: inline-grid;\n }\n .lg\\:d-table {\n display: table;\n }\n .lg\\:d-table-row {\n display: table-row;\n }\n .lg\\:d-table-cell {\n display: table-cell;\n }\n .lg\\:d-flex {\n display: flex;\n }\n .lg\\:d-inline-flex {\n display: inline-flex;\n }\n .lg\\:d-contents {\n display: contents;\n }\n .lg\\:d-flow-root {\n display: flow-root;\n }\n .lg\\:d-none {\n display: none;\n }\n .lg\\:flex-fill {\n flex: 1 1 auto;\n }\n .lg\\:flex-row {\n flex-direction: row;\n }\n .lg\\:flex-column {\n flex-direction: column;\n }\n .lg\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .lg\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .lg\\:flex-grow-0 {\n flex-grow: 0;\n }\n .lg\\:flex-grow-1 {\n flex-grow: 1;\n }\n .lg\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .lg\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .lg\\:flex-wrap {\n flex-wrap: wrap;\n }\n .lg\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .lg\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .lg\\:justify-content-start {\n justify-content: flex-start;\n }\n .lg\\:justify-content-end {\n justify-content: flex-end;\n }\n .lg\\:justify-content-center {\n justify-content: center;\n }\n .lg\\:justify-content-between {\n justify-content: space-between;\n }\n .lg\\:justify-content-around {\n justify-content: space-around;\n }\n .lg\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .lg\\:justify-items-start {\n justify-items: start;\n }\n .lg\\:justify-items-end {\n justify-items: end;\n }\n .lg\\:justify-items-center {\n justify-items: center;\n }\n .lg\\:justify-items-stretch {\n justify-items: stretch;\n }\n .lg\\:align-items-start {\n align-items: flex-start;\n }\n .lg\\:align-items-end {\n align-items: flex-end;\n }\n .lg\\:align-items-center {\n align-items: center;\n }\n .lg\\:align-items-baseline {\n align-items: baseline;\n }\n .lg\\:align-items-stretch {\n align-items: stretch;\n }\n .lg\\:align-content-start {\n align-content: flex-start;\n }\n .lg\\:align-content-end {\n align-content: flex-end;\n }\n .lg\\:align-content-center {\n align-content: center;\n }\n .lg\\:align-content-between {\n align-content: space-between;\n }\n .lg\\:align-content-around {\n align-content: space-around;\n }\n .lg\\:align-content-stretch {\n align-content: stretch;\n }\n .lg\\:align-self-auto {\n align-self: auto;\n }\n .lg\\:align-self-start {\n align-self: flex-start;\n }\n .lg\\:align-self-end {\n align-self: flex-end;\n }\n .lg\\:align-self-center {\n align-self: center;\n }\n .lg\\:align-self-baseline {\n align-self: baseline;\n }\n .lg\\:align-self-stretch {\n align-self: stretch;\n }\n .lg\\:place-items-start {\n place-items: start;\n }\n .lg\\:place-items-end {\n place-items: end;\n }\n .lg\\:place-items-center {\n place-items: center;\n }\n .lg\\:place-items-stretch {\n place-items: stretch;\n }\n .lg\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .lg\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .lg\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .lg\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .lg\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .lg\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .lg\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .lg\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .lg\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .lg\\:order-first {\n order: -1;\n }\n .lg\\:order-0 {\n order: 0;\n }\n .lg\\:order-1 {\n order: 1;\n }\n .lg\\:order-2 {\n order: 2;\n }\n .lg\\:order-3 {\n order: 3;\n }\n .lg\\:order-4 {\n order: 4;\n }\n .lg\\:order-5 {\n order: 5;\n }\n .lg\\:order-last {\n order: 6;\n }\n .lg\\:m-0 {\n margin: 0;\n }\n .lg\\:m-1 {\n margin: 0.25rem;\n }\n .lg\\:m-2 {\n margin: 0.5rem;\n }\n .lg\\:m-3 {\n margin: 0.75rem;\n }\n .lg\\:m-4 {\n margin: 1rem;\n }\n .lg\\:m-5 {\n margin: 1.25rem;\n }\n .lg\\:m-6 {\n margin: 1.5rem;\n }\n .lg\\:m-7 {\n margin: 2rem;\n }\n .lg\\:m-8 {\n margin: 2.5rem;\n }\n .lg\\:m-9 {\n margin: 3rem;\n }\n .lg\\:m-auto {\n margin: auto;\n }\n .lg\\:mx-0 {\n margin-inline: 0;\n }\n .lg\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .lg\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .lg\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .lg\\:mx-4 {\n margin-inline: 1rem;\n }\n .lg\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .lg\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .lg\\:mx-7 {\n margin-inline: 2rem;\n }\n .lg\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .lg\\:mx-9 {\n margin-inline: 3rem;\n }\n .lg\\:mx-auto {\n margin-inline: auto;\n }\n .lg\\:my-0 {\n margin-block: 0;\n }\n .lg\\:my-1 {\n margin-block: 0.25rem;\n }\n .lg\\:my-2 {\n margin-block: 0.5rem;\n }\n .lg\\:my-3 {\n margin-block: 0.75rem;\n }\n .lg\\:my-4 {\n margin-block: 1rem;\n }\n .lg\\:my-5 {\n margin-block: 1.25rem;\n }\n .lg\\:my-6 {\n margin-block: 1.5rem;\n }\n .lg\\:my-7 {\n margin-block: 2rem;\n }\n .lg\\:my-8 {\n margin-block: 2.5rem;\n }\n .lg\\:my-9 {\n margin-block: 3rem;\n }\n .lg\\:my-auto {\n margin-block: auto;\n }\n .lg\\:mt-0 {\n margin-block-start: 0;\n }\n .lg\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .lg\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .lg\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .lg\\:mt-4 {\n margin-block-start: 1rem;\n }\n .lg\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .lg\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .lg\\:mt-7 {\n margin-block-start: 2rem;\n }\n .lg\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .lg\\:mt-9 {\n margin-block-start: 3rem;\n }\n .lg\\:mt-auto {\n margin-block-start: auto;\n }\n .lg\\:me-0 {\n margin-inline-end: 0;\n }\n .lg\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .lg\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .lg\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .lg\\:me-4 {\n margin-inline-end: 1rem;\n }\n .lg\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .lg\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .lg\\:me-7 {\n margin-inline-end: 2rem;\n }\n .lg\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .lg\\:me-9 {\n margin-inline-end: 3rem;\n }\n .lg\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .lg\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .lg\\:me-auto {\n margin-inline-end: auto;\n }\n .lg\\:mb-0 {\n margin-block-end: 0;\n }\n .lg\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .lg\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .lg\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .lg\\:mb-4 {\n margin-block-end: 1rem;\n }\n .lg\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .lg\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .lg\\:mb-7 {\n margin-block-end: 2rem;\n }\n .lg\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .lg\\:mb-9 {\n margin-block-end: 3rem;\n }\n .lg\\:mb-auto {\n margin-block-end: auto;\n }\n .lg\\:ms-0 {\n margin-inline-start: 0;\n }\n .lg\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .lg\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .lg\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .lg\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .lg\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .lg\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .lg\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .lg\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .lg\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .lg\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .lg\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .lg\\:ms-auto {\n margin-inline-start: auto;\n }\n .lg\\:p-0 {\n padding: 0;\n }\n .lg\\:p-1 {\n padding: 0.25rem;\n }\n .lg\\:p-2 {\n padding: 0.5rem;\n }\n .lg\\:p-3 {\n padding: 0.75rem;\n }\n .lg\\:p-4 {\n padding: 1rem;\n }\n .lg\\:p-5 {\n padding: 1.25rem;\n }\n .lg\\:p-6 {\n padding: 1.5rem;\n }\n .lg\\:p-7 {\n padding: 2rem;\n }\n .lg\\:p-8 {\n padding: 2.5rem;\n }\n .lg\\:p-9 {\n padding: 3rem;\n }\n .lg\\:px-0 {\n padding-inline: 0;\n }\n .lg\\:px-1 {\n padding-inline: 0.25rem;\n }\n .lg\\:px-2 {\n padding-inline: 0.5rem;\n }\n .lg\\:px-3 {\n padding-inline: 0.75rem;\n }\n .lg\\:px-4 {\n padding-inline: 1rem;\n }\n .lg\\:px-5 {\n padding-inline: 1.25rem;\n }\n .lg\\:px-6 {\n padding-inline: 1.5rem;\n }\n .lg\\:px-7 {\n padding-inline: 2rem;\n }\n .lg\\:px-8 {\n padding-inline: 2.5rem;\n }\n .lg\\:px-9 {\n padding-inline: 3rem;\n }\n .lg\\:py-0 {\n padding-block: 0;\n }\n .lg\\:py-1 {\n padding-block: 0.25rem;\n }\n .lg\\:py-2 {\n padding-block: 0.5rem;\n }\n .lg\\:py-3 {\n padding-block: 0.75rem;\n }\n .lg\\:py-4 {\n padding-block: 1rem;\n }\n .lg\\:py-5 {\n padding-block: 1.25rem;\n }\n .lg\\:py-6 {\n padding-block: 1.5rem;\n }\n .lg\\:py-7 {\n padding-block: 2rem;\n }\n .lg\\:py-8 {\n padding-block: 2.5rem;\n }\n .lg\\:py-9 {\n padding-block: 3rem;\n }\n .lg\\:pt-0 {\n padding-block-start: 0;\n }\n .lg\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .lg\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .lg\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .lg\\:pt-4 {\n padding-block-start: 1rem;\n }\n .lg\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .lg\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .lg\\:pt-7 {\n padding-block-start: 2rem;\n }\n .lg\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .lg\\:pt-9 {\n padding-block-start: 3rem;\n }\n .lg\\:pe-0 {\n padding-inline-end: 0;\n }\n .lg\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .lg\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .lg\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .lg\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .lg\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .lg\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .lg\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .lg\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .lg\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .lg\\:pb-0 {\n padding-block-end: 0;\n }\n .lg\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .lg\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .lg\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .lg\\:pb-4 {\n padding-block-end: 1rem;\n }\n .lg\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .lg\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .lg\\:pb-7 {\n padding-block-end: 2rem;\n }\n .lg\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .lg\\:pb-9 {\n padding-block-end: 3rem;\n }\n .lg\\:ps-0 {\n padding-inline-start: 0;\n }\n .lg\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .lg\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .lg\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .lg\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .lg\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .lg\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .lg\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .lg\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .lg\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .lg\\:gap-0 {\n gap: 0;\n }\n .lg\\:gap-1 {\n gap: 0.25rem;\n }\n .lg\\:gap-2 {\n gap: 0.5rem;\n }\n .lg\\:gap-3 {\n gap: 0.75rem;\n }\n .lg\\:gap-4 {\n gap: 1rem;\n }\n .lg\\:gap-5 {\n gap: 1.25rem;\n }\n .lg\\:gap-6 {\n gap: 1.5rem;\n }\n .lg\\:gap-7 {\n gap: 2rem;\n }\n .lg\\:gap-8 {\n gap: 2.5rem;\n }\n .lg\\:gap-9 {\n gap: 3rem;\n }\n .lg\\:row-gap-0 {\n row-gap: 0;\n }\n .lg\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .lg\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .lg\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .lg\\:row-gap-4 {\n row-gap: 1rem;\n }\n .lg\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .lg\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .lg\\:row-gap-7 {\n row-gap: 2rem;\n }\n .lg\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .lg\\:row-gap-9 {\n row-gap: 3rem;\n }\n .lg\\:column-gap-0 {\n column-gap: 0;\n }\n .lg\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .lg\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .lg\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .lg\\:column-gap-4 {\n column-gap: 1rem;\n }\n .lg\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .lg\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .lg\\:column-gap-7 {\n column-gap: 2rem;\n }\n .lg\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .lg\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n @media (width >= 1280px) {\n .xl\\:d-inline {\n display: inline;\n }\n .xl\\:d-inline-block {\n display: inline-block;\n }\n .xl\\:d-block {\n display: block;\n }\n .xl\\:d-grid {\n display: grid;\n }\n .xl\\:d-inline-grid {\n display: inline-grid;\n }\n .xl\\:d-table {\n display: table;\n }\n .xl\\:d-table-row {\n display: table-row;\n }\n .xl\\:d-table-cell {\n display: table-cell;\n }\n .xl\\:d-flex {\n display: flex;\n }\n .xl\\:d-inline-flex {\n display: inline-flex;\n }\n .xl\\:d-contents {\n display: contents;\n }\n .xl\\:d-flow-root {\n display: flow-root;\n }\n .xl\\:d-none {\n display: none;\n }\n .xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .xl\\:flex-row {\n flex-direction: row;\n }\n .xl\\:flex-column {\n flex-direction: column;\n }\n .xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .xl\\:justify-content-center {\n justify-content: center;\n }\n .xl\\:justify-content-between {\n justify-content: space-between;\n }\n .xl\\:justify-content-around {\n justify-content: space-around;\n }\n .xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .xl\\:justify-items-start {\n justify-items: start;\n }\n .xl\\:justify-items-end {\n justify-items: end;\n }\n .xl\\:justify-items-center {\n justify-items: center;\n }\n .xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .xl\\:align-items-start {\n align-items: flex-start;\n }\n .xl\\:align-items-end {\n align-items: flex-end;\n }\n .xl\\:align-items-center {\n align-items: center;\n }\n .xl\\:align-items-baseline {\n align-items: baseline;\n }\n .xl\\:align-items-stretch {\n align-items: stretch;\n }\n .xl\\:align-content-start {\n align-content: flex-start;\n }\n .xl\\:align-content-end {\n align-content: flex-end;\n }\n .xl\\:align-content-center {\n align-content: center;\n }\n .xl\\:align-content-between {\n align-content: space-between;\n }\n .xl\\:align-content-around {\n align-content: space-around;\n }\n .xl\\:align-content-stretch {\n align-content: stretch;\n }\n .xl\\:align-self-auto {\n align-self: auto;\n }\n .xl\\:align-self-start {\n align-self: flex-start;\n }\n .xl\\:align-self-end {\n align-self: flex-end;\n }\n .xl\\:align-self-center {\n align-self: center;\n }\n .xl\\:align-self-baseline {\n align-self: baseline;\n }\n .xl\\:align-self-stretch {\n align-self: stretch;\n }\n .xl\\:place-items-start {\n place-items: start;\n }\n .xl\\:place-items-end {\n place-items: end;\n }\n .xl\\:place-items-center {\n place-items: center;\n }\n .xl\\:place-items-stretch {\n place-items: stretch;\n }\n .xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .xl\\:order-first {\n order: -1;\n }\n .xl\\:order-0 {\n order: 0;\n }\n .xl\\:order-1 {\n order: 1;\n }\n .xl\\:order-2 {\n order: 2;\n }\n .xl\\:order-3 {\n order: 3;\n }\n .xl\\:order-4 {\n order: 4;\n }\n .xl\\:order-5 {\n order: 5;\n }\n .xl\\:order-last {\n order: 6;\n }\n .xl\\:m-0 {\n margin: 0;\n }\n .xl\\:m-1 {\n margin: 0.25rem;\n }\n .xl\\:m-2 {\n margin: 0.5rem;\n }\n .xl\\:m-3 {\n margin: 0.75rem;\n }\n .xl\\:m-4 {\n margin: 1rem;\n }\n .xl\\:m-5 {\n margin: 1.25rem;\n }\n .xl\\:m-6 {\n margin: 1.5rem;\n }\n .xl\\:m-7 {\n margin: 2rem;\n }\n .xl\\:m-8 {\n margin: 2.5rem;\n }\n .xl\\:m-9 {\n margin: 3rem;\n }\n .xl\\:m-auto {\n margin: auto;\n }\n .xl\\:mx-0 {\n margin-inline: 0;\n }\n .xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .xl\\:mx-auto {\n margin-inline: auto;\n }\n .xl\\:my-0 {\n margin-block: 0;\n }\n .xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .xl\\:my-4 {\n margin-block: 1rem;\n }\n .xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .xl\\:my-7 {\n margin-block: 2rem;\n }\n .xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .xl\\:my-9 {\n margin-block: 3rem;\n }\n .xl\\:my-auto {\n margin-block: auto;\n }\n .xl\\:mt-0 {\n margin-block-start: 0;\n }\n .xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .xl\\:mt-auto {\n margin-block-start: auto;\n }\n .xl\\:me-0 {\n margin-inline-end: 0;\n }\n .xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .xl\\:me-auto {\n margin-inline-end: auto;\n }\n .xl\\:mb-0 {\n margin-block-end: 0;\n }\n .xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .xl\\:mb-auto {\n margin-block-end: auto;\n }\n .xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .xl\\:p-0 {\n padding: 0;\n }\n .xl\\:p-1 {\n padding: 0.25rem;\n }\n .xl\\:p-2 {\n padding: 0.5rem;\n }\n .xl\\:p-3 {\n padding: 0.75rem;\n }\n .xl\\:p-4 {\n padding: 1rem;\n }\n .xl\\:p-5 {\n padding: 1.25rem;\n }\n .xl\\:p-6 {\n padding: 1.5rem;\n }\n .xl\\:p-7 {\n padding: 2rem;\n }\n .xl\\:p-8 {\n padding: 2.5rem;\n }\n .xl\\:p-9 {\n padding: 3rem;\n }\n .xl\\:px-0 {\n padding-inline: 0;\n }\n .xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .xl\\:px-4 {\n padding-inline: 1rem;\n }\n .xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .xl\\:px-7 {\n padding-inline: 2rem;\n }\n .xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .xl\\:px-9 {\n padding-inline: 3rem;\n }\n .xl\\:py-0 {\n padding-block: 0;\n }\n .xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .xl\\:py-4 {\n padding-block: 1rem;\n }\n .xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .xl\\:py-7 {\n padding-block: 2rem;\n }\n .xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .xl\\:py-9 {\n padding-block: 3rem;\n }\n .xl\\:pt-0 {\n padding-block-start: 0;\n }\n .xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .xl\\:pb-0 {\n padding-block-end: 0;\n }\n .xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .xl\\:gap-0 {\n gap: 0;\n }\n .xl\\:gap-1 {\n gap: 0.25rem;\n }\n .xl\\:gap-2 {\n gap: 0.5rem;\n }\n .xl\\:gap-3 {\n gap: 0.75rem;\n }\n .xl\\:gap-4 {\n gap: 1rem;\n }\n .xl\\:gap-5 {\n gap: 1.25rem;\n }\n .xl\\:gap-6 {\n gap: 1.5rem;\n }\n .xl\\:gap-7 {\n gap: 2rem;\n }\n .xl\\:gap-8 {\n gap: 2.5rem;\n }\n .xl\\:gap-9 {\n gap: 3rem;\n }\n .xl\\:row-gap-0 {\n row-gap: 0;\n }\n .xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .xl\\:column-gap-0 {\n column-gap: 0;\n }\n .xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:d-inline {\n display: inline;\n }\n .\\32 xl\\:d-inline-block {\n display: inline-block;\n }\n .\\32 xl\\:d-block {\n display: block;\n }\n .\\32 xl\\:d-grid {\n display: grid;\n }\n .\\32 xl\\:d-inline-grid {\n display: inline-grid;\n }\n .\\32 xl\\:d-table {\n display: table;\n }\n .\\32 xl\\:d-table-row {\n display: table-row;\n }\n .\\32 xl\\:d-table-cell {\n display: table-cell;\n }\n .\\32 xl\\:d-flex {\n display: flex;\n }\n .\\32 xl\\:d-inline-flex {\n display: inline-flex;\n }\n .\\32 xl\\:d-contents {\n display: contents;\n }\n .\\32 xl\\:d-flow-root {\n display: flow-root;\n }\n .\\32 xl\\:d-none {\n display: none;\n }\n .\\32 xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .\\32 xl\\:flex-row {\n flex-direction: row;\n }\n .\\32 xl\\:flex-column {\n flex-direction: column;\n }\n .\\32 xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .\\32 xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .\\32 xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .\\32 xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .\\32 xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .\\32 xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .\\32 xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .\\32 xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .\\32 xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .\\32 xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .\\32 xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .\\32 xl\\:justify-content-center {\n justify-content: center;\n }\n .\\32 xl\\:justify-content-between {\n justify-content: space-between;\n }\n .\\32 xl\\:justify-content-around {\n justify-content: space-around;\n }\n .\\32 xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .\\32 xl\\:justify-items-start {\n justify-items: start;\n }\n .\\32 xl\\:justify-items-end {\n justify-items: end;\n }\n .\\32 xl\\:justify-items-center {\n justify-items: center;\n }\n .\\32 xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .\\32 xl\\:align-items-start {\n align-items: flex-start;\n }\n .\\32 xl\\:align-items-end {\n align-items: flex-end;\n }\n .\\32 xl\\:align-items-center {\n align-items: center;\n }\n .\\32 xl\\:align-items-baseline {\n align-items: baseline;\n }\n .\\32 xl\\:align-items-stretch {\n align-items: stretch;\n }\n .\\32 xl\\:align-content-start {\n align-content: flex-start;\n }\n .\\32 xl\\:align-content-end {\n align-content: flex-end;\n }\n .\\32 xl\\:align-content-center {\n align-content: center;\n }\n .\\32 xl\\:align-content-between {\n align-content: space-between;\n }\n .\\32 xl\\:align-content-around {\n align-content: space-around;\n }\n .\\32 xl\\:align-content-stretch {\n align-content: stretch;\n }\n .\\32 xl\\:align-self-auto {\n align-self: auto;\n }\n .\\32 xl\\:align-self-start {\n align-self: flex-start;\n }\n .\\32 xl\\:align-self-end {\n align-self: flex-end;\n }\n .\\32 xl\\:align-self-center {\n align-self: center;\n }\n .\\32 xl\\:align-self-baseline {\n align-self: baseline;\n }\n .\\32 xl\\:align-self-stretch {\n align-self: stretch;\n }\n .\\32 xl\\:place-items-start {\n place-items: start;\n }\n .\\32 xl\\:place-items-end {\n place-items: end;\n }\n .\\32 xl\\:place-items-center {\n place-items: center;\n }\n .\\32 xl\\:place-items-stretch {\n place-items: stretch;\n }\n .\\32 xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .\\32 xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .\\32 xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .\\32 xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .\\32 xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .\\32 xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .\\32 xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .\\32 xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .\\32 xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .\\32 xl\\:order-first {\n order: -1;\n }\n .\\32 xl\\:order-0 {\n order: 0;\n }\n .\\32 xl\\:order-1 {\n order: 1;\n }\n .\\32 xl\\:order-2 {\n order: 2;\n }\n .\\32 xl\\:order-3 {\n order: 3;\n }\n .\\32 xl\\:order-4 {\n order: 4;\n }\n .\\32 xl\\:order-5 {\n order: 5;\n }\n .\\32 xl\\:order-last {\n order: 6;\n }\n .\\32 xl\\:m-0 {\n margin: 0;\n }\n .\\32 xl\\:m-1 {\n margin: 0.25rem;\n }\n .\\32 xl\\:m-2 {\n margin: 0.5rem;\n }\n .\\32 xl\\:m-3 {\n margin: 0.75rem;\n }\n .\\32 xl\\:m-4 {\n margin: 1rem;\n }\n .\\32 xl\\:m-5 {\n margin: 1.25rem;\n }\n .\\32 xl\\:m-6 {\n margin: 1.5rem;\n }\n .\\32 xl\\:m-7 {\n margin: 2rem;\n }\n .\\32 xl\\:m-8 {\n margin: 2.5rem;\n }\n .\\32 xl\\:m-9 {\n margin: 3rem;\n }\n .\\32 xl\\:m-auto {\n margin: auto;\n }\n .\\32 xl\\:mx-0 {\n margin-inline: 0;\n }\n .\\32 xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .\\32 xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .\\32 xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .\\32 xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .\\32 xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .\\32 xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .\\32 xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .\\32 xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .\\32 xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .\\32 xl\\:mx-auto {\n margin-inline: auto;\n }\n .\\32 xl\\:my-0 {\n margin-block: 0;\n }\n .\\32 xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .\\32 xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .\\32 xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .\\32 xl\\:my-4 {\n margin-block: 1rem;\n }\n .\\32 xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .\\32 xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .\\32 xl\\:my-7 {\n margin-block: 2rem;\n }\n .\\32 xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .\\32 xl\\:my-9 {\n margin-block: 3rem;\n }\n .\\32 xl\\:my-auto {\n margin-block: auto;\n }\n .\\32 xl\\:mt-0 {\n margin-block-start: 0;\n }\n .\\32 xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .\\32 xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .\\32 xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .\\32 xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .\\32 xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .\\32 xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .\\32 xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .\\32 xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .\\32 xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .\\32 xl\\:mt-auto {\n margin-block-start: auto;\n }\n .\\32 xl\\:me-0 {\n margin-inline-end: 0;\n }\n .\\32 xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .\\32 xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .\\32 xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .\\32 xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .\\32 xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .\\32 xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .\\32 xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .\\32 xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .\\32 xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .\\32 xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .\\32 xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .\\32 xl\\:me-auto {\n margin-inline-end: auto;\n }\n .\\32 xl\\:mb-0 {\n margin-block-end: 0;\n }\n .\\32 xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .\\32 xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .\\32 xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .\\32 xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .\\32 xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .\\32 xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .\\32 xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .\\32 xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .\\32 xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .\\32 xl\\:mb-auto {\n margin-block-end: auto;\n }\n .\\32 xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .\\32 xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .\\32 xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .\\32 xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .\\32 xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .\\32 xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .\\32 xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .\\32 xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .\\32 xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .\\32 xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .\\32 xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .\\32 xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .\\32 xl\\:p-0 {\n padding: 0;\n }\n .\\32 xl\\:p-1 {\n padding: 0.25rem;\n }\n .\\32 xl\\:p-2 {\n padding: 0.5rem;\n }\n .\\32 xl\\:p-3 {\n padding: 0.75rem;\n }\n .\\32 xl\\:p-4 {\n padding: 1rem;\n }\n .\\32 xl\\:p-5 {\n padding: 1.25rem;\n }\n .\\32 xl\\:p-6 {\n padding: 1.5rem;\n }\n .\\32 xl\\:p-7 {\n padding: 2rem;\n }\n .\\32 xl\\:p-8 {\n padding: 2.5rem;\n }\n .\\32 xl\\:p-9 {\n padding: 3rem;\n }\n .\\32 xl\\:px-0 {\n padding-inline: 0;\n }\n .\\32 xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .\\32 xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .\\32 xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .\\32 xl\\:px-4 {\n padding-inline: 1rem;\n }\n .\\32 xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .\\32 xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .\\32 xl\\:px-7 {\n padding-inline: 2rem;\n }\n .\\32 xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .\\32 xl\\:px-9 {\n padding-inline: 3rem;\n }\n .\\32 xl\\:py-0 {\n padding-block: 0;\n }\n .\\32 xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .\\32 xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .\\32 xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .\\32 xl\\:py-4 {\n padding-block: 1rem;\n }\n .\\32 xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .\\32 xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .\\32 xl\\:py-7 {\n padding-block: 2rem;\n }\n .\\32 xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .\\32 xl\\:py-9 {\n padding-block: 3rem;\n }\n .\\32 xl\\:pt-0 {\n padding-block-start: 0;\n }\n .\\32 xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .\\32 xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .\\32 xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .\\32 xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .\\32 xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .\\32 xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .\\32 xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .\\32 xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .\\32 xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .\\32 xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .\\32 xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .\\32 xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .\\32 xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .\\32 xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .\\32 xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .\\32 xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .\\32 xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .\\32 xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .\\32 xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .\\32 xl\\:pb-0 {\n padding-block-end: 0;\n }\n .\\32 xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .\\32 xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .\\32 xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .\\32 xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .\\32 xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .\\32 xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .\\32 xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .\\32 xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .\\32 xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .\\32 xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .\\32 xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .\\32 xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .\\32 xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .\\32 xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .\\32 xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .\\32 xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .\\32 xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .\\32 xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .\\32 xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .\\32 xl\\:gap-0 {\n gap: 0;\n }\n .\\32 xl\\:gap-1 {\n gap: 0.25rem;\n }\n .\\32 xl\\:gap-2 {\n gap: 0.5rem;\n }\n .\\32 xl\\:gap-3 {\n gap: 0.75rem;\n }\n .\\32 xl\\:gap-4 {\n gap: 1rem;\n }\n .\\32 xl\\:gap-5 {\n gap: 1.25rem;\n }\n .\\32 xl\\:gap-6 {\n gap: 1.5rem;\n }\n .\\32 xl\\:gap-7 {\n gap: 2rem;\n }\n .\\32 xl\\:gap-8 {\n gap: 2.5rem;\n }\n .\\32 xl\\:gap-9 {\n gap: 3rem;\n }\n .\\32 xl\\:row-gap-0 {\n row-gap: 0;\n }\n .\\32 xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .\\32 xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .\\32 xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .\\32 xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .\\32 xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .\\32 xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .\\32 xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .\\32 xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .\\32 xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .\\32 xl\\:column-gap-0 {\n column-gap: 0;\n }\n .\\32 xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .\\32 xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .\\32 xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .\\32 xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .\\32 xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .\\32 xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .\\32 xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .\\32 xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .\\32 xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n }\n}\n:root {\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 1024px;\n --breakpoint-xl: 1280px;\n --breakpoint-2xl: 1536px;\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */\n","$file: \"\" !default;\n\n/*!\n * Bootstrap #{$file} v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n","@use \"../config\" as *;\n@use \"breakpoints\" as *;\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n --gutter-x: #{$gutter};\n --gutter-y: 0;\n width: 100%;\n padding-inline: calc(var(--gutter-x) * .5);\n margin-inline: auto;\n}\n\n@layer layout {\n @if $enable-container-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .#{breakpoint-prefix($breakpoint, $breakpoints)}container {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n @each $name, $width in $breakpoints {\n @if ($extend-breakpoint) {\n .#{breakpoint-prefix($name, $breakpoints)}container {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n }\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:string\";\n@use \"../config\" as *;\n\n// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px)\n//\n// The map defined in the `$breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl 2xl))\n// md\n@function breakpoint-next($name, $breakpoints: $breakpoints, $breakpoint-names: map.keys($breakpoints)) {\n $n: list.index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoint-names}`\";\n }\n // Use @if/@else because list.nth would error if evaluated when $n equals list length\n @if $n < list.length($breakpoint-names) {\n @return list.nth($breakpoint-names, $n + 1);\n } @else {\n @return null;\n }\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $breakpoints) {\n $min: map.get($breakpoints, $name);\n @return if(sass($min != 0): $min; else: null);\n}\n\n// Maximum breakpoint width for range media queries.\n// Returns the breakpoint value to use as an upper bound in range queries.\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n// >> breakpoint-max(xxl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// null\n@function breakpoint-max($name, $breakpoints: $breakpoints) {\n @if $name == null {\n @return null;\n }\n $max: map.get($breakpoints, $name);\n @return if(sass($max and $max > 0): $max; else: null);\n}\n\n// Escape a name for use at the start of a CSS identifier.\n// Leading digits are hex-escaped (e.g., 2xl becomes \\32 xl).\n@function css-escape-ident($name) {\n $name-str: \"#{$name}\";\n $digits: \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\";\n $first: string.slice($name-str, 1, 1);\n\n @if list.index($digits, $first) {\n @return \"\\\\3#{$first} #{string.slice($name-str, 2)}\";\n }\n\n @return $name-str;\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name\n// with an escaped colon as a Tailwind-style prefix for responsive class names.\n// Leading digits are CSS-escaped (e.g., 2xl becomes \\32 xl) for valid identifiers.\n//\n// >> breakpoint-prefix(xs, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\" (Returns a blank string)\n// >> breakpoint-prefix(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"sm\\:\"\n// >> breakpoint-prefix(2xl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\\32 xl\\:\"\n@function breakpoint-prefix($name, $breakpoints: $breakpoints) {\n @if breakpoint-min($name, $breakpoints) == null {\n @return \"\";\n }\n\n @return \"#{css-escape-ident($name)}\\\\:\";\n}\n\n// Iterate all breakpoints and provide the current name and prefix.\n//\n// @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-up($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n @content($breakpoint, $prefix);\n }\n}\n\n// Iterate all breakpoints and provide the current name, next name, and next prefix.\n//\n// @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-down($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $next: breakpoint-next($breakpoint, $breakpoints);\n $prefix: breakpoint-prefix($next, $breakpoints);\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Backwards-compatible alias for next/down breakpoint loops.\n@mixin loop-breakpoints($breakpoints: $breakpoints) {\n @include loop-breakpoints-down($breakpoints) using ($breakpoint, $next, $prefix) {\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (width >= $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (width < $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n\n\n// Container queries\n//\n// Container queries allow elements to respond to the size of a containing element\n// rather than the viewport. These mixins mirror the media-breakpoint-* mixins above.\n//\n// scss-docs-start container-query-mixins\n\n// Set an element as a query container.\n//\n// @include set-container(); // container-type: inline-size\n// @include set-container(size); // container-type: size\n// @include set-container(inline-size, sidebar); // container: sidebar / inline-size\n//\n@mixin set-container($type: inline-size, $name: null) {\n @if $name {\n container: #{$name} / #{$type};\n } @else {\n container-type: #{$type};\n }\n}\n\n// Container query of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider within the container.\n//\n// @include container-breakpoint-up(md) { ... }\n// @include container-breakpoint-up(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-up($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower within the container.\n//\n// @include container-breakpoint-down(lg) { ... }\n// @include container-breakpoint-down(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-down($name, $container-name: null, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @if $container-name {\n @container #{$container-name} (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width < #{$max}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints within the container.\n//\n// @include container-breakpoint-between(md, xl) { ... }\n// @include container-breakpoint-between(md, xl, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-between($lower, $upper, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($lower, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($upper, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n\n// Container query between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint within the container.\n//\n// @include container-breakpoint-only(md) { ... }\n// @include container-breakpoint-only(md, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-only($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($name, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($next, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n// scss-docs-end container-query-mixins\n","@use \"sass:map\";\n@use \"sass:meta\";\n\n// Configuration\n//\n// Variables and settings not related to theme, components, and more go here. It does include layout.\n\n// Merge overrides on top of defaults, stripping null entries.\n// Null values let users remove map keys via @use ... with().\n// Accepts a list as $defaults (converted to a map with `true` values).\n@function defaults($defaults, $overrides) {\n @if meta.type-of($defaults) == \"list\" {\n $map: ();\n @each $key in $defaults {\n $map: map.merge($map, ($key: true));\n }\n $defaults: $map;\n }\n $merged: map.merge($defaults, $overrides);\n @each $key, $value in $merged {\n @if $value == null {\n $merged: map.remove($merged, $key);\n }\n }\n @return $merged;\n}\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: true !default;\n$enable-gradients: true !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: false !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: true !default;\n$enable-button-pointers: true !default;\n// $enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n\n$color-mode-type: \"media-query\" !default;\n$color-contrast-dark: #000 !default;\n$color-contrast-light: #fff !default;\n$min-contrast-ratio: 4.5 !default;\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer * .75,\n 4: $spacer,\n 5: $spacer * 1.25,\n 6: $spacer * 1.5,\n 7: $spacer * 2,\n 8: $spacer * 2.5,\n 9: $spacer * 3,\n) !default;\n\n$negative-spacers: (\n \"-1\": $spacer * -.25,\n \"-2\": $spacer * -.5,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n$sizes: (\n 1: $spacer,\n 2: $spacer * 2,\n 3: $spacer * 3,\n 4: $spacer * 4,\n 5: $spacer * 5,\n 6: $spacer * 6,\n 7: $spacer * 7,\n 8: $spacer * 8,\n 9: $spacer * 9,\n 10: $spacer * 10,\n 11: $spacer * 11,\n 12: $spacer * 12,\n) !default;\n\n$radius: .5rem !default;\n$radii: (\n 0: 0,\n 1: $radius * .25,\n 2: $radius * .375,\n 3: $radius * .5,\n 4: $radius * .75,\n 5: $radius,\n 6: $radius * 1.25,\n 7: $radius * 1.5,\n 8: $radius * 2,\n 9: $radius * 3,\n) !default;\n\n// Breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start breakpoints\n$breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 1024px,\n xl: 1280px,\n 2xl: 1536px\n) !default;\n// scss-docs-end breakpoints\n\n// @include _assert-ascending($breakpoints, \"$breakpoints\");\n// @include _assert-starts-at-zero($breakpoints, \"$breakpoints\");\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-x: 1.5rem !default;\n$grid-gutter-y: 0 !default;\n$grid-row-columns: 6 !default;\n\n$gutters: $spacers !default;\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1200px,\n 2xl: 1440px\n) !default;\n// scss-docs-end container-max-widths\n\n$container-padding-x: $grid-gutter-x !default;\n\n$utilities: () !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent)) !default;\n// scss-docs-end variable-gradient\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Links\n//\n// Style anchor elements.\n\n$link-decoration: underline !default;\n$link-underline-offset: .2em !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: color-mix(in oklch, var(--gray-100), var(--gray-200)) !default;\n// scss-docs-end border-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"auto\": auto,\n \"1x1\": #{\"1 / 1\"},\n \"4x3\": #{\"4 / 3\"},\n \"16x9\": #{\"16 / 9\"},\n \"21x9\": #{\"21 / 9\"}\n) !default;\n// scss-docs-end aspect-ratios\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$font-sizes: defaults(\n (\n \"xs\": (\n \"font-size\": .75rem,\n \"line-height\": 1.25\n ),\n \"sm\": (\n \"font-size\": .875rem,\n \"line-height\": 1.5\n ),\n \"md\": (\n \"font-size\": 1rem,\n \"line-height\": 1.5\n ),\n \"lg\": (\n \"font-size\": clamp(1.25rem, 1rem + .625vw, 1.5rem),\n \"line-height\": 1.5\n ),\n \"xl\": (\n \"font-size\": clamp(1.5rem, 1.1rem + .75vw, 1.75rem),\n \"line-height\": calc(2.5 / 1.75)\n ),\n \"2xl\": (\n \"font-size\": clamp(1.75rem, 1.3rem + 1vw, 2rem),\n \"line-height\": calc(3 / 2.25)\n ),\n \"3xl\": (\n \"font-size\": clamp(2rem, 1.5rem + 1.875vw, 2.5rem),\n \"line-height\": 1.2\n ),\n \"4xl\": (\n \"font-size\": clamp(2.25rem, 1.75rem + 2.5vw, 3rem),\n \"line-height\": 1.1\n ),\n \"5xl\": (\n \"font-size\": clamp(3rem, 2rem + 5vw, 4rem),\n \"line-height\": 1.1\n ),\n \"6xl\": (\n \"font-size\": clamp(3.75rem, 2.5rem + 6.25vw, 5rem),\n \"line-height\": 1\n ),\n ),\n $font-sizes\n);\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: var(--spacer-2) !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start type-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n// scss-docs-end type-variables\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-menu: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n// $zindex-drawer-backdrop: 1040 !default;\n$zindex-drawer: 1045 !default;\n$zindex-dialog: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n","@use \"../config\" as *;\n@use \"../mixins/grid\" as *;\n\n// mdo-do\n// - check gap utilities as replacement for gutter classes from v5\n\n@layer layout {\n @if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n\n @include make-grid-columns();\n }\n\n @if $enable-cssgrid {\n .grid {\n --columns: #{$grid-columns};\n --rows: 1;\n --gap: #{$grid-gutter-x};\n\n display: grid;\n grid-template-rows: repeat(var(--rows), 1fr);\n grid-template-columns: repeat(var(--columns), 1fr);\n gap: var(--gap);\n\n }\n\n @include make-cssgrid();\n }\n\n // mdo-do: add to utilities?\n .grid-cols-subgrid {\n grid-template-columns: subgrid;\n }\n\n .grid-fill {\n --gap: #{$grid-gutter-x};\n\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-auto-flow: row;\n gap: var(--gap);\n }\n\n // .g-col-auto {\n // grid-column: auto;\n // }\n\n // mdo-do: add to utilities?\n // .grid-cols-3 {\n // --columns: 3;\n // }\n // .grid-cols-4 {\n // --columns: 4;\n // }\n // .grid-cols-6 {\n // --columns: 6;\n // }\n\n // .grid-full {\n // grid-column: 1 / -1;\n // }\n}\n","@use \"sass:map\";\n@use \"sass:math\";\n@use \"sass:meta\";\n@use \"../config\" as *;\n@use \"../layout/breakpoints\" as *;\n\n// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter-x: $grid-gutter-x, $gutter-y: $grid-gutter-y) {\n --gutter-x: #{$gutter-x};\n --gutter-y: #{$gutter-y};\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-inline: calc(-.5 * var(--gutter-x));\n margin-top: calc(-1 * var(--gutter-y));\n}\n\n@mixin make-col-ready() {\n // Add box sizing if only the grid is loaded\n // stylelint-disable-next-line scss/at-function-named-arguments\n box-sizing: if(sass(meta.variable-exists(include-column-box-sizing) and $include-column-box-sizing): border-box; else: null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-inline: calc(var(--gutter-x) * .5);\n margin-top: var(--gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: math.percentage(math.div($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: math.div($size, $columns);\n // stylelint-disable-next-line scss/at-function-named-arguments\n margin-inline-start: if(sass($num == 0): 0; else: math.percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// number of columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: math.percentage(math.div(1, $count));\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-x, $breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n .#{$prefix}col {\n flex: 1 0 0;\n }\n\n .#{$prefix}row-cols-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .#{$prefix}row-cols-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .#{$prefix}col-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .#{$prefix}col-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($prefix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .#{$prefix}offset-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .#{$prefix}g-#{$key},\n .#{$prefix}gx-#{$key} {\n --gutter-x: #{$value};\n }\n\n .#{$prefix}g-#{$key},\n .#{$prefix}gy-#{$key} {\n --gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .#{$prefix}g-col-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is an invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .#{$prefix}g-start-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/utilities\" as *;\n@use \"../utilities\" as *;\n\n@layer utilities {\n @include generate-utilities-loop($utilities, $breakpoints);\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"../layout/breakpoints\" as bp;\n\n// Utility generator\n\n// - Utilities can use three different types of selectors:\n// - class: .class\n// - attr-starts: [class^=\"class\"]\n// - attr-includes: [class*=\"class\"]\n// - Utilities can target children via `child-selector`, wrapped in :where() for zero specificity\n// - Utilities can generate regular CSS properties and CSS custom properties\n// - Utilities can be responsive or not\n// - Utilities can have state variants (e.g., hover, focus, active)\n// - Utilities can define local CSS variables\n//\n// CSS custom properties can be generated in two ways:\n//\n// 1. Property map with null values (CSS var receives the utility value):\n// \"bg-color\": (\n// property: (\n// \"--bg\": null,\n// \"background-color\": var(--bg)\n// ),\n// class: bg,\n// values: (\n// primary: var(--blue-500),\n// )\n// )\n// Generates:\n// .bg-primary {\n// --bs-bg: var(--bs-blue-500);\n// background-color: var(--bs-bg);\n// }\n//\n// 2. Variables map (static CSS custom properties on every class):\n// \"link-underline\": (\n// property: text-decoration-color,\n// class: link-underline,\n// variables: (\n// \"link-underline-opacity\": 1\n// ),\n// values: (...)\n// )\n// Generates:\n// .link-underline {\n// --bs-link-underline-opacity: 1;\n// text-decoration-color: ...;\n// }\n\n// Helper mixin to emit CSS custom properties from a utility's `variables` key.\n// When variables is a map, the provided static values are used on each class.\n// When variables is a list or single identifier, each variable receives the current utility value.\n@mixin generate-variables($utility, $value) {\n @if map.has-key($utility, variables) {\n $variables: map.get($utility, variables);\n @if meta.type-of($variables) == \"map\" {\n @each $var-key, $var-value in $variables {\n --#{$var-key}: #{$var-value};\n }\n } @else {\n // Treat as a list (or single identifier) — each variable gets the utility value\n @each $var-name in $variables {\n --#{$var-name}: #{$value};\n }\n }\n }\n}\n\n// Helper mixin to generate CSS properties for both legacy and property map approaches\n@mixin generate-properties($utility, $property-map, $properties, $value) {\n @if $property-map != null {\n // Property-Value Mapping approach\n @each $property, $default-value in $property-map {\n // If value is a map, check if it has a key for this property.\n // Otherwise, use default-value (or $value if default-value is null).\n $actual-value: $default-value;\n @if meta.type-of($value) == \"map\" and map.has-key($value, $property) {\n $actual-value: map.get($value, $property);\n } @else if $default-value == null {\n $actual-value: $value;\n }\n @if map.get($utility, important) {\n #{$property}: $actual-value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $actual-value;\n }\n }\n } @else {\n // Legacy approach\n @each $property in $properties {\n @if map.get($utility, important) {\n #{$property}: $value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $value;\n }\n }\n }\n}\n\n@mixin generate-utility($utility, $prefix: \"\") {\n // Validate required keys\n @if not map.has-key($utility, property) {\n @error \"Utility is missing required `property` key: #{$utility}\";\n }\n @if not map.has-key($utility, values) {\n @error \"Utility is missing required `values` key: #{$utility}\";\n }\n\n // Warn on unknown keys (likely typos)\n $valid-keys: property, values, class, selector, responsive, print, dark, important, state, variables, child-selector, enabled;\n @each $key in map.keys($utility) {\n @if not list.index($valid-keys, $key) {\n @warn \"Unknown utility key `#{$key}` found. Valid keys are: #{$valid-keys}\";\n }\n }\n\n // Validate boolean keys\n @each $bool-key in (responsive, print, dark, important, enabled) {\n @if map.has-key($utility, $bool-key) {\n $val: map.get($utility, $bool-key);\n @if $val != true and $val != false {\n @error \"Utility key `#{$bool-key}` should be a boolean (true or false), got: #{$val}\";\n }\n }\n }\n\n // Determine if we're generating a class, or an attribute selector\n $selector-type: \"class\";\n @if map.has-key($utility, selector) {\n $selector-type: map.get($utility, selector);\n // Validate selector type\n $valid-selectors: \"class\", \"attr-starts\", \"attr-includes\";\n @if not list.index($valid-selectors, $selector-type) {\n @error \"Invalid `selector` value `#{$selector-type}`. Must be one of: #{$valid-selectors}\";\n }\n }\n // Then get the class name to use in a class (e.g., .class) or in an attribute selector (e.g., [class^=\"class\"])\n $selector-class: map.get($utility, class);\n\n // Attribute selectors require a `class` key\n @if $selector-type != \"class\" and not map.has-key($utility, class) {\n @error \"Utility with `selector: #{$selector-type}` requires a `class` key.\";\n }\n\n // Get the list or map of values and ensure it's a map\n $values: map.get($utility, values);\n @if meta.type-of($values) != \"map\" {\n @if meta.type-of($values) == \"list\" {\n $list: ();\n @each $value in $values {\n $list: map.merge($list, ($value: $value));\n }\n $values: $list;\n } @else {\n $values: (null: $values);\n }\n }\n\n @each $key, $value in $values {\n $properties: map.get($utility, property);\n $property-map: null;\n $custom-class: \"\";\n\n // Check if property is a map (Property-Value Mapping approach)\n @if meta.type-of($properties) == \"map\" {\n $property-map: $properties;\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n }\n } @else {\n // Legacy approach: multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if meta.type-of($properties) == \"string\" {\n $properties: list.append((), $properties);\n }\n // Use custom class if present, otherwise use the first value from the list of properties\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n } @else {\n $custom-class: list.nth($properties, 1);\n }\n @if $custom-class == null {\n $custom-class: \"\";\n }\n }\n\n // State params to generate state variants\n $state: ();\n @if map.has-key($utility, state) {\n $state: map.get($utility, state);\n }\n\n // Don't add a dash before value key if value key is null (e.g. with shadow class)\n $custom-class-modifier: \"\";\n @if $key {\n @if $custom-class == \"\" {\n $custom-class-modifier: $key;\n } @else {\n $custom-class-modifier: \"-\" + $key;\n }\n }\n\n // Build the class name fragment (without prefix or dot) for reuse in state variants\n $class-name: \"\";\n @if $selector-type == \"class\" {\n @if $custom-class != \"\" {\n $class-name: $custom-class + $custom-class-modifier;\n } @else if $selector-class != null and $selector-class != \"\" {\n $class-name: $selector-class + $custom-class-modifier;\n } @else {\n $class-name: $custom-class-modifier;\n }\n }\n\n $selector: \"\";\n @if $selector-type == \"class\" {\n $selector: \".#{$prefix + $class-name}\";\n } @else if $selector-type == \"attr-starts\" {\n $selector: \"[class^=\\\"#{$selector-class}\\\"]\";\n } @else if $selector-type == \"attr-includes\" {\n $selector: \"[class*=\\\"#{$selector-class}\\\"]\";\n }\n\n // Apply child-selector wrapping if present (wraps in :where() for zero specificity)\n $child-sel: null;\n @if map.has-key($utility, child-selector) {\n $child-sel: map.get($utility, child-selector);\n }\n\n $final-selector: $selector;\n @if $child-sel {\n $final-selector: \":where(#{$selector} #{$child-sel})\";\n }\n\n #{$final-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n\n // Generate state variants (e.g., hover:link-10 instead of link-10-hover)\n @if $state != () {\n @each $state-variant in $state {\n $state-selector: \".#{$prefix}#{$state-variant}\\\\:#{$class-name}:#{$state-variant}\";\n @if $child-sel {\n $state-selector: \":where(#{$state-selector} #{$child-sel})\";\n }\n\n #{$state-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n }\n }\n }\n}\n\n// Generates all utility classes: base, responsive, print, and dark.\n// Extracted so that tests can call this mixin directly with a custom $utilities map\n// rather than having to mirror the loop conditions inline.\n@mixin generate-utilities-loop($utilities, $breakpoints) {\n // Base + responsive (one pass per breakpoint)\n @each $breakpoint in map.keys($breakpoints) {\n @include bp.media-breakpoint-up($breakpoint, $breakpoints) {\n $prefix: bp.breakpoint-prefix($breakpoint, $breakpoints);\n\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and (map.get($utility, responsive) or $prefix == \"\") {\n @include generate-utility($utility, $prefix);\n }\n }\n }\n }\n\n // Print utilities\n @media print {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, print) == true {\n @include generate-utility($utility, \"print\\\\:\");\n }\n }\n }\n\n // Dark utilities\n @media (prefers-color-scheme: dark) {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, dark) == true {\n @include generate-utility($utility, \"dark\\\\:\");\n }\n }\n }\n}\n","@use \"banner\" with (\n $file: \"Grid\"\n);\n\n@use \"config\" as *;\n@use \"functions\" as *;\n\n@forward \"utilities\"; // Make utilities available downstream\n@use \"utilities\" as *; // Bring utilities into the current namespace\n\n@forward \"layout/containers\";\n@forward \"layout/grid\";\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$utilities: map-get-multiple(\n $utilities,\n (\n \"display\",\n \"order\",\n \"grid-column-counts\",\n \"grid-columns\",\n \"grid-auto-flow\",\n \"gap\",\n \"row-gap\",\n \"column-gap\",\n \"flex\",\n \"flex-direction\",\n \"flex-grow\",\n \"flex-shrink\",\n \"flex-wrap\",\n \"justify-content\",\n \"justify-items\",\n \"align-items\",\n \"align-content\",\n \"align-self\",\n \"place-items\",\n \"margin\",\n \"margin-x\",\n \"margin-y\",\n \"margin-top\",\n \"margin-end\",\n \"margin-bottom\",\n \"margin-start\",\n \"negative-margin\",\n \"negative-margin-x\",\n \"negative-margin-y\",\n \"negative-margin-top\",\n \"negative-margin-end\",\n \"negative-margin-bottom\",\n \"negative-margin-start\",\n \"padding\",\n \"padding-x\",\n \"padding-y\",\n \"padding-top\",\n \"padding-end\",\n \"padding-bottom\",\n \"padding-start\",\n )\n);\n\n// check-unused-imports-disable-next-line — side-effect import: generates utility CSS.\n@use \"utilities/api\";\n\n:root {\n @each $name, $value in $breakpoints {\n --breakpoint-#{$name}: #{$value};\n }\n}\n"],"names":[]}
\ No newline at end of file
--bs-link-color: light-dark(var(--bs-primary-base), var(--bs-primary-fg));
--bs-link-decoration: underline;
--bs-link-hover-color: color-mix(in oklch, var(--bs-link-color) 90%, #000);
- --bs-font-mono: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
+ --bs-font-mono: ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Monaco, 'Cascadia Mono', Consolas, 'Liberation Mono', monospace;;
--bs-code-font-size: 95%;
--bs-code-color: var(--bs-fg-2);
--bs-border-width: 1px;
--bs-border-style: solid;
- --bs-border-color: light-dark(color-mix(in oklch, var(--bs-gray-100), var(--bs-gray-200)), var(--bs-gray-700));
+ --bs-border-color: light-dark(var(--bs-gray-200), var(--bs-gray-700));
--bs-border-color-translucent: color-mix(in oklch, var(--bs-fg-body) 15%, transparent);
--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
--bs-border-bg: var(--bs-bg-body);
--bs-border-body: light-dark(var(--bs-gray-300), var(--bs-gray-800));
--bs-border-muted: light-dark(var(--bs-gray-200), var(--bs-gray-800));
- --bs-border-subtle: light-dark(var(--bs-gray-100), var(--bs-gray-900));
+ --bs-border-subtle: light-dark(color-mix(in oklch, var(--bs-gray-100), var(--bs-gray-200)), var(--bs-gray-900));
--bs-border-emphasized: light-dark(var(--bs-gray-400), var(--bs-gray-600));
--bs-border-white: var(--bs-white);
--bs-border-black: var(--bs-black);
::-webkit-datetime-edit-second-field,
::-webkit-datetime-edit-minute-field,
::-webkit-datetime-edit-hour-field,
+ ::-webkit-datetime-edit-meridiem-field,
::-webkit-datetime-edit-ampm-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-week-field,
-{"version":3,"sources":["../../scss/_banner.scss","../../scss/_colors.scss","../../scss/mixins/_tokens.scss","bootstrap-reboot.css","../../scss/_root.scss","../../scss/content/_reboot.scss","../../scss/_config.scss","../../scss/mixins/_border-radius.scss"],"names":[],"mappings":"AAEA;;;;GAAA;ACiGA;EC9FI,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,qCAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,uCAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,uCAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,uCAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,mCAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,mCAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,2EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,sCAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,4EAAA;EAAA,4EAAA;EAAA,4EAAA;EAAA,4EAAA;EAAA,4EAAA;EAAA,4EAAA;EAAA,oCAAA;EAAA,4EAAA;EAAA,4EAAA;EAAA,4EAAA;EAAA,4EAAA;EAAA,4EAAA;EAAA,4EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,sCAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,qCAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,sCAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,8EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,qCAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,qCAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,qCAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,qCAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,6EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,uCAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;EAAA,+EAAA;ACiNJ;;AC/MA,0GAAA;AAmKA;EFrKI,gBAAA;EAAA,gBAAA;EAAA,+HAAA;EAAA,iCAAA;EAAA,2BAAA;EAAA,4BAAA;EAAA,4BAAA;EAAA,8BAAA;EAAA,0BAAA;EAAA,+BAAA;EAAA,gCAAA;EAAA,6CAAA;EAAA,0BAAA;EAAA,0BAAA;EAAA,2BAAA;EAAA,4CAAA;EAAA,yEAAA;EAAA,+BAAA;EAAA,0EAAA;EAAA,oGAAA;EAAA,wBAAA;EAAA,+BAAA;EAAA,sBAAA;EAAA,wBAAA;EAAA,8GAAA;EAAA,sFAAA;EAAA,kDAAA;EAAA,2DAAA;EAAA,oDAAA;EAAA,2DAAA;EAAA,iBAAA;EAAA,0BAAA;EAAA,2BAAA;EAAA,mDAAA;EAAA,4EAAA;EAAA,+CAAA;EAAA,+DAAA;EAAA,8CAAA;EAAA,6DAAA;EAAA,wCAAA;EAAA,mCAAA;EAAA,oCAAA;EAAA,oCAAA;EAAA,mCAAA;EAAA,kCAAA;EAAA,iCAAA;EAAA,kDAAA;EAAA,sDAAA;EAAA,gDAAA;EAAA,oCAAA;EAAA,qCAAA;EAAA,mCAAA;EAAA,mDAAA;EAAA,oCAAA;EAAA,mDAAA;EAAA,kCAAA;EAAA,oCAAA;EAAA,qCAAA;EAAA,mDAAA;EAAA,uDAAA;EAAA,mDAAA;EAAA,qCAAA;EAAA,mCAAA;EAAA,iCAAA;EAAA,mDAAA;EAAA,uDAAA;EAAA,mDAAA;EAAA,0BAAA;EAAA,yBAAA;EAAA,2BAAA;EAAA,wBAAA;EAAA,uBAAA;EAAA,wBAAA;EAAA,yDAAA;EAAA,wBAAA;EAAA,0DAAA;EAAA,iCAAA;EAAA,sDAAA;EAAA,kCAAA;EAAA,yDAAA;EAAA,yBAAA;EAAA,yDAAA;EAAA,yBAAA;EAAA,iDAAA;EAAA,yBAAA;EAAA,yDAAA;EAAA,uBAAA;EAAA,qCAAA;EAAA,mEAAA;EAAA,4EAAA;EAAA,mCAAA;EAAA,0EAAA;EAAA,yEAAA;EAAA,uEAAA;EAAA,mKAAA;EAAA,sCAAA;EAAA,sCAAA;EAAA,iHAAA;EAAA,+EAAA;EAAA,oCAAA;EAAA,6EAAA;EAAA,4EAAA;EAAA,0EAAA;EAAA,sKAAA;EAAA,qCAAA;EAAA,sCAAA;EAAA,qEAAA;EAAA,8EAAA;EAAA,oCAAA;EAAA,4EAAA;EAAA,2EAAA;EAAA,yEAAA;EAAA,qKAAA;EAAA,sCAAA;EAAA,mCAAA;EAAA,gEAAA;EAAA,yEAAA;EAAA,iCAAA;EAAA,uEAAA;EAAA,sEAAA;EAAA,oEAAA;EAAA,gKAAA;EAAA,qCAAA;EAAA,uCAAA;EAAA,uEAAA;EAAA,gFAAA;EAAA,qCAAA;EAAA,8EAAA;EAAA,6EAAA;EAAA,2EAAA;EAAA,uKAAA;EAAA,yCAAA;EAAA,kCAAA;EAAA,gEAAA;EAAA,yEAAA;EAAA,gCAAA;EAAA,uEAAA;EAAA,sEAAA;EAAA,oEAAA;EAAA,gKAAA;EAAA,sCAAA;EAAA,qCAAA;EAAA,mEAAA;EAAA,yEAAA;EAAA,mEAAA;EAAA,0EAAA;EAAA,yEAAA;EAAA,uEAAA;EAAA,uHAAA;EAAA,sEAAA;EAAA,uCAAA;EAAA,qEAAA;EAAA,8EAAA;EAAA,qEAAA;EAAA,4EAAA;EAAA,2EAAA;EAAA,yEAAA;EAAA,yHAAA;EAAA,wEAAA;EAAA,6DAAA;EAAA,6DAAA;EAAA,6DAAA;EAAA,6DAAA;EAAA,6DAAA;EAAA,6BAAA;EAAA,8BAAA;EAAA,8BAAA;EAAA,gCAAA;EAAA,wBAAA;EAAA,gEAAA;EAAA,6DAAA;EAAA,6DAAA;EAAA,6DAAA;EAAA,6DAAA;EAAA,6BAAA;EAAA,8BAAA;EAAA,8BAAA;EAAA,wBAAA;EAAA,iCAAA;EAAA,oEAAA;EAAA,qEAAA;EAAA,sEAAA;EAAA,0EAAA;EAAA,kCAAA;EAAA,kCAAA;EAAA,qBAAA;EAAA,yBAAA;EAAA,yBAAA;EAAA,0BAAA;EAAA,0BAAA;EAAA,2BAAA;EAAA,gBAAA;EAAA,sBAAA;EAAA,qBAAA;EAAA,sBAAA;EAAA,mBAAA;EAAA,sBAAA;EAAA,qBAAA;EAAA,mBAAA;EAAA,qBAAA;EAAA,mBAAA;EAAA,gBAAA;EAAA,uBAAA;EAAA,wBAAA;EAAA,sBAAA;EAAA,uBAAA;EAAA,qBAAA;EAAA,uBAAA;EAAA,sBAAA;EAAA,mBAAA;EAAA,qBAAA;EAAA,uBAAA;EEwKF,wBAAA;EAGA,wBAAA;ADgQF;;AC7PA;EACE,kBAAA;ADgQF;;AC7PA;EACE,mBAAA;ADgQF;;AEnZA;EAYE;;;IAGE,sBAAA;EF2YF;EEnYA;IAEE,oCAAA;EFoYF;EEnXA;IACE,SAAA;IACA,uCAAA;IACA,mCAAA;IACA,uCAAA;IACA,uCAAA;IACA,wBAAA;IACA,qCAAA;IACA,mCAAA;IACA,8BAAA;IACA,wCAAA;EFqXF;EEjXA;IACE,iDAAA;IACA,SAAA;IACA,0EAAA;EFmXF;EE1WA;;;;;;;IACE,aAAA;IACA,iCCuM0B;IDpM1B,gBCuM0B;IDtM1B,gBCuM0B;IDtM1B,8BAAA;EFgXF;EE7WA;;IAGE,kCAAA;EF8WF;EE3WA;;IAGE,kCAAA;EF4WF;EEzWA;;IAGE,iCAAA;EF0WF;EEvWA;;IAGE,iCAAA;EFwWF;EErWA;;IAGE,iCAAA;EFsWF;EEnWA;;IAGE,iCAAA;EFoWF;EE5VA;IACE,aAAA;IACA,mBCwCwB;EHsT1B;EErVA;IACE,yCAAA;IAAA,iCAAA;IACA,YAAA;IACA,sCAAA;IAAA,8BAAA;EFuVF;EElVA;IACE,mBAAA;IACA,kBAAA;IACA,oBAAA;EFoVF;EE/UA;;IAEE,0BAAA;EFiVF;EE9UA;;;IAGE,aAAA;IACA,mBAAA;EFgVF;EE7UA;;;;IAIE,gBAAA;EF+UF;EE5UA;IACE,gBC0C0B;EHoS5B;EEzUA;IACE,sBAAA;IACA,qBAAA;EF2UF;EEtUA;IACE,gBAAA;EFwUF;EEvUE;IACE,eAAA;EFyUJ;EEjUA;;IAEE,mBCkB0B;EHiT5B;EE5TA;;IAEE,2CAAA;EF8TF;EEzTA;;IH7OE,2BAAA;IAAA,kCAAA;IAAA,oEAAA;IGgPA,+BAAA;IACA,2BAAA;IACA,mCAAA;EF6TF;EErTA;;IAEE,kBAAA;IACA,8CAAA;IACA,cAAA;IACA,wBAAA;EFuTF;EEpTA;IAAM,eAAA;EFuTN;EEtTA;IAAM,WAAA;EFyTN;EErTA;IACE,+CAAA;IACA,kDAAA;IAAA,0CAAA;IACA,4BC3FsC;EHkZxC;EErTE;IAGE,8DAAA;IACA,mFAAA;IAAA,2EAAA;EFqTJ;EE3SE;IAEE,cAAA;IACA,qBAAA;EF4SJ;EEtSA;;;;IAIE,gCAAA;IACA,cAAA;EFwSF;EEjSA;IACE,cAAA;IACA,aAAA;IACA,mBAAA;IACA,cAAA;IACA,mCAAA;IACA,oCAAA;EFmSF;EEhSE;IACE,kBAAA;IACA,cAAA;IACA,kBAAA;EFkSJ;EE9RA;IACE,mCAAA;IACA,2BAAA;IACA,qBAAA;EFgSF;EE7RE;IACE,cAAA;EF+RJ;EE3RA;IH1UE,4BAAA;IAAA,2BAAA;IAAA,0CAAA;IAAA,iCAAA;IAAA,2BAAA;IAAA,0CAAA;IG4UA,wDAAA;IACA,kCAAA;IACA,0BAAA;IACA,kCAAA;IE5TA,0CAAA;EJ+lBF;EEhSE;IACE,UAAA;IACA,cAAA;IACA,oBAAA;EFkSJ;EE1RA;IACE,gBAAA;EF4RF;EEvRA;;IAEE,sBAAA;EFyRF;EElRA;IACE,oBAAA;IACA,yBAAA;EFoRF;EEjRA;IAIE,qBAAA;IACA,qBAAA;IACA,iBAAA;EFgRF;EEzQA;IAEE,mBAAA;IACA,gCAAA;EF0QF;EEvQA;;;;;;IAME,qBAAA;IACA,mBAAA;IACA,eAAA;EFyQF;EElQA;IACE,qBAAA;EFoQF;EE9PA;IAEE,gBAAA;EF+PF;EEvPA;IACE,UAAA;EFyPF;EEpPA;;;;;IAKE,SAAA;IACA,oBAAA;IACA,kBAAA;IACA,oBAAA;EFsPF;EEhPA;IACE,eAAA;EFkPF;EE/OA;IAGE,iBAAA;EF+OF;EE5OE;IACE,UAAA;EF8OJ;EEvOA;IACE,wBAAA;EFyOF;EEjOA;;;;IAIE,0BAAA;EFmOF;EEhOI;;;;IACE,eAAA;EFqON;EE9NA;IACE,gBAAA;EFgOF;EEtNA;IACE,YAAA;IACA,UAAA;IACA,SAAA;IACA,SAAA;EFwNF;EEhNA;IACE,mBAAA;IACA,WAAA;IACA,UAAA;IACA,qBCtM0B;IDuM1B,iBCtM0B;IDwM1B,oBAAA;EFiNF;EE/ME;IACE,mBAAA;EFiNJ;EE1MA;;;;;;;;;;;IAWE,UAAA;EF4MF;EEzMA;;IAEE,YAAA;EF2MF;EElMA;IACE,6BAAA;IACA,oBAAA;EFoMF;EEjME;IACE,eAAA;IACA,oBAAA;EFmMJ;EE5LA;;;;IAIE,cAAA;EF8LF;EEzLA;IACE,wBAAA;EF2LF;EEtLA;IACE,UAAA;EFwLF;EElLA;IACE,aAAA;IACA,0BAAA;EFoLF;EE/KA;IACE,qBAAA;EFiLF;EE5KA;IACE,SAAA;EF8KF;EEvKA;IACE,kBAAA;IACA,eAAA;EFyKF;EElKA;IACE,wBAAA;EFoKF;EE7JA;IACE,wBAAA;EF+JF;AACF","file":"bootstrap-reboot.css","sourcesContent":["$file: \"\" !default;\n\n/*!\n * Bootstrap #{$file} v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n","// stylelint-disable hue-degree-notation, @stylistic/number-leading-zero\n\n@use \"sass:map\";\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n// Easily convert colors to oklch() with https://oklch.com/\n\n$white: #fff !default;\n$black: #000 !default;\n\n// scss-docs-start colors-list\n$blue: oklch(60% 0.24 240) !default;\n$indigo: oklch(56% 0.26 288) !default;\n$violet: oklch(56% 0.24 300) !default;\n$purple: oklch(56% 0.24 320) !default;\n$pink: oklch(60% 0.22 4) !default;\n$red: oklch(60% 0.22 20) !default;\n$orange: oklch(70% 0.22 52) !default;\n$amber: oklch(79% 0.2 78) !default;\n$yellow: oklch(88% 0.24 88) !default;\n$lime: oklch(65% 0.24 135) !default;\n$green: oklch(64% 0.22 160) !default;\n$teal: oklch(68% 0.22 190) !default;\n$cyan: oklch(69% 0.22 220) !default;\n$brown: oklch(60% 0.12 54) !default;\n$gray: oklch(60% 0.02 245) !default;\n$pewter: oklch(65% 0.01 290) !default;\n// scss-docs-end colors-list\n\n// scss-docs-start colors-map\n$colors: () !default;\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: defaults(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"violet\": $violet,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"amber\": $amber,\n \"yellow\": $yellow,\n \"lime\": $lime,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"brown\": $brown,\n \"gray\": $gray,\n \"pewter\": $pewter,\n ),\n $colors\n);\n// scss-docs-end colors-map\n\n// scss-docs-start color-mix-options\n$color-mix-space: lab !default;\n$tint-color: var(--white) !default;\n$shade-color: var(--black) !default;\n\n$color-tints: (\n \"025\": 94%,\n \"050\": 90%,\n \"100\": 80%,\n \"200\": 60%,\n \"300\": 40%,\n \"400\": 20%,\n) !default;\n\n$color-shades: (\n \"600\": 16%,\n \"700\": 32%,\n \"800\": 48%,\n \"900\": 64%,\n \"950\": 76%,\n \"975\": 88%,\n) !default;\n// scss-docs-end color-mix-options\n\n// scss-docs-start color-tokens\n$color-tokens: () !default;\n\n$-color-defaults: () !default;\n@each $color, $value in $colors {\n @each $stop, $percent in $color-tints {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$tint-color} #{$percent}, #{$value}));\n }\n $-color-defaults: map.set($-color-defaults, --#{$color}-500, #{$value});\n @each $stop, $percent in $color-shades {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$shade-color} #{$percent}, #{$value}));\n }\n}\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$color-tokens: defaults($-color-defaults, $color-tokens);\n// scss-docs-end color-tokens\n\n:root {\n @include tokens($color-tokens);\n}\n","// Mixin to output tokens as CSS custom properties\n\n// scss-docs-start mixin-tokens\n@mixin tokens($map) {\n @each $prop, $value in $map {\n #{$prop}: #{$value};\n }\n}\n// scss-docs-end mixin-tokens\n","/*!\n * Bootstrap Reboot v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.24 240deg));\n --blue-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.24 240deg));\n --blue-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.24 240deg));\n --blue-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.24 240deg));\n --blue-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.24 240deg));\n --blue-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.24 240deg));\n --blue-500: oklch(60% 0.24 240deg);\n --blue-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.24 240deg));\n --blue-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.24 240deg));\n --blue-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.24 240deg));\n --blue-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.24 240deg));\n --blue-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.24 240deg));\n --blue-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.24 240deg));\n --indigo-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.26 288deg));\n --indigo-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.26 288deg));\n --indigo-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.26 288deg));\n --indigo-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.26 288deg));\n --indigo-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.26 288deg));\n --indigo-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.26 288deg));\n --indigo-500: oklch(56% 0.26 288deg);\n --indigo-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.26 288deg));\n --indigo-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.26 288deg));\n --indigo-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.26 288deg));\n --indigo-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.26 288deg));\n --indigo-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.26 288deg));\n --indigo-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.26 288deg));\n --violet-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 300deg));\n --violet-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 300deg));\n --violet-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 300deg));\n --violet-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 300deg));\n --violet-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 300deg));\n --violet-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 300deg));\n --violet-500: oklch(56% 0.24 300deg);\n --violet-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 300deg));\n --violet-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 300deg));\n --violet-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 300deg));\n --violet-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 300deg));\n --violet-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 300deg));\n --violet-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 300deg));\n --purple-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 320deg));\n --purple-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 320deg));\n --purple-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 320deg));\n --purple-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 320deg));\n --purple-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 320deg));\n --purple-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 320deg));\n --purple-500: oklch(56% 0.24 320deg);\n --purple-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 320deg));\n --purple-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 320deg));\n --purple-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 320deg));\n --purple-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 320deg));\n --purple-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 320deg));\n --purple-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 320deg));\n --pink-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 4deg));\n --pink-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 4deg));\n --pink-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 4deg));\n --pink-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 4deg));\n --pink-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 4deg));\n --pink-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 4deg));\n --pink-500: oklch(60% 0.22 4deg);\n --pink-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 4deg));\n --pink-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 4deg));\n --pink-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 4deg));\n --pink-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 4deg));\n --pink-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 4deg));\n --pink-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 4deg));\n --red-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 20deg));\n --red-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 20deg));\n --red-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 20deg));\n --red-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 20deg));\n --red-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 20deg));\n --red-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 20deg));\n --red-500: oklch(60% 0.22 20deg);\n --red-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 20deg));\n --red-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 20deg));\n --red-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 20deg));\n --red-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 20deg));\n --red-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 20deg));\n --red-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 20deg));\n --orange-025: color-mix(in lab, var(--white) 94%, oklch(70% 0.22 52deg));\n --orange-050: color-mix(in lab, var(--white) 90%, oklch(70% 0.22 52deg));\n --orange-100: color-mix(in lab, var(--white) 80%, oklch(70% 0.22 52deg));\n --orange-200: color-mix(in lab, var(--white) 60%, oklch(70% 0.22 52deg));\n --orange-300: color-mix(in lab, var(--white) 40%, oklch(70% 0.22 52deg));\n --orange-400: color-mix(in lab, var(--white) 20%, oklch(70% 0.22 52deg));\n --orange-500: oklch(70% 0.22 52deg);\n --orange-600: color-mix(in lab, var(--black) 16%, oklch(70% 0.22 52deg));\n --orange-700: color-mix(in lab, var(--black) 32%, oklch(70% 0.22 52deg));\n --orange-800: color-mix(in lab, var(--black) 48%, oklch(70% 0.22 52deg));\n --orange-900: color-mix(in lab, var(--black) 64%, oklch(70% 0.22 52deg));\n --orange-950: color-mix(in lab, var(--black) 76%, oklch(70% 0.22 52deg));\n --orange-975: color-mix(in lab, var(--black) 88%, oklch(70% 0.22 52deg));\n --amber-025: color-mix(in lab, var(--white) 94%, oklch(79% 0.2 78deg));\n --amber-050: color-mix(in lab, var(--white) 90%, oklch(79% 0.2 78deg));\n --amber-100: color-mix(in lab, var(--white) 80%, oklch(79% 0.2 78deg));\n --amber-200: color-mix(in lab, var(--white) 60%, oklch(79% 0.2 78deg));\n --amber-300: color-mix(in lab, var(--white) 40%, oklch(79% 0.2 78deg));\n --amber-400: color-mix(in lab, var(--white) 20%, oklch(79% 0.2 78deg));\n --amber-500: oklch(79% 0.2 78deg);\n --amber-600: color-mix(in lab, var(--black) 16%, oklch(79% 0.2 78deg));\n --amber-700: color-mix(in lab, var(--black) 32%, oklch(79% 0.2 78deg));\n --amber-800: color-mix(in lab, var(--black) 48%, oklch(79% 0.2 78deg));\n --amber-900: color-mix(in lab, var(--black) 64%, oklch(79% 0.2 78deg));\n --amber-950: color-mix(in lab, var(--black) 76%, oklch(79% 0.2 78deg));\n --amber-975: color-mix(in lab, var(--black) 88%, oklch(79% 0.2 78deg));\n --yellow-025: color-mix(in lab, var(--white) 94%, oklch(88% 0.24 88deg));\n --yellow-050: color-mix(in lab, var(--white) 90%, oklch(88% 0.24 88deg));\n --yellow-100: color-mix(in lab, var(--white) 80%, oklch(88% 0.24 88deg));\n --yellow-200: color-mix(in lab, var(--white) 60%, oklch(88% 0.24 88deg));\n --yellow-300: color-mix(in lab, var(--white) 40%, oklch(88% 0.24 88deg));\n --yellow-400: color-mix(in lab, var(--white) 20%, oklch(88% 0.24 88deg));\n --yellow-500: oklch(88% 0.24 88deg);\n --yellow-600: color-mix(in lab, var(--black) 16%, oklch(88% 0.24 88deg));\n --yellow-700: color-mix(in lab, var(--black) 32%, oklch(88% 0.24 88deg));\n --yellow-800: color-mix(in lab, var(--black) 48%, oklch(88% 0.24 88deg));\n --yellow-900: color-mix(in lab, var(--black) 64%, oklch(88% 0.24 88deg));\n --yellow-950: color-mix(in lab, var(--black) 76%, oklch(88% 0.24 88deg));\n --yellow-975: color-mix(in lab, var(--black) 88%, oklch(88% 0.24 88deg));\n --lime-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.24 135deg));\n --lime-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.24 135deg));\n --lime-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.24 135deg));\n --lime-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.24 135deg));\n --lime-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.24 135deg));\n --lime-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.24 135deg));\n --lime-500: oklch(65% 0.24 135deg);\n --lime-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.24 135deg));\n --lime-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.24 135deg));\n --lime-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.24 135deg));\n --lime-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.24 135deg));\n --lime-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.24 135deg));\n --lime-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.24 135deg));\n --green-025: color-mix(in lab, var(--white) 94%, oklch(64% 0.22 160deg));\n --green-050: color-mix(in lab, var(--white) 90%, oklch(64% 0.22 160deg));\n --green-100: color-mix(in lab, var(--white) 80%, oklch(64% 0.22 160deg));\n --green-200: color-mix(in lab, var(--white) 60%, oklch(64% 0.22 160deg));\n --green-300: color-mix(in lab, var(--white) 40%, oklch(64% 0.22 160deg));\n --green-400: color-mix(in lab, var(--white) 20%, oklch(64% 0.22 160deg));\n --green-500: oklch(64% 0.22 160deg);\n --green-600: color-mix(in lab, var(--black) 16%, oklch(64% 0.22 160deg));\n --green-700: color-mix(in lab, var(--black) 32%, oklch(64% 0.22 160deg));\n --green-800: color-mix(in lab, var(--black) 48%, oklch(64% 0.22 160deg));\n --green-900: color-mix(in lab, var(--black) 64%, oklch(64% 0.22 160deg));\n --green-950: color-mix(in lab, var(--black) 76%, oklch(64% 0.22 160deg));\n --green-975: color-mix(in lab, var(--black) 88%, oklch(64% 0.22 160deg));\n --teal-025: color-mix(in lab, var(--white) 94%, oklch(68% 0.22 190deg));\n --teal-050: color-mix(in lab, var(--white) 90%, oklch(68% 0.22 190deg));\n --teal-100: color-mix(in lab, var(--white) 80%, oklch(68% 0.22 190deg));\n --teal-200: color-mix(in lab, var(--white) 60%, oklch(68% 0.22 190deg));\n --teal-300: color-mix(in lab, var(--white) 40%, oklch(68% 0.22 190deg));\n --teal-400: color-mix(in lab, var(--white) 20%, oklch(68% 0.22 190deg));\n --teal-500: oklch(68% 0.22 190deg);\n --teal-600: color-mix(in lab, var(--black) 16%, oklch(68% 0.22 190deg));\n --teal-700: color-mix(in lab, var(--black) 32%, oklch(68% 0.22 190deg));\n --teal-800: color-mix(in lab, var(--black) 48%, oklch(68% 0.22 190deg));\n --teal-900: color-mix(in lab, var(--black) 64%, oklch(68% 0.22 190deg));\n --teal-950: color-mix(in lab, var(--black) 76%, oklch(68% 0.22 190deg));\n --teal-975: color-mix(in lab, var(--black) 88%, oklch(68% 0.22 190deg));\n --cyan-025: color-mix(in lab, var(--white) 94%, oklch(69% 0.22 220deg));\n --cyan-050: color-mix(in lab, var(--white) 90%, oklch(69% 0.22 220deg));\n --cyan-100: color-mix(in lab, var(--white) 80%, oklch(69% 0.22 220deg));\n --cyan-200: color-mix(in lab, var(--white) 60%, oklch(69% 0.22 220deg));\n --cyan-300: color-mix(in lab, var(--white) 40%, oklch(69% 0.22 220deg));\n --cyan-400: color-mix(in lab, var(--white) 20%, oklch(69% 0.22 220deg));\n --cyan-500: oklch(69% 0.22 220deg);\n --cyan-600: color-mix(in lab, var(--black) 16%, oklch(69% 0.22 220deg));\n --cyan-700: color-mix(in lab, var(--black) 32%, oklch(69% 0.22 220deg));\n --cyan-800: color-mix(in lab, var(--black) 48%, oklch(69% 0.22 220deg));\n --cyan-900: color-mix(in lab, var(--black) 64%, oklch(69% 0.22 220deg));\n --cyan-950: color-mix(in lab, var(--black) 76%, oklch(69% 0.22 220deg));\n --cyan-975: color-mix(in lab, var(--black) 88%, oklch(69% 0.22 220deg));\n --brown-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.12 54deg));\n --brown-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.12 54deg));\n --brown-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.12 54deg));\n --brown-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.12 54deg));\n --brown-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.12 54deg));\n --brown-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.12 54deg));\n --brown-500: oklch(60% 0.12 54deg);\n --brown-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.12 54deg));\n --brown-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.12 54deg));\n --brown-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.12 54deg));\n --brown-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.12 54deg));\n --brown-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.12 54deg));\n --brown-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.12 54deg));\n --gray-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.02 245deg));\n --gray-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.02 245deg));\n --gray-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.02 245deg));\n --gray-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.02 245deg));\n --gray-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.02 245deg));\n --gray-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.02 245deg));\n --gray-500: oklch(60% 0.02 245deg);\n --gray-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.02 245deg));\n --gray-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.02 245deg));\n --gray-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.02 245deg));\n --gray-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.02 245deg));\n --gray-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.02 245deg));\n --gray-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.02 245deg));\n --pewter-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.01 290deg));\n --pewter-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.01 290deg));\n --pewter-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.01 290deg));\n --pewter-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.01 290deg));\n --pewter-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.01 290deg));\n --pewter-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.01 290deg));\n --pewter-500: oklch(65% 0.01 290deg);\n --pewter-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.01 290deg));\n --pewter-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.01 290deg));\n --pewter-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.01 290deg));\n --pewter-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.01 290deg));\n --pewter-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.01 290deg));\n --pewter-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.01 290deg));\n}\n\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n:root {\n --black: #000;\n --white: #fff;\n --gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent));\n --font-weight-lighter: lighter;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-bolder: bolder;\n --body-font-family: system-ui;\n --body-font-size: var(--font-size-base);\n --body-font-weight: 400;\n --body-line-height: 1.5;\n --heading-color: inherit;\n --hr-border-color: var(--border-color);\n --link-color: light-dark(var(--primary-base), var(--primary-fg));\n --link-decoration: underline;\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000);\n --font-mono: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;\n --code-font-size: 95%;\n --code-color: var(--fg-2);\n --border-width: 1px;\n --border-style: solid;\n --border-color: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-700));\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent);\n --box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n --box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n --box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);\n --box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n --spacer: 1rem;\n --focus-ring-width: 3px;\n --focus-ring-offset: 1px;\n --focus-ring-color: var(--primary-focus-ring);\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color);\n --control-checked-bg: var(--primary-base);\n --control-checked-border-color: var(--control-checked-bg);\n --control-active-bg: var(--primary-base);\n --control-active-border-color: var(--control-active-bg);\n --control-disabled-bg: var(--bg-3);\n --control-disabled-opacity: 0.65;\n --btn-input-fg: var(--fg-body);\n --btn-input-bg: var(--bg-body);\n --btn-input-min-height: 2.375rem;\n --btn-input-padding-y: 0.375rem;\n --btn-input-padding-x: 0.75rem;\n --btn-input-font-size: var(--font-size-base);\n --btn-input-line-height: var(--line-height-base);\n --btn-input-border-radius: var(--radius-5);\n --btn-input-xs-min-height: 1.5rem;\n --btn-input-xs-padding-y: 0.125rem;\n --btn-input-xs-padding-x: 0.5rem;\n --btn-input-xs-font-size: var(--font-size-xs);\n --btn-input-xs-line-height: 1.125;\n --btn-input-xs-border-radius: var(--radius-5);\n --btn-input-sm-min-height: 2rem;\n --btn-input-sm-padding-y: 0.25rem;\n --btn-input-sm-padding-x: 0.625rem;\n --btn-input-sm-font-size: var(--font-size-sm);\n --btn-input-sm-line-height: var(--line-height-sm);\n --btn-input-sm-border-radius: var(--radius-5);\n --btn-input-lg-min-height: 2.75rem;\n --btn-input-lg-padding-y: 0.5rem;\n --btn-input-lg-padding-x: 1rem;\n --btn-input-lg-font-size: var(--font-size-md);\n --btn-input-lg-line-height: var(--line-height-md);\n --btn-input-lg-border-radius: var(--radius-7);\n --font-size-xs: 0.75rem;\n --line-height-xs: 1.25;\n --font-size-sm: 0.875rem;\n --line-height-sm: 1.5;\n --font-size-md: 1rem;\n --line-height-md: 1.5;\n --font-size-lg: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n --line-height-lg: 1.5;\n --font-size-xl: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n --line-height-xl: 1.4285714286;\n --font-size-2xl: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n --line-height-2xl: 1.3333333333;\n --font-size-3xl: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n --line-height-3xl: 1.2;\n --font-size-4xl: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n --line-height-4xl: 1.1;\n --font-size-5xl: clamp(3rem, 2rem + 5vw, 4rem);\n --line-height-5xl: 1.1;\n --font-size-6xl: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n --line-height-6xl: 1;\n --primary-base: var(--blue-500);\n --primary-fg: light-dark(var(--blue-600), var(--blue-400));\n --primary-fg-emphasis: light-dark(var(--blue-800), var(--blue-200));\n --primary-bg: var(--blue-500);\n --primary-bg-subtle: light-dark(var(--blue-100), var(--blue-900));\n --primary-bg-muted: light-dark(var(--blue-200), var(--blue-800));\n --primary-border: light-dark(var(--blue-300), var(--blue-600));\n --primary-focus-ring: light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body)));\n --primary-contrast: var(--white);\n --accent-base: var(--indigo-500);\n --accent-fg: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n --accent-fg-emphasis: light-dark(var(--indigo-800), var(--indigo-300));\n --accent-bg: var(--indigo-500);\n --accent-bg-subtle: light-dark(var(--indigo-100), var(--indigo-900));\n --accent-bg-muted: light-dark(var(--indigo-200), var(--indigo-800));\n --accent-border: light-dark(var(--indigo-300), var(--indigo-600));\n --accent-focus-ring: light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body)));\n --accent-contrast: var(--white);\n --success-base: var(--green-500);\n --success-fg: light-dark(var(--green-600), var(--green-400));\n --success-fg-emphasis: light-dark(var(--green-800), var(--green-300));\n --success-bg: var(--green-500);\n --success-bg-subtle: light-dark(var(--green-100), var(--green-900));\n --success-bg-muted: light-dark(var(--green-200), var(--green-800));\n --success-border: light-dark(var(--green-300), var(--green-600));\n --success-focus-ring: light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body)));\n --success-contrast: var(--white);\n --danger-base: var(--red-500);\n --danger-fg: light-dark(var(--red-600), var(--red-400));\n --danger-fg-emphasis: light-dark(var(--red-800), var(--red-300));\n --danger-bg: var(--red-500);\n --danger-bg-subtle: light-dark(var(--red-100), var(--red-900));\n --danger-bg-muted: light-dark(var(--red-200), var(--red-800));\n --danger-border: light-dark(var(--red-300), var(--red-600));\n --danger-focus-ring: light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body)));\n --danger-contrast: var(--white);\n --warning-base: var(--yellow-500);\n --warning-fg: light-dark(var(--yellow-700), var(--yellow-400));\n --warning-fg-emphasis: light-dark(var(--yellow-800), var(--yellow-300));\n --warning-bg: var(--yellow-500);\n --warning-bg-subtle: light-dark(var(--yellow-100), var(--yellow-900));\n --warning-bg-muted: light-dark(var(--yellow-200), var(--yellow-800));\n --warning-border: light-dark(var(--yellow-300), var(--yellow-600));\n --warning-focus-ring: light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body)));\n --warning-contrast: var(--gray-900);\n --info-base: var(--cyan-500);\n --info-fg: light-dark(var(--cyan-600), var(--cyan-400));\n --info-fg-emphasis: light-dark(var(--cyan-800), var(--cyan-300));\n --info-bg: var(--cyan-500);\n --info-bg-subtle: light-dark(var(--cyan-100), var(--cyan-900));\n --info-bg-muted: light-dark(var(--cyan-200), var(--cyan-800));\n --info-border: light-dark(var(--cyan-300), var(--cyan-600));\n --info-focus-ring: light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body)));\n --info-contrast: var(--gray-900);\n --inverse-base: var(--gray-900);\n --inverse-fg: light-dark(var(--gray-900), var(--gray-200));\n --inverse-fg-emphasis: light-dark(var(--gray-975), var(--white));\n --inverse-bg: light-dark(var(--gray-900), var(--gray-025));\n --inverse-bg-subtle: light-dark(var(--gray-100), var(--gray-900));\n --inverse-bg-muted: light-dark(var(--gray-200), var(--gray-300));\n --inverse-border: light-dark(var(--gray-400), var(--gray-100));\n --inverse-focus-ring: color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body));\n --inverse-contrast: light-dark(var(--white), var(--gray-900));\n --secondary-base: var(--gray-200);\n --secondary-fg: light-dark(var(--gray-600), var(--gray-400));\n --secondary-fg-emphasis: light-dark(var(--gray-800), var(--gray-200));\n --secondary-bg: light-dark(var(--gray-100), var(--gray-600));\n --secondary-bg-subtle: light-dark(var(--gray-050), var(--gray-800));\n --secondary-bg-muted: light-dark(var(--gray-100), var(--gray-700));\n --secondary-border: light-dark(var(--gray-300), var(--gray-600));\n --secondary-focus-ring: color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body));\n --secondary-contrast: light-dark(var(--gray-900), var(--white));\n --bg-body: light-dark(var(--white), var(--gray-975));\n --bg-1: light-dark(var(--gray-025), var(--gray-950));\n --bg-2: light-dark(var(--gray-050), var(--gray-900));\n --bg-3: light-dark(var(--gray-100), var(--gray-800));\n --bg-4: light-dark(var(--gray-200), var(--gray-700));\n --bg-fg: var(--fg-body);\n --bg-white: var(--white);\n --bg-black: var(--black);\n --bg-transparent: transparent;\n --bg-inherit: inherit;\n --fg-body: light-dark(var(--gray-900), var(--gray-050));\n --fg-1: light-dark(var(--gray-800), var(--gray-200));\n --fg-2: light-dark(var(--gray-700), var(--gray-300));\n --fg-3: light-dark(var(--gray-600), var(--gray-500));\n --fg-4: light-dark(var(--gray-500), var(--gray-600));\n --fg-bg: var(--bg-body);\n --fg-white: var(--white);\n --fg-black: var(--black);\n --fg-inherit: inherit;\n --border-bg: var(--bg-body);\n --border-body: light-dark(var(--gray-300), var(--gray-800));\n --border-muted: light-dark(var(--gray-200), var(--gray-800));\n --border-subtle: light-dark(var(--gray-100), var(--gray-900));\n --border-emphasized: light-dark(var(--gray-400), var(--gray-600));\n --border-white: var(--white);\n --border-black: var(--black);\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 1024px;\n --breakpoint-xl: 1280px;\n --breakpoint-2xl: 1536px;\n --spacer-0: 0;\n --spacer-1: 0.25rem;\n --spacer-2: 0.5rem;\n --spacer-3: 0.75rem;\n --spacer-4: 1rem;\n --spacer-5: 1.25rem;\n --spacer-6: 1.5rem;\n --spacer-7: 2rem;\n --spacer-8: 2.5rem;\n --spacer-9: 3rem;\n --radius-0: 0;\n --radius-1: 0.125rem;\n --radius-2: 0.1875rem;\n --radius-3: 0.25rem;\n --radius-4: 0.375rem;\n --radius-5: 0.5rem;\n --radius-6: 0.625rem;\n --radius-7: 0.75rem;\n --radius-8: 1rem;\n --radius-9: 1.5rem;\n --radius-pill: 50rem;\n color-scheme: light dark;\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=dark] {\n color-scheme: dark;\n}\n\n[data-bs-theme=light] {\n color-scheme: light;\n}\n\n@layer reboot {\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n :root {\n accent-color: var(--primary-base);\n }\n body {\n margin: 0;\n font-family: var(--body-font-family);\n font-size: var(--body-font-size);\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n color: var(--fg-body);\n text-align: var(--body-text-align);\n background-color: var(--bg-body);\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n margin: var(--hr-margin-y, var(--spacer)) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n h6,\n .h6, h5,\n .h5, h4,\n .h4, h3,\n .h3, h2,\n .h2, h1,\n .h1 {\n margin-top: 0;\n margin-bottom: var(--spacer-2);\n font-weight: 500;\n line-height: 1.2;\n color: var(--heading-color);\n }\n h1,\n .h1 {\n font-size: var(--font-size-3xl);\n }\n h2,\n .h2 {\n font-size: var(--font-size-2xl);\n }\n h3,\n .h3 {\n font-size: var(--font-size-xl);\n }\n h4,\n .h4 {\n font-size: var(--font-size-lg);\n }\n h5,\n .h5 {\n font-size: var(--font-size-md);\n }\n h6,\n .h6 {\n font-size: var(--font-size-sm);\n }\n p {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n abbr[title] {\n text-decoration: underline dotted;\n cursor: help;\n text-decoration-skip-ink: none;\n }\n address {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n }\n ol,\n ul {\n padding-inline-start: 2rem;\n }\n ol,\n ul,\n dl {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n ol ol,\n ul ul,\n ol ul,\n ul ol {\n margin-bottom: 0;\n }\n dt {\n font-weight: 700;\n }\n dd {\n margin-inline-start: 0;\n margin-bottom: 0.5rem;\n }\n blockquote {\n margin: 0 0 1rem;\n }\n blockquote > * {\n margin-block: 0;\n }\n b,\n strong {\n font-weight: bolder;\n }\n small,\n .small {\n font-size: var(--small-font-size, 87.5%);\n }\n mark,\n .mark {\n --mark-padding: 0.1875em;\n --mark-color: var(--fg-body);\n --mark-bg: light-dark(var(--yellow-100), var(--yellow-900));\n padding: var(--mark-padding);\n color: var(--mark-color);\n background-color: var(--mark-bg);\n }\n sub,\n sup {\n position: relative;\n font-size: var(--sub-sup-font-size, 0.75em);\n line-height: 0;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n a {\n color: var(--theme-fg, var(--link-color));\n text-decoration: var(--link-decoration);\n text-underline-offset: 0.2em;\n }\n a:hover {\n color: var(--theme-fg-emphasis, var(--link-hover-color));\n text-decoration: var(--link-hover-decoration, var(--link-decoration));\n }\n a:not([href], [class]), a:not([href], [class]):hover {\n color: inherit;\n text-decoration: none;\n }\n pre,\n code,\n kbd,\n samp {\n font-family: var(--font-mono);\n font-size: 1em;\n }\n pre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: var(--code-font-size);\n color: var(--code-color, inherit);\n }\n pre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n code {\n font-size: var(--code-font-size);\n color: var(--code-color);\n word-wrap: break-word;\n }\n a > code {\n color: inherit;\n }\n kbd {\n --kbd-padding-y: 0.125rem;\n --kbd-padding-x: 0.25rem;\n --kbd-font-size: var(--font-size-xs);\n --kbd-color: var(--bg-body);\n --kbd-bg: var(--fg-2);\n --kbd-border-radius: var(--radius-5);\n padding: var(--kbd-padding-y) var(--kbd-padding-x);\n font-size: var(--kbd-font-size);\n color: var(--kbd-color);\n background-color: var(--kbd-bg);\n border-radius: var(--kbd-border-radius);\n }\n kbd kbd {\n padding: 0;\n font-size: 1em;\n font-weight: inherit;\n }\n figure {\n margin: 0 0 1rem;\n }\n img,\n svg {\n vertical-align: middle;\n }\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n caption {\n padding-block: 0.5rem;\n color: var(--fg-3);\n text-align: start;\n }\n th {\n text-align: inherit;\n text-align: -webkit-match-parent;\n }\n thead,\n tbody,\n tfoot,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n label {\n display: inline-block;\n }\n button {\n border-radius: 0;\n }\n button:focus:not(:focus-visible) {\n outline: 0;\n }\n input,\n button,\n select,\n optgroup,\n textarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n [role=button] {\n cursor: pointer;\n }\n select {\n word-wrap: normal;\n }\n select:disabled {\n opacity: 1;\n }\n [list]:not([type=date], [type=datetime-local], [type=month], [type=week], [type=time])::-webkit-calendar-picker-indicator {\n display: none !important;\n }\n button,\n [type=button],\n [type=reset],\n [type=submit] {\n -webkit-appearance: button;\n }\n button:not(:disabled),\n [type=button]:not(:disabled),\n [type=reset]:not(:disabled),\n [type=submit]:not(:disabled) {\n cursor: pointer;\n }\n textarea {\n resize: vertical;\n }\n fieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n }\n legend {\n float: inline-start;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: 1.5rem;\n line-height: inherit;\n }\n legend + * {\n clear: inline-start;\n }\n ::-webkit-datetime-edit-fields-wrapper,\n ::-webkit-datetime-edit-text,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-ampm-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-week-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-year-field {\n padding: 0;\n }\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n [type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n }\n [type=search]::-webkit-search-cancel-button {\n cursor: pointer;\n filter: grayscale(1);\n }\n [type=tel],\n [type=url],\n [type=email],\n [type=number] {\n direction: ltr;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n ::file-selector-button {\n font: inherit;\n -webkit-appearance: button;\n }\n output {\n display: inline-block;\n }\n iframe {\n border: 0;\n }\n summary {\n display: list-item;\n cursor: pointer;\n }\n progress {\n vertical-align: baseline;\n }\n [hidden] {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */\n","@use \"sass:map\";\n@use \"colors\" as *;\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"theme\" as *;\n@use \"mixins/tokens\" as *;\n// mdo-do: do we need theme?\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n\n$root-tokens: () !default;\n\n// scss-docs-start root-tokens\n// stylelint-disable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: defaults(\n (\n --black: #{$black},\n --white: #{$white},\n\n --gradient: #{$gradient},\n\n // scss-docs-start root-font-weight-variables\n --font-weight-lighter: lighter,\n --font-weight-light: 300,\n --font-weight-normal: 400,\n --font-weight-medium: 500,\n --font-weight-semibold: 600,\n --font-weight-bold: 700,\n --font-weight-bolder: bolder,\n // scss-docs-end root-font-weight-variables\n\n // scss-docs-start root-body-variables\n --body-font-family: system-ui,\n --body-font-size: var(--font-size-base),\n --body-font-weight: #{$font-weight-base},\n --body-line-height: #{$line-height-base},\n\n --heading-color: #{$headings-color},\n\n --hr-border-color: var(--border-color),\n\n --link-color: light-dark(var(--primary-base), var(--primary-fg)),\n --link-decoration: #{$link-decoration},\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000),\n\n --font-mono: \"SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace\",\n --code-font-size: 95%,\n --code-color: var(--fg-2),\n\n // scss-docs-start root-border-var\n --border-width: #{$border-width},\n --border-style: #{$border-style},\n --border-color: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-700)),\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent),\n // scss-docs-end root-border-var\n\n // scss-docs-start root-box-shadow-variables\n --box-shadow: 0 .5rem 1rem rgb(0 0 0 / 15%),\n --box-shadow-sm: 0 .125rem .25rem rgb(0 0 0 / 7.5%),\n --box-shadow-lg: 0 1rem 3rem rgb(0 0 0 / 17.5%),\n --box-shadow-inset: inset 0 1px 2px rgb(0 0 0 / 7.5%),\n // scss-docs-end root-box-shadow-variables\n\n --spacer: 1rem,\n\n // scss-docs-start root-focus-variables\n --focus-ring-width: 3px,\n --focus-ring-offset: 1px,\n --focus-ring-color: var(--primary-focus-ring),\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color),\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-variables\n --control-checked-bg: var(--primary-base),\n --control-checked-border-color: var(--control-checked-bg),\n --control-active-bg: var(--primary-base),\n --control-active-border-color: var(--control-active-bg),\n --control-disabled-bg: var(--bg-3),\n --control-disabled-opacity: .65,\n\n --btn-input-fg: var(--fg-body),\n --btn-input-bg: var(--bg-body),\n\n --btn-input-min-height: 2.375rem,\n --btn-input-padding-y: .375rem,\n --btn-input-padding-x: .75rem,\n --btn-input-font-size: var(--font-size-base),\n --btn-input-line-height: var(--line-height-base),\n --btn-input-border-radius: var(--radius-5),\n\n --btn-input-xs-min-height: 1.5rem,\n --btn-input-xs-padding-y: .125rem,\n --btn-input-xs-padding-x: .5rem,\n --btn-input-xs-font-size: var(--font-size-xs),\n --btn-input-xs-line-height: 1.125,\n --btn-input-xs-border-radius: var(--radius-5),\n\n --btn-input-sm-min-height: 2rem,\n --btn-input-sm-padding-y: .25rem,\n --btn-input-sm-padding-x: .625rem,\n --btn-input-sm-font-size: var(--font-size-sm),\n --btn-input-sm-line-height: var(--line-height-sm),\n --btn-input-sm-border-radius: var(--radius-5),\n\n --btn-input-lg-min-height: 2.75rem,\n --btn-input-lg-padding-y: .5rem,\n --btn-input-lg-padding-x: 1rem,\n --btn-input-lg-font-size: var(--font-size-md),\n --btn-input-lg-line-height: var(--line-height-md),\n --btn-input-lg-border-radius: var(--radius-7),\n // scss-docs-end root-form-variables\n ),\n $root-tokens\n);\n// stylelint-enable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// scss-docs-end root-tokens\n\n// scss-docs-start root-font-size-loop\n// Generate font-size and line-height tokens\n@each $name, $props in $font-sizes {\n $root-tokens: map.set($root-tokens, --font-size-#{$name}, map.get($props, \"font-size\"));\n $root-tokens: map.set($root-tokens, --line-height-#{$name}, map.get($props, \"line-height\"));\n}\n// scss-docs-end root-font-size-loop\n\n// scss-docs-start root-theme-tokens\n// Generate semantic theme colors\n@each $color-name, $color-map in $theme-colors {\n @each $key, $value in $color-map {\n $root-tokens: map.set($root-tokens, --#{$color-name}-#{$key}, $value);\n }\n}\n\n// Generate background tokens\n@each $key, $value in $theme-bgs {\n $root-tokens: map.set($root-tokens, --bg-#{$key}, $value);\n}\n\n// Generate foreground tokens\n@each $key, $value in $theme-fgs {\n $root-tokens: map.set($root-tokens, --fg-#{$key}, $value);\n}\n\n// Generate border tokens\n@each $key, $value in $theme-borders {\n $root-tokens: map.set($root-tokens, --border-#{$key}, $value);\n}\n// scss-docs-end root-theme-tokens\n\n// Generate breakpoint tokens\n@each $name, $value in $breakpoints {\n $root-tokens: map.set($root-tokens, --breakpoint-#{$name}, $value);\n}\n\n// Generate spacer tokens\n// scss-docs-start root-spacer-loop\n@each $key, $value in $spacers {\n $root-tokens: map.set($root-tokens, --spacer-#{$key}, $value);\n}\n// scss-docs-end root-spacer-loop\n\n// Generate radius tokens\n// scss-docs-start root-radius-loop\n@each $key, $value in $radii {\n $root-tokens: map.set($root-tokens, --radius-#{$key}, $value);\n}\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: map.set($root-tokens, --radius-pill, 50rem);\n// scss-docs-end root-radius-loop\n\n:root {\n @include tokens($root-tokens);\n\n color-scheme: light dark;\n // Always reserve the viewport scrollbar gutter so layout doesn't shift\n // when overflow: hidden is applied (e.g. when a dialog opens on Windows).\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=\"dark\"] {\n color-scheme: dark;\n}\n\n[data-bs-theme=\"light\"] {\n color-scheme: light;\n}\n","@use \"../config\" as *;\n@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n$reboot-kbd-tokens: () !default;\n$reboot-mark-tokens: () !default;\n\n// scss-docs-start reboot-kbd-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$reboot-kbd-tokens: defaults(\n (\n --kbd-padding-y: .125rem,\n --kbd-padding-x: .25rem,\n --kbd-font-size: var(--font-size-xs),\n --kbd-color: var(--bg-body),\n --kbd-bg: var(--fg-2),\n --kbd-border-radius: var(--radius-5),\n ),\n $reboot-kbd-tokens\n);\n// scss-docs-end reboot-kbd-tokens\n\n// scss-docs-start reboot-mark-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$reboot-mark-tokens: defaults(\n (\n --mark-padding: .1875em,\n --mark-color: var(--fg-body),\n --mark-bg: light-dark(var(--yellow-100), var(--yellow-900)),\n ),\n $reboot-mark-tokens\n);\n// scss-docs-end reboot-mark-tokens\n\n@layer reboot {\n // Reboot\n //\n // Normalization of HTML elements, manually forked from Normalize.css to remove\n // styles targeting irrelevant browsers while applying new styles.\n //\n // Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n // Document\n //\n // Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n // Root\n //\n // Ability to the value of the root font sizes, affecting the value of `rem`.\n // null by default, thus nothing is generated.\n\n :root {\n // Assume browser default font-size of 16px, or a user's preference\n accent-color: var(--primary-base);\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n }\n\n // Body\n //\n // 1. Remove the margin in all browsers.\n // 2. As a best practice, apply a default `background-color`.\n // 3. Prevent adjustments of font size after orientation changes in iOS.\n // 4. Change the default tap highlight to be completely transparent in iOS.\n\n // scss-docs-start reboot-body-rules\n body {\n margin: 0; // 1\n font-family: var(--body-font-family);\n font-size: var(--body-font-size);\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n color: var(--fg-body);\n text-align: var(--body-text-align);\n background-color: var(--bg-body); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: transparent; // 4\n }\n // scss-docs-end reboot-body-rules\n\n hr {\n margin: var(--hr-margin-y, var(--spacer)) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n\n // Typography\n //\n // 1. Remove top margins from headings\n // By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n // margin for easier control within type scales as it avoids margin collapsing.\n\n %heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: var(--heading-color);\n }\n\n h1,\n .h1 {\n @extend %heading;\n font-size: var(--font-size-3xl);\n }\n\n h2,\n .h2 {\n @extend %heading;\n font-size: var(--font-size-2xl);\n }\n\n h3,\n .h3 {\n @extend %heading;\n font-size: var(--font-size-xl);\n }\n\n h4,\n .h4 {\n @extend %heading;\n font-size: var(--font-size-lg);\n }\n\n h5,\n .h5 {\n @extend %heading;\n font-size: var(--font-size-md);\n }\n\n h6,\n .h6 {\n @extend %heading;\n font-size: var(--font-size-sm);\n }\n\n // Reset margins on paragraphs\n //\n // Similarly, the top margin on `<p>`s get reset. However, we also reset the\n // bottom margin to use `rem` units instead of `em`.\n\n p {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n }\n\n // Abbreviations\n //\n // 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n // 2. Add explicit cursor to indicate changed behavior.\n // 3. Prevent the text-decoration to be skipped.\n\n abbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n }\n\n // Address\n\n address {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n }\n\n // Lists\n\n ol,\n ul {\n padding-inline-start: 2rem;\n }\n\n ol,\n ul,\n dl {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n\n ol ol,\n ul ul,\n ol ul,\n ul ol {\n margin-bottom: 0;\n }\n\n dt {\n font-weight: $dt-font-weight;\n }\n\n // 1. Undo browser default\n\n dd {\n margin-inline-start: 0; // 1\n margin-bottom: .5rem;\n }\n\n // Blockquote\n\n blockquote {\n margin: 0 0 1rem;\n > * {\n margin-block: 0;\n }\n }\n\n // Strong\n //\n // Add the correct font weight in Chrome, Edge, and Safari\n\n b,\n strong {\n font-weight: $font-weight-bolder;\n }\n\n // Small\n //\n // Add the correct font size in all browsers\n\n small,\n .small {\n font-size: var(--small-font-size, 87.5%);\n }\n\n // Mark\n\n mark,\n .mark {\n @include tokens($reboot-mark-tokens);\n padding: var(--mark-padding);\n color: var(--mark-color);\n background-color: var(--mark-bg);\n }\n\n // Sub and Sup\n //\n // Prevent `sub` and `sup` elements from affecting the line height in\n // all browsers.\n\n sub,\n sup {\n position: relative;\n font-size: var(--sub-sup-font-size, .75em);\n line-height: 0;\n vertical-align: baseline;\n }\n\n sub { bottom: -.25em; }\n sup { top: -.5em; }\n\n // Links\n\n a {\n color: var(--theme-fg, var(--link-color));\n text-decoration: var(--link-decoration);\n text-underline-offset: $link-underline-offset;\n\n &:hover {\n // --link-color: var(--link-hover-color);\n // --link-decoration: var(--link-hover-decoration, var(--link-decoration));\n color: var(--theme-fg-emphasis, var(--link-hover-color));\n text-decoration: var(--link-hover-decoration, var(--link-decoration));\n }\n }\n\n // And undo these styles for placeholder links/named anchors (without href).\n // It would be more straightforward to just use a[href] in previous block, but that\n // causes specificity issues in many other styles that are too complex to fix.\n // See https://github.com/twbs/bootstrap/issues/19402\n\n a:not([href], [class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n }\n\n // Code\n\n pre,\n code,\n kbd,\n samp {\n font-family: var(--font-mono);\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n }\n\n // 1. Remove browser default top margin\n // 2. Reset browser default of `1em` to use `rem`s\n // 3. Don't allow content to break outside\n\n pre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n font-size: var(--code-font-size);\n color: var(--code-color, inherit);\n\n // Account for some code outputs that place code tags in pre tags\n code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n }\n\n code {\n font-size: var(--code-font-size);\n color: var(--code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n }\n\n kbd {\n @include tokens($reboot-kbd-tokens);\n padding: var(--kbd-padding-y) var(--kbd-padding-x);\n font-size: var(--kbd-font-size);\n color: var(--kbd-color);\n background-color: var(--kbd-bg);\n @include border-radius(var(--kbd-border-radius));\n\n kbd {\n padding: 0;\n font-size: 1em;\n font-weight: inherit; // mdo-do: check if this is needed\n }\n }\n\n // Figures\n //\n // Apply a consistent margin strategy (matches our type styles).\n\n figure {\n margin: 0 0 1rem;\n }\n\n // Images and content\n\n img,\n svg {\n vertical-align: middle;\n }\n\n // Tables\n //\n // Prevent double borders\n\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n\n caption {\n // padding-top: $table-cell-padding-y;\n // padding-bottom: $table-cell-padding-y;\n // color: $table-caption-color;\n padding-block: .5rem;\n color: var(--fg-3);\n text-align: start;\n }\n\n // 1. Removes font-weight bold by inheriting\n // 2. Matches default `<td>` alignment by inheriting `text-align`.\n // 3. Fix alignment for Safari\n\n th {\n // font-weight: $table-th-font-weight; // 1 // mdo-do: it's null by default. maybe we remove?\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n }\n\n thead,\n tbody,\n tfoot,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n\n // Forms\n //\n // 1. Allow labels to use `margin` for spacing.\n\n label {\n display: inline-block; // 1\n }\n\n // Remove the default `border-radius` that macOS Chrome adds.\n // See https://github.com/twbs/bootstrap/issues/24093\n\n button {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n }\n\n // Explicitly remove focus outline in Chromium when it shouldn't be\n // visible (e.g. as result of mouse click or touch tap). It already\n // should be doing this automatically, but seems to currently be\n // confused and applies its very visible two-tone outline anyway.\n\n button:focus:not(:focus-visible) {\n outline: 0;\n }\n\n // 1. Remove the margin in Firefox and Safari\n\n input,\n button,\n select,\n optgroup,\n textarea {\n margin: 0; // 1\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n // Set the cursor for non-`<button>` buttons\n //\n // Details at https://github.com/twbs/bootstrap/pull/30562\n [role=\"button\"] {\n cursor: pointer;\n }\n\n select {\n // Remove the inheritance of word-wrap in Safari.\n // See https://github.com/twbs/bootstrap/issues/24990\n word-wrap: normal;\n\n // Undo the opacity change from Chrome\n &:disabled {\n opacity: 1;\n }\n }\n\n // Remove the dropdown arrow only from text type inputs built with datalists in Chrome.\n // See https://stackoverflow.com/a/54997118\n\n [list]:not([type=\"date\"], [type=\"datetime-local\"], [type=\"month\"], [type=\"week\"], [type=\"time\"])::-webkit-calendar-picker-indicator {\n display: none !important;\n }\n\n // 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n // controls in Android 4.\n // 2. Correct the inability to style clickable types in iOS and Safari.\n // 3. Opinionated: add \"hand\" cursor to non-disabled button elements.\n\n button,\n [type=\"button\"], // 1\n [type=\"reset\"],\n [type=\"submit\"] {\n -webkit-appearance: button; // 2\n\n @if $enable-button-pointers {\n &:not(:disabled) {\n cursor: pointer; // 3\n }\n }\n }\n\n // 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.\n\n textarea {\n resize: vertical; // 1\n }\n\n // 1. Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n // 2. Reset the default outline behavior of fieldsets so they don't affect page layout.\n\n fieldset {\n min-width: 0; // 1\n padding: 0; // 2\n margin: 0; // 2\n border: 0; // 2\n }\n\n // 1. By using `float: inline-start`, the legend will behave like a block element.\n // This way the border of a fieldset wraps around the legend if present.\n // 2. Fix wrapping bug.\n // See https://github.com/twbs/bootstrap/issues/29712\n\n legend {\n float: inline-start; // 1\n width: 100%;\n padding: 0;\n margin-bottom: $legend-margin-bottom;\n font-size: $legend-font-size;\n font-weight: $legend-font-weight;\n line-height: inherit;\n\n + * {\n clear: inline-start; // 2\n }\n }\n\n // Fix height of inputs with a type of datetime-local, date, month, week, or time\n // See https://github.com/twbs/bootstrap/issues/18842\n\n ::-webkit-datetime-edit-fields-wrapper,\n ::-webkit-datetime-edit-text,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-ampm-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-week-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-year-field {\n padding: 0;\n }\n\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n\n // 1. This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n // 2. Correct the outline style in Safari.\n\n [type=\"search\"] {\n -webkit-appearance: textfield; // 1\n outline-offset: -2px; // 2\n\n // 3. Better affordance and consistent appearance for search cancel button\n &::-webkit-search-cancel-button {\n cursor: pointer;\n filter: grayscale(1);\n }\n }\n\n // A few input types should stay LTR regardless of document direction\n // See https://rtlstyling.com/posts/rtl-styling#form-inputs\n\n [type=\"tel\"],\n [type=\"url\"],\n [type=\"email\"],\n [type=\"number\"] {\n direction: ltr;\n }\n\n // Remove the inner padding in Chrome and Safari on macOS.\n\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n // Remove padding around color pickers in webkit browsers\n\n ::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n\n // 1. Inherit font family and line height for file input buttons\n // 2. Correct the inability to style clickable types in iOS and Safari.\n\n ::file-selector-button {\n font: inherit; // 1\n -webkit-appearance: button; // 2\n }\n\n // Correct element displays\n\n output {\n display: inline-block;\n }\n\n // Remove border from iframe\n\n iframe {\n border: 0;\n }\n\n // Summary\n //\n // 1. Add the correct display in all browsers\n\n summary {\n display: list-item; // 1\n cursor: pointer;\n }\n\n // Progress\n //\n // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n progress {\n vertical-align: baseline;\n }\n\n // Hidden attribute\n //\n // Always hide an element with the `hidden` HTML attribute.\n\n [hidden] {\n display: none !important;\n }\n}\n","@use \"sass:map\";\n@use \"sass:meta\";\n\n// Configuration\n//\n// Variables and settings not related to theme, components, and more go here. It does include layout.\n\n// Merge overrides on top of defaults, stripping null entries.\n// Null values let users remove map keys via @use ... with().\n// Accepts a list as $defaults (converted to a map with `true` values).\n@function defaults($defaults, $overrides) {\n @if meta.type-of($defaults) == \"list\" {\n $map: ();\n @each $key in $defaults {\n $map: map.merge($map, ($key: true));\n }\n $defaults: $map;\n }\n $merged: map.merge($defaults, $overrides);\n @each $key, $value in $merged {\n @if $value == null {\n $merged: map.remove($merged, $key);\n }\n }\n @return $merged;\n}\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: true !default;\n$enable-gradients: true !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: false !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: true !default;\n$enable-button-pointers: true !default;\n// $enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n\n$enable-dark-mode: true !default;\n\n$color-mode-type: \"media-query\" !default;\n$color-contrast-dark: #000 !default;\n$color-contrast-light: #fff !default;\n$min-contrast-ratio: 4.5 !default;\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer * .75,\n 4: $spacer,\n 5: $spacer * 1.25,\n 6: $spacer * 1.5,\n 7: $spacer * 2,\n 8: $spacer * 2.5,\n 9: $spacer * 3,\n) !default;\n\n$negative-spacers: (\n \"-1\": $spacer * -.25,\n \"-2\": $spacer * -.5,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n$sizes: (\n 1: $spacer,\n 2: $spacer * 2,\n 3: $spacer * 3,\n 4: $spacer * 4,\n 5: $spacer * 5,\n 6: $spacer * 6,\n 7: $spacer * 7,\n 8: $spacer * 8,\n 9: $spacer * 9,\n 10: $spacer * 10,\n 11: $spacer * 11,\n 12: $spacer * 12,\n) !default;\n\n$radius: .5rem !default;\n$radii: (\n 0: 0,\n 1: $radius * .25,\n 2: $radius * .375,\n 3: $radius * .5,\n 4: $radius * .75,\n 5: $radius,\n 6: $radius * 1.25,\n 7: $radius * 1.5,\n 8: $radius * 2,\n 9: $radius * 3,\n) !default;\n\n// Breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start breakpoints\n$breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 1024px,\n xl: 1280px,\n 2xl: 1536px\n) !default;\n// scss-docs-end breakpoints\n\n// @include _assert-ascending($breakpoints, \"$breakpoints\");\n// @include _assert-starts-at-zero($breakpoints, \"$breakpoints\");\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-x: 1.5rem !default;\n$grid-gutter-y: 0 !default;\n$grid-row-columns: 6 !default;\n\n$gutters: $spacers !default;\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1200px,\n 2xl: 1440px\n) !default;\n// scss-docs-end container-max-widths\n\n$container-padding-x: $grid-gutter-x !default;\n\n$utilities: () !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent)) !default;\n// scss-docs-end variable-gradient\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Links\n//\n// Style anchor elements.\n\n$link-decoration: underline !default;\n$link-underline-offset: .2em !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: color-mix(in oklch, var(--gray-100), var(--gray-200)) !default;\n// scss-docs-end border-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"auto\": auto,\n \"1x1\": #{\"1 / 1\"},\n \"4x3\": #{\"4 / 3\"},\n \"16x9\": #{\"16 / 9\"},\n \"21x9\": #{\"21 / 9\"}\n) !default;\n// scss-docs-end aspect-ratios\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$font-sizes: defaults(\n (\n \"xs\": (\n \"font-size\": .75rem,\n \"line-height\": 1.25\n ),\n \"sm\": (\n \"font-size\": .875rem,\n \"line-height\": 1.5\n ),\n \"md\": (\n \"font-size\": 1rem,\n \"line-height\": 1.5\n ),\n \"lg\": (\n \"font-size\": clamp(1.25rem, 1rem + .625vw, 1.5rem),\n \"line-height\": 1.5\n ),\n \"xl\": (\n \"font-size\": clamp(1.5rem, 1.1rem + .75vw, 1.75rem),\n \"line-height\": calc(2.5 / 1.75)\n ),\n \"2xl\": (\n \"font-size\": clamp(1.75rem, 1.3rem + 1vw, 2rem),\n \"line-height\": calc(3 / 2.25)\n ),\n \"3xl\": (\n \"font-size\": clamp(2rem, 1.5rem + 1.875vw, 2.5rem),\n \"line-height\": 1.2\n ),\n \"4xl\": (\n \"font-size\": clamp(2.25rem, 1.75rem + 2.5vw, 3rem),\n \"line-height\": 1.1\n ),\n \"5xl\": (\n \"font-size\": clamp(3rem, 2rem + 5vw, 4rem),\n \"line-height\": 1.1\n ),\n \"6xl\": (\n \"font-size\": clamp(3.75rem, 2.5rem + 6.25vw, 5rem),\n \"line-height\": 1\n ),\n ),\n $font-sizes\n);\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: var(--spacer-2) !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start type-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n// scss-docs-end type-variables\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-menu: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n// $zindex-drawer-backdrop: 1040 !default;\n$zindex-drawer: 1045 !default;\n$zindex-dialog: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n","@use \"sass:list\";\n@use \"sass:math\";\n@use \"sass:meta\";\n@use \"../config\" as *;\n\n// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n $return: ();\n @each $value in $radius {\n @if meta.type-of($value) == number {\n $return: list.append($return, math.max($value, 0));\n } @else {\n $return: list.append($return, $value);\n }\n }\n @return $return;\n}\n\n// scss-docs-start border-radius-mixins\n@mixin border-radius($radius: var(--radius-5), $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: valid-radius($radius);\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n border-start-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-end-radius: valid-radius($radius);\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-start-radius: valid-radius($radius);\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n border-end-start-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-start-radius: valid-radius($radius);\n }\n}\n// scss-docs-end border-radius-mixins\n"]}
\ No newline at end of file
+{"version":3,"sources":["../../scss/_banner.scss","../../scss/_colors.scss","../../scss/mixins/_tokens.scss","bootstrap-reboot.css","../../scss/_root.scss","../../scss/content/_reboot.scss","../../scss/_config.scss","../../scss/mixins/_border-radius.scss"],"names":[],"mappings":"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","file":"bootstrap-reboot.css","sourcesContent":["$file: \"\" !default;\n\n/*!\n * Bootstrap #{$file} v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n","// stylelint-disable hue-degree-notation, @stylistic/number-leading-zero\n\n@use \"sass:map\";\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n// Easily convert colors to oklch() with https://oklch.com/\n\n$white: #fff !default;\n$black: #000 !default;\n\n// scss-docs-start colors-list\n$blue: oklch(60% 0.24 240) !default;\n$indigo: oklch(56% 0.26 288) !default;\n$violet: oklch(56% 0.24 300) !default;\n$purple: oklch(56% 0.24 320) !default;\n$pink: oklch(60% 0.22 4) !default;\n$red: oklch(60% 0.22 20) !default;\n$orange: oklch(70% 0.22 52) !default;\n$amber: oklch(79% 0.2 78) !default;\n$yellow: oklch(88% 0.24 88) !default;\n$lime: oklch(65% 0.24 135) !default;\n$green: oklch(64% 0.22 160) !default;\n$teal: oklch(68% 0.22 190) !default;\n$cyan: oklch(69% 0.22 220) !default;\n$brown: oklch(60% 0.12 54) !default;\n$gray: oklch(60% 0.02 245) !default;\n$pewter: oklch(65% 0.01 290) !default;\n// scss-docs-end colors-list\n\n// scss-docs-start colors-map\n$colors: () !default;\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: defaults(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"violet\": $violet,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"amber\": $amber,\n \"yellow\": $yellow,\n \"lime\": $lime,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"brown\": $brown,\n \"gray\": $gray,\n \"pewter\": $pewter,\n ),\n $colors\n);\n// scss-docs-end colors-map\n\n// scss-docs-start color-mix-options\n$color-mix-space: lab !default;\n$tint-color: var(--white) !default;\n$shade-color: var(--black) !default;\n\n$color-tints: (\n \"025\": 94%,\n \"050\": 90%,\n \"100\": 80%,\n \"200\": 60%,\n \"300\": 40%,\n \"400\": 20%,\n) !default;\n\n$color-shades: (\n \"600\": 16%,\n \"700\": 32%,\n \"800\": 48%,\n \"900\": 64%,\n \"950\": 76%,\n \"975\": 88%,\n) !default;\n// scss-docs-end color-mix-options\n\n// scss-docs-start color-tokens\n$color-tokens: () !default;\n\n$-color-defaults: () !default;\n@each $color, $value in $colors {\n @each $stop, $percent in $color-tints {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$tint-color} #{$percent}, #{$value}));\n }\n $-color-defaults: map.set($-color-defaults, --#{$color}-500, #{$value});\n @each $stop, $percent in $color-shades {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$shade-color} #{$percent}, #{$value}));\n }\n}\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$color-tokens: defaults($-color-defaults, $color-tokens);\n// scss-docs-end color-tokens\n\n:root {\n @include tokens($color-tokens);\n}\n","// Mixin to output tokens as CSS custom properties\n\n// scss-docs-start mixin-tokens\n@mixin tokens($map) {\n @each $prop, $value in $map {\n #{$prop}: #{$value};\n }\n}\n// scss-docs-end mixin-tokens\n","/*!\n * Bootstrap Reboot v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.24 240deg));\n --blue-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.24 240deg));\n --blue-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.24 240deg));\n --blue-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.24 240deg));\n --blue-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.24 240deg));\n --blue-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.24 240deg));\n --blue-500: oklch(60% 0.24 240deg);\n --blue-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.24 240deg));\n --blue-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.24 240deg));\n --blue-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.24 240deg));\n --blue-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.24 240deg));\n --blue-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.24 240deg));\n --blue-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.24 240deg));\n --indigo-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.26 288deg));\n --indigo-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.26 288deg));\n --indigo-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.26 288deg));\n --indigo-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.26 288deg));\n --indigo-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.26 288deg));\n --indigo-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.26 288deg));\n --indigo-500: oklch(56% 0.26 288deg);\n --indigo-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.26 288deg));\n --indigo-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.26 288deg));\n --indigo-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.26 288deg));\n --indigo-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.26 288deg));\n --indigo-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.26 288deg));\n --indigo-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.26 288deg));\n --violet-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 300deg));\n --violet-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 300deg));\n --violet-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 300deg));\n --violet-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 300deg));\n --violet-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 300deg));\n --violet-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 300deg));\n --violet-500: oklch(56% 0.24 300deg);\n --violet-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 300deg));\n --violet-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 300deg));\n --violet-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 300deg));\n --violet-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 300deg));\n --violet-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 300deg));\n --violet-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 300deg));\n --purple-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 320deg));\n --purple-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 320deg));\n --purple-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 320deg));\n --purple-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 320deg));\n --purple-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 320deg));\n --purple-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 320deg));\n --purple-500: oklch(56% 0.24 320deg);\n --purple-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 320deg));\n --purple-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 320deg));\n --purple-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 320deg));\n --purple-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 320deg));\n --purple-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 320deg));\n --purple-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 320deg));\n --pink-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 4deg));\n --pink-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 4deg));\n --pink-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 4deg));\n --pink-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 4deg));\n --pink-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 4deg));\n --pink-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 4deg));\n --pink-500: oklch(60% 0.22 4deg);\n --pink-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 4deg));\n --pink-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 4deg));\n --pink-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 4deg));\n --pink-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 4deg));\n --pink-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 4deg));\n --pink-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 4deg));\n --red-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 20deg));\n --red-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 20deg));\n --red-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 20deg));\n --red-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 20deg));\n --red-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 20deg));\n --red-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 20deg));\n --red-500: oklch(60% 0.22 20deg);\n --red-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 20deg));\n --red-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 20deg));\n --red-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 20deg));\n --red-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 20deg));\n --red-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 20deg));\n --red-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 20deg));\n --orange-025: color-mix(in lab, var(--white) 94%, oklch(70% 0.22 52deg));\n --orange-050: color-mix(in lab, var(--white) 90%, oklch(70% 0.22 52deg));\n --orange-100: color-mix(in lab, var(--white) 80%, oklch(70% 0.22 52deg));\n --orange-200: color-mix(in lab, var(--white) 60%, oklch(70% 0.22 52deg));\n --orange-300: color-mix(in lab, var(--white) 40%, oklch(70% 0.22 52deg));\n --orange-400: color-mix(in lab, var(--white) 20%, oklch(70% 0.22 52deg));\n --orange-500: oklch(70% 0.22 52deg);\n --orange-600: color-mix(in lab, var(--black) 16%, oklch(70% 0.22 52deg));\n --orange-700: color-mix(in lab, var(--black) 32%, oklch(70% 0.22 52deg));\n --orange-800: color-mix(in lab, var(--black) 48%, oklch(70% 0.22 52deg));\n --orange-900: color-mix(in lab, var(--black) 64%, oklch(70% 0.22 52deg));\n --orange-950: color-mix(in lab, var(--black) 76%, oklch(70% 0.22 52deg));\n --orange-975: color-mix(in lab, var(--black) 88%, oklch(70% 0.22 52deg));\n --amber-025: color-mix(in lab, var(--white) 94%, oklch(79% 0.2 78deg));\n --amber-050: color-mix(in lab, var(--white) 90%, oklch(79% 0.2 78deg));\n --amber-100: color-mix(in lab, var(--white) 80%, oklch(79% 0.2 78deg));\n --amber-200: color-mix(in lab, var(--white) 60%, oklch(79% 0.2 78deg));\n --amber-300: color-mix(in lab, var(--white) 40%, oklch(79% 0.2 78deg));\n --amber-400: color-mix(in lab, var(--white) 20%, oklch(79% 0.2 78deg));\n --amber-500: oklch(79% 0.2 78deg);\n --amber-600: color-mix(in lab, var(--black) 16%, oklch(79% 0.2 78deg));\n --amber-700: color-mix(in lab, var(--black) 32%, oklch(79% 0.2 78deg));\n --amber-800: color-mix(in lab, var(--black) 48%, oklch(79% 0.2 78deg));\n --amber-900: color-mix(in lab, var(--black) 64%, oklch(79% 0.2 78deg));\n --amber-950: color-mix(in lab, var(--black) 76%, oklch(79% 0.2 78deg));\n --amber-975: color-mix(in lab, var(--black) 88%, oklch(79% 0.2 78deg));\n --yellow-025: color-mix(in lab, var(--white) 94%, oklch(88% 0.24 88deg));\n --yellow-050: color-mix(in lab, var(--white) 90%, oklch(88% 0.24 88deg));\n --yellow-100: color-mix(in lab, var(--white) 80%, oklch(88% 0.24 88deg));\n --yellow-200: color-mix(in lab, var(--white) 60%, oklch(88% 0.24 88deg));\n --yellow-300: color-mix(in lab, var(--white) 40%, oklch(88% 0.24 88deg));\n --yellow-400: color-mix(in lab, var(--white) 20%, oklch(88% 0.24 88deg));\n --yellow-500: oklch(88% 0.24 88deg);\n --yellow-600: color-mix(in lab, var(--black) 16%, oklch(88% 0.24 88deg));\n --yellow-700: color-mix(in lab, var(--black) 32%, oklch(88% 0.24 88deg));\n --yellow-800: color-mix(in lab, var(--black) 48%, oklch(88% 0.24 88deg));\n --yellow-900: color-mix(in lab, var(--black) 64%, oklch(88% 0.24 88deg));\n --yellow-950: color-mix(in lab, var(--black) 76%, oklch(88% 0.24 88deg));\n --yellow-975: color-mix(in lab, var(--black) 88%, oklch(88% 0.24 88deg));\n --lime-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.24 135deg));\n --lime-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.24 135deg));\n --lime-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.24 135deg));\n --lime-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.24 135deg));\n --lime-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.24 135deg));\n --lime-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.24 135deg));\n --lime-500: oklch(65% 0.24 135deg);\n --lime-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.24 135deg));\n --lime-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.24 135deg));\n --lime-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.24 135deg));\n --lime-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.24 135deg));\n --lime-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.24 135deg));\n --lime-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.24 135deg));\n --green-025: color-mix(in lab, var(--white) 94%, oklch(64% 0.22 160deg));\n --green-050: color-mix(in lab, var(--white) 90%, oklch(64% 0.22 160deg));\n --green-100: color-mix(in lab, var(--white) 80%, oklch(64% 0.22 160deg));\n --green-200: color-mix(in lab, var(--white) 60%, oklch(64% 0.22 160deg));\n --green-300: color-mix(in lab, var(--white) 40%, oklch(64% 0.22 160deg));\n --green-400: color-mix(in lab, var(--white) 20%, oklch(64% 0.22 160deg));\n --green-500: oklch(64% 0.22 160deg);\n --green-600: color-mix(in lab, var(--black) 16%, oklch(64% 0.22 160deg));\n --green-700: color-mix(in lab, var(--black) 32%, oklch(64% 0.22 160deg));\n --green-800: color-mix(in lab, var(--black) 48%, oklch(64% 0.22 160deg));\n --green-900: color-mix(in lab, var(--black) 64%, oklch(64% 0.22 160deg));\n --green-950: color-mix(in lab, var(--black) 76%, oklch(64% 0.22 160deg));\n --green-975: color-mix(in lab, var(--black) 88%, oklch(64% 0.22 160deg));\n --teal-025: color-mix(in lab, var(--white) 94%, oklch(68% 0.22 190deg));\n --teal-050: color-mix(in lab, var(--white) 90%, oklch(68% 0.22 190deg));\n --teal-100: color-mix(in lab, var(--white) 80%, oklch(68% 0.22 190deg));\n --teal-200: color-mix(in lab, var(--white) 60%, oklch(68% 0.22 190deg));\n --teal-300: color-mix(in lab, var(--white) 40%, oklch(68% 0.22 190deg));\n --teal-400: color-mix(in lab, var(--white) 20%, oklch(68% 0.22 190deg));\n --teal-500: oklch(68% 0.22 190deg);\n --teal-600: color-mix(in lab, var(--black) 16%, oklch(68% 0.22 190deg));\n --teal-700: color-mix(in lab, var(--black) 32%, oklch(68% 0.22 190deg));\n --teal-800: color-mix(in lab, var(--black) 48%, oklch(68% 0.22 190deg));\n --teal-900: color-mix(in lab, var(--black) 64%, oklch(68% 0.22 190deg));\n --teal-950: color-mix(in lab, var(--black) 76%, oklch(68% 0.22 190deg));\n --teal-975: color-mix(in lab, var(--black) 88%, oklch(68% 0.22 190deg));\n --cyan-025: color-mix(in lab, var(--white) 94%, oklch(69% 0.22 220deg));\n --cyan-050: color-mix(in lab, var(--white) 90%, oklch(69% 0.22 220deg));\n --cyan-100: color-mix(in lab, var(--white) 80%, oklch(69% 0.22 220deg));\n --cyan-200: color-mix(in lab, var(--white) 60%, oklch(69% 0.22 220deg));\n --cyan-300: color-mix(in lab, var(--white) 40%, oklch(69% 0.22 220deg));\n --cyan-400: color-mix(in lab, var(--white) 20%, oklch(69% 0.22 220deg));\n --cyan-500: oklch(69% 0.22 220deg);\n --cyan-600: color-mix(in lab, var(--black) 16%, oklch(69% 0.22 220deg));\n --cyan-700: color-mix(in lab, var(--black) 32%, oklch(69% 0.22 220deg));\n --cyan-800: color-mix(in lab, var(--black) 48%, oklch(69% 0.22 220deg));\n --cyan-900: color-mix(in lab, var(--black) 64%, oklch(69% 0.22 220deg));\n --cyan-950: color-mix(in lab, var(--black) 76%, oklch(69% 0.22 220deg));\n --cyan-975: color-mix(in lab, var(--black) 88%, oklch(69% 0.22 220deg));\n --brown-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.12 54deg));\n --brown-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.12 54deg));\n --brown-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.12 54deg));\n --brown-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.12 54deg));\n --brown-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.12 54deg));\n --brown-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.12 54deg));\n --brown-500: oklch(60% 0.12 54deg);\n --brown-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.12 54deg));\n --brown-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.12 54deg));\n --brown-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.12 54deg));\n --brown-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.12 54deg));\n --brown-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.12 54deg));\n --brown-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.12 54deg));\n --gray-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.02 245deg));\n --gray-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.02 245deg));\n --gray-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.02 245deg));\n --gray-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.02 245deg));\n --gray-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.02 245deg));\n --gray-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.02 245deg));\n --gray-500: oklch(60% 0.02 245deg);\n --gray-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.02 245deg));\n --gray-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.02 245deg));\n --gray-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.02 245deg));\n --gray-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.02 245deg));\n --gray-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.02 245deg));\n --gray-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.02 245deg));\n --pewter-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.01 290deg));\n --pewter-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.01 290deg));\n --pewter-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.01 290deg));\n --pewter-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.01 290deg));\n --pewter-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.01 290deg));\n --pewter-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.01 290deg));\n --pewter-500: oklch(65% 0.01 290deg);\n --pewter-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.01 290deg));\n --pewter-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.01 290deg));\n --pewter-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.01 290deg));\n --pewter-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.01 290deg));\n --pewter-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.01 290deg));\n --pewter-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.01 290deg));\n}\n\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n:root {\n --black: #000;\n --white: #fff;\n --gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent));\n --font-weight-lighter: lighter;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-bolder: bolder;\n --body-font-family: system-ui;\n --body-font-size: var(--font-size-base);\n --body-font-weight: 400;\n --body-line-height: 1.5;\n --heading-color: inherit;\n --hr-border-color: var(--border-color);\n --link-color: light-dark(var(--primary-base), var(--primary-fg));\n --link-decoration: underline;\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000);\n --font-mono: ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Monaco, 'Cascadia Mono', Consolas, 'Liberation Mono', monospace;;\n --code-font-size: 95%;\n --code-color: var(--fg-2);\n --border-width: 1px;\n --border-style: solid;\n --border-color: light-dark(var(--gray-200), var(--gray-700));\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent);\n --box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n --box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n --box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);\n --box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n --spacer: 1rem;\n --focus-ring-width: 3px;\n --focus-ring-offset: 1px;\n --focus-ring-color: var(--primary-focus-ring);\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color);\n --control-checked-bg: var(--primary-base);\n --control-checked-border-color: var(--control-checked-bg);\n --control-active-bg: var(--primary-base);\n --control-active-border-color: var(--control-active-bg);\n --control-disabled-bg: var(--bg-3);\n --control-disabled-opacity: 0.65;\n --btn-input-fg: var(--fg-body);\n --btn-input-bg: var(--bg-body);\n --btn-input-min-height: 2.375rem;\n --btn-input-padding-y: 0.375rem;\n --btn-input-padding-x: 0.75rem;\n --btn-input-font-size: var(--font-size-base);\n --btn-input-line-height: var(--line-height-base);\n --btn-input-border-radius: var(--radius-5);\n --btn-input-xs-min-height: 1.5rem;\n --btn-input-xs-padding-y: 0.125rem;\n --btn-input-xs-padding-x: 0.5rem;\n --btn-input-xs-font-size: var(--font-size-xs);\n --btn-input-xs-line-height: 1.125;\n --btn-input-xs-border-radius: var(--radius-5);\n --btn-input-sm-min-height: 2rem;\n --btn-input-sm-padding-y: 0.25rem;\n --btn-input-sm-padding-x: 0.625rem;\n --btn-input-sm-font-size: var(--font-size-sm);\n --btn-input-sm-line-height: var(--line-height-sm);\n --btn-input-sm-border-radius: var(--radius-5);\n --btn-input-lg-min-height: 2.75rem;\n --btn-input-lg-padding-y: 0.5rem;\n --btn-input-lg-padding-x: 1rem;\n --btn-input-lg-font-size: var(--font-size-md);\n --btn-input-lg-line-height: var(--line-height-md);\n --btn-input-lg-border-radius: var(--radius-7);\n --font-size-xs: 0.75rem;\n --line-height-xs: 1.25;\n --font-size-sm: 0.875rem;\n --line-height-sm: 1.5;\n --font-size-md: 1rem;\n --line-height-md: 1.5;\n --font-size-lg: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n --line-height-lg: 1.5;\n --font-size-xl: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n --line-height-xl: 1.4285714286;\n --font-size-2xl: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n --line-height-2xl: 1.3333333333;\n --font-size-3xl: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n --line-height-3xl: 1.2;\n --font-size-4xl: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n --line-height-4xl: 1.1;\n --font-size-5xl: clamp(3rem, 2rem + 5vw, 4rem);\n --line-height-5xl: 1.1;\n --font-size-6xl: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n --line-height-6xl: 1;\n --primary-base: var(--blue-500);\n --primary-fg: light-dark(var(--blue-600), var(--blue-400));\n --primary-fg-emphasis: light-dark(var(--blue-800), var(--blue-200));\n --primary-bg: var(--blue-500);\n --primary-bg-subtle: light-dark(var(--blue-100), var(--blue-900));\n --primary-bg-muted: light-dark(var(--blue-200), var(--blue-800));\n --primary-border: light-dark(var(--blue-300), var(--blue-600));\n --primary-focus-ring: light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body)));\n --primary-contrast: var(--white);\n --accent-base: var(--indigo-500);\n --accent-fg: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n --accent-fg-emphasis: light-dark(var(--indigo-800), var(--indigo-300));\n --accent-bg: var(--indigo-500);\n --accent-bg-subtle: light-dark(var(--indigo-100), var(--indigo-900));\n --accent-bg-muted: light-dark(var(--indigo-200), var(--indigo-800));\n --accent-border: light-dark(var(--indigo-300), var(--indigo-600));\n --accent-focus-ring: light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body)));\n --accent-contrast: var(--white);\n --success-base: var(--green-500);\n --success-fg: light-dark(var(--green-600), var(--green-400));\n --success-fg-emphasis: light-dark(var(--green-800), var(--green-300));\n --success-bg: var(--green-500);\n --success-bg-subtle: light-dark(var(--green-100), var(--green-900));\n --success-bg-muted: light-dark(var(--green-200), var(--green-800));\n --success-border: light-dark(var(--green-300), var(--green-600));\n --success-focus-ring: light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body)));\n --success-contrast: var(--white);\n --danger-base: var(--red-500);\n --danger-fg: light-dark(var(--red-600), var(--red-400));\n --danger-fg-emphasis: light-dark(var(--red-800), var(--red-300));\n --danger-bg: var(--red-500);\n --danger-bg-subtle: light-dark(var(--red-100), var(--red-900));\n --danger-bg-muted: light-dark(var(--red-200), var(--red-800));\n --danger-border: light-dark(var(--red-300), var(--red-600));\n --danger-focus-ring: light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body)));\n --danger-contrast: var(--white);\n --warning-base: var(--yellow-500);\n --warning-fg: light-dark(var(--yellow-700), var(--yellow-400));\n --warning-fg-emphasis: light-dark(var(--yellow-800), var(--yellow-300));\n --warning-bg: var(--yellow-500);\n --warning-bg-subtle: light-dark(var(--yellow-100), var(--yellow-900));\n --warning-bg-muted: light-dark(var(--yellow-200), var(--yellow-800));\n --warning-border: light-dark(var(--yellow-300), var(--yellow-600));\n --warning-focus-ring: light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body)));\n --warning-contrast: var(--gray-900);\n --info-base: var(--cyan-500);\n --info-fg: light-dark(var(--cyan-600), var(--cyan-400));\n --info-fg-emphasis: light-dark(var(--cyan-800), var(--cyan-300));\n --info-bg: var(--cyan-500);\n --info-bg-subtle: light-dark(var(--cyan-100), var(--cyan-900));\n --info-bg-muted: light-dark(var(--cyan-200), var(--cyan-800));\n --info-border: light-dark(var(--cyan-300), var(--cyan-600));\n --info-focus-ring: light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body)));\n --info-contrast: var(--gray-900);\n --inverse-base: var(--gray-900);\n --inverse-fg: light-dark(var(--gray-900), var(--gray-200));\n --inverse-fg-emphasis: light-dark(var(--gray-975), var(--white));\n --inverse-bg: light-dark(var(--gray-900), var(--gray-025));\n --inverse-bg-subtle: light-dark(var(--gray-100), var(--gray-900));\n --inverse-bg-muted: light-dark(var(--gray-200), var(--gray-300));\n --inverse-border: light-dark(var(--gray-400), var(--gray-100));\n --inverse-focus-ring: color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body));\n --inverse-contrast: light-dark(var(--white), var(--gray-900));\n --secondary-base: var(--gray-200);\n --secondary-fg: light-dark(var(--gray-600), var(--gray-400));\n --secondary-fg-emphasis: light-dark(var(--gray-800), var(--gray-200));\n --secondary-bg: light-dark(var(--gray-100), var(--gray-600));\n --secondary-bg-subtle: light-dark(var(--gray-050), var(--gray-800));\n --secondary-bg-muted: light-dark(var(--gray-100), var(--gray-700));\n --secondary-border: light-dark(var(--gray-300), var(--gray-600));\n --secondary-focus-ring: color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body));\n --secondary-contrast: light-dark(var(--gray-900), var(--white));\n --bg-body: light-dark(var(--white), var(--gray-975));\n --bg-1: light-dark(var(--gray-025), var(--gray-950));\n --bg-2: light-dark(var(--gray-050), var(--gray-900));\n --bg-3: light-dark(var(--gray-100), var(--gray-800));\n --bg-4: light-dark(var(--gray-200), var(--gray-700));\n --bg-fg: var(--fg-body);\n --bg-white: var(--white);\n --bg-black: var(--black);\n --bg-transparent: transparent;\n --bg-inherit: inherit;\n --fg-body: light-dark(var(--gray-900), var(--gray-050));\n --fg-1: light-dark(var(--gray-800), var(--gray-200));\n --fg-2: light-dark(var(--gray-700), var(--gray-300));\n --fg-3: light-dark(var(--gray-600), var(--gray-500));\n --fg-4: light-dark(var(--gray-500), var(--gray-600));\n --fg-bg: var(--bg-body);\n --fg-white: var(--white);\n --fg-black: var(--black);\n --fg-inherit: inherit;\n --border-bg: var(--bg-body);\n --border-body: light-dark(var(--gray-300), var(--gray-800));\n --border-muted: light-dark(var(--gray-200), var(--gray-800));\n --border-subtle: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-900));\n --border-emphasized: light-dark(var(--gray-400), var(--gray-600));\n --border-white: var(--white);\n --border-black: var(--black);\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 1024px;\n --breakpoint-xl: 1280px;\n --breakpoint-2xl: 1536px;\n --spacer-0: 0;\n --spacer-1: 0.25rem;\n --spacer-2: 0.5rem;\n --spacer-3: 0.75rem;\n --spacer-4: 1rem;\n --spacer-5: 1.25rem;\n --spacer-6: 1.5rem;\n --spacer-7: 2rem;\n --spacer-8: 2.5rem;\n --spacer-9: 3rem;\n --radius-0: 0;\n --radius-1: 0.125rem;\n --radius-2: 0.1875rem;\n --radius-3: 0.25rem;\n --radius-4: 0.375rem;\n --radius-5: 0.5rem;\n --radius-6: 0.625rem;\n --radius-7: 0.75rem;\n --radius-8: 1rem;\n --radius-9: 1.5rem;\n --radius-pill: 50rem;\n color-scheme: light dark;\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=dark] {\n color-scheme: dark;\n}\n\n[data-bs-theme=light] {\n color-scheme: light;\n}\n\n@layer reboot {\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n :root {\n accent-color: var(--primary-base);\n }\n body {\n margin: 0;\n font-family: var(--body-font-family);\n font-size: var(--body-font-size);\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n color: var(--fg-body);\n text-align: var(--body-text-align);\n background-color: var(--bg-body);\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n margin: var(--hr-margin-y, var(--spacer)) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n h6,\n .h6, h5,\n .h5, h4,\n .h4, h3,\n .h3, h2,\n .h2, h1,\n .h1 {\n margin-top: 0;\n margin-bottom: var(--spacer-2);\n font-weight: 500;\n line-height: 1.2;\n color: var(--heading-color);\n }\n h1,\n .h1 {\n font-size: var(--font-size-3xl);\n }\n h2,\n .h2 {\n font-size: var(--font-size-2xl);\n }\n h3,\n .h3 {\n font-size: var(--font-size-xl);\n }\n h4,\n .h4 {\n font-size: var(--font-size-lg);\n }\n h5,\n .h5 {\n font-size: var(--font-size-md);\n }\n h6,\n .h6 {\n font-size: var(--font-size-sm);\n }\n p {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n abbr[title] {\n text-decoration: underline dotted;\n cursor: help;\n text-decoration-skip-ink: none;\n }\n address {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n }\n ol,\n ul {\n padding-inline-start: 2rem;\n }\n ol,\n ul,\n dl {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n ol ol,\n ul ul,\n ol ul,\n ul ol {\n margin-bottom: 0;\n }\n dt {\n font-weight: 700;\n }\n dd {\n margin-inline-start: 0;\n margin-bottom: 0.5rem;\n }\n blockquote {\n margin: 0 0 1rem;\n }\n blockquote > * {\n margin-block: 0;\n }\n b,\n strong {\n font-weight: bolder;\n }\n small,\n .small {\n font-size: var(--small-font-size, 87.5%);\n }\n mark,\n .mark {\n --mark-padding: 0.1875em;\n --mark-color: var(--fg-body);\n --mark-bg: light-dark(var(--yellow-100), var(--yellow-900));\n padding: var(--mark-padding);\n color: var(--mark-color);\n background-color: var(--mark-bg);\n }\n sub,\n sup {\n position: relative;\n font-size: var(--sub-sup-font-size, 0.75em);\n line-height: 0;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n a {\n color: var(--theme-fg, var(--link-color));\n text-decoration: var(--link-decoration);\n text-underline-offset: 0.2em;\n }\n a:hover {\n color: var(--theme-fg-emphasis, var(--link-hover-color));\n text-decoration: var(--link-hover-decoration, var(--link-decoration));\n }\n a:not([href], [class]), a:not([href], [class]):hover {\n color: inherit;\n text-decoration: none;\n }\n pre,\n code,\n kbd,\n samp {\n font-family: var(--font-mono);\n font-size: 1em;\n }\n pre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: var(--code-font-size);\n color: var(--code-color, inherit);\n }\n pre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n code {\n font-size: var(--code-font-size);\n color: var(--code-color);\n word-wrap: break-word;\n }\n a > code {\n color: inherit;\n }\n kbd {\n --kbd-padding-y: 0.125rem;\n --kbd-padding-x: 0.25rem;\n --kbd-font-size: var(--font-size-xs);\n --kbd-color: var(--bg-body);\n --kbd-bg: var(--fg-2);\n --kbd-border-radius: var(--radius-5);\n padding: var(--kbd-padding-y) var(--kbd-padding-x);\n font-size: var(--kbd-font-size);\n color: var(--kbd-color);\n background-color: var(--kbd-bg);\n border-radius: var(--kbd-border-radius);\n }\n kbd kbd {\n padding: 0;\n font-size: 1em;\n font-weight: inherit;\n }\n figure {\n margin: 0 0 1rem;\n }\n img,\n svg {\n vertical-align: middle;\n }\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n caption {\n padding-block: 0.5rem;\n color: var(--fg-3);\n text-align: start;\n }\n th {\n text-align: inherit;\n text-align: -webkit-match-parent;\n }\n thead,\n tbody,\n tfoot,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n label {\n display: inline-block;\n }\n button {\n border-radius: 0;\n }\n button:focus:not(:focus-visible) {\n outline: 0;\n }\n input,\n button,\n select,\n optgroup,\n textarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n [role=button] {\n cursor: pointer;\n }\n select {\n word-wrap: normal;\n }\n select:disabled {\n opacity: 1;\n }\n [list]:not([type=date], [type=datetime-local], [type=month], [type=week], [type=time])::-webkit-calendar-picker-indicator {\n display: none !important;\n }\n button,\n [type=button],\n [type=reset],\n [type=submit] {\n -webkit-appearance: button;\n }\n button:not(:disabled),\n [type=button]:not(:disabled),\n [type=reset]:not(:disabled),\n [type=submit]:not(:disabled) {\n cursor: pointer;\n }\n textarea {\n resize: vertical;\n }\n fieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n }\n legend {\n float: inline-start;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: 1.5rem;\n line-height: inherit;\n }\n legend + * {\n clear: inline-start;\n }\n ::-webkit-datetime-edit-fields-wrapper,\n ::-webkit-datetime-edit-text,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-meridiem-field,\n ::-webkit-datetime-edit-ampm-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-week-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-year-field {\n padding: 0;\n }\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n [type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n }\n [type=search]::-webkit-search-cancel-button {\n cursor: pointer;\n filter: grayscale(1);\n }\n [type=tel],\n [type=url],\n [type=email],\n [type=number] {\n direction: ltr;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n ::file-selector-button {\n font: inherit;\n -webkit-appearance: button;\n }\n output {\n display: inline-block;\n }\n iframe {\n border: 0;\n }\n summary {\n display: list-item;\n cursor: pointer;\n }\n progress {\n vertical-align: baseline;\n }\n [hidden] {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */\n","@use \"sass:map\";\n@use \"colors\" as *;\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"theme\" as *;\n@use \"mixins/tokens\" as *;\n// mdo-do: do we need theme?\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n\n$root-tokens: () !default;\n\n// scss-docs-start root-tokens\n// stylelint-disable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: defaults(\n (\n --black: #{$black},\n --white: #{$white},\n\n --gradient: #{$gradient},\n\n // scss-docs-start root-font-weight-variables\n --font-weight-lighter: lighter,\n --font-weight-light: 300,\n --font-weight-normal: 400,\n --font-weight-medium: 500,\n --font-weight-semibold: 600,\n --font-weight-bold: 700,\n --font-weight-bolder: bolder,\n // scss-docs-end root-font-weight-variables\n\n // scss-docs-start root-body-variables\n --body-font-family: system-ui,\n --body-font-size: var(--font-size-base),\n --body-font-weight: #{$font-weight-base},\n --body-line-height: #{$line-height-base},\n\n --heading-color: #{$headings-color},\n\n --hr-border-color: var(--border-color),\n\n --link-color: light-dark(var(--primary-base), var(--primary-fg)),\n --link-decoration: #{$link-decoration},\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000),\n\n --font-mono: \"ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Monaco, 'Cascadia Mono', Consolas, 'Liberation Mono', monospace;\",\n --code-font-size: 95%,\n --code-color: var(--fg-2),\n\n // scss-docs-start root-border-var\n --border-width: #{$border-width},\n --border-style: #{$border-style},\n --border-color: light-dark(var(--gray-200), var(--gray-700)),\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent),\n // scss-docs-end root-border-var\n\n // scss-docs-start root-box-shadow-variables\n --box-shadow: 0 .5rem 1rem rgb(0 0 0 / 15%),\n --box-shadow-sm: 0 .125rem .25rem rgb(0 0 0 / 7.5%),\n --box-shadow-lg: 0 1rem 3rem rgb(0 0 0 / 17.5%),\n --box-shadow-inset: inset 0 1px 2px rgb(0 0 0 / 7.5%),\n // scss-docs-end root-box-shadow-variables\n\n --spacer: 1rem,\n\n // scss-docs-start root-focus-variables\n --focus-ring-width: 3px,\n --focus-ring-offset: 1px,\n --focus-ring-color: var(--primary-focus-ring),\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color),\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-variables\n --control-checked-bg: var(--primary-base),\n --control-checked-border-color: var(--control-checked-bg),\n --control-active-bg: var(--primary-base),\n --control-active-border-color: var(--control-active-bg),\n --control-disabled-bg: var(--bg-3),\n --control-disabled-opacity: .65,\n\n --btn-input-fg: var(--fg-body),\n --btn-input-bg: var(--bg-body),\n\n --btn-input-min-height: 2.375rem,\n --btn-input-padding-y: .375rem,\n --btn-input-padding-x: .75rem,\n --btn-input-font-size: var(--font-size-base),\n --btn-input-line-height: var(--line-height-base),\n --btn-input-border-radius: var(--radius-5),\n\n --btn-input-xs-min-height: 1.5rem,\n --btn-input-xs-padding-y: .125rem,\n --btn-input-xs-padding-x: .5rem,\n --btn-input-xs-font-size: var(--font-size-xs),\n --btn-input-xs-line-height: 1.125,\n --btn-input-xs-border-radius: var(--radius-5),\n\n --btn-input-sm-min-height: 2rem,\n --btn-input-sm-padding-y: .25rem,\n --btn-input-sm-padding-x: .625rem,\n --btn-input-sm-font-size: var(--font-size-sm),\n --btn-input-sm-line-height: var(--line-height-sm),\n --btn-input-sm-border-radius: var(--radius-5),\n\n --btn-input-lg-min-height: 2.75rem,\n --btn-input-lg-padding-y: .5rem,\n --btn-input-lg-padding-x: 1rem,\n --btn-input-lg-font-size: var(--font-size-md),\n --btn-input-lg-line-height: var(--line-height-md),\n --btn-input-lg-border-radius: var(--radius-7),\n // scss-docs-end root-form-variables\n ),\n $root-tokens\n);\n// stylelint-enable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// scss-docs-end root-tokens\n\n// scss-docs-start root-font-size-loop\n// Generate font-size and line-height tokens\n@each $name, $props in $font-sizes {\n $root-tokens: map.set($root-tokens, --font-size-#{$name}, map.get($props, \"font-size\"));\n $root-tokens: map.set($root-tokens, --line-height-#{$name}, map.get($props, \"line-height\"));\n}\n// scss-docs-end root-font-size-loop\n\n// scss-docs-start root-theme-tokens\n// Generate semantic theme colors\n@each $color-name, $color-map in $theme-colors {\n @each $key, $value in $color-map {\n $root-tokens: map.set($root-tokens, --#{$color-name}-#{$key}, $value);\n }\n}\n\n// Generate background tokens\n@each $key, $value in $theme-bgs {\n $root-tokens: map.set($root-tokens, --bg-#{$key}, $value);\n}\n\n// Generate foreground tokens\n@each $key, $value in $theme-fgs {\n $root-tokens: map.set($root-tokens, --fg-#{$key}, $value);\n}\n\n// Generate border tokens\n@each $key, $value in $theme-borders {\n $root-tokens: map.set($root-tokens, --border-#{$key}, $value);\n}\n// scss-docs-end root-theme-tokens\n\n// Generate breakpoint tokens\n@each $name, $value in $breakpoints {\n $root-tokens: map.set($root-tokens, --breakpoint-#{$name}, $value);\n}\n\n// Generate spacer tokens\n// scss-docs-start root-spacer-loop\n@each $key, $value in $spacers {\n $root-tokens: map.set($root-tokens, --spacer-#{$key}, $value);\n}\n// scss-docs-end root-spacer-loop\n\n// Generate radius tokens\n// scss-docs-start root-radius-loop\n@each $key, $value in $radii {\n $root-tokens: map.set($root-tokens, --radius-#{$key}, $value);\n}\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: map.set($root-tokens, --radius-pill, 50rem);\n// scss-docs-end root-radius-loop\n\n:root {\n @include tokens($root-tokens);\n\n color-scheme: light dark;\n // Always reserve the viewport scrollbar gutter so layout doesn't shift\n // when overflow: hidden is applied (e.g. when a dialog opens on Windows).\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=\"dark\"] {\n color-scheme: dark;\n}\n\n[data-bs-theme=\"light\"] {\n color-scheme: light;\n}\n","@use \"../config\" as *;\n@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n$reboot-kbd-tokens: () !default;\n$reboot-mark-tokens: () !default;\n\n// scss-docs-start reboot-kbd-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$reboot-kbd-tokens: defaults(\n (\n --kbd-padding-y: .125rem,\n --kbd-padding-x: .25rem,\n --kbd-font-size: var(--font-size-xs),\n --kbd-color: var(--bg-body),\n --kbd-bg: var(--fg-2),\n --kbd-border-radius: var(--radius-5),\n ),\n $reboot-kbd-tokens\n);\n// scss-docs-end reboot-kbd-tokens\n\n// scss-docs-start reboot-mark-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$reboot-mark-tokens: defaults(\n (\n --mark-padding: .1875em,\n --mark-color: var(--fg-body),\n --mark-bg: light-dark(var(--yellow-100), var(--yellow-900)),\n ),\n $reboot-mark-tokens\n);\n// scss-docs-end reboot-mark-tokens\n\n@layer reboot {\n // Reboot\n //\n // Normalization of HTML elements, manually forked from Normalize.css to remove\n // styles targeting irrelevant browsers while applying new styles.\n //\n // Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n // Document\n //\n // Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n // Root\n //\n // Ability to the value of the root font sizes, affecting the value of `rem`.\n // null by default, thus nothing is generated.\n\n :root {\n // Assume browser default font-size of 16px, or a user's preference\n accent-color: var(--primary-base);\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n }\n\n // Body\n //\n // 1. Remove the margin in all browsers.\n // 2. As a best practice, apply a default `background-color`.\n // 3. Prevent adjustments of font size after orientation changes in iOS.\n // 4. Change the default tap highlight to be completely transparent in iOS.\n\n // scss-docs-start reboot-body-rules\n body {\n margin: 0; // 1\n font-family: var(--body-font-family);\n font-size: var(--body-font-size);\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n color: var(--fg-body);\n text-align: var(--body-text-align);\n background-color: var(--bg-body); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: transparent; // 4\n }\n // scss-docs-end reboot-body-rules\n\n hr {\n margin: var(--hr-margin-y, var(--spacer)) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n\n // Typography\n //\n // 1. Remove top margins from headings\n // By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n // margin for easier control within type scales as it avoids margin collapsing.\n\n %heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: var(--heading-color);\n }\n\n h1,\n .h1 {\n @extend %heading;\n font-size: var(--font-size-3xl);\n }\n\n h2,\n .h2 {\n @extend %heading;\n font-size: var(--font-size-2xl);\n }\n\n h3,\n .h3 {\n @extend %heading;\n font-size: var(--font-size-xl);\n }\n\n h4,\n .h4 {\n @extend %heading;\n font-size: var(--font-size-lg);\n }\n\n h5,\n .h5 {\n @extend %heading;\n font-size: var(--font-size-md);\n }\n\n h6,\n .h6 {\n @extend %heading;\n font-size: var(--font-size-sm);\n }\n\n // Reset margins on paragraphs\n //\n // Similarly, the top margin on `<p>`s get reset. However, we also reset the\n // bottom margin to use `rem` units instead of `em`.\n\n p {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n }\n\n // Abbreviations\n //\n // 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n // 2. Add explicit cursor to indicate changed behavior.\n // 3. Prevent the text-decoration to be skipped.\n\n abbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n }\n\n // Address\n\n address {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n }\n\n // Lists\n\n ol,\n ul {\n padding-inline-start: 2rem;\n }\n\n ol,\n ul,\n dl {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n\n ol ol,\n ul ul,\n ol ul,\n ul ol {\n margin-bottom: 0;\n }\n\n dt {\n font-weight: $dt-font-weight;\n }\n\n // 1. Undo browser default\n\n dd {\n margin-inline-start: 0; // 1\n margin-bottom: .5rem;\n }\n\n // Blockquote\n\n blockquote {\n margin: 0 0 1rem;\n > * {\n margin-block: 0;\n }\n }\n\n // Strong\n //\n // Add the correct font weight in Chrome, Edge, and Safari\n\n b,\n strong {\n font-weight: $font-weight-bolder;\n }\n\n // Small\n //\n // Add the correct font size in all browsers\n\n small,\n .small {\n font-size: var(--small-font-size, 87.5%);\n }\n\n // Mark\n\n mark,\n .mark {\n @include tokens($reboot-mark-tokens);\n padding: var(--mark-padding);\n color: var(--mark-color);\n background-color: var(--mark-bg);\n }\n\n // Sub and Sup\n //\n // Prevent `sub` and `sup` elements from affecting the line height in\n // all browsers.\n\n sub,\n sup {\n position: relative;\n font-size: var(--sub-sup-font-size, .75em);\n line-height: 0;\n vertical-align: baseline;\n }\n\n sub { bottom: -.25em; }\n sup { top: -.5em; }\n\n // Links\n\n a {\n color: var(--theme-fg, var(--link-color));\n text-decoration: var(--link-decoration);\n text-underline-offset: $link-underline-offset;\n\n &:hover {\n // --link-color: var(--link-hover-color);\n // --link-decoration: var(--link-hover-decoration, var(--link-decoration));\n color: var(--theme-fg-emphasis, var(--link-hover-color));\n text-decoration: var(--link-hover-decoration, var(--link-decoration));\n }\n }\n\n // And undo these styles for placeholder links/named anchors (without href).\n // It would be more straightforward to just use a[href] in previous block, but that\n // causes specificity issues in many other styles that are too complex to fix.\n // See https://github.com/twbs/bootstrap/issues/19402\n\n a:not([href], [class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n }\n\n // Code\n\n pre,\n code,\n kbd,\n samp {\n font-family: var(--font-mono);\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n }\n\n // 1. Remove browser default top margin\n // 2. Reset browser default of `1em` to use `rem`s\n // 3. Don't allow content to break outside\n\n pre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n font-size: var(--code-font-size);\n color: var(--code-color, inherit);\n\n // Account for some code outputs that place code tags in pre tags\n code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n }\n\n code {\n font-size: var(--code-font-size);\n color: var(--code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n }\n\n kbd {\n @include tokens($reboot-kbd-tokens);\n padding: var(--kbd-padding-y) var(--kbd-padding-x);\n font-size: var(--kbd-font-size);\n color: var(--kbd-color);\n background-color: var(--kbd-bg);\n @include border-radius(var(--kbd-border-radius));\n\n kbd {\n padding: 0;\n font-size: 1em;\n font-weight: inherit; // mdo-do: check if this is needed\n }\n }\n\n // Figures\n //\n // Apply a consistent margin strategy (matches our type styles).\n\n figure {\n margin: 0 0 1rem;\n }\n\n // Images and content\n\n img,\n svg {\n vertical-align: middle;\n }\n\n // Tables\n //\n // Prevent double borders\n\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n\n caption {\n // padding-top: $table-cell-padding-y;\n // padding-bottom: $table-cell-padding-y;\n // color: $table-caption-color;\n padding-block: .5rem;\n color: var(--fg-3);\n text-align: start;\n }\n\n // 1. Removes font-weight bold by inheriting\n // 2. Matches default `<td>` alignment by inheriting `text-align`.\n // 3. Fix alignment for Safari\n\n th {\n // font-weight: $table-th-font-weight; // 1 // mdo-do: it's null by default. maybe we remove?\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n }\n\n thead,\n tbody,\n tfoot,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n\n // Forms\n //\n // 1. Allow labels to use `margin` for spacing.\n\n label {\n display: inline-block; // 1\n }\n\n // Remove the default `border-radius` that macOS Chrome adds.\n // See https://github.com/twbs/bootstrap/issues/24093\n\n button {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n }\n\n // Explicitly remove focus outline in Chromium when it shouldn't be\n // visible (e.g. as result of mouse click or touch tap). It already\n // should be doing this automatically, but seems to currently be\n // confused and applies its very visible two-tone outline anyway.\n\n button:focus:not(:focus-visible) {\n outline: 0;\n }\n\n // 1. Remove the margin in Firefox and Safari\n\n input,\n button,\n select,\n optgroup,\n textarea {\n margin: 0; // 1\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n // Set the cursor for non-`<button>` buttons\n //\n // Details at https://github.com/twbs/bootstrap/pull/30562\n [role=\"button\"] {\n cursor: pointer;\n }\n\n select {\n // Remove the inheritance of word-wrap in Safari.\n // See https://github.com/twbs/bootstrap/issues/24990\n word-wrap: normal;\n\n // Undo the opacity change from Chrome\n &:disabled {\n opacity: 1;\n }\n }\n\n // Remove the dropdown arrow only from text type inputs built with datalists in Chrome.\n // See https://stackoverflow.com/a/54997118\n\n [list]:not([type=\"date\"], [type=\"datetime-local\"], [type=\"month\"], [type=\"week\"], [type=\"time\"])::-webkit-calendar-picker-indicator {\n display: none !important;\n }\n\n // 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n // controls in Android 4.\n // 2. Correct the inability to style clickable types in iOS and Safari.\n // 3. Opinionated: add \"hand\" cursor to non-disabled button elements.\n\n button,\n [type=\"button\"], // 1\n [type=\"reset\"],\n [type=\"submit\"] {\n -webkit-appearance: button; // 2\n\n @if $enable-button-pointers {\n &:not(:disabled) {\n cursor: pointer; // 3\n }\n }\n }\n\n // 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.\n\n textarea {\n resize: vertical; // 1\n }\n\n // 1. Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n // 2. Reset the default outline behavior of fieldsets so they don't affect page layout.\n\n fieldset {\n min-width: 0; // 1\n padding: 0; // 2\n margin: 0; // 2\n border: 0; // 2\n }\n\n // 1. By using `float: inline-start`, the legend will behave like a block element.\n // This way the border of a fieldset wraps around the legend if present.\n // 2. Fix wrapping bug.\n // See https://github.com/twbs/bootstrap/issues/29712\n\n legend {\n float: inline-start; // 1\n width: 100%;\n padding: 0;\n margin-bottom: $legend-margin-bottom;\n font-size: $legend-font-size;\n font-weight: $legend-font-weight;\n line-height: inherit;\n\n + * {\n clear: inline-start; // 2\n }\n }\n\n // Fix height of inputs with a type of datetime-local, date, month, week, or time\n // See https://github.com/twbs/bootstrap/issues/18842\n\n ::-webkit-datetime-edit-fields-wrapper,\n ::-webkit-datetime-edit-text,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-meridiem-field, // WebKit\n ::-webkit-datetime-edit-ampm-field, // Chromium\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-week-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-year-field {\n padding: 0;\n }\n\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n\n // 1. This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n // 2. Correct the outline style in Safari.\n\n [type=\"search\"] {\n -webkit-appearance: textfield; // 1\n outline-offset: -2px; // 2\n\n // 3. Better affordance and consistent appearance for search cancel button\n &::-webkit-search-cancel-button {\n cursor: pointer;\n filter: grayscale(1);\n }\n }\n\n // A few input types should stay LTR regardless of document direction\n // See https://rtlstyling.com/posts/rtl-styling#form-inputs\n\n [type=\"tel\"],\n [type=\"url\"],\n [type=\"email\"],\n [type=\"number\"] {\n direction: ltr;\n }\n\n // Remove the inner padding in Chrome and Safari on macOS.\n\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n // Remove padding around color pickers in webkit browsers\n\n ::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n\n // 1. Inherit font family and line height for file input buttons\n // 2. Correct the inability to style clickable types in iOS and Safari.\n\n ::file-selector-button {\n font: inherit; // 1\n -webkit-appearance: button; // 2\n }\n\n // Correct element displays\n\n output {\n display: inline-block;\n }\n\n // Remove border from iframe\n\n iframe {\n border: 0;\n }\n\n // Summary\n //\n // 1. Add the correct display in all browsers\n\n summary {\n display: list-item; // 1\n cursor: pointer;\n }\n\n // Progress\n //\n // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n progress {\n vertical-align: baseline;\n }\n\n // Hidden attribute\n //\n // Always hide an element with the `hidden` HTML attribute.\n\n [hidden] {\n display: none !important;\n }\n}\n","@use \"sass:map\";\n@use \"sass:meta\";\n\n// Configuration\n//\n// Variables and settings not related to theme, components, and more go here. It does include layout.\n\n// Merge overrides on top of defaults, stripping null entries.\n// Null values let users remove map keys via @use ... with().\n// Accepts a list as $defaults (converted to a map with `true` values).\n@function defaults($defaults, $overrides) {\n @if meta.type-of($defaults) == \"list\" {\n $map: ();\n @each $key in $defaults {\n $map: map.merge($map, ($key: true));\n }\n $defaults: $map;\n }\n $merged: map.merge($defaults, $overrides);\n @each $key, $value in $merged {\n @if $value == null {\n $merged: map.remove($merged, $key);\n }\n }\n @return $merged;\n}\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: true !default;\n$enable-gradients: true !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: false !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: true !default;\n$enable-button-pointers: true !default;\n// $enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n\n$color-mode-type: \"media-query\" !default;\n$color-contrast-dark: #000 !default;\n$color-contrast-light: #fff !default;\n$min-contrast-ratio: 4.5 !default;\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer * .75,\n 4: $spacer,\n 5: $spacer * 1.25,\n 6: $spacer * 1.5,\n 7: $spacer * 2,\n 8: $spacer * 2.5,\n 9: $spacer * 3,\n) !default;\n\n$negative-spacers: (\n \"-1\": $spacer * -.25,\n \"-2\": $spacer * -.5,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n$sizes: (\n 1: $spacer,\n 2: $spacer * 2,\n 3: $spacer * 3,\n 4: $spacer * 4,\n 5: $spacer * 5,\n 6: $spacer * 6,\n 7: $spacer * 7,\n 8: $spacer * 8,\n 9: $spacer * 9,\n 10: $spacer * 10,\n 11: $spacer * 11,\n 12: $spacer * 12,\n) !default;\n\n$radius: .5rem !default;\n$radii: (\n 0: 0,\n 1: $radius * .25,\n 2: $radius * .375,\n 3: $radius * .5,\n 4: $radius * .75,\n 5: $radius,\n 6: $radius * 1.25,\n 7: $radius * 1.5,\n 8: $radius * 2,\n 9: $radius * 3,\n) !default;\n\n// Breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start breakpoints\n$breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 1024px,\n xl: 1280px,\n 2xl: 1536px\n) !default;\n// scss-docs-end breakpoints\n\n// @include _assert-ascending($breakpoints, \"$breakpoints\");\n// @include _assert-starts-at-zero($breakpoints, \"$breakpoints\");\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-x: 1.5rem !default;\n$grid-gutter-y: 0 !default;\n$grid-row-columns: 6 !default;\n\n$gutters: $spacers !default;\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1200px,\n 2xl: 1440px\n) !default;\n// scss-docs-end container-max-widths\n\n$container-padding-x: $grid-gutter-x !default;\n\n$utilities: () !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent)) !default;\n// scss-docs-end variable-gradient\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Links\n//\n// Style anchor elements.\n\n$link-decoration: underline !default;\n$link-underline-offset: .2em !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: color-mix(in oklch, var(--gray-100), var(--gray-200)) !default;\n// scss-docs-end border-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"auto\": auto,\n \"1x1\": #{\"1 / 1\"},\n \"4x3\": #{\"4 / 3\"},\n \"16x9\": #{\"16 / 9\"},\n \"21x9\": #{\"21 / 9\"}\n) !default;\n// scss-docs-end aspect-ratios\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$font-sizes: defaults(\n (\n \"xs\": (\n \"font-size\": .75rem,\n \"line-height\": 1.25\n ),\n \"sm\": (\n \"font-size\": .875rem,\n \"line-height\": 1.5\n ),\n \"md\": (\n \"font-size\": 1rem,\n \"line-height\": 1.5\n ),\n \"lg\": (\n \"font-size\": clamp(1.25rem, 1rem + .625vw, 1.5rem),\n \"line-height\": 1.5\n ),\n \"xl\": (\n \"font-size\": clamp(1.5rem, 1.1rem + .75vw, 1.75rem),\n \"line-height\": calc(2.5 / 1.75)\n ),\n \"2xl\": (\n \"font-size\": clamp(1.75rem, 1.3rem + 1vw, 2rem),\n \"line-height\": calc(3 / 2.25)\n ),\n \"3xl\": (\n \"font-size\": clamp(2rem, 1.5rem + 1.875vw, 2.5rem),\n \"line-height\": 1.2\n ),\n \"4xl\": (\n \"font-size\": clamp(2.25rem, 1.75rem + 2.5vw, 3rem),\n \"line-height\": 1.1\n ),\n \"5xl\": (\n \"font-size\": clamp(3rem, 2rem + 5vw, 4rem),\n \"line-height\": 1.1\n ),\n \"6xl\": (\n \"font-size\": clamp(3.75rem, 2.5rem + 6.25vw, 5rem),\n \"line-height\": 1\n ),\n ),\n $font-sizes\n);\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: var(--spacer-2) !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start type-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n// scss-docs-end type-variables\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-menu: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n// $zindex-drawer-backdrop: 1040 !default;\n$zindex-drawer: 1045 !default;\n$zindex-dialog: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n","@use \"sass:list\";\n@use \"sass:math\";\n@use \"sass:meta\";\n@use \"../config\" as *;\n\n// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n $return: ();\n @each $value in $radius {\n @if meta.type-of($value) == number {\n $return: list.append($return, math.max($value, 0));\n } @else {\n $return: list.append($return, $value);\n }\n }\n @return $return;\n}\n\n// scss-docs-start border-radius-mixins\n@mixin border-radius($radius: var(--radius-5), $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: valid-radius($radius);\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n border-start-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-end-radius: valid-radius($radius);\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-start-radius: valid-radius($radius);\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n border-end-start-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-start-radius: valid-radius($radius);\n }\n}\n// scss-docs-end border-radius-mixins\n"]}
\ No newline at end of file
* Copyright 2011-2026 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
-:root{--bs-blue-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .24 240));--bs-blue-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .24 240));--bs-blue-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .24 240));--bs-blue-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .24 240));--bs-blue-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .24 240));--bs-blue-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .24 240));--bs-blue-500:oklch(60% .24 240);--bs-blue-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .24 240));--bs-blue-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .24 240));--bs-blue-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .24 240));--bs-blue-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .24 240));--bs-blue-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .24 240));--bs-blue-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .24 240));--bs-indigo-025:color-mix(in lab, var(--bs-white) 94%, oklch(56% .26 288));--bs-indigo-050:color-mix(in lab, var(--bs-white) 90%, oklch(56% .26 288));--bs-indigo-100:color-mix(in lab, var(--bs-white) 80%, oklch(56% .26 288));--bs-indigo-200:color-mix(in lab, var(--bs-white) 60%, oklch(56% .26 288));--bs-indigo-300:color-mix(in lab, var(--bs-white) 40%, oklch(56% .26 288));--bs-indigo-400:color-mix(in lab, var(--bs-white) 20%, oklch(56% .26 288));--bs-indigo-500:oklch(56% .26 288);--bs-indigo-600:color-mix(in lab, var(--bs-black) 16%, oklch(56% .26 288));--bs-indigo-700:color-mix(in lab, var(--bs-black) 32%, oklch(56% .26 288));--bs-indigo-800:color-mix(in lab, var(--bs-black) 48%, oklch(56% .26 288));--bs-indigo-900:color-mix(in lab, var(--bs-black) 64%, oklch(56% .26 288));--bs-indigo-950:color-mix(in lab, var(--bs-black) 76%, oklch(56% .26 288));--bs-indigo-975:color-mix(in lab, var(--bs-black) 88%, oklch(56% .26 288));--bs-violet-025:color-mix(in lab, var(--bs-white) 94%, oklch(56% .24 300));--bs-violet-050:color-mix(in lab, var(--bs-white) 90%, oklch(56% .24 300));--bs-violet-100:color-mix(in lab, var(--bs-white) 80%, oklch(56% .24 300));--bs-violet-200:color-mix(in lab, var(--bs-white) 60%, oklch(56% .24 300));--bs-violet-300:color-mix(in lab, var(--bs-white) 40%, oklch(56% .24 300));--bs-violet-400:color-mix(in lab, var(--bs-white) 20%, oklch(56% .24 300));--bs-violet-500:oklch(56% .24 300);--bs-violet-600:color-mix(in lab, var(--bs-black) 16%, oklch(56% .24 300));--bs-violet-700:color-mix(in lab, var(--bs-black) 32%, oklch(56% .24 300));--bs-violet-800:color-mix(in lab, var(--bs-black) 48%, oklch(56% .24 300));--bs-violet-900:color-mix(in lab, var(--bs-black) 64%, oklch(56% .24 300));--bs-violet-950:color-mix(in lab, var(--bs-black) 76%, oklch(56% .24 300));--bs-violet-975:color-mix(in lab, var(--bs-black) 88%, oklch(56% .24 300));--bs-purple-025:color-mix(in lab, var(--bs-white) 94%, oklch(56% .24 320));--bs-purple-050:color-mix(in lab, var(--bs-white) 90%, oklch(56% .24 320));--bs-purple-100:color-mix(in lab, var(--bs-white) 80%, oklch(56% .24 320));--bs-purple-200:color-mix(in lab, var(--bs-white) 60%, oklch(56% .24 320));--bs-purple-300:color-mix(in lab, var(--bs-white) 40%, oklch(56% .24 320));--bs-purple-400:color-mix(in lab, var(--bs-white) 20%, oklch(56% .24 320));--bs-purple-500:oklch(56% .24 320);--bs-purple-600:color-mix(in lab, var(--bs-black) 16%, oklch(56% .24 320));--bs-purple-700:color-mix(in lab, var(--bs-black) 32%, oklch(56% .24 320));--bs-purple-800:color-mix(in lab, var(--bs-black) 48%, oklch(56% .24 320));--bs-purple-900:color-mix(in lab, var(--bs-black) 64%, oklch(56% .24 320));--bs-purple-950:color-mix(in lab, var(--bs-black) 76%, oklch(56% .24 320));--bs-purple-975:color-mix(in lab, var(--bs-black) 88%, oklch(56% .24 320));--bs-pink-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .22 4));--bs-pink-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .22 4));--bs-pink-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .22 4));--bs-pink-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .22 4));--bs-pink-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .22 4));--bs-pink-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .22 4));--bs-pink-500:oklch(60% .22 4);--bs-pink-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .22 4));--bs-pink-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .22 4));--bs-pink-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .22 4));--bs-pink-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .22 4));--bs-pink-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .22 4));--bs-pink-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .22 4));--bs-red-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .22 20));--bs-red-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .22 20));--bs-red-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .22 20));--bs-red-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .22 20));--bs-red-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .22 20));--bs-red-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .22 20));--bs-red-500:oklch(60% .22 20);--bs-red-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .22 20));--bs-red-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .22 20));--bs-red-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .22 20));--bs-red-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .22 20));--bs-red-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .22 20));--bs-red-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .22 20));--bs-orange-025:color-mix(in lab, var(--bs-white) 94%, oklch(70% .22 52));--bs-orange-050:color-mix(in lab, var(--bs-white) 90%, oklch(70% .22 52));--bs-orange-100:color-mix(in lab, var(--bs-white) 80%, oklch(70% .22 52));--bs-orange-200:color-mix(in lab, var(--bs-white) 60%, oklch(70% .22 52));--bs-orange-300:color-mix(in lab, var(--bs-white) 40%, oklch(70% .22 52));--bs-orange-400:color-mix(in lab, var(--bs-white) 20%, oklch(70% .22 52));--bs-orange-500:oklch(70% .22 52);--bs-orange-600:color-mix(in lab, var(--bs-black) 16%, oklch(70% .22 52));--bs-orange-700:color-mix(in lab, var(--bs-black) 32%, oklch(70% .22 52));--bs-orange-800:color-mix(in lab, var(--bs-black) 48%, oklch(70% .22 52));--bs-orange-900:color-mix(in lab, var(--bs-black) 64%, oklch(70% .22 52));--bs-orange-950:color-mix(in lab, var(--bs-black) 76%, oklch(70% .22 52));--bs-orange-975:color-mix(in lab, var(--bs-black) 88%, oklch(70% .22 52));--bs-amber-025:color-mix(in lab, var(--bs-white) 94%, oklch(79% .2 78));--bs-amber-050:color-mix(in lab, var(--bs-white) 90%, oklch(79% .2 78));--bs-amber-100:color-mix(in lab, var(--bs-white) 80%, oklch(79% .2 78));--bs-amber-200:color-mix(in lab, var(--bs-white) 60%, oklch(79% .2 78));--bs-amber-300:color-mix(in lab, var(--bs-white) 40%, oklch(79% .2 78));--bs-amber-400:color-mix(in lab, var(--bs-white) 20%, oklch(79% .2 78));--bs-amber-500:oklch(79% .2 78);--bs-amber-600:color-mix(in lab, var(--bs-black) 16%, oklch(79% .2 78));--bs-amber-700:color-mix(in lab, var(--bs-black) 32%, oklch(79% .2 78));--bs-amber-800:color-mix(in lab, var(--bs-black) 48%, oklch(79% .2 78));--bs-amber-900:color-mix(in lab, var(--bs-black) 64%, oklch(79% .2 78));--bs-amber-950:color-mix(in lab, var(--bs-black) 76%, oklch(79% .2 78));--bs-amber-975:color-mix(in lab, var(--bs-black) 88%, oklch(79% .2 78));--bs-yellow-025:color-mix(in lab, var(--bs-white) 94%, oklch(88% .24 88));--bs-yellow-050:color-mix(in lab, var(--bs-white) 90%, oklch(88% .24 88));--bs-yellow-100:color-mix(in lab, var(--bs-white) 80%, oklch(88% .24 88));--bs-yellow-200:color-mix(in lab, var(--bs-white) 60%, oklch(88% .24 88));--bs-yellow-300:color-mix(in lab, var(--bs-white) 40%, oklch(88% .24 88));--bs-yellow-400:color-mix(in lab, var(--bs-white) 20%, oklch(88% .24 88));--bs-yellow-500:oklch(88% .24 88);--bs-yellow-600:color-mix(in lab, var(--bs-black) 16%, oklch(88% .24 88));--bs-yellow-700:color-mix(in lab, var(--bs-black) 32%, oklch(88% .24 88));--bs-yellow-800:color-mix(in lab, var(--bs-black) 48%, oklch(88% .24 88));--bs-yellow-900:color-mix(in lab, var(--bs-black) 64%, oklch(88% .24 88));--bs-yellow-950:color-mix(in lab, var(--bs-black) 76%, oklch(88% .24 88));--bs-yellow-975:color-mix(in lab, var(--bs-black) 88%, oklch(88% .24 88));--bs-lime-025:color-mix(in lab, var(--bs-white) 94%, oklch(65% .24 135));--bs-lime-050:color-mix(in lab, var(--bs-white) 90%, oklch(65% .24 135));--bs-lime-100:color-mix(in lab, var(--bs-white) 80%, oklch(65% .24 135));--bs-lime-200:color-mix(in lab, var(--bs-white) 60%, oklch(65% .24 135));--bs-lime-300:color-mix(in lab, var(--bs-white) 40%, oklch(65% .24 135));--bs-lime-400:color-mix(in lab, var(--bs-white) 20%, oklch(65% .24 135));--bs-lime-500:oklch(65% .24 135);--bs-lime-600:color-mix(in lab, var(--bs-black) 16%, oklch(65% .24 135));--bs-lime-700:color-mix(in lab, var(--bs-black) 32%, oklch(65% .24 135));--bs-lime-800:color-mix(in lab, var(--bs-black) 48%, oklch(65% .24 135));--bs-lime-900:color-mix(in lab, var(--bs-black) 64%, oklch(65% .24 135));--bs-lime-950:color-mix(in lab, var(--bs-black) 76%, oklch(65% .24 135));--bs-lime-975:color-mix(in lab, var(--bs-black) 88%, oklch(65% .24 135));--bs-green-025:color-mix(in lab, var(--bs-white) 94%, oklch(64% .22 160));--bs-green-050:color-mix(in lab, var(--bs-white) 90%, oklch(64% .22 160));--bs-green-100:color-mix(in lab, var(--bs-white) 80%, oklch(64% .22 160));--bs-green-200:color-mix(in lab, var(--bs-white) 60%, oklch(64% .22 160));--bs-green-300:color-mix(in lab, var(--bs-white) 40%, oklch(64% .22 160));--bs-green-400:color-mix(in lab, var(--bs-white) 20%, oklch(64% .22 160));--bs-green-500:oklch(64% .22 160);--bs-green-600:color-mix(in lab, var(--bs-black) 16%, oklch(64% .22 160));--bs-green-700:color-mix(in lab, var(--bs-black) 32%, oklch(64% .22 160));--bs-green-800:color-mix(in lab, var(--bs-black) 48%, oklch(64% .22 160));--bs-green-900:color-mix(in lab, var(--bs-black) 64%, oklch(64% .22 160));--bs-green-950:color-mix(in lab, var(--bs-black) 76%, oklch(64% .22 160));--bs-green-975:color-mix(in lab, var(--bs-black) 88%, oklch(64% .22 160));--bs-teal-025:color-mix(in lab, var(--bs-white) 94%, oklch(68% .22 190));--bs-teal-050:color-mix(in lab, var(--bs-white) 90%, oklch(68% .22 190));--bs-teal-100:color-mix(in lab, var(--bs-white) 80%, oklch(68% .22 190));--bs-teal-200:color-mix(in lab, var(--bs-white) 60%, oklch(68% .22 190));--bs-teal-300:color-mix(in lab, var(--bs-white) 40%, oklch(68% .22 190));--bs-teal-400:color-mix(in lab, var(--bs-white) 20%, oklch(68% .22 190));--bs-teal-500:oklch(68% .22 190);--bs-teal-600:color-mix(in lab, var(--bs-black) 16%, oklch(68% .22 190));--bs-teal-700:color-mix(in lab, var(--bs-black) 32%, oklch(68% .22 190));--bs-teal-800:color-mix(in lab, var(--bs-black) 48%, oklch(68% .22 190));--bs-teal-900:color-mix(in lab, var(--bs-black) 64%, oklch(68% .22 190));--bs-teal-950:color-mix(in lab, var(--bs-black) 76%, oklch(68% .22 190));--bs-teal-975:color-mix(in lab, var(--bs-black) 88%, oklch(68% .22 190));--bs-cyan-025:color-mix(in lab, var(--bs-white) 94%, oklch(69% .22 220));--bs-cyan-050:color-mix(in lab, var(--bs-white) 90%, oklch(69% .22 220));--bs-cyan-100:color-mix(in lab, var(--bs-white) 80%, oklch(69% .22 220));--bs-cyan-200:color-mix(in lab, var(--bs-white) 60%, oklch(69% .22 220));--bs-cyan-300:color-mix(in lab, var(--bs-white) 40%, oklch(69% .22 220));--bs-cyan-400:color-mix(in lab, var(--bs-white) 20%, oklch(69% .22 220));--bs-cyan-500:oklch(69% .22 220);--bs-cyan-600:color-mix(in lab, var(--bs-black) 16%, oklch(69% .22 220));--bs-cyan-700:color-mix(in lab, var(--bs-black) 32%, oklch(69% .22 220));--bs-cyan-800:color-mix(in lab, var(--bs-black) 48%, oklch(69% .22 220));--bs-cyan-900:color-mix(in lab, var(--bs-black) 64%, oklch(69% .22 220));--bs-cyan-950:color-mix(in lab, var(--bs-black) 76%, oklch(69% .22 220));--bs-cyan-975:color-mix(in lab, var(--bs-black) 88%, oklch(69% .22 220));--bs-brown-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .12 54));--bs-brown-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .12 54));--bs-brown-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .12 54));--bs-brown-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .12 54));--bs-brown-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .12 54));--bs-brown-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .12 54));--bs-brown-500:oklch(60% .12 54);--bs-brown-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .12 54));--bs-brown-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .12 54));--bs-brown-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .12 54));--bs-brown-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .12 54));--bs-brown-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .12 54));--bs-brown-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .12 54));--bs-gray-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .02 245));--bs-gray-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .02 245));--bs-gray-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .02 245));--bs-gray-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .02 245));--bs-gray-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .02 245));--bs-gray-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .02 245));--bs-gray-500:oklch(60% .02 245);--bs-gray-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .02 245));--bs-gray-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .02 245));--bs-gray-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .02 245));--bs-gray-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .02 245));--bs-gray-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .02 245));--bs-gray-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .02 245));--bs-pewter-025:color-mix(in lab, var(--bs-white) 94%, oklch(65% .01 290));--bs-pewter-050:color-mix(in lab, var(--bs-white) 90%, oklch(65% .01 290));--bs-pewter-100:color-mix(in lab, var(--bs-white) 80%, oklch(65% .01 290));--bs-pewter-200:color-mix(in lab, var(--bs-white) 60%, oklch(65% .01 290));--bs-pewter-300:color-mix(in lab, var(--bs-white) 40%, oklch(65% .01 290));--bs-pewter-400:color-mix(in lab, var(--bs-white) 20%, oklch(65% .01 290));--bs-pewter-500:oklch(65% .01 290);--bs-pewter-600:color-mix(in lab, var(--bs-black) 16%, oklch(65% .01 290));--bs-pewter-700:color-mix(in lab, var(--bs-black) 32%, oklch(65% .01 290));--bs-pewter-800:color-mix(in lab, var(--bs-black) 48%, oklch(65% .01 290));--bs-pewter-900:color-mix(in lab, var(--bs-black) 64%, oklch(65% .01 290));--bs-pewter-950:color-mix(in lab, var(--bs-black) 76%, oklch(65% .01 290));--bs-pewter-975:color-mix(in lab, var(--bs-black) 88%, oklch(65% .01 290))}@layer colors,theme,config,root;@layer reboot{*,:before,:after{box-sizing:border-box}:root{accent-color:var(--bs-primary-base)}body{font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-fg-body);text-align:var(--bs-body-text-align);background-color:var(--bs-bg-body);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0}hr{margin:var(--bs-hr-margin-y,var(--bs-spacer)) 0;border:0;border-block-start:var(--bs-border-width) solid var(--bs-hr-border-color)}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:var(--bs-spacer-2);color:var(--bs-heading-color);font-weight:500;line-height:1.2}h1,.h1{font-size:var(--bs-font-size-3xl)}h2,.h2{font-size:var(--bs-font-size-2xl)}h3,.h3{font-size:var(--bs-font-size-xl)}h4,.h4{font-size:var(--bs-font-size-lg)}h5,.h5{font-size:var(--bs-font-size-md)}h6,.h6{font-size:var(--bs-font-size-sm)}p{margin-top:0;margin-bottom:1rem}abbr[title]{cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1rem}ol,ul{padding-inline-start:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-inline-start:0;margin-bottom:.5rem}blockquote{margin:0 0 1rem}blockquote>*{margin-block:0}b,strong{font-weight:bolder}small,.small{font-size:var(--bs-small-font-size,87.5%)}mark,.mark{--bs-mark-padding:.1875em;--bs-mark-color:var(--bs-fg-body);--bs-mark-bg:var(--lightningcss-light,var(--bs-yellow-100))var(--lightningcss-dark,var(--bs-yellow-900));padding:var(--bs-mark-padding);color:var(--bs-mark-color);background-color:var(--bs-mark-bg)}sub,sup{font-size:var(--bs-sub-sup-font-size,.75em);vertical-align:baseline;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}a{color:var(--bs-theme-fg,var(--bs-link-color));-webkit-text-decoration:var(--bs-link-decoration);-webkit-text-decoration:var(--bs-link-decoration);text-decoration:var(--bs-link-decoration);text-underline-offset:.2em}a:hover{color:var(--bs-theme-fg-emphasis,var(--bs-link-hover-color));-webkit-text-decoration:var(--bs-link-hover-decoration,var(--bs-link-decoration));-webkit-text-decoration:var(--bs-link-hover-decoration,var(--bs-link-decoration));text-decoration:var(--bs-link-hover-decoration,var(--bs-link-decoration))}a:not([href],[class]),a:not([href],[class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-mono);font-size:1em}pre{font-size:var(--bs-code-font-size);color:var(--bs-code-color,inherit);margin-top:0;margin-bottom:1rem;display:block;overflow:auto}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:var(--bs-code-font-size);color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{--bs-kbd-padding-y:.125rem;--bs-kbd-padding-x:.25rem;--bs-kbd-font-size:var(--bs-font-size-xs);--bs-kbd-color:var(--bs-bg-body);--bs-kbd-bg:var(--bs-fg-2);--bs-kbd-border-radius:var(--bs-radius-5);padding:var(--bs-kbd-padding-y) var(--bs-kbd-padding-x);font-size:var(--bs-kbd-font-size);color:var(--bs-kbd-color);background-color:var(--bs-kbd-bg);border-radius:var(--bs-kbd-border-radius)}kbd kbd{font-size:1em;font-weight:inherit;padding:0}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{color:var(--bs-fg-3);text-align:start;padding-block:.5rem}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date],[type=datetime-local],[type=month],[type=week],[type=time])::-webkit-calendar-picker-indicator{display:none!important}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}textarea{resize:vertical}fieldset{border:0;min-width:0;margin:0;padding:0}legend{float:inline-start;width:100%;font-size:1.5rem;line-height:inherit;margin-bottom:.5rem;padding:0}legend+*{clear:inline-start}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit-text{padding:0}::-webkit-datetime-edit-millisecond-field{padding:0}::-webkit-datetime-edit-second-field{padding:0}::-webkit-datetime-edit-minute-field{padding:0}::-webkit-datetime-edit-hour-field{padding:0}::-webkit-datetime-edit-ampm-field{padding:0}::-webkit-datetime-edit-day-field{padding:0}::-webkit-datetime-edit-week-field{padding:0}::-webkit-datetime-edit-month-field{padding:0}::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button{cursor:pointer;filter:grayscale()}[type=tel],[type=url],[type=email],[type=number]{direction:ltr}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{cursor:pointer;display:list-item}progress{vertical-align:baseline}[hidden]{display:none!important}}@layer layout,content,forms,components,custom,helpers,utilities;:root{--bs-black:#000;--bs-white:#fff;--bs-gradient:linear-gradient(180deg, color-mix(var(--bs-white) 15%, transparent), color-mix(var(--bs-white) 0%, transparent));--bs-font-weight-lighter:lighter;--bs-font-weight-light:300;--bs-font-weight-normal:400;--bs-font-weight-medium:500;--bs-font-weight-semibold:600;--bs-font-weight-bold:700;--bs-font-weight-bolder:bolder;--bs-body-font-family:system-ui;--bs-body-font-size:var(--bs-font-size-base);--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-heading-color:inherit;--bs-hr-border-color:var(--bs-border-color);--bs-link-color:var(--lightningcss-light,var(--bs-primary-base))var(--lightningcss-dark,var(--bs-primary-fg));--bs-link-decoration:underline;--bs-link-hover-color:color-mix(in oklch, var(--bs-link-color) 90%, #000);--bs-font-mono:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-code-font-size:95%;--bs-code-color:var(--bs-fg-2);--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:var(--lightningcss-light,color-mix(in oklch, var(--bs-gray-100), var(--bs-gray-200)))var(--lightningcss-dark,var(--bs-gray-700));--bs-border-color-translucent:color-mix(in oklch, var(--bs-fg-body) 15%, transparent);--bs-box-shadow:0 .5rem 1rem #00000026;--bs-box-shadow-sm:0 .125rem .25rem #00000013;--bs-box-shadow-lg:0 1rem 3rem #0000002d;--bs-box-shadow-inset:inset 0 1px 2px #00000013;--bs-spacer:1rem;--bs-focus-ring-width:3px;--bs-focus-ring-offset:1px;--bs-focus-ring-color:var(--bs-primary-focus-ring);--bs-focus-ring:var(--bs-focus-ring-width) solid var(--bs-focus-ring-color);--bs-control-checked-bg:var(--bs-primary-base);--bs-control-checked-border-color:var(--bs-control-checked-bg);--bs-control-active-bg:var(--bs-primary-base);--bs-control-active-border-color:var(--bs-control-active-bg);--bs-control-disabled-bg:var(--bs-bg-3);--bs-control-disabled-opacity:.65;--bs-btn-input-fg:var(--bs-fg-body);--bs-btn-input-bg:var(--bs-bg-body);--bs-btn-input-min-height:2.375rem;--bs-btn-input-padding-y:.375rem;--bs-btn-input-padding-x:.75rem;--bs-btn-input-font-size:var(--bs-font-size-base);--bs-btn-input-line-height:var(--bs-line-height-base);--bs-btn-input-border-radius:var(--bs-radius-5);--bs-btn-input-xs-min-height:1.5rem;--bs-btn-input-xs-padding-y:.125rem;--bs-btn-input-xs-padding-x:.5rem;--bs-btn-input-xs-font-size:var(--bs-font-size-xs);--bs-btn-input-xs-line-height:1.125;--bs-btn-input-xs-border-radius:var(--bs-radius-5);--bs-btn-input-sm-min-height:2rem;--bs-btn-input-sm-padding-y:.25rem;--bs-btn-input-sm-padding-x:.625rem;--bs-btn-input-sm-font-size:var(--bs-font-size-sm);--bs-btn-input-sm-line-height:var(--bs-line-height-sm);--bs-btn-input-sm-border-radius:var(--bs-radius-5);--bs-btn-input-lg-min-height:2.75rem;--bs-btn-input-lg-padding-y:.5rem;--bs-btn-input-lg-padding-x:1rem;--bs-btn-input-lg-font-size:var(--bs-font-size-md);--bs-btn-input-lg-line-height:var(--bs-line-height-md);--bs-btn-input-lg-border-radius:var(--bs-radius-7);--bs-font-size-xs:.75rem;--bs-line-height-xs:1.25;--bs-font-size-sm:.875rem;--bs-line-height-sm:1.5;--bs-font-size-md:1rem;--bs-line-height-md:1.5;--bs-font-size-lg:clamp(1.25rem, 1rem + .625vw, 1.5rem);--bs-line-height-lg:1.5;--bs-font-size-xl:clamp(1.5rem, 1.1rem + .75vw, 1.75rem);--bs-line-height-xl:1.42857;--bs-font-size-2xl:clamp(1.75rem, 1.3rem + 1vw, 2rem);--bs-line-height-2xl:1.33333;--bs-font-size-3xl:clamp(2rem, 1.5rem + 1.875vw, 2.5rem);--bs-line-height-3xl:1.2;--bs-font-size-4xl:clamp(2.25rem, 1.75rem + 2.5vw, 3rem);--bs-line-height-4xl:1.1;--bs-font-size-5xl:clamp(3rem, 2rem + 5vw, 4rem);--bs-line-height-5xl:1.1;--bs-font-size-6xl:clamp(3.75rem, 2.5rem + 6.25vw, 5rem);--bs-line-height-6xl:1;--bs-primary-base:var(--bs-blue-500);--bs-primary-fg:var(--lightningcss-light,var(--bs-blue-600))var(--lightningcss-dark,var(--bs-blue-400));--bs-primary-fg-emphasis:var(--lightningcss-light,var(--bs-blue-800))var(--lightningcss-dark,var(--bs-blue-200));--bs-primary-bg:var(--bs-blue-500);--bs-primary-bg-subtle:var(--lightningcss-light,var(--bs-blue-100))var(--lightningcss-dark,var(--bs-blue-900));--bs-primary-bg-muted:var(--lightningcss-light,var(--bs-blue-200))var(--lightningcss-dark,var(--bs-blue-800));--bs-primary-border:var(--lightningcss-light,var(--bs-blue-300))var(--lightningcss-dark,var(--bs-blue-600));--bs-primary-focus-ring:var(--lightningcss-light,color-mix(in oklch, var(--bs-blue-500) 50%, var(--bs-bg-body)))var(--lightningcss-dark,color-mix(in oklch, var(--bs-blue-500) 75%, var(--bs-bg-body)));--bs-primary-contrast:var(--bs-white);--bs-accent-base:var(--bs-indigo-500);--bs-accent-fg:var(--lightningcss-light,var(--bs-indigo-600))var(--lightningcss-dark,color-mix(in oklch, var(--bs-indigo-400), var(--bs-indigo-300)));--bs-accent-fg-emphasis:var(--lightningcss-light,var(--bs-indigo-800))var(--lightningcss-dark,var(--bs-indigo-300));--bs-accent-bg:var(--bs-indigo-500);--bs-accent-bg-subtle:var(--lightningcss-light,var(--bs-indigo-100))var(--lightningcss-dark,var(--bs-indigo-900));--bs-accent-bg-muted:var(--lightningcss-light,var(--bs-indigo-200))var(--lightningcss-dark,var(--bs-indigo-800));--bs-accent-border:var(--lightningcss-light,var(--bs-indigo-300))var(--lightningcss-dark,var(--bs-indigo-600));--bs-accent-focus-ring:var(--lightningcss-light,color-mix(in oklch, var(--bs-indigo-500) 50%, var(--bs-bg-body)))var(--lightningcss-dark,color-mix(in oklch, var(--bs-indigo-500) 75%, var(--bs-bg-body)));--bs-accent-contrast:var(--bs-white);--bs-success-base:var(--bs-green-500);--bs-success-fg:var(--lightningcss-light,var(--bs-green-600))var(--lightningcss-dark,var(--bs-green-400));--bs-success-fg-emphasis:var(--lightningcss-light,var(--bs-green-800))var(--lightningcss-dark,var(--bs-green-300));--bs-success-bg:var(--bs-green-500);--bs-success-bg-subtle:var(--lightningcss-light,var(--bs-green-100))var(--lightningcss-dark,var(--bs-green-900));--bs-success-bg-muted:var(--lightningcss-light,var(--bs-green-200))var(--lightningcss-dark,var(--bs-green-800));--bs-success-border:var(--lightningcss-light,var(--bs-green-300))var(--lightningcss-dark,var(--bs-green-600));--bs-success-focus-ring:var(--lightningcss-light,color-mix(in oklch, var(--bs-green-500) 50%, var(--bs-bg-body)))var(--lightningcss-dark,color-mix(in oklch, var(--bs-green-500) 75%, var(--bs-bg-body)));--bs-success-contrast:var(--bs-white);--bs-danger-base:var(--bs-red-500);--bs-danger-fg:var(--lightningcss-light,var(--bs-red-600))var(--lightningcss-dark,var(--bs-red-400));--bs-danger-fg-emphasis:var(--lightningcss-light,var(--bs-red-800))var(--lightningcss-dark,var(--bs-red-300));--bs-danger-bg:var(--bs-red-500);--bs-danger-bg-subtle:var(--lightningcss-light,var(--bs-red-100))var(--lightningcss-dark,var(--bs-red-900));--bs-danger-bg-muted:var(--lightningcss-light,var(--bs-red-200))var(--lightningcss-dark,var(--bs-red-800));--bs-danger-border:var(--lightningcss-light,var(--bs-red-300))var(--lightningcss-dark,var(--bs-red-600));--bs-danger-focus-ring:var(--lightningcss-light,color-mix(in oklch, var(--bs-red-500) 50%, var(--bs-bg-body)))var(--lightningcss-dark,color-mix(in oklch, var(--bs-red-500) 75%, var(--bs-bg-body)));--bs-danger-contrast:var(--bs-white);--bs-warning-base:var(--bs-yellow-500);--bs-warning-fg:var(--lightningcss-light,var(--bs-yellow-700))var(--lightningcss-dark,var(--bs-yellow-400));--bs-warning-fg-emphasis:var(--lightningcss-light,var(--bs-yellow-800))var(--lightningcss-dark,var(--bs-yellow-300));--bs-warning-bg:var(--bs-yellow-500);--bs-warning-bg-subtle:var(--lightningcss-light,var(--bs-yellow-100))var(--lightningcss-dark,var(--bs-yellow-900));--bs-warning-bg-muted:var(--lightningcss-light,var(--bs-yellow-200))var(--lightningcss-dark,var(--bs-yellow-800));--bs-warning-border:var(--lightningcss-light,var(--bs-yellow-300))var(--lightningcss-dark,var(--bs-yellow-600));--bs-warning-focus-ring:var(--lightningcss-light,color-mix(in oklch, var(--bs-yellow-500) 50%, var(--bs-bg-body)))var(--lightningcss-dark,color-mix(in oklch, var(--bs-yellow-400) 85%, var(--bs-bg-body)));--bs-warning-contrast:var(--bs-gray-900);--bs-info-base:var(--bs-cyan-500);--bs-info-fg:var(--lightningcss-light,var(--bs-cyan-600))var(--lightningcss-dark,var(--bs-cyan-400));--bs-info-fg-emphasis:var(--lightningcss-light,var(--bs-cyan-800))var(--lightningcss-dark,var(--bs-cyan-300));--bs-info-bg:var(--bs-cyan-500);--bs-info-bg-subtle:var(--lightningcss-light,var(--bs-cyan-100))var(--lightningcss-dark,var(--bs-cyan-900));--bs-info-bg-muted:var(--lightningcss-light,var(--bs-cyan-200))var(--lightningcss-dark,var(--bs-cyan-800));--bs-info-border:var(--lightningcss-light,var(--bs-cyan-300))var(--lightningcss-dark,var(--bs-cyan-600));--bs-info-focus-ring:var(--lightningcss-light,color-mix(in oklch, var(--bs-cyan-500) 50%, var(--bs-bg-body)))var(--lightningcss-dark,color-mix(in oklch, var(--bs-cyan-500) 75%, var(--bs-bg-body)));--bs-info-contrast:var(--bs-gray-900);--bs-inverse-base:var(--bs-gray-900);--bs-inverse-fg:var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-gray-200));--bs-inverse-fg-emphasis:var(--lightningcss-light,var(--bs-gray-975))var(--lightningcss-dark,var(--bs-white));--bs-inverse-bg:var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-gray-025));--bs-inverse-bg-subtle:var(--lightningcss-light,var(--bs-gray-100))var(--lightningcss-dark,var(--bs-gray-900));--bs-inverse-bg-muted:var(--lightningcss-light,var(--bs-gray-200))var(--lightningcss-dark,var(--bs-gray-300));--bs-inverse-border:var(--lightningcss-light,var(--bs-gray-400))var(--lightningcss-dark,var(--bs-gray-100));--bs-inverse-focus-ring:color-mix(in oklch, var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-gray-100)) 50%, var(--bs-bg-body));--bs-inverse-contrast:var(--lightningcss-light,var(--bs-white))var(--lightningcss-dark,var(--bs-gray-900));--bs-secondary-base:var(--bs-gray-200);--bs-secondary-fg:var(--lightningcss-light,var(--bs-gray-600))var(--lightningcss-dark,var(--bs-gray-400));--bs-secondary-fg-emphasis:var(--lightningcss-light,var(--bs-gray-800))var(--lightningcss-dark,var(--bs-gray-200));--bs-secondary-bg:var(--lightningcss-light,var(--bs-gray-100))var(--lightningcss-dark,var(--bs-gray-600));--bs-secondary-bg-subtle:var(--lightningcss-light,var(--bs-gray-050))var(--lightningcss-dark,var(--bs-gray-800));--bs-secondary-bg-muted:var(--lightningcss-light,var(--bs-gray-100))var(--lightningcss-dark,var(--bs-gray-700));--bs-secondary-border:var(--lightningcss-light,var(--bs-gray-300))var(--lightningcss-dark,var(--bs-gray-600));--bs-secondary-focus-ring:color-mix(in oklch, var(--lightningcss-light,var(--bs-gray-500))var(--lightningcss-dark,var(--bs-gray-300)) 50%, var(--bs-bg-body));--bs-secondary-contrast:var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-white));--bs-bg-body:var(--lightningcss-light,var(--bs-white))var(--lightningcss-dark,var(--bs-gray-975));--bs-bg-1:var(--lightningcss-light,var(--bs-gray-025))var(--lightningcss-dark,var(--bs-gray-950));--bs-bg-2:var(--lightningcss-light,var(--bs-gray-050))var(--lightningcss-dark,var(--bs-gray-900));--bs-bg-3:var(--lightningcss-light,var(--bs-gray-100))var(--lightningcss-dark,var(--bs-gray-800));--bs-bg-4:var(--lightningcss-light,var(--bs-gray-200))var(--lightningcss-dark,var(--bs-gray-700));--bs-bg-fg:var(--bs-fg-body);--bs-bg-white:var(--bs-white);--bs-bg-black:var(--bs-black);--bs-bg-transparent:transparent;--bs-bg-inherit:inherit;--bs-fg-body:var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-gray-050));--bs-fg-1:var(--lightningcss-light,var(--bs-gray-800))var(--lightningcss-dark,var(--bs-gray-200));--bs-fg-2:var(--lightningcss-light,var(--bs-gray-700))var(--lightningcss-dark,var(--bs-gray-300));--bs-fg-3:var(--lightningcss-light,var(--bs-gray-600))var(--lightningcss-dark,var(--bs-gray-500));--bs-fg-4:var(--lightningcss-light,var(--bs-gray-500))var(--lightningcss-dark,var(--bs-gray-600));--bs-fg-bg:var(--bs-bg-body);--bs-fg-white:var(--bs-white);--bs-fg-black:var(--bs-black);--bs-fg-inherit:inherit;--bs-border-bg:var(--bs-bg-body);--bs-border-body:var(--lightningcss-light,var(--bs-gray-300))var(--lightningcss-dark,var(--bs-gray-800));--bs-border-muted:var(--lightningcss-light,var(--bs-gray-200))var(--lightningcss-dark,var(--bs-gray-800));--bs-border-subtle:var(--lightningcss-light,var(--bs-gray-100))var(--lightningcss-dark,var(--bs-gray-900));--bs-border-emphasized:var(--lightningcss-light,var(--bs-gray-400))var(--lightningcss-dark,var(--bs-gray-600));--bs-border-white:var(--bs-white);--bs-border-black:var(--bs-black);--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:1024px;--bs-breakpoint-xl:1280px;--bs-breakpoint-2xl:1536px;--bs-spacer-0:0;--bs-spacer-1:.25rem;--bs-spacer-2:.5rem;--bs-spacer-3:.75rem;--bs-spacer-4:1rem;--bs-spacer-5:1.25rem;--bs-spacer-6:1.5rem;--bs-spacer-7:2rem;--bs-spacer-8:2.5rem;--bs-spacer-9:3rem;--bs-radius-0:0;--bs-radius-1:.125rem;--bs-radius-2:.1875rem;--bs-radius-3:.25rem;--bs-radius-4:.375rem;--bs-radius-5:.5rem;--bs-radius-6:.625rem;--bs-radius-7:.75rem;--bs-radius-8:1rem;--bs-radius-9:1.5rem;--bs-radius-pill:50rem;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;scrollbar-gutter:stable}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}[data-bs-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-bs-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}
+:root{--bs-blue-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .24 240));--bs-blue-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .24 240));--bs-blue-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .24 240));--bs-blue-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .24 240));--bs-blue-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .24 240));--bs-blue-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .24 240));--bs-blue-500:oklch(60% .24 240);--bs-blue-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .24 240));--bs-blue-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .24 240));--bs-blue-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .24 240));--bs-blue-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .24 240));--bs-blue-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .24 240));--bs-blue-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .24 240));--bs-indigo-025:color-mix(in lab, var(--bs-white) 94%, oklch(56% .26 288));--bs-indigo-050:color-mix(in lab, var(--bs-white) 90%, oklch(56% .26 288));--bs-indigo-100:color-mix(in lab, var(--bs-white) 80%, oklch(56% .26 288));--bs-indigo-200:color-mix(in lab, var(--bs-white) 60%, oklch(56% .26 288));--bs-indigo-300:color-mix(in lab, var(--bs-white) 40%, oklch(56% .26 288));--bs-indigo-400:color-mix(in lab, var(--bs-white) 20%, oklch(56% .26 288));--bs-indigo-500:oklch(56% .26 288);--bs-indigo-600:color-mix(in lab, var(--bs-black) 16%, oklch(56% .26 288));--bs-indigo-700:color-mix(in lab, var(--bs-black) 32%, oklch(56% .26 288));--bs-indigo-800:color-mix(in lab, var(--bs-black) 48%, oklch(56% .26 288));--bs-indigo-900:color-mix(in lab, var(--bs-black) 64%, oklch(56% .26 288));--bs-indigo-950:color-mix(in lab, var(--bs-black) 76%, oklch(56% .26 288));--bs-indigo-975:color-mix(in lab, var(--bs-black) 88%, oklch(56% .26 288));--bs-violet-025:color-mix(in lab, var(--bs-white) 94%, oklch(56% .24 300));--bs-violet-050:color-mix(in lab, var(--bs-white) 90%, oklch(56% .24 300));--bs-violet-100:color-mix(in lab, var(--bs-white) 80%, oklch(56% .24 300));--bs-violet-200:color-mix(in lab, var(--bs-white) 60%, oklch(56% .24 300));--bs-violet-300:color-mix(in lab, var(--bs-white) 40%, oklch(56% .24 300));--bs-violet-400:color-mix(in lab, var(--bs-white) 20%, oklch(56% .24 300));--bs-violet-500:oklch(56% .24 300);--bs-violet-600:color-mix(in lab, var(--bs-black) 16%, oklch(56% .24 300));--bs-violet-700:color-mix(in lab, var(--bs-black) 32%, oklch(56% .24 300));--bs-violet-800:color-mix(in lab, var(--bs-black) 48%, oklch(56% .24 300));--bs-violet-900:color-mix(in lab, var(--bs-black) 64%, oklch(56% .24 300));--bs-violet-950:color-mix(in lab, var(--bs-black) 76%, oklch(56% .24 300));--bs-violet-975:color-mix(in lab, var(--bs-black) 88%, oklch(56% .24 300));--bs-purple-025:color-mix(in lab, var(--bs-white) 94%, oklch(56% .24 320));--bs-purple-050:color-mix(in lab, var(--bs-white) 90%, oklch(56% .24 320));--bs-purple-100:color-mix(in lab, var(--bs-white) 80%, oklch(56% .24 320));--bs-purple-200:color-mix(in lab, var(--bs-white) 60%, oklch(56% .24 320));--bs-purple-300:color-mix(in lab, var(--bs-white) 40%, oklch(56% .24 320));--bs-purple-400:color-mix(in lab, var(--bs-white) 20%, oklch(56% .24 320));--bs-purple-500:oklch(56% .24 320);--bs-purple-600:color-mix(in lab, var(--bs-black) 16%, oklch(56% .24 320));--bs-purple-700:color-mix(in lab, var(--bs-black) 32%, oklch(56% .24 320));--bs-purple-800:color-mix(in lab, var(--bs-black) 48%, oklch(56% .24 320));--bs-purple-900:color-mix(in lab, var(--bs-black) 64%, oklch(56% .24 320));--bs-purple-950:color-mix(in lab, var(--bs-black) 76%, oklch(56% .24 320));--bs-purple-975:color-mix(in lab, var(--bs-black) 88%, oklch(56% .24 320));--bs-pink-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .22 4));--bs-pink-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .22 4));--bs-pink-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .22 4));--bs-pink-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .22 4));--bs-pink-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .22 4));--bs-pink-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .22 4));--bs-pink-500:oklch(60% .22 4);--bs-pink-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .22 4));--bs-pink-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .22 4));--bs-pink-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .22 4));--bs-pink-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .22 4));--bs-pink-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .22 4));--bs-pink-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .22 4));--bs-red-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .22 20));--bs-red-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .22 20));--bs-red-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .22 20));--bs-red-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .22 20));--bs-red-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .22 20));--bs-red-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .22 20));--bs-red-500:oklch(60% .22 20);--bs-red-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .22 20));--bs-red-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .22 20));--bs-red-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .22 20));--bs-red-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .22 20));--bs-red-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .22 20));--bs-red-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .22 20));--bs-orange-025:color-mix(in lab, var(--bs-white) 94%, oklch(70% .22 52));--bs-orange-050:color-mix(in lab, var(--bs-white) 90%, oklch(70% .22 52));--bs-orange-100:color-mix(in lab, var(--bs-white) 80%, oklch(70% .22 52));--bs-orange-200:color-mix(in lab, var(--bs-white) 60%, oklch(70% .22 52));--bs-orange-300:color-mix(in lab, var(--bs-white) 40%, oklch(70% .22 52));--bs-orange-400:color-mix(in lab, var(--bs-white) 20%, oklch(70% .22 52));--bs-orange-500:oklch(70% .22 52);--bs-orange-600:color-mix(in lab, var(--bs-black) 16%, oklch(70% .22 52));--bs-orange-700:color-mix(in lab, var(--bs-black) 32%, oklch(70% .22 52));--bs-orange-800:color-mix(in lab, var(--bs-black) 48%, oklch(70% .22 52));--bs-orange-900:color-mix(in lab, var(--bs-black) 64%, oklch(70% .22 52));--bs-orange-950:color-mix(in lab, var(--bs-black) 76%, oklch(70% .22 52));--bs-orange-975:color-mix(in lab, var(--bs-black) 88%, oklch(70% .22 52));--bs-amber-025:color-mix(in lab, var(--bs-white) 94%, oklch(79% .2 78));--bs-amber-050:color-mix(in lab, var(--bs-white) 90%, oklch(79% .2 78));--bs-amber-100:color-mix(in lab, var(--bs-white) 80%, oklch(79% .2 78));--bs-amber-200:color-mix(in lab, var(--bs-white) 60%, oklch(79% .2 78));--bs-amber-300:color-mix(in lab, var(--bs-white) 40%, oklch(79% .2 78));--bs-amber-400:color-mix(in lab, var(--bs-white) 20%, oklch(79% .2 78));--bs-amber-500:oklch(79% .2 78);--bs-amber-600:color-mix(in lab, var(--bs-black) 16%, oklch(79% .2 78));--bs-amber-700:color-mix(in lab, var(--bs-black) 32%, oklch(79% .2 78));--bs-amber-800:color-mix(in lab, var(--bs-black) 48%, oklch(79% .2 78));--bs-amber-900:color-mix(in lab, var(--bs-black) 64%, oklch(79% .2 78));--bs-amber-950:color-mix(in lab, var(--bs-black) 76%, oklch(79% .2 78));--bs-amber-975:color-mix(in lab, var(--bs-black) 88%, oklch(79% .2 78));--bs-yellow-025:color-mix(in lab, var(--bs-white) 94%, oklch(88% .24 88));--bs-yellow-050:color-mix(in lab, var(--bs-white) 90%, oklch(88% .24 88));--bs-yellow-100:color-mix(in lab, var(--bs-white) 80%, oklch(88% .24 88));--bs-yellow-200:color-mix(in lab, var(--bs-white) 60%, oklch(88% .24 88));--bs-yellow-300:color-mix(in lab, var(--bs-white) 40%, oklch(88% .24 88));--bs-yellow-400:color-mix(in lab, var(--bs-white) 20%, oklch(88% .24 88));--bs-yellow-500:oklch(88% .24 88);--bs-yellow-600:color-mix(in lab, var(--bs-black) 16%, oklch(88% .24 88));--bs-yellow-700:color-mix(in lab, var(--bs-black) 32%, oklch(88% .24 88));--bs-yellow-800:color-mix(in lab, var(--bs-black) 48%, oklch(88% .24 88));--bs-yellow-900:color-mix(in lab, var(--bs-black) 64%, oklch(88% .24 88));--bs-yellow-950:color-mix(in lab, var(--bs-black) 76%, oklch(88% .24 88));--bs-yellow-975:color-mix(in lab, var(--bs-black) 88%, oklch(88% .24 88));--bs-lime-025:color-mix(in lab, var(--bs-white) 94%, oklch(65% .24 135));--bs-lime-050:color-mix(in lab, var(--bs-white) 90%, oklch(65% .24 135));--bs-lime-100:color-mix(in lab, var(--bs-white) 80%, oklch(65% .24 135));--bs-lime-200:color-mix(in lab, var(--bs-white) 60%, oklch(65% .24 135));--bs-lime-300:color-mix(in lab, var(--bs-white) 40%, oklch(65% .24 135));--bs-lime-400:color-mix(in lab, var(--bs-white) 20%, oklch(65% .24 135));--bs-lime-500:oklch(65% .24 135);--bs-lime-600:color-mix(in lab, var(--bs-black) 16%, oklch(65% .24 135));--bs-lime-700:color-mix(in lab, var(--bs-black) 32%, oklch(65% .24 135));--bs-lime-800:color-mix(in lab, var(--bs-black) 48%, oklch(65% .24 135));--bs-lime-900:color-mix(in lab, var(--bs-black) 64%, oklch(65% .24 135));--bs-lime-950:color-mix(in lab, var(--bs-black) 76%, oklch(65% .24 135));--bs-lime-975:color-mix(in lab, var(--bs-black) 88%, oklch(65% .24 135));--bs-green-025:color-mix(in lab, var(--bs-white) 94%, oklch(64% .22 160));--bs-green-050:color-mix(in lab, var(--bs-white) 90%, oklch(64% .22 160));--bs-green-100:color-mix(in lab, var(--bs-white) 80%, oklch(64% .22 160));--bs-green-200:color-mix(in lab, var(--bs-white) 60%, oklch(64% .22 160));--bs-green-300:color-mix(in lab, var(--bs-white) 40%, oklch(64% .22 160));--bs-green-400:color-mix(in lab, var(--bs-white) 20%, oklch(64% .22 160));--bs-green-500:oklch(64% .22 160);--bs-green-600:color-mix(in lab, var(--bs-black) 16%, oklch(64% .22 160));--bs-green-700:color-mix(in lab, var(--bs-black) 32%, oklch(64% .22 160));--bs-green-800:color-mix(in lab, var(--bs-black) 48%, oklch(64% .22 160));--bs-green-900:color-mix(in lab, var(--bs-black) 64%, oklch(64% .22 160));--bs-green-950:color-mix(in lab, var(--bs-black) 76%, oklch(64% .22 160));--bs-green-975:color-mix(in lab, var(--bs-black) 88%, oklch(64% .22 160));--bs-teal-025:color-mix(in lab, var(--bs-white) 94%, oklch(68% .22 190));--bs-teal-050:color-mix(in lab, var(--bs-white) 90%, oklch(68% .22 190));--bs-teal-100:color-mix(in lab, var(--bs-white) 80%, oklch(68% .22 190));--bs-teal-200:color-mix(in lab, var(--bs-white) 60%, oklch(68% .22 190));--bs-teal-300:color-mix(in lab, var(--bs-white) 40%, oklch(68% .22 190));--bs-teal-400:color-mix(in lab, var(--bs-white) 20%, oklch(68% .22 190));--bs-teal-500:oklch(68% .22 190);--bs-teal-600:color-mix(in lab, var(--bs-black) 16%, oklch(68% .22 190));--bs-teal-700:color-mix(in lab, var(--bs-black) 32%, oklch(68% .22 190));--bs-teal-800:color-mix(in lab, var(--bs-black) 48%, oklch(68% .22 190));--bs-teal-900:color-mix(in lab, var(--bs-black) 64%, oklch(68% .22 190));--bs-teal-950:color-mix(in lab, var(--bs-black) 76%, oklch(68% .22 190));--bs-teal-975:color-mix(in lab, var(--bs-black) 88%, oklch(68% .22 190));--bs-cyan-025:color-mix(in lab, var(--bs-white) 94%, oklch(69% .22 220));--bs-cyan-050:color-mix(in lab, var(--bs-white) 90%, oklch(69% .22 220));--bs-cyan-100:color-mix(in lab, var(--bs-white) 80%, oklch(69% .22 220));--bs-cyan-200:color-mix(in lab, var(--bs-white) 60%, oklch(69% .22 220));--bs-cyan-300:color-mix(in lab, var(--bs-white) 40%, oklch(69% .22 220));--bs-cyan-400:color-mix(in lab, var(--bs-white) 20%, oklch(69% .22 220));--bs-cyan-500:oklch(69% .22 220);--bs-cyan-600:color-mix(in lab, var(--bs-black) 16%, oklch(69% .22 220));--bs-cyan-700:color-mix(in lab, var(--bs-black) 32%, oklch(69% .22 220));--bs-cyan-800:color-mix(in lab, var(--bs-black) 48%, oklch(69% .22 220));--bs-cyan-900:color-mix(in lab, var(--bs-black) 64%, oklch(69% .22 220));--bs-cyan-950:color-mix(in lab, var(--bs-black) 76%, oklch(69% .22 220));--bs-cyan-975:color-mix(in lab, var(--bs-black) 88%, oklch(69% .22 220));--bs-brown-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .12 54));--bs-brown-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .12 54));--bs-brown-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .12 54));--bs-brown-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .12 54));--bs-brown-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .12 54));--bs-brown-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .12 54));--bs-brown-500:oklch(60% .12 54);--bs-brown-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .12 54));--bs-brown-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .12 54));--bs-brown-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .12 54));--bs-brown-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .12 54));--bs-brown-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .12 54));--bs-brown-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .12 54));--bs-gray-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .02 245));--bs-gray-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .02 245));--bs-gray-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .02 245));--bs-gray-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .02 245));--bs-gray-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .02 245));--bs-gray-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .02 245));--bs-gray-500:oklch(60% .02 245);--bs-gray-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .02 245));--bs-gray-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .02 245));--bs-gray-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .02 245));--bs-gray-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .02 245));--bs-gray-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .02 245));--bs-gray-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .02 245));--bs-pewter-025:color-mix(in lab, var(--bs-white) 94%, oklch(65% .01 290));--bs-pewter-050:color-mix(in lab, var(--bs-white) 90%, oklch(65% .01 290));--bs-pewter-100:color-mix(in lab, var(--bs-white) 80%, oklch(65% .01 290));--bs-pewter-200:color-mix(in lab, var(--bs-white) 60%, oklch(65% .01 290));--bs-pewter-300:color-mix(in lab, var(--bs-white) 40%, oklch(65% .01 290));--bs-pewter-400:color-mix(in lab, var(--bs-white) 20%, oklch(65% .01 290));--bs-pewter-500:oklch(65% .01 290);--bs-pewter-600:color-mix(in lab, var(--bs-black) 16%, oklch(65% .01 290));--bs-pewter-700:color-mix(in lab, var(--bs-black) 32%, oklch(65% .01 290));--bs-pewter-800:color-mix(in lab, var(--bs-black) 48%, oklch(65% .01 290));--bs-pewter-900:color-mix(in lab, var(--bs-black) 64%, oklch(65% .01 290));--bs-pewter-950:color-mix(in lab, var(--bs-black) 76%, oklch(65% .01 290));--bs-pewter-975:color-mix(in lab, var(--bs-black) 88%, oklch(65% .01 290))}@layer colors,theme,config,root;@layer reboot{*,:before,:after{box-sizing:border-box}:root{accent-color:var(--bs-primary-base)}body{font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-fg-body);text-align:var(--bs-body-text-align);background-color:var(--bs-bg-body);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0}hr{margin:var(--bs-hr-margin-y,var(--bs-spacer)) 0;border:0;border-block-start:var(--bs-border-width) solid var(--bs-hr-border-color)}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:var(--bs-spacer-2);color:var(--bs-heading-color);font-weight:500;line-height:1.2}h1,.h1{font-size:var(--bs-font-size-3xl)}h2,.h2{font-size:var(--bs-font-size-2xl)}h3,.h3{font-size:var(--bs-font-size-xl)}h4,.h4{font-size:var(--bs-font-size-lg)}h5,.h5{font-size:var(--bs-font-size-md)}h6,.h6{font-size:var(--bs-font-size-sm)}p{margin-top:0;margin-bottom:1rem}abbr[title]{cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1rem}ol,ul{padding-inline-start:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-inline-start:0;margin-bottom:.5rem}blockquote{margin:0 0 1rem}blockquote>*{margin-block:0}b,strong{font-weight:bolder}small,.small{font-size:var(--bs-small-font-size,87.5%)}mark,.mark{--bs-mark-padding:.1875em;--bs-mark-color:var(--bs-fg-body);--bs-mark-bg:light-dark(var(--bs-yellow-100),var(--bs-yellow-900));padding:var(--bs-mark-padding);color:var(--bs-mark-color);background-color:var(--bs-mark-bg)}sub,sup{font-size:var(--bs-sub-sup-font-size,.75em);vertical-align:baseline;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}a{color:var(--bs-theme-fg,var(--bs-link-color));-webkit-text-decoration:var(--bs-link-decoration);-webkit-text-decoration:var(--bs-link-decoration);text-decoration:var(--bs-link-decoration);text-underline-offset:.2em}a:hover{color:var(--bs-theme-fg-emphasis,var(--bs-link-hover-color));-webkit-text-decoration:var(--bs-link-hover-decoration,var(--bs-link-decoration));-webkit-text-decoration:var(--bs-link-hover-decoration,var(--bs-link-decoration));text-decoration:var(--bs-link-hover-decoration,var(--bs-link-decoration))}a:not([href],[class]),a:not([href],[class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-mono);font-size:1em}pre{font-size:var(--bs-code-font-size);color:var(--bs-code-color,inherit);margin-top:0;margin-bottom:1rem;display:block;overflow:auto}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:var(--bs-code-font-size);color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{--bs-kbd-padding-y:.125rem;--bs-kbd-padding-x:.25rem;--bs-kbd-font-size:var(--bs-font-size-xs);--bs-kbd-color:var(--bs-bg-body);--bs-kbd-bg:var(--bs-fg-2);--bs-kbd-border-radius:var(--bs-radius-5);padding:var(--bs-kbd-padding-y) var(--bs-kbd-padding-x);font-size:var(--bs-kbd-font-size);color:var(--bs-kbd-color);background-color:var(--bs-kbd-bg);border-radius:var(--bs-kbd-border-radius)}kbd kbd{font-size:1em;font-weight:inherit;padding:0}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{color:var(--bs-fg-3);text-align:start;padding-block:.5rem}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date],[type=datetime-local],[type=month],[type=week],[type=time])::-webkit-calendar-picker-indicator{display:none!important}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}textarea{resize:vertical}fieldset{border:0;min-width:0;margin:0;padding:0}legend{float:inline-start;width:100%;font-size:1.5rem;line-height:inherit;margin-bottom:.5rem;padding:0}legend+*{clear:inline-start}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit-text{padding:0}::-webkit-datetime-edit-millisecond-field{padding:0}::-webkit-datetime-edit-second-field{padding:0}::-webkit-datetime-edit-minute-field{padding:0}::-webkit-datetime-edit-hour-field{padding:0}::-webkit-datetime-edit-meridiem-field{padding:0}::-webkit-datetime-edit-ampm-field{padding:0}::-webkit-datetime-edit-day-field{padding:0}::-webkit-datetime-edit-week-field{padding:0}::-webkit-datetime-edit-month-field{padding:0}::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button{cursor:pointer;filter:grayscale()}[type=tel],[type=url],[type=email],[type=number]{direction:ltr}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{cursor:pointer;display:list-item}progress{vertical-align:baseline}[hidden]{display:none!important}}@layer layout,content,forms,components,custom,helpers,utilities;:root{--bs-black:#000;--bs-white:#fff;--bs-gradient:linear-gradient(180deg, color-mix(var(--bs-white) 15%, transparent), color-mix(var(--bs-white) 0%, transparent));--bs-font-weight-lighter:lighter;--bs-font-weight-light:300;--bs-font-weight-normal:400;--bs-font-weight-medium:500;--bs-font-weight-semibold:600;--bs-font-weight-bold:700;--bs-font-weight-bolder:bolder;--bs-body-font-family:system-ui;--bs-body-font-size:var(--bs-font-size-base);--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-heading-color:inherit;--bs-hr-border-color:var(--bs-border-color);--bs-link-color:light-dark(var(--bs-primary-base),var(--bs-primary-fg));--bs-link-decoration:underline;--bs-link-hover-color:color-mix(in oklch, var(--bs-link-color) 90%, #000);--bs-font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Monaco, "Cascadia Mono", Consolas, "Liberation Mono", monospace;--bs-code-font-size:95%;--bs-code-color:var(--bs-fg-2);--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:light-dark(var(--bs-gray-200),var(--bs-gray-700));--bs-border-color-translucent:color-mix(in oklch, var(--bs-fg-body) 15%, transparent);--bs-box-shadow:0 .5rem 1rem #00000026;--bs-box-shadow-sm:0 .125rem .25rem #00000013;--bs-box-shadow-lg:0 1rem 3rem #0000002d;--bs-box-shadow-inset:inset 0 1px 2px #00000013;--bs-spacer:1rem;--bs-focus-ring-width:3px;--bs-focus-ring-offset:1px;--bs-focus-ring-color:var(--bs-primary-focus-ring);--bs-focus-ring:var(--bs-focus-ring-width) solid var(--bs-focus-ring-color);--bs-control-checked-bg:var(--bs-primary-base);--bs-control-checked-border-color:var(--bs-control-checked-bg);--bs-control-active-bg:var(--bs-primary-base);--bs-control-active-border-color:var(--bs-control-active-bg);--bs-control-disabled-bg:var(--bs-bg-3);--bs-control-disabled-opacity:.65;--bs-btn-input-fg:var(--bs-fg-body);--bs-btn-input-bg:var(--bs-bg-body);--bs-btn-input-min-height:2.375rem;--bs-btn-input-padding-y:.375rem;--bs-btn-input-padding-x:.75rem;--bs-btn-input-font-size:var(--bs-font-size-base);--bs-btn-input-line-height:var(--bs-line-height-base);--bs-btn-input-border-radius:var(--bs-radius-5);--bs-btn-input-xs-min-height:1.5rem;--bs-btn-input-xs-padding-y:.125rem;--bs-btn-input-xs-padding-x:.5rem;--bs-btn-input-xs-font-size:var(--bs-font-size-xs);--bs-btn-input-xs-line-height:1.125;--bs-btn-input-xs-border-radius:var(--bs-radius-5);--bs-btn-input-sm-min-height:2rem;--bs-btn-input-sm-padding-y:.25rem;--bs-btn-input-sm-padding-x:.625rem;--bs-btn-input-sm-font-size:var(--bs-font-size-sm);--bs-btn-input-sm-line-height:var(--bs-line-height-sm);--bs-btn-input-sm-border-radius:var(--bs-radius-5);--bs-btn-input-lg-min-height:2.75rem;--bs-btn-input-lg-padding-y:.5rem;--bs-btn-input-lg-padding-x:1rem;--bs-btn-input-lg-font-size:var(--bs-font-size-md);--bs-btn-input-lg-line-height:var(--bs-line-height-md);--bs-btn-input-lg-border-radius:var(--bs-radius-7);--bs-font-size-xs:.75rem;--bs-line-height-xs:1.25;--bs-font-size-sm:.875rem;--bs-line-height-sm:1.5;--bs-font-size-md:1rem;--bs-line-height-md:1.5;--bs-font-size-lg:clamp(1.25rem, 1rem + .625vw, 1.5rem);--bs-line-height-lg:1.5;--bs-font-size-xl:clamp(1.5rem, 1.1rem + .75vw, 1.75rem);--bs-line-height-xl:1.42857;--bs-font-size-2xl:clamp(1.75rem, 1.3rem + 1vw, 2rem);--bs-line-height-2xl:1.33333;--bs-font-size-3xl:clamp(2rem, 1.5rem + 1.875vw, 2.5rem);--bs-line-height-3xl:1.2;--bs-font-size-4xl:clamp(2.25rem, 1.75rem + 2.5vw, 3rem);--bs-line-height-4xl:1.1;--bs-font-size-5xl:clamp(3rem, 2rem + 5vw, 4rem);--bs-line-height-5xl:1.1;--bs-font-size-6xl:clamp(3.75rem, 2.5rem + 6.25vw, 5rem);--bs-line-height-6xl:1;--bs-primary-base:var(--bs-blue-500);--bs-primary-fg:light-dark(var(--bs-blue-600),var(--bs-blue-400));--bs-primary-fg-emphasis:light-dark(var(--bs-blue-800),var(--bs-blue-200));--bs-primary-bg:var(--bs-blue-500);--bs-primary-bg-subtle:light-dark(var(--bs-blue-100),var(--bs-blue-900));--bs-primary-bg-muted:light-dark(var(--bs-blue-200),var(--bs-blue-800));--bs-primary-border:light-dark(var(--bs-blue-300),var(--bs-blue-600));--bs-primary-focus-ring:light-dark(color-mix(in oklch, var(--bs-blue-500) 50%, var(--bs-bg-body)),color-mix(in oklch, var(--bs-blue-500) 75%, var(--bs-bg-body)));--bs-primary-contrast:var(--bs-white);--bs-accent-base:var(--bs-indigo-500);--bs-accent-fg:light-dark(var(--bs-indigo-600),color-mix(in oklch, var(--bs-indigo-400), var(--bs-indigo-300)));--bs-accent-fg-emphasis:light-dark(var(--bs-indigo-800),var(--bs-indigo-300));--bs-accent-bg:var(--bs-indigo-500);--bs-accent-bg-subtle:light-dark(var(--bs-indigo-100),var(--bs-indigo-900));--bs-accent-bg-muted:light-dark(var(--bs-indigo-200),var(--bs-indigo-800));--bs-accent-border:light-dark(var(--bs-indigo-300),var(--bs-indigo-600));--bs-accent-focus-ring:light-dark(color-mix(in oklch, var(--bs-indigo-500) 50%, var(--bs-bg-body)),color-mix(in oklch, var(--bs-indigo-500) 75%, var(--bs-bg-body)));--bs-accent-contrast:var(--bs-white);--bs-success-base:var(--bs-green-500);--bs-success-fg:light-dark(var(--bs-green-600),var(--bs-green-400));--bs-success-fg-emphasis:light-dark(var(--bs-green-800),var(--bs-green-300));--bs-success-bg:var(--bs-green-500);--bs-success-bg-subtle:light-dark(var(--bs-green-100),var(--bs-green-900));--bs-success-bg-muted:light-dark(var(--bs-green-200),var(--bs-green-800));--bs-success-border:light-dark(var(--bs-green-300),var(--bs-green-600));--bs-success-focus-ring:light-dark(color-mix(in oklch, var(--bs-green-500) 50%, var(--bs-bg-body)),color-mix(in oklch, var(--bs-green-500) 75%, var(--bs-bg-body)));--bs-success-contrast:var(--bs-white);--bs-danger-base:var(--bs-red-500);--bs-danger-fg:light-dark(var(--bs-red-600),var(--bs-red-400));--bs-danger-fg-emphasis:light-dark(var(--bs-red-800),var(--bs-red-300));--bs-danger-bg:var(--bs-red-500);--bs-danger-bg-subtle:light-dark(var(--bs-red-100),var(--bs-red-900));--bs-danger-bg-muted:light-dark(var(--bs-red-200),var(--bs-red-800));--bs-danger-border:light-dark(var(--bs-red-300),var(--bs-red-600));--bs-danger-focus-ring:light-dark(color-mix(in oklch, var(--bs-red-500) 50%, var(--bs-bg-body)),color-mix(in oklch, var(--bs-red-500) 75%, var(--bs-bg-body)));--bs-danger-contrast:var(--bs-white);--bs-warning-base:var(--bs-yellow-500);--bs-warning-fg:light-dark(var(--bs-yellow-700),var(--bs-yellow-400));--bs-warning-fg-emphasis:light-dark(var(--bs-yellow-800),var(--bs-yellow-300));--bs-warning-bg:var(--bs-yellow-500);--bs-warning-bg-subtle:light-dark(var(--bs-yellow-100),var(--bs-yellow-900));--bs-warning-bg-muted:light-dark(var(--bs-yellow-200),var(--bs-yellow-800));--bs-warning-border:light-dark(var(--bs-yellow-300),var(--bs-yellow-600));--bs-warning-focus-ring:light-dark(color-mix(in oklch, var(--bs-yellow-500) 50%, var(--bs-bg-body)),color-mix(in oklch, var(--bs-yellow-400) 85%, var(--bs-bg-body)));--bs-warning-contrast:var(--bs-gray-900);--bs-info-base:var(--bs-cyan-500);--bs-info-fg:light-dark(var(--bs-cyan-600),var(--bs-cyan-400));--bs-info-fg-emphasis:light-dark(var(--bs-cyan-800),var(--bs-cyan-300));--bs-info-bg:var(--bs-cyan-500);--bs-info-bg-subtle:light-dark(var(--bs-cyan-100),var(--bs-cyan-900));--bs-info-bg-muted:light-dark(var(--bs-cyan-200),var(--bs-cyan-800));--bs-info-border:light-dark(var(--bs-cyan-300),var(--bs-cyan-600));--bs-info-focus-ring:light-dark(color-mix(in oklch, var(--bs-cyan-500) 50%, var(--bs-bg-body)),color-mix(in oklch, var(--bs-cyan-500) 75%, var(--bs-bg-body)));--bs-info-contrast:var(--bs-gray-900);--bs-inverse-base:var(--bs-gray-900);--bs-inverse-fg:light-dark(var(--bs-gray-900),var(--bs-gray-200));--bs-inverse-fg-emphasis:light-dark(var(--bs-gray-975),var(--bs-white));--bs-inverse-bg:light-dark(var(--bs-gray-900),var(--bs-gray-025));--bs-inverse-bg-subtle:light-dark(var(--bs-gray-100),var(--bs-gray-900));--bs-inverse-bg-muted:light-dark(var(--bs-gray-200),var(--bs-gray-300));--bs-inverse-border:light-dark(var(--bs-gray-400),var(--bs-gray-100));--bs-inverse-focus-ring:color-mix(in oklch, light-dark(var(--bs-gray-900),var(--bs-gray-100)) 50%, var(--bs-bg-body));--bs-inverse-contrast:light-dark(var(--bs-white),var(--bs-gray-900));--bs-secondary-base:var(--bs-gray-200);--bs-secondary-fg:light-dark(var(--bs-gray-600),var(--bs-gray-400));--bs-secondary-fg-emphasis:light-dark(var(--bs-gray-800),var(--bs-gray-200));--bs-secondary-bg:light-dark(var(--bs-gray-100),var(--bs-gray-600));--bs-secondary-bg-subtle:light-dark(var(--bs-gray-050),var(--bs-gray-800));--bs-secondary-bg-muted:light-dark(var(--bs-gray-100),var(--bs-gray-700));--bs-secondary-border:light-dark(var(--bs-gray-300),var(--bs-gray-600));--bs-secondary-focus-ring:color-mix(in oklch, light-dark(var(--bs-gray-500),var(--bs-gray-300)) 50%, var(--bs-bg-body));--bs-secondary-contrast:light-dark(var(--bs-gray-900),var(--bs-white));--bs-bg-body:light-dark(var(--bs-white),var(--bs-gray-975));--bs-bg-1:light-dark(var(--bs-gray-025),var(--bs-gray-950));--bs-bg-2:light-dark(var(--bs-gray-050),var(--bs-gray-900));--bs-bg-3:light-dark(var(--bs-gray-100),var(--bs-gray-800));--bs-bg-4:light-dark(var(--bs-gray-200),var(--bs-gray-700));--bs-bg-fg:var(--bs-fg-body);--bs-bg-white:var(--bs-white);--bs-bg-black:var(--bs-black);--bs-bg-transparent:transparent;--bs-bg-inherit:inherit;--bs-fg-body:light-dark(var(--bs-gray-900),var(--bs-gray-050));--bs-fg-1:light-dark(var(--bs-gray-800),var(--bs-gray-200));--bs-fg-2:light-dark(var(--bs-gray-700),var(--bs-gray-300));--bs-fg-3:light-dark(var(--bs-gray-600),var(--bs-gray-500));--bs-fg-4:light-dark(var(--bs-gray-500),var(--bs-gray-600));--bs-fg-bg:var(--bs-bg-body);--bs-fg-white:var(--bs-white);--bs-fg-black:var(--bs-black);--bs-fg-inherit:inherit;--bs-border-bg:var(--bs-bg-body);--bs-border-body:light-dark(var(--bs-gray-300),var(--bs-gray-800));--bs-border-muted:light-dark(var(--bs-gray-200),var(--bs-gray-800));--bs-border-subtle:light-dark(color-mix(in oklch, var(--bs-gray-100), var(--bs-gray-200)),var(--bs-gray-900));--bs-border-emphasized:light-dark(var(--bs-gray-400),var(--bs-gray-600));--bs-border-white:var(--bs-white);--bs-border-black:var(--bs-black);--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:1024px;--bs-breakpoint-xl:1280px;--bs-breakpoint-2xl:1536px;--bs-spacer-0:0;--bs-spacer-1:.25rem;--bs-spacer-2:.5rem;--bs-spacer-3:.75rem;--bs-spacer-4:1rem;--bs-spacer-5:1.25rem;--bs-spacer-6:1.5rem;--bs-spacer-7:2rem;--bs-spacer-8:2.5rem;--bs-spacer-9:3rem;--bs-radius-0:0;--bs-radius-1:.125rem;--bs-radius-2:.1875rem;--bs-radius-3:.25rem;--bs-radius-4:.375rem;--bs-radius-5:.5rem;--bs-radius-6:.625rem;--bs-radius-7:.75rem;--bs-radius-8:1rem;--bs-radius-9:1.5rem;--bs-radius-pill:50rem;color-scheme:light dark;scrollbar-gutter:stable}[data-bs-theme=dark]{color-scheme:dark}[data-bs-theme=light]{color-scheme:light}
/*# sourceMappingURL=bootstrap-reboot.min.css.map */
\ No newline at end of file
-{"version":3,"sourceRoot":null,"mappings":";;;;;AEmGA,oycE5FA,gCAAA,cC0CE,uCAWA,0CAmBA,4UAcA,sIAYA,sJAUA,yCAMA,yCAMA,wCAMA,wCAMA,wCAMA,wCAWA,kCAWA,sKAQA,iEAQA,gCAKA,yCAOA,wCAOA,mBAMA,6CAOA,2BAEE,4BASF,4BASA,uDAOA,6QAaA,4GAQA,kBACA,cAIA,yNAKE,mTAcA,qFASF,gEAYA,sIASE,2DAOF,wFAME,qBAKF,yYAQE,oDAWF,uBAMA,8BASA,mDAKA,kEAaA,sDAMA,kFAeA,2BAOA,uBAUA,2CAMA,yGAcA,6BAIA,wBAME,0BAQF,6IASA,0EAOI,2HAQJ,yBAWA,iDAYA,wGASE,4BAQF,iDAAA,uCAAA,oDAAA,+CAAA,+CAAA,6CAAA,6CAAA,4CAAA,6CAAA,8CAAA,6CAcA,wCAAA,wCAWA,+DAKE,8EASF,+DASA,oDAMA,yCAOA,8DAOA,4BAMA,gBAQA,yCASA,iCAQA,iCD3mBF,gEAmKA,27ZAAA,mCAAA,0DASA,0FAIA","sources":["bootstrap-reboot.css","../../scss/_banner.scss","../../scss/_colors.scss","../../scss/mixins/_tokens.scss","../../scss/_root.scss","../../scss/content/_reboot.scss","../../scss/_config.scss","../../scss/mixins/_border-radius.scss"],"sourcesContent":["/*!\n * Bootstrap Reboot v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.24 240deg));\n --blue-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.24 240deg));\n --blue-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.24 240deg));\n --blue-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.24 240deg));\n --blue-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.24 240deg));\n --blue-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.24 240deg));\n --blue-500: oklch(60% 0.24 240deg);\n --blue-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.24 240deg));\n --blue-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.24 240deg));\n --blue-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.24 240deg));\n --blue-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.24 240deg));\n --blue-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.24 240deg));\n --blue-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.24 240deg));\n --indigo-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.26 288deg));\n --indigo-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.26 288deg));\n --indigo-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.26 288deg));\n --indigo-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.26 288deg));\n --indigo-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.26 288deg));\n --indigo-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.26 288deg));\n --indigo-500: oklch(56% 0.26 288deg);\n --indigo-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.26 288deg));\n --indigo-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.26 288deg));\n --indigo-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.26 288deg));\n --indigo-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.26 288deg));\n --indigo-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.26 288deg));\n --indigo-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.26 288deg));\n --violet-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 300deg));\n --violet-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 300deg));\n --violet-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 300deg));\n --violet-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 300deg));\n --violet-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 300deg));\n --violet-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 300deg));\n --violet-500: oklch(56% 0.24 300deg);\n --violet-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 300deg));\n --violet-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 300deg));\n --violet-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 300deg));\n --violet-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 300deg));\n --violet-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 300deg));\n --violet-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 300deg));\n --purple-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 320deg));\n --purple-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 320deg));\n --purple-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 320deg));\n --purple-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 320deg));\n --purple-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 320deg));\n --purple-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 320deg));\n --purple-500: oklch(56% 0.24 320deg);\n --purple-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 320deg));\n --purple-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 320deg));\n --purple-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 320deg));\n --purple-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 320deg));\n --purple-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 320deg));\n --purple-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 320deg));\n --pink-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 4deg));\n --pink-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 4deg));\n --pink-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 4deg));\n --pink-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 4deg));\n --pink-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 4deg));\n --pink-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 4deg));\n --pink-500: oklch(60% 0.22 4deg);\n --pink-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 4deg));\n --pink-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 4deg));\n --pink-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 4deg));\n --pink-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 4deg));\n --pink-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 4deg));\n --pink-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 4deg));\n --red-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 20deg));\n --red-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 20deg));\n --red-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 20deg));\n --red-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 20deg));\n --red-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 20deg));\n --red-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 20deg));\n --red-500: oklch(60% 0.22 20deg);\n --red-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 20deg));\n --red-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 20deg));\n --red-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 20deg));\n --red-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 20deg));\n --red-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 20deg));\n --red-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 20deg));\n --orange-025: color-mix(in lab, var(--white) 94%, oklch(70% 0.22 52deg));\n --orange-050: color-mix(in lab, var(--white) 90%, oklch(70% 0.22 52deg));\n --orange-100: color-mix(in lab, var(--white) 80%, oklch(70% 0.22 52deg));\n --orange-200: color-mix(in lab, var(--white) 60%, oklch(70% 0.22 52deg));\n --orange-300: color-mix(in lab, var(--white) 40%, oklch(70% 0.22 52deg));\n --orange-400: color-mix(in lab, var(--white) 20%, oklch(70% 0.22 52deg));\n --orange-500: oklch(70% 0.22 52deg);\n --orange-600: color-mix(in lab, var(--black) 16%, oklch(70% 0.22 52deg));\n --orange-700: color-mix(in lab, var(--black) 32%, oklch(70% 0.22 52deg));\n --orange-800: color-mix(in lab, var(--black) 48%, oklch(70% 0.22 52deg));\n --orange-900: color-mix(in lab, var(--black) 64%, oklch(70% 0.22 52deg));\n --orange-950: color-mix(in lab, var(--black) 76%, oklch(70% 0.22 52deg));\n --orange-975: color-mix(in lab, var(--black) 88%, oklch(70% 0.22 52deg));\n --amber-025: color-mix(in lab, var(--white) 94%, oklch(79% 0.2 78deg));\n --amber-050: color-mix(in lab, var(--white) 90%, oklch(79% 0.2 78deg));\n --amber-100: color-mix(in lab, var(--white) 80%, oklch(79% 0.2 78deg));\n --amber-200: color-mix(in lab, var(--white) 60%, oklch(79% 0.2 78deg));\n --amber-300: color-mix(in lab, var(--white) 40%, oklch(79% 0.2 78deg));\n --amber-400: color-mix(in lab, var(--white) 20%, oklch(79% 0.2 78deg));\n --amber-500: oklch(79% 0.2 78deg);\n --amber-600: color-mix(in lab, var(--black) 16%, oklch(79% 0.2 78deg));\n --amber-700: color-mix(in lab, var(--black) 32%, oklch(79% 0.2 78deg));\n --amber-800: color-mix(in lab, var(--black) 48%, oklch(79% 0.2 78deg));\n --amber-900: color-mix(in lab, var(--black) 64%, oklch(79% 0.2 78deg));\n --amber-950: color-mix(in lab, var(--black) 76%, oklch(79% 0.2 78deg));\n --amber-975: color-mix(in lab, var(--black) 88%, oklch(79% 0.2 78deg));\n --yellow-025: color-mix(in lab, var(--white) 94%, oklch(88% 0.24 88deg));\n --yellow-050: color-mix(in lab, var(--white) 90%, oklch(88% 0.24 88deg));\n --yellow-100: color-mix(in lab, var(--white) 80%, oklch(88% 0.24 88deg));\n --yellow-200: color-mix(in lab, var(--white) 60%, oklch(88% 0.24 88deg));\n --yellow-300: color-mix(in lab, var(--white) 40%, oklch(88% 0.24 88deg));\n --yellow-400: color-mix(in lab, var(--white) 20%, oklch(88% 0.24 88deg));\n --yellow-500: oklch(88% 0.24 88deg);\n --yellow-600: color-mix(in lab, var(--black) 16%, oklch(88% 0.24 88deg));\n --yellow-700: color-mix(in lab, var(--black) 32%, oklch(88% 0.24 88deg));\n --yellow-800: color-mix(in lab, var(--black) 48%, oklch(88% 0.24 88deg));\n --yellow-900: color-mix(in lab, var(--black) 64%, oklch(88% 0.24 88deg));\n --yellow-950: color-mix(in lab, var(--black) 76%, oklch(88% 0.24 88deg));\n --yellow-975: color-mix(in lab, var(--black) 88%, oklch(88% 0.24 88deg));\n --lime-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.24 135deg));\n --lime-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.24 135deg));\n --lime-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.24 135deg));\n --lime-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.24 135deg));\n --lime-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.24 135deg));\n --lime-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.24 135deg));\n --lime-500: oklch(65% 0.24 135deg);\n --lime-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.24 135deg));\n --lime-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.24 135deg));\n --lime-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.24 135deg));\n --lime-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.24 135deg));\n --lime-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.24 135deg));\n --lime-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.24 135deg));\n --green-025: color-mix(in lab, var(--white) 94%, oklch(64% 0.22 160deg));\n --green-050: color-mix(in lab, var(--white) 90%, oklch(64% 0.22 160deg));\n --green-100: color-mix(in lab, var(--white) 80%, oklch(64% 0.22 160deg));\n --green-200: color-mix(in lab, var(--white) 60%, oklch(64% 0.22 160deg));\n --green-300: color-mix(in lab, var(--white) 40%, oklch(64% 0.22 160deg));\n --green-400: color-mix(in lab, var(--white) 20%, oklch(64% 0.22 160deg));\n --green-500: oklch(64% 0.22 160deg);\n --green-600: color-mix(in lab, var(--black) 16%, oklch(64% 0.22 160deg));\n --green-700: color-mix(in lab, var(--black) 32%, oklch(64% 0.22 160deg));\n --green-800: color-mix(in lab, var(--black) 48%, oklch(64% 0.22 160deg));\n --green-900: color-mix(in lab, var(--black) 64%, oklch(64% 0.22 160deg));\n --green-950: color-mix(in lab, var(--black) 76%, oklch(64% 0.22 160deg));\n --green-975: color-mix(in lab, var(--black) 88%, oklch(64% 0.22 160deg));\n --teal-025: color-mix(in lab, var(--white) 94%, oklch(68% 0.22 190deg));\n --teal-050: color-mix(in lab, var(--white) 90%, oklch(68% 0.22 190deg));\n --teal-100: color-mix(in lab, var(--white) 80%, oklch(68% 0.22 190deg));\n --teal-200: color-mix(in lab, var(--white) 60%, oklch(68% 0.22 190deg));\n --teal-300: color-mix(in lab, var(--white) 40%, oklch(68% 0.22 190deg));\n --teal-400: color-mix(in lab, var(--white) 20%, oklch(68% 0.22 190deg));\n --teal-500: oklch(68% 0.22 190deg);\n --teal-600: color-mix(in lab, var(--black) 16%, oklch(68% 0.22 190deg));\n --teal-700: color-mix(in lab, var(--black) 32%, oklch(68% 0.22 190deg));\n --teal-800: color-mix(in lab, var(--black) 48%, oklch(68% 0.22 190deg));\n --teal-900: color-mix(in lab, var(--black) 64%, oklch(68% 0.22 190deg));\n --teal-950: color-mix(in lab, var(--black) 76%, oklch(68% 0.22 190deg));\n --teal-975: color-mix(in lab, var(--black) 88%, oklch(68% 0.22 190deg));\n --cyan-025: color-mix(in lab, var(--white) 94%, oklch(69% 0.22 220deg));\n --cyan-050: color-mix(in lab, var(--white) 90%, oklch(69% 0.22 220deg));\n --cyan-100: color-mix(in lab, var(--white) 80%, oklch(69% 0.22 220deg));\n --cyan-200: color-mix(in lab, var(--white) 60%, oklch(69% 0.22 220deg));\n --cyan-300: color-mix(in lab, var(--white) 40%, oklch(69% 0.22 220deg));\n --cyan-400: color-mix(in lab, var(--white) 20%, oklch(69% 0.22 220deg));\n --cyan-500: oklch(69% 0.22 220deg);\n --cyan-600: color-mix(in lab, var(--black) 16%, oklch(69% 0.22 220deg));\n --cyan-700: color-mix(in lab, var(--black) 32%, oklch(69% 0.22 220deg));\n --cyan-800: color-mix(in lab, var(--black) 48%, oklch(69% 0.22 220deg));\n --cyan-900: color-mix(in lab, var(--black) 64%, oklch(69% 0.22 220deg));\n --cyan-950: color-mix(in lab, var(--black) 76%, oklch(69% 0.22 220deg));\n --cyan-975: color-mix(in lab, var(--black) 88%, oklch(69% 0.22 220deg));\n --brown-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.12 54deg));\n --brown-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.12 54deg));\n --brown-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.12 54deg));\n --brown-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.12 54deg));\n --brown-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.12 54deg));\n --brown-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.12 54deg));\n --brown-500: oklch(60% 0.12 54deg);\n --brown-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.12 54deg));\n --brown-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.12 54deg));\n --brown-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.12 54deg));\n --brown-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.12 54deg));\n --brown-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.12 54deg));\n --brown-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.12 54deg));\n --gray-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.02 245deg));\n --gray-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.02 245deg));\n --gray-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.02 245deg));\n --gray-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.02 245deg));\n --gray-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.02 245deg));\n --gray-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.02 245deg));\n --gray-500: oklch(60% 0.02 245deg);\n --gray-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.02 245deg));\n --gray-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.02 245deg));\n --gray-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.02 245deg));\n --gray-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.02 245deg));\n --gray-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.02 245deg));\n --gray-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.02 245deg));\n --pewter-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.01 290deg));\n --pewter-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.01 290deg));\n --pewter-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.01 290deg));\n --pewter-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.01 290deg));\n --pewter-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.01 290deg));\n --pewter-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.01 290deg));\n --pewter-500: oklch(65% 0.01 290deg);\n --pewter-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.01 290deg));\n --pewter-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.01 290deg));\n --pewter-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.01 290deg));\n --pewter-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.01 290deg));\n --pewter-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.01 290deg));\n --pewter-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.01 290deg));\n}\n\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n:root {\n --black: #000;\n --white: #fff;\n --gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent));\n --font-weight-lighter: lighter;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-bolder: bolder;\n --body-font-family: system-ui;\n --body-font-size: var(--font-size-base);\n --body-font-weight: 400;\n --body-line-height: 1.5;\n --heading-color: inherit;\n --hr-border-color: var(--border-color);\n --link-color: light-dark(var(--primary-base), var(--primary-fg));\n --link-decoration: underline;\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000);\n --font-mono: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;\n --code-font-size: 95%;\n --code-color: var(--fg-2);\n --border-width: 1px;\n --border-style: solid;\n --border-color: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-700));\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent);\n --box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n --box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n --box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);\n --box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n --spacer: 1rem;\n --focus-ring-width: 3px;\n --focus-ring-offset: 1px;\n --focus-ring-color: var(--primary-focus-ring);\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color);\n --control-checked-bg: var(--primary-base);\n --control-checked-border-color: var(--control-checked-bg);\n --control-active-bg: var(--primary-base);\n --control-active-border-color: var(--control-active-bg);\n --control-disabled-bg: var(--bg-3);\n --control-disabled-opacity: 0.65;\n --btn-input-fg: var(--fg-body);\n --btn-input-bg: var(--bg-body);\n --btn-input-min-height: 2.375rem;\n --btn-input-padding-y: 0.375rem;\n --btn-input-padding-x: 0.75rem;\n --btn-input-font-size: var(--font-size-base);\n --btn-input-line-height: var(--line-height-base);\n --btn-input-border-radius: var(--radius-5);\n --btn-input-xs-min-height: 1.5rem;\n --btn-input-xs-padding-y: 0.125rem;\n --btn-input-xs-padding-x: 0.5rem;\n --btn-input-xs-font-size: var(--font-size-xs);\n --btn-input-xs-line-height: 1.125;\n --btn-input-xs-border-radius: var(--radius-5);\n --btn-input-sm-min-height: 2rem;\n --btn-input-sm-padding-y: 0.25rem;\n --btn-input-sm-padding-x: 0.625rem;\n --btn-input-sm-font-size: var(--font-size-sm);\n --btn-input-sm-line-height: var(--line-height-sm);\n --btn-input-sm-border-radius: var(--radius-5);\n --btn-input-lg-min-height: 2.75rem;\n --btn-input-lg-padding-y: 0.5rem;\n --btn-input-lg-padding-x: 1rem;\n --btn-input-lg-font-size: var(--font-size-md);\n --btn-input-lg-line-height: var(--line-height-md);\n --btn-input-lg-border-radius: var(--radius-7);\n --font-size-xs: 0.75rem;\n --line-height-xs: 1.25;\n --font-size-sm: 0.875rem;\n --line-height-sm: 1.5;\n --font-size-md: 1rem;\n --line-height-md: 1.5;\n --font-size-lg: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n --line-height-lg: 1.5;\n --font-size-xl: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n --line-height-xl: 1.4285714286;\n --font-size-2xl: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n --line-height-2xl: 1.3333333333;\n --font-size-3xl: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n --line-height-3xl: 1.2;\n --font-size-4xl: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n --line-height-4xl: 1.1;\n --font-size-5xl: clamp(3rem, 2rem + 5vw, 4rem);\n --line-height-5xl: 1.1;\n --font-size-6xl: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n --line-height-6xl: 1;\n --primary-base: var(--blue-500);\n --primary-fg: light-dark(var(--blue-600), var(--blue-400));\n --primary-fg-emphasis: light-dark(var(--blue-800), var(--blue-200));\n --primary-bg: var(--blue-500);\n --primary-bg-subtle: light-dark(var(--blue-100), var(--blue-900));\n --primary-bg-muted: light-dark(var(--blue-200), var(--blue-800));\n --primary-border: light-dark(var(--blue-300), var(--blue-600));\n --primary-focus-ring: light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body)));\n --primary-contrast: var(--white);\n --accent-base: var(--indigo-500);\n --accent-fg: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n --accent-fg-emphasis: light-dark(var(--indigo-800), var(--indigo-300));\n --accent-bg: var(--indigo-500);\n --accent-bg-subtle: light-dark(var(--indigo-100), var(--indigo-900));\n --accent-bg-muted: light-dark(var(--indigo-200), var(--indigo-800));\n --accent-border: light-dark(var(--indigo-300), var(--indigo-600));\n --accent-focus-ring: light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body)));\n --accent-contrast: var(--white);\n --success-base: var(--green-500);\n --success-fg: light-dark(var(--green-600), var(--green-400));\n --success-fg-emphasis: light-dark(var(--green-800), var(--green-300));\n --success-bg: var(--green-500);\n --success-bg-subtle: light-dark(var(--green-100), var(--green-900));\n --success-bg-muted: light-dark(var(--green-200), var(--green-800));\n --success-border: light-dark(var(--green-300), var(--green-600));\n --success-focus-ring: light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body)));\n --success-contrast: var(--white);\n --danger-base: var(--red-500);\n --danger-fg: light-dark(var(--red-600), var(--red-400));\n --danger-fg-emphasis: light-dark(var(--red-800), var(--red-300));\n --danger-bg: var(--red-500);\n --danger-bg-subtle: light-dark(var(--red-100), var(--red-900));\n --danger-bg-muted: light-dark(var(--red-200), var(--red-800));\n --danger-border: light-dark(var(--red-300), var(--red-600));\n --danger-focus-ring: light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body)));\n --danger-contrast: var(--white);\n --warning-base: var(--yellow-500);\n --warning-fg: light-dark(var(--yellow-700), var(--yellow-400));\n --warning-fg-emphasis: light-dark(var(--yellow-800), var(--yellow-300));\n --warning-bg: var(--yellow-500);\n --warning-bg-subtle: light-dark(var(--yellow-100), var(--yellow-900));\n --warning-bg-muted: light-dark(var(--yellow-200), var(--yellow-800));\n --warning-border: light-dark(var(--yellow-300), var(--yellow-600));\n --warning-focus-ring: light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body)));\n --warning-contrast: var(--gray-900);\n --info-base: var(--cyan-500);\n --info-fg: light-dark(var(--cyan-600), var(--cyan-400));\n --info-fg-emphasis: light-dark(var(--cyan-800), var(--cyan-300));\n --info-bg: var(--cyan-500);\n --info-bg-subtle: light-dark(var(--cyan-100), var(--cyan-900));\n --info-bg-muted: light-dark(var(--cyan-200), var(--cyan-800));\n --info-border: light-dark(var(--cyan-300), var(--cyan-600));\n --info-focus-ring: light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body)));\n --info-contrast: var(--gray-900);\n --inverse-base: var(--gray-900);\n --inverse-fg: light-dark(var(--gray-900), var(--gray-200));\n --inverse-fg-emphasis: light-dark(var(--gray-975), var(--white));\n --inverse-bg: light-dark(var(--gray-900), var(--gray-025));\n --inverse-bg-subtle: light-dark(var(--gray-100), var(--gray-900));\n --inverse-bg-muted: light-dark(var(--gray-200), var(--gray-300));\n --inverse-border: light-dark(var(--gray-400), var(--gray-100));\n --inverse-focus-ring: color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body));\n --inverse-contrast: light-dark(var(--white), var(--gray-900));\n --secondary-base: var(--gray-200);\n --secondary-fg: light-dark(var(--gray-600), var(--gray-400));\n --secondary-fg-emphasis: light-dark(var(--gray-800), var(--gray-200));\n --secondary-bg: light-dark(var(--gray-100), var(--gray-600));\n --secondary-bg-subtle: light-dark(var(--gray-050), var(--gray-800));\n --secondary-bg-muted: light-dark(var(--gray-100), var(--gray-700));\n --secondary-border: light-dark(var(--gray-300), var(--gray-600));\n --secondary-focus-ring: color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body));\n --secondary-contrast: light-dark(var(--gray-900), var(--white));\n --bg-body: light-dark(var(--white), var(--gray-975));\n --bg-1: light-dark(var(--gray-025), var(--gray-950));\n --bg-2: light-dark(var(--gray-050), var(--gray-900));\n --bg-3: light-dark(var(--gray-100), var(--gray-800));\n --bg-4: light-dark(var(--gray-200), var(--gray-700));\n --bg-fg: var(--fg-body);\n --bg-white: var(--white);\n --bg-black: var(--black);\n --bg-transparent: transparent;\n --bg-inherit: inherit;\n --fg-body: light-dark(var(--gray-900), var(--gray-050));\n --fg-1: light-dark(var(--gray-800), var(--gray-200));\n --fg-2: light-dark(var(--gray-700), var(--gray-300));\n --fg-3: light-dark(var(--gray-600), var(--gray-500));\n --fg-4: light-dark(var(--gray-500), var(--gray-600));\n --fg-bg: var(--bg-body);\n --fg-white: var(--white);\n --fg-black: var(--black);\n --fg-inherit: inherit;\n --border-bg: var(--bg-body);\n --border-body: light-dark(var(--gray-300), var(--gray-800));\n --border-muted: light-dark(var(--gray-200), var(--gray-800));\n --border-subtle: light-dark(var(--gray-100), var(--gray-900));\n --border-emphasized: light-dark(var(--gray-400), var(--gray-600));\n --border-white: var(--white);\n --border-black: var(--black);\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 1024px;\n --breakpoint-xl: 1280px;\n --breakpoint-2xl: 1536px;\n --spacer-0: 0;\n --spacer-1: 0.25rem;\n --spacer-2: 0.5rem;\n --spacer-3: 0.75rem;\n --spacer-4: 1rem;\n --spacer-5: 1.25rem;\n --spacer-6: 1.5rem;\n --spacer-7: 2rem;\n --spacer-8: 2.5rem;\n --spacer-9: 3rem;\n --radius-0: 0;\n --radius-1: 0.125rem;\n --radius-2: 0.1875rem;\n --radius-3: 0.25rem;\n --radius-4: 0.375rem;\n --radius-5: 0.5rem;\n --radius-6: 0.625rem;\n --radius-7: 0.75rem;\n --radius-8: 1rem;\n --radius-9: 1.5rem;\n --radius-pill: 50rem;\n color-scheme: light dark;\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=dark] {\n color-scheme: dark;\n}\n\n[data-bs-theme=light] {\n color-scheme: light;\n}\n\n@layer reboot {\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n :root {\n accent-color: var(--primary-base);\n }\n body {\n margin: 0;\n font-family: var(--body-font-family);\n font-size: var(--body-font-size);\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n color: var(--fg-body);\n text-align: var(--body-text-align);\n background-color: var(--bg-body);\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n margin: var(--hr-margin-y, var(--spacer)) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n h6,\n .h6, h5,\n .h5, h4,\n .h4, h3,\n .h3, h2,\n .h2, h1,\n .h1 {\n margin-top: 0;\n margin-bottom: var(--spacer-2);\n font-weight: 500;\n line-height: 1.2;\n color: var(--heading-color);\n }\n h1,\n .h1 {\n font-size: var(--font-size-3xl);\n }\n h2,\n .h2 {\n font-size: var(--font-size-2xl);\n }\n h3,\n .h3 {\n font-size: var(--font-size-xl);\n }\n h4,\n .h4 {\n font-size: var(--font-size-lg);\n }\n h5,\n .h5 {\n font-size: var(--font-size-md);\n }\n h6,\n .h6 {\n font-size: var(--font-size-sm);\n }\n p {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n abbr[title] {\n text-decoration: underline dotted;\n cursor: help;\n text-decoration-skip-ink: none;\n }\n address {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n }\n ol,\n ul {\n padding-inline-start: 2rem;\n }\n ol,\n ul,\n dl {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n ol ol,\n ul ul,\n ol ul,\n ul ol {\n margin-bottom: 0;\n }\n dt {\n font-weight: 700;\n }\n dd {\n margin-inline-start: 0;\n margin-bottom: 0.5rem;\n }\n blockquote {\n margin: 0 0 1rem;\n }\n blockquote > * {\n margin-block: 0;\n }\n b,\n strong {\n font-weight: bolder;\n }\n small,\n .small {\n font-size: var(--small-font-size, 87.5%);\n }\n mark,\n .mark {\n --mark-padding: 0.1875em;\n --mark-color: var(--fg-body);\n --mark-bg: light-dark(var(--yellow-100), var(--yellow-900));\n padding: var(--mark-padding);\n color: var(--mark-color);\n background-color: var(--mark-bg);\n }\n sub,\n sup {\n position: relative;\n font-size: var(--sub-sup-font-size, 0.75em);\n line-height: 0;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n a {\n color: var(--theme-fg, var(--link-color));\n text-decoration: var(--link-decoration);\n text-underline-offset: 0.2em;\n }\n a:hover {\n color: var(--theme-fg-emphasis, var(--link-hover-color));\n text-decoration: var(--link-hover-decoration, var(--link-decoration));\n }\n a:not([href], [class]), a:not([href], [class]):hover {\n color: inherit;\n text-decoration: none;\n }\n pre,\n code,\n kbd,\n samp {\n font-family: var(--font-mono);\n font-size: 1em;\n }\n pre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: var(--code-font-size);\n color: var(--code-color, inherit);\n }\n pre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n code {\n font-size: var(--code-font-size);\n color: var(--code-color);\n word-wrap: break-word;\n }\n a > code {\n color: inherit;\n }\n kbd {\n --kbd-padding-y: 0.125rem;\n --kbd-padding-x: 0.25rem;\n --kbd-font-size: var(--font-size-xs);\n --kbd-color: var(--bg-body);\n --kbd-bg: var(--fg-2);\n --kbd-border-radius: var(--radius-5);\n padding: var(--kbd-padding-y) var(--kbd-padding-x);\n font-size: var(--kbd-font-size);\n color: var(--kbd-color);\n background-color: var(--kbd-bg);\n border-radius: var(--kbd-border-radius);\n }\n kbd kbd {\n padding: 0;\n font-size: 1em;\n font-weight: inherit;\n }\n figure {\n margin: 0 0 1rem;\n }\n img,\n svg {\n vertical-align: middle;\n }\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n caption {\n padding-block: 0.5rem;\n color: var(--fg-3);\n text-align: start;\n }\n th {\n text-align: inherit;\n text-align: -webkit-match-parent;\n }\n thead,\n tbody,\n tfoot,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n label {\n display: inline-block;\n }\n button {\n border-radius: 0;\n }\n button:focus:not(:focus-visible) {\n outline: 0;\n }\n input,\n button,\n select,\n optgroup,\n textarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n [role=button] {\n cursor: pointer;\n }\n select {\n word-wrap: normal;\n }\n select:disabled {\n opacity: 1;\n }\n [list]:not([type=date], [type=datetime-local], [type=month], [type=week], [type=time])::-webkit-calendar-picker-indicator {\n display: none !important;\n }\n button,\n [type=button],\n [type=reset],\n [type=submit] {\n -webkit-appearance: button;\n }\n button:not(:disabled),\n [type=button]:not(:disabled),\n [type=reset]:not(:disabled),\n [type=submit]:not(:disabled) {\n cursor: pointer;\n }\n textarea {\n resize: vertical;\n }\n fieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n }\n legend {\n float: inline-start;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: 1.5rem;\n line-height: inherit;\n }\n legend + * {\n clear: inline-start;\n }\n ::-webkit-datetime-edit-fields-wrapper,\n ::-webkit-datetime-edit-text,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-ampm-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-week-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-year-field {\n padding: 0;\n }\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n [type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n }\n [type=search]::-webkit-search-cancel-button {\n cursor: pointer;\n filter: grayscale(1);\n }\n [type=tel],\n [type=url],\n [type=email],\n [type=number] {\n direction: ltr;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n ::file-selector-button {\n font: inherit;\n -webkit-appearance: button;\n }\n output {\n display: inline-block;\n }\n iframe {\n border: 0;\n }\n summary {\n display: list-item;\n cursor: pointer;\n }\n progress {\n vertical-align: baseline;\n }\n [hidden] {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */\n","$file: \"\" !default;\n\n/*!\n * Bootstrap #{$file} v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n","// stylelint-disable hue-degree-notation, @stylistic/number-leading-zero\n\n@use \"sass:map\";\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n// Easily convert colors to oklch() with https://oklch.com/\n\n$white: #fff !default;\n$black: #000 !default;\n\n// scss-docs-start colors-list\n$blue: oklch(60% 0.24 240) !default;\n$indigo: oklch(56% 0.26 288) !default;\n$violet: oklch(56% 0.24 300) !default;\n$purple: oklch(56% 0.24 320) !default;\n$pink: oklch(60% 0.22 4) !default;\n$red: oklch(60% 0.22 20) !default;\n$orange: oklch(70% 0.22 52) !default;\n$amber: oklch(79% 0.2 78) !default;\n$yellow: oklch(88% 0.24 88) !default;\n$lime: oklch(65% 0.24 135) !default;\n$green: oklch(64% 0.22 160) !default;\n$teal: oklch(68% 0.22 190) !default;\n$cyan: oklch(69% 0.22 220) !default;\n$brown: oklch(60% 0.12 54) !default;\n$gray: oklch(60% 0.02 245) !default;\n$pewter: oklch(65% 0.01 290) !default;\n// scss-docs-end colors-list\n\n// scss-docs-start colors-map\n$colors: () !default;\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: defaults(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"violet\": $violet,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"amber\": $amber,\n \"yellow\": $yellow,\n \"lime\": $lime,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"brown\": $brown,\n \"gray\": $gray,\n \"pewter\": $pewter,\n ),\n $colors\n);\n// scss-docs-end colors-map\n\n// scss-docs-start color-mix-options\n$color-mix-space: lab !default;\n$tint-color: var(--white) !default;\n$shade-color: var(--black) !default;\n\n$color-tints: (\n \"025\": 94%,\n \"050\": 90%,\n \"100\": 80%,\n \"200\": 60%,\n \"300\": 40%,\n \"400\": 20%,\n) !default;\n\n$color-shades: (\n \"600\": 16%,\n \"700\": 32%,\n \"800\": 48%,\n \"900\": 64%,\n \"950\": 76%,\n \"975\": 88%,\n) !default;\n// scss-docs-end color-mix-options\n\n// scss-docs-start color-tokens\n$color-tokens: () !default;\n\n$-color-defaults: () !default;\n@each $color, $value in $colors {\n @each $stop, $percent in $color-tints {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$tint-color} #{$percent}, #{$value}));\n }\n $-color-defaults: map.set($-color-defaults, --#{$color}-500, #{$value});\n @each $stop, $percent in $color-shades {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$shade-color} #{$percent}, #{$value}));\n }\n}\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$color-tokens: defaults($-color-defaults, $color-tokens);\n// scss-docs-end color-tokens\n\n:root {\n @include tokens($color-tokens);\n}\n","// Mixin to output tokens as CSS custom properties\n\n// scss-docs-start mixin-tokens\n@mixin tokens($map) {\n @each $prop, $value in $map {\n #{$prop}: #{$value};\n }\n}\n// scss-docs-end mixin-tokens\n","@use \"sass:map\";\n@use \"colors\" as *;\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"theme\" as *;\n@use \"mixins/tokens\" as *;\n// mdo-do: do we need theme?\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n\n$root-tokens: () !default;\n\n// scss-docs-start root-tokens\n// stylelint-disable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: defaults(\n (\n --black: #{$black},\n --white: #{$white},\n\n --gradient: #{$gradient},\n\n // scss-docs-start root-font-weight-variables\n --font-weight-lighter: lighter,\n --font-weight-light: 300,\n --font-weight-normal: 400,\n --font-weight-medium: 500,\n --font-weight-semibold: 600,\n --font-weight-bold: 700,\n --font-weight-bolder: bolder,\n // scss-docs-end root-font-weight-variables\n\n // scss-docs-start root-body-variables\n --body-font-family: system-ui,\n --body-font-size: var(--font-size-base),\n --body-font-weight: #{$font-weight-base},\n --body-line-height: #{$line-height-base},\n\n --heading-color: #{$headings-color},\n\n --hr-border-color: var(--border-color),\n\n --link-color: light-dark(var(--primary-base), var(--primary-fg)),\n --link-decoration: #{$link-decoration},\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000),\n\n --font-mono: \"SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace\",\n --code-font-size: 95%,\n --code-color: var(--fg-2),\n\n // scss-docs-start root-border-var\n --border-width: #{$border-width},\n --border-style: #{$border-style},\n --border-color: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-700)),\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent),\n // scss-docs-end root-border-var\n\n // scss-docs-start root-box-shadow-variables\n --box-shadow: 0 .5rem 1rem rgb(0 0 0 / 15%),\n --box-shadow-sm: 0 .125rem .25rem rgb(0 0 0 / 7.5%),\n --box-shadow-lg: 0 1rem 3rem rgb(0 0 0 / 17.5%),\n --box-shadow-inset: inset 0 1px 2px rgb(0 0 0 / 7.5%),\n // scss-docs-end root-box-shadow-variables\n\n --spacer: 1rem,\n\n // scss-docs-start root-focus-variables\n --focus-ring-width: 3px,\n --focus-ring-offset: 1px,\n --focus-ring-color: var(--primary-focus-ring),\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color),\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-variables\n --control-checked-bg: var(--primary-base),\n --control-checked-border-color: var(--control-checked-bg),\n --control-active-bg: var(--primary-base),\n --control-active-border-color: var(--control-active-bg),\n --control-disabled-bg: var(--bg-3),\n --control-disabled-opacity: .65,\n\n --btn-input-fg: var(--fg-body),\n --btn-input-bg: var(--bg-body),\n\n --btn-input-min-height: 2.375rem,\n --btn-input-padding-y: .375rem,\n --btn-input-padding-x: .75rem,\n --btn-input-font-size: var(--font-size-base),\n --btn-input-line-height: var(--line-height-base),\n --btn-input-border-radius: var(--radius-5),\n\n --btn-input-xs-min-height: 1.5rem,\n --btn-input-xs-padding-y: .125rem,\n --btn-input-xs-padding-x: .5rem,\n --btn-input-xs-font-size: var(--font-size-xs),\n --btn-input-xs-line-height: 1.125,\n --btn-input-xs-border-radius: var(--radius-5),\n\n --btn-input-sm-min-height: 2rem,\n --btn-input-sm-padding-y: .25rem,\n --btn-input-sm-padding-x: .625rem,\n --btn-input-sm-font-size: var(--font-size-sm),\n --btn-input-sm-line-height: var(--line-height-sm),\n --btn-input-sm-border-radius: var(--radius-5),\n\n --btn-input-lg-min-height: 2.75rem,\n --btn-input-lg-padding-y: .5rem,\n --btn-input-lg-padding-x: 1rem,\n --btn-input-lg-font-size: var(--font-size-md),\n --btn-input-lg-line-height: var(--line-height-md),\n --btn-input-lg-border-radius: var(--radius-7),\n // scss-docs-end root-form-variables\n ),\n $root-tokens\n);\n// stylelint-enable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// scss-docs-end root-tokens\n\n// scss-docs-start root-font-size-loop\n// Generate font-size and line-height tokens\n@each $name, $props in $font-sizes {\n $root-tokens: map.set($root-tokens, --font-size-#{$name}, map.get($props, \"font-size\"));\n $root-tokens: map.set($root-tokens, --line-height-#{$name}, map.get($props, \"line-height\"));\n}\n// scss-docs-end root-font-size-loop\n\n// scss-docs-start root-theme-tokens\n// Generate semantic theme colors\n@each $color-name, $color-map in $theme-colors {\n @each $key, $value in $color-map {\n $root-tokens: map.set($root-tokens, --#{$color-name}-#{$key}, $value);\n }\n}\n\n// Generate background tokens\n@each $key, $value in $theme-bgs {\n $root-tokens: map.set($root-tokens, --bg-#{$key}, $value);\n}\n\n// Generate foreground tokens\n@each $key, $value in $theme-fgs {\n $root-tokens: map.set($root-tokens, --fg-#{$key}, $value);\n}\n\n// Generate border tokens\n@each $key, $value in $theme-borders {\n $root-tokens: map.set($root-tokens, --border-#{$key}, $value);\n}\n// scss-docs-end root-theme-tokens\n\n// Generate breakpoint tokens\n@each $name, $value in $breakpoints {\n $root-tokens: map.set($root-tokens, --breakpoint-#{$name}, $value);\n}\n\n// Generate spacer tokens\n// scss-docs-start root-spacer-loop\n@each $key, $value in $spacers {\n $root-tokens: map.set($root-tokens, --spacer-#{$key}, $value);\n}\n// scss-docs-end root-spacer-loop\n\n// Generate radius tokens\n// scss-docs-start root-radius-loop\n@each $key, $value in $radii {\n $root-tokens: map.set($root-tokens, --radius-#{$key}, $value);\n}\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: map.set($root-tokens, --radius-pill, 50rem);\n// scss-docs-end root-radius-loop\n\n:root {\n @include tokens($root-tokens);\n\n color-scheme: light dark;\n // Always reserve the viewport scrollbar gutter so layout doesn't shift\n // when overflow: hidden is applied (e.g. when a dialog opens on Windows).\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=\"dark\"] {\n color-scheme: dark;\n}\n\n[data-bs-theme=\"light\"] {\n color-scheme: light;\n}\n","@use \"../config\" as *;\n@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n$reboot-kbd-tokens: () !default;\n$reboot-mark-tokens: () !default;\n\n// scss-docs-start reboot-kbd-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$reboot-kbd-tokens: defaults(\n (\n --kbd-padding-y: .125rem,\n --kbd-padding-x: .25rem,\n --kbd-font-size: var(--font-size-xs),\n --kbd-color: var(--bg-body),\n --kbd-bg: var(--fg-2),\n --kbd-border-radius: var(--radius-5),\n ),\n $reboot-kbd-tokens\n);\n// scss-docs-end reboot-kbd-tokens\n\n// scss-docs-start reboot-mark-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$reboot-mark-tokens: defaults(\n (\n --mark-padding: .1875em,\n --mark-color: var(--fg-body),\n --mark-bg: light-dark(var(--yellow-100), var(--yellow-900)),\n ),\n $reboot-mark-tokens\n);\n// scss-docs-end reboot-mark-tokens\n\n@layer reboot {\n // Reboot\n //\n // Normalization of HTML elements, manually forked from Normalize.css to remove\n // styles targeting irrelevant browsers while applying new styles.\n //\n // Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n // Document\n //\n // Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n // Root\n //\n // Ability to the value of the root font sizes, affecting the value of `rem`.\n // null by default, thus nothing is generated.\n\n :root {\n // Assume browser default font-size of 16px, or a user's preference\n accent-color: var(--primary-base);\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n }\n\n // Body\n //\n // 1. Remove the margin in all browsers.\n // 2. As a best practice, apply a default `background-color`.\n // 3. Prevent adjustments of font size after orientation changes in iOS.\n // 4. Change the default tap highlight to be completely transparent in iOS.\n\n // scss-docs-start reboot-body-rules\n body {\n margin: 0; // 1\n font-family: var(--body-font-family);\n font-size: var(--body-font-size);\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n color: var(--fg-body);\n text-align: var(--body-text-align);\n background-color: var(--bg-body); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: transparent; // 4\n }\n // scss-docs-end reboot-body-rules\n\n hr {\n margin: var(--hr-margin-y, var(--spacer)) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n\n // Typography\n //\n // 1. Remove top margins from headings\n // By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n // margin for easier control within type scales as it avoids margin collapsing.\n\n %heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: var(--heading-color);\n }\n\n h1,\n .h1 {\n @extend %heading;\n font-size: var(--font-size-3xl);\n }\n\n h2,\n .h2 {\n @extend %heading;\n font-size: var(--font-size-2xl);\n }\n\n h3,\n .h3 {\n @extend %heading;\n font-size: var(--font-size-xl);\n }\n\n h4,\n .h4 {\n @extend %heading;\n font-size: var(--font-size-lg);\n }\n\n h5,\n .h5 {\n @extend %heading;\n font-size: var(--font-size-md);\n }\n\n h6,\n .h6 {\n @extend %heading;\n font-size: var(--font-size-sm);\n }\n\n // Reset margins on paragraphs\n //\n // Similarly, the top margin on `<p>`s get reset. However, we also reset the\n // bottom margin to use `rem` units instead of `em`.\n\n p {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n }\n\n // Abbreviations\n //\n // 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n // 2. Add explicit cursor to indicate changed behavior.\n // 3. Prevent the text-decoration to be skipped.\n\n abbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n }\n\n // Address\n\n address {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n }\n\n // Lists\n\n ol,\n ul {\n padding-inline-start: 2rem;\n }\n\n ol,\n ul,\n dl {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n\n ol ol,\n ul ul,\n ol ul,\n ul ol {\n margin-bottom: 0;\n }\n\n dt {\n font-weight: $dt-font-weight;\n }\n\n // 1. Undo browser default\n\n dd {\n margin-inline-start: 0; // 1\n margin-bottom: .5rem;\n }\n\n // Blockquote\n\n blockquote {\n margin: 0 0 1rem;\n > * {\n margin-block: 0;\n }\n }\n\n // Strong\n //\n // Add the correct font weight in Chrome, Edge, and Safari\n\n b,\n strong {\n font-weight: $font-weight-bolder;\n }\n\n // Small\n //\n // Add the correct font size in all browsers\n\n small,\n .small {\n font-size: var(--small-font-size, 87.5%);\n }\n\n // Mark\n\n mark,\n .mark {\n @include tokens($reboot-mark-tokens);\n padding: var(--mark-padding);\n color: var(--mark-color);\n background-color: var(--mark-bg);\n }\n\n // Sub and Sup\n //\n // Prevent `sub` and `sup` elements from affecting the line height in\n // all browsers.\n\n sub,\n sup {\n position: relative;\n font-size: var(--sub-sup-font-size, .75em);\n line-height: 0;\n vertical-align: baseline;\n }\n\n sub { bottom: -.25em; }\n sup { top: -.5em; }\n\n // Links\n\n a {\n color: var(--theme-fg, var(--link-color));\n text-decoration: var(--link-decoration);\n text-underline-offset: $link-underline-offset;\n\n &:hover {\n // --link-color: var(--link-hover-color);\n // --link-decoration: var(--link-hover-decoration, var(--link-decoration));\n color: var(--theme-fg-emphasis, var(--link-hover-color));\n text-decoration: var(--link-hover-decoration, var(--link-decoration));\n }\n }\n\n // And undo these styles for placeholder links/named anchors (without href).\n // It would be more straightforward to just use a[href] in previous block, but that\n // causes specificity issues in many other styles that are too complex to fix.\n // See https://github.com/twbs/bootstrap/issues/19402\n\n a:not([href], [class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n }\n\n // Code\n\n pre,\n code,\n kbd,\n samp {\n font-family: var(--font-mono);\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n }\n\n // 1. Remove browser default top margin\n // 2. Reset browser default of `1em` to use `rem`s\n // 3. Don't allow content to break outside\n\n pre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n font-size: var(--code-font-size);\n color: var(--code-color, inherit);\n\n // Account for some code outputs that place code tags in pre tags\n code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n }\n\n code {\n font-size: var(--code-font-size);\n color: var(--code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n }\n\n kbd {\n @include tokens($reboot-kbd-tokens);\n padding: var(--kbd-padding-y) var(--kbd-padding-x);\n font-size: var(--kbd-font-size);\n color: var(--kbd-color);\n background-color: var(--kbd-bg);\n @include border-radius(var(--kbd-border-radius));\n\n kbd {\n padding: 0;\n font-size: 1em;\n font-weight: inherit; // mdo-do: check if this is needed\n }\n }\n\n // Figures\n //\n // Apply a consistent margin strategy (matches our type styles).\n\n figure {\n margin: 0 0 1rem;\n }\n\n // Images and content\n\n img,\n svg {\n vertical-align: middle;\n }\n\n // Tables\n //\n // Prevent double borders\n\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n\n caption {\n // padding-top: $table-cell-padding-y;\n // padding-bottom: $table-cell-padding-y;\n // color: $table-caption-color;\n padding-block: .5rem;\n color: var(--fg-3);\n text-align: start;\n }\n\n // 1. Removes font-weight bold by inheriting\n // 2. Matches default `<td>` alignment by inheriting `text-align`.\n // 3. Fix alignment for Safari\n\n th {\n // font-weight: $table-th-font-weight; // 1 // mdo-do: it's null by default. maybe we remove?\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n }\n\n thead,\n tbody,\n tfoot,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n\n // Forms\n //\n // 1. Allow labels to use `margin` for spacing.\n\n label {\n display: inline-block; // 1\n }\n\n // Remove the default `border-radius` that macOS Chrome adds.\n // See https://github.com/twbs/bootstrap/issues/24093\n\n button {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n }\n\n // Explicitly remove focus outline in Chromium when it shouldn't be\n // visible (e.g. as result of mouse click or touch tap). It already\n // should be doing this automatically, but seems to currently be\n // confused and applies its very visible two-tone outline anyway.\n\n button:focus:not(:focus-visible) {\n outline: 0;\n }\n\n // 1. Remove the margin in Firefox and Safari\n\n input,\n button,\n select,\n optgroup,\n textarea {\n margin: 0; // 1\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n // Set the cursor for non-`<button>` buttons\n //\n // Details at https://github.com/twbs/bootstrap/pull/30562\n [role=\"button\"] {\n cursor: pointer;\n }\n\n select {\n // Remove the inheritance of word-wrap in Safari.\n // See https://github.com/twbs/bootstrap/issues/24990\n word-wrap: normal;\n\n // Undo the opacity change from Chrome\n &:disabled {\n opacity: 1;\n }\n }\n\n // Remove the dropdown arrow only from text type inputs built with datalists in Chrome.\n // See https://stackoverflow.com/a/54997118\n\n [list]:not([type=\"date\"], [type=\"datetime-local\"], [type=\"month\"], [type=\"week\"], [type=\"time\"])::-webkit-calendar-picker-indicator {\n display: none !important;\n }\n\n // 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n // controls in Android 4.\n // 2. Correct the inability to style clickable types in iOS and Safari.\n // 3. Opinionated: add \"hand\" cursor to non-disabled button elements.\n\n button,\n [type=\"button\"], // 1\n [type=\"reset\"],\n [type=\"submit\"] {\n -webkit-appearance: button; // 2\n\n @if $enable-button-pointers {\n &:not(:disabled) {\n cursor: pointer; // 3\n }\n }\n }\n\n // 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.\n\n textarea {\n resize: vertical; // 1\n }\n\n // 1. Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n // 2. Reset the default outline behavior of fieldsets so they don't affect page layout.\n\n fieldset {\n min-width: 0; // 1\n padding: 0; // 2\n margin: 0; // 2\n border: 0; // 2\n }\n\n // 1. By using `float: inline-start`, the legend will behave like a block element.\n // This way the border of a fieldset wraps around the legend if present.\n // 2. Fix wrapping bug.\n // See https://github.com/twbs/bootstrap/issues/29712\n\n legend {\n float: inline-start; // 1\n width: 100%;\n padding: 0;\n margin-bottom: $legend-margin-bottom;\n font-size: $legend-font-size;\n font-weight: $legend-font-weight;\n line-height: inherit;\n\n + * {\n clear: inline-start; // 2\n }\n }\n\n // Fix height of inputs with a type of datetime-local, date, month, week, or time\n // See https://github.com/twbs/bootstrap/issues/18842\n\n ::-webkit-datetime-edit-fields-wrapper,\n ::-webkit-datetime-edit-text,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-ampm-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-week-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-year-field {\n padding: 0;\n }\n\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n\n // 1. This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n // 2. Correct the outline style in Safari.\n\n [type=\"search\"] {\n -webkit-appearance: textfield; // 1\n outline-offset: -2px; // 2\n\n // 3. Better affordance and consistent appearance for search cancel button\n &::-webkit-search-cancel-button {\n cursor: pointer;\n filter: grayscale(1);\n }\n }\n\n // A few input types should stay LTR regardless of document direction\n // See https://rtlstyling.com/posts/rtl-styling#form-inputs\n\n [type=\"tel\"],\n [type=\"url\"],\n [type=\"email\"],\n [type=\"number\"] {\n direction: ltr;\n }\n\n // Remove the inner padding in Chrome and Safari on macOS.\n\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n // Remove padding around color pickers in webkit browsers\n\n ::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n\n // 1. Inherit font family and line height for file input buttons\n // 2. Correct the inability to style clickable types in iOS and Safari.\n\n ::file-selector-button {\n font: inherit; // 1\n -webkit-appearance: button; // 2\n }\n\n // Correct element displays\n\n output {\n display: inline-block;\n }\n\n // Remove border from iframe\n\n iframe {\n border: 0;\n }\n\n // Summary\n //\n // 1. Add the correct display in all browsers\n\n summary {\n display: list-item; // 1\n cursor: pointer;\n }\n\n // Progress\n //\n // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n progress {\n vertical-align: baseline;\n }\n\n // Hidden attribute\n //\n // Always hide an element with the `hidden` HTML attribute.\n\n [hidden] {\n display: none !important;\n }\n}\n","@use \"sass:map\";\n@use \"sass:meta\";\n\n// Configuration\n//\n// Variables and settings not related to theme, components, and more go here. It does include layout.\n\n// Merge overrides on top of defaults, stripping null entries.\n// Null values let users remove map keys via @use ... with().\n// Accepts a list as $defaults (converted to a map with `true` values).\n@function defaults($defaults, $overrides) {\n @if meta.type-of($defaults) == \"list\" {\n $map: ();\n @each $key in $defaults {\n $map: map.merge($map, ($key: true));\n }\n $defaults: $map;\n }\n $merged: map.merge($defaults, $overrides);\n @each $key, $value in $merged {\n @if $value == null {\n $merged: map.remove($merged, $key);\n }\n }\n @return $merged;\n}\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: true !default;\n$enable-gradients: true !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: false !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: true !default;\n$enable-button-pointers: true !default;\n// $enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n\n$enable-dark-mode: true !default;\n\n$color-mode-type: \"media-query\" !default;\n$color-contrast-dark: #000 !default;\n$color-contrast-light: #fff !default;\n$min-contrast-ratio: 4.5 !default;\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer * .75,\n 4: $spacer,\n 5: $spacer * 1.25,\n 6: $spacer * 1.5,\n 7: $spacer * 2,\n 8: $spacer * 2.5,\n 9: $spacer * 3,\n) !default;\n\n$negative-spacers: (\n \"-1\": $spacer * -.25,\n \"-2\": $spacer * -.5,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n$sizes: (\n 1: $spacer,\n 2: $spacer * 2,\n 3: $spacer * 3,\n 4: $spacer * 4,\n 5: $spacer * 5,\n 6: $spacer * 6,\n 7: $spacer * 7,\n 8: $spacer * 8,\n 9: $spacer * 9,\n 10: $spacer * 10,\n 11: $spacer * 11,\n 12: $spacer * 12,\n) !default;\n\n$radius: .5rem !default;\n$radii: (\n 0: 0,\n 1: $radius * .25,\n 2: $radius * .375,\n 3: $radius * .5,\n 4: $radius * .75,\n 5: $radius,\n 6: $radius * 1.25,\n 7: $radius * 1.5,\n 8: $radius * 2,\n 9: $radius * 3,\n) !default;\n\n// Breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start breakpoints\n$breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 1024px,\n xl: 1280px,\n 2xl: 1536px\n) !default;\n// scss-docs-end breakpoints\n\n// @include _assert-ascending($breakpoints, \"$breakpoints\");\n// @include _assert-starts-at-zero($breakpoints, \"$breakpoints\");\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-x: 1.5rem !default;\n$grid-gutter-y: 0 !default;\n$grid-row-columns: 6 !default;\n\n$gutters: $spacers !default;\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1200px,\n 2xl: 1440px\n) !default;\n// scss-docs-end container-max-widths\n\n$container-padding-x: $grid-gutter-x !default;\n\n$utilities: () !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent)) !default;\n// scss-docs-end variable-gradient\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Links\n//\n// Style anchor elements.\n\n$link-decoration: underline !default;\n$link-underline-offset: .2em !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: color-mix(in oklch, var(--gray-100), var(--gray-200)) !default;\n// scss-docs-end border-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"auto\": auto,\n \"1x1\": #{\"1 / 1\"},\n \"4x3\": #{\"4 / 3\"},\n \"16x9\": #{\"16 / 9\"},\n \"21x9\": #{\"21 / 9\"}\n) !default;\n// scss-docs-end aspect-ratios\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$font-sizes: defaults(\n (\n \"xs\": (\n \"font-size\": .75rem,\n \"line-height\": 1.25\n ),\n \"sm\": (\n \"font-size\": .875rem,\n \"line-height\": 1.5\n ),\n \"md\": (\n \"font-size\": 1rem,\n \"line-height\": 1.5\n ),\n \"lg\": (\n \"font-size\": clamp(1.25rem, 1rem + .625vw, 1.5rem),\n \"line-height\": 1.5\n ),\n \"xl\": (\n \"font-size\": clamp(1.5rem, 1.1rem + .75vw, 1.75rem),\n \"line-height\": calc(2.5 / 1.75)\n ),\n \"2xl\": (\n \"font-size\": clamp(1.75rem, 1.3rem + 1vw, 2rem),\n \"line-height\": calc(3 / 2.25)\n ),\n \"3xl\": (\n \"font-size\": clamp(2rem, 1.5rem + 1.875vw, 2.5rem),\n \"line-height\": 1.2\n ),\n \"4xl\": (\n \"font-size\": clamp(2.25rem, 1.75rem + 2.5vw, 3rem),\n \"line-height\": 1.1\n ),\n \"5xl\": (\n \"font-size\": clamp(3rem, 2rem + 5vw, 4rem),\n \"line-height\": 1.1\n ),\n \"6xl\": (\n \"font-size\": clamp(3.75rem, 2.5rem + 6.25vw, 5rem),\n \"line-height\": 1\n ),\n ),\n $font-sizes\n);\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: var(--spacer-2) !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start type-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n// scss-docs-end type-variables\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-menu: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n// $zindex-drawer-backdrop: 1040 !default;\n$zindex-drawer: 1045 !default;\n$zindex-dialog: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n","@use \"sass:list\";\n@use \"sass:math\";\n@use \"sass:meta\";\n@use \"../config\" as *;\n\n// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n $return: ();\n @each $value in $radius {\n @if meta.type-of($value) == number {\n $return: list.append($return, math.max($value, 0));\n } @else {\n $return: list.append($return, $value);\n }\n }\n @return $return;\n}\n\n// scss-docs-start border-radius-mixins\n@mixin border-radius($radius: var(--radius-5), $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: valid-radius($radius);\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n border-start-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-end-radius: valid-radius($radius);\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-start-radius: valid-radius($radius);\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n border-end-start-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-start-radius: valid-radius($radius);\n }\n}\n// scss-docs-end border-radius-mixins\n"],"names":[]}
\ No newline at end of file
+{"version":3,"sourceRoot":null,"mappings":";;;;;AEmGA,oycE5FA,gCAAA,cC0CE,uCAWA,0CAmBA,4UAcA,sIAYA,sJAUA,yCAMA,yCAMA,wCAMA,wCAMA,wCAMA,wCAWA,kCAWA,sKAQA,iEAQA,gCAKA,yCAOA,wCAOA,mBAMA,6CAOA,2BAEE,4BASF,4BASA,uDAOA,uOAaA,4GAQA,kBACA,cAIA,yNAKE,mTAcA,qFASF,gEAYA,sIASE,2DAOF,wFAME,qBAKF,yYAQE,oDAWF,uBAMA,8BASA,mDAKA,kEAaA,sDAMA,kFAeA,2BAOA,uBAUA,2CAMA,yGAcA,6BAIA,wBAME,0BAQF,6IASA,0EAOI,2HAQJ,yBAWA,iDAYA,wGASE,4BAQF,iDAAA,uCAAA,oDAAA,+CAAA,+CAAA,6CAAA,iDAAA,6CAAA,4CAAA,6CAAA,8CAAA,6CAeA,wCAAA,wCAWA,+DAKE,8EASF,+DASA,oDAMA,yCAOA,8DAOA,4BAMA,gBAQA,yCASA,iCAQA,iCD5mBF,gEAmKA,24UASA,uCAIA","sources":["bootstrap-reboot.css","../../scss/_banner.scss","../../scss/_colors.scss","../../scss/mixins/_tokens.scss","../../scss/_root.scss","../../scss/content/_reboot.scss","../../scss/_config.scss","../../scss/mixins/_border-radius.scss"],"sourcesContent":["/*!\n * Bootstrap Reboot v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.24 240deg));\n --blue-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.24 240deg));\n --blue-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.24 240deg));\n --blue-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.24 240deg));\n --blue-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.24 240deg));\n --blue-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.24 240deg));\n --blue-500: oklch(60% 0.24 240deg);\n --blue-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.24 240deg));\n --blue-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.24 240deg));\n --blue-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.24 240deg));\n --blue-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.24 240deg));\n --blue-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.24 240deg));\n --blue-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.24 240deg));\n --indigo-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.26 288deg));\n --indigo-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.26 288deg));\n --indigo-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.26 288deg));\n --indigo-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.26 288deg));\n --indigo-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.26 288deg));\n --indigo-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.26 288deg));\n --indigo-500: oklch(56% 0.26 288deg);\n --indigo-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.26 288deg));\n --indigo-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.26 288deg));\n --indigo-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.26 288deg));\n --indigo-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.26 288deg));\n --indigo-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.26 288deg));\n --indigo-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.26 288deg));\n --violet-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 300deg));\n --violet-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 300deg));\n --violet-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 300deg));\n --violet-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 300deg));\n --violet-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 300deg));\n --violet-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 300deg));\n --violet-500: oklch(56% 0.24 300deg);\n --violet-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 300deg));\n --violet-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 300deg));\n --violet-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 300deg));\n --violet-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 300deg));\n --violet-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 300deg));\n --violet-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 300deg));\n --purple-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 320deg));\n --purple-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 320deg));\n --purple-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 320deg));\n --purple-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 320deg));\n --purple-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 320deg));\n --purple-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 320deg));\n --purple-500: oklch(56% 0.24 320deg);\n --purple-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 320deg));\n --purple-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 320deg));\n --purple-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 320deg));\n --purple-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 320deg));\n --purple-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 320deg));\n --purple-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 320deg));\n --pink-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 4deg));\n --pink-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 4deg));\n --pink-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 4deg));\n --pink-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 4deg));\n --pink-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 4deg));\n --pink-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 4deg));\n --pink-500: oklch(60% 0.22 4deg);\n --pink-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 4deg));\n --pink-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 4deg));\n --pink-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 4deg));\n --pink-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 4deg));\n --pink-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 4deg));\n --pink-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 4deg));\n --red-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 20deg));\n --red-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 20deg));\n --red-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 20deg));\n --red-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 20deg));\n --red-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 20deg));\n --red-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 20deg));\n --red-500: oklch(60% 0.22 20deg);\n --red-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 20deg));\n --red-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 20deg));\n --red-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 20deg));\n --red-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 20deg));\n --red-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 20deg));\n --red-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 20deg));\n --orange-025: color-mix(in lab, var(--white) 94%, oklch(70% 0.22 52deg));\n --orange-050: color-mix(in lab, var(--white) 90%, oklch(70% 0.22 52deg));\n --orange-100: color-mix(in lab, var(--white) 80%, oklch(70% 0.22 52deg));\n --orange-200: color-mix(in lab, var(--white) 60%, oklch(70% 0.22 52deg));\n --orange-300: color-mix(in lab, var(--white) 40%, oklch(70% 0.22 52deg));\n --orange-400: color-mix(in lab, var(--white) 20%, oklch(70% 0.22 52deg));\n --orange-500: oklch(70% 0.22 52deg);\n --orange-600: color-mix(in lab, var(--black) 16%, oklch(70% 0.22 52deg));\n --orange-700: color-mix(in lab, var(--black) 32%, oklch(70% 0.22 52deg));\n --orange-800: color-mix(in lab, var(--black) 48%, oklch(70% 0.22 52deg));\n --orange-900: color-mix(in lab, var(--black) 64%, oklch(70% 0.22 52deg));\n --orange-950: color-mix(in lab, var(--black) 76%, oklch(70% 0.22 52deg));\n --orange-975: color-mix(in lab, var(--black) 88%, oklch(70% 0.22 52deg));\n --amber-025: color-mix(in lab, var(--white) 94%, oklch(79% 0.2 78deg));\n --amber-050: color-mix(in lab, var(--white) 90%, oklch(79% 0.2 78deg));\n --amber-100: color-mix(in lab, var(--white) 80%, oklch(79% 0.2 78deg));\n --amber-200: color-mix(in lab, var(--white) 60%, oklch(79% 0.2 78deg));\n --amber-300: color-mix(in lab, var(--white) 40%, oklch(79% 0.2 78deg));\n --amber-400: color-mix(in lab, var(--white) 20%, oklch(79% 0.2 78deg));\n --amber-500: oklch(79% 0.2 78deg);\n --amber-600: color-mix(in lab, var(--black) 16%, oklch(79% 0.2 78deg));\n --amber-700: color-mix(in lab, var(--black) 32%, oklch(79% 0.2 78deg));\n --amber-800: color-mix(in lab, var(--black) 48%, oklch(79% 0.2 78deg));\n --amber-900: color-mix(in lab, var(--black) 64%, oklch(79% 0.2 78deg));\n --amber-950: color-mix(in lab, var(--black) 76%, oklch(79% 0.2 78deg));\n --amber-975: color-mix(in lab, var(--black) 88%, oklch(79% 0.2 78deg));\n --yellow-025: color-mix(in lab, var(--white) 94%, oklch(88% 0.24 88deg));\n --yellow-050: color-mix(in lab, var(--white) 90%, oklch(88% 0.24 88deg));\n --yellow-100: color-mix(in lab, var(--white) 80%, oklch(88% 0.24 88deg));\n --yellow-200: color-mix(in lab, var(--white) 60%, oklch(88% 0.24 88deg));\n --yellow-300: color-mix(in lab, var(--white) 40%, oklch(88% 0.24 88deg));\n --yellow-400: color-mix(in lab, var(--white) 20%, oklch(88% 0.24 88deg));\n --yellow-500: oklch(88% 0.24 88deg);\n --yellow-600: color-mix(in lab, var(--black) 16%, oklch(88% 0.24 88deg));\n --yellow-700: color-mix(in lab, var(--black) 32%, oklch(88% 0.24 88deg));\n --yellow-800: color-mix(in lab, var(--black) 48%, oklch(88% 0.24 88deg));\n --yellow-900: color-mix(in lab, var(--black) 64%, oklch(88% 0.24 88deg));\n --yellow-950: color-mix(in lab, var(--black) 76%, oklch(88% 0.24 88deg));\n --yellow-975: color-mix(in lab, var(--black) 88%, oklch(88% 0.24 88deg));\n --lime-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.24 135deg));\n --lime-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.24 135deg));\n --lime-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.24 135deg));\n --lime-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.24 135deg));\n --lime-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.24 135deg));\n --lime-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.24 135deg));\n --lime-500: oklch(65% 0.24 135deg);\n --lime-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.24 135deg));\n --lime-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.24 135deg));\n --lime-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.24 135deg));\n --lime-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.24 135deg));\n --lime-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.24 135deg));\n --lime-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.24 135deg));\n --green-025: color-mix(in lab, var(--white) 94%, oklch(64% 0.22 160deg));\n --green-050: color-mix(in lab, var(--white) 90%, oklch(64% 0.22 160deg));\n --green-100: color-mix(in lab, var(--white) 80%, oklch(64% 0.22 160deg));\n --green-200: color-mix(in lab, var(--white) 60%, oklch(64% 0.22 160deg));\n --green-300: color-mix(in lab, var(--white) 40%, oklch(64% 0.22 160deg));\n --green-400: color-mix(in lab, var(--white) 20%, oklch(64% 0.22 160deg));\n --green-500: oklch(64% 0.22 160deg);\n --green-600: color-mix(in lab, var(--black) 16%, oklch(64% 0.22 160deg));\n --green-700: color-mix(in lab, var(--black) 32%, oklch(64% 0.22 160deg));\n --green-800: color-mix(in lab, var(--black) 48%, oklch(64% 0.22 160deg));\n --green-900: color-mix(in lab, var(--black) 64%, oklch(64% 0.22 160deg));\n --green-950: color-mix(in lab, var(--black) 76%, oklch(64% 0.22 160deg));\n --green-975: color-mix(in lab, var(--black) 88%, oklch(64% 0.22 160deg));\n --teal-025: color-mix(in lab, var(--white) 94%, oklch(68% 0.22 190deg));\n --teal-050: color-mix(in lab, var(--white) 90%, oklch(68% 0.22 190deg));\n --teal-100: color-mix(in lab, var(--white) 80%, oklch(68% 0.22 190deg));\n --teal-200: color-mix(in lab, var(--white) 60%, oklch(68% 0.22 190deg));\n --teal-300: color-mix(in lab, var(--white) 40%, oklch(68% 0.22 190deg));\n --teal-400: color-mix(in lab, var(--white) 20%, oklch(68% 0.22 190deg));\n --teal-500: oklch(68% 0.22 190deg);\n --teal-600: color-mix(in lab, var(--black) 16%, oklch(68% 0.22 190deg));\n --teal-700: color-mix(in lab, var(--black) 32%, oklch(68% 0.22 190deg));\n --teal-800: color-mix(in lab, var(--black) 48%, oklch(68% 0.22 190deg));\n --teal-900: color-mix(in lab, var(--black) 64%, oklch(68% 0.22 190deg));\n --teal-950: color-mix(in lab, var(--black) 76%, oklch(68% 0.22 190deg));\n --teal-975: color-mix(in lab, var(--black) 88%, oklch(68% 0.22 190deg));\n --cyan-025: color-mix(in lab, var(--white) 94%, oklch(69% 0.22 220deg));\n --cyan-050: color-mix(in lab, var(--white) 90%, oklch(69% 0.22 220deg));\n --cyan-100: color-mix(in lab, var(--white) 80%, oklch(69% 0.22 220deg));\n --cyan-200: color-mix(in lab, var(--white) 60%, oklch(69% 0.22 220deg));\n --cyan-300: color-mix(in lab, var(--white) 40%, oklch(69% 0.22 220deg));\n --cyan-400: color-mix(in lab, var(--white) 20%, oklch(69% 0.22 220deg));\n --cyan-500: oklch(69% 0.22 220deg);\n --cyan-600: color-mix(in lab, var(--black) 16%, oklch(69% 0.22 220deg));\n --cyan-700: color-mix(in lab, var(--black) 32%, oklch(69% 0.22 220deg));\n --cyan-800: color-mix(in lab, var(--black) 48%, oklch(69% 0.22 220deg));\n --cyan-900: color-mix(in lab, var(--black) 64%, oklch(69% 0.22 220deg));\n --cyan-950: color-mix(in lab, var(--black) 76%, oklch(69% 0.22 220deg));\n --cyan-975: color-mix(in lab, var(--black) 88%, oklch(69% 0.22 220deg));\n --brown-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.12 54deg));\n --brown-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.12 54deg));\n --brown-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.12 54deg));\n --brown-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.12 54deg));\n --brown-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.12 54deg));\n --brown-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.12 54deg));\n --brown-500: oklch(60% 0.12 54deg);\n --brown-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.12 54deg));\n --brown-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.12 54deg));\n --brown-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.12 54deg));\n --brown-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.12 54deg));\n --brown-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.12 54deg));\n --brown-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.12 54deg));\n --gray-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.02 245deg));\n --gray-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.02 245deg));\n --gray-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.02 245deg));\n --gray-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.02 245deg));\n --gray-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.02 245deg));\n --gray-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.02 245deg));\n --gray-500: oklch(60% 0.02 245deg);\n --gray-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.02 245deg));\n --gray-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.02 245deg));\n --gray-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.02 245deg));\n --gray-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.02 245deg));\n --gray-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.02 245deg));\n --gray-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.02 245deg));\n --pewter-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.01 290deg));\n --pewter-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.01 290deg));\n --pewter-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.01 290deg));\n --pewter-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.01 290deg));\n --pewter-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.01 290deg));\n --pewter-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.01 290deg));\n --pewter-500: oklch(65% 0.01 290deg);\n --pewter-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.01 290deg));\n --pewter-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.01 290deg));\n --pewter-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.01 290deg));\n --pewter-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.01 290deg));\n --pewter-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.01 290deg));\n --pewter-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.01 290deg));\n}\n\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n:root {\n --black: #000;\n --white: #fff;\n --gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent));\n --font-weight-lighter: lighter;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-bolder: bolder;\n --body-font-family: system-ui;\n --body-font-size: var(--font-size-base);\n --body-font-weight: 400;\n --body-line-height: 1.5;\n --heading-color: inherit;\n --hr-border-color: var(--border-color);\n --link-color: light-dark(var(--primary-base), var(--primary-fg));\n --link-decoration: underline;\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000);\n --font-mono: ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Monaco, 'Cascadia Mono', Consolas, 'Liberation Mono', monospace;;\n --code-font-size: 95%;\n --code-color: var(--fg-2);\n --border-width: 1px;\n --border-style: solid;\n --border-color: light-dark(var(--gray-200), var(--gray-700));\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent);\n --box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n --box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n --box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);\n --box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n --spacer: 1rem;\n --focus-ring-width: 3px;\n --focus-ring-offset: 1px;\n --focus-ring-color: var(--primary-focus-ring);\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color);\n --control-checked-bg: var(--primary-base);\n --control-checked-border-color: var(--control-checked-bg);\n --control-active-bg: var(--primary-base);\n --control-active-border-color: var(--control-active-bg);\n --control-disabled-bg: var(--bg-3);\n --control-disabled-opacity: 0.65;\n --btn-input-fg: var(--fg-body);\n --btn-input-bg: var(--bg-body);\n --btn-input-min-height: 2.375rem;\n --btn-input-padding-y: 0.375rem;\n --btn-input-padding-x: 0.75rem;\n --btn-input-font-size: var(--font-size-base);\n --btn-input-line-height: var(--line-height-base);\n --btn-input-border-radius: var(--radius-5);\n --btn-input-xs-min-height: 1.5rem;\n --btn-input-xs-padding-y: 0.125rem;\n --btn-input-xs-padding-x: 0.5rem;\n --btn-input-xs-font-size: var(--font-size-xs);\n --btn-input-xs-line-height: 1.125;\n --btn-input-xs-border-radius: var(--radius-5);\n --btn-input-sm-min-height: 2rem;\n --btn-input-sm-padding-y: 0.25rem;\n --btn-input-sm-padding-x: 0.625rem;\n --btn-input-sm-font-size: var(--font-size-sm);\n --btn-input-sm-line-height: var(--line-height-sm);\n --btn-input-sm-border-radius: var(--radius-5);\n --btn-input-lg-min-height: 2.75rem;\n --btn-input-lg-padding-y: 0.5rem;\n --btn-input-lg-padding-x: 1rem;\n --btn-input-lg-font-size: var(--font-size-md);\n --btn-input-lg-line-height: var(--line-height-md);\n --btn-input-lg-border-radius: var(--radius-7);\n --font-size-xs: 0.75rem;\n --line-height-xs: 1.25;\n --font-size-sm: 0.875rem;\n --line-height-sm: 1.5;\n --font-size-md: 1rem;\n --line-height-md: 1.5;\n --font-size-lg: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n --line-height-lg: 1.5;\n --font-size-xl: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n --line-height-xl: 1.4285714286;\n --font-size-2xl: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n --line-height-2xl: 1.3333333333;\n --font-size-3xl: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n --line-height-3xl: 1.2;\n --font-size-4xl: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n --line-height-4xl: 1.1;\n --font-size-5xl: clamp(3rem, 2rem + 5vw, 4rem);\n --line-height-5xl: 1.1;\n --font-size-6xl: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n --line-height-6xl: 1;\n --primary-base: var(--blue-500);\n --primary-fg: light-dark(var(--blue-600), var(--blue-400));\n --primary-fg-emphasis: light-dark(var(--blue-800), var(--blue-200));\n --primary-bg: var(--blue-500);\n --primary-bg-subtle: light-dark(var(--blue-100), var(--blue-900));\n --primary-bg-muted: light-dark(var(--blue-200), var(--blue-800));\n --primary-border: light-dark(var(--blue-300), var(--blue-600));\n --primary-focus-ring: light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body)));\n --primary-contrast: var(--white);\n --accent-base: var(--indigo-500);\n --accent-fg: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n --accent-fg-emphasis: light-dark(var(--indigo-800), var(--indigo-300));\n --accent-bg: var(--indigo-500);\n --accent-bg-subtle: light-dark(var(--indigo-100), var(--indigo-900));\n --accent-bg-muted: light-dark(var(--indigo-200), var(--indigo-800));\n --accent-border: light-dark(var(--indigo-300), var(--indigo-600));\n --accent-focus-ring: light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body)));\n --accent-contrast: var(--white);\n --success-base: var(--green-500);\n --success-fg: light-dark(var(--green-600), var(--green-400));\n --success-fg-emphasis: light-dark(var(--green-800), var(--green-300));\n --success-bg: var(--green-500);\n --success-bg-subtle: light-dark(var(--green-100), var(--green-900));\n --success-bg-muted: light-dark(var(--green-200), var(--green-800));\n --success-border: light-dark(var(--green-300), var(--green-600));\n --success-focus-ring: light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body)));\n --success-contrast: var(--white);\n --danger-base: var(--red-500);\n --danger-fg: light-dark(var(--red-600), var(--red-400));\n --danger-fg-emphasis: light-dark(var(--red-800), var(--red-300));\n --danger-bg: var(--red-500);\n --danger-bg-subtle: light-dark(var(--red-100), var(--red-900));\n --danger-bg-muted: light-dark(var(--red-200), var(--red-800));\n --danger-border: light-dark(var(--red-300), var(--red-600));\n --danger-focus-ring: light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body)));\n --danger-contrast: var(--white);\n --warning-base: var(--yellow-500);\n --warning-fg: light-dark(var(--yellow-700), var(--yellow-400));\n --warning-fg-emphasis: light-dark(var(--yellow-800), var(--yellow-300));\n --warning-bg: var(--yellow-500);\n --warning-bg-subtle: light-dark(var(--yellow-100), var(--yellow-900));\n --warning-bg-muted: light-dark(var(--yellow-200), var(--yellow-800));\n --warning-border: light-dark(var(--yellow-300), var(--yellow-600));\n --warning-focus-ring: light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body)));\n --warning-contrast: var(--gray-900);\n --info-base: var(--cyan-500);\n --info-fg: light-dark(var(--cyan-600), var(--cyan-400));\n --info-fg-emphasis: light-dark(var(--cyan-800), var(--cyan-300));\n --info-bg: var(--cyan-500);\n --info-bg-subtle: light-dark(var(--cyan-100), var(--cyan-900));\n --info-bg-muted: light-dark(var(--cyan-200), var(--cyan-800));\n --info-border: light-dark(var(--cyan-300), var(--cyan-600));\n --info-focus-ring: light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body)));\n --info-contrast: var(--gray-900);\n --inverse-base: var(--gray-900);\n --inverse-fg: light-dark(var(--gray-900), var(--gray-200));\n --inverse-fg-emphasis: light-dark(var(--gray-975), var(--white));\n --inverse-bg: light-dark(var(--gray-900), var(--gray-025));\n --inverse-bg-subtle: light-dark(var(--gray-100), var(--gray-900));\n --inverse-bg-muted: light-dark(var(--gray-200), var(--gray-300));\n --inverse-border: light-dark(var(--gray-400), var(--gray-100));\n --inverse-focus-ring: color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body));\n --inverse-contrast: light-dark(var(--white), var(--gray-900));\n --secondary-base: var(--gray-200);\n --secondary-fg: light-dark(var(--gray-600), var(--gray-400));\n --secondary-fg-emphasis: light-dark(var(--gray-800), var(--gray-200));\n --secondary-bg: light-dark(var(--gray-100), var(--gray-600));\n --secondary-bg-subtle: light-dark(var(--gray-050), var(--gray-800));\n --secondary-bg-muted: light-dark(var(--gray-100), var(--gray-700));\n --secondary-border: light-dark(var(--gray-300), var(--gray-600));\n --secondary-focus-ring: color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body));\n --secondary-contrast: light-dark(var(--gray-900), var(--white));\n --bg-body: light-dark(var(--white), var(--gray-975));\n --bg-1: light-dark(var(--gray-025), var(--gray-950));\n --bg-2: light-dark(var(--gray-050), var(--gray-900));\n --bg-3: light-dark(var(--gray-100), var(--gray-800));\n --bg-4: light-dark(var(--gray-200), var(--gray-700));\n --bg-fg: var(--fg-body);\n --bg-white: var(--white);\n --bg-black: var(--black);\n --bg-transparent: transparent;\n --bg-inherit: inherit;\n --fg-body: light-dark(var(--gray-900), var(--gray-050));\n --fg-1: light-dark(var(--gray-800), var(--gray-200));\n --fg-2: light-dark(var(--gray-700), var(--gray-300));\n --fg-3: light-dark(var(--gray-600), var(--gray-500));\n --fg-4: light-dark(var(--gray-500), var(--gray-600));\n --fg-bg: var(--bg-body);\n --fg-white: var(--white);\n --fg-black: var(--black);\n --fg-inherit: inherit;\n --border-bg: var(--bg-body);\n --border-body: light-dark(var(--gray-300), var(--gray-800));\n --border-muted: light-dark(var(--gray-200), var(--gray-800));\n --border-subtle: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-900));\n --border-emphasized: light-dark(var(--gray-400), var(--gray-600));\n --border-white: var(--white);\n --border-black: var(--black);\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 1024px;\n --breakpoint-xl: 1280px;\n --breakpoint-2xl: 1536px;\n --spacer-0: 0;\n --spacer-1: 0.25rem;\n --spacer-2: 0.5rem;\n --spacer-3: 0.75rem;\n --spacer-4: 1rem;\n --spacer-5: 1.25rem;\n --spacer-6: 1.5rem;\n --spacer-7: 2rem;\n --spacer-8: 2.5rem;\n --spacer-9: 3rem;\n --radius-0: 0;\n --radius-1: 0.125rem;\n --radius-2: 0.1875rem;\n --radius-3: 0.25rem;\n --radius-4: 0.375rem;\n --radius-5: 0.5rem;\n --radius-6: 0.625rem;\n --radius-7: 0.75rem;\n --radius-8: 1rem;\n --radius-9: 1.5rem;\n --radius-pill: 50rem;\n color-scheme: light dark;\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=dark] {\n color-scheme: dark;\n}\n\n[data-bs-theme=light] {\n color-scheme: light;\n}\n\n@layer reboot {\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n :root {\n accent-color: var(--primary-base);\n }\n body {\n margin: 0;\n font-family: var(--body-font-family);\n font-size: var(--body-font-size);\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n color: var(--fg-body);\n text-align: var(--body-text-align);\n background-color: var(--bg-body);\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n margin: var(--hr-margin-y, var(--spacer)) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n h6,\n .h6, h5,\n .h5, h4,\n .h4, h3,\n .h3, h2,\n .h2, h1,\n .h1 {\n margin-top: 0;\n margin-bottom: var(--spacer-2);\n font-weight: 500;\n line-height: 1.2;\n color: var(--heading-color);\n }\n h1,\n .h1 {\n font-size: var(--font-size-3xl);\n }\n h2,\n .h2 {\n font-size: var(--font-size-2xl);\n }\n h3,\n .h3 {\n font-size: var(--font-size-xl);\n }\n h4,\n .h4 {\n font-size: var(--font-size-lg);\n }\n h5,\n .h5 {\n font-size: var(--font-size-md);\n }\n h6,\n .h6 {\n font-size: var(--font-size-sm);\n }\n p {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n abbr[title] {\n text-decoration: underline dotted;\n cursor: help;\n text-decoration-skip-ink: none;\n }\n address {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n }\n ol,\n ul {\n padding-inline-start: 2rem;\n }\n ol,\n ul,\n dl {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n ol ol,\n ul ul,\n ol ul,\n ul ol {\n margin-bottom: 0;\n }\n dt {\n font-weight: 700;\n }\n dd {\n margin-inline-start: 0;\n margin-bottom: 0.5rem;\n }\n blockquote {\n margin: 0 0 1rem;\n }\n blockquote > * {\n margin-block: 0;\n }\n b,\n strong {\n font-weight: bolder;\n }\n small,\n .small {\n font-size: var(--small-font-size, 87.5%);\n }\n mark,\n .mark {\n --mark-padding: 0.1875em;\n --mark-color: var(--fg-body);\n --mark-bg: light-dark(var(--yellow-100), var(--yellow-900));\n padding: var(--mark-padding);\n color: var(--mark-color);\n background-color: var(--mark-bg);\n }\n sub,\n sup {\n position: relative;\n font-size: var(--sub-sup-font-size, 0.75em);\n line-height: 0;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n a {\n color: var(--theme-fg, var(--link-color));\n text-decoration: var(--link-decoration);\n text-underline-offset: 0.2em;\n }\n a:hover {\n color: var(--theme-fg-emphasis, var(--link-hover-color));\n text-decoration: var(--link-hover-decoration, var(--link-decoration));\n }\n a:not([href], [class]), a:not([href], [class]):hover {\n color: inherit;\n text-decoration: none;\n }\n pre,\n code,\n kbd,\n samp {\n font-family: var(--font-mono);\n font-size: 1em;\n }\n pre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: var(--code-font-size);\n color: var(--code-color, inherit);\n }\n pre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n code {\n font-size: var(--code-font-size);\n color: var(--code-color);\n word-wrap: break-word;\n }\n a > code {\n color: inherit;\n }\n kbd {\n --kbd-padding-y: 0.125rem;\n --kbd-padding-x: 0.25rem;\n --kbd-font-size: var(--font-size-xs);\n --kbd-color: var(--bg-body);\n --kbd-bg: var(--fg-2);\n --kbd-border-radius: var(--radius-5);\n padding: var(--kbd-padding-y) var(--kbd-padding-x);\n font-size: var(--kbd-font-size);\n color: var(--kbd-color);\n background-color: var(--kbd-bg);\n border-radius: var(--kbd-border-radius);\n }\n kbd kbd {\n padding: 0;\n font-size: 1em;\n font-weight: inherit;\n }\n figure {\n margin: 0 0 1rem;\n }\n img,\n svg {\n vertical-align: middle;\n }\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n caption {\n padding-block: 0.5rem;\n color: var(--fg-3);\n text-align: start;\n }\n th {\n text-align: inherit;\n text-align: -webkit-match-parent;\n }\n thead,\n tbody,\n tfoot,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n label {\n display: inline-block;\n }\n button {\n border-radius: 0;\n }\n button:focus:not(:focus-visible) {\n outline: 0;\n }\n input,\n button,\n select,\n optgroup,\n textarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n [role=button] {\n cursor: pointer;\n }\n select {\n word-wrap: normal;\n }\n select:disabled {\n opacity: 1;\n }\n [list]:not([type=date], [type=datetime-local], [type=month], [type=week], [type=time])::-webkit-calendar-picker-indicator {\n display: none !important;\n }\n button,\n [type=button],\n [type=reset],\n [type=submit] {\n -webkit-appearance: button;\n }\n button:not(:disabled),\n [type=button]:not(:disabled),\n [type=reset]:not(:disabled),\n [type=submit]:not(:disabled) {\n cursor: pointer;\n }\n textarea {\n resize: vertical;\n }\n fieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n }\n legend {\n float: inline-start;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: 1.5rem;\n line-height: inherit;\n }\n legend + * {\n clear: inline-start;\n }\n ::-webkit-datetime-edit-fields-wrapper,\n ::-webkit-datetime-edit-text,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-meridiem-field,\n ::-webkit-datetime-edit-ampm-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-week-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-year-field {\n padding: 0;\n }\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n [type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n }\n [type=search]::-webkit-search-cancel-button {\n cursor: pointer;\n filter: grayscale(1);\n }\n [type=tel],\n [type=url],\n [type=email],\n [type=number] {\n direction: ltr;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n ::file-selector-button {\n font: inherit;\n -webkit-appearance: button;\n }\n output {\n display: inline-block;\n }\n iframe {\n border: 0;\n }\n summary {\n display: list-item;\n cursor: pointer;\n }\n progress {\n vertical-align: baseline;\n }\n [hidden] {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */\n","$file: \"\" !default;\n\n/*!\n * Bootstrap #{$file} v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n","// stylelint-disable hue-degree-notation, @stylistic/number-leading-zero\n\n@use \"sass:map\";\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n// Easily convert colors to oklch() with https://oklch.com/\n\n$white: #fff !default;\n$black: #000 !default;\n\n// scss-docs-start colors-list\n$blue: oklch(60% 0.24 240) !default;\n$indigo: oklch(56% 0.26 288) !default;\n$violet: oklch(56% 0.24 300) !default;\n$purple: oklch(56% 0.24 320) !default;\n$pink: oklch(60% 0.22 4) !default;\n$red: oklch(60% 0.22 20) !default;\n$orange: oklch(70% 0.22 52) !default;\n$amber: oklch(79% 0.2 78) !default;\n$yellow: oklch(88% 0.24 88) !default;\n$lime: oklch(65% 0.24 135) !default;\n$green: oklch(64% 0.22 160) !default;\n$teal: oklch(68% 0.22 190) !default;\n$cyan: oklch(69% 0.22 220) !default;\n$brown: oklch(60% 0.12 54) !default;\n$gray: oklch(60% 0.02 245) !default;\n$pewter: oklch(65% 0.01 290) !default;\n// scss-docs-end colors-list\n\n// scss-docs-start colors-map\n$colors: () !default;\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: defaults(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"violet\": $violet,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"amber\": $amber,\n \"yellow\": $yellow,\n \"lime\": $lime,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"brown\": $brown,\n \"gray\": $gray,\n \"pewter\": $pewter,\n ),\n $colors\n);\n// scss-docs-end colors-map\n\n// scss-docs-start color-mix-options\n$color-mix-space: lab !default;\n$tint-color: var(--white) !default;\n$shade-color: var(--black) !default;\n\n$color-tints: (\n \"025\": 94%,\n \"050\": 90%,\n \"100\": 80%,\n \"200\": 60%,\n \"300\": 40%,\n \"400\": 20%,\n) !default;\n\n$color-shades: (\n \"600\": 16%,\n \"700\": 32%,\n \"800\": 48%,\n \"900\": 64%,\n \"950\": 76%,\n \"975\": 88%,\n) !default;\n// scss-docs-end color-mix-options\n\n// scss-docs-start color-tokens\n$color-tokens: () !default;\n\n$-color-defaults: () !default;\n@each $color, $value in $colors {\n @each $stop, $percent in $color-tints {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$tint-color} #{$percent}, #{$value}));\n }\n $-color-defaults: map.set($-color-defaults, --#{$color}-500, #{$value});\n @each $stop, $percent in $color-shades {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$shade-color} #{$percent}, #{$value}));\n }\n}\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$color-tokens: defaults($-color-defaults, $color-tokens);\n// scss-docs-end color-tokens\n\n:root {\n @include tokens($color-tokens);\n}\n","// Mixin to output tokens as CSS custom properties\n\n// scss-docs-start mixin-tokens\n@mixin tokens($map) {\n @each $prop, $value in $map {\n #{$prop}: #{$value};\n }\n}\n// scss-docs-end mixin-tokens\n","@use \"sass:map\";\n@use \"colors\" as *;\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"theme\" as *;\n@use \"mixins/tokens\" as *;\n// mdo-do: do we need theme?\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n\n$root-tokens: () !default;\n\n// scss-docs-start root-tokens\n// stylelint-disable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: defaults(\n (\n --black: #{$black},\n --white: #{$white},\n\n --gradient: #{$gradient},\n\n // scss-docs-start root-font-weight-variables\n --font-weight-lighter: lighter,\n --font-weight-light: 300,\n --font-weight-normal: 400,\n --font-weight-medium: 500,\n --font-weight-semibold: 600,\n --font-weight-bold: 700,\n --font-weight-bolder: bolder,\n // scss-docs-end root-font-weight-variables\n\n // scss-docs-start root-body-variables\n --body-font-family: system-ui,\n --body-font-size: var(--font-size-base),\n --body-font-weight: #{$font-weight-base},\n --body-line-height: #{$line-height-base},\n\n --heading-color: #{$headings-color},\n\n --hr-border-color: var(--border-color),\n\n --link-color: light-dark(var(--primary-base), var(--primary-fg)),\n --link-decoration: #{$link-decoration},\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000),\n\n --font-mono: \"ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Monaco, 'Cascadia Mono', Consolas, 'Liberation Mono', monospace;\",\n --code-font-size: 95%,\n --code-color: var(--fg-2),\n\n // scss-docs-start root-border-var\n --border-width: #{$border-width},\n --border-style: #{$border-style},\n --border-color: light-dark(var(--gray-200), var(--gray-700)),\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent),\n // scss-docs-end root-border-var\n\n // scss-docs-start root-box-shadow-variables\n --box-shadow: 0 .5rem 1rem rgb(0 0 0 / 15%),\n --box-shadow-sm: 0 .125rem .25rem rgb(0 0 0 / 7.5%),\n --box-shadow-lg: 0 1rem 3rem rgb(0 0 0 / 17.5%),\n --box-shadow-inset: inset 0 1px 2px rgb(0 0 0 / 7.5%),\n // scss-docs-end root-box-shadow-variables\n\n --spacer: 1rem,\n\n // scss-docs-start root-focus-variables\n --focus-ring-width: 3px,\n --focus-ring-offset: 1px,\n --focus-ring-color: var(--primary-focus-ring),\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color),\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-variables\n --control-checked-bg: var(--primary-base),\n --control-checked-border-color: var(--control-checked-bg),\n --control-active-bg: var(--primary-base),\n --control-active-border-color: var(--control-active-bg),\n --control-disabled-bg: var(--bg-3),\n --control-disabled-opacity: .65,\n\n --btn-input-fg: var(--fg-body),\n --btn-input-bg: var(--bg-body),\n\n --btn-input-min-height: 2.375rem,\n --btn-input-padding-y: .375rem,\n --btn-input-padding-x: .75rem,\n --btn-input-font-size: var(--font-size-base),\n --btn-input-line-height: var(--line-height-base),\n --btn-input-border-radius: var(--radius-5),\n\n --btn-input-xs-min-height: 1.5rem,\n --btn-input-xs-padding-y: .125rem,\n --btn-input-xs-padding-x: .5rem,\n --btn-input-xs-font-size: var(--font-size-xs),\n --btn-input-xs-line-height: 1.125,\n --btn-input-xs-border-radius: var(--radius-5),\n\n --btn-input-sm-min-height: 2rem,\n --btn-input-sm-padding-y: .25rem,\n --btn-input-sm-padding-x: .625rem,\n --btn-input-sm-font-size: var(--font-size-sm),\n --btn-input-sm-line-height: var(--line-height-sm),\n --btn-input-sm-border-radius: var(--radius-5),\n\n --btn-input-lg-min-height: 2.75rem,\n --btn-input-lg-padding-y: .5rem,\n --btn-input-lg-padding-x: 1rem,\n --btn-input-lg-font-size: var(--font-size-md),\n --btn-input-lg-line-height: var(--line-height-md),\n --btn-input-lg-border-radius: var(--radius-7),\n // scss-docs-end root-form-variables\n ),\n $root-tokens\n);\n// stylelint-enable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// scss-docs-end root-tokens\n\n// scss-docs-start root-font-size-loop\n// Generate font-size and line-height tokens\n@each $name, $props in $font-sizes {\n $root-tokens: map.set($root-tokens, --font-size-#{$name}, map.get($props, \"font-size\"));\n $root-tokens: map.set($root-tokens, --line-height-#{$name}, map.get($props, \"line-height\"));\n}\n// scss-docs-end root-font-size-loop\n\n// scss-docs-start root-theme-tokens\n// Generate semantic theme colors\n@each $color-name, $color-map in $theme-colors {\n @each $key, $value in $color-map {\n $root-tokens: map.set($root-tokens, --#{$color-name}-#{$key}, $value);\n }\n}\n\n// Generate background tokens\n@each $key, $value in $theme-bgs {\n $root-tokens: map.set($root-tokens, --bg-#{$key}, $value);\n}\n\n// Generate foreground tokens\n@each $key, $value in $theme-fgs {\n $root-tokens: map.set($root-tokens, --fg-#{$key}, $value);\n}\n\n// Generate border tokens\n@each $key, $value in $theme-borders {\n $root-tokens: map.set($root-tokens, --border-#{$key}, $value);\n}\n// scss-docs-end root-theme-tokens\n\n// Generate breakpoint tokens\n@each $name, $value in $breakpoints {\n $root-tokens: map.set($root-tokens, --breakpoint-#{$name}, $value);\n}\n\n// Generate spacer tokens\n// scss-docs-start root-spacer-loop\n@each $key, $value in $spacers {\n $root-tokens: map.set($root-tokens, --spacer-#{$key}, $value);\n}\n// scss-docs-end root-spacer-loop\n\n// Generate radius tokens\n// scss-docs-start root-radius-loop\n@each $key, $value in $radii {\n $root-tokens: map.set($root-tokens, --radius-#{$key}, $value);\n}\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: map.set($root-tokens, --radius-pill, 50rem);\n// scss-docs-end root-radius-loop\n\n:root {\n @include tokens($root-tokens);\n\n color-scheme: light dark;\n // Always reserve the viewport scrollbar gutter so layout doesn't shift\n // when overflow: hidden is applied (e.g. when a dialog opens on Windows).\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=\"dark\"] {\n color-scheme: dark;\n}\n\n[data-bs-theme=\"light\"] {\n color-scheme: light;\n}\n","@use \"../config\" as *;\n@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n$reboot-kbd-tokens: () !default;\n$reboot-mark-tokens: () !default;\n\n// scss-docs-start reboot-kbd-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$reboot-kbd-tokens: defaults(\n (\n --kbd-padding-y: .125rem,\n --kbd-padding-x: .25rem,\n --kbd-font-size: var(--font-size-xs),\n --kbd-color: var(--bg-body),\n --kbd-bg: var(--fg-2),\n --kbd-border-radius: var(--radius-5),\n ),\n $reboot-kbd-tokens\n);\n// scss-docs-end reboot-kbd-tokens\n\n// scss-docs-start reboot-mark-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$reboot-mark-tokens: defaults(\n (\n --mark-padding: .1875em,\n --mark-color: var(--fg-body),\n --mark-bg: light-dark(var(--yellow-100), var(--yellow-900)),\n ),\n $reboot-mark-tokens\n);\n// scss-docs-end reboot-mark-tokens\n\n@layer reboot {\n // Reboot\n //\n // Normalization of HTML elements, manually forked from Normalize.css to remove\n // styles targeting irrelevant browsers while applying new styles.\n //\n // Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n // Document\n //\n // Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n // Root\n //\n // Ability to the value of the root font sizes, affecting the value of `rem`.\n // null by default, thus nothing is generated.\n\n :root {\n // Assume browser default font-size of 16px, or a user's preference\n accent-color: var(--primary-base);\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n }\n\n // Body\n //\n // 1. Remove the margin in all browsers.\n // 2. As a best practice, apply a default `background-color`.\n // 3. Prevent adjustments of font size after orientation changes in iOS.\n // 4. Change the default tap highlight to be completely transparent in iOS.\n\n // scss-docs-start reboot-body-rules\n body {\n margin: 0; // 1\n font-family: var(--body-font-family);\n font-size: var(--body-font-size);\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n color: var(--fg-body);\n text-align: var(--body-text-align);\n background-color: var(--bg-body); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: transparent; // 4\n }\n // scss-docs-end reboot-body-rules\n\n hr {\n margin: var(--hr-margin-y, var(--spacer)) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n\n // Typography\n //\n // 1. Remove top margins from headings\n // By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n // margin for easier control within type scales as it avoids margin collapsing.\n\n %heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: var(--heading-color);\n }\n\n h1,\n .h1 {\n @extend %heading;\n font-size: var(--font-size-3xl);\n }\n\n h2,\n .h2 {\n @extend %heading;\n font-size: var(--font-size-2xl);\n }\n\n h3,\n .h3 {\n @extend %heading;\n font-size: var(--font-size-xl);\n }\n\n h4,\n .h4 {\n @extend %heading;\n font-size: var(--font-size-lg);\n }\n\n h5,\n .h5 {\n @extend %heading;\n font-size: var(--font-size-md);\n }\n\n h6,\n .h6 {\n @extend %heading;\n font-size: var(--font-size-sm);\n }\n\n // Reset margins on paragraphs\n //\n // Similarly, the top margin on `<p>`s get reset. However, we also reset the\n // bottom margin to use `rem` units instead of `em`.\n\n p {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n }\n\n // Abbreviations\n //\n // 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n // 2. Add explicit cursor to indicate changed behavior.\n // 3. Prevent the text-decoration to be skipped.\n\n abbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n }\n\n // Address\n\n address {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n }\n\n // Lists\n\n ol,\n ul {\n padding-inline-start: 2rem;\n }\n\n ol,\n ul,\n dl {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n\n ol ol,\n ul ul,\n ol ul,\n ul ol {\n margin-bottom: 0;\n }\n\n dt {\n font-weight: $dt-font-weight;\n }\n\n // 1. Undo browser default\n\n dd {\n margin-inline-start: 0; // 1\n margin-bottom: .5rem;\n }\n\n // Blockquote\n\n blockquote {\n margin: 0 0 1rem;\n > * {\n margin-block: 0;\n }\n }\n\n // Strong\n //\n // Add the correct font weight in Chrome, Edge, and Safari\n\n b,\n strong {\n font-weight: $font-weight-bolder;\n }\n\n // Small\n //\n // Add the correct font size in all browsers\n\n small,\n .small {\n font-size: var(--small-font-size, 87.5%);\n }\n\n // Mark\n\n mark,\n .mark {\n @include tokens($reboot-mark-tokens);\n padding: var(--mark-padding);\n color: var(--mark-color);\n background-color: var(--mark-bg);\n }\n\n // Sub and Sup\n //\n // Prevent `sub` and `sup` elements from affecting the line height in\n // all browsers.\n\n sub,\n sup {\n position: relative;\n font-size: var(--sub-sup-font-size, .75em);\n line-height: 0;\n vertical-align: baseline;\n }\n\n sub { bottom: -.25em; }\n sup { top: -.5em; }\n\n // Links\n\n a {\n color: var(--theme-fg, var(--link-color));\n text-decoration: var(--link-decoration);\n text-underline-offset: $link-underline-offset;\n\n &:hover {\n // --link-color: var(--link-hover-color);\n // --link-decoration: var(--link-hover-decoration, var(--link-decoration));\n color: var(--theme-fg-emphasis, var(--link-hover-color));\n text-decoration: var(--link-hover-decoration, var(--link-decoration));\n }\n }\n\n // And undo these styles for placeholder links/named anchors (without href).\n // It would be more straightforward to just use a[href] in previous block, but that\n // causes specificity issues in many other styles that are too complex to fix.\n // See https://github.com/twbs/bootstrap/issues/19402\n\n a:not([href], [class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n }\n\n // Code\n\n pre,\n code,\n kbd,\n samp {\n font-family: var(--font-mono);\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n }\n\n // 1. Remove browser default top margin\n // 2. Reset browser default of `1em` to use `rem`s\n // 3. Don't allow content to break outside\n\n pre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n font-size: var(--code-font-size);\n color: var(--code-color, inherit);\n\n // Account for some code outputs that place code tags in pre tags\n code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n }\n\n code {\n font-size: var(--code-font-size);\n color: var(--code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n }\n\n kbd {\n @include tokens($reboot-kbd-tokens);\n padding: var(--kbd-padding-y) var(--kbd-padding-x);\n font-size: var(--kbd-font-size);\n color: var(--kbd-color);\n background-color: var(--kbd-bg);\n @include border-radius(var(--kbd-border-radius));\n\n kbd {\n padding: 0;\n font-size: 1em;\n font-weight: inherit; // mdo-do: check if this is needed\n }\n }\n\n // Figures\n //\n // Apply a consistent margin strategy (matches our type styles).\n\n figure {\n margin: 0 0 1rem;\n }\n\n // Images and content\n\n img,\n svg {\n vertical-align: middle;\n }\n\n // Tables\n //\n // Prevent double borders\n\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n\n caption {\n // padding-top: $table-cell-padding-y;\n // padding-bottom: $table-cell-padding-y;\n // color: $table-caption-color;\n padding-block: .5rem;\n color: var(--fg-3);\n text-align: start;\n }\n\n // 1. Removes font-weight bold by inheriting\n // 2. Matches default `<td>` alignment by inheriting `text-align`.\n // 3. Fix alignment for Safari\n\n th {\n // font-weight: $table-th-font-weight; // 1 // mdo-do: it's null by default. maybe we remove?\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n }\n\n thead,\n tbody,\n tfoot,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n\n // Forms\n //\n // 1. Allow labels to use `margin` for spacing.\n\n label {\n display: inline-block; // 1\n }\n\n // Remove the default `border-radius` that macOS Chrome adds.\n // See https://github.com/twbs/bootstrap/issues/24093\n\n button {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n }\n\n // Explicitly remove focus outline in Chromium when it shouldn't be\n // visible (e.g. as result of mouse click or touch tap). It already\n // should be doing this automatically, but seems to currently be\n // confused and applies its very visible two-tone outline anyway.\n\n button:focus:not(:focus-visible) {\n outline: 0;\n }\n\n // 1. Remove the margin in Firefox and Safari\n\n input,\n button,\n select,\n optgroup,\n textarea {\n margin: 0; // 1\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n // Set the cursor for non-`<button>` buttons\n //\n // Details at https://github.com/twbs/bootstrap/pull/30562\n [role=\"button\"] {\n cursor: pointer;\n }\n\n select {\n // Remove the inheritance of word-wrap in Safari.\n // See https://github.com/twbs/bootstrap/issues/24990\n word-wrap: normal;\n\n // Undo the opacity change from Chrome\n &:disabled {\n opacity: 1;\n }\n }\n\n // Remove the dropdown arrow only from text type inputs built with datalists in Chrome.\n // See https://stackoverflow.com/a/54997118\n\n [list]:not([type=\"date\"], [type=\"datetime-local\"], [type=\"month\"], [type=\"week\"], [type=\"time\"])::-webkit-calendar-picker-indicator {\n display: none !important;\n }\n\n // 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n // controls in Android 4.\n // 2. Correct the inability to style clickable types in iOS and Safari.\n // 3. Opinionated: add \"hand\" cursor to non-disabled button elements.\n\n button,\n [type=\"button\"], // 1\n [type=\"reset\"],\n [type=\"submit\"] {\n -webkit-appearance: button; // 2\n\n @if $enable-button-pointers {\n &:not(:disabled) {\n cursor: pointer; // 3\n }\n }\n }\n\n // 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.\n\n textarea {\n resize: vertical; // 1\n }\n\n // 1. Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n // 2. Reset the default outline behavior of fieldsets so they don't affect page layout.\n\n fieldset {\n min-width: 0; // 1\n padding: 0; // 2\n margin: 0; // 2\n border: 0; // 2\n }\n\n // 1. By using `float: inline-start`, the legend will behave like a block element.\n // This way the border of a fieldset wraps around the legend if present.\n // 2. Fix wrapping bug.\n // See https://github.com/twbs/bootstrap/issues/29712\n\n legend {\n float: inline-start; // 1\n width: 100%;\n padding: 0;\n margin-bottom: $legend-margin-bottom;\n font-size: $legend-font-size;\n font-weight: $legend-font-weight;\n line-height: inherit;\n\n + * {\n clear: inline-start; // 2\n }\n }\n\n // Fix height of inputs with a type of datetime-local, date, month, week, or time\n // See https://github.com/twbs/bootstrap/issues/18842\n\n ::-webkit-datetime-edit-fields-wrapper,\n ::-webkit-datetime-edit-text,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-meridiem-field, // WebKit\n ::-webkit-datetime-edit-ampm-field, // Chromium\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-week-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-year-field {\n padding: 0;\n }\n\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n\n // 1. This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n // 2. Correct the outline style in Safari.\n\n [type=\"search\"] {\n -webkit-appearance: textfield; // 1\n outline-offset: -2px; // 2\n\n // 3. Better affordance and consistent appearance for search cancel button\n &::-webkit-search-cancel-button {\n cursor: pointer;\n filter: grayscale(1);\n }\n }\n\n // A few input types should stay LTR regardless of document direction\n // See https://rtlstyling.com/posts/rtl-styling#form-inputs\n\n [type=\"tel\"],\n [type=\"url\"],\n [type=\"email\"],\n [type=\"number\"] {\n direction: ltr;\n }\n\n // Remove the inner padding in Chrome and Safari on macOS.\n\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n // Remove padding around color pickers in webkit browsers\n\n ::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n\n // 1. Inherit font family and line height for file input buttons\n // 2. Correct the inability to style clickable types in iOS and Safari.\n\n ::file-selector-button {\n font: inherit; // 1\n -webkit-appearance: button; // 2\n }\n\n // Correct element displays\n\n output {\n display: inline-block;\n }\n\n // Remove border from iframe\n\n iframe {\n border: 0;\n }\n\n // Summary\n //\n // 1. Add the correct display in all browsers\n\n summary {\n display: list-item; // 1\n cursor: pointer;\n }\n\n // Progress\n //\n // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n progress {\n vertical-align: baseline;\n }\n\n // Hidden attribute\n //\n // Always hide an element with the `hidden` HTML attribute.\n\n [hidden] {\n display: none !important;\n }\n}\n","@use \"sass:map\";\n@use \"sass:meta\";\n\n// Configuration\n//\n// Variables and settings not related to theme, components, and more go here. It does include layout.\n\n// Merge overrides on top of defaults, stripping null entries.\n// Null values let users remove map keys via @use ... with().\n// Accepts a list as $defaults (converted to a map with `true` values).\n@function defaults($defaults, $overrides) {\n @if meta.type-of($defaults) == \"list\" {\n $map: ();\n @each $key in $defaults {\n $map: map.merge($map, ($key: true));\n }\n $defaults: $map;\n }\n $merged: map.merge($defaults, $overrides);\n @each $key, $value in $merged {\n @if $value == null {\n $merged: map.remove($merged, $key);\n }\n }\n @return $merged;\n}\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: true !default;\n$enable-gradients: true !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: false !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: true !default;\n$enable-button-pointers: true !default;\n// $enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n\n$color-mode-type: \"media-query\" !default;\n$color-contrast-dark: #000 !default;\n$color-contrast-light: #fff !default;\n$min-contrast-ratio: 4.5 !default;\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer * .75,\n 4: $spacer,\n 5: $spacer * 1.25,\n 6: $spacer * 1.5,\n 7: $spacer * 2,\n 8: $spacer * 2.5,\n 9: $spacer * 3,\n) !default;\n\n$negative-spacers: (\n \"-1\": $spacer * -.25,\n \"-2\": $spacer * -.5,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n$sizes: (\n 1: $spacer,\n 2: $spacer * 2,\n 3: $spacer * 3,\n 4: $spacer * 4,\n 5: $spacer * 5,\n 6: $spacer * 6,\n 7: $spacer * 7,\n 8: $spacer * 8,\n 9: $spacer * 9,\n 10: $spacer * 10,\n 11: $spacer * 11,\n 12: $spacer * 12,\n) !default;\n\n$radius: .5rem !default;\n$radii: (\n 0: 0,\n 1: $radius * .25,\n 2: $radius * .375,\n 3: $radius * .5,\n 4: $radius * .75,\n 5: $radius,\n 6: $radius * 1.25,\n 7: $radius * 1.5,\n 8: $radius * 2,\n 9: $radius * 3,\n) !default;\n\n// Breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start breakpoints\n$breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 1024px,\n xl: 1280px,\n 2xl: 1536px\n) !default;\n// scss-docs-end breakpoints\n\n// @include _assert-ascending($breakpoints, \"$breakpoints\");\n// @include _assert-starts-at-zero($breakpoints, \"$breakpoints\");\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-x: 1.5rem !default;\n$grid-gutter-y: 0 !default;\n$grid-row-columns: 6 !default;\n\n$gutters: $spacers !default;\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1200px,\n 2xl: 1440px\n) !default;\n// scss-docs-end container-max-widths\n\n$container-padding-x: $grid-gutter-x !default;\n\n$utilities: () !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent)) !default;\n// scss-docs-end variable-gradient\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Links\n//\n// Style anchor elements.\n\n$link-decoration: underline !default;\n$link-underline-offset: .2em !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: color-mix(in oklch, var(--gray-100), var(--gray-200)) !default;\n// scss-docs-end border-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"auto\": auto,\n \"1x1\": #{\"1 / 1\"},\n \"4x3\": #{\"4 / 3\"},\n \"16x9\": #{\"16 / 9\"},\n \"21x9\": #{\"21 / 9\"}\n) !default;\n// scss-docs-end aspect-ratios\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$font-sizes: defaults(\n (\n \"xs\": (\n \"font-size\": .75rem,\n \"line-height\": 1.25\n ),\n \"sm\": (\n \"font-size\": .875rem,\n \"line-height\": 1.5\n ),\n \"md\": (\n \"font-size\": 1rem,\n \"line-height\": 1.5\n ),\n \"lg\": (\n \"font-size\": clamp(1.25rem, 1rem + .625vw, 1.5rem),\n \"line-height\": 1.5\n ),\n \"xl\": (\n \"font-size\": clamp(1.5rem, 1.1rem + .75vw, 1.75rem),\n \"line-height\": calc(2.5 / 1.75)\n ),\n \"2xl\": (\n \"font-size\": clamp(1.75rem, 1.3rem + 1vw, 2rem),\n \"line-height\": calc(3 / 2.25)\n ),\n \"3xl\": (\n \"font-size\": clamp(2rem, 1.5rem + 1.875vw, 2.5rem),\n \"line-height\": 1.2\n ),\n \"4xl\": (\n \"font-size\": clamp(2.25rem, 1.75rem + 2.5vw, 3rem),\n \"line-height\": 1.1\n ),\n \"5xl\": (\n \"font-size\": clamp(3rem, 2rem + 5vw, 4rem),\n \"line-height\": 1.1\n ),\n \"6xl\": (\n \"font-size\": clamp(3.75rem, 2.5rem + 6.25vw, 5rem),\n \"line-height\": 1\n ),\n ),\n $font-sizes\n);\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: var(--spacer-2) !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start type-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n// scss-docs-end type-variables\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-menu: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n// $zindex-drawer-backdrop: 1040 !default;\n$zindex-drawer: 1045 !default;\n$zindex-dialog: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n","@use \"sass:list\";\n@use \"sass:math\";\n@use \"sass:meta\";\n@use \"../config\" as *;\n\n// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n $return: ();\n @each $value in $radius {\n @if meta.type-of($value) == number {\n $return: list.append($return, math.max($value, 0));\n } @else {\n $return: list.append($return, $value);\n }\n }\n @return $return;\n}\n\n// scss-docs-start border-radius-mixins\n@mixin border-radius($radius: var(--radius-5), $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: valid-radius($radius);\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n border-start-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-end-radius: valid-radius($radius);\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-start-radius: valid-radius($radius);\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n border-end-start-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-start-radius: valid-radius($radius);\n }\n}\n// scss-docs-end border-radius-mixins\n"],"names":[]}
\ No newline at end of file
--bs-link-color: light-dark(var(--bs-primary-base), var(--bs-primary-fg));
--bs-link-decoration: underline;
--bs-link-hover-color: color-mix(in oklch, var(--bs-link-color) 90%, #000);
- --bs-font-mono: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
+ --bs-font-mono: ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Monaco, 'Cascadia Mono', Consolas, 'Liberation Mono', monospace;;
--bs-code-font-size: 95%;
--bs-code-color: var(--bs-fg-2);
--bs-border-width: 1px;
--bs-border-style: solid;
- --bs-border-color: light-dark(color-mix(in oklch, var(--bs-gray-100), var(--bs-gray-200)), var(--bs-gray-700));
+ --bs-border-color: light-dark(var(--bs-gray-200), var(--bs-gray-700));
--bs-border-color-translucent: color-mix(in oklch, var(--bs-fg-body) 15%, transparent);
--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
--bs-border-bg: var(--bs-bg-body);
--bs-border-body: light-dark(var(--bs-gray-300), var(--bs-gray-800));
--bs-border-muted: light-dark(var(--bs-gray-200), var(--bs-gray-800));
- --bs-border-subtle: light-dark(var(--bs-gray-100), var(--bs-gray-900));
+ --bs-border-subtle: light-dark(color-mix(in oklch, var(--bs-gray-100), var(--bs-gray-200)), var(--bs-gray-900));
--bs-border-emphasized: light-dark(var(--bs-gray-400), var(--bs-gray-600));
--bs-border-white: var(--bs-white);
--bs-border-black: var(--bs-black);
float: none;
}
.object-fit-contain {
- -o-object-fit: contain;
object-fit: contain;
}
.object-fit-cover {
- -o-object-fit: cover;
object-fit: cover;
}
.object-fit-fill {
- -o-object-fit: fill;
object-fit: fill;
}
.object-fit-scale {
- -o-object-fit: scale-down;
object-fit: scale-down;
}
.object-fit-none {
- -o-object-fit: none;
object-fit: none;
}
.opacity-0 {
row-gap: 3rem;
}
.column-gap-0 {
- -moz-column-gap: 0;
column-gap: 0;
}
.column-gap-1 {
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
}
.column-gap-2 {
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
}
.column-gap-3 {
- -moz-column-gap: 0.75rem;
column-gap: 0.75rem;
}
.column-gap-4 {
- -moz-column-gap: 1rem;
column-gap: 1rem;
}
.column-gap-5 {
- -moz-column-gap: 1.25rem;
column-gap: 1.25rem;
}
.column-gap-6 {
- -moz-column-gap: 1.5rem;
column-gap: 1.5rem;
}
.column-gap-7 {
- -moz-column-gap: 2rem;
column-gap: 2rem;
}
.column-gap-8 {
- -moz-column-gap: 2.5rem;
column-gap: 2.5rem;
}
.column-gap-9 {
- -moz-column-gap: 3rem;
column-gap: 3rem;
}
:where(.space-x-0 > :not(:last-child)) {
--bs-fg: var(--bs-fg-black);
color: var(--bs-fg);
}
+ .fg-reset {
+ --bs-fg: inherit;
+ color: var(--bs-fg);
+ }
.fg-emphasis-primary {
--bs-fg: var(--bs-primary-fg-emphasis);
color: var(--bs-fg);
float: none;
}
.sm\:object-fit-contain {
- -o-object-fit: contain;
object-fit: contain;
}
.sm\:object-fit-cover {
- -o-object-fit: cover;
object-fit: cover;
}
.sm\:object-fit-fill {
- -o-object-fit: fill;
object-fit: fill;
}
.sm\:object-fit-scale {
- -o-object-fit: scale-down;
object-fit: scale-down;
}
.sm\:object-fit-none {
- -o-object-fit: none;
object-fit: none;
}
.sm\:d-inline {
row-gap: 3rem;
}
.sm\:column-gap-0 {
- -moz-column-gap: 0;
column-gap: 0;
}
.sm\:column-gap-1 {
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
}
.sm\:column-gap-2 {
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
}
.sm\:column-gap-3 {
- -moz-column-gap: 0.75rem;
column-gap: 0.75rem;
}
.sm\:column-gap-4 {
- -moz-column-gap: 1rem;
column-gap: 1rem;
}
.sm\:column-gap-5 {
- -moz-column-gap: 1.25rem;
column-gap: 1.25rem;
}
.sm\:column-gap-6 {
- -moz-column-gap: 1.5rem;
column-gap: 1.5rem;
}
.sm\:column-gap-7 {
- -moz-column-gap: 2rem;
column-gap: 2rem;
}
.sm\:column-gap-8 {
- -moz-column-gap: 2.5rem;
column-gap: 2.5rem;
}
.sm\:column-gap-9 {
- -moz-column-gap: 3rem;
column-gap: 3rem;
}
:where(.sm\:space-x-0 > :not(:last-child)) {
float: none;
}
.md\:object-fit-contain {
- -o-object-fit: contain;
object-fit: contain;
}
.md\:object-fit-cover {
- -o-object-fit: cover;
object-fit: cover;
}
.md\:object-fit-fill {
- -o-object-fit: fill;
object-fit: fill;
}
.md\:object-fit-scale {
- -o-object-fit: scale-down;
object-fit: scale-down;
}
.md\:object-fit-none {
- -o-object-fit: none;
object-fit: none;
}
.md\:d-inline {
row-gap: 3rem;
}
.md\:column-gap-0 {
- -moz-column-gap: 0;
column-gap: 0;
}
.md\:column-gap-1 {
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
}
.md\:column-gap-2 {
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
}
.md\:column-gap-3 {
- -moz-column-gap: 0.75rem;
column-gap: 0.75rem;
}
.md\:column-gap-4 {
- -moz-column-gap: 1rem;
column-gap: 1rem;
}
.md\:column-gap-5 {
- -moz-column-gap: 1.25rem;
column-gap: 1.25rem;
}
.md\:column-gap-6 {
- -moz-column-gap: 1.5rem;
column-gap: 1.5rem;
}
.md\:column-gap-7 {
- -moz-column-gap: 2rem;
column-gap: 2rem;
}
.md\:column-gap-8 {
- -moz-column-gap: 2.5rem;
column-gap: 2.5rem;
}
.md\:column-gap-9 {
- -moz-column-gap: 3rem;
column-gap: 3rem;
}
:where(.md\:space-x-0 > :not(:last-child)) {
float: none;
}
.lg\:object-fit-contain {
- -o-object-fit: contain;
object-fit: contain;
}
.lg\:object-fit-cover {
- -o-object-fit: cover;
object-fit: cover;
}
.lg\:object-fit-fill {
- -o-object-fit: fill;
object-fit: fill;
}
.lg\:object-fit-scale {
- -o-object-fit: scale-down;
object-fit: scale-down;
}
.lg\:object-fit-none {
- -o-object-fit: none;
object-fit: none;
}
.lg\:d-inline {
row-gap: 3rem;
}
.lg\:column-gap-0 {
- -moz-column-gap: 0;
column-gap: 0;
}
.lg\:column-gap-1 {
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
}
.lg\:column-gap-2 {
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
}
.lg\:column-gap-3 {
- -moz-column-gap: 0.75rem;
column-gap: 0.75rem;
}
.lg\:column-gap-4 {
- -moz-column-gap: 1rem;
column-gap: 1rem;
}
.lg\:column-gap-5 {
- -moz-column-gap: 1.25rem;
column-gap: 1.25rem;
}
.lg\:column-gap-6 {
- -moz-column-gap: 1.5rem;
column-gap: 1.5rem;
}
.lg\:column-gap-7 {
- -moz-column-gap: 2rem;
column-gap: 2rem;
}
.lg\:column-gap-8 {
- -moz-column-gap: 2.5rem;
column-gap: 2.5rem;
}
.lg\:column-gap-9 {
- -moz-column-gap: 3rem;
column-gap: 3rem;
}
:where(.lg\:space-x-0 > :not(:last-child)) {
float: none;
}
.xl\:object-fit-contain {
- -o-object-fit: contain;
object-fit: contain;
}
.xl\:object-fit-cover {
- -o-object-fit: cover;
object-fit: cover;
}
.xl\:object-fit-fill {
- -o-object-fit: fill;
object-fit: fill;
}
.xl\:object-fit-scale {
- -o-object-fit: scale-down;
object-fit: scale-down;
}
.xl\:object-fit-none {
- -o-object-fit: none;
object-fit: none;
}
.xl\:d-inline {
row-gap: 3rem;
}
.xl\:column-gap-0 {
- -moz-column-gap: 0;
column-gap: 0;
}
.xl\:column-gap-1 {
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
}
.xl\:column-gap-2 {
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
}
.xl\:column-gap-3 {
- -moz-column-gap: 0.75rem;
column-gap: 0.75rem;
}
.xl\:column-gap-4 {
- -moz-column-gap: 1rem;
column-gap: 1rem;
}
.xl\:column-gap-5 {
- -moz-column-gap: 1.25rem;
column-gap: 1.25rem;
}
.xl\:column-gap-6 {
- -moz-column-gap: 1.5rem;
column-gap: 1.5rem;
}
.xl\:column-gap-7 {
- -moz-column-gap: 2rem;
column-gap: 2rem;
}
.xl\:column-gap-8 {
- -moz-column-gap: 2.5rem;
column-gap: 2.5rem;
}
.xl\:column-gap-9 {
- -moz-column-gap: 3rem;
column-gap: 3rem;
}
:where(.xl\:space-x-0 > :not(:last-child)) {
float: none;
}
.\32 xl\:object-fit-contain {
- -o-object-fit: contain;
object-fit: contain;
}
.\32 xl\:object-fit-cover {
- -o-object-fit: cover;
object-fit: cover;
}
.\32 xl\:object-fit-fill {
- -o-object-fit: fill;
object-fit: fill;
}
.\32 xl\:object-fit-scale {
- -o-object-fit: scale-down;
object-fit: scale-down;
}
.\32 xl\:object-fit-none {
- -o-object-fit: none;
object-fit: none;
}
.\32 xl\:d-inline {
row-gap: 3rem;
}
.\32 xl\:column-gap-0 {
- -moz-column-gap: 0;
column-gap: 0;
}
.\32 xl\:column-gap-1 {
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
}
.\32 xl\:column-gap-2 {
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
}
.\32 xl\:column-gap-3 {
- -moz-column-gap: 0.75rem;
column-gap: 0.75rem;
}
.\32 xl\:column-gap-4 {
- -moz-column-gap: 1rem;
column-gap: 1rem;
}
.\32 xl\:column-gap-5 {
- -moz-column-gap: 1.25rem;
column-gap: 1.25rem;
}
.\32 xl\:column-gap-6 {
- -moz-column-gap: 1.5rem;
column-gap: 1.5rem;
}
.\32 xl\:column-gap-7 {
- -moz-column-gap: 2rem;
column-gap: 2rem;
}
.\32 xl\:column-gap-8 {
- -moz-column-gap: 2.5rem;
column-gap: 2.5rem;
}
.\32 xl\:column-gap-9 {
- -moz-column-gap: 3rem;
column-gap: 3rem;
}
:where(.\32 xl\:space-x-0 > :not(:last-child)) {
-{"version":3,"sources":["../../scss/_banner.scss","../../scss/_colors.scss","../../scss/mixins/_tokens.scss","bootstrap-utilities.css","../../scss/_root.scss","../../scss/helpers/_focus-ring.scss","../../scss/helpers/_icon-link.scss","../../scss/_config.scss","../../scss/mixins/_transition.scss","../../scss/helpers/_position.scss","../../scss/layout/_breakpoints.scss","../../scss/helpers/_stacks.scss","../../scss/helpers/_theme-colors.scss","../../scss/_theme.scss","../../scss/helpers/_visually-hidden.scss","../../scss/mixins/_visually-hidden.scss","../../scss/helpers/_stretched-link.scss","../../scss/helpers/_text-truncation.scss","../../scss/mixins/_text-truncate.scss","../../scss/helpers/_vr.scss","../../scss/utilities/_api.scss","../../scss/mixins/_utilities.scss"],"names":[],"mappings":"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IA5II,UAoDG;ElB0rBT;EkBlmBE;IA5II,cAyDO;ElBwrBb;EkBrmBE;IA5II,gBAyDO;ElB2rBb;EkBxmBE;IA5II,iBAyDO;ElB8rBb;EkB3mBE;IA5II,gBAyDO;ElBisBb;EkB9mBE;IA5II,gBAyDO;ElBosBb;EkBjnBE;IA5II,kBAyDO;ElBusBb;EkBpnBE;IA5II,mBAyDO;ElB0sBb;EkBvnBE;IA5II,kBAyDO;ElB6sBb;EkB1nBE;IA5II,gBAyDO;ElBgtBb;EkB7nBE;IA5II,kBAyDO;ElBmtBb;EkBhoBE;IA5II,mBAyDO;ElBstBb;EkBnoBE;IA5II,kBAyDO;ElBytBb;EkBtoBE;IA5II,2BAoDG;ElBiuBT;EkBzoBE;IA5II,oBAoDG;ElBouBT;EkB5oBE;IA5II,eAyDO;ElBkuBb;EkB/oBE;IA5II,qBAyDO;ElBquBb;EkBlpBE;IA5II,cAyDO;ElBwuBb;EkBrpBE;IA5II,aAyDO;ElB2uBb;EkBxpBE;IA5II,oBAyDO;ElB8uBb;EkB3pBE;IA5II,cAyDO;ElBivBb;EkB9pBE;IA5II,kBAyDO;ElBovBb;EkBjqBE;IA5II,mBAyDO;ElBuvBb;EkBpqBE;IA5II,aAyDO;ElB0vBb;EkBvqBE;IA5II,oBAyDO;ElB6vBb;EkB1qBE;IA5II,iBAyDO;ElBgwBb;EkB7qBE;IA5II,kBAyDO;ElBmwBb;EkBhrBE;IA5II,aAyDO;ElBswBb;EkBnrBE;IA5II,gCAoDG;ElB8wBT;EkBtrBE;IA5II,mCAoDG;ElBixBT;EkBzrBE;IA5II,mCAoDG;ElBoxBT;EkB5rBE;IA5II,gBAoDG;ElBuxBT;EkB/rBE;IA5II,gBAyDO;ElBqxBb;EkBlsBE;IA5II,kBAyDO;ElBwxBb;EkBrsBE;IA5II,kBAyDO;ElB2xBb;EkBxsBE;IA5II,eAyDO;ElB8xBb;EkB3sBE;IA5II,gBAyDO;ElBiyBb;EkB9sBE;IA5II,MAoDG;ElByyBT;EkBjtBE;IA5II,QAoDG;ElB4yBT;EkBptBE;IA5II,SAoDG;ElB+yBT;EkBvtBE;IA5II,SAoDG;ElBkzBT;EkB1tBE;IA5II,WAoDG;ElBqzBT;EkB7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5II,uBAoDG;ElBqqCT;EkB7kCE;IA5II,8BAoDG;ElBwqCT;EkBhlCE;IA5II,6BAoDG;ElB2qCT;EkBnlCE;IA5II,6BAoDG;ElB8qCT;EkBtlCE;IA5II,oBAoDG;ElBirCT;EkBzlCE;IA5II,kBAoDG;ElBorCT;EkB5lCE;IA5II,qBAoDG;ElBurCT;EkB/lCE;IA5II,sBAoDG;ElB0rCT;EkBlmCE;IA5II,mBAoDG;ElB6rCT;EkBrmCE;IA5II,iBAoDG;ElBgsCT;EkBxmCE;IA5II,oBAoDG;ElBmsCT;EkB3mCE;IA5II,uBAoDG;ElBssCT;EkB9mCE;IA5II,qBAoDG;ElBysCT;EkBjnCE;IA5II,mBAoDG;ElB4sCT;EkBpnCE;IA5II,qBAoDG;ElB+sCT;EkBvnCE;IA5II,oBAoDG;ElBktCT;EkB1nCE;IA5II,yBAoDG;ElBqtCT;EkB7nCE;IA5II,uBAoDG;ElBwtCT;EkBhoCE;IA5II,qBAoDG;ElB2tCT;EkBnoCE;IA5II,4BAoDG;ElB8tCT;EkBtoCE;IA5II,2BAoDG;ElBiuCT;EkBzoCE;IA5II,sBAoDG;ElBouCT;EkB5oCE;IA5II,gBAoDG;ElBuuCT;EkB/oCE;IA5II,sBAoDG;ElB0uCT;EkBlpCE;IA5II,oBAoDG;ElB6uCT;EkBrpCE;IA5II,kBAoDG;ElBgvCT;EkBxpCE;IA5II,oBAoDG;ElBmvCT;EkB3pCE;IA5II,mBAoDG;ElBsvCT;EkB9pCE;IA5II,kBAoDG;ElByvCT;EkBjqCE;IA5II,gBAoDG;ElB4vCT;EkBpqCE;IA5II,mBAoDG;ElB+vCT;EkBvqCE;IA5II,oBAoDG;ElBkwCT;EkB1qCE;IA5II,0BAoDG;ElBqwCT;EkB7qCE;IA5II,qCAoDG;ElBwwCT;EkBhrCE;IA5II,qCAoDG;ElB2wCT;EkBnrCE;IA5II,qCAoDG;ElB8wCT;EkBtrCE;IA5II,qCAoDG;ElBixCT;EkBzrCE;IA5II,mBAoDG;ElBoxCT;EkB5rCE;IA5II,mBAyDO;ElBkxCb;EkB/rCE;IA5II,sBAyDO;ElBqxCb;EkBlsCE;IA5II,qBAyDO;ElBwxCb;EkBrsCE;IA5II,SAoDG;ElBgyCT;EkBxsCE;IA5II,QAoDG;ElBmyCT;EkB3sCE;IA5II,QAoDG;ElBsyCT;EkB9sCE;IA5II,QAoDG;ElByyCT;EkBjtCE;IA5II,QAoDG;ElB4yCT;EkBptCE;IA5II,QAoDG;ElB+yCT;EkBvtCE;IA5II,QAoDG;ElBkzCT;EkB1tCE;IA5II,QAoDG;ElBqzCT;EkB7tCE;IA5II,SAoDG;ElBwzCT;EkBhuCE;IA5II,eAoDG;ElB2zCT;EkBnuCE;IA5II,cAoDG;ElB8zCT;EkBtuCE;IA5II,eAoDG;ElBi0CT;EkBzuCE;IA5II,YAoDG;ElBo0CT;EkB5uCE;IA5II,eAoDG;ElBu0CT;EkB/uCE;IA5II,cAoDG;ElB00CT;EkBlvCE;IA5II,YAoDG;ElB60CT;EkBrvCE;IA5II,cAoDG;ElBg1CT;EkBxvCE;IA5II,YAoDG;ElBm1CT;EkB3vCE;IA5II,YAoDG;ElBs1CT;EkB9vCE;IA5II,gBAoDG;ElBy1CT;EkBjwCE;IA5II,sBAoDG;ElB41CT;EkBpwCE;IA5II,qBAoDG;ElB+1CT;EkBvwCE;IA5II,sBAoDG;ElBk2CT;EkB1wCE;IA5II,mBAoDG;ElBq2CT;EkB7wCE;IA5II,sBAoDG;ElBw2CT;EkBhxCE;IA5II,qBAoDG;ElB22CT;EkBnxCE;IA5II,mBAoDG;ElB82CT;EkBtxCE;IA5II,qBAoDG;ElBi3CT;EkBzxCE;IA5II,mBAoDG;ElBo3CT;EkB5xCE;IA5II,mBAoDG;ElBu3CT;EkB/xCE;IA5II,eAoDG;ElB03CT;EkBlyCE;IA5II,qBAoDG;ElB63CT;EkBryCE;IA5II,oBAoDG;ElBg4CT;EkBxyCE;IA5II,qBAoDG;ElBm4CT;EkB3yCE;IA5II,kBAoDG;ElBs4CT;EkB9yCE;IA5II,qBAoDG;ElBy4CT;EkBjzCE;IA5II,oBAoDG;ElB44CT;EkBpzCE;IA5II,kBAoDG;ElB+4CT;EkBvzCE;IA5II,oBAoDG;ElBk5CT;EkB1zCE;IA5II,kBAoDG;ElBq5CT;EkB7zCE;IA5II,kBAoDG;ElBw5CT;EkBh0CE;IA5II,qBAoDG;ElB25CT;EkBn0CE;IA5II,2BAoDG;ElB85CT;EkBt0CE;IA5II,0BAoDG;ElBi6CT;EkBz0CE;IA5II,2BAoDG;ElBo6CT;EkB50CE;IA5II,wBAoDG;ElBu6CT;EkB/0CE;IA5II,2BAoDG;ElB06CT;EkBl1CE;IA5II,0BAoDG;ElB66CT;EkBr1CE;IA5II,wBAoDG;ElBg7CT;EkBx1CE;IA5II,0BAoDG;ElBm7CT;EkB31CE;IA5II,wBAoDG;ElBs7CT;EkB91CE;IA5II,wBAoDG;ElBy7CT;EkBj2CE;IA5II,oBAoDG;ElB47CT;EkBp2CE;IA5II,0BAoDG;ElB+7CT;EkBv2CE;IA5II,yBAoDG;ElBk8CT;EkB12CE;IA5II,0BAoDG;ElBq8CT;EkB72CE;IA5II,uBAoDG;ElBw8CT;EkBh3CE;IA5II,0BAoDG;ElB28CT;EkBn3CE;IA5II,yBAoDG;ElB88CT;EkBt3CE;IA5II,uBAoDG;ElBi9CT;EkBz3CE;IA5II,yBAoDG;ElBo9CT;EkB53CE;IA5II,uBAoDG;ElBu9CT;EkB/3CE;IA5II,2BAoDG;ElB09CT;EkBl4CE;IA5II,0BAoDG;ElB69CT;EkBr4CE;IA5II,uBAoDG;ElBg+CT;EkBx4CE;IA5II,mBAoDG;ElBm+CT;EkB34CE;IA5II,yBAoDG;ElBs+CT;EkB94CE;IA5II,wBAoDG;ElBy+CT;EkBj5CE;IA5II,yBAoDG;ElB4+CT;EkBp5CE;IA5II,sBAoDG;ElB++CT;EkBv5CE;IA5II,yBAoDG;ElBk/CT;EkB15CE;IA5II,wBAoDG;ElBq/CT;EkB75CE;IA5II,sBAoDG;ElBw/CT;EkBh6CE;IA5II,wBAoDG;ElB2/CT;EkBn6CE;IA5II,sBAoDG;ElB8/CT;EkBt6CE;IA5II,sBAoDG;ElBigDT;EkBz6CE;IA5II,sBAoDG;ElBogDT;EkB56CE;IA5II,4BAoDG;ElBugDT;EkB/6CE;IA5II,2BAoDG;ElB0gDT;EkBl7CE;IA5II,4BAoDG;ElB6gDT;EkBr7CE;IA5II,yBAoDG;ElBghDT;EkBx7CE;IA5II,4BAoDG;ElBmhDT;EkB37CE;IA5II,2BAoDG;ElBshDT;EkB97CE;IA5II,yBAoDG;ElByhDT;EkBj8CE;IA5II,2BAoDG;ElB4hDT;EkBp8CE;IA5II,yBAoDG;ElB+hDT;EkBv8CE;IA5II,6BAoDG;ElBkiDT;EkB18CE;IA5II,4BAoDG;ElBqiDT;EkB78CE;IA5II,yBAoDG;ElBwiDT;EkBh9CE;IA5II,UAoDG;ElB2iDT;EkBn9CE;IA5II,gBAoDG;ElB8iDT;EkBt9CE;IA5II,eAoDG;ElBijDT;EkBz9CE;IA5II,gBAoDG;ElBojDT;EkB59CE;IA5II,aAoDG;ElBujDT;EkB/9CE;IA5II,gBAoDG;ElB0jDT;EkBl+CE;IA5II,eAoDG;ElB6jDT;EkBr+CE;IA5II,aAoDG;ElBgkDT;EkBx+CE;IA5II,eAoDG;ElBmkDT;EkB3+CE;IA5II,aAoDG;ElBskDT;EkB9+CE;IA5II,iBAoDG;ElBykDT;EkBj/CE;IA5II,uBAoDG;ElB4kDT;EkBp/CE;IA5II,sBAoDG;ElB+kDT;EkBv/CE;IA5II,uBAoDG;ElBklDT;EkB1/CE;IA5II,oBAoDG;ElBqlDT;EkB7/CE;IA5II,uBAoDG;ElBwlDT;EkBhgDE;IA5II,sBAoDG;ElB2lDT;EkBngDE;IA5II,oBAoDG;ElB8lDT;EkBtgDE;IA5II,sBAoDG;ElBimDT;EkBzgDE;IA5II,oBAoDG;ElBomDT;EkB5gDE;IA5II,gBAoDG;ElBumDT;EkB/gDE;IA5II,sBAoDG;ElB0mDT;EkBlhDE;IA5II,qBAoDG;ElB6mDT;EkBrhDE;IA5II,sBAoDG;ElBgnDT;EkBxhDE;IA5II,mBAoDG;ElBmnDT;EkB3hDE;IA5II,sBAoDG;ElBsnDT;EkB9hDE;IA5II,qBAoDG;ElBynDT;EkBjiDE;IA5II,mBAoDG;ElB4nDT;EkBpiDE;IA5II,qBAoDG;ElB+nDT;EkBviDE;IA5II,mBAoDG;ElBkoDT;EkB1iDE;IA5II,sBAoDG;ElBqoDT;EkB7iDE;IA5II,4BAoDG;ElBwoDT;EkBhjDE;IA5II,2BAoDG;ElB2oDT;EkBnjDE;IA5II,4BAoDG;ElB8oDT;EkBtjDE;IA5II,yBAoDG;ElBipDT;EkBzjDE;IA5II,4BAoDG;ElBopDT;EkB5jDE;IA5II,2BAoDG;ElBupDT;EkB/jDE;IA5II,yBAoDG;ElB0pDT;EkBlkDE;IA5II,2BAoDG;ElB6pDT;EkBrkDE;IA5II,yBAoDG;ElBgqDT;EkBxkDE;IA5II,qBAoDG;ElBmqDT;EkB3kDE;IA5II,2BAoDG;ElBsqDT;EkB9kDE;IA5II,0BAoDG;ElByqDT;EkBjlDE;IA5II,2BAoDG;ElB4qDT;EkBplDE;IA5II,wBAoDG;ElB+qDT;EkBvlDE;IA5II,2BAoDG;ElBkrDT;EkB1lDE;IA5II,0BAoDG;ElBqrDT;EkB7lDE;IA5II,wBAoDG;ElBwrDT;EkBhmDE;IA5II,0BAoDG;ElB2rDT;EkBnmDE;IA5II,wBAoDG;ElB8rDT;EkBtmDE;IA5II,oBAoDG;ElBisDT;EkBzmDE;IA5II,0BAoDG;ElBosDT;EkB5mDE;IA5II,yBAoDG;ElBusDT;EkB/mDE;IA5II,0BAoDG;ElB0sDT;EkBlnDE;IA5II,uBAoDG;ElB6sDT;EkBrnDE;IA5II,0BAoDG;ElBgtDT;EkBxnDE;IA5II,yBAoDG;ElBmtDT;EkB3nDE;IA5II,uBAoDG;ElBstDT;EkB9nDE;IA5II,yBAoDG;ElBytDT;EkBjoDE;IA5II,uBAoDG;ElB4tDT;EkBpoDE;IA5II,uBAoDG;ElB+tDT;EkBvoDE;IA5II,6BAoDG;ElBkuDT;EkB1oDE;IA5II,4BAoDG;ElBquDT;EkB7oDE;IA5II,6BAoDG;ElBwuDT;EkBhpDE;IA5II,0BAoDG;ElB2uDT;EkBnpDE;IA5II,6BAoDG;ElB8uDT;EkBtpDE;IA5II,4BAoDG;ElBivDT;EkBzpDE;IA5II,0BAoDG;ElBovDT;EkB5pDE;IA5II,4BAoDG;ElBuvDT;EkB/pDE;IA5II,0BAoDG;ElB0vDT;EkBlqDE;IA5II,MAoDG;ElB6vDT;EkBrqDE;IA5II,YAoDG;ElBgwDT;EkBxqDE;IA5II,WAoDG;ElBmwDT;EkB3qDE;IA5II,YAoDG;ElBswDT;EkB9qDE;IA5II,SAoDG;ElBywDT;EkBjrDE;IA5II,YAoDG;ElB4wDT;EkBprDE;IA5II,WAoDG;ElB+wDT;EkBvrDE;IA5II,SAoDG;ElBkxDT;EkB1rDE;IA5II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iEAoDG;ElB6uET;EkBxoEM;IAzJA,iEAoDG;ElBgvET;EkBxpEE;IA5II,iEAoDG;ElBmvET;EkB9oEM;IAzJA,iEAoDG;ElBsvET;EkB9pEE;IA5II,iEAoDG;ElByvET;EkBppEM;IAzJA,iEAoDG;ElB4vET;EkBpqEE;IA5II,iEAoDG;ElB+vET;EkB1pEM;IAzJA,iEAoDG;ElBkwET;EkB1qEE;IA5II,iEAoDG;ElBqwET;EkBhqEM;IAzJA,iEAoDG;ElBwwET;EkBhrEE;IA5II,iEAoDG;ElB2wET;EkBtqEM;IAzJA,iEAoDG;ElB8wET;EkBtrEE;IA5II,2BAoDG;ElBixET;EkB5qEM;IAzJA,2BAoDG;ElBoxET;EkB5rEE;IA5II,8BAoDG;ElBuxET;EkBlrEM;IAzJA,8BAoDG;ElB0xET;EkBlsEE;IA5II,6BAoDG;ElB6xET;EkBxrEM;IAzJA,6BAoDG;ElBgyET;EkBxsEE;IA5II,8BAoDG;ElBmyET;EkB9rEM;IAzJA,8BAoDG;ElBsyET;EkB9sEE;IA5II,yEAoDG;ElByyET;EkBjtEE;IA5II,wHAoDG;ElB4yET;EkBptEE;IA5II,2EAoDG;ElB+yET;EkBvtEE;IA5II,uEAoDG;ElBkzET;EkB1tEE;IA5II,6EAoDG;ElBqzET;EkB7tEE;IA5II,yEAoDG;ElBwzET;EkBhuEE;IA5II,yEAoDG;ElB2zET;EkBnuEE;IA5II,yEAoDG;ElB8zET;EkBtuEE;IA5II,iFAoDG;ElBi0ET;EkB5tEM;IAzJA,iFAoDG;ElBo0ET;EkB5uEE;IA5II,iFAoDG;ElBu0ET;EkBluEM;IAzJA,iFAoDG;ElB00ET;EkBlvEE;IA5II,iFAoDG;ElB60ET;EkBxuEM;IAzJA,iFAoDG;ElBg1ET;EkBxvEE;IA5II,iFAoDG;ElBm1ET;EkB9uEM;IAzJA,iFAoDG;ElBs1ET;EkB9vEE;IA5II,iFAoDG;ElBy1ET;EkBpvEM;IAzJA,iFAoDG;ElB41ET;EkBpwEE;IA5II,iFAoDG;ElB+1ET;EkB1vEM;IAzJA,iFAoDG;ElBk2ET;EkB1wEE;IA5II,iFAoDG;ElBq2ET;EkBhwEM;IAzJA,iFAoDG;ElBw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IlB+xGP;IkBvsGA;MA5II,oBAoDG;IlBkyGP;IkB1sGA;MA5II,0BAoDG;IlBqyGP;IkB7sGA;MA5II,yBAoDG;IlBwyGP;IkBhtGA;MA5II,0BAoDG;IlB2yGP;IkBntGA;MA5II,uBAoDG;IlB8yGP;IkBttGA;MA5II,0BAoDG;IlBizGP;IkBztGA;MA5II,yBAoDG;IlBozGP;IkB5tGA;MA5II,uBAoDG;IlBuzGP;IkB/tGA;MA5II,yBAoDG;IlB0zGP;IkBluGA;MA5II,uBAoDG;IlB6zGP;IkBruGA;MA5II,2BAoDG;IlBg0GP;IkBxuGA;MA5II,0BAoDG;IlBm0GP;IkB3uGA;MA5II,uBAoDG;IlBs0GP;IkB9uGA;MA5II,mBAoDG;IlBy0GP;IkBjvGA;MA5II,yBAoDG;IlB40GP;IkBpvGA;MA5II,wBAoDG;IlB+0GP;IkBvvGA;MA5II,yBAoDG;IlBk1GP;IkB1vGA;MA5II,sBAoDG;IlBq1GP;IkB7vGA;MA5II,yBAoDG;IlBw1GP;IkBhwGA;MA5II,wBAoDG;IlB21GP;IkBnwGA;MA5II,sBAoDG;IlB81GP;IkBtwGA;MA5II,wBAoDG;IlBi2GP;IkBzwGA;MA5II,sBAoDG;IlBo2GP;IkB5wGA;MA5II,sBAoDG;IlBu2GP;IkB/wGA;MA5II,sBAoDG;IlB02GP;IkBlxGA;MA5II,4BAoDG;IlB62GP;IkBrxGA;MA5II,2BAoDG;IlBg3GP;IkBxxGA;MA5II,4BAoDG;IlBm3GP;IkB3xGA;MA5II,yBAoDG;IlBs3GP;IkB9xGA;MA5II,4BAoDG;IlBy3GP;IkBjyGA;MA5II,2BAoDG;IlB43GP;IkBpyGA;MA5II,yBAoDG;IlB+3GP;IkBvyGA;MA5II,2BAoDG;IlBk4GP;IkB1yGA;MA5II,yBAoDG;IlBq4GP;IkB7yGA;MA5II,6BAoDG;IlBw4GP;IkBhzGA;MA5II,4BAoDG;IlB24GP;IkBnzGA;MA5II,yBAoDG;IlB84GP;IkBtzGA;MA5II,UAoDG;IlBi5GP;IkBzzGA;MA5II,gBAoDG;IlBo5GP;IkB5zGA;MA5II,eAoDG;IlBu5GP;IkB/zGA;MA5II,gBAoDG;IlB05GP;IkBl0GA;MA5II,aAoDG;IlB65GP;IkBr0GA;MA5II,gBAoDG;IlBg6GP;IkBx0GA;MA5II,eAoDG;IlBm6GP;IkB30GA;MA5II,aAoDG;IlBs6GP;IkB90GA;MA5II,eAoDG;IlBy6GP;IkBj1GA;MA5II,aAoDG;IlB46GP;IkBp1GA;MA5II,iBAoDG;IlB+6GP;IkBv1GA;MA5II,uBAoDG;IlBk7GP;IkB11GA;MA5II,sBAoDG;IlBq7GP;IkB71GA;MA5II,uBAoDG;IlBw7GP;IkBh2GA;MA5II,oBAoDG;IlB27GP;IkBn2GA;MA5II,uBAoDG;IlB87GP;IkBt2GA;MA5II,sBAoDG;IlBi8GP;IkBz2GA;MA5II,oBAoDG;IlBo8GP;IkB52GA;MA5II,sBAoDG;IlBu8GP;IkB/2GA;MA5II,oBAoDG;IlB08GP;IkBl3GA;MA5II,gBAoDG;IlB68GP;IkBr3GA;MA5II,sBAoDG;IlBg9GP;IkBx3GA;MA5II,qBAoDG;IlBm9GP;IkB33GA;MA5II,sBAoDG;IlBs9GP;IkB93GA;MA5II,mBAoDG;IlBy9GP;IkBj4GA;MA5II,sBAoDG;IlB49GP;IkBp4GA;MA5II,qBAoDG;IlB+9GP;IkBv4GA;MA5II,mBAoDG;IlBk+GP;IkB14GA;MA5II,qBAoDG;IlBq+GP;IkB74GA;MA5II,mBAoDG;IlBw+GP;IkBh5GA;MA5II,sBAoDG;IlB2+GP;IkBn5GA;MA5II,4BAoDG;IlB8+GP;IkBt5GA;MA5II,2BAoDG;IlBi/GP;IkBz5GA;MA5II,4BAoDG;IlBo/GP;IkB55GA;MA5II,yBAoDG;IlBu/GP;IkB/5GA;MA5II,4BAoDG;IlB0/GP;IkBl6GA;MA5II,2BAoDG;IlB6/GP;IkBr6GA;MA5II,yBAoDG;IlBggHP;IkBx6GA;MA5II,2BAoDG;IlBmgHP;IkB36GA;MA5II,yBAoDG;IlBsgHP;IkB96GA;MA5II,qBAoDG;IlBygHP;IkBj7GA;MA5II,2BAoDG;IlB4gHP;IkBp7GA;MA5II,0BAoDG;IlB+gHP;IkBv7GA;MA5II,2BAoDG;IlBkhHP;IkB17GA;MA5II,wBAoDG;IlBqhHP;IkB77GA;MA5II,2BAoDG;IlBwhHP;IkBh8GA;MA5II,0BAoDG;IlB2hHP;IkBn8GA;MA5II,wBAoDG;IlB8hHP;IkBt8GA;MA5II,0BAoDG;IlBiiHP;IkBz8GA;MA5II,wBAoDG;IlBoiHP;IkB58GA;MA5II,oBAoDG;IlBuiHP;IkB/8GA;MA5II,0BAoDG;IlB0iHP;IkBl9GA;MA5II,yBAoDG;IlB6iHP;IkBr9GA;MA5II,0BAoDG;IlBgjHP;IkBx9GA;MA5II,uBAoDG;IlBmjHP;IkB39GA;MA5II,0BAoDG;IlBsjHP;IkB99GA;MA5II,yBAoDG;IlByjHP;IkBj+GA;MA5II,uBAoDG;IlB4jHP;IkBp+GA;MA5II,yBAoDG;IlB+jHP;IkBv+GA;MA5II,uBAoDG;IlBkkHP;IkB1+GA;MA5II,uBAoDG;IlBqkHP;IkB7+GA;MA5II,6BAoDG;IlBwkHP;IkBh/GA;MA5II,4BAoDG;IlB2kHP;IkBn/GA;MA5II,6BAoDG;IlB8kHP;IkBt/GA;MA5II,0BAoDG;IlBilHP;IkBz/GA;MA5II,6BAoDG;IlBolHP;IkB5/GA;MA5II,4BAoDG;IlBulHP;IkB//GA;MA5II,0BAoDG;IlB0lHP;IkBlgHA;MA5II,4BAoDG;IlB6lHP;IkBrgHA;MA5II,0BAoDG;IlBgmHP;IkBxgHA;MA5II,MAoDG;IlBmmHP;IkB3gHA;MA5II,YAoDG;IlBsmHP;IkB9gHA;MA5II,WAoDG;IlBymHP;IkBjhHA;MA5II,YAoDG;IlB4mHP;IkBphHA;MA5II,SAoDG;IlB+mHP;IkBvhHA;MA5II,YAoDG;IlBknHP;IkB1hHA;MA5II,WAoDG;IlBqnHP;IkB7hHA;MA5II,SAoDG;IlBwnHP;IkBhiHA;MA5II,WAoDG;IlB2nHP;IkBniHA;MA5II,SAoDG;IlB8nHP;IkBtiHA;MA5II,UAoDG;IlBioHP;IkBziHA;MA5II,gBAoDG;IlBooHP;IkB5iHA;MA5II,eAoDG;IlBuoHP;IkB/iHA;MA5II,gBAoDG;IlB0oHP;IkBljHA;MA5II,aAoDG;IlB6oHP;IkBrjHA;MA5II,gBAoDG;IlBgpHP;IkBxjHA;MA5II,eAoDG;IlBmpHP;IkB3jHA;MA5II,aAo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HP;IkBpyHA;MA5II,6BAoDG;IlB+3HP;IkBvyHA;MA5II,6BAoDG;IlBk4HP;IkB1yHA;MA5II,oBAoDG;IlBq4HP;IkB7yHA;MA5II,kBAoDG;IlBw4HP;IkBhzHA;MA5II,qBAoDG;IlB24HP;IkBnzHA;MA5II,sBAoDG;IlB84HP;IkBtzHA;MA5II,mBAoDG;IlBi5HP;IkBzzHA;MA5II,iBAoDG;IlBo5HP;IkB5zHA;MA5II,oBAoDG;IlBu5HP;IkB/zHA;MA5II,uBAoDG;IlB05HP;IkBl0HA;MA5II,qBAoDG;IlB65HP;IkBr0HA;MA5II,mBAoDG;IlBg6HP;IkBx0HA;MA5II,qBAoDG;IlBm6HP;IkB30HA;MA5II,oBAoDG;IlBs6HP;IkB90HA;MA5II,yBAoDG;IlBy6HP;IkBj1HA;MA5II,uBAoDG;IlB46HP;IkBp1HA;MA5II,qBAoDG;IlB+6HP;IkBv1HA;MA5II,4BAoDG;IlBk7HP;IkB11HA;MA5II,2BAoDG;IlBq7HP;IkB71HA;MA5II,sBAoDG;IlBw7HP;IkBh2HA;MA5II,gBAoDG;IlB27HP;IkBn2HA;MA5II,sBAoDG;IlB87HP;IkBt2HA;MA5II,oBAoDG;IlBi8HP;IkBz2HA;MA5II,kBAoDG;IlBo8HP;IkB52HA;MA5II,oBAoDG;IlBu8HP;IkB/2HA;MA5II,mBAoDG;IlB08HP;IkBl3HA;MA5II,kBAoDG;IlB68HP;IkBr3HA;MA5II,gBAoDG;IlBg9HP;IkBx3HA;MA5II,mBAoDG;IlBm9HP;IkB33HA;MA5II,oBAoDG;IlBs9HP;IkB93HA;MA5II,0BAoDG;IlBy9HP;IkBj4HA;MA5II,qCAoDG;IlB49HP;IkBp4HA;MA5II,qCAoDG;IlB+9HP;IkBv4HA;MA5II,qCAoDG;IlBk+HP;IkB14HA;MA5II,qCAoDG;IlBq+HP;IkB74HA;MA5II,mBAoDG;IlBw+HP;IkBh5HA;MA5II,mBAyDO;IlBs+HX;IkBn5HA;MA5II,sBAyDO;IlBy+HX;IkBt5HA;MA5II,qBAyDO;IlB4+HX;IkBz5HA;MA5II,SAoDG;IlBo/HP;IkB55HA;MA5II,QAoDG;IlBu/HP;IkB/5HA;MA5II,QAoDG;IlB0/HP;IkBl6HA;MA5II,QAoDG;IlB6/HP;IkBr6HA;MA5II,QAoDG;IlBggIP;IkBx6HA;MA5II,QAoDG;IlBmgIP;IkB36HA;MA5II,QAoDG;IlBsgIP;IkB96HA;MA5II,QAoDG;IlBygIP;IkBj7HA;MA5II,SAoDG;IlB4gIP;IkBp7HA;MA5II,eAoDG;IlB+gIP;IkBv7HA;MA5II,cAoDG;IlBkhIP;IkB17HA;MA5II,eAoDG;IlBqhIP;IkB77HA;MA5II,YAoDG;IlBwhIP;IkBh8HA;MA5II,eAoDG;IlB2hIP;IkBn8HA;MA5II,cAoDG;IlB8hIP;IkBt8HA;MA5II,YAoDG;IlBiiIP;IkBz8HA;MA5II,cAoDG;IlBoiIP;IkB58HA;MA5II,YAoDG;IlBuiIP;IkB/8HA;MA5II,YAoDG;IlB0iIP;IkBl9HA;MA5II,gBAoDG;IlB6iIP;IkBr9HA;MA5II,sBAoDG;IlBgjIP;IkBx9HA;MA5II,qBAoDG;IlBmjIP;IkB39HA;MA5II,sBAoDG;IlBsjIP;IkB99HA;MA5II,mBAoDG;IlByjIP;IkBj+HA;MA5II,sBAoDG;IlB4jIP;IkBp+HA;MA5II,qBAoDG;IlB+jIP;IkBv+HA;MA5II,mBAoDG;IlBkkIP;IkB1+HA;MA5II,qBAoDG;IlBqkIP;IkB7+HA;MA5II,mBAoDG;IlBwkIP;IkBh/HA;MA5II,mBAoDG;IlB2kIP;IkBn/HA;MA5II,eAoDG;IlB8kIP;IkBt/HA;MA5II,qBAoDG;IlBilIP;IkBz/HA;MA5II,oBAoDG;IlBolIP;IkB5/HA;MA5II,qBAoDG;IlBulIP;IkB//HA;MA5II,kBAoDG;IlB0lIP;IkBlgIA;MA5II,qBAoDG;IlB6lIP;IkBrgIA;MA5II,oBAoDG;IlBgmIP;IkBxgIA;MA5II,kBAoDG;IlBmmIP;IkB3gIA;MA5II,oBAoDG;IlBsmIP;IkB9gIA;MA5II,kBAoDG;IlBymIP;IkBjhIA;MA5II,kBAoDG;IlB4mIP;IkBphIA;MA5II,qBAoDG;IlB+mIP;IkBvhIA;MA5II,2BAoDG;IlBknIP;IkB1hIA;MA5II,0BAoDG;IlBqnIP;IkB7hIA;MA5II,2BAoDG;IlBwnIP;IkBhiIA;MA5II,wBAoDG;IlB2nIP;IkBniIA;MA5II,2BAoDG;IlB8nIP;IkBtiIA;MA5II,0BAoDG;IlBioIP;IkBziIA;MA5II,wBAoDG;IlBooIP;IkB5iIA;MA5II,0BAoDG;IlBuoIP;IkB/iIA;MA5II,wBAoDG;IlB0oIP;IkBljIA;MA5II,wBAoDG;IlB6oIP;IkBrjIA;MA5II,oBAoDG;IlBgpIP;IkBxjIA;MA5II,0BAoDG;IlBmpIP;IkB3jIA;MA5II,yBAoDG;IlBspIP;IkB9jIA;MA5II,0BAoDG;IlBypIP;IkBjkIA;MA5II,uBAoDG;IlB4pIP;IkBpkIA;MA5II,0BAoDG;IlB+pIP;IkBvkIA;MA5II,yBAoDG;IlBkqIP;IkB1kIA;MA5II,uBAoDG;IlBqqIP;IkB7kIA;MA5II,yBAoDG;IlBwqIP;IkBhlIA;MA5II,uBAoDG;IlB2qIP;IkBnlIA;MA5II,2BAoDG;IlB8qIP;IkBtlIA;MA5II,0BAoDG;IlBirIP;IkBzlIA;MA5II,uBAoDG;IlBorIP;IkB5lIA;MA5II,mBAoDG;IlBurIP;IkB/lIA;MA5II,yBAoDG;IlB0rIP;IkBlmIA;MA5II,wBAoDG;IlB6rIP;IkBrmIA;MA5II,yBAoDG;IlBgsIP;IkBxmIA;MA5II,sBAoDG;IlBmsIP;IkB3mIA;MA5II,yBAoDG;IlBssIP;IkB9mIA;MA5II,wBAoDG;IlBysIP;IkBjnIA;MA5II,sBAoDG;IlB4sIP;IkBpnIA;MA5II,wBAoDG;IlB+sIP;IkBvnIA;MA5II,sBAoDG;IlBktIP;IkB1nIA;MA5II,sBAoDG;IlBqtIP;IkB7nIA;MA5II,sBAoDG;IlBwtIP;IkBhoIA;MA5II,4BAoDG;IlB2tIP;IkBnoIA;MA5II,2BAoDG;IlB8tIP;IkBtoIA;MA5II,4BAoDG;IlBiuIP;IkBzoIA;MA5II,yBAoDG;IlBouIP;IkB5oIA;MA5II,4BAoDG;IlBuuIP;IkB/oIA;MA5II,2BAoDG;IlB0uIP;IkBlpIA;MA5II,yBAoDG;IlB6uIP;IkBrpIA;MA5II,2BAoDG;IlBgvIP;IkBxpIA;MA5II,yBAoDG;IlBmvIP;IkB3pIA;MA5II,6BAoDG;IlBsvIP;IkB9pIA;MA5II,4BAoDG;IlByvIP;IkBjqIA;MA5II,yBAoDG;IlB4vIP;IkBpqIA;MA5II,UAoDG;IlB+vIP;IkBvqIA;MA5II,gBAoDG;IlBkwIP;IkB1qIA;MA5II,eAoDG;IlBqwIP;IkB7qIA;MA5II,gBAoDG;IlBwwIP;IkBhrIA;MA5II,aAoDG;IlB2wIP;IkBnrIA;MA5II,gBAoDG;IlB8wIP;IkBtrIA;MA5II,eAoDG;IlBixIP;IkBzrIA;MA5II,aAoDG;IlBoxIP;IkB5rIA;MA5II,eAoDG;IlBuxIP;IkB/rIA;MA5II,aAoDG;IlB0xIP;IkBlsIA;MA5II,iBAoDG;IlB6xIP;IkBrsIA;MA5II,uBAoDG;IlBgyIP;IkBxsIA;MA5II,sBAoDG;IlBmyIP;IkB3sIA;MA5II,uBAoDG;IlBsyIP;IkB9sIA;MA5II,oBAoDG;IlByyIP;IkBjtIA;MA5II,uBAoDG;IlB4yIP;IkBptIA;MA5II,sBAoDG;IlB+yIP;IkBvtIA;MA5II,oBAoDG;IlBkzIP;IkB1tIA;MA5II,sBAoDG;IlBqzIP;IkB7tIA;MA5II,oBAoDG;IlBwzIP;IkBhuIA;MA5II,gBAoDG;IlB2zIP;IkBnuIA;MA5II,sBAoDG;IlB8zIP;IkBtuIA;MA5II,qBAoDG;IlBi0IP;IkBzuIA;MA5II,sBAoDG;IlBo0IP;IkB5uIA;MA5II,mBAoDG;IlBu0IP;IkB/uIA;MA5II,sBAoDG;IlB00IP;IkBlvIA;MA5II,qBAoDG;IlB60IP;IkBrvIA;MA5II,mBAoDG;IlBg1IP;IkBxvIA;MA5II,qBAoDG;IlBm1IP;IkB3vIA;MA5II,mBAoDG;IlBs1IP;IkB9vIA;MA5II,sBAoDG;IlBy1IP;IkBjwIA;MA5II,4BAoDG;IlB41IP;IkBpwIA;MA5II,2BAoDG;IlB+1IP;IkBvwIA;MA5II,4BAoDG;IlBk2IP;IkB1wIA;MA5II,yBAoDG;IlBq2IP;IkB7wIA;MA5II,4BAoDG;IlBw2IP;IkBhxIA;MA5II,2BAoDG;IlB22IP;IkBnxIA;MA5II,yBAoDG;IlB82IP;IkBtxIA;MA5II,2BAoDG;IlBi3IP;IkBzxIA;MA5II,yBAoDG;IlBo3IP;IkB5xIA;MA5II,qBAoDG;IlBu3IP;IkB/xIA;MA5II,2BAoDG;IlB03IP;IkBlyIA;MA5II,0BAoDG;IlB63IP;IkBryIA;MA5II,2BAoDG;IlBg4IP;IkBxyIA;MA5II,wBAoDG;IlBm4IP;IkB3yIA;MA5II,2BAoDG;IlBs4IP;IkB9yIA;MA5II,0BAoDG;IlBy4IP;IkBjzIA;MA5II,wBAoDG;IlB44IP;IkBpzIA;MA5II,0BAoDG;IlB+4IP;IkBvzIA;MA5II,wBAoDG;IlBk5IP;IkB1zIA;MA5II,oBAoDG;IlBq5IP;IkB7zIA;MA5II,0BAoDG;IlBw5IP;IkBh0IA;MA5II,yBAoDG;IlB25IP;IkBn0IA;MA5II,0BAoDG;IlB85IP;IkBt0IA;MA5II,uBAoDG;IlBi6IP;IkBz0IA;MA5II,0BAoDG;IlBo6IP;IkB50IA;MA5II,yBAoDG;IlBu6IP;IkB/0IA;MA5II,uBAoDG;IlB06IP;IkBl1IA;MA5II,yBAoDG;IlB66IP;IkBr1IA;MA5II,uBAoDG;IlBg7IP;IkBx1IA;MA5II,uBAoDG;IlBm7IP;IkB31IA;MA5II,6BAoDG;IlBs7IP;IkB91IA;MA5II,4BAoDG;IlBy7IP;IkBj2IA;MA5II,6BAoDG;IlB47IP;IkBp2IA;MA5II,0BAoDG;IlB+7IP;IkBv2IA;MA5II,6BAoDG;IlBk8IP;IkB12IA;MA5II,4BAoDG;IlBq8IP;IkB72IA;MA5II,0BAoDG;IlBw8IP;IkBh3IA;MA5II,4BAoDG;IlB28IP;IkBn3IA;MA5II,0BAoDG;IlB88IP;IkBt3IA;MA5II,MAoDG;IlBi9IP;IkBz3IA;MA5II,YAoDG;IlBo9IP;IkB53IA;MA5II,WAoDG;IlBu9IP;IkB/3IA;MA5II,YAoDG;IlB09IP;IkBl4IA;MA5II,SAoDG;IlB69IP;IkBr4IA;MA5II,YAoDG;IlBg+IP;IkBx4IA;MA5II,WAoDG;IlBm+IP;IkB34IA;MA5II,SAoDG;IlBs+IP;IkB94IA;MA5II,WAoDG;IlBy+IP;IkBj5IA;MA5II,SAoDG;IlB4+IP;Ik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,cAoDG;IlBqtJP;IkB7nJA;MA5II,eAyDO;IlBmtJX;IkBhoJA;MA5II,iBAyDO;IlBstJX;IkBnoJA;MA5II,uBAyDO;IlBytJX;IkBtoJA;MA5II,2BAoDG;IlBiuJP;IkBzoJA;MA5II,yBAoDG;IlBouJP;IkB5oJA;MA5II,uBAoDG;IlBuuJP;IkB/oJA;MA5II,8BAoDG;IlB0uJP;IkBlpJA;MA5II,6BAoDG;IlB6uJP;IkBrpJA;MA5II,6BAoDG;IlBgvJP;IkBxpJA;MA5II,oBAoDG;IlBmvJP;IkB3pJA;MA5II,kBAoDG;IlBsvJP;IkB9pJA;MA5II,qBAoDG;IlByvJP;IkBjqJA;MA5II,sBAoDG;IlB4vJP;IkBpqJA;MA5II,mBAoDG;IlB+vJP;IkBvqJA;MA5II,iBAoDG;IlBkwJP;IkB1qJA;MA5II,oBAoDG;IlBqwJP;IkB7qJA;MA5II,uBAoDG;IlBwwJP;IkBhrJA;MA5II,qBAoDG;IlB2wJP;IkBnrJA;MA5II,mBAoDG;IlB8wJP;IkBtrJA;MA5II,qBAoDG;IlBixJP;IkBzrJA;MA5II,oBAoDG;IlBoxJP;IkB5rJA;MA5II,yBAoDG;IlBuxJP;IkB/rJA;MA5II,uBAoDG;IlB0xJP;IkBlsJA;MA5II,qBAoDG;IlB6xJP;IkBrsJA;MA5II,4BAoDG;IlBgyJP;IkBxsJA;MA5II,2BAoDG;IlBmyJP;IkB3sJA;MA5II,sBAoDG;IlBsyJP;IkB9sJA;MA5II,gBAoDG;IlByyJP;IkBjtJA;MA5II,sBAoDG;IlB4yJP;IkBptJA;MA5II,oBAoDG;IlB+yJP;IkBvtJA;MA5II,kBAoDG;IlBkzJP;IkB1tJA;MA5II,oBAoDG;IlBqzJP;IkB7tJA;MA5II,mBAoDG;IlBwzJP;IkBhuJA;MA5II,kBAoDG;IlB2zJP;IkBnuJA;MA5II,gBAoDG;IlB8zJP;IkBtuJA;MA5II,mBAoDG;IlBi0JP;IkBzuJA;MA5II,oBAoDG;IlBo0JP;IkB5uJA;MA5II,0BAoDG;IlBu0JP;IkB/uJA;MA5II,qCAoDG;IlB00JP;IkBlvJA;MA5II,qCAoDG;IlB60JP;IkBrvJA;MA5II,qCAoDG;IlBg1JP;IkBxvJA;MA5II,qCAoDG;IlBm1JP;IkB3vJA;MA5II,mBAoDG;IlBs1JP;IkB9vJA;MA5II,mBAyDO;IlBo1JX;IkBjwJA;MA5II,sBAyDO;IlBu1JX;IkBpwJA;MA5II,qBAyDO;IlB01JX;IkBvwJA;MA5II,SAoDG;IlBk2JP;IkB1wJA;MA5II,QAoDG;IlBq2JP;IkB7wJA;MA5II,QAoDG;IlBw2JP;IkBhxJA;MA5II,QAoDG;IlB22JP;IkBnxJA;MA5II,QAoDG;IlB82JP;IkBtxJA;MA5II,QAoDG;IlBi3JP;IkBzxJA;MA5II,QAoDG;IlBo3JP;IkB5xJA;MA5II,QAoDG;IlBu3JP;IkB/xJA;MA5II,SAoDG;IlB03JP;IkBlyJA;MA5II,eAoDG;IlB63JP;IkBryJA;MA5II,cAoDG;IlBg4JP;IkBxyJA;MA5II,eAoDG;IlBm4JP;IkB3yJA;MA5II,YAoDG;IlBs4JP;IkB9yJA;MA5II,eAoDG;IlBy4JP;IkBjzJA;MA5II,cAoDG;IlB44JP;IkBpzJA;MA5II,YAoDG;IlB+4JP;IkBvzJA;MA5II,cAoDG;IlBk5JP;IkB1zJA;MA5II,YAoDG;IlBq5JP;IkB7zJA;MA5II,YAoDG;IlBw5JP;IkBh0JA;MA5II,gBAoDG;IlB25JP;IkBn0JA;MA5II,sBAoDG;IlB85JP;IkBt0JA;MA5II,qBAoDG;IlBi6JP;IkBz0JA;MA5II,sBAoDG;IlBo6JP;IkB50JA;MA5II,mBAoDG;IlBu6JP;IkB/0JA;MA5II,sBAoDG;IlB06JP;IkBl1JA;MA5II,qBAoDG;IlB66JP;IkBr1JA;MA5II,mBAoDG;IlBg7JP;IkBx1JA;MA5II,qBAoDG;IlBm7JP;IkB31JA;MA5II,mBAoDG;IlBs7JP;IkB91JA;MA5II,mBAoDG;IlBy7JP;IkBj2JA;MA5II,eAoDG;IlB47JP;IkBp2JA;MA5II,qBAoDG;IlB+7JP;IkBv2JA;MA5II,oBAoDG;IlBk8JP;IkB12JA;MA5II,qBAoDG;IlBq8JP;IkB72JA;MA5II,kBAoDG;IlBw8JP;IkBh3JA;MA5II,qBAoDG;IlB28JP;IkBn3JA;MA5II,oBAoDG;IlB88JP;IkBt3JA;MA5II,kBAoDG;IlBi9JP;IkBz3JA;MA5II,oBAoDG;IlBo9JP;IkB53JA;MA5II,kBAoDG;IlBu9JP;IkB/3JA;MA5II,kBAoDG;IlB09JP;IkBl4JA;MA5II,qBAoDG;IlB69JP;IkBr4JA;MA5II,2BAoDG;IlBg+JP;IkBx4JA;MA5II,0BAoDG;IlBm+JP;IkB34JA;MA5II,2BAoDG;IlBs+JP;IkB94JA;MA5II,wBAoDG;IlBy+JP;IkBj5JA;MA5II,2BAoDG;IlB4+JP;IkBp5JA;MA5II,0BAoDG;IlB++JP;IkBv5JA;MA5II,wBAoDG;IlBk/JP;IkB15JA;MA5II,0BAoDG;IlBq/JP;IkB75JA;MA5II,wBAoDG;IlBw/JP;IkBh6JA;MA5II,wBAoDG;IlB2/JP;IkBn6JA;MA5II,oBAoDG;IlB8/JP;IkBt6JA;MA5II,0BAoDG;IlBigKP;IkBz6JA;MA5II,yBAoDG;IlBogKP;IkB56JA;MA5II,0BAoDG;IlBugKP;IkB/6JA;MA5II,uBAoDG;IlB0gKP;IkBl7JA;MA5II,0BAoDG;IlB6gKP;IkBr7JA;MA5II,yBAoDG;IlBghKP;IkBx7JA;MA5II,uBAoDG;IlBmhKP;IkB37JA;MA5II,yBAoDG;IlBshKP;IkB97JA;MA5II,uBAoDG;IlByhKP;IkBj8JA;MA5II,2BAoDG;IlB4hKP;IkBp8JA;MA5II,0BAoDG;IlB+hKP;IkBv8JA;MA5II,uBAoDG;IlBkiKP;IkB18JA;MA5II,mBAoDG;IlBqiKP;IkB78JA;MA5II,yBAoDG;IlBwiKP;IkBh9JA;MA5II,wBAoDG;IlB2iKP;IkBn9JA;MA5II,yBAoDG;IlB8iKP;IkBt9JA;MA5II,sBAoDG;IlBijKP;IkBz9JA;MA5II,yBAoDG;IlBojKP;IkB59JA;MA5II,wBAoDG;IlBujKP;IkB/9JA;MA5II,sBAoDG;IlB0jKP;IkBl+JA;MA5II,wBAoDG;IlB6jKP;IkBr+JA;MA5II,sBAoDG;IlBgkKP;IkBx+JA;MA5II,sBAoDG;IlBmkKP;IkB3+JA;MA5II,sBAoDG;IlBskKP;IkB9+JA;MA5II,4BAoDG;IlBykKP;IkBj/JA;MA5II,2BAoDG;IlB4kKP;IkBp/JA;MA5II,4BAoDG;IlB+kKP;IkBv/JA;MA5II,yBAoDG;IlBklKP;IkB1/JA;MA5II,4BAoDG;IlBqlKP;IkB7/JA;MA5II,2BAoDG;IlBwlKP;IkBhgKA;MA5II,yBAoDG;IlB2lKP;IkBngKA;MA5II,2BAoDG;IlB8lKP;IkBtgKA;MA5II,yBAoDG;IlBimKP;IkBzgKA;MA5II,6BAoDG;IlBomKP;IkB5gKA;MA5II,4BAoDG;IlBumKP;IkB/gKA;MA5II,yBAoDG;IlB0mKP;IkBlhKA;MA5II,UAoDG;IlB6mKP;IkBrhKA;MA5II,gBAoDG;IlBgnKP;IkBxhKA;MA5II,eAoDG;IlBmnKP;IkB3hKA;MA5II,gBAoDG;IlBsnKP;IkB9hKA;MA5II,aAoDG;IlBynKP;IkBjiKA;MA5II,gBAoDG;IlB4nKP;IkBpiKA;MA5II,eAoDG;IlB+nKP;IkBviKA;MA5II,aAoDG;IlBkoKP;IkB1iKA;MA5II,eAoDG;IlBqoKP;IkB7iKA;MA5II,aAoDG;IlBwoKP;IkBhjKA;MA5II,iBAoDG;IlB2oKP;IkBnjKA;MA5II,uBAoDG;IlB8oKP;IkBtjKA;MA5II,sBAoDG;IlBipKP;IkBzjKA;MA5II,uBAoDG;IlBopKP;IkB5jKA;MA5II,oBAoDG;IlBupKP;IkB/jKA;MA5II,uBAoDG;IlB0pKP;IkBlkKA;MA5II,sBAoDG;IlB6pKP;IkBrkKA;MA5II,oBAoDG;IlBgqKP;IkBxkKA;MA5II,sBAoDG;IlBmqKP;IkB3kKA;MA5II,oBAoDG;IlBsqKP;IkB9kKA;MA5II,gBAoDG;IlByqKP;IkBjlKA;MA5II,sBAoDG;IlB4qKP;IkBplKA;MA5II,qBAoDG;IlB+qKP;IkBvlKA;MA5II,sBAoDG;IlBkrKP;IkB1lKA;MA5II,mBAoDG;IlBqrKP;IkB7lKA;MA5II,sBAoDG;IlBwrKP;IkBhmKA;MA5II,qBAoDG;IlB2rKP;IkBnmKA;MA5II,mBAoDG;IlB8rKP;IkBtmKA;MA5II,qBAoDG;IlBisKP;IkBzmKA;MA5II,mBAoDG;IlBosKP;IkB5mKA;MA5II,sBAoDG;IlBusKP;IkB/mKA;MA5II,4BAoDG;IlB0sKP;IkBlnKA;MA5II,2BAoDG;IlB6sKP;IkBrnKA;MA5II,4BAoDG;IlBgtKP;IkBxnKA;MA5II,yBAoDG;IlBmtKP;IkB3nKA;MA5II,4BAoDG;IlBstKP;IkB9nKA;MA5II,2BAoDG;IlBytKP;IkBjoKA;MA5II,yBAoDG;IlB4tKP;IkBpoKA;MA5II,2BAoDG;IlB+tKP;IkBvoKA;MA5II,yBAoDG;IlBkuKP;IkB1oKA;MA5II,qBAoDG;IlBquKP;IkB7oKA;MA5II,2BAoDG;IlBwuKP;IkBhpKA;MA5II,0BAoDG;IlB2uKP;IkBnpKA;MA5II,2BAoDG;IlB8uKP;IkBtpKA;MA5II,wBAoDG;IlBivKP;IkBzpKA;MA5II,2BAoDG;IlBovKP;IkB5pKA;MA5II,0BAoDG;IlBuvKP;IkB/pKA;MA5II,wBAoDG;IlB0vKP;IkBlqKA;MA5II,0BAoDG;IlB6vKP;IkBrqKA;MA5II,wBAoDG;IlBgwKP;IkBxqKA;MA5II,oBAoDG;IlBmwKP;IkB3qKA;MA5II,0BAoDG;IlBswKP;IkB9qKA;MA5II,yBAoDG;IlBywKP;IkBjrKA;MA5II,0BAoDG;IlB4wKP;IkBprKA;MA5II,uBAoDG;IlB+wKP;IkBvrKA;MA5II,0BAoDG;IlBkxKP;IkB1rKA;MA5II,yBAoDG;IlBqxKP;IkB7rKA;MA5II,uBAoDG;IlBwxKP;IkBhsKA;MA5II,yBAoDG;IlB2xKP;IkBnsKA;MA5II,uBAoDG;IlB8xKP;IkBtsKA;MA5II,uBAoDG;IlBiyKP;IkBzsKA;MA5II,6BAoDG;IlBoyKP;IkB5sKA;MA5II,4BAoDG;IlBuyKP;IkB/sKA;MA5II,6BAoDG;IlB0yKP;IkBltKA;MA5II,0BAoDG;IlB6yKP;IkBrtKA;MA5II,6BAoDG;IlBgzKP;IkBxtKA;MA5II,4BAoDG;IlBmzKP;IkB3tKA;MA5II,0BAoDG;IlBszKP;IkB9tKA;MA5II,4BAoDG;IlByzKP;IkBjuKA;MA5II,0BAoDG;IlB4zKP;IkBpuKA;MA5II,MAoDG;IlB+zKP;IkBvuKA;MA5II,YAoDG;IlBk0KP;IkB1uKA;MA5II,WAoDG;IlBq0KP;IkB7uKA;MA5II,YAoDG;IlBw0KP;IkBhvKA;MA5II,SAoDG;IlB20KP;IkBnvKA;MA5II,YAoDG;IlB80KP;IkBtvKA;MA5II,WAoDG;IlBi1KP;IkBzvKA;MA5II,SAoDG;IlBo1KP;IkB5vKA;MA5II,WAoDG;IlBu1KP;IkB/vKA;MA5II,SAoDG;IlB01KP;IkBlwKA;MA5II,UAoDG;IlB61KP;IkBrwKA;MA5II,gBAoDG;IlBg2KP;IkBxwKA;MA5II,eAoDG;IlBm2KP;IkB3wKA;MA5II,gBAoDG;IlBs2KP;IkB9wKA;MA5II,aAoDG;IlBy2KP;IkBjxKA;MA5II,gBAoDG;IlB42KP;IkBpxKA;MA5II,eAoDG;IlB+2KP;IkBvxKA;MA5II,aAoDG;IlBk3KP;IkB1xKA;MA5II,eAoDG;IlBq3KP;IkB7xKA;MA5II,aAoDG;IlBw3KP;IkBhyKA;MA5II,kBAoDG;MApDH,aAoDG;IlB23KP;IkBnyKA;MA5II,wBAoDG;MApDH,mBAoDG;IlB83KP;IkBtyKA;MA5II,uBAoDG;MApDH,kBAoDG;IlBi4KP;IkBzyKA;MA5II,wBAoDG;MApDH,mBAoDG;IlBo4KP;IkB5yKA;MA5II,qBAoDG;MApDH,gBAoDG;IlBu4KP;IkB/yKA;MA5II,wBAoDG;MApDH,mBAoDG;IlB04KP;IkBlzKA;MA5II,uBAoDG;MApDH,kBAoDG;IlB64KP;IkBrzKA;MA5II,qBAoDG;MApDH,gBAoDG;IlBg5KP;IkBxzKA;MA5II,uBAoDG;MApDH,kBAoDG;IlBm5KP;IkB3zKA;MA5II,qBAoDG;MApDH,gBAoDG;IlBs5KP;IkB9zKA;MA5II,oBAoDG;IlBy5KP;IkBj0KA;MA5II,0BAoDG;IlB45KP;IkBp0KA;MA5II,yBAoDG;IlB+5KP;IkBv0KA;MA5II,0BAoDG;IlBk6KP;IkB10KA;MA5II,uBAoDG;IlBq6KP;IkB70KA;MA5II,0BAoDG;IlBw6KP;IkBh1KA;MA5II,yBAoDG;IlB26KP;IkBn1KA;MA5II,uBAoDG;IlB86KP;IkBt1KA;MA5II,yBAoDG;IlBi7KP;IkBz1KA;MA5II,uBAoDG;IlBo7KP;IkB51KA;MA5II,mBAoDG;IlBu7KP;IkB/1KA;MA5II,yBAoDG;IlB07KP;IkBl2KA;MA5II,wBAoDG;IlB67KP;IkBr2KA;MA5II,yBAoDG;IlBg8KP;IkBx2KA;MA5II,sBAoDG;IlBm8KP;IkB32KA;MA5II,yBAoDG;IlBs8KP;IkB92KA;MA5II,wBAoDG;IlBy8KP;IkBj3KA;MA5II,sBAoDG;IlB48KP;IkBp3KA;MA5II,wBAoDG;IlB+8KP;IkBv3KA;MA5II,sBAoDG;IlBk9KP;IkB13KA;MA5II,yFAoDG;IlBq9KP;IkB73KA;MA5II,sBAoDG;IlBw9KP;IkBh4KA;MA5II,wFAoDG;IlB29KP;IkBn4KA;MA5II,qBAoDG;IlB89KP;IkBt4KA;MA5II,iBAoDG;IlBi+KP;IkBz4KA;MA5II,eAoDG;IlBo+KP;IkB54KA;MA5II,kBAoDG;IlBu+KP;EACF;EO5/KE;IW4GA;MA5II,mBAoDG;IlB4+KP;IkBp5KA;MA5II,iBAoDG;IlB++KP;IkBv5KA;MA5II,WAoDG;IlBk/KP;IkB15KA;MA5II,sBAoDG;MApDH,mBAoDG;IlBq/KP;IkB75KA;MA5II,oBAoDG;MApDH,iBAoDG;IlBw/KP;IkBh6KA;MA5II,mBAoDG;MApDH,gBAoDG;IlB2/KP;IkBn6KA;MA5II,yBAoDG;MApDH,sBAoDG;IlB8/KP;IkBt6KA;MA5II,mBAoDG;MApDH,gBAoDG;IlBigLP;IkBz6KA;MA5II,eAyDO;IlB+/KX;IkB56KA;MA5II,qBAyDO;IlBkgLX;IkB/6KA;MA5II,cAyDO;IlBqgLX;IkBl7KA;MA5II,aAyDO;IlBwgLX;IkBr7KA;MA5II,oBAyDO;IlB2gLX;IkBx7KA;MA5II,cAyDO;IlB8gLX;IkB37KA;MA5II,kBAyDO;IlBihLX;IkB97KA;MA5II,mBAyDO;IlBohLX;IkBj8KA;MA5II,aAyDO;IlBuhLX;IkBp8KA;MA5II,oBAyDO;IlB0hLX;IkBv8KA;MA5II,iBAyDO;IlB6hLX;IkB18KA;MA5II,kBAyDO;IlBgiLX;IkB78KA;MA5II,aAyDO;IlBmiLX;IkBh9KA;MA5II,cAoDG;IlB2iLP;IkBn9KA;MA5II,mBAyDO;IlByiLX;IkBt9KA;MA5II,sBAyDO;IlB4iLX;IkBz9KA;MA5II,2BAyDO;IlB+iLX;IkB59KA;MA5II,8BAyDO;IlBkjLX;IkB/9KA;MA5II,YAoDG;IlB0jLP;IkBl+KA;MA5II,YAoDG;IlB6jLP;IkBr+KA;MA5II,cAoDG;IlBgkLP;IkBx+KA;MA5II,cAoDG;IlBmkLP;IkB3+KA;MA5II,eAyDO;IlBikLX;IkB9+KA;MA5II,iBAyDO;IlBokLX;IkBj/KA;MA5II,uBAyDO;IlBukLX;IkBp/KA;MA5II,2BAoDG;IlB+kLP;IkBv/KA;MA5II,yBAoDG;IlBklLP;IkB1/KA;MA5II,uBAoDG;IlBqlLP;IkB7/KA;MA5II,8BAoDG;IlBwlLP;IkBhgLA;MA5II,6BAoDG;IlB2lLP;IkBngLA;MA5II,6BAoDG;IlB8lLP;IkBtgLA;MA5II,oBAoDG;IlBimLP;IkBzgLA;MA5II,kBAoDG;IlBomLP;IkB5gLA;MA5II,qBAoDG;IlBumLP;IkB/gLA;MA5II,sBAoDG;IlB0mLP;IkBlhLA;MA5II,mBAoDG;IlB6mLP;IkBrhLA;MA5II,iBAoDG;IlBgnLP;IkBxhLA;MA5II,oBAoDG;IlBmnLP;IkB3hLA;MA5II,uBAoDG;IlBsnLP;IkB9hLA;MA5II,qBAoDG;IlBynLP;IkBjiLA;MA5II,mBAoDG;IlB4nLP;IkBpiLA;MA5II,qBAoDG;IlB+nLP;IkBviLA;MA5II,oBAoDG;IlBkoLP;IkB1iLA;MA5II,yBAoDG;IlBqoLP;IkB7iLA;MA5II,uBAoDG;IlBwoLP;IkBhjLA;MA5II,qBAoDG;IlB2oLP;IkBnjLA;MA5II,4BAoDG;IlB8oLP;IkBtjLA;MA5II,2BAoDG;IlBipLP;IkBzjLA;MA5II,sBAoDG;IlBopLP;IkB5jLA;MA5II,gBAoDG;IlBupLP;IkB/jLA;MA5II,sBAoDG;IlB0pLP;IkBlkLA;MA5II,oBAoDG;IlB6pLP;IkBrkLA;MA5II,kBAoDG;IlBgqLP;IkBxkLA;MA5II,oBAoDG;IlBmqLP;IkB3kLA;MA5II,mBAoDG;IlBsqLP;IkB9kLA;MA5II,kBAoDG;IlByqLP;IkBjlLA;MA5II,gBAoDG;IlB4qLP;IkBplLA;MA5II,mBAoDG;IlB+qLP;IkBvlLA;MA5II,oBAoDG;IlBkrLP;IkB1lLA;MA5II,0BAoDG;IlBqrLP;IkB7lLA;MA5II,qCAoDG;IlBwrLP;IkBhmLA;MA5II,qCAoDG;IlB2rLP;IkBnmLA;MA5II,qCAoDG;IlB8rLP;IkBtmLA;MA5II,qCAoDG;IlBisLP;IkBzmLA;MA5II,mBAoDG;IlBosLP;IkB5mLA;MA5II,mBAyDO;IlBksLX;IkB/mLA;MA5II,sBAyDO;IlBqsLX;IkBlnLA;MA5II,qBAyDO;IlBwsLX;IkBrnLA;MA5II,SAoDG;IlBgtLP;IkBxnLA;MA5II,QAoDG;IlBmtLP;IkB3nLA;MA5II,QAoDG;IlBstLP;IkB9nLA;MA5II,QAoDG;IlBytLP;IkBjoLA;MA5II,QAoDG;IlB4tLP;IkBpoLA;MA5II,QAoDG;IlB+tLP;IkBvoLA;MA5II,QAoDG;IlBkuLP;IkB1oLA;MA5II,QAoDG;IlBquLP;IkB7oLA;MA5II,SAoDG;IlBwuLP;IkBhpLA;MA5II,eAoDG;IlB2uLP;IkBnpLA;MA5II,cAoDG;IlB8uLP;IkBtpLA;MA5II,eAoDG;IlBivLP;IkBzpLA;MA5II,YAoDG;IlBovLP;IkB5pLA;MA5II,eAoDG;IlBuvLP;IkB/pLA;MA5II,cAoDG;IlB0vLP;IkBlqLA;MA5II,YAoDG;IlB6vLP;IkBrqLA;MA5II,cAoDG;IlBgwLP;IkBxqLA;MA5II,YAoDG;IlBmwLP;IkB3qLA;MA5II,YAoDG;IlBswLP;IkB9qLA;MA5II,gBAoDG;IlBywLP;IkBjrLA;MA5II,sBAoDG;IlB4wLP;IkBprLA;MA5II,qBAoDG;IlB+wLP;IkBvrLA;MA5II,sBAoDG;IlBkxLP;IkB1rLA;MA5II,mBAoDG;IlBqxLP;IkB7rLA;MA5II,sBAoDG;IlBwxLP;IkBhsLA;MA5II,qBAoDG;IlB2xLP;IkBnsLA;MA5II,mBAoDG;IlB8xLP;IkBtsLA;MA5II,qBAoDG;IlBiyLP;IkBzsLA;MA5II,mBAoDG;IlBoyLP;IkB5sLA;MA5II,mBAoDG;IlBuyLP;IkB/sLA;MA5II,eAoDG;IlB0yLP;IkBltLA;MA5II,qBAoDG;IlB6yLP;IkBrtLA;MA5II,oBAoDG;IlBgzLP;IkBxtLA;MA5II,qBAoDG;IlBmzLP;IkB3tLA;MA5II,kBAoDG;IlBszLP;IkB9tLA;MA5II,qBAoDG;IlByzLP;IkBjuLA;MA5II,oBAoDG;IlB4zLP;IkBpuLA;MA5II,kBAoDG;IlB+zLP;IkBvuLA;MA5II,oBAoDG;IlBk0LP;IkB1uLA;MA5II,kBAoDG;IlBq0LP;IkB7uLA;MA5II,kBAoDG;IlBw0LP;IkBhvLA;MA5II,qBAoDG;IlB20LP;IkBnvLA;MA5II,2BAoDG;IlB80LP;IkBtvLA;MA5II,0BAoDG;IlBi1LP;IkBzvLA;MA5II,2BAoDG;IlBo1LP;IkB5vLA;MA5II,wBAoDG;IlBu1LP;IkB/vLA;MA5II,2BAoDG;IlB01LP;IkBlwLA;MA5II,0BAoDG;IlB61LP;IkBrwLA;MA5II,wBAoDG;IlBg2LP;IkBxwLA;MA5II,0BAoDG;IlBm2LP;IkB3wLA;MA5II,wBAoDG;IlBs2LP;IkB9wLA;MA5II,wBAoDG;IlBy2LP;IkBjxLA;MA5II,oBAoDG;IlB42LP;IkBpxLA;MA5II,0BAoDG;IlB+2LP;IkBvxLA;MA5II,yBAoDG;IlBk3LP;IkB1xLA;MA5II,0BAoDG;IlBq3LP;IkB7xLA;MA5II,uBAoDG;IlBw3LP;IkBhyLA;MA5II,0BAoDG;IlB23LP;IkBnyLA;MA5II,yBAoDG;IlB83LP;IkBtyLA;MA5II,uBAoDG;IlBi4LP;IkBzyLA;MA5II,yBAoDG;IlBo4LP;IkB5yLA;MA5II,uBAoDG;IlBu4LP;IkB/yLA;MA5II,2BAoDG;IlB04LP;IkBlzLA;MA5II,0BAoDG;IlB64LP;IkBrzLA;MA5II,uBAoDG;IlBg5LP;IkBxzLA;MA5II,mBAoDG;IlBm5LP;IkB3zLA;MA5II,yBAoDG;IlBs5LP;IkB9zLA;MA5II,wBAoDG;IlBy5LP;IkBj0LA;MA5II,yBAoDG;IlB45LP;IkBp0LA;MA5II,sBAoDG;IlB+5LP;IkBv0LA;MA5II,yBAoDG;IlBk6LP;IkB10LA;MA5II,wBAoDG;IlBq6LP;IkB70LA;MA5II,sBAoDG;IlBw6LP;IkBh1LA;MA5II,wBAoDG;IlB26LP;IkBn1LA;MA5II,sBAoDG;IlB86LP;IkBt1LA;MA5II,sBAoDG;IlBi7LP;IkBz1LA;MA5II,sBAoDG;IlBo7LP;IkB51LA;MA5II,4BAoDG;IlBu7LP;IkB/1LA;MA5II,2BAoDG;IlB07LP;IkBl2LA;MA5II,4BAoDG;IlB67LP;IkBr2LA;MA5II,yBAoDG;IlBg8LP;IkBx2LA;MA5II,4BAoDG;IlBm8LP;IkB32LA;MA5II,2BAoDG;IlBs8LP;IkB92LA;MA5II,yBAoDG;IlBy8LP;IkBj3LA;MA5II,2BAoDG;IlB48LP;IkBp3LA;MA5II,yBAoDG;IlB+8LP;IkBv3LA;MA5II,6BAoDG;IlBk9LP;IkB13LA;MA5II,4BAoDG;IlBq9LP;IkB73LA;MA5II,yBAoDG;IlBw9LP;IkBh4LA;MA5II,UAoDG;IlB29LP;IkBn4LA;MA5II,gBAoDG;IlB89LP;IkBt4LA;MA5II,eAoDG;IlBi+LP;IkBz4LA;MA5II,gBAoDG;IlBo+LP;IkB54LA;MA5II,aAoDG;IlBu+LP;IkB/4LA;MA5II,gBAoDG;IlB0+LP;IkBl5LA;MA5II,eAoDG;IlB6+LP;IkBr5LA;MA5II,aAoDG;IlBg/LP;IkBx5LA;MA5II,eAoDG;IlBm/LP;IkB35LA;MA5II,aAoDG;IlBs/LP;IkB95LA;MA5II,iBAoDG;IlBy/LP;IkBj6LA;MA5II,uBAoDG;IlB4/LP;IkBp6LA;MA5II,sBAoDG;IlB+/LP;IkBv6LA;MA5II,uBAoDG;IlBkgMP;IkB16LA;MA5II,oBAoDG;IlBqgMP;IkB76LA;MA5II,uBAoDG;IlBwgMP;IkBh7LA;MA5II,sBAoDG;IlB2gMP;IkBn7LA;MA5II,oBAoDG;IlB8gMP;IkBt7LA;MA5II,sBAoDG;IlBihMP;IkBz7LA;MA5II,oBAoDG;IlBohMP;IkB57LA;MA5II,gBAoDG;IlBuhMP;IkB/7LA;MA5II,sBAoDG;IlB0hMP;IkBl8LA;MA5II,qBAoDG;IlB6hMP;IkBr8LA;MA5II,sBAoDG;IlBgiMP;IkBx8LA;MA5II,mBAoDG;IlBmiMP;IkB38LA;MA5II,sBAoDG;IlBsiMP;IkB98LA;MA5II,qBAoDG;IlByiMP;IkBj9LA;MA5II,mBAoDG;IlB4iMP;IkBp9LA;MA5II,qBAoDG;IlB+iMP;IkBv9LA;MA5II,mBAoDG;IlBkjMP;IkB19LA;MA5II,sBAoDG;IlBqjMP;IkB79LA;MA5II,4BAoDG;IlBwjMP;IkBh+LA;MA5II,2BAoDG;IlB2jMP;IkBn+LA;MA5II,4BAoDG;IlB8jMP;IkBt+LA;MA5II,yBAoDG;IlBikMP;IkBz+LA;MA5II,4BAoDG;IlBokMP;IkB5+LA;MA5II,2BAoDG;IlBukMP;IkB/+LA;MA5II,yBAoDG;IlB0kMP;IkBl/LA;MA5II,2BAoDG;IlB6kMP;IkBr/LA;MA5II,yBAoDG;IlBglMP;IkBx/LA;MA5II,qBAoDG;IlBmlMP;IkB3/LA;MA5II,2BAoDG;IlBslMP;IkB9/LA;MA5II,0BAoDG;IlBylMP;IkBjgMA;MA5II,2BAoDG;IlB4lMP;IkBpgMA;MA5II,wBAoDG;IlB+lMP;IkBvgMA;MA5II,2BAoDG;IlBkmMP;IkB1gMA;MA5II,0BAoDG;IlBqmMP;IkB7gMA;MA5II,wBAoDG;IlBwmMP;IkBhhMA;MA5II,0BAoDG;IlB2mMP;IkBnhMA;MA5II,wBAoDG;IlB8mMP;IkBthMA;MA5II,oBAoDG;IlBinMP;IkBzhMA;MA5II,0BAoDG;IlBonMP;IkB5hMA;MA5II,yBAoDG;IlBunMP;IkB/hMA;MA5II,0BAoDG;IlB0nMP;IkBliMA;MA5II,uBAoDG;IlB6nMP;IkBriMA;MA5II,0BAoDG;IlBgoMP;IkBxiMA;MA5II,yBAoDG;IlBmoMP;IkB3iMA;MA5II,uBAoDG;IlBsoMP;IkB9iMA;MA5II,yBAoDG;IlByoMP;IkBjjMA;MA5II,uBAoDG;IlB4oMP;IkBpjMA;MA5II,uBAoDG;IlB+oMP;IkBvjMA;MA5II,6BAoDG;IlBkpMP;IkB1jMA;MA5II,4BAoDG;IlBqpMP;IkB7jMA;MA5II,6BAoDG;IlBwpMP;IkBhkMA;MA5II,0BAoDG;IlB2pMP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kBAyDO;IlB+3MX;IkB5yMA;MA5II,mBAyDO;IlBk4MX;IkB/yMA;MA5II,aAyDO;IlBq4MX;IkBlzMA;MA5II,oBAyDO;IlBw4MX;IkBrzMA;MA5II,iBAyDO;IlB24MX;IkBxzMA;MA5II,kBAyDO;IlB84MX;IkB3zMA;MA5II,aAyDO;IlBi5MX;IkB9zMA;MA5II,cAoDG;IlBy5MP;IkBj0MA;MA5II,mBAyDO;IlBu5MX;IkBp0MA;MA5II,sBAyDO;IlB05MX;IkBv0MA;MA5II,2BAyDO;IlB65MX;IkB10MA;MA5II,8BAyDO;IlBg6MX;IkB70MA;MA5II,YAoDG;IlBw6MP;IkBh1MA;MA5II,YAoDG;IlB26MP;IkBn1MA;MA5II,cAoDG;IlB86MP;IkBt1MA;MA5II,cAoDG;IlBi7MP;IkBz1MA;MA5II,eAyDO;IlB+6MX;IkB51MA;MA5II,iBAyDO;IlBk7MX;IkB/1MA;MA5II,uBAyDO;IlBq7MX;IkBl2MA;MA5II,2BAoDG;IlB67MP;IkBr2MA;MA5II,yBAoDG;IlBg8MP;IkBx2MA;MA5II,uBAoDG;IlBm8MP;IkB32MA;MA5II,8BAoDG;IlBs8MP;IkB92MA;MA5II,6BAoDG;IlBy8MP;IkBj3MA;MA5II,6BAoDG;IlB48MP;IkBp3MA;MA5II,oBAoDG;IlB+8MP;IkBv3MA;MA5II,kBAoDG;IlBk9MP;IkB13MA;MA5II,qBAoDG;IlBq9MP;IkB73MA;MA5II,sBAoDG;IlBw9MP;IkBh4MA;MA5II,mBAoDG;IlB29MP;IkBn4MA;MA5II,iBAoDG;IlB89MP;IkBt4MA;MA5II,oBAoDG;IlBi+MP;IkBz4MA;MA5II,uBAoDG;IlBo+MP;IkB54MA;MA5II,qBAoDG;IlBu+MP;IkB/4MA;MA5II,mBAoDG;IlB0+MP;IkBl5MA;MA5II,qBAoDG;IlB6+MP;IkBr5MA;MA5II,oBAoDG;IlBg/MP;IkBx5MA;MA5II,yBAoDG;IlBm/MP;IkB35MA;MA5II,uBAoDG;IlBs/MP;IkB95MA;MA5II,qBAoDG;IlBy/MP;IkBj6MA;MA5II,4BAoDG;IlB4/MP;IkBp6MA;MA5II,2BAoDG;IlB+/MP;IkBv6MA;MA5II,sBAoDG;IlBkgNP;IkB16MA;MA5II,gBAoDG;IlBqgNP;IkB76MA;MA5II,sBAoDG;IlBwgNP;IkBh7MA;MA5II,oBAoDG;IlB2gNP;IkBn7MA;MA5II,kBAoDG;IlB8gNP;IkBt7MA;MA5II,oBAoDG;IlBihNP;IkBz7MA;MA5II,mBAoDG;IlBohNP;IkB57MA;MA5II,kBAoDG;IlBuhNP;IkB/7MA;MA5II,gBAoDG;IlB0hNP;IkBl8MA;MA5II,mBAoDG;IlB6hNP;IkBr8MA;MA5II,oBAoDG;IlBgiNP;IkBx8MA;MA5II,0BAoDG;IlBmiNP;IkB38MA;MA5II,qCAoDG;IlBsiNP;IkB98MA;MA5II,qCAoDG;IlByiNP;IkBj9MA;MA5II,qCAoDG;IlB4iNP;IkBp9MA;MA5II,qCAoDG;IlB+iNP;IkBv9MA;MA5II,mBAoDG;IlBkjNP;IkB19MA;MA5II,mBAyDO;IlBgjNX;IkB79MA;MA5II,sBAyDO;IlBmjNX;IkBh+MA;MA5II,qBAyDO;IlBsjNX;IkBn+MA;MA5II,SAoDG;IlB8jNP;IkBt+MA;MA5II,QAoDG;IlBikNP;IkBz+MA;MA5II,QAoDG;IlBokNP;IkB5+MA;MA5II,QAoDG;IlBukNP;IkB/+MA;MA5II,QAoDG;IlB0kNP;IkBl/MA;MA5II,QAoDG;IlB6kNP;IkBr/MA;MA5II,QAoDG;IlBglNP;IkBx/MA;MA5II,QAoDG;IlBmlNP;IkB3/MA;MA5II,SAoDG;IlBslNP;IkB9/MA;MA5II,eAoDG;IlBylNP;IkBjgNA;MA5II,cAoDG;IlB4lNP;IkBpgNA;MA5II,eAoDG;IlB+lNP;IkBvgNA;MA5II,YAoDG;IlBkmNP;IkB1gNA;MA5II,eAoDG;IlBqmNP;IkB7gNA;MA5II,cAoDG;IlBwmNP;IkBhhNA;MA5II,YAoDG;IlB2mNP;IkBnhNA;MA5II,cAoDG;IlB8mNP;IkBthNA;MA5II,YAoDG;IlBinNP;IkBzhNA;MA5II,YAoDG;IlBonNP;IkB5hNA;MA5II,gBAoDG;IlBunNP;IkB/hNA;MA5II,sBAoDG;IlB0nNP;IkBliNA;MA5II,qBAoDG;IlB6nNP;IkBriNA;MA5II,sBAoDG;IlBgoNP;IkBxiNA;MA5II,mBAoDG;IlBmoNP;IkB3iNA;MA5II,sBAoDG;IlBsoNP;IkB9iNA;MA5II,qBAoDG;IlByoNP;IkBjjNA;MA5II,mBAoDG;IlB4oNP;IkBpjNA;MA5II,qBAoDG;IlB+oNP;IkBvjNA;MA5II,mBAoDG;IlBkpNP;IkB1jNA;MA5II,mBAoDG;IlBqpNP;IkB7jNA;MA5II,eAoDG;IlBwpNP;IkBhkNA;MA5II,qBAoDG;IlB2pNP;IkBnkNA;MA5II,oBAoDG;IlB8pNP;IkBtkNA;MA5II,qBAoDG;IlBiqNP;IkBzkNA;MA5II,kBAoDG;IlBoqNP;IkB5kNA;MA5II,qBAoDG;IlBuqNP;IkB/kNA;MA5II,oBAoDG;IlB0qNP;IkBllNA;MA5II,kBAoDG;IlB6qNP;IkBrlNA;MA5II,oBAoDG;IlBgrNP;IkBxlNA;MA5II,kBAoDG;IlBmrNP;IkB3lNA;MA5II,kBAoDG;IlBsrNP;IkB9lNA;MA5II,qBAoDG;IlByrNP;IkBjmNA;MA5II,2BAoDG;IlB4rNP;IkBpmNA;MA5II,0BAoDG;IlB+rNP;IkBvmNA;MA5II,2BAoDG;IlBksNP;IkB1mNA;MA5II,wBAoDG;IlBqsNP;IkB7mNA;MA5II,2BAoDG;IlBwsNP;IkBhnNA;MA5II,0BAoDG;IlB2sNP;IkBnnNA;MA5II,wBAoDG;IlB8sNP;IkBtnNA;MA5II,0BAoDG;IlBitNP;IkBznNA;MA5II,wBAoDG;IlBotNP;IkB5nNA;MA5II,wBAoDG;IlButNP;IkB/nNA;MA5II,oBAoDG;IlB0tNP;IkBloNA;MA5II,0BAoDG;IlB6tNP;IkBroNA;MA5II,yBAoDG;IlBguNP;IkBxoNA;MA5II,0BAoDG;IlBmuNP;IkB3oNA;MA5II,uBAoDG;IlBsuNP;IkB9oNA;MA5II,0BAoDG;IlByuNP;IkBjpNA;MA5II,yBAoDG;IlB4uNP;IkBppNA;MA5II,uBAoDG;IlB+uNP;IkBvpNA;MA5II,yBAoDG;IlBkvNP;IkB1pNA;MA5II,uBAoDG;IlBqvNP;IkB7pNA;MA5II,2BAoDG;IlBwvNP;IkBhqNA;MA5II,0BAoDG;IlB2vNP;IkBnqNA;MA5II,uBAoDG;IlB8vNP;IkBtqNA;MA5II,mBAoDG;IlBiwNP;IkBzqNA;MA5II,yBAoDG;IlBowNP;IkB5qNA;MA5II,wBAoDG;IlBuwNP;IkB/qNA;MA5II,yBAoDG;IlB0wNP;IkBlrNA;MA5II,sBAoDG;IlB6wNP;IkBrrNA;MA5II,yBAoDG;IlBgxNP;IkBxrNA;MA5II,wBAoDG;IlBmxNP;IkB3rNA;MA5II,sBAoDG;IlBsxNP;IkB9rNA;MA5II,wBAoDG;IlByxNP;IkBjsNA;MA5II,sBAoDG;IlB4xNP;IkBpsNA;MA5II,sBAoDG;IlB+xNP;IkBvsNA;MA5II,sBAoDG;IlBkyNP;IkB1sNA;MA5II,4BAoDG;IlBqyNP;IkB7sNA;MA5II,2BAoDG;IlBwyNP;IkBhtNA;MA5II,4BAoDG;IlB2yNP;IkBntNA;MA5II,yBAoDG;IlB8yNP;IkBttNA;MA5II,4BAoDG;IlBizNP;IkBztNA;MA5II,2BAoDG;IlBozNP;IkB5tNA;MA5II,yBAoDG;IlBuzNP;IkB/tNA;MA5II,2BAoDG;IlB0zNP;IkBluNA;MA5II,yBAoDG;IlB6zNP;IkBruNA;MA5II,6BAoDG;IlBg0NP;IkBxuNA;MA5II,4BAoDG;IlBm0NP;IkB3uNA;MA5II,yBAoDG;IlBs0NP;IkB9uNA;MA5II,UAoDG;IlBy0NP;IkBjvNA;MA5II,gBAoDG;IlB40NP;IkBpvNA;MA5II,eAoDG;IlB+0NP;IkBvvNA;MA5II,gBAoDG;IlBk1NP;IkB1vNA;MA5II,aAoDG;IlBq1NP;IkB7vNA;MA5II,gBAoDG;IlBw1NP;IkBhwNA;MA5II,eAoDG;IlB21NP;IkBnwNA;MA5II,aAoDG;IlB81NP;IkBtwNA;MA5II,eAoDG;IlBi2NP;IkBzwNA;MA5II,aAoDG;IlBo2NP;IkB5wNA;MA5II,iBAoDG;IlBu2NP;IkB/wNA;MA5II,uBAoDG;IlB02NP;IkBlxNA;MA5II,sBAoDG;IlB62NP;IkBrxNA;MA5II,uBAoDG;IlBg3NP;IkBxxNA;MA5II,oBAoDG;IlBm3NP;IkB3xNA;MA5II,uBAoDG;IlBs3NP;IkB9xNA;MA5II,sBAoDG;IlBy3NP;IkBjyNA;MA5II,oBAoDG;IlB43NP;IkBpyNA;MA5II,sBAoDG;IlB+3NP;IkBvyNA;MA5II,oBAoDG;IlBk4NP;IkB1yNA;MA5II,gBAoDG;IlBq4NP;IkB7yNA;MA5II,sBAoDG;IlBw4NP;IkBhzNA;MA5II,qBAoDG;IlB24NP;IkBnzNA;MA5II,sBAoDG;IlB84NP;IkBtzNA;MA5II,mBAoDG;IlBi5NP;IkBzzNA;MA5II,sBAoDG;IlBo5NP;IkB5zNA;MA5II,qBAoDG;IlBu5NP;IkB/zNA;MA5II,mBAoDG;IlB05NP;IkBl0NA;MA5II,qBAoDG;IlB65NP;IkBr0NA;MA5II,mBAoDG;IlBg6NP;IkBx0NA;MA5II,sBAoDG;IlBm6NP;IkB30NA;MA5II,4BAoDG;IlBs6NP;IkB90NA;MA5II,2BAoDG;IlBy6NP;IkBj1NA;MA5II,4BAoDG;IlB46NP;IkBp1NA;MA5II,yBAoDG;IlB+6NP;IkBv1NA;MA5II,4BAoDG;IlBk7NP;IkB11NA;MA5II,2BAoDG;IlBq7NP;IkB71NA;MA5II,yBAoDG;IlBw7NP;IkBh2NA;MA5II,2BAoDG;IlB27NP;IkBn2NA;MA5II,yBAoDG;IlB87NP;IkBt2NA;MA5II,qBAoDG;IlBi8NP;IkBz2NA;MA5II,2BAoDG;IlBo8NP;IkB52NA;MA5II,0BAoDG;IlBu8NP;IkB/2NA;MA5II,2BAoDG;IlB08NP;IkBl3NA;MA5II,wBAoDG;IlB68NP;IkBr3NA;MA5II,2BAoDG;IlBg9NP;IkBx3NA;MA5II,0BAoDG;IlBm9NP;IkB33NA;MA5II,wBAoDG;IlBs9NP;IkB93NA;MA5II,0BAoDG;IlBy9NP;IkBj4NA;MA5II,wBAoDG;IlB49NP;IkBp4NA;MA5II,oBAoDG;IlB+9NP;IkBv4NA;MA5II,0BAoDG;IlBk+NP;IkB14NA;MA5II,yBAoDG;IlBq+NP;IkB74NA;MA5II,0BAoDG;IlBw+NP;IkBh5NA;MA5II,uBAoDG;IlB2+NP;IkBn5NA;MA5II,0BAoDG;IlB8+NP;IkBt5NA;MA5II,yBAoDG;IlBi/NP;IkBz5NA;MA5II,uBA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","file":"bootstrap-utilities.css","sourcesContent":["$file: \"\" !default;\n\n/*!\n * Bootstrap #{$file} v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n","// stylelint-disable hue-degree-notation, @stylistic/number-leading-zero\n\n@use \"sass:map\";\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n// Easily convert colors to oklch() with https://oklch.com/\n\n$white: #fff !default;\n$black: #000 !default;\n\n// scss-docs-start colors-list\n$blue: oklch(60% 0.24 240) !default;\n$indigo: oklch(56% 0.26 288) !default;\n$violet: oklch(56% 0.24 300) !default;\n$purple: oklch(56% 0.24 320) !default;\n$pink: oklch(60% 0.22 4) !default;\n$red: oklch(60% 0.22 20) !default;\n$orange: oklch(70% 0.22 52) !default;\n$amber: oklch(79% 0.2 78) !default;\n$yellow: oklch(88% 0.24 88) !default;\n$lime: oklch(65% 0.24 135) !default;\n$green: oklch(64% 0.22 160) !default;\n$teal: oklch(68% 0.22 190) !default;\n$cyan: oklch(69% 0.22 220) !default;\n$brown: oklch(60% 0.12 54) !default;\n$gray: oklch(60% 0.02 245) !default;\n$pewter: oklch(65% 0.01 290) !default;\n// scss-docs-end colors-list\n\n// scss-docs-start colors-map\n$colors: () !default;\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: defaults(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"violet\": $violet,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"amber\": $amber,\n \"yellow\": $yellow,\n \"lime\": $lime,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"brown\": $brown,\n \"gray\": $gray,\n \"pewter\": $pewter,\n ),\n $colors\n);\n// scss-docs-end colors-map\n\n// scss-docs-start color-mix-options\n$color-mix-space: lab !default;\n$tint-color: var(--white) !default;\n$shade-color: var(--black) !default;\n\n$color-tints: (\n \"025\": 94%,\n \"050\": 90%,\n \"100\": 80%,\n \"200\": 60%,\n \"300\": 40%,\n \"400\": 20%,\n) !default;\n\n$color-shades: (\n \"600\": 16%,\n \"700\": 32%,\n \"800\": 48%,\n \"900\": 64%,\n \"950\": 76%,\n \"975\": 88%,\n) !default;\n// scss-docs-end color-mix-options\n\n// scss-docs-start color-tokens\n$color-tokens: () !default;\n\n$-color-defaults: () !default;\n@each $color, $value in $colors {\n @each $stop, $percent in $color-tints {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$tint-color} #{$percent}, #{$value}));\n }\n $-color-defaults: map.set($-color-defaults, --#{$color}-500, #{$value});\n @each $stop, $percent in $color-shades {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$shade-color} #{$percent}, #{$value}));\n }\n}\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$color-tokens: defaults($-color-defaults, $color-tokens);\n// scss-docs-end color-tokens\n\n:root {\n @include tokens($color-tokens);\n}\n","// Mixin to output tokens as CSS custom properties\n\n// scss-docs-start mixin-tokens\n@mixin tokens($map) {\n @each $prop, $value in $map {\n #{$prop}: #{$value};\n }\n}\n// scss-docs-end mixin-tokens\n","/*!\n * Bootstrap Utilities v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.24 240deg));\n --blue-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.24 240deg));\n --blue-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.24 240deg));\n --blue-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.24 240deg));\n --blue-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.24 240deg));\n --blue-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.24 240deg));\n --blue-500: oklch(60% 0.24 240deg);\n --blue-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.24 240deg));\n --blue-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.24 240deg));\n --blue-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.24 240deg));\n --blue-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.24 240deg));\n --blue-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.24 240deg));\n --blue-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.24 240deg));\n --indigo-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.26 288deg));\n --indigo-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.26 288deg));\n --indigo-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.26 288deg));\n --indigo-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.26 288deg));\n --indigo-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.26 288deg));\n --indigo-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.26 288deg));\n --indigo-500: oklch(56% 0.26 288deg);\n --indigo-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.26 288deg));\n --indigo-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.26 288deg));\n --indigo-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.26 288deg));\n --indigo-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.26 288deg));\n --indigo-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.26 288deg));\n --indigo-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.26 288deg));\n --violet-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 300deg));\n --violet-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 300deg));\n --violet-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 300deg));\n --violet-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 300deg));\n --violet-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 300deg));\n --violet-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 300deg));\n --violet-500: oklch(56% 0.24 300deg);\n --violet-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 300deg));\n --violet-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 300deg));\n --violet-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 300deg));\n --violet-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 300deg));\n --violet-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 300deg));\n --violet-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 300deg));\n --purple-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 320deg));\n --purple-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 320deg));\n --purple-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 320deg));\n --purple-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 320deg));\n --purple-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 320deg));\n --purple-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 320deg));\n --purple-500: oklch(56% 0.24 320deg);\n --purple-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 320deg));\n --purple-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 320deg));\n --purple-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 320deg));\n --purple-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 320deg));\n --purple-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 320deg));\n --purple-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 320deg));\n --pink-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 4deg));\n --pink-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 4deg));\n --pink-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 4deg));\n --pink-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 4deg));\n --pink-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 4deg));\n --pink-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 4deg));\n --pink-500: oklch(60% 0.22 4deg);\n --pink-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 4deg));\n --pink-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 4deg));\n --pink-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 4deg));\n --pink-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 4deg));\n --pink-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 4deg));\n --pink-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 4deg));\n --red-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 20deg));\n --red-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 20deg));\n --red-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 20deg));\n --red-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 20deg));\n --red-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 20deg));\n --red-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 20deg));\n --red-500: oklch(60% 0.22 20deg);\n --red-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 20deg));\n --red-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 20deg));\n --red-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 20deg));\n --red-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 20deg));\n --red-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 20deg));\n --red-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 20deg));\n --orange-025: color-mix(in lab, var(--white) 94%, oklch(70% 0.22 52deg));\n --orange-050: color-mix(in lab, var(--white) 90%, oklch(70% 0.22 52deg));\n --orange-100: color-mix(in lab, var(--white) 80%, oklch(70% 0.22 52deg));\n --orange-200: color-mix(in lab, var(--white) 60%, oklch(70% 0.22 52deg));\n --orange-300: color-mix(in lab, var(--white) 40%, oklch(70% 0.22 52deg));\n --orange-400: color-mix(in lab, var(--white) 20%, oklch(70% 0.22 52deg));\n --orange-500: oklch(70% 0.22 52deg);\n --orange-600: color-mix(in lab, var(--black) 16%, oklch(70% 0.22 52deg));\n --orange-700: color-mix(in lab, var(--black) 32%, oklch(70% 0.22 52deg));\n --orange-800: color-mix(in lab, var(--black) 48%, oklch(70% 0.22 52deg));\n --orange-900: color-mix(in lab, var(--black) 64%, oklch(70% 0.22 52deg));\n --orange-950: color-mix(in lab, var(--black) 76%, oklch(70% 0.22 52deg));\n --orange-975: color-mix(in lab, var(--black) 88%, oklch(70% 0.22 52deg));\n --amber-025: color-mix(in lab, var(--white) 94%, oklch(79% 0.2 78deg));\n --amber-050: color-mix(in lab, var(--white) 90%, oklch(79% 0.2 78deg));\n --amber-100: color-mix(in lab, var(--white) 80%, oklch(79% 0.2 78deg));\n --amber-200: color-mix(in lab, var(--white) 60%, oklch(79% 0.2 78deg));\n --amber-300: color-mix(in lab, var(--white) 40%, oklch(79% 0.2 78deg));\n --amber-400: color-mix(in lab, var(--white) 20%, oklch(79% 0.2 78deg));\n --amber-500: oklch(79% 0.2 78deg);\n --amber-600: color-mix(in lab, var(--black) 16%, oklch(79% 0.2 78deg));\n --amber-700: color-mix(in lab, var(--black) 32%, oklch(79% 0.2 78deg));\n --amber-800: color-mix(in lab, var(--black) 48%, oklch(79% 0.2 78deg));\n --amber-900: color-mix(in lab, var(--black) 64%, oklch(79% 0.2 78deg));\n --amber-950: color-mix(in lab, var(--black) 76%, oklch(79% 0.2 78deg));\n --amber-975: color-mix(in lab, var(--black) 88%, oklch(79% 0.2 78deg));\n --yellow-025: color-mix(in lab, var(--white) 94%, oklch(88% 0.24 88deg));\n --yellow-050: color-mix(in lab, var(--white) 90%, oklch(88% 0.24 88deg));\n --yellow-100: color-mix(in lab, var(--white) 80%, oklch(88% 0.24 88deg));\n --yellow-200: color-mix(in lab, var(--white) 60%, oklch(88% 0.24 88deg));\n --yellow-300: color-mix(in lab, var(--white) 40%, oklch(88% 0.24 88deg));\n --yellow-400: color-mix(in lab, var(--white) 20%, oklch(88% 0.24 88deg));\n --yellow-500: oklch(88% 0.24 88deg);\n --yellow-600: color-mix(in lab, var(--black) 16%, oklch(88% 0.24 88deg));\n --yellow-700: color-mix(in lab, var(--black) 32%, oklch(88% 0.24 88deg));\n --yellow-800: color-mix(in lab, var(--black) 48%, oklch(88% 0.24 88deg));\n --yellow-900: color-mix(in lab, var(--black) 64%, oklch(88% 0.24 88deg));\n --yellow-950: color-mix(in lab, var(--black) 76%, oklch(88% 0.24 88deg));\n --yellow-975: color-mix(in lab, var(--black) 88%, oklch(88% 0.24 88deg));\n --lime-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.24 135deg));\n --lime-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.24 135deg));\n --lime-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.24 135deg));\n --lime-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.24 135deg));\n --lime-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.24 135deg));\n --lime-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.24 135deg));\n --lime-500: oklch(65% 0.24 135deg);\n --lime-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.24 135deg));\n --lime-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.24 135deg));\n --lime-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.24 135deg));\n --lime-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.24 135deg));\n --lime-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.24 135deg));\n --lime-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.24 135deg));\n --green-025: color-mix(in lab, var(--white) 94%, oklch(64% 0.22 160deg));\n --green-050: color-mix(in lab, var(--white) 90%, oklch(64% 0.22 160deg));\n --green-100: color-mix(in lab, var(--white) 80%, oklch(64% 0.22 160deg));\n --green-200: color-mix(in lab, var(--white) 60%, oklch(64% 0.22 160deg));\n --green-300: color-mix(in lab, var(--white) 40%, oklch(64% 0.22 160deg));\n --green-400: color-mix(in lab, var(--white) 20%, oklch(64% 0.22 160deg));\n --green-500: oklch(64% 0.22 160deg);\n --green-600: color-mix(in lab, var(--black) 16%, oklch(64% 0.22 160deg));\n --green-700: color-mix(in lab, var(--black) 32%, oklch(64% 0.22 160deg));\n --green-800: color-mix(in lab, var(--black) 48%, oklch(64% 0.22 160deg));\n --green-900: color-mix(in lab, var(--black) 64%, oklch(64% 0.22 160deg));\n --green-950: color-mix(in lab, var(--black) 76%, oklch(64% 0.22 160deg));\n --green-975: color-mix(in lab, var(--black) 88%, oklch(64% 0.22 160deg));\n --teal-025: color-mix(in lab, var(--white) 94%, oklch(68% 0.22 190deg));\n --teal-050: color-mix(in lab, var(--white) 90%, oklch(68% 0.22 190deg));\n --teal-100: color-mix(in lab, var(--white) 80%, oklch(68% 0.22 190deg));\n --teal-200: color-mix(in lab, var(--white) 60%, oklch(68% 0.22 190deg));\n --teal-300: color-mix(in lab, var(--white) 40%, oklch(68% 0.22 190deg));\n --teal-400: color-mix(in lab, var(--white) 20%, oklch(68% 0.22 190deg));\n --teal-500: oklch(68% 0.22 190deg);\n --teal-600: color-mix(in lab, var(--black) 16%, oklch(68% 0.22 190deg));\n --teal-700: color-mix(in lab, var(--black) 32%, oklch(68% 0.22 190deg));\n --teal-800: color-mix(in lab, var(--black) 48%, oklch(68% 0.22 190deg));\n --teal-900: color-mix(in lab, var(--black) 64%, oklch(68% 0.22 190deg));\n --teal-950: color-mix(in lab, var(--black) 76%, oklch(68% 0.22 190deg));\n --teal-975: color-mix(in lab, var(--black) 88%, oklch(68% 0.22 190deg));\n --cyan-025: color-mix(in lab, var(--white) 94%, oklch(69% 0.22 220deg));\n --cyan-050: color-mix(in lab, var(--white) 90%, oklch(69% 0.22 220deg));\n --cyan-100: color-mix(in lab, var(--white) 80%, oklch(69% 0.22 220deg));\n --cyan-200: color-mix(in lab, var(--white) 60%, oklch(69% 0.22 220deg));\n --cyan-300: color-mix(in lab, var(--white) 40%, oklch(69% 0.22 220deg));\n --cyan-400: color-mix(in lab, var(--white) 20%, oklch(69% 0.22 220deg));\n --cyan-500: oklch(69% 0.22 220deg);\n --cyan-600: color-mix(in lab, var(--black) 16%, oklch(69% 0.22 220deg));\n --cyan-700: color-mix(in lab, var(--black) 32%, oklch(69% 0.22 220deg));\n --cyan-800: color-mix(in lab, var(--black) 48%, oklch(69% 0.22 220deg));\n --cyan-900: color-mix(in lab, var(--black) 64%, oklch(69% 0.22 220deg));\n --cyan-950: color-mix(in lab, var(--black) 76%, oklch(69% 0.22 220deg));\n --cyan-975: color-mix(in lab, var(--black) 88%, oklch(69% 0.22 220deg));\n --brown-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.12 54deg));\n --brown-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.12 54deg));\n --brown-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.12 54deg));\n --brown-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.12 54deg));\n --brown-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.12 54deg));\n --brown-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.12 54deg));\n --brown-500: oklch(60% 0.12 54deg);\n --brown-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.12 54deg));\n --brown-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.12 54deg));\n --brown-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.12 54deg));\n --brown-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.12 54deg));\n --brown-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.12 54deg));\n --brown-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.12 54deg));\n --gray-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.02 245deg));\n --gray-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.02 245deg));\n --gray-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.02 245deg));\n --gray-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.02 245deg));\n --gray-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.02 245deg));\n --gray-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.02 245deg));\n --gray-500: oklch(60% 0.02 245deg);\n --gray-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.02 245deg));\n --gray-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.02 245deg));\n --gray-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.02 245deg));\n --gray-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.02 245deg));\n --gray-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.02 245deg));\n --gray-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.02 245deg));\n --pewter-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.01 290deg));\n --pewter-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.01 290deg));\n --pewter-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.01 290deg));\n --pewter-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.01 290deg));\n --pewter-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.01 290deg));\n --pewter-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.01 290deg));\n --pewter-500: oklch(65% 0.01 290deg);\n --pewter-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.01 290deg));\n --pewter-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.01 290deg));\n --pewter-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.01 290deg));\n --pewter-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.01 290deg));\n --pewter-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.01 290deg));\n --pewter-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.01 290deg));\n}\n\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n:root {\n --black: #000;\n --white: #fff;\n --gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent));\n --font-weight-lighter: lighter;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-bolder: bolder;\n --body-font-family: system-ui;\n --body-font-size: var(--font-size-base);\n --body-font-weight: 400;\n --body-line-height: 1.5;\n --heading-color: inherit;\n --hr-border-color: var(--border-color);\n --link-color: light-dark(var(--primary-base), var(--primary-fg));\n --link-decoration: underline;\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000);\n --font-mono: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;\n --code-font-size: 95%;\n --code-color: var(--fg-2);\n --border-width: 1px;\n --border-style: solid;\n --border-color: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-700));\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent);\n --box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n --box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n --box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);\n --box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n --spacer: 1rem;\n --focus-ring-width: 3px;\n --focus-ring-offset: 1px;\n --focus-ring-color: var(--primary-focus-ring);\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color);\n --control-checked-bg: var(--primary-base);\n --control-checked-border-color: var(--control-checked-bg);\n --control-active-bg: var(--primary-base);\n --control-active-border-color: var(--control-active-bg);\n --control-disabled-bg: var(--bg-3);\n --control-disabled-opacity: 0.65;\n --btn-input-fg: var(--fg-body);\n --btn-input-bg: var(--bg-body);\n --btn-input-min-height: 2.375rem;\n --btn-input-padding-y: 0.375rem;\n --btn-input-padding-x: 0.75rem;\n --btn-input-font-size: var(--font-size-base);\n --btn-input-line-height: var(--line-height-base);\n --btn-input-border-radius: var(--radius-5);\n --btn-input-xs-min-height: 1.5rem;\n --btn-input-xs-padding-y: 0.125rem;\n --btn-input-xs-padding-x: 0.5rem;\n --btn-input-xs-font-size: var(--font-size-xs);\n --btn-input-xs-line-height: 1.125;\n --btn-input-xs-border-radius: var(--radius-5);\n --btn-input-sm-min-height: 2rem;\n --btn-input-sm-padding-y: 0.25rem;\n --btn-input-sm-padding-x: 0.625rem;\n --btn-input-sm-font-size: var(--font-size-sm);\n --btn-input-sm-line-height: var(--line-height-sm);\n --btn-input-sm-border-radius: var(--radius-5);\n --btn-input-lg-min-height: 2.75rem;\n --btn-input-lg-padding-y: 0.5rem;\n --btn-input-lg-padding-x: 1rem;\n --btn-input-lg-font-size: var(--font-size-md);\n --btn-input-lg-line-height: var(--line-height-md);\n --btn-input-lg-border-radius: var(--radius-7);\n --font-size-xs: 0.75rem;\n --line-height-xs: 1.25;\n --font-size-sm: 0.875rem;\n --line-height-sm: 1.5;\n --font-size-md: 1rem;\n --line-height-md: 1.5;\n --font-size-lg: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n --line-height-lg: 1.5;\n --font-size-xl: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n --line-height-xl: 1.4285714286;\n --font-size-2xl: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n --line-height-2xl: 1.3333333333;\n --font-size-3xl: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n --line-height-3xl: 1.2;\n --font-size-4xl: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n --line-height-4xl: 1.1;\n --font-size-5xl: clamp(3rem, 2rem + 5vw, 4rem);\n --line-height-5xl: 1.1;\n --font-size-6xl: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n --line-height-6xl: 1;\n --primary-base: var(--blue-500);\n --primary-fg: light-dark(var(--blue-600), var(--blue-400));\n --primary-fg-emphasis: light-dark(var(--blue-800), var(--blue-200));\n --primary-bg: var(--blue-500);\n --primary-bg-subtle: light-dark(var(--blue-100), var(--blue-900));\n --primary-bg-muted: light-dark(var(--blue-200), var(--blue-800));\n --primary-border: light-dark(var(--blue-300), var(--blue-600));\n --primary-focus-ring: light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body)));\n --primary-contrast: var(--white);\n --accent-base: var(--indigo-500);\n --accent-fg: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n --accent-fg-emphasis: light-dark(var(--indigo-800), var(--indigo-300));\n --accent-bg: var(--indigo-500);\n --accent-bg-subtle: light-dark(var(--indigo-100), var(--indigo-900));\n --accent-bg-muted: light-dark(var(--indigo-200), var(--indigo-800));\n --accent-border: light-dark(var(--indigo-300), var(--indigo-600));\n --accent-focus-ring: light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body)));\n --accent-contrast: var(--white);\n --success-base: var(--green-500);\n --success-fg: light-dark(var(--green-600), var(--green-400));\n --success-fg-emphasis: light-dark(var(--green-800), var(--green-300));\n --success-bg: var(--green-500);\n --success-bg-subtle: light-dark(var(--green-100), var(--green-900));\n --success-bg-muted: light-dark(var(--green-200), var(--green-800));\n --success-border: light-dark(var(--green-300), var(--green-600));\n --success-focus-ring: light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body)));\n --success-contrast: var(--white);\n --danger-base: var(--red-500);\n --danger-fg: light-dark(var(--red-600), var(--red-400));\n --danger-fg-emphasis: light-dark(var(--red-800), var(--red-300));\n --danger-bg: var(--red-500);\n --danger-bg-subtle: light-dark(var(--red-100), var(--red-900));\n --danger-bg-muted: light-dark(var(--red-200), var(--red-800));\n --danger-border: light-dark(var(--red-300), var(--red-600));\n --danger-focus-ring: light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body)));\n --danger-contrast: var(--white);\n --warning-base: var(--yellow-500);\n --warning-fg: light-dark(var(--yellow-700), var(--yellow-400));\n --warning-fg-emphasis: light-dark(var(--yellow-800), var(--yellow-300));\n --warning-bg: var(--yellow-500);\n --warning-bg-subtle: light-dark(var(--yellow-100), var(--yellow-900));\n --warning-bg-muted: light-dark(var(--yellow-200), var(--yellow-800));\n --warning-border: light-dark(var(--yellow-300), var(--yellow-600));\n --warning-focus-ring: light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body)));\n --warning-contrast: var(--gray-900);\n --info-base: var(--cyan-500);\n --info-fg: light-dark(var(--cyan-600), var(--cyan-400));\n --info-fg-emphasis: light-dark(var(--cyan-800), var(--cyan-300));\n --info-bg: var(--cyan-500);\n --info-bg-subtle: light-dark(var(--cyan-100), var(--cyan-900));\n --info-bg-muted: light-dark(var(--cyan-200), var(--cyan-800));\n --info-border: light-dark(var(--cyan-300), var(--cyan-600));\n --info-focus-ring: light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body)));\n --info-contrast: var(--gray-900);\n --inverse-base: var(--gray-900);\n --inverse-fg: light-dark(var(--gray-900), var(--gray-200));\n --inverse-fg-emphasis: light-dark(var(--gray-975), var(--white));\n --inverse-bg: light-dark(var(--gray-900), var(--gray-025));\n --inverse-bg-subtle: light-dark(var(--gray-100), var(--gray-900));\n --inverse-bg-muted: light-dark(var(--gray-200), var(--gray-300));\n --inverse-border: light-dark(var(--gray-400), var(--gray-100));\n --inverse-focus-ring: color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body));\n --inverse-contrast: light-dark(var(--white), var(--gray-900));\n --secondary-base: var(--gray-200);\n --secondary-fg: light-dark(var(--gray-600), var(--gray-400));\n --secondary-fg-emphasis: light-dark(var(--gray-800), var(--gray-200));\n --secondary-bg: light-dark(var(--gray-100), var(--gray-600));\n --secondary-bg-subtle: light-dark(var(--gray-050), var(--gray-800));\n --secondary-bg-muted: light-dark(var(--gray-100), var(--gray-700));\n --secondary-border: light-dark(var(--gray-300), var(--gray-600));\n --secondary-focus-ring: color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body));\n --secondary-contrast: light-dark(var(--gray-900), var(--white));\n --bg-body: light-dark(var(--white), var(--gray-975));\n --bg-1: light-dark(var(--gray-025), var(--gray-950));\n --bg-2: light-dark(var(--gray-050), var(--gray-900));\n --bg-3: light-dark(var(--gray-100), var(--gray-800));\n --bg-4: light-dark(var(--gray-200), var(--gray-700));\n --bg-fg: var(--fg-body);\n --bg-white: var(--white);\n --bg-black: var(--black);\n --bg-transparent: transparent;\n --bg-inherit: inherit;\n --fg-body: light-dark(var(--gray-900), var(--gray-050));\n --fg-1: light-dark(var(--gray-800), var(--gray-200));\n --fg-2: light-dark(var(--gray-700), var(--gray-300));\n --fg-3: light-dark(var(--gray-600), var(--gray-500));\n --fg-4: light-dark(var(--gray-500), var(--gray-600));\n --fg-bg: var(--bg-body);\n --fg-white: var(--white);\n --fg-black: var(--black);\n --fg-inherit: inherit;\n --border-bg: var(--bg-body);\n --border-body: light-dark(var(--gray-300), var(--gray-800));\n --border-muted: light-dark(var(--gray-200), var(--gray-800));\n --border-subtle: light-dark(var(--gray-100), var(--gray-900));\n --border-emphasized: light-dark(var(--gray-400), var(--gray-600));\n --border-white: var(--white);\n --border-black: var(--black);\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 1024px;\n --breakpoint-xl: 1280px;\n --breakpoint-2xl: 1536px;\n --spacer-0: 0;\n --spacer-1: 0.25rem;\n --spacer-2: 0.5rem;\n --spacer-3: 0.75rem;\n --spacer-4: 1rem;\n --spacer-5: 1.25rem;\n --spacer-6: 1.5rem;\n --spacer-7: 2rem;\n --spacer-8: 2.5rem;\n --spacer-9: 3rem;\n --radius-0: 0;\n --radius-1: 0.125rem;\n --radius-2: 0.1875rem;\n --radius-3: 0.25rem;\n --radius-4: 0.375rem;\n --radius-5: 0.5rem;\n --radius-6: 0.625rem;\n --radius-7: 0.75rem;\n --radius-8: 1rem;\n --radius-9: 1.5rem;\n --radius-pill: 50rem;\n color-scheme: light dark;\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=dark] {\n color-scheme: dark;\n}\n\n[data-bs-theme=light] {\n color-scheme: light;\n}\n\n@layer helpers {\n .focus-ring:focus-visible {\n outline: var(--focus-ring-width) solid var(--theme-focus-ring, var(--focus-ring-color));\n }\n}\n@layer helpers {\n .icon-link {\n display: inline-flex;\n gap: 0.375rem;\n align-items: center;\n text-decoration-color: rgba(var(--link-color-rgb), var(--link-opacity, 0.5));\n text-underline-offset: 0.25em;\n backface-visibility: hidden;\n }\n .icon-link > .bi {\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n fill: currentcolor;\n transition: 0.2s ease-in-out transform;\n }\n @media (prefers-reduced-motion: reduce) {\n .icon-link > .bi {\n transition: none;\n }\n }\n .icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi {\n transform: var(--icon-link-transform, translate3d(0.25em, 0, 0));\n }\n}\n@layer helpers {\n .fixed-top {\n position: fixed;\n inset: 0 0 auto;\n z-index: 1030;\n }\n .fixed-bottom {\n position: fixed;\n inset: auto 0 0;\n z-index: 1030;\n }\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n @media (width >= 576px) {\n .sm\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sm\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 768px) {\n .md\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .md\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1024px) {\n .lg\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .lg\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1280px) {\n .xl\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .xl\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .\\32 xl\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n}\n@layer helpers {\n .stack-container {\n container-type: inline-size;\n }\n [class*=hstack],\n [class*=vstack] {\n display: flex;\n flex: var(--stack-flex, 1 1 auto);\n flex-direction: var(--stack-direction, row);\n align-items: var(--stack-align-items, center);\n align-self: var(--stack-align-self, stretch);\n }\n .vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n .hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n @container (width >= 576px) {\n .sm\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 576px) {\n .sm\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 768px) {\n .md\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 768px) {\n .md\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1024px) {\n .lg\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1024px) {\n .lg\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1280px) {\n .xl\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1280px) {\n .xl\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n}\n@layer helpers {\n .theme-primary {\n --theme-base: var(--primary-base);\n --theme-fg: var(--primary-fg);\n --theme-fg-emphasis: var(--primary-fg-emphasis);\n --theme-bg: var(--primary-bg);\n --theme-bg-subtle: var(--primary-bg-subtle);\n --theme-bg-muted: var(--primary-bg-muted);\n --theme-border: var(--primary-border);\n --theme-focus-ring: var(--primary-focus-ring);\n --theme-contrast: var(--primary-contrast);\n }\n .theme-accent {\n --theme-base: var(--accent-base);\n --theme-fg: var(--accent-fg);\n --theme-fg-emphasis: var(--accent-fg-emphasis);\n --theme-bg: var(--accent-bg);\n --theme-bg-subtle: var(--accent-bg-subtle);\n --theme-bg-muted: var(--accent-bg-muted);\n --theme-border: var(--accent-border);\n --theme-focus-ring: var(--accent-focus-ring);\n --theme-contrast: var(--accent-contrast);\n }\n .theme-success {\n --theme-base: var(--success-base);\n --theme-fg: var(--success-fg);\n --theme-fg-emphasis: var(--success-fg-emphasis);\n --theme-bg: var(--success-bg);\n --theme-bg-subtle: var(--success-bg-subtle);\n --theme-bg-muted: var(--success-bg-muted);\n --theme-border: var(--success-border);\n --theme-focus-ring: var(--success-focus-ring);\n --theme-contrast: var(--success-contrast);\n }\n .theme-danger {\n --theme-base: var(--danger-base);\n --theme-fg: var(--danger-fg);\n --theme-fg-emphasis: var(--danger-fg-emphasis);\n --theme-bg: var(--danger-bg);\n --theme-bg-subtle: var(--danger-bg-subtle);\n --theme-bg-muted: var(--danger-bg-muted);\n --theme-border: var(--danger-border);\n --theme-focus-ring: var(--danger-focus-ring);\n --theme-contrast: var(--danger-contrast);\n }\n .theme-warning {\n --theme-base: var(--warning-base);\n --theme-fg: var(--warning-fg);\n --theme-fg-emphasis: var(--warning-fg-emphasis);\n --theme-bg: var(--warning-bg);\n --theme-bg-subtle: var(--warning-bg-subtle);\n --theme-bg-muted: var(--warning-bg-muted);\n --theme-border: var(--warning-border);\n --theme-focus-ring: var(--warning-focus-ring);\n --theme-contrast: var(--warning-contrast);\n }\n .theme-info {\n --theme-base: var(--info-base);\n --theme-fg: var(--info-fg);\n --theme-fg-emphasis: var(--info-fg-emphasis);\n --theme-bg: var(--info-bg);\n --theme-bg-subtle: var(--info-bg-subtle);\n --theme-bg-muted: var(--info-bg-muted);\n --theme-border: var(--info-border);\n --theme-focus-ring: var(--info-focus-ring);\n --theme-contrast: var(--info-contrast);\n }\n .theme-inverse {\n --theme-base: var(--inverse-base);\n --theme-fg: var(--inverse-fg);\n --theme-fg-emphasis: var(--inverse-fg-emphasis);\n --theme-bg: var(--inverse-bg);\n --theme-bg-subtle: var(--inverse-bg-subtle);\n --theme-bg-muted: var(--inverse-bg-muted);\n --theme-border: var(--inverse-border);\n --theme-focus-ring: var(--inverse-focus-ring);\n --theme-contrast: var(--inverse-contrast);\n }\n .theme-secondary {\n --theme-base: var(--secondary-base);\n --theme-fg: var(--secondary-fg);\n --theme-fg-emphasis: var(--secondary-fg-emphasis);\n --theme-bg: var(--secondary-bg);\n --theme-bg-subtle: var(--secondary-bg-subtle);\n --theme-bg-muted: var(--secondary-bg-muted);\n --theme-border: var(--secondary-border);\n --theme-focus-ring: var(--secondary-focus-ring);\n --theme-contrast: var(--secondary-contrast);\n }\n}\n@layer helpers {\n .visually-hidden,\n .visually-hidden-focusable:not(:focus, :focus-within) {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n .visually-hidden:not(caption),\n .visually-hidden-focusable:not(:focus, :focus-within):not(caption) {\n position: absolute !important;\n }\n .visually-hidden *,\n .visually-hidden-focusable:not(:focus, :focus-within) * {\n overflow: hidden !important;\n }\n}\n@layer helpers {\n .stretched-link::after {\n position: absolute;\n inset: 0;\n z-index: 1;\n content: \"\";\n }\n}\n@layer helpers {\n .text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n@layer helpers {\n .vr {\n display: inline-block;\n align-self: stretch;\n width: var(--vr-border-width, var(--border-width));\n min-height: 1em;\n background-color: var(--border-color);\n }\n}\n@layer utilities {\n .align-baseline {\n vertical-align: baseline;\n }\n .align-top {\n vertical-align: top;\n }\n .align-middle {\n vertical-align: middle;\n }\n .align-bottom {\n vertical-align: bottom;\n }\n .align-text-bottom {\n vertical-align: text-bottom;\n }\n .align-text-top {\n vertical-align: text-top;\n }\n [class*=ratio-] {\n aspect-ratio: var(--ratio);\n }\n .ratio-auto {\n --ratio: auto;\n }\n .ratio-1x1 {\n --ratio: 1 / 1;\n }\n .ratio-4x3 {\n --ratio: 4 / 3;\n }\n .ratio-16x9 {\n --ratio: 16 / 9;\n }\n .ratio-21x9 {\n --ratio: 21 / 9;\n }\n .float-start {\n float: inline-start;\n }\n .float-end {\n float: inline-end;\n }\n .float-none {\n float: none;\n }\n .object-fit-contain {\n object-fit: contain;\n }\n .object-fit-cover {\n object-fit: cover;\n }\n .object-fit-fill {\n object-fit: fill;\n }\n .object-fit-scale {\n object-fit: scale-down;\n }\n .object-fit-none {\n object-fit: none;\n }\n .opacity-0 {\n opacity: 0;\n }\n .opacity-25 {\n opacity: 0.25;\n }\n .opacity-50 {\n opacity: 0.5;\n }\n .opacity-75 {\n opacity: 0.75;\n }\n .opacity-100 {\n opacity: 1;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-visible {\n overflow: visible;\n }\n .overflow-scroll {\n overflow: scroll;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-x-visible {\n overflow-x: visible;\n }\n .overflow-x-scroll {\n overflow-x: scroll;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .overflow-y-hidden {\n overflow-y: hidden;\n }\n .overflow-y-visible {\n overflow-y: visible;\n }\n .overflow-y-scroll {\n overflow-y: scroll;\n }\n .contains-inline {\n container-type: inline-size;\n }\n .contains-size {\n container-type: size;\n }\n .d-inline {\n display: inline;\n }\n .d-inline-block {\n display: inline-block;\n }\n .d-block {\n display: block;\n }\n .d-grid {\n display: grid;\n }\n .d-inline-grid {\n display: inline-grid;\n }\n .d-table {\n display: table;\n }\n .d-table-row {\n display: table-row;\n }\n .d-table-cell {\n display: table-cell;\n }\n .d-flex {\n display: flex;\n }\n .d-inline-flex {\n display: inline-flex;\n }\n .d-contents {\n display: contents;\n }\n .d-flow-root {\n display: flow-root;\n }\n .d-none {\n display: none;\n }\n .shadow {\n box-shadow: var(--box-shadow);\n }\n .shadow-sm {\n box-shadow: var(--box-shadow-sm);\n }\n .shadow-lg {\n box-shadow: var(--box-shadow-lg);\n }\n .shadow-none {\n box-shadow: none;\n }\n .position-static {\n position: static;\n }\n .position-relative {\n position: relative;\n }\n .position-absolute {\n position: absolute;\n }\n .position-fixed {\n position: fixed;\n }\n .position-sticky {\n position: sticky;\n }\n .top-0 {\n top: 0;\n }\n .top-50 {\n top: 50%;\n }\n .top-100 {\n top: 100%;\n }\n .bottom-0 {\n bottom: 0;\n }\n .bottom-50 {\n bottom: 50%;\n }\n .bottom-100 {\n bottom: 100%;\n }\n .start-0 {\n inset-inline-start: 0;\n }\n .start-50 {\n inset-inline-start: 50%;\n }\n .start-100 {\n inset-inline-start: 100%;\n }\n .end-0 {\n inset-inline-end: 0;\n }\n .end-50 {\n inset-inline-end: 50%;\n }\n .end-100 {\n inset-inline-end: 100%;\n }\n .translate-middle {\n transform: translate(-50%, -50%);\n }\n .translate-middle-x {\n transform: translateX(-50%);\n }\n .translate-middle-y {\n transform: translateY(-50%);\n }\n .border {\n border: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-0 {\n border: 0;\n }\n .border-top {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-top-0 {\n border-block-start: 0;\n }\n .border-end {\n border-inline-end: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-end-0 {\n border-inline-end: 0;\n }\n .border-bottom {\n border-block-end: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-bottom-0 {\n border-block-end: 0;\n }\n .border-start {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-start-0 {\n border-inline-start: 0;\n }\n .border-y {\n border-block: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-y-0 {\n border-block: 0;\n }\n .border-x {\n border-inline: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-x-0 {\n border-inline: 0;\n }\n .border-primary {\n --border-color: var(--primary-bg);\n border-color: var(--border-color);\n }\n .border-accent {\n --border-color: var(--accent-bg);\n border-color: var(--border-color);\n }\n .border-success {\n --border-color: var(--success-bg);\n border-color: var(--border-color);\n }\n .border-danger {\n --border-color: var(--danger-bg);\n border-color: var(--border-color);\n }\n .border-warning {\n --border-color: var(--warning-bg);\n border-color: var(--border-color);\n }\n .border-info {\n --border-color: var(--info-bg);\n border-color: var(--border-color);\n }\n .border-inverse {\n --border-color: var(--inverse-bg);\n border-color: var(--border-color);\n }\n .border-secondary {\n --border-color: var(--secondary-bg);\n border-color: var(--border-color);\n }\n .border-bg {\n --border-color: var(--border-bg);\n border-color: var(--border-color);\n }\n .border-body {\n --border-color: var(--border-body);\n border-color: var(--border-color);\n }\n .border-muted {\n --border-color: var(--border-muted);\n border-color: var(--border-color);\n }\n .border-subtle {\n --border-color: var(--border-subtle);\n border-color: var(--border-color);\n }\n .border-emphasized {\n --border-color: var(--border-emphasized);\n border-color: var(--border-color);\n }\n .border-white {\n --border-color: var(--border-white);\n border-color: var(--border-color);\n }\n .border-black {\n --border-color: var(--border-black);\n border-color: var(--border-color);\n }\n .border-subtle-primary {\n --border-color: var(--primary-border);\n border-color: var(--border-color);\n }\n .border-subtle-accent {\n --border-color: var(--accent-border);\n border-color: var(--border-color);\n }\n .border-subtle-success {\n --border-color: var(--success-border);\n border-color: var(--border-color);\n }\n .border-subtle-danger {\n --border-color: var(--danger-border);\n border-color: var(--border-color);\n }\n .border-subtle-warning {\n --border-color: var(--warning-border);\n border-color: var(--border-color);\n }\n .border-subtle-info {\n --border-color: var(--info-border);\n border-color: var(--border-color);\n }\n .border-subtle-inverse {\n --border-color: var(--inverse-border);\n border-color: var(--border-color);\n }\n .border-subtle-secondary {\n --border-color: var(--secondary-border);\n border-color: var(--border-color);\n }\n .border-1 {\n border-width: 1px;\n }\n .border-2 {\n border-width: 2px;\n }\n .border-3 {\n border-width: 3px;\n }\n .border-4 {\n border-width: 4px;\n }\n .border-5 {\n border-width: 5px;\n }\n .border-10 {\n border-color: color-mix(in oklch, var(--border-color) 10%, transparent);\n }\n .border-20 {\n border-color: color-mix(in oklch, var(--border-color) 20%, transparent);\n }\n .border-30 {\n border-color: color-mix(in oklch, var(--border-color) 30%, transparent);\n }\n .border-40 {\n border-color: color-mix(in oklch, var(--border-color) 40%, transparent);\n }\n .border-50 {\n border-color: color-mix(in oklch, var(--border-color) 50%, transparent);\n }\n .border-60 {\n border-color: color-mix(in oklch, var(--border-color) 60%, transparent);\n }\n .border-70 {\n border-color: color-mix(in oklch, var(--border-color) 70%, transparent);\n }\n .border-80 {\n border-color: color-mix(in oklch, var(--border-color) 80%, transparent);\n }\n .border-90 {\n border-color: color-mix(in oklch, var(--border-color) 90%, transparent);\n }\n .border-100 {\n border-color: var(--border-color);\n }\n .w-1 {\n width: 1rem;\n }\n .w-2 {\n width: 2rem;\n }\n .w-3 {\n width: 3rem;\n }\n .w-4 {\n width: 4rem;\n }\n .w-5 {\n width: 5rem;\n }\n .w-6 {\n width: 6rem;\n }\n .w-7 {\n width: 7rem;\n }\n .w-8 {\n width: 8rem;\n }\n .w-9 {\n width: 9rem;\n }\n .w-10 {\n width: 10rem;\n }\n .w-11 {\n width: 11rem;\n }\n .w-12 {\n width: 12rem;\n }\n .w-25 {\n width: 25%;\n }\n .w-50 {\n width: 50%;\n }\n .w-75 {\n width: 75%;\n }\n .w-100 {\n width: 100%;\n }\n .w-auto {\n width: auto;\n }\n .w-min {\n width: min-content;\n }\n .w-max {\n width: max-content;\n }\n .w-fit {\n width: fit-content;\n }\n .max-w-100 {\n max-width: 100%;\n }\n .min-w-0 {\n min-width: 0;\n }\n .min-w-100 {\n min-width: 100%;\n }\n .vw-100 {\n width: 100vw;\n }\n .min-vw-100 {\n min-width: 100vw;\n }\n .h-25 {\n height: 25%;\n }\n .h-50 {\n height: 50%;\n }\n .h-75 {\n height: 75%;\n }\n .h-100 {\n height: 100%;\n }\n .h-auto {\n height: auto;\n }\n .h-min {\n height: min-content;\n }\n .h-max {\n height: max-content;\n }\n .h-fit {\n height: fit-content;\n }\n .max-h-100 {\n max-height: 100%;\n }\n .min-h-0 {\n min-height: 0;\n }\n .min-h-100 {\n min-height: 100%;\n }\n .vh-100 {\n height: 100vh;\n }\n .min-vh-100 {\n min-height: 100vh;\n }\n .flex-fill {\n flex: 1 1 auto;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-column {\n flex-direction: column;\n }\n .flex-row-reverse {\n flex-direction: row-reverse;\n }\n .flex-column-reverse {\n flex-direction: column-reverse;\n }\n .flex-grow-0 {\n flex-grow: 0;\n }\n .flex-grow-1 {\n flex-grow: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .flex-shrink-1 {\n flex-shrink: 1;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .flex-nowrap {\n flex-wrap: nowrap;\n }\n .flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .justify-content-start {\n justify-content: flex-start;\n }\n .justify-content-end {\n justify-content: flex-end;\n }\n .justify-content-center {\n justify-content: center;\n }\n .justify-content-between {\n justify-content: space-between;\n }\n .justify-content-around {\n justify-content: space-around;\n }\n .justify-content-evenly {\n justify-content: space-evenly;\n }\n .justify-items-start {\n justify-items: start;\n }\n .justify-items-end {\n justify-items: end;\n }\n .justify-items-center {\n justify-items: center;\n }\n .justify-items-stretch {\n justify-items: stretch;\n }\n .justify-self-start {\n justify-self: start;\n }\n .justify-self-end {\n justify-self: end;\n }\n .justify-self-center {\n justify-self: center;\n }\n .align-items-start {\n align-items: flex-start;\n }\n .align-items-end {\n align-items: flex-end;\n }\n .align-items-center {\n align-items: center;\n }\n .align-items-baseline {\n align-items: baseline;\n }\n .align-items-stretch {\n align-items: stretch;\n }\n .align-content-start {\n align-content: flex-start;\n }\n .align-content-end {\n align-content: flex-end;\n }\n .align-content-center {\n align-content: center;\n }\n .align-content-between {\n align-content: space-between;\n }\n .align-content-around {\n align-content: space-around;\n }\n .align-content-stretch {\n align-content: stretch;\n }\n .align-self-auto {\n align-self: auto;\n }\n .align-self-start {\n align-self: flex-start;\n }\n .align-self-end {\n align-self: flex-end;\n }\n .align-self-center {\n align-self: center;\n }\n .align-self-baseline {\n align-self: baseline;\n }\n .align-self-stretch {\n align-self: stretch;\n }\n .place-items-start {\n place-items: start;\n }\n .place-items-end {\n place-items: end;\n }\n .place-items-center {\n place-items: center;\n }\n .place-items-stretch {\n place-items: stretch;\n }\n .grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .grid-cols-fill {\n grid-column: 1 / -1;\n }\n .grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .order-first {\n order: -1;\n }\n .order-0 {\n order: 0;\n }\n .order-1 {\n order: 1;\n }\n .order-2 {\n order: 2;\n }\n .order-3 {\n order: 3;\n }\n .order-4 {\n order: 4;\n }\n .order-5 {\n order: 5;\n }\n .order-last {\n order: 6;\n }\n .m-0 {\n margin: 0;\n }\n .m-1 {\n margin: 0.25rem;\n }\n .m-2 {\n margin: 0.5rem;\n }\n .m-3 {\n margin: 0.75rem;\n }\n .m-4 {\n margin: 1rem;\n }\n .m-5 {\n margin: 1.25rem;\n }\n .m-6 {\n margin: 1.5rem;\n }\n .m-7 {\n margin: 2rem;\n }\n .m-8 {\n margin: 2.5rem;\n }\n .m-9 {\n margin: 3rem;\n }\n .m-auto {\n margin: auto;\n }\n .mx-0 {\n margin-inline: 0;\n }\n .mx-1 {\n margin-inline: 0.25rem;\n }\n .mx-2 {\n margin-inline: 0.5rem;\n }\n .mx-3 {\n margin-inline: 0.75rem;\n }\n .mx-4 {\n margin-inline: 1rem;\n }\n .mx-5 {\n margin-inline: 1.25rem;\n }\n .mx-6 {\n margin-inline: 1.5rem;\n }\n .mx-7 {\n margin-inline: 2rem;\n }\n .mx-8 {\n margin-inline: 2.5rem;\n }\n .mx-9 {\n margin-inline: 3rem;\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-0 {\n margin-block: 0;\n }\n .my-1 {\n margin-block: 0.25rem;\n }\n .my-2 {\n margin-block: 0.5rem;\n }\n .my-3 {\n margin-block: 0.75rem;\n }\n .my-4 {\n margin-block: 1rem;\n }\n .my-5 {\n margin-block: 1.25rem;\n }\n .my-6 {\n margin-block: 1.5rem;\n }\n .my-7 {\n margin-block: 2rem;\n }\n .my-8 {\n margin-block: 2.5rem;\n }\n .my-9 {\n margin-block: 3rem;\n }\n .my-auto {\n margin-block: auto;\n }\n .mt-0 {\n margin-block-start: 0;\n }\n .mt-1 {\n margin-block-start: 0.25rem;\n }\n .mt-2 {\n margin-block-start: 0.5rem;\n }\n .mt-3 {\n margin-block-start: 0.75rem;\n }\n .mt-4 {\n margin-block-start: 1rem;\n }\n .mt-5 {\n margin-block-start: 1.25rem;\n }\n .mt-6 {\n margin-block-start: 1.5rem;\n }\n .mt-7 {\n margin-block-start: 2rem;\n }\n .mt-8 {\n margin-block-start: 2.5rem;\n }\n .mt-9 {\n margin-block-start: 3rem;\n }\n .mt-auto {\n margin-block-start: auto;\n }\n .me-0 {\n margin-inline-end: 0;\n }\n .me-1 {\n margin-inline-end: 0.25rem;\n }\n .me-2 {\n margin-inline-end: 0.5rem;\n }\n .me-3 {\n margin-inline-end: 0.75rem;\n }\n .me-4 {\n margin-inline-end: 1rem;\n }\n .me-5 {\n margin-inline-end: 1.25rem;\n }\n .me-6 {\n margin-inline-end: 1.5rem;\n }\n .me-7 {\n margin-inline-end: 2rem;\n }\n .me-8 {\n margin-inline-end: 2.5rem;\n }\n .me-9 {\n margin-inline-end: 3rem;\n }\n .me--1 {\n margin-inline-end: -0.25rem;\n }\n .me--2 {\n margin-inline-end: -0.5rem;\n }\n .me-auto {\n margin-inline-end: auto;\n }\n .mb-0 {\n margin-block-end: 0;\n }\n .mb-1 {\n margin-block-end: 0.25rem;\n }\n .mb-2 {\n margin-block-end: 0.5rem;\n }\n .mb-3 {\n margin-block-end: 0.75rem;\n }\n .mb-4 {\n margin-block-end: 1rem;\n }\n .mb-5 {\n margin-block-end: 1.25rem;\n }\n .mb-6 {\n margin-block-end: 1.5rem;\n }\n .mb-7 {\n margin-block-end: 2rem;\n }\n .mb-8 {\n margin-block-end: 2.5rem;\n }\n .mb-9 {\n margin-block-end: 3rem;\n }\n .mb-auto {\n margin-block-end: auto;\n }\n .ms-0 {\n margin-inline-start: 0;\n }\n .ms-1 {\n margin-inline-start: 0.25rem;\n }\n .ms-2 {\n margin-inline-start: 0.5rem;\n }\n .ms-3 {\n margin-inline-start: 0.75rem;\n }\n .ms-4 {\n margin-inline-start: 1rem;\n }\n .ms-5 {\n margin-inline-start: 1.25rem;\n }\n .ms-6 {\n margin-inline-start: 1.5rem;\n }\n .ms-7 {\n margin-inline-start: 2rem;\n }\n .ms-8 {\n margin-inline-start: 2.5rem;\n }\n .ms-9 {\n margin-inline-start: 3rem;\n }\n .ms--1 {\n margin-inline-start: -0.25rem;\n }\n .ms--2 {\n margin-inline-start: -0.5rem;\n }\n .ms-auto {\n margin-inline-start: auto;\n }\n .p-0 {\n padding: 0;\n }\n .p-1 {\n padding: 0.25rem;\n }\n .p-2 {\n padding: 0.5rem;\n }\n .p-3 {\n padding: 0.75rem;\n }\n .p-4 {\n padding: 1rem;\n }\n .p-5 {\n padding: 1.25rem;\n }\n .p-6 {\n padding: 1.5rem;\n }\n .p-7 {\n padding: 2rem;\n }\n .p-8 {\n padding: 2.5rem;\n }\n .p-9 {\n padding: 3rem;\n }\n .px-0 {\n padding-inline: 0;\n }\n .px-1 {\n padding-inline: 0.25rem;\n }\n .px-2 {\n padding-inline: 0.5rem;\n }\n .px-3 {\n padding-inline: 0.75rem;\n }\n .px-4 {\n padding-inline: 1rem;\n }\n .px-5 {\n padding-inline: 1.25rem;\n }\n .px-6 {\n padding-inline: 1.5rem;\n }\n .px-7 {\n padding-inline: 2rem;\n }\n .px-8 {\n padding-inline: 2.5rem;\n }\n .px-9 {\n padding-inline: 3rem;\n }\n .py-0 {\n padding-block: 0;\n }\n .py-1 {\n padding-block: 0.25rem;\n }\n .py-2 {\n padding-block: 0.5rem;\n }\n .py-3 {\n padding-block: 0.75rem;\n }\n .py-4 {\n padding-block: 1rem;\n }\n .py-5 {\n padding-block: 1.25rem;\n }\n .py-6 {\n padding-block: 1.5rem;\n }\n .py-7 {\n padding-block: 2rem;\n }\n .py-8 {\n padding-block: 2.5rem;\n }\n .py-9 {\n padding-block: 3rem;\n }\n .pt-0 {\n padding-block-start: 0;\n }\n .pt-1 {\n padding-block-start: 0.25rem;\n }\n .pt-2 {\n padding-block-start: 0.5rem;\n }\n .pt-3 {\n padding-block-start: 0.75rem;\n }\n .pt-4 {\n padding-block-start: 1rem;\n }\n .pt-5 {\n padding-block-start: 1.25rem;\n }\n .pt-6 {\n padding-block-start: 1.5rem;\n }\n .pt-7 {\n padding-block-start: 2rem;\n }\n .pt-8 {\n padding-block-start: 2.5rem;\n }\n .pt-9 {\n padding-block-start: 3rem;\n }\n .pe-0 {\n padding-inline-end: 0;\n }\n .pe-1 {\n padding-inline-end: 0.25rem;\n }\n .pe-2 {\n padding-inline-end: 0.5rem;\n }\n .pe-3 {\n padding-inline-end: 0.75rem;\n }\n .pe-4 {\n padding-inline-end: 1rem;\n }\n .pe-5 {\n padding-inline-end: 1.25rem;\n }\n .pe-6 {\n padding-inline-end: 1.5rem;\n }\n .pe-7 {\n padding-inline-end: 2rem;\n }\n .pe-8 {\n padding-inline-end: 2.5rem;\n }\n .pe-9 {\n padding-inline-end: 3rem;\n }\n .pb-0 {\n padding-block-end: 0;\n }\n .pb-1 {\n padding-block-end: 0.25rem;\n }\n .pb-2 {\n padding-block-end: 0.5rem;\n }\n .pb-3 {\n padding-block-end: 0.75rem;\n }\n .pb-4 {\n padding-block-end: 1rem;\n }\n .pb-5 {\n padding-block-end: 1.25rem;\n }\n .pb-6 {\n padding-block-end: 1.5rem;\n }\n .pb-7 {\n padding-block-end: 2rem;\n }\n .pb-8 {\n padding-block-end: 2.5rem;\n }\n .pb-9 {\n padding-block-end: 3rem;\n }\n .ps-0 {\n padding-inline-start: 0;\n }\n .ps-1 {\n padding-inline-start: 0.25rem;\n }\n .ps-2 {\n padding-inline-start: 0.5rem;\n }\n .ps-3 {\n padding-inline-start: 0.75rem;\n }\n .ps-4 {\n padding-inline-start: 1rem;\n }\n .ps-5 {\n padding-inline-start: 1.25rem;\n }\n .ps-6 {\n padding-inline-start: 1.5rem;\n }\n .ps-7 {\n padding-inline-start: 2rem;\n }\n .ps-8 {\n padding-inline-start: 2.5rem;\n }\n .ps-9 {\n padding-inline-start: 3rem;\n }\n .gap-0 {\n gap: 0;\n }\n .gap-1 {\n gap: 0.25rem;\n }\n .gap-2 {\n gap: 0.5rem;\n }\n .gap-3 {\n gap: 0.75rem;\n }\n .gap-4 {\n gap: 1rem;\n }\n .gap-5 {\n gap: 1.25rem;\n }\n .gap-6 {\n gap: 1.5rem;\n }\n .gap-7 {\n gap: 2rem;\n }\n .gap-8 {\n gap: 2.5rem;\n }\n .gap-9 {\n gap: 3rem;\n }\n .row-gap-0 {\n row-gap: 0;\n }\n .row-gap-1 {\n row-gap: 0.25rem;\n }\n .row-gap-2 {\n row-gap: 0.5rem;\n }\n .row-gap-3 {\n row-gap: 0.75rem;\n }\n .row-gap-4 {\n row-gap: 1rem;\n }\n .row-gap-5 {\n row-gap: 1.25rem;\n }\n .row-gap-6 {\n row-gap: 1.5rem;\n }\n .row-gap-7 {\n row-gap: 2rem;\n }\n .row-gap-8 {\n row-gap: 2.5rem;\n }\n .row-gap-9 {\n row-gap: 3rem;\n }\n .column-gap-0 {\n column-gap: 0;\n }\n .column-gap-1 {\n column-gap: 0.25rem;\n }\n .column-gap-2 {\n column-gap: 0.5rem;\n }\n .column-gap-3 {\n column-gap: 0.75rem;\n }\n .column-gap-4 {\n column-gap: 1rem;\n }\n .column-gap-5 {\n column-gap: 1.25rem;\n }\n .column-gap-6 {\n column-gap: 1.5rem;\n }\n .column-gap-7 {\n column-gap: 2rem;\n }\n .column-gap-8 {\n column-gap: 2.5rem;\n }\n .column-gap-9 {\n column-gap: 3rem;\n }\n :where(.space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .font-monospace {\n font-family: var(--font-mono);\n }\n .font-body {\n font-family: var(--body-font-family);\n }\n .fs-xs {\n font-size: 0.75rem;\n }\n .fs-sm {\n font-size: 0.875rem;\n }\n .fs-md {\n font-size: 1rem;\n }\n .fs-lg {\n font-size: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n }\n .fs-xl {\n font-size: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n }\n .fs-2xl {\n font-size: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n }\n .fs-3xl {\n font-size: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n }\n .fs-4xl {\n font-size: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n }\n .fs-5xl {\n font-size: clamp(3rem, 2rem + 5vw, 4rem);\n }\n .fs-6xl {\n font-size: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n }\n .text-xs {\n font-size: 0.75rem;\n line-height: 1.25;\n }\n .text-sm {\n font-size: 0.875rem;\n line-height: 1.5;\n }\n .text-md {\n font-size: 1rem;\n line-height: 1.5;\n }\n .text-lg {\n font-size: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n line-height: 1.5;\n }\n .text-xl {\n font-size: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n line-height: 1.4285714286;\n }\n .text-2xl {\n font-size: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n line-height: 1.3333333333;\n }\n .text-3xl {\n font-size: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n line-height: 1.2;\n }\n .text-4xl {\n font-size: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n line-height: 1.1;\n }\n .text-5xl {\n font-size: clamp(3rem, 2rem + 5vw, 4rem);\n line-height: 1.1;\n }\n .text-6xl {\n font-size: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n line-height: 1;\n }\n .fst-italic {\n font-style: italic;\n }\n .fst-normal {\n font-style: normal;\n }\n .fw-lighter {\n font-weight: lighter;\n }\n .fw-light {\n font-weight: 300;\n }\n .fw-normal {\n font-weight: 400;\n }\n .fw-medium {\n font-weight: 500;\n }\n .fw-semibold {\n font-weight: 600;\n }\n .fw-bold {\n font-weight: 700;\n }\n .fw-bolder {\n font-weight: bolder;\n }\n .lh-1 {\n line-height: 1;\n }\n .lh-sm {\n line-height: 1.25;\n }\n .lh-base {\n line-height: 1.5;\n }\n .lh-lg {\n line-height: 2;\n }\n .text-start {\n text-align: start;\n }\n .text-end {\n text-align: end;\n }\n .text-center {\n text-align: center;\n }\n .text-decoration-none {\n text-decoration: none;\n }\n .text-decoration-underline {\n text-decoration: underline;\n }\n .text-decoration-line-through {\n text-decoration: line-through;\n }\n .text-lowercase {\n text-transform: lowercase;\n }\n .text-uppercase {\n text-transform: uppercase;\n }\n .text-capitalize {\n text-transform: capitalize;\n }\n .text-wrap {\n text-wrap: wrap;\n }\n .text-nowrap {\n text-wrap: nowrap;\n }\n .text-balance {\n text-wrap: balance;\n }\n .text-pretty {\n text-wrap: pretty;\n }\n .text-break {\n word-wrap: break-word;\n word-break: break-word;\n }\n .fg-primary {\n --fg: var(--primary-fg);\n color: var(--fg);\n }\n .fg-accent {\n --fg: var(--accent-fg);\n color: var(--fg);\n }\n .fg-success {\n --fg: var(--success-fg);\n color: var(--fg);\n }\n .fg-danger {\n --fg: var(--danger-fg);\n color: var(--fg);\n }\n .fg-warning {\n --fg: var(--warning-fg);\n color: var(--fg);\n }\n .fg-info {\n --fg: var(--info-fg);\n color: var(--fg);\n }\n .fg-inverse {\n --fg: var(--inverse-fg);\n color: var(--fg);\n }\n .fg-secondary {\n --fg: var(--secondary-fg);\n color: var(--fg);\n }\n .fg-body {\n --fg: var(--fg-body);\n color: var(--fg);\n }\n .fg-1 {\n --fg: var(--fg-1);\n color: var(--fg);\n }\n .fg-2 {\n --fg: var(--fg-2);\n color: var(--fg);\n }\n .fg-3 {\n --fg: var(--fg-3);\n color: var(--fg);\n }\n .fg-4 {\n --fg: var(--fg-4);\n color: var(--fg);\n }\n .fg-bg {\n --fg: var(--fg-bg);\n color: var(--fg);\n }\n .fg-white {\n --fg: var(--fg-white);\n color: var(--fg);\n }\n .fg-black {\n --fg: var(--fg-black);\n color: var(--fg);\n }\n .fg-emphasis-primary {\n --fg: var(--primary-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-accent {\n --fg: var(--accent-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-success {\n --fg: var(--success-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-danger {\n --fg: var(--danger-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-warning {\n --fg: var(--warning-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-info {\n --fg: var(--info-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-inverse {\n --fg: var(--inverse-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-secondary {\n --fg: var(--secondary-fg-emphasis);\n color: var(--fg);\n }\n .fg-contrast-primary {\n --fg: var(--primary-contrast);\n color: var(--fg);\n }\n .fg-contrast-accent {\n --fg: var(--accent-contrast);\n color: var(--fg);\n }\n .fg-contrast-success {\n --fg: var(--success-contrast);\n color: var(--fg);\n }\n .fg-contrast-danger {\n --fg: var(--danger-contrast);\n color: var(--fg);\n }\n .fg-contrast-warning {\n --fg: var(--warning-contrast);\n color: var(--fg);\n }\n .fg-contrast-info {\n --fg: var(--info-contrast);\n color: var(--fg);\n }\n .fg-contrast-inverse {\n --fg: var(--inverse-contrast);\n color: var(--fg);\n }\n .fg-contrast-secondary {\n --fg: var(--secondary-contrast);\n color: var(--fg);\n }\n .fg-10 {\n color: color-mix(in oklch, var(--fg) 10%, transparent);\n }\n .fg-20 {\n color: color-mix(in oklch, var(--fg) 20%, transparent);\n }\n .fg-30 {\n color: color-mix(in oklch, var(--fg) 30%, transparent);\n }\n .fg-40 {\n color: color-mix(in oklch, var(--fg) 40%, transparent);\n }\n .fg-50 {\n color: color-mix(in oklch, var(--fg) 50%, transparent);\n }\n .fg-60 {\n color: color-mix(in oklch, var(--fg) 60%, transparent);\n }\n .fg-70 {\n color: color-mix(in oklch, var(--fg) 70%, transparent);\n }\n .fg-80 {\n color: color-mix(in oklch, var(--fg) 80%, transparent);\n }\n .fg-90 {\n color: color-mix(in oklch, var(--fg) 90%, transparent);\n }\n .fg-100 {\n color: var(--fg);\n }\n .link-10 {\n color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .hover\\:link-10:hover {\n color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .link-20 {\n color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .hover\\:link-20:hover {\n color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .link-30 {\n color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .hover\\:link-30:hover {\n color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .link-40 {\n color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .hover\\:link-40:hover {\n color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .link-50 {\n color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .hover\\:link-50:hover {\n color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .link-60 {\n color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .hover\\:link-60:hover {\n color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .link-70 {\n color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .hover\\:link-70:hover {\n color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .link-80 {\n color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .hover\\:link-80:hover {\n color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .link-90 {\n color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .hover\\:link-90:hover {\n color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .link-100 {\n color: var(--link-color);\n }\n .hover\\:link-100:hover {\n color: var(--link-color);\n }\n .underline-offset-1 {\n text-underline-offset: 0.125em;\n }\n .hover\\:underline-offset-1:hover {\n text-underline-offset: 0.125em;\n }\n .underline-offset-2 {\n text-underline-offset: 0.25em;\n }\n .hover\\:underline-offset-2:hover {\n text-underline-offset: 0.25em;\n }\n .underline-offset-3 {\n text-underline-offset: 0.375em;\n }\n .hover\\:underline-offset-3:hover {\n text-underline-offset: 0.375em;\n }\n .underline-primary {\n text-decoration-color: light-dark(var(--blue-600), var(--blue-400));\n }\n .underline-accent {\n text-decoration-color: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n }\n .underline-success {\n text-decoration-color: light-dark(var(--green-600), var(--green-400));\n }\n .underline-danger {\n text-decoration-color: light-dark(var(--red-600), var(--red-400));\n }\n .underline-warning {\n text-decoration-color: light-dark(var(--yellow-700), var(--yellow-400));\n }\n .underline-info {\n text-decoration-color: light-dark(var(--cyan-600), var(--cyan-400));\n }\n .underline-inverse {\n text-decoration-color: light-dark(var(--gray-900), var(--gray-200));\n }\n .underline-secondary {\n text-decoration-color: light-dark(var(--gray-600), var(--gray-400));\n }\n .underline-10 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .hover\\:underline-10:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .underline-20 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .hover\\:underline-20:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .underline-30 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .hover\\:underline-30:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .underline-40 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .hover\\:underline-40:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .underline-50 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .hover\\:underline-50:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .underline-60 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .hover\\:underline-60:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .underline-70 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .hover\\:underline-70:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .underline-80 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .hover\\:underline-80:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .underline-90 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .hover\\:underline-90:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .underline-100 {\n text-decoration-color: var(--link-color);\n }\n .hover\\:underline-100:hover {\n text-decoration-color: var(--link-color);\n }\n .underline-thickness-1 {\n text-decoration-thickness: 1px;\n }\n .hover\\:underline-thickness-1:hover {\n text-decoration-thickness: 1px;\n }\n .underline-thickness-2 {\n text-decoration-thickness: 2px;\n }\n .hover\\:underline-thickness-2:hover {\n text-decoration-thickness: 2px;\n }\n .underline-thickness-3 {\n text-decoration-thickness: 3px;\n }\n .hover\\:underline-thickness-3:hover {\n text-decoration-thickness: 3px;\n }\n .underline-thickness-4 {\n text-decoration-thickness: 4px;\n }\n .hover\\:underline-thickness-4:hover {\n text-decoration-thickness: 4px;\n }\n .underline-thickness-5 {\n text-decoration-thickness: 5px;\n }\n .hover\\:underline-thickness-5:hover {\n text-decoration-thickness: 5px;\n }\n .bg-primary {\n --bg: var(--primary-bg);\n background-color: var(--bg);\n }\n .bg-accent {\n --bg: var(--accent-bg);\n background-color: var(--bg);\n }\n .bg-success {\n --bg: var(--success-bg);\n background-color: var(--bg);\n }\n .bg-danger {\n --bg: var(--danger-bg);\n background-color: var(--bg);\n }\n .bg-warning {\n --bg: var(--warning-bg);\n background-color: var(--bg);\n }\n .bg-info {\n --bg: var(--info-bg);\n background-color: var(--bg);\n }\n .bg-inverse {\n --bg: var(--inverse-bg);\n background-color: var(--bg);\n }\n .bg-secondary {\n --bg: var(--secondary-bg);\n background-color: var(--bg);\n }\n .bg-body {\n --bg: var(--bg-body);\n background-color: var(--bg);\n }\n .bg-1 {\n --bg: var(--bg-1);\n background-color: var(--bg);\n }\n .bg-2 {\n --bg: var(--bg-2);\n background-color: var(--bg);\n }\n .bg-3 {\n --bg: var(--bg-3);\n background-color: var(--bg);\n }\n .bg-4 {\n --bg: var(--bg-4);\n background-color: var(--bg);\n }\n .bg-fg {\n --bg: var(--bg-fg);\n background-color: var(--bg);\n }\n .bg-white {\n --bg: var(--bg-white);\n background-color: var(--bg);\n }\n .bg-black {\n --bg: var(--bg-black);\n background-color: var(--bg);\n }\n .bg-transparent {\n --bg: var(--bg-transparent);\n background-color: var(--bg);\n }\n .bg-subtle-primary {\n --bg: var(--primary-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-accent {\n --bg: var(--accent-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-success {\n --bg: var(--success-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-danger {\n --bg: var(--danger-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-warning {\n --bg: var(--warning-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-info {\n --bg: var(--info-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-inverse {\n --bg: var(--inverse-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-secondary {\n --bg: var(--secondary-bg-subtle);\n background-color: var(--bg);\n }\n .bg-muted-primary {\n --bg: var(--primary-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-accent {\n --bg: var(--accent-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-success {\n --bg: var(--success-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-danger {\n --bg: var(--danger-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-warning {\n --bg: var(--warning-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-info {\n --bg: var(--info-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-inverse {\n --bg: var(--inverse-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-secondary {\n --bg: var(--secondary-bg-muted);\n background-color: var(--bg);\n }\n .bg-10 {\n background-color: color-mix(in oklch, var(--bg) 10%, transparent);\n }\n .bg-20 {\n background-color: color-mix(in oklch, var(--bg) 20%, transparent);\n }\n .bg-30 {\n background-color: color-mix(in oklch, var(--bg) 30%, transparent);\n }\n .bg-40 {\n background-color: color-mix(in oklch, var(--bg) 40%, transparent);\n }\n .bg-50 {\n background-color: color-mix(in oklch, var(--bg) 50%, transparent);\n }\n .bg-60 {\n background-color: color-mix(in oklch, var(--bg) 60%, transparent);\n }\n .bg-70 {\n background-color: color-mix(in oklch, var(--bg) 70%, transparent);\n }\n .bg-80 {\n background-color: color-mix(in oklch, var(--bg) 80%, transparent);\n }\n .bg-90 {\n background-color: color-mix(in oklch, var(--bg) 90%, transparent);\n }\n .bg-100 {\n background-color: var(--bg);\n }\n .theme-contrast {\n background-color: var(--theme-bg);\n color: var(--theme-contrast);\n }\n .theme-subtle {\n background-color: var(--theme-bg-subtle);\n color: var(--theme-fg);\n }\n .theme-muted {\n background-color: var(--theme-bg-muted);\n color: var(--theme-fg-emphasis);\n }\n .theme-border {\n border: var(--border-width) solid var(--theme-border);\n }\n .bg-gradient {\n background-image: var(--gradient);\n }\n .user-select-all {\n user-select: all;\n }\n .user-select-auto {\n user-select: auto;\n }\n .user-select-text {\n user-select: text;\n }\n .user-select-none {\n user-select: none;\n }\n .pe-none {\n pointer-events: none;\n }\n .pe-auto {\n pointer-events: auto;\n }\n .rounded-0 {\n --rounded-size: 0;\n border-radius: var(--rounded-size);\n }\n .rounded-1 {\n --rounded-size: 0.125rem;\n border-radius: var(--rounded-size);\n }\n .rounded-2 {\n --rounded-size: 0.1875rem;\n border-radius: var(--rounded-size);\n }\n .rounded-3 {\n --rounded-size: 0.25rem;\n border-radius: var(--rounded-size);\n }\n .rounded-4 {\n --rounded-size: 0.375rem;\n border-radius: var(--rounded-size);\n }\n .rounded-5 {\n --rounded-size: 0.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded-6 {\n --rounded-size: 0.625rem;\n border-radius: var(--rounded-size);\n }\n .rounded-7 {\n --rounded-size: 0.75rem;\n border-radius: var(--rounded-size);\n }\n .rounded-8 {\n --rounded-size: 1rem;\n border-radius: var(--rounded-size);\n }\n .rounded-9 {\n --rounded-size: 1.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded {\n --rounded-size: 0.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded-circle {\n --rounded-size: 50%;\n border-radius: var(--rounded-size);\n }\n .rounded-pill {\n --rounded-size: var(--radius-pill);\n border-radius: var(--rounded-size);\n }\n .rounded-size-0 {\n --rounded-size: 0;\n }\n .rounded-size-1 {\n --rounded-size: 0.125rem;\n }\n .rounded-size-2 {\n --rounded-size: 0.1875rem;\n }\n .rounded-size-3 {\n --rounded-size: 0.25rem;\n }\n .rounded-size-4 {\n --rounded-size: 0.375rem;\n }\n .rounded-size-5 {\n --rounded-size: 0.5rem;\n }\n .rounded-size-6 {\n --rounded-size: 0.625rem;\n }\n .rounded-size-7 {\n --rounded-size: 0.75rem;\n }\n .rounded-size-8 {\n --rounded-size: 1rem;\n }\n .rounded-size-9 {\n --rounded-size: 1.5rem;\n }\n .rounded-size {\n --rounded-size: 0.5rem;\n }\n .rounded-size-circle {\n --rounded-size: 50%;\n }\n .rounded-size-pill {\n --rounded-size: var(--radius-pill);\n }\n .rounded-top-0 {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n .rounded-top-1 {\n border-start-start-radius: 0.125rem;\n border-start-end-radius: 0.125rem;\n }\n .rounded-top-2 {\n border-start-start-radius: 0.1875rem;\n border-start-end-radius: 0.1875rem;\n }\n .rounded-top-3 {\n border-start-start-radius: 0.25rem;\n border-start-end-radius: 0.25rem;\n }\n .rounded-top-4 {\n border-start-start-radius: 0.375rem;\n border-start-end-radius: 0.375rem;\n }\n .rounded-top-5 {\n border-start-start-radius: 0.5rem;\n border-start-end-radius: 0.5rem;\n }\n .rounded-top-6 {\n border-start-start-radius: 0.625rem;\n border-start-end-radius: 0.625rem;\n }\n .rounded-top-7 {\n border-start-start-radius: 0.75rem;\n border-start-end-radius: 0.75rem;\n }\n .rounded-top-8 {\n border-start-start-radius: 1rem;\n border-start-end-radius: 1rem;\n }\n .rounded-top-9 {\n border-start-start-radius: 1.5rem;\n border-start-end-radius: 1.5rem;\n }\n .rounded-top {\n border-start-start-radius: var(--rounded-size, var(--radius-5));\n border-start-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-top-circle {\n border-start-start-radius: 50%;\n border-start-end-radius: 50%;\n }\n .rounded-top-pill {\n border-start-start-radius: var(--radius-pill);\n border-start-end-radius: var(--radius-pill);\n }\n .rounded-end-0 {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .rounded-end-1 {\n border-start-end-radius: 0.125rem;\n border-end-end-radius: 0.125rem;\n }\n .rounded-end-2 {\n border-start-end-radius: 0.1875rem;\n border-end-end-radius: 0.1875rem;\n }\n .rounded-end-3 {\n border-start-end-radius: 0.25rem;\n border-end-end-radius: 0.25rem;\n }\n .rounded-end-4 {\n border-start-end-radius: 0.375rem;\n border-end-end-radius: 0.375rem;\n }\n .rounded-end-5 {\n border-start-end-radius: 0.5rem;\n border-end-end-radius: 0.5rem;\n }\n .rounded-end-6 {\n border-start-end-radius: 0.625rem;\n border-end-end-radius: 0.625rem;\n }\n .rounded-end-7 {\n border-start-end-radius: 0.75rem;\n border-end-end-radius: 0.75rem;\n }\n .rounded-end-8 {\n border-start-end-radius: 1rem;\n border-end-end-radius: 1rem;\n }\n .rounded-end-9 {\n border-start-end-radius: 1.5rem;\n border-end-end-radius: 1.5rem;\n }\n .rounded-end {\n border-start-end-radius: var(--rounded-size, var(--radius-5));\n border-end-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-end-circle {\n border-start-end-radius: 50%;\n border-end-end-radius: 50%;\n }\n .rounded-end-pill {\n border-start-end-radius: var(--radius-pill);\n border-end-end-radius: var(--radius-pill);\n }\n .rounded-bottom-0 {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .rounded-bottom-1 {\n border-end-start-radius: 0.125rem;\n border-end-end-radius: 0.125rem;\n }\n .rounded-bottom-2 {\n border-end-start-radius: 0.1875rem;\n border-end-end-radius: 0.1875rem;\n }\n .rounded-bottom-3 {\n border-end-start-radius: 0.25rem;\n border-end-end-radius: 0.25rem;\n }\n .rounded-bottom-4 {\n border-end-start-radius: 0.375rem;\n border-end-end-radius: 0.375rem;\n }\n .rounded-bottom-5 {\n border-end-start-radius: 0.5rem;\n border-end-end-radius: 0.5rem;\n }\n .rounded-bottom-6 {\n border-end-start-radius: 0.625rem;\n border-end-end-radius: 0.625rem;\n }\n .rounded-bottom-7 {\n border-end-start-radius: 0.75rem;\n border-end-end-radius: 0.75rem;\n }\n .rounded-bottom-8 {\n border-end-start-radius: 1rem;\n border-end-end-radius: 1rem;\n }\n .rounded-bottom-9 {\n border-end-start-radius: 1.5rem;\n border-end-end-radius: 1.5rem;\n }\n .rounded-bottom {\n border-end-start-radius: var(--rounded-size, var(--radius-5));\n border-end-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-bottom-circle {\n border-end-start-radius: 50%;\n border-end-end-radius: 50%;\n }\n .rounded-bottom-pill {\n border-end-start-radius: var(--radius-pill);\n border-end-end-radius: var(--radius-pill);\n }\n .rounded-start-0 {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .rounded-start-1 {\n border-start-start-radius: 0.125rem;\n border-end-start-radius: 0.125rem;\n }\n .rounded-start-2 {\n border-start-start-radius: 0.1875rem;\n border-end-start-radius: 0.1875rem;\n }\n .rounded-start-3 {\n border-start-start-radius: 0.25rem;\n border-end-start-radius: 0.25rem;\n }\n .rounded-start-4 {\n border-start-start-radius: 0.375rem;\n border-end-start-radius: 0.375rem;\n }\n .rounded-start-5 {\n border-start-start-radius: 0.5rem;\n border-end-start-radius: 0.5rem;\n }\n .rounded-start-6 {\n border-start-start-radius: 0.625rem;\n border-end-start-radius: 0.625rem;\n }\n .rounded-start-7 {\n border-start-start-radius: 0.75rem;\n border-end-start-radius: 0.75rem;\n }\n .rounded-start-8 {\n border-start-start-radius: 1rem;\n border-end-start-radius: 1rem;\n }\n .rounded-start-9 {\n border-start-start-radius: 1.5rem;\n border-end-start-radius: 1.5rem;\n }\n .rounded-start {\n border-start-start-radius: var(--rounded-size, var(--radius-5));\n border-end-start-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-start-circle {\n border-start-start-radius: 50%;\n border-end-start-radius: 50%;\n }\n .rounded-start-pill {\n border-start-start-radius: var(--radius-pill);\n border-end-start-radius: var(--radius-pill);\n }\n .visible {\n visibility: visible;\n }\n .invisible {\n visibility: hidden;\n }\n .z-n1 {\n z-index: -1;\n }\n .z-0 {\n z-index: 0;\n }\n .z-1 {\n z-index: 1;\n }\n .z-2 {\n z-index: 2;\n }\n .z-3 {\n z-index: 3;\n }\n @media (width >= 576px) {\n .sm\\:float-start {\n float: inline-start;\n }\n .sm\\:float-end {\n float: inline-end;\n }\n .sm\\:float-none {\n float: none;\n }\n .sm\\:object-fit-contain {\n object-fit: contain;\n }\n .sm\\:object-fit-cover {\n object-fit: cover;\n }\n .sm\\:object-fit-fill {\n object-fit: fill;\n }\n .sm\\:object-fit-scale {\n object-fit: scale-down;\n }\n .sm\\:object-fit-none {\n object-fit: none;\n }\n .sm\\:d-inline {\n display: inline;\n }\n .sm\\:d-inline-block {\n display: inline-block;\n }\n .sm\\:d-block {\n display: block;\n }\n .sm\\:d-grid {\n display: grid;\n }\n .sm\\:d-inline-grid {\n display: inline-grid;\n }\n .sm\\:d-table {\n display: table;\n }\n .sm\\:d-table-row {\n display: table-row;\n }\n .sm\\:d-table-cell {\n display: table-cell;\n }\n .sm\\:d-flex {\n display: flex;\n }\n .sm\\:d-inline-flex {\n display: inline-flex;\n }\n .sm\\:d-contents {\n display: contents;\n }\n .sm\\:d-flow-root {\n display: flow-root;\n }\n .sm\\:d-none {\n display: none;\n }\n .sm\\:flex-fill {\n flex: 1 1 auto;\n }\n .sm\\:flex-row {\n flex-direction: row;\n }\n .sm\\:flex-column {\n flex-direction: column;\n }\n .sm\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .sm\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .sm\\:flex-grow-0 {\n flex-grow: 0;\n }\n .sm\\:flex-grow-1 {\n flex-grow: 1;\n }\n .sm\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .sm\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .sm\\:flex-wrap {\n flex-wrap: wrap;\n }\n .sm\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .sm\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .sm\\:justify-content-start {\n justify-content: flex-start;\n }\n .sm\\:justify-content-end {\n justify-content: flex-end;\n }\n .sm\\:justify-content-center {\n justify-content: center;\n }\n .sm\\:justify-content-between {\n justify-content: space-between;\n }\n .sm\\:justify-content-around {\n justify-content: space-around;\n }\n .sm\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .sm\\:justify-items-start {\n justify-items: start;\n }\n .sm\\:justify-items-end {\n justify-items: end;\n }\n .sm\\:justify-items-center {\n justify-items: center;\n }\n .sm\\:justify-items-stretch {\n justify-items: stretch;\n }\n .sm\\:justify-self-start {\n justify-self: start;\n }\n .sm\\:justify-self-end {\n justify-self: end;\n }\n .sm\\:justify-self-center {\n justify-self: center;\n }\n .sm\\:align-items-start {\n align-items: flex-start;\n }\n .sm\\:align-items-end {\n align-items: flex-end;\n }\n .sm\\:align-items-center {\n align-items: center;\n }\n .sm\\:align-items-baseline {\n align-items: baseline;\n }\n .sm\\:align-items-stretch {\n align-items: stretch;\n }\n .sm\\:align-content-start {\n align-content: flex-start;\n }\n .sm\\:align-content-end {\n align-content: flex-end;\n }\n .sm\\:align-content-center {\n align-content: center;\n }\n .sm\\:align-content-between {\n align-content: space-between;\n }\n .sm\\:align-content-around {\n align-content: space-around;\n }\n .sm\\:align-content-stretch {\n align-content: stretch;\n }\n .sm\\:align-self-auto {\n align-self: auto;\n }\n .sm\\:align-self-start {\n align-self: flex-start;\n }\n .sm\\:align-self-end {\n align-self: flex-end;\n }\n .sm\\:align-self-center {\n align-self: center;\n }\n .sm\\:align-self-baseline {\n align-self: baseline;\n }\n .sm\\:align-self-stretch {\n align-self: stretch;\n }\n .sm\\:place-items-start {\n place-items: start;\n }\n .sm\\:place-items-end {\n place-items: end;\n }\n .sm\\:place-items-center {\n place-items: center;\n }\n .sm\\:place-items-stretch {\n place-items: stretch;\n }\n .sm\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .sm\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .sm\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .sm\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .sm\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .sm\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .sm\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .sm\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .sm\\:order-first {\n order: -1;\n }\n .sm\\:order-0 {\n order: 0;\n }\n .sm\\:order-1 {\n order: 1;\n }\n .sm\\:order-2 {\n order: 2;\n }\n .sm\\:order-3 {\n order: 3;\n }\n .sm\\:order-4 {\n order: 4;\n }\n .sm\\:order-5 {\n order: 5;\n }\n .sm\\:order-last {\n order: 6;\n }\n .sm\\:m-0 {\n margin: 0;\n }\n .sm\\:m-1 {\n margin: 0.25rem;\n }\n .sm\\:m-2 {\n margin: 0.5rem;\n }\n .sm\\:m-3 {\n margin: 0.75rem;\n }\n .sm\\:m-4 {\n margin: 1rem;\n }\n .sm\\:m-5 {\n margin: 1.25rem;\n }\n .sm\\:m-6 {\n margin: 1.5rem;\n }\n .sm\\:m-7 {\n margin: 2rem;\n }\n .sm\\:m-8 {\n margin: 2.5rem;\n }\n .sm\\:m-9 {\n margin: 3rem;\n }\n .sm\\:m-auto {\n margin: auto;\n }\n .sm\\:mx-0 {\n margin-inline: 0;\n }\n .sm\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .sm\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .sm\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .sm\\:mx-4 {\n margin-inline: 1rem;\n }\n .sm\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .sm\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .sm\\:mx-7 {\n margin-inline: 2rem;\n }\n .sm\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .sm\\:mx-9 {\n margin-inline: 3rem;\n }\n .sm\\:mx-auto {\n margin-inline: auto;\n }\n .sm\\:my-0 {\n margin-block: 0;\n }\n .sm\\:my-1 {\n margin-block: 0.25rem;\n }\n .sm\\:my-2 {\n margin-block: 0.5rem;\n }\n .sm\\:my-3 {\n margin-block: 0.75rem;\n }\n .sm\\:my-4 {\n margin-block: 1rem;\n }\n .sm\\:my-5 {\n margin-block: 1.25rem;\n }\n .sm\\:my-6 {\n margin-block: 1.5rem;\n }\n .sm\\:my-7 {\n margin-block: 2rem;\n }\n .sm\\:my-8 {\n margin-block: 2.5rem;\n }\n .sm\\:my-9 {\n margin-block: 3rem;\n }\n .sm\\:my-auto {\n margin-block: auto;\n }\n .sm\\:mt-0 {\n margin-block-start: 0;\n }\n .sm\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .sm\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .sm\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .sm\\:mt-4 {\n margin-block-start: 1rem;\n }\n .sm\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .sm\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .sm\\:mt-7 {\n margin-block-start: 2rem;\n }\n .sm\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .sm\\:mt-9 {\n margin-block-start: 3rem;\n }\n .sm\\:mt-auto {\n margin-block-start: auto;\n }\n .sm\\:me-0 {\n margin-inline-end: 0;\n }\n .sm\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .sm\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .sm\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .sm\\:me-4 {\n margin-inline-end: 1rem;\n }\n .sm\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .sm\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .sm\\:me-7 {\n margin-inline-end: 2rem;\n }\n .sm\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .sm\\:me-9 {\n margin-inline-end: 3rem;\n }\n .sm\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .sm\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .sm\\:me-auto {\n margin-inline-end: auto;\n }\n .sm\\:mb-0 {\n margin-block-end: 0;\n }\n .sm\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .sm\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .sm\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .sm\\:mb-4 {\n margin-block-end: 1rem;\n }\n .sm\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .sm\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .sm\\:mb-7 {\n margin-block-end: 2rem;\n }\n .sm\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .sm\\:mb-9 {\n margin-block-end: 3rem;\n }\n .sm\\:mb-auto {\n margin-block-end: auto;\n }\n .sm\\:ms-0 {\n margin-inline-start: 0;\n }\n .sm\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .sm\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .sm\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .sm\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .sm\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .sm\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .sm\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .sm\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .sm\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .sm\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .sm\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .sm\\:ms-auto {\n margin-inline-start: auto;\n }\n .sm\\:p-0 {\n padding: 0;\n }\n .sm\\:p-1 {\n padding: 0.25rem;\n }\n .sm\\:p-2 {\n padding: 0.5rem;\n }\n .sm\\:p-3 {\n padding: 0.75rem;\n }\n .sm\\:p-4 {\n padding: 1rem;\n }\n .sm\\:p-5 {\n padding: 1.25rem;\n }\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n .sm\\:p-7 {\n padding: 2rem;\n }\n .sm\\:p-8 {\n padding: 2.5rem;\n }\n .sm\\:p-9 {\n padding: 3rem;\n }\n .sm\\:px-0 {\n padding-inline: 0;\n }\n .sm\\:px-1 {\n padding-inline: 0.25rem;\n }\n .sm\\:px-2 {\n padding-inline: 0.5rem;\n }\n .sm\\:px-3 {\n padding-inline: 0.75rem;\n }\n .sm\\:px-4 {\n padding-inline: 1rem;\n }\n .sm\\:px-5 {\n padding-inline: 1.25rem;\n }\n .sm\\:px-6 {\n padding-inline: 1.5rem;\n }\n .sm\\:px-7 {\n padding-inline: 2rem;\n }\n .sm\\:px-8 {\n padding-inline: 2.5rem;\n }\n .sm\\:px-9 {\n padding-inline: 3rem;\n }\n .sm\\:py-0 {\n padding-block: 0;\n }\n .sm\\:py-1 {\n padding-block: 0.25rem;\n }\n .sm\\:py-2 {\n padding-block: 0.5rem;\n }\n .sm\\:py-3 {\n padding-block: 0.75rem;\n }\n .sm\\:py-4 {\n padding-block: 1rem;\n }\n .sm\\:py-5 {\n padding-block: 1.25rem;\n }\n .sm\\:py-6 {\n padding-block: 1.5rem;\n }\n .sm\\:py-7 {\n padding-block: 2rem;\n }\n .sm\\:py-8 {\n padding-block: 2.5rem;\n }\n .sm\\:py-9 {\n padding-block: 3rem;\n }\n .sm\\:pt-0 {\n padding-block-start: 0;\n }\n .sm\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .sm\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .sm\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .sm\\:pt-4 {\n padding-block-start: 1rem;\n }\n .sm\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .sm\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .sm\\:pt-7 {\n padding-block-start: 2rem;\n }\n .sm\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .sm\\:pt-9 {\n padding-block-start: 3rem;\n }\n .sm\\:pe-0 {\n padding-inline-end: 0;\n }\n .sm\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .sm\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .sm\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .sm\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .sm\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .sm\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .sm\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .sm\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .sm\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .sm\\:pb-0 {\n padding-block-end: 0;\n }\n .sm\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .sm\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .sm\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .sm\\:pb-4 {\n padding-block-end: 1rem;\n }\n .sm\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .sm\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .sm\\:pb-7 {\n padding-block-end: 2rem;\n }\n .sm\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .sm\\:pb-9 {\n padding-block-end: 3rem;\n }\n .sm\\:ps-0 {\n padding-inline-start: 0;\n }\n .sm\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .sm\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .sm\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .sm\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .sm\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .sm\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .sm\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .sm\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .sm\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .sm\\:gap-0 {\n gap: 0;\n }\n .sm\\:gap-1 {\n gap: 0.25rem;\n }\n .sm\\:gap-2 {\n gap: 0.5rem;\n }\n .sm\\:gap-3 {\n gap: 0.75rem;\n }\n .sm\\:gap-4 {\n gap: 1rem;\n }\n .sm\\:gap-5 {\n gap: 1.25rem;\n }\n .sm\\:gap-6 {\n gap: 1.5rem;\n }\n .sm\\:gap-7 {\n gap: 2rem;\n }\n .sm\\:gap-8 {\n gap: 2.5rem;\n }\n .sm\\:gap-9 {\n gap: 3rem;\n }\n .sm\\:row-gap-0 {\n row-gap: 0;\n }\n .sm\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .sm\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .sm\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .sm\\:row-gap-4 {\n row-gap: 1rem;\n }\n .sm\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .sm\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .sm\\:row-gap-7 {\n row-gap: 2rem;\n }\n .sm\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .sm\\:row-gap-9 {\n row-gap: 3rem;\n }\n .sm\\:column-gap-0 {\n column-gap: 0;\n }\n .sm\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .sm\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .sm\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .sm\\:column-gap-4 {\n column-gap: 1rem;\n }\n .sm\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .sm\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .sm\\:column-gap-7 {\n column-gap: 2rem;\n }\n .sm\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .sm\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.sm\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.sm\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.sm\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.sm\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.sm\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.sm\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.sm\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.sm\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.sm\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.sm\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.sm\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.sm\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.sm\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.sm\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.sm\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.sm\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.sm\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.sm\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.sm\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.sm\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.sm\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.sm\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.sm\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.sm\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .sm\\:text-start {\n text-align: start;\n }\n .sm\\:text-end {\n text-align: end;\n }\n .sm\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 768px) {\n .md\\:float-start {\n float: inline-start;\n }\n .md\\:float-end {\n float: inline-end;\n }\n .md\\:float-none {\n float: none;\n }\n .md\\:object-fit-contain {\n object-fit: contain;\n }\n .md\\:object-fit-cover {\n object-fit: cover;\n }\n .md\\:object-fit-fill {\n object-fit: fill;\n }\n .md\\:object-fit-scale {\n object-fit: scale-down;\n }\n .md\\:object-fit-none {\n object-fit: none;\n }\n .md\\:d-inline {\n display: inline;\n }\n .md\\:d-inline-block {\n display: inline-block;\n }\n .md\\:d-block {\n display: block;\n }\n .md\\:d-grid {\n display: grid;\n }\n .md\\:d-inline-grid {\n display: inline-grid;\n }\n .md\\:d-table {\n display: table;\n }\n .md\\:d-table-row {\n display: table-row;\n }\n .md\\:d-table-cell {\n display: table-cell;\n }\n .md\\:d-flex {\n display: flex;\n }\n .md\\:d-inline-flex {\n display: inline-flex;\n }\n .md\\:d-contents {\n display: contents;\n }\n .md\\:d-flow-root {\n display: flow-root;\n }\n .md\\:d-none {\n display: none;\n }\n .md\\:flex-fill {\n flex: 1 1 auto;\n }\n .md\\:flex-row {\n flex-direction: row;\n }\n .md\\:flex-column {\n flex-direction: column;\n }\n .md\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .md\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .md\\:flex-grow-0 {\n flex-grow: 0;\n }\n .md\\:flex-grow-1 {\n flex-grow: 1;\n }\n .md\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .md\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .md\\:flex-wrap {\n flex-wrap: wrap;\n }\n .md\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .md\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .md\\:justify-content-start {\n justify-content: flex-start;\n }\n .md\\:justify-content-end {\n justify-content: flex-end;\n }\n .md\\:justify-content-center {\n justify-content: center;\n }\n .md\\:justify-content-between {\n justify-content: space-between;\n }\n .md\\:justify-content-around {\n justify-content: space-around;\n }\n .md\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .md\\:justify-items-start {\n justify-items: start;\n }\n .md\\:justify-items-end {\n justify-items: end;\n }\n .md\\:justify-items-center {\n justify-items: center;\n }\n .md\\:justify-items-stretch {\n justify-items: stretch;\n }\n .md\\:justify-self-start {\n justify-self: start;\n }\n .md\\:justify-self-end {\n justify-self: end;\n }\n .md\\:justify-self-center {\n justify-self: center;\n }\n .md\\:align-items-start {\n align-items: flex-start;\n }\n .md\\:align-items-end {\n align-items: flex-end;\n }\n .md\\:align-items-center {\n align-items: center;\n }\n .md\\:align-items-baseline {\n align-items: baseline;\n }\n .md\\:align-items-stretch {\n align-items: stretch;\n }\n .md\\:align-content-start {\n align-content: flex-start;\n }\n .md\\:align-content-end {\n align-content: flex-end;\n }\n .md\\:align-content-center {\n align-content: center;\n }\n .md\\:align-content-between {\n align-content: space-between;\n }\n .md\\:align-content-around {\n align-content: space-around;\n }\n .md\\:align-content-stretch {\n align-content: stretch;\n }\n .md\\:align-self-auto {\n align-self: auto;\n }\n .md\\:align-self-start {\n align-self: flex-start;\n }\n .md\\:align-self-end {\n align-self: flex-end;\n }\n .md\\:align-self-center {\n align-self: center;\n }\n .md\\:align-self-baseline {\n align-self: baseline;\n }\n .md\\:align-self-stretch {\n align-self: stretch;\n }\n .md\\:place-items-start {\n place-items: start;\n }\n .md\\:place-items-end {\n place-items: end;\n }\n .md\\:place-items-center {\n place-items: center;\n }\n .md\\:place-items-stretch {\n place-items: stretch;\n }\n .md\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .md\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .md\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .md\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .md\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .md\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .md\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .md\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .md\\:order-first {\n order: -1;\n }\n .md\\:order-0 {\n order: 0;\n }\n .md\\:order-1 {\n order: 1;\n }\n .md\\:order-2 {\n order: 2;\n }\n .md\\:order-3 {\n order: 3;\n }\n .md\\:order-4 {\n order: 4;\n }\n .md\\:order-5 {\n order: 5;\n }\n .md\\:order-last {\n order: 6;\n }\n .md\\:m-0 {\n margin: 0;\n }\n .md\\:m-1 {\n margin: 0.25rem;\n }\n .md\\:m-2 {\n margin: 0.5rem;\n }\n .md\\:m-3 {\n margin: 0.75rem;\n }\n .md\\:m-4 {\n margin: 1rem;\n }\n .md\\:m-5 {\n margin: 1.25rem;\n }\n .md\\:m-6 {\n margin: 1.5rem;\n }\n .md\\:m-7 {\n margin: 2rem;\n }\n .md\\:m-8 {\n margin: 2.5rem;\n }\n .md\\:m-9 {\n margin: 3rem;\n }\n .md\\:m-auto {\n margin: auto;\n }\n .md\\:mx-0 {\n margin-inline: 0;\n }\n .md\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .md\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .md\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .md\\:mx-4 {\n margin-inline: 1rem;\n }\n .md\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .md\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .md\\:mx-7 {\n margin-inline: 2rem;\n }\n .md\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .md\\:mx-9 {\n margin-inline: 3rem;\n }\n .md\\:mx-auto {\n margin-inline: auto;\n }\n .md\\:my-0 {\n margin-block: 0;\n }\n .md\\:my-1 {\n margin-block: 0.25rem;\n }\n .md\\:my-2 {\n margin-block: 0.5rem;\n }\n .md\\:my-3 {\n margin-block: 0.75rem;\n }\n .md\\:my-4 {\n margin-block: 1rem;\n }\n .md\\:my-5 {\n margin-block: 1.25rem;\n }\n .md\\:my-6 {\n margin-block: 1.5rem;\n }\n .md\\:my-7 {\n margin-block: 2rem;\n }\n .md\\:my-8 {\n margin-block: 2.5rem;\n }\n .md\\:my-9 {\n margin-block: 3rem;\n }\n .md\\:my-auto {\n margin-block: auto;\n }\n .md\\:mt-0 {\n margin-block-start: 0;\n }\n .md\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .md\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .md\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .md\\:mt-4 {\n margin-block-start: 1rem;\n }\n .md\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .md\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .md\\:mt-7 {\n margin-block-start: 2rem;\n }\n .md\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .md\\:mt-9 {\n margin-block-start: 3rem;\n }\n .md\\:mt-auto {\n margin-block-start: auto;\n }\n .md\\:me-0 {\n margin-inline-end: 0;\n }\n .md\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .md\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .md\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .md\\:me-4 {\n margin-inline-end: 1rem;\n }\n .md\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .md\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .md\\:me-7 {\n margin-inline-end: 2rem;\n }\n .md\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .md\\:me-9 {\n margin-inline-end: 3rem;\n }\n .md\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .md\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .md\\:me-auto {\n margin-inline-end: auto;\n }\n .md\\:mb-0 {\n margin-block-end: 0;\n }\n .md\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .md\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .md\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .md\\:mb-4 {\n margin-block-end: 1rem;\n }\n .md\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .md\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .md\\:mb-7 {\n margin-block-end: 2rem;\n }\n .md\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .md\\:mb-9 {\n margin-block-end: 3rem;\n }\n .md\\:mb-auto {\n margin-block-end: auto;\n }\n .md\\:ms-0 {\n margin-inline-start: 0;\n }\n .md\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .md\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .md\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .md\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .md\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .md\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .md\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .md\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .md\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .md\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .md\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .md\\:ms-auto {\n margin-inline-start: auto;\n }\n .md\\:p-0 {\n padding: 0;\n }\n .md\\:p-1 {\n padding: 0.25rem;\n }\n .md\\:p-2 {\n padding: 0.5rem;\n }\n .md\\:p-3 {\n padding: 0.75rem;\n }\n .md\\:p-4 {\n padding: 1rem;\n }\n .md\\:p-5 {\n padding: 1.25rem;\n }\n .md\\:p-6 {\n padding: 1.5rem;\n }\n .md\\:p-7 {\n padding: 2rem;\n }\n .md\\:p-8 {\n padding: 2.5rem;\n }\n .md\\:p-9 {\n padding: 3rem;\n }\n .md\\:px-0 {\n padding-inline: 0;\n }\n .md\\:px-1 {\n padding-inline: 0.25rem;\n }\n .md\\:px-2 {\n padding-inline: 0.5rem;\n }\n .md\\:px-3 {\n padding-inline: 0.75rem;\n }\n .md\\:px-4 {\n padding-inline: 1rem;\n }\n .md\\:px-5 {\n padding-inline: 1.25rem;\n }\n .md\\:px-6 {\n padding-inline: 1.5rem;\n }\n .md\\:px-7 {\n padding-inline: 2rem;\n }\n .md\\:px-8 {\n padding-inline: 2.5rem;\n }\n .md\\:px-9 {\n padding-inline: 3rem;\n }\n .md\\:py-0 {\n padding-block: 0;\n }\n .md\\:py-1 {\n padding-block: 0.25rem;\n }\n .md\\:py-2 {\n padding-block: 0.5rem;\n }\n .md\\:py-3 {\n padding-block: 0.75rem;\n }\n .md\\:py-4 {\n padding-block: 1rem;\n }\n .md\\:py-5 {\n padding-block: 1.25rem;\n }\n .md\\:py-6 {\n padding-block: 1.5rem;\n }\n .md\\:py-7 {\n padding-block: 2rem;\n }\n .md\\:py-8 {\n padding-block: 2.5rem;\n }\n .md\\:py-9 {\n padding-block: 3rem;\n }\n .md\\:pt-0 {\n padding-block-start: 0;\n }\n .md\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .md\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .md\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .md\\:pt-4 {\n padding-block-start: 1rem;\n }\n .md\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .md\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .md\\:pt-7 {\n padding-block-start: 2rem;\n }\n .md\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .md\\:pt-9 {\n padding-block-start: 3rem;\n }\n .md\\:pe-0 {\n padding-inline-end: 0;\n }\n .md\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .md\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .md\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .md\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .md\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .md\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .md\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .md\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .md\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .md\\:pb-0 {\n padding-block-end: 0;\n }\n .md\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .md\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .md\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .md\\:pb-4 {\n padding-block-end: 1rem;\n }\n .md\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .md\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .md\\:pb-7 {\n padding-block-end: 2rem;\n }\n .md\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .md\\:pb-9 {\n padding-block-end: 3rem;\n }\n .md\\:ps-0 {\n padding-inline-start: 0;\n }\n .md\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .md\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .md\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .md\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .md\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .md\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .md\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .md\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .md\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .md\\:gap-0 {\n gap: 0;\n }\n .md\\:gap-1 {\n gap: 0.25rem;\n }\n .md\\:gap-2 {\n gap: 0.5rem;\n }\n .md\\:gap-3 {\n gap: 0.75rem;\n }\n .md\\:gap-4 {\n gap: 1rem;\n }\n .md\\:gap-5 {\n gap: 1.25rem;\n }\n .md\\:gap-6 {\n gap: 1.5rem;\n }\n .md\\:gap-7 {\n gap: 2rem;\n }\n .md\\:gap-8 {\n gap: 2.5rem;\n }\n .md\\:gap-9 {\n gap: 3rem;\n }\n .md\\:row-gap-0 {\n row-gap: 0;\n }\n .md\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .md\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .md\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .md\\:row-gap-4 {\n row-gap: 1rem;\n }\n .md\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .md\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .md\\:row-gap-7 {\n row-gap: 2rem;\n }\n .md\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .md\\:row-gap-9 {\n row-gap: 3rem;\n }\n .md\\:column-gap-0 {\n column-gap: 0;\n }\n .md\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .md\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .md\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .md\\:column-gap-4 {\n column-gap: 1rem;\n }\n .md\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .md\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .md\\:column-gap-7 {\n column-gap: 2rem;\n }\n .md\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .md\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.md\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.md\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.md\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.md\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.md\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.md\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.md\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.md\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.md\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.md\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.md\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.md\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.md\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.md\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.md\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.md\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.md\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.md\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.md\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.md\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.md\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.md\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.md\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.md\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .md\\:text-start {\n text-align: start;\n }\n .md\\:text-end {\n text-align: end;\n }\n .md\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1024px) {\n .lg\\:float-start {\n float: inline-start;\n }\n .lg\\:float-end {\n float: inline-end;\n }\n .lg\\:float-none {\n float: none;\n }\n .lg\\:object-fit-contain {\n object-fit: contain;\n }\n .lg\\:object-fit-cover {\n object-fit: cover;\n }\n .lg\\:object-fit-fill {\n object-fit: fill;\n }\n .lg\\:object-fit-scale {\n object-fit: scale-down;\n }\n .lg\\:object-fit-none {\n object-fit: none;\n }\n .lg\\:d-inline {\n display: inline;\n }\n .lg\\:d-inline-block {\n display: inline-block;\n }\n .lg\\:d-block {\n display: block;\n }\n .lg\\:d-grid {\n display: grid;\n }\n .lg\\:d-inline-grid {\n display: inline-grid;\n }\n .lg\\:d-table {\n display: table;\n }\n .lg\\:d-table-row {\n display: table-row;\n }\n .lg\\:d-table-cell {\n display: table-cell;\n }\n .lg\\:d-flex {\n display: flex;\n }\n .lg\\:d-inline-flex {\n display: inline-flex;\n }\n .lg\\:d-contents {\n display: contents;\n }\n .lg\\:d-flow-root {\n display: flow-root;\n }\n .lg\\:d-none {\n display: none;\n }\n .lg\\:flex-fill {\n flex: 1 1 auto;\n }\n .lg\\:flex-row {\n flex-direction: row;\n }\n .lg\\:flex-column {\n flex-direction: column;\n }\n .lg\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .lg\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .lg\\:flex-grow-0 {\n flex-grow: 0;\n }\n .lg\\:flex-grow-1 {\n flex-grow: 1;\n }\n .lg\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .lg\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .lg\\:flex-wrap {\n flex-wrap: wrap;\n }\n .lg\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .lg\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .lg\\:justify-content-start {\n justify-content: flex-start;\n }\n .lg\\:justify-content-end {\n justify-content: flex-end;\n }\n .lg\\:justify-content-center {\n justify-content: center;\n }\n .lg\\:justify-content-between {\n justify-content: space-between;\n }\n .lg\\:justify-content-around {\n justify-content: space-around;\n }\n .lg\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .lg\\:justify-items-start {\n justify-items: start;\n }\n .lg\\:justify-items-end {\n justify-items: end;\n }\n .lg\\:justify-items-center {\n justify-items: center;\n }\n .lg\\:justify-items-stretch {\n justify-items: stretch;\n }\n .lg\\:justify-self-start {\n justify-self: start;\n }\n .lg\\:justify-self-end {\n justify-self: end;\n }\n .lg\\:justify-self-center {\n justify-self: center;\n }\n .lg\\:align-items-start {\n align-items: flex-start;\n }\n .lg\\:align-items-end {\n align-items: flex-end;\n }\n .lg\\:align-items-center {\n align-items: center;\n }\n .lg\\:align-items-baseline {\n align-items: baseline;\n }\n .lg\\:align-items-stretch {\n align-items: stretch;\n }\n .lg\\:align-content-start {\n align-content: flex-start;\n }\n .lg\\:align-content-end {\n align-content: flex-end;\n }\n .lg\\:align-content-center {\n align-content: center;\n }\n .lg\\:align-content-between {\n align-content: space-between;\n }\n .lg\\:align-content-around {\n align-content: space-around;\n }\n .lg\\:align-content-stretch {\n align-content: stretch;\n }\n .lg\\:align-self-auto {\n align-self: auto;\n }\n .lg\\:align-self-start {\n align-self: flex-start;\n }\n .lg\\:align-self-end {\n align-self: flex-end;\n }\n .lg\\:align-self-center {\n align-self: center;\n }\n .lg\\:align-self-baseline {\n align-self: baseline;\n }\n .lg\\:align-self-stretch {\n align-self: stretch;\n }\n .lg\\:place-items-start {\n place-items: start;\n }\n .lg\\:place-items-end {\n place-items: end;\n }\n .lg\\:place-items-center {\n place-items: center;\n }\n .lg\\:place-items-stretch {\n place-items: stretch;\n }\n .lg\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .lg\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .lg\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .lg\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .lg\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .lg\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .lg\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .lg\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .lg\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .lg\\:order-first {\n order: -1;\n }\n .lg\\:order-0 {\n order: 0;\n }\n .lg\\:order-1 {\n order: 1;\n }\n .lg\\:order-2 {\n order: 2;\n }\n .lg\\:order-3 {\n order: 3;\n }\n .lg\\:order-4 {\n order: 4;\n }\n .lg\\:order-5 {\n order: 5;\n }\n .lg\\:order-last {\n order: 6;\n }\n .lg\\:m-0 {\n margin: 0;\n }\n .lg\\:m-1 {\n margin: 0.25rem;\n }\n .lg\\:m-2 {\n margin: 0.5rem;\n }\n .lg\\:m-3 {\n margin: 0.75rem;\n }\n .lg\\:m-4 {\n margin: 1rem;\n }\n .lg\\:m-5 {\n margin: 1.25rem;\n }\n .lg\\:m-6 {\n margin: 1.5rem;\n }\n .lg\\:m-7 {\n margin: 2rem;\n }\n .lg\\:m-8 {\n margin: 2.5rem;\n }\n .lg\\:m-9 {\n margin: 3rem;\n }\n .lg\\:m-auto {\n margin: auto;\n }\n .lg\\:mx-0 {\n margin-inline: 0;\n }\n .lg\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .lg\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .lg\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .lg\\:mx-4 {\n margin-inline: 1rem;\n }\n .lg\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .lg\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .lg\\:mx-7 {\n margin-inline: 2rem;\n }\n .lg\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .lg\\:mx-9 {\n margin-inline: 3rem;\n }\n .lg\\:mx-auto {\n margin-inline: auto;\n }\n .lg\\:my-0 {\n margin-block: 0;\n }\n .lg\\:my-1 {\n margin-block: 0.25rem;\n }\n .lg\\:my-2 {\n margin-block: 0.5rem;\n }\n .lg\\:my-3 {\n margin-block: 0.75rem;\n }\n .lg\\:my-4 {\n margin-block: 1rem;\n }\n .lg\\:my-5 {\n margin-block: 1.25rem;\n }\n .lg\\:my-6 {\n margin-block: 1.5rem;\n }\n .lg\\:my-7 {\n margin-block: 2rem;\n }\n .lg\\:my-8 {\n margin-block: 2.5rem;\n }\n .lg\\:my-9 {\n margin-block: 3rem;\n }\n .lg\\:my-auto {\n margin-block: auto;\n }\n .lg\\:mt-0 {\n margin-block-start: 0;\n }\n .lg\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .lg\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .lg\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .lg\\:mt-4 {\n margin-block-start: 1rem;\n }\n .lg\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .lg\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .lg\\:mt-7 {\n margin-block-start: 2rem;\n }\n .lg\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .lg\\:mt-9 {\n margin-block-start: 3rem;\n }\n .lg\\:mt-auto {\n margin-block-start: auto;\n }\n .lg\\:me-0 {\n margin-inline-end: 0;\n }\n .lg\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .lg\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .lg\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .lg\\:me-4 {\n margin-inline-end: 1rem;\n }\n .lg\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .lg\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .lg\\:me-7 {\n margin-inline-end: 2rem;\n }\n .lg\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .lg\\:me-9 {\n margin-inline-end: 3rem;\n }\n .lg\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .lg\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .lg\\:me-auto {\n margin-inline-end: auto;\n }\n .lg\\:mb-0 {\n margin-block-end: 0;\n }\n .lg\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .lg\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .lg\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .lg\\:mb-4 {\n margin-block-end: 1rem;\n }\n .lg\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .lg\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .lg\\:mb-7 {\n margin-block-end: 2rem;\n }\n .lg\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .lg\\:mb-9 {\n margin-block-end: 3rem;\n }\n .lg\\:mb-auto {\n margin-block-end: auto;\n }\n .lg\\:ms-0 {\n margin-inline-start: 0;\n }\n .lg\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .lg\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .lg\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .lg\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .lg\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .lg\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .lg\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .lg\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .lg\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .lg\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .lg\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .lg\\:ms-auto {\n margin-inline-start: auto;\n }\n .lg\\:p-0 {\n padding: 0;\n }\n .lg\\:p-1 {\n padding: 0.25rem;\n }\n .lg\\:p-2 {\n padding: 0.5rem;\n }\n .lg\\:p-3 {\n padding: 0.75rem;\n }\n .lg\\:p-4 {\n padding: 1rem;\n }\n .lg\\:p-5 {\n padding: 1.25rem;\n }\n .lg\\:p-6 {\n padding: 1.5rem;\n }\n .lg\\:p-7 {\n padding: 2rem;\n }\n .lg\\:p-8 {\n padding: 2.5rem;\n }\n .lg\\:p-9 {\n padding: 3rem;\n }\n .lg\\:px-0 {\n padding-inline: 0;\n }\n .lg\\:px-1 {\n padding-inline: 0.25rem;\n }\n .lg\\:px-2 {\n padding-inline: 0.5rem;\n }\n .lg\\:px-3 {\n padding-inline: 0.75rem;\n }\n .lg\\:px-4 {\n padding-inline: 1rem;\n }\n .lg\\:px-5 {\n padding-inline: 1.25rem;\n }\n .lg\\:px-6 {\n padding-inline: 1.5rem;\n }\n .lg\\:px-7 {\n padding-inline: 2rem;\n }\n .lg\\:px-8 {\n padding-inline: 2.5rem;\n }\n .lg\\:px-9 {\n padding-inline: 3rem;\n }\n .lg\\:py-0 {\n padding-block: 0;\n }\n .lg\\:py-1 {\n padding-block: 0.25rem;\n }\n .lg\\:py-2 {\n padding-block: 0.5rem;\n }\n .lg\\:py-3 {\n padding-block: 0.75rem;\n }\n .lg\\:py-4 {\n padding-block: 1rem;\n }\n .lg\\:py-5 {\n padding-block: 1.25rem;\n }\n .lg\\:py-6 {\n padding-block: 1.5rem;\n }\n .lg\\:py-7 {\n padding-block: 2rem;\n }\n .lg\\:py-8 {\n padding-block: 2.5rem;\n }\n .lg\\:py-9 {\n padding-block: 3rem;\n }\n .lg\\:pt-0 {\n padding-block-start: 0;\n }\n .lg\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .lg\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .lg\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .lg\\:pt-4 {\n padding-block-start: 1rem;\n }\n .lg\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .lg\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .lg\\:pt-7 {\n padding-block-start: 2rem;\n }\n .lg\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .lg\\:pt-9 {\n padding-block-start: 3rem;\n }\n .lg\\:pe-0 {\n padding-inline-end: 0;\n }\n .lg\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .lg\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .lg\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .lg\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .lg\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .lg\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .lg\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .lg\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .lg\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .lg\\:pb-0 {\n padding-block-end: 0;\n }\n .lg\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .lg\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .lg\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .lg\\:pb-4 {\n padding-block-end: 1rem;\n }\n .lg\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .lg\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .lg\\:pb-7 {\n padding-block-end: 2rem;\n }\n .lg\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .lg\\:pb-9 {\n padding-block-end: 3rem;\n }\n .lg\\:ps-0 {\n padding-inline-start: 0;\n }\n .lg\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .lg\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .lg\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .lg\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .lg\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .lg\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .lg\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .lg\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .lg\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .lg\\:gap-0 {\n gap: 0;\n }\n .lg\\:gap-1 {\n gap: 0.25rem;\n }\n .lg\\:gap-2 {\n gap: 0.5rem;\n }\n .lg\\:gap-3 {\n gap: 0.75rem;\n }\n .lg\\:gap-4 {\n gap: 1rem;\n }\n .lg\\:gap-5 {\n gap: 1.25rem;\n }\n .lg\\:gap-6 {\n gap: 1.5rem;\n }\n .lg\\:gap-7 {\n gap: 2rem;\n }\n .lg\\:gap-8 {\n gap: 2.5rem;\n }\n .lg\\:gap-9 {\n gap: 3rem;\n }\n .lg\\:row-gap-0 {\n row-gap: 0;\n }\n .lg\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .lg\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .lg\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .lg\\:row-gap-4 {\n row-gap: 1rem;\n }\n .lg\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .lg\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .lg\\:row-gap-7 {\n row-gap: 2rem;\n }\n .lg\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .lg\\:row-gap-9 {\n row-gap: 3rem;\n }\n .lg\\:column-gap-0 {\n column-gap: 0;\n }\n .lg\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .lg\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .lg\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .lg\\:column-gap-4 {\n column-gap: 1rem;\n }\n .lg\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .lg\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .lg\\:column-gap-7 {\n column-gap: 2rem;\n }\n .lg\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .lg\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.lg\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.lg\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.lg\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.lg\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.lg\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.lg\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.lg\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.lg\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.lg\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.lg\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.lg\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.lg\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.lg\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.lg\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.lg\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.lg\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.lg\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.lg\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.lg\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.lg\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.lg\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.lg\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.lg\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.lg\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .lg\\:text-start {\n text-align: start;\n }\n .lg\\:text-end {\n text-align: end;\n }\n .lg\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1280px) {\n .xl\\:float-start {\n float: inline-start;\n }\n .xl\\:float-end {\n float: inline-end;\n }\n .xl\\:float-none {\n float: none;\n }\n .xl\\:object-fit-contain {\n object-fit: contain;\n }\n .xl\\:object-fit-cover {\n object-fit: cover;\n }\n .xl\\:object-fit-fill {\n object-fit: fill;\n }\n .xl\\:object-fit-scale {\n object-fit: scale-down;\n }\n .xl\\:object-fit-none {\n object-fit: none;\n }\n .xl\\:d-inline {\n display: inline;\n }\n .xl\\:d-inline-block {\n display: inline-block;\n }\n .xl\\:d-block {\n display: block;\n }\n .xl\\:d-grid {\n display: grid;\n }\n .xl\\:d-inline-grid {\n display: inline-grid;\n }\n .xl\\:d-table {\n display: table;\n }\n .xl\\:d-table-row {\n display: table-row;\n }\n .xl\\:d-table-cell {\n display: table-cell;\n }\n .xl\\:d-flex {\n display: flex;\n }\n .xl\\:d-inline-flex {\n display: inline-flex;\n }\n .xl\\:d-contents {\n display: contents;\n }\n .xl\\:d-flow-root {\n display: flow-root;\n }\n .xl\\:d-none {\n display: none;\n }\n .xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .xl\\:flex-row {\n flex-direction: row;\n }\n .xl\\:flex-column {\n flex-direction: column;\n }\n .xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .xl\\:justify-content-center {\n justify-content: center;\n }\n .xl\\:justify-content-between {\n justify-content: space-between;\n }\n .xl\\:justify-content-around {\n justify-content: space-around;\n }\n .xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .xl\\:justify-items-start {\n justify-items: start;\n }\n .xl\\:justify-items-end {\n justify-items: end;\n }\n .xl\\:justify-items-center {\n justify-items: center;\n }\n .xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .xl\\:justify-self-start {\n justify-self: start;\n }\n .xl\\:justify-self-end {\n justify-self: end;\n }\n .xl\\:justify-self-center {\n justify-self: center;\n }\n .xl\\:align-items-start {\n align-items: flex-start;\n }\n .xl\\:align-items-end {\n align-items: flex-end;\n }\n .xl\\:align-items-center {\n align-items: center;\n }\n .xl\\:align-items-baseline {\n align-items: baseline;\n }\n .xl\\:align-items-stretch {\n align-items: stretch;\n }\n .xl\\:align-content-start {\n align-content: flex-start;\n }\n .xl\\:align-content-end {\n align-content: flex-end;\n }\n .xl\\:align-content-center {\n align-content: center;\n }\n .xl\\:align-content-between {\n align-content: space-between;\n }\n .xl\\:align-content-around {\n align-content: space-around;\n }\n .xl\\:align-content-stretch {\n align-content: stretch;\n }\n .xl\\:align-self-auto {\n align-self: auto;\n }\n .xl\\:align-self-start {\n align-self: flex-start;\n }\n .xl\\:align-self-end {\n align-self: flex-end;\n }\n .xl\\:align-self-center {\n align-self: center;\n }\n .xl\\:align-self-baseline {\n align-self: baseline;\n }\n .xl\\:align-self-stretch {\n align-self: stretch;\n }\n .xl\\:place-items-start {\n place-items: start;\n }\n .xl\\:place-items-end {\n place-items: end;\n }\n .xl\\:place-items-center {\n place-items: center;\n }\n .xl\\:place-items-stretch {\n place-items: stretch;\n }\n .xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .xl\\:order-first {\n order: -1;\n }\n .xl\\:order-0 {\n order: 0;\n }\n .xl\\:order-1 {\n order: 1;\n }\n .xl\\:order-2 {\n order: 2;\n }\n .xl\\:order-3 {\n order: 3;\n }\n .xl\\:order-4 {\n order: 4;\n }\n .xl\\:order-5 {\n order: 5;\n }\n .xl\\:order-last {\n order: 6;\n }\n .xl\\:m-0 {\n margin: 0;\n }\n .xl\\:m-1 {\n margin: 0.25rem;\n }\n .xl\\:m-2 {\n margin: 0.5rem;\n }\n .xl\\:m-3 {\n margin: 0.75rem;\n }\n .xl\\:m-4 {\n margin: 1rem;\n }\n .xl\\:m-5 {\n margin: 1.25rem;\n }\n .xl\\:m-6 {\n margin: 1.5rem;\n }\n .xl\\:m-7 {\n margin: 2rem;\n }\n .xl\\:m-8 {\n margin: 2.5rem;\n }\n .xl\\:m-9 {\n margin: 3rem;\n }\n .xl\\:m-auto {\n margin: auto;\n }\n .xl\\:mx-0 {\n margin-inline: 0;\n }\n .xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .xl\\:mx-auto {\n margin-inline: auto;\n }\n .xl\\:my-0 {\n margin-block: 0;\n }\n .xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .xl\\:my-4 {\n margin-block: 1rem;\n }\n .xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .xl\\:my-7 {\n margin-block: 2rem;\n }\n .xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .xl\\:my-9 {\n margin-block: 3rem;\n }\n .xl\\:my-auto {\n margin-block: auto;\n }\n .xl\\:mt-0 {\n margin-block-start: 0;\n }\n .xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .xl\\:mt-auto {\n margin-block-start: auto;\n }\n .xl\\:me-0 {\n margin-inline-end: 0;\n }\n .xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .xl\\:me-auto {\n margin-inline-end: auto;\n }\n .xl\\:mb-0 {\n margin-block-end: 0;\n }\n .xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .xl\\:mb-auto {\n margin-block-end: auto;\n }\n .xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .xl\\:p-0 {\n padding: 0;\n }\n .xl\\:p-1 {\n padding: 0.25rem;\n }\n .xl\\:p-2 {\n padding: 0.5rem;\n }\n .xl\\:p-3 {\n padding: 0.75rem;\n }\n .xl\\:p-4 {\n padding: 1rem;\n }\n .xl\\:p-5 {\n padding: 1.25rem;\n }\n .xl\\:p-6 {\n padding: 1.5rem;\n }\n .xl\\:p-7 {\n padding: 2rem;\n }\n .xl\\:p-8 {\n padding: 2.5rem;\n }\n .xl\\:p-9 {\n padding: 3rem;\n }\n .xl\\:px-0 {\n padding-inline: 0;\n }\n .xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .xl\\:px-4 {\n padding-inline: 1rem;\n }\n .xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .xl\\:px-7 {\n padding-inline: 2rem;\n }\n .xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .xl\\:px-9 {\n padding-inline: 3rem;\n }\n .xl\\:py-0 {\n padding-block: 0;\n }\n .xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .xl\\:py-4 {\n padding-block: 1rem;\n }\n .xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .xl\\:py-7 {\n padding-block: 2rem;\n }\n .xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .xl\\:py-9 {\n padding-block: 3rem;\n }\n .xl\\:pt-0 {\n padding-block-start: 0;\n }\n .xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .xl\\:pb-0 {\n padding-block-end: 0;\n }\n .xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .xl\\:gap-0 {\n gap: 0;\n }\n .xl\\:gap-1 {\n gap: 0.25rem;\n }\n .xl\\:gap-2 {\n gap: 0.5rem;\n }\n .xl\\:gap-3 {\n gap: 0.75rem;\n }\n .xl\\:gap-4 {\n gap: 1rem;\n }\n .xl\\:gap-5 {\n gap: 1.25rem;\n }\n .xl\\:gap-6 {\n gap: 1.5rem;\n }\n .xl\\:gap-7 {\n gap: 2rem;\n }\n .xl\\:gap-8 {\n gap: 2.5rem;\n }\n .xl\\:gap-9 {\n gap: 3rem;\n }\n .xl\\:row-gap-0 {\n row-gap: 0;\n }\n .xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .xl\\:column-gap-0 {\n column-gap: 0;\n }\n .xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.xl\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.xl\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.xl\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.xl\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.xl\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.xl\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.xl\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.xl\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.xl\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.xl\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.xl\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.xl\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.xl\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.xl\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.xl\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.xl\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.xl\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.xl\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.xl\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.xl\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.xl\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.xl\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.xl\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.xl\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .xl\\:text-start {\n text-align: start;\n }\n .xl\\:text-end {\n text-align: end;\n }\n .xl\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:float-start {\n float: inline-start;\n }\n .\\32 xl\\:float-end {\n float: inline-end;\n }\n .\\32 xl\\:float-none {\n float: none;\n }\n .\\32 xl\\:object-fit-contain {\n object-fit: contain;\n }\n .\\32 xl\\:object-fit-cover {\n object-fit: cover;\n }\n .\\32 xl\\:object-fit-fill {\n object-fit: fill;\n }\n .\\32 xl\\:object-fit-scale {\n object-fit: scale-down;\n }\n .\\32 xl\\:object-fit-none {\n object-fit: none;\n }\n .\\32 xl\\:d-inline {\n display: inline;\n }\n .\\32 xl\\:d-inline-block {\n display: inline-block;\n }\n .\\32 xl\\:d-block {\n display: block;\n }\n .\\32 xl\\:d-grid {\n display: grid;\n }\n .\\32 xl\\:d-inline-grid {\n display: inline-grid;\n }\n .\\32 xl\\:d-table {\n display: table;\n }\n .\\32 xl\\:d-table-row {\n display: table-row;\n }\n .\\32 xl\\:d-table-cell {\n display: table-cell;\n }\n .\\32 xl\\:d-flex {\n display: flex;\n }\n .\\32 xl\\:d-inline-flex {\n display: inline-flex;\n }\n .\\32 xl\\:d-contents {\n display: contents;\n }\n .\\32 xl\\:d-flow-root {\n display: flow-root;\n }\n .\\32 xl\\:d-none {\n display: none;\n }\n .\\32 xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .\\32 xl\\:flex-row {\n flex-direction: row;\n }\n .\\32 xl\\:flex-column {\n flex-direction: column;\n }\n .\\32 xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .\\32 xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .\\32 xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .\\32 xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .\\32 xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .\\32 xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .\\32 xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .\\32 xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .\\32 xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .\\32 xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .\\32 xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .\\32 xl\\:justify-content-center {\n justify-content: center;\n }\n .\\32 xl\\:justify-content-between {\n justify-content: space-between;\n }\n .\\32 xl\\:justify-content-around {\n justify-content: space-around;\n }\n .\\32 xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .\\32 xl\\:justify-items-start {\n justify-items: start;\n }\n .\\32 xl\\:justify-items-end {\n justify-items: end;\n }\n .\\32 xl\\:justify-items-center {\n justify-items: center;\n }\n .\\32 xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .\\32 xl\\:justify-self-start {\n justify-self: start;\n }\n .\\32 xl\\:justify-self-end {\n justify-self: end;\n }\n .\\32 xl\\:justify-self-center {\n justify-self: center;\n }\n .\\32 xl\\:align-items-start {\n align-items: flex-start;\n }\n .\\32 xl\\:align-items-end {\n align-items: flex-end;\n }\n .\\32 xl\\:align-items-center {\n align-items: center;\n }\n .\\32 xl\\:align-items-baseline {\n align-items: baseline;\n }\n .\\32 xl\\:align-items-stretch {\n align-items: stretch;\n }\n .\\32 xl\\:align-content-start {\n align-content: flex-start;\n }\n .\\32 xl\\:align-content-end {\n align-content: flex-end;\n }\n .\\32 xl\\:align-content-center {\n align-content: center;\n }\n .\\32 xl\\:align-content-between {\n align-content: space-between;\n }\n .\\32 xl\\:align-content-around {\n align-content: space-around;\n }\n .\\32 xl\\:align-content-stretch {\n align-content: stretch;\n }\n .\\32 xl\\:align-self-auto {\n align-self: auto;\n }\n .\\32 xl\\:align-self-start {\n align-self: flex-start;\n }\n .\\32 xl\\:align-self-end {\n align-self: flex-end;\n }\n .\\32 xl\\:align-self-center {\n align-self: center;\n }\n .\\32 xl\\:align-self-baseline {\n align-self: baseline;\n }\n .\\32 xl\\:align-self-stretch {\n align-self: stretch;\n }\n .\\32 xl\\:place-items-start {\n place-items: start;\n }\n .\\32 xl\\:place-items-end {\n place-items: end;\n }\n .\\32 xl\\:place-items-center {\n place-items: center;\n }\n .\\32 xl\\:place-items-stretch {\n place-items: stretch;\n }\n .\\32 xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .\\32 xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .\\32 xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .\\32 xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .\\32 xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .\\32 xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .\\32 xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .\\32 xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .\\32 xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .\\32 xl\\:order-first {\n order: -1;\n }\n .\\32 xl\\:order-0 {\n order: 0;\n }\n .\\32 xl\\:order-1 {\n order: 1;\n }\n .\\32 xl\\:order-2 {\n order: 2;\n }\n .\\32 xl\\:order-3 {\n order: 3;\n }\n .\\32 xl\\:order-4 {\n order: 4;\n }\n .\\32 xl\\:order-5 {\n order: 5;\n }\n .\\32 xl\\:order-last {\n order: 6;\n }\n .\\32 xl\\:m-0 {\n margin: 0;\n }\n .\\32 xl\\:m-1 {\n margin: 0.25rem;\n }\n .\\32 xl\\:m-2 {\n margin: 0.5rem;\n }\n .\\32 xl\\:m-3 {\n margin: 0.75rem;\n }\n .\\32 xl\\:m-4 {\n margin: 1rem;\n }\n .\\32 xl\\:m-5 {\n margin: 1.25rem;\n }\n .\\32 xl\\:m-6 {\n margin: 1.5rem;\n }\n .\\32 xl\\:m-7 {\n margin: 2rem;\n }\n .\\32 xl\\:m-8 {\n margin: 2.5rem;\n }\n .\\32 xl\\:m-9 {\n margin: 3rem;\n }\n .\\32 xl\\:m-auto {\n margin: auto;\n }\n .\\32 xl\\:mx-0 {\n margin-inline: 0;\n }\n .\\32 xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .\\32 xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .\\32 xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .\\32 xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .\\32 xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .\\32 xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .\\32 xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .\\32 xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .\\32 xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .\\32 xl\\:mx-auto {\n margin-inline: auto;\n }\n .\\32 xl\\:my-0 {\n margin-block: 0;\n }\n .\\32 xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .\\32 xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .\\32 xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .\\32 xl\\:my-4 {\n margin-block: 1rem;\n }\n .\\32 xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .\\32 xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .\\32 xl\\:my-7 {\n margin-block: 2rem;\n }\n .\\32 xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .\\32 xl\\:my-9 {\n margin-block: 3rem;\n }\n .\\32 xl\\:my-auto {\n margin-block: auto;\n }\n .\\32 xl\\:mt-0 {\n margin-block-start: 0;\n }\n .\\32 xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .\\32 xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .\\32 xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .\\32 xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .\\32 xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .\\32 xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .\\32 xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .\\32 xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .\\32 xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .\\32 xl\\:mt-auto {\n margin-block-start: auto;\n }\n .\\32 xl\\:me-0 {\n margin-inline-end: 0;\n }\n .\\32 xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .\\32 xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .\\32 xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .\\32 xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .\\32 xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .\\32 xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .\\32 xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .\\32 xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .\\32 xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .\\32 xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .\\32 xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .\\32 xl\\:me-auto {\n margin-inline-end: auto;\n }\n .\\32 xl\\:mb-0 {\n margin-block-end: 0;\n }\n .\\32 xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .\\32 xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .\\32 xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .\\32 xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .\\32 xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .\\32 xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .\\32 xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .\\32 xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .\\32 xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .\\32 xl\\:mb-auto {\n margin-block-end: auto;\n }\n .\\32 xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .\\32 xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .\\32 xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .\\32 xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .\\32 xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .\\32 xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .\\32 xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .\\32 xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .\\32 xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .\\32 xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .\\32 xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .\\32 xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .\\32 xl\\:p-0 {\n padding: 0;\n }\n .\\32 xl\\:p-1 {\n padding: 0.25rem;\n }\n .\\32 xl\\:p-2 {\n padding: 0.5rem;\n }\n .\\32 xl\\:p-3 {\n padding: 0.75rem;\n }\n .\\32 xl\\:p-4 {\n padding: 1rem;\n }\n .\\32 xl\\:p-5 {\n padding: 1.25rem;\n }\n .\\32 xl\\:p-6 {\n padding: 1.5rem;\n }\n .\\32 xl\\:p-7 {\n padding: 2rem;\n }\n .\\32 xl\\:p-8 {\n padding: 2.5rem;\n }\n .\\32 xl\\:p-9 {\n padding: 3rem;\n }\n .\\32 xl\\:px-0 {\n padding-inline: 0;\n }\n .\\32 xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .\\32 xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .\\32 xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .\\32 xl\\:px-4 {\n padding-inline: 1rem;\n }\n .\\32 xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .\\32 xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .\\32 xl\\:px-7 {\n padding-inline: 2rem;\n }\n .\\32 xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .\\32 xl\\:px-9 {\n padding-inline: 3rem;\n }\n .\\32 xl\\:py-0 {\n padding-block: 0;\n }\n .\\32 xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .\\32 xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .\\32 xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .\\32 xl\\:py-4 {\n padding-block: 1rem;\n }\n .\\32 xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .\\32 xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .\\32 xl\\:py-7 {\n padding-block: 2rem;\n }\n .\\32 xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .\\32 xl\\:py-9 {\n padding-block: 3rem;\n }\n .\\32 xl\\:pt-0 {\n padding-block-start: 0;\n }\n .\\32 xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .\\32 xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .\\32 xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .\\32 xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .\\32 xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .\\32 xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .\\32 xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .\\32 xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .\\32 xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .\\32 xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .\\32 xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .\\32 xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .\\32 xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .\\32 xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .\\32 xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .\\32 xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .\\32 xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .\\32 xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .\\32 xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .\\32 xl\\:pb-0 {\n padding-block-end: 0;\n }\n .\\32 xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .\\32 xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .\\32 xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .\\32 xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .\\32 xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .\\32 xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .\\32 xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .\\32 xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .\\32 xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .\\32 xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .\\32 xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .\\32 xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .\\32 xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .\\32 xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .\\32 xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .\\32 xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .\\32 xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .\\32 xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .\\32 xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .\\32 xl\\:gap-0 {\n gap: 0;\n }\n .\\32 xl\\:gap-1 {\n gap: 0.25rem;\n }\n .\\32 xl\\:gap-2 {\n gap: 0.5rem;\n }\n .\\32 xl\\:gap-3 {\n gap: 0.75rem;\n }\n .\\32 xl\\:gap-4 {\n gap: 1rem;\n }\n .\\32 xl\\:gap-5 {\n gap: 1.25rem;\n }\n .\\32 xl\\:gap-6 {\n gap: 1.5rem;\n }\n .\\32 xl\\:gap-7 {\n gap: 2rem;\n }\n .\\32 xl\\:gap-8 {\n gap: 2.5rem;\n }\n .\\32 xl\\:gap-9 {\n gap: 3rem;\n }\n .\\32 xl\\:row-gap-0 {\n row-gap: 0;\n }\n .\\32 xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .\\32 xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .\\32 xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .\\32 xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .\\32 xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .\\32 xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .\\32 xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .\\32 xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .\\32 xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .\\32 xl\\:column-gap-0 {\n column-gap: 0;\n }\n .\\32 xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .\\32 xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .\\32 xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .\\32 xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .\\32 xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .\\32 xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .\\32 xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .\\32 xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .\\32 xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.\\32 xl\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.\\32 xl\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.\\32 xl\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.\\32 xl\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.\\32 xl\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.\\32 xl\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.\\32 xl\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.\\32 xl\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.\\32 xl\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.\\32 xl\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.\\32 xl\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.\\32 xl\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.\\32 xl\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.\\32 xl\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.\\32 xl\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.\\32 xl\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.\\32 xl\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.\\32 xl\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.\\32 xl\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.\\32 xl\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.\\32 xl\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.\\32 xl\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.\\32 xl\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.\\32 xl\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .\\32 xl\\:text-start {\n text-align: start;\n }\n .\\32 xl\\:text-end {\n text-align: end;\n }\n .\\32 xl\\:text-center {\n text-align: center;\n }\n }\n}\n\n/*# sourceMappingURL=bootstrap-utilities.css.map */\n","@use \"sass:map\";\n@use \"colors\" as *;\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"theme\" as *;\n@use \"mixins/tokens\" as *;\n// mdo-do: do we need theme?\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n\n$root-tokens: () !default;\n\n// scss-docs-start root-tokens\n// stylelint-disable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: defaults(\n (\n --black: #{$black},\n --white: #{$white},\n\n --gradient: #{$gradient},\n\n // scss-docs-start root-font-weight-variables\n --font-weight-lighter: lighter,\n --font-weight-light: 300,\n --font-weight-normal: 400,\n --font-weight-medium: 500,\n --font-weight-semibold: 600,\n --font-weight-bold: 700,\n --font-weight-bolder: bolder,\n // scss-docs-end root-font-weight-variables\n\n // scss-docs-start root-body-variables\n --body-font-family: system-ui,\n --body-font-size: var(--font-size-base),\n --body-font-weight: #{$font-weight-base},\n --body-line-height: #{$line-height-base},\n\n --heading-color: #{$headings-color},\n\n --hr-border-color: var(--border-color),\n\n --link-color: light-dark(var(--primary-base), var(--primary-fg)),\n --link-decoration: #{$link-decoration},\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000),\n\n --font-mono: \"SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace\",\n --code-font-size: 95%,\n --code-color: var(--fg-2),\n\n // scss-docs-start root-border-var\n --border-width: #{$border-width},\n --border-style: #{$border-style},\n --border-color: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-700)),\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent),\n // scss-docs-end root-border-var\n\n // scss-docs-start root-box-shadow-variables\n --box-shadow: 0 .5rem 1rem rgb(0 0 0 / 15%),\n --box-shadow-sm: 0 .125rem .25rem rgb(0 0 0 / 7.5%),\n --box-shadow-lg: 0 1rem 3rem rgb(0 0 0 / 17.5%),\n --box-shadow-inset: inset 0 1px 2px rgb(0 0 0 / 7.5%),\n // scss-docs-end root-box-shadow-variables\n\n --spacer: 1rem,\n\n // scss-docs-start root-focus-variables\n --focus-ring-width: 3px,\n --focus-ring-offset: 1px,\n --focus-ring-color: var(--primary-focus-ring),\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color),\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-variables\n --control-checked-bg: var(--primary-base),\n --control-checked-border-color: var(--control-checked-bg),\n --control-active-bg: var(--primary-base),\n --control-active-border-color: var(--control-active-bg),\n --control-disabled-bg: var(--bg-3),\n --control-disabled-opacity: .65,\n\n --btn-input-fg: var(--fg-body),\n --btn-input-bg: var(--bg-body),\n\n --btn-input-min-height: 2.375rem,\n --btn-input-padding-y: .375rem,\n --btn-input-padding-x: .75rem,\n --btn-input-font-size: var(--font-size-base),\n --btn-input-line-height: var(--line-height-base),\n --btn-input-border-radius: var(--radius-5),\n\n --btn-input-xs-min-height: 1.5rem,\n --btn-input-xs-padding-y: .125rem,\n --btn-input-xs-padding-x: .5rem,\n --btn-input-xs-font-size: var(--font-size-xs),\n --btn-input-xs-line-height: 1.125,\n --btn-input-xs-border-radius: var(--radius-5),\n\n --btn-input-sm-min-height: 2rem,\n --btn-input-sm-padding-y: .25rem,\n --btn-input-sm-padding-x: .625rem,\n --btn-input-sm-font-size: var(--font-size-sm),\n --btn-input-sm-line-height: var(--line-height-sm),\n --btn-input-sm-border-radius: var(--radius-5),\n\n --btn-input-lg-min-height: 2.75rem,\n --btn-input-lg-padding-y: .5rem,\n --btn-input-lg-padding-x: 1rem,\n --btn-input-lg-font-size: var(--font-size-md),\n --btn-input-lg-line-height: var(--line-height-md),\n --btn-input-lg-border-radius: var(--radius-7),\n // scss-docs-end root-form-variables\n ),\n $root-tokens\n);\n// stylelint-enable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// scss-docs-end root-tokens\n\n// scss-docs-start root-font-size-loop\n// Generate font-size and line-height tokens\n@each $name, $props in $font-sizes {\n $root-tokens: map.set($root-tokens, --font-size-#{$name}, map.get($props, \"font-size\"));\n $root-tokens: map.set($root-tokens, --line-height-#{$name}, map.get($props, \"line-height\"));\n}\n// scss-docs-end root-font-size-loop\n\n// scss-docs-start root-theme-tokens\n// Generate semantic theme colors\n@each $color-name, $color-map in $theme-colors {\n @each $key, $value in $color-map {\n $root-tokens: map.set($root-tokens, --#{$color-name}-#{$key}, $value);\n }\n}\n\n// Generate background tokens\n@each $key, $value in $theme-bgs {\n $root-tokens: map.set($root-tokens, --bg-#{$key}, $value);\n}\n\n// Generate foreground tokens\n@each $key, $value in $theme-fgs {\n $root-tokens: map.set($root-tokens, --fg-#{$key}, $value);\n}\n\n// Generate border tokens\n@each $key, $value in $theme-borders {\n $root-tokens: map.set($root-tokens, --border-#{$key}, $value);\n}\n// scss-docs-end root-theme-tokens\n\n// Generate breakpoint tokens\n@each $name, $value in $breakpoints {\n $root-tokens: map.set($root-tokens, --breakpoint-#{$name}, $value);\n}\n\n// Generate spacer tokens\n// scss-docs-start root-spacer-loop\n@each $key, $value in $spacers {\n $root-tokens: map.set($root-tokens, --spacer-#{$key}, $value);\n}\n// scss-docs-end root-spacer-loop\n\n// Generate radius tokens\n// scss-docs-start root-radius-loop\n@each $key, $value in $radii {\n $root-tokens: map.set($root-tokens, --radius-#{$key}, $value);\n}\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: map.set($root-tokens, --radius-pill, 50rem);\n// scss-docs-end root-radius-loop\n\n:root {\n @include tokens($root-tokens);\n\n color-scheme: light dark;\n // Always reserve the viewport scrollbar gutter so layout doesn't shift\n // when overflow: hidden is applied (e.g. when a dialog opens on Windows).\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=\"dark\"] {\n color-scheme: dark;\n}\n\n[data-bs-theme=\"light\"] {\n color-scheme: light;\n}\n","@layer helpers {\n .focus-ring:focus-visible {\n // outline: var(--focus-ring);\n outline: var(--focus-ring-width) solid var(--theme-focus-ring, var(--focus-ring-color));\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/transition\" as *;\n\n@layer helpers {\n .icon-link {\n display: inline-flex;\n gap: $icon-link-gap;\n align-items: center;\n text-decoration-color: rgba(var(--link-color-rgb), var(--link-opacity, .5));\n text-underline-offset: $icon-link-underline-offset;\n backface-visibility: hidden;\n\n > .bi {\n flex-shrink: 0;\n width: $icon-link-icon-size;\n height: $icon-link-icon-size;\n fill: currentcolor;\n @include transition($icon-link-icon-transition);\n }\n }\n\n .icon-link-hover {\n &:hover,\n &:focus-visible {\n > .bi {\n transform: var(--icon-link-transform, $icon-link-icon-transform);\n }\n }\n }\n}\n","@use \"sass:map\";\n@use \"sass:meta\";\n\n// Configuration\n//\n// Variables and settings not related to theme, components, and more go here. It does include layout.\n\n// Merge overrides on top of defaults, stripping null entries.\n// Null values let users remove map keys via @use ... with().\n// Accepts a list as $defaults (converted to a map with `true` values).\n@function defaults($defaults, $overrides) {\n @if meta.type-of($defaults) == \"list\" {\n $map: ();\n @each $key in $defaults {\n $map: map.merge($map, ($key: true));\n }\n $defaults: $map;\n }\n $merged: map.merge($defaults, $overrides);\n @each $key, $value in $merged {\n @if $value == null {\n $merged: map.remove($merged, $key);\n }\n }\n @return $merged;\n}\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: true !default;\n$enable-gradients: true !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: false !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: true !default;\n$enable-button-pointers: true !default;\n// $enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n\n$enable-dark-mode: true !default;\n\n$color-mode-type: \"media-query\" !default;\n$color-contrast-dark: #000 !default;\n$color-contrast-light: #fff !default;\n$min-contrast-ratio: 4.5 !default;\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer * .75,\n 4: $spacer,\n 5: $spacer * 1.25,\n 6: $spacer * 1.5,\n 7: $spacer * 2,\n 8: $spacer * 2.5,\n 9: $spacer * 3,\n) !default;\n\n$negative-spacers: (\n \"-1\": $spacer * -.25,\n \"-2\": $spacer * -.5,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n$sizes: (\n 1: $spacer,\n 2: $spacer * 2,\n 3: $spacer * 3,\n 4: $spacer * 4,\n 5: $spacer * 5,\n 6: $spacer * 6,\n 7: $spacer * 7,\n 8: $spacer * 8,\n 9: $spacer * 9,\n 10: $spacer * 10,\n 11: $spacer * 11,\n 12: $spacer * 12,\n) !default;\n\n$radius: .5rem !default;\n$radii: (\n 0: 0,\n 1: $radius * .25,\n 2: $radius * .375,\n 3: $radius * .5,\n 4: $radius * .75,\n 5: $radius,\n 6: $radius * 1.25,\n 7: $radius * 1.5,\n 8: $radius * 2,\n 9: $radius * 3,\n) !default;\n\n// Breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start breakpoints\n$breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 1024px,\n xl: 1280px,\n 2xl: 1536px\n) !default;\n// scss-docs-end breakpoints\n\n// @include _assert-ascending($breakpoints, \"$breakpoints\");\n// @include _assert-starts-at-zero($breakpoints, \"$breakpoints\");\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-x: 1.5rem !default;\n$grid-gutter-y: 0 !default;\n$grid-row-columns: 6 !default;\n\n$gutters: $spacers !default;\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1200px,\n 2xl: 1440px\n) !default;\n// scss-docs-end container-max-widths\n\n$container-padding-x: $grid-gutter-x !default;\n\n$utilities: () !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent)) !default;\n// scss-docs-end variable-gradient\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Links\n//\n// Style anchor elements.\n\n$link-decoration: underline !default;\n$link-underline-offset: .2em !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: color-mix(in oklch, var(--gray-100), var(--gray-200)) !default;\n// scss-docs-end border-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"auto\": auto,\n \"1x1\": #{\"1 / 1\"},\n \"4x3\": #{\"4 / 3\"},\n \"16x9\": #{\"16 / 9\"},\n \"21x9\": #{\"21 / 9\"}\n) !default;\n// scss-docs-end aspect-ratios\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$font-sizes: defaults(\n (\n \"xs\": (\n \"font-size\": .75rem,\n \"line-height\": 1.25\n ),\n \"sm\": (\n \"font-size\": .875rem,\n \"line-height\": 1.5\n ),\n \"md\": (\n \"font-size\": 1rem,\n \"line-height\": 1.5\n ),\n \"lg\": (\n \"font-size\": clamp(1.25rem, 1rem + .625vw, 1.5rem),\n \"line-height\": 1.5\n ),\n \"xl\": (\n \"font-size\": clamp(1.5rem, 1.1rem + .75vw, 1.75rem),\n \"line-height\": calc(2.5 / 1.75)\n ),\n \"2xl\": (\n \"font-size\": clamp(1.75rem, 1.3rem + 1vw, 2rem),\n \"line-height\": calc(3 / 2.25)\n ),\n \"3xl\": (\n \"font-size\": clamp(2rem, 1.5rem + 1.875vw, 2.5rem),\n \"line-height\": 1.2\n ),\n \"4xl\": (\n \"font-size\": clamp(2.25rem, 1.75rem + 2.5vw, 3rem),\n \"line-height\": 1.1\n ),\n \"5xl\": (\n \"font-size\": clamp(3rem, 2rem + 5vw, 4rem),\n \"line-height\": 1.1\n ),\n \"6xl\": (\n \"font-size\": clamp(3.75rem, 2.5rem + 6.25vw, 5rem),\n \"line-height\": 1\n ),\n ),\n $font-sizes\n);\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: var(--spacer-2) !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start type-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n// scss-docs-end type-variables\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-menu: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n// $zindex-drawer-backdrop: 1040 !default;\n$zindex-drawer: 1045 !default;\n$zindex-dialog: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n","@use \"sass:list\";\n@use \"../config\" as *;\n\n// stylelint-disable property-disallowed-list\n@mixin transition($transition...) {\n @if list.length($transition) == 0 {\n $transition: $transition-base;\n }\n\n @if list.length($transition) > 1 {\n @each $value in $transition {\n @if $value == null or $value == none {\n @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n }\n }\n }\n\n @if $enable-transitions {\n @if list.nth($transition, 1) != null {\n transition: $transition;\n }\n\n @if $enable-reduced-motion and list.nth($transition, 1) != null and list.nth($transition, 1) != none {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n }\n}\n","@use \"sass:map\";\n@use \"../config\" as *;\n@use \"../layout/breakpoints\" as *;\n\n@layer helpers {\n .fixed-top {\n position: fixed;\n inset: 0 0 auto;\n z-index: $zindex-fixed;\n }\n\n .fixed-bottom {\n position: fixed;\n inset: auto 0 0;\n z-index: $zindex-fixed;\n }\n\n // Responsive sticky top and bottom\n @each $breakpoint in map.keys($breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n .#{$prefix}sticky-top {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n\n .#{$prefix}sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: $zindex-sticky;\n }\n }\n }\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:string\";\n@use \"../config\" as *;\n\n// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px)\n//\n// The map defined in the `$breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl 2xl))\n// md\n@function breakpoint-next($name, $breakpoints: $breakpoints, $breakpoint-names: map.keys($breakpoints)) {\n $n: list.index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoint-names}`\";\n }\n // Use @if/@else because list.nth would error if evaluated when $n equals list length\n @if $n < list.length($breakpoint-names) {\n @return list.nth($breakpoint-names, $n + 1);\n } @else {\n @return null;\n }\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $breakpoints) {\n $min: map.get($breakpoints, $name);\n @return if(sass($min != 0): $min; else: null);\n}\n\n// Maximum breakpoint width for range media queries.\n// Returns the breakpoint value to use as an upper bound in range queries.\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n// >> breakpoint-max(xxl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// null\n@function breakpoint-max($name, $breakpoints: $breakpoints) {\n @if $name == null {\n @return null;\n }\n $max: map.get($breakpoints, $name);\n @return if(sass($max and $max > 0): $max; else: null);\n}\n\n// Escape a name for use at the start of a CSS identifier.\n// Leading digits are hex-escaped (e.g., 2xl becomes \\32 xl).\n@function css-escape-ident($name) {\n $name-str: \"#{$name}\";\n $digits: \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\";\n $first: string.slice($name-str, 1, 1);\n\n @if list.index($digits, $first) {\n @return \"\\\\3#{$first} #{string.slice($name-str, 2)}\";\n }\n\n @return $name-str;\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name\n// with an escaped colon as a Tailwind-style prefix for responsive class names.\n// Leading digits are CSS-escaped (e.g., 2xl becomes \\32 xl) for valid identifiers.\n//\n// >> breakpoint-prefix(xs, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\" (Returns a blank string)\n// >> breakpoint-prefix(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"sm\\:\"\n// >> breakpoint-prefix(2xl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\\32 xl\\:\"\n@function breakpoint-prefix($name, $breakpoints: $breakpoints) {\n @if breakpoint-min($name, $breakpoints) == null {\n @return \"\";\n }\n\n @return \"#{css-escape-ident($name)}\\\\:\";\n}\n\n// Iterate all breakpoints and provide the current name and prefix.\n//\n// @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-up($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n @content($breakpoint, $prefix);\n }\n}\n\n// Iterate all breakpoints and provide the current name, next name, and next prefix.\n//\n// @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-down($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $next: breakpoint-next($breakpoint, $breakpoints);\n $prefix: breakpoint-prefix($next, $breakpoints);\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Backwards-compatible alias for next/down breakpoint loops.\n@mixin loop-breakpoints($breakpoints: $breakpoints) {\n @include loop-breakpoints-down($breakpoints) using ($breakpoint, $next, $prefix) {\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (width >= $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (width < $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n\n\n// Container queries\n//\n// Container queries allow elements to respond to the size of a containing element\n// rather than the viewport. These mixins mirror the media-breakpoint-* mixins above.\n//\n// scss-docs-start container-query-mixins\n\n// Set an element as a query container.\n//\n// @include set-container(); // container-type: inline-size\n// @include set-container(size); // container-type: size\n// @include set-container(inline-size, sidebar); // container: sidebar / inline-size\n//\n@mixin set-container($type: inline-size, $name: null) {\n @if $name {\n container: #{$name} / #{$type};\n } @else {\n container-type: #{$type};\n }\n}\n\n// Container query of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider within the container.\n//\n// @include container-breakpoint-up(md) { ... }\n// @include container-breakpoint-up(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-up($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower within the container.\n//\n// @include container-breakpoint-down(lg) { ... }\n// @include container-breakpoint-down(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-down($name, $container-name: null, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @if $container-name {\n @container #{$container-name} (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width < #{$max}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints within the container.\n//\n// @include container-breakpoint-between(md, xl) { ... }\n// @include container-breakpoint-between(md, xl, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-between($lower, $upper, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($lower, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($upper, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n\n// Container query between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint within the container.\n//\n// @include container-breakpoint-only(md) { ... }\n// @include container-breakpoint-only(md, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-only($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($name, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($next, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n// scss-docs-end container-query-mixins\n","@use \"../layout/breakpoints\" as *;\n\n@layer helpers {\n // scss-docs-start stacks\n .stack-container {\n @include set-container();\n }\n\n [class*=\"hstack\"],\n [class*=\"vstack\"] {\n display: flex;\n flex: var(--stack-flex, 1 1 auto);\n flex-direction: var(--stack-direction, row);\n align-items: var(--stack-align-items, center);\n align-self: var(--stack-align-self, stretch);\n }\n\n @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n .#{$prefix}vstack {\n @include container-breakpoint-up($breakpoint) {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n .#{$prefix}hstack {\n @include container-breakpoint-up($breakpoint) {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n }\n // scss-docs-end stacks\n}\n","@use \"../theme\" as *;\n\n// Generate theme modifier classes (e.g., .theme-primary, .theme-accent, etc.)\n@layer helpers {\n @include generate-theme-classes();\n}\n","@use \"sass:map\";\n\n@function theme-color-values($key) {\n $result: ();\n\n @each $color-name, $color-map in $theme-colors {\n @if map.has-key($color-map, $key) {\n $result: map.merge($result, ($color-name: map.get($color-map, $key)));\n }\n }\n\n @return $result;\n}\n\n// Themes map sub-keys\n//\n// Return var() references to root tokens instead of raw values.\n// Ex: theme-color-refs(\"bg\") => (primary: var(--primary-bg), accent: var(--accent-bg), ...)\n@function theme-color-refs($key) {\n $result: ();\n\n @each $color-name, $color-map in $theme-colors {\n @if map.has-key($color-map, $key) {\n $result: map.merge($result, ($color-name: var(--#{$color-name}-#{$key})));\n }\n }\n\n @return $result;\n}\n\n// Theme token to root tokens\n//\n// Returns the global :root token reference for a given a given token map, prefix, and key.\n// Ex: theme-token-refs($theme-bgs, \"bg\") => (body: var(--bg-body), 1: var(--bg-1), ...)\n// Skips `inherit` since it's a CSS-wide keyword that can't be stored in a custom property.\n@function theme-token-refs($map, $prefix) {\n $result: ();\n\n @each $key, $value in $map {\n @if $value != inherit {\n $result: map.merge($result, ($key: var(--#{$prefix}-#{$key})));\n }\n }\n\n @return $result;\n}\n\n// Generate opacity values using color-mix()\n@function theme-opacity-values($color-var, $opacities: $util-opacity) {\n $result: ();\n\n @each $key, $value in $opacities {\n @if $key == 100 {\n // For 100%, use direct variable reference (more efficient)\n $result: map.merge($result, ($key: var($color-var)));\n } @else {\n // For other values, use color-mix()\n $percentage: $key * 1%;\n $result: map.merge($result, ($key: color-mix(in oklch, var($color-var) $percentage, transparent)));\n }\n }\n\n @return $result;\n}\n\n// Generate theme classes dynamically based on the keys in each theme color map\n@mixin generate-theme-classes() {\n @each $color-name, $color-map in $theme-colors {\n .theme-#{$color-name} {\n @each $key, $value in $color-map {\n --theme-#{$key}: var(--#{$color-name}-#{$key});\n }\n }\n }\n}\n\n// scss-docs-start theme-colors\n$theme-colors: (\n \"primary\": (\n \"base\": var(--blue-500),\n \"fg\": light-dark(var(--blue-600), var(--blue-400)),\n \"fg-emphasis\": light-dark(var(--blue-800), var(--blue-200)),\n \"bg\": var(--blue-500),\n \"bg-subtle\": light-dark(var(--blue-100), var(--blue-900)),\n \"bg-muted\": light-dark(var(--blue-200), var(--blue-800)),\n \"border\": light-dark(var(--blue-300), var(--blue-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"accent\": (\n \"base\": var(--indigo-500),\n \"fg\": light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300))),\n \"fg-emphasis\": light-dark(var(--indigo-800), var(--indigo-300)),\n \"bg\": var(--indigo-500),\n \"bg-subtle\": light-dark(var(--indigo-100), var(--indigo-900)),\n \"bg-muted\": light-dark(var(--indigo-200), var(--indigo-800)),\n \"border\": light-dark(var(--indigo-300), var(--indigo-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"success\": (\n \"base\": var(--green-500),\n \"fg\": light-dark(var(--green-600), var(--green-400)),\n \"fg-emphasis\": light-dark(var(--green-800), var(--green-300)),\n \"bg\": var(--green-500),\n \"bg-subtle\": light-dark(var(--green-100), var(--green-900)),\n \"bg-muted\": light-dark(var(--green-200), var(--green-800)),\n \"border\": light-dark(var(--green-300), var(--green-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"danger\": (\n \"base\": var(--red-500),\n \"fg\": light-dark(var(--red-600), var(--red-400)),\n \"fg-emphasis\": light-dark(var(--red-800), var(--red-300)),\n \"bg\": var(--red-500),\n \"bg-subtle\": light-dark(var(--red-100), var(--red-900)),\n \"bg-muted\": light-dark(var(--red-200), var(--red-800)),\n \"border\": light-dark(var(--red-300), var(--red-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"warning\": (\n \"base\": var(--yellow-500),\n \"fg\": light-dark(var(--yellow-700), var(--yellow-400)),\n \"fg-emphasis\": light-dark(var(--yellow-800), var(--yellow-300)),\n \"bg\": var(--yellow-500),\n \"bg-subtle\": light-dark(var(--yellow-100), var(--yellow-900)),\n \"bg-muted\": light-dark(var(--yellow-200), var(--yellow-800)),\n \"border\": light-dark(var(--yellow-300), var(--yellow-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body))),\n \"contrast\": var(--gray-900)\n ),\n \"info\": (\n \"base\": var(--cyan-500),\n \"fg\": light-dark(var(--cyan-600), var(--cyan-400)),\n \"fg-emphasis\": light-dark(var(--cyan-800), var(--cyan-300)),\n \"bg\": var(--cyan-500),\n \"bg-subtle\": light-dark(var(--cyan-100), var(--cyan-900)),\n \"bg-muted\": light-dark(var(--cyan-200), var(--cyan-800)),\n \"border\": light-dark(var(--cyan-300), var(--cyan-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body))),\n \"contrast\": var(--gray-900)\n ),\n \"inverse\": (\n \"base\": var(--gray-900),\n \"fg\": light-dark(var(--gray-900), var(--gray-200)),\n \"fg-emphasis\": light-dark(var(--gray-975), var(--white)),\n \"bg\": light-dark(var(--gray-900), var(--gray-025)),\n \"bg-subtle\": light-dark(var(--gray-100), var(--gray-900)),\n \"bg-muted\": light-dark(var(--gray-200), var(--gray-300)),\n \"border\": light-dark(var(--gray-400), var(--gray-100)),\n \"focus-ring\": color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body)),\n \"contrast\": light-dark(var(--white), var(--gray-900))\n ),\n \"secondary\": (\n \"base\": var(--gray-200),\n \"fg\": light-dark(var(--gray-600), var(--gray-400)),\n \"fg-emphasis\": light-dark(var(--gray-800), var(--gray-200)),\n \"bg\": light-dark(var(--gray-100), var(--gray-600)),\n \"bg-subtle\": light-dark(var(--gray-050), var(--gray-800)),\n \"bg-muted\": light-dark(var(--gray-100), var(--gray-700)),\n \"border\": light-dark(var(--gray-300), var(--gray-600)),\n \"focus-ring\": color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body)),\n \"contrast\": light-dark(var(--gray-900), var(--white))\n )\n) !default;\n// scss-docs-end theme-colors\n\n// mdo-do: consider using muted, subtle, ghost or something instead of linear scale?\n$theme-bgs: (\n \"body\": light-dark(var(--white), var(--gray-975)),\n \"1\": light-dark(var(--gray-025), var(--gray-950)),\n \"2\": light-dark(var(--gray-050), var(--gray-900)),\n \"3\": light-dark(var(--gray-100), var(--gray-800)),\n \"4\": light-dark(var(--gray-200), var(--gray-700)),\n \"fg\": var(--fg-body),\n \"white\": var(--white),\n \"black\": var(--black),\n \"transparent\": transparent,\n \"inherit\": inherit,\n) !default;\n\n$theme-fgs: (\n \"body\": light-dark(var(--gray-900), var(--gray-050)),\n \"1\": light-dark(var(--gray-800), var(--gray-200)),\n \"2\": light-dark(var(--gray-700), var(--gray-300)),\n \"3\": light-dark(var(--gray-600), var(--gray-500)),\n \"4\": light-dark(var(--gray-500), var(--gray-600)),\n \"bg\": var(--bg-body),\n \"white\": var(--white),\n \"black\": var(--black),\n \"inherit\": inherit,\n) !default;\n\n$theme-borders: (\n \"bg\": var(--bg-body),\n \"body\": light-dark(var(--gray-300), var(--gray-800)),\n \"muted\": light-dark(var(--gray-200), var(--gray-800)),\n \"subtle\": light-dark(var(--gray-100), var(--gray-900)),\n \"emphasized\": light-dark(var(--gray-400), var(--gray-600)),\n \"white\": var(--white),\n \"black\": var(--black),\n) !default;\n\n$util-opacity: (\n 10: .1,\n 20: .2,\n 30: .3,\n 40: .4,\n 50: .5,\n 60: .6,\n 70: .7,\n 80: .8,\n 90: .9,\n 100: 1\n) !default;\n","@use \"../mixins/visually-hidden\" as *;\n\n@layer helpers {\n .visually-hidden,\n .visually-hidden-focusable:not(:focus, :focus-within) {\n @include visually-hidden();\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Hide content visually while keeping it accessible to assistive technologies\n//\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin visually-hidden() {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n\n // Fix for positioned table caption that could become anonymous cells\n &:not(caption) {\n position: absolute !important;\n }\n\n // Fix to prevent overflowing children to become focusable\n * {\n overflow: hidden !important;\n }\n}\n\n// Use to only display content when it's focused, or one of its child elements is focused\n// (i.e. when focus is within the element/container that the class was applied to)\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/WAI/WCAG22/Techniques/general/G1.html\n\n@mixin visually-hidden-focusable() {\n &:not(:focus, :focus-within) {\n @include visually-hidden();\n }\n}\n","@use \"../config\" as *;\n\n@layer helpers {\n .stretched-link {\n &::#{$stretched-link-pseudo-element} {\n position: absolute;\n inset: 0;\n z-index: $stretched-link-z-index;\n content: \"\";\n }\n }\n}\n","@use \"../mixins/text-truncate\" as *;\n\n@layer helpers {\n .text-truncate {\n @include text-truncate();\n }\n}\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","@layer helpers {\n .vr {\n display: inline-block;\n align-self: stretch;\n width: var(--vr-border-width, var(--border-width));\n min-height: 1em;\n background-color: var(--border-color);\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/utilities\" as *;\n@use \"../utilities\" as *;\n\n@layer utilities {\n @include generate-utilities-loop($utilities, $breakpoints);\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"../layout/breakpoints\" as bp;\n\n// Utility generator\n\n// - Utilities can use three different types of selectors:\n// - class: .class\n// - attr-starts: [class^=\"class\"]\n// - attr-includes: [class*=\"class\"]\n// - Utilities can target children via `child-selector`, wrapped in :where() for zero specificity\n// - Utilities can generate regular CSS properties and CSS custom properties\n// - Utilities can be responsive or not\n// - Utilities can have state variants (e.g., hover, focus, active)\n// - Utilities can define local CSS variables\n//\n// CSS custom properties can be generated in two ways:\n//\n// 1. Property map with null values (CSS var receives the utility value):\n// \"bg-color\": (\n// property: (\n// \"--bg\": null,\n// \"background-color\": var(--bg)\n// ),\n// class: bg,\n// values: (\n// primary: var(--blue-500),\n// )\n// )\n// Generates:\n// .bg-primary {\n// --bs-bg: var(--bs-blue-500);\n// background-color: var(--bs-bg);\n// }\n//\n// 2. Variables map (static CSS custom properties on every class):\n// \"link-underline\": (\n// property: text-decoration-color,\n// class: link-underline,\n// variables: (\n// \"link-underline-opacity\": 1\n// ),\n// values: (...)\n// )\n// Generates:\n// .link-underline {\n// --bs-link-underline-opacity: 1;\n// text-decoration-color: ...;\n// }\n\n// Helper mixin to emit CSS custom properties from a utility's `variables` key.\n// When variables is a map, the provided static values are used on each class.\n// When variables is a list or single identifier, each variable receives the current utility value.\n@mixin generate-variables($utility, $value) {\n @if map.has-key($utility, variables) {\n $variables: map.get($utility, variables);\n @if meta.type-of($variables) == \"map\" {\n @each $var-key, $var-value in $variables {\n --#{$var-key}: #{$var-value};\n }\n } @else {\n // Treat as a list (or single identifier) — each variable gets the utility value\n @each $var-name in $variables {\n --#{$var-name}: #{$value};\n }\n }\n }\n}\n\n// Helper mixin to generate CSS properties for both legacy and property map approaches\n@mixin generate-properties($utility, $property-map, $properties, $value) {\n @if $property-map != null {\n // Property-Value Mapping approach\n @each $property, $default-value in $property-map {\n // If value is a map, check if it has a key for this property.\n // Otherwise, use default-value (or $value if default-value is null).\n $actual-value: $default-value;\n @if meta.type-of($value) == \"map\" and map.has-key($value, $property) {\n $actual-value: map.get($value, $property);\n } @else if $default-value == null {\n $actual-value: $value;\n }\n @if map.get($utility, important) {\n #{$property}: $actual-value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $actual-value;\n }\n }\n } @else {\n // Legacy approach\n @each $property in $properties {\n @if map.get($utility, important) {\n #{$property}: $value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $value;\n }\n }\n }\n}\n\n@mixin generate-utility($utility, $prefix: \"\") {\n // Validate required keys\n @if not map.has-key($utility, property) {\n @error \"Utility is missing required `property` key: #{$utility}\";\n }\n @if not map.has-key($utility, values) {\n @error \"Utility is missing required `values` key: #{$utility}\";\n }\n\n // Warn on unknown keys (likely typos)\n $valid-keys: property, values, class, selector, responsive, print, dark, important, state, variables, child-selector, enabled;\n @each $key in map.keys($utility) {\n @if not list.index($valid-keys, $key) {\n @warn \"Unknown utility key `#{$key}` found. Valid keys are: #{$valid-keys}\";\n }\n }\n\n // Validate boolean keys\n @each $bool-key in (responsive, print, dark, important, enabled) {\n @if map.has-key($utility, $bool-key) {\n $val: map.get($utility, $bool-key);\n @if $val != true and $val != false {\n @error \"Utility key `#{$bool-key}` should be a boolean (true or false), got: #{$val}\";\n }\n }\n }\n\n // Determine if we're generating a class, or an attribute selector\n $selector-type: \"class\";\n @if map.has-key($utility, selector) {\n $selector-type: map.get($utility, selector);\n // Validate selector type\n $valid-selectors: \"class\", \"attr-starts\", \"attr-includes\";\n @if not list.index($valid-selectors, $selector-type) {\n @error \"Invalid `selector` value `#{$selector-type}`. Must be one of: #{$valid-selectors}\";\n }\n }\n // Then get the class name to use in a class (e.g., .class) or in an attribute selector (e.g., [class^=\"class\"])\n $selector-class: map.get($utility, class);\n\n // Attribute selectors require a `class` key\n @if $selector-type != \"class\" and not map.has-key($utility, class) {\n @error \"Utility with `selector: #{$selector-type}` requires a `class` key.\";\n }\n\n // Get the list or map of values and ensure it's a map\n $values: map.get($utility, values);\n @if meta.type-of($values) != \"map\" {\n @if meta.type-of($values) == \"list\" {\n $list: ();\n @each $value in $values {\n $list: map.merge($list, ($value: $value));\n }\n $values: $list;\n } @else {\n $values: (null: $values);\n }\n }\n\n @each $key, $value in $values {\n $properties: map.get($utility, property);\n $property-map: null;\n $custom-class: \"\";\n\n // Check if property is a map (Property-Value Mapping approach)\n @if meta.type-of($properties) == \"map\" {\n $property-map: $properties;\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n }\n } @else {\n // Legacy approach: multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if meta.type-of($properties) == \"string\" {\n $properties: list.append((), $properties);\n }\n // Use custom class if present, otherwise use the first value from the list of properties\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n } @else {\n $custom-class: list.nth($properties, 1);\n }\n @if $custom-class == null {\n $custom-class: \"\";\n }\n }\n\n // State params to generate state variants\n $state: ();\n @if map.has-key($utility, state) {\n $state: map.get($utility, state);\n }\n\n // Don't add a dash before value key if value key is null (e.g. with shadow class)\n $custom-class-modifier: \"\";\n @if $key {\n @if $custom-class == \"\" {\n $custom-class-modifier: $key;\n } @else {\n $custom-class-modifier: \"-\" + $key;\n }\n }\n\n // Build the class name fragment (without prefix or dot) for reuse in state variants\n $class-name: \"\";\n @if $selector-type == \"class\" {\n @if $custom-class != \"\" {\n $class-name: $custom-class + $custom-class-modifier;\n } @else if $selector-class != null and $selector-class != \"\" {\n $class-name: $selector-class + $custom-class-modifier;\n } @else {\n $class-name: $custom-class-modifier;\n }\n }\n\n $selector: \"\";\n @if $selector-type == \"class\" {\n $selector: \".#{$prefix + $class-name}\";\n } @else if $selector-type == \"attr-starts\" {\n $selector: \"[class^=\\\"#{$selector-class}\\\"]\";\n } @else if $selector-type == \"attr-includes\" {\n $selector: \"[class*=\\\"#{$selector-class}\\\"]\";\n }\n\n // Apply child-selector wrapping if present (wraps in :where() for zero specificity)\n $child-sel: null;\n @if map.has-key($utility, child-selector) {\n $child-sel: map.get($utility, child-selector);\n }\n\n $final-selector: $selector;\n @if $child-sel {\n $final-selector: \":where(#{$selector} #{$child-sel})\";\n }\n\n #{$final-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n\n // Generate state variants (e.g., hover:link-10 instead of link-10-hover)\n @if $state != () {\n @each $state-variant in $state {\n $state-selector: \".#{$prefix}#{$state-variant}\\\\:#{$class-name}:#{$state-variant}\";\n @if $child-sel {\n $state-selector: \":where(#{$state-selector} #{$child-sel})\";\n }\n\n #{$state-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n }\n }\n }\n}\n\n// Generates all utility classes: base, responsive, print, and dark.\n// Extracted so that tests can call this mixin directly with a custom $utilities map\n// rather than having to mirror the loop conditions inline.\n@mixin generate-utilities-loop($utilities, $breakpoints) {\n // Base + responsive (one pass per breakpoint)\n @each $breakpoint in map.keys($breakpoints) {\n @include bp.media-breakpoint-up($breakpoint, $breakpoints) {\n $prefix: bp.breakpoint-prefix($breakpoint, $breakpoints);\n\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and (map.get($utility, responsive) or $prefix == \"\") {\n @include generate-utility($utility, $prefix);\n }\n }\n }\n }\n\n // Print utilities\n @media print {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, print) == true {\n @include generate-utility($utility, \"print\\\\:\");\n }\n }\n }\n\n // Dark utilities\n @media (prefers-color-scheme: dark) {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, dark) == true {\n @include generate-utility($utility, \"dark\\\\:\");\n }\n }\n }\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["../../scss/_banner.scss","../../scss/_colors.scss","../../scss/mixins/_tokens.scss","bootstrap-utilities.css","../../scss/_root.scss","../../scss/helpers/_focus-ring.scss","../../scss/helpers/_icon-link.scss","../../scss/_config.scss","../../scss/mixins/_transition.scss","../../scss/helpers/_position.scss","../../scss/layout/_breakpoints.scss","../../scss/helpers/_stacks.scss","../../scss/helpers/_theme-colors.scss","../../scss/_theme.scss","../../scss/helpers/_visually-hidden.scss","../../scss/mixins/_visually-hidden.scss","../../scss/helpers/_stretched-link.scss","../../scss/helpers/_text-truncation.scss","../../scss/mixins/_text-truncate.scss","../../scss/helpers/_vr.scss","../../scss/utilities/_api.scss","../../scss/mixins/_utilities.scss"],"names":[],"mappings":"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yDO;ElB2rBb;EkBxmBE;IA5II,iBAyDO;ElB8rBb;EkB3mBE;IA5II,gBAyDO;ElBisBb;EkB9mBE;IA5II,gBAyDO;ElBosBb;EkBjnBE;IA5II,kBAyDO;ElBusBb;EkBpnBE;IA5II,mBAyDO;ElB0sBb;EkBvnBE;IA5II,kBAyDO;ElB6sBb;EkB1nBE;IA5II,gBAyDO;ElBgtBb;EkB7nBE;IA5II,kBAyDO;ElBmtBb;EkBhoBE;IA5II,mBAyDO;ElBstBb;EkBnoBE;IA5II,kBAyDO;ElBytBb;EkBtoBE;IA5II,2BAoDG;ElBiuBT;EkBzoBE;IA5II,oBAoDG;ElBouBT;EkB5oBE;IA5II,eAyDO;ElBkuBb;EkB/oBE;IA5II,qBAyDO;ElBquBb;EkBlpBE;IA5II,cAyDO;ElBwuBb;EkBrpBE;IA5II,aAyDO;ElB2uBb;EkBxpBE;IA5II,oBAyDO;ElB8uBb;EkB3pBE;IA5II,cAyDO;ElBivBb;EkB9pBE;IA5II,kBAyDO;ElBovBb;EkBjqBE;IA5II,mBAyDO;ElBuvBb;EkBpqBE;IA5II,aAyDO;ElB0vBb;EkBvqBE;IA5II,oBAyDO;ElB6vBb;EkB1qBE;IA5II,iBAyDO;ElBgwBb;EkB7qBE;IA5II,kBAyDO;ElBmwBb;EkBhrBE;IA5II,aAyDO;ElBswBb;EkBnrBE;IA5II,gCAoDG;ElB8wBT;EkBtrBE;IA5II,mCAoDG;ElBixBT;EkBzrBE;IA5II,mCAoDG;ElBoxBT;EkB5rBE;IA5II,gBAoDG;ElBuxBT;EkB/rBE;IA5II,gBAyDO;ElBqxBb;EkBlsBE;IA5II,kBAyDO;ElBwxBb;EkBrsBE;IA5II,kBAyDO;ElB2xBb;EkBxsBE;IA5II,eAyDO;ElB8xBb;EkB3sBE;IA5II,gBAyDO;ElBiyBb;EkB9sBE;IA5II,MAoDG;ElByyBT;EkBjtBE;IA5II,QAoDG;ElB4yBT;EkBptBE;IA5II,SAoDG;ElB+yBT;EkBvtBE;IA5II,SAoDG;ElBkzBT;EkB1tBE;IA5II,WAoDG;ElBqzBT;EkB7tBE;IA5II,YAoDG;ElBwzBT;EkBhuBE;IA5II,qBAoDG;ElB2zBT;EkBnuBE;IA5I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oDG;ElB2qCT;EkBnlCE;IA5II,6BAoDG;ElB8qCT;EkBtlCE;IA5II,oBAoDG;ElBirCT;EkBzlCE;IA5II,kBAoDG;ElBorCT;EkB5lCE;IA5II,qBAoDG;ElBurCT;EkB/lCE;IA5II,sBAoDG;ElB0rCT;EkBlmCE;IA5II,mBAoDG;ElB6rCT;EkBrmCE;IA5II,iBAoDG;ElBgsCT;EkBxmCE;IA5II,oBAoDG;ElBmsCT;EkB3mCE;IA5II,uBAoDG;ElBssCT;EkB9mCE;IA5II,qBAoDG;ElBysCT;EkBjnCE;IA5II,mBAoDG;ElB4sCT;EkBpnCE;IA5II,qBAoDG;ElB+sCT;EkBvnCE;IA5II,oBAoDG;ElBktCT;EkB1nCE;IA5II,yBAoDG;ElBqtCT;EkB7nCE;IA5II,uBAoDG;ElBwtCT;EkBhoCE;IA5II,qBAoDG;ElB2tCT;EkBnoCE;IA5II,4BAoDG;ElB8tCT;EkBtoCE;IA5II,2BAoDG;ElBiuCT;EkBzoCE;IA5II,sBAoDG;ElBouCT;EkB5oCE;IA5II,gBAoDG;ElBuuCT;EkB/oCE;IA5II,sBAoDG;ElB0uCT;EkBlpCE;IA5II,oBAoDG;ElB6uCT;EkBrpCE;IA5II,kBAoDG;ElBgvCT;EkBxpCE;IA5II,oBAoDG;ElBmvCT;EkB3pCE;IA5II,mBAoDG;ElBsvCT;EkB9pCE;IA5II,kBAoDG;ElByvCT;EkBjqCE;IA5II,gBAoDG;ElB4vCT;EkBpqCE;IA5II,mBAoDG;ElB+vCT;EkBvqCE;IA5II,oBAoDG;ElBkwCT;EkB1qCE;IA5II,0BAoDG;ElBqwCT;EkB7qCE;IA5II,qCAoDG;ElBwwCT;EkBhrCE;IA5II,qCAoDG;ElB2wCT;EkBnrCE;IA5II,qCAoDG;ElB8wCT;EkBtrCE;IA5II,qCAoDG;ElBixCT;EkBzrCE;IA5II,mBAoDG;ElBoxCT;EkB5rCE;IA5II,mBAyDO;ElBkxCb;EkB/rCE;IA5II,sBAyDO;ElBqxCb;EkBlsCE;IA5II,qBAyDO;ElBwxCb;EkBrsCE;IA5II,SAoDG;ElBgyCT;EkBxsCE;IA5II,QAoDG;ElBmyCT;EkB3sCE;IA5II,QAoDG;ElBsyCT;EkB9sCE;IA5II,QAoDG;ElByyCT;EkBjtCE;IA5II,QAoDG;ElB4yCT;EkBptCE;IA5II,QAoDG;ElB+yCT;EkBvtCE;IA5II,QAoDG;ElBkzCT;EkB1tCE;IA5II,QAoDG;ElBqzCT;EkB7tCE;IA5II,SAoDG;ElBwzCT;EkBhuCE;IA5II,eAoDG;ElB2zCT;EkBnuCE;IA5II,cAoDG;ElB8zCT;EkBtuCE;IA5II,eAoDG;ElBi0CT;EkBzuCE;IA5II,YAoDG;ElBo0CT;EkB5uCE;IA5II,eAoDG;ElBu0CT;EkB/uCE;IA5II,cAoDG;ElB00CT;EkBlvCE;IA5II,YAoDG;ElB60CT;EkBrvCE;IA5II,cAoDG;ElBg1CT;EkBxvCE;IA5II,YAoDG;ElBm1CT;EkB3vCE;IA5II,YAoDG;ElBs1CT;EkB9vCE;IA5II,gBAoDG;ElBy1CT;EkBjwCE;IA5II,sBAoDG;ElB41CT;EkBpwCE;IA5II,qBAoDG;ElB+1CT;EkBvwCE;IA5II,sBAoDG;ElBk2CT;EkB1wCE;IA5II,mBAoDG;ElBq2CT;EkB7wCE;IA5II,sBAoDG;ElBw2CT;EkBhxCE;IA5II,qBAoDG;ElB22CT;EkBnxCE;IA5II,mBAoDG;ElB82CT;EkBtxCE;IA5II,qBAoDG;ElBi3CT;EkBzxCE;IA5II,mBAoDG;ElBo3CT;EkB5xCE;IA5II,mBAoDG;ElBu3CT;EkB/xCE;IA5II,eAoDG;ElB03CT;EkBlyCE;IA5II,qBAoDG;ElB63CT;EkBryCE;IA5II,oBAoDG;ElBg4CT;EkBxyCE;IA5II,qBAoDG;ElBm4CT;EkB3yCE;IA5II,kBAoDG;ElBs4CT;EkB9yCE;IA5II,qBAoDG;ElBy4CT;EkBjzCE;IA5II,oBAoDG;ElB44CT;EkBpzCE;IA5II,kBAoDG;ElB+4CT;EkBvzCE;IA5II,oBAoDG;ElBk5CT;EkB1zCE;IA5II,kBAoDG;ElBq5CT;EkB7zCE;IA5II,kBAoDG;ElBw5CT;EkBh0CE;IA5II,qBAoDG;ElB25CT;EkBn0CE;IA5II,2BAoDG;ElB85CT;EkBt0CE;IA5II,0BAoDG;ElBi6CT;EkBz0CE;IA5II,2BAoDG;ElBo6CT;EkB50CE;IA5II,wBAoDG;ElBu6CT;EkB/0CE;IA5II,2BAoDG;ElB06CT;EkBl1CE;IA5II,0BAoDG;ElB66CT;EkBr1CE;IA5II,wBAoDG;ElBg7CT;EkBx1CE;IA5II,0BAoDG;ElBm7CT;EkB31CE;IA5II,wBAoDG;ElBs7CT;EkB91CE;IA5II,wBAoDG;ElBy7CT;EkBj2CE;IA5II,oBAoDG;ElB47CT;EkBp2CE;IA5II,0BAoDG;ElB+7CT;EkBv2CE;IA5II,yBAoDG;ElBk8CT;EkB12CE;IA5II,0BAoDG;ElBq8CT;EkB72CE;IA5II,uBAoDG;ElBw8CT;EkBh3CE;IA5II,0BAoDG;ElB28CT;EkBn3CE;IA5II,yBAoDG;ElB88CT;EkBt3CE;IA5II,uBAoDG;ElBi9CT;EkBz3CE;IA5II,yBAoDG;ElBo9CT;EkB53CE;IA5II,uBAoDG;ElBu9CT;EkB/3CE;IA5II,2BAoDG;ElB09CT;EkBl4CE;IA5II,0BAoDG;ElB69CT;EkBr4CE;IA5II,uBAoDG;ElBg+CT;EkBx4CE;IA5II,mBAoDG;ElBm+CT;EkB34CE;IA5II,yBAoDG;ElBs+CT;EkB94CE;IA5II,wBAoDG;ElBy+CT;EkBj5CE;IA5II,yBAoDG;ElB4+CT;EkBp5CE;IA5II,sBAoDG;ElB++CT;EkBv5CE;IA5II,yBAoDG;ElBk/CT;EkB15CE;IA5II,wBAoDG;ElBq/CT;EkB75CE;IA5II,sBAoDG;ElBw/CT;EkBh6CE;IA5II,wBAoDG;ElB2/CT;EkBn6CE;IA5II,sBAoDG;ElB8/CT;EkBt6CE;IA5II,sBAoDG;ElBigDT;EkBz6CE;IA5II,sBAoDG;ElBogDT;EkB56CE;IA5II,4BAoDG;ElBugDT;EkB/6CE;IA5II,2BAoDG;ElB0gDT;EkBl7CE;IA5II,4BAoDG;ElB6gDT;EkBr7CE;IA5II,yBAoDG;ElBghDT;EkBx7CE;IA5II,4BAoDG;ElBmhDT;EkB37CE;IA5II,2BAoDG;ElBshDT;EkB97CE;IA5II,yBAoDG;ElByhDT;EkBj8CE;IA5II,2BAoDG;ElB4hDT;EkBp8CE;IA5II,yBAoDG;ElB+hDT;EkBv8CE;IA5II,6BAoDG;ElBkiDT;EkB18CE;IA5II,4BAoDG;ElBqiDT;EkB78CE;IA5II,yBAoDG;ElBwiDT;EkBh9CE;IA5II,UAoDG;ElB2iDT;EkBn9CE;IA5II,gBAoDG;ElB8iDT;EkBt9CE;IA5II,eAoDG;ElBijDT;EkBz9CE;IA5II,gBAoDG;ElBojDT;EkB59CE;IA5II,aAoDG;ElBujDT;EkB/9CE;IA5II,gBAoDG;ElB0jDT;EkBl+CE;IA5II,eAoDG;ElB6jDT;EkBr+CE;IA5II,aAoDG;ElBgkDT;EkBx+CE;IA5II,eAoDG;ElBmkDT;EkB3+CE;IA5II,aAoDG;ElBskDT;EkB9+CE;IA5II,iBAoDG;ElBykDT;EkBj/CE;IA5II,uBAoDG;ElB4kDT;EkBp/CE;IA5II,sBAoDG;ElB+kDT;EkBv/CE;IA5II,uBAoDG;ElBklDT;EkB1/CE;IA5II,oBAoDG;ElBqlDT;EkB7/CE;IA5II,uBAoDG;ElBwlDT;EkBhgDE;IA5II,sBAoDG;ElB2lDT;EkBngDE;IA5II,oBAoDG;ElB8lDT;EkBtgDE;IA5II,sBAoDG;ElBimDT;EkBzgDE;IA5II,oBAoDG;ElBomDT;EkB5gDE;IA5II,gBAoDG;ElBumDT;EkB/gDE;IA5II,sBAoDG;ElB0mDT;EkBlhDE;IA5II,qBAoDG;ElB6mDT;EkBrhDE;IA5II,sBAoDG;ElBgnDT;EkBxhDE;IA5II,mBAoDG;ElBmnDT;EkB3hDE;IA5II,sBAoDG;ElBsnDT;EkB9hDE;IA5II,qBAoDG;ElBynDT;EkBjiDE;IA5II,mBAoDG;ElB4nDT;EkBpiDE;IA5II,qBAoDG;ElB+nDT;EkBviDE;IA5II,mBAoDG;ElBkoDT;EkB1iDE;IA5II,sBAoDG;ElBqoDT;EkB7iDE;IA5II,4BAoDG;ElBwoDT;EkBhjDE;IA5II,2BAoDG;ElB2oDT;EkBnjDE;IA5II,4BAoDG;ElB8oDT;EkBtjDE;IA5II,yBAoDG;ElBipDT;EkBzjDE;IA5II,4BAoDG;ElBopDT;EkB5jDE;IA5II,2BAoDG;ElBupDT;EkB/jDE;IA5II,yBAoDG;ElB0pDT;EkBlkDE;IA5II,2BAoDG;ElB6pDT;EkBrkDE;IA5II,yBAoDG;ElBgqDT;EkBxkDE;IA5II,qBAoDG;ElBmqDT;EkB3kDE;IA5II,2BAoDG;ElBsqDT;EkB9kDE;IA5II,0BAoDG;ElByqDT;EkBjlDE;IA5II,2BAoDG;ElB4qDT;EkBplDE;IA5II,wBAoDG;ElB+qDT;EkBvlDE;IA5II,2BAoDG;ElBkrDT;EkB1lDE;IA5II,0BAoDG;ElBqrDT;EkB7lDE;IA5II,wBAoDG;ElBwrDT;EkBhmDE;IA5II,0BAoDG;ElB2rDT;EkBnmDE;IA5II,wBAoDG;ElB8rDT;EkBtmDE;IA5II,oBAoDG;ElBisDT;EkBzmDE;IA5II,0BAoDG;ElBosDT;EkB5mDE;IA5II,yBAoDG;ElBusDT;EkB/mDE;IA5II,0BAoDG;ElB0sDT;EkBlnDE;IA5II,uBAoDG;ElB6sDT;EkBrnDE;IA5II,0BAoDG;ElBgtDT;EkBxnDE;IA5II,yBAoDG;ElBmtDT;EkB3nDE;IA5II,uBAoDG;ElBstDT;EkB9nDE;IA5II,yBAoDG;ElBytDT;EkBjoDE;IA5II,uBAoDG;ElB4tDT;EkBpoDE;IA5II,uBAoDG;ElB+tDT;EkBvoDE;IA5II,6BAoDG;ElBkuDT;EkB1oDE;IA5II,4BAoDG;ElBquDT;EkB7oDE;IA5II,6BAoDG;ElBwuDT;EkBhpDE;IA5II,0BAoDG;ElB2uDT;EkBnpDE;IA5II,6BAoDG;ElB8uDT;EkBtpDE;IA5II,4BAoDG;ElBivDT;EkBzpDE;IA5II,0BAoDG;ElBovDT;EkB5pDE;IA5II,4BAoDG;ElBuvDT;EkB/pDE;IA5II,0BAoDG;ElB0vDT;EkBlqDE;IA5II,MAoDG;ElB6vDT;EkBrqDE;IA5II,YAoDG;ElBgwDT;EkBxqDE;IA5II,WAoDG;ElBmwDT;EkB3qDE;IA5II,YAoDG;ElBswDT;EkB9qDE;IA5II,SAoDG;ElBywDT;EkBjrDE;IA5II,YAoDG;ElB4wDT;EkBprDE;IA5II,WAoDG;ElB+wDT;EkBvrDE;IA5II,SAoDG;ElBkxDT;EkB1rDE;IA5II,WAoDG;ElBqxDT;EkB7rDE;IA5II,SAoDG;ElBwxDT;EkBhsDE;IA5II,UAoDG;ElB2xDT;EkBnsDE;IA5II,gBAoDG;ElB8xDT;EkBtsDE;IA5II,eAoDG;ElBiyDT;EkBzsDE;IA5II,gBAoDG;ElBoyDT;EkB5sDE;IA5II,aAoDG;ElBuyDT;EkB/sDE;IA5II,gBAoDG;ElB0yDT;EkBltDE;IA5II,eAoDG;ElB6yDT;EkBrtDE;IA5II,aAoDG;ElBgzDT;EkBxtDE;IA5II,eAoDG;ElBmzDT;EkB3tDE;IA5II,aAoDG;ElBszDT;EkB9tDE;IA5II,aAoDG;ElByzDT;EkBjuDE;IA5II,mBAoDG;ElB4zDT;EkBpuDE;IA5II,kBAoDG;ElB+zDT;EkBvuDE;IA5II,mBAoDG;ElBk0DT;EkB1uDE;IA5II,gBAoDG;ElBq0DT;EkB7uDE;IA5II,mBAoDG;ElBw0DT;EkBhvDE;IA5II,kBAoDG;ElB20DT;EkBnvDE;IA5II,gBAoDG;ElB80DT;EkBtvDE;IA5II,kBAoDG;ElBi1DT;EkBzvDE;IA5II,gBAoDG;ElBo1DT;EkB5vDE;IA5II,oBAoDG;ElBu1DT;EkB/vDE;IA5II,0BAoDG;ElB01DT;EkBlwDE;IA5II,yBAoDG;ElB61DT;EkBrwDE;IA5II,0BAoDG;ElBg2DT;EkBxwDE;IA5II,uBAoDG;ElBm2DT;EkB3wDE;IA5II,0BAoDG;ElBs2DT;EkB9wDE;IA5II,yBAoDG;ElBy2DT;EkBjxDE;IA5II,uBAoDG;ElB42DT;EkBpxDE;IA5II,yBAoDG;ElB+2DT;EkBvxDE;IA5II,uBAoDG;ElBk3DT;EkB1xDE;IA5II,mBAoDG;ElBq3DT;EkB7xDE;IA5II,yBAoDG;ElBw3DT;EkBhyDE;IA5II,wBAoDG;ElB23DT;EkBnyDE;IA5II,yBAoDG;ElB83DT;EkBtyDE;IA5II,sBAoDG;ElBi4DT;EkBzyDE;IA5II,yBAoDG;ElBo4DT;EkB5yDE;IA5II,wBAoDG;ElBu4DT;EkB/yDE;IA5II,sBAoDG;ElB04DT;EkBlzDE;IA5II,wBAoDG;ElB64DT;EkBrzDE;IA5II,sBAoDG;ElBg5DT;EkBxzDE;IA5II,yFAoDG;ElBm5DT;EkB3zDE;IA5II,sBAoDG;ElBs5DT;EkB9zDE;IA5I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lBgwET;EkBxqEE;IA5II,iEAoDG;ElBmwET;EkB9pEM;IAzJA,iEAoDG;ElBswET;EkB9qEE;IA5II,iEAoDG;ElBywET;EkBpqEM;IAzJA,iEAoDG;ElB4wET;EkBprEE;IA5II,iEAoDG;ElB+wET;EkB1qEM;IAzJA,iEAoDG;ElBkxET;EkB1rEE;IA5II,2BAoDG;ElBqxET;EkBhrEM;IAzJA,2BAoDG;ElBwxET;EkBhsEE;IA5II,8BAoDG;ElB2xET;EkBtrEM;IAzJA,8BAoDG;ElB8xET;EkBtsEE;IA5II,6BAoDG;ElBiyET;EkB5rEM;IAzJA,6BAoDG;ElBoyET;EkB5sEE;IA5II,8BAoDG;ElBuyET;EkBlsEM;IAzJA,8BAoDG;ElB0yET;EkBltEE;IA5II,yEAoDG;ElB6yET;EkBrtEE;IA5II,wHAoDG;ElBgzET;EkBxtEE;IA5II,2EAoDG;ElBmzET;EkB3tEE;IA5II,uEAoDG;ElBszET;EkB9tEE;IA5II,6EAoDG;ElByzET;EkBjuEE;IA5II,yEAoDG;ElB4zET;EkBpuEE;IA5II,yEAoDG;ElB+zET;EkBvuEE;IA5II,yEAoDG;ElBk0ET;EkB1uEE;IA5II,iFAoDG;ElBq0ET;EkBhuEM;IAzJA,iFAoDG;ElBw0ET;EkBhvEE;IA5II,iFAoDG;ElB20ET;EkBtuEM;IAzJA,iFAoDG;ElB80ET;EkBtvEE;IA5II,iFAoDG;ElBi1ET;EkB5uEM;IAzJA,iFAoDG;ElBo1ET;EkB5vEE;IA5II,iFAoDG;ElBu1ET;EkBlvEM;IAzJA,iFAoDG;ElB01ET;EkBlwEE;IA5II,iFAoDG;ElB61ET;EkBxvEM;IAzJA,iFAoDG;ElBg2ET;EkBxwEE;IA5II,iFAoDG;ElBm2ET;EkB9vEM;IAzJA,iFAoDG;ElBs2ET;EkB9wEE;IA5II,iFAoDG;ElBy2ET;EkBpwEM;IAzJA,iFAoDG;ElB42ET;EkBpxEE;IA5II,iFAoDG;ElB+2ET;EkB1wEM;IAzJA,iFAoDG;ElBk3ET;EkB1xEE;IA5II,iFAoDG;ElBq3ET;EkBhxEM;IAzJA,iFAoDG;ElBw3ET;EkBhyEE;IA5II,2CAoDG;ElB23ET;EkBt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kBz2FA;MA5II,cAyDO;IlB+7FX;IkB52FA;MA5II,aAyDO;IlBk8FX;IkB/2FA;MA5II,oBAyDO;IlBq8FX;IkBl3FA;MA5II,cAyDO;IlBw8FX;IkBr3FA;MA5II,kBAyDO;IlB28FX;IkBx3FA;MA5II,mBAyDO;IlB88FX;IkB33FA;MA5II,aAyDO;IlBi9FX;IkB93FA;MA5II,oBAyDO;IlBo9FX;IkBj4FA;MA5II,iBAyDO;IlBu9FX;IkBp4FA;MA5II,kBAyDO;IlB09FX;IkBv4FA;MA5II,aAyDO;IlB69FX;IkB14FA;MA5II,cAoDG;IlBq+FP;IkB74FA;MA5II,mBAyDO;IlBm+FX;IkBh5FA;MA5II,sBAyDO;IlBs+FX;IkBn5FA;MA5II,2BAyDO;IlBy+FX;IkBt5FA;MA5II,8BAyDO;IlB4+FX;IkBz5FA;MA5II,YAoDG;IlBo/FP;IkB55FA;MA5II,YAoDG;IlBu/FP;IkB/5FA;MA5II,cAoDG;IlB0/FP;IkBl6FA;MA5II,cAoDG;IlB6/FP;IkBr6FA;MA5II,eAyDO;IlB2/FX;IkBx6FA;MA5II,iBAyDO;IlB8/FX;IkB36FA;MA5II,uBAyDO;IlBigGX;IkB96FA;MA5II,2BAoDG;IlBygGP;IkBj7FA;MA5II,yBAoDG;IlB4gGP;IkBp7FA;MA5II,uBAoDG;IlB+gGP;IkBv7FA;MA5II,8BAoDG;IlBkhGP;IkB17FA;MA5II,6BAoDG;IlBqhGP;IkB77FA;MA5II,6BAoDG;IlBwhGP;IkBh8FA;MA5II,oBAoDG;IlB2hGP;IkBn8FA;MA5II,kBAoDG;IlB8hGP;IkBt8FA;MA5II,qBAoDG;IlBiiGP;IkBz8FA;MA5II,sBAoDG;IlBoiGP;IkB58FA;MA5II,mBAoDG;IlBuiGP;IkB/8FA;MA5II,iBAoDG;IlB0iGP;IkBl9FA;MA5II,oBAoDG;IlB6iGP;IkBr9FA;MA5II,uBAoDG;IlBgjGP;IkBx9FA;MA5II,qBAoDG;IlBmjGP;IkB39FA;MA5II,mBAoDG;IlBsjGP;IkB99FA;MA5II,qBAoDG;IlByjGP;IkBj+FA;MA5II,oBAoDG;IlB4jGP;IkBp+FA;MA5II,yBAoDG;IlB+jGP;IkBv+FA;MA5II,uBAoDG;IlBkkGP;IkB1+FA;MA5II,qBAoDG;IlBqkGP;IkB7+FA;MA5II,4BAoDG;IlBwkGP;IkBh/FA;MA5II,2BAoDG;IlB2kGP;IkBn/FA;MA5II,sBAoDG;IlB8kGP;IkBt/FA;MA5II,gBAoDG;IlBilGP;IkBz/FA;MA5II,sBAoDG;IlBolGP;IkB5/FA;MA5II,oBAoDG;IlBulGP;IkB//FA;MA5II,kBAoDG;IlB0lGP;IkBlgGA;MA5II,oBAoDG;IlB6lGP;IkBrgGA;MA5II,mBAoDG;IlBgmGP;IkBxgGA;MA5II,kBAoDG;IlBmmGP;IkB3gGA;MA5II,gBAoDG;IlBsmGP;IkB9gGA;MA5II,mBAoDG;IlBymGP;IkBjhGA;MA5II,oBAoDG;IlB4mGP;IkBphGA;MA5II,0BAoDG;IlB+mGP;IkBvhGA;MA5II,qCAoDG;IlBknGP;IkB1hGA;MA5II,qCAoDG;IlBqnGP;IkB7hGA;MA5II,qCAoDG;IlBwnGP;IkBhiGA;MA5II,qCAoDG;IlB2nGP;IkBniGA;MA5II,mBAoDG;IlB8nGP;IkBtiGA;MA5II,mBAyDO;IlB4nGX;IkBziGA;MA5II,sBAyDO;IlB+nGX;IkB5iGA;MA5II,qBAyDO;IlBkoGX;IkB/iGA;MA5II,SAoDG;IlB0oGP;IkBljGA;MA5II,QAoDG;IlB6oGP;IkBrjGA;MA5II,QAoDG;IlBgpGP;IkBxjGA;MA5II,QAoDG;IlBmpGP;IkB3jGA;MA5II,QAoDG;IlBspGP;IkB9jGA;MA5II,QAoDG;IlBypGP;IkBjkGA;MA5II,QAoDG;IlB4pGP;IkBpkGA;MA5II,QAoDG;IlB+pGP;IkBvkGA;MA5II,SAoDG;IlBkqGP;IkB1kGA;MA5II,eAoDG;IlBqqGP;IkB7kGA;MA5II,cAoDG;IlBwqGP;IkBhlGA;MA5II,eAoDG;IlB2qGP;IkBnlGA;MA5II,YAoDG;IlB8qGP;IkBtlGA;MA5II,eAoDG;IlBirGP;IkBzlGA;MA5II,cAoDG;IlBorGP;IkB5lGA;MA5II,YAoDG;IlBurGP;IkB/lGA;MA5II,cAoDG;IlB0rGP;IkBlmGA;MA5II,YAoDG;IlB6rGP;IkBrmGA;MA5II,YAoDG;IlBgsGP;IkBxmGA;MA5II,gBAoDG;IlBmsGP;IkB3mGA;MA5II,sBAoDG;IlBssGP;IkB9mGA;MA5II,qBAoDG;IlBysGP;IkBjnGA;MA5II,sBAoDG;IlB4sGP;IkBpnGA;MA5II,mBAoDG;IlB+sGP;IkBvnGA;MA5II,sBAoDG;IlBktGP;IkB1nGA;MA5II,qBAoDG;IlBqtGP;IkB7nGA;MA5II,mBAoDG;IlBwtGP;IkBhoGA;MA5II,qBAoDG;IlB2tGP;IkBnoGA;MA5II,mBAoDG;IlB8tGP;IkBtoGA;MA5II,mBAoDG;IlBiuGP;IkBzoGA;MA5II,eAoDG;IlBouGP;IkB5oGA;MA5II,qBAoDG;IlBuuGP;IkB/oGA;MA5II,oBAoDG;IlB0uGP;IkBlpGA;MA5II,qBAoDG;IlB6uGP;IkBrpGA;MA5II,kBAoDG;IlBgvGP;IkBxpGA;MA5II,qBAoDG;IlBmvGP;IkB3pGA;MA5II,oBAoDG;IlBsvGP;IkB9pGA;MA5II,kBAoDG;IlByvGP;IkBjqGA;MA5II,oBAoDG;IlB4vGP;IkBpqGA;MA5II,kBAoDG;IlB+vGP;IkBvqGA;MA5II,kBAoDG;IlBkwGP;IkB1qGA;MA5II,qBAoDG;IlBqwGP;IkB7qGA;MA5II,2BAoDG;IlBwwGP;IkBhrGA;MA5II,0BAoDG;IlB2wGP;IkBnrGA;MA5II,2BAoDG;IlB8wGP;IkBtrGA;MA5II,wBAoDG;IlBixGP;IkBzrGA;MA5II,2BAoDG;IlBoxGP;IkB5rGA;MA5II,0BAoDG;IlBuxGP;IkB/rGA;MA5II,wBAoDG;IlB0xGP;IkBlsGA;MA5II,0BAoDG;IlB6xGP;IkBrsGA;MA5II,wBAoDG;IlBgyGP;IkBxsGA;MA5II,wBAoDG;IlBmyGP;IkB3sGA;MA5II,oBAoDG;IlBsyGP;IkB9sGA;MA5II,0BAoDG;IlByyGP;IkBjtGA;MA5II,yBAoDG;IlB4yGP;IkBptGA;MA5II,0BAoDG;IlB+yGP;IkBvtGA;MA5II,uBAoDG;IlBkzGP;IkB1tGA;MA5II,0BAoDG;IlBqzGP;IkB7tGA;MA5II,yBAoDG;IlBwzGP;IkBhuGA;MA5II,uBAoDG;IlB2zGP;IkBnuGA;MA5II,yBAoDG;IlB8zGP;IkBtuGA;MA5II,uBAoDG;IlBi0GP;IkBzuGA;MA5II,2BAoDG;IlBo0GP;IkB5uGA;MA5II,0BAoDG;IlBu0GP;IkB/uGA;MA5II,uBAoDG;IlB00GP;IkBlvGA;MA5II,mBAoDG;IlB60GP;IkBrvGA;MA5II,yBAoDG;IlBg1GP;IkBxvGA;MA5II,wBAoDG;IlBm1GP;IkB3vGA;MA5II,yBAoDG;IlBs1GP;IkB9vGA;MA5II,sBAoDG;IlBy1GP;IkBjwGA;MA5II,yBAoDG;IlB41GP;IkBpwGA;MA5II,wBAoDG;IlB+1GP;IkBvwGA;MA5II,sBAoDG;IlBk2GP;IkB1wGA;MA5II,wBAoDG;IlBq2GP;IkB7wGA;MA5II,sBAoDG;IlBw2GP;IkBhxGA;MA5II,sBAoDG;IlB22GP;IkBnxGA;MA5II,sBAoDG;IlB82GP;IkBtxGA;MA5II,4BAoDG;IlBi3GP;IkBzxGA;MA5II,2BAoDG;IlBo3GP;IkB5xGA;MA5II,4BAoDG;IlBu3GP;IkB/xGA;MA5II,yBAoDG;IlB03GP;IkBlyGA;MA5II,4BAoDG;IlB63GP;IkBryGA;MA5II,2BAoDG;IlBg4GP;IkBxyGA;MA5II,yBAoDG;IlBm4GP;IkB3yGA;MA5II,2BAoDG;IlBs4GP;IkB9yGA;MA5II,yBAoDG;IlBy4GP;IkBjzGA;MA5II,6BAoDG;IlB44GP;IkBpzGA;MA5II,4BAoDG;IlB+4GP;IkBvzGA;MA5II,yBAoDG;IlBk5GP;IkB1zGA;MA5II,UAoDG;IlBq5GP;IkB7zGA;MA5II,gBAoDG;IlBw5GP;IkBh0GA;MA5II,eAoDG;IlB25GP;IkBn0GA;MA5II,gBAoDG;IlB85GP;IkBt0GA;MA5II,aAoDG;IlBi6GP;IkBz0GA;MA5II,gBAoDG;IlBo6GP;IkB50GA;MA5II,eAoDG;IlBu6GP;IkB/0GA;MA5II,aAoDG;IlB06GP;IkBl1GA;MA5II,eAoDG;IlB66GP;IkBr1GA;MA5II,aAoDG;IlBg7GP;IkBx1GA;MA5II,iBAoDG;IlBm7GP;IkB31GA;MA5II,uBAoDG;IlBs7GP;IkB91GA;MA5II,sBAoDG;IlBy7GP;IkBj2GA;MA5II,uBAoDG;IlB47GP;IkBp2GA;MA5II,oBAoDG;IlB+7GP;IkBv2GA;MA5II,uBAoDG;IlBk8GP;IkB12GA;MA5II,sBAoDG;IlBq8GP;IkB72GA;MA5II,oBAoDG;IlBw8GP;IkBh3GA;MA5II,sBAoDG;IlB28GP;IkBn3GA;MA5II,oBAoDG;IlB88GP;IkBt3GA;MA5II,gBAoDG;IlBi9GP;IkBz3GA;MA5II,sBAoDG;IlBo9GP;IkB53GA;MA5II,qBAoDG;IlBu9GP;IkB/3GA;MA5II,sBAoDG;IlB09GP;IkBl4GA;MA5II,mBAoDG;IlB69GP;IkBr4GA;MA5II,sBAoDG;IlBg+GP;IkBx4GA;MA5II,qBAoDG;IlBm+GP;IkB34GA;MA5II,mBAoDG;IlBs+GP;IkB94GA;MA5II,qBAoDG;IlBy+GP;IkBj5GA;MA5II,mBAoDG;IlB4+GP;IkBp5GA;MA5II,sBAoDG;IlB++GP;IkBv5GA;MA5II,4BAoDG;IlBk/GP;IkB15GA;MA5II,2BAoDG;IlBq/GP;IkB75GA;MA5II,4BAoDG;IlBw/GP;IkBh6GA;MA5II,yBAoDG;IlB2/GP;IkBn6GA;MA5II,4BAoDG;IlB8/GP;IkBt6GA;MA5II,2BAoDG;IlBigHP;IkBz6GA;MA5II,yBAoDG;IlBogHP;IkB56GA;MA5II,2BAoDG;IlBugHP;IkB/6GA;MA5II,yBAoDG;IlB0gHP;IkBl7GA;MA5II,qBAoDG;IlB6gHP;IkBr7GA;MA5II,2BAoDG;IlBghHP;IkBx7GA;MA5II,0BAoDG;IlBmhHP;IkB37GA;MA5II,2BAoDG;IlBshHP;IkB97GA;MA5II,wBAoDG;IlByhHP;IkBj8GA;MA5II,2BAoDG;IlB4hHP;IkBp8GA;MA5II,0BAoDG;IlB+hHP;IkBv8GA;MA5II,wBAoDG;IlBkiHP;IkB18GA;MA5II,0BAoDG;IlBqiHP;IkB78GA;MA5II,wBAoDG;IlBwiHP;IkBh9GA;MA5II,oBAoDG;IlB2iHP;IkBn9GA;MA5II,0BAoDG;IlB8iHP;IkBt9GA;MA5II,yBAoDG;IlBijHP;IkBz9GA;MA5II,0BAoDG;IlBojHP;IkB59GA;MA5II,uBAoDG;IlBujHP;IkB/9GA;MA5II,0BAoDG;IlB0jHP;IkBl+GA;MA5II,yBAoDG;IlB6jHP;IkBr+GA;MA5II,uBAoDG;IlBgkHP;IkBx+GA;MA5II,yBAoDG;IlBmkHP;IkB3+GA;MA5II,uBAoDG;IlBskHP;IkB9+GA;MA5II,uBAoDG;IlBykHP;IkBj/GA;MA5II,6BAoDG;IlB4kHP;IkBp/GA;MA5II,4BAoDG;IlB+kHP;IkBv/GA;MA5II,6BAoDG;IlBklHP;IkB1/GA;MA5II,0BAoDG;IlBqlHP;IkB7/GA;MA5II,6BAoDG;IlBwlHP;IkBhgHA;MA5II,4BAoDG;IlB2lHP;IkBngHA;MA5II,0BAoDG;IlB8lHP;IkBtgHA;MA5II,4BAoDG;IlBimHP;IkBzgHA;MA5II,0BAoDG;IlBomHP;IkB5gHA;MA5II,MAoDG;IlBumHP;IkB/gHA;MA5II,YAoDG;IlB0mHP;IkBlhHA;MA5II,WAoDG;IlB6mHP;IkBrhHA;MA5II,YAoDG;IlBgnHP;IkBxhHA;MA5II,SAoDG;IlBmnHP;IkB3hHA;MA5II,YAoDG;IlBsnHP;IkB9hHA;MA5II,WAoDG;IlBynHP;IkBjiHA;MA5II,SAoDG;IlB4nHP;IkBpiHA;MA5II,WAoDG;IlB+nHP;IkBviHA;MA5II,SAoDG;IlBkoHP;IkB1iHA;MA5II,UAoDG;IlBqoHP;IkB7iHA;MA5II,gBAoDG;IlBwoHP;IkBhjHA;MA5II,eAoDG;IlB2oHP;IkBnjHA;MA5II,gBAoDG;IlB8oHP;IkBtjHA;MA5II,aAoDG;IlBipHP;IkBzjHA;MA5II,gBAoDG;IlBopHP;IkB5jHA;MA5II,eAoDG;IlBupHP;IkB/jHA;MA5II,aAoDG;IlB0pHP;IkBlkHA;MA5II,eAoDG;IlB6pHP;IkBrkHA;MA5II,aAoDG;IlBgqHP;IkBxkHA;MA5II,aAoDG;IlBmqHP;IkB3kHA;MA5II,mBAoDG;IlBsqHP;IkB9kHA;MA5II,kBAoDG;IlByqHP;IkBjlHA;MA5II,mBAoDG;IlB4qHP;IkBplHA;MA5II,gBAoDG;IlB+qHP;IkBvlHA;MA5II,mBAoDG;IlBkrHP;IkB1lHA;MA5II,kBAoDG;IlBqrHP;IkB7lHA;MA5II,gBAoDG;IlBwrHP;IkBhmHA;MA5II,kBAoDG;IlB2rHP;IkBnmHA;MA5II,gBAoDG;IlB8rHP;IkBtmHA;MA5II,oBAoDG;IlBisHP;IkBzmHA;MA5II,0BAoDG;IlBosHP;IkB5mHA;MA5II,yBAoDG;IlBusHP;IkB/mHA;MA5II,0BAoDG;IlB0sHP;IkBlnHA;MA5II,uBAoDG;IlB6sHP;IkBrnHA;MA5II,0BAoDG;IlBgtHP;IkBxnHA;MA5II,yBAoDG;IlBmtHP;IkB3nHA;MA5II,uBAoDG;IlBstHP;IkB9nHA;MA5II,yBAoDG;IlBytHP;IkBjoHA;MA5II,uBAoDG;IlB4tHP;IkBpoHA;MA5II,mBAoDG;IlB+tHP;IkBvoHA;MA5II,yBAoDG;IlBkuHP;IkB1oHA;MA5II,wBAoDG;IlBquHP;IkB7oHA;MA5II,yBAoDG;IlBwuHP;IkBhpHA;MA5II,sBAoDG;IlB2uHP;IkBnpHA;MA5II,yBAoDG;IlB8uHP;IkBtpHA;MA5II,wBAoDG;IlBivHP;IkBzpHA;MA5II,sBAoDG;IlBovHP;IkB5pHA;MA5II,wBAoDG;IlBuvHP;IkB/pHA;MA5II,sBAoDG;IlB0vHP;IkBlqHA;MA5II,yFAoDG;IlB6vHP;IkBrqHA;MA5II,sBAoDG;IlBgwHP;IkBxqHA;MA5II,wFAoDG;IlBmwHP;IkB3qHA;MA5II,qBAoDG;IlBswHP;IkB9qHA;MA5II,iBAoDG;IlBywHP;IkBjrHA;MA5II,eAoDG;IlB4wHP;IkBprHA;MA5II,kBAoDG;IlB+wHP;EACF;EOpyHE;IW4GA;MA5II,mBAoDG;IlBoxHP;IkB5rHA;MA5II,iBAoDG;IlBuxHP;IkB/rHA;MA5II,WAoDG;IlB0xHP;IkBlsHA;MA5II,mBAoDG;IlB6xHP;IkBrsHA;MA5II,iBAoDG;IlBgyHP;IkBxsHA;MA5II,gBAoDG;IlBmyHP;IkB3sHA;MA5II,sBAoDG;IlBsyHP;IkB9sHA;MA5II,gBAoDG;IlByyHP;IkBjtHA;MA5II,eAyDO;IlBuyHX;IkBptHA;MA5II,qBAyDO;IlB0yHX;IkBvtHA;MA5II,cAyDO;IlB6yHX;IkB1tHA;MA5II,aAyDO;IlBgzHX;IkB7tHA;MA5II,oBAyDO;IlBmzHX;IkBhuHA;MA5II,cAyDO;IlBszHX;IkBnuHA;MA5II,kBAyDO;IlByzHX;IkBtuHA;MA5II,mBAyDO;IlB4zHX;IkBzuHA;MA5II,aAyDO;IlB+zHX;IkB5uHA;MA5II,oBAyDO;IlBk0HX;IkB/uHA;MA5II,iBAyDO;IlBq0HX;IkBlvHA;MA5II,kBAyDO;IlBw0HX;IkBrvHA;MA5II,aAyDO;IlB20HX;IkBxvHA;MA5II,cAoDG;IlBm1HP;IkB3vHA;MA5II,mBAyDO;IlBi1HX;IkB9vHA;MA5II,sBAyDO;IlBo1HX;IkBjwHA;MA5II,2BAyDO;IlBu1HX;IkBpwHA;MA5II,8BAyDO;IlB01HX;IkBvwHA;MA5II,YAoDG;IlBk2HP;IkB1wHA;MA5II,YAoDG;IlBq2HP;IkB7wHA;MA5II,cAoDG;IlBw2HP;IkBhxHA;MA5II,cAoDG;IlB22HP;IkBnxHA;MA5II,eAyDO;IlBy2HX;IkBtxHA;MA5II,iBAyDO;IlB42HX;IkBzxHA;MA5II,uBAyDO;IlB+2HX;IkB5xHA;MA5II,2BAoDG;IlBu3HP;IkB/xHA;MA5II,yBAoDG;IlB03HP;IkBlyHA;MA5II,uBAoDG;IlB63HP;IkBryHA;MA5II,8BAoDG;IlBg4HP;IkBxyHA;MA5II,6BAoDG;IlBm4HP;IkB3yHA;MA5II,6BAoDG;IlBs4HP;IkB9yHA;MA5II,oBAoDG;IlBy4HP;IkBjzHA;MA5II,kBAoDG;IlB44HP;IkBpzHA;MA5II,qBAoDG;IlB+4HP;IkBvzHA;MA5II,sBAoDG;IlBk5HP;IkB1zHA;MA5II,mBAoDG;IlBq5HP;IkB7zHA;MA5II,iBAoDG;IlBw5HP;IkBh0HA;MA5II,oBAoDG;IlB25HP;IkBn0HA;MA5II,uBAoDG;IlB85HP;IkBt0HA;MA5II,qBAoDG;IlBi6HP;IkBz0HA;MA5II,mBAoDG;IlBo6HP;IkB50HA;MA5II,qBAoDG;IlBu6HP;IkB/0HA;MA5II,oBAoDG;IlB06HP;IkBl1HA;MA5II,yBAoDG;IlB66HP;IkBr1HA;MA5II,uBAoDG;IlBg7HP;IkBx1HA;MA5II,qBAoDG;IlBm7HP;IkB31HA;MA5II,4BAoDG;IlBs7HP;IkB91HA;MA5II,2BAoDG;IlBy7HP;IkBj2HA;MA5II,sBAoDG;IlB47HP;IkBp2HA;MA5II,gBAoDG;IlB+7HP;IkBv2HA;MA5II,sBAoDG;IlBk8HP;IkB12HA;MA5II,oBAoDG;IlBq8HP;IkB72HA;MA5II,kBAoDG;IlBw8HP;IkBh3HA;MA5II,oBAoDG;IlB28HP;IkBn3HA;MA5II,mBAoDG;IlB88HP;IkBt3HA;MA5II,kBAoDG;IlBi9HP;IkBz3HA;MA5II,gBAoDG;IlBo9HP;IkB53HA;MA5II,mBAoDG;IlBu9HP;IkB/3HA;MA5II,oBAoDG;IlB09HP;IkBl4HA;MA5II,0BAoDG;IlB69HP;IkBr4HA;MA5II,qCAoDG;IlBg+HP;IkBx4HA;MA5II,qCAoDG;IlBm+HP;IkB34HA;MA5II,qCAoDG;IlBs+HP;IkB94HA;MA5II,qCAoDG;IlBy+HP;IkBj5HA;MA5II,mBAoDG;IlB4+HP;IkBp5HA;MA5II,mBAyDO;IlB0+HX;IkBv5HA;MA5II,sBAyDO;IlB6+HX;IkB15HA;MA5II,qBAyDO;IlBg/HX;IkB75HA;MA5II,SAoDG;IlBw/HP;IkBh6HA;MA5II,QAoDG;IlB2/HP;IkBn6HA;MA5II,QAoDG;IlB8/HP;IkBt6HA;MA5II,QAoDG;IlBigIP;IkBz6HA;MA5II,QAoDG;IlBogIP;IkB56HA;MA5II,QAoDG;IlBugIP;IkB/6HA;MA5II,QAoDG;IlB0gIP;IkBl7HA;MA5II,QAoDG;IlB6gIP;IkBr7HA;MA5II,SAoDG;IlBghIP;IkBx7HA;MA5II,eAoDG;IlBmhIP;IkB37HA;MA5II,cAoDG;IlBshIP;IkB97HA;MA5II,eAoDG;IlByhIP;IkBj8HA;MA5II,YAoDG;IlB4hIP;IkBp8HA;MA5II,eAoDG;IlB+hIP;IkBv8HA;MA5II,cAoDG;IlBkiIP;IkB18HA;MA5II,YAoDG;IlBqiIP;IkB78HA;MA5II,cAoDG;IlBwiIP;IkBh9HA;MA5II,YAoDG;IlB2iIP;IkBn9HA;MA5II,YAoDG;IlB8iIP;IkBt9HA;MA5II,gBAoDG;IlBijIP;IkBz9HA;MA5II,sBAoDG;IlBojIP;IkB59HA;MA5II,qBAoDG;IlBujIP;IkB/9HA;MA5II,sBAoDG;IlB0jIP;IkBl+HA;MA5II,mBAoDG;IlB6jIP;IkBr+HA;MA5II,sBAoDG;IlBgkIP;IkBx+HA;MA5II,qBAoDG;IlBmkIP;IkB3+HA;MA5II,mBAoDG;IlBskIP;IkB9+HA;MA5II,qBAoDG;IlBykIP;IkBj/HA;MA5II,mBAoDG;IlB4kIP;IkBp/HA;MA5II,mBAoDG;IlB+kIP;IkBv/HA;MA5II,eAoDG;IlBklIP;IkB1/HA;MA5II,qBAoDG;IlBqlIP;IkB7/HA;MA5II,oBAoDG;IlBwlIP;IkBhgIA;MA5II,qBAoDG;IlB2lIP;IkBngIA;MA5II,kBAoDG;IlB8lIP;IkBtgIA;MA5II,qBAoDG;IlBimIP;IkBzgIA;MA5II,oBAoDG;IlBomIP;IkB5gIA;MA5II,kBAoDG;IlBumIP;IkB/gIA;MA5II,oBAoDG;IlB0mIP;IkBlhIA;MA5II,kBAoDG;IlB6mIP;IkBrhIA;MA5II,kBAoDG;IlBgnIP;IkBxhIA;MA5II,qBAoDG;IlBmnIP;IkB3hIA;MA5II,2BAoDG;IlBsnIP;IkB9hIA;MA5II,0BAoDG;IlBynIP;IkBjiIA;MA5II,2BAoDG;IlB4nIP;IkBpiIA;MA5II,wBAoDG;IlB+nIP;IkBviIA;MA5II,2BAoDG;IlBkoIP;IkB1iIA;MA5II,0BAoDG;IlBqoIP;IkB7iIA;MA5II,wBAoDG;IlBwoIP;IkBhjIA;MA5II,0BAoDG;IlB2oIP;IkBnjIA;MA5II,wBAoDG;IlB8oIP;IkBtjIA;MA5II,wBAoDG;IlBipIP;IkBzjIA;MA5II,oBAoDG;IlBopIP;IkB5jIA;MA5II,0BAoDG;IlBupIP;IkB/jIA;MA5II,yBAoDG;IlB0pIP;IkBlkIA;MA5II,0BAoDG;IlB6pIP;IkBrkIA;MA5II,uBAoDG;IlBgqIP;IkBxkIA;MA5II,0BAoDG;IlBmqIP;IkB3kIA;MA5II,yBAoDG;IlBsqIP;IkB9kIA;MA5II,uBAoDG;IlByqIP;IkBjlIA;MA5II,yBAoDG;IlB4qIP;IkBplIA;MA5II,uBAoDG;IlB+qIP;IkBvlIA;MA5II,2BAoDG;IlBkrIP;IkB1lIA;MA5II,0BAoDG;IlBqrIP;IkB7lIA;MA5II,uBAoDG;IlBwrIP;IkBhmIA;MA5II,mBAoDG;IlB2rIP;IkBnmIA;MA5II,yBAoDG;IlB8rIP;IkBtmIA;MA5II,wBAoDG;IlBisIP;IkBzmIA;MA5II,yBAoDG;IlBosIP;IkB5mIA;MA5II,sBAoDG;IlBusIP;IkB/mIA;MA5II,yBAoDG;IlB0sIP;IkBlnIA;MA5II,wBAoDG;IlB6sIP;IkBrnIA;MA5II,sBAoDG;IlBgtIP;IkBxnIA;MA5II,wBAoDG;IlBmtIP;IkB3nIA;MA5II,sBAoDG;IlBstIP;IkB9nIA;MA5II,sBAoDG;IlBytIP;IkBjoIA;MA5II,sBAoDG;IlB4tIP;IkBpoIA;MA5II,4BAoDG;IlB+tIP;IkBvoIA;MA5II,2BAoDG;IlBkuIP;IkB1oIA;MA5II,4BAoDG;IlBquIP;IkB7oIA;MA5II,yBAoDG;IlBwuIP;IkBhpIA;MA5II,4BAoDG;IlB2uIP;IkBnpIA;MA5II,2BAoDG;IlB8uIP;IkBtpIA;MA5II,yBAoDG;IlBivIP;IkBzpIA;MA5II,2BAoDG;IlBovIP;IkB5pIA;MA5II,yBAoDG;IlBuvIP;IkB/pIA;MA5II,6BAoDG;IlB0vIP;IkBlqIA;MA5II,4BAoDG;IlB6vIP;IkBrqIA;MA5II,yBAoDG;IlBgwIP;IkBxqIA;MA5II,UAoDG;IlBmwIP;IkB3qIA;MA5II,gBAoDG;IlBswIP;IkB9qIA;MA5II,eAoDG;IlBywIP;IkBjrIA;MA5II,gBAoDG;IlB4wIP;IkBprIA;MA5II,aAoDG;IlB+wIP;IkBvrIA;MA5II,gBAoDG;IlBkxIP;IkB1rIA;MA5II,eAoDG;IlBqxIP;IkB7rIA;MA5II,aAoDG;IlBwxIP;IkBhsIA;MA5II,eAoDG;IlB2xIP;IkBnsIA;MA5II,aAoDG;IlB8xIP;IkBtsIA;MA5II,iBAoDG;IlBiyIP;IkBzsIA;MA5II,uBAoDG;IlBoyIP;IkB5sIA;MA5II,sBAoDG;IlBuyIP;IkB/sIA;MA5II,uBAoDG;IlB0yIP;IkBltIA;MA5II,oBAoDG;IlB6yIP;IkBrtIA;MA5II,uBAoDG;IlBgzIP;IkBxtIA;MA5II,sBAoDG;IlBmzIP;IkB3tIA;MA5II,oBAoDG;IlBszIP;IkB9tIA;MA5II,sBAoDG;IlByzIP;IkBjuIA;MA5II,oBAoDG;IlB4zIP;IkBpuIA;MA5II,gBAoDG;IlB+zIP;IkBvuIA;MA5II,sBAoDG;IlBk0IP;IkB1uIA;MA5II,qBAoDG;IlBq0IP;IkB7uIA;MA5II,sBAoDG;IlBw0IP;IkBhvIA;MA5II,mBAoDG;IlB20IP;IkBnvIA;MA5II,sBAoDG;IlB80IP;IkBtvIA;MA5II,qBAoDG;IlBi1IP;IkBzvIA;MA5II,mBAoDG;IlBo1IP;IkB5vIA;MA5II,qBAoDG;IlBu1IP;IkB/vIA;MA5II,mBAoDG;IlB01IP;IkBlwIA;MA5II,sBAoDG;IlB61IP;IkBrwIA;MA5II,4BAoDG;IlBg2IP;IkBxwIA;MA5II,2BAoDG;IlBm2IP;IkB3wIA;MA5II,4BAoDG;IlBs2IP;IkB9wIA;MA5II,yBAoDG;IlBy2IP;IkBjxIA;MA5II,4BAoDG;IlB42IP;IkBpxIA;MA5II,2BAoDG;IlB+2IP;IkBvxIA;MA5II,yBAoDG;IlBk3IP;IkB1xIA;MA5II,2BAoDG;IlBq3IP;IkB7xIA;MA5II,yBAoDG;IlBw3IP;IkBhyIA;MA5II,qBAoDG;IlB23IP;IkBnyIA;MA5II,2BAoDG;IlB83IP;IkBtyIA;MA5II,0BAoDG;IlBi4IP;IkBzyIA;MA5II,2BAoDG;IlBo4IP;IkB5yIA;MA5II,wBAoDG;IlBu4IP;IkB/yIA;MA5II,2BAoDG;IlB04IP;IkBlzIA;MA5II,0BAoDG;IlB64IP;IkBrzIA;MA5II,wBAoDG;IlBg5IP;IkBxzIA;MA5II,0BAoDG;IlBm5IP;IkB3zIA;MA5II,wBAoDG;IlBs5IP;IkB9zIA;MA5II,oBAoDG;IlBy5IP;IkBj0IA;MA5II,0BAoDG;IlB45IP;IkBp0IA;MA5II,yBAoDG;IlB+5IP;IkBv0IA;MA5II,0BAoDG;IlBk6IP;IkB10IA;MA5II,uBAoDG;IlBq6IP;IkB70IA;MA5II,0BAoDG;IlBw6IP;IkBh1IA;MA5II,yBAoDG;IlB26IP;IkBn1IA;MA5II,uBAoDG;IlB86IP;IkBt1IA;MA5II,yBAoDG;IlBi7IP;IkBz1IA;MA5II,uBAoDG;IlBo7IP;IkB51IA;MA5II,uBAoDG;IlBu7IP;IkB/1IA;MA5II,6BAoDG;IlB07IP;IkBl2IA;MA5II,4BAoDG;IlB67IP;IkBr2IA;MA5II,6BAoDG;IlBg8IP;IkBx2IA;MA5II,0BAoDG;IlBm8IP;IkB32IA;MA5II,6BAoDG;IlBs8IP;IkB92IA;MA5II,4BAoDG;IlBy8IP;IkBj3IA;MA5II,0BAoDG;IlB48IP;IkBp3IA;MA5II,4BAoDG;IlB+8IP;IkBv3IA;MA5II,0BAoDG;IlBk9IP;IkB13IA;MA5II,MAoDG;IlBq9IP;IkB73IA;MA5II,YAoDG;IlBw9IP;IkBh4IA;MA5II,WAoDG;IlB29IP;IkBn4IA;MA5II,YAoDG;IlB89IP;IkBt4IA;MA5II,SAoDG;IlBi+IP;IkBz4IA;MA5II,YAoDG;IlBo+IP;IkB54IA;MA5II,WAoDG;IlBu+IP;IkB/4IA;MA5II,SAoDG;IlB0+IP;IkBl5IA;MA5II,WAoDG;IlB6+IP;IkBr5IA;MA5II,SAoDG;IlBg/IP;IkBx5IA;MA5II,UAoDG;IlBm/IP;IkB35IA;MA5II,gBAoDG;IlBs/IP;IkB95IA;MA5II,eAoDG;IlBy/IP;IkBj6IA;MA5II,gBAoDG;IlB4/IP;IkBp6IA;MA5II,aAoDG;IlB+/IP;IkBv6IA;MA5II,gBAoDG;IlBkgJP;IkB16IA;MA5II,eAoDG;IlBqgJP;IkB76IA;MA5II,aAoDG;IlBwgJP;IkBh7IA;MA5II,eAoDG;IlB2gJP;IkBn7IA;MA5II,aAoDG;IlB8gJP;IkBt7IA;MA5II,aAoDG;IlBihJP;IkBz7IA;MA5II,mBAoDG;IlBohJP;IkB57IA;MA5II,kBAoDG;IlBuhJP;IkB/7IA;MA5II,mBAoDG;IlB0hJP;IkBl8IA;MA5II,gBAoDG;IlB6hJP;IkBr8IA;MA5II,mBAoDG;IlBgiJP;IkBx8IA;MA5II,kBAoDG;IlBmiJP;IkB38IA;MA5II,gBAoDG;IlBsiJP;IkB98IA;MA5II,kBAoDG;IlByiJP;IkBj9IA;MA5II,gBAoDG;IlB4iJP;IkBp9IA;MA5II,oBAoDG;IlB+iJP;IkBv9IA;MA5II,0BAoDG;IlBkjJP;IkB19IA;MA5II,yBAoDG;IlBqjJP;IkB79IA;MA5II,0BAoDG;IlBwjJP;IkBh+IA;MA5II,uBAoDG;IlB2jJP;IkBn+IA;MA5II,0BAoDG;IlB8jJP;IkBt+IA;MA5II,yBAoDG;IlBikJP;IkBz+IA;MA5II,uBAoDG;IlBokJP;IkB5+IA;MA5II,yBAoDG;IlBukJP;IkB/+IA;MA5II,uBAoDG;IlB0kJP;IkBl/IA;MA5II,mBAoDG;IlB6kJP;IkBr/IA;MA5II,yBAoDG;IlBglJP;IkBx/IA;MA5II,wBAoDG;IlBmlJP;IkB3/IA;MA5II,yBAoDG;IlBslJP;IkB9/IA;MA5II,sBAoDG;IlBylJP;IkBjgJA;MA5II,yBAoDG;IlB4lJP;IkBpgJA;MA5II,wBAoDG;IlB+lJP;IkBvgJA;MA5II,sBAoDG;IlBkmJP;IkB1gJA;MA5II,wBAoDG;IlBqmJP;IkB7gJA;MA5II,sBAoDG;IlBwmJP;IkBhhJA;MA5II,yFAoDG;IlB2mJP;IkBnhJA;MA5II,sBAoDG;IlB8mJP;IkBthJA;MA5II,wFAoDG;IlBinJP;IkBzhJA;MA5II,qBAoDG;IlBonJP;IkB5hJA;MA5II,iBAoDG;IlBunJP;IkB/hJA;MA5II,eAoDG;IlB0nJP;IkBliJA;MA5II,kBAoDG;IlB6nJP;EACF;EOlpJE;IW4GA;MA5II,mBAoDG;IlBkoJP;IkB1iJA;MA5II,iBAoDG;IlBqoJP;IkB7iJA;MA5II,WAoDG;IlBwoJP;IkBhjJA;MA5II,mBAoDG;IlB2oJP;IkBnjJA;MA5II,iBAoDG;IlB8oJP;IkBtjJA;MA5II,gBAoDG;IlBipJP;IkBzjJA;MA5II,sBAoDG;IlBopJP;IkB5jJA;MA5II,gBAoDG;IlBupJP;IkB/jJA;MA5II,eAyDO;IlBqpJX;IkBlkJA;MA5II,qBAyDO;IlBwpJX;IkBrkJA;MA5II,cAyDO;IlB2pJX;IkBxkJA;MA5II,aAyDO;IlB8pJX;IkB3kJA;MA5II,oBAyDO;IlBiqJX;IkB9kJA;MA5II,cAyDO;IlBoqJX;IkBjlJA;MA5II,kBAyDO;IlBuqJX;IkBplJA;MA5II,mBAyDO;IlB0qJX;IkBvlJA;MA5II,aAyDO;IlB6qJX;IkB1lJA;MA5II,oBAyDO;IlBgrJX;IkB7lJA;MA5II,iBAyDO;IlBmrJX;IkBhmJA;MA5II,kBAyDO;IlBsrJX;IkBnmJA;MA5II,aAyDO;IlByrJX;IkBtmJA;MA5II,cAoDG;IlBisJP;IkBzmJA;MA5II,mBAyDO;IlB+rJX;IkB5mJA;MA5II,sBAyDO;IlBksJX;IkB/mJA;MA5II,2BAyDO;IlBqsJX;IkBlnJA;MA5II,8BAyDO;IlBwsJX;IkBrnJA;MA5II,YAoDG;IlBgtJP;IkBxnJA;MA5II,YAoDG;IlBmtJP;IkB3nJA;MA5II,cAoDG;IlBstJP;IkB9nJA;MA5II,cAoDG;IlBytJP;IkBjoJA;MA5II,eAyDO;IlButJX;IkBpoJA;MA5II,iBAyDO;IlB0tJX;IkBvoJA;MA5II,uBAyDO;IlB6tJX;IkB1oJA;MA5II,2BAoDG;IlBquJP;IkB7oJA;MA5II,yBAoDG;IlBwuJP;IkBhpJA;MA5II,uBAoDG;IlB2uJP;IkBnpJA;MA5II,8BAoDG;IlB8uJP;IkBtpJA;MA5II,6BAoDG;IlBivJP;IkBzpJA;MA5II,6BAoDG;IlBovJP;IkB5pJA;MA5II,oBAoDG;IlBuvJP;IkB/pJA;MA5II,kBAoDG;IlB0vJP;IkBlqJA;MA5II,qBAoDG;IlB6vJP;IkBrqJA;MA5II,sBAoDG;IlBgwJP;IkBxqJA;MA5II,mBAoDG;IlBmwJP;IkB3qJA;MA5II,iBAoDG;IlBswJP;IkB9qJA;MA5II,oBAoDG;IlBywJP;IkBjrJA;MA5II,uBAoDG;IlB4wJP;IkBprJA;MA5II,qBAoDG;IlB+wJP;IkBvrJA;MA5II,mBAoDG;IlBkxJP;IkB1rJA;MA5II,qBAoDG;IlBqxJP;IkB7rJA;MA5II,oBAoDG;IlBwxJP;IkBhsJA;MA5II,yBAoDG;IlB2xJP;IkBnsJA;MA5II,uBAoDG;IlB8xJP;IkBtsJA;MA5II,qBAoDG;IlBiyJP;IkBzsJA;MA5II,4BAoDG;IlBoyJP;IkB5sJA;MA5II,2BAoDG;IlBuyJP;IkB/sJA;MA5II,sBAoDG;IlB0yJP;IkBltJA;MA5II,gBAoDG;IlB6yJP;IkBrtJA;MA5II,sBAoDG;IlBgzJP;IkBxtJA;MA5II,oBAoDG;IlBmzJP;IkB3tJA;MA5II,kBAoDG;IlBszJP;IkB9tJA;MA5II,oBAoDG;IlByzJP;IkBjuJA;MA5II,mBAoDG;IlB4zJP;IkBpuJA;MA5II,kBAoDG;IlB+zJP;IkBvuJA;MA5II,gBAoDG;IlBk0JP;IkB1uJA;MA5II,mBAoDG;IlBq0JP;IkB7uJA;MA5II,oBAoDG;IlBw0JP;IkBhvJA;MA5II,0BAoDG;IlB20JP;IkBnvJA;MA5II,qCAoDG;IlB80JP;IkBtvJA;MA5II,qCAoDG;IlBi1JP;IkBzvJA;MA5II,qCAoDG;IlBo1JP;IkB5vJA;MA5II,qCAoDG;IlBu1JP;IkB/vJA;MA5II,mBAoDG;IlB01JP;IkBlwJA;MA5II,mBAyDO;IlBw1JX;IkBrwJA;MA5II,sBAyDO;IlB21JX;IkBxwJA;MA5II,qBAyDO;IlB81JX;IkB3wJA;MA5II,SAoDG;IlBs2JP;IkB9wJA;MA5II,QAoDG;IlBy2JP;IkBjxJA;MA5II,QAoDG;IlB42JP;IkBpxJA;MA5II,QAoDG;IlB+2JP;IkBvxJA;MA5II,QAoDG;IlBk3JP;IkB1xJA;MA5II,QAoDG;IlBq3JP;IkB7xJA;MA5II,QAoDG;IlBw3JP;IkBhyJA;MA5II,QAoDG;IlB23JP;IkBnyJA;MA5II,SAoDG;IlB83JP;IkBtyJA;MA5II,eAoDG;IlBi4JP;IkBzyJA;MA5II,cAoDG;IlBo4JP;IkB5yJA;MA5II,eAoDG;IlBu4JP;IkB/yJA;MA5II,YAoDG;IlB04JP;IkBlzJA;MA5II,eAoDG;IlB64JP;IkBrzJA;MA5II,cAoDG;IlBg5JP;IkBxzJA;MA5II,YAoDG;IlBm5JP;IkB3zJA;MA5II,cAoDG;IlBs5JP;IkB9zJA;MA5II,YAoDG;IlBy5JP;IkBj0JA;MA5II,YAoDG;IlB45JP;IkBp0JA;MA5II,gBAoDG;IlB+5JP;IkBv0JA;MA5II,sBAoDG;IlBk6JP;IkB10JA;MA5II,qBAoDG;IlBq6JP;IkB70JA;MA5II,sBAoDG;IlBw6JP;IkBh1JA;MA5II,mBAoDG;IlB26JP;IkBn1JA;MA5II,sBAoDG;IlB86JP;IkBt1JA;MA5II,qBAoDG;IlBi7JP;IkBz1JA;MA5II,mBAoDG;IlBo7JP;IkB51JA;MA5II,qBAoDG;IlBu7JP;IkB/1JA;MA5II,mBAoDG;IlB07JP;IkBl2JA;MA5II,mBAoDG;IlB67JP;IkBr2JA;MA5II,eAoDG;IlBg8JP;IkBx2JA;MA5II,qBAoDG;IlBm8JP;IkB32JA;MA5II,oBAoDG;IlBs8JP;IkB92JA;MA5II,qBAoDG;IlBy8JP;IkBj3JA;MA5II,kBAoDG;IlB48JP;IkBp3JA;MA5II,qBAoDG;IlB+8JP;IkBv3JA;MA5II,oBAoDG;IlBk9JP;IkB13JA;MA5II,kBAoDG;IlBq9JP;IkB73JA;MA5II,oBAoDG;IlBw9JP;IkBh4JA;MA5II,kBAoDG;IlB29JP;IkBn4JA;MA5II,kBAoDG;IlB89JP;IkBt4JA;MA5II,qBAoDG;IlBi+JP;IkBz4JA;MA5II,2BAoDG;IlBo+JP;IkB54JA;MA5II,0BAoDG;IlBu+JP;IkB/4JA;MA5II,2BAoDG;IlB0+JP;IkBl5JA;MA5II,wBAoDG;IlB6+JP;IkBr5JA;MA5II,2BAoDG;IlBg/JP;IkBx5JA;MA5II,0BAoDG;IlBm/JP;IkB35JA;MA5II,wBAoDG;IlBs/JP;IkB95JA;MA5II,0BAoDG;IlBy/JP;IkBj6JA;MA5II,wBAoDG;IlB4/JP;IkBp6JA;MA5II,wBAoDG;IlB+/JP;IkBv6JA;MA5II,oBAoDG;IlBkgKP;IkB16JA;MA5II,0BAoDG;IlBqgKP;IkB76JA;MA5II,yBAoDG;IlBwgKP;IkBh7JA;MA5II,0BAoDG;IlB2gKP;IkBn7JA;MA5II,uBAoDG;IlB8gKP;IkBt7JA;MA5II,0BAoDG;IlBihKP;IkBz7JA;MA5II,yBAoDG;IlBohKP;IkB57JA;MA5II,uBAoDG;IlBuhKP;IkB/7JA;MA5II,yBAoDG;IlB0hKP;IkBl8JA;MA5II,uBAoDG;IlB6hKP;IkBr8JA;MA5II,2BAoDG;IlBgiKP;IkBx8JA;MA5II,0BAoDG;IlBmiKP;IkB38JA;MA5II,uBAoDG;IlBsiKP;IkB98JA;MA5II,mBAoDG;IlByiKP;IkBj9JA;MA5II,yBAoDG;IlB4iKP;IkBp9JA;MA5II,wBAoDG;IlB+iKP;IkBv9JA;MA5II,yBAoDG;IlBkjKP;IkB19JA;MA5II,sBAoDG;IlBqjKP;IkB79JA;MA5II,yBAoDG;IlBwjKP;IkBh+JA;MA5II,wBAoDG;IlB2jKP;IkBn+JA;MA5II,sBAoDG;IlB8jKP;IkBt+JA;MA5II,wBAoDG;IlBikKP;IkBz+JA;MA5II,sBAoDG;IlBokKP;IkB5+JA;MA5II,sBAoDG;IlBukKP;IkB/+JA;MA5II,sBAoDG;IlB0kKP;IkBl/JA;MA5II,4BAoDG;IlB6kKP;IkBr/JA;MA5II,2BAoDG;IlBglKP;IkBx/JA;MA5II,4BAoDG;IlBmlKP;IkB3/JA;MA5II,yBAoDG;IlBslKP;IkB9/JA;MA5II,4BAoDG;IlBylKP;IkBjgKA;MA5II,2BAoDG;IlB4lKP;IkBpgKA;MA5II,yBAoDG;IlB+lKP;IkBvgKA;MA5II,2BAoDG;IlBkmKP;IkB1gKA;MA5II,yBAoDG;IlBqmKP;IkB7gKA;MA5II,6BAoDG;IlBwmKP;IkBhhKA;MA5II,4BAoDG;IlB2mKP;IkBnhKA;MA5II,yBAoDG;IlB8mKP;IkBthKA;MA5II,UAoDG;IlBinKP;IkBzhKA;MA5II,gBAoDG;IlBonKP;IkB5hKA;MA5II,eAoDG;IlBunKP;IkB/hKA;MA5II,gBAoDG;IlB0nKP;IkBliKA;MA5II,aAoDG;IlB6nKP;IkBriKA;MA5II,gBAoDG;IlBgoKP;IkBxiKA;MA5II,eAoDG;IlBmoKP;IkB3iKA;MA5II,aAoDG;IlBsoKP;IkB9iKA;MA5II,eAoDG;IlByoKP;IkBjjKA;MA5II,aAoDG;IlB4oKP;IkBpjKA;MA5II,iBAoDG;IlB+oKP;IkBvjKA;MA5II,uBAoDG;IlBkpKP;IkB1jKA;MA5II,sBAoDG;IlBqpKP;IkB7jKA;MA5II,uBAoDG;IlBwpKP;IkBhkKA;MA5II,oBAoDG;IlB2pKP;IkBnkKA;MA5II,uBAoDG;IlB8pKP;IkBtkKA;MA5II,sBAoDG;IlBiqKP;IkBzkKA;MA5II,oBAoDG;IlBoqKP;IkB5kKA;MA5II,sBAoDG;IlBuqKP;IkB/kKA;MA5II,oBAoDG;IlB0qKP;IkBllKA;MA5II,gBAoDG;IlB6qKP;IkBrlKA;MA5II,sBAoDG;IlBgrKP;IkBxlKA;MA5II,qBAoDG;IlBmrKP;IkB3lKA;MA5II,sBAoDG;IlBsrKP;IkB9lKA;MA5II,mBAoDG;IlByrKP;IkBjmKA;MA5II,sBAoDG;IlB4rKP;IkBpmKA;MA5II,qBAoDG;IlB+rKP;IkBvmKA;MA5II,mBAoDG;IlBksKP;IkB1mKA;MA5II,qBAoDG;IlBqsKP;IkB7mKA;MA5II,mBAoDG;IlBwsKP;IkBhnKA;MA5II,sBAoDG;IlB2sKP;IkBnnKA;MA5II,4BAoDG;IlB8sKP;IkBtnKA;MA5II,2BAoDG;IlBitKP;IkBznKA;MA5II,4BAoDG;IlBotKP;IkB5nKA;MA5II,yBAoDG;IlButKP;IkB/nKA;MA5II,4BAoDG;IlB0tKP;IkBloKA;MA5II,2BAoDG;IlB6tKP;IkBroKA;MA5II,yBAoDG;IlBguKP;IkBxoKA;MA5II,2BAoDG;IlBmuKP;IkB3oKA;MA5II,yBAoDG;IlBsuKP;IkB9oKA;MA5II,qBAoDG;IlByuKP;IkBjpKA;MA5II,2BAoDG;IlB4uKP;IkBppKA;MA5II,0BAoDG;IlB+uKP;IkBvpKA;MA5II,2BAoDG;IlBkvKP;IkB1pKA;MA5II,wBAoDG;IlBqvKP;IkB7pKA;MA5II,2BAoDG;IlBwvKP;IkBhqKA;MA5II,0BAoDG;IlB2vKP;IkBnqKA;MA5II,wBAoDG;IlB8vKP;IkBtqKA;MA5II,0BAoDG;IlBiwKP;IkBzqKA;MA5II,wBAoDG;IlBowKP;IkB5qKA;MA5II,oBAoDG;IlBuwKP;IkB/qKA;MA5II,0BAoDG;IlB0wKP;IkBlrKA;MA5II,yBAoDG;IlB6wKP;IkBrrKA;MA5II,0BAoDG;IlBgxKP;IkBxrKA;MA5II,uBAoDG;IlBmxKP;IkB3rKA;MA5II,0BAoDG;IlBsxKP;IkB9rKA;MA5II,yBAoDG;IlByxKP;IkBjsKA;MA5II,uBAoDG;IlB4xKP;IkBpsKA;MA5II,yBAoDG;IlB+xKP;IkBvsKA;MA5II,uBAoDG;IlBkyKP;IkB1sKA;MA5II,uBAoDG;IlBqyKP;IkB7sKA;MA5II,6BAoDG;IlBwyKP;IkBhtKA;MA5II,4BAoDG;IlB2yKP;IkBntKA;MA5II,6BAoDG;IlB8yKP;IkBttKA;MA5II,0BAoDG;IlBizKP;IkBztKA;MA5II,6BAoDG;IlBozKP;IkB5tKA;MA5II,4BAoDG;IlBuzKP;IkB/tKA;MA5II,0BAoDG;IlB0zKP;IkBluKA;MA5II,4BAoDG;IlB6zKP;IkBruKA;MA5II,0BAoDG;IlBg0KP;IkBxuKA;MA5II,MAoDG;IlBm0KP;IkB3uKA;MA5II,YAoDG;IlBs0KP;IkB9uKA;MA5II,WAoDG;IlBy0KP;IkBjvKA;MA5II,YAoDG;IlB40KP;IkBpvKA;MA5II,SAoDG;IlB+0KP;IkBvvKA;MA5II,YAoDG;IlBk1KP;IkB1vKA;MA5II,WAoDG;IlBq1KP;IkB7vKA;MA5II,SAoDG;IlBw1KP;IkBhwKA;MA5II,WAoDG;IlB21KP;IkBnwKA;MA5II,SAoDG;IlB81KP;IkBtwKA;MA5II,UAoDG;IlBi2KP;IkBzwKA;MA5II,gBAoDG;IlBo2KP;IkB5wKA;MA5II,eAoDG;IlBu2KP;IkB/wKA;MA5II,gBAoDG;IlB02KP;IkBlxKA;MA5II,aAoDG;IlB62KP;IkBrxKA;MA5II,gBAoDG;IlBg3KP;IkBxxKA;MA5II,eAoDG;IlBm3KP;IkB3xKA;MA5II,aAoDG;IlBs3KP;IkB9xKA;MA5II,eAoDG;IlBy3KP;IkBjyKA;MA5II,aAoDG;IlB43KP;IkBpyKA;MA5II,aAoDG;IlB+3KP;IkBvyKA;MA5II,mBAoDG;IlBk4KP;IkB1yKA;MA5II,kBAoDG;IlBq4KP;IkB7yKA;MA5II,mBAoDG;IlBw4KP;IkBhzKA;MA5II,gBAoDG;IlB24KP;IkBnzKA;MA5II,mBAoDG;IlB84KP;IkBtzKA;MA5II,kBAoDG;IlBi5KP;IkBzzKA;MA5II,gBAoDG;IlBo5KP;IkB5zKA;MA5II,kBAoDG;IlBu5KP;IkB/zKA;MA5II,gBAoDG;IlB05KP;IkBl0KA;MA5II,oBAoDG;IlB65KP;IkBr0KA;MA5II,0BAoDG;IlBg6KP;IkBx0KA;MA5II,yBAoDG;IlBm6KP;IkB30KA;MA5II,0BAoDG;IlBs6KP;IkB90KA;MA5II,uBAoDG;IlBy6KP;IkBj1KA;MA5II,0BAoDG;IlB46KP;IkBp1KA;MA5II,yBAoDG;IlB+6KP;IkBv1KA;MA5II,uBAoDG;IlBk7KP;IkB11KA;MA5II,yBAoDG;IlBq7KP;IkB71KA;MA5II,uBAoDG;IlBw7KP;IkBh2KA;MA5II,mBAoDG;IlB27KP;IkBn2KA;MA5II,yBAoDG;IlB87KP;IkBt2KA;MA5II,wBAoDG;IlBi8KP;IkBz2KA;MA5II,yBAoDG;IlBo8KP;IkB52KA;MA5II,sBAoDG;IlBu8KP;IkB/2KA;MA5II,yBAoDG;IlB08KP;IkBl3KA;MA5II,wBAoDG;IlB68KP;IkBr3KA;MA5II,sBAoDG;IlBg9KP;IkBx3KA;MA5II,wBAoDG;IlBm9KP;IkB33KA;MA5II,sBAoDG;IlBs9KP;IkB93KA;MA5II,yFAoDG;IlBy9KP;IkBj4KA;MA5II,sBAoDG;IlB49KP;IkBp4KA;MA5II,wFAoDG;IlB+9KP;IkBv4KA;MA5II,qBAoDG;IlBk+KP;IkB14KA;MA5II,iBAoDG;IlBq+KP;IkB74KA;MA5II,eAoDG;IlBw+KP;IkBh5KA;MA5II,kBAoDG;IlB2+KP;EACF;EOhgLE;IW4GA;MA5II,mBAoDG;IlBg/KP;IkBx5KA;MA5II,iBAoDG;IlBm/KP;IkB35KA;MA5II,WAoDG;IlBs/KP;IkB95KA;MA5II,mBAoDG;IlBy/KP;IkBj6KA;MA5II,iBAoDG;IlB4/KP;IkBp6KA;MA5II,gBAoDG;IlB+/KP;IkBv6KA;MA5II,sBAoDG;IlBkgLP;IkB16KA;MA5II,gBAoDG;IlBqgLP;IkB76KA;MA5II,eAyDO;IlBmgLX;IkBh7KA;MA5II,qBAyDO;IlBsgLX;IkBn7KA;MA5II,cAyDO;IlBygLX;IkBt7KA;MA5II,aAyDO;IlB4gLX;IkBz7KA;MA5II,oBAyDO;IlB+gLX;IkB57KA;MA5II,cAyDO;IlBkhLX;IkB/7KA;MA5II,kBAyDO;IlBqhLX;IkBl8KA;MA5II,mBAyDO;IlBwhLX;IkBr8KA;MA5II,aAyDO;IlB2hLX;IkBx8KA;MA5II,oBAyDO;IlB8hLX;IkB38KA;MA5II,iBAyDO;IlBiiLX;IkB98KA;MA5II,kBAyDO;IlBoiLX;IkBj9KA;MA5II,aAyDO;IlBuiLX;IkBp9KA;MA5II,cAoDG;IlB+iLP;IkBv9KA;MA5II,mBAyDO;IlB6iLX;IkB19KA;MA5II,sBAyDO;IlBgjLX;IkB79KA;MA5II,2BAyDO;IlBmjLX;IkBh+KA;MA5II,8BAyDO;IlBsjLX;IkBn+KA;MA5II,YAoDG;IlB8jLP;IkBt+KA;MA5II,YAoDG;IlBikLP;IkBz+KA;MA5II,cAoDG;IlBokLP;IkB5+KA;MA5II,cAoDG;IlBukLP;IkB/+KA;MA5II,eAyDO;IlBqkLX;IkBl/KA;MA5II,iBAyDO;IlBwkLX;IkBr/KA;MA5II,uBAyDO;IlB2kLX;IkBx/KA;MA5II,2BAoDG;IlBmlLP;IkB3/KA;MA5II,yBAoDG;IlBslLP;IkB9/KA;MA5II,uBAoDG;IlBylLP;IkBjgLA;MA5II,8BAoDG;IlB4lLP;IkBpgLA;MA5II,6BAoDG;IlB+lLP;IkBvgLA;MA5II,6BAoDG;IlBkmLP;IkB1gLA;MA5II,oBAoDG;IlBqmLP;IkB7gLA;MA5II,kBAoDG;IlBwmLP;IkBhhLA;MA5II,qBAoDG;IlB2mLP;IkBnhLA;MA5II,sBAoDG;IlB8mLP;IkBthLA;MA5II,mBAoDG;IlBinLP;IkBzhLA;MA5II,iBAoDG;IlBonLP;IkB5hLA;MA5II,oBAoDG;IlBunLP;IkB/hLA;MA5II,uBAoDG;IlB0nLP;IkBliLA;MA5II,qBAoDG;IlB6nLP;IkBriLA;MA5II,mBAoDG;IlBgoLP;IkBxiLA;MA5II,qBAoDG;IlBmoLP;IkB3iLA;MA5II,oBAoDG;IlBsoLP;IkB9iLA;MA5II,yBAoDG;IlByoLP;IkBjjLA;MA5II,uBAoDG;IlB4oLP;IkBpjLA;MA5II,qBAoDG;IlB+oLP;IkBvjLA;MA5II,4BAoDG;IlBkpLP;IkB1jLA;MA5II,2BAoDG;IlBqpLP;IkB7jLA;MA5II,sBAoDG;IlBwpLP;IkBhkLA;MA5II,gBAoDG;IlB2pLP;IkBnkLA;MA5II,sBAoDG;IlB8pLP;IkBtkLA;MA5II,oBAoDG;IlBiqLP;IkBzkLA;MA5II,kBAoDG;IlBoqLP;IkB5kLA;MA5II,oBAoDG;IlBuqLP;IkB/kLA;MA5II,mBAoDG;IlB0qLP;IkBllLA;MA5II,kBAoDG;IlB6qLP;IkBrlLA;MA5II,gBAoDG;IlBgrLP;IkBxlLA;MA5II,mBAoDG;IlBmrLP;IkB3lLA;MA5II,oBAoDG;IlBsrLP;IkB9lLA;MA5II,0BAoDG;IlByrLP;IkBjmLA;MA5II,qCAoDG;IlB4rLP;IkBpmLA;MA5II,qCAoDG;IlB+rLP;IkBvmLA;MA5II,qCAoDG;IlBksLP;IkB1mLA;MA5II,qCAoDG;IlBqsLP;IkB7mLA;MA5II,mBAoDG;IlBwsLP;IkBhnLA;MA5II,mBAyDO;IlBssLX;IkBnnLA;MA5II,sBAyDO;IlBysLX;IkBtnLA;MA5II,qBAyDO;IlB4sLX;IkBznLA;MA5II,SAoDG;IlBotLP;IkB5nLA;MA5II,QAoDG;IlButLP;IkB/nLA;MA5II,QAoDG;IlB0tLP;IkBloLA;MA5II,QAoDG;IlB6tLP;IkBroLA;MA5II,QAoDG;IlBguLP;IkBxoLA;MA5II,QAoDG;IlBmuLP;IkB3oLA;MA5II,QAoDG;IlBsuLP;IkB9oLA;MA5II,QAoDG;IlByuLP;IkBjpLA;MA5II,SAoDG;IlB4uLP;IkBppLA;MA5II,eAoDG;IlB+uLP;IkBvpLA;MA5II,cAoDG;IlBkvLP;IkB1pLA;MA5II,eAoDG;IlBqvLP;IkB7pLA;MA5II,YAoDG;IlBwvLP;IkBhqLA;MA5II,eAoDG;IlB2vLP;IkBnqLA;MA5II,cAoDG;IlB8vLP;IkBtqLA;MA5II,YAoDG;IlBiwLP;IkBzqLA;MA5II,cAoDG;IlBowLP;IkB5qLA;MA5II,YAoDG;IlBuwLP;IkB/qLA;MA5II,YAoDG;IlB0wLP;IkBlrLA;MA5II,gBAoDG;IlB6wLP;IkBrrLA;MA5II,sBAoDG;IlBgxLP;IkBxrLA;MA5II,qBAoDG;IlBmxLP;IkB3rLA;MA5II,sBAoDG;IlBsxLP;IkB9rLA;MA5II,mBAoDG;IlByxLP;IkBjsLA;MA5II,sBAoDG;IlB4xLP;IkBpsLA;MA5II,qBAoDG;IlB+xLP;IkBvsLA;MA5II,mBAoDG;IlBkyLP;IkB1sLA;MA5II,qBAoDG;IlBqyLP;IkB7sLA;MA5II,mBAoDG;IlBwyLP;IkBhtLA;MA5II,mBAoDG;IlB2yLP;IkBntLA;MA5II,eAoDG;IlB8yLP;IkBttLA;MA5II,qBAoDG;IlBizLP;IkBztLA;MA5II,oBAoDG;IlBozLP;IkB5tLA;MA5II,qBAoDG;IlBuzLP;IkB/tLA;MA5II,kBAoDG;IlB0zLP;IkBluLA;MA5II,qBAoDG;IlB6zLP;IkBruLA;MA5II,oBAoDG;IlBg0LP;IkBxuLA;MA5II,kBAoDG;IlBm0LP;IkB3uLA;MA5II,oBAoDG;IlBs0LP;IkB9uLA;MA5II,kBAoDG;IlBy0LP;IkBjvLA;MA5II,kBAoDG;IlB40LP;IkBpvLA;MA5II,qBAoDG;IlB+0LP;IkBvvLA;MA5II,2BAoDG;IlBk1LP;IkB1vLA;MA5II,0BAoDG;IlBq1LP;IkB7vLA;MA5II,2BAoDG;IlBw1LP;IkBhwLA;MA5II,wBAoDG;IlB21LP;IkBnwLA;MA5II,2BAoDG;IlB81LP;IkBtwLA;MA5II,0BAoDG;IlBi2LP;IkBzwLA;MA5II,wBAoDG;IlBo2LP;IkB5wLA;MA5II,0BAoDG;IlBu2LP;IkB/wLA;MA5II,wBAoDG;IlB02LP;IkBlxLA;MA5II,wBAoDG;IlB62LP;IkBrxLA;MA5II,oBAoDG;IlBg3LP;IkBxxLA;MA5II,0BAoDG;IlBm3LP;IkB3xLA;MA5II,yBAoDG;IlBs3LP;IkB9xLA;MA5II,0BAoDG;IlBy3LP;IkBjyLA;MA5II,uBAoDG;IlB43LP;IkBpyLA;MA5II,0BAoDG;IlB+3LP;IkBvyLA;MA5II,yBAoDG;IlBk4LP;IkB1yLA;MA5II,uBAoDG;IlBq4LP;IkB7yLA;MA5II,yBAoDG;IlBw4LP;IkBhzLA;MA5II,uBAoDG;IlB24LP;IkBnzLA;MA5II,2BAoDG;IlB84LP;IkBtzLA;MA5II,0BAoDG;IlBi5LP;IkBzzLA;MA5II,uBAoDG;IlBo5LP;IkB5zLA;MA5II,mBAoDG;IlBu5LP;IkB/zLA;MA5II,yBAoDG;IlB05LP;IkBl0LA;MA5II,wBAoDG;IlB65LP;IkBr0LA;MA5II,yBAoDG;IlBg6LP;IkBx0LA;MA5II,sBAoDG;IlBm6LP;IkB30LA;MA5II,yBAoDG;IlBs6LP;IkB90LA;MA5II,wBAoDG;IlBy6LP;IkBj1LA;MA5II,sBAoDG;IlB46LP;IkBp1LA;MA5II,wBAoDG;IlB+6LP;IkBv1LA;MA5II,sBAoDG;IlBk7LP;IkB11LA;MA5II,sBAoDG;IlBq7LP;IkB71LA;MA5II,sBAoDG;IlBw7LP;IkBh2LA;MA5II,4BAoDG;IlB27LP;IkBn2LA;MA5II,2BAoDG;IlB87LP;IkBt2LA;MA5II,4BAoDG;IlBi8LP;IkBz2LA;MA5II,yBAoDG;IlBo8LP;IkB52LA;MA5II,4BAoDG;IlBu8LP;IkB/2LA;MA5II,2BAoDG;IlB08LP;IkBl3LA;MA5II,yBAoDG;IlB68LP;IkBr3LA;MA5II,2BAoDG;IlBg9LP;IkBx3LA;MA5II,yBAoDG;IlBm9LP;IkB33LA;MA5II,6BAoDG;IlBs9LP;IkB93LA;MA5II,4BAoDG;IlBy9LP;IkBj4LA;MA5II,yBAoDG;IlB49LP;IkBp4LA;MA5II,UAoDG;IlB+9LP;IkBv4LA;MA5II,gBAoDG;IlBk+LP;IkB14LA;MA5II,eAoDG;IlBq+LP;IkB74LA;MA5II,gBAoDG;IlBw+LP;IkBh5LA;MA5II,aAoDG;IlB2+LP;IkBn5LA;MA5II,gBAoDG;IlB8+LP;IkBt5LA;MA5II,eAoDG;IlBi/LP;IkBz5LA;MA5II,aAoDG;IlBo/LP;IkB55LA;MA5II,eAoDG;IlBu/LP;IkB/5LA;MA5II,aAoDG;IlB0/LP;IkBl6LA;MA5II,iBAoDG;IlB6/LP;IkBr6LA;MA5II,uBAoDG;IlBggMP;IkBx6LA;MA5II,sBAoDG;IlBmgMP;IkB36LA;MA5II,uBAoDG;IlBsgMP;IkB96LA;MA5II,oBAoDG;IlBygMP;IkBj7LA;MA5II,uBAoDG;IlB4gMP;IkBp7LA;MA5II,sBAoDG;IlB+gMP;IkBv7LA;MA5II,oBAoDG;IlBkhMP;IkB17LA;MA5II,sBAoDG;IlBqhMP;IkB77LA;MA5II,oBAoDG;IlBwhMP;IkBh8LA;MA5II,gBAoDG;IlB2hMP;IkBn8LA;MA5II,sBAoDG;IlB8hMP;IkBt8LA;MA5II,qBAoDG;IlBiiMP;IkBz8LA;MA5II,sBAoDG;IlBoiMP;IkB58LA;MA5II,mBAoDG;IlBuiMP;IkB/8LA;MA5II,sBAoDG;IlB0iMP;IkBl9LA;MA5II,qBAoDG;IlB6iMP;IkBr9LA;MA5II,mBAoDG;IlBgjMP;IkBx9LA;MA5II,qBAoDG;IlBmjMP;IkB39LA;MA5II,mBAoDG;IlBsjMP;IkB99LA;MA5II,sBAoDG;IlByjMP;IkBj+LA;MA5II,4BAoDG;IlB4jMP;IkBp+LA;MA5II,2BAoDG;IlB+jMP;IkBv+LA;MA5II,4BAoDG;IlBkkMP;IkB1+LA;MA5II,yBAoDG;IlBqkMP;IkB7+LA;MA5II,4BAoDG;IlBwkMP;IkBh/LA;MA5II,2BAoDG;IlB2kMP;IkBn/LA;MA5II,yBAoDG;IlB8kMP;IkBt/LA;MA5II,2BAoDG;IlBilMP;IkBz/LA;MA5II,yBAoDG;IlBolMP;IkB5/LA;MA5II,qBAoDG;IlBulMP;IkB//LA;MA5II,2BAoDG;IlB0lMP;IkBlgMA;MA5II,0BAoDG;IlB6lMP;IkBrgMA;MA5II,2BAoDG;IlBgmMP;IkBxgMA;MA5II,wBAoDG;IlBmmMP;IkB3gMA;MA5II,2BAoDG;IlBsmMP;IkB9gMA;MA5II,0BAoDG;IlBymMP;IkBjhMA;MA5II,wBAoDG;IlB4mMP;IkBphMA;MA5II,0BAoDG;IlB+mMP;IkBvhMA;MA5II,wBAoDG;IlBknMP;IkB1hMA;MA5II,oBAoDG;IlBqnMP;IkB7hMA;MA5II,0BAoDG;IlBwnMP;IkBhiMA;MA5II,yBAoDG;IlB2nMP;IkBniMA;MA5II,0BAoDG;IlB8nMP;IkBtiMA;MA5II,uBAoDG;IlBioMP;IkBziMA;MA5II,0BAoDG;IlBooMP;IkB5iMA;MA5II,yBAoDG;IlBuoMP;IkB/iMA;MA5II,uBAoDG;IlB0oMP;IkBljMA;MA5II,yBAoDG;IlB6oMP;IkBrjMA;MA5II,uBAoDG;IlBgpMP;IkBxjMA;MA5II,uBAoDG;IlBmpMP;IkB3jMA;MA5II,6BAoDG;IlBspMP;IkB9jMA;MA5II,4BAoDG;IlBypMP;IkBjkMA;MA5II,6BAoDG;IlB4pMP;IkBpkMA;MA5II,0BAoDG;IlB+pMP;IkBvkMA;MA5II,6BAoDG;IlBkqMP;IkB1kMA;MA5II,4BAoDG;IlBqqMP;IkB7kMA;MA5II,0BAoDG;IlBwqMP;IkBhlMA;MA5II,4BAoDG;IlB2qMP;IkBnlMA;MA5II,0BAoDG;IlB8qMP;IkBtlMA;MA5II,MAoDG;IlBirMP;IkBzlMA;MA5II,YAoDG;IlBorMP;IkB5lMA;MA5II,WAoDG;IlBurMP;IkB/lMA;MA5II,YAoDG;IlB0rMP;IkBlmMA;MA5II,SAoDG;IlB6rMP;IkBrmMA;MA5II,YAoDG;IlBgsMP;IkBxmMA;MA5II,WAoDG;IlBmsMP;IkB3mMA;MA5II,SAoDG;IlBssMP;IkB9mMA;MA5II,WAoDG;IlBysMP;IkBjnMA;MA5II,SAoDG;IlB4sMP;IkBpnMA;MA5II,UAoDG;IlB+sMP;IkBvnMA;MA5II,gBAoDG;IlBktMP;IkB1nMA;MA5II,eAoDG;IlBqtMP;IkB7nMA;MA5II,gBAoDG;IlBwtMP;IkBhoMA;MA5II,aAoDG;IlB2tMP;IkBnoMA;MA5II,gBAoDG;IlB8tMP;IkBtoMA;MA5II,eAoDG;IlBiuMP;IkBzoMA;MA5II,aAoDG;IlBouMP;IkB5oMA;MA5II,eAoDG;IlBuuMP;IkB/oMA;MA5II,aAoDG;IlB0uMP;IkBlpMA;MA5II,aAoDG;IlB6uMP;IkBrpMA;MA5II,mBAoDG;IlBgvMP;IkBxpMA;MA5II,kBAoDG;IlBmvMP;IkB3pMA;MA5II,mBAoDG;IlBsvMP;IkB9pMA;MA5II,gBAoDG;IlByvMP;IkBjqMA;MA5II,mBAoDG;IlB4vMP;IkBpqMA;MA5II,kBAoDG;IlB+vMP;IkBvqMA;MA5II,gBAoDG;IlBkwMP;IkB1qMA;MA5II,kBAoDG;IlBqwMP;IkB7qMA;MA5II,gBAoDG;IlBwwMP;IkBhrMA;MA5II,oBAoDG;IlB2wMP;IkBnrMA;MA5II,0BAoDG;IlB8wMP;IkBtrMA;MA5II,yBAoDG;IlBixMP;IkBzrMA;MA5II,0BAoDG;IlBoxMP;IkB5rMA;MA5II,uBAoDG;IlBuxMP;IkB/rMA;MA5II,0BAoDG;IlB0xMP;IkBlsMA;MA5II,yBAoDG;IlB6xMP;IkBrsMA;MA5II,uBAoDG;IlBgyMP;IkBxsMA;MA5II,yBAoDG;IlBmyMP;IkB3sMA;MA5II,uBAoDG;IlBsyMP;IkB9sMA;MA5II,mBAoDG;IlByyMP;IkBjtMA;MA5II,yBAoDG;IlB4yMP;IkBptMA;MA5II,wBAoDG;IlB+yMP;IkBvtMA;MA5II,yBAoDG;IlBkzMP;IkB1tMA;MA5II,sBAoDG;IlBqzMP;IkB7tMA;MA5II,yBAoDG;IlBwzMP;IkBhuMA;MA5II,wBAoDG;IlB2zMP;IkBnuMA;MA5II,sBAoDG;IlB8zMP;IkBtuMA;MA5II,wBAoDG;IlBi0MP;IkBzuMA;MA5II,sBAoDG;IlBo0MP;IkB5uMA;MA5II,yFAoDG;IlBu0MP;IkB/uMA;MA5II,sBAoDG;IlB00MP;IkBlvMA;MA5II,wFAoDG;IlB60MP;IkBrvMA;MA5II,qBAoDG;IlBg1MP;IkBxvMA;MA5II,iBAoDG;IlBm1MP;IkB3vMA;MA5II,eAoDG;IlBs1MP;IkB9vMA;MA5II,kBAoDG;IlBy1MP;EACF;EO92ME;IW4GA;MA5II,mBAoDG;IlB81MP;IkBtwMA;MA5II,iBAoDG;IlBi2MP;IkBzwMA;MA5II,WAoDG;IlBo2MP;IkB5wMA;MA5II,mBAoDG;IlBu2MP;IkB/wMA;MA5II,iBAoDG;IlB02MP;IkBlxMA;MA5II,gBAoDG;IlB62MP;IkBrxMA;MA5II,sBAoDG;IlBg3MP;IkBxxMA;MA5II,gBAoDG;IlBm3MP;IkB3xMA;MA5II,eAyDO;IlBi3MX;IkB9xMA;MA5II,qBAyDO;IlBo3MX;IkBjyMA;MA5II,cAyDO;IlBu3MX;IkBpyMA;MA5II,aAyDO;IlB03MX;IkBvyMA;MA5II,oBAyDO;IlB63MX;IkB1yMA;MA5II,cAyDO;IlBg4MX;IkB7yMA;MA5II,kBAyDO;IlBm4MX;IkBhzMA;MA5II,mBAyDO;IlBs4MX;IkBnzMA;MA5II,aAyDO;IlBy4MX;IkBtzMA;MA5II,oBAyDO;IlB44MX;IkBzzMA;MA5II,iBAyDO;IlB+4MX;IkB5zMA;MA5II,kBAyDO;IlBk5MX;IkB/zMA;MA5II,aAyDO;IlBq5MX;IkBl0MA;MA5II,cAoDG;IlB65MP;IkBr0MA;MA5II,mBAyDO;IlB25MX;IkBx0MA;MA5II,sBAyDO;IlB85MX;IkB30MA;MA5II,2BAyDO;IlBi6MX;IkB90MA;MA5II,8BAyDO;IlBo6MX;IkBj1MA;MA5II,YAoDG;IlB46MP;IkBp1MA;MA5II,YAoDG;IlB+6MP;IkBv1MA;MA5II,cAoDG;IlBk7MP;IkB11MA;MA5II,cAoDG;IlBq7MP;IkB71MA;MA5II,eAyDO;IlBm7MX;IkBh2MA;MA5II,iBAyDO;IlBs7MX;IkBn2MA;MA5II,uBAyDO;IlBy7MX;IkBt2MA;MA5II,2BAoDG;IlBi8MP;IkBz2MA;MA5II,yBAoDG;IlBo8MP;IkB52MA;MA5II,uBAoDG;IlBu8MP;IkB/2MA;MA5II,8BAoDG;IlB08MP;IkBl3MA;MA5II,6BAoDG;IlB68MP;IkBr3MA;MA5II,6BAoDG;IlBg9MP;IkBx3MA;MA5II,oBAoDG;IlBm9MP;IkB33MA;MA5II,kBAoDG;IlBs9MP;IkB93MA;MA5II,qBAoDG;IlBy9MP;IkBj4MA;MA5II,sBAoDG;IlB49MP;IkBp4MA;MA5II,mBAoDG;IlB+9MP;IkBv4MA;MA5II,iBAoDG;IlBk+MP;IkB14MA;MA5II,oBAoDG;IlBq+MP;IkB74MA;MA5II,uBAoDG;IlBw+MP;IkBh5MA;MA5II,qBAoDG;IlB2+MP;IkBn5MA;MA5II,mBAoDG;IlB8+MP;IkBt5MA;MA5II,qBAoDG;IlBi/MP;IkBz5MA;MA5II,oBAoDG;IlBo/MP;IkB55MA;MA5II,yBAoDG;IlBu/MP;IkB/5MA;MA5II,uBAoDG;IlB0/MP;IkBl6MA;MA5II,qBAoDG;IlB6/MP;IkBr6MA;MA5II,4BAoDG;IlBggNP;IkBx6MA;MA5II,2BAoDG;IlBmgNP;IkB36MA;MA5II,sBAoDG;IlBsgNP;IkB96MA;MA5II,gBAoDG;IlBygNP;IkBj7MA;MA5II,sBAoDG;IlB4gNP;IkBp7MA;MA5II,oBAoDG;IlB+gNP;IkBv7MA;MA5II,kBAoDG;IlBkhNP;IkB17MA;MA5II,oBAoDG;IlBqhNP;IkB77MA;MA5II,mBAoDG;IlBwhNP;IkBh8MA;MA5II,kBAoDG;IlB2hNP;IkBn8MA;MA5II,gBAoDG;IlB8hNP;IkBt8MA;MA5II,mBAoDG;IlBiiNP;IkBz8MA;MA5II,oBAoDG;IlBoiNP;IkB58MA;MA5II,0BAoDG;IlBuiNP;IkB/8MA;MA5II,qCAoDG;IlB0iNP;IkBl9MA;MA5II,qCAoDG;IlB6iNP;IkBr9MA;MA5II,qCAoDG;IlBgjNP;IkBx9MA;MA5II,qCAoDG;IlBmjNP;IkB39MA;MA5II,mBAoDG;IlBsjNP;IkB99MA;MA5II,mBAyDO;IlBojNX;IkBj+MA;MA5II,sBAyDO;IlBujNX;IkBp+MA;MA5II,qBAyDO;IlB0jNX;IkBv+MA;MA5II,SAoDG;IlBkkNP;IkB1+MA;MA5II,QAoDG;IlBqkNP;IkB7+MA;MA5II,QAoDG;IlBwkNP;IkBh/MA;MA5II,QAoDG;IlB2kNP;IkBn/MA;MA5II,QAoDG;IlB8kNP;IkBt/MA;MA5II,QAoDG;IlBilNP;IkBz/MA;MA5II,QAoDG;IlBolNP;IkB5/MA;MA5II,QAoDG;IlBulNP;IkB//MA;MA5II,SAoDG;IlB0lNP;IkBlgNA;MA5II,eAoDG;IlB6lNP;IkBrgNA;MA5II,cAoDG;IlBgmNP;IkBxgNA;MA5II,eAoDG;IlBmmNP;IkB3gNA;MA5II,YAoDG;IlBsmNP;IkB9gNA;MA5II,eAoDG;IlBymNP;IkBjhNA;MA5II,cAoDG;IlB4mNP;IkBphNA;MA5II,YAoDG;IlB+mNP;IkBvhNA;MA5II,cAoDG;IlBknNP;IkB1hNA;MA5II,YAoDG;IlBqnNP;IkB7hNA;MA5II,YAoDG;IlBwnNP;IkBhiNA;MA5II,gBAoDG;IlB2nNP;IkBniNA;MA5II,sBAoDG;IlB8nNP;IkBtiNA;MA5II,qBAoDG;IlBioNP;IkBziNA;MA5II,sBAoDG;IlBooNP;IkB5iNA;MA5II,mBAoDG;IlBuoNP;IkB/iNA;MA5II,sBAoDG;IlB0oNP;IkBljNA;MA5II,qBAoDG;IlB6oNP;IkBrjNA;MA5II,mBAoDG;IlBgpNP;IkBxjNA;MA5II,qBAoDG;IlBmpNP;IkB3jNA;MA5II,mBAoDG;IlBspNP;IkB9jNA;MA5II,mBAoDG;IlBypNP;IkBjkNA;MA5II,eAoDG;IlB4pNP;IkBpkNA;MA5II,qBAoDG;IlB+pNP;IkBvkNA;MA5II,oBAoDG;IlBkqNP;IkB1kNA;MA5II,qBAoDG;IlBqqNP;IkB7kNA;MA5II,kBAoDG;IlBwqNP;IkBhlNA;MA5II,qBAoDG;IlB2qNP;IkBnlNA;MA5II,oBAoDG;IlB8qNP;IkBtlNA;MA5II,kBAoDG;IlBirNP;IkBzlNA;MA5II,oBAoDG;IlBorNP;IkB5lNA;MA5II,kBAoDG;IlBurNP;IkB/lNA;MA5II,kBAoDG;IlB0rNP;IkBlmNA;MA5II,qBAoDG;IlB6rNP;IkBrmNA;MA5II,2BAoDG;IlBgsNP;IkBxmNA;MA5II,0BAoDG;IlBmsNP;IkB3mNA;MA5II,2BAoDG;IlBssNP;IkB9mNA;MA5II,wBAoDG;IlBysNP;IkBjnNA;MA5II,2BAoDG;IlB4sNP;IkBpnNA;MA5II,0BAoDG;IlB+sNP;IkBvnNA;MA5II,wBAoDG;IlBktNP;IkB1nNA;MA5II,0BAoDG;IlBqtNP;IkB7nNA;MA5II,wBAoDG;IlBwtNP;IkBhoNA;MA5II,wBAoDG;IlB2tNP;IkBnoNA;MA5II,oBAoDG;IlB8tNP;IkBtoNA;MA5II,0BAoDG;IlBiuNP;IkBzoNA;MA5II,yBAoDG;IlBouNP;IkB5oNA;MA5II,0BAoDG;IlBuuNP;IkB/oNA;MA5II,uBAoDG;IlB0uNP;IkBlpNA;MA5II,0BAoDG;IlB6uNP;IkBrpNA;MA5II,yBAoDG;IlBgvNP;IkBxpNA;MA5II,uBAoDG;IlBmvNP;IkB3pNA;MA5II,yBAoDG;IlBsvNP;IkB9pNA;MA5II,uBAoDG;IlByvNP;IkBjqNA;MA5II,2BAoDG;IlB4vNP;IkBpqNA;MA5II,0BAoDG;IlB+vNP;IkBvqNA;MA5II,uBAoDG;IlBkwNP;IkB1qNA;MA5II,mBAoDG;IlBqwNP;IkB7qNA;MA5II,yBAoDG;IlBwwNP;IkBhrNA;MA5II,wBAoDG;IlB2wNP;IkBnrNA;MA5II,yBAoDG;IlB8wNP;IkBtrNA;MA5II,sBAoDG;IlBixNP;IkBzrNA;MA5II,yBAoDG;IlBoxNP;IkB5rNA;MA5II,wBAoDG;IlBuxNP;IkB/rNA;MA5II,sBAoDG;IlB0xNP;IkBlsNA;MA5II,wBAoDG;IlB6xNP;IkBrsNA;MA5II,sBAoDG;IlBgyNP;IkBxsNA;MA5II,sBAoDG;IlBmyNP;IkB3sNA;MA5II,sBAoDG;IlBsyNP;IkB9sNA;MA5II,4BAoDG;IlByyNP;IkBjtNA;MA5II,2BAoDG;IlB4yNP;IkBptNA;MA5II,4BAoDG;IlB+yNP;IkBvtNA;MA5II,yBAoDG;IlBkzNP;IkB1tNA;MA5II,4BAoDG;IlBqzNP;IkB7tNA;MA5II,2BAoDG;IlBwzNP;IkBhuNA;MA5II,yBAoDG;IlB2zNP;IkBnuNA;MA5II,2BAoDG;IlB8zNP;IkBtuNA;MA5II,yBAoDG;IlBi0NP;IkBzuNA;MA5II,6BAoDG;IlBo0NP;IkB5uNA;MA5II,4BAoDG;IlBu0NP;IkB/uNA;MA5II,yBAoDG;IlB00NP;IkBlvNA;MA5II,UAoDG;IlB60NP;IkBrvNA;MA5II,gBAoDG;IlBg1NP;IkBxvNA;MA5II,eAoDG;IlBm1NP;IkB3vNA;MA5II,gBAoDG;IlBs1NP;IkB9vNA;MA5II,aAoDG;IlBy1NP;IkBjwNA;MA5II,gBAoDG;IlB41NP;IkBpwNA;MA5II,eAoDG;IlB+1NP;IkBvwNA;MA5II,aAoDG;IlBk2NP;IkB1wNA;MA5II,eAoDG;IlBq2NP;IkB7wNA;MA5II,aAoDG;IlBw2NP;IkBhxNA;MA5II,iBAoDG;IlB22NP;IkBnxNA;MA5II,uBAoDG;IlB82NP;IkBtxNA;MA5II,sBAoDG;IlBi3NP;IkBzxNA;MA5II,uBAoDG;IlBo3NP;IkB5xNA;MA5II,oBAoDG;IlBu3NP;IkB/xNA;MA5II,uBAoDG;IlB03NP;IkBlyNA;MA5II,sBAoDG;IlB63NP;IkBryNA;MA5II,oBAoDG;IlBg4NP;IkBxyNA;MA5II,sBAoDG;IlBm4NP;IkB3yNA;MA5II,oBAoDG;IlBs4NP;IkB9yNA;MA5II,gBAoDG;IlBy4NP;IkBjzNA;MA5II,sBAoDG;IlB44NP;IkBpzNA;MA5II,qBAoDG;IlB+4NP;IkBvzNA;MA5II,sBAoDG;IlBk5NP;IkB1zNA;MA5II,mBAoDG;IlBq5NP;IkB7zNA;MA5II,sBAoDG;IlBw5NP;IkBh0NA;MA5II,qBAoDG;IlB25NP;IkBn0NA;MA5II,mBAoDG;IlB85NP;IkBt0NA;MA5II,qBAoDG;IlBi6NP;IkBz0NA;MA5II,mBAoDG;IlBo6NP;IkB50NA;MA5II,sBAoDG;IlBu6NP;IkB/0NA;MA5II,4BAoDG;IlB06NP;IkBl1NA;MA5II,2BAoDG;IlB66NP;IkBr1NA;MA5II,4BAoDG;IlBg7NP;IkBx1NA;MA5II,yBAoDG;IlBm7NP;IkB31NA;MA5II,4BAoDG;IlBs7NP;IkB91NA;MA5II,2BAoDG;IlBy7NP;IkBj2NA;MA5II,yBAoDG;IlB47NP;IkBp2NA;MA5II,2BAoDG;IlB+7NP;IkBv2NA;MA5II,yBAoDG;IlBk8NP;IkB12NA;MA5II,qBAoDG;IlBq8NP;IkB72NA;MA5II,2BAoDG;IlBw8NP;IkBh3NA;MA5II,0BAoDG;IlB28NP;IkBn3NA;MA5II,2BAoDG;IlB88NP;IkBt3NA;MA5II,wBAoDG;IlBi9NP;IkBz3NA;MA5II,2BAoDG;IlBo9NP;IkB53NA;MA5II,0BAoDG;IlBu9NP;IkB/3NA;MA5II,wBAoDG;IlB09NP;IkBl4NA;MA5II,0BAoDG;IlB69NP;IkBr4NA;MA5II,wBAoDG;IlBg+NP;IkBx4NA;MA5II,oBAoDG;IlBm+NP;IkB34NA;MA5II,0BAoDG;IlBs+NP;IkB94NA;MA5II,yBAoDG;IlBy+NP;IkBj5NA;MA5II,0BAoDG;IlB4+NP;IkBp5NA;MA5II,uBAoDG;IlB++NP;IkBv5NA;MA5II,0BAoDG;IlBk/NP;IkB15NA;MA5II,yBAoDG;IlBq/NP;IkB75NA;MA5II,uBAoDG;IlBw/NP;IkBh6NA;MA5II,yBAoDG;IlB2/NP;IkBn6NA;MA5II,uBAoDG;IlB8/NP;IkBt6NA;MA5II,uBAoDG;IlBigOP;IkBz6NA;MA5II,6BAoDG;IlBogOP;IkB56NA;MA5II,4BAoDG;IlBugOP;IkB/6NA;MA5II,6BAoDG;IlB0gOP;IkBl7NA;MA5II,0BAoDG;IlB6gOP;IkBr7NA;MA5II,6BAoDG;IlBghOP;IkBx7NA;MA5II,4BAoDG;IlBmhOP;IkB37NA;MA5II,0BAoDG;IlBshOP;IkB97NA;MA5II,4BAoDG;IlByhOP;IkBj8NA;MA5II,0BAoDG;IlB4hOP;IkBp8NA;MA5II,MAoDG;IlB+hOP;IkBv8NA;MA5II,YAoDG;IlBkiOP;IkB18NA;MA5II,WAoDG;IlBqiOP;IkB78NA;MA5II,YAoDG;IlBwiOP;IkBh9NA;MA5II,SAoDG;IlB2iOP;IkBn9NA;MA5II,YAoDG;IlB8iOP;IkBt9NA;MA5II,WAoDG;IlBijOP;IkBz9NA;MA5II,SAoDG;IlBojOP;IkB59NA;MA5II,WAoDG;IlBujOP;IkB/9NA;MA5II,SAoDG;IlB0jOP;IkBl+NA;MA5II,UAoDG;IlB6jOP;IkBr+NA;MA5II,gBAoDG;IlBgkOP;IkBx+NA;MA5II,eAoDG;IlBmkOP;IkB3+NA;MA5II,gBAoDG;IlBskOP;IkB9+NA;MA5II,aAoDG;IlBykOP;IkBj/NA;MA5II,gBAoDG;IlB4kOP;IkBp/NA;MA5II,eAoDG;IlB+kOP;IkBv/NA;MA5II,aAoDG;IlBklOP;IkB1/NA;MA5II,eAoDG;IlBqlOP;IkB7/NA;MA5II,aAoDG;IlBwlOP;IkBhgOA;MA5II,aAoDG;IlB2lOP;IkBngOA;MA5II,mBAoDG;IlB8lOP;IkBtgOA;MA5II,kBAoDG;IlBimOP;IkBzgOA;MA5II,mBAoDG;IlBomOP;IkB5gOA;MA5II,gBAoDG;IlBumOP;IkB/gOA;MA5II,mBAoDG;IlB0mOP;IkBlhOA;MA5II,kBAoDG;IlB6mOP;IkBrhOA;MA5II,gBAoDG;IlBgnOP;IkBxhOA;MA5II,kBAoDG;IlBmnOP;IkB3hOA;MA5II,gBAoDG;IlBsnOP;IkB9hOA;MA5II,oBAoDG;IlBynOP;IkBjiOA;MA5II,0BAoDG;IlB4nOP;IkBpiOA;MA5II,yBAoDG;IlB+nOP;IkBviOA;MA5II,0BAoDG;IlBkoOP;IkB1iOA;MA5II,uBAoDG;IlBqoOP;IkB7iOA;MA5II,0BAoDG;IlBwoOP;IkBhjOA;MA5II,yBAoDG;IlB2oOP;IkBnjOA;MA5II,uBAoDG;IlB8oOP;IkBtjOA;MA5II,yBAoDG;IlBipOP;IkBzjOA;MA5II,uBAoDG;IlBopOP;IkB5jOA;MA5II,mBAoDG;IlBupOP;IkB/jOA;MA5II,yBAoDG;IlB0pOP;IkBlkOA;MA5II,wBAoDG;IlB6pOP;IkBrkOA;MA5II,yBAoDG;IlBgqOP;IkBxkOA;MA5II,sBAoDG;IlBmqOP;IkB3kOA;MA5II,yBAoDG;IlBsqOP;IkB9kOA;MA5II,wBAoDG;IlByqOP;IkBjlOA;MA5II,sBAoDG;IlB4qOP;IkBplOA;MA5II,wBAoDG;IlB+qOP;IkBvlOA;MA5II,sBAoDG;IlBkrOP;IkB1lOA;MA5II,yFAoDG;IlBqrOP;IkB7lOA;MA5II,sBAoDG;IlBwrOP;IkBhmOA;MA5II,wFAoDG;IlB2rOP;IkBnmOA;MA5II,qBAoDG;IlB8rOP;IkBtmOA;MA5II,iBAoDG;IlBisOP;IkBzmOA;MA5II,eAoDG;IlBosOP;IkB5mOA;MA5II,kBAoDG;IlBusOP;EACF;AACF","file":"bootstrap-utilities.css","sourcesContent":["$file: \"\" !default;\n\n/*!\n * Bootstrap #{$file} v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n","// stylelint-disable hue-degree-notation, @stylistic/number-leading-zero\n\n@use \"sass:map\";\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n// Easily convert colors to oklch() with https://oklch.com/\n\n$white: #fff !default;\n$black: #000 !default;\n\n// scss-docs-start colors-list\n$blue: oklch(60% 0.24 240) !default;\n$indigo: oklch(56% 0.26 288) !default;\n$violet: oklch(56% 0.24 300) !default;\n$purple: oklch(56% 0.24 320) !default;\n$pink: oklch(60% 0.22 4) !default;\n$red: oklch(60% 0.22 20) !default;\n$orange: oklch(70% 0.22 52) !default;\n$amber: oklch(79% 0.2 78) !default;\n$yellow: oklch(88% 0.24 88) !default;\n$lime: oklch(65% 0.24 135) !default;\n$green: oklch(64% 0.22 160) !default;\n$teal: oklch(68% 0.22 190) !default;\n$cyan: oklch(69% 0.22 220) !default;\n$brown: oklch(60% 0.12 54) !default;\n$gray: oklch(60% 0.02 245) !default;\n$pewter: oklch(65% 0.01 290) !default;\n// scss-docs-end colors-list\n\n// scss-docs-start colors-map\n$colors: () !default;\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: defaults(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"violet\": $violet,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"amber\": $amber,\n \"yellow\": $yellow,\n \"lime\": $lime,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"brown\": $brown,\n \"gray\": $gray,\n \"pewter\": $pewter,\n ),\n $colors\n);\n// scss-docs-end colors-map\n\n// scss-docs-start color-mix-options\n$color-mix-space: lab !default;\n$tint-color: var(--white) !default;\n$shade-color: var(--black) !default;\n\n$color-tints: (\n \"025\": 94%,\n \"050\": 90%,\n \"100\": 80%,\n \"200\": 60%,\n \"300\": 40%,\n \"400\": 20%,\n) !default;\n\n$color-shades: (\n \"600\": 16%,\n \"700\": 32%,\n \"800\": 48%,\n \"900\": 64%,\n \"950\": 76%,\n \"975\": 88%,\n) !default;\n// scss-docs-end color-mix-options\n\n// scss-docs-start color-tokens\n$color-tokens: () !default;\n\n$-color-defaults: () !default;\n@each $color, $value in $colors {\n @each $stop, $percent in $color-tints {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$tint-color} #{$percent}, #{$value}));\n }\n $-color-defaults: map.set($-color-defaults, --#{$color}-500, #{$value});\n @each $stop, $percent in $color-shades {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$shade-color} #{$percent}, #{$value}));\n }\n}\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$color-tokens: defaults($-color-defaults, $color-tokens);\n// scss-docs-end color-tokens\n\n:root {\n @include tokens($color-tokens);\n}\n","// Mixin to output tokens as CSS custom properties\n\n// scss-docs-start mixin-tokens\n@mixin tokens($map) {\n @each $prop, $value in $map {\n #{$prop}: #{$value};\n }\n}\n// scss-docs-end mixin-tokens\n","/*!\n * Bootstrap Utilities v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.24 240deg));\n --blue-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.24 240deg));\n --blue-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.24 240deg));\n --blue-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.24 240deg));\n --blue-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.24 240deg));\n --blue-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.24 240deg));\n --blue-500: oklch(60% 0.24 240deg);\n --blue-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.24 240deg));\n --blue-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.24 240deg));\n --blue-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.24 240deg));\n --blue-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.24 240deg));\n --blue-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.24 240deg));\n --blue-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.24 240deg));\n --indigo-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.26 288deg));\n --indigo-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.26 288deg));\n --indigo-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.26 288deg));\n --indigo-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.26 288deg));\n --indigo-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.26 288deg));\n --indigo-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.26 288deg));\n --indigo-500: oklch(56% 0.26 288deg);\n --indigo-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.26 288deg));\n --indigo-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.26 288deg));\n --indigo-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.26 288deg));\n --indigo-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.26 288deg));\n --indigo-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.26 288deg));\n --indigo-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.26 288deg));\n --violet-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 300deg));\n --violet-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 300deg));\n --violet-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 300deg));\n --violet-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 300deg));\n --violet-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 300deg));\n --violet-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 300deg));\n --violet-500: oklch(56% 0.24 300deg);\n --violet-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 300deg));\n --violet-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 300deg));\n --violet-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 300deg));\n --violet-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 300deg));\n --violet-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 300deg));\n --violet-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 300deg));\n --purple-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 320deg));\n --purple-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 320deg));\n --purple-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 320deg));\n --purple-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 320deg));\n --purple-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 320deg));\n --purple-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 320deg));\n --purple-500: oklch(56% 0.24 320deg);\n --purple-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 320deg));\n --purple-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 320deg));\n --purple-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 320deg));\n --purple-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 320deg));\n --purple-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 320deg));\n --purple-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 320deg));\n --pink-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 4deg));\n --pink-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 4deg));\n --pink-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 4deg));\n --pink-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 4deg));\n --pink-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 4deg));\n --pink-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 4deg));\n --pink-500: oklch(60% 0.22 4deg);\n --pink-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 4deg));\n --pink-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 4deg));\n --pink-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 4deg));\n --pink-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 4deg));\n --pink-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 4deg));\n --pink-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 4deg));\n --red-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 20deg));\n --red-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 20deg));\n --red-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 20deg));\n --red-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 20deg));\n --red-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 20deg));\n --red-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 20deg));\n --red-500: oklch(60% 0.22 20deg);\n --red-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 20deg));\n --red-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 20deg));\n --red-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 20deg));\n --red-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 20deg));\n --red-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 20deg));\n --red-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 20deg));\n --orange-025: color-mix(in lab, var(--white) 94%, oklch(70% 0.22 52deg));\n --orange-050: color-mix(in lab, var(--white) 90%, oklch(70% 0.22 52deg));\n --orange-100: color-mix(in lab, var(--white) 80%, oklch(70% 0.22 52deg));\n --orange-200: color-mix(in lab, var(--white) 60%, oklch(70% 0.22 52deg));\n --orange-300: color-mix(in lab, var(--white) 40%, oklch(70% 0.22 52deg));\n --orange-400: color-mix(in lab, var(--white) 20%, oklch(70% 0.22 52deg));\n --orange-500: oklch(70% 0.22 52deg);\n --orange-600: color-mix(in lab, var(--black) 16%, oklch(70% 0.22 52deg));\n --orange-700: color-mix(in lab, var(--black) 32%, oklch(70% 0.22 52deg));\n --orange-800: color-mix(in lab, var(--black) 48%, oklch(70% 0.22 52deg));\n --orange-900: color-mix(in lab, var(--black) 64%, oklch(70% 0.22 52deg));\n --orange-950: color-mix(in lab, var(--black) 76%, oklch(70% 0.22 52deg));\n --orange-975: color-mix(in lab, var(--black) 88%, oklch(70% 0.22 52deg));\n --amber-025: color-mix(in lab, var(--white) 94%, oklch(79% 0.2 78deg));\n --amber-050: color-mix(in lab, var(--white) 90%, oklch(79% 0.2 78deg));\n --amber-100: color-mix(in lab, var(--white) 80%, oklch(79% 0.2 78deg));\n --amber-200: color-mix(in lab, var(--white) 60%, oklch(79% 0.2 78deg));\n --amber-300: color-mix(in lab, var(--white) 40%, oklch(79% 0.2 78deg));\n --amber-400: color-mix(in lab, var(--white) 20%, oklch(79% 0.2 78deg));\n --amber-500: oklch(79% 0.2 78deg);\n --amber-600: color-mix(in lab, var(--black) 16%, oklch(79% 0.2 78deg));\n --amber-700: color-mix(in lab, var(--black) 32%, oklch(79% 0.2 78deg));\n --amber-800: color-mix(in lab, var(--black) 48%, oklch(79% 0.2 78deg));\n --amber-900: color-mix(in lab, var(--black) 64%, oklch(79% 0.2 78deg));\n --amber-950: color-mix(in lab, var(--black) 76%, oklch(79% 0.2 78deg));\n --amber-975: color-mix(in lab, var(--black) 88%, oklch(79% 0.2 78deg));\n --yellow-025: color-mix(in lab, var(--white) 94%, oklch(88% 0.24 88deg));\n --yellow-050: color-mix(in lab, var(--white) 90%, oklch(88% 0.24 88deg));\n --yellow-100: color-mix(in lab, var(--white) 80%, oklch(88% 0.24 88deg));\n --yellow-200: color-mix(in lab, var(--white) 60%, oklch(88% 0.24 88deg));\n --yellow-300: color-mix(in lab, var(--white) 40%, oklch(88% 0.24 88deg));\n --yellow-400: color-mix(in lab, var(--white) 20%, oklch(88% 0.24 88deg));\n --yellow-500: oklch(88% 0.24 88deg);\n --yellow-600: color-mix(in lab, var(--black) 16%, oklch(88% 0.24 88deg));\n --yellow-700: color-mix(in lab, var(--black) 32%, oklch(88% 0.24 88deg));\n --yellow-800: color-mix(in lab, var(--black) 48%, oklch(88% 0.24 88deg));\n --yellow-900: color-mix(in lab, var(--black) 64%, oklch(88% 0.24 88deg));\n --yellow-950: color-mix(in lab, var(--black) 76%, oklch(88% 0.24 88deg));\n --yellow-975: color-mix(in lab, var(--black) 88%, oklch(88% 0.24 88deg));\n --lime-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.24 135deg));\n --lime-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.24 135deg));\n --lime-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.24 135deg));\n --lime-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.24 135deg));\n --lime-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.24 135deg));\n --lime-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.24 135deg));\n --lime-500: oklch(65% 0.24 135deg);\n --lime-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.24 135deg));\n --lime-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.24 135deg));\n --lime-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.24 135deg));\n --lime-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.24 135deg));\n --lime-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.24 135deg));\n --lime-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.24 135deg));\n --green-025: color-mix(in lab, var(--white) 94%, oklch(64% 0.22 160deg));\n --green-050: color-mix(in lab, var(--white) 90%, oklch(64% 0.22 160deg));\n --green-100: color-mix(in lab, var(--white) 80%, oklch(64% 0.22 160deg));\n --green-200: color-mix(in lab, var(--white) 60%, oklch(64% 0.22 160deg));\n --green-300: color-mix(in lab, var(--white) 40%, oklch(64% 0.22 160deg));\n --green-400: color-mix(in lab, var(--white) 20%, oklch(64% 0.22 160deg));\n --green-500: oklch(64% 0.22 160deg);\n --green-600: color-mix(in lab, var(--black) 16%, oklch(64% 0.22 160deg));\n --green-700: color-mix(in lab, var(--black) 32%, oklch(64% 0.22 160deg));\n --green-800: color-mix(in lab, var(--black) 48%, oklch(64% 0.22 160deg));\n --green-900: color-mix(in lab, var(--black) 64%, oklch(64% 0.22 160deg));\n --green-950: color-mix(in lab, var(--black) 76%, oklch(64% 0.22 160deg));\n --green-975: color-mix(in lab, var(--black) 88%, oklch(64% 0.22 160deg));\n --teal-025: color-mix(in lab, var(--white) 94%, oklch(68% 0.22 190deg));\n --teal-050: color-mix(in lab, var(--white) 90%, oklch(68% 0.22 190deg));\n --teal-100: color-mix(in lab, var(--white) 80%, oklch(68% 0.22 190deg));\n --teal-200: color-mix(in lab, var(--white) 60%, oklch(68% 0.22 190deg));\n --teal-300: color-mix(in lab, var(--white) 40%, oklch(68% 0.22 190deg));\n --teal-400: color-mix(in lab, var(--white) 20%, oklch(68% 0.22 190deg));\n --teal-500: oklch(68% 0.22 190deg);\n --teal-600: color-mix(in lab, var(--black) 16%, oklch(68% 0.22 190deg));\n --teal-700: color-mix(in lab, var(--black) 32%, oklch(68% 0.22 190deg));\n --teal-800: color-mix(in lab, var(--black) 48%, oklch(68% 0.22 190deg));\n --teal-900: color-mix(in lab, var(--black) 64%, oklch(68% 0.22 190deg));\n --teal-950: color-mix(in lab, var(--black) 76%, oklch(68% 0.22 190deg));\n --teal-975: color-mix(in lab, var(--black) 88%, oklch(68% 0.22 190deg));\n --cyan-025: color-mix(in lab, var(--white) 94%, oklch(69% 0.22 220deg));\n --cyan-050: color-mix(in lab, var(--white) 90%, oklch(69% 0.22 220deg));\n --cyan-100: color-mix(in lab, var(--white) 80%, oklch(69% 0.22 220deg));\n --cyan-200: color-mix(in lab, var(--white) 60%, oklch(69% 0.22 220deg));\n --cyan-300: color-mix(in lab, var(--white) 40%, oklch(69% 0.22 220deg));\n --cyan-400: color-mix(in lab, var(--white) 20%, oklch(69% 0.22 220deg));\n --cyan-500: oklch(69% 0.22 220deg);\n --cyan-600: color-mix(in lab, var(--black) 16%, oklch(69% 0.22 220deg));\n --cyan-700: color-mix(in lab, var(--black) 32%, oklch(69% 0.22 220deg));\n --cyan-800: color-mix(in lab, var(--black) 48%, oklch(69% 0.22 220deg));\n --cyan-900: color-mix(in lab, var(--black) 64%, oklch(69% 0.22 220deg));\n --cyan-950: color-mix(in lab, var(--black) 76%, oklch(69% 0.22 220deg));\n --cyan-975: color-mix(in lab, var(--black) 88%, oklch(69% 0.22 220deg));\n --brown-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.12 54deg));\n --brown-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.12 54deg));\n --brown-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.12 54deg));\n --brown-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.12 54deg));\n --brown-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.12 54deg));\n --brown-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.12 54deg));\n --brown-500: oklch(60% 0.12 54deg);\n --brown-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.12 54deg));\n --brown-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.12 54deg));\n --brown-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.12 54deg));\n --brown-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.12 54deg));\n --brown-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.12 54deg));\n --brown-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.12 54deg));\n --gray-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.02 245deg));\n --gray-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.02 245deg));\n --gray-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.02 245deg));\n --gray-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.02 245deg));\n --gray-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.02 245deg));\n --gray-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.02 245deg));\n --gray-500: oklch(60% 0.02 245deg);\n --gray-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.02 245deg));\n --gray-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.02 245deg));\n --gray-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.02 245deg));\n --gray-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.02 245deg));\n --gray-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.02 245deg));\n --gray-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.02 245deg));\n --pewter-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.01 290deg));\n --pewter-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.01 290deg));\n --pewter-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.01 290deg));\n --pewter-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.01 290deg));\n --pewter-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.01 290deg));\n --pewter-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.01 290deg));\n --pewter-500: oklch(65% 0.01 290deg);\n --pewter-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.01 290deg));\n --pewter-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.01 290deg));\n --pewter-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.01 290deg));\n --pewter-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.01 290deg));\n --pewter-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.01 290deg));\n --pewter-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.01 290deg));\n}\n\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n:root {\n --black: #000;\n --white: #fff;\n --gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent));\n --font-weight-lighter: lighter;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-bolder: bolder;\n --body-font-family: system-ui;\n --body-font-size: var(--font-size-base);\n --body-font-weight: 400;\n --body-line-height: 1.5;\n --heading-color: inherit;\n --hr-border-color: var(--border-color);\n --link-color: light-dark(var(--primary-base), var(--primary-fg));\n --link-decoration: underline;\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000);\n --font-mono: ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Monaco, 'Cascadia Mono', Consolas, 'Liberation Mono', monospace;;\n --code-font-size: 95%;\n --code-color: var(--fg-2);\n --border-width: 1px;\n --border-style: solid;\n --border-color: light-dark(var(--gray-200), var(--gray-700));\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent);\n --box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n --box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n --box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);\n --box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n --spacer: 1rem;\n --focus-ring-width: 3px;\n --focus-ring-offset: 1px;\n --focus-ring-color: var(--primary-focus-ring);\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color);\n --control-checked-bg: var(--primary-base);\n --control-checked-border-color: var(--control-checked-bg);\n --control-active-bg: var(--primary-base);\n --control-active-border-color: var(--control-active-bg);\n --control-disabled-bg: var(--bg-3);\n --control-disabled-opacity: 0.65;\n --btn-input-fg: var(--fg-body);\n --btn-input-bg: var(--bg-body);\n --btn-input-min-height: 2.375rem;\n --btn-input-padding-y: 0.375rem;\n --btn-input-padding-x: 0.75rem;\n --btn-input-font-size: var(--font-size-base);\n --btn-input-line-height: var(--line-height-base);\n --btn-input-border-radius: var(--radius-5);\n --btn-input-xs-min-height: 1.5rem;\n --btn-input-xs-padding-y: 0.125rem;\n --btn-input-xs-padding-x: 0.5rem;\n --btn-input-xs-font-size: var(--font-size-xs);\n --btn-input-xs-line-height: 1.125;\n --btn-input-xs-border-radius: var(--radius-5);\n --btn-input-sm-min-height: 2rem;\n --btn-input-sm-padding-y: 0.25rem;\n --btn-input-sm-padding-x: 0.625rem;\n --btn-input-sm-font-size: var(--font-size-sm);\n --btn-input-sm-line-height: var(--line-height-sm);\n --btn-input-sm-border-radius: var(--radius-5);\n --btn-input-lg-min-height: 2.75rem;\n --btn-input-lg-padding-y: 0.5rem;\n --btn-input-lg-padding-x: 1rem;\n --btn-input-lg-font-size: var(--font-size-md);\n --btn-input-lg-line-height: var(--line-height-md);\n --btn-input-lg-border-radius: var(--radius-7);\n --font-size-xs: 0.75rem;\n --line-height-xs: 1.25;\n --font-size-sm: 0.875rem;\n --line-height-sm: 1.5;\n --font-size-md: 1rem;\n --line-height-md: 1.5;\n --font-size-lg: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n --line-height-lg: 1.5;\n --font-size-xl: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n --line-height-xl: 1.4285714286;\n --font-size-2xl: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n --line-height-2xl: 1.3333333333;\n --font-size-3xl: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n --line-height-3xl: 1.2;\n --font-size-4xl: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n --line-height-4xl: 1.1;\n --font-size-5xl: clamp(3rem, 2rem + 5vw, 4rem);\n --line-height-5xl: 1.1;\n --font-size-6xl: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n --line-height-6xl: 1;\n --primary-base: var(--blue-500);\n --primary-fg: light-dark(var(--blue-600), var(--blue-400));\n --primary-fg-emphasis: light-dark(var(--blue-800), var(--blue-200));\n --primary-bg: var(--blue-500);\n --primary-bg-subtle: light-dark(var(--blue-100), var(--blue-900));\n --primary-bg-muted: light-dark(var(--blue-200), var(--blue-800));\n --primary-border: light-dark(var(--blue-300), var(--blue-600));\n --primary-focus-ring: light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body)));\n --primary-contrast: var(--white);\n --accent-base: var(--indigo-500);\n --accent-fg: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n --accent-fg-emphasis: light-dark(var(--indigo-800), var(--indigo-300));\n --accent-bg: var(--indigo-500);\n --accent-bg-subtle: light-dark(var(--indigo-100), var(--indigo-900));\n --accent-bg-muted: light-dark(var(--indigo-200), var(--indigo-800));\n --accent-border: light-dark(var(--indigo-300), var(--indigo-600));\n --accent-focus-ring: light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body)));\n --accent-contrast: var(--white);\n --success-base: var(--green-500);\n --success-fg: light-dark(var(--green-600), var(--green-400));\n --success-fg-emphasis: light-dark(var(--green-800), var(--green-300));\n --success-bg: var(--green-500);\n --success-bg-subtle: light-dark(var(--green-100), var(--green-900));\n --success-bg-muted: light-dark(var(--green-200), var(--green-800));\n --success-border: light-dark(var(--green-300), var(--green-600));\n --success-focus-ring: light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body)));\n --success-contrast: var(--white);\n --danger-base: var(--red-500);\n --danger-fg: light-dark(var(--red-600), var(--red-400));\n --danger-fg-emphasis: light-dark(var(--red-800), var(--red-300));\n --danger-bg: var(--red-500);\n --danger-bg-subtle: light-dark(var(--red-100), var(--red-900));\n --danger-bg-muted: light-dark(var(--red-200), var(--red-800));\n --danger-border: light-dark(var(--red-300), var(--red-600));\n --danger-focus-ring: light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body)));\n --danger-contrast: var(--white);\n --warning-base: var(--yellow-500);\n --warning-fg: light-dark(var(--yellow-700), var(--yellow-400));\n --warning-fg-emphasis: light-dark(var(--yellow-800), var(--yellow-300));\n --warning-bg: var(--yellow-500);\n --warning-bg-subtle: light-dark(var(--yellow-100), var(--yellow-900));\n --warning-bg-muted: light-dark(var(--yellow-200), var(--yellow-800));\n --warning-border: light-dark(var(--yellow-300), var(--yellow-600));\n --warning-focus-ring: light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body)));\n --warning-contrast: var(--gray-900);\n --info-base: var(--cyan-500);\n --info-fg: light-dark(var(--cyan-600), var(--cyan-400));\n --info-fg-emphasis: light-dark(var(--cyan-800), var(--cyan-300));\n --info-bg: var(--cyan-500);\n --info-bg-subtle: light-dark(var(--cyan-100), var(--cyan-900));\n --info-bg-muted: light-dark(var(--cyan-200), var(--cyan-800));\n --info-border: light-dark(var(--cyan-300), var(--cyan-600));\n --info-focus-ring: light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body)));\n --info-contrast: var(--gray-900);\n --inverse-base: var(--gray-900);\n --inverse-fg: light-dark(var(--gray-900), var(--gray-200));\n --inverse-fg-emphasis: light-dark(var(--gray-975), var(--white));\n --inverse-bg: light-dark(var(--gray-900), var(--gray-025));\n --inverse-bg-subtle: light-dark(var(--gray-100), var(--gray-900));\n --inverse-bg-muted: light-dark(var(--gray-200), var(--gray-300));\n --inverse-border: light-dark(var(--gray-400), var(--gray-100));\n --inverse-focus-ring: color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body));\n --inverse-contrast: light-dark(var(--white), var(--gray-900));\n --secondary-base: var(--gray-200);\n --secondary-fg: light-dark(var(--gray-600), var(--gray-400));\n --secondary-fg-emphasis: light-dark(var(--gray-800), var(--gray-200));\n --secondary-bg: light-dark(var(--gray-100), var(--gray-600));\n --secondary-bg-subtle: light-dark(var(--gray-050), var(--gray-800));\n --secondary-bg-muted: light-dark(var(--gray-100), var(--gray-700));\n --secondary-border: light-dark(var(--gray-300), var(--gray-600));\n --secondary-focus-ring: color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body));\n --secondary-contrast: light-dark(var(--gray-900), var(--white));\n --bg-body: light-dark(var(--white), var(--gray-975));\n --bg-1: light-dark(var(--gray-025), var(--gray-950));\n --bg-2: light-dark(var(--gray-050), var(--gray-900));\n --bg-3: light-dark(var(--gray-100), var(--gray-800));\n --bg-4: light-dark(var(--gray-200), var(--gray-700));\n --bg-fg: var(--fg-body);\n --bg-white: var(--white);\n --bg-black: var(--black);\n --bg-transparent: transparent;\n --bg-inherit: inherit;\n --fg-body: light-dark(var(--gray-900), var(--gray-050));\n --fg-1: light-dark(var(--gray-800), var(--gray-200));\n --fg-2: light-dark(var(--gray-700), var(--gray-300));\n --fg-3: light-dark(var(--gray-600), var(--gray-500));\n --fg-4: light-dark(var(--gray-500), var(--gray-600));\n --fg-bg: var(--bg-body);\n --fg-white: var(--white);\n --fg-black: var(--black);\n --fg-inherit: inherit;\n --border-bg: var(--bg-body);\n --border-body: light-dark(var(--gray-300), var(--gray-800));\n --border-muted: light-dark(var(--gray-200), var(--gray-800));\n --border-subtle: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-900));\n --border-emphasized: light-dark(var(--gray-400), var(--gray-600));\n --border-white: var(--white);\n --border-black: var(--black);\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 1024px;\n --breakpoint-xl: 1280px;\n --breakpoint-2xl: 1536px;\n --spacer-0: 0;\n --spacer-1: 0.25rem;\n --spacer-2: 0.5rem;\n --spacer-3: 0.75rem;\n --spacer-4: 1rem;\n --spacer-5: 1.25rem;\n --spacer-6: 1.5rem;\n --spacer-7: 2rem;\n --spacer-8: 2.5rem;\n --spacer-9: 3rem;\n --radius-0: 0;\n --radius-1: 0.125rem;\n --radius-2: 0.1875rem;\n --radius-3: 0.25rem;\n --radius-4: 0.375rem;\n --radius-5: 0.5rem;\n --radius-6: 0.625rem;\n --radius-7: 0.75rem;\n --radius-8: 1rem;\n --radius-9: 1.5rem;\n --radius-pill: 50rem;\n color-scheme: light dark;\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=dark] {\n color-scheme: dark;\n}\n\n[data-bs-theme=light] {\n color-scheme: light;\n}\n\n@layer helpers {\n .focus-ring:focus-visible {\n outline: var(--focus-ring-width) solid var(--theme-focus-ring, var(--focus-ring-color));\n }\n}\n@layer helpers {\n .icon-link {\n display: inline-flex;\n gap: 0.375rem;\n align-items: center;\n text-decoration-color: rgba(var(--link-color-rgb), var(--link-opacity, 0.5));\n text-underline-offset: 0.25em;\n backface-visibility: hidden;\n }\n .icon-link > .bi {\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n fill: currentcolor;\n transition: 0.2s ease-in-out transform;\n }\n @media (prefers-reduced-motion: reduce) {\n .icon-link > .bi {\n transition: none;\n }\n }\n .icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi {\n transform: var(--icon-link-transform, translate3d(0.25em, 0, 0));\n }\n}\n@layer helpers {\n .fixed-top {\n position: fixed;\n inset: 0 0 auto;\n z-index: 1030;\n }\n .fixed-bottom {\n position: fixed;\n inset: auto 0 0;\n z-index: 1030;\n }\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n @media (width >= 576px) {\n .sm\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sm\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 768px) {\n .md\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .md\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1024px) {\n .lg\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .lg\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1280px) {\n .xl\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .xl\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .\\32 xl\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n}\n@layer helpers {\n .stack-container {\n container-type: inline-size;\n }\n [class*=hstack],\n [class*=vstack] {\n display: flex;\n flex: var(--stack-flex, 1 1 auto);\n flex-direction: var(--stack-direction, row);\n align-items: var(--stack-align-items, center);\n align-self: var(--stack-align-self, stretch);\n }\n .vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n .hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n @container (width >= 576px) {\n .sm\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 576px) {\n .sm\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 768px) {\n .md\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 768px) {\n .md\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1024px) {\n .lg\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1024px) {\n .lg\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1280px) {\n .xl\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1280px) {\n .xl\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n}\n@layer helpers {\n .theme-primary {\n --theme-base: var(--primary-base);\n --theme-fg: var(--primary-fg);\n --theme-fg-emphasis: var(--primary-fg-emphasis);\n --theme-bg: var(--primary-bg);\n --theme-bg-subtle: var(--primary-bg-subtle);\n --theme-bg-muted: var(--primary-bg-muted);\n --theme-border: var(--primary-border);\n --theme-focus-ring: var(--primary-focus-ring);\n --theme-contrast: var(--primary-contrast);\n }\n .theme-accent {\n --theme-base: var(--accent-base);\n --theme-fg: var(--accent-fg);\n --theme-fg-emphasis: var(--accent-fg-emphasis);\n --theme-bg: var(--accent-bg);\n --theme-bg-subtle: var(--accent-bg-subtle);\n --theme-bg-muted: var(--accent-bg-muted);\n --theme-border: var(--accent-border);\n --theme-focus-ring: var(--accent-focus-ring);\n --theme-contrast: var(--accent-contrast);\n }\n .theme-success {\n --theme-base: var(--success-base);\n --theme-fg: var(--success-fg);\n --theme-fg-emphasis: var(--success-fg-emphasis);\n --theme-bg: var(--success-bg);\n --theme-bg-subtle: var(--success-bg-subtle);\n --theme-bg-muted: var(--success-bg-muted);\n --theme-border: var(--success-border);\n --theme-focus-ring: var(--success-focus-ring);\n --theme-contrast: var(--success-contrast);\n }\n .theme-danger {\n --theme-base: var(--danger-base);\n --theme-fg: var(--danger-fg);\n --theme-fg-emphasis: var(--danger-fg-emphasis);\n --theme-bg: var(--danger-bg);\n --theme-bg-subtle: var(--danger-bg-subtle);\n --theme-bg-muted: var(--danger-bg-muted);\n --theme-border: var(--danger-border);\n --theme-focus-ring: var(--danger-focus-ring);\n --theme-contrast: var(--danger-contrast);\n }\n .theme-warning {\n --theme-base: var(--warning-base);\n --theme-fg: var(--warning-fg);\n --theme-fg-emphasis: var(--warning-fg-emphasis);\n --theme-bg: var(--warning-bg);\n --theme-bg-subtle: var(--warning-bg-subtle);\n --theme-bg-muted: var(--warning-bg-muted);\n --theme-border: var(--warning-border);\n --theme-focus-ring: var(--warning-focus-ring);\n --theme-contrast: var(--warning-contrast);\n }\n .theme-info {\n --theme-base: var(--info-base);\n --theme-fg: var(--info-fg);\n --theme-fg-emphasis: var(--info-fg-emphasis);\n --theme-bg: var(--info-bg);\n --theme-bg-subtle: var(--info-bg-subtle);\n --theme-bg-muted: var(--info-bg-muted);\n --theme-border: var(--info-border);\n --theme-focus-ring: var(--info-focus-ring);\n --theme-contrast: var(--info-contrast);\n }\n .theme-inverse {\n --theme-base: var(--inverse-base);\n --theme-fg: var(--inverse-fg);\n --theme-fg-emphasis: var(--inverse-fg-emphasis);\n --theme-bg: var(--inverse-bg);\n --theme-bg-subtle: var(--inverse-bg-subtle);\n --theme-bg-muted: var(--inverse-bg-muted);\n --theme-border: var(--inverse-border);\n --theme-focus-ring: var(--inverse-focus-ring);\n --theme-contrast: var(--inverse-contrast);\n }\n .theme-secondary {\n --theme-base: var(--secondary-base);\n --theme-fg: var(--secondary-fg);\n --theme-fg-emphasis: var(--secondary-fg-emphasis);\n --theme-bg: var(--secondary-bg);\n --theme-bg-subtle: var(--secondary-bg-subtle);\n --theme-bg-muted: var(--secondary-bg-muted);\n --theme-border: var(--secondary-border);\n --theme-focus-ring: var(--secondary-focus-ring);\n --theme-contrast: var(--secondary-contrast);\n }\n}\n@layer helpers {\n .visually-hidden,\n .visually-hidden-focusable:not(:focus, :focus-within) {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n .visually-hidden:not(caption),\n .visually-hidden-focusable:not(:focus, :focus-within):not(caption) {\n position: absolute !important;\n }\n .visually-hidden *,\n .visually-hidden-focusable:not(:focus, :focus-within) * {\n overflow: hidden !important;\n }\n}\n@layer helpers {\n .stretched-link::after {\n position: absolute;\n inset: 0;\n z-index: 1;\n content: \"\";\n }\n}\n@layer helpers {\n .text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n@layer helpers {\n .vr {\n display: inline-block;\n align-self: stretch;\n width: var(--vr-border-width, var(--border-width));\n min-height: 1em;\n background-color: var(--border-color);\n }\n}\n@layer utilities {\n .align-baseline {\n vertical-align: baseline;\n }\n .align-top {\n vertical-align: top;\n }\n .align-middle {\n vertical-align: middle;\n }\n .align-bottom {\n vertical-align: bottom;\n }\n .align-text-bottom {\n vertical-align: text-bottom;\n }\n .align-text-top {\n vertical-align: text-top;\n }\n [class*=ratio-] {\n aspect-ratio: var(--ratio);\n }\n .ratio-auto {\n --ratio: auto;\n }\n .ratio-1x1 {\n --ratio: 1 / 1;\n }\n .ratio-4x3 {\n --ratio: 4 / 3;\n }\n .ratio-16x9 {\n --ratio: 16 / 9;\n }\n .ratio-21x9 {\n --ratio: 21 / 9;\n }\n .float-start {\n float: inline-start;\n }\n .float-end {\n float: inline-end;\n }\n .float-none {\n float: none;\n }\n .object-fit-contain {\n object-fit: contain;\n }\n .object-fit-cover {\n object-fit: cover;\n }\n .object-fit-fill {\n object-fit: fill;\n }\n .object-fit-scale {\n object-fit: scale-down;\n }\n .object-fit-none {\n object-fit: none;\n }\n .opacity-0 {\n opacity: 0;\n }\n .opacity-25 {\n opacity: 0.25;\n }\n .opacity-50 {\n opacity: 0.5;\n }\n .opacity-75 {\n opacity: 0.75;\n }\n .opacity-100 {\n opacity: 1;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-visible {\n overflow: visible;\n }\n .overflow-scroll {\n overflow: scroll;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-x-visible {\n overflow-x: visible;\n }\n .overflow-x-scroll {\n overflow-x: scroll;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .overflow-y-hidden {\n overflow-y: hidden;\n }\n .overflow-y-visible {\n overflow-y: visible;\n }\n .overflow-y-scroll {\n overflow-y: scroll;\n }\n .contains-inline {\n container-type: inline-size;\n }\n .contains-size {\n container-type: size;\n }\n .d-inline {\n display: inline;\n }\n .d-inline-block {\n display: inline-block;\n }\n .d-block {\n display: block;\n }\n .d-grid {\n display: grid;\n }\n .d-inline-grid {\n display: inline-grid;\n }\n .d-table {\n display: table;\n }\n .d-table-row {\n display: table-row;\n }\n .d-table-cell {\n display: table-cell;\n }\n .d-flex {\n display: flex;\n }\n .d-inline-flex {\n display: inline-flex;\n }\n .d-contents {\n display: contents;\n }\n .d-flow-root {\n display: flow-root;\n }\n .d-none {\n display: none;\n }\n .shadow {\n box-shadow: var(--box-shadow);\n }\n .shadow-sm {\n box-shadow: var(--box-shadow-sm);\n }\n .shadow-lg {\n box-shadow: var(--box-shadow-lg);\n }\n .shadow-none {\n box-shadow: none;\n }\n .position-static {\n position: static;\n }\n .position-relative {\n position: relative;\n }\n .position-absolute {\n position: absolute;\n }\n .position-fixed {\n position: fixed;\n }\n .position-sticky {\n position: sticky;\n }\n .top-0 {\n top: 0;\n }\n .top-50 {\n top: 50%;\n }\n .top-100 {\n top: 100%;\n }\n .bottom-0 {\n bottom: 0;\n }\n .bottom-50 {\n bottom: 50%;\n }\n .bottom-100 {\n bottom: 100%;\n }\n .start-0 {\n inset-inline-start: 0;\n }\n .start-50 {\n inset-inline-start: 50%;\n }\n .start-100 {\n inset-inline-start: 100%;\n }\n .end-0 {\n inset-inline-end: 0;\n }\n .end-50 {\n inset-inline-end: 50%;\n }\n .end-100 {\n inset-inline-end: 100%;\n }\n .translate-middle {\n transform: translate(-50%, -50%);\n }\n .translate-middle-x {\n transform: translateX(-50%);\n }\n .translate-middle-y {\n transform: translateY(-50%);\n }\n .border {\n border: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-0 {\n border: 0;\n }\n .border-top {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-top-0 {\n border-block-start: 0;\n }\n .border-end {\n border-inline-end: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-end-0 {\n border-inline-end: 0;\n }\n .border-bottom {\n border-block-end: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-bottom-0 {\n border-block-end: 0;\n }\n .border-start {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-start-0 {\n border-inline-start: 0;\n }\n .border-y {\n border-block: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-y-0 {\n border-block: 0;\n }\n .border-x {\n border-inline: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-x-0 {\n border-inline: 0;\n }\n .border-primary {\n --border-color: var(--primary-bg);\n border-color: var(--border-color);\n }\n .border-accent {\n --border-color: var(--accent-bg);\n border-color: var(--border-color);\n }\n .border-success {\n --border-color: var(--success-bg);\n border-color: var(--border-color);\n }\n .border-danger {\n --border-color: var(--danger-bg);\n border-color: var(--border-color);\n }\n .border-warning {\n --border-color: var(--warning-bg);\n border-color: var(--border-color);\n }\n .border-info {\n --border-color: var(--info-bg);\n border-color: var(--border-color);\n }\n .border-inverse {\n --border-color: var(--inverse-bg);\n border-color: var(--border-color);\n }\n .border-secondary {\n --border-color: var(--secondary-bg);\n border-color: var(--border-color);\n }\n .border-bg {\n --border-color: var(--border-bg);\n border-color: var(--border-color);\n }\n .border-body {\n --border-color: var(--border-body);\n border-color: var(--border-color);\n }\n .border-muted {\n --border-color: var(--border-muted);\n border-color: var(--border-color);\n }\n .border-subtle {\n --border-color: var(--border-subtle);\n border-color: var(--border-color);\n }\n .border-emphasized {\n --border-color: var(--border-emphasized);\n border-color: var(--border-color);\n }\n .border-white {\n --border-color: var(--border-white);\n border-color: var(--border-color);\n }\n .border-black {\n --border-color: var(--border-black);\n border-color: var(--border-color);\n }\n .border-subtle-primary {\n --border-color: var(--primary-border);\n border-color: var(--border-color);\n }\n .border-subtle-accent {\n --border-color: var(--accent-border);\n border-color: var(--border-color);\n }\n .border-subtle-success {\n --border-color: var(--success-border);\n border-color: var(--border-color);\n }\n .border-subtle-danger {\n --border-color: var(--danger-border);\n border-color: var(--border-color);\n }\n .border-subtle-warning {\n --border-color: var(--warning-border);\n border-color: var(--border-color);\n }\n .border-subtle-info {\n --border-color: var(--info-border);\n border-color: var(--border-color);\n }\n .border-subtle-inverse {\n --border-color: var(--inverse-border);\n border-color: var(--border-color);\n }\n .border-subtle-secondary {\n --border-color: var(--secondary-border);\n border-color: var(--border-color);\n }\n .border-1 {\n border-width: 1px;\n }\n .border-2 {\n border-width: 2px;\n }\n .border-3 {\n border-width: 3px;\n }\n .border-4 {\n border-width: 4px;\n }\n .border-5 {\n border-width: 5px;\n }\n .border-10 {\n border-color: color-mix(in oklch, var(--border-color) 10%, transparent);\n }\n .border-20 {\n border-color: color-mix(in oklch, var(--border-color) 20%, transparent);\n }\n .border-30 {\n border-color: color-mix(in oklch, var(--border-color) 30%, transparent);\n }\n .border-40 {\n border-color: color-mix(in oklch, var(--border-color) 40%, transparent);\n }\n .border-50 {\n border-color: color-mix(in oklch, var(--border-color) 50%, transparent);\n }\n .border-60 {\n border-color: color-mix(in oklch, var(--border-color) 60%, transparent);\n }\n .border-70 {\n border-color: color-mix(in oklch, var(--border-color) 70%, transparent);\n }\n .border-80 {\n border-color: color-mix(in oklch, var(--border-color) 80%, transparent);\n }\n .border-90 {\n border-color: color-mix(in oklch, var(--border-color) 90%, transparent);\n }\n .border-100 {\n border-color: var(--border-color);\n }\n .w-1 {\n width: 1rem;\n }\n .w-2 {\n width: 2rem;\n }\n .w-3 {\n width: 3rem;\n }\n .w-4 {\n width: 4rem;\n }\n .w-5 {\n width: 5rem;\n }\n .w-6 {\n width: 6rem;\n }\n .w-7 {\n width: 7rem;\n }\n .w-8 {\n width: 8rem;\n }\n .w-9 {\n width: 9rem;\n }\n .w-10 {\n width: 10rem;\n }\n .w-11 {\n width: 11rem;\n }\n .w-12 {\n width: 12rem;\n }\n .w-25 {\n width: 25%;\n }\n .w-50 {\n width: 50%;\n }\n .w-75 {\n width: 75%;\n }\n .w-100 {\n width: 100%;\n }\n .w-auto {\n width: auto;\n }\n .w-min {\n width: min-content;\n }\n .w-max {\n width: max-content;\n }\n .w-fit {\n width: fit-content;\n }\n .max-w-100 {\n max-width: 100%;\n }\n .min-w-0 {\n min-width: 0;\n }\n .min-w-100 {\n min-width: 100%;\n }\n .vw-100 {\n width: 100vw;\n }\n .min-vw-100 {\n min-width: 100vw;\n }\n .h-25 {\n height: 25%;\n }\n .h-50 {\n height: 50%;\n }\n .h-75 {\n height: 75%;\n }\n .h-100 {\n height: 100%;\n }\n .h-auto {\n height: auto;\n }\n .h-min {\n height: min-content;\n }\n .h-max {\n height: max-content;\n }\n .h-fit {\n height: fit-content;\n }\n .max-h-100 {\n max-height: 100%;\n }\n .min-h-0 {\n min-height: 0;\n }\n .min-h-100 {\n min-height: 100%;\n }\n .vh-100 {\n height: 100vh;\n }\n .min-vh-100 {\n min-height: 100vh;\n }\n .flex-fill {\n flex: 1 1 auto;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-column {\n flex-direction: column;\n }\n .flex-row-reverse {\n flex-direction: row-reverse;\n }\n .flex-column-reverse {\n flex-direction: column-reverse;\n }\n .flex-grow-0 {\n flex-grow: 0;\n }\n .flex-grow-1 {\n flex-grow: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .flex-shrink-1 {\n flex-shrink: 1;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .flex-nowrap {\n flex-wrap: nowrap;\n }\n .flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .justify-content-start {\n justify-content: flex-start;\n }\n .justify-content-end {\n justify-content: flex-end;\n }\n .justify-content-center {\n justify-content: center;\n }\n .justify-content-between {\n justify-content: space-between;\n }\n .justify-content-around {\n justify-content: space-around;\n }\n .justify-content-evenly {\n justify-content: space-evenly;\n }\n .justify-items-start {\n justify-items: start;\n }\n .justify-items-end {\n justify-items: end;\n }\n .justify-items-center {\n justify-items: center;\n }\n .justify-items-stretch {\n justify-items: stretch;\n }\n .justify-self-start {\n justify-self: start;\n }\n .justify-self-end {\n justify-self: end;\n }\n .justify-self-center {\n justify-self: center;\n }\n .align-items-start {\n align-items: flex-start;\n }\n .align-items-end {\n align-items: flex-end;\n }\n .align-items-center {\n align-items: center;\n }\n .align-items-baseline {\n align-items: baseline;\n }\n .align-items-stretch {\n align-items: stretch;\n }\n .align-content-start {\n align-content: flex-start;\n }\n .align-content-end {\n align-content: flex-end;\n }\n .align-content-center {\n align-content: center;\n }\n .align-content-between {\n align-content: space-between;\n }\n .align-content-around {\n align-content: space-around;\n }\n .align-content-stretch {\n align-content: stretch;\n }\n .align-self-auto {\n align-self: auto;\n }\n .align-self-start {\n align-self: flex-start;\n }\n .align-self-end {\n align-self: flex-end;\n }\n .align-self-center {\n align-self: center;\n }\n .align-self-baseline {\n align-self: baseline;\n }\n .align-self-stretch {\n align-self: stretch;\n }\n .place-items-start {\n place-items: start;\n }\n .place-items-end {\n place-items: end;\n }\n .place-items-center {\n place-items: center;\n }\n .place-items-stretch {\n place-items: stretch;\n }\n .grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .grid-cols-fill {\n grid-column: 1 / -1;\n }\n .grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .order-first {\n order: -1;\n }\n .order-0 {\n order: 0;\n }\n .order-1 {\n order: 1;\n }\n .order-2 {\n order: 2;\n }\n .order-3 {\n order: 3;\n }\n .order-4 {\n order: 4;\n }\n .order-5 {\n order: 5;\n }\n .order-last {\n order: 6;\n }\n .m-0 {\n margin: 0;\n }\n .m-1 {\n margin: 0.25rem;\n }\n .m-2 {\n margin: 0.5rem;\n }\n .m-3 {\n margin: 0.75rem;\n }\n .m-4 {\n margin: 1rem;\n }\n .m-5 {\n margin: 1.25rem;\n }\n .m-6 {\n margin: 1.5rem;\n }\n .m-7 {\n margin: 2rem;\n }\n .m-8 {\n margin: 2.5rem;\n }\n .m-9 {\n margin: 3rem;\n }\n .m-auto {\n margin: auto;\n }\n .mx-0 {\n margin-inline: 0;\n }\n .mx-1 {\n margin-inline: 0.25rem;\n }\n .mx-2 {\n margin-inline: 0.5rem;\n }\n .mx-3 {\n margin-inline: 0.75rem;\n }\n .mx-4 {\n margin-inline: 1rem;\n }\n .mx-5 {\n margin-inline: 1.25rem;\n }\n .mx-6 {\n margin-inline: 1.5rem;\n }\n .mx-7 {\n margin-inline: 2rem;\n }\n .mx-8 {\n margin-inline: 2.5rem;\n }\n .mx-9 {\n margin-inline: 3rem;\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-0 {\n margin-block: 0;\n }\n .my-1 {\n margin-block: 0.25rem;\n }\n .my-2 {\n margin-block: 0.5rem;\n }\n .my-3 {\n margin-block: 0.75rem;\n }\n .my-4 {\n margin-block: 1rem;\n }\n .my-5 {\n margin-block: 1.25rem;\n }\n .my-6 {\n margin-block: 1.5rem;\n }\n .my-7 {\n margin-block: 2rem;\n }\n .my-8 {\n margin-block: 2.5rem;\n }\n .my-9 {\n margin-block: 3rem;\n }\n .my-auto {\n margin-block: auto;\n }\n .mt-0 {\n margin-block-start: 0;\n }\n .mt-1 {\n margin-block-start: 0.25rem;\n }\n .mt-2 {\n margin-block-start: 0.5rem;\n }\n .mt-3 {\n margin-block-start: 0.75rem;\n }\n .mt-4 {\n margin-block-start: 1rem;\n }\n .mt-5 {\n margin-block-start: 1.25rem;\n }\n .mt-6 {\n margin-block-start: 1.5rem;\n }\n .mt-7 {\n margin-block-start: 2rem;\n }\n .mt-8 {\n margin-block-start: 2.5rem;\n }\n .mt-9 {\n margin-block-start: 3rem;\n }\n .mt-auto {\n margin-block-start: auto;\n }\n .me-0 {\n margin-inline-end: 0;\n }\n .me-1 {\n margin-inline-end: 0.25rem;\n }\n .me-2 {\n margin-inline-end: 0.5rem;\n }\n .me-3 {\n margin-inline-end: 0.75rem;\n }\n .me-4 {\n margin-inline-end: 1rem;\n }\n .me-5 {\n margin-inline-end: 1.25rem;\n }\n .me-6 {\n margin-inline-end: 1.5rem;\n }\n .me-7 {\n margin-inline-end: 2rem;\n }\n .me-8 {\n margin-inline-end: 2.5rem;\n }\n .me-9 {\n margin-inline-end: 3rem;\n }\n .me--1 {\n margin-inline-end: -0.25rem;\n }\n .me--2 {\n margin-inline-end: -0.5rem;\n }\n .me-auto {\n margin-inline-end: auto;\n }\n .mb-0 {\n margin-block-end: 0;\n }\n .mb-1 {\n margin-block-end: 0.25rem;\n }\n .mb-2 {\n margin-block-end: 0.5rem;\n }\n .mb-3 {\n margin-block-end: 0.75rem;\n }\n .mb-4 {\n margin-block-end: 1rem;\n }\n .mb-5 {\n margin-block-end: 1.25rem;\n }\n .mb-6 {\n margin-block-end: 1.5rem;\n }\n .mb-7 {\n margin-block-end: 2rem;\n }\n .mb-8 {\n margin-block-end: 2.5rem;\n }\n .mb-9 {\n margin-block-end: 3rem;\n }\n .mb-auto {\n margin-block-end: auto;\n }\n .ms-0 {\n margin-inline-start: 0;\n }\n .ms-1 {\n margin-inline-start: 0.25rem;\n }\n .ms-2 {\n margin-inline-start: 0.5rem;\n }\n .ms-3 {\n margin-inline-start: 0.75rem;\n }\n .ms-4 {\n margin-inline-start: 1rem;\n }\n .ms-5 {\n margin-inline-start: 1.25rem;\n }\n .ms-6 {\n margin-inline-start: 1.5rem;\n }\n .ms-7 {\n margin-inline-start: 2rem;\n }\n .ms-8 {\n margin-inline-start: 2.5rem;\n }\n .ms-9 {\n margin-inline-start: 3rem;\n }\n .ms--1 {\n margin-inline-start: -0.25rem;\n }\n .ms--2 {\n margin-inline-start: -0.5rem;\n }\n .ms-auto {\n margin-inline-start: auto;\n }\n .p-0 {\n padding: 0;\n }\n .p-1 {\n padding: 0.25rem;\n }\n .p-2 {\n padding: 0.5rem;\n }\n .p-3 {\n padding: 0.75rem;\n }\n .p-4 {\n padding: 1rem;\n }\n .p-5 {\n padding: 1.25rem;\n }\n .p-6 {\n padding: 1.5rem;\n }\n .p-7 {\n padding: 2rem;\n }\n .p-8 {\n padding: 2.5rem;\n }\n .p-9 {\n padding: 3rem;\n }\n .px-0 {\n padding-inline: 0;\n }\n .px-1 {\n padding-inline: 0.25rem;\n }\n .px-2 {\n padding-inline: 0.5rem;\n }\n .px-3 {\n padding-inline: 0.75rem;\n }\n .px-4 {\n padding-inline: 1rem;\n }\n .px-5 {\n padding-inline: 1.25rem;\n }\n .px-6 {\n padding-inline: 1.5rem;\n }\n .px-7 {\n padding-inline: 2rem;\n }\n .px-8 {\n padding-inline: 2.5rem;\n }\n .px-9 {\n padding-inline: 3rem;\n }\n .py-0 {\n padding-block: 0;\n }\n .py-1 {\n padding-block: 0.25rem;\n }\n .py-2 {\n padding-block: 0.5rem;\n }\n .py-3 {\n padding-block: 0.75rem;\n }\n .py-4 {\n padding-block: 1rem;\n }\n .py-5 {\n padding-block: 1.25rem;\n }\n .py-6 {\n padding-block: 1.5rem;\n }\n .py-7 {\n padding-block: 2rem;\n }\n .py-8 {\n padding-block: 2.5rem;\n }\n .py-9 {\n padding-block: 3rem;\n }\n .pt-0 {\n padding-block-start: 0;\n }\n .pt-1 {\n padding-block-start: 0.25rem;\n }\n .pt-2 {\n padding-block-start: 0.5rem;\n }\n .pt-3 {\n padding-block-start: 0.75rem;\n }\n .pt-4 {\n padding-block-start: 1rem;\n }\n .pt-5 {\n padding-block-start: 1.25rem;\n }\n .pt-6 {\n padding-block-start: 1.5rem;\n }\n .pt-7 {\n padding-block-start: 2rem;\n }\n .pt-8 {\n padding-block-start: 2.5rem;\n }\n .pt-9 {\n padding-block-start: 3rem;\n }\n .pe-0 {\n padding-inline-end: 0;\n }\n .pe-1 {\n padding-inline-end: 0.25rem;\n }\n .pe-2 {\n padding-inline-end: 0.5rem;\n }\n .pe-3 {\n padding-inline-end: 0.75rem;\n }\n .pe-4 {\n padding-inline-end: 1rem;\n }\n .pe-5 {\n padding-inline-end: 1.25rem;\n }\n .pe-6 {\n padding-inline-end: 1.5rem;\n }\n .pe-7 {\n padding-inline-end: 2rem;\n }\n .pe-8 {\n padding-inline-end: 2.5rem;\n }\n .pe-9 {\n padding-inline-end: 3rem;\n }\n .pb-0 {\n padding-block-end: 0;\n }\n .pb-1 {\n padding-block-end: 0.25rem;\n }\n .pb-2 {\n padding-block-end: 0.5rem;\n }\n .pb-3 {\n padding-block-end: 0.75rem;\n }\n .pb-4 {\n padding-block-end: 1rem;\n }\n .pb-5 {\n padding-block-end: 1.25rem;\n }\n .pb-6 {\n padding-block-end: 1.5rem;\n }\n .pb-7 {\n padding-block-end: 2rem;\n }\n .pb-8 {\n padding-block-end: 2.5rem;\n }\n .pb-9 {\n padding-block-end: 3rem;\n }\n .ps-0 {\n padding-inline-start: 0;\n }\n .ps-1 {\n padding-inline-start: 0.25rem;\n }\n .ps-2 {\n padding-inline-start: 0.5rem;\n }\n .ps-3 {\n padding-inline-start: 0.75rem;\n }\n .ps-4 {\n padding-inline-start: 1rem;\n }\n .ps-5 {\n padding-inline-start: 1.25rem;\n }\n .ps-6 {\n padding-inline-start: 1.5rem;\n }\n .ps-7 {\n padding-inline-start: 2rem;\n }\n .ps-8 {\n padding-inline-start: 2.5rem;\n }\n .ps-9 {\n padding-inline-start: 3rem;\n }\n .gap-0 {\n gap: 0;\n }\n .gap-1 {\n gap: 0.25rem;\n }\n .gap-2 {\n gap: 0.5rem;\n }\n .gap-3 {\n gap: 0.75rem;\n }\n .gap-4 {\n gap: 1rem;\n }\n .gap-5 {\n gap: 1.25rem;\n }\n .gap-6 {\n gap: 1.5rem;\n }\n .gap-7 {\n gap: 2rem;\n }\n .gap-8 {\n gap: 2.5rem;\n }\n .gap-9 {\n gap: 3rem;\n }\n .row-gap-0 {\n row-gap: 0;\n }\n .row-gap-1 {\n row-gap: 0.25rem;\n }\n .row-gap-2 {\n row-gap: 0.5rem;\n }\n .row-gap-3 {\n row-gap: 0.75rem;\n }\n .row-gap-4 {\n row-gap: 1rem;\n }\n .row-gap-5 {\n row-gap: 1.25rem;\n }\n .row-gap-6 {\n row-gap: 1.5rem;\n }\n .row-gap-7 {\n row-gap: 2rem;\n }\n .row-gap-8 {\n row-gap: 2.5rem;\n }\n .row-gap-9 {\n row-gap: 3rem;\n }\n .column-gap-0 {\n column-gap: 0;\n }\n .column-gap-1 {\n column-gap: 0.25rem;\n }\n .column-gap-2 {\n column-gap: 0.5rem;\n }\n .column-gap-3 {\n column-gap: 0.75rem;\n }\n .column-gap-4 {\n column-gap: 1rem;\n }\n .column-gap-5 {\n column-gap: 1.25rem;\n }\n .column-gap-6 {\n column-gap: 1.5rem;\n }\n .column-gap-7 {\n column-gap: 2rem;\n }\n .column-gap-8 {\n column-gap: 2.5rem;\n }\n .column-gap-9 {\n column-gap: 3rem;\n }\n :where(.space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .font-monospace {\n font-family: var(--font-mono);\n }\n .font-body {\n font-family: var(--body-font-family);\n }\n .fs-xs {\n font-size: 0.75rem;\n }\n .fs-sm {\n font-size: 0.875rem;\n }\n .fs-md {\n font-size: 1rem;\n }\n .fs-lg {\n font-size: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n }\n .fs-xl {\n font-size: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n }\n .fs-2xl {\n font-size: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n }\n .fs-3xl {\n font-size: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n }\n .fs-4xl {\n font-size: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n }\n .fs-5xl {\n font-size: clamp(3rem, 2rem + 5vw, 4rem);\n }\n .fs-6xl {\n font-size: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n }\n .text-xs {\n font-size: 0.75rem;\n line-height: 1.25;\n }\n .text-sm {\n font-size: 0.875rem;\n line-height: 1.5;\n }\n .text-md {\n font-size: 1rem;\n line-height: 1.5;\n }\n .text-lg {\n font-size: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n line-height: 1.5;\n }\n .text-xl {\n font-size: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n line-height: 1.4285714286;\n }\n .text-2xl {\n font-size: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n line-height: 1.3333333333;\n }\n .text-3xl {\n font-size: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n line-height: 1.2;\n }\n .text-4xl {\n font-size: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n line-height: 1.1;\n }\n .text-5xl {\n font-size: clamp(3rem, 2rem + 5vw, 4rem);\n line-height: 1.1;\n }\n .text-6xl {\n font-size: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n line-height: 1;\n }\n .fst-italic {\n font-style: italic;\n }\n .fst-normal {\n font-style: normal;\n }\n .fw-lighter {\n font-weight: lighter;\n }\n .fw-light {\n font-weight: 300;\n }\n .fw-normal {\n font-weight: 400;\n }\n .fw-medium {\n font-weight: 500;\n }\n .fw-semibold {\n font-weight: 600;\n }\n .fw-bold {\n font-weight: 700;\n }\n .fw-bolder {\n font-weight: bolder;\n }\n .lh-1 {\n line-height: 1;\n }\n .lh-sm {\n line-height: 1.25;\n }\n .lh-base {\n line-height: 1.5;\n }\n .lh-lg {\n line-height: 2;\n }\n .text-start {\n text-align: start;\n }\n .text-end {\n text-align: end;\n }\n .text-center {\n text-align: center;\n }\n .text-decoration-none {\n text-decoration: none;\n }\n .text-decoration-underline {\n text-decoration: underline;\n }\n .text-decoration-line-through {\n text-decoration: line-through;\n }\n .text-lowercase {\n text-transform: lowercase;\n }\n .text-uppercase {\n text-transform: uppercase;\n }\n .text-capitalize {\n text-transform: capitalize;\n }\n .text-wrap {\n text-wrap: wrap;\n }\n .text-nowrap {\n text-wrap: nowrap;\n }\n .text-balance {\n text-wrap: balance;\n }\n .text-pretty {\n text-wrap: pretty;\n }\n .text-break {\n word-wrap: break-word;\n word-break: break-word;\n }\n .fg-primary {\n --fg: var(--primary-fg);\n color: var(--fg);\n }\n .fg-accent {\n --fg: var(--accent-fg);\n color: var(--fg);\n }\n .fg-success {\n --fg: var(--success-fg);\n color: var(--fg);\n }\n .fg-danger {\n --fg: var(--danger-fg);\n color: var(--fg);\n }\n .fg-warning {\n --fg: var(--warning-fg);\n color: var(--fg);\n }\n .fg-info {\n --fg: var(--info-fg);\n color: var(--fg);\n }\n .fg-inverse {\n --fg: var(--inverse-fg);\n color: var(--fg);\n }\n .fg-secondary {\n --fg: var(--secondary-fg);\n color: var(--fg);\n }\n .fg-body {\n --fg: var(--fg-body);\n color: var(--fg);\n }\n .fg-1 {\n --fg: var(--fg-1);\n color: var(--fg);\n }\n .fg-2 {\n --fg: var(--fg-2);\n color: var(--fg);\n }\n .fg-3 {\n --fg: var(--fg-3);\n color: var(--fg);\n }\n .fg-4 {\n --fg: var(--fg-4);\n color: var(--fg);\n }\n .fg-bg {\n --fg: var(--fg-bg);\n color: var(--fg);\n }\n .fg-white {\n --fg: var(--fg-white);\n color: var(--fg);\n }\n .fg-black {\n --fg: var(--fg-black);\n color: var(--fg);\n }\n .fg-reset {\n --fg: inherit;\n color: var(--fg);\n }\n .fg-emphasis-primary {\n --fg: var(--primary-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-accent {\n --fg: var(--accent-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-success {\n --fg: var(--success-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-danger {\n --fg: var(--danger-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-warning {\n --fg: var(--warning-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-info {\n --fg: var(--info-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-inverse {\n --fg: var(--inverse-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-secondary {\n --fg: var(--secondary-fg-emphasis);\n color: var(--fg);\n }\n .fg-contrast-primary {\n --fg: var(--primary-contrast);\n color: var(--fg);\n }\n .fg-contrast-accent {\n --fg: var(--accent-contrast);\n color: var(--fg);\n }\n .fg-contrast-success {\n --fg: var(--success-contrast);\n color: var(--fg);\n }\n .fg-contrast-danger {\n --fg: var(--danger-contrast);\n color: var(--fg);\n }\n .fg-contrast-warning {\n --fg: var(--warning-contrast);\n color: var(--fg);\n }\n .fg-contrast-info {\n --fg: var(--info-contrast);\n color: var(--fg);\n }\n .fg-contrast-inverse {\n --fg: var(--inverse-contrast);\n color: var(--fg);\n }\n .fg-contrast-secondary {\n --fg: var(--secondary-contrast);\n color: var(--fg);\n }\n .fg-10 {\n color: color-mix(in oklch, var(--fg) 10%, transparent);\n }\n .fg-20 {\n color: color-mix(in oklch, var(--fg) 20%, transparent);\n }\n .fg-30 {\n color: color-mix(in oklch, var(--fg) 30%, transparent);\n }\n .fg-40 {\n color: color-mix(in oklch, var(--fg) 40%, transparent);\n }\n .fg-50 {\n color: color-mix(in oklch, var(--fg) 50%, transparent);\n }\n .fg-60 {\n color: color-mix(in oklch, var(--fg) 60%, transparent);\n }\n .fg-70 {\n color: color-mix(in oklch, var(--fg) 70%, transparent);\n }\n .fg-80 {\n color: color-mix(in oklch, var(--fg) 80%, transparent);\n }\n .fg-90 {\n color: color-mix(in oklch, var(--fg) 90%, transparent);\n }\n .fg-100 {\n color: var(--fg);\n }\n .link-10 {\n color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .hover\\:link-10:hover {\n color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .link-20 {\n color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .hover\\:link-20:hover {\n color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .link-30 {\n color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .hover\\:link-30:hover {\n color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .link-40 {\n color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .hover\\:link-40:hover {\n color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .link-50 {\n color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .hover\\:link-50:hover {\n color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .link-60 {\n color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .hover\\:link-60:hover {\n color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .link-70 {\n color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .hover\\:link-70:hover {\n color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .link-80 {\n color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .hover\\:link-80:hover {\n color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .link-90 {\n color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .hover\\:link-90:hover {\n color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .link-100 {\n color: var(--link-color);\n }\n .hover\\:link-100:hover {\n color: var(--link-color);\n }\n .underline-offset-1 {\n text-underline-offset: 0.125em;\n }\n .hover\\:underline-offset-1:hover {\n text-underline-offset: 0.125em;\n }\n .underline-offset-2 {\n text-underline-offset: 0.25em;\n }\n .hover\\:underline-offset-2:hover {\n text-underline-offset: 0.25em;\n }\n .underline-offset-3 {\n text-underline-offset: 0.375em;\n }\n .hover\\:underline-offset-3:hover {\n text-underline-offset: 0.375em;\n }\n .underline-primary {\n text-decoration-color: light-dark(var(--blue-600), var(--blue-400));\n }\n .underline-accent {\n text-decoration-color: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n }\n .underline-success {\n text-decoration-color: light-dark(var(--green-600), var(--green-400));\n }\n .underline-danger {\n text-decoration-color: light-dark(var(--red-600), var(--red-400));\n }\n .underline-warning {\n text-decoration-color: light-dark(var(--yellow-700), var(--yellow-400));\n }\n .underline-info {\n text-decoration-color: light-dark(var(--cyan-600), var(--cyan-400));\n }\n .underline-inverse {\n text-decoration-color: light-dark(var(--gray-900), var(--gray-200));\n }\n .underline-secondary {\n text-decoration-color: light-dark(var(--gray-600), var(--gray-400));\n }\n .underline-10 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .hover\\:underline-10:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .underline-20 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .hover\\:underline-20:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .underline-30 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .hover\\:underline-30:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .underline-40 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .hover\\:underline-40:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .underline-50 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .hover\\:underline-50:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .underline-60 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .hover\\:underline-60:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .underline-70 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .hover\\:underline-70:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .underline-80 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .hover\\:underline-80:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .underline-90 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .hover\\:underline-90:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .underline-100 {\n text-decoration-color: var(--link-color);\n }\n .hover\\:underline-100:hover {\n text-decoration-color: var(--link-color);\n }\n .underline-thickness-1 {\n text-decoration-thickness: 1px;\n }\n .hover\\:underline-thickness-1:hover {\n text-decoration-thickness: 1px;\n }\n .underline-thickness-2 {\n text-decoration-thickness: 2px;\n }\n .hover\\:underline-thickness-2:hover {\n text-decoration-thickness: 2px;\n }\n .underline-thickness-3 {\n text-decoration-thickness: 3px;\n }\n .hover\\:underline-thickness-3:hover {\n text-decoration-thickness: 3px;\n }\n .underline-thickness-4 {\n text-decoration-thickness: 4px;\n }\n .hover\\:underline-thickness-4:hover {\n text-decoration-thickness: 4px;\n }\n .underline-thickness-5 {\n text-decoration-thickness: 5px;\n }\n .hover\\:underline-thickness-5:hover {\n text-decoration-thickness: 5px;\n }\n .bg-primary {\n --bg: var(--primary-bg);\n background-color: var(--bg);\n }\n .bg-accent {\n --bg: var(--accent-bg);\n background-color: var(--bg);\n }\n .bg-success {\n --bg: var(--success-bg);\n background-color: var(--bg);\n }\n .bg-danger {\n --bg: var(--danger-bg);\n background-color: var(--bg);\n }\n .bg-warning {\n --bg: var(--warning-bg);\n background-color: var(--bg);\n }\n .bg-info {\n --bg: var(--info-bg);\n background-color: var(--bg);\n }\n .bg-inverse {\n --bg: var(--inverse-bg);\n background-color: var(--bg);\n }\n .bg-secondary {\n --bg: var(--secondary-bg);\n background-color: var(--bg);\n }\n .bg-body {\n --bg: var(--bg-body);\n background-color: var(--bg);\n }\n .bg-1 {\n --bg: var(--bg-1);\n background-color: var(--bg);\n }\n .bg-2 {\n --bg: var(--bg-2);\n background-color: var(--bg);\n }\n .bg-3 {\n --bg: var(--bg-3);\n background-color: var(--bg);\n }\n .bg-4 {\n --bg: var(--bg-4);\n background-color: var(--bg);\n }\n .bg-fg {\n --bg: var(--bg-fg);\n background-color: var(--bg);\n }\n .bg-white {\n --bg: var(--bg-white);\n background-color: var(--bg);\n }\n .bg-black {\n --bg: var(--bg-black);\n background-color: var(--bg);\n }\n .bg-transparent {\n --bg: var(--bg-transparent);\n background-color: var(--bg);\n }\n .bg-subtle-primary {\n --bg: var(--primary-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-accent {\n --bg: var(--accent-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-success {\n --bg: var(--success-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-danger {\n --bg: var(--danger-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-warning {\n --bg: var(--warning-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-info {\n --bg: var(--info-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-inverse {\n --bg: var(--inverse-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-secondary {\n --bg: var(--secondary-bg-subtle);\n background-color: var(--bg);\n }\n .bg-muted-primary {\n --bg: var(--primary-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-accent {\n --bg: var(--accent-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-success {\n --bg: var(--success-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-danger {\n --bg: var(--danger-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-warning {\n --bg: var(--warning-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-info {\n --bg: var(--info-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-inverse {\n --bg: var(--inverse-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-secondary {\n --bg: var(--secondary-bg-muted);\n background-color: var(--bg);\n }\n .bg-10 {\n background-color: color-mix(in oklch, var(--bg) 10%, transparent);\n }\n .bg-20 {\n background-color: color-mix(in oklch, var(--bg) 20%, transparent);\n }\n .bg-30 {\n background-color: color-mix(in oklch, var(--bg) 30%, transparent);\n }\n .bg-40 {\n background-color: color-mix(in oklch, var(--bg) 40%, transparent);\n }\n .bg-50 {\n background-color: color-mix(in oklch, var(--bg) 50%, transparent);\n }\n .bg-60 {\n background-color: color-mix(in oklch, var(--bg) 60%, transparent);\n }\n .bg-70 {\n background-color: color-mix(in oklch, var(--bg) 70%, transparent);\n }\n .bg-80 {\n background-color: color-mix(in oklch, var(--bg) 80%, transparent);\n }\n .bg-90 {\n background-color: color-mix(in oklch, var(--bg) 90%, transparent);\n }\n .bg-100 {\n background-color: var(--bg);\n }\n .theme-contrast {\n background-color: var(--theme-bg);\n color: var(--theme-contrast);\n }\n .theme-subtle {\n background-color: var(--theme-bg-subtle);\n color: var(--theme-fg);\n }\n .theme-muted {\n background-color: var(--theme-bg-muted);\n color: var(--theme-fg-emphasis);\n }\n .theme-border {\n border: var(--border-width) solid var(--theme-border);\n }\n .bg-gradient {\n background-image: var(--gradient);\n }\n .user-select-all {\n user-select: all;\n }\n .user-select-auto {\n user-select: auto;\n }\n .user-select-text {\n user-select: text;\n }\n .user-select-none {\n user-select: none;\n }\n .pe-none {\n pointer-events: none;\n }\n .pe-auto {\n pointer-events: auto;\n }\n .rounded-0 {\n --rounded-size: 0;\n border-radius: var(--rounded-size);\n }\n .rounded-1 {\n --rounded-size: 0.125rem;\n border-radius: var(--rounded-size);\n }\n .rounded-2 {\n --rounded-size: 0.1875rem;\n border-radius: var(--rounded-size);\n }\n .rounded-3 {\n --rounded-size: 0.25rem;\n border-radius: var(--rounded-size);\n }\n .rounded-4 {\n --rounded-size: 0.375rem;\n border-radius: var(--rounded-size);\n }\n .rounded-5 {\n --rounded-size: 0.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded-6 {\n --rounded-size: 0.625rem;\n border-radius: var(--rounded-size);\n }\n .rounded-7 {\n --rounded-size: 0.75rem;\n border-radius: var(--rounded-size);\n }\n .rounded-8 {\n --rounded-size: 1rem;\n border-radius: var(--rounded-size);\n }\n .rounded-9 {\n --rounded-size: 1.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded {\n --rounded-size: 0.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded-circle {\n --rounded-size: 50%;\n border-radius: var(--rounded-size);\n }\n .rounded-pill {\n --rounded-size: var(--radius-pill);\n border-radius: var(--rounded-size);\n }\n .rounded-size-0 {\n --rounded-size: 0;\n }\n .rounded-size-1 {\n --rounded-size: 0.125rem;\n }\n .rounded-size-2 {\n --rounded-size: 0.1875rem;\n }\n .rounded-size-3 {\n --rounded-size: 0.25rem;\n }\n .rounded-size-4 {\n --rounded-size: 0.375rem;\n }\n .rounded-size-5 {\n --rounded-size: 0.5rem;\n }\n .rounded-size-6 {\n --rounded-size: 0.625rem;\n }\n .rounded-size-7 {\n --rounded-size: 0.75rem;\n }\n .rounded-size-8 {\n --rounded-size: 1rem;\n }\n .rounded-size-9 {\n --rounded-size: 1.5rem;\n }\n .rounded-size {\n --rounded-size: 0.5rem;\n }\n .rounded-size-circle {\n --rounded-size: 50%;\n }\n .rounded-size-pill {\n --rounded-size: var(--radius-pill);\n }\n .rounded-top-0 {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n .rounded-top-1 {\n border-start-start-radius: 0.125rem;\n border-start-end-radius: 0.125rem;\n }\n .rounded-top-2 {\n border-start-start-radius: 0.1875rem;\n border-start-end-radius: 0.1875rem;\n }\n .rounded-top-3 {\n border-start-start-radius: 0.25rem;\n border-start-end-radius: 0.25rem;\n }\n .rounded-top-4 {\n border-start-start-radius: 0.375rem;\n border-start-end-radius: 0.375rem;\n }\n .rounded-top-5 {\n border-start-start-radius: 0.5rem;\n border-start-end-radius: 0.5rem;\n }\n .rounded-top-6 {\n border-start-start-radius: 0.625rem;\n border-start-end-radius: 0.625rem;\n }\n .rounded-top-7 {\n border-start-start-radius: 0.75rem;\n border-start-end-radius: 0.75rem;\n }\n .rounded-top-8 {\n border-start-start-radius: 1rem;\n border-start-end-radius: 1rem;\n }\n .rounded-top-9 {\n border-start-start-radius: 1.5rem;\n border-start-end-radius: 1.5rem;\n }\n .rounded-top {\n border-start-start-radius: var(--rounded-size, var(--radius-5));\n border-start-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-top-circle {\n border-start-start-radius: 50%;\n border-start-end-radius: 50%;\n }\n .rounded-top-pill {\n border-start-start-radius: var(--radius-pill);\n border-start-end-radius: var(--radius-pill);\n }\n .rounded-end-0 {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .rounded-end-1 {\n border-start-end-radius: 0.125rem;\n border-end-end-radius: 0.125rem;\n }\n .rounded-end-2 {\n border-start-end-radius: 0.1875rem;\n border-end-end-radius: 0.1875rem;\n }\n .rounded-end-3 {\n border-start-end-radius: 0.25rem;\n border-end-end-radius: 0.25rem;\n }\n .rounded-end-4 {\n border-start-end-radius: 0.375rem;\n border-end-end-radius: 0.375rem;\n }\n .rounded-end-5 {\n border-start-end-radius: 0.5rem;\n border-end-end-radius: 0.5rem;\n }\n .rounded-end-6 {\n border-start-end-radius: 0.625rem;\n border-end-end-radius: 0.625rem;\n }\n .rounded-end-7 {\n border-start-end-radius: 0.75rem;\n border-end-end-radius: 0.75rem;\n }\n .rounded-end-8 {\n border-start-end-radius: 1rem;\n border-end-end-radius: 1rem;\n }\n .rounded-end-9 {\n border-start-end-radius: 1.5rem;\n border-end-end-radius: 1.5rem;\n }\n .rounded-end {\n border-start-end-radius: var(--rounded-size, var(--radius-5));\n border-end-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-end-circle {\n border-start-end-radius: 50%;\n border-end-end-radius: 50%;\n }\n .rounded-end-pill {\n border-start-end-radius: var(--radius-pill);\n border-end-end-radius: var(--radius-pill);\n }\n .rounded-bottom-0 {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .rounded-bottom-1 {\n border-end-start-radius: 0.125rem;\n border-end-end-radius: 0.125rem;\n }\n .rounded-bottom-2 {\n border-end-start-radius: 0.1875rem;\n border-end-end-radius: 0.1875rem;\n }\n .rounded-bottom-3 {\n border-end-start-radius: 0.25rem;\n border-end-end-radius: 0.25rem;\n }\n .rounded-bottom-4 {\n border-end-start-radius: 0.375rem;\n border-end-end-radius: 0.375rem;\n }\n .rounded-bottom-5 {\n border-end-start-radius: 0.5rem;\n border-end-end-radius: 0.5rem;\n }\n .rounded-bottom-6 {\n border-end-start-radius: 0.625rem;\n border-end-end-radius: 0.625rem;\n }\n .rounded-bottom-7 {\n border-end-start-radius: 0.75rem;\n border-end-end-radius: 0.75rem;\n }\n .rounded-bottom-8 {\n border-end-start-radius: 1rem;\n border-end-end-radius: 1rem;\n }\n .rounded-bottom-9 {\n border-end-start-radius: 1.5rem;\n border-end-end-radius: 1.5rem;\n }\n .rounded-bottom {\n border-end-start-radius: var(--rounded-size, var(--radius-5));\n border-end-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-bottom-circle {\n border-end-start-radius: 50%;\n border-end-end-radius: 50%;\n }\n .rounded-bottom-pill {\n border-end-start-radius: var(--radius-pill);\n border-end-end-radius: var(--radius-pill);\n }\n .rounded-start-0 {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .rounded-start-1 {\n border-start-start-radius: 0.125rem;\n border-end-start-radius: 0.125rem;\n }\n .rounded-start-2 {\n border-start-start-radius: 0.1875rem;\n border-end-start-radius: 0.1875rem;\n }\n .rounded-start-3 {\n border-start-start-radius: 0.25rem;\n border-end-start-radius: 0.25rem;\n }\n .rounded-start-4 {\n border-start-start-radius: 0.375rem;\n border-end-start-radius: 0.375rem;\n }\n .rounded-start-5 {\n border-start-start-radius: 0.5rem;\n border-end-start-radius: 0.5rem;\n }\n .rounded-start-6 {\n border-start-start-radius: 0.625rem;\n border-end-start-radius: 0.625rem;\n }\n .rounded-start-7 {\n border-start-start-radius: 0.75rem;\n border-end-start-radius: 0.75rem;\n }\n .rounded-start-8 {\n border-start-start-radius: 1rem;\n border-end-start-radius: 1rem;\n }\n .rounded-start-9 {\n border-start-start-radius: 1.5rem;\n border-end-start-radius: 1.5rem;\n }\n .rounded-start {\n border-start-start-radius: var(--rounded-size, var(--radius-5));\n border-end-start-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-start-circle {\n border-start-start-radius: 50%;\n border-end-start-radius: 50%;\n }\n .rounded-start-pill {\n border-start-start-radius: var(--radius-pill);\n border-end-start-radius: var(--radius-pill);\n }\n .visible {\n visibility: visible;\n }\n .invisible {\n visibility: hidden;\n }\n .z-n1 {\n z-index: -1;\n }\n .z-0 {\n z-index: 0;\n }\n .z-1 {\n z-index: 1;\n }\n .z-2 {\n z-index: 2;\n }\n .z-3 {\n z-index: 3;\n }\n @media (width >= 576px) {\n .sm\\:float-start {\n float: inline-start;\n }\n .sm\\:float-end {\n float: inline-end;\n }\n .sm\\:float-none {\n float: none;\n }\n .sm\\:object-fit-contain {\n object-fit: contain;\n }\n .sm\\:object-fit-cover {\n object-fit: cover;\n }\n .sm\\:object-fit-fill {\n object-fit: fill;\n }\n .sm\\:object-fit-scale {\n object-fit: scale-down;\n }\n .sm\\:object-fit-none {\n object-fit: none;\n }\n .sm\\:d-inline {\n display: inline;\n }\n .sm\\:d-inline-block {\n display: inline-block;\n }\n .sm\\:d-block {\n display: block;\n }\n .sm\\:d-grid {\n display: grid;\n }\n .sm\\:d-inline-grid {\n display: inline-grid;\n }\n .sm\\:d-table {\n display: table;\n }\n .sm\\:d-table-row {\n display: table-row;\n }\n .sm\\:d-table-cell {\n display: table-cell;\n }\n .sm\\:d-flex {\n display: flex;\n }\n .sm\\:d-inline-flex {\n display: inline-flex;\n }\n .sm\\:d-contents {\n display: contents;\n }\n .sm\\:d-flow-root {\n display: flow-root;\n }\n .sm\\:d-none {\n display: none;\n }\n .sm\\:flex-fill {\n flex: 1 1 auto;\n }\n .sm\\:flex-row {\n flex-direction: row;\n }\n .sm\\:flex-column {\n flex-direction: column;\n }\n .sm\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .sm\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .sm\\:flex-grow-0 {\n flex-grow: 0;\n }\n .sm\\:flex-grow-1 {\n flex-grow: 1;\n }\n .sm\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .sm\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .sm\\:flex-wrap {\n flex-wrap: wrap;\n }\n .sm\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .sm\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .sm\\:justify-content-start {\n justify-content: flex-start;\n }\n .sm\\:justify-content-end {\n justify-content: flex-end;\n }\n .sm\\:justify-content-center {\n justify-content: center;\n }\n .sm\\:justify-content-between {\n justify-content: space-between;\n }\n .sm\\:justify-content-around {\n justify-content: space-around;\n }\n .sm\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .sm\\:justify-items-start {\n justify-items: start;\n }\n .sm\\:justify-items-end {\n justify-items: end;\n }\n .sm\\:justify-items-center {\n justify-items: center;\n }\n .sm\\:justify-items-stretch {\n justify-items: stretch;\n }\n .sm\\:justify-self-start {\n justify-self: start;\n }\n .sm\\:justify-self-end {\n justify-self: end;\n }\n .sm\\:justify-self-center {\n justify-self: center;\n }\n .sm\\:align-items-start {\n align-items: flex-start;\n }\n .sm\\:align-items-end {\n align-items: flex-end;\n }\n .sm\\:align-items-center {\n align-items: center;\n }\n .sm\\:align-items-baseline {\n align-items: baseline;\n }\n .sm\\:align-items-stretch {\n align-items: stretch;\n }\n .sm\\:align-content-start {\n align-content: flex-start;\n }\n .sm\\:align-content-end {\n align-content: flex-end;\n }\n .sm\\:align-content-center {\n align-content: center;\n }\n .sm\\:align-content-between {\n align-content: space-between;\n }\n .sm\\:align-content-around {\n align-content: space-around;\n }\n .sm\\:align-content-stretch {\n align-content: stretch;\n }\n .sm\\:align-self-auto {\n align-self: auto;\n }\n .sm\\:align-self-start {\n align-self: flex-start;\n }\n .sm\\:align-self-end {\n align-self: flex-end;\n }\n .sm\\:align-self-center {\n align-self: center;\n }\n .sm\\:align-self-baseline {\n align-self: baseline;\n }\n .sm\\:align-self-stretch {\n align-self: stretch;\n }\n .sm\\:place-items-start {\n place-items: start;\n }\n .sm\\:place-items-end {\n place-items: end;\n }\n .sm\\:place-items-center {\n place-items: center;\n }\n .sm\\:place-items-stretch {\n place-items: stretch;\n }\n .sm\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .sm\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .sm\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .sm\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .sm\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .sm\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .sm\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .sm\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .sm\\:order-first {\n order: -1;\n }\n .sm\\:order-0 {\n order: 0;\n }\n .sm\\:order-1 {\n order: 1;\n }\n .sm\\:order-2 {\n order: 2;\n }\n .sm\\:order-3 {\n order: 3;\n }\n .sm\\:order-4 {\n order: 4;\n }\n .sm\\:order-5 {\n order: 5;\n }\n .sm\\:order-last {\n order: 6;\n }\n .sm\\:m-0 {\n margin: 0;\n }\n .sm\\:m-1 {\n margin: 0.25rem;\n }\n .sm\\:m-2 {\n margin: 0.5rem;\n }\n .sm\\:m-3 {\n margin: 0.75rem;\n }\n .sm\\:m-4 {\n margin: 1rem;\n }\n .sm\\:m-5 {\n margin: 1.25rem;\n }\n .sm\\:m-6 {\n margin: 1.5rem;\n }\n .sm\\:m-7 {\n margin: 2rem;\n }\n .sm\\:m-8 {\n margin: 2.5rem;\n }\n .sm\\:m-9 {\n margin: 3rem;\n }\n .sm\\:m-auto {\n margin: auto;\n }\n .sm\\:mx-0 {\n margin-inline: 0;\n }\n .sm\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .sm\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .sm\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .sm\\:mx-4 {\n margin-inline: 1rem;\n }\n .sm\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .sm\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .sm\\:mx-7 {\n margin-inline: 2rem;\n }\n .sm\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .sm\\:mx-9 {\n margin-inline: 3rem;\n }\n .sm\\:mx-auto {\n margin-inline: auto;\n }\n .sm\\:my-0 {\n margin-block: 0;\n }\n .sm\\:my-1 {\n margin-block: 0.25rem;\n }\n .sm\\:my-2 {\n margin-block: 0.5rem;\n }\n .sm\\:my-3 {\n margin-block: 0.75rem;\n }\n .sm\\:my-4 {\n margin-block: 1rem;\n }\n .sm\\:my-5 {\n margin-block: 1.25rem;\n }\n .sm\\:my-6 {\n margin-block: 1.5rem;\n }\n .sm\\:my-7 {\n margin-block: 2rem;\n }\n .sm\\:my-8 {\n margin-block: 2.5rem;\n }\n .sm\\:my-9 {\n margin-block: 3rem;\n }\n .sm\\:my-auto {\n margin-block: auto;\n }\n .sm\\:mt-0 {\n margin-block-start: 0;\n }\n .sm\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .sm\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .sm\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .sm\\:mt-4 {\n margin-block-start: 1rem;\n }\n .sm\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .sm\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .sm\\:mt-7 {\n margin-block-start: 2rem;\n }\n .sm\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .sm\\:mt-9 {\n margin-block-start: 3rem;\n }\n .sm\\:mt-auto {\n margin-block-start: auto;\n }\n .sm\\:me-0 {\n margin-inline-end: 0;\n }\n .sm\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .sm\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .sm\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .sm\\:me-4 {\n margin-inline-end: 1rem;\n }\n .sm\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .sm\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .sm\\:me-7 {\n margin-inline-end: 2rem;\n }\n .sm\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .sm\\:me-9 {\n margin-inline-end: 3rem;\n }\n .sm\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .sm\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .sm\\:me-auto {\n margin-inline-end: auto;\n }\n .sm\\:mb-0 {\n margin-block-end: 0;\n }\n .sm\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .sm\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .sm\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .sm\\:mb-4 {\n margin-block-end: 1rem;\n }\n .sm\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .sm\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .sm\\:mb-7 {\n margin-block-end: 2rem;\n }\n .sm\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .sm\\:mb-9 {\n margin-block-end: 3rem;\n }\n .sm\\:mb-auto {\n margin-block-end: auto;\n }\n .sm\\:ms-0 {\n margin-inline-start: 0;\n }\n .sm\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .sm\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .sm\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .sm\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .sm\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .sm\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .sm\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .sm\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .sm\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .sm\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .sm\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .sm\\:ms-auto {\n margin-inline-start: auto;\n }\n .sm\\:p-0 {\n padding: 0;\n }\n .sm\\:p-1 {\n padding: 0.25rem;\n }\n .sm\\:p-2 {\n padding: 0.5rem;\n }\n .sm\\:p-3 {\n padding: 0.75rem;\n }\n .sm\\:p-4 {\n padding: 1rem;\n }\n .sm\\:p-5 {\n padding: 1.25rem;\n }\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n .sm\\:p-7 {\n padding: 2rem;\n }\n .sm\\:p-8 {\n padding: 2.5rem;\n }\n .sm\\:p-9 {\n padding: 3rem;\n }\n .sm\\:px-0 {\n padding-inline: 0;\n }\n .sm\\:px-1 {\n padding-inline: 0.25rem;\n }\n .sm\\:px-2 {\n padding-inline: 0.5rem;\n }\n .sm\\:px-3 {\n padding-inline: 0.75rem;\n }\n .sm\\:px-4 {\n padding-inline: 1rem;\n }\n .sm\\:px-5 {\n padding-inline: 1.25rem;\n }\n .sm\\:px-6 {\n padding-inline: 1.5rem;\n }\n .sm\\:px-7 {\n padding-inline: 2rem;\n }\n .sm\\:px-8 {\n padding-inline: 2.5rem;\n }\n .sm\\:px-9 {\n padding-inline: 3rem;\n }\n .sm\\:py-0 {\n padding-block: 0;\n }\n .sm\\:py-1 {\n padding-block: 0.25rem;\n }\n .sm\\:py-2 {\n padding-block: 0.5rem;\n }\n .sm\\:py-3 {\n padding-block: 0.75rem;\n }\n .sm\\:py-4 {\n padding-block: 1rem;\n }\n .sm\\:py-5 {\n padding-block: 1.25rem;\n }\n .sm\\:py-6 {\n padding-block: 1.5rem;\n }\n .sm\\:py-7 {\n padding-block: 2rem;\n }\n .sm\\:py-8 {\n padding-block: 2.5rem;\n }\n .sm\\:py-9 {\n padding-block: 3rem;\n }\n .sm\\:pt-0 {\n padding-block-start: 0;\n }\n .sm\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .sm\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .sm\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .sm\\:pt-4 {\n padding-block-start: 1rem;\n }\n .sm\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .sm\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .sm\\:pt-7 {\n padding-block-start: 2rem;\n }\n .sm\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .sm\\:pt-9 {\n padding-block-start: 3rem;\n }\n .sm\\:pe-0 {\n padding-inline-end: 0;\n }\n .sm\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .sm\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .sm\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .sm\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .sm\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .sm\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .sm\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .sm\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .sm\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .sm\\:pb-0 {\n padding-block-end: 0;\n }\n .sm\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .sm\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .sm\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .sm\\:pb-4 {\n padding-block-end: 1rem;\n }\n .sm\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .sm\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .sm\\:pb-7 {\n padding-block-end: 2rem;\n }\n .sm\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .sm\\:pb-9 {\n padding-block-end: 3rem;\n }\n .sm\\:ps-0 {\n padding-inline-start: 0;\n }\n .sm\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .sm\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .sm\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .sm\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .sm\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .sm\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .sm\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .sm\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .sm\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .sm\\:gap-0 {\n gap: 0;\n }\n .sm\\:gap-1 {\n gap: 0.25rem;\n }\n .sm\\:gap-2 {\n gap: 0.5rem;\n }\n .sm\\:gap-3 {\n gap: 0.75rem;\n }\n .sm\\:gap-4 {\n gap: 1rem;\n }\n .sm\\:gap-5 {\n gap: 1.25rem;\n }\n .sm\\:gap-6 {\n gap: 1.5rem;\n }\n .sm\\:gap-7 {\n gap: 2rem;\n }\n .sm\\:gap-8 {\n gap: 2.5rem;\n }\n .sm\\:gap-9 {\n gap: 3rem;\n }\n .sm\\:row-gap-0 {\n row-gap: 0;\n }\n .sm\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .sm\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .sm\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .sm\\:row-gap-4 {\n row-gap: 1rem;\n }\n .sm\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .sm\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .sm\\:row-gap-7 {\n row-gap: 2rem;\n }\n .sm\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .sm\\:row-gap-9 {\n row-gap: 3rem;\n }\n .sm\\:column-gap-0 {\n column-gap: 0;\n }\n .sm\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .sm\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .sm\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .sm\\:column-gap-4 {\n column-gap: 1rem;\n }\n .sm\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .sm\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .sm\\:column-gap-7 {\n column-gap: 2rem;\n }\n .sm\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .sm\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.sm\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.sm\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.sm\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.sm\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.sm\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.sm\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.sm\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.sm\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.sm\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.sm\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.sm\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.sm\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.sm\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.sm\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.sm\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.sm\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.sm\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.sm\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.sm\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.sm\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.sm\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.sm\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.sm\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.sm\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .sm\\:text-start {\n text-align: start;\n }\n .sm\\:text-end {\n text-align: end;\n }\n .sm\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 768px) {\n .md\\:float-start {\n float: inline-start;\n }\n .md\\:float-end {\n float: inline-end;\n }\n .md\\:float-none {\n float: none;\n }\n .md\\:object-fit-contain {\n object-fit: contain;\n }\n .md\\:object-fit-cover {\n object-fit: cover;\n }\n .md\\:object-fit-fill {\n object-fit: fill;\n }\n .md\\:object-fit-scale {\n object-fit: scale-down;\n }\n .md\\:object-fit-none {\n object-fit: none;\n }\n .md\\:d-inline {\n display: inline;\n }\n .md\\:d-inline-block {\n display: inline-block;\n }\n .md\\:d-block {\n display: block;\n }\n .md\\:d-grid {\n display: grid;\n }\n .md\\:d-inline-grid {\n display: inline-grid;\n }\n .md\\:d-table {\n display: table;\n }\n .md\\:d-table-row {\n display: table-row;\n }\n .md\\:d-table-cell {\n display: table-cell;\n }\n .md\\:d-flex {\n display: flex;\n }\n .md\\:d-inline-flex {\n display: inline-flex;\n }\n .md\\:d-contents {\n display: contents;\n }\n .md\\:d-flow-root {\n display: flow-root;\n }\n .md\\:d-none {\n display: none;\n }\n .md\\:flex-fill {\n flex: 1 1 auto;\n }\n .md\\:flex-row {\n flex-direction: row;\n }\n .md\\:flex-column {\n flex-direction: column;\n }\n .md\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .md\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .md\\:flex-grow-0 {\n flex-grow: 0;\n }\n .md\\:flex-grow-1 {\n flex-grow: 1;\n }\n .md\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .md\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .md\\:flex-wrap {\n flex-wrap: wrap;\n }\n .md\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .md\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .md\\:justify-content-start {\n justify-content: flex-start;\n }\n .md\\:justify-content-end {\n justify-content: flex-end;\n }\n .md\\:justify-content-center {\n justify-content: center;\n }\n .md\\:justify-content-between {\n justify-content: space-between;\n }\n .md\\:justify-content-around {\n justify-content: space-around;\n }\n .md\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .md\\:justify-items-start {\n justify-items: start;\n }\n .md\\:justify-items-end {\n justify-items: end;\n }\n .md\\:justify-items-center {\n justify-items: center;\n }\n .md\\:justify-items-stretch {\n justify-items: stretch;\n }\n .md\\:justify-self-start {\n justify-self: start;\n }\n .md\\:justify-self-end {\n justify-self: end;\n }\n .md\\:justify-self-center {\n justify-self: center;\n }\n .md\\:align-items-start {\n align-items: flex-start;\n }\n .md\\:align-items-end {\n align-items: flex-end;\n }\n .md\\:align-items-center {\n align-items: center;\n }\n .md\\:align-items-baseline {\n align-items: baseline;\n }\n .md\\:align-items-stretch {\n align-items: stretch;\n }\n .md\\:align-content-start {\n align-content: flex-start;\n }\n .md\\:align-content-end {\n align-content: flex-end;\n }\n .md\\:align-content-center {\n align-content: center;\n }\n .md\\:align-content-between {\n align-content: space-between;\n }\n .md\\:align-content-around {\n align-content: space-around;\n }\n .md\\:align-content-stretch {\n align-content: stretch;\n }\n .md\\:align-self-auto {\n align-self: auto;\n }\n .md\\:align-self-start {\n align-self: flex-start;\n }\n .md\\:align-self-end {\n align-self: flex-end;\n }\n .md\\:align-self-center {\n align-self: center;\n }\n .md\\:align-self-baseline {\n align-self: baseline;\n }\n .md\\:align-self-stretch {\n align-self: stretch;\n }\n .md\\:place-items-start {\n place-items: start;\n }\n .md\\:place-items-end {\n place-items: end;\n }\n .md\\:place-items-center {\n place-items: center;\n }\n .md\\:place-items-stretch {\n place-items: stretch;\n }\n .md\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .md\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .md\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .md\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .md\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .md\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .md\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .md\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .md\\:order-first {\n order: -1;\n }\n .md\\:order-0 {\n order: 0;\n }\n .md\\:order-1 {\n order: 1;\n }\n .md\\:order-2 {\n order: 2;\n }\n .md\\:order-3 {\n order: 3;\n }\n .md\\:order-4 {\n order: 4;\n }\n .md\\:order-5 {\n order: 5;\n }\n .md\\:order-last {\n order: 6;\n }\n .md\\:m-0 {\n margin: 0;\n }\n .md\\:m-1 {\n margin: 0.25rem;\n }\n .md\\:m-2 {\n margin: 0.5rem;\n }\n .md\\:m-3 {\n margin: 0.75rem;\n }\n .md\\:m-4 {\n margin: 1rem;\n }\n .md\\:m-5 {\n margin: 1.25rem;\n }\n .md\\:m-6 {\n margin: 1.5rem;\n }\n .md\\:m-7 {\n margin: 2rem;\n }\n .md\\:m-8 {\n margin: 2.5rem;\n }\n .md\\:m-9 {\n margin: 3rem;\n }\n .md\\:m-auto {\n margin: auto;\n }\n .md\\:mx-0 {\n margin-inline: 0;\n }\n .md\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .md\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .md\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .md\\:mx-4 {\n margin-inline: 1rem;\n }\n .md\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .md\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .md\\:mx-7 {\n margin-inline: 2rem;\n }\n .md\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .md\\:mx-9 {\n margin-inline: 3rem;\n }\n .md\\:mx-auto {\n margin-inline: auto;\n }\n .md\\:my-0 {\n margin-block: 0;\n }\n .md\\:my-1 {\n margin-block: 0.25rem;\n }\n .md\\:my-2 {\n margin-block: 0.5rem;\n }\n .md\\:my-3 {\n margin-block: 0.75rem;\n }\n .md\\:my-4 {\n margin-block: 1rem;\n }\n .md\\:my-5 {\n margin-block: 1.25rem;\n }\n .md\\:my-6 {\n margin-block: 1.5rem;\n }\n .md\\:my-7 {\n margin-block: 2rem;\n }\n .md\\:my-8 {\n margin-block: 2.5rem;\n }\n .md\\:my-9 {\n margin-block: 3rem;\n }\n .md\\:my-auto {\n margin-block: auto;\n }\n .md\\:mt-0 {\n margin-block-start: 0;\n }\n .md\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .md\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .md\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .md\\:mt-4 {\n margin-block-start: 1rem;\n }\n .md\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .md\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .md\\:mt-7 {\n margin-block-start: 2rem;\n }\n .md\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .md\\:mt-9 {\n margin-block-start: 3rem;\n }\n .md\\:mt-auto {\n margin-block-start: auto;\n }\n .md\\:me-0 {\n margin-inline-end: 0;\n }\n .md\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .md\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .md\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .md\\:me-4 {\n margin-inline-end: 1rem;\n }\n .md\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .md\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .md\\:me-7 {\n margin-inline-end: 2rem;\n }\n .md\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .md\\:me-9 {\n margin-inline-end: 3rem;\n }\n .md\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .md\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .md\\:me-auto {\n margin-inline-end: auto;\n }\n .md\\:mb-0 {\n margin-block-end: 0;\n }\n .md\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .md\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .md\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .md\\:mb-4 {\n margin-block-end: 1rem;\n }\n .md\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .md\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .md\\:mb-7 {\n margin-block-end: 2rem;\n }\n .md\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .md\\:mb-9 {\n margin-block-end: 3rem;\n }\n .md\\:mb-auto {\n margin-block-end: auto;\n }\n .md\\:ms-0 {\n margin-inline-start: 0;\n }\n .md\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .md\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .md\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .md\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .md\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .md\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .md\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .md\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .md\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .md\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .md\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .md\\:ms-auto {\n margin-inline-start: auto;\n }\n .md\\:p-0 {\n padding: 0;\n }\n .md\\:p-1 {\n padding: 0.25rem;\n }\n .md\\:p-2 {\n padding: 0.5rem;\n }\n .md\\:p-3 {\n padding: 0.75rem;\n }\n .md\\:p-4 {\n padding: 1rem;\n }\n .md\\:p-5 {\n padding: 1.25rem;\n }\n .md\\:p-6 {\n padding: 1.5rem;\n }\n .md\\:p-7 {\n padding: 2rem;\n }\n .md\\:p-8 {\n padding: 2.5rem;\n }\n .md\\:p-9 {\n padding: 3rem;\n }\n .md\\:px-0 {\n padding-inline: 0;\n }\n .md\\:px-1 {\n padding-inline: 0.25rem;\n }\n .md\\:px-2 {\n padding-inline: 0.5rem;\n }\n .md\\:px-3 {\n padding-inline: 0.75rem;\n }\n .md\\:px-4 {\n padding-inline: 1rem;\n }\n .md\\:px-5 {\n padding-inline: 1.25rem;\n }\n .md\\:px-6 {\n padding-inline: 1.5rem;\n }\n .md\\:px-7 {\n padding-inline: 2rem;\n }\n .md\\:px-8 {\n padding-inline: 2.5rem;\n }\n .md\\:px-9 {\n padding-inline: 3rem;\n }\n .md\\:py-0 {\n padding-block: 0;\n }\n .md\\:py-1 {\n padding-block: 0.25rem;\n }\n .md\\:py-2 {\n padding-block: 0.5rem;\n }\n .md\\:py-3 {\n padding-block: 0.75rem;\n }\n .md\\:py-4 {\n padding-block: 1rem;\n }\n .md\\:py-5 {\n padding-block: 1.25rem;\n }\n .md\\:py-6 {\n padding-block: 1.5rem;\n }\n .md\\:py-7 {\n padding-block: 2rem;\n }\n .md\\:py-8 {\n padding-block: 2.5rem;\n }\n .md\\:py-9 {\n padding-block: 3rem;\n }\n .md\\:pt-0 {\n padding-block-start: 0;\n }\n .md\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .md\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .md\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .md\\:pt-4 {\n padding-block-start: 1rem;\n }\n .md\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .md\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .md\\:pt-7 {\n padding-block-start: 2rem;\n }\n .md\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .md\\:pt-9 {\n padding-block-start: 3rem;\n }\n .md\\:pe-0 {\n padding-inline-end: 0;\n }\n .md\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .md\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .md\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .md\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .md\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .md\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .md\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .md\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .md\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .md\\:pb-0 {\n padding-block-end: 0;\n }\n .md\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .md\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .md\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .md\\:pb-4 {\n padding-block-end: 1rem;\n }\n .md\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .md\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .md\\:pb-7 {\n padding-block-end: 2rem;\n }\n .md\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .md\\:pb-9 {\n padding-block-end: 3rem;\n }\n .md\\:ps-0 {\n padding-inline-start: 0;\n }\n .md\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .md\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .md\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .md\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .md\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .md\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .md\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .md\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .md\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .md\\:gap-0 {\n gap: 0;\n }\n .md\\:gap-1 {\n gap: 0.25rem;\n }\n .md\\:gap-2 {\n gap: 0.5rem;\n }\n .md\\:gap-3 {\n gap: 0.75rem;\n }\n .md\\:gap-4 {\n gap: 1rem;\n }\n .md\\:gap-5 {\n gap: 1.25rem;\n }\n .md\\:gap-6 {\n gap: 1.5rem;\n }\n .md\\:gap-7 {\n gap: 2rem;\n }\n .md\\:gap-8 {\n gap: 2.5rem;\n }\n .md\\:gap-9 {\n gap: 3rem;\n }\n .md\\:row-gap-0 {\n row-gap: 0;\n }\n .md\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .md\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .md\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .md\\:row-gap-4 {\n row-gap: 1rem;\n }\n .md\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .md\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .md\\:row-gap-7 {\n row-gap: 2rem;\n }\n .md\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .md\\:row-gap-9 {\n row-gap: 3rem;\n }\n .md\\:column-gap-0 {\n column-gap: 0;\n }\n .md\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .md\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .md\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .md\\:column-gap-4 {\n column-gap: 1rem;\n }\n .md\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .md\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .md\\:column-gap-7 {\n column-gap: 2rem;\n }\n .md\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .md\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.md\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.md\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.md\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.md\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.md\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.md\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.md\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.md\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.md\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.md\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.md\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.md\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.md\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.md\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.md\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.md\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.md\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.md\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.md\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.md\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.md\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.md\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.md\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.md\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .md\\:text-start {\n text-align: start;\n }\n .md\\:text-end {\n text-align: end;\n }\n .md\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1024px) {\n .lg\\:float-start {\n float: inline-start;\n }\n .lg\\:float-end {\n float: inline-end;\n }\n .lg\\:float-none {\n float: none;\n }\n .lg\\:object-fit-contain {\n object-fit: contain;\n }\n .lg\\:object-fit-cover {\n object-fit: cover;\n }\n .lg\\:object-fit-fill {\n object-fit: fill;\n }\n .lg\\:object-fit-scale {\n object-fit: scale-down;\n }\n .lg\\:object-fit-none {\n object-fit: none;\n }\n .lg\\:d-inline {\n display: inline;\n }\n .lg\\:d-inline-block {\n display: inline-block;\n }\n .lg\\:d-block {\n display: block;\n }\n .lg\\:d-grid {\n display: grid;\n }\n .lg\\:d-inline-grid {\n display: inline-grid;\n }\n .lg\\:d-table {\n display: table;\n }\n .lg\\:d-table-row {\n display: table-row;\n }\n .lg\\:d-table-cell {\n display: table-cell;\n }\n .lg\\:d-flex {\n display: flex;\n }\n .lg\\:d-inline-flex {\n display: inline-flex;\n }\n .lg\\:d-contents {\n display: contents;\n }\n .lg\\:d-flow-root {\n display: flow-root;\n }\n .lg\\:d-none {\n display: none;\n }\n .lg\\:flex-fill {\n flex: 1 1 auto;\n }\n .lg\\:flex-row {\n flex-direction: row;\n }\n .lg\\:flex-column {\n flex-direction: column;\n }\n .lg\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .lg\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .lg\\:flex-grow-0 {\n flex-grow: 0;\n }\n .lg\\:flex-grow-1 {\n flex-grow: 1;\n }\n .lg\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .lg\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .lg\\:flex-wrap {\n flex-wrap: wrap;\n }\n .lg\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .lg\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .lg\\:justify-content-start {\n justify-content: flex-start;\n }\n .lg\\:justify-content-end {\n justify-content: flex-end;\n }\n .lg\\:justify-content-center {\n justify-content: center;\n }\n .lg\\:justify-content-between {\n justify-content: space-between;\n }\n .lg\\:justify-content-around {\n justify-content: space-around;\n }\n .lg\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .lg\\:justify-items-start {\n justify-items: start;\n }\n .lg\\:justify-items-end {\n justify-items: end;\n }\n .lg\\:justify-items-center {\n justify-items: center;\n }\n .lg\\:justify-items-stretch {\n justify-items: stretch;\n }\n .lg\\:justify-self-start {\n justify-self: start;\n }\n .lg\\:justify-self-end {\n justify-self: end;\n }\n .lg\\:justify-self-center {\n justify-self: center;\n }\n .lg\\:align-items-start {\n align-items: flex-start;\n }\n .lg\\:align-items-end {\n align-items: flex-end;\n }\n .lg\\:align-items-center {\n align-items: center;\n }\n .lg\\:align-items-baseline {\n align-items: baseline;\n }\n .lg\\:align-items-stretch {\n align-items: stretch;\n }\n .lg\\:align-content-start {\n align-content: flex-start;\n }\n .lg\\:align-content-end {\n align-content: flex-end;\n }\n .lg\\:align-content-center {\n align-content: center;\n }\n .lg\\:align-content-between {\n align-content: space-between;\n }\n .lg\\:align-content-around {\n align-content: space-around;\n }\n .lg\\:align-content-stretch {\n align-content: stretch;\n }\n .lg\\:align-self-auto {\n align-self: auto;\n }\n .lg\\:align-self-start {\n align-self: flex-start;\n }\n .lg\\:align-self-end {\n align-self: flex-end;\n }\n .lg\\:align-self-center {\n align-self: center;\n }\n .lg\\:align-self-baseline {\n align-self: baseline;\n }\n .lg\\:align-self-stretch {\n align-self: stretch;\n }\n .lg\\:place-items-start {\n place-items: start;\n }\n .lg\\:place-items-end {\n place-items: end;\n }\n .lg\\:place-items-center {\n place-items: center;\n }\n .lg\\:place-items-stretch {\n place-items: stretch;\n }\n .lg\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .lg\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .lg\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .lg\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .lg\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .lg\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .lg\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .lg\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .lg\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .lg\\:order-first {\n order: -1;\n }\n .lg\\:order-0 {\n order: 0;\n }\n .lg\\:order-1 {\n order: 1;\n }\n .lg\\:order-2 {\n order: 2;\n }\n .lg\\:order-3 {\n order: 3;\n }\n .lg\\:order-4 {\n order: 4;\n }\n .lg\\:order-5 {\n order: 5;\n }\n .lg\\:order-last {\n order: 6;\n }\n .lg\\:m-0 {\n margin: 0;\n }\n .lg\\:m-1 {\n margin: 0.25rem;\n }\n .lg\\:m-2 {\n margin: 0.5rem;\n }\n .lg\\:m-3 {\n margin: 0.75rem;\n }\n .lg\\:m-4 {\n margin: 1rem;\n }\n .lg\\:m-5 {\n margin: 1.25rem;\n }\n .lg\\:m-6 {\n margin: 1.5rem;\n }\n .lg\\:m-7 {\n margin: 2rem;\n }\n .lg\\:m-8 {\n margin: 2.5rem;\n }\n .lg\\:m-9 {\n margin: 3rem;\n }\n .lg\\:m-auto {\n margin: auto;\n }\n .lg\\:mx-0 {\n margin-inline: 0;\n }\n .lg\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .lg\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .lg\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .lg\\:mx-4 {\n margin-inline: 1rem;\n }\n .lg\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .lg\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .lg\\:mx-7 {\n margin-inline: 2rem;\n }\n .lg\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .lg\\:mx-9 {\n margin-inline: 3rem;\n }\n .lg\\:mx-auto {\n margin-inline: auto;\n }\n .lg\\:my-0 {\n margin-block: 0;\n }\n .lg\\:my-1 {\n margin-block: 0.25rem;\n }\n .lg\\:my-2 {\n margin-block: 0.5rem;\n }\n .lg\\:my-3 {\n margin-block: 0.75rem;\n }\n .lg\\:my-4 {\n margin-block: 1rem;\n }\n .lg\\:my-5 {\n margin-block: 1.25rem;\n }\n .lg\\:my-6 {\n margin-block: 1.5rem;\n }\n .lg\\:my-7 {\n margin-block: 2rem;\n }\n .lg\\:my-8 {\n margin-block: 2.5rem;\n }\n .lg\\:my-9 {\n margin-block: 3rem;\n }\n .lg\\:my-auto {\n margin-block: auto;\n }\n .lg\\:mt-0 {\n margin-block-start: 0;\n }\n .lg\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .lg\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .lg\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .lg\\:mt-4 {\n margin-block-start: 1rem;\n }\n .lg\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .lg\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .lg\\:mt-7 {\n margin-block-start: 2rem;\n }\n .lg\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .lg\\:mt-9 {\n margin-block-start: 3rem;\n }\n .lg\\:mt-auto {\n margin-block-start: auto;\n }\n .lg\\:me-0 {\n margin-inline-end: 0;\n }\n .lg\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .lg\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .lg\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .lg\\:me-4 {\n margin-inline-end: 1rem;\n }\n .lg\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .lg\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .lg\\:me-7 {\n margin-inline-end: 2rem;\n }\n .lg\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .lg\\:me-9 {\n margin-inline-end: 3rem;\n }\n .lg\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .lg\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .lg\\:me-auto {\n margin-inline-end: auto;\n }\n .lg\\:mb-0 {\n margin-block-end: 0;\n }\n .lg\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .lg\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .lg\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .lg\\:mb-4 {\n margin-block-end: 1rem;\n }\n .lg\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .lg\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .lg\\:mb-7 {\n margin-block-end: 2rem;\n }\n .lg\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .lg\\:mb-9 {\n margin-block-end: 3rem;\n }\n .lg\\:mb-auto {\n margin-block-end: auto;\n }\n .lg\\:ms-0 {\n margin-inline-start: 0;\n }\n .lg\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .lg\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .lg\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .lg\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .lg\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .lg\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .lg\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .lg\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .lg\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .lg\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .lg\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .lg\\:ms-auto {\n margin-inline-start: auto;\n }\n .lg\\:p-0 {\n padding: 0;\n }\n .lg\\:p-1 {\n padding: 0.25rem;\n }\n .lg\\:p-2 {\n padding: 0.5rem;\n }\n .lg\\:p-3 {\n padding: 0.75rem;\n }\n .lg\\:p-4 {\n padding: 1rem;\n }\n .lg\\:p-5 {\n padding: 1.25rem;\n }\n .lg\\:p-6 {\n padding: 1.5rem;\n }\n .lg\\:p-7 {\n padding: 2rem;\n }\n .lg\\:p-8 {\n padding: 2.5rem;\n }\n .lg\\:p-9 {\n padding: 3rem;\n }\n .lg\\:px-0 {\n padding-inline: 0;\n }\n .lg\\:px-1 {\n padding-inline: 0.25rem;\n }\n .lg\\:px-2 {\n padding-inline: 0.5rem;\n }\n .lg\\:px-3 {\n padding-inline: 0.75rem;\n }\n .lg\\:px-4 {\n padding-inline: 1rem;\n }\n .lg\\:px-5 {\n padding-inline: 1.25rem;\n }\n .lg\\:px-6 {\n padding-inline: 1.5rem;\n }\n .lg\\:px-7 {\n padding-inline: 2rem;\n }\n .lg\\:px-8 {\n padding-inline: 2.5rem;\n }\n .lg\\:px-9 {\n padding-inline: 3rem;\n }\n .lg\\:py-0 {\n padding-block: 0;\n }\n .lg\\:py-1 {\n padding-block: 0.25rem;\n }\n .lg\\:py-2 {\n padding-block: 0.5rem;\n }\n .lg\\:py-3 {\n padding-block: 0.75rem;\n }\n .lg\\:py-4 {\n padding-block: 1rem;\n }\n .lg\\:py-5 {\n padding-block: 1.25rem;\n }\n .lg\\:py-6 {\n padding-block: 1.5rem;\n }\n .lg\\:py-7 {\n padding-block: 2rem;\n }\n .lg\\:py-8 {\n padding-block: 2.5rem;\n }\n .lg\\:py-9 {\n padding-block: 3rem;\n }\n .lg\\:pt-0 {\n padding-block-start: 0;\n }\n .lg\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .lg\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .lg\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .lg\\:pt-4 {\n padding-block-start: 1rem;\n }\n .lg\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .lg\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .lg\\:pt-7 {\n padding-block-start: 2rem;\n }\n .lg\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .lg\\:pt-9 {\n padding-block-start: 3rem;\n }\n .lg\\:pe-0 {\n padding-inline-end: 0;\n }\n .lg\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .lg\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .lg\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .lg\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .lg\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .lg\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .lg\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .lg\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .lg\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .lg\\:pb-0 {\n padding-block-end: 0;\n }\n .lg\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .lg\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .lg\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .lg\\:pb-4 {\n padding-block-end: 1rem;\n }\n .lg\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .lg\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .lg\\:pb-7 {\n padding-block-end: 2rem;\n }\n .lg\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .lg\\:pb-9 {\n padding-block-end: 3rem;\n }\n .lg\\:ps-0 {\n padding-inline-start: 0;\n }\n .lg\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .lg\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .lg\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .lg\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .lg\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .lg\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .lg\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .lg\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .lg\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .lg\\:gap-0 {\n gap: 0;\n }\n .lg\\:gap-1 {\n gap: 0.25rem;\n }\n .lg\\:gap-2 {\n gap: 0.5rem;\n }\n .lg\\:gap-3 {\n gap: 0.75rem;\n }\n .lg\\:gap-4 {\n gap: 1rem;\n }\n .lg\\:gap-5 {\n gap: 1.25rem;\n }\n .lg\\:gap-6 {\n gap: 1.5rem;\n }\n .lg\\:gap-7 {\n gap: 2rem;\n }\n .lg\\:gap-8 {\n gap: 2.5rem;\n }\n .lg\\:gap-9 {\n gap: 3rem;\n }\n .lg\\:row-gap-0 {\n row-gap: 0;\n }\n .lg\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .lg\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .lg\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .lg\\:row-gap-4 {\n row-gap: 1rem;\n }\n .lg\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .lg\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .lg\\:row-gap-7 {\n row-gap: 2rem;\n }\n .lg\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .lg\\:row-gap-9 {\n row-gap: 3rem;\n }\n .lg\\:column-gap-0 {\n column-gap: 0;\n }\n .lg\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .lg\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .lg\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .lg\\:column-gap-4 {\n column-gap: 1rem;\n }\n .lg\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .lg\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .lg\\:column-gap-7 {\n column-gap: 2rem;\n }\n .lg\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .lg\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.lg\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.lg\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.lg\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.lg\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.lg\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.lg\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.lg\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.lg\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.lg\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.lg\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.lg\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.lg\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.lg\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.lg\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.lg\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.lg\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.lg\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.lg\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.lg\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.lg\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.lg\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.lg\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.lg\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.lg\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .lg\\:text-start {\n text-align: start;\n }\n .lg\\:text-end {\n text-align: end;\n }\n .lg\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1280px) {\n .xl\\:float-start {\n float: inline-start;\n }\n .xl\\:float-end {\n float: inline-end;\n }\n .xl\\:float-none {\n float: none;\n }\n .xl\\:object-fit-contain {\n object-fit: contain;\n }\n .xl\\:object-fit-cover {\n object-fit: cover;\n }\n .xl\\:object-fit-fill {\n object-fit: fill;\n }\n .xl\\:object-fit-scale {\n object-fit: scale-down;\n }\n .xl\\:object-fit-none {\n object-fit: none;\n }\n .xl\\:d-inline {\n display: inline;\n }\n .xl\\:d-inline-block {\n display: inline-block;\n }\n .xl\\:d-block {\n display: block;\n }\n .xl\\:d-grid {\n display: grid;\n }\n .xl\\:d-inline-grid {\n display: inline-grid;\n }\n .xl\\:d-table {\n display: table;\n }\n .xl\\:d-table-row {\n display: table-row;\n }\n .xl\\:d-table-cell {\n display: table-cell;\n }\n .xl\\:d-flex {\n display: flex;\n }\n .xl\\:d-inline-flex {\n display: inline-flex;\n }\n .xl\\:d-contents {\n display: contents;\n }\n .xl\\:d-flow-root {\n display: flow-root;\n }\n .xl\\:d-none {\n display: none;\n }\n .xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .xl\\:flex-row {\n flex-direction: row;\n }\n .xl\\:flex-column {\n flex-direction: column;\n }\n .xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .xl\\:justify-content-center {\n justify-content: center;\n }\n .xl\\:justify-content-between {\n justify-content: space-between;\n }\n .xl\\:justify-content-around {\n justify-content: space-around;\n }\n .xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .xl\\:justify-items-start {\n justify-items: start;\n }\n .xl\\:justify-items-end {\n justify-items: end;\n }\n .xl\\:justify-items-center {\n justify-items: center;\n }\n .xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .xl\\:justify-self-start {\n justify-self: start;\n }\n .xl\\:justify-self-end {\n justify-self: end;\n }\n .xl\\:justify-self-center {\n justify-self: center;\n }\n .xl\\:align-items-start {\n align-items: flex-start;\n }\n .xl\\:align-items-end {\n align-items: flex-end;\n }\n .xl\\:align-items-center {\n align-items: center;\n }\n .xl\\:align-items-baseline {\n align-items: baseline;\n }\n .xl\\:align-items-stretch {\n align-items: stretch;\n }\n .xl\\:align-content-start {\n align-content: flex-start;\n }\n .xl\\:align-content-end {\n align-content: flex-end;\n }\n .xl\\:align-content-center {\n align-content: center;\n }\n .xl\\:align-content-between {\n align-content: space-between;\n }\n .xl\\:align-content-around {\n align-content: space-around;\n }\n .xl\\:align-content-stretch {\n align-content: stretch;\n }\n .xl\\:align-self-auto {\n align-self: auto;\n }\n .xl\\:align-self-start {\n align-self: flex-start;\n }\n .xl\\:align-self-end {\n align-self: flex-end;\n }\n .xl\\:align-self-center {\n align-self: center;\n }\n .xl\\:align-self-baseline {\n align-self: baseline;\n }\n .xl\\:align-self-stretch {\n align-self: stretch;\n }\n .xl\\:place-items-start {\n place-items: start;\n }\n .xl\\:place-items-end {\n place-items: end;\n }\n .xl\\:place-items-center {\n place-items: center;\n }\n .xl\\:place-items-stretch {\n place-items: stretch;\n }\n .xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .xl\\:order-first {\n order: -1;\n }\n .xl\\:order-0 {\n order: 0;\n }\n .xl\\:order-1 {\n order: 1;\n }\n .xl\\:order-2 {\n order: 2;\n }\n .xl\\:order-3 {\n order: 3;\n }\n .xl\\:order-4 {\n order: 4;\n }\n .xl\\:order-5 {\n order: 5;\n }\n .xl\\:order-last {\n order: 6;\n }\n .xl\\:m-0 {\n margin: 0;\n }\n .xl\\:m-1 {\n margin: 0.25rem;\n }\n .xl\\:m-2 {\n margin: 0.5rem;\n }\n .xl\\:m-3 {\n margin: 0.75rem;\n }\n .xl\\:m-4 {\n margin: 1rem;\n }\n .xl\\:m-5 {\n margin: 1.25rem;\n }\n .xl\\:m-6 {\n margin: 1.5rem;\n }\n .xl\\:m-7 {\n margin: 2rem;\n }\n .xl\\:m-8 {\n margin: 2.5rem;\n }\n .xl\\:m-9 {\n margin: 3rem;\n }\n .xl\\:m-auto {\n margin: auto;\n }\n .xl\\:mx-0 {\n margin-inline: 0;\n }\n .xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .xl\\:mx-auto {\n margin-inline: auto;\n }\n .xl\\:my-0 {\n margin-block: 0;\n }\n .xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .xl\\:my-4 {\n margin-block: 1rem;\n }\n .xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .xl\\:my-7 {\n margin-block: 2rem;\n }\n .xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .xl\\:my-9 {\n margin-block: 3rem;\n }\n .xl\\:my-auto {\n margin-block: auto;\n }\n .xl\\:mt-0 {\n margin-block-start: 0;\n }\n .xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .xl\\:mt-auto {\n margin-block-start: auto;\n }\n .xl\\:me-0 {\n margin-inline-end: 0;\n }\n .xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .xl\\:me-auto {\n margin-inline-end: auto;\n }\n .xl\\:mb-0 {\n margin-block-end: 0;\n }\n .xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .xl\\:mb-auto {\n margin-block-end: auto;\n }\n .xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .xl\\:p-0 {\n padding: 0;\n }\n .xl\\:p-1 {\n padding: 0.25rem;\n }\n .xl\\:p-2 {\n padding: 0.5rem;\n }\n .xl\\:p-3 {\n padding: 0.75rem;\n }\n .xl\\:p-4 {\n padding: 1rem;\n }\n .xl\\:p-5 {\n padding: 1.25rem;\n }\n .xl\\:p-6 {\n padding: 1.5rem;\n }\n .xl\\:p-7 {\n padding: 2rem;\n }\n .xl\\:p-8 {\n padding: 2.5rem;\n }\n .xl\\:p-9 {\n padding: 3rem;\n }\n .xl\\:px-0 {\n padding-inline: 0;\n }\n .xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .xl\\:px-4 {\n padding-inline: 1rem;\n }\n .xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .xl\\:px-7 {\n padding-inline: 2rem;\n }\n .xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .xl\\:px-9 {\n padding-inline: 3rem;\n }\n .xl\\:py-0 {\n padding-block: 0;\n }\n .xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .xl\\:py-4 {\n padding-block: 1rem;\n }\n .xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .xl\\:py-7 {\n padding-block: 2rem;\n }\n .xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .xl\\:py-9 {\n padding-block: 3rem;\n }\n .xl\\:pt-0 {\n padding-block-start: 0;\n }\n .xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .xl\\:pb-0 {\n padding-block-end: 0;\n }\n .xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .xl\\:gap-0 {\n gap: 0;\n }\n .xl\\:gap-1 {\n gap: 0.25rem;\n }\n .xl\\:gap-2 {\n gap: 0.5rem;\n }\n .xl\\:gap-3 {\n gap: 0.75rem;\n }\n .xl\\:gap-4 {\n gap: 1rem;\n }\n .xl\\:gap-5 {\n gap: 1.25rem;\n }\n .xl\\:gap-6 {\n gap: 1.5rem;\n }\n .xl\\:gap-7 {\n gap: 2rem;\n }\n .xl\\:gap-8 {\n gap: 2.5rem;\n }\n .xl\\:gap-9 {\n gap: 3rem;\n }\n .xl\\:row-gap-0 {\n row-gap: 0;\n }\n .xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .xl\\:column-gap-0 {\n column-gap: 0;\n }\n .xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.xl\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.xl\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.xl\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.xl\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.xl\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.xl\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.xl\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.xl\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.xl\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.xl\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.xl\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.xl\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.xl\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.xl\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.xl\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.xl\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.xl\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.xl\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.xl\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.xl\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.xl\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.xl\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.xl\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.xl\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .xl\\:text-start {\n text-align: start;\n }\n .xl\\:text-end {\n text-align: end;\n }\n .xl\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:float-start {\n float: inline-start;\n }\n .\\32 xl\\:float-end {\n float: inline-end;\n }\n .\\32 xl\\:float-none {\n float: none;\n }\n .\\32 xl\\:object-fit-contain {\n object-fit: contain;\n }\n .\\32 xl\\:object-fit-cover {\n object-fit: cover;\n }\n .\\32 xl\\:object-fit-fill {\n object-fit: fill;\n }\n .\\32 xl\\:object-fit-scale {\n object-fit: scale-down;\n }\n .\\32 xl\\:object-fit-none {\n object-fit: none;\n }\n .\\32 xl\\:d-inline {\n display: inline;\n }\n .\\32 xl\\:d-inline-block {\n display: inline-block;\n }\n .\\32 xl\\:d-block {\n display: block;\n }\n .\\32 xl\\:d-grid {\n display: grid;\n }\n .\\32 xl\\:d-inline-grid {\n display: inline-grid;\n }\n .\\32 xl\\:d-table {\n display: table;\n }\n .\\32 xl\\:d-table-row {\n display: table-row;\n }\n .\\32 xl\\:d-table-cell {\n display: table-cell;\n }\n .\\32 xl\\:d-flex {\n display: flex;\n }\n .\\32 xl\\:d-inline-flex {\n display: inline-flex;\n }\n .\\32 xl\\:d-contents {\n display: contents;\n }\n .\\32 xl\\:d-flow-root {\n display: flow-root;\n }\n .\\32 xl\\:d-none {\n display: none;\n }\n .\\32 xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .\\32 xl\\:flex-row {\n flex-direction: row;\n }\n .\\32 xl\\:flex-column {\n flex-direction: column;\n }\n .\\32 xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .\\32 xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .\\32 xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .\\32 xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .\\32 xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .\\32 xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .\\32 xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .\\32 xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .\\32 xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .\\32 xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .\\32 xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .\\32 xl\\:justify-content-center {\n justify-content: center;\n }\n .\\32 xl\\:justify-content-between {\n justify-content: space-between;\n }\n .\\32 xl\\:justify-content-around {\n justify-content: space-around;\n }\n .\\32 xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .\\32 xl\\:justify-items-start {\n justify-items: start;\n }\n .\\32 xl\\:justify-items-end {\n justify-items: end;\n }\n .\\32 xl\\:justify-items-center {\n justify-items: center;\n }\n .\\32 xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .\\32 xl\\:justify-self-start {\n justify-self: start;\n }\n .\\32 xl\\:justify-self-end {\n justify-self: end;\n }\n .\\32 xl\\:justify-self-center {\n justify-self: center;\n }\n .\\32 xl\\:align-items-start {\n align-items: flex-start;\n }\n .\\32 xl\\:align-items-end {\n align-items: flex-end;\n }\n .\\32 xl\\:align-items-center {\n align-items: center;\n }\n .\\32 xl\\:align-items-baseline {\n align-items: baseline;\n }\n .\\32 xl\\:align-items-stretch {\n align-items: stretch;\n }\n .\\32 xl\\:align-content-start {\n align-content: flex-start;\n }\n .\\32 xl\\:align-content-end {\n align-content: flex-end;\n }\n .\\32 xl\\:align-content-center {\n align-content: center;\n }\n .\\32 xl\\:align-content-between {\n align-content: space-between;\n }\n .\\32 xl\\:align-content-around {\n align-content: space-around;\n }\n .\\32 xl\\:align-content-stretch {\n align-content: stretch;\n }\n .\\32 xl\\:align-self-auto {\n align-self: auto;\n }\n .\\32 xl\\:align-self-start {\n align-self: flex-start;\n }\n .\\32 xl\\:align-self-end {\n align-self: flex-end;\n }\n .\\32 xl\\:align-self-center {\n align-self: center;\n }\n .\\32 xl\\:align-self-baseline {\n align-self: baseline;\n }\n .\\32 xl\\:align-self-stretch {\n align-self: stretch;\n }\n .\\32 xl\\:place-items-start {\n place-items: start;\n }\n .\\32 xl\\:place-items-end {\n place-items: end;\n }\n .\\32 xl\\:place-items-center {\n place-items: center;\n }\n .\\32 xl\\:place-items-stretch {\n place-items: stretch;\n }\n .\\32 xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .\\32 xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .\\32 xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .\\32 xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .\\32 xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .\\32 xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .\\32 xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .\\32 xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .\\32 xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .\\32 xl\\:order-first {\n order: -1;\n }\n .\\32 xl\\:order-0 {\n order: 0;\n }\n .\\32 xl\\:order-1 {\n order: 1;\n }\n .\\32 xl\\:order-2 {\n order: 2;\n }\n .\\32 xl\\:order-3 {\n order: 3;\n }\n .\\32 xl\\:order-4 {\n order: 4;\n }\n .\\32 xl\\:order-5 {\n order: 5;\n }\n .\\32 xl\\:order-last {\n order: 6;\n }\n .\\32 xl\\:m-0 {\n margin: 0;\n }\n .\\32 xl\\:m-1 {\n margin: 0.25rem;\n }\n .\\32 xl\\:m-2 {\n margin: 0.5rem;\n }\n .\\32 xl\\:m-3 {\n margin: 0.75rem;\n }\n .\\32 xl\\:m-4 {\n margin: 1rem;\n }\n .\\32 xl\\:m-5 {\n margin: 1.25rem;\n }\n .\\32 xl\\:m-6 {\n margin: 1.5rem;\n }\n .\\32 xl\\:m-7 {\n margin: 2rem;\n }\n .\\32 xl\\:m-8 {\n margin: 2.5rem;\n }\n .\\32 xl\\:m-9 {\n margin: 3rem;\n }\n .\\32 xl\\:m-auto {\n margin: auto;\n }\n .\\32 xl\\:mx-0 {\n margin-inline: 0;\n }\n .\\32 xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .\\32 xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .\\32 xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .\\32 xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .\\32 xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .\\32 xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .\\32 xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .\\32 xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .\\32 xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .\\32 xl\\:mx-auto {\n margin-inline: auto;\n }\n .\\32 xl\\:my-0 {\n margin-block: 0;\n }\n .\\32 xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .\\32 xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .\\32 xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .\\32 xl\\:my-4 {\n margin-block: 1rem;\n }\n .\\32 xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .\\32 xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .\\32 xl\\:my-7 {\n margin-block: 2rem;\n }\n .\\32 xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .\\32 xl\\:my-9 {\n margin-block: 3rem;\n }\n .\\32 xl\\:my-auto {\n margin-block: auto;\n }\n .\\32 xl\\:mt-0 {\n margin-block-start: 0;\n }\n .\\32 xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .\\32 xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .\\32 xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .\\32 xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .\\32 xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .\\32 xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .\\32 xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .\\32 xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .\\32 xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .\\32 xl\\:mt-auto {\n margin-block-start: auto;\n }\n .\\32 xl\\:me-0 {\n margin-inline-end: 0;\n }\n .\\32 xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .\\32 xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .\\32 xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .\\32 xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .\\32 xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .\\32 xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .\\32 xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .\\32 xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .\\32 xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .\\32 xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .\\32 xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .\\32 xl\\:me-auto {\n margin-inline-end: auto;\n }\n .\\32 xl\\:mb-0 {\n margin-block-end: 0;\n }\n .\\32 xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .\\32 xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .\\32 xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .\\32 xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .\\32 xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .\\32 xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .\\32 xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .\\32 xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .\\32 xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .\\32 xl\\:mb-auto {\n margin-block-end: auto;\n }\n .\\32 xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .\\32 xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .\\32 xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .\\32 xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .\\32 xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .\\32 xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .\\32 xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .\\32 xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .\\32 xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .\\32 xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .\\32 xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .\\32 xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .\\32 xl\\:p-0 {\n padding: 0;\n }\n .\\32 xl\\:p-1 {\n padding: 0.25rem;\n }\n .\\32 xl\\:p-2 {\n padding: 0.5rem;\n }\n .\\32 xl\\:p-3 {\n padding: 0.75rem;\n }\n .\\32 xl\\:p-4 {\n padding: 1rem;\n }\n .\\32 xl\\:p-5 {\n padding: 1.25rem;\n }\n .\\32 xl\\:p-6 {\n padding: 1.5rem;\n }\n .\\32 xl\\:p-7 {\n padding: 2rem;\n }\n .\\32 xl\\:p-8 {\n padding: 2.5rem;\n }\n .\\32 xl\\:p-9 {\n padding: 3rem;\n }\n .\\32 xl\\:px-0 {\n padding-inline: 0;\n }\n .\\32 xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .\\32 xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .\\32 xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .\\32 xl\\:px-4 {\n padding-inline: 1rem;\n }\n .\\32 xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .\\32 xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .\\32 xl\\:px-7 {\n padding-inline: 2rem;\n }\n .\\32 xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .\\32 xl\\:px-9 {\n padding-inline: 3rem;\n }\n .\\32 xl\\:py-0 {\n padding-block: 0;\n }\n .\\32 xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .\\32 xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .\\32 xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .\\32 xl\\:py-4 {\n padding-block: 1rem;\n }\n .\\32 xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .\\32 xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .\\32 xl\\:py-7 {\n padding-block: 2rem;\n }\n .\\32 xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .\\32 xl\\:py-9 {\n padding-block: 3rem;\n }\n .\\32 xl\\:pt-0 {\n padding-block-start: 0;\n }\n .\\32 xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .\\32 xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .\\32 xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .\\32 xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .\\32 xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .\\32 xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .\\32 xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .\\32 xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .\\32 xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .\\32 xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .\\32 xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .\\32 xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .\\32 xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .\\32 xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .\\32 xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .\\32 xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .\\32 xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .\\32 xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .\\32 xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .\\32 xl\\:pb-0 {\n padding-block-end: 0;\n }\n .\\32 xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .\\32 xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .\\32 xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .\\32 xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .\\32 xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .\\32 xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .\\32 xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .\\32 xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .\\32 xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .\\32 xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .\\32 xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .\\32 xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .\\32 xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .\\32 xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .\\32 xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .\\32 xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .\\32 xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .\\32 xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .\\32 xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .\\32 xl\\:gap-0 {\n gap: 0;\n }\n .\\32 xl\\:gap-1 {\n gap: 0.25rem;\n }\n .\\32 xl\\:gap-2 {\n gap: 0.5rem;\n }\n .\\32 xl\\:gap-3 {\n gap: 0.75rem;\n }\n .\\32 xl\\:gap-4 {\n gap: 1rem;\n }\n .\\32 xl\\:gap-5 {\n gap: 1.25rem;\n }\n .\\32 xl\\:gap-6 {\n gap: 1.5rem;\n }\n .\\32 xl\\:gap-7 {\n gap: 2rem;\n }\n .\\32 xl\\:gap-8 {\n gap: 2.5rem;\n }\n .\\32 xl\\:gap-9 {\n gap: 3rem;\n }\n .\\32 xl\\:row-gap-0 {\n row-gap: 0;\n }\n .\\32 xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .\\32 xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .\\32 xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .\\32 xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .\\32 xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .\\32 xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .\\32 xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .\\32 xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .\\32 xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .\\32 xl\\:column-gap-0 {\n column-gap: 0;\n }\n .\\32 xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .\\32 xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .\\32 xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .\\32 xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .\\32 xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .\\32 xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .\\32 xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .\\32 xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .\\32 xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.\\32 xl\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.\\32 xl\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.\\32 xl\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.\\32 xl\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.\\32 xl\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.\\32 xl\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.\\32 xl\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.\\32 xl\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.\\32 xl\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.\\32 xl\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.\\32 xl\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.\\32 xl\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.\\32 xl\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.\\32 xl\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.\\32 xl\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.\\32 xl\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.\\32 xl\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.\\32 xl\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.\\32 xl\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.\\32 xl\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.\\32 xl\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.\\32 xl\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.\\32 xl\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.\\32 xl\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .\\32 xl\\:text-start {\n text-align: start;\n }\n .\\32 xl\\:text-end {\n text-align: end;\n }\n .\\32 xl\\:text-center {\n text-align: center;\n }\n }\n}\n\n/*# sourceMappingURL=bootstrap-utilities.css.map */\n","@use \"sass:map\";\n@use \"colors\" as *;\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"theme\" as *;\n@use \"mixins/tokens\" as *;\n// mdo-do: do we need theme?\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n\n$root-tokens: () !default;\n\n// scss-docs-start root-tokens\n// stylelint-disable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: defaults(\n (\n --black: #{$black},\n --white: #{$white},\n\n --gradient: #{$gradient},\n\n // scss-docs-start root-font-weight-variables\n --font-weight-lighter: lighter,\n --font-weight-light: 300,\n --font-weight-normal: 400,\n --font-weight-medium: 500,\n --font-weight-semibold: 600,\n --font-weight-bold: 700,\n --font-weight-bolder: bolder,\n // scss-docs-end root-font-weight-variables\n\n // scss-docs-start root-body-variables\n --body-font-family: system-ui,\n --body-font-size: var(--font-size-base),\n --body-font-weight: #{$font-weight-base},\n --body-line-height: #{$line-height-base},\n\n --heading-color: #{$headings-color},\n\n --hr-border-color: var(--border-color),\n\n --link-color: light-dark(var(--primary-base), var(--primary-fg)),\n --link-decoration: #{$link-decoration},\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000),\n\n --font-mono: \"ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Monaco, 'Cascadia Mono', Consolas, 'Liberation Mono', monospace;\",\n --code-font-size: 95%,\n --code-color: var(--fg-2),\n\n // scss-docs-start root-border-var\n --border-width: #{$border-width},\n --border-style: #{$border-style},\n --border-color: light-dark(var(--gray-200), var(--gray-700)),\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent),\n // scss-docs-end root-border-var\n\n // scss-docs-start root-box-shadow-variables\n --box-shadow: 0 .5rem 1rem rgb(0 0 0 / 15%),\n --box-shadow-sm: 0 .125rem .25rem rgb(0 0 0 / 7.5%),\n --box-shadow-lg: 0 1rem 3rem rgb(0 0 0 / 17.5%),\n --box-shadow-inset: inset 0 1px 2px rgb(0 0 0 / 7.5%),\n // scss-docs-end root-box-shadow-variables\n\n --spacer: 1rem,\n\n // scss-docs-start root-focus-variables\n --focus-ring-width: 3px,\n --focus-ring-offset: 1px,\n --focus-ring-color: var(--primary-focus-ring),\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color),\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-variables\n --control-checked-bg: var(--primary-base),\n --control-checked-border-color: var(--control-checked-bg),\n --control-active-bg: var(--primary-base),\n --control-active-border-color: var(--control-active-bg),\n --control-disabled-bg: var(--bg-3),\n --control-disabled-opacity: .65,\n\n --btn-input-fg: var(--fg-body),\n --btn-input-bg: var(--bg-body),\n\n --btn-input-min-height: 2.375rem,\n --btn-input-padding-y: .375rem,\n --btn-input-padding-x: .75rem,\n --btn-input-font-size: var(--font-size-base),\n --btn-input-line-height: var(--line-height-base),\n --btn-input-border-radius: var(--radius-5),\n\n --btn-input-xs-min-height: 1.5rem,\n --btn-input-xs-padding-y: .125rem,\n --btn-input-xs-padding-x: .5rem,\n --btn-input-xs-font-size: var(--font-size-xs),\n --btn-input-xs-line-height: 1.125,\n --btn-input-xs-border-radius: var(--radius-5),\n\n --btn-input-sm-min-height: 2rem,\n --btn-input-sm-padding-y: .25rem,\n --btn-input-sm-padding-x: .625rem,\n --btn-input-sm-font-size: var(--font-size-sm),\n --btn-input-sm-line-height: var(--line-height-sm),\n --btn-input-sm-border-radius: var(--radius-5),\n\n --btn-input-lg-min-height: 2.75rem,\n --btn-input-lg-padding-y: .5rem,\n --btn-input-lg-padding-x: 1rem,\n --btn-input-lg-font-size: var(--font-size-md),\n --btn-input-lg-line-height: var(--line-height-md),\n --btn-input-lg-border-radius: var(--radius-7),\n // scss-docs-end root-form-variables\n ),\n $root-tokens\n);\n// stylelint-enable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// scss-docs-end root-tokens\n\n// scss-docs-start root-font-size-loop\n// Generate font-size and line-height tokens\n@each $name, $props in $font-sizes {\n $root-tokens: map.set($root-tokens, --font-size-#{$name}, map.get($props, \"font-size\"));\n $root-tokens: map.set($root-tokens, --line-height-#{$name}, map.get($props, \"line-height\"));\n}\n// scss-docs-end root-font-size-loop\n\n// scss-docs-start root-theme-tokens\n// Generate semantic theme colors\n@each $color-name, $color-map in $theme-colors {\n @each $key, $value in $color-map {\n $root-tokens: map.set($root-tokens, --#{$color-name}-#{$key}, $value);\n }\n}\n\n// Generate background tokens\n@each $key, $value in $theme-bgs {\n $root-tokens: map.set($root-tokens, --bg-#{$key}, $value);\n}\n\n// Generate foreground tokens\n@each $key, $value in $theme-fgs {\n $root-tokens: map.set($root-tokens, --fg-#{$key}, $value);\n}\n\n// Generate border tokens\n@each $key, $value in $theme-borders {\n $root-tokens: map.set($root-tokens, --border-#{$key}, $value);\n}\n// scss-docs-end root-theme-tokens\n\n// Generate breakpoint tokens\n@each $name, $value in $breakpoints {\n $root-tokens: map.set($root-tokens, --breakpoint-#{$name}, $value);\n}\n\n// Generate spacer tokens\n// scss-docs-start root-spacer-loop\n@each $key, $value in $spacers {\n $root-tokens: map.set($root-tokens, --spacer-#{$key}, $value);\n}\n// scss-docs-end root-spacer-loop\n\n// Generate radius tokens\n// scss-docs-start root-radius-loop\n@each $key, $value in $radii {\n $root-tokens: map.set($root-tokens, --radius-#{$key}, $value);\n}\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: map.set($root-tokens, --radius-pill, 50rem);\n// scss-docs-end root-radius-loop\n\n:root {\n @include tokens($root-tokens);\n\n color-scheme: light dark;\n // Always reserve the viewport scrollbar gutter so layout doesn't shift\n // when overflow: hidden is applied (e.g. when a dialog opens on Windows).\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=\"dark\"] {\n color-scheme: dark;\n}\n\n[data-bs-theme=\"light\"] {\n color-scheme: light;\n}\n","@layer helpers {\n .focus-ring:focus-visible {\n // outline: var(--focus-ring);\n outline: var(--focus-ring-width) solid var(--theme-focus-ring, var(--focus-ring-color));\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/transition\" as *;\n\n@layer helpers {\n .icon-link {\n display: inline-flex;\n gap: $icon-link-gap;\n align-items: center;\n text-decoration-color: rgba(var(--link-color-rgb), var(--link-opacity, .5));\n text-underline-offset: $icon-link-underline-offset;\n backface-visibility: hidden;\n\n > .bi {\n flex-shrink: 0;\n width: $icon-link-icon-size;\n height: $icon-link-icon-size;\n fill: currentcolor;\n @include transition($icon-link-icon-transition);\n }\n }\n\n .icon-link-hover {\n &:hover,\n &:focus-visible {\n > .bi {\n transform: var(--icon-link-transform, $icon-link-icon-transform);\n }\n }\n }\n}\n","@use \"sass:map\";\n@use \"sass:meta\";\n\n// Configuration\n//\n// Variables and settings not related to theme, components, and more go here. It does include layout.\n\n// Merge overrides on top of defaults, stripping null entries.\n// Null values let users remove map keys via @use ... with().\n// Accepts a list as $defaults (converted to a map with `true` values).\n@function defaults($defaults, $overrides) {\n @if meta.type-of($defaults) == \"list\" {\n $map: ();\n @each $key in $defaults {\n $map: map.merge($map, ($key: true));\n }\n $defaults: $map;\n }\n $merged: map.merge($defaults, $overrides);\n @each $key, $value in $merged {\n @if $value == null {\n $merged: map.remove($merged, $key);\n }\n }\n @return $merged;\n}\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: true !default;\n$enable-gradients: true !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: false !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: true !default;\n$enable-button-pointers: true !default;\n// $enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n\n$color-mode-type: \"media-query\" !default;\n$color-contrast-dark: #000 !default;\n$color-contrast-light: #fff !default;\n$min-contrast-ratio: 4.5 !default;\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer * .75,\n 4: $spacer,\n 5: $spacer * 1.25,\n 6: $spacer * 1.5,\n 7: $spacer * 2,\n 8: $spacer * 2.5,\n 9: $spacer * 3,\n) !default;\n\n$negative-spacers: (\n \"-1\": $spacer * -.25,\n \"-2\": $spacer * -.5,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n$sizes: (\n 1: $spacer,\n 2: $spacer * 2,\n 3: $spacer * 3,\n 4: $spacer * 4,\n 5: $spacer * 5,\n 6: $spacer * 6,\n 7: $spacer * 7,\n 8: $spacer * 8,\n 9: $spacer * 9,\n 10: $spacer * 10,\n 11: $spacer * 11,\n 12: $spacer * 12,\n) !default;\n\n$radius: .5rem !default;\n$radii: (\n 0: 0,\n 1: $radius * .25,\n 2: $radius * .375,\n 3: $radius * .5,\n 4: $radius * .75,\n 5: $radius,\n 6: $radius * 1.25,\n 7: $radius * 1.5,\n 8: $radius * 2,\n 9: $radius * 3,\n) !default;\n\n// Breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start breakpoints\n$breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 1024px,\n xl: 1280px,\n 2xl: 1536px\n) !default;\n// scss-docs-end breakpoints\n\n// @include _assert-ascending($breakpoints, \"$breakpoints\");\n// @include _assert-starts-at-zero($breakpoints, \"$breakpoints\");\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-x: 1.5rem !default;\n$grid-gutter-y: 0 !default;\n$grid-row-columns: 6 !default;\n\n$gutters: $spacers !default;\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1200px,\n 2xl: 1440px\n) !default;\n// scss-docs-end container-max-widths\n\n$container-padding-x: $grid-gutter-x !default;\n\n$utilities: () !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent)) !default;\n// scss-docs-end variable-gradient\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Links\n//\n// Style anchor elements.\n\n$link-decoration: underline !default;\n$link-underline-offset: .2em !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: color-mix(in oklch, var(--gray-100), var(--gray-200)) !default;\n// scss-docs-end border-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"auto\": auto,\n \"1x1\": #{\"1 / 1\"},\n \"4x3\": #{\"4 / 3\"},\n \"16x9\": #{\"16 / 9\"},\n \"21x9\": #{\"21 / 9\"}\n) !default;\n// scss-docs-end aspect-ratios\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$font-sizes: defaults(\n (\n \"xs\": (\n \"font-size\": .75rem,\n \"line-height\": 1.25\n ),\n \"sm\": (\n \"font-size\": .875rem,\n \"line-height\": 1.5\n ),\n \"md\": (\n \"font-size\": 1rem,\n \"line-height\": 1.5\n ),\n \"lg\": (\n \"font-size\": clamp(1.25rem, 1rem + .625vw, 1.5rem),\n \"line-height\": 1.5\n ),\n \"xl\": (\n \"font-size\": clamp(1.5rem, 1.1rem + .75vw, 1.75rem),\n \"line-height\": calc(2.5 / 1.75)\n ),\n \"2xl\": (\n \"font-size\": clamp(1.75rem, 1.3rem + 1vw, 2rem),\n \"line-height\": calc(3 / 2.25)\n ),\n \"3xl\": (\n \"font-size\": clamp(2rem, 1.5rem + 1.875vw, 2.5rem),\n \"line-height\": 1.2\n ),\n \"4xl\": (\n \"font-size\": clamp(2.25rem, 1.75rem + 2.5vw, 3rem),\n \"line-height\": 1.1\n ),\n \"5xl\": (\n \"font-size\": clamp(3rem, 2rem + 5vw, 4rem),\n \"line-height\": 1.1\n ),\n \"6xl\": (\n \"font-size\": clamp(3.75rem, 2.5rem + 6.25vw, 5rem),\n \"line-height\": 1\n ),\n ),\n $font-sizes\n);\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: var(--spacer-2) !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start type-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n// scss-docs-end type-variables\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-menu: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n// $zindex-drawer-backdrop: 1040 !default;\n$zindex-drawer: 1045 !default;\n$zindex-dialog: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n","@use \"sass:list\";\n@use \"../config\" as *;\n\n// stylelint-disable property-disallowed-list\n@mixin transition($transition...) {\n @if list.length($transition) == 0 {\n $transition: $transition-base;\n }\n\n @if list.length($transition) > 1 {\n @each $value in $transition {\n @if $value == null or $value == none {\n @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n }\n }\n }\n\n @if $enable-transitions {\n @if list.nth($transition, 1) != null {\n transition: $transition;\n }\n\n @if $enable-reduced-motion and list.nth($transition, 1) != null and list.nth($transition, 1) != none {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n }\n}\n","@use \"sass:map\";\n@use \"../config\" as *;\n@use \"../layout/breakpoints\" as *;\n\n@layer helpers {\n .fixed-top {\n position: fixed;\n inset: 0 0 auto;\n z-index: $zindex-fixed;\n }\n\n .fixed-bottom {\n position: fixed;\n inset: auto 0 0;\n z-index: $zindex-fixed;\n }\n\n // Responsive sticky top and bottom\n @each $breakpoint in map.keys($breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n .#{$prefix}sticky-top {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n\n .#{$prefix}sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: $zindex-sticky;\n }\n }\n }\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:string\";\n@use \"../config\" as *;\n\n// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px)\n//\n// The map defined in the `$breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl 2xl))\n// md\n@function breakpoint-next($name, $breakpoints: $breakpoints, $breakpoint-names: map.keys($breakpoints)) {\n $n: list.index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoint-names}`\";\n }\n // Use @if/@else because list.nth would error if evaluated when $n equals list length\n @if $n < list.length($breakpoint-names) {\n @return list.nth($breakpoint-names, $n + 1);\n } @else {\n @return null;\n }\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $breakpoints) {\n $min: map.get($breakpoints, $name);\n @return if(sass($min != 0): $min; else: null);\n}\n\n// Maximum breakpoint width for range media queries.\n// Returns the breakpoint value to use as an upper bound in range queries.\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n// >> breakpoint-max(xxl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// null\n@function breakpoint-max($name, $breakpoints: $breakpoints) {\n @if $name == null {\n @return null;\n }\n $max: map.get($breakpoints, $name);\n @return if(sass($max and $max > 0): $max; else: null);\n}\n\n// Escape a name for use at the start of a CSS identifier.\n// Leading digits are hex-escaped (e.g., 2xl becomes \\32 xl).\n@function css-escape-ident($name) {\n $name-str: \"#{$name}\";\n $digits: \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\";\n $first: string.slice($name-str, 1, 1);\n\n @if list.index($digits, $first) {\n @return \"\\\\3#{$first} #{string.slice($name-str, 2)}\";\n }\n\n @return $name-str;\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name\n// with an escaped colon as a Tailwind-style prefix for responsive class names.\n// Leading digits are CSS-escaped (e.g., 2xl becomes \\32 xl) for valid identifiers.\n//\n// >> breakpoint-prefix(xs, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\" (Returns a blank string)\n// >> breakpoint-prefix(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"sm\\:\"\n// >> breakpoint-prefix(2xl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\\32 xl\\:\"\n@function breakpoint-prefix($name, $breakpoints: $breakpoints) {\n @if breakpoint-min($name, $breakpoints) == null {\n @return \"\";\n }\n\n @return \"#{css-escape-ident($name)}\\\\:\";\n}\n\n// Iterate all breakpoints and provide the current name and prefix.\n//\n// @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-up($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n @content($breakpoint, $prefix);\n }\n}\n\n// Iterate all breakpoints and provide the current name, next name, and next prefix.\n//\n// @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-down($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $next: breakpoint-next($breakpoint, $breakpoints);\n $prefix: breakpoint-prefix($next, $breakpoints);\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Backwards-compatible alias for next/down breakpoint loops.\n@mixin loop-breakpoints($breakpoints: $breakpoints) {\n @include loop-breakpoints-down($breakpoints) using ($breakpoint, $next, $prefix) {\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (width >= $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (width < $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n\n\n// Container queries\n//\n// Container queries allow elements to respond to the size of a containing element\n// rather than the viewport. These mixins mirror the media-breakpoint-* mixins above.\n//\n// scss-docs-start container-query-mixins\n\n// Set an element as a query container.\n//\n// @include set-container(); // container-type: inline-size\n// @include set-container(size); // container-type: size\n// @include set-container(inline-size, sidebar); // container: sidebar / inline-size\n//\n@mixin set-container($type: inline-size, $name: null) {\n @if $name {\n container: #{$name} / #{$type};\n } @else {\n container-type: #{$type};\n }\n}\n\n// Container query of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider within the container.\n//\n// @include container-breakpoint-up(md) { ... }\n// @include container-breakpoint-up(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-up($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower within the container.\n//\n// @include container-breakpoint-down(lg) { ... }\n// @include container-breakpoint-down(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-down($name, $container-name: null, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @if $container-name {\n @container #{$container-name} (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width < #{$max}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints within the container.\n//\n// @include container-breakpoint-between(md, xl) { ... }\n// @include container-breakpoint-between(md, xl, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-between($lower, $upper, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($lower, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($upper, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n\n// Container query between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint within the container.\n//\n// @include container-breakpoint-only(md) { ... }\n// @include container-breakpoint-only(md, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-only($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($name, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($next, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n// scss-docs-end container-query-mixins\n","@use \"../layout/breakpoints\" as *;\n\n@layer helpers {\n // scss-docs-start stacks\n .stack-container {\n @include set-container();\n }\n\n [class*=\"hstack\"],\n [class*=\"vstack\"] {\n display: flex;\n flex: var(--stack-flex, 1 1 auto);\n flex-direction: var(--stack-direction, row);\n align-items: var(--stack-align-items, center);\n align-self: var(--stack-align-self, stretch);\n }\n\n @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n .#{$prefix}vstack {\n @include container-breakpoint-up($breakpoint) {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n .#{$prefix}hstack {\n @include container-breakpoint-up($breakpoint) {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n }\n // scss-docs-end stacks\n}\n","@use \"../theme\" as *;\n\n// Generate theme modifier classes (e.g., .theme-primary, .theme-accent, etc.)\n@layer helpers {\n @include generate-theme-classes();\n}\n","@use \"sass:map\";\n\n@function theme-color-values($key) {\n $result: ();\n\n @each $color-name, $color-map in $theme-colors {\n @if map.has-key($color-map, $key) {\n $result: map.merge($result, ($color-name: map.get($color-map, $key)));\n }\n }\n\n @return $result;\n}\n\n// Themes map sub-keys\n//\n// Return var() references to root tokens instead of raw values.\n// Ex: theme-color-refs(\"bg\") => (primary: var(--primary-bg), accent: var(--accent-bg), ...)\n@function theme-color-refs($key) {\n $result: ();\n\n @each $color-name, $color-map in $theme-colors {\n @if map.has-key($color-map, $key) {\n $result: map.merge($result, ($color-name: var(--#{$color-name}-#{$key})));\n }\n }\n\n @return $result;\n}\n\n// Theme token to root tokens\n//\n// Returns the global :root token reference for a given a given token map, prefix, and key.\n// Ex: theme-token-refs($theme-bgs, \"bg\") => (body: var(--bg-body), 1: var(--bg-1), ...)\n// Skips `inherit` since it's a CSS-wide keyword that can't be stored in a custom property.\n@function theme-token-refs($map, $prefix) {\n $result: ();\n\n @each $key, $value in $map {\n @if $value != inherit {\n $result: map.merge($result, ($key: var(--#{$prefix}-#{$key})));\n }\n }\n\n @return $result;\n}\n\n// Generate opacity values using color-mix()\n@function theme-opacity-values($color-var, $opacities: $util-opacity) {\n $result: ();\n\n @each $key, $value in $opacities {\n @if $key == 100 {\n // For 100%, use direct variable reference (more efficient)\n $result: map.merge($result, ($key: var($color-var)));\n } @else {\n // For other values, use color-mix()\n $percentage: $key * 1%;\n $result: map.merge($result, ($key: color-mix(in oklch, var($color-var) $percentage, transparent)));\n }\n }\n\n @return $result;\n}\n\n// Generate theme classes dynamically based on the keys in each theme color map\n@mixin generate-theme-classes() {\n @each $color-name, $color-map in $theme-colors {\n .theme-#{$color-name} {\n @each $key, $value in $color-map {\n --theme-#{$key}: var(--#{$color-name}-#{$key});\n }\n }\n }\n}\n\n// scss-docs-start theme-colors\n$theme-colors: (\n \"primary\": (\n \"base\": var(--blue-500),\n \"fg\": light-dark(var(--blue-600), var(--blue-400)),\n \"fg-emphasis\": light-dark(var(--blue-800), var(--blue-200)),\n \"bg\": var(--blue-500),\n \"bg-subtle\": light-dark(var(--blue-100), var(--blue-900)),\n \"bg-muted\": light-dark(var(--blue-200), var(--blue-800)),\n \"border\": light-dark(var(--blue-300), var(--blue-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"accent\": (\n \"base\": var(--indigo-500),\n \"fg\": light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300))),\n \"fg-emphasis\": light-dark(var(--indigo-800), var(--indigo-300)),\n \"bg\": var(--indigo-500),\n \"bg-subtle\": light-dark(var(--indigo-100), var(--indigo-900)),\n \"bg-muted\": light-dark(var(--indigo-200), var(--indigo-800)),\n \"border\": light-dark(var(--indigo-300), var(--indigo-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"success\": (\n \"base\": var(--green-500),\n \"fg\": light-dark(var(--green-600), var(--green-400)),\n \"fg-emphasis\": light-dark(var(--green-800), var(--green-300)),\n \"bg\": var(--green-500),\n \"bg-subtle\": light-dark(var(--green-100), var(--green-900)),\n \"bg-muted\": light-dark(var(--green-200), var(--green-800)),\n \"border\": light-dark(var(--green-300), var(--green-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"danger\": (\n \"base\": var(--red-500),\n \"fg\": light-dark(var(--red-600), var(--red-400)),\n \"fg-emphasis\": light-dark(var(--red-800), var(--red-300)),\n \"bg\": var(--red-500),\n \"bg-subtle\": light-dark(var(--red-100), var(--red-900)),\n \"bg-muted\": light-dark(var(--red-200), var(--red-800)),\n \"border\": light-dark(var(--red-300), var(--red-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"warning\": (\n \"base\": var(--yellow-500),\n \"fg\": light-dark(var(--yellow-700), var(--yellow-400)),\n \"fg-emphasis\": light-dark(var(--yellow-800), var(--yellow-300)),\n \"bg\": var(--yellow-500),\n \"bg-subtle\": light-dark(var(--yellow-100), var(--yellow-900)),\n \"bg-muted\": light-dark(var(--yellow-200), var(--yellow-800)),\n \"border\": light-dark(var(--yellow-300), var(--yellow-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body))),\n \"contrast\": var(--gray-900)\n ),\n \"info\": (\n \"base\": var(--cyan-500),\n \"fg\": light-dark(var(--cyan-600), var(--cyan-400)),\n \"fg-emphasis\": light-dark(var(--cyan-800), var(--cyan-300)),\n \"bg\": var(--cyan-500),\n \"bg-subtle\": light-dark(var(--cyan-100), var(--cyan-900)),\n \"bg-muted\": light-dark(var(--cyan-200), var(--cyan-800)),\n \"border\": light-dark(var(--cyan-300), var(--cyan-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body))),\n \"contrast\": var(--gray-900)\n ),\n \"inverse\": (\n \"base\": var(--gray-900),\n \"fg\": light-dark(var(--gray-900), var(--gray-200)),\n \"fg-emphasis\": light-dark(var(--gray-975), var(--white)),\n \"bg\": light-dark(var(--gray-900), var(--gray-025)),\n \"bg-subtle\": light-dark(var(--gray-100), var(--gray-900)),\n \"bg-muted\": light-dark(var(--gray-200), var(--gray-300)),\n \"border\": light-dark(var(--gray-400), var(--gray-100)),\n \"focus-ring\": color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body)),\n \"contrast\": light-dark(var(--white), var(--gray-900))\n ),\n \"secondary\": (\n \"base\": var(--gray-200),\n \"fg\": light-dark(var(--gray-600), var(--gray-400)),\n \"fg-emphasis\": light-dark(var(--gray-800), var(--gray-200)),\n \"bg\": light-dark(var(--gray-100), var(--gray-600)),\n \"bg-subtle\": light-dark(var(--gray-050), var(--gray-800)),\n \"bg-muted\": light-dark(var(--gray-100), var(--gray-700)),\n \"border\": light-dark(var(--gray-300), var(--gray-600)),\n \"focus-ring\": color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body)),\n \"contrast\": light-dark(var(--gray-900), var(--white))\n )\n) !default;\n// scss-docs-end theme-colors\n\n// mdo-do: consider using muted, subtle, ghost or something instead of linear scale?\n$theme-bgs: (\n \"body\": light-dark(var(--white), var(--gray-975)),\n \"1\": light-dark(var(--gray-025), var(--gray-950)),\n \"2\": light-dark(var(--gray-050), var(--gray-900)),\n \"3\": light-dark(var(--gray-100), var(--gray-800)),\n \"4\": light-dark(var(--gray-200), var(--gray-700)),\n \"fg\": var(--fg-body),\n \"white\": var(--white),\n \"black\": var(--black),\n \"transparent\": transparent,\n \"inherit\": inherit,\n) !default;\n\n$theme-fgs: (\n \"body\": light-dark(var(--gray-900), var(--gray-050)),\n \"1\": light-dark(var(--gray-800), var(--gray-200)),\n \"2\": light-dark(var(--gray-700), var(--gray-300)),\n \"3\": light-dark(var(--gray-600), var(--gray-500)),\n \"4\": light-dark(var(--gray-500), var(--gray-600)),\n \"bg\": var(--bg-body),\n \"white\": var(--white),\n \"black\": var(--black),\n \"inherit\": inherit,\n) !default;\n\n$theme-borders: (\n \"bg\": var(--bg-body),\n \"body\": light-dark(var(--gray-300), var(--gray-800)),\n \"muted\": light-dark(var(--gray-200), var(--gray-800)),\n \"subtle\": light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-900)),\n \"emphasized\": light-dark(var(--gray-400), var(--gray-600)),\n \"white\": var(--white),\n \"black\": var(--black),\n) !default;\n\n$util-opacity: (\n 10: .1,\n 20: .2,\n 30: .3,\n 40: .4,\n 50: .5,\n 60: .6,\n 70: .7,\n 80: .8,\n 90: .9,\n 100: 1\n) !default;\n","@use \"../mixins/visually-hidden\" as *;\n\n@layer helpers {\n .visually-hidden,\n .visually-hidden-focusable:not(:focus, :focus-within) {\n @include visually-hidden();\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Hide content visually while keeping it accessible to assistive technologies\n//\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin visually-hidden() {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n\n // Fix for positioned table caption that could become anonymous cells\n &:not(caption) {\n position: absolute !important;\n }\n\n // Fix to prevent overflowing children to become focusable\n * {\n overflow: hidden !important;\n }\n}\n\n// Use to only display content when it's focused, or one of its child elements is focused\n// (i.e. when focus is within the element/container that the class was applied to)\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/WAI/WCAG22/Techniques/general/G1.html\n\n@mixin visually-hidden-focusable() {\n &:not(:focus, :focus-within) {\n @include visually-hidden();\n }\n}\n","@use \"../config\" as *;\n\n@layer helpers {\n .stretched-link {\n &::#{$stretched-link-pseudo-element} {\n position: absolute;\n inset: 0;\n z-index: $stretched-link-z-index;\n content: \"\";\n }\n }\n}\n","@use \"../mixins/text-truncate\" as *;\n\n@layer helpers {\n .text-truncate {\n @include text-truncate();\n }\n}\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","@layer helpers {\n .vr {\n display: inline-block;\n align-self: stretch;\n width: var(--vr-border-width, var(--border-width));\n min-height: 1em;\n background-color: var(--border-color);\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/utilities\" as *;\n@use \"../utilities\" as *;\n\n@layer utilities {\n @include generate-utilities-loop($utilities, $breakpoints);\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"../layout/breakpoints\" as bp;\n\n// Utility generator\n\n// - Utilities can use three different types of selectors:\n// - class: .class\n// - attr-starts: [class^=\"class\"]\n// - attr-includes: [class*=\"class\"]\n// - Utilities can target children via `child-selector`, wrapped in :where() for zero specificity\n// - Utilities can generate regular CSS properties and CSS custom properties\n// - Utilities can be responsive or not\n// - Utilities can have state variants (e.g., hover, focus, active)\n// - Utilities can define local CSS variables\n//\n// CSS custom properties can be generated in two ways:\n//\n// 1. Property map with null values (CSS var receives the utility value):\n// \"bg-color\": (\n// property: (\n// \"--bg\": null,\n// \"background-color\": var(--bg)\n// ),\n// class: bg,\n// values: (\n// primary: var(--blue-500),\n// )\n// )\n// Generates:\n// .bg-primary {\n// --bs-bg: var(--bs-blue-500);\n// background-color: var(--bs-bg);\n// }\n//\n// 2. Variables map (static CSS custom properties on every class):\n// \"link-underline\": (\n// property: text-decoration-color,\n// class: link-underline,\n// variables: (\n// \"link-underline-opacity\": 1\n// ),\n// values: (...)\n// )\n// Generates:\n// .link-underline {\n// --bs-link-underline-opacity: 1;\n// text-decoration-color: ...;\n// }\n\n// Helper mixin to emit CSS custom properties from a utility's `variables` key.\n// When variables is a map, the provided static values are used on each class.\n// When variables is a list or single identifier, each variable receives the current utility value.\n@mixin generate-variables($utility, $value) {\n @if map.has-key($utility, variables) {\n $variables: map.get($utility, variables);\n @if meta.type-of($variables) == \"map\" {\n @each $var-key, $var-value in $variables {\n --#{$var-key}: #{$var-value};\n }\n } @else {\n // Treat as a list (or single identifier) — each variable gets the utility value\n @each $var-name in $variables {\n --#{$var-name}: #{$value};\n }\n }\n }\n}\n\n// Helper mixin to generate CSS properties for both legacy and property map approaches\n@mixin generate-properties($utility, $property-map, $properties, $value) {\n @if $property-map != null {\n // Property-Value Mapping approach\n @each $property, $default-value in $property-map {\n // If value is a map, check if it has a key for this property.\n // Otherwise, use default-value (or $value if default-value is null).\n $actual-value: $default-value;\n @if meta.type-of($value) == \"map\" and map.has-key($value, $property) {\n $actual-value: map.get($value, $property);\n } @else if $default-value == null {\n $actual-value: $value;\n }\n @if map.get($utility, important) {\n #{$property}: $actual-value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $actual-value;\n }\n }\n } @else {\n // Legacy approach\n @each $property in $properties {\n @if map.get($utility, important) {\n #{$property}: $value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $value;\n }\n }\n }\n}\n\n@mixin generate-utility($utility, $prefix: \"\") {\n // Validate required keys\n @if not map.has-key($utility, property) {\n @error \"Utility is missing required `property` key: #{$utility}\";\n }\n @if not map.has-key($utility, values) {\n @error \"Utility is missing required `values` key: #{$utility}\";\n }\n\n // Warn on unknown keys (likely typos)\n $valid-keys: property, values, class, selector, responsive, print, dark, important, state, variables, child-selector, enabled;\n @each $key in map.keys($utility) {\n @if not list.index($valid-keys, $key) {\n @warn \"Unknown utility key `#{$key}` found. Valid keys are: #{$valid-keys}\";\n }\n }\n\n // Validate boolean keys\n @each $bool-key in (responsive, print, dark, important, enabled) {\n @if map.has-key($utility, $bool-key) {\n $val: map.get($utility, $bool-key);\n @if $val != true and $val != false {\n @error \"Utility key `#{$bool-key}` should be a boolean (true or false), got: #{$val}\";\n }\n }\n }\n\n // Determine if we're generating a class, or an attribute selector\n $selector-type: \"class\";\n @if map.has-key($utility, selector) {\n $selector-type: map.get($utility, selector);\n // Validate selector type\n $valid-selectors: \"class\", \"attr-starts\", \"attr-includes\";\n @if not list.index($valid-selectors, $selector-type) {\n @error \"Invalid `selector` value `#{$selector-type}`. Must be one of: #{$valid-selectors}\";\n }\n }\n // Then get the class name to use in a class (e.g., .class) or in an attribute selector (e.g., [class^=\"class\"])\n $selector-class: map.get($utility, class);\n\n // Attribute selectors require a `class` key\n @if $selector-type != \"class\" and not map.has-key($utility, class) {\n @error \"Utility with `selector: #{$selector-type}` requires a `class` key.\";\n }\n\n // Get the list or map of values and ensure it's a map\n $values: map.get($utility, values);\n @if meta.type-of($values) != \"map\" {\n @if meta.type-of($values) == \"list\" {\n $list: ();\n @each $value in $values {\n $list: map.merge($list, ($value: $value));\n }\n $values: $list;\n } @else {\n $values: (null: $values);\n }\n }\n\n @each $key, $value in $values {\n $properties: map.get($utility, property);\n $property-map: null;\n $custom-class: \"\";\n\n // Check if property is a map (Property-Value Mapping approach)\n @if meta.type-of($properties) == \"map\" {\n $property-map: $properties;\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n }\n } @else {\n // Legacy approach: multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if meta.type-of($properties) == \"string\" {\n $properties: list.append((), $properties);\n }\n // Use custom class if present, otherwise use the first value from the list of properties\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n } @else {\n $custom-class: list.nth($properties, 1);\n }\n @if $custom-class == null {\n $custom-class: \"\";\n }\n }\n\n // State params to generate state variants\n $state: ();\n @if map.has-key($utility, state) {\n $state: map.get($utility, state);\n }\n\n // Don't add a dash before value key if value key is null (e.g. with shadow class)\n $custom-class-modifier: \"\";\n @if $key {\n @if $custom-class == \"\" {\n $custom-class-modifier: $key;\n } @else {\n $custom-class-modifier: \"-\" + $key;\n }\n }\n\n // Build the class name fragment (without prefix or dot) for reuse in state variants\n $class-name: \"\";\n @if $selector-type == \"class\" {\n @if $custom-class != \"\" {\n $class-name: $custom-class + $custom-class-modifier;\n } @else if $selector-class != null and $selector-class != \"\" {\n $class-name: $selector-class + $custom-class-modifier;\n } @else {\n $class-name: $custom-class-modifier;\n }\n }\n\n $selector: \"\";\n @if $selector-type == \"class\" {\n $selector: \".#{$prefix + $class-name}\";\n } @else if $selector-type == \"attr-starts\" {\n $selector: \"[class^=\\\"#{$selector-class}\\\"]\";\n } @else if $selector-type == \"attr-includes\" {\n $selector: \"[class*=\\\"#{$selector-class}\\\"]\";\n }\n\n // Apply child-selector wrapping if present (wraps in :where() for zero specificity)\n $child-sel: null;\n @if map.has-key($utility, child-selector) {\n $child-sel: map.get($utility, child-selector);\n }\n\n $final-selector: $selector;\n @if $child-sel {\n $final-selector: \":where(#{$selector} #{$child-sel})\";\n }\n\n #{$final-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n\n // Generate state variants (e.g., hover:link-10 instead of link-10-hover)\n @if $state != () {\n @each $state-variant in $state {\n $state-selector: \".#{$prefix}#{$state-variant}\\\\:#{$class-name}:#{$state-variant}\";\n @if $child-sel {\n $state-selector: \":where(#{$state-selector} #{$child-sel})\";\n }\n\n #{$state-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n }\n }\n }\n}\n\n// Generates all utility classes: base, responsive, print, and dark.\n// Extracted so that tests can call this mixin directly with a custom $utilities map\n// rather than having to mirror the loop conditions inline.\n@mixin generate-utilities-loop($utilities, $breakpoints) {\n // Base + responsive (one pass per breakpoint)\n @each $breakpoint in map.keys($breakpoints) {\n @include bp.media-breakpoint-up($breakpoint, $breakpoints) {\n $prefix: bp.breakpoint-prefix($breakpoint, $breakpoints);\n\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and (map.get($utility, responsive) or $prefix == \"\") {\n @include generate-utility($utility, $prefix);\n }\n }\n }\n }\n\n // Print utilities\n @media print {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, print) == true {\n @include generate-utility($utility, \"print\\\\:\");\n }\n }\n }\n\n // Dark utilities\n @media (prefers-color-scheme: dark) {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, dark) == true {\n @include generate-utility($utility, \"dark\\\\:\");\n }\n }\n }\n}\n"]}
\ No newline at end of file
"fg-4",
"fg-bg",
"fg-white",
- "fg-black"
+ "fg-black",
+ "fg-reset"
]
},
"fg-emphasis": {
* Copyright 2011-2026 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
-:root{--bs-blue-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .24 240));--bs-blue-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .24 240));--bs-blue-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .24 240));--bs-blue-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .24 240));--bs-blue-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .24 240));--bs-blue-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .24 240));--bs-blue-500:oklch(60% .24 240);--bs-blue-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .24 240));--bs-blue-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .24 240));--bs-blue-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .24 240));--bs-blue-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .24 240));--bs-blue-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .24 240));--bs-blue-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .24 240));--bs-indigo-025:color-mix(in lab, var(--bs-white) 94%, oklch(56% .26 288));--bs-indigo-050:color-mix(in lab, var(--bs-white) 90%, oklch(56% .26 288));--bs-indigo-100:color-mix(in lab, var(--bs-white) 80%, oklch(56% .26 288));--bs-indigo-200:color-mix(in lab, var(--bs-white) 60%, oklch(56% .26 288));--bs-indigo-300:color-mix(in lab, var(--bs-white) 40%, oklch(56% .26 288));--bs-indigo-400:color-mix(in lab, var(--bs-white) 20%, oklch(56% .26 288));--bs-indigo-500:oklch(56% .26 288);--bs-indigo-600:color-mix(in lab, var(--bs-black) 16%, oklch(56% .26 288));--bs-indigo-700:color-mix(in lab, var(--bs-black) 32%, oklch(56% .26 288));--bs-indigo-800:color-mix(in lab, var(--bs-black) 48%, oklch(56% .26 288));--bs-indigo-900:color-mix(in lab, var(--bs-black) 64%, oklch(56% .26 288));--bs-indigo-950:color-mix(in lab, var(--bs-black) 76%, oklch(56% .26 288));--bs-indigo-975:color-mix(in lab, var(--bs-black) 88%, oklch(56% .26 288));--bs-violet-025:color-mix(in lab, var(--bs-white) 94%, oklch(56% .24 300));--bs-violet-050:color-mix(in lab, var(--bs-white) 90%, oklch(56% .24 300));--bs-violet-100:color-mix(in lab, var(--bs-white) 80%, oklch(56% .24 300));--bs-violet-200:color-mix(in lab, var(--bs-white) 60%, oklch(56% .24 300));--bs-violet-300:color-mix(in lab, var(--bs-white) 40%, oklch(56% .24 300));--bs-violet-400:color-mix(in lab, var(--bs-white) 20%, oklch(56% .24 300));--bs-violet-500:oklch(56% .24 300);--bs-violet-600:color-mix(in lab, var(--bs-black) 16%, oklch(56% .24 300));--bs-violet-700:color-mix(in lab, var(--bs-black) 32%, oklch(56% .24 300));--bs-violet-800:color-mix(in lab, var(--bs-black) 48%, oklch(56% .24 300));--bs-violet-900:color-mix(in lab, var(--bs-black) 64%, oklch(56% .24 300));--bs-violet-950:color-mix(in lab, var(--bs-black) 76%, oklch(56% .24 300));--bs-violet-975:color-mix(in lab, var(--bs-black) 88%, oklch(56% .24 300));--bs-purple-025:color-mix(in lab, var(--bs-white) 94%, oklch(56% .24 320));--bs-purple-050:color-mix(in lab, var(--bs-white) 90%, oklch(56% .24 320));--bs-purple-100:color-mix(in lab, var(--bs-white) 80%, oklch(56% .24 320));--bs-purple-200:color-mix(in lab, var(--bs-white) 60%, oklch(56% .24 320));--bs-purple-300:color-mix(in lab, var(--bs-white) 40%, oklch(56% .24 320));--bs-purple-400:color-mix(in lab, var(--bs-white) 20%, oklch(56% .24 320));--bs-purple-500:oklch(56% .24 320);--bs-purple-600:color-mix(in lab, var(--bs-black) 16%, oklch(56% .24 320));--bs-purple-700:color-mix(in lab, var(--bs-black) 32%, oklch(56% .24 320));--bs-purple-800:color-mix(in lab, var(--bs-black) 48%, oklch(56% .24 320));--bs-purple-900:color-mix(in lab, var(--bs-black) 64%, oklch(56% .24 320));--bs-purple-950:color-mix(in lab, var(--bs-black) 76%, oklch(56% .24 320));--bs-purple-975:color-mix(in lab, var(--bs-black) 88%, oklch(56% .24 320));--bs-pink-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .22 4));--bs-pink-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .22 4));--bs-pink-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .22 4));--bs-pink-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .22 4));--bs-pink-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .22 4));--bs-pink-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .22 4));--bs-pink-500:oklch(60% .22 4);--bs-pink-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .22 4));--bs-pink-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .22 4));--bs-pink-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .22 4));--bs-pink-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .22 4));--bs-pink-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .22 4));--bs-pink-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .22 4));--bs-red-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .22 20));--bs-red-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .22 20));--bs-red-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .22 20));--bs-red-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .22 20));--bs-red-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .22 20));--bs-red-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .22 20));--bs-red-500:oklch(60% .22 20);--bs-red-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .22 20));--bs-red-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .22 20));--bs-red-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .22 20));--bs-red-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .22 20));--bs-red-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .22 20));--bs-red-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .22 20));--bs-orange-025:color-mix(in lab, var(--bs-white) 94%, oklch(70% .22 52));--bs-orange-050:color-mix(in lab, var(--bs-white) 90%, oklch(70% .22 52));--bs-orange-100:color-mix(in lab, var(--bs-white) 80%, oklch(70% .22 52));--bs-orange-200:color-mix(in lab, var(--bs-white) 60%, oklch(70% .22 52));--bs-orange-300:color-mix(in lab, var(--bs-white) 40%, oklch(70% .22 52));--bs-orange-400:color-mix(in lab, var(--bs-white) 20%, oklch(70% .22 52));--bs-orange-500:oklch(70% .22 52);--bs-orange-600:color-mix(in lab, var(--bs-black) 16%, oklch(70% .22 52));--bs-orange-700:color-mix(in lab, var(--bs-black) 32%, oklch(70% .22 52));--bs-orange-800:color-mix(in lab, var(--bs-black) 48%, oklch(70% .22 52));--bs-orange-900:color-mix(in lab, var(--bs-black) 64%, oklch(70% .22 52));--bs-orange-950:color-mix(in lab, var(--bs-black) 76%, oklch(70% .22 52));--bs-orange-975:color-mix(in lab, var(--bs-black) 88%, oklch(70% .22 52));--bs-amber-025:color-mix(in lab, var(--bs-white) 94%, oklch(79% .2 78));--bs-amber-050:color-mix(in lab, var(--bs-white) 90%, oklch(79% .2 78));--bs-amber-100:color-mix(in lab, var(--bs-white) 80%, oklch(79% .2 78));--bs-amber-200:color-mix(in lab, var(--bs-white) 60%, oklch(79% .2 78));--bs-amber-300:color-mix(in lab, var(--bs-white) 40%, oklch(79% .2 78));--bs-amber-400:color-mix(in lab, var(--bs-white) 20%, oklch(79% .2 78));--bs-amber-500:oklch(79% .2 78);--bs-amber-600:color-mix(in lab, var(--bs-black) 16%, oklch(79% .2 78));--bs-amber-700:color-mix(in lab, var(--bs-black) 32%, oklch(79% .2 78));--bs-amber-800:color-mix(in lab, var(--bs-black) 48%, oklch(79% .2 78));--bs-amber-900:color-mix(in lab, var(--bs-black) 64%, oklch(79% .2 78));--bs-amber-950:color-mix(in lab, var(--bs-black) 76%, oklch(79% .2 78));--bs-amber-975:color-mix(in lab, var(--bs-black) 88%, oklch(79% .2 78));--bs-yellow-025:color-mix(in lab, var(--bs-white) 94%, oklch(88% .24 88));--bs-yellow-050:color-mix(in lab, var(--bs-white) 90%, oklch(88% .24 88));--bs-yellow-100:color-mix(in lab, var(--bs-white) 80%, oklch(88% .24 88));--bs-yellow-200:color-mix(in lab, var(--bs-white) 60%, oklch(88% .24 88));--bs-yellow-300:color-mix(in lab, var(--bs-white) 40%, oklch(88% .24 88));--bs-yellow-400:color-mix(in lab, var(--bs-white) 20%, oklch(88% .24 88));--bs-yellow-500:oklch(88% .24 88);--bs-yellow-600:color-mix(in lab, var(--bs-black) 16%, oklch(88% .24 88));--bs-yellow-700:color-mix(in lab, var(--bs-black) 32%, oklch(88% .24 88));--bs-yellow-800:color-mix(in lab, var(--bs-black) 48%, oklch(88% .24 88));--bs-yellow-900:color-mix(in lab, var(--bs-black) 64%, oklch(88% .24 88));--bs-yellow-950:color-mix(in lab, var(--bs-black) 76%, oklch(88% .24 88));--bs-yellow-975:color-mix(in lab, var(--bs-black) 88%, oklch(88% .24 88));--bs-lime-025:color-mix(in lab, var(--bs-white) 94%, oklch(65% .24 135));--bs-lime-050:color-mix(in lab, var(--bs-white) 90%, oklch(65% .24 135));--bs-lime-100:color-mix(in lab, var(--bs-white) 80%, oklch(65% .24 135));--bs-lime-200:color-mix(in lab, var(--bs-white) 60%, oklch(65% .24 135));--bs-lime-300:color-mix(in lab, var(--bs-white) 40%, oklch(65% .24 135));--bs-lime-400:color-mix(in lab, var(--bs-white) 20%, oklch(65% .24 135));--bs-lime-500:oklch(65% .24 135);--bs-lime-600:color-mix(in lab, var(--bs-black) 16%, oklch(65% .24 135));--bs-lime-700:color-mix(in lab, var(--bs-black) 32%, oklch(65% .24 135));--bs-lime-800:color-mix(in lab, var(--bs-black) 48%, oklch(65% .24 135));--bs-lime-900:color-mix(in lab, var(--bs-black) 64%, oklch(65% .24 135));--bs-lime-950:color-mix(in lab, var(--bs-black) 76%, oklch(65% .24 135));--bs-lime-975:color-mix(in lab, var(--bs-black) 88%, oklch(65% .24 135));--bs-green-025:color-mix(in lab, var(--bs-white) 94%, oklch(64% .22 160));--bs-green-050:color-mix(in lab, var(--bs-white) 90%, oklch(64% .22 160));--bs-green-100:color-mix(in lab, var(--bs-white) 80%, oklch(64% .22 160));--bs-green-200:color-mix(in lab, var(--bs-white) 60%, oklch(64% .22 160));--bs-green-300:color-mix(in lab, var(--bs-white) 40%, oklch(64% .22 160));--bs-green-400:color-mix(in lab, var(--bs-white) 20%, oklch(64% .22 160));--bs-green-500:oklch(64% .22 160);--bs-green-600:color-mix(in lab, var(--bs-black) 16%, oklch(64% .22 160));--bs-green-700:color-mix(in lab, var(--bs-black) 32%, oklch(64% .22 160));--bs-green-800:color-mix(in lab, var(--bs-black) 48%, oklch(64% .22 160));--bs-green-900:color-mix(in lab, var(--bs-black) 64%, oklch(64% .22 160));--bs-green-950:color-mix(in lab, var(--bs-black) 76%, oklch(64% .22 160));--bs-green-975:color-mix(in lab, var(--bs-black) 88%, oklch(64% .22 160));--bs-teal-025:color-mix(in lab, var(--bs-white) 94%, oklch(68% .22 190));--bs-teal-050:color-mix(in lab, var(--bs-white) 90%, oklch(68% .22 190));--bs-teal-100:color-mix(in lab, var(--bs-white) 80%, oklch(68% .22 190));--bs-teal-200:color-mix(in lab, var(--bs-white) 60%, oklch(68% .22 190));--bs-teal-300:color-mix(in lab, var(--bs-white) 40%, oklch(68% .22 190));--bs-teal-400:color-mix(in lab, var(--bs-white) 20%, oklch(68% .22 190));--bs-teal-500:oklch(68% .22 190);--bs-teal-600:color-mix(in lab, var(--bs-black) 16%, oklch(68% .22 190));--bs-teal-700:color-mix(in lab, var(--bs-black) 32%, oklch(68% .22 190));--bs-teal-800:color-mix(in lab, var(--bs-black) 48%, oklch(68% .22 190));--bs-teal-900:color-mix(in lab, var(--bs-black) 64%, oklch(68% .22 190));--bs-teal-950:color-mix(in lab, var(--bs-black) 76%, oklch(68% .22 190));--bs-teal-975:color-mix(in lab, var(--bs-black) 88%, oklch(68% .22 190));--bs-cyan-025:color-mix(in lab, var(--bs-white) 94%, oklch(69% .22 220));--bs-cyan-050:color-mix(in lab, var(--bs-white) 90%, oklch(69% .22 220));--bs-cyan-100:color-mix(in lab, var(--bs-white) 80%, oklch(69% .22 220));--bs-cyan-200:color-mix(in lab, var(--bs-white) 60%, oklch(69% .22 220));--bs-cyan-300:color-mix(in lab, var(--bs-white) 40%, oklch(69% .22 220));--bs-cyan-400:color-mix(in lab, var(--bs-white) 20%, oklch(69% .22 220));--bs-cyan-500:oklch(69% .22 220);--bs-cyan-600:color-mix(in lab, var(--bs-black) 16%, oklch(69% .22 220));--bs-cyan-700:color-mix(in lab, var(--bs-black) 32%, oklch(69% .22 220));--bs-cyan-800:color-mix(in lab, var(--bs-black) 48%, oklch(69% .22 220));--bs-cyan-900:color-mix(in lab, var(--bs-black) 64%, oklch(69% .22 220));--bs-cyan-950:color-mix(in lab, var(--bs-black) 76%, oklch(69% .22 220));--bs-cyan-975:color-mix(in lab, var(--bs-black) 88%, oklch(69% .22 220));--bs-brown-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .12 54));--bs-brown-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .12 54));--bs-brown-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .12 54));--bs-brown-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .12 54));--bs-brown-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .12 54));--bs-brown-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .12 54));--bs-brown-500:oklch(60% .12 54);--bs-brown-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .12 54));--bs-brown-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .12 54));--bs-brown-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .12 54));--bs-brown-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .12 54));--bs-brown-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .12 54));--bs-brown-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .12 54));--bs-gray-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .02 245));--bs-gray-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .02 245));--bs-gray-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .02 245));--bs-gray-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .02 245));--bs-gray-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .02 245));--bs-gray-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .02 245));--bs-gray-500:oklch(60% .02 245);--bs-gray-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .02 245));--bs-gray-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .02 245));--bs-gray-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .02 245));--bs-gray-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .02 245));--bs-gray-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .02 245));--bs-gray-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .02 245));--bs-pewter-025:color-mix(in lab, var(--bs-white) 94%, oklch(65% .01 290));--bs-pewter-050:color-mix(in lab, var(--bs-white) 90%, oklch(65% .01 290));--bs-pewter-100:color-mix(in lab, var(--bs-white) 80%, oklch(65% .01 290));--bs-pewter-200:color-mix(in lab, var(--bs-white) 60%, oklch(65% .01 290));--bs-pewter-300:color-mix(in lab, var(--bs-white) 40%, oklch(65% .01 290));--bs-pewter-400:color-mix(in lab, var(--bs-white) 20%, oklch(65% .01 290));--bs-pewter-500:oklch(65% .01 290);--bs-pewter-600:color-mix(in lab, var(--bs-black) 16%, oklch(65% .01 290));--bs-pewter-700:color-mix(in lab, var(--bs-black) 32%, oklch(65% .01 290));--bs-pewter-800:color-mix(in lab, var(--bs-black) 48%, oklch(65% .01 290));--bs-pewter-900:color-mix(in lab, var(--bs-black) 64%, oklch(65% .01 290));--bs-pewter-950:color-mix(in lab, var(--bs-black) 76%, oklch(65% .01 290));--bs-pewter-975:color-mix(in lab, var(--bs-black) 88%, oklch(65% .01 290))}@layer colors,theme,config,root,reboot,layout,content,forms,components,custom;@layer helpers{.focus-ring:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-theme-focus-ring,var(--bs-focus-ring-color))}.icon-link{-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity,.5));text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity,.5));text-underline-offset:.25em;backface-visibility:hidden;align-items:center;gap:.375rem;display:inline-flex}.icon-link>.bi{fill:currentColor;flex-shrink:0;width:1em;height:1em;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em, 0, 0))}.fixed-top{z-index:1030;position:fixed;inset:0 0 auto}.fixed-bottom{z-index:1030;position:fixed;inset:auto 0 0}.sticky-top{z-index:1020;position:sticky;top:0}.sticky-bottom{z-index:1020;position:sticky;bottom:0}@media (min-width:576px){.sm\:sticky-top{z-index:1020;position:sticky;top:0}.sm\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}@media (min-width:768px){.md\:sticky-top{z-index:1020;position:sticky;top:0}.md\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}@media (min-width:1024px){.lg\:sticky-top{z-index:1020;position:sticky;top:0}.lg\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}@media (min-width:1280px){.xl\:sticky-top{z-index:1020;position:sticky;top:0}.xl\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}@media (min-width:1536px){.\32 xl\:sticky-top{z-index:1020;position:sticky;top:0}.\32 xl\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}.stack-container{container-type:inline-size}[class*=hstack],[class*=vstack]{flex:var(--bs-stack-flex,1 1 auto);flex-direction:var(--bs-stack-direction,row);align-items:var(--bs-stack-align-items,center);align-self:var(--bs-stack-align-self,stretch);display:flex}.vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}@container (width>=576px){.sm\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.sm\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}@container (width>=768px){.md\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.md\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}@container (width>=1024px){.lg\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.lg\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}@container (width>=1280px){.xl\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.xl\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}@container (width>=1536px){.\32 xl\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.\32 xl\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}.theme-primary{--bs-theme-base:var(--bs-primary-base);--bs-theme-fg:var(--bs-primary-fg);--bs-theme-fg-emphasis:var(--bs-primary-fg-emphasis);--bs-theme-bg:var(--bs-primary-bg);--bs-theme-bg-subtle:var(--bs-primary-bg-subtle);--bs-theme-bg-muted:var(--bs-primary-bg-muted);--bs-theme-border:var(--bs-primary-border);--bs-theme-focus-ring:var(--bs-primary-focus-ring);--bs-theme-contrast:var(--bs-primary-contrast)}.theme-accent{--bs-theme-base:var(--bs-accent-base);--bs-theme-fg:var(--bs-accent-fg);--bs-theme-fg-emphasis:var(--bs-accent-fg-emphasis);--bs-theme-bg:var(--bs-accent-bg);--bs-theme-bg-subtle:var(--bs-accent-bg-subtle);--bs-theme-bg-muted:var(--bs-accent-bg-muted);--bs-theme-border:var(--bs-accent-border);--bs-theme-focus-ring:var(--bs-accent-focus-ring);--bs-theme-contrast:var(--bs-accent-contrast)}.theme-success{--bs-theme-base:var(--bs-success-base);--bs-theme-fg:var(--bs-success-fg);--bs-theme-fg-emphasis:var(--bs-success-fg-emphasis);--bs-theme-bg:var(--bs-success-bg);--bs-theme-bg-subtle:var(--bs-success-bg-subtle);--bs-theme-bg-muted:var(--bs-success-bg-muted);--bs-theme-border:var(--bs-success-border);--bs-theme-focus-ring:var(--bs-success-focus-ring);--bs-theme-contrast:var(--bs-success-contrast)}.theme-danger{--bs-theme-base:var(--bs-danger-base);--bs-theme-fg:var(--bs-danger-fg);--bs-theme-fg-emphasis:var(--bs-danger-fg-emphasis);--bs-theme-bg:var(--bs-danger-bg);--bs-theme-bg-subtle:var(--bs-danger-bg-subtle);--bs-theme-bg-muted:var(--bs-danger-bg-muted);--bs-theme-border:var(--bs-danger-border);--bs-theme-focus-ring:var(--bs-danger-focus-ring);--bs-theme-contrast:var(--bs-danger-contrast)}.theme-warning{--bs-theme-base:var(--bs-warning-base);--bs-theme-fg:var(--bs-warning-fg);--bs-theme-fg-emphasis:var(--bs-warning-fg-emphasis);--bs-theme-bg:var(--bs-warning-bg);--bs-theme-bg-subtle:var(--bs-warning-bg-subtle);--bs-theme-bg-muted:var(--bs-warning-bg-muted);--bs-theme-border:var(--bs-warning-border);--bs-theme-focus-ring:var(--bs-warning-focus-ring);--bs-theme-contrast:var(--bs-warning-contrast)}.theme-info{--bs-theme-base:var(--bs-info-base);--bs-theme-fg:var(--bs-info-fg);--bs-theme-fg-emphasis:var(--bs-info-fg-emphasis);--bs-theme-bg:var(--bs-info-bg);--bs-theme-bg-subtle:var(--bs-info-bg-subtle);--bs-theme-bg-muted:var(--bs-info-bg-muted);--bs-theme-border:var(--bs-info-border);--bs-theme-focus-ring:var(--bs-info-focus-ring);--bs-theme-contrast:var(--bs-info-contrast)}.theme-inverse{--bs-theme-base:var(--bs-inverse-base);--bs-theme-fg:var(--bs-inverse-fg);--bs-theme-fg-emphasis:var(--bs-inverse-fg-emphasis);--bs-theme-bg:var(--bs-inverse-bg);--bs-theme-bg-subtle:var(--bs-inverse-bg-subtle);--bs-theme-bg-muted:var(--bs-inverse-bg-muted);--bs-theme-border:var(--bs-inverse-border);--bs-theme-focus-ring:var(--bs-inverse-focus-ring);--bs-theme-contrast:var(--bs-inverse-contrast)}.theme-secondary{--bs-theme-base:var(--bs-secondary-base);--bs-theme-fg:var(--bs-secondary-fg);--bs-theme-fg-emphasis:var(--bs-secondary-fg-emphasis);--bs-theme-bg:var(--bs-secondary-bg);--bs-theme-bg-subtle:var(--bs-secondary-bg-subtle);--bs-theme-bg-muted:var(--bs-secondary-bg-muted);--bs-theme-border:var(--bs-secondary-border);--bs-theme-focus-ring:var(--bs-secondary-focus-ring);--bs-theme-contrast:var(--bs-secondary-contrast)}.visually-hidden,.visually-hidden-focusable:not(:focus,:focus-within){clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus,:focus-within):not(caption){position:absolute!important}.visually-hidden *,.visually-hidden-focusable:not(:focus,:focus-within) *{overflow:hidden!important}.stretched-link:after{z-index:1;content:"";position:absolute;inset:0}.text-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vr{width:var(--bs-vr-border-width,var(--bs-border-width));background-color:var(--bs-border-color);align-self:stretch;min-height:1em;display:inline-block}}@layer utilities{.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.align-text-bottom{vertical-align:text-bottom}.align-text-top{vertical-align:text-top}[class*=ratio-]{aspect-ratio:var(--bs-ratio)}.ratio-auto{--bs-ratio:auto}.ratio-1x1{--bs-ratio:1 / 1}.ratio-4x3{--bs-ratio:4 / 3}.ratio-16x9{--bs-ratio:16 / 9}.ratio-21x9{--bs-ratio:21 / 9}.float-start{float:inline-start}.float-end{float:inline-end}.float-none{float:none}.object-fit-contain{-o-object-fit:contain;object-fit:contain}.object-fit-cover{-o-object-fit:cover;object-fit:cover}.object-fit-fill{-o-object-fit:fill;object-fit:fill}.object-fit-scale{-o-object-fit:scale-down;object-fit:scale-down}.object-fit-none{-o-object-fit:none;object-fit:none}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-x-visible{overflow-x:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-y-visible{overflow-y:visible}.overflow-y-scroll{overflow-y:scroll}.contains-inline{container-type:inline-size}.contains-size{container-type:size}.d-inline{display:inline}.d-inline-block{display:inline-block}.d-block{display:block}.d-grid{display:grid}.d-inline-grid{display:inline-grid}.d-table{display:table}.d-table-row{display:table-row}.d-table-cell{display:table-cell}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.d-contents{display:contents}.d-flow-root{display:flow-root}.d-none{display:none}.shadow{box-shadow:var(--bs-box-shadow)}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)}.shadow-none{box-shadow:none}.position-static{position:static}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}.position-sticky{position:sticky}.top-0{top:0}.top-50{top:50%}.top-100{top:100%}.bottom-0{bottom:0}.bottom-50{bottom:50%}.bottom-100{bottom:100%}.start-0{inset-inline-start:0}.start-50{inset-inline-start:50%}.start-100{inset-inline-start:100%}.end-0{inset-inline-end:0}.end-50{inset-inline-end:50%}.end-100{inset-inline-end:100%}.translate-middle{transform:translate(-50%,-50%)}.translate-middle-x{transform:translate(-50%)}.translate-middle-y{transform:translateY(-50%)}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-0{border:0}.border-top{border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-top-0{border-block-start:0}.border-end{border-inline-end:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-end-0{border-inline-end:0}.border-bottom{border-block-end:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-bottom-0{border-block-end:0}.border-start{border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-start-0{border-inline-start:0}.border-y{border-block:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-y-0{border-block:0}.border-x{border-inline:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-x-0{border-inline:0}.border-primary{--bs-border-color:var(--bs-primary-bg);border-color:var(--bs-border-color)}.border-accent{--bs-border-color:var(--bs-accent-bg);border-color:var(--bs-border-color)}.border-success{--bs-border-color:var(--bs-success-bg);border-color:var(--bs-border-color)}.border-danger{--bs-border-color:var(--bs-danger-bg);border-color:var(--bs-border-color)}.border-warning{--bs-border-color:var(--bs-warning-bg);border-color:var(--bs-border-color)}.border-info{--bs-border-color:var(--bs-info-bg);border-color:var(--bs-border-color)}.border-inverse{--bs-border-color:var(--bs-inverse-bg);border-color:var(--bs-border-color)}.border-secondary{--bs-border-color:var(--bs-secondary-bg);border-color:var(--bs-border-color)}.border-bg{--bs-border-color:var(--bs-border-bg);border-color:var(--bs-border-color)}.border-body{--bs-border-color:var(--bs-border-body);border-color:var(--bs-border-color)}.border-muted{--bs-border-color:var(--bs-border-muted);border-color:var(--bs-border-color)}.border-subtle{--bs-border-color:var(--bs-border-subtle);border-color:var(--bs-border-color)}.border-emphasized{--bs-border-color:var(--bs-border-emphasized);border-color:var(--bs-border-color)}.border-white{--bs-border-color:var(--bs-border-white);border-color:var(--bs-border-color)}.border-black{--bs-border-color:var(--bs-border-black);border-color:var(--bs-border-color)}.border-subtle-primary{--bs-border-color:var(--bs-primary-border);border-color:var(--bs-border-color)}.border-subtle-accent{--bs-border-color:var(--bs-accent-border);border-color:var(--bs-border-color)}.border-subtle-success{--bs-border-color:var(--bs-success-border);border-color:var(--bs-border-color)}.border-subtle-danger{--bs-border-color:var(--bs-danger-border);border-color:var(--bs-border-color)}.border-subtle-warning{--bs-border-color:var(--bs-warning-border);border-color:var(--bs-border-color)}.border-subtle-info{--bs-border-color:var(--bs-info-border);border-color:var(--bs-border-color)}.border-subtle-inverse{--bs-border-color:var(--bs-inverse-border);border-color:var(--bs-border-color)}.border-subtle-secondary{--bs-border-color:var(--bs-secondary-border);border-color:var(--bs-border-color)}.border-1{border-width:1px}.border-2{border-width:2px}.border-3{border-width:3px}.border-4{border-width:4px}.border-5{border-width:5px}.border-10{border-color:color-mix(in oklch, var(--bs-border-color) 10%, transparent)}.border-20{border-color:color-mix(in oklch, var(--bs-border-color) 20%, transparent)}.border-30{border-color:color-mix(in oklch, var(--bs-border-color) 30%, transparent)}.border-40{border-color:color-mix(in oklch, var(--bs-border-color) 40%, transparent)}.border-50{border-color:color-mix(in oklch, var(--bs-border-color) 50%, transparent)}.border-60{border-color:color-mix(in oklch, var(--bs-border-color) 60%, transparent)}.border-70{border-color:color-mix(in oklch, var(--bs-border-color) 70%, transparent)}.border-80{border-color:color-mix(in oklch, var(--bs-border-color) 80%, transparent)}.border-90{border-color:color-mix(in oklch, var(--bs-border-color) 90%, transparent)}.border-100{border-color:var(--bs-border-color)}.w-1{width:1rem}.w-2{width:2rem}.w-3{width:3rem}.w-4{width:4rem}.w-5{width:5rem}.w-6{width:6rem}.w-7{width:7rem}.w-8{width:8rem}.w-9{width:9rem}.w-10{width:10rem}.w-11{width:11rem}.w-12{width:12rem}.w-25{width:25%}.w-50{width:50%}.w-75{width:75%}.w-100{width:100%}.w-auto{width:auto}.w-min{width:min-content}.w-max{width:max-content}.w-fit{width:fit-content}.max-w-100{max-width:100%}.min-w-0{min-width:0}.min-w-100{min-width:100%}.vw-100{width:100vw}.min-vw-100{min-width:100vw}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.h-auto{height:auto}.h-min{height:min-content}.h-max{height:max-content}.h-fit{height:fit-content}.max-h-100{max-height:100%}.min-h-0{min-height:0}.min-h-100{min-height:100%}.vh-100{height:100vh}.min-vh-100{min-height:100vh}.flex-fill{flex:auto}.flex-row{flex-direction:row}.flex-column{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-column-reverse{flex-direction:column-reverse}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.justify-content-start{justify-content:flex-start}.justify-content-end{justify-content:flex-end}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.justify-content-around{justify-content:space-around}.justify-content-evenly{justify-content:space-evenly}.justify-items-start{justify-items:start}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.justify-items-stretch{justify-items:stretch}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.align-items-start{align-items:flex-start}.align-items-end{align-items:flex-end}.align-items-center{align-items:center}.align-items-baseline{align-items:baseline}.align-items-stretch{align-items:stretch}.align-content-start{align-content:flex-start}.align-content-end{align-content:flex-end}.align-content-center{align-content:center}.align-content-between{align-content:space-between}.align-content-around{align-content:space-around}.align-content-stretch{align-content:stretch}.align-self-auto{align-self:auto}.align-self-start{align-self:flex-start}.align-self-end{align-self:flex-end}.align-self-center{align-self:center}.align-self-baseline{align-self:baseline}.align-self-stretch{align-self:stretch}.place-items-start{place-items:start}.place-items-end{place-items:end}.place-items-center{place-items:center}.place-items-stretch{place-items:stretch stretch}.grid-cols-1{grid-template-columns:1fr}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.grid-cols-6{grid-template-columns:repeat(6,1fr)}.grid-cols-fill{grid-column:1/-1}.grid-auto-flow-row{grid-auto-flow:row}.grid-auto-flow-column{grid-auto-flow:column}.grid-auto-flow-dense{grid-auto-flow:dense}.order-first{order:-1}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-last{order:6}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-3{margin:.75rem}.m-4{margin:1rem}.m-5{margin:1.25rem}.m-6{margin:1.5rem}.m-7{margin:2rem}.m-8{margin:2.5rem}.m-9{margin:3rem}.m-auto{margin:auto}.mx-0{margin-inline:0}.mx-1{margin-inline:.25rem}.mx-2{margin-inline:.5rem}.mx-3{margin-inline:.75rem}.mx-4{margin-inline:1rem}.mx-5{margin-inline:1.25rem}.mx-6{margin-inline:1.5rem}.mx-7{margin-inline:2rem}.mx-8{margin-inline:2.5rem}.mx-9{margin-inline:3rem}.mx-auto{margin-inline:auto}.my-0{margin-block:0}.my-1{margin-block:.25rem}.my-2{margin-block:.5rem}.my-3{margin-block:.75rem}.my-4{margin-block:1rem}.my-5{margin-block:1.25rem}.my-6{margin-block:1.5rem}.my-7{margin-block:2rem}.my-8{margin-block:2.5rem}.my-9{margin-block:3rem}.my-auto{margin-block:auto}.mt-0{margin-block-start:0}.mt-1{margin-block-start:.25rem}.mt-2{margin-block-start:.5rem}.mt-3{margin-block-start:.75rem}.mt-4{margin-block-start:1rem}.mt-5{margin-block-start:1.25rem}.mt-6{margin-block-start:1.5rem}.mt-7{margin-block-start:2rem}.mt-8{margin-block-start:2.5rem}.mt-9{margin-block-start:3rem}.mt-auto{margin-block-start:auto}.me-0{margin-inline-end:0}.me-1{margin-inline-end:.25rem}.me-2{margin-inline-end:.5rem}.me-3{margin-inline-end:.75rem}.me-4{margin-inline-end:1rem}.me-5{margin-inline-end:1.25rem}.me-6{margin-inline-end:1.5rem}.me-7{margin-inline-end:2rem}.me-8{margin-inline-end:2.5rem}.me-9{margin-inline-end:3rem}.me--1{margin-inline-end:-.25rem}.me--2{margin-inline-end:-.5rem}.me-auto{margin-inline-end:auto}.mb-0{margin-block-end:0}.mb-1{margin-block-end:.25rem}.mb-2{margin-block-end:.5rem}.mb-3{margin-block-end:.75rem}.mb-4{margin-block-end:1rem}.mb-5{margin-block-end:1.25rem}.mb-6{margin-block-end:1.5rem}.mb-7{margin-block-end:2rem}.mb-8{margin-block-end:2.5rem}.mb-9{margin-block-end:3rem}.mb-auto{margin-block-end:auto}.ms-0{margin-inline-start:0}.ms-1{margin-inline-start:.25rem}.ms-2{margin-inline-start:.5rem}.ms-3{margin-inline-start:.75rem}.ms-4{margin-inline-start:1rem}.ms-5{margin-inline-start:1.25rem}.ms-6{margin-inline-start:1.5rem}.ms-7{margin-inline-start:2rem}.ms-8{margin-inline-start:2.5rem}.ms-9{margin-inline-start:3rem}.ms--1{margin-inline-start:-.25rem}.ms--2{margin-inline-start:-.5rem}.ms-auto{margin-inline-start:auto}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:2rem}.p-8{padding:2.5rem}.p-9{padding:3rem}.px-0{padding-inline:0}.px-1{padding-inline:.25rem}.px-2{padding-inline:.5rem}.px-3{padding-inline:.75rem}.px-4{padding-inline:1rem}.px-5{padding-inline:1.25rem}.px-6{padding-inline:1.5rem}.px-7{padding-inline:2rem}.px-8{padding-inline:2.5rem}.px-9{padding-inline:3rem}.py-0{padding-block:0}.py-1{padding-block:.25rem}.py-2{padding-block:.5rem}.py-3{padding-block:.75rem}.py-4{padding-block:1rem}.py-5{padding-block:1.25rem}.py-6{padding-block:1.5rem}.py-7{padding-block:2rem}.py-8{padding-block:2.5rem}.py-9{padding-block:3rem}.pt-0{padding-block-start:0}.pt-1{padding-block-start:.25rem}.pt-2{padding-block-start:.5rem}.pt-3{padding-block-start:.75rem}.pt-4{padding-block-start:1rem}.pt-5{padding-block-start:1.25rem}.pt-6{padding-block-start:1.5rem}.pt-7{padding-block-start:2rem}.pt-8{padding-block-start:2.5rem}.pt-9{padding-block-start:3rem}.pe-0{padding-inline-end:0}.pe-1{padding-inline-end:.25rem}.pe-2{padding-inline-end:.5rem}.pe-3{padding-inline-end:.75rem}.pe-4{padding-inline-end:1rem}.pe-5{padding-inline-end:1.25rem}.pe-6{padding-inline-end:1.5rem}.pe-7{padding-inline-end:2rem}.pe-8{padding-inline-end:2.5rem}.pe-9{padding-inline-end:3rem}.pb-0{padding-block-end:0}.pb-1{padding-block-end:.25rem}.pb-2{padding-block-end:.5rem}.pb-3{padding-block-end:.75rem}.pb-4{padding-block-end:1rem}.pb-5{padding-block-end:1.25rem}.pb-6{padding-block-end:1.5rem}.pb-7{padding-block-end:2rem}.pb-8{padding-block-end:2.5rem}.pb-9{padding-block-end:3rem}.ps-0{padding-inline-start:0}.ps-1{padding-inline-start:.25rem}.ps-2{padding-inline-start:.5rem}.ps-3{padding-inline-start:.75rem}.ps-4{padding-inline-start:1rem}.ps-5{padding-inline-start:1.25rem}.ps-6{padding-inline-start:1.5rem}.ps-7{padding-inline-start:2rem}.ps-8{padding-inline-start:2.5rem}.ps-9{padding-inline-start:3rem}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:2rem}.gap-8{gap:2.5rem}.gap-9{gap:3rem}.row-gap-0{row-gap:0}.row-gap-1{row-gap:.25rem}.row-gap-2{row-gap:.5rem}.row-gap-3{row-gap:.75rem}.row-gap-4{row-gap:1rem}.row-gap-5{row-gap:1.25rem}.row-gap-6{row-gap:1.5rem}.row-gap-7{row-gap:2rem}.row-gap-8{row-gap:2.5rem}.row-gap-9{row-gap:3rem}.column-gap-0{-moz-column-gap:0;column-gap:0}.column-gap-1{-moz-column-gap:.25rem;column-gap:.25rem}.column-gap-2{-moz-column-gap:.5rem;column-gap:.5rem}.column-gap-3{-moz-column-gap:.75rem;column-gap:.75rem}.column-gap-4{-moz-column-gap:1rem;column-gap:1rem}.column-gap-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.column-gap-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.column-gap-7{-moz-column-gap:2rem;column-gap:2rem}.column-gap-8{-moz-column-gap:2.5rem;column-gap:2.5rem}.column-gap-9{-moz-column-gap:3rem;column-gap:3rem}:where(.space-x-0>:not(:last-child)){margin-inline-end:0}:where(.space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.space-y-0>:not(:last-child)){margin-block-end:0}:where(.space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.divide-x-0>:not(:first-child)){border-inline-start:0}:where(.divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.divide-y-0>:not(:first-child)){border-block-start:0}.font-monospace{font-family:var(--bs-font-mono)}.font-body{font-family:var(--bs-body-font-family)}.fs-xs{font-size:.75rem}.fs-sm{font-size:.875rem}.fs-md{font-size:1rem}.fs-lg{font-size:clamp(1.25rem,1rem + .625vw,1.5rem)}.fs-xl{font-size:clamp(1.5rem,1.1rem + .75vw,1.75rem)}.fs-2xl{font-size:clamp(1.75rem,1.3rem + 1vw,2rem)}.fs-3xl{font-size:clamp(2rem,1.5rem + 1.875vw,2.5rem)}.fs-4xl{font-size:clamp(2.25rem,1.75rem + 2.5vw,3rem)}.fs-5xl{font-size:clamp(3rem,2rem + 5vw,4rem)}.fs-6xl{font-size:clamp(3.75rem,2.5rem + 6.25vw,5rem)}.text-xs{font-size:.75rem;line-height:1.25}.text-sm{font-size:.875rem;line-height:1.5}.text-md{font-size:1rem;line-height:1.5}.text-lg{font-size:clamp(1.25rem,1rem + .625vw,1.5rem);line-height:1.5}.text-xl{font-size:clamp(1.5rem,1.1rem + .75vw,1.75rem);line-height:1.42857}.text-2xl{font-size:clamp(1.75rem,1.3rem + 1vw,2rem);line-height:1.33333}.text-3xl{font-size:clamp(2rem,1.5rem + 1.875vw,2.5rem);line-height:1.2}.text-4xl{font-size:clamp(2.25rem,1.75rem + 2.5vw,3rem);line-height:1.1}.text-5xl{font-size:clamp(3rem,2rem + 5vw,4rem);line-height:1.1}.text-6xl{font-size:clamp(3.75rem,2.5rem + 6.25vw,5rem);line-height:1}.fst-italic{font-style:italic}.fst-normal{font-style:normal}.fw-lighter{font-weight:lighter}.fw-light{font-weight:300}.fw-normal{font-weight:400}.fw-medium{font-weight:500}.fw-semibold{font-weight:600}.fw-bold{font-weight:700}.fw-bolder{font-weight:bolder}.lh-1{line-height:1}.lh-sm{line-height:1.25}.lh-base{line-height:1.5}.lh-lg{line-height:2}.text-start{text-align:start}.text-end{text-align:end}.text-center{text-align:center}.text-decoration-none{text-decoration:none}.text-decoration-underline{text-decoration:underline}.text-decoration-line-through{text-decoration:line-through}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-wrap{text-wrap:wrap}.text-nowrap{text-wrap:nowrap}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.text-break{word-wrap:break-word;word-break:break-word}.fg-primary{--bs-fg:var(--bs-primary-fg);color:var(--bs-fg)}.fg-accent{--bs-fg:var(--bs-accent-fg);color:var(--bs-fg)}.fg-success{--bs-fg:var(--bs-success-fg);color:var(--bs-fg)}.fg-danger{--bs-fg:var(--bs-danger-fg);color:var(--bs-fg)}.fg-warning{--bs-fg:var(--bs-warning-fg);color:var(--bs-fg)}.fg-info{--bs-fg:var(--bs-info-fg);color:var(--bs-fg)}.fg-inverse{--bs-fg:var(--bs-inverse-fg);color:var(--bs-fg)}.fg-secondary{--bs-fg:var(--bs-secondary-fg);color:var(--bs-fg)}.fg-body{--bs-fg:var(--bs-fg-body);color:var(--bs-fg)}.fg-1{--bs-fg:var(--bs-fg-1);color:var(--bs-fg)}.fg-2{--bs-fg:var(--bs-fg-2);color:var(--bs-fg)}.fg-3{--bs-fg:var(--bs-fg-3);color:var(--bs-fg)}.fg-4{--bs-fg:var(--bs-fg-4);color:var(--bs-fg)}.fg-bg{--bs-fg:var(--bs-fg-bg);color:var(--bs-fg)}.fg-white{--bs-fg:var(--bs-fg-white);color:var(--bs-fg)}.fg-black{--bs-fg:var(--bs-fg-black);color:var(--bs-fg)}.fg-emphasis-primary{--bs-fg:var(--bs-primary-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-accent{--bs-fg:var(--bs-accent-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-success{--bs-fg:var(--bs-success-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-danger{--bs-fg:var(--bs-danger-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-warning{--bs-fg:var(--bs-warning-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-info{--bs-fg:var(--bs-info-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-inverse{--bs-fg:var(--bs-inverse-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-secondary{--bs-fg:var(--bs-secondary-fg-emphasis);color:var(--bs-fg)}.fg-contrast-primary{--bs-fg:var(--bs-primary-contrast);color:var(--bs-fg)}.fg-contrast-accent{--bs-fg:var(--bs-accent-contrast);color:var(--bs-fg)}.fg-contrast-success{--bs-fg:var(--bs-success-contrast);color:var(--bs-fg)}.fg-contrast-danger{--bs-fg:var(--bs-danger-contrast);color:var(--bs-fg)}.fg-contrast-warning{--bs-fg:var(--bs-warning-contrast);color:var(--bs-fg)}.fg-contrast-info{--bs-fg:var(--bs-info-contrast);color:var(--bs-fg)}.fg-contrast-inverse{--bs-fg:var(--bs-inverse-contrast);color:var(--bs-fg)}.fg-contrast-secondary{--bs-fg:var(--bs-secondary-contrast);color:var(--bs-fg)}.fg-10{color:color-mix(in oklch, var(--bs-fg) 10%, transparent)}.fg-20{color:color-mix(in oklch, var(--bs-fg) 20%, transparent)}.fg-30{color:color-mix(in oklch, var(--bs-fg) 30%, transparent)}.fg-40{color:color-mix(in oklch, var(--bs-fg) 40%, transparent)}.fg-50{color:color-mix(in oklch, var(--bs-fg) 50%, transparent)}.fg-60{color:color-mix(in oklch, var(--bs-fg) 60%, transparent)}.fg-70{color:color-mix(in oklch, var(--bs-fg) 70%, transparent)}.fg-80{color:color-mix(in oklch, var(--bs-fg) 80%, transparent)}.fg-90{color:color-mix(in oklch, var(--bs-fg) 90%, transparent)}.fg-100{color:var(--bs-fg)}.link-10,.hover\:link-10:hover{color:color-mix(in oklch, var(--bs-link-color) 10%, transparent)}.link-20,.hover\:link-20:hover{color:color-mix(in oklch, var(--bs-link-color) 20%, transparent)}.link-30,.hover\:link-30:hover{color:color-mix(in oklch, var(--bs-link-color) 30%, transparent)}.link-40,.hover\:link-40:hover{color:color-mix(in oklch, var(--bs-link-color) 40%, transparent)}.link-50,.hover\:link-50:hover{color:color-mix(in oklch, var(--bs-link-color) 50%, transparent)}.link-60,.hover\:link-60:hover{color:color-mix(in oklch, var(--bs-link-color) 60%, transparent)}.link-70,.hover\:link-70:hover{color:color-mix(in oklch, var(--bs-link-color) 70%, transparent)}.link-80,.hover\:link-80:hover{color:color-mix(in oklch, var(--bs-link-color) 80%, transparent)}.link-90,.hover\:link-90:hover{color:color-mix(in oklch, var(--bs-link-color) 90%, transparent)}.link-100,.hover\:link-100:hover{color:var(--bs-link-color)}.underline-offset-1,.hover\:underline-offset-1:hover{text-underline-offset:.125em}.underline-offset-2,.hover\:underline-offset-2:hover{text-underline-offset:.25em}.underline-offset-3,.hover\:underline-offset-3:hover{text-underline-offset:.375em}.underline-primary{-webkit-text-decoration-color:var(--lightningcss-light,var(--bs-blue-600))var(--lightningcss-dark,var(--bs-blue-400));text-decoration-color:var(--lightningcss-light,var(--bs-blue-600))var(--lightningcss-dark,var(--bs-blue-400))}.underline-accent{-webkit-text-decoration-color:var(--lightningcss-light,var(--bs-indigo-600))var(--lightningcss-dark,color-mix(in oklch, var(--bs-indigo-400), var(--bs-indigo-300)));text-decoration-color:var(--lightningcss-light,var(--bs-indigo-600))var(--lightningcss-dark,color-mix(in oklch, var(--bs-indigo-400), var(--bs-indigo-300)))}.underline-success{-webkit-text-decoration-color:var(--lightningcss-light,var(--bs-green-600))var(--lightningcss-dark,var(--bs-green-400));text-decoration-color:var(--lightningcss-light,var(--bs-green-600))var(--lightningcss-dark,var(--bs-green-400))}.underline-danger{-webkit-text-decoration-color:var(--lightningcss-light,var(--bs-red-600))var(--lightningcss-dark,var(--bs-red-400));text-decoration-color:var(--lightningcss-light,var(--bs-red-600))var(--lightningcss-dark,var(--bs-red-400))}.underline-warning{-webkit-text-decoration-color:var(--lightningcss-light,var(--bs-yellow-700))var(--lightningcss-dark,var(--bs-yellow-400));text-decoration-color:var(--lightningcss-light,var(--bs-yellow-700))var(--lightningcss-dark,var(--bs-yellow-400))}.underline-info{-webkit-text-decoration-color:var(--lightningcss-light,var(--bs-cyan-600))var(--lightningcss-dark,var(--bs-cyan-400));text-decoration-color:var(--lightningcss-light,var(--bs-cyan-600))var(--lightningcss-dark,var(--bs-cyan-400))}.underline-inverse{-webkit-text-decoration-color:var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-gray-200));text-decoration-color:var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-gray-200))}.underline-secondary{-webkit-text-decoration-color:var(--lightningcss-light,var(--bs-gray-600))var(--lightningcss-dark,var(--bs-gray-400));text-decoration-color:var(--lightningcss-light,var(--bs-gray-600))var(--lightningcss-dark,var(--bs-gray-400))}.underline-10,.hover\:underline-10:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 10%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 10%, transparent)}.underline-20,.hover\:underline-20:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 20%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 20%, transparent)}.underline-30,.hover\:underline-30:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 30%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 30%, transparent)}.underline-40,.hover\:underline-40:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 40%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 40%, transparent)}.underline-50,.hover\:underline-50:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 50%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 50%, transparent)}.underline-60,.hover\:underline-60:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 60%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 60%, transparent)}.underline-70,.hover\:underline-70:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 70%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 70%, transparent)}.underline-80,.hover\:underline-80:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 80%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 80%, transparent)}.underline-90,.hover\:underline-90:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 90%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 90%, transparent)}.underline-100,.hover\:underline-100:hover{-webkit-text-decoration-color:var(--bs-link-color);text-decoration-color:var(--bs-link-color)}.underline-thickness-1,.hover\:underline-thickness-1:hover{text-decoration-thickness:1px}.underline-thickness-2,.hover\:underline-thickness-2:hover{text-decoration-thickness:2px}.underline-thickness-3,.hover\:underline-thickness-3:hover{text-decoration-thickness:3px}.underline-thickness-4,.hover\:underline-thickness-4:hover{text-decoration-thickness:4px}.underline-thickness-5,.hover\:underline-thickness-5:hover{text-decoration-thickness:5px}.bg-primary{--bs-bg:var(--bs-primary-bg);background-color:var(--bs-bg)}.bg-accent{--bs-bg:var(--bs-accent-bg);background-color:var(--bs-bg)}.bg-success{--bs-bg:var(--bs-success-bg);background-color:var(--bs-bg)}.bg-danger{--bs-bg:var(--bs-danger-bg);background-color:var(--bs-bg)}.bg-warning{--bs-bg:var(--bs-warning-bg);background-color:var(--bs-bg)}.bg-info{--bs-bg:var(--bs-info-bg);background-color:var(--bs-bg)}.bg-inverse{--bs-bg:var(--bs-inverse-bg);background-color:var(--bs-bg)}.bg-secondary{--bs-bg:var(--bs-secondary-bg);background-color:var(--bs-bg)}.bg-body{--bs-bg:var(--bs-bg-body);background-color:var(--bs-bg)}.bg-1{--bs-bg:var(--bs-bg-1);background-color:var(--bs-bg)}.bg-2{--bs-bg:var(--bs-bg-2);background-color:var(--bs-bg)}.bg-3{--bs-bg:var(--bs-bg-3);background-color:var(--bs-bg)}.bg-4{--bs-bg:var(--bs-bg-4);background-color:var(--bs-bg)}.bg-fg{--bs-bg:var(--bs-bg-fg);background-color:var(--bs-bg)}.bg-white{--bs-bg:var(--bs-bg-white);background-color:var(--bs-bg)}.bg-black{--bs-bg:var(--bs-bg-black);background-color:var(--bs-bg)}.bg-transparent{--bs-bg:var(--bs-bg-transparent);background-color:var(--bs-bg)}.bg-subtle-primary{--bs-bg:var(--bs-primary-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-accent{--bs-bg:var(--bs-accent-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-success{--bs-bg:var(--bs-success-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-danger{--bs-bg:var(--bs-danger-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-warning{--bs-bg:var(--bs-warning-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-info{--bs-bg:var(--bs-info-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-inverse{--bs-bg:var(--bs-inverse-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-secondary{--bs-bg:var(--bs-secondary-bg-subtle);background-color:var(--bs-bg)}.bg-muted-primary{--bs-bg:var(--bs-primary-bg-muted);background-color:var(--bs-bg)}.bg-muted-accent{--bs-bg:var(--bs-accent-bg-muted);background-color:var(--bs-bg)}.bg-muted-success{--bs-bg:var(--bs-success-bg-muted);background-color:var(--bs-bg)}.bg-muted-danger{--bs-bg:var(--bs-danger-bg-muted);background-color:var(--bs-bg)}.bg-muted-warning{--bs-bg:var(--bs-warning-bg-muted);background-color:var(--bs-bg)}.bg-muted-info{--bs-bg:var(--bs-info-bg-muted);background-color:var(--bs-bg)}.bg-muted-inverse{--bs-bg:var(--bs-inverse-bg-muted);background-color:var(--bs-bg)}.bg-muted-secondary{--bs-bg:var(--bs-secondary-bg-muted);background-color:var(--bs-bg)}.bg-10{background-color:color-mix(in oklch, var(--bs-bg) 10%, transparent)}.bg-20{background-color:color-mix(in oklch, var(--bs-bg) 20%, transparent)}.bg-30{background-color:color-mix(in oklch, var(--bs-bg) 30%, transparent)}.bg-40{background-color:color-mix(in oklch, var(--bs-bg) 40%, transparent)}.bg-50{background-color:color-mix(in oklch, var(--bs-bg) 50%, transparent)}.bg-60{background-color:color-mix(in oklch, var(--bs-bg) 60%, transparent)}.bg-70{background-color:color-mix(in oklch, var(--bs-bg) 70%, transparent)}.bg-80{background-color:color-mix(in oklch, var(--bs-bg) 80%, transparent)}.bg-90{background-color:color-mix(in oklch, var(--bs-bg) 90%, transparent)}.bg-100{background-color:var(--bs-bg)}.theme-contrast{background-color:var(--bs-theme-bg);color:var(--bs-theme-contrast)}.theme-subtle{background-color:var(--bs-theme-bg-subtle);color:var(--bs-theme-fg)}.theme-muted{background-color:var(--bs-theme-bg-muted);color:var(--bs-theme-fg-emphasis)}.theme-border{border:var(--bs-border-width) solid var(--bs-theme-border)}.bg-gradient{background-image:var(--bs-gradient)}.user-select-all{-webkit-user-select:all;user-select:all}.user-select-auto{-webkit-user-select:auto;user-select:auto}.user-select-text{-webkit-user-select:text;user-select:text}.user-select-none{-webkit-user-select:none;user-select:none}.pe-none{pointer-events:none}.pe-auto{pointer-events:auto}.rounded-0{--bs-rounded-size:0;border-radius:var(--bs-rounded-size)}.rounded-1{--bs-rounded-size:.125rem;border-radius:var(--bs-rounded-size)}.rounded-2{--bs-rounded-size:.1875rem;border-radius:var(--bs-rounded-size)}.rounded-3{--bs-rounded-size:.25rem;border-radius:var(--bs-rounded-size)}.rounded-4{--bs-rounded-size:.375rem;border-radius:var(--bs-rounded-size)}.rounded-5{--bs-rounded-size:.5rem;border-radius:var(--bs-rounded-size)}.rounded-6{--bs-rounded-size:.625rem;border-radius:var(--bs-rounded-size)}.rounded-7{--bs-rounded-size:.75rem;border-radius:var(--bs-rounded-size)}.rounded-8{--bs-rounded-size:1rem;border-radius:var(--bs-rounded-size)}.rounded-9{--bs-rounded-size:1.5rem;border-radius:var(--bs-rounded-size)}.rounded{--bs-rounded-size:.5rem;border-radius:var(--bs-rounded-size)}.rounded-circle{--bs-rounded-size:50%;border-radius:var(--bs-rounded-size)}.rounded-pill{--bs-rounded-size:var(--bs-radius-pill);border-radius:var(--bs-rounded-size)}.rounded-size-0{--bs-rounded-size:0}.rounded-size-1{--bs-rounded-size:.125rem}.rounded-size-2{--bs-rounded-size:.1875rem}.rounded-size-3{--bs-rounded-size:.25rem}.rounded-size-4{--bs-rounded-size:.375rem}.rounded-size-5{--bs-rounded-size:.5rem}.rounded-size-6{--bs-rounded-size:.625rem}.rounded-size-7{--bs-rounded-size:.75rem}.rounded-size-8{--bs-rounded-size:1rem}.rounded-size-9{--bs-rounded-size:1.5rem}.rounded-size{--bs-rounded-size:.5rem}.rounded-size-circle{--bs-rounded-size:50%}.rounded-size-pill{--bs-rounded-size:var(--bs-radius-pill)}.rounded-top-0{border-start-start-radius:0;border-start-end-radius:0}.rounded-top-1{border-start-start-radius:.125rem;border-start-end-radius:.125rem}.rounded-top-2{border-start-start-radius:.1875rem;border-start-end-radius:.1875rem}.rounded-top-3{border-start-start-radius:.25rem;border-start-end-radius:.25rem}.rounded-top-4{border-start-start-radius:.375rem;border-start-end-radius:.375rem}.rounded-top-5{border-start-start-radius:.5rem;border-start-end-radius:.5rem}.rounded-top-6{border-start-start-radius:.625rem;border-start-end-radius:.625rem}.rounded-top-7{border-start-start-radius:.75rem;border-start-end-radius:.75rem}.rounded-top-8{border-start-start-radius:1rem;border-start-end-radius:1rem}.rounded-top-9{border-start-start-radius:1.5rem;border-start-end-radius:1.5rem}.rounded-top{border-start-start-radius:var(--bs-rounded-size,var(--bs-radius-5));border-start-end-radius:var(--bs-rounded-size,var(--bs-radius-5))}.rounded-top-circle{border-start-start-radius:50%;border-start-end-radius:50%}.rounded-top-pill{border-start-start-radius:var(--bs-radius-pill);border-start-end-radius:var(--bs-radius-pill)}.rounded-end-0{border-start-end-radius:0;border-end-end-radius:0}.rounded-end-1{border-start-end-radius:.125rem;border-end-end-radius:.125rem}.rounded-end-2{border-start-end-radius:.1875rem;border-end-end-radius:.1875rem}.rounded-end-3{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-end-4{border-start-end-radius:.375rem;border-end-end-radius:.375rem}.rounded-end-5{border-start-end-radius:.5rem;border-end-end-radius:.5rem}.rounded-end-6{border-start-end-radius:.625rem;border-end-end-radius:.625rem}.rounded-end-7{border-start-end-radius:.75rem;border-end-end-radius:.75rem}.rounded-end-8{border-start-end-radius:1rem;border-end-end-radius:1rem}.rounded-end-9{border-start-end-radius:1.5rem;border-end-end-radius:1.5rem}.rounded-end{border-start-end-radius:var(--bs-rounded-size,var(--bs-radius-5));border-end-end-radius:var(--bs-rounded-size,var(--bs-radius-5))}.rounded-end-circle{border-start-end-radius:50%;border-end-end-radius:50%}.rounded-end-pill{border-start-end-radius:var(--bs-radius-pill);border-end-end-radius:var(--bs-radius-pill)}.rounded-bottom-0{border-end-end-radius:0;border-end-start-radius:0}.rounded-bottom-1{border-end-end-radius:.125rem;border-end-start-radius:.125rem}.rounded-bottom-2{border-end-end-radius:.1875rem;border-end-start-radius:.1875rem}.rounded-bottom-3{border-end-end-radius:.25rem;border-end-start-radius:.25rem}.rounded-bottom-4{border-end-end-radius:.375rem;border-end-start-radius:.375rem}.rounded-bottom-5{border-end-end-radius:.5rem;border-end-start-radius:.5rem}.rounded-bottom-6{border-end-end-radius:.625rem;border-end-start-radius:.625rem}.rounded-bottom-7{border-end-end-radius:.75rem;border-end-start-radius:.75rem}.rounded-bottom-8{border-end-end-radius:1rem;border-end-start-radius:1rem}.rounded-bottom-9{border-end-end-radius:1.5rem;border-end-start-radius:1.5rem}.rounded-bottom{border-end-end-radius:var(--bs-rounded-size,var(--bs-radius-5));border-end-start-radius:var(--bs-rounded-size,var(--bs-radius-5))}.rounded-bottom-circle{border-end-end-radius:50%;border-end-start-radius:50%}.rounded-bottom-pill{border-end-end-radius:var(--bs-radius-pill);border-end-start-radius:var(--bs-radius-pill)}.rounded-start-0{border-start-start-radius:0;border-end-start-radius:0}.rounded-start-1{border-start-start-radius:.125rem;border-end-start-radius:.125rem}.rounded-start-2{border-start-start-radius:.1875rem;border-end-start-radius:.1875rem}.rounded-start-3{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-start-4{border-start-start-radius:.375rem;border-end-start-radius:.375rem}.rounded-start-5{border-start-start-radius:.5rem;border-end-start-radius:.5rem}.rounded-start-6{border-start-start-radius:.625rem;border-end-start-radius:.625rem}.rounded-start-7{border-start-start-radius:.75rem;border-end-start-radius:.75rem}.rounded-start-8{border-start-start-radius:1rem;border-end-start-radius:1rem}.rounded-start-9{border-start-start-radius:1.5rem;border-end-start-radius:1.5rem}.rounded-start{border-start-start-radius:var(--bs-rounded-size,var(--bs-radius-5));border-end-start-radius:var(--bs-rounded-size,var(--bs-radius-5))}.rounded-start-circle{border-start-start-radius:50%;border-end-start-radius:50%}.rounded-start-pill{border-start-start-radius:var(--bs-radius-pill);border-end-start-radius:var(--bs-radius-pill)}.visible{visibility:visible}.invisible{visibility:hidden}.z-n1{z-index:-1}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}@media (min-width:576px){.sm\:float-start{float:inline-start}.sm\:float-end{float:inline-end}.sm\:float-none{float:none}.sm\:object-fit-contain{-o-object-fit:contain;object-fit:contain}.sm\:object-fit-cover{-o-object-fit:cover;object-fit:cover}.sm\:object-fit-fill{-o-object-fit:fill;object-fit:fill}.sm\:object-fit-scale{-o-object-fit:scale-down;object-fit:scale-down}.sm\:object-fit-none{-o-object-fit:none;object-fit:none}.sm\:d-inline{display:inline}.sm\:d-inline-block{display:inline-block}.sm\:d-block{display:block}.sm\:d-grid{display:grid}.sm\:d-inline-grid{display:inline-grid}.sm\:d-table{display:table}.sm\:d-table-row{display:table-row}.sm\:d-table-cell{display:table-cell}.sm\:d-flex{display:flex}.sm\:d-inline-flex{display:inline-flex}.sm\:d-contents{display:contents}.sm\:d-flow-root{display:flow-root}.sm\:d-none{display:none}.sm\:flex-fill{flex:auto}.sm\:flex-row{flex-direction:row}.sm\:flex-column{flex-direction:column}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:flex-column-reverse{flex-direction:column-reverse}.sm\:flex-grow-0{flex-grow:0}.sm\:flex-grow-1{flex-grow:1}.sm\:flex-shrink-0{flex-shrink:0}.sm\:flex-shrink-1{flex-shrink:1}.sm\:flex-wrap{flex-wrap:wrap}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:flex-wrap-reverse{flex-wrap:wrap-reverse}.sm\:justify-content-start{justify-content:flex-start}.sm\:justify-content-end{justify-content:flex-end}.sm\:justify-content-center{justify-content:center}.sm\:justify-content-between{justify-content:space-between}.sm\:justify-content-around{justify-content:space-around}.sm\:justify-content-evenly{justify-content:space-evenly}.sm\:justify-items-start{justify-items:start}.sm\:justify-items-end{justify-items:end}.sm\:justify-items-center{justify-items:center}.sm\:justify-items-stretch{justify-items:stretch}.sm\:justify-self-start{justify-self:start}.sm\:justify-self-end{justify-self:end}.sm\:justify-self-center{justify-self:center}.sm\:align-items-start{align-items:flex-start}.sm\:align-items-end{align-items:flex-end}.sm\:align-items-center{align-items:center}.sm\:align-items-baseline{align-items:baseline}.sm\:align-items-stretch{align-items:stretch}.sm\:align-content-start{align-content:flex-start}.sm\:align-content-end{align-content:flex-end}.sm\:align-content-center{align-content:center}.sm\:align-content-between{align-content:space-between}.sm\:align-content-around{align-content:space-around}.sm\:align-content-stretch{align-content:stretch}.sm\:align-self-auto{align-self:auto}.sm\:align-self-start{align-self:flex-start}.sm\:align-self-end{align-self:flex-end}.sm\:align-self-center{align-self:center}.sm\:align-self-baseline{align-self:baseline}.sm\:align-self-stretch{align-self:stretch}.sm\:place-items-start{place-items:start}.sm\:place-items-end{place-items:end}.sm\:place-items-center{place-items:center}.sm\:place-items-stretch{place-items:stretch stretch}.sm\:grid-cols-1{grid-template-columns:1fr}.sm\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.sm\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.sm\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.sm\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.sm\:grid-cols-fill{grid-column:1/-1}.sm\:grid-auto-flow-row{grid-auto-flow:row}.sm\:grid-auto-flow-column{grid-auto-flow:column}.sm\:grid-auto-flow-dense{grid-auto-flow:dense}.sm\:order-first{order:-1}.sm\:order-0{order:0}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:order-3{order:3}.sm\:order-4{order:4}.sm\:order-5{order:5}.sm\:order-last{order:6}.sm\:m-0{margin:0}.sm\:m-1{margin:.25rem}.sm\:m-2{margin:.5rem}.sm\:m-3{margin:.75rem}.sm\:m-4{margin:1rem}.sm\:m-5{margin:1.25rem}.sm\:m-6{margin:1.5rem}.sm\:m-7{margin:2rem}.sm\:m-8{margin:2.5rem}.sm\:m-9{margin:3rem}.sm\:m-auto{margin:auto}.sm\:mx-0{margin-inline:0}.sm\:mx-1{margin-inline:.25rem}.sm\:mx-2{margin-inline:.5rem}.sm\:mx-3{margin-inline:.75rem}.sm\:mx-4{margin-inline:1rem}.sm\:mx-5{margin-inline:1.25rem}.sm\:mx-6{margin-inline:1.5rem}.sm\:mx-7{margin-inline:2rem}.sm\:mx-8{margin-inline:2.5rem}.sm\:mx-9{margin-inline:3rem}.sm\:mx-auto{margin-inline:auto}.sm\:my-0{margin-block:0}.sm\:my-1{margin-block:.25rem}.sm\:my-2{margin-block:.5rem}.sm\:my-3{margin-block:.75rem}.sm\:my-4{margin-block:1rem}.sm\:my-5{margin-block:1.25rem}.sm\:my-6{margin-block:1.5rem}.sm\:my-7{margin-block:2rem}.sm\:my-8{margin-block:2.5rem}.sm\:my-9{margin-block:3rem}.sm\:my-auto{margin-block:auto}.sm\:mt-0{margin-block-start:0}.sm\:mt-1{margin-block-start:.25rem}.sm\:mt-2{margin-block-start:.5rem}.sm\:mt-3{margin-block-start:.75rem}.sm\:mt-4{margin-block-start:1rem}.sm\:mt-5{margin-block-start:1.25rem}.sm\:mt-6{margin-block-start:1.5rem}.sm\:mt-7{margin-block-start:2rem}.sm\:mt-8{margin-block-start:2.5rem}.sm\:mt-9{margin-block-start:3rem}.sm\:mt-auto{margin-block-start:auto}.sm\:me-0{margin-inline-end:0}.sm\:me-1{margin-inline-end:.25rem}.sm\:me-2{margin-inline-end:.5rem}.sm\:me-3{margin-inline-end:.75rem}.sm\:me-4{margin-inline-end:1rem}.sm\:me-5{margin-inline-end:1.25rem}.sm\:me-6{margin-inline-end:1.5rem}.sm\:me-7{margin-inline-end:2rem}.sm\:me-8{margin-inline-end:2.5rem}.sm\:me-9{margin-inline-end:3rem}.sm\:me--1{margin-inline-end:-.25rem}.sm\:me--2{margin-inline-end:-.5rem}.sm\:me-auto{margin-inline-end:auto}.sm\:mb-0{margin-block-end:0}.sm\:mb-1{margin-block-end:.25rem}.sm\:mb-2{margin-block-end:.5rem}.sm\:mb-3{margin-block-end:.75rem}.sm\:mb-4{margin-block-end:1rem}.sm\:mb-5{margin-block-end:1.25rem}.sm\:mb-6{margin-block-end:1.5rem}.sm\:mb-7{margin-block-end:2rem}.sm\:mb-8{margin-block-end:2.5rem}.sm\:mb-9{margin-block-end:3rem}.sm\:mb-auto{margin-block-end:auto}.sm\:ms-0{margin-inline-start:0}.sm\:ms-1{margin-inline-start:.25rem}.sm\:ms-2{margin-inline-start:.5rem}.sm\:ms-3{margin-inline-start:.75rem}.sm\:ms-4{margin-inline-start:1rem}.sm\:ms-5{margin-inline-start:1.25rem}.sm\:ms-6{margin-inline-start:1.5rem}.sm\:ms-7{margin-inline-start:2rem}.sm\:ms-8{margin-inline-start:2.5rem}.sm\:ms-9{margin-inline-start:3rem}.sm\:ms--1{margin-inline-start:-.25rem}.sm\:ms--2{margin-inline-start:-.5rem}.sm\:ms-auto{margin-inline-start:auto}.sm\:p-0{padding:0}.sm\:p-1{padding:.25rem}.sm\:p-2{padding:.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:p-7{padding:2rem}.sm\:p-8{padding:2.5rem}.sm\:p-9{padding:3rem}.sm\:px-0{padding-inline:0}.sm\:px-1{padding-inline:.25rem}.sm\:px-2{padding-inline:.5rem}.sm\:px-3{padding-inline:.75rem}.sm\:px-4{padding-inline:1rem}.sm\:px-5{padding-inline:1.25rem}.sm\:px-6{padding-inline:1.5rem}.sm\:px-7{padding-inline:2rem}.sm\:px-8{padding-inline:2.5rem}.sm\:px-9{padding-inline:3rem}.sm\:py-0{padding-block:0}.sm\:py-1{padding-block:.25rem}.sm\:py-2{padding-block:.5rem}.sm\:py-3{padding-block:.75rem}.sm\:py-4{padding-block:1rem}.sm\:py-5{padding-block:1.25rem}.sm\:py-6{padding-block:1.5rem}.sm\:py-7{padding-block:2rem}.sm\:py-8{padding-block:2.5rem}.sm\:py-9{padding-block:3rem}.sm\:pt-0{padding-block-start:0}.sm\:pt-1{padding-block-start:.25rem}.sm\:pt-2{padding-block-start:.5rem}.sm\:pt-3{padding-block-start:.75rem}.sm\:pt-4{padding-block-start:1rem}.sm\:pt-5{padding-block-start:1.25rem}.sm\:pt-6{padding-block-start:1.5rem}.sm\:pt-7{padding-block-start:2rem}.sm\:pt-8{padding-block-start:2.5rem}.sm\:pt-9{padding-block-start:3rem}.sm\:pe-0{padding-inline-end:0}.sm\:pe-1{padding-inline-end:.25rem}.sm\:pe-2{padding-inline-end:.5rem}.sm\:pe-3{padding-inline-end:.75rem}.sm\:pe-4{padding-inline-end:1rem}.sm\:pe-5{padding-inline-end:1.25rem}.sm\:pe-6{padding-inline-end:1.5rem}.sm\:pe-7{padding-inline-end:2rem}.sm\:pe-8{padding-inline-end:2.5rem}.sm\:pe-9{padding-inline-end:3rem}.sm\:pb-0{padding-block-end:0}.sm\:pb-1{padding-block-end:.25rem}.sm\:pb-2{padding-block-end:.5rem}.sm\:pb-3{padding-block-end:.75rem}.sm\:pb-4{padding-block-end:1rem}.sm\:pb-5{padding-block-end:1.25rem}.sm\:pb-6{padding-block-end:1.5rem}.sm\:pb-7{padding-block-end:2rem}.sm\:pb-8{padding-block-end:2.5rem}.sm\:pb-9{padding-block-end:3rem}.sm\:ps-0{padding-inline-start:0}.sm\:ps-1{padding-inline-start:.25rem}.sm\:ps-2{padding-inline-start:.5rem}.sm\:ps-3{padding-inline-start:.75rem}.sm\:ps-4{padding-inline-start:1rem}.sm\:ps-5{padding-inline-start:1.25rem}.sm\:ps-6{padding-inline-start:1.5rem}.sm\:ps-7{padding-inline-start:2rem}.sm\:ps-8{padding-inline-start:2.5rem}.sm\:ps-9{padding-inline-start:3rem}.sm\:gap-0{gap:0}.sm\:gap-1{gap:.25rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-5{gap:1.25rem}.sm\:gap-6{gap:1.5rem}.sm\:gap-7{gap:2rem}.sm\:gap-8{gap:2.5rem}.sm\:gap-9{gap:3rem}.sm\:row-gap-0{row-gap:0}.sm\:row-gap-1{row-gap:.25rem}.sm\:row-gap-2{row-gap:.5rem}.sm\:row-gap-3{row-gap:.75rem}.sm\:row-gap-4{row-gap:1rem}.sm\:row-gap-5{row-gap:1.25rem}.sm\:row-gap-6{row-gap:1.5rem}.sm\:row-gap-7{row-gap:2rem}.sm\:row-gap-8{row-gap:2.5rem}.sm\:row-gap-9{row-gap:3rem}.sm\:column-gap-0{-moz-column-gap:0;column-gap:0}.sm\:column-gap-1{-moz-column-gap:.25rem;column-gap:.25rem}.sm\:column-gap-2{-moz-column-gap:.5rem;column-gap:.5rem}.sm\:column-gap-3{-moz-column-gap:.75rem;column-gap:.75rem}.sm\:column-gap-4{-moz-column-gap:1rem;column-gap:1rem}.sm\:column-gap-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.sm\:column-gap-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.sm\:column-gap-7{-moz-column-gap:2rem;column-gap:2rem}.sm\:column-gap-8{-moz-column-gap:2.5rem;column-gap:2.5rem}.sm\:column-gap-9{-moz-column-gap:3rem;column-gap:3rem}:where(.sm\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.sm\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.sm\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.sm\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.sm\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.sm\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.sm\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.sm\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.sm\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.sm\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.sm\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.sm\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.sm\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.sm\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.sm\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.sm\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.sm\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.sm\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.sm\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.sm\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.sm\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.sm\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.sm\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.sm\:divide-y-0>:not(:first-child)){border-block-start:0}.sm\:text-start{text-align:start}.sm\:text-end{text-align:end}.sm\:text-center{text-align:center}}@media (min-width:768px){.md\:float-start{float:inline-start}.md\:float-end{float:inline-end}.md\:float-none{float:none}.md\:object-fit-contain{-o-object-fit:contain;object-fit:contain}.md\:object-fit-cover{-o-object-fit:cover;object-fit:cover}.md\:object-fit-fill{-o-object-fit:fill;object-fit:fill}.md\:object-fit-scale{-o-object-fit:scale-down;object-fit:scale-down}.md\:object-fit-none{-o-object-fit:none;object-fit:none}.md\:d-inline{display:inline}.md\:d-inline-block{display:inline-block}.md\:d-block{display:block}.md\:d-grid{display:grid}.md\:d-inline-grid{display:inline-grid}.md\:d-table{display:table}.md\:d-table-row{display:table-row}.md\:d-table-cell{display:table-cell}.md\:d-flex{display:flex}.md\:d-inline-flex{display:inline-flex}.md\:d-contents{display:contents}.md\:d-flow-root{display:flow-root}.md\:d-none{display:none}.md\:flex-fill{flex:auto}.md\:flex-row{flex-direction:row}.md\:flex-column{flex-direction:column}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:flex-column-reverse{flex-direction:column-reverse}.md\:flex-grow-0{flex-grow:0}.md\:flex-grow-1{flex-grow:1}.md\:flex-shrink-0{flex-shrink:0}.md\:flex-shrink-1{flex-shrink:1}.md\:flex-wrap{flex-wrap:wrap}.md\:flex-nowrap{flex-wrap:nowrap}.md\:flex-wrap-reverse{flex-wrap:wrap-reverse}.md\:justify-content-start{justify-content:flex-start}.md\:justify-content-end{justify-content:flex-end}.md\:justify-content-center{justify-content:center}.md\:justify-content-between{justify-content:space-between}.md\:justify-content-around{justify-content:space-around}.md\:justify-content-evenly{justify-content:space-evenly}.md\:justify-items-start{justify-items:start}.md\:justify-items-end{justify-items:end}.md\:justify-items-center{justify-items:center}.md\:justify-items-stretch{justify-items:stretch}.md\:justify-self-start{justify-self:start}.md\:justify-self-end{justify-self:end}.md\:justify-self-center{justify-self:center}.md\:align-items-start{align-items:flex-start}.md\:align-items-end{align-items:flex-end}.md\:align-items-center{align-items:center}.md\:align-items-baseline{align-items:baseline}.md\:align-items-stretch{align-items:stretch}.md\:align-content-start{align-content:flex-start}.md\:align-content-end{align-content:flex-end}.md\:align-content-center{align-content:center}.md\:align-content-between{align-content:space-between}.md\:align-content-around{align-content:space-around}.md\:align-content-stretch{align-content:stretch}.md\:align-self-auto{align-self:auto}.md\:align-self-start{align-self:flex-start}.md\:align-self-end{align-self:flex-end}.md\:align-self-center{align-self:center}.md\:align-self-baseline{align-self:baseline}.md\:align-self-stretch{align-self:stretch}.md\:place-items-start{place-items:start}.md\:place-items-end{place-items:end}.md\:place-items-center{place-items:center}.md\:place-items-stretch{place-items:stretch stretch}.md\:grid-cols-1{grid-template-columns:1fr}.md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.md\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.md\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.md\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.md\:grid-cols-fill{grid-column:1/-1}.md\:grid-auto-flow-row{grid-auto-flow:row}.md\:grid-auto-flow-column{grid-auto-flow:column}.md\:grid-auto-flow-dense{grid-auto-flow:dense}.md\:order-first{order:-1}.md\:order-0{order:0}.md\:order-1{order:1}.md\:order-2{order:2}.md\:order-3{order:3}.md\:order-4{order:4}.md\:order-5{order:5}.md\:order-last{order:6}.md\:m-0{margin:0}.md\:m-1{margin:.25rem}.md\:m-2{margin:.5rem}.md\:m-3{margin:.75rem}.md\:m-4{margin:1rem}.md\:m-5{margin:1.25rem}.md\:m-6{margin:1.5rem}.md\:m-7{margin:2rem}.md\:m-8{margin:2.5rem}.md\:m-9{margin:3rem}.md\:m-auto{margin:auto}.md\:mx-0{margin-inline:0}.md\:mx-1{margin-inline:.25rem}.md\:mx-2{margin-inline:.5rem}.md\:mx-3{margin-inline:.75rem}.md\:mx-4{margin-inline:1rem}.md\:mx-5{margin-inline:1.25rem}.md\:mx-6{margin-inline:1.5rem}.md\:mx-7{margin-inline:2rem}.md\:mx-8{margin-inline:2.5rem}.md\:mx-9{margin-inline:3rem}.md\:mx-auto{margin-inline:auto}.md\:my-0{margin-block:0}.md\:my-1{margin-block:.25rem}.md\:my-2{margin-block:.5rem}.md\:my-3{margin-block:.75rem}.md\:my-4{margin-block:1rem}.md\:my-5{margin-block:1.25rem}.md\:my-6{margin-block:1.5rem}.md\:my-7{margin-block:2rem}.md\:my-8{margin-block:2.5rem}.md\:my-9{margin-block:3rem}.md\:my-auto{margin-block:auto}.md\:mt-0{margin-block-start:0}.md\:mt-1{margin-block-start:.25rem}.md\:mt-2{margin-block-start:.5rem}.md\:mt-3{margin-block-start:.75rem}.md\:mt-4{margin-block-start:1rem}.md\:mt-5{margin-block-start:1.25rem}.md\:mt-6{margin-block-start:1.5rem}.md\:mt-7{margin-block-start:2rem}.md\:mt-8{margin-block-start:2.5rem}.md\:mt-9{margin-block-start:3rem}.md\:mt-auto{margin-block-start:auto}.md\:me-0{margin-inline-end:0}.md\:me-1{margin-inline-end:.25rem}.md\:me-2{margin-inline-end:.5rem}.md\:me-3{margin-inline-end:.75rem}.md\:me-4{margin-inline-end:1rem}.md\:me-5{margin-inline-end:1.25rem}.md\:me-6{margin-inline-end:1.5rem}.md\:me-7{margin-inline-end:2rem}.md\:me-8{margin-inline-end:2.5rem}.md\:me-9{margin-inline-end:3rem}.md\:me--1{margin-inline-end:-.25rem}.md\:me--2{margin-inline-end:-.5rem}.md\:me-auto{margin-inline-end:auto}.md\:mb-0{margin-block-end:0}.md\:mb-1{margin-block-end:.25rem}.md\:mb-2{margin-block-end:.5rem}.md\:mb-3{margin-block-end:.75rem}.md\:mb-4{margin-block-end:1rem}.md\:mb-5{margin-block-end:1.25rem}.md\:mb-6{margin-block-end:1.5rem}.md\:mb-7{margin-block-end:2rem}.md\:mb-8{margin-block-end:2.5rem}.md\:mb-9{margin-block-end:3rem}.md\:mb-auto{margin-block-end:auto}.md\:ms-0{margin-inline-start:0}.md\:ms-1{margin-inline-start:.25rem}.md\:ms-2{margin-inline-start:.5rem}.md\:ms-3{margin-inline-start:.75rem}.md\:ms-4{margin-inline-start:1rem}.md\:ms-5{margin-inline-start:1.25rem}.md\:ms-6{margin-inline-start:1.5rem}.md\:ms-7{margin-inline-start:2rem}.md\:ms-8{margin-inline-start:2.5rem}.md\:ms-9{margin-inline-start:3rem}.md\:ms--1{margin-inline-start:-.25rem}.md\:ms--2{margin-inline-start:-.5rem}.md\:ms-auto{margin-inline-start:auto}.md\:p-0{padding:0}.md\:p-1{padding:.25rem}.md\:p-2{padding:.5rem}.md\:p-3{padding:.75rem}.md\:p-4{padding:1rem}.md\:p-5{padding:1.25rem}.md\:p-6{padding:1.5rem}.md\:p-7{padding:2rem}.md\:p-8{padding:2.5rem}.md\:p-9{padding:3rem}.md\:px-0{padding-inline:0}.md\:px-1{padding-inline:.25rem}.md\:px-2{padding-inline:.5rem}.md\:px-3{padding-inline:.75rem}.md\:px-4{padding-inline:1rem}.md\:px-5{padding-inline:1.25rem}.md\:px-6{padding-inline:1.5rem}.md\:px-7{padding-inline:2rem}.md\:px-8{padding-inline:2.5rem}.md\:px-9{padding-inline:3rem}.md\:py-0{padding-block:0}.md\:py-1{padding-block:.25rem}.md\:py-2{padding-block:.5rem}.md\:py-3{padding-block:.75rem}.md\:py-4{padding-block:1rem}.md\:py-5{padding-block:1.25rem}.md\:py-6{padding-block:1.5rem}.md\:py-7{padding-block:2rem}.md\:py-8{padding-block:2.5rem}.md\:py-9{padding-block:3rem}.md\:pt-0{padding-block-start:0}.md\:pt-1{padding-block-start:.25rem}.md\:pt-2{padding-block-start:.5rem}.md\:pt-3{padding-block-start:.75rem}.md\:pt-4{padding-block-start:1rem}.md\:pt-5{padding-block-start:1.25rem}.md\:pt-6{padding-block-start:1.5rem}.md\:pt-7{padding-block-start:2rem}.md\:pt-8{padding-block-start:2.5rem}.md\:pt-9{padding-block-start:3rem}.md\:pe-0{padding-inline-end:0}.md\:pe-1{padding-inline-end:.25rem}.md\:pe-2{padding-inline-end:.5rem}.md\:pe-3{padding-inline-end:.75rem}.md\:pe-4{padding-inline-end:1rem}.md\:pe-5{padding-inline-end:1.25rem}.md\:pe-6{padding-inline-end:1.5rem}.md\:pe-7{padding-inline-end:2rem}.md\:pe-8{padding-inline-end:2.5rem}.md\:pe-9{padding-inline-end:3rem}.md\:pb-0{padding-block-end:0}.md\:pb-1{padding-block-end:.25rem}.md\:pb-2{padding-block-end:.5rem}.md\:pb-3{padding-block-end:.75rem}.md\:pb-4{padding-block-end:1rem}.md\:pb-5{padding-block-end:1.25rem}.md\:pb-6{padding-block-end:1.5rem}.md\:pb-7{padding-block-end:2rem}.md\:pb-8{padding-block-end:2.5rem}.md\:pb-9{padding-block-end:3rem}.md\:ps-0{padding-inline-start:0}.md\:ps-1{padding-inline-start:.25rem}.md\:ps-2{padding-inline-start:.5rem}.md\:ps-3{padding-inline-start:.75rem}.md\:ps-4{padding-inline-start:1rem}.md\:ps-5{padding-inline-start:1.25rem}.md\:ps-6{padding-inline-start:1.5rem}.md\:ps-7{padding-inline-start:2rem}.md\:ps-8{padding-inline-start:2.5rem}.md\:ps-9{padding-inline-start:3rem}.md\:gap-0{gap:0}.md\:gap-1{gap:.25rem}.md\:gap-2{gap:.5rem}.md\:gap-3{gap:.75rem}.md\:gap-4{gap:1rem}.md\:gap-5{gap:1.25rem}.md\:gap-6{gap:1.5rem}.md\:gap-7{gap:2rem}.md\:gap-8{gap:2.5rem}.md\:gap-9{gap:3rem}.md\:row-gap-0{row-gap:0}.md\:row-gap-1{row-gap:.25rem}.md\:row-gap-2{row-gap:.5rem}.md\:row-gap-3{row-gap:.75rem}.md\:row-gap-4{row-gap:1rem}.md\:row-gap-5{row-gap:1.25rem}.md\:row-gap-6{row-gap:1.5rem}.md\:row-gap-7{row-gap:2rem}.md\:row-gap-8{row-gap:2.5rem}.md\:row-gap-9{row-gap:3rem}.md\:column-gap-0{-moz-column-gap:0;column-gap:0}.md\:column-gap-1{-moz-column-gap:.25rem;column-gap:.25rem}.md\:column-gap-2{-moz-column-gap:.5rem;column-gap:.5rem}.md\:column-gap-3{-moz-column-gap:.75rem;column-gap:.75rem}.md\:column-gap-4{-moz-column-gap:1rem;column-gap:1rem}.md\:column-gap-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.md\:column-gap-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.md\:column-gap-7{-moz-column-gap:2rem;column-gap:2rem}.md\:column-gap-8{-moz-column-gap:2.5rem;column-gap:2.5rem}.md\:column-gap-9{-moz-column-gap:3rem;column-gap:3rem}:where(.md\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.md\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.md\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.md\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.md\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.md\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.md\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.md\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.md\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.md\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.md\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.md\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.md\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.md\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.md\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.md\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.md\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.md\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.md\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.md\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.md\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.md\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.md\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.md\:divide-y-0>:not(:first-child)){border-block-start:0}.md\:text-start{text-align:start}.md\:text-end{text-align:end}.md\:text-center{text-align:center}}@media (min-width:1024px){.lg\:float-start{float:inline-start}.lg\:float-end{float:inline-end}.lg\:float-none{float:none}.lg\:object-fit-contain{-o-object-fit:contain;object-fit:contain}.lg\:object-fit-cover{-o-object-fit:cover;object-fit:cover}.lg\:object-fit-fill{-o-object-fit:fill;object-fit:fill}.lg\:object-fit-scale{-o-object-fit:scale-down;object-fit:scale-down}.lg\:object-fit-none{-o-object-fit:none;object-fit:none}.lg\:d-inline{display:inline}.lg\:d-inline-block{display:inline-block}.lg\:d-block{display:block}.lg\:d-grid{display:grid}.lg\:d-inline-grid{display:inline-grid}.lg\:d-table{display:table}.lg\:d-table-row{display:table-row}.lg\:d-table-cell{display:table-cell}.lg\:d-flex{display:flex}.lg\:d-inline-flex{display:inline-flex}.lg\:d-contents{display:contents}.lg\:d-flow-root{display:flow-root}.lg\:d-none{display:none}.lg\:flex-fill{flex:auto}.lg\:flex-row{flex-direction:row}.lg\:flex-column{flex-direction:column}.lg\:flex-row-reverse{flex-direction:row-reverse}.lg\:flex-column-reverse{flex-direction:column-reverse}.lg\:flex-grow-0{flex-grow:0}.lg\:flex-grow-1{flex-grow:1}.lg\:flex-shrink-0{flex-shrink:0}.lg\:flex-shrink-1{flex-shrink:1}.lg\:flex-wrap{flex-wrap:wrap}.lg\:flex-nowrap{flex-wrap:nowrap}.lg\:flex-wrap-reverse{flex-wrap:wrap-reverse}.lg\:justify-content-start{justify-content:flex-start}.lg\:justify-content-end{justify-content:flex-end}.lg\:justify-content-center{justify-content:center}.lg\:justify-content-between{justify-content:space-between}.lg\:justify-content-around{justify-content:space-around}.lg\:justify-content-evenly{justify-content:space-evenly}.lg\:justify-items-start{justify-items:start}.lg\:justify-items-end{justify-items:end}.lg\:justify-items-center{justify-items:center}.lg\:justify-items-stretch{justify-items:stretch}.lg\:justify-self-start{justify-self:start}.lg\:justify-self-end{justify-self:end}.lg\:justify-self-center{justify-self:center}.lg\:align-items-start{align-items:flex-start}.lg\:align-items-end{align-items:flex-end}.lg\:align-items-center{align-items:center}.lg\:align-items-baseline{align-items:baseline}.lg\:align-items-stretch{align-items:stretch}.lg\:align-content-start{align-content:flex-start}.lg\:align-content-end{align-content:flex-end}.lg\:align-content-center{align-content:center}.lg\:align-content-between{align-content:space-between}.lg\:align-content-around{align-content:space-around}.lg\:align-content-stretch{align-content:stretch}.lg\:align-self-auto{align-self:auto}.lg\:align-self-start{align-self:flex-start}.lg\:align-self-end{align-self:flex-end}.lg\:align-self-center{align-self:center}.lg\:align-self-baseline{align-self:baseline}.lg\:align-self-stretch{align-self:stretch}.lg\:place-items-start{place-items:start}.lg\:place-items-end{place-items:end}.lg\:place-items-center{place-items:center}.lg\:place-items-stretch{place-items:stretch stretch}.lg\:grid-cols-1{grid-template-columns:1fr}.lg\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.lg\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.lg\:grid-cols-fill{grid-column:1/-1}.lg\:grid-auto-flow-row{grid-auto-flow:row}.lg\:grid-auto-flow-column{grid-auto-flow:column}.lg\:grid-auto-flow-dense{grid-auto-flow:dense}.lg\:order-first{order:-1}.lg\:order-0{order:0}.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:order-3{order:3}.lg\:order-4{order:4}.lg\:order-5{order:5}.lg\:order-last{order:6}.lg\:m-0{margin:0}.lg\:m-1{margin:.25rem}.lg\:m-2{margin:.5rem}.lg\:m-3{margin:.75rem}.lg\:m-4{margin:1rem}.lg\:m-5{margin:1.25rem}.lg\:m-6{margin:1.5rem}.lg\:m-7{margin:2rem}.lg\:m-8{margin:2.5rem}.lg\:m-9{margin:3rem}.lg\:m-auto{margin:auto}.lg\:mx-0{margin-inline:0}.lg\:mx-1{margin-inline:.25rem}.lg\:mx-2{margin-inline:.5rem}.lg\:mx-3{margin-inline:.75rem}.lg\:mx-4{margin-inline:1rem}.lg\:mx-5{margin-inline:1.25rem}.lg\:mx-6{margin-inline:1.5rem}.lg\:mx-7{margin-inline:2rem}.lg\:mx-8{margin-inline:2.5rem}.lg\:mx-9{margin-inline:3rem}.lg\:mx-auto{margin-inline:auto}.lg\:my-0{margin-block:0}.lg\:my-1{margin-block:.25rem}.lg\:my-2{margin-block:.5rem}.lg\:my-3{margin-block:.75rem}.lg\:my-4{margin-block:1rem}.lg\:my-5{margin-block:1.25rem}.lg\:my-6{margin-block:1.5rem}.lg\:my-7{margin-block:2rem}.lg\:my-8{margin-block:2.5rem}.lg\:my-9{margin-block:3rem}.lg\:my-auto{margin-block:auto}.lg\:mt-0{margin-block-start:0}.lg\:mt-1{margin-block-start:.25rem}.lg\:mt-2{margin-block-start:.5rem}.lg\:mt-3{margin-block-start:.75rem}.lg\:mt-4{margin-block-start:1rem}.lg\:mt-5{margin-block-start:1.25rem}.lg\:mt-6{margin-block-start:1.5rem}.lg\:mt-7{margin-block-start:2rem}.lg\:mt-8{margin-block-start:2.5rem}.lg\:mt-9{margin-block-start:3rem}.lg\:mt-auto{margin-block-start:auto}.lg\:me-0{margin-inline-end:0}.lg\:me-1{margin-inline-end:.25rem}.lg\:me-2{margin-inline-end:.5rem}.lg\:me-3{margin-inline-end:.75rem}.lg\:me-4{margin-inline-end:1rem}.lg\:me-5{margin-inline-end:1.25rem}.lg\:me-6{margin-inline-end:1.5rem}.lg\:me-7{margin-inline-end:2rem}.lg\:me-8{margin-inline-end:2.5rem}.lg\:me-9{margin-inline-end:3rem}.lg\:me--1{margin-inline-end:-.25rem}.lg\:me--2{margin-inline-end:-.5rem}.lg\:me-auto{margin-inline-end:auto}.lg\:mb-0{margin-block-end:0}.lg\:mb-1{margin-block-end:.25rem}.lg\:mb-2{margin-block-end:.5rem}.lg\:mb-3{margin-block-end:.75rem}.lg\:mb-4{margin-block-end:1rem}.lg\:mb-5{margin-block-end:1.25rem}.lg\:mb-6{margin-block-end:1.5rem}.lg\:mb-7{margin-block-end:2rem}.lg\:mb-8{margin-block-end:2.5rem}.lg\:mb-9{margin-block-end:3rem}.lg\:mb-auto{margin-block-end:auto}.lg\:ms-0{margin-inline-start:0}.lg\:ms-1{margin-inline-start:.25rem}.lg\:ms-2{margin-inline-start:.5rem}.lg\:ms-3{margin-inline-start:.75rem}.lg\:ms-4{margin-inline-start:1rem}.lg\:ms-5{margin-inline-start:1.25rem}.lg\:ms-6{margin-inline-start:1.5rem}.lg\:ms-7{margin-inline-start:2rem}.lg\:ms-8{margin-inline-start:2.5rem}.lg\:ms-9{margin-inline-start:3rem}.lg\:ms--1{margin-inline-start:-.25rem}.lg\:ms--2{margin-inline-start:-.5rem}.lg\:ms-auto{margin-inline-start:auto}.lg\:p-0{padding:0}.lg\:p-1{padding:.25rem}.lg\:p-2{padding:.5rem}.lg\:p-3{padding:.75rem}.lg\:p-4{padding:1rem}.lg\:p-5{padding:1.25rem}.lg\:p-6{padding:1.5rem}.lg\:p-7{padding:2rem}.lg\:p-8{padding:2.5rem}.lg\:p-9{padding:3rem}.lg\:px-0{padding-inline:0}.lg\:px-1{padding-inline:.25rem}.lg\:px-2{padding-inline:.5rem}.lg\:px-3{padding-inline:.75rem}.lg\:px-4{padding-inline:1rem}.lg\:px-5{padding-inline:1.25rem}.lg\:px-6{padding-inline:1.5rem}.lg\:px-7{padding-inline:2rem}.lg\:px-8{padding-inline:2.5rem}.lg\:px-9{padding-inline:3rem}.lg\:py-0{padding-block:0}.lg\:py-1{padding-block:.25rem}.lg\:py-2{padding-block:.5rem}.lg\:py-3{padding-block:.75rem}.lg\:py-4{padding-block:1rem}.lg\:py-5{padding-block:1.25rem}.lg\:py-6{padding-block:1.5rem}.lg\:py-7{padding-block:2rem}.lg\:py-8{padding-block:2.5rem}.lg\:py-9{padding-block:3rem}.lg\:pt-0{padding-block-start:0}.lg\:pt-1{padding-block-start:.25rem}.lg\:pt-2{padding-block-start:.5rem}.lg\:pt-3{padding-block-start:.75rem}.lg\:pt-4{padding-block-start:1rem}.lg\:pt-5{padding-block-start:1.25rem}.lg\:pt-6{padding-block-start:1.5rem}.lg\:pt-7{padding-block-start:2rem}.lg\:pt-8{padding-block-start:2.5rem}.lg\:pt-9{padding-block-start:3rem}.lg\:pe-0{padding-inline-end:0}.lg\:pe-1{padding-inline-end:.25rem}.lg\:pe-2{padding-inline-end:.5rem}.lg\:pe-3{padding-inline-end:.75rem}.lg\:pe-4{padding-inline-end:1rem}.lg\:pe-5{padding-inline-end:1.25rem}.lg\:pe-6{padding-inline-end:1.5rem}.lg\:pe-7{padding-inline-end:2rem}.lg\:pe-8{padding-inline-end:2.5rem}.lg\:pe-9{padding-inline-end:3rem}.lg\:pb-0{padding-block-end:0}.lg\:pb-1{padding-block-end:.25rem}.lg\:pb-2{padding-block-end:.5rem}.lg\:pb-3{padding-block-end:.75rem}.lg\:pb-4{padding-block-end:1rem}.lg\:pb-5{padding-block-end:1.25rem}.lg\:pb-6{padding-block-end:1.5rem}.lg\:pb-7{padding-block-end:2rem}.lg\:pb-8{padding-block-end:2.5rem}.lg\:pb-9{padding-block-end:3rem}.lg\:ps-0{padding-inline-start:0}.lg\:ps-1{padding-inline-start:.25rem}.lg\:ps-2{padding-inline-start:.5rem}.lg\:ps-3{padding-inline-start:.75rem}.lg\:ps-4{padding-inline-start:1rem}.lg\:ps-5{padding-inline-start:1.25rem}.lg\:ps-6{padding-inline-start:1.5rem}.lg\:ps-7{padding-inline-start:2rem}.lg\:ps-8{padding-inline-start:2.5rem}.lg\:ps-9{padding-inline-start:3rem}.lg\:gap-0{gap:0}.lg\:gap-1{gap:.25rem}.lg\:gap-2{gap:.5rem}.lg\:gap-3{gap:.75rem}.lg\:gap-4{gap:1rem}.lg\:gap-5{gap:1.25rem}.lg\:gap-6{gap:1.5rem}.lg\:gap-7{gap:2rem}.lg\:gap-8{gap:2.5rem}.lg\:gap-9{gap:3rem}.lg\:row-gap-0{row-gap:0}.lg\:row-gap-1{row-gap:.25rem}.lg\:row-gap-2{row-gap:.5rem}.lg\:row-gap-3{row-gap:.75rem}.lg\:row-gap-4{row-gap:1rem}.lg\:row-gap-5{row-gap:1.25rem}.lg\:row-gap-6{row-gap:1.5rem}.lg\:row-gap-7{row-gap:2rem}.lg\:row-gap-8{row-gap:2.5rem}.lg\:row-gap-9{row-gap:3rem}.lg\:column-gap-0{-moz-column-gap:0;column-gap:0}.lg\:column-gap-1{-moz-column-gap:.25rem;column-gap:.25rem}.lg\:column-gap-2{-moz-column-gap:.5rem;column-gap:.5rem}.lg\:column-gap-3{-moz-column-gap:.75rem;column-gap:.75rem}.lg\:column-gap-4{-moz-column-gap:1rem;column-gap:1rem}.lg\:column-gap-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.lg\:column-gap-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.lg\:column-gap-7{-moz-column-gap:2rem;column-gap:2rem}.lg\:column-gap-8{-moz-column-gap:2.5rem;column-gap:2.5rem}.lg\:column-gap-9{-moz-column-gap:3rem;column-gap:3rem}:where(.lg\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.lg\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.lg\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.lg\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.lg\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.lg\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.lg\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.lg\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.lg\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.lg\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.lg\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.lg\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.lg\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.lg\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.lg\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.lg\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.lg\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.lg\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.lg\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.lg\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.lg\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.lg\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.lg\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.lg\:divide-y-0>:not(:first-child)){border-block-start:0}.lg\:text-start{text-align:start}.lg\:text-end{text-align:end}.lg\:text-center{text-align:center}}@media (min-width:1280px){.xl\:float-start{float:inline-start}.xl\:float-end{float:inline-end}.xl\:float-none{float:none}.xl\:object-fit-contain{-o-object-fit:contain;object-fit:contain}.xl\:object-fit-cover{-o-object-fit:cover;object-fit:cover}.xl\:object-fit-fill{-o-object-fit:fill;object-fit:fill}.xl\:object-fit-scale{-o-object-fit:scale-down;object-fit:scale-down}.xl\:object-fit-none{-o-object-fit:none;object-fit:none}.xl\:d-inline{display:inline}.xl\:d-inline-block{display:inline-block}.xl\:d-block{display:block}.xl\:d-grid{display:grid}.xl\:d-inline-grid{display:inline-grid}.xl\:d-table{display:table}.xl\:d-table-row{display:table-row}.xl\:d-table-cell{display:table-cell}.xl\:d-flex{display:flex}.xl\:d-inline-flex{display:inline-flex}.xl\:d-contents{display:contents}.xl\:d-flow-root{display:flow-root}.xl\:d-none{display:none}.xl\:flex-fill{flex:auto}.xl\:flex-row{flex-direction:row}.xl\:flex-column{flex-direction:column}.xl\:flex-row-reverse{flex-direction:row-reverse}.xl\:flex-column-reverse{flex-direction:column-reverse}.xl\:flex-grow-0{flex-grow:0}.xl\:flex-grow-1{flex-grow:1}.xl\:flex-shrink-0{flex-shrink:0}.xl\:flex-shrink-1{flex-shrink:1}.xl\:flex-wrap{flex-wrap:wrap}.xl\:flex-nowrap{flex-wrap:nowrap}.xl\:flex-wrap-reverse{flex-wrap:wrap-reverse}.xl\:justify-content-start{justify-content:flex-start}.xl\:justify-content-end{justify-content:flex-end}.xl\:justify-content-center{justify-content:center}.xl\:justify-content-between{justify-content:space-between}.xl\:justify-content-around{justify-content:space-around}.xl\:justify-content-evenly{justify-content:space-evenly}.xl\:justify-items-start{justify-items:start}.xl\:justify-items-end{justify-items:end}.xl\:justify-items-center{justify-items:center}.xl\:justify-items-stretch{justify-items:stretch}.xl\:justify-self-start{justify-self:start}.xl\:justify-self-end{justify-self:end}.xl\:justify-self-center{justify-self:center}.xl\:align-items-start{align-items:flex-start}.xl\:align-items-end{align-items:flex-end}.xl\:align-items-center{align-items:center}.xl\:align-items-baseline{align-items:baseline}.xl\:align-items-stretch{align-items:stretch}.xl\:align-content-start{align-content:flex-start}.xl\:align-content-end{align-content:flex-end}.xl\:align-content-center{align-content:center}.xl\:align-content-between{align-content:space-between}.xl\:align-content-around{align-content:space-around}.xl\:align-content-stretch{align-content:stretch}.xl\:align-self-auto{align-self:auto}.xl\:align-self-start{align-self:flex-start}.xl\:align-self-end{align-self:flex-end}.xl\:align-self-center{align-self:center}.xl\:align-self-baseline{align-self:baseline}.xl\:align-self-stretch{align-self:stretch}.xl\:place-items-start{place-items:start}.xl\:place-items-end{place-items:end}.xl\:place-items-center{place-items:center}.xl\:place-items-stretch{place-items:stretch stretch}.xl\:grid-cols-1{grid-template-columns:1fr}.xl\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.xl\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.xl\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.xl\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.xl\:grid-cols-fill{grid-column:1/-1}.xl\:grid-auto-flow-row{grid-auto-flow:row}.xl\:grid-auto-flow-column{grid-auto-flow:column}.xl\:grid-auto-flow-dense{grid-auto-flow:dense}.xl\:order-first{order:-1}.xl\:order-0{order:0}.xl\:order-1{order:1}.xl\:order-2{order:2}.xl\:order-3{order:3}.xl\:order-4{order:4}.xl\:order-5{order:5}.xl\:order-last{order:6}.xl\:m-0{margin:0}.xl\:m-1{margin:.25rem}.xl\:m-2{margin:.5rem}.xl\:m-3{margin:.75rem}.xl\:m-4{margin:1rem}.xl\:m-5{margin:1.25rem}.xl\:m-6{margin:1.5rem}.xl\:m-7{margin:2rem}.xl\:m-8{margin:2.5rem}.xl\:m-9{margin:3rem}.xl\:m-auto{margin:auto}.xl\:mx-0{margin-inline:0}.xl\:mx-1{margin-inline:.25rem}.xl\:mx-2{margin-inline:.5rem}.xl\:mx-3{margin-inline:.75rem}.xl\:mx-4{margin-inline:1rem}.xl\:mx-5{margin-inline:1.25rem}.xl\:mx-6{margin-inline:1.5rem}.xl\:mx-7{margin-inline:2rem}.xl\:mx-8{margin-inline:2.5rem}.xl\:mx-9{margin-inline:3rem}.xl\:mx-auto{margin-inline:auto}.xl\:my-0{margin-block:0}.xl\:my-1{margin-block:.25rem}.xl\:my-2{margin-block:.5rem}.xl\:my-3{margin-block:.75rem}.xl\:my-4{margin-block:1rem}.xl\:my-5{margin-block:1.25rem}.xl\:my-6{margin-block:1.5rem}.xl\:my-7{margin-block:2rem}.xl\:my-8{margin-block:2.5rem}.xl\:my-9{margin-block:3rem}.xl\:my-auto{margin-block:auto}.xl\:mt-0{margin-block-start:0}.xl\:mt-1{margin-block-start:.25rem}.xl\:mt-2{margin-block-start:.5rem}.xl\:mt-3{margin-block-start:.75rem}.xl\:mt-4{margin-block-start:1rem}.xl\:mt-5{margin-block-start:1.25rem}.xl\:mt-6{margin-block-start:1.5rem}.xl\:mt-7{margin-block-start:2rem}.xl\:mt-8{margin-block-start:2.5rem}.xl\:mt-9{margin-block-start:3rem}.xl\:mt-auto{margin-block-start:auto}.xl\:me-0{margin-inline-end:0}.xl\:me-1{margin-inline-end:.25rem}.xl\:me-2{margin-inline-end:.5rem}.xl\:me-3{margin-inline-end:.75rem}.xl\:me-4{margin-inline-end:1rem}.xl\:me-5{margin-inline-end:1.25rem}.xl\:me-6{margin-inline-end:1.5rem}.xl\:me-7{margin-inline-end:2rem}.xl\:me-8{margin-inline-end:2.5rem}.xl\:me-9{margin-inline-end:3rem}.xl\:me--1{margin-inline-end:-.25rem}.xl\:me--2{margin-inline-end:-.5rem}.xl\:me-auto{margin-inline-end:auto}.xl\:mb-0{margin-block-end:0}.xl\:mb-1{margin-block-end:.25rem}.xl\:mb-2{margin-block-end:.5rem}.xl\:mb-3{margin-block-end:.75rem}.xl\:mb-4{margin-block-end:1rem}.xl\:mb-5{margin-block-end:1.25rem}.xl\:mb-6{margin-block-end:1.5rem}.xl\:mb-7{margin-block-end:2rem}.xl\:mb-8{margin-block-end:2.5rem}.xl\:mb-9{margin-block-end:3rem}.xl\:mb-auto{margin-block-end:auto}.xl\:ms-0{margin-inline-start:0}.xl\:ms-1{margin-inline-start:.25rem}.xl\:ms-2{margin-inline-start:.5rem}.xl\:ms-3{margin-inline-start:.75rem}.xl\:ms-4{margin-inline-start:1rem}.xl\:ms-5{margin-inline-start:1.25rem}.xl\:ms-6{margin-inline-start:1.5rem}.xl\:ms-7{margin-inline-start:2rem}.xl\:ms-8{margin-inline-start:2.5rem}.xl\:ms-9{margin-inline-start:3rem}.xl\:ms--1{margin-inline-start:-.25rem}.xl\:ms--2{margin-inline-start:-.5rem}.xl\:ms-auto{margin-inline-start:auto}.xl\:p-0{padding:0}.xl\:p-1{padding:.25rem}.xl\:p-2{padding:.5rem}.xl\:p-3{padding:.75rem}.xl\:p-4{padding:1rem}.xl\:p-5{padding:1.25rem}.xl\:p-6{padding:1.5rem}.xl\:p-7{padding:2rem}.xl\:p-8{padding:2.5rem}.xl\:p-9{padding:3rem}.xl\:px-0{padding-inline:0}.xl\:px-1{padding-inline:.25rem}.xl\:px-2{padding-inline:.5rem}.xl\:px-3{padding-inline:.75rem}.xl\:px-4{padding-inline:1rem}.xl\:px-5{padding-inline:1.25rem}.xl\:px-6{padding-inline:1.5rem}.xl\:px-7{padding-inline:2rem}.xl\:px-8{padding-inline:2.5rem}.xl\:px-9{padding-inline:3rem}.xl\:py-0{padding-block:0}.xl\:py-1{padding-block:.25rem}.xl\:py-2{padding-block:.5rem}.xl\:py-3{padding-block:.75rem}.xl\:py-4{padding-block:1rem}.xl\:py-5{padding-block:1.25rem}.xl\:py-6{padding-block:1.5rem}.xl\:py-7{padding-block:2rem}.xl\:py-8{padding-block:2.5rem}.xl\:py-9{padding-block:3rem}.xl\:pt-0{padding-block-start:0}.xl\:pt-1{padding-block-start:.25rem}.xl\:pt-2{padding-block-start:.5rem}.xl\:pt-3{padding-block-start:.75rem}.xl\:pt-4{padding-block-start:1rem}.xl\:pt-5{padding-block-start:1.25rem}.xl\:pt-6{padding-block-start:1.5rem}.xl\:pt-7{padding-block-start:2rem}.xl\:pt-8{padding-block-start:2.5rem}.xl\:pt-9{padding-block-start:3rem}.xl\:pe-0{padding-inline-end:0}.xl\:pe-1{padding-inline-end:.25rem}.xl\:pe-2{padding-inline-end:.5rem}.xl\:pe-3{padding-inline-end:.75rem}.xl\:pe-4{padding-inline-end:1rem}.xl\:pe-5{padding-inline-end:1.25rem}.xl\:pe-6{padding-inline-end:1.5rem}.xl\:pe-7{padding-inline-end:2rem}.xl\:pe-8{padding-inline-end:2.5rem}.xl\:pe-9{padding-inline-end:3rem}.xl\:pb-0{padding-block-end:0}.xl\:pb-1{padding-block-end:.25rem}.xl\:pb-2{padding-block-end:.5rem}.xl\:pb-3{padding-block-end:.75rem}.xl\:pb-4{padding-block-end:1rem}.xl\:pb-5{padding-block-end:1.25rem}.xl\:pb-6{padding-block-end:1.5rem}.xl\:pb-7{padding-block-end:2rem}.xl\:pb-8{padding-block-end:2.5rem}.xl\:pb-9{padding-block-end:3rem}.xl\:ps-0{padding-inline-start:0}.xl\:ps-1{padding-inline-start:.25rem}.xl\:ps-2{padding-inline-start:.5rem}.xl\:ps-3{padding-inline-start:.75rem}.xl\:ps-4{padding-inline-start:1rem}.xl\:ps-5{padding-inline-start:1.25rem}.xl\:ps-6{padding-inline-start:1.5rem}.xl\:ps-7{padding-inline-start:2rem}.xl\:ps-8{padding-inline-start:2.5rem}.xl\:ps-9{padding-inline-start:3rem}.xl\:gap-0{gap:0}.xl\:gap-1{gap:.25rem}.xl\:gap-2{gap:.5rem}.xl\:gap-3{gap:.75rem}.xl\:gap-4{gap:1rem}.xl\:gap-5{gap:1.25rem}.xl\:gap-6{gap:1.5rem}.xl\:gap-7{gap:2rem}.xl\:gap-8{gap:2.5rem}.xl\:gap-9{gap:3rem}.xl\:row-gap-0{row-gap:0}.xl\:row-gap-1{row-gap:.25rem}.xl\:row-gap-2{row-gap:.5rem}.xl\:row-gap-3{row-gap:.75rem}.xl\:row-gap-4{row-gap:1rem}.xl\:row-gap-5{row-gap:1.25rem}.xl\:row-gap-6{row-gap:1.5rem}.xl\:row-gap-7{row-gap:2rem}.xl\:row-gap-8{row-gap:2.5rem}.xl\:row-gap-9{row-gap:3rem}.xl\:column-gap-0{-moz-column-gap:0;column-gap:0}.xl\:column-gap-1{-moz-column-gap:.25rem;column-gap:.25rem}.xl\:column-gap-2{-moz-column-gap:.5rem;column-gap:.5rem}.xl\:column-gap-3{-moz-column-gap:.75rem;column-gap:.75rem}.xl\:column-gap-4{-moz-column-gap:1rem;column-gap:1rem}.xl\:column-gap-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.xl\:column-gap-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.xl\:column-gap-7{-moz-column-gap:2rem;column-gap:2rem}.xl\:column-gap-8{-moz-column-gap:2.5rem;column-gap:2.5rem}.xl\:column-gap-9{-moz-column-gap:3rem;column-gap:3rem}:where(.xl\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.xl\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.xl\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.xl\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.xl\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.xl\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.xl\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.xl\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.xl\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.xl\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.xl\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.xl\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.xl\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.xl\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.xl\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.xl\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.xl\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.xl\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.xl\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.xl\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.xl\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.xl\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.xl\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.xl\:divide-y-0>:not(:first-child)){border-block-start:0}.xl\:text-start{text-align:start}.xl\:text-end{text-align:end}.xl\:text-center{text-align:center}}@media (min-width:1536px){.\32 xl\:float-start{float:inline-start}.\32 xl\:float-end{float:inline-end}.\32 xl\:float-none{float:none}.\32 xl\:object-fit-contain{-o-object-fit:contain;object-fit:contain}.\32 xl\:object-fit-cover{-o-object-fit:cover;object-fit:cover}.\32 xl\:object-fit-fill{-o-object-fit:fill;object-fit:fill}.\32 xl\:object-fit-scale{-o-object-fit:scale-down;object-fit:scale-down}.\32 xl\:object-fit-none{-o-object-fit:none;object-fit:none}.\32 xl\:d-inline{display:inline}.\32 xl\:d-inline-block{display:inline-block}.\32 xl\:d-block{display:block}.\32 xl\:d-grid{display:grid}.\32 xl\:d-inline-grid{display:inline-grid}.\32 xl\:d-table{display:table}.\32 xl\:d-table-row{display:table-row}.\32 xl\:d-table-cell{display:table-cell}.\32 xl\:d-flex{display:flex}.\32 xl\:d-inline-flex{display:inline-flex}.\32 xl\:d-contents{display:contents}.\32 xl\:d-flow-root{display:flow-root}.\32 xl\:d-none{display:none}.\32 xl\:flex-fill{flex:auto}.\32 xl\:flex-row{flex-direction:row}.\32 xl\:flex-column{flex-direction:column}.\32 xl\:flex-row-reverse{flex-direction:row-reverse}.\32 xl\:flex-column-reverse{flex-direction:column-reverse}.\32 xl\:flex-grow-0{flex-grow:0}.\32 xl\:flex-grow-1{flex-grow:1}.\32 xl\:flex-shrink-0{flex-shrink:0}.\32 xl\:flex-shrink-1{flex-shrink:1}.\32 xl\:flex-wrap{flex-wrap:wrap}.\32 xl\:flex-nowrap{flex-wrap:nowrap}.\32 xl\:flex-wrap-reverse{flex-wrap:wrap-reverse}.\32 xl\:justify-content-start{justify-content:flex-start}.\32 xl\:justify-content-end{justify-content:flex-end}.\32 xl\:justify-content-center{justify-content:center}.\32 xl\:justify-content-between{justify-content:space-between}.\32 xl\:justify-content-around{justify-content:space-around}.\32 xl\:justify-content-evenly{justify-content:space-evenly}.\32 xl\:justify-items-start{justify-items:start}.\32 xl\:justify-items-end{justify-items:end}.\32 xl\:justify-items-center{justify-items:center}.\32 xl\:justify-items-stretch{justify-items:stretch}.\32 xl\:justify-self-start{justify-self:start}.\32 xl\:justify-self-end{justify-self:end}.\32 xl\:justify-self-center{justify-self:center}.\32 xl\:align-items-start{align-items:flex-start}.\32 xl\:align-items-end{align-items:flex-end}.\32 xl\:align-items-center{align-items:center}.\32 xl\:align-items-baseline{align-items:baseline}.\32 xl\:align-items-stretch{align-items:stretch}.\32 xl\:align-content-start{align-content:flex-start}.\32 xl\:align-content-end{align-content:flex-end}.\32 xl\:align-content-center{align-content:center}.\32 xl\:align-content-between{align-content:space-between}.\32 xl\:align-content-around{align-content:space-around}.\32 xl\:align-content-stretch{align-content:stretch}.\32 xl\:align-self-auto{align-self:auto}.\32 xl\:align-self-start{align-self:flex-start}.\32 xl\:align-self-end{align-self:flex-end}.\32 xl\:align-self-center{align-self:center}.\32 xl\:align-self-baseline{align-self:baseline}.\32 xl\:align-self-stretch{align-self:stretch}.\32 xl\:place-items-start{place-items:start}.\32 xl\:place-items-end{place-items:end}.\32 xl\:place-items-center{place-items:center}.\32 xl\:place-items-stretch{place-items:stretch stretch}.\32 xl\:grid-cols-1{grid-template-columns:1fr}.\32 xl\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.\32 xl\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.\32 xl\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.\32 xl\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.\32 xl\:grid-cols-fill{grid-column:1/-1}.\32 xl\:grid-auto-flow-row{grid-auto-flow:row}.\32 xl\:grid-auto-flow-column{grid-auto-flow:column}.\32 xl\:grid-auto-flow-dense{grid-auto-flow:dense}.\32 xl\:order-first{order:-1}.\32 xl\:order-0{order:0}.\32 xl\:order-1{order:1}.\32 xl\:order-2{order:2}.\32 xl\:order-3{order:3}.\32 xl\:order-4{order:4}.\32 xl\:order-5{order:5}.\32 xl\:order-last{order:6}.\32 xl\:m-0{margin:0}.\32 xl\:m-1{margin:.25rem}.\32 xl\:m-2{margin:.5rem}.\32 xl\:m-3{margin:.75rem}.\32 xl\:m-4{margin:1rem}.\32 xl\:m-5{margin:1.25rem}.\32 xl\:m-6{margin:1.5rem}.\32 xl\:m-7{margin:2rem}.\32 xl\:m-8{margin:2.5rem}.\32 xl\:m-9{margin:3rem}.\32 xl\:m-auto{margin:auto}.\32 xl\:mx-0{margin-inline:0}.\32 xl\:mx-1{margin-inline:.25rem}.\32 xl\:mx-2{margin-inline:.5rem}.\32 xl\:mx-3{margin-inline:.75rem}.\32 xl\:mx-4{margin-inline:1rem}.\32 xl\:mx-5{margin-inline:1.25rem}.\32 xl\:mx-6{margin-inline:1.5rem}.\32 xl\:mx-7{margin-inline:2rem}.\32 xl\:mx-8{margin-inline:2.5rem}.\32 xl\:mx-9{margin-inline:3rem}.\32 xl\:mx-auto{margin-inline:auto}.\32 xl\:my-0{margin-block:0}.\32 xl\:my-1{margin-block:.25rem}.\32 xl\:my-2{margin-block:.5rem}.\32 xl\:my-3{margin-block:.75rem}.\32 xl\:my-4{margin-block:1rem}.\32 xl\:my-5{margin-block:1.25rem}.\32 xl\:my-6{margin-block:1.5rem}.\32 xl\:my-7{margin-block:2rem}.\32 xl\:my-8{margin-block:2.5rem}.\32 xl\:my-9{margin-block:3rem}.\32 xl\:my-auto{margin-block:auto}.\32 xl\:mt-0{margin-block-start:0}.\32 xl\:mt-1{margin-block-start:.25rem}.\32 xl\:mt-2{margin-block-start:.5rem}.\32 xl\:mt-3{margin-block-start:.75rem}.\32 xl\:mt-4{margin-block-start:1rem}.\32 xl\:mt-5{margin-block-start:1.25rem}.\32 xl\:mt-6{margin-block-start:1.5rem}.\32 xl\:mt-7{margin-block-start:2rem}.\32 xl\:mt-8{margin-block-start:2.5rem}.\32 xl\:mt-9{margin-block-start:3rem}.\32 xl\:mt-auto{margin-block-start:auto}.\32 xl\:me-0{margin-inline-end:0}.\32 xl\:me-1{margin-inline-end:.25rem}.\32 xl\:me-2{margin-inline-end:.5rem}.\32 xl\:me-3{margin-inline-end:.75rem}.\32 xl\:me-4{margin-inline-end:1rem}.\32 xl\:me-5{margin-inline-end:1.25rem}.\32 xl\:me-6{margin-inline-end:1.5rem}.\32 xl\:me-7{margin-inline-end:2rem}.\32 xl\:me-8{margin-inline-end:2.5rem}.\32 xl\:me-9{margin-inline-end:3rem}.\32 xl\:me--1{margin-inline-end:-.25rem}.\32 xl\:me--2{margin-inline-end:-.5rem}.\32 xl\:me-auto{margin-inline-end:auto}.\32 xl\:mb-0{margin-block-end:0}.\32 xl\:mb-1{margin-block-end:.25rem}.\32 xl\:mb-2{margin-block-end:.5rem}.\32 xl\:mb-3{margin-block-end:.75rem}.\32 xl\:mb-4{margin-block-end:1rem}.\32 xl\:mb-5{margin-block-end:1.25rem}.\32 xl\:mb-6{margin-block-end:1.5rem}.\32 xl\:mb-7{margin-block-end:2rem}.\32 xl\:mb-8{margin-block-end:2.5rem}.\32 xl\:mb-9{margin-block-end:3rem}.\32 xl\:mb-auto{margin-block-end:auto}.\32 xl\:ms-0{margin-inline-start:0}.\32 xl\:ms-1{margin-inline-start:.25rem}.\32 xl\:ms-2{margin-inline-start:.5rem}.\32 xl\:ms-3{margin-inline-start:.75rem}.\32 xl\:ms-4{margin-inline-start:1rem}.\32 xl\:ms-5{margin-inline-start:1.25rem}.\32 xl\:ms-6{margin-inline-start:1.5rem}.\32 xl\:ms-7{margin-inline-start:2rem}.\32 xl\:ms-8{margin-inline-start:2.5rem}.\32 xl\:ms-9{margin-inline-start:3rem}.\32 xl\:ms--1{margin-inline-start:-.25rem}.\32 xl\:ms--2{margin-inline-start:-.5rem}.\32 xl\:ms-auto{margin-inline-start:auto}.\32 xl\:p-0{padding:0}.\32 xl\:p-1{padding:.25rem}.\32 xl\:p-2{padding:.5rem}.\32 xl\:p-3{padding:.75rem}.\32 xl\:p-4{padding:1rem}.\32 xl\:p-5{padding:1.25rem}.\32 xl\:p-6{padding:1.5rem}.\32 xl\:p-7{padding:2rem}.\32 xl\:p-8{padding:2.5rem}.\32 xl\:p-9{padding:3rem}.\32 xl\:px-0{padding-inline:0}.\32 xl\:px-1{padding-inline:.25rem}.\32 xl\:px-2{padding-inline:.5rem}.\32 xl\:px-3{padding-inline:.75rem}.\32 xl\:px-4{padding-inline:1rem}.\32 xl\:px-5{padding-inline:1.25rem}.\32 xl\:px-6{padding-inline:1.5rem}.\32 xl\:px-7{padding-inline:2rem}.\32 xl\:px-8{padding-inline:2.5rem}.\32 xl\:px-9{padding-inline:3rem}.\32 xl\:py-0{padding-block:0}.\32 xl\:py-1{padding-block:.25rem}.\32 xl\:py-2{padding-block:.5rem}.\32 xl\:py-3{padding-block:.75rem}.\32 xl\:py-4{padding-block:1rem}.\32 xl\:py-5{padding-block:1.25rem}.\32 xl\:py-6{padding-block:1.5rem}.\32 xl\:py-7{padding-block:2rem}.\32 xl\:py-8{padding-block:2.5rem}.\32 xl\:py-9{padding-block:3rem}.\32 xl\:pt-0{padding-block-start:0}.\32 xl\:pt-1{padding-block-start:.25rem}.\32 xl\:pt-2{padding-block-start:.5rem}.\32 xl\:pt-3{padding-block-start:.75rem}.\32 xl\:pt-4{padding-block-start:1rem}.\32 xl\:pt-5{padding-block-start:1.25rem}.\32 xl\:pt-6{padding-block-start:1.5rem}.\32 xl\:pt-7{padding-block-start:2rem}.\32 xl\:pt-8{padding-block-start:2.5rem}.\32 xl\:pt-9{padding-block-start:3rem}.\32 xl\:pe-0{padding-inline-end:0}.\32 xl\:pe-1{padding-inline-end:.25rem}.\32 xl\:pe-2{padding-inline-end:.5rem}.\32 xl\:pe-3{padding-inline-end:.75rem}.\32 xl\:pe-4{padding-inline-end:1rem}.\32 xl\:pe-5{padding-inline-end:1.25rem}.\32 xl\:pe-6{padding-inline-end:1.5rem}.\32 xl\:pe-7{padding-inline-end:2rem}.\32 xl\:pe-8{padding-inline-end:2.5rem}.\32 xl\:pe-9{padding-inline-end:3rem}.\32 xl\:pb-0{padding-block-end:0}.\32 xl\:pb-1{padding-block-end:.25rem}.\32 xl\:pb-2{padding-block-end:.5rem}.\32 xl\:pb-3{padding-block-end:.75rem}.\32 xl\:pb-4{padding-block-end:1rem}.\32 xl\:pb-5{padding-block-end:1.25rem}.\32 xl\:pb-6{padding-block-end:1.5rem}.\32 xl\:pb-7{padding-block-end:2rem}.\32 xl\:pb-8{padding-block-end:2.5rem}.\32 xl\:pb-9{padding-block-end:3rem}.\32 xl\:ps-0{padding-inline-start:0}.\32 xl\:ps-1{padding-inline-start:.25rem}.\32 xl\:ps-2{padding-inline-start:.5rem}.\32 xl\:ps-3{padding-inline-start:.75rem}.\32 xl\:ps-4{padding-inline-start:1rem}.\32 xl\:ps-5{padding-inline-start:1.25rem}.\32 xl\:ps-6{padding-inline-start:1.5rem}.\32 xl\:ps-7{padding-inline-start:2rem}.\32 xl\:ps-8{padding-inline-start:2.5rem}.\32 xl\:ps-9{padding-inline-start:3rem}.\32 xl\:gap-0{gap:0}.\32 xl\:gap-1{gap:.25rem}.\32 xl\:gap-2{gap:.5rem}.\32 xl\:gap-3{gap:.75rem}.\32 xl\:gap-4{gap:1rem}.\32 xl\:gap-5{gap:1.25rem}.\32 xl\:gap-6{gap:1.5rem}.\32 xl\:gap-7{gap:2rem}.\32 xl\:gap-8{gap:2.5rem}.\32 xl\:gap-9{gap:3rem}.\32 xl\:row-gap-0{row-gap:0}.\32 xl\:row-gap-1{row-gap:.25rem}.\32 xl\:row-gap-2{row-gap:.5rem}.\32 xl\:row-gap-3{row-gap:.75rem}.\32 xl\:row-gap-4{row-gap:1rem}.\32 xl\:row-gap-5{row-gap:1.25rem}.\32 xl\:row-gap-6{row-gap:1.5rem}.\32 xl\:row-gap-7{row-gap:2rem}.\32 xl\:row-gap-8{row-gap:2.5rem}.\32 xl\:row-gap-9{row-gap:3rem}.\32 xl\:column-gap-0{-moz-column-gap:0;column-gap:0}.\32 xl\:column-gap-1{-moz-column-gap:.25rem;column-gap:.25rem}.\32 xl\:column-gap-2{-moz-column-gap:.5rem;column-gap:.5rem}.\32 xl\:column-gap-3{-moz-column-gap:.75rem;column-gap:.75rem}.\32 xl\:column-gap-4{-moz-column-gap:1rem;column-gap:1rem}.\32 xl\:column-gap-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.\32 xl\:column-gap-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.\32 xl\:column-gap-7{-moz-column-gap:2rem;column-gap:2rem}.\32 xl\:column-gap-8{-moz-column-gap:2.5rem;column-gap:2.5rem}.\32 xl\:column-gap-9{-moz-column-gap:3rem;column-gap:3rem}:where(.\32 xl\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.\32 xl\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.\32 xl\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.\32 xl\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.\32 xl\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.\32 xl\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.\32 xl\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.\32 xl\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.\32 xl\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.\32 xl\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.\32 xl\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.\32 xl\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.\32 xl\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.\32 xl\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.\32 xl\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.\32 xl\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.\32 xl\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.\32 xl\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.\32 xl\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.\32 xl\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.\32 xl\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.\32 xl\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.\32 xl\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.\32 xl\:divide-y-0>:not(:first-child)){border-block-start:0}.\32 xl\:text-start{text-align:start}.\32 xl\:text-end{text-align:end}.\32 xl\:text-center{text-align:center}}}:root{--bs-black:#000;--bs-white:#fff;--bs-gradient:linear-gradient(180deg, color-mix(var(--bs-white) 15%, transparent), color-mix(var(--bs-white) 0%, transparent));--bs-font-weight-lighter:lighter;--bs-font-weight-light:300;--bs-font-weight-normal:400;--bs-font-weight-medium:500;--bs-font-weight-semibold:600;--bs-font-weight-bold:700;--bs-font-weight-bolder:bolder;--bs-body-font-family:system-ui;--bs-body-font-size:var(--bs-font-size-base);--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-heading-color:inherit;--bs-hr-border-color:var(--bs-border-color);--bs-link-color:var(--lightningcss-light,var(--bs-primary-base))var(--lightningcss-dark,var(--bs-primary-fg));--bs-link-decoration:underline;--bs-link-hover-color:color-mix(in oklch, var(--bs-link-color) 90%, #000);--bs-font-mono:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-code-font-size:95%;--bs-code-color:var(--bs-fg-2);--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:var(--lightningcss-light,color-mix(in oklch, var(--bs-gray-100), var(--bs-gray-200)))var(--lightningcss-dark,var(--bs-gray-700));--bs-border-color-translucent:color-mix(in oklch, var(--bs-fg-body) 15%, transparent);--bs-box-shadow:0 .5rem 1rem #00000026;--bs-box-shadow-sm:0 .125rem .25rem #00000013;--bs-box-shadow-lg:0 1rem 3rem #0000002d;--bs-box-shadow-inset:inset 0 1px 2px #00000013;--bs-spacer:1rem;--bs-focus-ring-width:3px;--bs-focus-ring-offset:1px;--bs-focus-ring-color:var(--bs-primary-focus-ring);--bs-focus-ring:var(--bs-focus-ring-width) solid var(--bs-focus-ring-color);--bs-control-checked-bg:var(--bs-primary-base);--bs-control-checked-border-color:var(--bs-control-checked-bg);--bs-control-active-bg:var(--bs-primary-base);--bs-control-active-border-color:var(--bs-control-active-bg);--bs-control-disabled-bg:var(--bs-bg-3);--bs-control-disabled-opacity:.65;--bs-btn-input-fg:var(--bs-fg-body);--bs-btn-input-bg:var(--bs-bg-body);--bs-btn-input-min-height:2.375rem;--bs-btn-input-padding-y:.375rem;--bs-btn-input-padding-x:.75rem;--bs-btn-input-font-size:var(--bs-font-size-base);--bs-btn-input-line-height:var(--bs-line-height-base);--bs-btn-input-border-radius:var(--bs-radius-5);--bs-btn-input-xs-min-height:1.5rem;--bs-btn-input-xs-padding-y:.125rem;--bs-btn-input-xs-padding-x:.5rem;--bs-btn-input-xs-font-size:var(--bs-font-size-xs);--bs-btn-input-xs-line-height:1.125;--bs-btn-input-xs-border-radius:var(--bs-radius-5);--bs-btn-input-sm-min-height:2rem;--bs-btn-input-sm-padding-y:.25rem;--bs-btn-input-sm-padding-x:.625rem;--bs-btn-input-sm-font-size:var(--bs-font-size-sm);--bs-btn-input-sm-line-height:var(--bs-line-height-sm);--bs-btn-input-sm-border-radius:var(--bs-radius-5);--bs-btn-input-lg-min-height:2.75rem;--bs-btn-input-lg-padding-y:.5rem;--bs-btn-input-lg-padding-x:1rem;--bs-btn-input-lg-font-size:var(--bs-font-size-md);--bs-btn-input-lg-line-height:var(--bs-line-height-md);--bs-btn-input-lg-border-radius:var(--bs-radius-7);--bs-font-size-xs:.75rem;--bs-line-height-xs:1.25;--bs-font-size-sm:.875rem;--bs-line-height-sm:1.5;--bs-font-size-md:1rem;--bs-line-height-md:1.5;--bs-font-size-lg:clamp(1.25rem, 1rem + .625vw, 1.5rem);--bs-line-height-lg:1.5;--bs-font-size-xl:clamp(1.5rem, 1.1rem + .75vw, 1.75rem);--bs-line-height-xl:1.42857;--bs-font-size-2xl:clamp(1.75rem, 1.3rem + 1vw, 2rem);--bs-line-height-2xl:1.33333;--bs-font-size-3xl:clamp(2rem, 1.5rem + 1.875vw, 2.5rem);--bs-line-height-3xl:1.2;--bs-font-size-4xl:clamp(2.25rem, 1.75rem + 2.5vw, 3rem);--bs-line-height-4xl:1.1;--bs-font-size-5xl:clamp(3rem, 2rem + 5vw, 4rem);--bs-line-height-5xl:1.1;--bs-font-size-6xl:clamp(3.75rem, 2.5rem + 6.25vw, 5rem);--bs-line-height-6xl:1;--bs-primary-base:var(--bs-blue-500);--bs-primary-fg:var(--lightningcss-light,var(--bs-blue-600))var(--lightningcss-dark,var(--bs-blue-400));--bs-primary-fg-emphasis:var(--lightningcss-light,var(--bs-blue-800))var(--lightningcss-dark,var(--bs-blue-200));--bs-primary-bg:var(--bs-blue-500);--bs-primary-bg-subtle:var(--lightningcss-light,var(--bs-blue-100))var(--lightningcss-dark,var(--bs-blue-900));--bs-primary-bg-muted:var(--lightningcss-light,var(--bs-blue-200))var(--lightningcss-dark,var(--bs-blue-800));--bs-primary-border:var(--lightningcss-light,var(--bs-blue-300))var(--lightningcss-dark,var(--bs-blue-600));--bs-primary-focus-ring:var(--lightningcss-light,color-mix(in oklch, var(--bs-blue-500) 50%, var(--bs-bg-body)))var(--lightningcss-dark,color-mix(in oklch, var(--bs-blue-500) 75%, var(--bs-bg-body)));--bs-primary-contrast:var(--bs-white);--bs-accent-base:var(--bs-indigo-500);--bs-accent-fg:var(--lightningcss-light,var(--bs-indigo-600))var(--lightningcss-dark,color-mix(in oklch, var(--bs-indigo-400), var(--bs-indigo-300)));--bs-accent-fg-emphasis:var(--lightningcss-light,var(--bs-indigo-800))var(--lightningcss-dark,var(--bs-indigo-300));--bs-accent-bg:var(--bs-indigo-500);--bs-accent-bg-subtle:var(--lightningcss-light,var(--bs-indigo-100))var(--lightningcss-dark,var(--bs-indigo-900));--bs-accent-bg-muted:var(--lightningcss-light,var(--bs-indigo-200))var(--lightningcss-dark,var(--bs-indigo-800));--bs-accent-border:var(--lightningcss-light,var(--bs-indigo-300))var(--lightningcss-dark,var(--bs-indigo-600));--bs-accent-focus-ring:var(--lightningcss-light,color-mix(in oklch, var(--bs-indigo-500) 50%, var(--bs-bg-body)))var(--lightningcss-dark,color-mix(in oklch, var(--bs-indigo-500) 75%, var(--bs-bg-body)));--bs-accent-contrast:var(--bs-white);--bs-success-base:var(--bs-green-500);--bs-success-fg:var(--lightningcss-light,var(--bs-green-600))var(--lightningcss-dark,var(--bs-green-400));--bs-success-fg-emphasis:var(--lightningcss-light,var(--bs-green-800))var(--lightningcss-dark,var(--bs-green-300));--bs-success-bg:var(--bs-green-500);--bs-success-bg-subtle:var(--lightningcss-light,var(--bs-green-100))var(--lightningcss-dark,var(--bs-green-900));--bs-success-bg-muted:var(--lightningcss-light,var(--bs-green-200))var(--lightningcss-dark,var(--bs-green-800));--bs-success-border:var(--lightningcss-light,var(--bs-green-300))var(--lightningcss-dark,var(--bs-green-600));--bs-success-focus-ring:var(--lightningcss-light,color-mix(in oklch, var(--bs-green-500) 50%, var(--bs-bg-body)))var(--lightningcss-dark,color-mix(in oklch, var(--bs-green-500) 75%, var(--bs-bg-body)));--bs-success-contrast:var(--bs-white);--bs-danger-base:var(--bs-red-500);--bs-danger-fg:var(--lightningcss-light,var(--bs-red-600))var(--lightningcss-dark,var(--bs-red-400));--bs-danger-fg-emphasis:var(--lightningcss-light,var(--bs-red-800))var(--lightningcss-dark,var(--bs-red-300));--bs-danger-bg:var(--bs-red-500);--bs-danger-bg-subtle:var(--lightningcss-light,var(--bs-red-100))var(--lightningcss-dark,var(--bs-red-900));--bs-danger-bg-muted:var(--lightningcss-light,var(--bs-red-200))var(--lightningcss-dark,var(--bs-red-800));--bs-danger-border:var(--lightningcss-light,var(--bs-red-300))var(--lightningcss-dark,var(--bs-red-600));--bs-danger-focus-ring:var(--lightningcss-light,color-mix(in oklch, var(--bs-red-500) 50%, var(--bs-bg-body)))var(--lightningcss-dark,color-mix(in oklch, var(--bs-red-500) 75%, var(--bs-bg-body)));--bs-danger-contrast:var(--bs-white);--bs-warning-base:var(--bs-yellow-500);--bs-warning-fg:var(--lightningcss-light,var(--bs-yellow-700))var(--lightningcss-dark,var(--bs-yellow-400));--bs-warning-fg-emphasis:var(--lightningcss-light,var(--bs-yellow-800))var(--lightningcss-dark,var(--bs-yellow-300));--bs-warning-bg:var(--bs-yellow-500);--bs-warning-bg-subtle:var(--lightningcss-light,var(--bs-yellow-100))var(--lightningcss-dark,var(--bs-yellow-900));--bs-warning-bg-muted:var(--lightningcss-light,var(--bs-yellow-200))var(--lightningcss-dark,var(--bs-yellow-800));--bs-warning-border:var(--lightningcss-light,var(--bs-yellow-300))var(--lightningcss-dark,var(--bs-yellow-600));--bs-warning-focus-ring:var(--lightningcss-light,color-mix(in oklch, var(--bs-yellow-500) 50%, var(--bs-bg-body)))var(--lightningcss-dark,color-mix(in oklch, var(--bs-yellow-400) 85%, var(--bs-bg-body)));--bs-warning-contrast:var(--bs-gray-900);--bs-info-base:var(--bs-cyan-500);--bs-info-fg:var(--lightningcss-light,var(--bs-cyan-600))var(--lightningcss-dark,var(--bs-cyan-400));--bs-info-fg-emphasis:var(--lightningcss-light,var(--bs-cyan-800))var(--lightningcss-dark,var(--bs-cyan-300));--bs-info-bg:var(--bs-cyan-500);--bs-info-bg-subtle:var(--lightningcss-light,var(--bs-cyan-100))var(--lightningcss-dark,var(--bs-cyan-900));--bs-info-bg-muted:var(--lightningcss-light,var(--bs-cyan-200))var(--lightningcss-dark,var(--bs-cyan-800));--bs-info-border:var(--lightningcss-light,var(--bs-cyan-300))var(--lightningcss-dark,var(--bs-cyan-600));--bs-info-focus-ring:var(--lightningcss-light,color-mix(in oklch, var(--bs-cyan-500) 50%, var(--bs-bg-body)))var(--lightningcss-dark,color-mix(in oklch, var(--bs-cyan-500) 75%, var(--bs-bg-body)));--bs-info-contrast:var(--bs-gray-900);--bs-inverse-base:var(--bs-gray-900);--bs-inverse-fg:var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-gray-200));--bs-inverse-fg-emphasis:var(--lightningcss-light,var(--bs-gray-975))var(--lightningcss-dark,var(--bs-white));--bs-inverse-bg:var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-gray-025));--bs-inverse-bg-subtle:var(--lightningcss-light,var(--bs-gray-100))var(--lightningcss-dark,var(--bs-gray-900));--bs-inverse-bg-muted:var(--lightningcss-light,var(--bs-gray-200))var(--lightningcss-dark,var(--bs-gray-300));--bs-inverse-border:var(--lightningcss-light,var(--bs-gray-400))var(--lightningcss-dark,var(--bs-gray-100));--bs-inverse-focus-ring:color-mix(in oklch, var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-gray-100)) 50%, var(--bs-bg-body));--bs-inverse-contrast:var(--lightningcss-light,var(--bs-white))var(--lightningcss-dark,var(--bs-gray-900));--bs-secondary-base:var(--bs-gray-200);--bs-secondary-fg:var(--lightningcss-light,var(--bs-gray-600))var(--lightningcss-dark,var(--bs-gray-400));--bs-secondary-fg-emphasis:var(--lightningcss-light,var(--bs-gray-800))var(--lightningcss-dark,var(--bs-gray-200));--bs-secondary-bg:var(--lightningcss-light,var(--bs-gray-100))var(--lightningcss-dark,var(--bs-gray-600));--bs-secondary-bg-subtle:var(--lightningcss-light,var(--bs-gray-050))var(--lightningcss-dark,var(--bs-gray-800));--bs-secondary-bg-muted:var(--lightningcss-light,var(--bs-gray-100))var(--lightningcss-dark,var(--bs-gray-700));--bs-secondary-border:var(--lightningcss-light,var(--bs-gray-300))var(--lightningcss-dark,var(--bs-gray-600));--bs-secondary-focus-ring:color-mix(in oklch, var(--lightningcss-light,var(--bs-gray-500))var(--lightningcss-dark,var(--bs-gray-300)) 50%, var(--bs-bg-body));--bs-secondary-contrast:var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-white));--bs-bg-body:var(--lightningcss-light,var(--bs-white))var(--lightningcss-dark,var(--bs-gray-975));--bs-bg-1:var(--lightningcss-light,var(--bs-gray-025))var(--lightningcss-dark,var(--bs-gray-950));--bs-bg-2:var(--lightningcss-light,var(--bs-gray-050))var(--lightningcss-dark,var(--bs-gray-900));--bs-bg-3:var(--lightningcss-light,var(--bs-gray-100))var(--lightningcss-dark,var(--bs-gray-800));--bs-bg-4:var(--lightningcss-light,var(--bs-gray-200))var(--lightningcss-dark,var(--bs-gray-700));--bs-bg-fg:var(--bs-fg-body);--bs-bg-white:var(--bs-white);--bs-bg-black:var(--bs-black);--bs-bg-transparent:transparent;--bs-bg-inherit:inherit;--bs-fg-body:var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-gray-050));--bs-fg-1:var(--lightningcss-light,var(--bs-gray-800))var(--lightningcss-dark,var(--bs-gray-200));--bs-fg-2:var(--lightningcss-light,var(--bs-gray-700))var(--lightningcss-dark,var(--bs-gray-300));--bs-fg-3:var(--lightningcss-light,var(--bs-gray-600))var(--lightningcss-dark,var(--bs-gray-500));--bs-fg-4:var(--lightningcss-light,var(--bs-gray-500))var(--lightningcss-dark,var(--bs-gray-600));--bs-fg-bg:var(--bs-bg-body);--bs-fg-white:var(--bs-white);--bs-fg-black:var(--bs-black);--bs-fg-inherit:inherit;--bs-border-bg:var(--bs-bg-body);--bs-border-body:var(--lightningcss-light,var(--bs-gray-300))var(--lightningcss-dark,var(--bs-gray-800));--bs-border-muted:var(--lightningcss-light,var(--bs-gray-200))var(--lightningcss-dark,var(--bs-gray-800));--bs-border-subtle:var(--lightningcss-light,var(--bs-gray-100))var(--lightningcss-dark,var(--bs-gray-900));--bs-border-emphasized:var(--lightningcss-light,var(--bs-gray-400))var(--lightningcss-dark,var(--bs-gray-600));--bs-border-white:var(--bs-white);--bs-border-black:var(--bs-black);--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:1024px;--bs-breakpoint-xl:1280px;--bs-breakpoint-2xl:1536px;--bs-spacer-0:0;--bs-spacer-1:.25rem;--bs-spacer-2:.5rem;--bs-spacer-3:.75rem;--bs-spacer-4:1rem;--bs-spacer-5:1.25rem;--bs-spacer-6:1.5rem;--bs-spacer-7:2rem;--bs-spacer-8:2.5rem;--bs-spacer-9:3rem;--bs-radius-0:0;--bs-radius-1:.125rem;--bs-radius-2:.1875rem;--bs-radius-3:.25rem;--bs-radius-4:.375rem;--bs-radius-5:.5rem;--bs-radius-6:.625rem;--bs-radius-7:.75rem;--bs-radius-8:1rem;--bs-radius-9:1.5rem;--bs-radius-pill:50rem;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;scrollbar-gutter:stable}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}[data-bs-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-bs-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}
+:root{--bs-blue-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .24 240));--bs-blue-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .24 240));--bs-blue-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .24 240));--bs-blue-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .24 240));--bs-blue-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .24 240));--bs-blue-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .24 240));--bs-blue-500:oklch(60% .24 240);--bs-blue-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .24 240));--bs-blue-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .24 240));--bs-blue-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .24 240));--bs-blue-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .24 240));--bs-blue-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .24 240));--bs-blue-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .24 240));--bs-indigo-025:color-mix(in lab, var(--bs-white) 94%, oklch(56% .26 288));--bs-indigo-050:color-mix(in lab, var(--bs-white) 90%, oklch(56% .26 288));--bs-indigo-100:color-mix(in lab, var(--bs-white) 80%, oklch(56% .26 288));--bs-indigo-200:color-mix(in lab, var(--bs-white) 60%, oklch(56% .26 288));--bs-indigo-300:color-mix(in lab, var(--bs-white) 40%, oklch(56% .26 288));--bs-indigo-400:color-mix(in lab, var(--bs-white) 20%, oklch(56% .26 288));--bs-indigo-500:oklch(56% .26 288);--bs-indigo-600:color-mix(in lab, var(--bs-black) 16%, oklch(56% .26 288));--bs-indigo-700:color-mix(in lab, var(--bs-black) 32%, oklch(56% .26 288));--bs-indigo-800:color-mix(in lab, var(--bs-black) 48%, oklch(56% .26 288));--bs-indigo-900:color-mix(in lab, var(--bs-black) 64%, oklch(56% .26 288));--bs-indigo-950:color-mix(in lab, var(--bs-black) 76%, oklch(56% .26 288));--bs-indigo-975:color-mix(in lab, var(--bs-black) 88%, oklch(56% .26 288));--bs-violet-025:color-mix(in lab, var(--bs-white) 94%, oklch(56% .24 300));--bs-violet-050:color-mix(in lab, var(--bs-white) 90%, oklch(56% .24 300));--bs-violet-100:color-mix(in lab, var(--bs-white) 80%, oklch(56% .24 300));--bs-violet-200:color-mix(in lab, var(--bs-white) 60%, oklch(56% .24 300));--bs-violet-300:color-mix(in lab, var(--bs-white) 40%, oklch(56% .24 300));--bs-violet-400:color-mix(in lab, var(--bs-white) 20%, oklch(56% .24 300));--bs-violet-500:oklch(56% .24 300);--bs-violet-600:color-mix(in lab, var(--bs-black) 16%, oklch(56% .24 300));--bs-violet-700:color-mix(in lab, var(--bs-black) 32%, oklch(56% .24 300));--bs-violet-800:color-mix(in lab, var(--bs-black) 48%, oklch(56% .24 300));--bs-violet-900:color-mix(in lab, var(--bs-black) 64%, oklch(56% .24 300));--bs-violet-950:color-mix(in lab, var(--bs-black) 76%, oklch(56% .24 300));--bs-violet-975:color-mix(in lab, var(--bs-black) 88%, oklch(56% .24 300));--bs-purple-025:color-mix(in lab, var(--bs-white) 94%, oklch(56% .24 320));--bs-purple-050:color-mix(in lab, var(--bs-white) 90%, oklch(56% .24 320));--bs-purple-100:color-mix(in lab, var(--bs-white) 80%, oklch(56% .24 320));--bs-purple-200:color-mix(in lab, var(--bs-white) 60%, oklch(56% .24 320));--bs-purple-300:color-mix(in lab, var(--bs-white) 40%, oklch(56% .24 320));--bs-purple-400:color-mix(in lab, var(--bs-white) 20%, oklch(56% .24 320));--bs-purple-500:oklch(56% .24 320);--bs-purple-600:color-mix(in lab, var(--bs-black) 16%, oklch(56% .24 320));--bs-purple-700:color-mix(in lab, var(--bs-black) 32%, oklch(56% .24 320));--bs-purple-800:color-mix(in lab, var(--bs-black) 48%, oklch(56% .24 320));--bs-purple-900:color-mix(in lab, var(--bs-black) 64%, oklch(56% .24 320));--bs-purple-950:color-mix(in lab, var(--bs-black) 76%, oklch(56% .24 320));--bs-purple-975:color-mix(in lab, var(--bs-black) 88%, oklch(56% .24 320));--bs-pink-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .22 4));--bs-pink-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .22 4));--bs-pink-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .22 4));--bs-pink-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .22 4));--bs-pink-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .22 4));--bs-pink-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .22 4));--bs-pink-500:oklch(60% .22 4);--bs-pink-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .22 4));--bs-pink-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .22 4));--bs-pink-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .22 4));--bs-pink-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .22 4));--bs-pink-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .22 4));--bs-pink-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .22 4));--bs-red-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .22 20));--bs-red-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .22 20));--bs-red-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .22 20));--bs-red-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .22 20));--bs-red-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .22 20));--bs-red-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .22 20));--bs-red-500:oklch(60% .22 20);--bs-red-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .22 20));--bs-red-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .22 20));--bs-red-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .22 20));--bs-red-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .22 20));--bs-red-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .22 20));--bs-red-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .22 20));--bs-orange-025:color-mix(in lab, var(--bs-white) 94%, oklch(70% .22 52));--bs-orange-050:color-mix(in lab, var(--bs-white) 90%, oklch(70% .22 52));--bs-orange-100:color-mix(in lab, var(--bs-white) 80%, oklch(70% .22 52));--bs-orange-200:color-mix(in lab, var(--bs-white) 60%, oklch(70% .22 52));--bs-orange-300:color-mix(in lab, var(--bs-white) 40%, oklch(70% .22 52));--bs-orange-400:color-mix(in lab, var(--bs-white) 20%, oklch(70% .22 52));--bs-orange-500:oklch(70% .22 52);--bs-orange-600:color-mix(in lab, var(--bs-black) 16%, oklch(70% .22 52));--bs-orange-700:color-mix(in lab, var(--bs-black) 32%, oklch(70% .22 52));--bs-orange-800:color-mix(in lab, var(--bs-black) 48%, oklch(70% .22 52));--bs-orange-900:color-mix(in lab, var(--bs-black) 64%, oklch(70% .22 52));--bs-orange-950:color-mix(in lab, var(--bs-black) 76%, oklch(70% .22 52));--bs-orange-975:color-mix(in lab, var(--bs-black) 88%, oklch(70% .22 52));--bs-amber-025:color-mix(in lab, var(--bs-white) 94%, oklch(79% .2 78));--bs-amber-050:color-mix(in lab, var(--bs-white) 90%, oklch(79% .2 78));--bs-amber-100:color-mix(in lab, var(--bs-white) 80%, oklch(79% .2 78));--bs-amber-200:color-mix(in lab, var(--bs-white) 60%, oklch(79% .2 78));--bs-amber-300:color-mix(in lab, var(--bs-white) 40%, oklch(79% .2 78));--bs-amber-400:color-mix(in lab, var(--bs-white) 20%, oklch(79% .2 78));--bs-amber-500:oklch(79% .2 78);--bs-amber-600:color-mix(in lab, var(--bs-black) 16%, oklch(79% .2 78));--bs-amber-700:color-mix(in lab, var(--bs-black) 32%, oklch(79% .2 78));--bs-amber-800:color-mix(in lab, var(--bs-black) 48%, oklch(79% .2 78));--bs-amber-900:color-mix(in lab, var(--bs-black) 64%, oklch(79% .2 78));--bs-amber-950:color-mix(in lab, var(--bs-black) 76%, oklch(79% .2 78));--bs-amber-975:color-mix(in lab, var(--bs-black) 88%, oklch(79% .2 78));--bs-yellow-025:color-mix(in lab, var(--bs-white) 94%, oklch(88% .24 88));--bs-yellow-050:color-mix(in lab, var(--bs-white) 90%, oklch(88% .24 88));--bs-yellow-100:color-mix(in lab, var(--bs-white) 80%, oklch(88% .24 88));--bs-yellow-200:color-mix(in lab, var(--bs-white) 60%, oklch(88% .24 88));--bs-yellow-300:color-mix(in lab, var(--bs-white) 40%, oklch(88% .24 88));--bs-yellow-400:color-mix(in lab, var(--bs-white) 20%, oklch(88% .24 88));--bs-yellow-500:oklch(88% .24 88);--bs-yellow-600:color-mix(in lab, var(--bs-black) 16%, oklch(88% .24 88));--bs-yellow-700:color-mix(in lab, var(--bs-black) 32%, oklch(88% .24 88));--bs-yellow-800:color-mix(in lab, var(--bs-black) 48%, oklch(88% .24 88));--bs-yellow-900:color-mix(in lab, var(--bs-black) 64%, oklch(88% .24 88));--bs-yellow-950:color-mix(in lab, var(--bs-black) 76%, oklch(88% .24 88));--bs-yellow-975:color-mix(in lab, var(--bs-black) 88%, oklch(88% .24 88));--bs-lime-025:color-mix(in lab, var(--bs-white) 94%, oklch(65% .24 135));--bs-lime-050:color-mix(in lab, var(--bs-white) 90%, oklch(65% .24 135));--bs-lime-100:color-mix(in lab, var(--bs-white) 80%, oklch(65% .24 135));--bs-lime-200:color-mix(in lab, var(--bs-white) 60%, oklch(65% .24 135));--bs-lime-300:color-mix(in lab, var(--bs-white) 40%, oklch(65% .24 135));--bs-lime-400:color-mix(in lab, var(--bs-white) 20%, oklch(65% .24 135));--bs-lime-500:oklch(65% .24 135);--bs-lime-600:color-mix(in lab, var(--bs-black) 16%, oklch(65% .24 135));--bs-lime-700:color-mix(in lab, var(--bs-black) 32%, oklch(65% .24 135));--bs-lime-800:color-mix(in lab, var(--bs-black) 48%, oklch(65% .24 135));--bs-lime-900:color-mix(in lab, var(--bs-black) 64%, oklch(65% .24 135));--bs-lime-950:color-mix(in lab, var(--bs-black) 76%, oklch(65% .24 135));--bs-lime-975:color-mix(in lab, var(--bs-black) 88%, oklch(65% .24 135));--bs-green-025:color-mix(in lab, var(--bs-white) 94%, oklch(64% .22 160));--bs-green-050:color-mix(in lab, var(--bs-white) 90%, oklch(64% .22 160));--bs-green-100:color-mix(in lab, var(--bs-white) 80%, oklch(64% .22 160));--bs-green-200:color-mix(in lab, var(--bs-white) 60%, oklch(64% .22 160));--bs-green-300:color-mix(in lab, var(--bs-white) 40%, oklch(64% .22 160));--bs-green-400:color-mix(in lab, var(--bs-white) 20%, oklch(64% .22 160));--bs-green-500:oklch(64% .22 160);--bs-green-600:color-mix(in lab, var(--bs-black) 16%, oklch(64% .22 160));--bs-green-700:color-mix(in lab, var(--bs-black) 32%, oklch(64% .22 160));--bs-green-800:color-mix(in lab, var(--bs-black) 48%, oklch(64% .22 160));--bs-green-900:color-mix(in lab, var(--bs-black) 64%, oklch(64% .22 160));--bs-green-950:color-mix(in lab, var(--bs-black) 76%, oklch(64% .22 160));--bs-green-975:color-mix(in lab, var(--bs-black) 88%, oklch(64% .22 160));--bs-teal-025:color-mix(in lab, var(--bs-white) 94%, oklch(68% .22 190));--bs-teal-050:color-mix(in lab, var(--bs-white) 90%, oklch(68% .22 190));--bs-teal-100:color-mix(in lab, var(--bs-white) 80%, oklch(68% .22 190));--bs-teal-200:color-mix(in lab, var(--bs-white) 60%, oklch(68% .22 190));--bs-teal-300:color-mix(in lab, var(--bs-white) 40%, oklch(68% .22 190));--bs-teal-400:color-mix(in lab, var(--bs-white) 20%, oklch(68% .22 190));--bs-teal-500:oklch(68% .22 190);--bs-teal-600:color-mix(in lab, var(--bs-black) 16%, oklch(68% .22 190));--bs-teal-700:color-mix(in lab, var(--bs-black) 32%, oklch(68% .22 190));--bs-teal-800:color-mix(in lab, var(--bs-black) 48%, oklch(68% .22 190));--bs-teal-900:color-mix(in lab, var(--bs-black) 64%, oklch(68% .22 190));--bs-teal-950:color-mix(in lab, var(--bs-black) 76%, oklch(68% .22 190));--bs-teal-975:color-mix(in lab, var(--bs-black) 88%, oklch(68% .22 190));--bs-cyan-025:color-mix(in lab, var(--bs-white) 94%, oklch(69% .22 220));--bs-cyan-050:color-mix(in lab, var(--bs-white) 90%, oklch(69% .22 220));--bs-cyan-100:color-mix(in lab, var(--bs-white) 80%, oklch(69% .22 220));--bs-cyan-200:color-mix(in lab, var(--bs-white) 60%, oklch(69% .22 220));--bs-cyan-300:color-mix(in lab, var(--bs-white) 40%, oklch(69% .22 220));--bs-cyan-400:color-mix(in lab, var(--bs-white) 20%, oklch(69% .22 220));--bs-cyan-500:oklch(69% .22 220);--bs-cyan-600:color-mix(in lab, var(--bs-black) 16%, oklch(69% .22 220));--bs-cyan-700:color-mix(in lab, var(--bs-black) 32%, oklch(69% .22 220));--bs-cyan-800:color-mix(in lab, var(--bs-black) 48%, oklch(69% .22 220));--bs-cyan-900:color-mix(in lab, var(--bs-black) 64%, oklch(69% .22 220));--bs-cyan-950:color-mix(in lab, var(--bs-black) 76%, oklch(69% .22 220));--bs-cyan-975:color-mix(in lab, var(--bs-black) 88%, oklch(69% .22 220));--bs-brown-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .12 54));--bs-brown-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .12 54));--bs-brown-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .12 54));--bs-brown-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .12 54));--bs-brown-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .12 54));--bs-brown-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .12 54));--bs-brown-500:oklch(60% .12 54);--bs-brown-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .12 54));--bs-brown-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .12 54));--bs-brown-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .12 54));--bs-brown-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .12 54));--bs-brown-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .12 54));--bs-brown-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .12 54));--bs-gray-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .02 245));--bs-gray-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .02 245));--bs-gray-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .02 245));--bs-gray-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .02 245));--bs-gray-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .02 245));--bs-gray-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .02 245));--bs-gray-500:oklch(60% .02 245);--bs-gray-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .02 245));--bs-gray-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .02 245));--bs-gray-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .02 245));--bs-gray-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .02 245));--bs-gray-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .02 245));--bs-gray-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .02 245));--bs-pewter-025:color-mix(in lab, var(--bs-white) 94%, oklch(65% .01 290));--bs-pewter-050:color-mix(in lab, var(--bs-white) 90%, oklch(65% .01 290));--bs-pewter-100:color-mix(in lab, var(--bs-white) 80%, oklch(65% .01 290));--bs-pewter-200:color-mix(in lab, var(--bs-white) 60%, oklch(65% .01 290));--bs-pewter-300:color-mix(in lab, var(--bs-white) 40%, oklch(65% .01 290));--bs-pewter-400:color-mix(in lab, var(--bs-white) 20%, oklch(65% .01 290));--bs-pewter-500:oklch(65% .01 290);--bs-pewter-600:color-mix(in lab, var(--bs-black) 16%, oklch(65% .01 290));--bs-pewter-700:color-mix(in lab, var(--bs-black) 32%, oklch(65% .01 290));--bs-pewter-800:color-mix(in lab, var(--bs-black) 48%, oklch(65% .01 290));--bs-pewter-900:color-mix(in lab, var(--bs-black) 64%, oklch(65% .01 290));--bs-pewter-950:color-mix(in lab, var(--bs-black) 76%, oklch(65% .01 290));--bs-pewter-975:color-mix(in lab, var(--bs-black) 88%, oklch(65% .01 290))}@layer colors,theme,config,root,reboot,layout,content,forms,components,custom;@layer helpers{.focus-ring:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-theme-focus-ring,var(--bs-focus-ring-color))}.icon-link{-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity,.5));text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity,.5));text-underline-offset:.25em;backface-visibility:hidden;align-items:center;gap:.375rem;display:inline-flex}.icon-link>.bi{fill:currentColor;flex-shrink:0;width:1em;height:1em;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em, 0, 0))}.fixed-top{z-index:1030;position:fixed;inset:0 0 auto}.fixed-bottom{z-index:1030;position:fixed;inset:auto 0 0}.sticky-top{z-index:1020;position:sticky;top:0}.sticky-bottom{z-index:1020;position:sticky;bottom:0}@media (width>=576px){.sm\:sticky-top{z-index:1020;position:sticky;top:0}.sm\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}@media (width>=768px){.md\:sticky-top{z-index:1020;position:sticky;top:0}.md\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}@media (width>=1024px){.lg\:sticky-top{z-index:1020;position:sticky;top:0}.lg\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}@media (width>=1280px){.xl\:sticky-top{z-index:1020;position:sticky;top:0}.xl\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}@media (width>=1536px){.\32 xl\:sticky-top{z-index:1020;position:sticky;top:0}.\32 xl\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}.stack-container{container-type:inline-size}[class*=hstack],[class*=vstack]{flex:var(--bs-stack-flex,1 1 auto);flex-direction:var(--bs-stack-direction,row);align-items:var(--bs-stack-align-items,center);align-self:var(--bs-stack-align-self,stretch);display:flex}.vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}@container (width>=576px){.sm\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.sm\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}@container (width>=768px){.md\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.md\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}@container (width>=1024px){.lg\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.lg\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}@container (width>=1280px){.xl\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.xl\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}@container (width>=1536px){.\32 xl\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.\32 xl\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}.theme-primary{--bs-theme-base:var(--bs-primary-base);--bs-theme-fg:var(--bs-primary-fg);--bs-theme-fg-emphasis:var(--bs-primary-fg-emphasis);--bs-theme-bg:var(--bs-primary-bg);--bs-theme-bg-subtle:var(--bs-primary-bg-subtle);--bs-theme-bg-muted:var(--bs-primary-bg-muted);--bs-theme-border:var(--bs-primary-border);--bs-theme-focus-ring:var(--bs-primary-focus-ring);--bs-theme-contrast:var(--bs-primary-contrast)}.theme-accent{--bs-theme-base:var(--bs-accent-base);--bs-theme-fg:var(--bs-accent-fg);--bs-theme-fg-emphasis:var(--bs-accent-fg-emphasis);--bs-theme-bg:var(--bs-accent-bg);--bs-theme-bg-subtle:var(--bs-accent-bg-subtle);--bs-theme-bg-muted:var(--bs-accent-bg-muted);--bs-theme-border:var(--bs-accent-border);--bs-theme-focus-ring:var(--bs-accent-focus-ring);--bs-theme-contrast:var(--bs-accent-contrast)}.theme-success{--bs-theme-base:var(--bs-success-base);--bs-theme-fg:var(--bs-success-fg);--bs-theme-fg-emphasis:var(--bs-success-fg-emphasis);--bs-theme-bg:var(--bs-success-bg);--bs-theme-bg-subtle:var(--bs-success-bg-subtle);--bs-theme-bg-muted:var(--bs-success-bg-muted);--bs-theme-border:var(--bs-success-border);--bs-theme-focus-ring:var(--bs-success-focus-ring);--bs-theme-contrast:var(--bs-success-contrast)}.theme-danger{--bs-theme-base:var(--bs-danger-base);--bs-theme-fg:var(--bs-danger-fg);--bs-theme-fg-emphasis:var(--bs-danger-fg-emphasis);--bs-theme-bg:var(--bs-danger-bg);--bs-theme-bg-subtle:var(--bs-danger-bg-subtle);--bs-theme-bg-muted:var(--bs-danger-bg-muted);--bs-theme-border:var(--bs-danger-border);--bs-theme-focus-ring:var(--bs-danger-focus-ring);--bs-theme-contrast:var(--bs-danger-contrast)}.theme-warning{--bs-theme-base:var(--bs-warning-base);--bs-theme-fg:var(--bs-warning-fg);--bs-theme-fg-emphasis:var(--bs-warning-fg-emphasis);--bs-theme-bg:var(--bs-warning-bg);--bs-theme-bg-subtle:var(--bs-warning-bg-subtle);--bs-theme-bg-muted:var(--bs-warning-bg-muted);--bs-theme-border:var(--bs-warning-border);--bs-theme-focus-ring:var(--bs-warning-focus-ring);--bs-theme-contrast:var(--bs-warning-contrast)}.theme-info{--bs-theme-base:var(--bs-info-base);--bs-theme-fg:var(--bs-info-fg);--bs-theme-fg-emphasis:var(--bs-info-fg-emphasis);--bs-theme-bg:var(--bs-info-bg);--bs-theme-bg-subtle:var(--bs-info-bg-subtle);--bs-theme-bg-muted:var(--bs-info-bg-muted);--bs-theme-border:var(--bs-info-border);--bs-theme-focus-ring:var(--bs-info-focus-ring);--bs-theme-contrast:var(--bs-info-contrast)}.theme-inverse{--bs-theme-base:var(--bs-inverse-base);--bs-theme-fg:var(--bs-inverse-fg);--bs-theme-fg-emphasis:var(--bs-inverse-fg-emphasis);--bs-theme-bg:var(--bs-inverse-bg);--bs-theme-bg-subtle:var(--bs-inverse-bg-subtle);--bs-theme-bg-muted:var(--bs-inverse-bg-muted);--bs-theme-border:var(--bs-inverse-border);--bs-theme-focus-ring:var(--bs-inverse-focus-ring);--bs-theme-contrast:var(--bs-inverse-contrast)}.theme-secondary{--bs-theme-base:var(--bs-secondary-base);--bs-theme-fg:var(--bs-secondary-fg);--bs-theme-fg-emphasis:var(--bs-secondary-fg-emphasis);--bs-theme-bg:var(--bs-secondary-bg);--bs-theme-bg-subtle:var(--bs-secondary-bg-subtle);--bs-theme-bg-muted:var(--bs-secondary-bg-muted);--bs-theme-border:var(--bs-secondary-border);--bs-theme-focus-ring:var(--bs-secondary-focus-ring);--bs-theme-contrast:var(--bs-secondary-contrast)}.visually-hidden,.visually-hidden-focusable:not(:focus,:focus-within){clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus,:focus-within):not(caption){position:absolute!important}.visually-hidden *,.visually-hidden-focusable:not(:focus,:focus-within) *{overflow:hidden!important}.stretched-link:after{z-index:1;content:"";position:absolute;inset:0}.text-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vr{width:var(--bs-vr-border-width,var(--bs-border-width));background-color:var(--bs-border-color);align-self:stretch;min-height:1em;display:inline-block}}@layer utilities{.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.align-text-bottom{vertical-align:text-bottom}.align-text-top{vertical-align:text-top}[class*=ratio-]{aspect-ratio:var(--bs-ratio)}.ratio-auto{--bs-ratio:auto}.ratio-1x1{--bs-ratio:1 / 1}.ratio-4x3{--bs-ratio:4 / 3}.ratio-16x9{--bs-ratio:16 / 9}.ratio-21x9{--bs-ratio:21 / 9}.float-start{float:inline-start}.float-end{float:inline-end}.float-none{float:none}.object-fit-contain{object-fit:contain}.object-fit-cover{object-fit:cover}.object-fit-fill{object-fit:fill}.object-fit-scale{object-fit:scale-down}.object-fit-none{object-fit:none}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-x-visible{overflow-x:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-y-visible{overflow-y:visible}.overflow-y-scroll{overflow-y:scroll}.contains-inline{container-type:inline-size}.contains-size{container-type:size}.d-inline{display:inline}.d-inline-block{display:inline-block}.d-block{display:block}.d-grid{display:grid}.d-inline-grid{display:inline-grid}.d-table{display:table}.d-table-row{display:table-row}.d-table-cell{display:table-cell}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.d-contents{display:contents}.d-flow-root{display:flow-root}.d-none{display:none}.shadow{box-shadow:var(--bs-box-shadow)}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)}.shadow-none{box-shadow:none}.position-static{position:static}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}.position-sticky{position:sticky}.top-0{top:0}.top-50{top:50%}.top-100{top:100%}.bottom-0{bottom:0}.bottom-50{bottom:50%}.bottom-100{bottom:100%}.start-0{inset-inline-start:0}.start-50{inset-inline-start:50%}.start-100{inset-inline-start:100%}.end-0{inset-inline-end:0}.end-50{inset-inline-end:50%}.end-100{inset-inline-end:100%}.translate-middle{transform:translate(-50%,-50%)}.translate-middle-x{transform:translate(-50%)}.translate-middle-y{transform:translateY(-50%)}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-0{border:0}.border-top{border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-top-0{border-block-start:0}.border-end{border-inline-end:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-end-0{border-inline-end:0}.border-bottom{border-block-end:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-bottom-0{border-block-end:0}.border-start{border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-start-0{border-inline-start:0}.border-y{border-block:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-y-0{border-block:0}.border-x{border-inline:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-x-0{border-inline:0}.border-primary{--bs-border-color:var(--bs-primary-bg);border-color:var(--bs-border-color)}.border-accent{--bs-border-color:var(--bs-accent-bg);border-color:var(--bs-border-color)}.border-success{--bs-border-color:var(--bs-success-bg);border-color:var(--bs-border-color)}.border-danger{--bs-border-color:var(--bs-danger-bg);border-color:var(--bs-border-color)}.border-warning{--bs-border-color:var(--bs-warning-bg);border-color:var(--bs-border-color)}.border-info{--bs-border-color:var(--bs-info-bg);border-color:var(--bs-border-color)}.border-inverse{--bs-border-color:var(--bs-inverse-bg);border-color:var(--bs-border-color)}.border-secondary{--bs-border-color:var(--bs-secondary-bg);border-color:var(--bs-border-color)}.border-bg{--bs-border-color:var(--bs-border-bg);border-color:var(--bs-border-color)}.border-body{--bs-border-color:var(--bs-border-body);border-color:var(--bs-border-color)}.border-muted{--bs-border-color:var(--bs-border-muted);border-color:var(--bs-border-color)}.border-subtle{--bs-border-color:var(--bs-border-subtle);border-color:var(--bs-border-color)}.border-emphasized{--bs-border-color:var(--bs-border-emphasized);border-color:var(--bs-border-color)}.border-white{--bs-border-color:var(--bs-border-white);border-color:var(--bs-border-color)}.border-black{--bs-border-color:var(--bs-border-black);border-color:var(--bs-border-color)}.border-subtle-primary{--bs-border-color:var(--bs-primary-border);border-color:var(--bs-border-color)}.border-subtle-accent{--bs-border-color:var(--bs-accent-border);border-color:var(--bs-border-color)}.border-subtle-success{--bs-border-color:var(--bs-success-border);border-color:var(--bs-border-color)}.border-subtle-danger{--bs-border-color:var(--bs-danger-border);border-color:var(--bs-border-color)}.border-subtle-warning{--bs-border-color:var(--bs-warning-border);border-color:var(--bs-border-color)}.border-subtle-info{--bs-border-color:var(--bs-info-border);border-color:var(--bs-border-color)}.border-subtle-inverse{--bs-border-color:var(--bs-inverse-border);border-color:var(--bs-border-color)}.border-subtle-secondary{--bs-border-color:var(--bs-secondary-border);border-color:var(--bs-border-color)}.border-1{border-width:1px}.border-2{border-width:2px}.border-3{border-width:3px}.border-4{border-width:4px}.border-5{border-width:5px}.border-10{border-color:color-mix(in oklch, var(--bs-border-color) 10%, transparent)}.border-20{border-color:color-mix(in oklch, var(--bs-border-color) 20%, transparent)}.border-30{border-color:color-mix(in oklch, var(--bs-border-color) 30%, transparent)}.border-40{border-color:color-mix(in oklch, var(--bs-border-color) 40%, transparent)}.border-50{border-color:color-mix(in oklch, var(--bs-border-color) 50%, transparent)}.border-60{border-color:color-mix(in oklch, var(--bs-border-color) 60%, transparent)}.border-70{border-color:color-mix(in oklch, var(--bs-border-color) 70%, transparent)}.border-80{border-color:color-mix(in oklch, var(--bs-border-color) 80%, transparent)}.border-90{border-color:color-mix(in oklch, var(--bs-border-color) 90%, transparent)}.border-100{border-color:var(--bs-border-color)}.w-1{width:1rem}.w-2{width:2rem}.w-3{width:3rem}.w-4{width:4rem}.w-5{width:5rem}.w-6{width:6rem}.w-7{width:7rem}.w-8{width:8rem}.w-9{width:9rem}.w-10{width:10rem}.w-11{width:11rem}.w-12{width:12rem}.w-25{width:25%}.w-50{width:50%}.w-75{width:75%}.w-100{width:100%}.w-auto{width:auto}.w-min{width:min-content}.w-max{width:max-content}.w-fit{width:fit-content}.max-w-100{max-width:100%}.min-w-0{min-width:0}.min-w-100{min-width:100%}.vw-100{width:100vw}.min-vw-100{min-width:100vw}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.h-auto{height:auto}.h-min{height:min-content}.h-max{height:max-content}.h-fit{height:fit-content}.max-h-100{max-height:100%}.min-h-0{min-height:0}.min-h-100{min-height:100%}.vh-100{height:100vh}.min-vh-100{min-height:100vh}.flex-fill{flex:auto}.flex-row{flex-direction:row}.flex-column{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-column-reverse{flex-direction:column-reverse}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.justify-content-start{justify-content:flex-start}.justify-content-end{justify-content:flex-end}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.justify-content-around{justify-content:space-around}.justify-content-evenly{justify-content:space-evenly}.justify-items-start{justify-items:start}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.justify-items-stretch{justify-items:stretch}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.align-items-start{align-items:flex-start}.align-items-end{align-items:flex-end}.align-items-center{align-items:center}.align-items-baseline{align-items:baseline}.align-items-stretch{align-items:stretch}.align-content-start{align-content:flex-start}.align-content-end{align-content:flex-end}.align-content-center{align-content:center}.align-content-between{align-content:space-between}.align-content-around{align-content:space-around}.align-content-stretch{align-content:stretch}.align-self-auto{align-self:auto}.align-self-start{align-self:flex-start}.align-self-end{align-self:flex-end}.align-self-center{align-self:center}.align-self-baseline{align-self:baseline}.align-self-stretch{align-self:stretch}.place-items-start{place-items:start}.place-items-end{place-items:end}.place-items-center{place-items:center}.place-items-stretch{place-items:stretch stretch}.grid-cols-1{grid-template-columns:1fr}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.grid-cols-6{grid-template-columns:repeat(6,1fr)}.grid-cols-fill{grid-column:1/-1}.grid-auto-flow-row{grid-auto-flow:row}.grid-auto-flow-column{grid-auto-flow:column}.grid-auto-flow-dense{grid-auto-flow:dense}.order-first{order:-1}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-last{order:6}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-3{margin:.75rem}.m-4{margin:1rem}.m-5{margin:1.25rem}.m-6{margin:1.5rem}.m-7{margin:2rem}.m-8{margin:2.5rem}.m-9{margin:3rem}.m-auto{margin:auto}.mx-0{margin-inline:0}.mx-1{margin-inline:.25rem}.mx-2{margin-inline:.5rem}.mx-3{margin-inline:.75rem}.mx-4{margin-inline:1rem}.mx-5{margin-inline:1.25rem}.mx-6{margin-inline:1.5rem}.mx-7{margin-inline:2rem}.mx-8{margin-inline:2.5rem}.mx-9{margin-inline:3rem}.mx-auto{margin-inline:auto}.my-0{margin-block:0}.my-1{margin-block:.25rem}.my-2{margin-block:.5rem}.my-3{margin-block:.75rem}.my-4{margin-block:1rem}.my-5{margin-block:1.25rem}.my-6{margin-block:1.5rem}.my-7{margin-block:2rem}.my-8{margin-block:2.5rem}.my-9{margin-block:3rem}.my-auto{margin-block:auto}.mt-0{margin-block-start:0}.mt-1{margin-block-start:.25rem}.mt-2{margin-block-start:.5rem}.mt-3{margin-block-start:.75rem}.mt-4{margin-block-start:1rem}.mt-5{margin-block-start:1.25rem}.mt-6{margin-block-start:1.5rem}.mt-7{margin-block-start:2rem}.mt-8{margin-block-start:2.5rem}.mt-9{margin-block-start:3rem}.mt-auto{margin-block-start:auto}.me-0{margin-inline-end:0}.me-1{margin-inline-end:.25rem}.me-2{margin-inline-end:.5rem}.me-3{margin-inline-end:.75rem}.me-4{margin-inline-end:1rem}.me-5{margin-inline-end:1.25rem}.me-6{margin-inline-end:1.5rem}.me-7{margin-inline-end:2rem}.me-8{margin-inline-end:2.5rem}.me-9{margin-inline-end:3rem}.me--1{margin-inline-end:-.25rem}.me--2{margin-inline-end:-.5rem}.me-auto{margin-inline-end:auto}.mb-0{margin-block-end:0}.mb-1{margin-block-end:.25rem}.mb-2{margin-block-end:.5rem}.mb-3{margin-block-end:.75rem}.mb-4{margin-block-end:1rem}.mb-5{margin-block-end:1.25rem}.mb-6{margin-block-end:1.5rem}.mb-7{margin-block-end:2rem}.mb-8{margin-block-end:2.5rem}.mb-9{margin-block-end:3rem}.mb-auto{margin-block-end:auto}.ms-0{margin-inline-start:0}.ms-1{margin-inline-start:.25rem}.ms-2{margin-inline-start:.5rem}.ms-3{margin-inline-start:.75rem}.ms-4{margin-inline-start:1rem}.ms-5{margin-inline-start:1.25rem}.ms-6{margin-inline-start:1.5rem}.ms-7{margin-inline-start:2rem}.ms-8{margin-inline-start:2.5rem}.ms-9{margin-inline-start:3rem}.ms--1{margin-inline-start:-.25rem}.ms--2{margin-inline-start:-.5rem}.ms-auto{margin-inline-start:auto}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:2rem}.p-8{padding:2.5rem}.p-9{padding:3rem}.px-0{padding-inline:0}.px-1{padding-inline:.25rem}.px-2{padding-inline:.5rem}.px-3{padding-inline:.75rem}.px-4{padding-inline:1rem}.px-5{padding-inline:1.25rem}.px-6{padding-inline:1.5rem}.px-7{padding-inline:2rem}.px-8{padding-inline:2.5rem}.px-9{padding-inline:3rem}.py-0{padding-block:0}.py-1{padding-block:.25rem}.py-2{padding-block:.5rem}.py-3{padding-block:.75rem}.py-4{padding-block:1rem}.py-5{padding-block:1.25rem}.py-6{padding-block:1.5rem}.py-7{padding-block:2rem}.py-8{padding-block:2.5rem}.py-9{padding-block:3rem}.pt-0{padding-block-start:0}.pt-1{padding-block-start:.25rem}.pt-2{padding-block-start:.5rem}.pt-3{padding-block-start:.75rem}.pt-4{padding-block-start:1rem}.pt-5{padding-block-start:1.25rem}.pt-6{padding-block-start:1.5rem}.pt-7{padding-block-start:2rem}.pt-8{padding-block-start:2.5rem}.pt-9{padding-block-start:3rem}.pe-0{padding-inline-end:0}.pe-1{padding-inline-end:.25rem}.pe-2{padding-inline-end:.5rem}.pe-3{padding-inline-end:.75rem}.pe-4{padding-inline-end:1rem}.pe-5{padding-inline-end:1.25rem}.pe-6{padding-inline-end:1.5rem}.pe-7{padding-inline-end:2rem}.pe-8{padding-inline-end:2.5rem}.pe-9{padding-inline-end:3rem}.pb-0{padding-block-end:0}.pb-1{padding-block-end:.25rem}.pb-2{padding-block-end:.5rem}.pb-3{padding-block-end:.75rem}.pb-4{padding-block-end:1rem}.pb-5{padding-block-end:1.25rem}.pb-6{padding-block-end:1.5rem}.pb-7{padding-block-end:2rem}.pb-8{padding-block-end:2.5rem}.pb-9{padding-block-end:3rem}.ps-0{padding-inline-start:0}.ps-1{padding-inline-start:.25rem}.ps-2{padding-inline-start:.5rem}.ps-3{padding-inline-start:.75rem}.ps-4{padding-inline-start:1rem}.ps-5{padding-inline-start:1.25rem}.ps-6{padding-inline-start:1.5rem}.ps-7{padding-inline-start:2rem}.ps-8{padding-inline-start:2.5rem}.ps-9{padding-inline-start:3rem}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:2rem}.gap-8{gap:2.5rem}.gap-9{gap:3rem}.row-gap-0{row-gap:0}.row-gap-1{row-gap:.25rem}.row-gap-2{row-gap:.5rem}.row-gap-3{row-gap:.75rem}.row-gap-4{row-gap:1rem}.row-gap-5{row-gap:1.25rem}.row-gap-6{row-gap:1.5rem}.row-gap-7{row-gap:2rem}.row-gap-8{row-gap:2.5rem}.row-gap-9{row-gap:3rem}.column-gap-0{column-gap:0}.column-gap-1{column-gap:.25rem}.column-gap-2{column-gap:.5rem}.column-gap-3{column-gap:.75rem}.column-gap-4{column-gap:1rem}.column-gap-5{column-gap:1.25rem}.column-gap-6{column-gap:1.5rem}.column-gap-7{column-gap:2rem}.column-gap-8{column-gap:2.5rem}.column-gap-9{column-gap:3rem}:where(.space-x-0>:not(:last-child)){margin-inline-end:0}:where(.space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.space-y-0>:not(:last-child)){margin-block-end:0}:where(.space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.divide-x-0>:not(:first-child)){border-inline-start:0}:where(.divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.divide-y-0>:not(:first-child)){border-block-start:0}.font-monospace{font-family:var(--bs-font-mono)}.font-body{font-family:var(--bs-body-font-family)}.fs-xs{font-size:.75rem}.fs-sm{font-size:.875rem}.fs-md{font-size:1rem}.fs-lg{font-size:clamp(1.25rem,1rem + .625vw,1.5rem)}.fs-xl{font-size:clamp(1.5rem,1.1rem + .75vw,1.75rem)}.fs-2xl{font-size:clamp(1.75rem,1.3rem + 1vw,2rem)}.fs-3xl{font-size:clamp(2rem,1.5rem + 1.875vw,2.5rem)}.fs-4xl{font-size:clamp(2.25rem,1.75rem + 2.5vw,3rem)}.fs-5xl{font-size:clamp(3rem,2rem + 5vw,4rem)}.fs-6xl{font-size:clamp(3.75rem,2.5rem + 6.25vw,5rem)}.text-xs{font-size:.75rem;line-height:1.25}.text-sm{font-size:.875rem;line-height:1.5}.text-md{font-size:1rem;line-height:1.5}.text-lg{font-size:clamp(1.25rem,1rem + .625vw,1.5rem);line-height:1.5}.text-xl{font-size:clamp(1.5rem,1.1rem + .75vw,1.75rem);line-height:1.42857}.text-2xl{font-size:clamp(1.75rem,1.3rem + 1vw,2rem);line-height:1.33333}.text-3xl{font-size:clamp(2rem,1.5rem + 1.875vw,2.5rem);line-height:1.2}.text-4xl{font-size:clamp(2.25rem,1.75rem + 2.5vw,3rem);line-height:1.1}.text-5xl{font-size:clamp(3rem,2rem + 5vw,4rem);line-height:1.1}.text-6xl{font-size:clamp(3.75rem,2.5rem + 6.25vw,5rem);line-height:1}.fst-italic{font-style:italic}.fst-normal{font-style:normal}.fw-lighter{font-weight:lighter}.fw-light{font-weight:300}.fw-normal{font-weight:400}.fw-medium{font-weight:500}.fw-semibold{font-weight:600}.fw-bold{font-weight:700}.fw-bolder{font-weight:bolder}.lh-1{line-height:1}.lh-sm{line-height:1.25}.lh-base{line-height:1.5}.lh-lg{line-height:2}.text-start{text-align:start}.text-end{text-align:end}.text-center{text-align:center}.text-decoration-none{text-decoration:none}.text-decoration-underline{text-decoration:underline}.text-decoration-line-through{text-decoration:line-through}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-wrap{text-wrap:wrap}.text-nowrap{text-wrap:nowrap}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.text-break{word-wrap:break-word;word-break:break-word}.fg-primary{--bs-fg:var(--bs-primary-fg);color:var(--bs-fg)}.fg-accent{--bs-fg:var(--bs-accent-fg);color:var(--bs-fg)}.fg-success{--bs-fg:var(--bs-success-fg);color:var(--bs-fg)}.fg-danger{--bs-fg:var(--bs-danger-fg);color:var(--bs-fg)}.fg-warning{--bs-fg:var(--bs-warning-fg);color:var(--bs-fg)}.fg-info{--bs-fg:var(--bs-info-fg);color:var(--bs-fg)}.fg-inverse{--bs-fg:var(--bs-inverse-fg);color:var(--bs-fg)}.fg-secondary{--bs-fg:var(--bs-secondary-fg);color:var(--bs-fg)}.fg-body{--bs-fg:var(--bs-fg-body);color:var(--bs-fg)}.fg-1{--bs-fg:var(--bs-fg-1);color:var(--bs-fg)}.fg-2{--bs-fg:var(--bs-fg-2);color:var(--bs-fg)}.fg-3{--bs-fg:var(--bs-fg-3);color:var(--bs-fg)}.fg-4{--bs-fg:var(--bs-fg-4);color:var(--bs-fg)}.fg-bg{--bs-fg:var(--bs-fg-bg);color:var(--bs-fg)}.fg-white{--bs-fg:var(--bs-fg-white);color:var(--bs-fg)}.fg-black{--bs-fg:var(--bs-fg-black);color:var(--bs-fg)}.fg-reset{--bs-fg:inherit;color:var(--bs-fg)}.fg-emphasis-primary{--bs-fg:var(--bs-primary-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-accent{--bs-fg:var(--bs-accent-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-success{--bs-fg:var(--bs-success-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-danger{--bs-fg:var(--bs-danger-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-warning{--bs-fg:var(--bs-warning-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-info{--bs-fg:var(--bs-info-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-inverse{--bs-fg:var(--bs-inverse-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-secondary{--bs-fg:var(--bs-secondary-fg-emphasis);color:var(--bs-fg)}.fg-contrast-primary{--bs-fg:var(--bs-primary-contrast);color:var(--bs-fg)}.fg-contrast-accent{--bs-fg:var(--bs-accent-contrast);color:var(--bs-fg)}.fg-contrast-success{--bs-fg:var(--bs-success-contrast);color:var(--bs-fg)}.fg-contrast-danger{--bs-fg:var(--bs-danger-contrast);color:var(--bs-fg)}.fg-contrast-warning{--bs-fg:var(--bs-warning-contrast);color:var(--bs-fg)}.fg-contrast-info{--bs-fg:var(--bs-info-contrast);color:var(--bs-fg)}.fg-contrast-inverse{--bs-fg:var(--bs-inverse-contrast);color:var(--bs-fg)}.fg-contrast-secondary{--bs-fg:var(--bs-secondary-contrast);color:var(--bs-fg)}.fg-10{color:color-mix(in oklch, var(--bs-fg) 10%, transparent)}.fg-20{color:color-mix(in oklch, var(--bs-fg) 20%, transparent)}.fg-30{color:color-mix(in oklch, var(--bs-fg) 30%, transparent)}.fg-40{color:color-mix(in oklch, var(--bs-fg) 40%, transparent)}.fg-50{color:color-mix(in oklch, var(--bs-fg) 50%, transparent)}.fg-60{color:color-mix(in oklch, var(--bs-fg) 60%, transparent)}.fg-70{color:color-mix(in oklch, var(--bs-fg) 70%, transparent)}.fg-80{color:color-mix(in oklch, var(--bs-fg) 80%, transparent)}.fg-90{color:color-mix(in oklch, var(--bs-fg) 90%, transparent)}.fg-100{color:var(--bs-fg)}.link-10,.hover\:link-10:hover{color:color-mix(in oklch, var(--bs-link-color) 10%, transparent)}.link-20,.hover\:link-20:hover{color:color-mix(in oklch, var(--bs-link-color) 20%, transparent)}.link-30,.hover\:link-30:hover{color:color-mix(in oklch, var(--bs-link-color) 30%, transparent)}.link-40,.hover\:link-40:hover{color:color-mix(in oklch, var(--bs-link-color) 40%, transparent)}.link-50,.hover\:link-50:hover{color:color-mix(in oklch, var(--bs-link-color) 50%, transparent)}.link-60,.hover\:link-60:hover{color:color-mix(in oklch, var(--bs-link-color) 60%, transparent)}.link-70,.hover\:link-70:hover{color:color-mix(in oklch, var(--bs-link-color) 70%, transparent)}.link-80,.hover\:link-80:hover{color:color-mix(in oklch, var(--bs-link-color) 80%, transparent)}.link-90,.hover\:link-90:hover{color:color-mix(in oklch, var(--bs-link-color) 90%, transparent)}.link-100,.hover\:link-100:hover{color:var(--bs-link-color)}.underline-offset-1,.hover\:underline-offset-1:hover{text-underline-offset:.125em}.underline-offset-2,.hover\:underline-offset-2:hover{text-underline-offset:.25em}.underline-offset-3,.hover\:underline-offset-3:hover{text-underline-offset:.375em}.underline-primary{-webkit-text-decoration-color:light-dark(var(--bs-blue-600),var(--bs-blue-400));text-decoration-color:light-dark(var(--bs-blue-600),var(--bs-blue-400))}.underline-accent{-webkit-text-decoration-color:light-dark(var(--bs-indigo-600),color-mix(in oklch, var(--bs-indigo-400), var(--bs-indigo-300)));text-decoration-color:light-dark(var(--bs-indigo-600),color-mix(in oklch, var(--bs-indigo-400), var(--bs-indigo-300)))}.underline-success{-webkit-text-decoration-color:light-dark(var(--bs-green-600),var(--bs-green-400));text-decoration-color:light-dark(var(--bs-green-600),var(--bs-green-400))}.underline-danger{-webkit-text-decoration-color:light-dark(var(--bs-red-600),var(--bs-red-400));text-decoration-color:light-dark(var(--bs-red-600),var(--bs-red-400))}.underline-warning{-webkit-text-decoration-color:light-dark(var(--bs-yellow-700),var(--bs-yellow-400));text-decoration-color:light-dark(var(--bs-yellow-700),var(--bs-yellow-400))}.underline-info{-webkit-text-decoration-color:light-dark(var(--bs-cyan-600),var(--bs-cyan-400));text-decoration-color:light-dark(var(--bs-cyan-600),var(--bs-cyan-400))}.underline-inverse{-webkit-text-decoration-color:light-dark(var(--bs-gray-900),var(--bs-gray-200));text-decoration-color:light-dark(var(--bs-gray-900),var(--bs-gray-200))}.underline-secondary{-webkit-text-decoration-color:light-dark(var(--bs-gray-600),var(--bs-gray-400));text-decoration-color:light-dark(var(--bs-gray-600),var(--bs-gray-400))}.underline-10,.hover\:underline-10:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 10%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 10%, transparent)}.underline-20,.hover\:underline-20:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 20%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 20%, transparent)}.underline-30,.hover\:underline-30:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 30%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 30%, transparent)}.underline-40,.hover\:underline-40:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 40%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 40%, transparent)}.underline-50,.hover\:underline-50:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 50%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 50%, transparent)}.underline-60,.hover\:underline-60:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 60%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 60%, transparent)}.underline-70,.hover\:underline-70:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 70%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 70%, transparent)}.underline-80,.hover\:underline-80:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 80%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 80%, transparent)}.underline-90,.hover\:underline-90:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 90%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 90%, transparent)}.underline-100,.hover\:underline-100:hover{-webkit-text-decoration-color:var(--bs-link-color);text-decoration-color:var(--bs-link-color)}.underline-thickness-1,.hover\:underline-thickness-1:hover{text-decoration-thickness:1px}.underline-thickness-2,.hover\:underline-thickness-2:hover{text-decoration-thickness:2px}.underline-thickness-3,.hover\:underline-thickness-3:hover{text-decoration-thickness:3px}.underline-thickness-4,.hover\:underline-thickness-4:hover{text-decoration-thickness:4px}.underline-thickness-5,.hover\:underline-thickness-5:hover{text-decoration-thickness:5px}.bg-primary{--bs-bg:var(--bs-primary-bg);background-color:var(--bs-bg)}.bg-accent{--bs-bg:var(--bs-accent-bg);background-color:var(--bs-bg)}.bg-success{--bs-bg:var(--bs-success-bg);background-color:var(--bs-bg)}.bg-danger{--bs-bg:var(--bs-danger-bg);background-color:var(--bs-bg)}.bg-warning{--bs-bg:var(--bs-warning-bg);background-color:var(--bs-bg)}.bg-info{--bs-bg:var(--bs-info-bg);background-color:var(--bs-bg)}.bg-inverse{--bs-bg:var(--bs-inverse-bg);background-color:var(--bs-bg)}.bg-secondary{--bs-bg:var(--bs-secondary-bg);background-color:var(--bs-bg)}.bg-body{--bs-bg:var(--bs-bg-body);background-color:var(--bs-bg)}.bg-1{--bs-bg:var(--bs-bg-1);background-color:var(--bs-bg)}.bg-2{--bs-bg:var(--bs-bg-2);background-color:var(--bs-bg)}.bg-3{--bs-bg:var(--bs-bg-3);background-color:var(--bs-bg)}.bg-4{--bs-bg:var(--bs-bg-4);background-color:var(--bs-bg)}.bg-fg{--bs-bg:var(--bs-bg-fg);background-color:var(--bs-bg)}.bg-white{--bs-bg:var(--bs-bg-white);background-color:var(--bs-bg)}.bg-black{--bs-bg:var(--bs-bg-black);background-color:var(--bs-bg)}.bg-transparent{--bs-bg:var(--bs-bg-transparent);background-color:var(--bs-bg)}.bg-subtle-primary{--bs-bg:var(--bs-primary-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-accent{--bs-bg:var(--bs-accent-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-success{--bs-bg:var(--bs-success-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-danger{--bs-bg:var(--bs-danger-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-warning{--bs-bg:var(--bs-warning-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-info{--bs-bg:var(--bs-info-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-inverse{--bs-bg:var(--bs-inverse-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-secondary{--bs-bg:var(--bs-secondary-bg-subtle);background-color:var(--bs-bg)}.bg-muted-primary{--bs-bg:var(--bs-primary-bg-muted);background-color:var(--bs-bg)}.bg-muted-accent{--bs-bg:var(--bs-accent-bg-muted);background-color:var(--bs-bg)}.bg-muted-success{--bs-bg:var(--bs-success-bg-muted);background-color:var(--bs-bg)}.bg-muted-danger{--bs-bg:var(--bs-danger-bg-muted);background-color:var(--bs-bg)}.bg-muted-warning{--bs-bg:var(--bs-warning-bg-muted);background-color:var(--bs-bg)}.bg-muted-info{--bs-bg:var(--bs-info-bg-muted);background-color:var(--bs-bg)}.bg-muted-inverse{--bs-bg:var(--bs-inverse-bg-muted);background-color:var(--bs-bg)}.bg-muted-secondary{--bs-bg:var(--bs-secondary-bg-muted);background-color:var(--bs-bg)}.bg-10{background-color:color-mix(in oklch, var(--bs-bg) 10%, transparent)}.bg-20{background-color:color-mix(in oklch, var(--bs-bg) 20%, transparent)}.bg-30{background-color:color-mix(in oklch, var(--bs-bg) 30%, transparent)}.bg-40{background-color:color-mix(in oklch, var(--bs-bg) 40%, transparent)}.bg-50{background-color:color-mix(in oklch, var(--bs-bg) 50%, transparent)}.bg-60{background-color:color-mix(in oklch, var(--bs-bg) 60%, transparent)}.bg-70{background-color:color-mix(in oklch, var(--bs-bg) 70%, transparent)}.bg-80{background-color:color-mix(in oklch, var(--bs-bg) 80%, transparent)}.bg-90{background-color:color-mix(in oklch, var(--bs-bg) 90%, transparent)}.bg-100{background-color:var(--bs-bg)}.theme-contrast{background-color:var(--bs-theme-bg);color:var(--bs-theme-contrast)}.theme-subtle{background-color:var(--bs-theme-bg-subtle);color:var(--bs-theme-fg)}.theme-muted{background-color:var(--bs-theme-bg-muted);color:var(--bs-theme-fg-emphasis)}.theme-border{border:var(--bs-border-width) solid var(--bs-theme-border)}.bg-gradient{background-image:var(--bs-gradient)}.user-select-all{-webkit-user-select:all;user-select:all}.user-select-auto{-webkit-user-select:auto;user-select:auto}.user-select-text{-webkit-user-select:text;user-select:text}.user-select-none{-webkit-user-select:none;user-select:none}.pe-none{pointer-events:none}.pe-auto{pointer-events:auto}.rounded-0{--bs-rounded-size:0;border-radius:var(--bs-rounded-size)}.rounded-1{--bs-rounded-size:.125rem;border-radius:var(--bs-rounded-size)}.rounded-2{--bs-rounded-size:.1875rem;border-radius:var(--bs-rounded-size)}.rounded-3{--bs-rounded-size:.25rem;border-radius:var(--bs-rounded-size)}.rounded-4{--bs-rounded-size:.375rem;border-radius:var(--bs-rounded-size)}.rounded-5{--bs-rounded-size:.5rem;border-radius:var(--bs-rounded-size)}.rounded-6{--bs-rounded-size:.625rem;border-radius:var(--bs-rounded-size)}.rounded-7{--bs-rounded-size:.75rem;border-radius:var(--bs-rounded-size)}.rounded-8{--bs-rounded-size:1rem;border-radius:var(--bs-rounded-size)}.rounded-9{--bs-rounded-size:1.5rem;border-radius:var(--bs-rounded-size)}.rounded{--bs-rounded-size:.5rem;border-radius:var(--bs-rounded-size)}.rounded-circle{--bs-rounded-size:50%;border-radius:var(--bs-rounded-size)}.rounded-pill{--bs-rounded-size:var(--bs-radius-pill);border-radius:var(--bs-rounded-size)}.rounded-size-0{--bs-rounded-size:0}.rounded-size-1{--bs-rounded-size:.125rem}.rounded-size-2{--bs-rounded-size:.1875rem}.rounded-size-3{--bs-rounded-size:.25rem}.rounded-size-4{--bs-rounded-size:.375rem}.rounded-size-5{--bs-rounded-size:.5rem}.rounded-size-6{--bs-rounded-size:.625rem}.rounded-size-7{--bs-rounded-size:.75rem}.rounded-size-8{--bs-rounded-size:1rem}.rounded-size-9{--bs-rounded-size:1.5rem}.rounded-size{--bs-rounded-size:.5rem}.rounded-size-circle{--bs-rounded-size:50%}.rounded-size-pill{--bs-rounded-size:var(--bs-radius-pill)}.rounded-top-0{border-start-start-radius:0;border-start-end-radius:0}.rounded-top-1{border-start-start-radius:.125rem;border-start-end-radius:.125rem}.rounded-top-2{border-start-start-radius:.1875rem;border-start-end-radius:.1875rem}.rounded-top-3{border-start-start-radius:.25rem;border-start-end-radius:.25rem}.rounded-top-4{border-start-start-radius:.375rem;border-start-end-radius:.375rem}.rounded-top-5{border-start-start-radius:.5rem;border-start-end-radius:.5rem}.rounded-top-6{border-start-start-radius:.625rem;border-start-end-radius:.625rem}.rounded-top-7{border-start-start-radius:.75rem;border-start-end-radius:.75rem}.rounded-top-8{border-start-start-radius:1rem;border-start-end-radius:1rem}.rounded-top-9{border-start-start-radius:1.5rem;border-start-end-radius:1.5rem}.rounded-top{border-start-start-radius:var(--bs-rounded-size,var(--bs-radius-5));border-start-end-radius:var(--bs-rounded-size,var(--bs-radius-5))}.rounded-top-circle{border-start-start-radius:50%;border-start-end-radius:50%}.rounded-top-pill{border-start-start-radius:var(--bs-radius-pill);border-start-end-radius:var(--bs-radius-pill)}.rounded-end-0{border-start-end-radius:0;border-end-end-radius:0}.rounded-end-1{border-start-end-radius:.125rem;border-end-end-radius:.125rem}.rounded-end-2{border-start-end-radius:.1875rem;border-end-end-radius:.1875rem}.rounded-end-3{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-end-4{border-start-end-radius:.375rem;border-end-end-radius:.375rem}.rounded-end-5{border-start-end-radius:.5rem;border-end-end-radius:.5rem}.rounded-end-6{border-start-end-radius:.625rem;border-end-end-radius:.625rem}.rounded-end-7{border-start-end-radius:.75rem;border-end-end-radius:.75rem}.rounded-end-8{border-start-end-radius:1rem;border-end-end-radius:1rem}.rounded-end-9{border-start-end-radius:1.5rem;border-end-end-radius:1.5rem}.rounded-end{border-start-end-radius:var(--bs-rounded-size,var(--bs-radius-5));border-end-end-radius:var(--bs-rounded-size,var(--bs-radius-5))}.rounded-end-circle{border-start-end-radius:50%;border-end-end-radius:50%}.rounded-end-pill{border-start-end-radius:var(--bs-radius-pill);border-end-end-radius:var(--bs-radius-pill)}.rounded-bottom-0{border-end-end-radius:0;border-end-start-radius:0}.rounded-bottom-1{border-end-end-radius:.125rem;border-end-start-radius:.125rem}.rounded-bottom-2{border-end-end-radius:.1875rem;border-end-start-radius:.1875rem}.rounded-bottom-3{border-end-end-radius:.25rem;border-end-start-radius:.25rem}.rounded-bottom-4{border-end-end-radius:.375rem;border-end-start-radius:.375rem}.rounded-bottom-5{border-end-end-radius:.5rem;border-end-start-radius:.5rem}.rounded-bottom-6{border-end-end-radius:.625rem;border-end-start-radius:.625rem}.rounded-bottom-7{border-end-end-radius:.75rem;border-end-start-radius:.75rem}.rounded-bottom-8{border-end-end-radius:1rem;border-end-start-radius:1rem}.rounded-bottom-9{border-end-end-radius:1.5rem;border-end-start-radius:1.5rem}.rounded-bottom{border-end-end-radius:var(--bs-rounded-size,var(--bs-radius-5));border-end-start-radius:var(--bs-rounded-size,var(--bs-radius-5))}.rounded-bottom-circle{border-end-end-radius:50%;border-end-start-radius:50%}.rounded-bottom-pill{border-end-end-radius:var(--bs-radius-pill);border-end-start-radius:var(--bs-radius-pill)}.rounded-start-0{border-start-start-radius:0;border-end-start-radius:0}.rounded-start-1{border-start-start-radius:.125rem;border-end-start-radius:.125rem}.rounded-start-2{border-start-start-radius:.1875rem;border-end-start-radius:.1875rem}.rounded-start-3{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-start-4{border-start-start-radius:.375rem;border-end-start-radius:.375rem}.rounded-start-5{border-start-start-radius:.5rem;border-end-start-radius:.5rem}.rounded-start-6{border-start-start-radius:.625rem;border-end-start-radius:.625rem}.rounded-start-7{border-start-start-radius:.75rem;border-end-start-radius:.75rem}.rounded-start-8{border-start-start-radius:1rem;border-end-start-radius:1rem}.rounded-start-9{border-start-start-radius:1.5rem;border-end-start-radius:1.5rem}.rounded-start{border-start-start-radius:var(--bs-rounded-size,var(--bs-radius-5));border-end-start-radius:var(--bs-rounded-size,var(--bs-radius-5))}.rounded-start-circle{border-start-start-radius:50%;border-end-start-radius:50%}.rounded-start-pill{border-start-start-radius:var(--bs-radius-pill);border-end-start-radius:var(--bs-radius-pill)}.visible{visibility:visible}.invisible{visibility:hidden}.z-n1{z-index:-1}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}@media (width>=576px){.sm\:float-start{float:inline-start}.sm\:float-end{float:inline-end}.sm\:float-none{float:none}.sm\:object-fit-contain{object-fit:contain}.sm\:object-fit-cover{object-fit:cover}.sm\:object-fit-fill{object-fit:fill}.sm\:object-fit-scale{object-fit:scale-down}.sm\:object-fit-none{object-fit:none}.sm\:d-inline{display:inline}.sm\:d-inline-block{display:inline-block}.sm\:d-block{display:block}.sm\:d-grid{display:grid}.sm\:d-inline-grid{display:inline-grid}.sm\:d-table{display:table}.sm\:d-table-row{display:table-row}.sm\:d-table-cell{display:table-cell}.sm\:d-flex{display:flex}.sm\:d-inline-flex{display:inline-flex}.sm\:d-contents{display:contents}.sm\:d-flow-root{display:flow-root}.sm\:d-none{display:none}.sm\:flex-fill{flex:auto}.sm\:flex-row{flex-direction:row}.sm\:flex-column{flex-direction:column}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:flex-column-reverse{flex-direction:column-reverse}.sm\:flex-grow-0{flex-grow:0}.sm\:flex-grow-1{flex-grow:1}.sm\:flex-shrink-0{flex-shrink:0}.sm\:flex-shrink-1{flex-shrink:1}.sm\:flex-wrap{flex-wrap:wrap}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:flex-wrap-reverse{flex-wrap:wrap-reverse}.sm\:justify-content-start{justify-content:flex-start}.sm\:justify-content-end{justify-content:flex-end}.sm\:justify-content-center{justify-content:center}.sm\:justify-content-between{justify-content:space-between}.sm\:justify-content-around{justify-content:space-around}.sm\:justify-content-evenly{justify-content:space-evenly}.sm\:justify-items-start{justify-items:start}.sm\:justify-items-end{justify-items:end}.sm\:justify-items-center{justify-items:center}.sm\:justify-items-stretch{justify-items:stretch}.sm\:justify-self-start{justify-self:start}.sm\:justify-self-end{justify-self:end}.sm\:justify-self-center{justify-self:center}.sm\:align-items-start{align-items:flex-start}.sm\:align-items-end{align-items:flex-end}.sm\:align-items-center{align-items:center}.sm\:align-items-baseline{align-items:baseline}.sm\:align-items-stretch{align-items:stretch}.sm\:align-content-start{align-content:flex-start}.sm\:align-content-end{align-content:flex-end}.sm\:align-content-center{align-content:center}.sm\:align-content-between{align-content:space-between}.sm\:align-content-around{align-content:space-around}.sm\:align-content-stretch{align-content:stretch}.sm\:align-self-auto{align-self:auto}.sm\:align-self-start{align-self:flex-start}.sm\:align-self-end{align-self:flex-end}.sm\:align-self-center{align-self:center}.sm\:align-self-baseline{align-self:baseline}.sm\:align-self-stretch{align-self:stretch}.sm\:place-items-start{place-items:start}.sm\:place-items-end{place-items:end}.sm\:place-items-center{place-items:center}.sm\:place-items-stretch{place-items:stretch stretch}.sm\:grid-cols-1{grid-template-columns:1fr}.sm\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.sm\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.sm\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.sm\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.sm\:grid-cols-fill{grid-column:1/-1}.sm\:grid-auto-flow-row{grid-auto-flow:row}.sm\:grid-auto-flow-column{grid-auto-flow:column}.sm\:grid-auto-flow-dense{grid-auto-flow:dense}.sm\:order-first{order:-1}.sm\:order-0{order:0}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:order-3{order:3}.sm\:order-4{order:4}.sm\:order-5{order:5}.sm\:order-last{order:6}.sm\:m-0{margin:0}.sm\:m-1{margin:.25rem}.sm\:m-2{margin:.5rem}.sm\:m-3{margin:.75rem}.sm\:m-4{margin:1rem}.sm\:m-5{margin:1.25rem}.sm\:m-6{margin:1.5rem}.sm\:m-7{margin:2rem}.sm\:m-8{margin:2.5rem}.sm\:m-9{margin:3rem}.sm\:m-auto{margin:auto}.sm\:mx-0{margin-inline:0}.sm\:mx-1{margin-inline:.25rem}.sm\:mx-2{margin-inline:.5rem}.sm\:mx-3{margin-inline:.75rem}.sm\:mx-4{margin-inline:1rem}.sm\:mx-5{margin-inline:1.25rem}.sm\:mx-6{margin-inline:1.5rem}.sm\:mx-7{margin-inline:2rem}.sm\:mx-8{margin-inline:2.5rem}.sm\:mx-9{margin-inline:3rem}.sm\:mx-auto{margin-inline:auto}.sm\:my-0{margin-block:0}.sm\:my-1{margin-block:.25rem}.sm\:my-2{margin-block:.5rem}.sm\:my-3{margin-block:.75rem}.sm\:my-4{margin-block:1rem}.sm\:my-5{margin-block:1.25rem}.sm\:my-6{margin-block:1.5rem}.sm\:my-7{margin-block:2rem}.sm\:my-8{margin-block:2.5rem}.sm\:my-9{margin-block:3rem}.sm\:my-auto{margin-block:auto}.sm\:mt-0{margin-block-start:0}.sm\:mt-1{margin-block-start:.25rem}.sm\:mt-2{margin-block-start:.5rem}.sm\:mt-3{margin-block-start:.75rem}.sm\:mt-4{margin-block-start:1rem}.sm\:mt-5{margin-block-start:1.25rem}.sm\:mt-6{margin-block-start:1.5rem}.sm\:mt-7{margin-block-start:2rem}.sm\:mt-8{margin-block-start:2.5rem}.sm\:mt-9{margin-block-start:3rem}.sm\:mt-auto{margin-block-start:auto}.sm\:me-0{margin-inline-end:0}.sm\:me-1{margin-inline-end:.25rem}.sm\:me-2{margin-inline-end:.5rem}.sm\:me-3{margin-inline-end:.75rem}.sm\:me-4{margin-inline-end:1rem}.sm\:me-5{margin-inline-end:1.25rem}.sm\:me-6{margin-inline-end:1.5rem}.sm\:me-7{margin-inline-end:2rem}.sm\:me-8{margin-inline-end:2.5rem}.sm\:me-9{margin-inline-end:3rem}.sm\:me--1{margin-inline-end:-.25rem}.sm\:me--2{margin-inline-end:-.5rem}.sm\:me-auto{margin-inline-end:auto}.sm\:mb-0{margin-block-end:0}.sm\:mb-1{margin-block-end:.25rem}.sm\:mb-2{margin-block-end:.5rem}.sm\:mb-3{margin-block-end:.75rem}.sm\:mb-4{margin-block-end:1rem}.sm\:mb-5{margin-block-end:1.25rem}.sm\:mb-6{margin-block-end:1.5rem}.sm\:mb-7{margin-block-end:2rem}.sm\:mb-8{margin-block-end:2.5rem}.sm\:mb-9{margin-block-end:3rem}.sm\:mb-auto{margin-block-end:auto}.sm\:ms-0{margin-inline-start:0}.sm\:ms-1{margin-inline-start:.25rem}.sm\:ms-2{margin-inline-start:.5rem}.sm\:ms-3{margin-inline-start:.75rem}.sm\:ms-4{margin-inline-start:1rem}.sm\:ms-5{margin-inline-start:1.25rem}.sm\:ms-6{margin-inline-start:1.5rem}.sm\:ms-7{margin-inline-start:2rem}.sm\:ms-8{margin-inline-start:2.5rem}.sm\:ms-9{margin-inline-start:3rem}.sm\:ms--1{margin-inline-start:-.25rem}.sm\:ms--2{margin-inline-start:-.5rem}.sm\:ms-auto{margin-inline-start:auto}.sm\:p-0{padding:0}.sm\:p-1{padding:.25rem}.sm\:p-2{padding:.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:p-7{padding:2rem}.sm\:p-8{padding:2.5rem}.sm\:p-9{padding:3rem}.sm\:px-0{padding-inline:0}.sm\:px-1{padding-inline:.25rem}.sm\:px-2{padding-inline:.5rem}.sm\:px-3{padding-inline:.75rem}.sm\:px-4{padding-inline:1rem}.sm\:px-5{padding-inline:1.25rem}.sm\:px-6{padding-inline:1.5rem}.sm\:px-7{padding-inline:2rem}.sm\:px-8{padding-inline:2.5rem}.sm\:px-9{padding-inline:3rem}.sm\:py-0{padding-block:0}.sm\:py-1{padding-block:.25rem}.sm\:py-2{padding-block:.5rem}.sm\:py-3{padding-block:.75rem}.sm\:py-4{padding-block:1rem}.sm\:py-5{padding-block:1.25rem}.sm\:py-6{padding-block:1.5rem}.sm\:py-7{padding-block:2rem}.sm\:py-8{padding-block:2.5rem}.sm\:py-9{padding-block:3rem}.sm\:pt-0{padding-block-start:0}.sm\:pt-1{padding-block-start:.25rem}.sm\:pt-2{padding-block-start:.5rem}.sm\:pt-3{padding-block-start:.75rem}.sm\:pt-4{padding-block-start:1rem}.sm\:pt-5{padding-block-start:1.25rem}.sm\:pt-6{padding-block-start:1.5rem}.sm\:pt-7{padding-block-start:2rem}.sm\:pt-8{padding-block-start:2.5rem}.sm\:pt-9{padding-block-start:3rem}.sm\:pe-0{padding-inline-end:0}.sm\:pe-1{padding-inline-end:.25rem}.sm\:pe-2{padding-inline-end:.5rem}.sm\:pe-3{padding-inline-end:.75rem}.sm\:pe-4{padding-inline-end:1rem}.sm\:pe-5{padding-inline-end:1.25rem}.sm\:pe-6{padding-inline-end:1.5rem}.sm\:pe-7{padding-inline-end:2rem}.sm\:pe-8{padding-inline-end:2.5rem}.sm\:pe-9{padding-inline-end:3rem}.sm\:pb-0{padding-block-end:0}.sm\:pb-1{padding-block-end:.25rem}.sm\:pb-2{padding-block-end:.5rem}.sm\:pb-3{padding-block-end:.75rem}.sm\:pb-4{padding-block-end:1rem}.sm\:pb-5{padding-block-end:1.25rem}.sm\:pb-6{padding-block-end:1.5rem}.sm\:pb-7{padding-block-end:2rem}.sm\:pb-8{padding-block-end:2.5rem}.sm\:pb-9{padding-block-end:3rem}.sm\:ps-0{padding-inline-start:0}.sm\:ps-1{padding-inline-start:.25rem}.sm\:ps-2{padding-inline-start:.5rem}.sm\:ps-3{padding-inline-start:.75rem}.sm\:ps-4{padding-inline-start:1rem}.sm\:ps-5{padding-inline-start:1.25rem}.sm\:ps-6{padding-inline-start:1.5rem}.sm\:ps-7{padding-inline-start:2rem}.sm\:ps-8{padding-inline-start:2.5rem}.sm\:ps-9{padding-inline-start:3rem}.sm\:gap-0{gap:0}.sm\:gap-1{gap:.25rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-5{gap:1.25rem}.sm\:gap-6{gap:1.5rem}.sm\:gap-7{gap:2rem}.sm\:gap-8{gap:2.5rem}.sm\:gap-9{gap:3rem}.sm\:row-gap-0{row-gap:0}.sm\:row-gap-1{row-gap:.25rem}.sm\:row-gap-2{row-gap:.5rem}.sm\:row-gap-3{row-gap:.75rem}.sm\:row-gap-4{row-gap:1rem}.sm\:row-gap-5{row-gap:1.25rem}.sm\:row-gap-6{row-gap:1.5rem}.sm\:row-gap-7{row-gap:2rem}.sm\:row-gap-8{row-gap:2.5rem}.sm\:row-gap-9{row-gap:3rem}.sm\:column-gap-0{column-gap:0}.sm\:column-gap-1{column-gap:.25rem}.sm\:column-gap-2{column-gap:.5rem}.sm\:column-gap-3{column-gap:.75rem}.sm\:column-gap-4{column-gap:1rem}.sm\:column-gap-5{column-gap:1.25rem}.sm\:column-gap-6{column-gap:1.5rem}.sm\:column-gap-7{column-gap:2rem}.sm\:column-gap-8{column-gap:2.5rem}.sm\:column-gap-9{column-gap:3rem}:where(.sm\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.sm\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.sm\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.sm\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.sm\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.sm\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.sm\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.sm\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.sm\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.sm\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.sm\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.sm\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.sm\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.sm\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.sm\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.sm\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.sm\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.sm\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.sm\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.sm\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.sm\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.sm\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.sm\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.sm\:divide-y-0>:not(:first-child)){border-block-start:0}.sm\:text-start{text-align:start}.sm\:text-end{text-align:end}.sm\:text-center{text-align:center}}@media (width>=768px){.md\:float-start{float:inline-start}.md\:float-end{float:inline-end}.md\:float-none{float:none}.md\:object-fit-contain{object-fit:contain}.md\:object-fit-cover{object-fit:cover}.md\:object-fit-fill{object-fit:fill}.md\:object-fit-scale{object-fit:scale-down}.md\:object-fit-none{object-fit:none}.md\:d-inline{display:inline}.md\:d-inline-block{display:inline-block}.md\:d-block{display:block}.md\:d-grid{display:grid}.md\:d-inline-grid{display:inline-grid}.md\:d-table{display:table}.md\:d-table-row{display:table-row}.md\:d-table-cell{display:table-cell}.md\:d-flex{display:flex}.md\:d-inline-flex{display:inline-flex}.md\:d-contents{display:contents}.md\:d-flow-root{display:flow-root}.md\:d-none{display:none}.md\:flex-fill{flex:auto}.md\:flex-row{flex-direction:row}.md\:flex-column{flex-direction:column}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:flex-column-reverse{flex-direction:column-reverse}.md\:flex-grow-0{flex-grow:0}.md\:flex-grow-1{flex-grow:1}.md\:flex-shrink-0{flex-shrink:0}.md\:flex-shrink-1{flex-shrink:1}.md\:flex-wrap{flex-wrap:wrap}.md\:flex-nowrap{flex-wrap:nowrap}.md\:flex-wrap-reverse{flex-wrap:wrap-reverse}.md\:justify-content-start{justify-content:flex-start}.md\:justify-content-end{justify-content:flex-end}.md\:justify-content-center{justify-content:center}.md\:justify-content-between{justify-content:space-between}.md\:justify-content-around{justify-content:space-around}.md\:justify-content-evenly{justify-content:space-evenly}.md\:justify-items-start{justify-items:start}.md\:justify-items-end{justify-items:end}.md\:justify-items-center{justify-items:center}.md\:justify-items-stretch{justify-items:stretch}.md\:justify-self-start{justify-self:start}.md\:justify-self-end{justify-self:end}.md\:justify-self-center{justify-self:center}.md\:align-items-start{align-items:flex-start}.md\:align-items-end{align-items:flex-end}.md\:align-items-center{align-items:center}.md\:align-items-baseline{align-items:baseline}.md\:align-items-stretch{align-items:stretch}.md\:align-content-start{align-content:flex-start}.md\:align-content-end{align-content:flex-end}.md\:align-content-center{align-content:center}.md\:align-content-between{align-content:space-between}.md\:align-content-around{align-content:space-around}.md\:align-content-stretch{align-content:stretch}.md\:align-self-auto{align-self:auto}.md\:align-self-start{align-self:flex-start}.md\:align-self-end{align-self:flex-end}.md\:align-self-center{align-self:center}.md\:align-self-baseline{align-self:baseline}.md\:align-self-stretch{align-self:stretch}.md\:place-items-start{place-items:start}.md\:place-items-end{place-items:end}.md\:place-items-center{place-items:center}.md\:place-items-stretch{place-items:stretch stretch}.md\:grid-cols-1{grid-template-columns:1fr}.md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.md\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.md\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.md\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.md\:grid-cols-fill{grid-column:1/-1}.md\:grid-auto-flow-row{grid-auto-flow:row}.md\:grid-auto-flow-column{grid-auto-flow:column}.md\:grid-auto-flow-dense{grid-auto-flow:dense}.md\:order-first{order:-1}.md\:order-0{order:0}.md\:order-1{order:1}.md\:order-2{order:2}.md\:order-3{order:3}.md\:order-4{order:4}.md\:order-5{order:5}.md\:order-last{order:6}.md\:m-0{margin:0}.md\:m-1{margin:.25rem}.md\:m-2{margin:.5rem}.md\:m-3{margin:.75rem}.md\:m-4{margin:1rem}.md\:m-5{margin:1.25rem}.md\:m-6{margin:1.5rem}.md\:m-7{margin:2rem}.md\:m-8{margin:2.5rem}.md\:m-9{margin:3rem}.md\:m-auto{margin:auto}.md\:mx-0{margin-inline:0}.md\:mx-1{margin-inline:.25rem}.md\:mx-2{margin-inline:.5rem}.md\:mx-3{margin-inline:.75rem}.md\:mx-4{margin-inline:1rem}.md\:mx-5{margin-inline:1.25rem}.md\:mx-6{margin-inline:1.5rem}.md\:mx-7{margin-inline:2rem}.md\:mx-8{margin-inline:2.5rem}.md\:mx-9{margin-inline:3rem}.md\:mx-auto{margin-inline:auto}.md\:my-0{margin-block:0}.md\:my-1{margin-block:.25rem}.md\:my-2{margin-block:.5rem}.md\:my-3{margin-block:.75rem}.md\:my-4{margin-block:1rem}.md\:my-5{margin-block:1.25rem}.md\:my-6{margin-block:1.5rem}.md\:my-7{margin-block:2rem}.md\:my-8{margin-block:2.5rem}.md\:my-9{margin-block:3rem}.md\:my-auto{margin-block:auto}.md\:mt-0{margin-block-start:0}.md\:mt-1{margin-block-start:.25rem}.md\:mt-2{margin-block-start:.5rem}.md\:mt-3{margin-block-start:.75rem}.md\:mt-4{margin-block-start:1rem}.md\:mt-5{margin-block-start:1.25rem}.md\:mt-6{margin-block-start:1.5rem}.md\:mt-7{margin-block-start:2rem}.md\:mt-8{margin-block-start:2.5rem}.md\:mt-9{margin-block-start:3rem}.md\:mt-auto{margin-block-start:auto}.md\:me-0{margin-inline-end:0}.md\:me-1{margin-inline-end:.25rem}.md\:me-2{margin-inline-end:.5rem}.md\:me-3{margin-inline-end:.75rem}.md\:me-4{margin-inline-end:1rem}.md\:me-5{margin-inline-end:1.25rem}.md\:me-6{margin-inline-end:1.5rem}.md\:me-7{margin-inline-end:2rem}.md\:me-8{margin-inline-end:2.5rem}.md\:me-9{margin-inline-end:3rem}.md\:me--1{margin-inline-end:-.25rem}.md\:me--2{margin-inline-end:-.5rem}.md\:me-auto{margin-inline-end:auto}.md\:mb-0{margin-block-end:0}.md\:mb-1{margin-block-end:.25rem}.md\:mb-2{margin-block-end:.5rem}.md\:mb-3{margin-block-end:.75rem}.md\:mb-4{margin-block-end:1rem}.md\:mb-5{margin-block-end:1.25rem}.md\:mb-6{margin-block-end:1.5rem}.md\:mb-7{margin-block-end:2rem}.md\:mb-8{margin-block-end:2.5rem}.md\:mb-9{margin-block-end:3rem}.md\:mb-auto{margin-block-end:auto}.md\:ms-0{margin-inline-start:0}.md\:ms-1{margin-inline-start:.25rem}.md\:ms-2{margin-inline-start:.5rem}.md\:ms-3{margin-inline-start:.75rem}.md\:ms-4{margin-inline-start:1rem}.md\:ms-5{margin-inline-start:1.25rem}.md\:ms-6{margin-inline-start:1.5rem}.md\:ms-7{margin-inline-start:2rem}.md\:ms-8{margin-inline-start:2.5rem}.md\:ms-9{margin-inline-start:3rem}.md\:ms--1{margin-inline-start:-.25rem}.md\:ms--2{margin-inline-start:-.5rem}.md\:ms-auto{margin-inline-start:auto}.md\:p-0{padding:0}.md\:p-1{padding:.25rem}.md\:p-2{padding:.5rem}.md\:p-3{padding:.75rem}.md\:p-4{padding:1rem}.md\:p-5{padding:1.25rem}.md\:p-6{padding:1.5rem}.md\:p-7{padding:2rem}.md\:p-8{padding:2.5rem}.md\:p-9{padding:3rem}.md\:px-0{padding-inline:0}.md\:px-1{padding-inline:.25rem}.md\:px-2{padding-inline:.5rem}.md\:px-3{padding-inline:.75rem}.md\:px-4{padding-inline:1rem}.md\:px-5{padding-inline:1.25rem}.md\:px-6{padding-inline:1.5rem}.md\:px-7{padding-inline:2rem}.md\:px-8{padding-inline:2.5rem}.md\:px-9{padding-inline:3rem}.md\:py-0{padding-block:0}.md\:py-1{padding-block:.25rem}.md\:py-2{padding-block:.5rem}.md\:py-3{padding-block:.75rem}.md\:py-4{padding-block:1rem}.md\:py-5{padding-block:1.25rem}.md\:py-6{padding-block:1.5rem}.md\:py-7{padding-block:2rem}.md\:py-8{padding-block:2.5rem}.md\:py-9{padding-block:3rem}.md\:pt-0{padding-block-start:0}.md\:pt-1{padding-block-start:.25rem}.md\:pt-2{padding-block-start:.5rem}.md\:pt-3{padding-block-start:.75rem}.md\:pt-4{padding-block-start:1rem}.md\:pt-5{padding-block-start:1.25rem}.md\:pt-6{padding-block-start:1.5rem}.md\:pt-7{padding-block-start:2rem}.md\:pt-8{padding-block-start:2.5rem}.md\:pt-9{padding-block-start:3rem}.md\:pe-0{padding-inline-end:0}.md\:pe-1{padding-inline-end:.25rem}.md\:pe-2{padding-inline-end:.5rem}.md\:pe-3{padding-inline-end:.75rem}.md\:pe-4{padding-inline-end:1rem}.md\:pe-5{padding-inline-end:1.25rem}.md\:pe-6{padding-inline-end:1.5rem}.md\:pe-7{padding-inline-end:2rem}.md\:pe-8{padding-inline-end:2.5rem}.md\:pe-9{padding-inline-end:3rem}.md\:pb-0{padding-block-end:0}.md\:pb-1{padding-block-end:.25rem}.md\:pb-2{padding-block-end:.5rem}.md\:pb-3{padding-block-end:.75rem}.md\:pb-4{padding-block-end:1rem}.md\:pb-5{padding-block-end:1.25rem}.md\:pb-6{padding-block-end:1.5rem}.md\:pb-7{padding-block-end:2rem}.md\:pb-8{padding-block-end:2.5rem}.md\:pb-9{padding-block-end:3rem}.md\:ps-0{padding-inline-start:0}.md\:ps-1{padding-inline-start:.25rem}.md\:ps-2{padding-inline-start:.5rem}.md\:ps-3{padding-inline-start:.75rem}.md\:ps-4{padding-inline-start:1rem}.md\:ps-5{padding-inline-start:1.25rem}.md\:ps-6{padding-inline-start:1.5rem}.md\:ps-7{padding-inline-start:2rem}.md\:ps-8{padding-inline-start:2.5rem}.md\:ps-9{padding-inline-start:3rem}.md\:gap-0{gap:0}.md\:gap-1{gap:.25rem}.md\:gap-2{gap:.5rem}.md\:gap-3{gap:.75rem}.md\:gap-4{gap:1rem}.md\:gap-5{gap:1.25rem}.md\:gap-6{gap:1.5rem}.md\:gap-7{gap:2rem}.md\:gap-8{gap:2.5rem}.md\:gap-9{gap:3rem}.md\:row-gap-0{row-gap:0}.md\:row-gap-1{row-gap:.25rem}.md\:row-gap-2{row-gap:.5rem}.md\:row-gap-3{row-gap:.75rem}.md\:row-gap-4{row-gap:1rem}.md\:row-gap-5{row-gap:1.25rem}.md\:row-gap-6{row-gap:1.5rem}.md\:row-gap-7{row-gap:2rem}.md\:row-gap-8{row-gap:2.5rem}.md\:row-gap-9{row-gap:3rem}.md\:column-gap-0{column-gap:0}.md\:column-gap-1{column-gap:.25rem}.md\:column-gap-2{column-gap:.5rem}.md\:column-gap-3{column-gap:.75rem}.md\:column-gap-4{column-gap:1rem}.md\:column-gap-5{column-gap:1.25rem}.md\:column-gap-6{column-gap:1.5rem}.md\:column-gap-7{column-gap:2rem}.md\:column-gap-8{column-gap:2.5rem}.md\:column-gap-9{column-gap:3rem}:where(.md\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.md\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.md\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.md\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.md\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.md\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.md\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.md\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.md\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.md\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.md\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.md\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.md\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.md\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.md\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.md\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.md\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.md\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.md\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.md\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.md\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.md\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.md\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.md\:divide-y-0>:not(:first-child)){border-block-start:0}.md\:text-start{text-align:start}.md\:text-end{text-align:end}.md\:text-center{text-align:center}}@media (width>=1024px){.lg\:float-start{float:inline-start}.lg\:float-end{float:inline-end}.lg\:float-none{float:none}.lg\:object-fit-contain{object-fit:contain}.lg\:object-fit-cover{object-fit:cover}.lg\:object-fit-fill{object-fit:fill}.lg\:object-fit-scale{object-fit:scale-down}.lg\:object-fit-none{object-fit:none}.lg\:d-inline{display:inline}.lg\:d-inline-block{display:inline-block}.lg\:d-block{display:block}.lg\:d-grid{display:grid}.lg\:d-inline-grid{display:inline-grid}.lg\:d-table{display:table}.lg\:d-table-row{display:table-row}.lg\:d-table-cell{display:table-cell}.lg\:d-flex{display:flex}.lg\:d-inline-flex{display:inline-flex}.lg\:d-contents{display:contents}.lg\:d-flow-root{display:flow-root}.lg\:d-none{display:none}.lg\:flex-fill{flex:auto}.lg\:flex-row{flex-direction:row}.lg\:flex-column{flex-direction:column}.lg\:flex-row-reverse{flex-direction:row-reverse}.lg\:flex-column-reverse{flex-direction:column-reverse}.lg\:flex-grow-0{flex-grow:0}.lg\:flex-grow-1{flex-grow:1}.lg\:flex-shrink-0{flex-shrink:0}.lg\:flex-shrink-1{flex-shrink:1}.lg\:flex-wrap{flex-wrap:wrap}.lg\:flex-nowrap{flex-wrap:nowrap}.lg\:flex-wrap-reverse{flex-wrap:wrap-reverse}.lg\:justify-content-start{justify-content:flex-start}.lg\:justify-content-end{justify-content:flex-end}.lg\:justify-content-center{justify-content:center}.lg\:justify-content-between{justify-content:space-between}.lg\:justify-content-around{justify-content:space-around}.lg\:justify-content-evenly{justify-content:space-evenly}.lg\:justify-items-start{justify-items:start}.lg\:justify-items-end{justify-items:end}.lg\:justify-items-center{justify-items:center}.lg\:justify-items-stretch{justify-items:stretch}.lg\:justify-self-start{justify-self:start}.lg\:justify-self-end{justify-self:end}.lg\:justify-self-center{justify-self:center}.lg\:align-items-start{align-items:flex-start}.lg\:align-items-end{align-items:flex-end}.lg\:align-items-center{align-items:center}.lg\:align-items-baseline{align-items:baseline}.lg\:align-items-stretch{align-items:stretch}.lg\:align-content-start{align-content:flex-start}.lg\:align-content-end{align-content:flex-end}.lg\:align-content-center{align-content:center}.lg\:align-content-between{align-content:space-between}.lg\:align-content-around{align-content:space-around}.lg\:align-content-stretch{align-content:stretch}.lg\:align-self-auto{align-self:auto}.lg\:align-self-start{align-self:flex-start}.lg\:align-self-end{align-self:flex-end}.lg\:align-self-center{align-self:center}.lg\:align-self-baseline{align-self:baseline}.lg\:align-self-stretch{align-self:stretch}.lg\:place-items-start{place-items:start}.lg\:place-items-end{place-items:end}.lg\:place-items-center{place-items:center}.lg\:place-items-stretch{place-items:stretch stretch}.lg\:grid-cols-1{grid-template-columns:1fr}.lg\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.lg\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.lg\:grid-cols-fill{grid-column:1/-1}.lg\:grid-auto-flow-row{grid-auto-flow:row}.lg\:grid-auto-flow-column{grid-auto-flow:column}.lg\:grid-auto-flow-dense{grid-auto-flow:dense}.lg\:order-first{order:-1}.lg\:order-0{order:0}.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:order-3{order:3}.lg\:order-4{order:4}.lg\:order-5{order:5}.lg\:order-last{order:6}.lg\:m-0{margin:0}.lg\:m-1{margin:.25rem}.lg\:m-2{margin:.5rem}.lg\:m-3{margin:.75rem}.lg\:m-4{margin:1rem}.lg\:m-5{margin:1.25rem}.lg\:m-6{margin:1.5rem}.lg\:m-7{margin:2rem}.lg\:m-8{margin:2.5rem}.lg\:m-9{margin:3rem}.lg\:m-auto{margin:auto}.lg\:mx-0{margin-inline:0}.lg\:mx-1{margin-inline:.25rem}.lg\:mx-2{margin-inline:.5rem}.lg\:mx-3{margin-inline:.75rem}.lg\:mx-4{margin-inline:1rem}.lg\:mx-5{margin-inline:1.25rem}.lg\:mx-6{margin-inline:1.5rem}.lg\:mx-7{margin-inline:2rem}.lg\:mx-8{margin-inline:2.5rem}.lg\:mx-9{margin-inline:3rem}.lg\:mx-auto{margin-inline:auto}.lg\:my-0{margin-block:0}.lg\:my-1{margin-block:.25rem}.lg\:my-2{margin-block:.5rem}.lg\:my-3{margin-block:.75rem}.lg\:my-4{margin-block:1rem}.lg\:my-5{margin-block:1.25rem}.lg\:my-6{margin-block:1.5rem}.lg\:my-7{margin-block:2rem}.lg\:my-8{margin-block:2.5rem}.lg\:my-9{margin-block:3rem}.lg\:my-auto{margin-block:auto}.lg\:mt-0{margin-block-start:0}.lg\:mt-1{margin-block-start:.25rem}.lg\:mt-2{margin-block-start:.5rem}.lg\:mt-3{margin-block-start:.75rem}.lg\:mt-4{margin-block-start:1rem}.lg\:mt-5{margin-block-start:1.25rem}.lg\:mt-6{margin-block-start:1.5rem}.lg\:mt-7{margin-block-start:2rem}.lg\:mt-8{margin-block-start:2.5rem}.lg\:mt-9{margin-block-start:3rem}.lg\:mt-auto{margin-block-start:auto}.lg\:me-0{margin-inline-end:0}.lg\:me-1{margin-inline-end:.25rem}.lg\:me-2{margin-inline-end:.5rem}.lg\:me-3{margin-inline-end:.75rem}.lg\:me-4{margin-inline-end:1rem}.lg\:me-5{margin-inline-end:1.25rem}.lg\:me-6{margin-inline-end:1.5rem}.lg\:me-7{margin-inline-end:2rem}.lg\:me-8{margin-inline-end:2.5rem}.lg\:me-9{margin-inline-end:3rem}.lg\:me--1{margin-inline-end:-.25rem}.lg\:me--2{margin-inline-end:-.5rem}.lg\:me-auto{margin-inline-end:auto}.lg\:mb-0{margin-block-end:0}.lg\:mb-1{margin-block-end:.25rem}.lg\:mb-2{margin-block-end:.5rem}.lg\:mb-3{margin-block-end:.75rem}.lg\:mb-4{margin-block-end:1rem}.lg\:mb-5{margin-block-end:1.25rem}.lg\:mb-6{margin-block-end:1.5rem}.lg\:mb-7{margin-block-end:2rem}.lg\:mb-8{margin-block-end:2.5rem}.lg\:mb-9{margin-block-end:3rem}.lg\:mb-auto{margin-block-end:auto}.lg\:ms-0{margin-inline-start:0}.lg\:ms-1{margin-inline-start:.25rem}.lg\:ms-2{margin-inline-start:.5rem}.lg\:ms-3{margin-inline-start:.75rem}.lg\:ms-4{margin-inline-start:1rem}.lg\:ms-5{margin-inline-start:1.25rem}.lg\:ms-6{margin-inline-start:1.5rem}.lg\:ms-7{margin-inline-start:2rem}.lg\:ms-8{margin-inline-start:2.5rem}.lg\:ms-9{margin-inline-start:3rem}.lg\:ms--1{margin-inline-start:-.25rem}.lg\:ms--2{margin-inline-start:-.5rem}.lg\:ms-auto{margin-inline-start:auto}.lg\:p-0{padding:0}.lg\:p-1{padding:.25rem}.lg\:p-2{padding:.5rem}.lg\:p-3{padding:.75rem}.lg\:p-4{padding:1rem}.lg\:p-5{padding:1.25rem}.lg\:p-6{padding:1.5rem}.lg\:p-7{padding:2rem}.lg\:p-8{padding:2.5rem}.lg\:p-9{padding:3rem}.lg\:px-0{padding-inline:0}.lg\:px-1{padding-inline:.25rem}.lg\:px-2{padding-inline:.5rem}.lg\:px-3{padding-inline:.75rem}.lg\:px-4{padding-inline:1rem}.lg\:px-5{padding-inline:1.25rem}.lg\:px-6{padding-inline:1.5rem}.lg\:px-7{padding-inline:2rem}.lg\:px-8{padding-inline:2.5rem}.lg\:px-9{padding-inline:3rem}.lg\:py-0{padding-block:0}.lg\:py-1{padding-block:.25rem}.lg\:py-2{padding-block:.5rem}.lg\:py-3{padding-block:.75rem}.lg\:py-4{padding-block:1rem}.lg\:py-5{padding-block:1.25rem}.lg\:py-6{padding-block:1.5rem}.lg\:py-7{padding-block:2rem}.lg\:py-8{padding-block:2.5rem}.lg\:py-9{padding-block:3rem}.lg\:pt-0{padding-block-start:0}.lg\:pt-1{padding-block-start:.25rem}.lg\:pt-2{padding-block-start:.5rem}.lg\:pt-3{padding-block-start:.75rem}.lg\:pt-4{padding-block-start:1rem}.lg\:pt-5{padding-block-start:1.25rem}.lg\:pt-6{padding-block-start:1.5rem}.lg\:pt-7{padding-block-start:2rem}.lg\:pt-8{padding-block-start:2.5rem}.lg\:pt-9{padding-block-start:3rem}.lg\:pe-0{padding-inline-end:0}.lg\:pe-1{padding-inline-end:.25rem}.lg\:pe-2{padding-inline-end:.5rem}.lg\:pe-3{padding-inline-end:.75rem}.lg\:pe-4{padding-inline-end:1rem}.lg\:pe-5{padding-inline-end:1.25rem}.lg\:pe-6{padding-inline-end:1.5rem}.lg\:pe-7{padding-inline-end:2rem}.lg\:pe-8{padding-inline-end:2.5rem}.lg\:pe-9{padding-inline-end:3rem}.lg\:pb-0{padding-block-end:0}.lg\:pb-1{padding-block-end:.25rem}.lg\:pb-2{padding-block-end:.5rem}.lg\:pb-3{padding-block-end:.75rem}.lg\:pb-4{padding-block-end:1rem}.lg\:pb-5{padding-block-end:1.25rem}.lg\:pb-6{padding-block-end:1.5rem}.lg\:pb-7{padding-block-end:2rem}.lg\:pb-8{padding-block-end:2.5rem}.lg\:pb-9{padding-block-end:3rem}.lg\:ps-0{padding-inline-start:0}.lg\:ps-1{padding-inline-start:.25rem}.lg\:ps-2{padding-inline-start:.5rem}.lg\:ps-3{padding-inline-start:.75rem}.lg\:ps-4{padding-inline-start:1rem}.lg\:ps-5{padding-inline-start:1.25rem}.lg\:ps-6{padding-inline-start:1.5rem}.lg\:ps-7{padding-inline-start:2rem}.lg\:ps-8{padding-inline-start:2.5rem}.lg\:ps-9{padding-inline-start:3rem}.lg\:gap-0{gap:0}.lg\:gap-1{gap:.25rem}.lg\:gap-2{gap:.5rem}.lg\:gap-3{gap:.75rem}.lg\:gap-4{gap:1rem}.lg\:gap-5{gap:1.25rem}.lg\:gap-6{gap:1.5rem}.lg\:gap-7{gap:2rem}.lg\:gap-8{gap:2.5rem}.lg\:gap-9{gap:3rem}.lg\:row-gap-0{row-gap:0}.lg\:row-gap-1{row-gap:.25rem}.lg\:row-gap-2{row-gap:.5rem}.lg\:row-gap-3{row-gap:.75rem}.lg\:row-gap-4{row-gap:1rem}.lg\:row-gap-5{row-gap:1.25rem}.lg\:row-gap-6{row-gap:1.5rem}.lg\:row-gap-7{row-gap:2rem}.lg\:row-gap-8{row-gap:2.5rem}.lg\:row-gap-9{row-gap:3rem}.lg\:column-gap-0{column-gap:0}.lg\:column-gap-1{column-gap:.25rem}.lg\:column-gap-2{column-gap:.5rem}.lg\:column-gap-3{column-gap:.75rem}.lg\:column-gap-4{column-gap:1rem}.lg\:column-gap-5{column-gap:1.25rem}.lg\:column-gap-6{column-gap:1.5rem}.lg\:column-gap-7{column-gap:2rem}.lg\:column-gap-8{column-gap:2.5rem}.lg\:column-gap-9{column-gap:3rem}:where(.lg\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.lg\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.lg\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.lg\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.lg\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.lg\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.lg\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.lg\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.lg\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.lg\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.lg\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.lg\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.lg\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.lg\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.lg\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.lg\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.lg\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.lg\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.lg\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.lg\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.lg\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.lg\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.lg\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.lg\:divide-y-0>:not(:first-child)){border-block-start:0}.lg\:text-start{text-align:start}.lg\:text-end{text-align:end}.lg\:text-center{text-align:center}}@media (width>=1280px){.xl\:float-start{float:inline-start}.xl\:float-end{float:inline-end}.xl\:float-none{float:none}.xl\:object-fit-contain{object-fit:contain}.xl\:object-fit-cover{object-fit:cover}.xl\:object-fit-fill{object-fit:fill}.xl\:object-fit-scale{object-fit:scale-down}.xl\:object-fit-none{object-fit:none}.xl\:d-inline{display:inline}.xl\:d-inline-block{display:inline-block}.xl\:d-block{display:block}.xl\:d-grid{display:grid}.xl\:d-inline-grid{display:inline-grid}.xl\:d-table{display:table}.xl\:d-table-row{display:table-row}.xl\:d-table-cell{display:table-cell}.xl\:d-flex{display:flex}.xl\:d-inline-flex{display:inline-flex}.xl\:d-contents{display:contents}.xl\:d-flow-root{display:flow-root}.xl\:d-none{display:none}.xl\:flex-fill{flex:auto}.xl\:flex-row{flex-direction:row}.xl\:flex-column{flex-direction:column}.xl\:flex-row-reverse{flex-direction:row-reverse}.xl\:flex-column-reverse{flex-direction:column-reverse}.xl\:flex-grow-0{flex-grow:0}.xl\:flex-grow-1{flex-grow:1}.xl\:flex-shrink-0{flex-shrink:0}.xl\:flex-shrink-1{flex-shrink:1}.xl\:flex-wrap{flex-wrap:wrap}.xl\:flex-nowrap{flex-wrap:nowrap}.xl\:flex-wrap-reverse{flex-wrap:wrap-reverse}.xl\:justify-content-start{justify-content:flex-start}.xl\:justify-content-end{justify-content:flex-end}.xl\:justify-content-center{justify-content:center}.xl\:justify-content-between{justify-content:space-between}.xl\:justify-content-around{justify-content:space-around}.xl\:justify-content-evenly{justify-content:space-evenly}.xl\:justify-items-start{justify-items:start}.xl\:justify-items-end{justify-items:end}.xl\:justify-items-center{justify-items:center}.xl\:justify-items-stretch{justify-items:stretch}.xl\:justify-self-start{justify-self:start}.xl\:justify-self-end{justify-self:end}.xl\:justify-self-center{justify-self:center}.xl\:align-items-start{align-items:flex-start}.xl\:align-items-end{align-items:flex-end}.xl\:align-items-center{align-items:center}.xl\:align-items-baseline{align-items:baseline}.xl\:align-items-stretch{align-items:stretch}.xl\:align-content-start{align-content:flex-start}.xl\:align-content-end{align-content:flex-end}.xl\:align-content-center{align-content:center}.xl\:align-content-between{align-content:space-between}.xl\:align-content-around{align-content:space-around}.xl\:align-content-stretch{align-content:stretch}.xl\:align-self-auto{align-self:auto}.xl\:align-self-start{align-self:flex-start}.xl\:align-self-end{align-self:flex-end}.xl\:align-self-center{align-self:center}.xl\:align-self-baseline{align-self:baseline}.xl\:align-self-stretch{align-self:stretch}.xl\:place-items-start{place-items:start}.xl\:place-items-end{place-items:end}.xl\:place-items-center{place-items:center}.xl\:place-items-stretch{place-items:stretch stretch}.xl\:grid-cols-1{grid-template-columns:1fr}.xl\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.xl\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.xl\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.xl\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.xl\:grid-cols-fill{grid-column:1/-1}.xl\:grid-auto-flow-row{grid-auto-flow:row}.xl\:grid-auto-flow-column{grid-auto-flow:column}.xl\:grid-auto-flow-dense{grid-auto-flow:dense}.xl\:order-first{order:-1}.xl\:order-0{order:0}.xl\:order-1{order:1}.xl\:order-2{order:2}.xl\:order-3{order:3}.xl\:order-4{order:4}.xl\:order-5{order:5}.xl\:order-last{order:6}.xl\:m-0{margin:0}.xl\:m-1{margin:.25rem}.xl\:m-2{margin:.5rem}.xl\:m-3{margin:.75rem}.xl\:m-4{margin:1rem}.xl\:m-5{margin:1.25rem}.xl\:m-6{margin:1.5rem}.xl\:m-7{margin:2rem}.xl\:m-8{margin:2.5rem}.xl\:m-9{margin:3rem}.xl\:m-auto{margin:auto}.xl\:mx-0{margin-inline:0}.xl\:mx-1{margin-inline:.25rem}.xl\:mx-2{margin-inline:.5rem}.xl\:mx-3{margin-inline:.75rem}.xl\:mx-4{margin-inline:1rem}.xl\:mx-5{margin-inline:1.25rem}.xl\:mx-6{margin-inline:1.5rem}.xl\:mx-7{margin-inline:2rem}.xl\:mx-8{margin-inline:2.5rem}.xl\:mx-9{margin-inline:3rem}.xl\:mx-auto{margin-inline:auto}.xl\:my-0{margin-block:0}.xl\:my-1{margin-block:.25rem}.xl\:my-2{margin-block:.5rem}.xl\:my-3{margin-block:.75rem}.xl\:my-4{margin-block:1rem}.xl\:my-5{margin-block:1.25rem}.xl\:my-6{margin-block:1.5rem}.xl\:my-7{margin-block:2rem}.xl\:my-8{margin-block:2.5rem}.xl\:my-9{margin-block:3rem}.xl\:my-auto{margin-block:auto}.xl\:mt-0{margin-block-start:0}.xl\:mt-1{margin-block-start:.25rem}.xl\:mt-2{margin-block-start:.5rem}.xl\:mt-3{margin-block-start:.75rem}.xl\:mt-4{margin-block-start:1rem}.xl\:mt-5{margin-block-start:1.25rem}.xl\:mt-6{margin-block-start:1.5rem}.xl\:mt-7{margin-block-start:2rem}.xl\:mt-8{margin-block-start:2.5rem}.xl\:mt-9{margin-block-start:3rem}.xl\:mt-auto{margin-block-start:auto}.xl\:me-0{margin-inline-end:0}.xl\:me-1{margin-inline-end:.25rem}.xl\:me-2{margin-inline-end:.5rem}.xl\:me-3{margin-inline-end:.75rem}.xl\:me-4{margin-inline-end:1rem}.xl\:me-5{margin-inline-end:1.25rem}.xl\:me-6{margin-inline-end:1.5rem}.xl\:me-7{margin-inline-end:2rem}.xl\:me-8{margin-inline-end:2.5rem}.xl\:me-9{margin-inline-end:3rem}.xl\:me--1{margin-inline-end:-.25rem}.xl\:me--2{margin-inline-end:-.5rem}.xl\:me-auto{margin-inline-end:auto}.xl\:mb-0{margin-block-end:0}.xl\:mb-1{margin-block-end:.25rem}.xl\:mb-2{margin-block-end:.5rem}.xl\:mb-3{margin-block-end:.75rem}.xl\:mb-4{margin-block-end:1rem}.xl\:mb-5{margin-block-end:1.25rem}.xl\:mb-6{margin-block-end:1.5rem}.xl\:mb-7{margin-block-end:2rem}.xl\:mb-8{margin-block-end:2.5rem}.xl\:mb-9{margin-block-end:3rem}.xl\:mb-auto{margin-block-end:auto}.xl\:ms-0{margin-inline-start:0}.xl\:ms-1{margin-inline-start:.25rem}.xl\:ms-2{margin-inline-start:.5rem}.xl\:ms-3{margin-inline-start:.75rem}.xl\:ms-4{margin-inline-start:1rem}.xl\:ms-5{margin-inline-start:1.25rem}.xl\:ms-6{margin-inline-start:1.5rem}.xl\:ms-7{margin-inline-start:2rem}.xl\:ms-8{margin-inline-start:2.5rem}.xl\:ms-9{margin-inline-start:3rem}.xl\:ms--1{margin-inline-start:-.25rem}.xl\:ms--2{margin-inline-start:-.5rem}.xl\:ms-auto{margin-inline-start:auto}.xl\:p-0{padding:0}.xl\:p-1{padding:.25rem}.xl\:p-2{padding:.5rem}.xl\:p-3{padding:.75rem}.xl\:p-4{padding:1rem}.xl\:p-5{padding:1.25rem}.xl\:p-6{padding:1.5rem}.xl\:p-7{padding:2rem}.xl\:p-8{padding:2.5rem}.xl\:p-9{padding:3rem}.xl\:px-0{padding-inline:0}.xl\:px-1{padding-inline:.25rem}.xl\:px-2{padding-inline:.5rem}.xl\:px-3{padding-inline:.75rem}.xl\:px-4{padding-inline:1rem}.xl\:px-5{padding-inline:1.25rem}.xl\:px-6{padding-inline:1.5rem}.xl\:px-7{padding-inline:2rem}.xl\:px-8{padding-inline:2.5rem}.xl\:px-9{padding-inline:3rem}.xl\:py-0{padding-block:0}.xl\:py-1{padding-block:.25rem}.xl\:py-2{padding-block:.5rem}.xl\:py-3{padding-block:.75rem}.xl\:py-4{padding-block:1rem}.xl\:py-5{padding-block:1.25rem}.xl\:py-6{padding-block:1.5rem}.xl\:py-7{padding-block:2rem}.xl\:py-8{padding-block:2.5rem}.xl\:py-9{padding-block:3rem}.xl\:pt-0{padding-block-start:0}.xl\:pt-1{padding-block-start:.25rem}.xl\:pt-2{padding-block-start:.5rem}.xl\:pt-3{padding-block-start:.75rem}.xl\:pt-4{padding-block-start:1rem}.xl\:pt-5{padding-block-start:1.25rem}.xl\:pt-6{padding-block-start:1.5rem}.xl\:pt-7{padding-block-start:2rem}.xl\:pt-8{padding-block-start:2.5rem}.xl\:pt-9{padding-block-start:3rem}.xl\:pe-0{padding-inline-end:0}.xl\:pe-1{padding-inline-end:.25rem}.xl\:pe-2{padding-inline-end:.5rem}.xl\:pe-3{padding-inline-end:.75rem}.xl\:pe-4{padding-inline-end:1rem}.xl\:pe-5{padding-inline-end:1.25rem}.xl\:pe-6{padding-inline-end:1.5rem}.xl\:pe-7{padding-inline-end:2rem}.xl\:pe-8{padding-inline-end:2.5rem}.xl\:pe-9{padding-inline-end:3rem}.xl\:pb-0{padding-block-end:0}.xl\:pb-1{padding-block-end:.25rem}.xl\:pb-2{padding-block-end:.5rem}.xl\:pb-3{padding-block-end:.75rem}.xl\:pb-4{padding-block-end:1rem}.xl\:pb-5{padding-block-end:1.25rem}.xl\:pb-6{padding-block-end:1.5rem}.xl\:pb-7{padding-block-end:2rem}.xl\:pb-8{padding-block-end:2.5rem}.xl\:pb-9{padding-block-end:3rem}.xl\:ps-0{padding-inline-start:0}.xl\:ps-1{padding-inline-start:.25rem}.xl\:ps-2{padding-inline-start:.5rem}.xl\:ps-3{padding-inline-start:.75rem}.xl\:ps-4{padding-inline-start:1rem}.xl\:ps-5{padding-inline-start:1.25rem}.xl\:ps-6{padding-inline-start:1.5rem}.xl\:ps-7{padding-inline-start:2rem}.xl\:ps-8{padding-inline-start:2.5rem}.xl\:ps-9{padding-inline-start:3rem}.xl\:gap-0{gap:0}.xl\:gap-1{gap:.25rem}.xl\:gap-2{gap:.5rem}.xl\:gap-3{gap:.75rem}.xl\:gap-4{gap:1rem}.xl\:gap-5{gap:1.25rem}.xl\:gap-6{gap:1.5rem}.xl\:gap-7{gap:2rem}.xl\:gap-8{gap:2.5rem}.xl\:gap-9{gap:3rem}.xl\:row-gap-0{row-gap:0}.xl\:row-gap-1{row-gap:.25rem}.xl\:row-gap-2{row-gap:.5rem}.xl\:row-gap-3{row-gap:.75rem}.xl\:row-gap-4{row-gap:1rem}.xl\:row-gap-5{row-gap:1.25rem}.xl\:row-gap-6{row-gap:1.5rem}.xl\:row-gap-7{row-gap:2rem}.xl\:row-gap-8{row-gap:2.5rem}.xl\:row-gap-9{row-gap:3rem}.xl\:column-gap-0{column-gap:0}.xl\:column-gap-1{column-gap:.25rem}.xl\:column-gap-2{column-gap:.5rem}.xl\:column-gap-3{column-gap:.75rem}.xl\:column-gap-4{column-gap:1rem}.xl\:column-gap-5{column-gap:1.25rem}.xl\:column-gap-6{column-gap:1.5rem}.xl\:column-gap-7{column-gap:2rem}.xl\:column-gap-8{column-gap:2.5rem}.xl\:column-gap-9{column-gap:3rem}:where(.xl\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.xl\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.xl\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.xl\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.xl\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.xl\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.xl\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.xl\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.xl\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.xl\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.xl\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.xl\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.xl\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.xl\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.xl\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.xl\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.xl\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.xl\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.xl\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.xl\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.xl\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.xl\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.xl\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.xl\:divide-y-0>:not(:first-child)){border-block-start:0}.xl\:text-start{text-align:start}.xl\:text-end{text-align:end}.xl\:text-center{text-align:center}}@media (width>=1536px){.\32 xl\:float-start{float:inline-start}.\32 xl\:float-end{float:inline-end}.\32 xl\:float-none{float:none}.\32 xl\:object-fit-contain{object-fit:contain}.\32 xl\:object-fit-cover{object-fit:cover}.\32 xl\:object-fit-fill{object-fit:fill}.\32 xl\:object-fit-scale{object-fit:scale-down}.\32 xl\:object-fit-none{object-fit:none}.\32 xl\:d-inline{display:inline}.\32 xl\:d-inline-block{display:inline-block}.\32 xl\:d-block{display:block}.\32 xl\:d-grid{display:grid}.\32 xl\:d-inline-grid{display:inline-grid}.\32 xl\:d-table{display:table}.\32 xl\:d-table-row{display:table-row}.\32 xl\:d-table-cell{display:table-cell}.\32 xl\:d-flex{display:flex}.\32 xl\:d-inline-flex{display:inline-flex}.\32 xl\:d-contents{display:contents}.\32 xl\:d-flow-root{display:flow-root}.\32 xl\:d-none{display:none}.\32 xl\:flex-fill{flex:auto}.\32 xl\:flex-row{flex-direction:row}.\32 xl\:flex-column{flex-direction:column}.\32 xl\:flex-row-reverse{flex-direction:row-reverse}.\32 xl\:flex-column-reverse{flex-direction:column-reverse}.\32 xl\:flex-grow-0{flex-grow:0}.\32 xl\:flex-grow-1{flex-grow:1}.\32 xl\:flex-shrink-0{flex-shrink:0}.\32 xl\:flex-shrink-1{flex-shrink:1}.\32 xl\:flex-wrap{flex-wrap:wrap}.\32 xl\:flex-nowrap{flex-wrap:nowrap}.\32 xl\:flex-wrap-reverse{flex-wrap:wrap-reverse}.\32 xl\:justify-content-start{justify-content:flex-start}.\32 xl\:justify-content-end{justify-content:flex-end}.\32 xl\:justify-content-center{justify-content:center}.\32 xl\:justify-content-between{justify-content:space-between}.\32 xl\:justify-content-around{justify-content:space-around}.\32 xl\:justify-content-evenly{justify-content:space-evenly}.\32 xl\:justify-items-start{justify-items:start}.\32 xl\:justify-items-end{justify-items:end}.\32 xl\:justify-items-center{justify-items:center}.\32 xl\:justify-items-stretch{justify-items:stretch}.\32 xl\:justify-self-start{justify-self:start}.\32 xl\:justify-self-end{justify-self:end}.\32 xl\:justify-self-center{justify-self:center}.\32 xl\:align-items-start{align-items:flex-start}.\32 xl\:align-items-end{align-items:flex-end}.\32 xl\:align-items-center{align-items:center}.\32 xl\:align-items-baseline{align-items:baseline}.\32 xl\:align-items-stretch{align-items:stretch}.\32 xl\:align-content-start{align-content:flex-start}.\32 xl\:align-content-end{align-content:flex-end}.\32 xl\:align-content-center{align-content:center}.\32 xl\:align-content-between{align-content:space-between}.\32 xl\:align-content-around{align-content:space-around}.\32 xl\:align-content-stretch{align-content:stretch}.\32 xl\:align-self-auto{align-self:auto}.\32 xl\:align-self-start{align-self:flex-start}.\32 xl\:align-self-end{align-self:flex-end}.\32 xl\:align-self-center{align-self:center}.\32 xl\:align-self-baseline{align-self:baseline}.\32 xl\:align-self-stretch{align-self:stretch}.\32 xl\:place-items-start{place-items:start}.\32 xl\:place-items-end{place-items:end}.\32 xl\:place-items-center{place-items:center}.\32 xl\:place-items-stretch{place-items:stretch stretch}.\32 xl\:grid-cols-1{grid-template-columns:1fr}.\32 xl\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.\32 xl\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.\32 xl\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.\32 xl\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.\32 xl\:grid-cols-fill{grid-column:1/-1}.\32 xl\:grid-auto-flow-row{grid-auto-flow:row}.\32 xl\:grid-auto-flow-column{grid-auto-flow:column}.\32 xl\:grid-auto-flow-dense{grid-auto-flow:dense}.\32 xl\:order-first{order:-1}.\32 xl\:order-0{order:0}.\32 xl\:order-1{order:1}.\32 xl\:order-2{order:2}.\32 xl\:order-3{order:3}.\32 xl\:order-4{order:4}.\32 xl\:order-5{order:5}.\32 xl\:order-last{order:6}.\32 xl\:m-0{margin:0}.\32 xl\:m-1{margin:.25rem}.\32 xl\:m-2{margin:.5rem}.\32 xl\:m-3{margin:.75rem}.\32 xl\:m-4{margin:1rem}.\32 xl\:m-5{margin:1.25rem}.\32 xl\:m-6{margin:1.5rem}.\32 xl\:m-7{margin:2rem}.\32 xl\:m-8{margin:2.5rem}.\32 xl\:m-9{margin:3rem}.\32 xl\:m-auto{margin:auto}.\32 xl\:mx-0{margin-inline:0}.\32 xl\:mx-1{margin-inline:.25rem}.\32 xl\:mx-2{margin-inline:.5rem}.\32 xl\:mx-3{margin-inline:.75rem}.\32 xl\:mx-4{margin-inline:1rem}.\32 xl\:mx-5{margin-inline:1.25rem}.\32 xl\:mx-6{margin-inline:1.5rem}.\32 xl\:mx-7{margin-inline:2rem}.\32 xl\:mx-8{margin-inline:2.5rem}.\32 xl\:mx-9{margin-inline:3rem}.\32 xl\:mx-auto{margin-inline:auto}.\32 xl\:my-0{margin-block:0}.\32 xl\:my-1{margin-block:.25rem}.\32 xl\:my-2{margin-block:.5rem}.\32 xl\:my-3{margin-block:.75rem}.\32 xl\:my-4{margin-block:1rem}.\32 xl\:my-5{margin-block:1.25rem}.\32 xl\:my-6{margin-block:1.5rem}.\32 xl\:my-7{margin-block:2rem}.\32 xl\:my-8{margin-block:2.5rem}.\32 xl\:my-9{margin-block:3rem}.\32 xl\:my-auto{margin-block:auto}.\32 xl\:mt-0{margin-block-start:0}.\32 xl\:mt-1{margin-block-start:.25rem}.\32 xl\:mt-2{margin-block-start:.5rem}.\32 xl\:mt-3{margin-block-start:.75rem}.\32 xl\:mt-4{margin-block-start:1rem}.\32 xl\:mt-5{margin-block-start:1.25rem}.\32 xl\:mt-6{margin-block-start:1.5rem}.\32 xl\:mt-7{margin-block-start:2rem}.\32 xl\:mt-8{margin-block-start:2.5rem}.\32 xl\:mt-9{margin-block-start:3rem}.\32 xl\:mt-auto{margin-block-start:auto}.\32 xl\:me-0{margin-inline-end:0}.\32 xl\:me-1{margin-inline-end:.25rem}.\32 xl\:me-2{margin-inline-end:.5rem}.\32 xl\:me-3{margin-inline-end:.75rem}.\32 xl\:me-4{margin-inline-end:1rem}.\32 xl\:me-5{margin-inline-end:1.25rem}.\32 xl\:me-6{margin-inline-end:1.5rem}.\32 xl\:me-7{margin-inline-end:2rem}.\32 xl\:me-8{margin-inline-end:2.5rem}.\32 xl\:me-9{margin-inline-end:3rem}.\32 xl\:me--1{margin-inline-end:-.25rem}.\32 xl\:me--2{margin-inline-end:-.5rem}.\32 xl\:me-auto{margin-inline-end:auto}.\32 xl\:mb-0{margin-block-end:0}.\32 xl\:mb-1{margin-block-end:.25rem}.\32 xl\:mb-2{margin-block-end:.5rem}.\32 xl\:mb-3{margin-block-end:.75rem}.\32 xl\:mb-4{margin-block-end:1rem}.\32 xl\:mb-5{margin-block-end:1.25rem}.\32 xl\:mb-6{margin-block-end:1.5rem}.\32 xl\:mb-7{margin-block-end:2rem}.\32 xl\:mb-8{margin-block-end:2.5rem}.\32 xl\:mb-9{margin-block-end:3rem}.\32 xl\:mb-auto{margin-block-end:auto}.\32 xl\:ms-0{margin-inline-start:0}.\32 xl\:ms-1{margin-inline-start:.25rem}.\32 xl\:ms-2{margin-inline-start:.5rem}.\32 xl\:ms-3{margin-inline-start:.75rem}.\32 xl\:ms-4{margin-inline-start:1rem}.\32 xl\:ms-5{margin-inline-start:1.25rem}.\32 xl\:ms-6{margin-inline-start:1.5rem}.\32 xl\:ms-7{margin-inline-start:2rem}.\32 xl\:ms-8{margin-inline-start:2.5rem}.\32 xl\:ms-9{margin-inline-start:3rem}.\32 xl\:ms--1{margin-inline-start:-.25rem}.\32 xl\:ms--2{margin-inline-start:-.5rem}.\32 xl\:ms-auto{margin-inline-start:auto}.\32 xl\:p-0{padding:0}.\32 xl\:p-1{padding:.25rem}.\32 xl\:p-2{padding:.5rem}.\32 xl\:p-3{padding:.75rem}.\32 xl\:p-4{padding:1rem}.\32 xl\:p-5{padding:1.25rem}.\32 xl\:p-6{padding:1.5rem}.\32 xl\:p-7{padding:2rem}.\32 xl\:p-8{padding:2.5rem}.\32 xl\:p-9{padding:3rem}.\32 xl\:px-0{padding-inline:0}.\32 xl\:px-1{padding-inline:.25rem}.\32 xl\:px-2{padding-inline:.5rem}.\32 xl\:px-3{padding-inline:.75rem}.\32 xl\:px-4{padding-inline:1rem}.\32 xl\:px-5{padding-inline:1.25rem}.\32 xl\:px-6{padding-inline:1.5rem}.\32 xl\:px-7{padding-inline:2rem}.\32 xl\:px-8{padding-inline:2.5rem}.\32 xl\:px-9{padding-inline:3rem}.\32 xl\:py-0{padding-block:0}.\32 xl\:py-1{padding-block:.25rem}.\32 xl\:py-2{padding-block:.5rem}.\32 xl\:py-3{padding-block:.75rem}.\32 xl\:py-4{padding-block:1rem}.\32 xl\:py-5{padding-block:1.25rem}.\32 xl\:py-6{padding-block:1.5rem}.\32 xl\:py-7{padding-block:2rem}.\32 xl\:py-8{padding-block:2.5rem}.\32 xl\:py-9{padding-block:3rem}.\32 xl\:pt-0{padding-block-start:0}.\32 xl\:pt-1{padding-block-start:.25rem}.\32 xl\:pt-2{padding-block-start:.5rem}.\32 xl\:pt-3{padding-block-start:.75rem}.\32 xl\:pt-4{padding-block-start:1rem}.\32 xl\:pt-5{padding-block-start:1.25rem}.\32 xl\:pt-6{padding-block-start:1.5rem}.\32 xl\:pt-7{padding-block-start:2rem}.\32 xl\:pt-8{padding-block-start:2.5rem}.\32 xl\:pt-9{padding-block-start:3rem}.\32 xl\:pe-0{padding-inline-end:0}.\32 xl\:pe-1{padding-inline-end:.25rem}.\32 xl\:pe-2{padding-inline-end:.5rem}.\32 xl\:pe-3{padding-inline-end:.75rem}.\32 xl\:pe-4{padding-inline-end:1rem}.\32 xl\:pe-5{padding-inline-end:1.25rem}.\32 xl\:pe-6{padding-inline-end:1.5rem}.\32 xl\:pe-7{padding-inline-end:2rem}.\32 xl\:pe-8{padding-inline-end:2.5rem}.\32 xl\:pe-9{padding-inline-end:3rem}.\32 xl\:pb-0{padding-block-end:0}.\32 xl\:pb-1{padding-block-end:.25rem}.\32 xl\:pb-2{padding-block-end:.5rem}.\32 xl\:pb-3{padding-block-end:.75rem}.\32 xl\:pb-4{padding-block-end:1rem}.\32 xl\:pb-5{padding-block-end:1.25rem}.\32 xl\:pb-6{padding-block-end:1.5rem}.\32 xl\:pb-7{padding-block-end:2rem}.\32 xl\:pb-8{padding-block-end:2.5rem}.\32 xl\:pb-9{padding-block-end:3rem}.\32 xl\:ps-0{padding-inline-start:0}.\32 xl\:ps-1{padding-inline-start:.25rem}.\32 xl\:ps-2{padding-inline-start:.5rem}.\32 xl\:ps-3{padding-inline-start:.75rem}.\32 xl\:ps-4{padding-inline-start:1rem}.\32 xl\:ps-5{padding-inline-start:1.25rem}.\32 xl\:ps-6{padding-inline-start:1.5rem}.\32 xl\:ps-7{padding-inline-start:2rem}.\32 xl\:ps-8{padding-inline-start:2.5rem}.\32 xl\:ps-9{padding-inline-start:3rem}.\32 xl\:gap-0{gap:0}.\32 xl\:gap-1{gap:.25rem}.\32 xl\:gap-2{gap:.5rem}.\32 xl\:gap-3{gap:.75rem}.\32 xl\:gap-4{gap:1rem}.\32 xl\:gap-5{gap:1.25rem}.\32 xl\:gap-6{gap:1.5rem}.\32 xl\:gap-7{gap:2rem}.\32 xl\:gap-8{gap:2.5rem}.\32 xl\:gap-9{gap:3rem}.\32 xl\:row-gap-0{row-gap:0}.\32 xl\:row-gap-1{row-gap:.25rem}.\32 xl\:row-gap-2{row-gap:.5rem}.\32 xl\:row-gap-3{row-gap:.75rem}.\32 xl\:row-gap-4{row-gap:1rem}.\32 xl\:row-gap-5{row-gap:1.25rem}.\32 xl\:row-gap-6{row-gap:1.5rem}.\32 xl\:row-gap-7{row-gap:2rem}.\32 xl\:row-gap-8{row-gap:2.5rem}.\32 xl\:row-gap-9{row-gap:3rem}.\32 xl\:column-gap-0{column-gap:0}.\32 xl\:column-gap-1{column-gap:.25rem}.\32 xl\:column-gap-2{column-gap:.5rem}.\32 xl\:column-gap-3{column-gap:.75rem}.\32 xl\:column-gap-4{column-gap:1rem}.\32 xl\:column-gap-5{column-gap:1.25rem}.\32 xl\:column-gap-6{column-gap:1.5rem}.\32 xl\:column-gap-7{column-gap:2rem}.\32 xl\:column-gap-8{column-gap:2.5rem}.\32 xl\:column-gap-9{column-gap:3rem}:where(.\32 xl\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.\32 xl\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.\32 xl\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.\32 xl\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.\32 xl\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.\32 xl\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.\32 xl\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.\32 xl\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.\32 xl\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.\32 xl\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.\32 xl\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.\32 xl\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.\32 xl\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.\32 xl\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.\32 xl\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.\32 xl\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.\32 xl\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.\32 xl\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.\32 xl\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.\32 xl\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.\32 xl\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.\32 xl\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.\32 xl\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.\32 xl\:divide-y-0>:not(:first-child)){border-block-start:0}.\32 xl\:text-start{text-align:start}.\32 xl\:text-end{text-align:end}.\32 xl\:text-center{text-align:center}}}:root{--bs-black:#000;--bs-white:#fff;--bs-gradient:linear-gradient(180deg, color-mix(var(--bs-white) 15%, transparent), color-mix(var(--bs-white) 0%, transparent));--bs-font-weight-lighter:lighter;--bs-font-weight-light:300;--bs-font-weight-normal:400;--bs-font-weight-medium:500;--bs-font-weight-semibold:600;--bs-font-weight-bold:700;--bs-font-weight-bolder:bolder;--bs-body-font-family:system-ui;--bs-body-font-size:var(--bs-font-size-base);--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-heading-color:inherit;--bs-hr-border-color:var(--bs-border-color);--bs-link-color:light-dark(var(--bs-primary-base),var(--bs-primary-fg));--bs-link-decoration:underline;--bs-link-hover-color:color-mix(in oklch, var(--bs-link-color) 90%, #000);--bs-font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Monaco, "Cascadia Mono", Consolas, "Liberation Mono", monospace;--bs-code-font-size:95%;--bs-code-color:var(--bs-fg-2);--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:light-dark(var(--bs-gray-200),var(--bs-gray-700));--bs-border-color-translucent:color-mix(in oklch, var(--bs-fg-body) 15%, transparent);--bs-box-shadow:0 .5rem 1rem #00000026;--bs-box-shadow-sm:0 .125rem .25rem #00000013;--bs-box-shadow-lg:0 1rem 3rem #0000002d;--bs-box-shadow-inset:inset 0 1px 2px #00000013;--bs-spacer:1rem;--bs-focus-ring-width:3px;--bs-focus-ring-offset:1px;--bs-focus-ring-color:var(--bs-primary-focus-ring);--bs-focus-ring:var(--bs-focus-ring-width) solid var(--bs-focus-ring-color);--bs-control-checked-bg:var(--bs-primary-base);--bs-control-checked-border-color:var(--bs-control-checked-bg);--bs-control-active-bg:var(--bs-primary-base);--bs-control-active-border-color:var(--bs-control-active-bg);--bs-control-disabled-bg:var(--bs-bg-3);--bs-control-disabled-opacity:.65;--bs-btn-input-fg:var(--bs-fg-body);--bs-btn-input-bg:var(--bs-bg-body);--bs-btn-input-min-height:2.375rem;--bs-btn-input-padding-y:.375rem;--bs-btn-input-padding-x:.75rem;--bs-btn-input-font-size:var(--bs-font-size-base);--bs-btn-input-line-height:var(--bs-line-height-base);--bs-btn-input-border-radius:var(--bs-radius-5);--bs-btn-input-xs-min-height:1.5rem;--bs-btn-input-xs-padding-y:.125rem;--bs-btn-input-xs-padding-x:.5rem;--bs-btn-input-xs-font-size:var(--bs-font-size-xs);--bs-btn-input-xs-line-height:1.125;--bs-btn-input-xs-border-radius:var(--bs-radius-5);--bs-btn-input-sm-min-height:2rem;--bs-btn-input-sm-padding-y:.25rem;--bs-btn-input-sm-padding-x:.625rem;--bs-btn-input-sm-font-size:var(--bs-font-size-sm);--bs-btn-input-sm-line-height:var(--bs-line-height-sm);--bs-btn-input-sm-border-radius:var(--bs-radius-5);--bs-btn-input-lg-min-height:2.75rem;--bs-btn-input-lg-padding-y:.5rem;--bs-btn-input-lg-padding-x:1rem;--bs-btn-input-lg-font-size:var(--bs-font-size-md);--bs-btn-input-lg-line-height:var(--bs-line-height-md);--bs-btn-input-lg-border-radius:var(--bs-radius-7);--bs-font-size-xs:.75rem;--bs-line-height-xs:1.25;--bs-font-size-sm:.875rem;--bs-line-height-sm:1.5;--bs-font-size-md:1rem;--bs-line-height-md:1.5;--bs-font-size-lg:clamp(1.25rem, 1rem + .625vw, 1.5rem);--bs-line-height-lg:1.5;--bs-font-size-xl:clamp(1.5rem, 1.1rem + .75vw, 1.75rem);--bs-line-height-xl:1.42857;--bs-font-size-2xl:clamp(1.75rem, 1.3rem + 1vw, 2rem);--bs-line-height-2xl:1.33333;--bs-font-size-3xl:clamp(2rem, 1.5rem + 1.875vw, 2.5rem);--bs-line-height-3xl:1.2;--bs-font-size-4xl:clamp(2.25rem, 1.75rem + 2.5vw, 3rem);--bs-line-height-4xl:1.1;--bs-font-size-5xl:clamp(3rem, 2rem + 5vw, 4rem);--bs-line-height-5xl:1.1;--bs-font-size-6xl:clamp(3.75rem, 2.5rem + 6.25vw, 5rem);--bs-line-height-6xl:1;--bs-primary-base:var(--bs-blue-500);--bs-primary-fg:light-dark(var(--bs-blue-600),var(--bs-blue-400));--bs-primary-fg-emphasis:light-dark(var(--bs-blue-800),var(--bs-blue-200));--bs-primary-bg:var(--bs-blue-500);--bs-primary-bg-subtle:light-dark(var(--bs-blue-100),var(--bs-blue-900));--bs-primary-bg-muted:light-dark(var(--bs-blue-200),var(--bs-blue-800));--bs-primary-border:light-dark(var(--bs-blue-300),var(--bs-blue-600));--bs-primary-focus-ring:light-dark(color-mix(in oklch, var(--bs-blue-500) 50%, var(--bs-bg-body)),color-mix(in oklch, var(--bs-blue-500) 75%, var(--bs-bg-body)));--bs-primary-contrast:var(--bs-white);--bs-accent-base:var(--bs-indigo-500);--bs-accent-fg:light-dark(var(--bs-indigo-600),color-mix(in oklch, var(--bs-indigo-400), var(--bs-indigo-300)));--bs-accent-fg-emphasis:light-dark(var(--bs-indigo-800),var(--bs-indigo-300));--bs-accent-bg:var(--bs-indigo-500);--bs-accent-bg-subtle:light-dark(var(--bs-indigo-100),var(--bs-indigo-900));--bs-accent-bg-muted:light-dark(var(--bs-indigo-200),var(--bs-indigo-800));--bs-accent-border:light-dark(var(--bs-indigo-300),var(--bs-indigo-600));--bs-accent-focus-ring:light-dark(color-mix(in oklch, var(--bs-indigo-500) 50%, var(--bs-bg-body)),color-mix(in oklch, var(--bs-indigo-500) 75%, var(--bs-bg-body)));--bs-accent-contrast:var(--bs-white);--bs-success-base:var(--bs-green-500);--bs-success-fg:light-dark(var(--bs-green-600),var(--bs-green-400));--bs-success-fg-emphasis:light-dark(var(--bs-green-800),var(--bs-green-300));--bs-success-bg:var(--bs-green-500);--bs-success-bg-subtle:light-dark(var(--bs-green-100),var(--bs-green-900));--bs-success-bg-muted:light-dark(var(--bs-green-200),var(--bs-green-800));--bs-success-border:light-dark(var(--bs-green-300),var(--bs-green-600));--bs-success-focus-ring:light-dark(color-mix(in oklch, var(--bs-green-500) 50%, var(--bs-bg-body)),color-mix(in oklch, var(--bs-green-500) 75%, var(--bs-bg-body)));--bs-success-contrast:var(--bs-white);--bs-danger-base:var(--bs-red-500);--bs-danger-fg:light-dark(var(--bs-red-600),var(--bs-red-400));--bs-danger-fg-emphasis:light-dark(var(--bs-red-800),var(--bs-red-300));--bs-danger-bg:var(--bs-red-500);--bs-danger-bg-subtle:light-dark(var(--bs-red-100),var(--bs-red-900));--bs-danger-bg-muted:light-dark(var(--bs-red-200),var(--bs-red-800));--bs-danger-border:light-dark(var(--bs-red-300),var(--bs-red-600));--bs-danger-focus-ring:light-dark(color-mix(in oklch, var(--bs-red-500) 50%, var(--bs-bg-body)),color-mix(in oklch, var(--bs-red-500) 75%, var(--bs-bg-body)));--bs-danger-contrast:var(--bs-white);--bs-warning-base:var(--bs-yellow-500);--bs-warning-fg:light-dark(var(--bs-yellow-700),var(--bs-yellow-400));--bs-warning-fg-emphasis:light-dark(var(--bs-yellow-800),var(--bs-yellow-300));--bs-warning-bg:var(--bs-yellow-500);--bs-warning-bg-subtle:light-dark(var(--bs-yellow-100),var(--bs-yellow-900));--bs-warning-bg-muted:light-dark(var(--bs-yellow-200),var(--bs-yellow-800));--bs-warning-border:light-dark(var(--bs-yellow-300),var(--bs-yellow-600));--bs-warning-focus-ring:light-dark(color-mix(in oklch, var(--bs-yellow-500) 50%, var(--bs-bg-body)),color-mix(in oklch, var(--bs-yellow-400) 85%, var(--bs-bg-body)));--bs-warning-contrast:var(--bs-gray-900);--bs-info-base:var(--bs-cyan-500);--bs-info-fg:light-dark(var(--bs-cyan-600),var(--bs-cyan-400));--bs-info-fg-emphasis:light-dark(var(--bs-cyan-800),var(--bs-cyan-300));--bs-info-bg:var(--bs-cyan-500);--bs-info-bg-subtle:light-dark(var(--bs-cyan-100),var(--bs-cyan-900));--bs-info-bg-muted:light-dark(var(--bs-cyan-200),var(--bs-cyan-800));--bs-info-border:light-dark(var(--bs-cyan-300),var(--bs-cyan-600));--bs-info-focus-ring:light-dark(color-mix(in oklch, var(--bs-cyan-500) 50%, var(--bs-bg-body)),color-mix(in oklch, var(--bs-cyan-500) 75%, var(--bs-bg-body)));--bs-info-contrast:var(--bs-gray-900);--bs-inverse-base:var(--bs-gray-900);--bs-inverse-fg:light-dark(var(--bs-gray-900),var(--bs-gray-200));--bs-inverse-fg-emphasis:light-dark(var(--bs-gray-975),var(--bs-white));--bs-inverse-bg:light-dark(var(--bs-gray-900),var(--bs-gray-025));--bs-inverse-bg-subtle:light-dark(var(--bs-gray-100),var(--bs-gray-900));--bs-inverse-bg-muted:light-dark(var(--bs-gray-200),var(--bs-gray-300));--bs-inverse-border:light-dark(var(--bs-gray-400),var(--bs-gray-100));--bs-inverse-focus-ring:color-mix(in oklch, light-dark(var(--bs-gray-900),var(--bs-gray-100)) 50%, var(--bs-bg-body));--bs-inverse-contrast:light-dark(var(--bs-white),var(--bs-gray-900));--bs-secondary-base:var(--bs-gray-200);--bs-secondary-fg:light-dark(var(--bs-gray-600),var(--bs-gray-400));--bs-secondary-fg-emphasis:light-dark(var(--bs-gray-800),var(--bs-gray-200));--bs-secondary-bg:light-dark(var(--bs-gray-100),var(--bs-gray-600));--bs-secondary-bg-subtle:light-dark(var(--bs-gray-050),var(--bs-gray-800));--bs-secondary-bg-muted:light-dark(var(--bs-gray-100),var(--bs-gray-700));--bs-secondary-border:light-dark(var(--bs-gray-300),var(--bs-gray-600));--bs-secondary-focus-ring:color-mix(in oklch, light-dark(var(--bs-gray-500),var(--bs-gray-300)) 50%, var(--bs-bg-body));--bs-secondary-contrast:light-dark(var(--bs-gray-900),var(--bs-white));--bs-bg-body:light-dark(var(--bs-white),var(--bs-gray-975));--bs-bg-1:light-dark(var(--bs-gray-025),var(--bs-gray-950));--bs-bg-2:light-dark(var(--bs-gray-050),var(--bs-gray-900));--bs-bg-3:light-dark(var(--bs-gray-100),var(--bs-gray-800));--bs-bg-4:light-dark(var(--bs-gray-200),var(--bs-gray-700));--bs-bg-fg:var(--bs-fg-body);--bs-bg-white:var(--bs-white);--bs-bg-black:var(--bs-black);--bs-bg-transparent:transparent;--bs-bg-inherit:inherit;--bs-fg-body:light-dark(var(--bs-gray-900),var(--bs-gray-050));--bs-fg-1:light-dark(var(--bs-gray-800),var(--bs-gray-200));--bs-fg-2:light-dark(var(--bs-gray-700),var(--bs-gray-300));--bs-fg-3:light-dark(var(--bs-gray-600),var(--bs-gray-500));--bs-fg-4:light-dark(var(--bs-gray-500),var(--bs-gray-600));--bs-fg-bg:var(--bs-bg-body);--bs-fg-white:var(--bs-white);--bs-fg-black:var(--bs-black);--bs-fg-inherit:inherit;--bs-border-bg:var(--bs-bg-body);--bs-border-body:light-dark(var(--bs-gray-300),var(--bs-gray-800));--bs-border-muted:light-dark(var(--bs-gray-200),var(--bs-gray-800));--bs-border-subtle:light-dark(color-mix(in oklch, var(--bs-gray-100), var(--bs-gray-200)),var(--bs-gray-900));--bs-border-emphasized:light-dark(var(--bs-gray-400),var(--bs-gray-600));--bs-border-white:var(--bs-white);--bs-border-black:var(--bs-black);--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:1024px;--bs-breakpoint-xl:1280px;--bs-breakpoint-2xl:1536px;--bs-spacer-0:0;--bs-spacer-1:.25rem;--bs-spacer-2:.5rem;--bs-spacer-3:.75rem;--bs-spacer-4:1rem;--bs-spacer-5:1.25rem;--bs-spacer-6:1.5rem;--bs-spacer-7:2rem;--bs-spacer-8:2.5rem;--bs-spacer-9:3rem;--bs-radius-0:0;--bs-radius-1:.125rem;--bs-radius-2:.1875rem;--bs-radius-3:.25rem;--bs-radius-4:.375rem;--bs-radius-5:.5rem;--bs-radius-6:.625rem;--bs-radius-7:.75rem;--bs-radius-8:1rem;--bs-radius-9:1.5rem;--bs-radius-pill:50rem;color-scheme:light dark;scrollbar-gutter:stable}[data-bs-theme=dark]{color-scheme:dark}[data-bs-theme=light]{color-scheme:light}
/*# sourceMappingURL=bootstrap-utilities.min.css.map */
\ No newline at end of file
-{"version":3,"sourceRoot":null,"mappings":"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","sources":["bootstrap-utilities.css","../../scss/_banner.scss","../../scss/_colors.scss","../../scss/mixins/_tokens.scss","../../scss/_root.scss","../../scss/helpers/_focus-ring.scss","../../scss/helpers/_icon-link.scss","../../scss/_config.scss","../../scss/mixins/_transition.scss","../../scss/helpers/_position.scss","../../scss/layout/_breakpoints.scss","../../scss/helpers/_stacks.scss","../../scss/helpers/_theme-colors.scss","../../scss/_theme.scss","../../scss/helpers/_visually-hidden.scss","../../scss/mixins/_visually-hidden.scss","../../scss/helpers/_stretched-link.scss","../../scss/helpers/_text-truncation.scss","../../scss/mixins/_text-truncate.scss","../../scss/helpers/_vr.scss","../../scss/utilities/_api.scss","../../scss/mixins/_utilities.scss"],"sourcesContent":["/*!\n * Bootstrap Utilities v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.24 240deg));\n --blue-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.24 240deg));\n --blue-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.24 240deg));\n --blue-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.24 240deg));\n --blue-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.24 240deg));\n --blue-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.24 240deg));\n --blue-500: oklch(60% 0.24 240deg);\n --blue-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.24 240deg));\n --blue-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.24 240deg));\n --blue-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.24 240deg));\n --blue-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.24 240deg));\n --blue-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.24 240deg));\n --blue-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.24 240deg));\n --indigo-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.26 288deg));\n --indigo-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.26 288deg));\n --indigo-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.26 288deg));\n --indigo-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.26 288deg));\n --indigo-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.26 288deg));\n --indigo-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.26 288deg));\n --indigo-500: oklch(56% 0.26 288deg);\n --indigo-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.26 288deg));\n --indigo-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.26 288deg));\n --indigo-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.26 288deg));\n --indigo-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.26 288deg));\n --indigo-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.26 288deg));\n --indigo-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.26 288deg));\n --violet-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 300deg));\n --violet-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 300deg));\n --violet-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 300deg));\n --violet-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 300deg));\n --violet-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 300deg));\n --violet-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 300deg));\n --violet-500: oklch(56% 0.24 300deg);\n --violet-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 300deg));\n --violet-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 300deg));\n --violet-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 300deg));\n --violet-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 300deg));\n --violet-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 300deg));\n --violet-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 300deg));\n --purple-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 320deg));\n --purple-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 320deg));\n --purple-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 320deg));\n --purple-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 320deg));\n --purple-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 320deg));\n --purple-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 320deg));\n --purple-500: oklch(56% 0.24 320deg);\n --purple-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 320deg));\n --purple-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 320deg));\n --purple-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 320deg));\n --purple-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 320deg));\n --purple-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 320deg));\n --purple-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 320deg));\n --pink-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 4deg));\n --pink-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 4deg));\n --pink-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 4deg));\n --pink-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 4deg));\n --pink-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 4deg));\n --pink-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 4deg));\n --pink-500: oklch(60% 0.22 4deg);\n --pink-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 4deg));\n --pink-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 4deg));\n --pink-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 4deg));\n --pink-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 4deg));\n --pink-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 4deg));\n --pink-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 4deg));\n --red-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 20deg));\n --red-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 20deg));\n --red-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 20deg));\n --red-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 20deg));\n --red-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 20deg));\n --red-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 20deg));\n --red-500: oklch(60% 0.22 20deg);\n --red-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 20deg));\n --red-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 20deg));\n --red-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 20deg));\n --red-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 20deg));\n --red-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 20deg));\n --red-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 20deg));\n --orange-025: color-mix(in lab, var(--white) 94%, oklch(70% 0.22 52deg));\n --orange-050: color-mix(in lab, var(--white) 90%, oklch(70% 0.22 52deg));\n --orange-100: color-mix(in lab, var(--white) 80%, oklch(70% 0.22 52deg));\n --orange-200: color-mix(in lab, var(--white) 60%, oklch(70% 0.22 52deg));\n --orange-300: color-mix(in lab, var(--white) 40%, oklch(70% 0.22 52deg));\n --orange-400: color-mix(in lab, var(--white) 20%, oklch(70% 0.22 52deg));\n --orange-500: oklch(70% 0.22 52deg);\n --orange-600: color-mix(in lab, var(--black) 16%, oklch(70% 0.22 52deg));\n --orange-700: color-mix(in lab, var(--black) 32%, oklch(70% 0.22 52deg));\n --orange-800: color-mix(in lab, var(--black) 48%, oklch(70% 0.22 52deg));\n --orange-900: color-mix(in lab, var(--black) 64%, oklch(70% 0.22 52deg));\n --orange-950: color-mix(in lab, var(--black) 76%, oklch(70% 0.22 52deg));\n --orange-975: color-mix(in lab, var(--black) 88%, oklch(70% 0.22 52deg));\n --amber-025: color-mix(in lab, var(--white) 94%, oklch(79% 0.2 78deg));\n --amber-050: color-mix(in lab, var(--white) 90%, oklch(79% 0.2 78deg));\n --amber-100: color-mix(in lab, var(--white) 80%, oklch(79% 0.2 78deg));\n --amber-200: color-mix(in lab, var(--white) 60%, oklch(79% 0.2 78deg));\n --amber-300: color-mix(in lab, var(--white) 40%, oklch(79% 0.2 78deg));\n --amber-400: color-mix(in lab, var(--white) 20%, oklch(79% 0.2 78deg));\n --amber-500: oklch(79% 0.2 78deg);\n --amber-600: color-mix(in lab, var(--black) 16%, oklch(79% 0.2 78deg));\n --amber-700: color-mix(in lab, var(--black) 32%, oklch(79% 0.2 78deg));\n --amber-800: color-mix(in lab, var(--black) 48%, oklch(79% 0.2 78deg));\n --amber-900: color-mix(in lab, var(--black) 64%, oklch(79% 0.2 78deg));\n --amber-950: color-mix(in lab, var(--black) 76%, oklch(79% 0.2 78deg));\n --amber-975: color-mix(in lab, var(--black) 88%, oklch(79% 0.2 78deg));\n --yellow-025: color-mix(in lab, var(--white) 94%, oklch(88% 0.24 88deg));\n --yellow-050: color-mix(in lab, var(--white) 90%, oklch(88% 0.24 88deg));\n --yellow-100: color-mix(in lab, var(--white) 80%, oklch(88% 0.24 88deg));\n --yellow-200: color-mix(in lab, var(--white) 60%, oklch(88% 0.24 88deg));\n --yellow-300: color-mix(in lab, var(--white) 40%, oklch(88% 0.24 88deg));\n --yellow-400: color-mix(in lab, var(--white) 20%, oklch(88% 0.24 88deg));\n --yellow-500: oklch(88% 0.24 88deg);\n --yellow-600: color-mix(in lab, var(--black) 16%, oklch(88% 0.24 88deg));\n --yellow-700: color-mix(in lab, var(--black) 32%, oklch(88% 0.24 88deg));\n --yellow-800: color-mix(in lab, var(--black) 48%, oklch(88% 0.24 88deg));\n --yellow-900: color-mix(in lab, var(--black) 64%, oklch(88% 0.24 88deg));\n --yellow-950: color-mix(in lab, var(--black) 76%, oklch(88% 0.24 88deg));\n --yellow-975: color-mix(in lab, var(--black) 88%, oklch(88% 0.24 88deg));\n --lime-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.24 135deg));\n --lime-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.24 135deg));\n --lime-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.24 135deg));\n --lime-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.24 135deg));\n --lime-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.24 135deg));\n --lime-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.24 135deg));\n --lime-500: oklch(65% 0.24 135deg);\n --lime-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.24 135deg));\n --lime-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.24 135deg));\n --lime-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.24 135deg));\n --lime-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.24 135deg));\n --lime-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.24 135deg));\n --lime-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.24 135deg));\n --green-025: color-mix(in lab, var(--white) 94%, oklch(64% 0.22 160deg));\n --green-050: color-mix(in lab, var(--white) 90%, oklch(64% 0.22 160deg));\n --green-100: color-mix(in lab, var(--white) 80%, oklch(64% 0.22 160deg));\n --green-200: color-mix(in lab, var(--white) 60%, oklch(64% 0.22 160deg));\n --green-300: color-mix(in lab, var(--white) 40%, oklch(64% 0.22 160deg));\n --green-400: color-mix(in lab, var(--white) 20%, oklch(64% 0.22 160deg));\n --green-500: oklch(64% 0.22 160deg);\n --green-600: color-mix(in lab, var(--black) 16%, oklch(64% 0.22 160deg));\n --green-700: color-mix(in lab, var(--black) 32%, oklch(64% 0.22 160deg));\n --green-800: color-mix(in lab, var(--black) 48%, oklch(64% 0.22 160deg));\n --green-900: color-mix(in lab, var(--black) 64%, oklch(64% 0.22 160deg));\n --green-950: color-mix(in lab, var(--black) 76%, oklch(64% 0.22 160deg));\n --green-975: color-mix(in lab, var(--black) 88%, oklch(64% 0.22 160deg));\n --teal-025: color-mix(in lab, var(--white) 94%, oklch(68% 0.22 190deg));\n --teal-050: color-mix(in lab, var(--white) 90%, oklch(68% 0.22 190deg));\n --teal-100: color-mix(in lab, var(--white) 80%, oklch(68% 0.22 190deg));\n --teal-200: color-mix(in lab, var(--white) 60%, oklch(68% 0.22 190deg));\n --teal-300: color-mix(in lab, var(--white) 40%, oklch(68% 0.22 190deg));\n --teal-400: color-mix(in lab, var(--white) 20%, oklch(68% 0.22 190deg));\n --teal-500: oklch(68% 0.22 190deg);\n --teal-600: color-mix(in lab, var(--black) 16%, oklch(68% 0.22 190deg));\n --teal-700: color-mix(in lab, var(--black) 32%, oklch(68% 0.22 190deg));\n --teal-800: color-mix(in lab, var(--black) 48%, oklch(68% 0.22 190deg));\n --teal-900: color-mix(in lab, var(--black) 64%, oklch(68% 0.22 190deg));\n --teal-950: color-mix(in lab, var(--black) 76%, oklch(68% 0.22 190deg));\n --teal-975: color-mix(in lab, var(--black) 88%, oklch(68% 0.22 190deg));\n --cyan-025: color-mix(in lab, var(--white) 94%, oklch(69% 0.22 220deg));\n --cyan-050: color-mix(in lab, var(--white) 90%, oklch(69% 0.22 220deg));\n --cyan-100: color-mix(in lab, var(--white) 80%, oklch(69% 0.22 220deg));\n --cyan-200: color-mix(in lab, var(--white) 60%, oklch(69% 0.22 220deg));\n --cyan-300: color-mix(in lab, var(--white) 40%, oklch(69% 0.22 220deg));\n --cyan-400: color-mix(in lab, var(--white) 20%, oklch(69% 0.22 220deg));\n --cyan-500: oklch(69% 0.22 220deg);\n --cyan-600: color-mix(in lab, var(--black) 16%, oklch(69% 0.22 220deg));\n --cyan-700: color-mix(in lab, var(--black) 32%, oklch(69% 0.22 220deg));\n --cyan-800: color-mix(in lab, var(--black) 48%, oklch(69% 0.22 220deg));\n --cyan-900: color-mix(in lab, var(--black) 64%, oklch(69% 0.22 220deg));\n --cyan-950: color-mix(in lab, var(--black) 76%, oklch(69% 0.22 220deg));\n --cyan-975: color-mix(in lab, var(--black) 88%, oklch(69% 0.22 220deg));\n --brown-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.12 54deg));\n --brown-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.12 54deg));\n --brown-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.12 54deg));\n --brown-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.12 54deg));\n --brown-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.12 54deg));\n --brown-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.12 54deg));\n --brown-500: oklch(60% 0.12 54deg);\n --brown-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.12 54deg));\n --brown-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.12 54deg));\n --brown-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.12 54deg));\n --brown-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.12 54deg));\n --brown-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.12 54deg));\n --brown-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.12 54deg));\n --gray-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.02 245deg));\n --gray-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.02 245deg));\n --gray-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.02 245deg));\n --gray-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.02 245deg));\n --gray-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.02 245deg));\n --gray-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.02 245deg));\n --gray-500: oklch(60% 0.02 245deg);\n --gray-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.02 245deg));\n --gray-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.02 245deg));\n --gray-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.02 245deg));\n --gray-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.02 245deg));\n --gray-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.02 245deg));\n --gray-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.02 245deg));\n --pewter-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.01 290deg));\n --pewter-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.01 290deg));\n --pewter-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.01 290deg));\n --pewter-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.01 290deg));\n --pewter-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.01 290deg));\n --pewter-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.01 290deg));\n --pewter-500: oklch(65% 0.01 290deg);\n --pewter-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.01 290deg));\n --pewter-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.01 290deg));\n --pewter-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.01 290deg));\n --pewter-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.01 290deg));\n --pewter-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.01 290deg));\n --pewter-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.01 290deg));\n}\n\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n:root {\n --black: #000;\n --white: #fff;\n --gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent));\n --font-weight-lighter: lighter;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-bolder: bolder;\n --body-font-family: system-ui;\n --body-font-size: var(--font-size-base);\n --body-font-weight: 400;\n --body-line-height: 1.5;\n --heading-color: inherit;\n --hr-border-color: var(--border-color);\n --link-color: light-dark(var(--primary-base), var(--primary-fg));\n --link-decoration: underline;\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000);\n --font-mono: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;\n --code-font-size: 95%;\n --code-color: var(--fg-2);\n --border-width: 1px;\n --border-style: solid;\n --border-color: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-700));\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent);\n --box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n --box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n --box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);\n --box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n --spacer: 1rem;\n --focus-ring-width: 3px;\n --focus-ring-offset: 1px;\n --focus-ring-color: var(--primary-focus-ring);\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color);\n --control-checked-bg: var(--primary-base);\n --control-checked-border-color: var(--control-checked-bg);\n --control-active-bg: var(--primary-base);\n --control-active-border-color: var(--control-active-bg);\n --control-disabled-bg: var(--bg-3);\n --control-disabled-opacity: 0.65;\n --btn-input-fg: var(--fg-body);\n --btn-input-bg: var(--bg-body);\n --btn-input-min-height: 2.375rem;\n --btn-input-padding-y: 0.375rem;\n --btn-input-padding-x: 0.75rem;\n --btn-input-font-size: var(--font-size-base);\n --btn-input-line-height: var(--line-height-base);\n --btn-input-border-radius: var(--radius-5);\n --btn-input-xs-min-height: 1.5rem;\n --btn-input-xs-padding-y: 0.125rem;\n --btn-input-xs-padding-x: 0.5rem;\n --btn-input-xs-font-size: var(--font-size-xs);\n --btn-input-xs-line-height: 1.125;\n --btn-input-xs-border-radius: var(--radius-5);\n --btn-input-sm-min-height: 2rem;\n --btn-input-sm-padding-y: 0.25rem;\n --btn-input-sm-padding-x: 0.625rem;\n --btn-input-sm-font-size: var(--font-size-sm);\n --btn-input-sm-line-height: var(--line-height-sm);\n --btn-input-sm-border-radius: var(--radius-5);\n --btn-input-lg-min-height: 2.75rem;\n --btn-input-lg-padding-y: 0.5rem;\n --btn-input-lg-padding-x: 1rem;\n --btn-input-lg-font-size: var(--font-size-md);\n --btn-input-lg-line-height: var(--line-height-md);\n --btn-input-lg-border-radius: var(--radius-7);\n --font-size-xs: 0.75rem;\n --line-height-xs: 1.25;\n --font-size-sm: 0.875rem;\n --line-height-sm: 1.5;\n --font-size-md: 1rem;\n --line-height-md: 1.5;\n --font-size-lg: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n --line-height-lg: 1.5;\n --font-size-xl: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n --line-height-xl: 1.4285714286;\n --font-size-2xl: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n --line-height-2xl: 1.3333333333;\n --font-size-3xl: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n --line-height-3xl: 1.2;\n --font-size-4xl: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n --line-height-4xl: 1.1;\n --font-size-5xl: clamp(3rem, 2rem + 5vw, 4rem);\n --line-height-5xl: 1.1;\n --font-size-6xl: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n --line-height-6xl: 1;\n --primary-base: var(--blue-500);\n --primary-fg: light-dark(var(--blue-600), var(--blue-400));\n --primary-fg-emphasis: light-dark(var(--blue-800), var(--blue-200));\n --primary-bg: var(--blue-500);\n --primary-bg-subtle: light-dark(var(--blue-100), var(--blue-900));\n --primary-bg-muted: light-dark(var(--blue-200), var(--blue-800));\n --primary-border: light-dark(var(--blue-300), var(--blue-600));\n --primary-focus-ring: light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body)));\n --primary-contrast: var(--white);\n --accent-base: var(--indigo-500);\n --accent-fg: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n --accent-fg-emphasis: light-dark(var(--indigo-800), var(--indigo-300));\n --accent-bg: var(--indigo-500);\n --accent-bg-subtle: light-dark(var(--indigo-100), var(--indigo-900));\n --accent-bg-muted: light-dark(var(--indigo-200), var(--indigo-800));\n --accent-border: light-dark(var(--indigo-300), var(--indigo-600));\n --accent-focus-ring: light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body)));\n --accent-contrast: var(--white);\n --success-base: var(--green-500);\n --success-fg: light-dark(var(--green-600), var(--green-400));\n --success-fg-emphasis: light-dark(var(--green-800), var(--green-300));\n --success-bg: var(--green-500);\n --success-bg-subtle: light-dark(var(--green-100), var(--green-900));\n --success-bg-muted: light-dark(var(--green-200), var(--green-800));\n --success-border: light-dark(var(--green-300), var(--green-600));\n --success-focus-ring: light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body)));\n --success-contrast: var(--white);\n --danger-base: var(--red-500);\n --danger-fg: light-dark(var(--red-600), var(--red-400));\n --danger-fg-emphasis: light-dark(var(--red-800), var(--red-300));\n --danger-bg: var(--red-500);\n --danger-bg-subtle: light-dark(var(--red-100), var(--red-900));\n --danger-bg-muted: light-dark(var(--red-200), var(--red-800));\n --danger-border: light-dark(var(--red-300), var(--red-600));\n --danger-focus-ring: light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body)));\n --danger-contrast: var(--white);\n --warning-base: var(--yellow-500);\n --warning-fg: light-dark(var(--yellow-700), var(--yellow-400));\n --warning-fg-emphasis: light-dark(var(--yellow-800), var(--yellow-300));\n --warning-bg: var(--yellow-500);\n --warning-bg-subtle: light-dark(var(--yellow-100), var(--yellow-900));\n --warning-bg-muted: light-dark(var(--yellow-200), var(--yellow-800));\n --warning-border: light-dark(var(--yellow-300), var(--yellow-600));\n --warning-focus-ring: light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body)));\n --warning-contrast: var(--gray-900);\n --info-base: var(--cyan-500);\n --info-fg: light-dark(var(--cyan-600), var(--cyan-400));\n --info-fg-emphasis: light-dark(var(--cyan-800), var(--cyan-300));\n --info-bg: var(--cyan-500);\n --info-bg-subtle: light-dark(var(--cyan-100), var(--cyan-900));\n --info-bg-muted: light-dark(var(--cyan-200), var(--cyan-800));\n --info-border: light-dark(var(--cyan-300), var(--cyan-600));\n --info-focus-ring: light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body)));\n --info-contrast: var(--gray-900);\n --inverse-base: var(--gray-900);\n --inverse-fg: light-dark(var(--gray-900), var(--gray-200));\n --inverse-fg-emphasis: light-dark(var(--gray-975), var(--white));\n --inverse-bg: light-dark(var(--gray-900), var(--gray-025));\n --inverse-bg-subtle: light-dark(var(--gray-100), var(--gray-900));\n --inverse-bg-muted: light-dark(var(--gray-200), var(--gray-300));\n --inverse-border: light-dark(var(--gray-400), var(--gray-100));\n --inverse-focus-ring: color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body));\n --inverse-contrast: light-dark(var(--white), var(--gray-900));\n --secondary-base: var(--gray-200);\n --secondary-fg: light-dark(var(--gray-600), var(--gray-400));\n --secondary-fg-emphasis: light-dark(var(--gray-800), var(--gray-200));\n --secondary-bg: light-dark(var(--gray-100), var(--gray-600));\n --secondary-bg-subtle: light-dark(var(--gray-050), var(--gray-800));\n --secondary-bg-muted: light-dark(var(--gray-100), var(--gray-700));\n --secondary-border: light-dark(var(--gray-300), var(--gray-600));\n --secondary-focus-ring: color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body));\n --secondary-contrast: light-dark(var(--gray-900), var(--white));\n --bg-body: light-dark(var(--white), var(--gray-975));\n --bg-1: light-dark(var(--gray-025), var(--gray-950));\n --bg-2: light-dark(var(--gray-050), var(--gray-900));\n --bg-3: light-dark(var(--gray-100), var(--gray-800));\n --bg-4: light-dark(var(--gray-200), var(--gray-700));\n --bg-fg: var(--fg-body);\n --bg-white: var(--white);\n --bg-black: var(--black);\n --bg-transparent: transparent;\n --bg-inherit: inherit;\n --fg-body: light-dark(var(--gray-900), var(--gray-050));\n --fg-1: light-dark(var(--gray-800), var(--gray-200));\n --fg-2: light-dark(var(--gray-700), var(--gray-300));\n --fg-3: light-dark(var(--gray-600), var(--gray-500));\n --fg-4: light-dark(var(--gray-500), var(--gray-600));\n --fg-bg: var(--bg-body);\n --fg-white: var(--white);\n --fg-black: var(--black);\n --fg-inherit: inherit;\n --border-bg: var(--bg-body);\n --border-body: light-dark(var(--gray-300), var(--gray-800));\n --border-muted: light-dark(var(--gray-200), var(--gray-800));\n --border-subtle: light-dark(var(--gray-100), var(--gray-900));\n --border-emphasized: light-dark(var(--gray-400), var(--gray-600));\n --border-white: var(--white);\n --border-black: var(--black);\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 1024px;\n --breakpoint-xl: 1280px;\n --breakpoint-2xl: 1536px;\n --spacer-0: 0;\n --spacer-1: 0.25rem;\n --spacer-2: 0.5rem;\n --spacer-3: 0.75rem;\n --spacer-4: 1rem;\n --spacer-5: 1.25rem;\n --spacer-6: 1.5rem;\n --spacer-7: 2rem;\n --spacer-8: 2.5rem;\n --spacer-9: 3rem;\n --radius-0: 0;\n --radius-1: 0.125rem;\n --radius-2: 0.1875rem;\n --radius-3: 0.25rem;\n --radius-4: 0.375rem;\n --radius-5: 0.5rem;\n --radius-6: 0.625rem;\n --radius-7: 0.75rem;\n --radius-8: 1rem;\n --radius-9: 1.5rem;\n --radius-pill: 50rem;\n color-scheme: light dark;\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=dark] {\n color-scheme: dark;\n}\n\n[data-bs-theme=light] {\n color-scheme: light;\n}\n\n@layer helpers {\n .focus-ring:focus-visible {\n outline: var(--focus-ring-width) solid var(--theme-focus-ring, var(--focus-ring-color));\n }\n}\n@layer helpers {\n .icon-link {\n display: inline-flex;\n gap: 0.375rem;\n align-items: center;\n text-decoration-color: rgba(var(--link-color-rgb), var(--link-opacity, 0.5));\n text-underline-offset: 0.25em;\n backface-visibility: hidden;\n }\n .icon-link > .bi {\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n fill: currentcolor;\n transition: 0.2s ease-in-out transform;\n }\n @media (prefers-reduced-motion: reduce) {\n .icon-link > .bi {\n transition: none;\n }\n }\n .icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi {\n transform: var(--icon-link-transform, translate3d(0.25em, 0, 0));\n }\n}\n@layer helpers {\n .fixed-top {\n position: fixed;\n inset: 0 0 auto;\n z-index: 1030;\n }\n .fixed-bottom {\n position: fixed;\n inset: auto 0 0;\n z-index: 1030;\n }\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n @media (width >= 576px) {\n .sm\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sm\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 768px) {\n .md\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .md\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1024px) {\n .lg\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .lg\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1280px) {\n .xl\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .xl\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .\\32 xl\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n}\n@layer helpers {\n .stack-container {\n container-type: inline-size;\n }\n [class*=hstack],\n [class*=vstack] {\n display: flex;\n flex: var(--stack-flex, 1 1 auto);\n flex-direction: var(--stack-direction, row);\n align-items: var(--stack-align-items, center);\n align-self: var(--stack-align-self, stretch);\n }\n .vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n .hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n @container (width >= 576px) {\n .sm\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 576px) {\n .sm\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 768px) {\n .md\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 768px) {\n .md\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1024px) {\n .lg\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1024px) {\n .lg\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1280px) {\n .xl\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1280px) {\n .xl\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n}\n@layer helpers {\n .theme-primary {\n --theme-base: var(--primary-base);\n --theme-fg: var(--primary-fg);\n --theme-fg-emphasis: var(--primary-fg-emphasis);\n --theme-bg: var(--primary-bg);\n --theme-bg-subtle: var(--primary-bg-subtle);\n --theme-bg-muted: var(--primary-bg-muted);\n --theme-border: var(--primary-border);\n --theme-focus-ring: var(--primary-focus-ring);\n --theme-contrast: var(--primary-contrast);\n }\n .theme-accent {\n --theme-base: var(--accent-base);\n --theme-fg: var(--accent-fg);\n --theme-fg-emphasis: var(--accent-fg-emphasis);\n --theme-bg: var(--accent-bg);\n --theme-bg-subtle: var(--accent-bg-subtle);\n --theme-bg-muted: var(--accent-bg-muted);\n --theme-border: var(--accent-border);\n --theme-focus-ring: var(--accent-focus-ring);\n --theme-contrast: var(--accent-contrast);\n }\n .theme-success {\n --theme-base: var(--success-base);\n --theme-fg: var(--success-fg);\n --theme-fg-emphasis: var(--success-fg-emphasis);\n --theme-bg: var(--success-bg);\n --theme-bg-subtle: var(--success-bg-subtle);\n --theme-bg-muted: var(--success-bg-muted);\n --theme-border: var(--success-border);\n --theme-focus-ring: var(--success-focus-ring);\n --theme-contrast: var(--success-contrast);\n }\n .theme-danger {\n --theme-base: var(--danger-base);\n --theme-fg: var(--danger-fg);\n --theme-fg-emphasis: var(--danger-fg-emphasis);\n --theme-bg: var(--danger-bg);\n --theme-bg-subtle: var(--danger-bg-subtle);\n --theme-bg-muted: var(--danger-bg-muted);\n --theme-border: var(--danger-border);\n --theme-focus-ring: var(--danger-focus-ring);\n --theme-contrast: var(--danger-contrast);\n }\n .theme-warning {\n --theme-base: var(--warning-base);\n --theme-fg: var(--warning-fg);\n --theme-fg-emphasis: var(--warning-fg-emphasis);\n --theme-bg: var(--warning-bg);\n --theme-bg-subtle: var(--warning-bg-subtle);\n --theme-bg-muted: var(--warning-bg-muted);\n --theme-border: var(--warning-border);\n --theme-focus-ring: var(--warning-focus-ring);\n --theme-contrast: var(--warning-contrast);\n }\n .theme-info {\n --theme-base: var(--info-base);\n --theme-fg: var(--info-fg);\n --theme-fg-emphasis: var(--info-fg-emphasis);\n --theme-bg: var(--info-bg);\n --theme-bg-subtle: var(--info-bg-subtle);\n --theme-bg-muted: var(--info-bg-muted);\n --theme-border: var(--info-border);\n --theme-focus-ring: var(--info-focus-ring);\n --theme-contrast: var(--info-contrast);\n }\n .theme-inverse {\n --theme-base: var(--inverse-base);\n --theme-fg: var(--inverse-fg);\n --theme-fg-emphasis: var(--inverse-fg-emphasis);\n --theme-bg: var(--inverse-bg);\n --theme-bg-subtle: var(--inverse-bg-subtle);\n --theme-bg-muted: var(--inverse-bg-muted);\n --theme-border: var(--inverse-border);\n --theme-focus-ring: var(--inverse-focus-ring);\n --theme-contrast: var(--inverse-contrast);\n }\n .theme-secondary {\n --theme-base: var(--secondary-base);\n --theme-fg: var(--secondary-fg);\n --theme-fg-emphasis: var(--secondary-fg-emphasis);\n --theme-bg: var(--secondary-bg);\n --theme-bg-subtle: var(--secondary-bg-subtle);\n --theme-bg-muted: var(--secondary-bg-muted);\n --theme-border: var(--secondary-border);\n --theme-focus-ring: var(--secondary-focus-ring);\n --theme-contrast: var(--secondary-contrast);\n }\n}\n@layer helpers {\n .visually-hidden,\n .visually-hidden-focusable:not(:focus, :focus-within) {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n .visually-hidden:not(caption),\n .visually-hidden-focusable:not(:focus, :focus-within):not(caption) {\n position: absolute !important;\n }\n .visually-hidden *,\n .visually-hidden-focusable:not(:focus, :focus-within) * {\n overflow: hidden !important;\n }\n}\n@layer helpers {\n .stretched-link::after {\n position: absolute;\n inset: 0;\n z-index: 1;\n content: \"\";\n }\n}\n@layer helpers {\n .text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n@layer helpers {\n .vr {\n display: inline-block;\n align-self: stretch;\n width: var(--vr-border-width, var(--border-width));\n min-height: 1em;\n background-color: var(--border-color);\n }\n}\n@layer utilities {\n .align-baseline {\n vertical-align: baseline;\n }\n .align-top {\n vertical-align: top;\n }\n .align-middle {\n vertical-align: middle;\n }\n .align-bottom {\n vertical-align: bottom;\n }\n .align-text-bottom {\n vertical-align: text-bottom;\n }\n .align-text-top {\n vertical-align: text-top;\n }\n [class*=ratio-] {\n aspect-ratio: var(--ratio);\n }\n .ratio-auto {\n --ratio: auto;\n }\n .ratio-1x1 {\n --ratio: 1 / 1;\n }\n .ratio-4x3 {\n --ratio: 4 / 3;\n }\n .ratio-16x9 {\n --ratio: 16 / 9;\n }\n .ratio-21x9 {\n --ratio: 21 / 9;\n }\n .float-start {\n float: inline-start;\n }\n .float-end {\n float: inline-end;\n }\n .float-none {\n float: none;\n }\n .object-fit-contain {\n object-fit: contain;\n }\n .object-fit-cover {\n object-fit: cover;\n }\n .object-fit-fill {\n object-fit: fill;\n }\n .object-fit-scale {\n object-fit: scale-down;\n }\n .object-fit-none {\n object-fit: none;\n }\n .opacity-0 {\n opacity: 0;\n }\n .opacity-25 {\n opacity: 0.25;\n }\n .opacity-50 {\n opacity: 0.5;\n }\n .opacity-75 {\n opacity: 0.75;\n }\n .opacity-100 {\n opacity: 1;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-visible {\n overflow: visible;\n }\n .overflow-scroll {\n overflow: scroll;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-x-visible {\n overflow-x: visible;\n }\n .overflow-x-scroll {\n overflow-x: scroll;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .overflow-y-hidden {\n overflow-y: hidden;\n }\n .overflow-y-visible {\n overflow-y: visible;\n }\n .overflow-y-scroll {\n overflow-y: scroll;\n }\n .contains-inline {\n container-type: inline-size;\n }\n .contains-size {\n container-type: size;\n }\n .d-inline {\n display: inline;\n }\n .d-inline-block {\n display: inline-block;\n }\n .d-block {\n display: block;\n }\n .d-grid {\n display: grid;\n }\n .d-inline-grid {\n display: inline-grid;\n }\n .d-table {\n display: table;\n }\n .d-table-row {\n display: table-row;\n }\n .d-table-cell {\n display: table-cell;\n }\n .d-flex {\n display: flex;\n }\n .d-inline-flex {\n display: inline-flex;\n }\n .d-contents {\n display: contents;\n }\n .d-flow-root {\n display: flow-root;\n }\n .d-none {\n display: none;\n }\n .shadow {\n box-shadow: var(--box-shadow);\n }\n .shadow-sm {\n box-shadow: var(--box-shadow-sm);\n }\n .shadow-lg {\n box-shadow: var(--box-shadow-lg);\n }\n .shadow-none {\n box-shadow: none;\n }\n .position-static {\n position: static;\n }\n .position-relative {\n position: relative;\n }\n .position-absolute {\n position: absolute;\n }\n .position-fixed {\n position: fixed;\n }\n .position-sticky {\n position: sticky;\n }\n .top-0 {\n top: 0;\n }\n .top-50 {\n top: 50%;\n }\n .top-100 {\n top: 100%;\n }\n .bottom-0 {\n bottom: 0;\n }\n .bottom-50 {\n bottom: 50%;\n }\n .bottom-100 {\n bottom: 100%;\n }\n .start-0 {\n inset-inline-start: 0;\n }\n .start-50 {\n inset-inline-start: 50%;\n }\n .start-100 {\n inset-inline-start: 100%;\n }\n .end-0 {\n inset-inline-end: 0;\n }\n .end-50 {\n inset-inline-end: 50%;\n }\n .end-100 {\n inset-inline-end: 100%;\n }\n .translate-middle {\n transform: translate(-50%, -50%);\n }\n .translate-middle-x {\n transform: translateX(-50%);\n }\n .translate-middle-y {\n transform: translateY(-50%);\n }\n .border {\n border: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-0 {\n border: 0;\n }\n .border-top {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-top-0 {\n border-block-start: 0;\n }\n .border-end {\n border-inline-end: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-end-0 {\n border-inline-end: 0;\n }\n .border-bottom {\n border-block-end: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-bottom-0 {\n border-block-end: 0;\n }\n .border-start {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-start-0 {\n border-inline-start: 0;\n }\n .border-y {\n border-block: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-y-0 {\n border-block: 0;\n }\n .border-x {\n border-inline: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-x-0 {\n border-inline: 0;\n }\n .border-primary {\n --border-color: var(--primary-bg);\n border-color: var(--border-color);\n }\n .border-accent {\n --border-color: var(--accent-bg);\n border-color: var(--border-color);\n }\n .border-success {\n --border-color: var(--success-bg);\n border-color: var(--border-color);\n }\n .border-danger {\n --border-color: var(--danger-bg);\n border-color: var(--border-color);\n }\n .border-warning {\n --border-color: var(--warning-bg);\n border-color: var(--border-color);\n }\n .border-info {\n --border-color: var(--info-bg);\n border-color: var(--border-color);\n }\n .border-inverse {\n --border-color: var(--inverse-bg);\n border-color: var(--border-color);\n }\n .border-secondary {\n --border-color: var(--secondary-bg);\n border-color: var(--border-color);\n }\n .border-bg {\n --border-color: var(--border-bg);\n border-color: var(--border-color);\n }\n .border-body {\n --border-color: var(--border-body);\n border-color: var(--border-color);\n }\n .border-muted {\n --border-color: var(--border-muted);\n border-color: var(--border-color);\n }\n .border-subtle {\n --border-color: var(--border-subtle);\n border-color: var(--border-color);\n }\n .border-emphasized {\n --border-color: var(--border-emphasized);\n border-color: var(--border-color);\n }\n .border-white {\n --border-color: var(--border-white);\n border-color: var(--border-color);\n }\n .border-black {\n --border-color: var(--border-black);\n border-color: var(--border-color);\n }\n .border-subtle-primary {\n --border-color: var(--primary-border);\n border-color: var(--border-color);\n }\n .border-subtle-accent {\n --border-color: var(--accent-border);\n border-color: var(--border-color);\n }\n .border-subtle-success {\n --border-color: var(--success-border);\n border-color: var(--border-color);\n }\n .border-subtle-danger {\n --border-color: var(--danger-border);\n border-color: var(--border-color);\n }\n .border-subtle-warning {\n --border-color: var(--warning-border);\n border-color: var(--border-color);\n }\n .border-subtle-info {\n --border-color: var(--info-border);\n border-color: var(--border-color);\n }\n .border-subtle-inverse {\n --border-color: var(--inverse-border);\n border-color: var(--border-color);\n }\n .border-subtle-secondary {\n --border-color: var(--secondary-border);\n border-color: var(--border-color);\n }\n .border-1 {\n border-width: 1px;\n }\n .border-2 {\n border-width: 2px;\n }\n .border-3 {\n border-width: 3px;\n }\n .border-4 {\n border-width: 4px;\n }\n .border-5 {\n border-width: 5px;\n }\n .border-10 {\n border-color: color-mix(in oklch, var(--border-color) 10%, transparent);\n }\n .border-20 {\n border-color: color-mix(in oklch, var(--border-color) 20%, transparent);\n }\n .border-30 {\n border-color: color-mix(in oklch, var(--border-color) 30%, transparent);\n }\n .border-40 {\n border-color: color-mix(in oklch, var(--border-color) 40%, transparent);\n }\n .border-50 {\n border-color: color-mix(in oklch, var(--border-color) 50%, transparent);\n }\n .border-60 {\n border-color: color-mix(in oklch, var(--border-color) 60%, transparent);\n }\n .border-70 {\n border-color: color-mix(in oklch, var(--border-color) 70%, transparent);\n }\n .border-80 {\n border-color: color-mix(in oklch, var(--border-color) 80%, transparent);\n }\n .border-90 {\n border-color: color-mix(in oklch, var(--border-color) 90%, transparent);\n }\n .border-100 {\n border-color: var(--border-color);\n }\n .w-1 {\n width: 1rem;\n }\n .w-2 {\n width: 2rem;\n }\n .w-3 {\n width: 3rem;\n }\n .w-4 {\n width: 4rem;\n }\n .w-5 {\n width: 5rem;\n }\n .w-6 {\n width: 6rem;\n }\n .w-7 {\n width: 7rem;\n }\n .w-8 {\n width: 8rem;\n }\n .w-9 {\n width: 9rem;\n }\n .w-10 {\n width: 10rem;\n }\n .w-11 {\n width: 11rem;\n }\n .w-12 {\n width: 12rem;\n }\n .w-25 {\n width: 25%;\n }\n .w-50 {\n width: 50%;\n }\n .w-75 {\n width: 75%;\n }\n .w-100 {\n width: 100%;\n }\n .w-auto {\n width: auto;\n }\n .w-min {\n width: min-content;\n }\n .w-max {\n width: max-content;\n }\n .w-fit {\n width: fit-content;\n }\n .max-w-100 {\n max-width: 100%;\n }\n .min-w-0 {\n min-width: 0;\n }\n .min-w-100 {\n min-width: 100%;\n }\n .vw-100 {\n width: 100vw;\n }\n .min-vw-100 {\n min-width: 100vw;\n }\n .h-25 {\n height: 25%;\n }\n .h-50 {\n height: 50%;\n }\n .h-75 {\n height: 75%;\n }\n .h-100 {\n height: 100%;\n }\n .h-auto {\n height: auto;\n }\n .h-min {\n height: min-content;\n }\n .h-max {\n height: max-content;\n }\n .h-fit {\n height: fit-content;\n }\n .max-h-100 {\n max-height: 100%;\n }\n .min-h-0 {\n min-height: 0;\n }\n .min-h-100 {\n min-height: 100%;\n }\n .vh-100 {\n height: 100vh;\n }\n .min-vh-100 {\n min-height: 100vh;\n }\n .flex-fill {\n flex: 1 1 auto;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-column {\n flex-direction: column;\n }\n .flex-row-reverse {\n flex-direction: row-reverse;\n }\n .flex-column-reverse {\n flex-direction: column-reverse;\n }\n .flex-grow-0 {\n flex-grow: 0;\n }\n .flex-grow-1 {\n flex-grow: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .flex-shrink-1 {\n flex-shrink: 1;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .flex-nowrap {\n flex-wrap: nowrap;\n }\n .flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .justify-content-start {\n justify-content: flex-start;\n }\n .justify-content-end {\n justify-content: flex-end;\n }\n .justify-content-center {\n justify-content: center;\n }\n .justify-content-between {\n justify-content: space-between;\n }\n .justify-content-around {\n justify-content: space-around;\n }\n .justify-content-evenly {\n justify-content: space-evenly;\n }\n .justify-items-start {\n justify-items: start;\n }\n .justify-items-end {\n justify-items: end;\n }\n .justify-items-center {\n justify-items: center;\n }\n .justify-items-stretch {\n justify-items: stretch;\n }\n .justify-self-start {\n justify-self: start;\n }\n .justify-self-end {\n justify-self: end;\n }\n .justify-self-center {\n justify-self: center;\n }\n .align-items-start {\n align-items: flex-start;\n }\n .align-items-end {\n align-items: flex-end;\n }\n .align-items-center {\n align-items: center;\n }\n .align-items-baseline {\n align-items: baseline;\n }\n .align-items-stretch {\n align-items: stretch;\n }\n .align-content-start {\n align-content: flex-start;\n }\n .align-content-end {\n align-content: flex-end;\n }\n .align-content-center {\n align-content: center;\n }\n .align-content-between {\n align-content: space-between;\n }\n .align-content-around {\n align-content: space-around;\n }\n .align-content-stretch {\n align-content: stretch;\n }\n .align-self-auto {\n align-self: auto;\n }\n .align-self-start {\n align-self: flex-start;\n }\n .align-self-end {\n align-self: flex-end;\n }\n .align-self-center {\n align-self: center;\n }\n .align-self-baseline {\n align-self: baseline;\n }\n .align-self-stretch {\n align-self: stretch;\n }\n .place-items-start {\n place-items: start;\n }\n .place-items-end {\n place-items: end;\n }\n .place-items-center {\n place-items: center;\n }\n .place-items-stretch {\n place-items: stretch;\n }\n .grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .grid-cols-fill {\n grid-column: 1 / -1;\n }\n .grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .order-first {\n order: -1;\n }\n .order-0 {\n order: 0;\n }\n .order-1 {\n order: 1;\n }\n .order-2 {\n order: 2;\n }\n .order-3 {\n order: 3;\n }\n .order-4 {\n order: 4;\n }\n .order-5 {\n order: 5;\n }\n .order-last {\n order: 6;\n }\n .m-0 {\n margin: 0;\n }\n .m-1 {\n margin: 0.25rem;\n }\n .m-2 {\n margin: 0.5rem;\n }\n .m-3 {\n margin: 0.75rem;\n }\n .m-4 {\n margin: 1rem;\n }\n .m-5 {\n margin: 1.25rem;\n }\n .m-6 {\n margin: 1.5rem;\n }\n .m-7 {\n margin: 2rem;\n }\n .m-8 {\n margin: 2.5rem;\n }\n .m-9 {\n margin: 3rem;\n }\n .m-auto {\n margin: auto;\n }\n .mx-0 {\n margin-inline: 0;\n }\n .mx-1 {\n margin-inline: 0.25rem;\n }\n .mx-2 {\n margin-inline: 0.5rem;\n }\n .mx-3 {\n margin-inline: 0.75rem;\n }\n .mx-4 {\n margin-inline: 1rem;\n }\n .mx-5 {\n margin-inline: 1.25rem;\n }\n .mx-6 {\n margin-inline: 1.5rem;\n }\n .mx-7 {\n margin-inline: 2rem;\n }\n .mx-8 {\n margin-inline: 2.5rem;\n }\n .mx-9 {\n margin-inline: 3rem;\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-0 {\n margin-block: 0;\n }\n .my-1 {\n margin-block: 0.25rem;\n }\n .my-2 {\n margin-block: 0.5rem;\n }\n .my-3 {\n margin-block: 0.75rem;\n }\n .my-4 {\n margin-block: 1rem;\n }\n .my-5 {\n margin-block: 1.25rem;\n }\n .my-6 {\n margin-block: 1.5rem;\n }\n .my-7 {\n margin-block: 2rem;\n }\n .my-8 {\n margin-block: 2.5rem;\n }\n .my-9 {\n margin-block: 3rem;\n }\n .my-auto {\n margin-block: auto;\n }\n .mt-0 {\n margin-block-start: 0;\n }\n .mt-1 {\n margin-block-start: 0.25rem;\n }\n .mt-2 {\n margin-block-start: 0.5rem;\n }\n .mt-3 {\n margin-block-start: 0.75rem;\n }\n .mt-4 {\n margin-block-start: 1rem;\n }\n .mt-5 {\n margin-block-start: 1.25rem;\n }\n .mt-6 {\n margin-block-start: 1.5rem;\n }\n .mt-7 {\n margin-block-start: 2rem;\n }\n .mt-8 {\n margin-block-start: 2.5rem;\n }\n .mt-9 {\n margin-block-start: 3rem;\n }\n .mt-auto {\n margin-block-start: auto;\n }\n .me-0 {\n margin-inline-end: 0;\n }\n .me-1 {\n margin-inline-end: 0.25rem;\n }\n .me-2 {\n margin-inline-end: 0.5rem;\n }\n .me-3 {\n margin-inline-end: 0.75rem;\n }\n .me-4 {\n margin-inline-end: 1rem;\n }\n .me-5 {\n margin-inline-end: 1.25rem;\n }\n .me-6 {\n margin-inline-end: 1.5rem;\n }\n .me-7 {\n margin-inline-end: 2rem;\n }\n .me-8 {\n margin-inline-end: 2.5rem;\n }\n .me-9 {\n margin-inline-end: 3rem;\n }\n .me--1 {\n margin-inline-end: -0.25rem;\n }\n .me--2 {\n margin-inline-end: -0.5rem;\n }\n .me-auto {\n margin-inline-end: auto;\n }\n .mb-0 {\n margin-block-end: 0;\n }\n .mb-1 {\n margin-block-end: 0.25rem;\n }\n .mb-2 {\n margin-block-end: 0.5rem;\n }\n .mb-3 {\n margin-block-end: 0.75rem;\n }\n .mb-4 {\n margin-block-end: 1rem;\n }\n .mb-5 {\n margin-block-end: 1.25rem;\n }\n .mb-6 {\n margin-block-end: 1.5rem;\n }\n .mb-7 {\n margin-block-end: 2rem;\n }\n .mb-8 {\n margin-block-end: 2.5rem;\n }\n .mb-9 {\n margin-block-end: 3rem;\n }\n .mb-auto {\n margin-block-end: auto;\n }\n .ms-0 {\n margin-inline-start: 0;\n }\n .ms-1 {\n margin-inline-start: 0.25rem;\n }\n .ms-2 {\n margin-inline-start: 0.5rem;\n }\n .ms-3 {\n margin-inline-start: 0.75rem;\n }\n .ms-4 {\n margin-inline-start: 1rem;\n }\n .ms-5 {\n margin-inline-start: 1.25rem;\n }\n .ms-6 {\n margin-inline-start: 1.5rem;\n }\n .ms-7 {\n margin-inline-start: 2rem;\n }\n .ms-8 {\n margin-inline-start: 2.5rem;\n }\n .ms-9 {\n margin-inline-start: 3rem;\n }\n .ms--1 {\n margin-inline-start: -0.25rem;\n }\n .ms--2 {\n margin-inline-start: -0.5rem;\n }\n .ms-auto {\n margin-inline-start: auto;\n }\n .p-0 {\n padding: 0;\n }\n .p-1 {\n padding: 0.25rem;\n }\n .p-2 {\n padding: 0.5rem;\n }\n .p-3 {\n padding: 0.75rem;\n }\n .p-4 {\n padding: 1rem;\n }\n .p-5 {\n padding: 1.25rem;\n }\n .p-6 {\n padding: 1.5rem;\n }\n .p-7 {\n padding: 2rem;\n }\n .p-8 {\n padding: 2.5rem;\n }\n .p-9 {\n padding: 3rem;\n }\n .px-0 {\n padding-inline: 0;\n }\n .px-1 {\n padding-inline: 0.25rem;\n }\n .px-2 {\n padding-inline: 0.5rem;\n }\n .px-3 {\n padding-inline: 0.75rem;\n }\n .px-4 {\n padding-inline: 1rem;\n }\n .px-5 {\n padding-inline: 1.25rem;\n }\n .px-6 {\n padding-inline: 1.5rem;\n }\n .px-7 {\n padding-inline: 2rem;\n }\n .px-8 {\n padding-inline: 2.5rem;\n }\n .px-9 {\n padding-inline: 3rem;\n }\n .py-0 {\n padding-block: 0;\n }\n .py-1 {\n padding-block: 0.25rem;\n }\n .py-2 {\n padding-block: 0.5rem;\n }\n .py-3 {\n padding-block: 0.75rem;\n }\n .py-4 {\n padding-block: 1rem;\n }\n .py-5 {\n padding-block: 1.25rem;\n }\n .py-6 {\n padding-block: 1.5rem;\n }\n .py-7 {\n padding-block: 2rem;\n }\n .py-8 {\n padding-block: 2.5rem;\n }\n .py-9 {\n padding-block: 3rem;\n }\n .pt-0 {\n padding-block-start: 0;\n }\n .pt-1 {\n padding-block-start: 0.25rem;\n }\n .pt-2 {\n padding-block-start: 0.5rem;\n }\n .pt-3 {\n padding-block-start: 0.75rem;\n }\n .pt-4 {\n padding-block-start: 1rem;\n }\n .pt-5 {\n padding-block-start: 1.25rem;\n }\n .pt-6 {\n padding-block-start: 1.5rem;\n }\n .pt-7 {\n padding-block-start: 2rem;\n }\n .pt-8 {\n padding-block-start: 2.5rem;\n }\n .pt-9 {\n padding-block-start: 3rem;\n }\n .pe-0 {\n padding-inline-end: 0;\n }\n .pe-1 {\n padding-inline-end: 0.25rem;\n }\n .pe-2 {\n padding-inline-end: 0.5rem;\n }\n .pe-3 {\n padding-inline-end: 0.75rem;\n }\n .pe-4 {\n padding-inline-end: 1rem;\n }\n .pe-5 {\n padding-inline-end: 1.25rem;\n }\n .pe-6 {\n padding-inline-end: 1.5rem;\n }\n .pe-7 {\n padding-inline-end: 2rem;\n }\n .pe-8 {\n padding-inline-end: 2.5rem;\n }\n .pe-9 {\n padding-inline-end: 3rem;\n }\n .pb-0 {\n padding-block-end: 0;\n }\n .pb-1 {\n padding-block-end: 0.25rem;\n }\n .pb-2 {\n padding-block-end: 0.5rem;\n }\n .pb-3 {\n padding-block-end: 0.75rem;\n }\n .pb-4 {\n padding-block-end: 1rem;\n }\n .pb-5 {\n padding-block-end: 1.25rem;\n }\n .pb-6 {\n padding-block-end: 1.5rem;\n }\n .pb-7 {\n padding-block-end: 2rem;\n }\n .pb-8 {\n padding-block-end: 2.5rem;\n }\n .pb-9 {\n padding-block-end: 3rem;\n }\n .ps-0 {\n padding-inline-start: 0;\n }\n .ps-1 {\n padding-inline-start: 0.25rem;\n }\n .ps-2 {\n padding-inline-start: 0.5rem;\n }\n .ps-3 {\n padding-inline-start: 0.75rem;\n }\n .ps-4 {\n padding-inline-start: 1rem;\n }\n .ps-5 {\n padding-inline-start: 1.25rem;\n }\n .ps-6 {\n padding-inline-start: 1.5rem;\n }\n .ps-7 {\n padding-inline-start: 2rem;\n }\n .ps-8 {\n padding-inline-start: 2.5rem;\n }\n .ps-9 {\n padding-inline-start: 3rem;\n }\n .gap-0 {\n gap: 0;\n }\n .gap-1 {\n gap: 0.25rem;\n }\n .gap-2 {\n gap: 0.5rem;\n }\n .gap-3 {\n gap: 0.75rem;\n }\n .gap-4 {\n gap: 1rem;\n }\n .gap-5 {\n gap: 1.25rem;\n }\n .gap-6 {\n gap: 1.5rem;\n }\n .gap-7 {\n gap: 2rem;\n }\n .gap-8 {\n gap: 2.5rem;\n }\n .gap-9 {\n gap: 3rem;\n }\n .row-gap-0 {\n row-gap: 0;\n }\n .row-gap-1 {\n row-gap: 0.25rem;\n }\n .row-gap-2 {\n row-gap: 0.5rem;\n }\n .row-gap-3 {\n row-gap: 0.75rem;\n }\n .row-gap-4 {\n row-gap: 1rem;\n }\n .row-gap-5 {\n row-gap: 1.25rem;\n }\n .row-gap-6 {\n row-gap: 1.5rem;\n }\n .row-gap-7 {\n row-gap: 2rem;\n }\n .row-gap-8 {\n row-gap: 2.5rem;\n }\n .row-gap-9 {\n row-gap: 3rem;\n }\n .column-gap-0 {\n column-gap: 0;\n }\n .column-gap-1 {\n column-gap: 0.25rem;\n }\n .column-gap-2 {\n column-gap: 0.5rem;\n }\n .column-gap-3 {\n column-gap: 0.75rem;\n }\n .column-gap-4 {\n column-gap: 1rem;\n }\n .column-gap-5 {\n column-gap: 1.25rem;\n }\n .column-gap-6 {\n column-gap: 1.5rem;\n }\n .column-gap-7 {\n column-gap: 2rem;\n }\n .column-gap-8 {\n column-gap: 2.5rem;\n }\n .column-gap-9 {\n column-gap: 3rem;\n }\n :where(.space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .font-monospace {\n font-family: var(--font-mono);\n }\n .font-body {\n font-family: var(--body-font-family);\n }\n .fs-xs {\n font-size: 0.75rem;\n }\n .fs-sm {\n font-size: 0.875rem;\n }\n .fs-md {\n font-size: 1rem;\n }\n .fs-lg {\n font-size: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n }\n .fs-xl {\n font-size: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n }\n .fs-2xl {\n font-size: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n }\n .fs-3xl {\n font-size: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n }\n .fs-4xl {\n font-size: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n }\n .fs-5xl {\n font-size: clamp(3rem, 2rem + 5vw, 4rem);\n }\n .fs-6xl {\n font-size: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n }\n .text-xs {\n font-size: 0.75rem;\n line-height: 1.25;\n }\n .text-sm {\n font-size: 0.875rem;\n line-height: 1.5;\n }\n .text-md {\n font-size: 1rem;\n line-height: 1.5;\n }\n .text-lg {\n font-size: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n line-height: 1.5;\n }\n .text-xl {\n font-size: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n line-height: 1.4285714286;\n }\n .text-2xl {\n font-size: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n line-height: 1.3333333333;\n }\n .text-3xl {\n font-size: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n line-height: 1.2;\n }\n .text-4xl {\n font-size: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n line-height: 1.1;\n }\n .text-5xl {\n font-size: clamp(3rem, 2rem + 5vw, 4rem);\n line-height: 1.1;\n }\n .text-6xl {\n font-size: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n line-height: 1;\n }\n .fst-italic {\n font-style: italic;\n }\n .fst-normal {\n font-style: normal;\n }\n .fw-lighter {\n font-weight: lighter;\n }\n .fw-light {\n font-weight: 300;\n }\n .fw-normal {\n font-weight: 400;\n }\n .fw-medium {\n font-weight: 500;\n }\n .fw-semibold {\n font-weight: 600;\n }\n .fw-bold {\n font-weight: 700;\n }\n .fw-bolder {\n font-weight: bolder;\n }\n .lh-1 {\n line-height: 1;\n }\n .lh-sm {\n line-height: 1.25;\n }\n .lh-base {\n line-height: 1.5;\n }\n .lh-lg {\n line-height: 2;\n }\n .text-start {\n text-align: start;\n }\n .text-end {\n text-align: end;\n }\n .text-center {\n text-align: center;\n }\n .text-decoration-none {\n text-decoration: none;\n }\n .text-decoration-underline {\n text-decoration: underline;\n }\n .text-decoration-line-through {\n text-decoration: line-through;\n }\n .text-lowercase {\n text-transform: lowercase;\n }\n .text-uppercase {\n text-transform: uppercase;\n }\n .text-capitalize {\n text-transform: capitalize;\n }\n .text-wrap {\n text-wrap: wrap;\n }\n .text-nowrap {\n text-wrap: nowrap;\n }\n .text-balance {\n text-wrap: balance;\n }\n .text-pretty {\n text-wrap: pretty;\n }\n .text-break {\n word-wrap: break-word;\n word-break: break-word;\n }\n .fg-primary {\n --fg: var(--primary-fg);\n color: var(--fg);\n }\n .fg-accent {\n --fg: var(--accent-fg);\n color: var(--fg);\n }\n .fg-success {\n --fg: var(--success-fg);\n color: var(--fg);\n }\n .fg-danger {\n --fg: var(--danger-fg);\n color: var(--fg);\n }\n .fg-warning {\n --fg: var(--warning-fg);\n color: var(--fg);\n }\n .fg-info {\n --fg: var(--info-fg);\n color: var(--fg);\n }\n .fg-inverse {\n --fg: var(--inverse-fg);\n color: var(--fg);\n }\n .fg-secondary {\n --fg: var(--secondary-fg);\n color: var(--fg);\n }\n .fg-body {\n --fg: var(--fg-body);\n color: var(--fg);\n }\n .fg-1 {\n --fg: var(--fg-1);\n color: var(--fg);\n }\n .fg-2 {\n --fg: var(--fg-2);\n color: var(--fg);\n }\n .fg-3 {\n --fg: var(--fg-3);\n color: var(--fg);\n }\n .fg-4 {\n --fg: var(--fg-4);\n color: var(--fg);\n }\n .fg-bg {\n --fg: var(--fg-bg);\n color: var(--fg);\n }\n .fg-white {\n --fg: var(--fg-white);\n color: var(--fg);\n }\n .fg-black {\n --fg: var(--fg-black);\n color: var(--fg);\n }\n .fg-emphasis-primary {\n --fg: var(--primary-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-accent {\n --fg: var(--accent-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-success {\n --fg: var(--success-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-danger {\n --fg: var(--danger-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-warning {\n --fg: var(--warning-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-info {\n --fg: var(--info-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-inverse {\n --fg: var(--inverse-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-secondary {\n --fg: var(--secondary-fg-emphasis);\n color: var(--fg);\n }\n .fg-contrast-primary {\n --fg: var(--primary-contrast);\n color: var(--fg);\n }\n .fg-contrast-accent {\n --fg: var(--accent-contrast);\n color: var(--fg);\n }\n .fg-contrast-success {\n --fg: var(--success-contrast);\n color: var(--fg);\n }\n .fg-contrast-danger {\n --fg: var(--danger-contrast);\n color: var(--fg);\n }\n .fg-contrast-warning {\n --fg: var(--warning-contrast);\n color: var(--fg);\n }\n .fg-contrast-info {\n --fg: var(--info-contrast);\n color: var(--fg);\n }\n .fg-contrast-inverse {\n --fg: var(--inverse-contrast);\n color: var(--fg);\n }\n .fg-contrast-secondary {\n --fg: var(--secondary-contrast);\n color: var(--fg);\n }\n .fg-10 {\n color: color-mix(in oklch, var(--fg) 10%, transparent);\n }\n .fg-20 {\n color: color-mix(in oklch, var(--fg) 20%, transparent);\n }\n .fg-30 {\n color: color-mix(in oklch, var(--fg) 30%, transparent);\n }\n .fg-40 {\n color: color-mix(in oklch, var(--fg) 40%, transparent);\n }\n .fg-50 {\n color: color-mix(in oklch, var(--fg) 50%, transparent);\n }\n .fg-60 {\n color: color-mix(in oklch, var(--fg) 60%, transparent);\n }\n .fg-70 {\n color: color-mix(in oklch, var(--fg) 70%, transparent);\n }\n .fg-80 {\n color: color-mix(in oklch, var(--fg) 80%, transparent);\n }\n .fg-90 {\n color: color-mix(in oklch, var(--fg) 90%, transparent);\n }\n .fg-100 {\n color: var(--fg);\n }\n .link-10 {\n color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .hover\\:link-10:hover {\n color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .link-20 {\n color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .hover\\:link-20:hover {\n color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .link-30 {\n color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .hover\\:link-30:hover {\n color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .link-40 {\n color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .hover\\:link-40:hover {\n color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .link-50 {\n color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .hover\\:link-50:hover {\n color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .link-60 {\n color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .hover\\:link-60:hover {\n color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .link-70 {\n color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .hover\\:link-70:hover {\n color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .link-80 {\n color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .hover\\:link-80:hover {\n color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .link-90 {\n color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .hover\\:link-90:hover {\n color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .link-100 {\n color: var(--link-color);\n }\n .hover\\:link-100:hover {\n color: var(--link-color);\n }\n .underline-offset-1 {\n text-underline-offset: 0.125em;\n }\n .hover\\:underline-offset-1:hover {\n text-underline-offset: 0.125em;\n }\n .underline-offset-2 {\n text-underline-offset: 0.25em;\n }\n .hover\\:underline-offset-2:hover {\n text-underline-offset: 0.25em;\n }\n .underline-offset-3 {\n text-underline-offset: 0.375em;\n }\n .hover\\:underline-offset-3:hover {\n text-underline-offset: 0.375em;\n }\n .underline-primary {\n text-decoration-color: light-dark(var(--blue-600), var(--blue-400));\n }\n .underline-accent {\n text-decoration-color: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n }\n .underline-success {\n text-decoration-color: light-dark(var(--green-600), var(--green-400));\n }\n .underline-danger {\n text-decoration-color: light-dark(var(--red-600), var(--red-400));\n }\n .underline-warning {\n text-decoration-color: light-dark(var(--yellow-700), var(--yellow-400));\n }\n .underline-info {\n text-decoration-color: light-dark(var(--cyan-600), var(--cyan-400));\n }\n .underline-inverse {\n text-decoration-color: light-dark(var(--gray-900), var(--gray-200));\n }\n .underline-secondary {\n text-decoration-color: light-dark(var(--gray-600), var(--gray-400));\n }\n .underline-10 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .hover\\:underline-10:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .underline-20 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .hover\\:underline-20:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .underline-30 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .hover\\:underline-30:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .underline-40 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .hover\\:underline-40:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .underline-50 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .hover\\:underline-50:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .underline-60 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .hover\\:underline-60:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .underline-70 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .hover\\:underline-70:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .underline-80 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .hover\\:underline-80:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .underline-90 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .hover\\:underline-90:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .underline-100 {\n text-decoration-color: var(--link-color);\n }\n .hover\\:underline-100:hover {\n text-decoration-color: var(--link-color);\n }\n .underline-thickness-1 {\n text-decoration-thickness: 1px;\n }\n .hover\\:underline-thickness-1:hover {\n text-decoration-thickness: 1px;\n }\n .underline-thickness-2 {\n text-decoration-thickness: 2px;\n }\n .hover\\:underline-thickness-2:hover {\n text-decoration-thickness: 2px;\n }\n .underline-thickness-3 {\n text-decoration-thickness: 3px;\n }\n .hover\\:underline-thickness-3:hover {\n text-decoration-thickness: 3px;\n }\n .underline-thickness-4 {\n text-decoration-thickness: 4px;\n }\n .hover\\:underline-thickness-4:hover {\n text-decoration-thickness: 4px;\n }\n .underline-thickness-5 {\n text-decoration-thickness: 5px;\n }\n .hover\\:underline-thickness-5:hover {\n text-decoration-thickness: 5px;\n }\n .bg-primary {\n --bg: var(--primary-bg);\n background-color: var(--bg);\n }\n .bg-accent {\n --bg: var(--accent-bg);\n background-color: var(--bg);\n }\n .bg-success {\n --bg: var(--success-bg);\n background-color: var(--bg);\n }\n .bg-danger {\n --bg: var(--danger-bg);\n background-color: var(--bg);\n }\n .bg-warning {\n --bg: var(--warning-bg);\n background-color: var(--bg);\n }\n .bg-info {\n --bg: var(--info-bg);\n background-color: var(--bg);\n }\n .bg-inverse {\n --bg: var(--inverse-bg);\n background-color: var(--bg);\n }\n .bg-secondary {\n --bg: var(--secondary-bg);\n background-color: var(--bg);\n }\n .bg-body {\n --bg: var(--bg-body);\n background-color: var(--bg);\n }\n .bg-1 {\n --bg: var(--bg-1);\n background-color: var(--bg);\n }\n .bg-2 {\n --bg: var(--bg-2);\n background-color: var(--bg);\n }\n .bg-3 {\n --bg: var(--bg-3);\n background-color: var(--bg);\n }\n .bg-4 {\n --bg: var(--bg-4);\n background-color: var(--bg);\n }\n .bg-fg {\n --bg: var(--bg-fg);\n background-color: var(--bg);\n }\n .bg-white {\n --bg: var(--bg-white);\n background-color: var(--bg);\n }\n .bg-black {\n --bg: var(--bg-black);\n background-color: var(--bg);\n }\n .bg-transparent {\n --bg: var(--bg-transparent);\n background-color: var(--bg);\n }\n .bg-subtle-primary {\n --bg: var(--primary-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-accent {\n --bg: var(--accent-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-success {\n --bg: var(--success-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-danger {\n --bg: var(--danger-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-warning {\n --bg: var(--warning-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-info {\n --bg: var(--info-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-inverse {\n --bg: var(--inverse-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-secondary {\n --bg: var(--secondary-bg-subtle);\n background-color: var(--bg);\n }\n .bg-muted-primary {\n --bg: var(--primary-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-accent {\n --bg: var(--accent-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-success {\n --bg: var(--success-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-danger {\n --bg: var(--danger-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-warning {\n --bg: var(--warning-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-info {\n --bg: var(--info-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-inverse {\n --bg: var(--inverse-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-secondary {\n --bg: var(--secondary-bg-muted);\n background-color: var(--bg);\n }\n .bg-10 {\n background-color: color-mix(in oklch, var(--bg) 10%, transparent);\n }\n .bg-20 {\n background-color: color-mix(in oklch, var(--bg) 20%, transparent);\n }\n .bg-30 {\n background-color: color-mix(in oklch, var(--bg) 30%, transparent);\n }\n .bg-40 {\n background-color: color-mix(in oklch, var(--bg) 40%, transparent);\n }\n .bg-50 {\n background-color: color-mix(in oklch, var(--bg) 50%, transparent);\n }\n .bg-60 {\n background-color: color-mix(in oklch, var(--bg) 60%, transparent);\n }\n .bg-70 {\n background-color: color-mix(in oklch, var(--bg) 70%, transparent);\n }\n .bg-80 {\n background-color: color-mix(in oklch, var(--bg) 80%, transparent);\n }\n .bg-90 {\n background-color: color-mix(in oklch, var(--bg) 90%, transparent);\n }\n .bg-100 {\n background-color: var(--bg);\n }\n .theme-contrast {\n background-color: var(--theme-bg);\n color: var(--theme-contrast);\n }\n .theme-subtle {\n background-color: var(--theme-bg-subtle);\n color: var(--theme-fg);\n }\n .theme-muted {\n background-color: var(--theme-bg-muted);\n color: var(--theme-fg-emphasis);\n }\n .theme-border {\n border: var(--border-width) solid var(--theme-border);\n }\n .bg-gradient {\n background-image: var(--gradient);\n }\n .user-select-all {\n user-select: all;\n }\n .user-select-auto {\n user-select: auto;\n }\n .user-select-text {\n user-select: text;\n }\n .user-select-none {\n user-select: none;\n }\n .pe-none {\n pointer-events: none;\n }\n .pe-auto {\n pointer-events: auto;\n }\n .rounded-0 {\n --rounded-size: 0;\n border-radius: var(--rounded-size);\n }\n .rounded-1 {\n --rounded-size: 0.125rem;\n border-radius: var(--rounded-size);\n }\n .rounded-2 {\n --rounded-size: 0.1875rem;\n border-radius: var(--rounded-size);\n }\n .rounded-3 {\n --rounded-size: 0.25rem;\n border-radius: var(--rounded-size);\n }\n .rounded-4 {\n --rounded-size: 0.375rem;\n border-radius: var(--rounded-size);\n }\n .rounded-5 {\n --rounded-size: 0.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded-6 {\n --rounded-size: 0.625rem;\n border-radius: var(--rounded-size);\n }\n .rounded-7 {\n --rounded-size: 0.75rem;\n border-radius: var(--rounded-size);\n }\n .rounded-8 {\n --rounded-size: 1rem;\n border-radius: var(--rounded-size);\n }\n .rounded-9 {\n --rounded-size: 1.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded {\n --rounded-size: 0.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded-circle {\n --rounded-size: 50%;\n border-radius: var(--rounded-size);\n }\n .rounded-pill {\n --rounded-size: var(--radius-pill);\n border-radius: var(--rounded-size);\n }\n .rounded-size-0 {\n --rounded-size: 0;\n }\n .rounded-size-1 {\n --rounded-size: 0.125rem;\n }\n .rounded-size-2 {\n --rounded-size: 0.1875rem;\n }\n .rounded-size-3 {\n --rounded-size: 0.25rem;\n }\n .rounded-size-4 {\n --rounded-size: 0.375rem;\n }\n .rounded-size-5 {\n --rounded-size: 0.5rem;\n }\n .rounded-size-6 {\n --rounded-size: 0.625rem;\n }\n .rounded-size-7 {\n --rounded-size: 0.75rem;\n }\n .rounded-size-8 {\n --rounded-size: 1rem;\n }\n .rounded-size-9 {\n --rounded-size: 1.5rem;\n }\n .rounded-size {\n --rounded-size: 0.5rem;\n }\n .rounded-size-circle {\n --rounded-size: 50%;\n }\n .rounded-size-pill {\n --rounded-size: var(--radius-pill);\n }\n .rounded-top-0 {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n .rounded-top-1 {\n border-start-start-radius: 0.125rem;\n border-start-end-radius: 0.125rem;\n }\n .rounded-top-2 {\n border-start-start-radius: 0.1875rem;\n border-start-end-radius: 0.1875rem;\n }\n .rounded-top-3 {\n border-start-start-radius: 0.25rem;\n border-start-end-radius: 0.25rem;\n }\n .rounded-top-4 {\n border-start-start-radius: 0.375rem;\n border-start-end-radius: 0.375rem;\n }\n .rounded-top-5 {\n border-start-start-radius: 0.5rem;\n border-start-end-radius: 0.5rem;\n }\n .rounded-top-6 {\n border-start-start-radius: 0.625rem;\n border-start-end-radius: 0.625rem;\n }\n .rounded-top-7 {\n border-start-start-radius: 0.75rem;\n border-start-end-radius: 0.75rem;\n }\n .rounded-top-8 {\n border-start-start-radius: 1rem;\n border-start-end-radius: 1rem;\n }\n .rounded-top-9 {\n border-start-start-radius: 1.5rem;\n border-start-end-radius: 1.5rem;\n }\n .rounded-top {\n border-start-start-radius: var(--rounded-size, var(--radius-5));\n border-start-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-top-circle {\n border-start-start-radius: 50%;\n border-start-end-radius: 50%;\n }\n .rounded-top-pill {\n border-start-start-radius: var(--radius-pill);\n border-start-end-radius: var(--radius-pill);\n }\n .rounded-end-0 {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .rounded-end-1 {\n border-start-end-radius: 0.125rem;\n border-end-end-radius: 0.125rem;\n }\n .rounded-end-2 {\n border-start-end-radius: 0.1875rem;\n border-end-end-radius: 0.1875rem;\n }\n .rounded-end-3 {\n border-start-end-radius: 0.25rem;\n border-end-end-radius: 0.25rem;\n }\n .rounded-end-4 {\n border-start-end-radius: 0.375rem;\n border-end-end-radius: 0.375rem;\n }\n .rounded-end-5 {\n border-start-end-radius: 0.5rem;\n border-end-end-radius: 0.5rem;\n }\n .rounded-end-6 {\n border-start-end-radius: 0.625rem;\n border-end-end-radius: 0.625rem;\n }\n .rounded-end-7 {\n border-start-end-radius: 0.75rem;\n border-end-end-radius: 0.75rem;\n }\n .rounded-end-8 {\n border-start-end-radius: 1rem;\n border-end-end-radius: 1rem;\n }\n .rounded-end-9 {\n border-start-end-radius: 1.5rem;\n border-end-end-radius: 1.5rem;\n }\n .rounded-end {\n border-start-end-radius: var(--rounded-size, var(--radius-5));\n border-end-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-end-circle {\n border-start-end-radius: 50%;\n border-end-end-radius: 50%;\n }\n .rounded-end-pill {\n border-start-end-radius: var(--radius-pill);\n border-end-end-radius: var(--radius-pill);\n }\n .rounded-bottom-0 {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .rounded-bottom-1 {\n border-end-start-radius: 0.125rem;\n border-end-end-radius: 0.125rem;\n }\n .rounded-bottom-2 {\n border-end-start-radius: 0.1875rem;\n border-end-end-radius: 0.1875rem;\n }\n .rounded-bottom-3 {\n border-end-start-radius: 0.25rem;\n border-end-end-radius: 0.25rem;\n }\n .rounded-bottom-4 {\n border-end-start-radius: 0.375rem;\n border-end-end-radius: 0.375rem;\n }\n .rounded-bottom-5 {\n border-end-start-radius: 0.5rem;\n border-end-end-radius: 0.5rem;\n }\n .rounded-bottom-6 {\n border-end-start-radius: 0.625rem;\n border-end-end-radius: 0.625rem;\n }\n .rounded-bottom-7 {\n border-end-start-radius: 0.75rem;\n border-end-end-radius: 0.75rem;\n }\n .rounded-bottom-8 {\n border-end-start-radius: 1rem;\n border-end-end-radius: 1rem;\n }\n .rounded-bottom-9 {\n border-end-start-radius: 1.5rem;\n border-end-end-radius: 1.5rem;\n }\n .rounded-bottom {\n border-end-start-radius: var(--rounded-size, var(--radius-5));\n border-end-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-bottom-circle {\n border-end-start-radius: 50%;\n border-end-end-radius: 50%;\n }\n .rounded-bottom-pill {\n border-end-start-radius: var(--radius-pill);\n border-end-end-radius: var(--radius-pill);\n }\n .rounded-start-0 {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .rounded-start-1 {\n border-start-start-radius: 0.125rem;\n border-end-start-radius: 0.125rem;\n }\n .rounded-start-2 {\n border-start-start-radius: 0.1875rem;\n border-end-start-radius: 0.1875rem;\n }\n .rounded-start-3 {\n border-start-start-radius: 0.25rem;\n border-end-start-radius: 0.25rem;\n }\n .rounded-start-4 {\n border-start-start-radius: 0.375rem;\n border-end-start-radius: 0.375rem;\n }\n .rounded-start-5 {\n border-start-start-radius: 0.5rem;\n border-end-start-radius: 0.5rem;\n }\n .rounded-start-6 {\n border-start-start-radius: 0.625rem;\n border-end-start-radius: 0.625rem;\n }\n .rounded-start-7 {\n border-start-start-radius: 0.75rem;\n border-end-start-radius: 0.75rem;\n }\n .rounded-start-8 {\n border-start-start-radius: 1rem;\n border-end-start-radius: 1rem;\n }\n .rounded-start-9 {\n border-start-start-radius: 1.5rem;\n border-end-start-radius: 1.5rem;\n }\n .rounded-start {\n border-start-start-radius: var(--rounded-size, var(--radius-5));\n border-end-start-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-start-circle {\n border-start-start-radius: 50%;\n border-end-start-radius: 50%;\n }\n .rounded-start-pill {\n border-start-start-radius: var(--radius-pill);\n border-end-start-radius: var(--radius-pill);\n }\n .visible {\n visibility: visible;\n }\n .invisible {\n visibility: hidden;\n }\n .z-n1 {\n z-index: -1;\n }\n .z-0 {\n z-index: 0;\n }\n .z-1 {\n z-index: 1;\n }\n .z-2 {\n z-index: 2;\n }\n .z-3 {\n z-index: 3;\n }\n @media (width >= 576px) {\n .sm\\:float-start {\n float: inline-start;\n }\n .sm\\:float-end {\n float: inline-end;\n }\n .sm\\:float-none {\n float: none;\n }\n .sm\\:object-fit-contain {\n object-fit: contain;\n }\n .sm\\:object-fit-cover {\n object-fit: cover;\n }\n .sm\\:object-fit-fill {\n object-fit: fill;\n }\n .sm\\:object-fit-scale {\n object-fit: scale-down;\n }\n .sm\\:object-fit-none {\n object-fit: none;\n }\n .sm\\:d-inline {\n display: inline;\n }\n .sm\\:d-inline-block {\n display: inline-block;\n }\n .sm\\:d-block {\n display: block;\n }\n .sm\\:d-grid {\n display: grid;\n }\n .sm\\:d-inline-grid {\n display: inline-grid;\n }\n .sm\\:d-table {\n display: table;\n }\n .sm\\:d-table-row {\n display: table-row;\n }\n .sm\\:d-table-cell {\n display: table-cell;\n }\n .sm\\:d-flex {\n display: flex;\n }\n .sm\\:d-inline-flex {\n display: inline-flex;\n }\n .sm\\:d-contents {\n display: contents;\n }\n .sm\\:d-flow-root {\n display: flow-root;\n }\n .sm\\:d-none {\n display: none;\n }\n .sm\\:flex-fill {\n flex: 1 1 auto;\n }\n .sm\\:flex-row {\n flex-direction: row;\n }\n .sm\\:flex-column {\n flex-direction: column;\n }\n .sm\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .sm\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .sm\\:flex-grow-0 {\n flex-grow: 0;\n }\n .sm\\:flex-grow-1 {\n flex-grow: 1;\n }\n .sm\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .sm\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .sm\\:flex-wrap {\n flex-wrap: wrap;\n }\n .sm\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .sm\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .sm\\:justify-content-start {\n justify-content: flex-start;\n }\n .sm\\:justify-content-end {\n justify-content: flex-end;\n }\n .sm\\:justify-content-center {\n justify-content: center;\n }\n .sm\\:justify-content-between {\n justify-content: space-between;\n }\n .sm\\:justify-content-around {\n justify-content: space-around;\n }\n .sm\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .sm\\:justify-items-start {\n justify-items: start;\n }\n .sm\\:justify-items-end {\n justify-items: end;\n }\n .sm\\:justify-items-center {\n justify-items: center;\n }\n .sm\\:justify-items-stretch {\n justify-items: stretch;\n }\n .sm\\:justify-self-start {\n justify-self: start;\n }\n .sm\\:justify-self-end {\n justify-self: end;\n }\n .sm\\:justify-self-center {\n justify-self: center;\n }\n .sm\\:align-items-start {\n align-items: flex-start;\n }\n .sm\\:align-items-end {\n align-items: flex-end;\n }\n .sm\\:align-items-center {\n align-items: center;\n }\n .sm\\:align-items-baseline {\n align-items: baseline;\n }\n .sm\\:align-items-stretch {\n align-items: stretch;\n }\n .sm\\:align-content-start {\n align-content: flex-start;\n }\n .sm\\:align-content-end {\n align-content: flex-end;\n }\n .sm\\:align-content-center {\n align-content: center;\n }\n .sm\\:align-content-between {\n align-content: space-between;\n }\n .sm\\:align-content-around {\n align-content: space-around;\n }\n .sm\\:align-content-stretch {\n align-content: stretch;\n }\n .sm\\:align-self-auto {\n align-self: auto;\n }\n .sm\\:align-self-start {\n align-self: flex-start;\n }\n .sm\\:align-self-end {\n align-self: flex-end;\n }\n .sm\\:align-self-center {\n align-self: center;\n }\n .sm\\:align-self-baseline {\n align-self: baseline;\n }\n .sm\\:align-self-stretch {\n align-self: stretch;\n }\n .sm\\:place-items-start {\n place-items: start;\n }\n .sm\\:place-items-end {\n place-items: end;\n }\n .sm\\:place-items-center {\n place-items: center;\n }\n .sm\\:place-items-stretch {\n place-items: stretch;\n }\n .sm\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .sm\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .sm\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .sm\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .sm\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .sm\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .sm\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .sm\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .sm\\:order-first {\n order: -1;\n }\n .sm\\:order-0 {\n order: 0;\n }\n .sm\\:order-1 {\n order: 1;\n }\n .sm\\:order-2 {\n order: 2;\n }\n .sm\\:order-3 {\n order: 3;\n }\n .sm\\:order-4 {\n order: 4;\n }\n .sm\\:order-5 {\n order: 5;\n }\n .sm\\:order-last {\n order: 6;\n }\n .sm\\:m-0 {\n margin: 0;\n }\n .sm\\:m-1 {\n margin: 0.25rem;\n }\n .sm\\:m-2 {\n margin: 0.5rem;\n }\n .sm\\:m-3 {\n margin: 0.75rem;\n }\n .sm\\:m-4 {\n margin: 1rem;\n }\n .sm\\:m-5 {\n margin: 1.25rem;\n }\n .sm\\:m-6 {\n margin: 1.5rem;\n }\n .sm\\:m-7 {\n margin: 2rem;\n }\n .sm\\:m-8 {\n margin: 2.5rem;\n }\n .sm\\:m-9 {\n margin: 3rem;\n }\n .sm\\:m-auto {\n margin: auto;\n }\n .sm\\:mx-0 {\n margin-inline: 0;\n }\n .sm\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .sm\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .sm\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .sm\\:mx-4 {\n margin-inline: 1rem;\n }\n .sm\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .sm\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .sm\\:mx-7 {\n margin-inline: 2rem;\n }\n .sm\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .sm\\:mx-9 {\n margin-inline: 3rem;\n }\n .sm\\:mx-auto {\n margin-inline: auto;\n }\n .sm\\:my-0 {\n margin-block: 0;\n }\n .sm\\:my-1 {\n margin-block: 0.25rem;\n }\n .sm\\:my-2 {\n margin-block: 0.5rem;\n }\n .sm\\:my-3 {\n margin-block: 0.75rem;\n }\n .sm\\:my-4 {\n margin-block: 1rem;\n }\n .sm\\:my-5 {\n margin-block: 1.25rem;\n }\n .sm\\:my-6 {\n margin-block: 1.5rem;\n }\n .sm\\:my-7 {\n margin-block: 2rem;\n }\n .sm\\:my-8 {\n margin-block: 2.5rem;\n }\n .sm\\:my-9 {\n margin-block: 3rem;\n }\n .sm\\:my-auto {\n margin-block: auto;\n }\n .sm\\:mt-0 {\n margin-block-start: 0;\n }\n .sm\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .sm\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .sm\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .sm\\:mt-4 {\n margin-block-start: 1rem;\n }\n .sm\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .sm\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .sm\\:mt-7 {\n margin-block-start: 2rem;\n }\n .sm\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .sm\\:mt-9 {\n margin-block-start: 3rem;\n }\n .sm\\:mt-auto {\n margin-block-start: auto;\n }\n .sm\\:me-0 {\n margin-inline-end: 0;\n }\n .sm\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .sm\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .sm\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .sm\\:me-4 {\n margin-inline-end: 1rem;\n }\n .sm\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .sm\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .sm\\:me-7 {\n margin-inline-end: 2rem;\n }\n .sm\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .sm\\:me-9 {\n margin-inline-end: 3rem;\n }\n .sm\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .sm\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .sm\\:me-auto {\n margin-inline-end: auto;\n }\n .sm\\:mb-0 {\n margin-block-end: 0;\n }\n .sm\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .sm\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .sm\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .sm\\:mb-4 {\n margin-block-end: 1rem;\n }\n .sm\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .sm\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .sm\\:mb-7 {\n margin-block-end: 2rem;\n }\n .sm\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .sm\\:mb-9 {\n margin-block-end: 3rem;\n }\n .sm\\:mb-auto {\n margin-block-end: auto;\n }\n .sm\\:ms-0 {\n margin-inline-start: 0;\n }\n .sm\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .sm\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .sm\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .sm\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .sm\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .sm\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .sm\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .sm\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .sm\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .sm\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .sm\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .sm\\:ms-auto {\n margin-inline-start: auto;\n }\n .sm\\:p-0 {\n padding: 0;\n }\n .sm\\:p-1 {\n padding: 0.25rem;\n }\n .sm\\:p-2 {\n padding: 0.5rem;\n }\n .sm\\:p-3 {\n padding: 0.75rem;\n }\n .sm\\:p-4 {\n padding: 1rem;\n }\n .sm\\:p-5 {\n padding: 1.25rem;\n }\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n .sm\\:p-7 {\n padding: 2rem;\n }\n .sm\\:p-8 {\n padding: 2.5rem;\n }\n .sm\\:p-9 {\n padding: 3rem;\n }\n .sm\\:px-0 {\n padding-inline: 0;\n }\n .sm\\:px-1 {\n padding-inline: 0.25rem;\n }\n .sm\\:px-2 {\n padding-inline: 0.5rem;\n }\n .sm\\:px-3 {\n padding-inline: 0.75rem;\n }\n .sm\\:px-4 {\n padding-inline: 1rem;\n }\n .sm\\:px-5 {\n padding-inline: 1.25rem;\n }\n .sm\\:px-6 {\n padding-inline: 1.5rem;\n }\n .sm\\:px-7 {\n padding-inline: 2rem;\n }\n .sm\\:px-8 {\n padding-inline: 2.5rem;\n }\n .sm\\:px-9 {\n padding-inline: 3rem;\n }\n .sm\\:py-0 {\n padding-block: 0;\n }\n .sm\\:py-1 {\n padding-block: 0.25rem;\n }\n .sm\\:py-2 {\n padding-block: 0.5rem;\n }\n .sm\\:py-3 {\n padding-block: 0.75rem;\n }\n .sm\\:py-4 {\n padding-block: 1rem;\n }\n .sm\\:py-5 {\n padding-block: 1.25rem;\n }\n .sm\\:py-6 {\n padding-block: 1.5rem;\n }\n .sm\\:py-7 {\n padding-block: 2rem;\n }\n .sm\\:py-8 {\n padding-block: 2.5rem;\n }\n .sm\\:py-9 {\n padding-block: 3rem;\n }\n .sm\\:pt-0 {\n padding-block-start: 0;\n }\n .sm\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .sm\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .sm\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .sm\\:pt-4 {\n padding-block-start: 1rem;\n }\n .sm\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .sm\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .sm\\:pt-7 {\n padding-block-start: 2rem;\n }\n .sm\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .sm\\:pt-9 {\n padding-block-start: 3rem;\n }\n .sm\\:pe-0 {\n padding-inline-end: 0;\n }\n .sm\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .sm\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .sm\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .sm\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .sm\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .sm\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .sm\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .sm\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .sm\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .sm\\:pb-0 {\n padding-block-end: 0;\n }\n .sm\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .sm\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .sm\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .sm\\:pb-4 {\n padding-block-end: 1rem;\n }\n .sm\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .sm\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .sm\\:pb-7 {\n padding-block-end: 2rem;\n }\n .sm\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .sm\\:pb-9 {\n padding-block-end: 3rem;\n }\n .sm\\:ps-0 {\n padding-inline-start: 0;\n }\n .sm\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .sm\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .sm\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .sm\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .sm\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .sm\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .sm\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .sm\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .sm\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .sm\\:gap-0 {\n gap: 0;\n }\n .sm\\:gap-1 {\n gap: 0.25rem;\n }\n .sm\\:gap-2 {\n gap: 0.5rem;\n }\n .sm\\:gap-3 {\n gap: 0.75rem;\n }\n .sm\\:gap-4 {\n gap: 1rem;\n }\n .sm\\:gap-5 {\n gap: 1.25rem;\n }\n .sm\\:gap-6 {\n gap: 1.5rem;\n }\n .sm\\:gap-7 {\n gap: 2rem;\n }\n .sm\\:gap-8 {\n gap: 2.5rem;\n }\n .sm\\:gap-9 {\n gap: 3rem;\n }\n .sm\\:row-gap-0 {\n row-gap: 0;\n }\n .sm\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .sm\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .sm\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .sm\\:row-gap-4 {\n row-gap: 1rem;\n }\n .sm\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .sm\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .sm\\:row-gap-7 {\n row-gap: 2rem;\n }\n .sm\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .sm\\:row-gap-9 {\n row-gap: 3rem;\n }\n .sm\\:column-gap-0 {\n column-gap: 0;\n }\n .sm\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .sm\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .sm\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .sm\\:column-gap-4 {\n column-gap: 1rem;\n }\n .sm\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .sm\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .sm\\:column-gap-7 {\n column-gap: 2rem;\n }\n .sm\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .sm\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.sm\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.sm\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.sm\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.sm\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.sm\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.sm\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.sm\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.sm\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.sm\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.sm\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.sm\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.sm\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.sm\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.sm\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.sm\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.sm\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.sm\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.sm\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.sm\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.sm\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.sm\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.sm\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.sm\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.sm\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .sm\\:text-start {\n text-align: start;\n }\n .sm\\:text-end {\n text-align: end;\n }\n .sm\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 768px) {\n .md\\:float-start {\n float: inline-start;\n }\n .md\\:float-end {\n float: inline-end;\n }\n .md\\:float-none {\n float: none;\n }\n .md\\:object-fit-contain {\n object-fit: contain;\n }\n .md\\:object-fit-cover {\n object-fit: cover;\n }\n .md\\:object-fit-fill {\n object-fit: fill;\n }\n .md\\:object-fit-scale {\n object-fit: scale-down;\n }\n .md\\:object-fit-none {\n object-fit: none;\n }\n .md\\:d-inline {\n display: inline;\n }\n .md\\:d-inline-block {\n display: inline-block;\n }\n .md\\:d-block {\n display: block;\n }\n .md\\:d-grid {\n display: grid;\n }\n .md\\:d-inline-grid {\n display: inline-grid;\n }\n .md\\:d-table {\n display: table;\n }\n .md\\:d-table-row {\n display: table-row;\n }\n .md\\:d-table-cell {\n display: table-cell;\n }\n .md\\:d-flex {\n display: flex;\n }\n .md\\:d-inline-flex {\n display: inline-flex;\n }\n .md\\:d-contents {\n display: contents;\n }\n .md\\:d-flow-root {\n display: flow-root;\n }\n .md\\:d-none {\n display: none;\n }\n .md\\:flex-fill {\n flex: 1 1 auto;\n }\n .md\\:flex-row {\n flex-direction: row;\n }\n .md\\:flex-column {\n flex-direction: column;\n }\n .md\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .md\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .md\\:flex-grow-0 {\n flex-grow: 0;\n }\n .md\\:flex-grow-1 {\n flex-grow: 1;\n }\n .md\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .md\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .md\\:flex-wrap {\n flex-wrap: wrap;\n }\n .md\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .md\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .md\\:justify-content-start {\n justify-content: flex-start;\n }\n .md\\:justify-content-end {\n justify-content: flex-end;\n }\n .md\\:justify-content-center {\n justify-content: center;\n }\n .md\\:justify-content-between {\n justify-content: space-between;\n }\n .md\\:justify-content-around {\n justify-content: space-around;\n }\n .md\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .md\\:justify-items-start {\n justify-items: start;\n }\n .md\\:justify-items-end {\n justify-items: end;\n }\n .md\\:justify-items-center {\n justify-items: center;\n }\n .md\\:justify-items-stretch {\n justify-items: stretch;\n }\n .md\\:justify-self-start {\n justify-self: start;\n }\n .md\\:justify-self-end {\n justify-self: end;\n }\n .md\\:justify-self-center {\n justify-self: center;\n }\n .md\\:align-items-start {\n align-items: flex-start;\n }\n .md\\:align-items-end {\n align-items: flex-end;\n }\n .md\\:align-items-center {\n align-items: center;\n }\n .md\\:align-items-baseline {\n align-items: baseline;\n }\n .md\\:align-items-stretch {\n align-items: stretch;\n }\n .md\\:align-content-start {\n align-content: flex-start;\n }\n .md\\:align-content-end {\n align-content: flex-end;\n }\n .md\\:align-content-center {\n align-content: center;\n }\n .md\\:align-content-between {\n align-content: space-between;\n }\n .md\\:align-content-around {\n align-content: space-around;\n }\n .md\\:align-content-stretch {\n align-content: stretch;\n }\n .md\\:align-self-auto {\n align-self: auto;\n }\n .md\\:align-self-start {\n align-self: flex-start;\n }\n .md\\:align-self-end {\n align-self: flex-end;\n }\n .md\\:align-self-center {\n align-self: center;\n }\n .md\\:align-self-baseline {\n align-self: baseline;\n }\n .md\\:align-self-stretch {\n align-self: stretch;\n }\n .md\\:place-items-start {\n place-items: start;\n }\n .md\\:place-items-end {\n place-items: end;\n }\n .md\\:place-items-center {\n place-items: center;\n }\n .md\\:place-items-stretch {\n place-items: stretch;\n }\n .md\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .md\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .md\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .md\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .md\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .md\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .md\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .md\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .md\\:order-first {\n order: -1;\n }\n .md\\:order-0 {\n order: 0;\n }\n .md\\:order-1 {\n order: 1;\n }\n .md\\:order-2 {\n order: 2;\n }\n .md\\:order-3 {\n order: 3;\n }\n .md\\:order-4 {\n order: 4;\n }\n .md\\:order-5 {\n order: 5;\n }\n .md\\:order-last {\n order: 6;\n }\n .md\\:m-0 {\n margin: 0;\n }\n .md\\:m-1 {\n margin: 0.25rem;\n }\n .md\\:m-2 {\n margin: 0.5rem;\n }\n .md\\:m-3 {\n margin: 0.75rem;\n }\n .md\\:m-4 {\n margin: 1rem;\n }\n .md\\:m-5 {\n margin: 1.25rem;\n }\n .md\\:m-6 {\n margin: 1.5rem;\n }\n .md\\:m-7 {\n margin: 2rem;\n }\n .md\\:m-8 {\n margin: 2.5rem;\n }\n .md\\:m-9 {\n margin: 3rem;\n }\n .md\\:m-auto {\n margin: auto;\n }\n .md\\:mx-0 {\n margin-inline: 0;\n }\n .md\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .md\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .md\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .md\\:mx-4 {\n margin-inline: 1rem;\n }\n .md\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .md\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .md\\:mx-7 {\n margin-inline: 2rem;\n }\n .md\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .md\\:mx-9 {\n margin-inline: 3rem;\n }\n .md\\:mx-auto {\n margin-inline: auto;\n }\n .md\\:my-0 {\n margin-block: 0;\n }\n .md\\:my-1 {\n margin-block: 0.25rem;\n }\n .md\\:my-2 {\n margin-block: 0.5rem;\n }\n .md\\:my-3 {\n margin-block: 0.75rem;\n }\n .md\\:my-4 {\n margin-block: 1rem;\n }\n .md\\:my-5 {\n margin-block: 1.25rem;\n }\n .md\\:my-6 {\n margin-block: 1.5rem;\n }\n .md\\:my-7 {\n margin-block: 2rem;\n }\n .md\\:my-8 {\n margin-block: 2.5rem;\n }\n .md\\:my-9 {\n margin-block: 3rem;\n }\n .md\\:my-auto {\n margin-block: auto;\n }\n .md\\:mt-0 {\n margin-block-start: 0;\n }\n .md\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .md\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .md\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .md\\:mt-4 {\n margin-block-start: 1rem;\n }\n .md\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .md\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .md\\:mt-7 {\n margin-block-start: 2rem;\n }\n .md\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .md\\:mt-9 {\n margin-block-start: 3rem;\n }\n .md\\:mt-auto {\n margin-block-start: auto;\n }\n .md\\:me-0 {\n margin-inline-end: 0;\n }\n .md\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .md\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .md\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .md\\:me-4 {\n margin-inline-end: 1rem;\n }\n .md\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .md\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .md\\:me-7 {\n margin-inline-end: 2rem;\n }\n .md\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .md\\:me-9 {\n margin-inline-end: 3rem;\n }\n .md\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .md\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .md\\:me-auto {\n margin-inline-end: auto;\n }\n .md\\:mb-0 {\n margin-block-end: 0;\n }\n .md\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .md\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .md\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .md\\:mb-4 {\n margin-block-end: 1rem;\n }\n .md\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .md\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .md\\:mb-7 {\n margin-block-end: 2rem;\n }\n .md\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .md\\:mb-9 {\n margin-block-end: 3rem;\n }\n .md\\:mb-auto {\n margin-block-end: auto;\n }\n .md\\:ms-0 {\n margin-inline-start: 0;\n }\n .md\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .md\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .md\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .md\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .md\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .md\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .md\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .md\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .md\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .md\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .md\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .md\\:ms-auto {\n margin-inline-start: auto;\n }\n .md\\:p-0 {\n padding: 0;\n }\n .md\\:p-1 {\n padding: 0.25rem;\n }\n .md\\:p-2 {\n padding: 0.5rem;\n }\n .md\\:p-3 {\n padding: 0.75rem;\n }\n .md\\:p-4 {\n padding: 1rem;\n }\n .md\\:p-5 {\n padding: 1.25rem;\n }\n .md\\:p-6 {\n padding: 1.5rem;\n }\n .md\\:p-7 {\n padding: 2rem;\n }\n .md\\:p-8 {\n padding: 2.5rem;\n }\n .md\\:p-9 {\n padding: 3rem;\n }\n .md\\:px-0 {\n padding-inline: 0;\n }\n .md\\:px-1 {\n padding-inline: 0.25rem;\n }\n .md\\:px-2 {\n padding-inline: 0.5rem;\n }\n .md\\:px-3 {\n padding-inline: 0.75rem;\n }\n .md\\:px-4 {\n padding-inline: 1rem;\n }\n .md\\:px-5 {\n padding-inline: 1.25rem;\n }\n .md\\:px-6 {\n padding-inline: 1.5rem;\n }\n .md\\:px-7 {\n padding-inline: 2rem;\n }\n .md\\:px-8 {\n padding-inline: 2.5rem;\n }\n .md\\:px-9 {\n padding-inline: 3rem;\n }\n .md\\:py-0 {\n padding-block: 0;\n }\n .md\\:py-1 {\n padding-block: 0.25rem;\n }\n .md\\:py-2 {\n padding-block: 0.5rem;\n }\n .md\\:py-3 {\n padding-block: 0.75rem;\n }\n .md\\:py-4 {\n padding-block: 1rem;\n }\n .md\\:py-5 {\n padding-block: 1.25rem;\n }\n .md\\:py-6 {\n padding-block: 1.5rem;\n }\n .md\\:py-7 {\n padding-block: 2rem;\n }\n .md\\:py-8 {\n padding-block: 2.5rem;\n }\n .md\\:py-9 {\n padding-block: 3rem;\n }\n .md\\:pt-0 {\n padding-block-start: 0;\n }\n .md\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .md\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .md\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .md\\:pt-4 {\n padding-block-start: 1rem;\n }\n .md\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .md\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .md\\:pt-7 {\n padding-block-start: 2rem;\n }\n .md\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .md\\:pt-9 {\n padding-block-start: 3rem;\n }\n .md\\:pe-0 {\n padding-inline-end: 0;\n }\n .md\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .md\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .md\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .md\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .md\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .md\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .md\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .md\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .md\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .md\\:pb-0 {\n padding-block-end: 0;\n }\n .md\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .md\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .md\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .md\\:pb-4 {\n padding-block-end: 1rem;\n }\n .md\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .md\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .md\\:pb-7 {\n padding-block-end: 2rem;\n }\n .md\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .md\\:pb-9 {\n padding-block-end: 3rem;\n }\n .md\\:ps-0 {\n padding-inline-start: 0;\n }\n .md\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .md\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .md\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .md\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .md\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .md\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .md\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .md\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .md\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .md\\:gap-0 {\n gap: 0;\n }\n .md\\:gap-1 {\n gap: 0.25rem;\n }\n .md\\:gap-2 {\n gap: 0.5rem;\n }\n .md\\:gap-3 {\n gap: 0.75rem;\n }\n .md\\:gap-4 {\n gap: 1rem;\n }\n .md\\:gap-5 {\n gap: 1.25rem;\n }\n .md\\:gap-6 {\n gap: 1.5rem;\n }\n .md\\:gap-7 {\n gap: 2rem;\n }\n .md\\:gap-8 {\n gap: 2.5rem;\n }\n .md\\:gap-9 {\n gap: 3rem;\n }\n .md\\:row-gap-0 {\n row-gap: 0;\n }\n .md\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .md\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .md\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .md\\:row-gap-4 {\n row-gap: 1rem;\n }\n .md\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .md\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .md\\:row-gap-7 {\n row-gap: 2rem;\n }\n .md\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .md\\:row-gap-9 {\n row-gap: 3rem;\n }\n .md\\:column-gap-0 {\n column-gap: 0;\n }\n .md\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .md\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .md\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .md\\:column-gap-4 {\n column-gap: 1rem;\n }\n .md\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .md\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .md\\:column-gap-7 {\n column-gap: 2rem;\n }\n .md\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .md\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.md\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.md\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.md\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.md\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.md\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.md\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.md\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.md\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.md\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.md\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.md\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.md\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.md\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.md\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.md\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.md\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.md\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.md\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.md\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.md\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.md\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.md\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.md\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.md\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .md\\:text-start {\n text-align: start;\n }\n .md\\:text-end {\n text-align: end;\n }\n .md\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1024px) {\n .lg\\:float-start {\n float: inline-start;\n }\n .lg\\:float-end {\n float: inline-end;\n }\n .lg\\:float-none {\n float: none;\n }\n .lg\\:object-fit-contain {\n object-fit: contain;\n }\n .lg\\:object-fit-cover {\n object-fit: cover;\n }\n .lg\\:object-fit-fill {\n object-fit: fill;\n }\n .lg\\:object-fit-scale {\n object-fit: scale-down;\n }\n .lg\\:object-fit-none {\n object-fit: none;\n }\n .lg\\:d-inline {\n display: inline;\n }\n .lg\\:d-inline-block {\n display: inline-block;\n }\n .lg\\:d-block {\n display: block;\n }\n .lg\\:d-grid {\n display: grid;\n }\n .lg\\:d-inline-grid {\n display: inline-grid;\n }\n .lg\\:d-table {\n display: table;\n }\n .lg\\:d-table-row {\n display: table-row;\n }\n .lg\\:d-table-cell {\n display: table-cell;\n }\n .lg\\:d-flex {\n display: flex;\n }\n .lg\\:d-inline-flex {\n display: inline-flex;\n }\n .lg\\:d-contents {\n display: contents;\n }\n .lg\\:d-flow-root {\n display: flow-root;\n }\n .lg\\:d-none {\n display: none;\n }\n .lg\\:flex-fill {\n flex: 1 1 auto;\n }\n .lg\\:flex-row {\n flex-direction: row;\n }\n .lg\\:flex-column {\n flex-direction: column;\n }\n .lg\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .lg\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .lg\\:flex-grow-0 {\n flex-grow: 0;\n }\n .lg\\:flex-grow-1 {\n flex-grow: 1;\n }\n .lg\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .lg\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .lg\\:flex-wrap {\n flex-wrap: wrap;\n }\n .lg\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .lg\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .lg\\:justify-content-start {\n justify-content: flex-start;\n }\n .lg\\:justify-content-end {\n justify-content: flex-end;\n }\n .lg\\:justify-content-center {\n justify-content: center;\n }\n .lg\\:justify-content-between {\n justify-content: space-between;\n }\n .lg\\:justify-content-around {\n justify-content: space-around;\n }\n .lg\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .lg\\:justify-items-start {\n justify-items: start;\n }\n .lg\\:justify-items-end {\n justify-items: end;\n }\n .lg\\:justify-items-center {\n justify-items: center;\n }\n .lg\\:justify-items-stretch {\n justify-items: stretch;\n }\n .lg\\:justify-self-start {\n justify-self: start;\n }\n .lg\\:justify-self-end {\n justify-self: end;\n }\n .lg\\:justify-self-center {\n justify-self: center;\n }\n .lg\\:align-items-start {\n align-items: flex-start;\n }\n .lg\\:align-items-end {\n align-items: flex-end;\n }\n .lg\\:align-items-center {\n align-items: center;\n }\n .lg\\:align-items-baseline {\n align-items: baseline;\n }\n .lg\\:align-items-stretch {\n align-items: stretch;\n }\n .lg\\:align-content-start {\n align-content: flex-start;\n }\n .lg\\:align-content-end {\n align-content: flex-end;\n }\n .lg\\:align-content-center {\n align-content: center;\n }\n .lg\\:align-content-between {\n align-content: space-between;\n }\n .lg\\:align-content-around {\n align-content: space-around;\n }\n .lg\\:align-content-stretch {\n align-content: stretch;\n }\n .lg\\:align-self-auto {\n align-self: auto;\n }\n .lg\\:align-self-start {\n align-self: flex-start;\n }\n .lg\\:align-self-end {\n align-self: flex-end;\n }\n .lg\\:align-self-center {\n align-self: center;\n }\n .lg\\:align-self-baseline {\n align-self: baseline;\n }\n .lg\\:align-self-stretch {\n align-self: stretch;\n }\n .lg\\:place-items-start {\n place-items: start;\n }\n .lg\\:place-items-end {\n place-items: end;\n }\n .lg\\:place-items-center {\n place-items: center;\n }\n .lg\\:place-items-stretch {\n place-items: stretch;\n }\n .lg\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .lg\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .lg\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .lg\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .lg\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .lg\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .lg\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .lg\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .lg\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .lg\\:order-first {\n order: -1;\n }\n .lg\\:order-0 {\n order: 0;\n }\n .lg\\:order-1 {\n order: 1;\n }\n .lg\\:order-2 {\n order: 2;\n }\n .lg\\:order-3 {\n order: 3;\n }\n .lg\\:order-4 {\n order: 4;\n }\n .lg\\:order-5 {\n order: 5;\n }\n .lg\\:order-last {\n order: 6;\n }\n .lg\\:m-0 {\n margin: 0;\n }\n .lg\\:m-1 {\n margin: 0.25rem;\n }\n .lg\\:m-2 {\n margin: 0.5rem;\n }\n .lg\\:m-3 {\n margin: 0.75rem;\n }\n .lg\\:m-4 {\n margin: 1rem;\n }\n .lg\\:m-5 {\n margin: 1.25rem;\n }\n .lg\\:m-6 {\n margin: 1.5rem;\n }\n .lg\\:m-7 {\n margin: 2rem;\n }\n .lg\\:m-8 {\n margin: 2.5rem;\n }\n .lg\\:m-9 {\n margin: 3rem;\n }\n .lg\\:m-auto {\n margin: auto;\n }\n .lg\\:mx-0 {\n margin-inline: 0;\n }\n .lg\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .lg\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .lg\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .lg\\:mx-4 {\n margin-inline: 1rem;\n }\n .lg\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .lg\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .lg\\:mx-7 {\n margin-inline: 2rem;\n }\n .lg\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .lg\\:mx-9 {\n margin-inline: 3rem;\n }\n .lg\\:mx-auto {\n margin-inline: auto;\n }\n .lg\\:my-0 {\n margin-block: 0;\n }\n .lg\\:my-1 {\n margin-block: 0.25rem;\n }\n .lg\\:my-2 {\n margin-block: 0.5rem;\n }\n .lg\\:my-3 {\n margin-block: 0.75rem;\n }\n .lg\\:my-4 {\n margin-block: 1rem;\n }\n .lg\\:my-5 {\n margin-block: 1.25rem;\n }\n .lg\\:my-6 {\n margin-block: 1.5rem;\n }\n .lg\\:my-7 {\n margin-block: 2rem;\n }\n .lg\\:my-8 {\n margin-block: 2.5rem;\n }\n .lg\\:my-9 {\n margin-block: 3rem;\n }\n .lg\\:my-auto {\n margin-block: auto;\n }\n .lg\\:mt-0 {\n margin-block-start: 0;\n }\n .lg\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .lg\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .lg\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .lg\\:mt-4 {\n margin-block-start: 1rem;\n }\n .lg\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .lg\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .lg\\:mt-7 {\n margin-block-start: 2rem;\n }\n .lg\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .lg\\:mt-9 {\n margin-block-start: 3rem;\n }\n .lg\\:mt-auto {\n margin-block-start: auto;\n }\n .lg\\:me-0 {\n margin-inline-end: 0;\n }\n .lg\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .lg\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .lg\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .lg\\:me-4 {\n margin-inline-end: 1rem;\n }\n .lg\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .lg\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .lg\\:me-7 {\n margin-inline-end: 2rem;\n }\n .lg\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .lg\\:me-9 {\n margin-inline-end: 3rem;\n }\n .lg\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .lg\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .lg\\:me-auto {\n margin-inline-end: auto;\n }\n .lg\\:mb-0 {\n margin-block-end: 0;\n }\n .lg\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .lg\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .lg\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .lg\\:mb-4 {\n margin-block-end: 1rem;\n }\n .lg\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .lg\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .lg\\:mb-7 {\n margin-block-end: 2rem;\n }\n .lg\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .lg\\:mb-9 {\n margin-block-end: 3rem;\n }\n .lg\\:mb-auto {\n margin-block-end: auto;\n }\n .lg\\:ms-0 {\n margin-inline-start: 0;\n }\n .lg\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .lg\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .lg\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .lg\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .lg\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .lg\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .lg\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .lg\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .lg\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .lg\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .lg\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .lg\\:ms-auto {\n margin-inline-start: auto;\n }\n .lg\\:p-0 {\n padding: 0;\n }\n .lg\\:p-1 {\n padding: 0.25rem;\n }\n .lg\\:p-2 {\n padding: 0.5rem;\n }\n .lg\\:p-3 {\n padding: 0.75rem;\n }\n .lg\\:p-4 {\n padding: 1rem;\n }\n .lg\\:p-5 {\n padding: 1.25rem;\n }\n .lg\\:p-6 {\n padding: 1.5rem;\n }\n .lg\\:p-7 {\n padding: 2rem;\n }\n .lg\\:p-8 {\n padding: 2.5rem;\n }\n .lg\\:p-9 {\n padding: 3rem;\n }\n .lg\\:px-0 {\n padding-inline: 0;\n }\n .lg\\:px-1 {\n padding-inline: 0.25rem;\n }\n .lg\\:px-2 {\n padding-inline: 0.5rem;\n }\n .lg\\:px-3 {\n padding-inline: 0.75rem;\n }\n .lg\\:px-4 {\n padding-inline: 1rem;\n }\n .lg\\:px-5 {\n padding-inline: 1.25rem;\n }\n .lg\\:px-6 {\n padding-inline: 1.5rem;\n }\n .lg\\:px-7 {\n padding-inline: 2rem;\n }\n .lg\\:px-8 {\n padding-inline: 2.5rem;\n }\n .lg\\:px-9 {\n padding-inline: 3rem;\n }\n .lg\\:py-0 {\n padding-block: 0;\n }\n .lg\\:py-1 {\n padding-block: 0.25rem;\n }\n .lg\\:py-2 {\n padding-block: 0.5rem;\n }\n .lg\\:py-3 {\n padding-block: 0.75rem;\n }\n .lg\\:py-4 {\n padding-block: 1rem;\n }\n .lg\\:py-5 {\n padding-block: 1.25rem;\n }\n .lg\\:py-6 {\n padding-block: 1.5rem;\n }\n .lg\\:py-7 {\n padding-block: 2rem;\n }\n .lg\\:py-8 {\n padding-block: 2.5rem;\n }\n .lg\\:py-9 {\n padding-block: 3rem;\n }\n .lg\\:pt-0 {\n padding-block-start: 0;\n }\n .lg\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .lg\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .lg\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .lg\\:pt-4 {\n padding-block-start: 1rem;\n }\n .lg\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .lg\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .lg\\:pt-7 {\n padding-block-start: 2rem;\n }\n .lg\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .lg\\:pt-9 {\n padding-block-start: 3rem;\n }\n .lg\\:pe-0 {\n padding-inline-end: 0;\n }\n .lg\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .lg\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .lg\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .lg\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .lg\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .lg\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .lg\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .lg\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .lg\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .lg\\:pb-0 {\n padding-block-end: 0;\n }\n .lg\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .lg\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .lg\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .lg\\:pb-4 {\n padding-block-end: 1rem;\n }\n .lg\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .lg\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .lg\\:pb-7 {\n padding-block-end: 2rem;\n }\n .lg\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .lg\\:pb-9 {\n padding-block-end: 3rem;\n }\n .lg\\:ps-0 {\n padding-inline-start: 0;\n }\n .lg\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .lg\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .lg\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .lg\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .lg\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .lg\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .lg\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .lg\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .lg\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .lg\\:gap-0 {\n gap: 0;\n }\n .lg\\:gap-1 {\n gap: 0.25rem;\n }\n .lg\\:gap-2 {\n gap: 0.5rem;\n }\n .lg\\:gap-3 {\n gap: 0.75rem;\n }\n .lg\\:gap-4 {\n gap: 1rem;\n }\n .lg\\:gap-5 {\n gap: 1.25rem;\n }\n .lg\\:gap-6 {\n gap: 1.5rem;\n }\n .lg\\:gap-7 {\n gap: 2rem;\n }\n .lg\\:gap-8 {\n gap: 2.5rem;\n }\n .lg\\:gap-9 {\n gap: 3rem;\n }\n .lg\\:row-gap-0 {\n row-gap: 0;\n }\n .lg\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .lg\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .lg\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .lg\\:row-gap-4 {\n row-gap: 1rem;\n }\n .lg\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .lg\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .lg\\:row-gap-7 {\n row-gap: 2rem;\n }\n .lg\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .lg\\:row-gap-9 {\n row-gap: 3rem;\n }\n .lg\\:column-gap-0 {\n column-gap: 0;\n }\n .lg\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .lg\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .lg\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .lg\\:column-gap-4 {\n column-gap: 1rem;\n }\n .lg\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .lg\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .lg\\:column-gap-7 {\n column-gap: 2rem;\n }\n .lg\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .lg\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.lg\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.lg\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.lg\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.lg\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.lg\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.lg\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.lg\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.lg\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.lg\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.lg\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.lg\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.lg\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.lg\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.lg\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.lg\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.lg\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.lg\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.lg\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.lg\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.lg\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.lg\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.lg\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.lg\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.lg\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .lg\\:text-start {\n text-align: start;\n }\n .lg\\:text-end {\n text-align: end;\n }\n .lg\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1280px) {\n .xl\\:float-start {\n float: inline-start;\n }\n .xl\\:float-end {\n float: inline-end;\n }\n .xl\\:float-none {\n float: none;\n }\n .xl\\:object-fit-contain {\n object-fit: contain;\n }\n .xl\\:object-fit-cover {\n object-fit: cover;\n }\n .xl\\:object-fit-fill {\n object-fit: fill;\n }\n .xl\\:object-fit-scale {\n object-fit: scale-down;\n }\n .xl\\:object-fit-none {\n object-fit: none;\n }\n .xl\\:d-inline {\n display: inline;\n }\n .xl\\:d-inline-block {\n display: inline-block;\n }\n .xl\\:d-block {\n display: block;\n }\n .xl\\:d-grid {\n display: grid;\n }\n .xl\\:d-inline-grid {\n display: inline-grid;\n }\n .xl\\:d-table {\n display: table;\n }\n .xl\\:d-table-row {\n display: table-row;\n }\n .xl\\:d-table-cell {\n display: table-cell;\n }\n .xl\\:d-flex {\n display: flex;\n }\n .xl\\:d-inline-flex {\n display: inline-flex;\n }\n .xl\\:d-contents {\n display: contents;\n }\n .xl\\:d-flow-root {\n display: flow-root;\n }\n .xl\\:d-none {\n display: none;\n }\n .xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .xl\\:flex-row {\n flex-direction: row;\n }\n .xl\\:flex-column {\n flex-direction: column;\n }\n .xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .xl\\:justify-content-center {\n justify-content: center;\n }\n .xl\\:justify-content-between {\n justify-content: space-between;\n }\n .xl\\:justify-content-around {\n justify-content: space-around;\n }\n .xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .xl\\:justify-items-start {\n justify-items: start;\n }\n .xl\\:justify-items-end {\n justify-items: end;\n }\n .xl\\:justify-items-center {\n justify-items: center;\n }\n .xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .xl\\:justify-self-start {\n justify-self: start;\n }\n .xl\\:justify-self-end {\n justify-self: end;\n }\n .xl\\:justify-self-center {\n justify-self: center;\n }\n .xl\\:align-items-start {\n align-items: flex-start;\n }\n .xl\\:align-items-end {\n align-items: flex-end;\n }\n .xl\\:align-items-center {\n align-items: center;\n }\n .xl\\:align-items-baseline {\n align-items: baseline;\n }\n .xl\\:align-items-stretch {\n align-items: stretch;\n }\n .xl\\:align-content-start {\n align-content: flex-start;\n }\n .xl\\:align-content-end {\n align-content: flex-end;\n }\n .xl\\:align-content-center {\n align-content: center;\n }\n .xl\\:align-content-between {\n align-content: space-between;\n }\n .xl\\:align-content-around {\n align-content: space-around;\n }\n .xl\\:align-content-stretch {\n align-content: stretch;\n }\n .xl\\:align-self-auto {\n align-self: auto;\n }\n .xl\\:align-self-start {\n align-self: flex-start;\n }\n .xl\\:align-self-end {\n align-self: flex-end;\n }\n .xl\\:align-self-center {\n align-self: center;\n }\n .xl\\:align-self-baseline {\n align-self: baseline;\n }\n .xl\\:align-self-stretch {\n align-self: stretch;\n }\n .xl\\:place-items-start {\n place-items: start;\n }\n .xl\\:place-items-end {\n place-items: end;\n }\n .xl\\:place-items-center {\n place-items: center;\n }\n .xl\\:place-items-stretch {\n place-items: stretch;\n }\n .xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .xl\\:order-first {\n order: -1;\n }\n .xl\\:order-0 {\n order: 0;\n }\n .xl\\:order-1 {\n order: 1;\n }\n .xl\\:order-2 {\n order: 2;\n }\n .xl\\:order-3 {\n order: 3;\n }\n .xl\\:order-4 {\n order: 4;\n }\n .xl\\:order-5 {\n order: 5;\n }\n .xl\\:order-last {\n order: 6;\n }\n .xl\\:m-0 {\n margin: 0;\n }\n .xl\\:m-1 {\n margin: 0.25rem;\n }\n .xl\\:m-2 {\n margin: 0.5rem;\n }\n .xl\\:m-3 {\n margin: 0.75rem;\n }\n .xl\\:m-4 {\n margin: 1rem;\n }\n .xl\\:m-5 {\n margin: 1.25rem;\n }\n .xl\\:m-6 {\n margin: 1.5rem;\n }\n .xl\\:m-7 {\n margin: 2rem;\n }\n .xl\\:m-8 {\n margin: 2.5rem;\n }\n .xl\\:m-9 {\n margin: 3rem;\n }\n .xl\\:m-auto {\n margin: auto;\n }\n .xl\\:mx-0 {\n margin-inline: 0;\n }\n .xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .xl\\:mx-auto {\n margin-inline: auto;\n }\n .xl\\:my-0 {\n margin-block: 0;\n }\n .xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .xl\\:my-4 {\n margin-block: 1rem;\n }\n .xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .xl\\:my-7 {\n margin-block: 2rem;\n }\n .xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .xl\\:my-9 {\n margin-block: 3rem;\n }\n .xl\\:my-auto {\n margin-block: auto;\n }\n .xl\\:mt-0 {\n margin-block-start: 0;\n }\n .xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .xl\\:mt-auto {\n margin-block-start: auto;\n }\n .xl\\:me-0 {\n margin-inline-end: 0;\n }\n .xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .xl\\:me-auto {\n margin-inline-end: auto;\n }\n .xl\\:mb-0 {\n margin-block-end: 0;\n }\n .xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .xl\\:mb-auto {\n margin-block-end: auto;\n }\n .xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .xl\\:p-0 {\n padding: 0;\n }\n .xl\\:p-1 {\n padding: 0.25rem;\n }\n .xl\\:p-2 {\n padding: 0.5rem;\n }\n .xl\\:p-3 {\n padding: 0.75rem;\n }\n .xl\\:p-4 {\n padding: 1rem;\n }\n .xl\\:p-5 {\n padding: 1.25rem;\n }\n .xl\\:p-6 {\n padding: 1.5rem;\n }\n .xl\\:p-7 {\n padding: 2rem;\n }\n .xl\\:p-8 {\n padding: 2.5rem;\n }\n .xl\\:p-9 {\n padding: 3rem;\n }\n .xl\\:px-0 {\n padding-inline: 0;\n }\n .xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .xl\\:px-4 {\n padding-inline: 1rem;\n }\n .xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .xl\\:px-7 {\n padding-inline: 2rem;\n }\n .xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .xl\\:px-9 {\n padding-inline: 3rem;\n }\n .xl\\:py-0 {\n padding-block: 0;\n }\n .xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .xl\\:py-4 {\n padding-block: 1rem;\n }\n .xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .xl\\:py-7 {\n padding-block: 2rem;\n }\n .xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .xl\\:py-9 {\n padding-block: 3rem;\n }\n .xl\\:pt-0 {\n padding-block-start: 0;\n }\n .xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .xl\\:pb-0 {\n padding-block-end: 0;\n }\n .xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .xl\\:gap-0 {\n gap: 0;\n }\n .xl\\:gap-1 {\n gap: 0.25rem;\n }\n .xl\\:gap-2 {\n gap: 0.5rem;\n }\n .xl\\:gap-3 {\n gap: 0.75rem;\n }\n .xl\\:gap-4 {\n gap: 1rem;\n }\n .xl\\:gap-5 {\n gap: 1.25rem;\n }\n .xl\\:gap-6 {\n gap: 1.5rem;\n }\n .xl\\:gap-7 {\n gap: 2rem;\n }\n .xl\\:gap-8 {\n gap: 2.5rem;\n }\n .xl\\:gap-9 {\n gap: 3rem;\n }\n .xl\\:row-gap-0 {\n row-gap: 0;\n }\n .xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .xl\\:column-gap-0 {\n column-gap: 0;\n }\n .xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.xl\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.xl\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.xl\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.xl\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.xl\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.xl\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.xl\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.xl\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.xl\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.xl\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.xl\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.xl\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.xl\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.xl\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.xl\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.xl\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.xl\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.xl\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.xl\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.xl\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.xl\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.xl\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.xl\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.xl\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .xl\\:text-start {\n text-align: start;\n }\n .xl\\:text-end {\n text-align: end;\n }\n .xl\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:float-start {\n float: inline-start;\n }\n .\\32 xl\\:float-end {\n float: inline-end;\n }\n .\\32 xl\\:float-none {\n float: none;\n }\n .\\32 xl\\:object-fit-contain {\n object-fit: contain;\n }\n .\\32 xl\\:object-fit-cover {\n object-fit: cover;\n }\n .\\32 xl\\:object-fit-fill {\n object-fit: fill;\n }\n .\\32 xl\\:object-fit-scale {\n object-fit: scale-down;\n }\n .\\32 xl\\:object-fit-none {\n object-fit: none;\n }\n .\\32 xl\\:d-inline {\n display: inline;\n }\n .\\32 xl\\:d-inline-block {\n display: inline-block;\n }\n .\\32 xl\\:d-block {\n display: block;\n }\n .\\32 xl\\:d-grid {\n display: grid;\n }\n .\\32 xl\\:d-inline-grid {\n display: inline-grid;\n }\n .\\32 xl\\:d-table {\n display: table;\n }\n .\\32 xl\\:d-table-row {\n display: table-row;\n }\n .\\32 xl\\:d-table-cell {\n display: table-cell;\n }\n .\\32 xl\\:d-flex {\n display: flex;\n }\n .\\32 xl\\:d-inline-flex {\n display: inline-flex;\n }\n .\\32 xl\\:d-contents {\n display: contents;\n }\n .\\32 xl\\:d-flow-root {\n display: flow-root;\n }\n .\\32 xl\\:d-none {\n display: none;\n }\n .\\32 xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .\\32 xl\\:flex-row {\n flex-direction: row;\n }\n .\\32 xl\\:flex-column {\n flex-direction: column;\n }\n .\\32 xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .\\32 xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .\\32 xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .\\32 xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .\\32 xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .\\32 xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .\\32 xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .\\32 xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .\\32 xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .\\32 xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .\\32 xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .\\32 xl\\:justify-content-center {\n justify-content: center;\n }\n .\\32 xl\\:justify-content-between {\n justify-content: space-between;\n }\n .\\32 xl\\:justify-content-around {\n justify-content: space-around;\n }\n .\\32 xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .\\32 xl\\:justify-items-start {\n justify-items: start;\n }\n .\\32 xl\\:justify-items-end {\n justify-items: end;\n }\n .\\32 xl\\:justify-items-center {\n justify-items: center;\n }\n .\\32 xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .\\32 xl\\:justify-self-start {\n justify-self: start;\n }\n .\\32 xl\\:justify-self-end {\n justify-self: end;\n }\n .\\32 xl\\:justify-self-center {\n justify-self: center;\n }\n .\\32 xl\\:align-items-start {\n align-items: flex-start;\n }\n .\\32 xl\\:align-items-end {\n align-items: flex-end;\n }\n .\\32 xl\\:align-items-center {\n align-items: center;\n }\n .\\32 xl\\:align-items-baseline {\n align-items: baseline;\n }\n .\\32 xl\\:align-items-stretch {\n align-items: stretch;\n }\n .\\32 xl\\:align-content-start {\n align-content: flex-start;\n }\n .\\32 xl\\:align-content-end {\n align-content: flex-end;\n }\n .\\32 xl\\:align-content-center {\n align-content: center;\n }\n .\\32 xl\\:align-content-between {\n align-content: space-between;\n }\n .\\32 xl\\:align-content-around {\n align-content: space-around;\n }\n .\\32 xl\\:align-content-stretch {\n align-content: stretch;\n }\n .\\32 xl\\:align-self-auto {\n align-self: auto;\n }\n .\\32 xl\\:align-self-start {\n align-self: flex-start;\n }\n .\\32 xl\\:align-self-end {\n align-self: flex-end;\n }\n .\\32 xl\\:align-self-center {\n align-self: center;\n }\n .\\32 xl\\:align-self-baseline {\n align-self: baseline;\n }\n .\\32 xl\\:align-self-stretch {\n align-self: stretch;\n }\n .\\32 xl\\:place-items-start {\n place-items: start;\n }\n .\\32 xl\\:place-items-end {\n place-items: end;\n }\n .\\32 xl\\:place-items-center {\n place-items: center;\n }\n .\\32 xl\\:place-items-stretch {\n place-items: stretch;\n }\n .\\32 xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .\\32 xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .\\32 xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .\\32 xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .\\32 xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .\\32 xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .\\32 xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .\\32 xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .\\32 xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .\\32 xl\\:order-first {\n order: -1;\n }\n .\\32 xl\\:order-0 {\n order: 0;\n }\n .\\32 xl\\:order-1 {\n order: 1;\n }\n .\\32 xl\\:order-2 {\n order: 2;\n }\n .\\32 xl\\:order-3 {\n order: 3;\n }\n .\\32 xl\\:order-4 {\n order: 4;\n }\n .\\32 xl\\:order-5 {\n order: 5;\n }\n .\\32 xl\\:order-last {\n order: 6;\n }\n .\\32 xl\\:m-0 {\n margin: 0;\n }\n .\\32 xl\\:m-1 {\n margin: 0.25rem;\n }\n .\\32 xl\\:m-2 {\n margin: 0.5rem;\n }\n .\\32 xl\\:m-3 {\n margin: 0.75rem;\n }\n .\\32 xl\\:m-4 {\n margin: 1rem;\n }\n .\\32 xl\\:m-5 {\n margin: 1.25rem;\n }\n .\\32 xl\\:m-6 {\n margin: 1.5rem;\n }\n .\\32 xl\\:m-7 {\n margin: 2rem;\n }\n .\\32 xl\\:m-8 {\n margin: 2.5rem;\n }\n .\\32 xl\\:m-9 {\n margin: 3rem;\n }\n .\\32 xl\\:m-auto {\n margin: auto;\n }\n .\\32 xl\\:mx-0 {\n margin-inline: 0;\n }\n .\\32 xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .\\32 xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .\\32 xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .\\32 xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .\\32 xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .\\32 xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .\\32 xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .\\32 xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .\\32 xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .\\32 xl\\:mx-auto {\n margin-inline: auto;\n }\n .\\32 xl\\:my-0 {\n margin-block: 0;\n }\n .\\32 xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .\\32 xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .\\32 xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .\\32 xl\\:my-4 {\n margin-block: 1rem;\n }\n .\\32 xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .\\32 xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .\\32 xl\\:my-7 {\n margin-block: 2rem;\n }\n .\\32 xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .\\32 xl\\:my-9 {\n margin-block: 3rem;\n }\n .\\32 xl\\:my-auto {\n margin-block: auto;\n }\n .\\32 xl\\:mt-0 {\n margin-block-start: 0;\n }\n .\\32 xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .\\32 xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .\\32 xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .\\32 xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .\\32 xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .\\32 xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .\\32 xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .\\32 xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .\\32 xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .\\32 xl\\:mt-auto {\n margin-block-start: auto;\n }\n .\\32 xl\\:me-0 {\n margin-inline-end: 0;\n }\n .\\32 xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .\\32 xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .\\32 xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .\\32 xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .\\32 xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .\\32 xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .\\32 xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .\\32 xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .\\32 xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .\\32 xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .\\32 xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .\\32 xl\\:me-auto {\n margin-inline-end: auto;\n }\n .\\32 xl\\:mb-0 {\n margin-block-end: 0;\n }\n .\\32 xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .\\32 xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .\\32 xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .\\32 xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .\\32 xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .\\32 xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .\\32 xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .\\32 xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .\\32 xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .\\32 xl\\:mb-auto {\n margin-block-end: auto;\n }\n .\\32 xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .\\32 xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .\\32 xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .\\32 xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .\\32 xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .\\32 xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .\\32 xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .\\32 xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .\\32 xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .\\32 xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .\\32 xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .\\32 xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .\\32 xl\\:p-0 {\n padding: 0;\n }\n .\\32 xl\\:p-1 {\n padding: 0.25rem;\n }\n .\\32 xl\\:p-2 {\n padding: 0.5rem;\n }\n .\\32 xl\\:p-3 {\n padding: 0.75rem;\n }\n .\\32 xl\\:p-4 {\n padding: 1rem;\n }\n .\\32 xl\\:p-5 {\n padding: 1.25rem;\n }\n .\\32 xl\\:p-6 {\n padding: 1.5rem;\n }\n .\\32 xl\\:p-7 {\n padding: 2rem;\n }\n .\\32 xl\\:p-8 {\n padding: 2.5rem;\n }\n .\\32 xl\\:p-9 {\n padding: 3rem;\n }\n .\\32 xl\\:px-0 {\n padding-inline: 0;\n }\n .\\32 xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .\\32 xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .\\32 xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .\\32 xl\\:px-4 {\n padding-inline: 1rem;\n }\n .\\32 xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .\\32 xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .\\32 xl\\:px-7 {\n padding-inline: 2rem;\n }\n .\\32 xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .\\32 xl\\:px-9 {\n padding-inline: 3rem;\n }\n .\\32 xl\\:py-0 {\n padding-block: 0;\n }\n .\\32 xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .\\32 xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .\\32 xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .\\32 xl\\:py-4 {\n padding-block: 1rem;\n }\n .\\32 xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .\\32 xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .\\32 xl\\:py-7 {\n padding-block: 2rem;\n }\n .\\32 xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .\\32 xl\\:py-9 {\n padding-block: 3rem;\n }\n .\\32 xl\\:pt-0 {\n padding-block-start: 0;\n }\n .\\32 xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .\\32 xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .\\32 xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .\\32 xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .\\32 xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .\\32 xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .\\32 xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .\\32 xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .\\32 xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .\\32 xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .\\32 xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .\\32 xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .\\32 xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .\\32 xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .\\32 xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .\\32 xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .\\32 xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .\\32 xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .\\32 xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .\\32 xl\\:pb-0 {\n padding-block-end: 0;\n }\n .\\32 xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .\\32 xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .\\32 xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .\\32 xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .\\32 xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .\\32 xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .\\32 xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .\\32 xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .\\32 xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .\\32 xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .\\32 xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .\\32 xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .\\32 xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .\\32 xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .\\32 xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .\\32 xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .\\32 xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .\\32 xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .\\32 xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .\\32 xl\\:gap-0 {\n gap: 0;\n }\n .\\32 xl\\:gap-1 {\n gap: 0.25rem;\n }\n .\\32 xl\\:gap-2 {\n gap: 0.5rem;\n }\n .\\32 xl\\:gap-3 {\n gap: 0.75rem;\n }\n .\\32 xl\\:gap-4 {\n gap: 1rem;\n }\n .\\32 xl\\:gap-5 {\n gap: 1.25rem;\n }\n .\\32 xl\\:gap-6 {\n gap: 1.5rem;\n }\n .\\32 xl\\:gap-7 {\n gap: 2rem;\n }\n .\\32 xl\\:gap-8 {\n gap: 2.5rem;\n }\n .\\32 xl\\:gap-9 {\n gap: 3rem;\n }\n .\\32 xl\\:row-gap-0 {\n row-gap: 0;\n }\n .\\32 xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .\\32 xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .\\32 xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .\\32 xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .\\32 xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .\\32 xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .\\32 xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .\\32 xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .\\32 xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .\\32 xl\\:column-gap-0 {\n column-gap: 0;\n }\n .\\32 xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .\\32 xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .\\32 xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .\\32 xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .\\32 xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .\\32 xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .\\32 xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .\\32 xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .\\32 xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.\\32 xl\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.\\32 xl\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.\\32 xl\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.\\32 xl\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.\\32 xl\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.\\32 xl\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.\\32 xl\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.\\32 xl\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.\\32 xl\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.\\32 xl\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.\\32 xl\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.\\32 xl\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.\\32 xl\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.\\32 xl\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.\\32 xl\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.\\32 xl\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.\\32 xl\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.\\32 xl\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.\\32 xl\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.\\32 xl\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.\\32 xl\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.\\32 xl\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.\\32 xl\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.\\32 xl\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .\\32 xl\\:text-start {\n text-align: start;\n }\n .\\32 xl\\:text-end {\n text-align: end;\n }\n .\\32 xl\\:text-center {\n text-align: center;\n }\n }\n}\n\n/*# sourceMappingURL=bootstrap-utilities.css.map */\n","$file: \"\" !default;\n\n/*!\n * Bootstrap #{$file} v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n","// stylelint-disable hue-degree-notation, @stylistic/number-leading-zero\n\n@use \"sass:map\";\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n// Easily convert colors to oklch() with https://oklch.com/\n\n$white: #fff !default;\n$black: #000 !default;\n\n// scss-docs-start colors-list\n$blue: oklch(60% 0.24 240) !default;\n$indigo: oklch(56% 0.26 288) !default;\n$violet: oklch(56% 0.24 300) !default;\n$purple: oklch(56% 0.24 320) !default;\n$pink: oklch(60% 0.22 4) !default;\n$red: oklch(60% 0.22 20) !default;\n$orange: oklch(70% 0.22 52) !default;\n$amber: oklch(79% 0.2 78) !default;\n$yellow: oklch(88% 0.24 88) !default;\n$lime: oklch(65% 0.24 135) !default;\n$green: oklch(64% 0.22 160) !default;\n$teal: oklch(68% 0.22 190) !default;\n$cyan: oklch(69% 0.22 220) !default;\n$brown: oklch(60% 0.12 54) !default;\n$gray: oklch(60% 0.02 245) !default;\n$pewter: oklch(65% 0.01 290) !default;\n// scss-docs-end colors-list\n\n// scss-docs-start colors-map\n$colors: () !default;\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: defaults(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"violet\": $violet,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"amber\": $amber,\n \"yellow\": $yellow,\n \"lime\": $lime,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"brown\": $brown,\n \"gray\": $gray,\n \"pewter\": $pewter,\n ),\n $colors\n);\n// scss-docs-end colors-map\n\n// scss-docs-start color-mix-options\n$color-mix-space: lab !default;\n$tint-color: var(--white) !default;\n$shade-color: var(--black) !default;\n\n$color-tints: (\n \"025\": 94%,\n \"050\": 90%,\n \"100\": 80%,\n \"200\": 60%,\n \"300\": 40%,\n \"400\": 20%,\n) !default;\n\n$color-shades: (\n \"600\": 16%,\n \"700\": 32%,\n \"800\": 48%,\n \"900\": 64%,\n \"950\": 76%,\n \"975\": 88%,\n) !default;\n// scss-docs-end color-mix-options\n\n// scss-docs-start color-tokens\n$color-tokens: () !default;\n\n$-color-defaults: () !default;\n@each $color, $value in $colors {\n @each $stop, $percent in $color-tints {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$tint-color} #{$percent}, #{$value}));\n }\n $-color-defaults: map.set($-color-defaults, --#{$color}-500, #{$value});\n @each $stop, $percent in $color-shades {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$shade-color} #{$percent}, #{$value}));\n }\n}\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$color-tokens: defaults($-color-defaults, $color-tokens);\n// scss-docs-end color-tokens\n\n:root {\n @include tokens($color-tokens);\n}\n","// Mixin to output tokens as CSS custom properties\n\n// scss-docs-start mixin-tokens\n@mixin tokens($map) {\n @each $prop, $value in $map {\n #{$prop}: #{$value};\n }\n}\n// scss-docs-end mixin-tokens\n","@use \"sass:map\";\n@use \"colors\" as *;\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"theme\" as *;\n@use \"mixins/tokens\" as *;\n// mdo-do: do we need theme?\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n\n$root-tokens: () !default;\n\n// scss-docs-start root-tokens\n// stylelint-disable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: defaults(\n (\n --black: #{$black},\n --white: #{$white},\n\n --gradient: #{$gradient},\n\n // scss-docs-start root-font-weight-variables\n --font-weight-lighter: lighter,\n --font-weight-light: 300,\n --font-weight-normal: 400,\n --font-weight-medium: 500,\n --font-weight-semibold: 600,\n --font-weight-bold: 700,\n --font-weight-bolder: bolder,\n // scss-docs-end root-font-weight-variables\n\n // scss-docs-start root-body-variables\n --body-font-family: system-ui,\n --body-font-size: var(--font-size-base),\n --body-font-weight: #{$font-weight-base},\n --body-line-height: #{$line-height-base},\n\n --heading-color: #{$headings-color},\n\n --hr-border-color: var(--border-color),\n\n --link-color: light-dark(var(--primary-base), var(--primary-fg)),\n --link-decoration: #{$link-decoration},\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000),\n\n --font-mono: \"SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace\",\n --code-font-size: 95%,\n --code-color: var(--fg-2),\n\n // scss-docs-start root-border-var\n --border-width: #{$border-width},\n --border-style: #{$border-style},\n --border-color: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-700)),\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent),\n // scss-docs-end root-border-var\n\n // scss-docs-start root-box-shadow-variables\n --box-shadow: 0 .5rem 1rem rgb(0 0 0 / 15%),\n --box-shadow-sm: 0 .125rem .25rem rgb(0 0 0 / 7.5%),\n --box-shadow-lg: 0 1rem 3rem rgb(0 0 0 / 17.5%),\n --box-shadow-inset: inset 0 1px 2px rgb(0 0 0 / 7.5%),\n // scss-docs-end root-box-shadow-variables\n\n --spacer: 1rem,\n\n // scss-docs-start root-focus-variables\n --focus-ring-width: 3px,\n --focus-ring-offset: 1px,\n --focus-ring-color: var(--primary-focus-ring),\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color),\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-variables\n --control-checked-bg: var(--primary-base),\n --control-checked-border-color: var(--control-checked-bg),\n --control-active-bg: var(--primary-base),\n --control-active-border-color: var(--control-active-bg),\n --control-disabled-bg: var(--bg-3),\n --control-disabled-opacity: .65,\n\n --btn-input-fg: var(--fg-body),\n --btn-input-bg: var(--bg-body),\n\n --btn-input-min-height: 2.375rem,\n --btn-input-padding-y: .375rem,\n --btn-input-padding-x: .75rem,\n --btn-input-font-size: var(--font-size-base),\n --btn-input-line-height: var(--line-height-base),\n --btn-input-border-radius: var(--radius-5),\n\n --btn-input-xs-min-height: 1.5rem,\n --btn-input-xs-padding-y: .125rem,\n --btn-input-xs-padding-x: .5rem,\n --btn-input-xs-font-size: var(--font-size-xs),\n --btn-input-xs-line-height: 1.125,\n --btn-input-xs-border-radius: var(--radius-5),\n\n --btn-input-sm-min-height: 2rem,\n --btn-input-sm-padding-y: .25rem,\n --btn-input-sm-padding-x: .625rem,\n --btn-input-sm-font-size: var(--font-size-sm),\n --btn-input-sm-line-height: var(--line-height-sm),\n --btn-input-sm-border-radius: var(--radius-5),\n\n --btn-input-lg-min-height: 2.75rem,\n --btn-input-lg-padding-y: .5rem,\n --btn-input-lg-padding-x: 1rem,\n --btn-input-lg-font-size: var(--font-size-md),\n --btn-input-lg-line-height: var(--line-height-md),\n --btn-input-lg-border-radius: var(--radius-7),\n // scss-docs-end root-form-variables\n ),\n $root-tokens\n);\n// stylelint-enable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// scss-docs-end root-tokens\n\n// scss-docs-start root-font-size-loop\n// Generate font-size and line-height tokens\n@each $name, $props in $font-sizes {\n $root-tokens: map.set($root-tokens, --font-size-#{$name}, map.get($props, \"font-size\"));\n $root-tokens: map.set($root-tokens, --line-height-#{$name}, map.get($props, \"line-height\"));\n}\n// scss-docs-end root-font-size-loop\n\n// scss-docs-start root-theme-tokens\n// Generate semantic theme colors\n@each $color-name, $color-map in $theme-colors {\n @each $key, $value in $color-map {\n $root-tokens: map.set($root-tokens, --#{$color-name}-#{$key}, $value);\n }\n}\n\n// Generate background tokens\n@each $key, $value in $theme-bgs {\n $root-tokens: map.set($root-tokens, --bg-#{$key}, $value);\n}\n\n// Generate foreground tokens\n@each $key, $value in $theme-fgs {\n $root-tokens: map.set($root-tokens, --fg-#{$key}, $value);\n}\n\n// Generate border tokens\n@each $key, $value in $theme-borders {\n $root-tokens: map.set($root-tokens, --border-#{$key}, $value);\n}\n// scss-docs-end root-theme-tokens\n\n// Generate breakpoint tokens\n@each $name, $value in $breakpoints {\n $root-tokens: map.set($root-tokens, --breakpoint-#{$name}, $value);\n}\n\n// Generate spacer tokens\n// scss-docs-start root-spacer-loop\n@each $key, $value in $spacers {\n $root-tokens: map.set($root-tokens, --spacer-#{$key}, $value);\n}\n// scss-docs-end root-spacer-loop\n\n// Generate radius tokens\n// scss-docs-start root-radius-loop\n@each $key, $value in $radii {\n $root-tokens: map.set($root-tokens, --radius-#{$key}, $value);\n}\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: map.set($root-tokens, --radius-pill, 50rem);\n// scss-docs-end root-radius-loop\n\n:root {\n @include tokens($root-tokens);\n\n color-scheme: light dark;\n // Always reserve the viewport scrollbar gutter so layout doesn't shift\n // when overflow: hidden is applied (e.g. when a dialog opens on Windows).\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=\"dark\"] {\n color-scheme: dark;\n}\n\n[data-bs-theme=\"light\"] {\n color-scheme: light;\n}\n","@layer helpers {\n .focus-ring:focus-visible {\n // outline: var(--focus-ring);\n outline: var(--focus-ring-width) solid var(--theme-focus-ring, var(--focus-ring-color));\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/transition\" as *;\n\n@layer helpers {\n .icon-link {\n display: inline-flex;\n gap: $icon-link-gap;\n align-items: center;\n text-decoration-color: rgba(var(--link-color-rgb), var(--link-opacity, .5));\n text-underline-offset: $icon-link-underline-offset;\n backface-visibility: hidden;\n\n > .bi {\n flex-shrink: 0;\n width: $icon-link-icon-size;\n height: $icon-link-icon-size;\n fill: currentcolor;\n @include transition($icon-link-icon-transition);\n }\n }\n\n .icon-link-hover {\n &:hover,\n &:focus-visible {\n > .bi {\n transform: var(--icon-link-transform, $icon-link-icon-transform);\n }\n }\n }\n}\n","@use \"sass:map\";\n@use \"sass:meta\";\n\n// Configuration\n//\n// Variables and settings not related to theme, components, and more go here. It does include layout.\n\n// Merge overrides on top of defaults, stripping null entries.\n// Null values let users remove map keys via @use ... with().\n// Accepts a list as $defaults (converted to a map with `true` values).\n@function defaults($defaults, $overrides) {\n @if meta.type-of($defaults) == \"list\" {\n $map: ();\n @each $key in $defaults {\n $map: map.merge($map, ($key: true));\n }\n $defaults: $map;\n }\n $merged: map.merge($defaults, $overrides);\n @each $key, $value in $merged {\n @if $value == null {\n $merged: map.remove($merged, $key);\n }\n }\n @return $merged;\n}\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: true !default;\n$enable-gradients: true !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: false !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: true !default;\n$enable-button-pointers: true !default;\n// $enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n\n$enable-dark-mode: true !default;\n\n$color-mode-type: \"media-query\" !default;\n$color-contrast-dark: #000 !default;\n$color-contrast-light: #fff !default;\n$min-contrast-ratio: 4.5 !default;\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer * .75,\n 4: $spacer,\n 5: $spacer * 1.25,\n 6: $spacer * 1.5,\n 7: $spacer * 2,\n 8: $spacer * 2.5,\n 9: $spacer * 3,\n) !default;\n\n$negative-spacers: (\n \"-1\": $spacer * -.25,\n \"-2\": $spacer * -.5,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n$sizes: (\n 1: $spacer,\n 2: $spacer * 2,\n 3: $spacer * 3,\n 4: $spacer * 4,\n 5: $spacer * 5,\n 6: $spacer * 6,\n 7: $spacer * 7,\n 8: $spacer * 8,\n 9: $spacer * 9,\n 10: $spacer * 10,\n 11: $spacer * 11,\n 12: $spacer * 12,\n) !default;\n\n$radius: .5rem !default;\n$radii: (\n 0: 0,\n 1: $radius * .25,\n 2: $radius * .375,\n 3: $radius * .5,\n 4: $radius * .75,\n 5: $radius,\n 6: $radius * 1.25,\n 7: $radius * 1.5,\n 8: $radius * 2,\n 9: $radius * 3,\n) !default;\n\n// Breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start breakpoints\n$breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 1024px,\n xl: 1280px,\n 2xl: 1536px\n) !default;\n// scss-docs-end breakpoints\n\n// @include _assert-ascending($breakpoints, \"$breakpoints\");\n// @include _assert-starts-at-zero($breakpoints, \"$breakpoints\");\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-x: 1.5rem !default;\n$grid-gutter-y: 0 !default;\n$grid-row-columns: 6 !default;\n\n$gutters: $spacers !default;\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1200px,\n 2xl: 1440px\n) !default;\n// scss-docs-end container-max-widths\n\n$container-padding-x: $grid-gutter-x !default;\n\n$utilities: () !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent)) !default;\n// scss-docs-end variable-gradient\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Links\n//\n// Style anchor elements.\n\n$link-decoration: underline !default;\n$link-underline-offset: .2em !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: color-mix(in oklch, var(--gray-100), var(--gray-200)) !default;\n// scss-docs-end border-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"auto\": auto,\n \"1x1\": #{\"1 / 1\"},\n \"4x3\": #{\"4 / 3\"},\n \"16x9\": #{\"16 / 9\"},\n \"21x9\": #{\"21 / 9\"}\n) !default;\n// scss-docs-end aspect-ratios\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$font-sizes: defaults(\n (\n \"xs\": (\n \"font-size\": .75rem,\n \"line-height\": 1.25\n ),\n \"sm\": (\n \"font-size\": .875rem,\n \"line-height\": 1.5\n ),\n \"md\": (\n \"font-size\": 1rem,\n \"line-height\": 1.5\n ),\n \"lg\": (\n \"font-size\": clamp(1.25rem, 1rem + .625vw, 1.5rem),\n \"line-height\": 1.5\n ),\n \"xl\": (\n \"font-size\": clamp(1.5rem, 1.1rem + .75vw, 1.75rem),\n \"line-height\": calc(2.5 / 1.75)\n ),\n \"2xl\": (\n \"font-size\": clamp(1.75rem, 1.3rem + 1vw, 2rem),\n \"line-height\": calc(3 / 2.25)\n ),\n \"3xl\": (\n \"font-size\": clamp(2rem, 1.5rem + 1.875vw, 2.5rem),\n \"line-height\": 1.2\n ),\n \"4xl\": (\n \"font-size\": clamp(2.25rem, 1.75rem + 2.5vw, 3rem),\n \"line-height\": 1.1\n ),\n \"5xl\": (\n \"font-size\": clamp(3rem, 2rem + 5vw, 4rem),\n \"line-height\": 1.1\n ),\n \"6xl\": (\n \"font-size\": clamp(3.75rem, 2.5rem + 6.25vw, 5rem),\n \"line-height\": 1\n ),\n ),\n $font-sizes\n);\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: var(--spacer-2) !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start type-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n// scss-docs-end type-variables\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-menu: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n// $zindex-drawer-backdrop: 1040 !default;\n$zindex-drawer: 1045 !default;\n$zindex-dialog: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n","@use \"sass:list\";\n@use \"../config\" as *;\n\n// stylelint-disable property-disallowed-list\n@mixin transition($transition...) {\n @if list.length($transition) == 0 {\n $transition: $transition-base;\n }\n\n @if list.length($transition) > 1 {\n @each $value in $transition {\n @if $value == null or $value == none {\n @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n }\n }\n }\n\n @if $enable-transitions {\n @if list.nth($transition, 1) != null {\n transition: $transition;\n }\n\n @if $enable-reduced-motion and list.nth($transition, 1) != null and list.nth($transition, 1) != none {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n }\n}\n","@use \"sass:map\";\n@use \"../config\" as *;\n@use \"../layout/breakpoints\" as *;\n\n@layer helpers {\n .fixed-top {\n position: fixed;\n inset: 0 0 auto;\n z-index: $zindex-fixed;\n }\n\n .fixed-bottom {\n position: fixed;\n inset: auto 0 0;\n z-index: $zindex-fixed;\n }\n\n // Responsive sticky top and bottom\n @each $breakpoint in map.keys($breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n .#{$prefix}sticky-top {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n\n .#{$prefix}sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: $zindex-sticky;\n }\n }\n }\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:string\";\n@use \"../config\" as *;\n\n// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px)\n//\n// The map defined in the `$breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl 2xl))\n// md\n@function breakpoint-next($name, $breakpoints: $breakpoints, $breakpoint-names: map.keys($breakpoints)) {\n $n: list.index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoint-names}`\";\n }\n // Use @if/@else because list.nth would error if evaluated when $n equals list length\n @if $n < list.length($breakpoint-names) {\n @return list.nth($breakpoint-names, $n + 1);\n } @else {\n @return null;\n }\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $breakpoints) {\n $min: map.get($breakpoints, $name);\n @return if(sass($min != 0): $min; else: null);\n}\n\n// Maximum breakpoint width for range media queries.\n// Returns the breakpoint value to use as an upper bound in range queries.\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n// >> breakpoint-max(xxl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// null\n@function breakpoint-max($name, $breakpoints: $breakpoints) {\n @if $name == null {\n @return null;\n }\n $max: map.get($breakpoints, $name);\n @return if(sass($max and $max > 0): $max; else: null);\n}\n\n// Escape a name for use at the start of a CSS identifier.\n// Leading digits are hex-escaped (e.g., 2xl becomes \\32 xl).\n@function css-escape-ident($name) {\n $name-str: \"#{$name}\";\n $digits: \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\";\n $first: string.slice($name-str, 1, 1);\n\n @if list.index($digits, $first) {\n @return \"\\\\3#{$first} #{string.slice($name-str, 2)}\";\n }\n\n @return $name-str;\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name\n// with an escaped colon as a Tailwind-style prefix for responsive class names.\n// Leading digits are CSS-escaped (e.g., 2xl becomes \\32 xl) for valid identifiers.\n//\n// >> breakpoint-prefix(xs, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\" (Returns a blank string)\n// >> breakpoint-prefix(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"sm\\:\"\n// >> breakpoint-prefix(2xl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\\32 xl\\:\"\n@function breakpoint-prefix($name, $breakpoints: $breakpoints) {\n @if breakpoint-min($name, $breakpoints) == null {\n @return \"\";\n }\n\n @return \"#{css-escape-ident($name)}\\\\:\";\n}\n\n// Iterate all breakpoints and provide the current name and prefix.\n//\n// @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-up($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n @content($breakpoint, $prefix);\n }\n}\n\n// Iterate all breakpoints and provide the current name, next name, and next prefix.\n//\n// @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-down($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $next: breakpoint-next($breakpoint, $breakpoints);\n $prefix: breakpoint-prefix($next, $breakpoints);\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Backwards-compatible alias for next/down breakpoint loops.\n@mixin loop-breakpoints($breakpoints: $breakpoints) {\n @include loop-breakpoints-down($breakpoints) using ($breakpoint, $next, $prefix) {\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (width >= $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (width < $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n\n\n// Container queries\n//\n// Container queries allow elements to respond to the size of a containing element\n// rather than the viewport. These mixins mirror the media-breakpoint-* mixins above.\n//\n// scss-docs-start container-query-mixins\n\n// Set an element as a query container.\n//\n// @include set-container(); // container-type: inline-size\n// @include set-container(size); // container-type: size\n// @include set-container(inline-size, sidebar); // container: sidebar / inline-size\n//\n@mixin set-container($type: inline-size, $name: null) {\n @if $name {\n container: #{$name} / #{$type};\n } @else {\n container-type: #{$type};\n }\n}\n\n// Container query of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider within the container.\n//\n// @include container-breakpoint-up(md) { ... }\n// @include container-breakpoint-up(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-up($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower within the container.\n//\n// @include container-breakpoint-down(lg) { ... }\n// @include container-breakpoint-down(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-down($name, $container-name: null, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @if $container-name {\n @container #{$container-name} (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width < #{$max}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints within the container.\n//\n// @include container-breakpoint-between(md, xl) { ... }\n// @include container-breakpoint-between(md, xl, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-between($lower, $upper, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($lower, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($upper, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n\n// Container query between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint within the container.\n//\n// @include container-breakpoint-only(md) { ... }\n// @include container-breakpoint-only(md, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-only($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($name, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($next, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n// scss-docs-end container-query-mixins\n","@use \"../layout/breakpoints\" as *;\n\n@layer helpers {\n // scss-docs-start stacks\n .stack-container {\n @include set-container();\n }\n\n [class*=\"hstack\"],\n [class*=\"vstack\"] {\n display: flex;\n flex: var(--stack-flex, 1 1 auto);\n flex-direction: var(--stack-direction, row);\n align-items: var(--stack-align-items, center);\n align-self: var(--stack-align-self, stretch);\n }\n\n @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n .#{$prefix}vstack {\n @include container-breakpoint-up($breakpoint) {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n .#{$prefix}hstack {\n @include container-breakpoint-up($breakpoint) {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n }\n // scss-docs-end stacks\n}\n","@use \"../theme\" as *;\n\n// Generate theme modifier classes (e.g., .theme-primary, .theme-accent, etc.)\n@layer helpers {\n @include generate-theme-classes();\n}\n","@use \"sass:map\";\n\n@function theme-color-values($key) {\n $result: ();\n\n @each $color-name, $color-map in $theme-colors {\n @if map.has-key($color-map, $key) {\n $result: map.merge($result, ($color-name: map.get($color-map, $key)));\n }\n }\n\n @return $result;\n}\n\n// Themes map sub-keys\n//\n// Return var() references to root tokens instead of raw values.\n// Ex: theme-color-refs(\"bg\") => (primary: var(--primary-bg), accent: var(--accent-bg), ...)\n@function theme-color-refs($key) {\n $result: ();\n\n @each $color-name, $color-map in $theme-colors {\n @if map.has-key($color-map, $key) {\n $result: map.merge($result, ($color-name: var(--#{$color-name}-#{$key})));\n }\n }\n\n @return $result;\n}\n\n// Theme token to root tokens\n//\n// Returns the global :root token reference for a given a given token map, prefix, and key.\n// Ex: theme-token-refs($theme-bgs, \"bg\") => (body: var(--bg-body), 1: var(--bg-1), ...)\n// Skips `inherit` since it's a CSS-wide keyword that can't be stored in a custom property.\n@function theme-token-refs($map, $prefix) {\n $result: ();\n\n @each $key, $value in $map {\n @if $value != inherit {\n $result: map.merge($result, ($key: var(--#{$prefix}-#{$key})));\n }\n }\n\n @return $result;\n}\n\n// Generate opacity values using color-mix()\n@function theme-opacity-values($color-var, $opacities: $util-opacity) {\n $result: ();\n\n @each $key, $value in $opacities {\n @if $key == 100 {\n // For 100%, use direct variable reference (more efficient)\n $result: map.merge($result, ($key: var($color-var)));\n } @else {\n // For other values, use color-mix()\n $percentage: $key * 1%;\n $result: map.merge($result, ($key: color-mix(in oklch, var($color-var) $percentage, transparent)));\n }\n }\n\n @return $result;\n}\n\n// Generate theme classes dynamically based on the keys in each theme color map\n@mixin generate-theme-classes() {\n @each $color-name, $color-map in $theme-colors {\n .theme-#{$color-name} {\n @each $key, $value in $color-map {\n --theme-#{$key}: var(--#{$color-name}-#{$key});\n }\n }\n }\n}\n\n// scss-docs-start theme-colors\n$theme-colors: (\n \"primary\": (\n \"base\": var(--blue-500),\n \"fg\": light-dark(var(--blue-600), var(--blue-400)),\n \"fg-emphasis\": light-dark(var(--blue-800), var(--blue-200)),\n \"bg\": var(--blue-500),\n \"bg-subtle\": light-dark(var(--blue-100), var(--blue-900)),\n \"bg-muted\": light-dark(var(--blue-200), var(--blue-800)),\n \"border\": light-dark(var(--blue-300), var(--blue-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"accent\": (\n \"base\": var(--indigo-500),\n \"fg\": light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300))),\n \"fg-emphasis\": light-dark(var(--indigo-800), var(--indigo-300)),\n \"bg\": var(--indigo-500),\n \"bg-subtle\": light-dark(var(--indigo-100), var(--indigo-900)),\n \"bg-muted\": light-dark(var(--indigo-200), var(--indigo-800)),\n \"border\": light-dark(var(--indigo-300), var(--indigo-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"success\": (\n \"base\": var(--green-500),\n \"fg\": light-dark(var(--green-600), var(--green-400)),\n \"fg-emphasis\": light-dark(var(--green-800), var(--green-300)),\n \"bg\": var(--green-500),\n \"bg-subtle\": light-dark(var(--green-100), var(--green-900)),\n \"bg-muted\": light-dark(var(--green-200), var(--green-800)),\n \"border\": light-dark(var(--green-300), var(--green-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"danger\": (\n \"base\": var(--red-500),\n \"fg\": light-dark(var(--red-600), var(--red-400)),\n \"fg-emphasis\": light-dark(var(--red-800), var(--red-300)),\n \"bg\": var(--red-500),\n \"bg-subtle\": light-dark(var(--red-100), var(--red-900)),\n \"bg-muted\": light-dark(var(--red-200), var(--red-800)),\n \"border\": light-dark(var(--red-300), var(--red-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"warning\": (\n \"base\": var(--yellow-500),\n \"fg\": light-dark(var(--yellow-700), var(--yellow-400)),\n \"fg-emphasis\": light-dark(var(--yellow-800), var(--yellow-300)),\n \"bg\": var(--yellow-500),\n \"bg-subtle\": light-dark(var(--yellow-100), var(--yellow-900)),\n \"bg-muted\": light-dark(var(--yellow-200), var(--yellow-800)),\n \"border\": light-dark(var(--yellow-300), var(--yellow-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body))),\n \"contrast\": var(--gray-900)\n ),\n \"info\": (\n \"base\": var(--cyan-500),\n \"fg\": light-dark(var(--cyan-600), var(--cyan-400)),\n \"fg-emphasis\": light-dark(var(--cyan-800), var(--cyan-300)),\n \"bg\": var(--cyan-500),\n \"bg-subtle\": light-dark(var(--cyan-100), var(--cyan-900)),\n \"bg-muted\": light-dark(var(--cyan-200), var(--cyan-800)),\n \"border\": light-dark(var(--cyan-300), var(--cyan-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body))),\n \"contrast\": var(--gray-900)\n ),\n \"inverse\": (\n \"base\": var(--gray-900),\n \"fg\": light-dark(var(--gray-900), var(--gray-200)),\n \"fg-emphasis\": light-dark(var(--gray-975), var(--white)),\n \"bg\": light-dark(var(--gray-900), var(--gray-025)),\n \"bg-subtle\": light-dark(var(--gray-100), var(--gray-900)),\n \"bg-muted\": light-dark(var(--gray-200), var(--gray-300)),\n \"border\": light-dark(var(--gray-400), var(--gray-100)),\n \"focus-ring\": color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body)),\n \"contrast\": light-dark(var(--white), var(--gray-900))\n ),\n \"secondary\": (\n \"base\": var(--gray-200),\n \"fg\": light-dark(var(--gray-600), var(--gray-400)),\n \"fg-emphasis\": light-dark(var(--gray-800), var(--gray-200)),\n \"bg\": light-dark(var(--gray-100), var(--gray-600)),\n \"bg-subtle\": light-dark(var(--gray-050), var(--gray-800)),\n \"bg-muted\": light-dark(var(--gray-100), var(--gray-700)),\n \"border\": light-dark(var(--gray-300), var(--gray-600)),\n \"focus-ring\": color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body)),\n \"contrast\": light-dark(var(--gray-900), var(--white))\n )\n) !default;\n// scss-docs-end theme-colors\n\n// mdo-do: consider using muted, subtle, ghost or something instead of linear scale?\n$theme-bgs: (\n \"body\": light-dark(var(--white), var(--gray-975)),\n \"1\": light-dark(var(--gray-025), var(--gray-950)),\n \"2\": light-dark(var(--gray-050), var(--gray-900)),\n \"3\": light-dark(var(--gray-100), var(--gray-800)),\n \"4\": light-dark(var(--gray-200), var(--gray-700)),\n \"fg\": var(--fg-body),\n \"white\": var(--white),\n \"black\": var(--black),\n \"transparent\": transparent,\n \"inherit\": inherit,\n) !default;\n\n$theme-fgs: (\n \"body\": light-dark(var(--gray-900), var(--gray-050)),\n \"1\": light-dark(var(--gray-800), var(--gray-200)),\n \"2\": light-dark(var(--gray-700), var(--gray-300)),\n \"3\": light-dark(var(--gray-600), var(--gray-500)),\n \"4\": light-dark(var(--gray-500), var(--gray-600)),\n \"bg\": var(--bg-body),\n \"white\": var(--white),\n \"black\": var(--black),\n \"inherit\": inherit,\n) !default;\n\n$theme-borders: (\n \"bg\": var(--bg-body),\n \"body\": light-dark(var(--gray-300), var(--gray-800)),\n \"muted\": light-dark(var(--gray-200), var(--gray-800)),\n \"subtle\": light-dark(var(--gray-100), var(--gray-900)),\n \"emphasized\": light-dark(var(--gray-400), var(--gray-600)),\n \"white\": var(--white),\n \"black\": var(--black),\n) !default;\n\n$util-opacity: (\n 10: .1,\n 20: .2,\n 30: .3,\n 40: .4,\n 50: .5,\n 60: .6,\n 70: .7,\n 80: .8,\n 90: .9,\n 100: 1\n) !default;\n","@use \"../mixins/visually-hidden\" as *;\n\n@layer helpers {\n .visually-hidden,\n .visually-hidden-focusable:not(:focus, :focus-within) {\n @include visually-hidden();\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Hide content visually while keeping it accessible to assistive technologies\n//\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin visually-hidden() {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n\n // Fix for positioned table caption that could become anonymous cells\n &:not(caption) {\n position: absolute !important;\n }\n\n // Fix to prevent overflowing children to become focusable\n * {\n overflow: hidden !important;\n }\n}\n\n// Use to only display content when it's focused, or one of its child elements is focused\n// (i.e. when focus is within the element/container that the class was applied to)\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/WAI/WCAG22/Techniques/general/G1.html\n\n@mixin visually-hidden-focusable() {\n &:not(:focus, :focus-within) {\n @include visually-hidden();\n }\n}\n","@use \"../config\" as *;\n\n@layer helpers {\n .stretched-link {\n &::#{$stretched-link-pseudo-element} {\n position: absolute;\n inset: 0;\n z-index: $stretched-link-z-index;\n content: \"\";\n }\n }\n}\n","@use \"../mixins/text-truncate\" as *;\n\n@layer helpers {\n .text-truncate {\n @include text-truncate();\n }\n}\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","@layer helpers {\n .vr {\n display: inline-block;\n align-self: stretch;\n width: var(--vr-border-width, var(--border-width));\n min-height: 1em;\n background-color: var(--border-color);\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/utilities\" as *;\n@use \"../utilities\" as *;\n\n@layer utilities {\n @include generate-utilities-loop($utilities, $breakpoints);\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"../layout/breakpoints\" as bp;\n\n// Utility generator\n\n// - Utilities can use three different types of selectors:\n// - class: .class\n// - attr-starts: [class^=\"class\"]\n// - attr-includes: [class*=\"class\"]\n// - Utilities can target children via `child-selector`, wrapped in :where() for zero specificity\n// - Utilities can generate regular CSS properties and CSS custom properties\n// - Utilities can be responsive or not\n// - Utilities can have state variants (e.g., hover, focus, active)\n// - Utilities can define local CSS variables\n//\n// CSS custom properties can be generated in two ways:\n//\n// 1. Property map with null values (CSS var receives the utility value):\n// \"bg-color\": (\n// property: (\n// \"--bg\": null,\n// \"background-color\": var(--bg)\n// ),\n// class: bg,\n// values: (\n// primary: var(--blue-500),\n// )\n// )\n// Generates:\n// .bg-primary {\n// --bs-bg: var(--bs-blue-500);\n// background-color: var(--bs-bg);\n// }\n//\n// 2. Variables map (static CSS custom properties on every class):\n// \"link-underline\": (\n// property: text-decoration-color,\n// class: link-underline,\n// variables: (\n// \"link-underline-opacity\": 1\n// ),\n// values: (...)\n// )\n// Generates:\n// .link-underline {\n// --bs-link-underline-opacity: 1;\n// text-decoration-color: ...;\n// }\n\n// Helper mixin to emit CSS custom properties from a utility's `variables` key.\n// When variables is a map, the provided static values are used on each class.\n// When variables is a list or single identifier, each variable receives the current utility value.\n@mixin generate-variables($utility, $value) {\n @if map.has-key($utility, variables) {\n $variables: map.get($utility, variables);\n @if meta.type-of($variables) == \"map\" {\n @each $var-key, $var-value in $variables {\n --#{$var-key}: #{$var-value};\n }\n } @else {\n // Treat as a list (or single identifier) — each variable gets the utility value\n @each $var-name in $variables {\n --#{$var-name}: #{$value};\n }\n }\n }\n}\n\n// Helper mixin to generate CSS properties for both legacy and property map approaches\n@mixin generate-properties($utility, $property-map, $properties, $value) {\n @if $property-map != null {\n // Property-Value Mapping approach\n @each $property, $default-value in $property-map {\n // If value is a map, check if it has a key for this property.\n // Otherwise, use default-value (or $value if default-value is null).\n $actual-value: $default-value;\n @if meta.type-of($value) == \"map\" and map.has-key($value, $property) {\n $actual-value: map.get($value, $property);\n } @else if $default-value == null {\n $actual-value: $value;\n }\n @if map.get($utility, important) {\n #{$property}: $actual-value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $actual-value;\n }\n }\n } @else {\n // Legacy approach\n @each $property in $properties {\n @if map.get($utility, important) {\n #{$property}: $value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $value;\n }\n }\n }\n}\n\n@mixin generate-utility($utility, $prefix: \"\") {\n // Validate required keys\n @if not map.has-key($utility, property) {\n @error \"Utility is missing required `property` key: #{$utility}\";\n }\n @if not map.has-key($utility, values) {\n @error \"Utility is missing required `values` key: #{$utility}\";\n }\n\n // Warn on unknown keys (likely typos)\n $valid-keys: property, values, class, selector, responsive, print, dark, important, state, variables, child-selector, enabled;\n @each $key in map.keys($utility) {\n @if not list.index($valid-keys, $key) {\n @warn \"Unknown utility key `#{$key}` found. Valid keys are: #{$valid-keys}\";\n }\n }\n\n // Validate boolean keys\n @each $bool-key in (responsive, print, dark, important, enabled) {\n @if map.has-key($utility, $bool-key) {\n $val: map.get($utility, $bool-key);\n @if $val != true and $val != false {\n @error \"Utility key `#{$bool-key}` should be a boolean (true or false), got: #{$val}\";\n }\n }\n }\n\n // Determine if we're generating a class, or an attribute selector\n $selector-type: \"class\";\n @if map.has-key($utility, selector) {\n $selector-type: map.get($utility, selector);\n // Validate selector type\n $valid-selectors: \"class\", \"attr-starts\", \"attr-includes\";\n @if not list.index($valid-selectors, $selector-type) {\n @error \"Invalid `selector` value `#{$selector-type}`. Must be one of: #{$valid-selectors}\";\n }\n }\n // Then get the class name to use in a class (e.g., .class) or in an attribute selector (e.g., [class^=\"class\"])\n $selector-class: map.get($utility, class);\n\n // Attribute selectors require a `class` key\n @if $selector-type != \"class\" and not map.has-key($utility, class) {\n @error \"Utility with `selector: #{$selector-type}` requires a `class` key.\";\n }\n\n // Get the list or map of values and ensure it's a map\n $values: map.get($utility, values);\n @if meta.type-of($values) != \"map\" {\n @if meta.type-of($values) == \"list\" {\n $list: ();\n @each $value in $values {\n $list: map.merge($list, ($value: $value));\n }\n $values: $list;\n } @else {\n $values: (null: $values);\n }\n }\n\n @each $key, $value in $values {\n $properties: map.get($utility, property);\n $property-map: null;\n $custom-class: \"\";\n\n // Check if property is a map (Property-Value Mapping approach)\n @if meta.type-of($properties) == \"map\" {\n $property-map: $properties;\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n }\n } @else {\n // Legacy approach: multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if meta.type-of($properties) == \"string\" {\n $properties: list.append((), $properties);\n }\n // Use custom class if present, otherwise use the first value from the list of properties\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n } @else {\n $custom-class: list.nth($properties, 1);\n }\n @if $custom-class == null {\n $custom-class: \"\";\n }\n }\n\n // State params to generate state variants\n $state: ();\n @if map.has-key($utility, state) {\n $state: map.get($utility, state);\n }\n\n // Don't add a dash before value key if value key is null (e.g. with shadow class)\n $custom-class-modifier: \"\";\n @if $key {\n @if $custom-class == \"\" {\n $custom-class-modifier: $key;\n } @else {\n $custom-class-modifier: \"-\" + $key;\n }\n }\n\n // Build the class name fragment (without prefix or dot) for reuse in state variants\n $class-name: \"\";\n @if $selector-type == \"class\" {\n @if $custom-class != \"\" {\n $class-name: $custom-class + $custom-class-modifier;\n } @else if $selector-class != null and $selector-class != \"\" {\n $class-name: $selector-class + $custom-class-modifier;\n } @else {\n $class-name: $custom-class-modifier;\n }\n }\n\n $selector: \"\";\n @if $selector-type == \"class\" {\n $selector: \".#{$prefix + $class-name}\";\n } @else if $selector-type == \"attr-starts\" {\n $selector: \"[class^=\\\"#{$selector-class}\\\"]\";\n } @else if $selector-type == \"attr-includes\" {\n $selector: \"[class*=\\\"#{$selector-class}\\\"]\";\n }\n\n // Apply child-selector wrapping if present (wraps in :where() for zero specificity)\n $child-sel: null;\n @if map.has-key($utility, child-selector) {\n $child-sel: map.get($utility, child-selector);\n }\n\n $final-selector: $selector;\n @if $child-sel {\n $final-selector: \":where(#{$selector} #{$child-sel})\";\n }\n\n #{$final-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n\n // Generate state variants (e.g., hover:link-10 instead of link-10-hover)\n @if $state != () {\n @each $state-variant in $state {\n $state-selector: \".#{$prefix}#{$state-variant}\\\\:#{$class-name}:#{$state-variant}\";\n @if $child-sel {\n $state-selector: \":where(#{$state-selector} #{$child-sel})\";\n }\n\n #{$state-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n }\n }\n }\n}\n\n// Generates all utility classes: base, responsive, print, and dark.\n// Extracted so that tests can call this mixin directly with a custom $utilities map\n// rather than having to mirror the loop conditions inline.\n@mixin generate-utilities-loop($utilities, $breakpoints) {\n // Base + responsive (one pass per breakpoint)\n @each $breakpoint in map.keys($breakpoints) {\n @include bp.media-breakpoint-up($breakpoint, $breakpoints) {\n $prefix: bp.breakpoint-prefix($breakpoint, $breakpoints);\n\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and (map.get($utility, responsive) or $prefix == \"\") {\n @include generate-utility($utility, $prefix);\n }\n }\n }\n }\n\n // Print utilities\n @media print {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, print) == true {\n @include generate-utility($utility, \"print\\\\:\");\n }\n }\n }\n\n // Dark utilities\n @media (prefers-color-scheme: dark) {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, dark) == true {\n @include generate-utility($utility, \"dark\\\\:\");\n }\n }\n }\n}\n"],"names":[]}
\ No newline at end of file
+{"version":3,"sourceRoot":null,"mappings":";;;;;AEmGA,oycE5FA,8EAAA,eCNE,yHCGA,6RAQE,yGEWE,uCFXF,gCAYE,+HGnBJ,sDAMA,yDAWI,+CAMA,qDCmGF,sBDzGE,mDAMA,0DCmGF,sBDzGE,mDAMA,0DCmGF,uBDzGE,mDAMA,0DCmGF,uBDzGE,mDAMA,0DCmGF,uBDzGE,uDAMA,8DExBJ,4CAIA,0NAUE,mEAMA,mED4ME,0BClNF,uEAMA,wED4ME,0BClNF,uEAMA,wED4ME,2BClNF,uEAMA,wED4ME,2BClNF,uEAMA,wED4ME,2BClNF,2EAMA,4EE4CA,8ZAAA,oZAAA,8ZAAA,oZAAA,8ZAAA,gYAAA,8ZAAA,kbCjEF,mQCeA,4HAKA,oGCnBE,qECDF,yEEFA,2JfMF,iBiBoOI,wCAAA,8BAAA,oCAAA,oCAAA,8CAAA,wCAAA,6CAAA,4BAAA,4BAAA,4BAAA,8BAAA,8BAAA,gCAAA,4BAAA,uBAAA,uCAAA,mCAAA,iCAAA,wCAAA,iCAAA,qBAAA,wBAAA,uBAAA,wBAAA,uBAAA,6BAAA,iCAAA,mCAAA,iCAAA,iCAAA,qCAAA,uCAAA,qCAAA,iCAAA,qCAAA,uCAAA,qCAAA,4CAAA,mCAAA,yBAAA,qCAAA,uBAAA,qBAAA,mCAAA,uBAAA,+BAAA,iCAAA,qBAAA,mCAAA,6BAAA,+BAAA,qBAAA,wCAAA,8CAAA,8CAAA,6BAAA,iCAAA,qCAAA,qCAAA,+BAAA,iCAAA,aAAA,gBAAA,kBAAA,mBAAA,sBAAA,wBAAA,8BAAA,iCAAA,mCAAA,0BAAA,6BAAA,+BAAA,iDAAA,8CAAA,+CAAA,oFAAA,mBAAA,oGAAA,mCAAA,mGAAA,kCAAA,qGAAA,oCAAA,uGAAA,sCAAA,4FAAA,2BAAA,6FAAA,4BAAA,2FAAA,yFAAA,2FAAA,yFAAA,2FAAA,qFAAA,2FAAA,+FAAA,qFAAA,yFAAA,2FAAA,6FAAA,qGAAA,2FAAA,2FAAA,sGAAA,oGAAA,sGAAA,oGAAA,sGAAA,gGAAA,sGAAA,0GAAA,2BAAA,2BAAA,2BAAA,2BAAA,2BAAA,qFAAA,qFAAA,qFAAA,qFAAA,qFAAA,qFAAA,qFAAA,qFAAA,qFAAA,gDAAA,gBAAA,gBAAA,gBAAA,gBAAA,gBAAA,gBAAA,gBAAA,gBAAA,gBAAA,kBAAA,kBAAA,kBAAA,gBAAA,gBAAA,gBAAA,kBAAA,mBAAA,yBAAA,yBAAA,yBAAA,0BAAA,qBAAA,0BAAA,oBAAA,4BAAA,iBAAA,iBAAA,iBAAA,mBAAA,oBAAA,0BAAA,0BAAA,0BAAA,2BAAA,sBAAA,2BAAA,qBAAA,6BAAA,qBAAA,6BAAA,mCAAA,6CAAA,mDAAA,yBAAA,yBAAA,6BAAA,6BAAA,0BAAA,8BAAA,0CAAA,kDAAA,8CAAA,+CAAA,uDAAA,qDAAA,qDAAA,yCAAA,qCAAA,2CAAA,6CAAA,uCAAA,mCAAA,yCAAA,0CAAA,sCAAA,uCAAA,2CAAA,yCAAA,8CAAA,0CAAA,2CAAA,mDAAA,iDAAA,6CAAA,iCAAA,wCAAA,oCAAA,qCAAA,yCAAA,uCAAA,qCAAA,iCAAA,uCAAA,iDAAA,uCAAA,iDAAA,iDAAA,iDAAA,iDAAA,iCAAA,uCAAA,6CAAA,2CAAA,sBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,oBAAA,cAAA,mBAAA,kBAAA,mBAAA,iBAAA,oBAAA,mBAAA,iBAAA,mBAAA,iBAAA,oBAAA,sBAAA,2BAAA,0BAAA,2BAAA,yBAAA,4BAAA,2BAAA,yBAAA,2BAAA,yBAAA,4BAAA,qBAAA,0BAAA,yBAAA,0BAAA,wBAAA,2BAAA,0BAAA,wBAAA,0BAAA,wBAAA,2BAAA,2BAAA,gCAAA,+BAAA,gCAAA,8BAAA,iCAAA,gCAAA,8BAAA,gCAAA,8BAAA,iCAAA,0BAAA,+BAAA,8BAAA,+BAAA,6BAAA,gCAAA,+BAAA,6BAAA,+BAAA,6BAAA,iCAAA,gCAAA,gCAAA,yBAAA,8BAAA,6BAAA,8BAAA,4BAAA,+BAAA,8BAAA,4BAAA,8BAAA,4BAAA,+BAAA,4BAAA,iCAAA,gCAAA,iCAAA,+BAAA,kCAAA,iCAAA,+BAAA,iCAAA,+BAAA,mCAAA,kCAAA,kCAAA,eAAA,oBAAA,mBAAA,oBAAA,kBAAA,qBAAA,oBAAA,kBAAA,oBAAA,kBAAA,uBAAA,4BAAA,2BAAA,4BAAA,0BAAA,6BAAA,4BAAA,0BAAA,4BAAA,0BAAA,sBAAA,2BAAA,0BAAA,2BAAA,yBAAA,4BAAA,2BAAA,yBAAA,2BAAA,yBAAA,4BAAA,iCAAA,gCAAA,iCAAA,+BAAA,kCAAA,iCAAA,+BAAA,iCAAA,+BAAA,2BAAA,gCAAA,+BAAA,gCAAA,8BAAA,iCAAA,gCAAA,8BAAA,gCAAA,8BAAA,0BAAA,+BAAA,8BAAA,+BAAA,6BAAA,gCAAA,+BAAA,6BAAA,+BAAA,6BAAA,6BAAA,kCAAA,iCAAA,kCAAA,gCAAA,mCAAA,kCAAA,gCAAA,kCAAA,gCAAA,aAAA,kBAAA,iBAAA,kBAAA,gBAAA,mBAAA,kBAAA,gBAAA,kBAAA,gBAAA,qBAAA,0BAAA,yBAAA,0BAAA,wBAAA,2BAAA,0BAAA,wBAAA,0BAAA,wBAAA,2BAAA,gCAAA,+BAAA,gCAAA,8BAAA,iCAAA,gCAAA,8BAAA,gCAAA,8BAAA,yDAAA,8DAAA,6DAAA,8DAAA,4DAAA,+DAAA,8DAAA,4DAAA,8DAAA,4DAAA,wDAAA,6DAAA,4DAAA,6DAAA,2DAAA,8DAAA,6DAAA,2DAAA,6DAAA,2DAAA,8HAAA,6DAAA,6HAAA,4DAAA,gDAAA,kDAAA,wBAAA,yBAAA,sBAAA,qDAAA,sDAAA,mDAAA,sDAAA,sDAAA,8CAAA,sDAAA,2CAAA,2CAAA,wCAAA,uEAAA,4EAAA,yEAAA,wEAAA,wEAAA,gEAAA,sEAAA,8BAAA,8BAAA,gCAAA,0BAAA,2BAAA,2BAAA,6BAAA,yBAAA,8BAAA,oBAAA,wBAAA,yBAAA,qBAAA,6BAAA,yBAAA,+BAAA,2CAAA,qDAAA,2DAAA,yCAAA,yCAAA,2CAAA,0BAAA,8BAAA,gCAAA,8BAAA,uDAAA,4DAAA,0DAAA,4DAAA,0DAAA,4DAAA,sDAAA,4DAAA,gEAAA,sDAAA,gDAAA,gDAAA,gDAAA,gDAAA,kDAAA,wDAAA,wDAAA,6CAAA,8EAAA,4EAAA,8EAAA,4EAAA,8EAAA,wEAAA,8EAAA,kFAAA,2EAAA,yEAAA,2EAAA,yEAAA,2EAAA,qEAAA,2EAAA,+EAAA,gEAAA,gEAAA,gEAAA,gEAAA,gEAAA,gEAAA,gEAAA,gEAAA,gEAAA,2BAAA,gGAAA,gGAAA,gGAAA,gGAAA,gGAAA,gGAAA,gGAAA,gGAAA,gGAAA,4DAAA,kFAAA,iFAAA,kFAAA,2KAAA,wQAAA,+KAAA,sKAAA,mLAAA,wKAAA,2KAAA,6KAAA,mNAAA,mNAAA,mNAAA,mNAAA,mNAAA,mNAAA,mNAAA,mNAAA,mNAAA,yIAAA,yFAAA,yFAAA,yFAAA,yFAAA,yFAAA,uEAAA,qEAAA,uEAAA,qEAAA,uEAAA,iEAAA,uEAAA,2EAAA,iEAAA,2DAAA,2DAAA,2DAAA,2DAAA,6DAAA,mEAAA,mEAAA,+EAAA,qFAAA,mFAAA,qFAAA,mFAAA,qFAAA,+EAAA,qFAAA,yFAAA,mFAAA,iFAAA,mFAAA,iFAAA,mFAAA,6EAAA,mFAAA,uFAAA,2EAAA,2EAAA,2EAAA,2EAAA,2EAAA,2EAAA,2EAAA,2EAAA,2EAAA,sCAAA,mFAAA,kFAAA,yFAAA,yEAAA,iDAAA,yDAAA,4DAAA,4DAAA,4DAAA,6BAAA,6BAAA,oEAAA,0EAAA,2EAAA,yEAAA,0EAAA,wEAAA,0EAAA,yEAAA,uEAAA,yEAAA,sEAAA,2EAAA,2FAAA,oCAAA,0CAAA,2CAAA,yCAAA,0CAAA,wCAAA,0CAAA,yCAAA,uCAAA,yCAAA,sCAAA,2CAAA,2DAAA,qEAAA,iFAAA,mFAAA,+EAAA,iFAAA,6EAAA,iFAAA,+EAAA,2EAAA,+EAAA,mJAAA,8EAAA,gHAAA,iEAAA,6EAAA,+EAAA,2EAAA,6EAAA,yEAAA,6EAAA,2EAAA,uEAAA,2EAAA,+IAAA,0EAAA,4GAAA,oEAAA,gFAAA,kFAAA,8EAAA,gFAAA,4EAAA,gFAAA,8EAAA,0EAAA,8EAAA,kJAAA,6EAAA,+GAAA,uEAAA,mFAAA,qFAAA,iFAAA,mFAAA,+EAAA,mFAAA,iFAAA,6EAAA,iFAAA,qJAAA,gFAAA,kHAAA,4BAAA,6BAAA,iBAAA,eAAA,eAAA,eAAA,eX5GA,sBW4GA,oCAAA,gCAAA,2BAAA,2CAAA,uCAAA,qCAAA,4CAAA,qCAAA,6BAAA,yCAAA,2BAAA,yBAAA,uCAAA,2BAAA,mCAAA,qCAAA,yBAAA,uCAAA,iCAAA,mCAAA,yBAAA,yBAAA,iCAAA,uCAAA,iDAAA,uDAAA,6BAAA,6BAAA,iCAAA,iCAAA,8BAAA,kCAAA,8CAAA,sDAAA,kDAAA,mDAAA,2DAAA,yDAAA,yDAAA,6CAAA,yCAAA,+CAAA,iDAAA,2CAAA,uCAAA,6CAAA,8CAAA,0CAAA,2CAAA,+CAAA,6CAAA,kDAAA,8CAAA,+CAAA,uDAAA,qDAAA,iDAAA,qCAAA,4CAAA,wCAAA,yCAAA,6CAAA,2CAAA,yCAAA,qCAAA,2CAAA,qDAAA,2CAAA,qDAAA,qDAAA,qDAAA,qDAAA,qCAAA,2CAAA,iDAAA,+CAAA,0BAAA,qBAAA,qBAAA,qBAAA,qBAAA,qBAAA,qBAAA,wBAAA,kBAAA,uBAAA,sBAAA,uBAAA,qBAAA,wBAAA,uBAAA,qBAAA,uBAAA,qBAAA,wBAAA,0BAAA,+BAAA,8BAAA,+BAAA,6BAAA,gCAAA,+BAAA,6BAAA,+BAAA,6BAAA,gCAAA,yBAAA,8BAAA,6BAAA,8BAAA,4BAAA,+BAAA,8BAAA,4BAAA,8BAAA,4BAAA,+BAAA,+BAAA,oCAAA,mCAAA,oCAAA,kCAAA,qCAAA,oCAAA,kCAAA,oCAAA,kCAAA,qCAAA,8BAAA,mCAAA,kCAAA,mCAAA,iCAAA,oCAAA,mCAAA,iCAAA,mCAAA,iCAAA,qCAAA,oCAAA,oCAAA,6BAAA,kCAAA,iCAAA,kCAAA,gCAAA,mCAAA,kCAAA,gCAAA,kCAAA,gCAAA,mCAAA,gCAAA,qCAAA,oCAAA,qCAAA,mCAAA,sCAAA,qCAAA,mCAAA,qCAAA,mCAAA,uCAAA,sCAAA,sCAAA,mBAAA,wBAAA,uBAAA,wBAAA,sBAAA,yBAAA,wBAAA,sBAAA,wBAAA,sBAAA,2BAAA,gCAAA,+BAAA,gCAAA,8BAAA,iCAAA,gCAAA,8BAAA,gCAAA,8BAAA,0BAAA,+BAAA,8BAAA,+BAAA,6BAAA,gCAAA,+BAAA,6BAAA,+BAAA,6BAAA,gCAAA,qCAAA,oCAAA,qCAAA,mCAAA,sCAAA,qCAAA,mCAAA,qCAAA,mCAAA,+BAAA,oCAAA,mCAAA,oCAAA,kCAAA,qCAAA,oCAAA,kCAAA,oCAAA,kCAAA,8BAAA,mCAAA,kCAAA,mCAAA,iCAAA,oCAAA,mCAAA,iCAAA,mCAAA,iCAAA,iCAAA,sCAAA,qCAAA,sCAAA,oCAAA,uCAAA,sCAAA,oCAAA,sCAAA,oCAAA,iBAAA,sBAAA,qBAAA,sBAAA,oBAAA,uBAAA,sBAAA,oBAAA,sBAAA,oBAAA,yBAAA,8BAAA,6BAAA,8BAAA,4BAAA,+BAAA,8BAAA,4BAAA,8BAAA,4BAAA,+BAAA,oCAAA,mCAAA,oCAAA,kCAAA,qCAAA,oCAAA,kCAAA,oCAAA,kCAAA,6DAAA,kEAAA,iEAAA,kEAAA,gEAAA,mEAAA,kEAAA,gEAAA,kEAAA,gEAAA,4DAAA,iEAAA,gEAAA,iEAAA,+DAAA,kEAAA,iEAAA,+DAAA,iEAAA,+DAAA,kIAAA,iEAAA,iIAAA,gEAAA,iCAAA,6BAAA,oCX5GA,sBW4GA,oCAAA,gCAAA,2BAAA,2CAAA,uCAAA,qCAAA,4CAAA,qCAAA,6BAAA,yCAAA,2BAAA,yBAAA,uCAAA,2BAAA,mCAAA,qCAAA,yBAAA,uCAAA,iCAAA,mCAAA,yBAAA,yBAAA,iCAAA,uCAAA,iDAAA,uDAAA,6BAAA,6BAAA,iCAAA,iCAAA,8BAAA,kCAAA,8CAAA,sDAAA,kDAAA,mDAAA,2DAAA,yDAAA,yDAAA,6CAAA,yCAAA,+CAAA,iDAAA,2CAAA,uCAAA,6CAAA,8CAAA,0CAAA,2CAAA,+CAAA,6CAAA,kDAAA,8CAAA,+CAAA,uDAAA,qDAAA,iDAAA,qCAAA,4CAAA,wCAAA,yCAAA,6CAAA,2CAAA,yCAAA,qCAAA,2CAAA,qDAAA,2CAAA,qDAAA,qDAAA,qDAAA,qDAAA,qCAAA,2CAAA,iDAAA,+CAAA,0BAAA,qBAAA,qBAAA,qBAAA,qBAAA,qBAAA,qBAAA,wBAAA,kBAAA,uBAAA,sBAAA,uBAAA,qBAAA,wBAAA,uBAAA,qBAAA,uBAAA,qBAAA,wBAAA,0BAAA,+BAAA,8BAAA,+BAAA,6BAAA,gCAAA,+BAAA,6BAAA,+BAAA,6BAAA,gCAAA,yBAAA,8BAAA,6BAAA,8BAAA,4BAAA,+BAAA,8BAAA,4BAAA,8BAAA,4BAAA,+BAAA,+BAAA,oCAAA,mCAAA,oCAAA,kCAAA,qCAAA,oCAAA,kCAAA,oCAAA,kCAAA,qCAAA,8BAAA,mCAAA,kCAAA,mCAAA,iCAAA,oCAAA,mCAAA,iCAAA,mCAAA,iCAAA,qCAAA,oCAAA,oCAAA,6BAAA,kCAAA,iCAAA,kCAAA,gCAAA,mCAAA,kCAAA,gCAAA,kCAAA,gCAAA,mCAAA,gCAAA,qCAAA,oCAAA,qCAAA,mCAAA,sCAAA,qCAAA,mCAAA,qCAAA,mCAAA,uCAAA,sCAAA,sCAAA,mBAAA,wBAAA,uBAAA,wBAAA,sBAAA,yBAAA,wBAAA,sBAAA,wBAAA,sBAAA,2BAAA,gCAAA,+BAAA,gCAAA,8BAAA,iCAAA,gCAAA,8BAAA,gCAAA,8BAAA,0BAAA,+BAAA,8BAAA,+BAAA,6BAAA,gCAAA,+BAAA,6BAAA,+BAAA,6BAAA,gCAAA,qCAAA,oCAAA,qCAAA,mCAAA,sCAAA,qCAAA,mCAAA,qCAAA,mCAAA,+BAAA,oCAAA,mCAAA,oCAAA,kCAAA,qCAAA,oCAAA,kCAAA,oCAAA,kCAAA,8BAAA,mCAAA,kCAAA,mCAAA,iCAAA,oCAAA,mCAAA,iCAAA,mCAAA,iCAAA,iCAAA,sCAAA,qCAAA,sCAAA,oCAAA,uCAAA,sCAAA,oCAAA,sCAAA,oCAAA,iBAAA,sBAAA,qBAAA,sBAAA,oBAAA,uBAAA,sBAAA,oBAAA,sBAAA,oBAAA,yBAAA,8BAAA,6BAAA,8BAAA,4BAAA,+BAAA,8BAAA,4BAAA,8BAAA,4BAAA,+BAAA,oCAAA,mCAAA,oCAAA,kCAAA,qCAAA,oCAAA,kCAAA,oCAAA,kCAAA,6DAAA,kEAAA,iEAAA,kEAAA,gEAAA,mEAAA,kEAAA,gEAAA,kEAAA,gEAAA,4DAAA,iEAAA,gEAAA,iEAAA,+DAAA,kEAAA,iEAAA,+DAAA,iEAAA,+DAAA,kIAAA,iEAAA,iIAAA,gEAAA,iCAAA,6BAAA,oCX5GA,uBW4GA,oCAAA,gCAAA,2BAAA,2CAAA,uCAAA,qCAAA,4CAAA,qCAAA,6BAAA,yCAAA,2BAAA,yBAAA,uCAAA,2BAAA,mCAAA,qCAAA,yBAAA,uCAAA,iCAAA,mCAAA,yBAAA,yBAAA,iCAAA,uCAAA,iDAAA,uDAAA,6BAAA,6BAAA,iCAAA,iCAAA,8BAAA,kCAAA,8CAAA,sDAAA,kDAAA,mDAAA,2DAAA,yDAAA,yDAAA,6CAAA,yCAAA,+CAAA,iDAAA,2CAAA,uCAAA,6CAAA,8CAAA,0CAAA,2CAAA,+CAAA,6CAAA,kDAAA,8CAAA,+CAAA,uDAAA,qDAAA,iDAAA,qCAAA,4CAAA,wCAAA,yCAAA,6CAAA,2CAAA,yCAAA,qCAAA,2CAAA,qDAAA,2CAAA,qDAAA,qDAAA,qDAAA,qDAAA,qCAAA,2CAAA,iDAAA,+CAAA,0BAAA,qBAAA,qBAAA,qBAAA,qBAAA,qBAAA,qBAAA,wBAAA,kBAAA,uBAAA,sBAAA,uBAAA,qBAAA,wBAAA,uBAAA,qBAAA,uBAAA,qBAAA,wBAAA,0BAAA,+BAAA,8BAAA,+BAAA,6BAAA,gCAAA,+BAAA,6BAAA,+BAAA,6BAAA,gCAAA,yBAAA,8BAAA,6BAAA,8BAAA,4BAAA,+BAAA,8BAAA,4BAAA,8BAAA,4BAAA,+BAAA,+BAAA,oCAAA,mCAAA,oCAAA,kCAAA,qCAAA,oCAAA,kCAAA,oCAAA,kCAAA,qCAAA,8BAAA,mCAAA,kCAAA,mCAAA,iCAAA,oCAAA,mCAAA,iCAAA,mCAAA,iCAAA,qCAAA,oCAAA,oCAAA,6BAAA,kCAAA,iCAAA,kCAAA,gCAAA,mCAAA,kCAAA,gCAAA,kCAAA,gCAAA,mCAAA,gCAAA,qCAAA,oCAAA,qCAAA,mCAAA,sCAAA,qCAAA,mCAAA,qCAAA,mCAAA,uCAAA,sCAAA,sCAAA,mBAAA,wBAAA,uBAAA,wBAAA,sBAAA,yBAAA,wBAAA,sBAAA,wBAAA,sBAAA,2BAAA,gCAAA,+BAAA,gCAAA,8BAAA,iCAAA,gCAAA,8BAAA,gCAAA,8BAAA,0BAAA,+BAAA,8BAAA,+BAAA,6BAAA,gCAAA,+BAAA,6BAAA,+BAAA,6BAAA,gCAAA,qCAAA,oCAAA,qCAAA,mCAAA,sCAAA,qCAAA,mCAAA,qCAAA,mCAAA,+BAAA,oCAAA,mCAAA,oCAAA,kCAAA,qCAAA,oCAAA,kCAAA,oCAAA,kCAAA,8BAAA,mCAAA,kCAAA,mCAAA,iCAAA,oCAAA,mCAAA,iCAAA,mCAAA,iCAAA,iCAAA,sCAAA,qCAAA,sCAAA,oCAAA,uCAAA,sCAAA,oCAAA,sCAAA,oCAAA,iBAAA,sBAAA,qBAAA,sBAAA,oBAAA,uBAAA,sBAAA,oBAAA,sBAAA,oBAAA,yBAAA,8BAAA,6BAAA,8BAAA,4BAAA,+BAAA,8BAAA,4BAAA,8BAAA,4BAAA,+BAAA,oCAAA,mCAAA,oCAAA,kCAAA,qCAAA,oCAAA,kCAAA,oCAAA,kCAAA,6DAAA,kEAAA,iEAAA,kEAAA,gEAAA,mEAAA,kEAAA,gEAAA,kEAAA,gEAAA,4DAAA,iEAAA,gEAAA,iEAAA,+DAAA,kEAAA,iEAAA,+DAAA,iEAAA,+DAAA,kIAAA,iEAAA,iIAAA,gEAAA,iCAAA,6BAAA,oCX5GA,uBW4GA,oCAAA,gCAAA,2BAAA,2CAAA,uCAAA,qCAAA,4CAAA,qCAAA,6BAAA,yCAAA,2BAAA,yBAAA,uCAAA,2BAAA,mCAAA,qCAAA,yBAAA,uCAAA,iCAAA,mCAAA,yBAAA,yBAAA,iCAAA,uCAAA,iDAAA,uDAAA,6BAAA,6BAAA,iCAAA,iCAAA,8BAAA,kCAAA,8CAAA,sDAAA,kDAAA,mDAAA,2DAAA,yDAAA,yDAAA,6CAAA,yCAAA,+CAAA,iDAAA,2CAAA,uCAAA,6CAAA,8CAAA,0CAAA,2CAAA,+CAAA,6CAAA,kDAAA,8CAAA,+CAAA,uDAAA,qDAAA,iDAAA,qCAAA,4CAAA,wCAAA,yCAAA,6CAAA,2CAAA,yCAAA,qCAAA,2CAAA,qDAAA,2CAAA,qDAAA,qDAAA,qDAAA,qDAAA,qCAAA,2CAAA,iDAAA,+CAAA,0BAAA,qBAAA,qBAAA,qBAAA,qBAAA,qBAAA,qBAAA,wBAAA,kBAAA,uBAAA,sBAAA,uBAAA,qBAAA,wBAAA,uBAAA,qBAAA,uBAAA,qBAAA,wBAAA,0BAAA,+BAAA,8BAAA,+BAAA,6BAAA,gCAAA,+BAAA,6BAAA,+BAAA,6BAAA,gCAAA,yBAAA,8BAAA,6BAAA,8BAAA,4BAAA,+BAAA,8BAAA,4BAAA,8BAAA,4BAAA,+BAAA,+BAAA,oCAAA,mCAAA,oCAAA,kCAAA,qCAAA,oCAAA,kCAAA,oCAAA,kCAAA,qCAAA,8BAAA,mCAAA,kCAAA,mCAAA,iCAAA,oCAAA,mCAAA,iCAAA,mCAAA,iCAAA,qCAAA,oCAAA,oCAAA,6BAAA,kCAAA,iCAAA,kCAAA,gCAAA,mCAAA,kCAAA,gCAAA,kCAAA,gCAAA,mCAAA,gCAAA,qCAAA,oCAAA,qCAAA,mCAAA,sCAAA,qCAAA,mCAAA,qCAAA,mCAAA,uCAAA,sCAAA,sCAAA,mBAAA,wBAAA,uBAAA,wBAAA,sBAAA,yBAAA,wBAAA,sBAAA,wBAAA,sBAAA,2BAAA,gCAAA,+BAAA,gCAAA,8BAAA,iCAAA,gCAAA,8BAAA,gCAAA,8BAAA,0BAAA,+BAAA,8BAAA,+BAAA,6BAAA,gCAAA,+BAAA,6BAAA,+BAAA,6BAAA,gCAAA,qCAAA,oCAAA,qCAAA,mCAAA,sCAAA,qCAAA,mCAAA,qCAAA,mCAAA,+BAAA,oCAAA,mCAAA,oCAAA,kCAAA,qCAAA,oCAAA,kCAAA,oCAAA,kCAAA,8BAAA,mCAAA,kCAAA,mCAAA,iCAAA,oCAAA,mCAAA,iCAAA,mCAAA,iCAAA,iCAAA,sCAAA,qCAAA,sCAAA,oCAAA,uCAAA,sCAAA,oCAAA,sCAAA,oCAAA,iBAAA,sBAAA,qBAAA,sBAAA,oBAAA,uBAAA,sBAAA,oBAAA,sBAAA,oBAAA,yBAAA,8BAAA,6BAAA,8BAAA,4BAAA,+BAAA,8BAAA,4BAAA,8BAAA,4BAAA,+BAAA,oCAAA,mCAAA,oCAAA,kCAAA,qCAAA,oCAAA,kCAAA,oCAAA,kCAAA,6DAAA,kEAAA,iEAAA,kEAAA,gEAAA,mEAAA,kEAAA,gEAAA,kEAAA,gEAAA,4DAAA,iEAAA,gEAAA,iEAAA,+DAAA,kEAAA,iEAAA,+DAAA,iEAAA,+DAAA,kIAAA,iEAAA,iIAAA,gEAAA,iCAAA,6BAAA,oCX5GA,uBW4GA,wCAAA,oCAAA,+BAAA,+CAAA,2CAAA,yCAAA,gDAAA,yCAAA,iCAAA,6CAAA,+BAAA,6BAAA,2CAAA,+BAAA,uCAAA,yCAAA,6BAAA,2CAAA,qCAAA,uCAAA,6BAAA,6BAAA,qCAAA,2CAAA,qDAAA,2DAAA,iCAAA,iCAAA,qCAAA,qCAAA,kCAAA,sCAAA,kDAAA,0DAAA,sDAAA,uDAAA,+DAAA,6DAAA,6DAAA,iDAAA,6CAAA,mDAAA,qDAAA,+CAAA,2CAAA,iDAAA,kDAAA,8CAAA,+CAAA,mDAAA,iDAAA,sDAAA,kDAAA,mDAAA,2DAAA,yDAAA,qDAAA,yCAAA,gDAAA,4CAAA,6CAAA,iDAAA,+CAAA,6CAAA,yCAAA,+CAAA,yDAAA,+CAAA,yDAAA,yDAAA,yDAAA,yDAAA,yCAAA,+CAAA,qDAAA,mDAAA,8BAAA,yBAAA,yBAAA,yBAAA,yBAAA,yBAAA,yBAAA,4BAAA,sBAAA,2BAAA,0BAAA,2BAAA,yBAAA,4BAAA,2BAAA,yBAAA,2BAAA,yBAAA,4BAAA,8BAAA,mCAAA,kCAAA,mCAAA,iCAAA,oCAAA,mCAAA,iCAAA,mCAAA,iCAAA,oCAAA,6BAAA,kCAAA,iCAAA,kCAAA,gCAAA,mCAAA,kCAAA,gCAAA,kCAAA,gCAAA,mCAAA,mCAAA,wCAAA,uCAAA,wCAAA,sCAAA,yCAAA,wCAAA,sCAAA,wCAAA,sCAAA,yCAAA,kCAAA,uCAAA,sCAAA,uCAAA,qCAAA,wCAAA,uCAAA,qCAAA,uCAAA,qCAAA,yCAAA,wCAAA,wCAAA,iCAAA,sCAAA,qCAAA,sCAAA,oCAAA,uCAAA,sCAAA,oCAAA,sCAAA,oCAAA,uCAAA,oCAAA,yCAAA,wCAAA,yCAAA,uCAAA,0CAAA,yCAAA,uCAAA,yCAAA,uCAAA,2CAAA,0CAAA,0CAAA,uBAAA,4BAAA,2BAAA,4BAAA,0BAAA,6BAAA,4BAAA,0BAAA,4BAAA,0BAAA,+BAAA,oCAAA,mCAAA,oCAAA,kCAAA,qCAAA,oCAAA,kCAAA,oCAAA,kCAAA,8BAAA,mCAAA,kCAAA,mCAAA,iCAAA,oCAAA,mCAAA,iCAAA,mCAAA,iCAAA,oCAAA,yCAAA,wCAAA,yCAAA,uCAAA,0CAAA,yCAAA,uCAAA,yCAAA,uCAAA,mCAAA,wCAAA,uCAAA,wCAAA,sCAAA,yCAAA,wCAAA,sCAAA,wCAAA,sCAAA,kCAAA,uCAAA,sCAAA,uCAAA,qCAAA,wCAAA,uCAAA,qCAAA,uCAAA,qCAAA,qCAAA,0CAAA,yCAAA,0CAAA,wCAAA,2CAAA,0CAAA,wCAAA,0CAAA,wCAAA,qBAAA,0BAAA,yBAAA,0BAAA,wBAAA,2BAAA,0BAAA,wBAAA,0BAAA,wBAAA,6BAAA,kCAAA,iCAAA,kCAAA,gCAAA,mCAAA,kCAAA,gCAAA,kCAAA,gCAAA,mCAAA,wCAAA,uCAAA,wCAAA,sCAAA,yCAAA,wCAAA,sCAAA,wCAAA,sCAAA,iEAAA,sEAAA,qEAAA,sEAAA,oEAAA,uEAAA,sEAAA,oEAAA,sEAAA,oEAAA,gEAAA,qEAAA,oEAAA,qEAAA,mEAAA,sEAAA,qEAAA,mEAAA,qEAAA,mEAAA,sIAAA,qEAAA,qIAAA,oEAAA,qCAAA,iCAAA,yCjBjEJ,24UASA,uCAIA","sources":["bootstrap-utilities.css","../../scss/_banner.scss","../../scss/_colors.scss","../../scss/mixins/_tokens.scss","../../scss/_root.scss","../../scss/helpers/_focus-ring.scss","../../scss/helpers/_icon-link.scss","../../scss/_config.scss","../../scss/mixins/_transition.scss","../../scss/helpers/_position.scss","../../scss/layout/_breakpoints.scss","../../scss/helpers/_stacks.scss","../../scss/helpers/_theme-colors.scss","../../scss/_theme.scss","../../scss/helpers/_visually-hidden.scss","../../scss/mixins/_visually-hidden.scss","../../scss/helpers/_stretched-link.scss","../../scss/helpers/_text-truncation.scss","../../scss/mixins/_text-truncate.scss","../../scss/helpers/_vr.scss","../../scss/utilities/_api.scss","../../scss/mixins/_utilities.scss"],"sourcesContent":["/*!\n * Bootstrap Utilities v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.24 240deg));\n --blue-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.24 240deg));\n --blue-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.24 240deg));\n --blue-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.24 240deg));\n --blue-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.24 240deg));\n --blue-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.24 240deg));\n --blue-500: oklch(60% 0.24 240deg);\n --blue-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.24 240deg));\n --blue-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.24 240deg));\n --blue-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.24 240deg));\n --blue-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.24 240deg));\n --blue-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.24 240deg));\n --blue-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.24 240deg));\n --indigo-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.26 288deg));\n --indigo-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.26 288deg));\n --indigo-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.26 288deg));\n --indigo-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.26 288deg));\n --indigo-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.26 288deg));\n --indigo-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.26 288deg));\n --indigo-500: oklch(56% 0.26 288deg);\n --indigo-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.26 288deg));\n --indigo-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.26 288deg));\n --indigo-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.26 288deg));\n --indigo-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.26 288deg));\n --indigo-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.26 288deg));\n --indigo-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.26 288deg));\n --violet-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 300deg));\n --violet-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 300deg));\n --violet-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 300deg));\n --violet-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 300deg));\n --violet-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 300deg));\n --violet-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 300deg));\n --violet-500: oklch(56% 0.24 300deg);\n --violet-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 300deg));\n --violet-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 300deg));\n --violet-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 300deg));\n --violet-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 300deg));\n --violet-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 300deg));\n --violet-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 300deg));\n --purple-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 320deg));\n --purple-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 320deg));\n --purple-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 320deg));\n --purple-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 320deg));\n --purple-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 320deg));\n --purple-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 320deg));\n --purple-500: oklch(56% 0.24 320deg);\n --purple-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 320deg));\n --purple-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 320deg));\n --purple-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 320deg));\n --purple-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 320deg));\n --purple-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 320deg));\n --purple-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 320deg));\n --pink-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 4deg));\n --pink-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 4deg));\n --pink-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 4deg));\n --pink-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 4deg));\n --pink-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 4deg));\n --pink-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 4deg));\n --pink-500: oklch(60% 0.22 4deg);\n --pink-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 4deg));\n --pink-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 4deg));\n --pink-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 4deg));\n --pink-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 4deg));\n --pink-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 4deg));\n --pink-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 4deg));\n --red-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 20deg));\n --red-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 20deg));\n --red-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 20deg));\n --red-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 20deg));\n --red-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 20deg));\n --red-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 20deg));\n --red-500: oklch(60% 0.22 20deg);\n --red-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 20deg));\n --red-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 20deg));\n --red-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 20deg));\n --red-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 20deg));\n --red-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 20deg));\n --red-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 20deg));\n --orange-025: color-mix(in lab, var(--white) 94%, oklch(70% 0.22 52deg));\n --orange-050: color-mix(in lab, var(--white) 90%, oklch(70% 0.22 52deg));\n --orange-100: color-mix(in lab, var(--white) 80%, oklch(70% 0.22 52deg));\n --orange-200: color-mix(in lab, var(--white) 60%, oklch(70% 0.22 52deg));\n --orange-300: color-mix(in lab, var(--white) 40%, oklch(70% 0.22 52deg));\n --orange-400: color-mix(in lab, var(--white) 20%, oklch(70% 0.22 52deg));\n --orange-500: oklch(70% 0.22 52deg);\n --orange-600: color-mix(in lab, var(--black) 16%, oklch(70% 0.22 52deg));\n --orange-700: color-mix(in lab, var(--black) 32%, oklch(70% 0.22 52deg));\n --orange-800: color-mix(in lab, var(--black) 48%, oklch(70% 0.22 52deg));\n --orange-900: color-mix(in lab, var(--black) 64%, oklch(70% 0.22 52deg));\n --orange-950: color-mix(in lab, var(--black) 76%, oklch(70% 0.22 52deg));\n --orange-975: color-mix(in lab, var(--black) 88%, oklch(70% 0.22 52deg));\n --amber-025: color-mix(in lab, var(--white) 94%, oklch(79% 0.2 78deg));\n --amber-050: color-mix(in lab, var(--white) 90%, oklch(79% 0.2 78deg));\n --amber-100: color-mix(in lab, var(--white) 80%, oklch(79% 0.2 78deg));\n --amber-200: color-mix(in lab, var(--white) 60%, oklch(79% 0.2 78deg));\n --amber-300: color-mix(in lab, var(--white) 40%, oklch(79% 0.2 78deg));\n --amber-400: color-mix(in lab, var(--white) 20%, oklch(79% 0.2 78deg));\n --amber-500: oklch(79% 0.2 78deg);\n --amber-600: color-mix(in lab, var(--black) 16%, oklch(79% 0.2 78deg));\n --amber-700: color-mix(in lab, var(--black) 32%, oklch(79% 0.2 78deg));\n --amber-800: color-mix(in lab, var(--black) 48%, oklch(79% 0.2 78deg));\n --amber-900: color-mix(in lab, var(--black) 64%, oklch(79% 0.2 78deg));\n --amber-950: color-mix(in lab, var(--black) 76%, oklch(79% 0.2 78deg));\n --amber-975: color-mix(in lab, var(--black) 88%, oklch(79% 0.2 78deg));\n --yellow-025: color-mix(in lab, var(--white) 94%, oklch(88% 0.24 88deg));\n --yellow-050: color-mix(in lab, var(--white) 90%, oklch(88% 0.24 88deg));\n --yellow-100: color-mix(in lab, var(--white) 80%, oklch(88% 0.24 88deg));\n --yellow-200: color-mix(in lab, var(--white) 60%, oklch(88% 0.24 88deg));\n --yellow-300: color-mix(in lab, var(--white) 40%, oklch(88% 0.24 88deg));\n --yellow-400: color-mix(in lab, var(--white) 20%, oklch(88% 0.24 88deg));\n --yellow-500: oklch(88% 0.24 88deg);\n --yellow-600: color-mix(in lab, var(--black) 16%, oklch(88% 0.24 88deg));\n --yellow-700: color-mix(in lab, var(--black) 32%, oklch(88% 0.24 88deg));\n --yellow-800: color-mix(in lab, var(--black) 48%, oklch(88% 0.24 88deg));\n --yellow-900: color-mix(in lab, var(--black) 64%, oklch(88% 0.24 88deg));\n --yellow-950: color-mix(in lab, var(--black) 76%, oklch(88% 0.24 88deg));\n --yellow-975: color-mix(in lab, var(--black) 88%, oklch(88% 0.24 88deg));\n --lime-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.24 135deg));\n --lime-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.24 135deg));\n --lime-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.24 135deg));\n --lime-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.24 135deg));\n --lime-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.24 135deg));\n --lime-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.24 135deg));\n --lime-500: oklch(65% 0.24 135deg);\n --lime-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.24 135deg));\n --lime-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.24 135deg));\n --lime-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.24 135deg));\n --lime-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.24 135deg));\n --lime-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.24 135deg));\n --lime-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.24 135deg));\n --green-025: color-mix(in lab, var(--white) 94%, oklch(64% 0.22 160deg));\n --green-050: color-mix(in lab, var(--white) 90%, oklch(64% 0.22 160deg));\n --green-100: color-mix(in lab, var(--white) 80%, oklch(64% 0.22 160deg));\n --green-200: color-mix(in lab, var(--white) 60%, oklch(64% 0.22 160deg));\n --green-300: color-mix(in lab, var(--white) 40%, oklch(64% 0.22 160deg));\n --green-400: color-mix(in lab, var(--white) 20%, oklch(64% 0.22 160deg));\n --green-500: oklch(64% 0.22 160deg);\n --green-600: color-mix(in lab, var(--black) 16%, oklch(64% 0.22 160deg));\n --green-700: color-mix(in lab, var(--black) 32%, oklch(64% 0.22 160deg));\n --green-800: color-mix(in lab, var(--black) 48%, oklch(64% 0.22 160deg));\n --green-900: color-mix(in lab, var(--black) 64%, oklch(64% 0.22 160deg));\n --green-950: color-mix(in lab, var(--black) 76%, oklch(64% 0.22 160deg));\n --green-975: color-mix(in lab, var(--black) 88%, oklch(64% 0.22 160deg));\n --teal-025: color-mix(in lab, var(--white) 94%, oklch(68% 0.22 190deg));\n --teal-050: color-mix(in lab, var(--white) 90%, oklch(68% 0.22 190deg));\n --teal-100: color-mix(in lab, var(--white) 80%, oklch(68% 0.22 190deg));\n --teal-200: color-mix(in lab, var(--white) 60%, oklch(68% 0.22 190deg));\n --teal-300: color-mix(in lab, var(--white) 40%, oklch(68% 0.22 190deg));\n --teal-400: color-mix(in lab, var(--white) 20%, oklch(68% 0.22 190deg));\n --teal-500: oklch(68% 0.22 190deg);\n --teal-600: color-mix(in lab, var(--black) 16%, oklch(68% 0.22 190deg));\n --teal-700: color-mix(in lab, var(--black) 32%, oklch(68% 0.22 190deg));\n --teal-800: color-mix(in lab, var(--black) 48%, oklch(68% 0.22 190deg));\n --teal-900: color-mix(in lab, var(--black) 64%, oklch(68% 0.22 190deg));\n --teal-950: color-mix(in lab, var(--black) 76%, oklch(68% 0.22 190deg));\n --teal-975: color-mix(in lab, var(--black) 88%, oklch(68% 0.22 190deg));\n --cyan-025: color-mix(in lab, var(--white) 94%, oklch(69% 0.22 220deg));\n --cyan-050: color-mix(in lab, var(--white) 90%, oklch(69% 0.22 220deg));\n --cyan-100: color-mix(in lab, var(--white) 80%, oklch(69% 0.22 220deg));\n --cyan-200: color-mix(in lab, var(--white) 60%, oklch(69% 0.22 220deg));\n --cyan-300: color-mix(in lab, var(--white) 40%, oklch(69% 0.22 220deg));\n --cyan-400: color-mix(in lab, var(--white) 20%, oklch(69% 0.22 220deg));\n --cyan-500: oklch(69% 0.22 220deg);\n --cyan-600: color-mix(in lab, var(--black) 16%, oklch(69% 0.22 220deg));\n --cyan-700: color-mix(in lab, var(--black) 32%, oklch(69% 0.22 220deg));\n --cyan-800: color-mix(in lab, var(--black) 48%, oklch(69% 0.22 220deg));\n --cyan-900: color-mix(in lab, var(--black) 64%, oklch(69% 0.22 220deg));\n --cyan-950: color-mix(in lab, var(--black) 76%, oklch(69% 0.22 220deg));\n --cyan-975: color-mix(in lab, var(--black) 88%, oklch(69% 0.22 220deg));\n --brown-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.12 54deg));\n --brown-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.12 54deg));\n --brown-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.12 54deg));\n --brown-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.12 54deg));\n --brown-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.12 54deg));\n --brown-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.12 54deg));\n --brown-500: oklch(60% 0.12 54deg);\n --brown-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.12 54deg));\n --brown-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.12 54deg));\n --brown-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.12 54deg));\n --brown-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.12 54deg));\n --brown-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.12 54deg));\n --brown-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.12 54deg));\n --gray-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.02 245deg));\n --gray-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.02 245deg));\n --gray-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.02 245deg));\n --gray-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.02 245deg));\n --gray-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.02 245deg));\n --gray-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.02 245deg));\n --gray-500: oklch(60% 0.02 245deg);\n --gray-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.02 245deg));\n --gray-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.02 245deg));\n --gray-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.02 245deg));\n --gray-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.02 245deg));\n --gray-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.02 245deg));\n --gray-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.02 245deg));\n --pewter-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.01 290deg));\n --pewter-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.01 290deg));\n --pewter-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.01 290deg));\n --pewter-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.01 290deg));\n --pewter-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.01 290deg));\n --pewter-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.01 290deg));\n --pewter-500: oklch(65% 0.01 290deg);\n --pewter-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.01 290deg));\n --pewter-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.01 290deg));\n --pewter-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.01 290deg));\n --pewter-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.01 290deg));\n --pewter-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.01 290deg));\n --pewter-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.01 290deg));\n}\n\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n:root {\n --black: #000;\n --white: #fff;\n --gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent));\n --font-weight-lighter: lighter;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-bolder: bolder;\n --body-font-family: system-ui;\n --body-font-size: var(--font-size-base);\n --body-font-weight: 400;\n --body-line-height: 1.5;\n --heading-color: inherit;\n --hr-border-color: var(--border-color);\n --link-color: light-dark(var(--primary-base), var(--primary-fg));\n --link-decoration: underline;\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000);\n --font-mono: ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Monaco, 'Cascadia Mono', Consolas, 'Liberation Mono', monospace;;\n --code-font-size: 95%;\n --code-color: var(--fg-2);\n --border-width: 1px;\n --border-style: solid;\n --border-color: light-dark(var(--gray-200), var(--gray-700));\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent);\n --box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n --box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n --box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);\n --box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n --spacer: 1rem;\n --focus-ring-width: 3px;\n --focus-ring-offset: 1px;\n --focus-ring-color: var(--primary-focus-ring);\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color);\n --control-checked-bg: var(--primary-base);\n --control-checked-border-color: var(--control-checked-bg);\n --control-active-bg: var(--primary-base);\n --control-active-border-color: var(--control-active-bg);\n --control-disabled-bg: var(--bg-3);\n --control-disabled-opacity: 0.65;\n --btn-input-fg: var(--fg-body);\n --btn-input-bg: var(--bg-body);\n --btn-input-min-height: 2.375rem;\n --btn-input-padding-y: 0.375rem;\n --btn-input-padding-x: 0.75rem;\n --btn-input-font-size: var(--font-size-base);\n --btn-input-line-height: var(--line-height-base);\n --btn-input-border-radius: var(--radius-5);\n --btn-input-xs-min-height: 1.5rem;\n --btn-input-xs-padding-y: 0.125rem;\n --btn-input-xs-padding-x: 0.5rem;\n --btn-input-xs-font-size: var(--font-size-xs);\n --btn-input-xs-line-height: 1.125;\n --btn-input-xs-border-radius: var(--radius-5);\n --btn-input-sm-min-height: 2rem;\n --btn-input-sm-padding-y: 0.25rem;\n --btn-input-sm-padding-x: 0.625rem;\n --btn-input-sm-font-size: var(--font-size-sm);\n --btn-input-sm-line-height: var(--line-height-sm);\n --btn-input-sm-border-radius: var(--radius-5);\n --btn-input-lg-min-height: 2.75rem;\n --btn-input-lg-padding-y: 0.5rem;\n --btn-input-lg-padding-x: 1rem;\n --btn-input-lg-font-size: var(--font-size-md);\n --btn-input-lg-line-height: var(--line-height-md);\n --btn-input-lg-border-radius: var(--radius-7);\n --font-size-xs: 0.75rem;\n --line-height-xs: 1.25;\n --font-size-sm: 0.875rem;\n --line-height-sm: 1.5;\n --font-size-md: 1rem;\n --line-height-md: 1.5;\n --font-size-lg: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n --line-height-lg: 1.5;\n --font-size-xl: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n --line-height-xl: 1.4285714286;\n --font-size-2xl: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n --line-height-2xl: 1.3333333333;\n --font-size-3xl: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n --line-height-3xl: 1.2;\n --font-size-4xl: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n --line-height-4xl: 1.1;\n --font-size-5xl: clamp(3rem, 2rem + 5vw, 4rem);\n --line-height-5xl: 1.1;\n --font-size-6xl: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n --line-height-6xl: 1;\n --primary-base: var(--blue-500);\n --primary-fg: light-dark(var(--blue-600), var(--blue-400));\n --primary-fg-emphasis: light-dark(var(--blue-800), var(--blue-200));\n --primary-bg: var(--blue-500);\n --primary-bg-subtle: light-dark(var(--blue-100), var(--blue-900));\n --primary-bg-muted: light-dark(var(--blue-200), var(--blue-800));\n --primary-border: light-dark(var(--blue-300), var(--blue-600));\n --primary-focus-ring: light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body)));\n --primary-contrast: var(--white);\n --accent-base: var(--indigo-500);\n --accent-fg: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n --accent-fg-emphasis: light-dark(var(--indigo-800), var(--indigo-300));\n --accent-bg: var(--indigo-500);\n --accent-bg-subtle: light-dark(var(--indigo-100), var(--indigo-900));\n --accent-bg-muted: light-dark(var(--indigo-200), var(--indigo-800));\n --accent-border: light-dark(var(--indigo-300), var(--indigo-600));\n --accent-focus-ring: light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body)));\n --accent-contrast: var(--white);\n --success-base: var(--green-500);\n --success-fg: light-dark(var(--green-600), var(--green-400));\n --success-fg-emphasis: light-dark(var(--green-800), var(--green-300));\n --success-bg: var(--green-500);\n --success-bg-subtle: light-dark(var(--green-100), var(--green-900));\n --success-bg-muted: light-dark(var(--green-200), var(--green-800));\n --success-border: light-dark(var(--green-300), var(--green-600));\n --success-focus-ring: light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body)));\n --success-contrast: var(--white);\n --danger-base: var(--red-500);\n --danger-fg: light-dark(var(--red-600), var(--red-400));\n --danger-fg-emphasis: light-dark(var(--red-800), var(--red-300));\n --danger-bg: var(--red-500);\n --danger-bg-subtle: light-dark(var(--red-100), var(--red-900));\n --danger-bg-muted: light-dark(var(--red-200), var(--red-800));\n --danger-border: light-dark(var(--red-300), var(--red-600));\n --danger-focus-ring: light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body)));\n --danger-contrast: var(--white);\n --warning-base: var(--yellow-500);\n --warning-fg: light-dark(var(--yellow-700), var(--yellow-400));\n --warning-fg-emphasis: light-dark(var(--yellow-800), var(--yellow-300));\n --warning-bg: var(--yellow-500);\n --warning-bg-subtle: light-dark(var(--yellow-100), var(--yellow-900));\n --warning-bg-muted: light-dark(var(--yellow-200), var(--yellow-800));\n --warning-border: light-dark(var(--yellow-300), var(--yellow-600));\n --warning-focus-ring: light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body)));\n --warning-contrast: var(--gray-900);\n --info-base: var(--cyan-500);\n --info-fg: light-dark(var(--cyan-600), var(--cyan-400));\n --info-fg-emphasis: light-dark(var(--cyan-800), var(--cyan-300));\n --info-bg: var(--cyan-500);\n --info-bg-subtle: light-dark(var(--cyan-100), var(--cyan-900));\n --info-bg-muted: light-dark(var(--cyan-200), var(--cyan-800));\n --info-border: light-dark(var(--cyan-300), var(--cyan-600));\n --info-focus-ring: light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body)));\n --info-contrast: var(--gray-900);\n --inverse-base: var(--gray-900);\n --inverse-fg: light-dark(var(--gray-900), var(--gray-200));\n --inverse-fg-emphasis: light-dark(var(--gray-975), var(--white));\n --inverse-bg: light-dark(var(--gray-900), var(--gray-025));\n --inverse-bg-subtle: light-dark(var(--gray-100), var(--gray-900));\n --inverse-bg-muted: light-dark(var(--gray-200), var(--gray-300));\n --inverse-border: light-dark(var(--gray-400), var(--gray-100));\n --inverse-focus-ring: color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body));\n --inverse-contrast: light-dark(var(--white), var(--gray-900));\n --secondary-base: var(--gray-200);\n --secondary-fg: light-dark(var(--gray-600), var(--gray-400));\n --secondary-fg-emphasis: light-dark(var(--gray-800), var(--gray-200));\n --secondary-bg: light-dark(var(--gray-100), var(--gray-600));\n --secondary-bg-subtle: light-dark(var(--gray-050), var(--gray-800));\n --secondary-bg-muted: light-dark(var(--gray-100), var(--gray-700));\n --secondary-border: light-dark(var(--gray-300), var(--gray-600));\n --secondary-focus-ring: color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body));\n --secondary-contrast: light-dark(var(--gray-900), var(--white));\n --bg-body: light-dark(var(--white), var(--gray-975));\n --bg-1: light-dark(var(--gray-025), var(--gray-950));\n --bg-2: light-dark(var(--gray-050), var(--gray-900));\n --bg-3: light-dark(var(--gray-100), var(--gray-800));\n --bg-4: light-dark(var(--gray-200), var(--gray-700));\n --bg-fg: var(--fg-body);\n --bg-white: var(--white);\n --bg-black: var(--black);\n --bg-transparent: transparent;\n --bg-inherit: inherit;\n --fg-body: light-dark(var(--gray-900), var(--gray-050));\n --fg-1: light-dark(var(--gray-800), var(--gray-200));\n --fg-2: light-dark(var(--gray-700), var(--gray-300));\n --fg-3: light-dark(var(--gray-600), var(--gray-500));\n --fg-4: light-dark(var(--gray-500), var(--gray-600));\n --fg-bg: var(--bg-body);\n --fg-white: var(--white);\n --fg-black: var(--black);\n --fg-inherit: inherit;\n --border-bg: var(--bg-body);\n --border-body: light-dark(var(--gray-300), var(--gray-800));\n --border-muted: light-dark(var(--gray-200), var(--gray-800));\n --border-subtle: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-900));\n --border-emphasized: light-dark(var(--gray-400), var(--gray-600));\n --border-white: var(--white);\n --border-black: var(--black);\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 1024px;\n --breakpoint-xl: 1280px;\n --breakpoint-2xl: 1536px;\n --spacer-0: 0;\n --spacer-1: 0.25rem;\n --spacer-2: 0.5rem;\n --spacer-3: 0.75rem;\n --spacer-4: 1rem;\n --spacer-5: 1.25rem;\n --spacer-6: 1.5rem;\n --spacer-7: 2rem;\n --spacer-8: 2.5rem;\n --spacer-9: 3rem;\n --radius-0: 0;\n --radius-1: 0.125rem;\n --radius-2: 0.1875rem;\n --radius-3: 0.25rem;\n --radius-4: 0.375rem;\n --radius-5: 0.5rem;\n --radius-6: 0.625rem;\n --radius-7: 0.75rem;\n --radius-8: 1rem;\n --radius-9: 1.5rem;\n --radius-pill: 50rem;\n color-scheme: light dark;\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=dark] {\n color-scheme: dark;\n}\n\n[data-bs-theme=light] {\n color-scheme: light;\n}\n\n@layer helpers {\n .focus-ring:focus-visible {\n outline: var(--focus-ring-width) solid var(--theme-focus-ring, var(--focus-ring-color));\n }\n}\n@layer helpers {\n .icon-link {\n display: inline-flex;\n gap: 0.375rem;\n align-items: center;\n text-decoration-color: rgba(var(--link-color-rgb), var(--link-opacity, 0.5));\n text-underline-offset: 0.25em;\n backface-visibility: hidden;\n }\n .icon-link > .bi {\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n fill: currentcolor;\n transition: 0.2s ease-in-out transform;\n }\n @media (prefers-reduced-motion: reduce) {\n .icon-link > .bi {\n transition: none;\n }\n }\n .icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi {\n transform: var(--icon-link-transform, translate3d(0.25em, 0, 0));\n }\n}\n@layer helpers {\n .fixed-top {\n position: fixed;\n inset: 0 0 auto;\n z-index: 1030;\n }\n .fixed-bottom {\n position: fixed;\n inset: auto 0 0;\n z-index: 1030;\n }\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n @media (width >= 576px) {\n .sm\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sm\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 768px) {\n .md\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .md\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1024px) {\n .lg\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .lg\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1280px) {\n .xl\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .xl\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .\\32 xl\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n}\n@layer helpers {\n .stack-container {\n container-type: inline-size;\n }\n [class*=hstack],\n [class*=vstack] {\n display: flex;\n flex: var(--stack-flex, 1 1 auto);\n flex-direction: var(--stack-direction, row);\n align-items: var(--stack-align-items, center);\n align-self: var(--stack-align-self, stretch);\n }\n .vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n .hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n @container (width >= 576px) {\n .sm\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 576px) {\n .sm\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 768px) {\n .md\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 768px) {\n .md\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1024px) {\n .lg\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1024px) {\n .lg\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1280px) {\n .xl\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1280px) {\n .xl\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n}\n@layer helpers {\n .theme-primary {\n --theme-base: var(--primary-base);\n --theme-fg: var(--primary-fg);\n --theme-fg-emphasis: var(--primary-fg-emphasis);\n --theme-bg: var(--primary-bg);\n --theme-bg-subtle: var(--primary-bg-subtle);\n --theme-bg-muted: var(--primary-bg-muted);\n --theme-border: var(--primary-border);\n --theme-focus-ring: var(--primary-focus-ring);\n --theme-contrast: var(--primary-contrast);\n }\n .theme-accent {\n --theme-base: var(--accent-base);\n --theme-fg: var(--accent-fg);\n --theme-fg-emphasis: var(--accent-fg-emphasis);\n --theme-bg: var(--accent-bg);\n --theme-bg-subtle: var(--accent-bg-subtle);\n --theme-bg-muted: var(--accent-bg-muted);\n --theme-border: var(--accent-border);\n --theme-focus-ring: var(--accent-focus-ring);\n --theme-contrast: var(--accent-contrast);\n }\n .theme-success {\n --theme-base: var(--success-base);\n --theme-fg: var(--success-fg);\n --theme-fg-emphasis: var(--success-fg-emphasis);\n --theme-bg: var(--success-bg);\n --theme-bg-subtle: var(--success-bg-subtle);\n --theme-bg-muted: var(--success-bg-muted);\n --theme-border: var(--success-border);\n --theme-focus-ring: var(--success-focus-ring);\n --theme-contrast: var(--success-contrast);\n }\n .theme-danger {\n --theme-base: var(--danger-base);\n --theme-fg: var(--danger-fg);\n --theme-fg-emphasis: var(--danger-fg-emphasis);\n --theme-bg: var(--danger-bg);\n --theme-bg-subtle: var(--danger-bg-subtle);\n --theme-bg-muted: var(--danger-bg-muted);\n --theme-border: var(--danger-border);\n --theme-focus-ring: var(--danger-focus-ring);\n --theme-contrast: var(--danger-contrast);\n }\n .theme-warning {\n --theme-base: var(--warning-base);\n --theme-fg: var(--warning-fg);\n --theme-fg-emphasis: var(--warning-fg-emphasis);\n --theme-bg: var(--warning-bg);\n --theme-bg-subtle: var(--warning-bg-subtle);\n --theme-bg-muted: var(--warning-bg-muted);\n --theme-border: var(--warning-border);\n --theme-focus-ring: var(--warning-focus-ring);\n --theme-contrast: var(--warning-contrast);\n }\n .theme-info {\n --theme-base: var(--info-base);\n --theme-fg: var(--info-fg);\n --theme-fg-emphasis: var(--info-fg-emphasis);\n --theme-bg: var(--info-bg);\n --theme-bg-subtle: var(--info-bg-subtle);\n --theme-bg-muted: var(--info-bg-muted);\n --theme-border: var(--info-border);\n --theme-focus-ring: var(--info-focus-ring);\n --theme-contrast: var(--info-contrast);\n }\n .theme-inverse {\n --theme-base: var(--inverse-base);\n --theme-fg: var(--inverse-fg);\n --theme-fg-emphasis: var(--inverse-fg-emphasis);\n --theme-bg: var(--inverse-bg);\n --theme-bg-subtle: var(--inverse-bg-subtle);\n --theme-bg-muted: var(--inverse-bg-muted);\n --theme-border: var(--inverse-border);\n --theme-focus-ring: var(--inverse-focus-ring);\n --theme-contrast: var(--inverse-contrast);\n }\n .theme-secondary {\n --theme-base: var(--secondary-base);\n --theme-fg: var(--secondary-fg);\n --theme-fg-emphasis: var(--secondary-fg-emphasis);\n --theme-bg: var(--secondary-bg);\n --theme-bg-subtle: var(--secondary-bg-subtle);\n --theme-bg-muted: var(--secondary-bg-muted);\n --theme-border: var(--secondary-border);\n --theme-focus-ring: var(--secondary-focus-ring);\n --theme-contrast: var(--secondary-contrast);\n }\n}\n@layer helpers {\n .visually-hidden,\n .visually-hidden-focusable:not(:focus, :focus-within) {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n .visually-hidden:not(caption),\n .visually-hidden-focusable:not(:focus, :focus-within):not(caption) {\n position: absolute !important;\n }\n .visually-hidden *,\n .visually-hidden-focusable:not(:focus, :focus-within) * {\n overflow: hidden !important;\n }\n}\n@layer helpers {\n .stretched-link::after {\n position: absolute;\n inset: 0;\n z-index: 1;\n content: \"\";\n }\n}\n@layer helpers {\n .text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n@layer helpers {\n .vr {\n display: inline-block;\n align-self: stretch;\n width: var(--vr-border-width, var(--border-width));\n min-height: 1em;\n background-color: var(--border-color);\n }\n}\n@layer utilities {\n .align-baseline {\n vertical-align: baseline;\n }\n .align-top {\n vertical-align: top;\n }\n .align-middle {\n vertical-align: middle;\n }\n .align-bottom {\n vertical-align: bottom;\n }\n .align-text-bottom {\n vertical-align: text-bottom;\n }\n .align-text-top {\n vertical-align: text-top;\n }\n [class*=ratio-] {\n aspect-ratio: var(--ratio);\n }\n .ratio-auto {\n --ratio: auto;\n }\n .ratio-1x1 {\n --ratio: 1 / 1;\n }\n .ratio-4x3 {\n --ratio: 4 / 3;\n }\n .ratio-16x9 {\n --ratio: 16 / 9;\n }\n .ratio-21x9 {\n --ratio: 21 / 9;\n }\n .float-start {\n float: inline-start;\n }\n .float-end {\n float: inline-end;\n }\n .float-none {\n float: none;\n }\n .object-fit-contain {\n object-fit: contain;\n }\n .object-fit-cover {\n object-fit: cover;\n }\n .object-fit-fill {\n object-fit: fill;\n }\n .object-fit-scale {\n object-fit: scale-down;\n }\n .object-fit-none {\n object-fit: none;\n }\n .opacity-0 {\n opacity: 0;\n }\n .opacity-25 {\n opacity: 0.25;\n }\n .opacity-50 {\n opacity: 0.5;\n }\n .opacity-75 {\n opacity: 0.75;\n }\n .opacity-100 {\n opacity: 1;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-visible {\n overflow: visible;\n }\n .overflow-scroll {\n overflow: scroll;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-x-visible {\n overflow-x: visible;\n }\n .overflow-x-scroll {\n overflow-x: scroll;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .overflow-y-hidden {\n overflow-y: hidden;\n }\n .overflow-y-visible {\n overflow-y: visible;\n }\n .overflow-y-scroll {\n overflow-y: scroll;\n }\n .contains-inline {\n container-type: inline-size;\n }\n .contains-size {\n container-type: size;\n }\n .d-inline {\n display: inline;\n }\n .d-inline-block {\n display: inline-block;\n }\n .d-block {\n display: block;\n }\n .d-grid {\n display: grid;\n }\n .d-inline-grid {\n display: inline-grid;\n }\n .d-table {\n display: table;\n }\n .d-table-row {\n display: table-row;\n }\n .d-table-cell {\n display: table-cell;\n }\n .d-flex {\n display: flex;\n }\n .d-inline-flex {\n display: inline-flex;\n }\n .d-contents {\n display: contents;\n }\n .d-flow-root {\n display: flow-root;\n }\n .d-none {\n display: none;\n }\n .shadow {\n box-shadow: var(--box-shadow);\n }\n .shadow-sm {\n box-shadow: var(--box-shadow-sm);\n }\n .shadow-lg {\n box-shadow: var(--box-shadow-lg);\n }\n .shadow-none {\n box-shadow: none;\n }\n .position-static {\n position: static;\n }\n .position-relative {\n position: relative;\n }\n .position-absolute {\n position: absolute;\n }\n .position-fixed {\n position: fixed;\n }\n .position-sticky {\n position: sticky;\n }\n .top-0 {\n top: 0;\n }\n .top-50 {\n top: 50%;\n }\n .top-100 {\n top: 100%;\n }\n .bottom-0 {\n bottom: 0;\n }\n .bottom-50 {\n bottom: 50%;\n }\n .bottom-100 {\n bottom: 100%;\n }\n .start-0 {\n inset-inline-start: 0;\n }\n .start-50 {\n inset-inline-start: 50%;\n }\n .start-100 {\n inset-inline-start: 100%;\n }\n .end-0 {\n inset-inline-end: 0;\n }\n .end-50 {\n inset-inline-end: 50%;\n }\n .end-100 {\n inset-inline-end: 100%;\n }\n .translate-middle {\n transform: translate(-50%, -50%);\n }\n .translate-middle-x {\n transform: translateX(-50%);\n }\n .translate-middle-y {\n transform: translateY(-50%);\n }\n .border {\n border: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-0 {\n border: 0;\n }\n .border-top {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-top-0 {\n border-block-start: 0;\n }\n .border-end {\n border-inline-end: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-end-0 {\n border-inline-end: 0;\n }\n .border-bottom {\n border-block-end: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-bottom-0 {\n border-block-end: 0;\n }\n .border-start {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-start-0 {\n border-inline-start: 0;\n }\n .border-y {\n border-block: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-y-0 {\n border-block: 0;\n }\n .border-x {\n border-inline: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-x-0 {\n border-inline: 0;\n }\n .border-primary {\n --border-color: var(--primary-bg);\n border-color: var(--border-color);\n }\n .border-accent {\n --border-color: var(--accent-bg);\n border-color: var(--border-color);\n }\n .border-success {\n --border-color: var(--success-bg);\n border-color: var(--border-color);\n }\n .border-danger {\n --border-color: var(--danger-bg);\n border-color: var(--border-color);\n }\n .border-warning {\n --border-color: var(--warning-bg);\n border-color: var(--border-color);\n }\n .border-info {\n --border-color: var(--info-bg);\n border-color: var(--border-color);\n }\n .border-inverse {\n --border-color: var(--inverse-bg);\n border-color: var(--border-color);\n }\n .border-secondary {\n --border-color: var(--secondary-bg);\n border-color: var(--border-color);\n }\n .border-bg {\n --border-color: var(--border-bg);\n border-color: var(--border-color);\n }\n .border-body {\n --border-color: var(--border-body);\n border-color: var(--border-color);\n }\n .border-muted {\n --border-color: var(--border-muted);\n border-color: var(--border-color);\n }\n .border-subtle {\n --border-color: var(--border-subtle);\n border-color: var(--border-color);\n }\n .border-emphasized {\n --border-color: var(--border-emphasized);\n border-color: var(--border-color);\n }\n .border-white {\n --border-color: var(--border-white);\n border-color: var(--border-color);\n }\n .border-black {\n --border-color: var(--border-black);\n border-color: var(--border-color);\n }\n .border-subtle-primary {\n --border-color: var(--primary-border);\n border-color: var(--border-color);\n }\n .border-subtle-accent {\n --border-color: var(--accent-border);\n border-color: var(--border-color);\n }\n .border-subtle-success {\n --border-color: var(--success-border);\n border-color: var(--border-color);\n }\n .border-subtle-danger {\n --border-color: var(--danger-border);\n border-color: var(--border-color);\n }\n .border-subtle-warning {\n --border-color: var(--warning-border);\n border-color: var(--border-color);\n }\n .border-subtle-info {\n --border-color: var(--info-border);\n border-color: var(--border-color);\n }\n .border-subtle-inverse {\n --border-color: var(--inverse-border);\n border-color: var(--border-color);\n }\n .border-subtle-secondary {\n --border-color: var(--secondary-border);\n border-color: var(--border-color);\n }\n .border-1 {\n border-width: 1px;\n }\n .border-2 {\n border-width: 2px;\n }\n .border-3 {\n border-width: 3px;\n }\n .border-4 {\n border-width: 4px;\n }\n .border-5 {\n border-width: 5px;\n }\n .border-10 {\n border-color: color-mix(in oklch, var(--border-color) 10%, transparent);\n }\n .border-20 {\n border-color: color-mix(in oklch, var(--border-color) 20%, transparent);\n }\n .border-30 {\n border-color: color-mix(in oklch, var(--border-color) 30%, transparent);\n }\n .border-40 {\n border-color: color-mix(in oklch, var(--border-color) 40%, transparent);\n }\n .border-50 {\n border-color: color-mix(in oklch, var(--border-color) 50%, transparent);\n }\n .border-60 {\n border-color: color-mix(in oklch, var(--border-color) 60%, transparent);\n }\n .border-70 {\n border-color: color-mix(in oklch, var(--border-color) 70%, transparent);\n }\n .border-80 {\n border-color: color-mix(in oklch, var(--border-color) 80%, transparent);\n }\n .border-90 {\n border-color: color-mix(in oklch, var(--border-color) 90%, transparent);\n }\n .border-100 {\n border-color: var(--border-color);\n }\n .w-1 {\n width: 1rem;\n }\n .w-2 {\n width: 2rem;\n }\n .w-3 {\n width: 3rem;\n }\n .w-4 {\n width: 4rem;\n }\n .w-5 {\n width: 5rem;\n }\n .w-6 {\n width: 6rem;\n }\n .w-7 {\n width: 7rem;\n }\n .w-8 {\n width: 8rem;\n }\n .w-9 {\n width: 9rem;\n }\n .w-10 {\n width: 10rem;\n }\n .w-11 {\n width: 11rem;\n }\n .w-12 {\n width: 12rem;\n }\n .w-25 {\n width: 25%;\n }\n .w-50 {\n width: 50%;\n }\n .w-75 {\n width: 75%;\n }\n .w-100 {\n width: 100%;\n }\n .w-auto {\n width: auto;\n }\n .w-min {\n width: min-content;\n }\n .w-max {\n width: max-content;\n }\n .w-fit {\n width: fit-content;\n }\n .max-w-100 {\n max-width: 100%;\n }\n .min-w-0 {\n min-width: 0;\n }\n .min-w-100 {\n min-width: 100%;\n }\n .vw-100 {\n width: 100vw;\n }\n .min-vw-100 {\n min-width: 100vw;\n }\n .h-25 {\n height: 25%;\n }\n .h-50 {\n height: 50%;\n }\n .h-75 {\n height: 75%;\n }\n .h-100 {\n height: 100%;\n }\n .h-auto {\n height: auto;\n }\n .h-min {\n height: min-content;\n }\n .h-max {\n height: max-content;\n }\n .h-fit {\n height: fit-content;\n }\n .max-h-100 {\n max-height: 100%;\n }\n .min-h-0 {\n min-height: 0;\n }\n .min-h-100 {\n min-height: 100%;\n }\n .vh-100 {\n height: 100vh;\n }\n .min-vh-100 {\n min-height: 100vh;\n }\n .flex-fill {\n flex: 1 1 auto;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-column {\n flex-direction: column;\n }\n .flex-row-reverse {\n flex-direction: row-reverse;\n }\n .flex-column-reverse {\n flex-direction: column-reverse;\n }\n .flex-grow-0 {\n flex-grow: 0;\n }\n .flex-grow-1 {\n flex-grow: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .flex-shrink-1 {\n flex-shrink: 1;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .flex-nowrap {\n flex-wrap: nowrap;\n }\n .flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .justify-content-start {\n justify-content: flex-start;\n }\n .justify-content-end {\n justify-content: flex-end;\n }\n .justify-content-center {\n justify-content: center;\n }\n .justify-content-between {\n justify-content: space-between;\n }\n .justify-content-around {\n justify-content: space-around;\n }\n .justify-content-evenly {\n justify-content: space-evenly;\n }\n .justify-items-start {\n justify-items: start;\n }\n .justify-items-end {\n justify-items: end;\n }\n .justify-items-center {\n justify-items: center;\n }\n .justify-items-stretch {\n justify-items: stretch;\n }\n .justify-self-start {\n justify-self: start;\n }\n .justify-self-end {\n justify-self: end;\n }\n .justify-self-center {\n justify-self: center;\n }\n .align-items-start {\n align-items: flex-start;\n }\n .align-items-end {\n align-items: flex-end;\n }\n .align-items-center {\n align-items: center;\n }\n .align-items-baseline {\n align-items: baseline;\n }\n .align-items-stretch {\n align-items: stretch;\n }\n .align-content-start {\n align-content: flex-start;\n }\n .align-content-end {\n align-content: flex-end;\n }\n .align-content-center {\n align-content: center;\n }\n .align-content-between {\n align-content: space-between;\n }\n .align-content-around {\n align-content: space-around;\n }\n .align-content-stretch {\n align-content: stretch;\n }\n .align-self-auto {\n align-self: auto;\n }\n .align-self-start {\n align-self: flex-start;\n }\n .align-self-end {\n align-self: flex-end;\n }\n .align-self-center {\n align-self: center;\n }\n .align-self-baseline {\n align-self: baseline;\n }\n .align-self-stretch {\n align-self: stretch;\n }\n .place-items-start {\n place-items: start;\n }\n .place-items-end {\n place-items: end;\n }\n .place-items-center {\n place-items: center;\n }\n .place-items-stretch {\n place-items: stretch;\n }\n .grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .grid-cols-fill {\n grid-column: 1 / -1;\n }\n .grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .order-first {\n order: -1;\n }\n .order-0 {\n order: 0;\n }\n .order-1 {\n order: 1;\n }\n .order-2 {\n order: 2;\n }\n .order-3 {\n order: 3;\n }\n .order-4 {\n order: 4;\n }\n .order-5 {\n order: 5;\n }\n .order-last {\n order: 6;\n }\n .m-0 {\n margin: 0;\n }\n .m-1 {\n margin: 0.25rem;\n }\n .m-2 {\n margin: 0.5rem;\n }\n .m-3 {\n margin: 0.75rem;\n }\n .m-4 {\n margin: 1rem;\n }\n .m-5 {\n margin: 1.25rem;\n }\n .m-6 {\n margin: 1.5rem;\n }\n .m-7 {\n margin: 2rem;\n }\n .m-8 {\n margin: 2.5rem;\n }\n .m-9 {\n margin: 3rem;\n }\n .m-auto {\n margin: auto;\n }\n .mx-0 {\n margin-inline: 0;\n }\n .mx-1 {\n margin-inline: 0.25rem;\n }\n .mx-2 {\n margin-inline: 0.5rem;\n }\n .mx-3 {\n margin-inline: 0.75rem;\n }\n .mx-4 {\n margin-inline: 1rem;\n }\n .mx-5 {\n margin-inline: 1.25rem;\n }\n .mx-6 {\n margin-inline: 1.5rem;\n }\n .mx-7 {\n margin-inline: 2rem;\n }\n .mx-8 {\n margin-inline: 2.5rem;\n }\n .mx-9 {\n margin-inline: 3rem;\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-0 {\n margin-block: 0;\n }\n .my-1 {\n margin-block: 0.25rem;\n }\n .my-2 {\n margin-block: 0.5rem;\n }\n .my-3 {\n margin-block: 0.75rem;\n }\n .my-4 {\n margin-block: 1rem;\n }\n .my-5 {\n margin-block: 1.25rem;\n }\n .my-6 {\n margin-block: 1.5rem;\n }\n .my-7 {\n margin-block: 2rem;\n }\n .my-8 {\n margin-block: 2.5rem;\n }\n .my-9 {\n margin-block: 3rem;\n }\n .my-auto {\n margin-block: auto;\n }\n .mt-0 {\n margin-block-start: 0;\n }\n .mt-1 {\n margin-block-start: 0.25rem;\n }\n .mt-2 {\n margin-block-start: 0.5rem;\n }\n .mt-3 {\n margin-block-start: 0.75rem;\n }\n .mt-4 {\n margin-block-start: 1rem;\n }\n .mt-5 {\n margin-block-start: 1.25rem;\n }\n .mt-6 {\n margin-block-start: 1.5rem;\n }\n .mt-7 {\n margin-block-start: 2rem;\n }\n .mt-8 {\n margin-block-start: 2.5rem;\n }\n .mt-9 {\n margin-block-start: 3rem;\n }\n .mt-auto {\n margin-block-start: auto;\n }\n .me-0 {\n margin-inline-end: 0;\n }\n .me-1 {\n margin-inline-end: 0.25rem;\n }\n .me-2 {\n margin-inline-end: 0.5rem;\n }\n .me-3 {\n margin-inline-end: 0.75rem;\n }\n .me-4 {\n margin-inline-end: 1rem;\n }\n .me-5 {\n margin-inline-end: 1.25rem;\n }\n .me-6 {\n margin-inline-end: 1.5rem;\n }\n .me-7 {\n margin-inline-end: 2rem;\n }\n .me-8 {\n margin-inline-end: 2.5rem;\n }\n .me-9 {\n margin-inline-end: 3rem;\n }\n .me--1 {\n margin-inline-end: -0.25rem;\n }\n .me--2 {\n margin-inline-end: -0.5rem;\n }\n .me-auto {\n margin-inline-end: auto;\n }\n .mb-0 {\n margin-block-end: 0;\n }\n .mb-1 {\n margin-block-end: 0.25rem;\n }\n .mb-2 {\n margin-block-end: 0.5rem;\n }\n .mb-3 {\n margin-block-end: 0.75rem;\n }\n .mb-4 {\n margin-block-end: 1rem;\n }\n .mb-5 {\n margin-block-end: 1.25rem;\n }\n .mb-6 {\n margin-block-end: 1.5rem;\n }\n .mb-7 {\n margin-block-end: 2rem;\n }\n .mb-8 {\n margin-block-end: 2.5rem;\n }\n .mb-9 {\n margin-block-end: 3rem;\n }\n .mb-auto {\n margin-block-end: auto;\n }\n .ms-0 {\n margin-inline-start: 0;\n }\n .ms-1 {\n margin-inline-start: 0.25rem;\n }\n .ms-2 {\n margin-inline-start: 0.5rem;\n }\n .ms-3 {\n margin-inline-start: 0.75rem;\n }\n .ms-4 {\n margin-inline-start: 1rem;\n }\n .ms-5 {\n margin-inline-start: 1.25rem;\n }\n .ms-6 {\n margin-inline-start: 1.5rem;\n }\n .ms-7 {\n margin-inline-start: 2rem;\n }\n .ms-8 {\n margin-inline-start: 2.5rem;\n }\n .ms-9 {\n margin-inline-start: 3rem;\n }\n .ms--1 {\n margin-inline-start: -0.25rem;\n }\n .ms--2 {\n margin-inline-start: -0.5rem;\n }\n .ms-auto {\n margin-inline-start: auto;\n }\n .p-0 {\n padding: 0;\n }\n .p-1 {\n padding: 0.25rem;\n }\n .p-2 {\n padding: 0.5rem;\n }\n .p-3 {\n padding: 0.75rem;\n }\n .p-4 {\n padding: 1rem;\n }\n .p-5 {\n padding: 1.25rem;\n }\n .p-6 {\n padding: 1.5rem;\n }\n .p-7 {\n padding: 2rem;\n }\n .p-8 {\n padding: 2.5rem;\n }\n .p-9 {\n padding: 3rem;\n }\n .px-0 {\n padding-inline: 0;\n }\n .px-1 {\n padding-inline: 0.25rem;\n }\n .px-2 {\n padding-inline: 0.5rem;\n }\n .px-3 {\n padding-inline: 0.75rem;\n }\n .px-4 {\n padding-inline: 1rem;\n }\n .px-5 {\n padding-inline: 1.25rem;\n }\n .px-6 {\n padding-inline: 1.5rem;\n }\n .px-7 {\n padding-inline: 2rem;\n }\n .px-8 {\n padding-inline: 2.5rem;\n }\n .px-9 {\n padding-inline: 3rem;\n }\n .py-0 {\n padding-block: 0;\n }\n .py-1 {\n padding-block: 0.25rem;\n }\n .py-2 {\n padding-block: 0.5rem;\n }\n .py-3 {\n padding-block: 0.75rem;\n }\n .py-4 {\n padding-block: 1rem;\n }\n .py-5 {\n padding-block: 1.25rem;\n }\n .py-6 {\n padding-block: 1.5rem;\n }\n .py-7 {\n padding-block: 2rem;\n }\n .py-8 {\n padding-block: 2.5rem;\n }\n .py-9 {\n padding-block: 3rem;\n }\n .pt-0 {\n padding-block-start: 0;\n }\n .pt-1 {\n padding-block-start: 0.25rem;\n }\n .pt-2 {\n padding-block-start: 0.5rem;\n }\n .pt-3 {\n padding-block-start: 0.75rem;\n }\n .pt-4 {\n padding-block-start: 1rem;\n }\n .pt-5 {\n padding-block-start: 1.25rem;\n }\n .pt-6 {\n padding-block-start: 1.5rem;\n }\n .pt-7 {\n padding-block-start: 2rem;\n }\n .pt-8 {\n padding-block-start: 2.5rem;\n }\n .pt-9 {\n padding-block-start: 3rem;\n }\n .pe-0 {\n padding-inline-end: 0;\n }\n .pe-1 {\n padding-inline-end: 0.25rem;\n }\n .pe-2 {\n padding-inline-end: 0.5rem;\n }\n .pe-3 {\n padding-inline-end: 0.75rem;\n }\n .pe-4 {\n padding-inline-end: 1rem;\n }\n .pe-5 {\n padding-inline-end: 1.25rem;\n }\n .pe-6 {\n padding-inline-end: 1.5rem;\n }\n .pe-7 {\n padding-inline-end: 2rem;\n }\n .pe-8 {\n padding-inline-end: 2.5rem;\n }\n .pe-9 {\n padding-inline-end: 3rem;\n }\n .pb-0 {\n padding-block-end: 0;\n }\n .pb-1 {\n padding-block-end: 0.25rem;\n }\n .pb-2 {\n padding-block-end: 0.5rem;\n }\n .pb-3 {\n padding-block-end: 0.75rem;\n }\n .pb-4 {\n padding-block-end: 1rem;\n }\n .pb-5 {\n padding-block-end: 1.25rem;\n }\n .pb-6 {\n padding-block-end: 1.5rem;\n }\n .pb-7 {\n padding-block-end: 2rem;\n }\n .pb-8 {\n padding-block-end: 2.5rem;\n }\n .pb-9 {\n padding-block-end: 3rem;\n }\n .ps-0 {\n padding-inline-start: 0;\n }\n .ps-1 {\n padding-inline-start: 0.25rem;\n }\n .ps-2 {\n padding-inline-start: 0.5rem;\n }\n .ps-3 {\n padding-inline-start: 0.75rem;\n }\n .ps-4 {\n padding-inline-start: 1rem;\n }\n .ps-5 {\n padding-inline-start: 1.25rem;\n }\n .ps-6 {\n padding-inline-start: 1.5rem;\n }\n .ps-7 {\n padding-inline-start: 2rem;\n }\n .ps-8 {\n padding-inline-start: 2.5rem;\n }\n .ps-9 {\n padding-inline-start: 3rem;\n }\n .gap-0 {\n gap: 0;\n }\n .gap-1 {\n gap: 0.25rem;\n }\n .gap-2 {\n gap: 0.5rem;\n }\n .gap-3 {\n gap: 0.75rem;\n }\n .gap-4 {\n gap: 1rem;\n }\n .gap-5 {\n gap: 1.25rem;\n }\n .gap-6 {\n gap: 1.5rem;\n }\n .gap-7 {\n gap: 2rem;\n }\n .gap-8 {\n gap: 2.5rem;\n }\n .gap-9 {\n gap: 3rem;\n }\n .row-gap-0 {\n row-gap: 0;\n }\n .row-gap-1 {\n row-gap: 0.25rem;\n }\n .row-gap-2 {\n row-gap: 0.5rem;\n }\n .row-gap-3 {\n row-gap: 0.75rem;\n }\n .row-gap-4 {\n row-gap: 1rem;\n }\n .row-gap-5 {\n row-gap: 1.25rem;\n }\n .row-gap-6 {\n row-gap: 1.5rem;\n }\n .row-gap-7 {\n row-gap: 2rem;\n }\n .row-gap-8 {\n row-gap: 2.5rem;\n }\n .row-gap-9 {\n row-gap: 3rem;\n }\n .column-gap-0 {\n column-gap: 0;\n }\n .column-gap-1 {\n column-gap: 0.25rem;\n }\n .column-gap-2 {\n column-gap: 0.5rem;\n }\n .column-gap-3 {\n column-gap: 0.75rem;\n }\n .column-gap-4 {\n column-gap: 1rem;\n }\n .column-gap-5 {\n column-gap: 1.25rem;\n }\n .column-gap-6 {\n column-gap: 1.5rem;\n }\n .column-gap-7 {\n column-gap: 2rem;\n }\n .column-gap-8 {\n column-gap: 2.5rem;\n }\n .column-gap-9 {\n column-gap: 3rem;\n }\n :where(.space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .font-monospace {\n font-family: var(--font-mono);\n }\n .font-body {\n font-family: var(--body-font-family);\n }\n .fs-xs {\n font-size: 0.75rem;\n }\n .fs-sm {\n font-size: 0.875rem;\n }\n .fs-md {\n font-size: 1rem;\n }\n .fs-lg {\n font-size: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n }\n .fs-xl {\n font-size: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n }\n .fs-2xl {\n font-size: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n }\n .fs-3xl {\n font-size: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n }\n .fs-4xl {\n font-size: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n }\n .fs-5xl {\n font-size: clamp(3rem, 2rem + 5vw, 4rem);\n }\n .fs-6xl {\n font-size: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n }\n .text-xs {\n font-size: 0.75rem;\n line-height: 1.25;\n }\n .text-sm {\n font-size: 0.875rem;\n line-height: 1.5;\n }\n .text-md {\n font-size: 1rem;\n line-height: 1.5;\n }\n .text-lg {\n font-size: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n line-height: 1.5;\n }\n .text-xl {\n font-size: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n line-height: 1.4285714286;\n }\n .text-2xl {\n font-size: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n line-height: 1.3333333333;\n }\n .text-3xl {\n font-size: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n line-height: 1.2;\n }\n .text-4xl {\n font-size: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n line-height: 1.1;\n }\n .text-5xl {\n font-size: clamp(3rem, 2rem + 5vw, 4rem);\n line-height: 1.1;\n }\n .text-6xl {\n font-size: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n line-height: 1;\n }\n .fst-italic {\n font-style: italic;\n }\n .fst-normal {\n font-style: normal;\n }\n .fw-lighter {\n font-weight: lighter;\n }\n .fw-light {\n font-weight: 300;\n }\n .fw-normal {\n font-weight: 400;\n }\n .fw-medium {\n font-weight: 500;\n }\n .fw-semibold {\n font-weight: 600;\n }\n .fw-bold {\n font-weight: 700;\n }\n .fw-bolder {\n font-weight: bolder;\n }\n .lh-1 {\n line-height: 1;\n }\n .lh-sm {\n line-height: 1.25;\n }\n .lh-base {\n line-height: 1.5;\n }\n .lh-lg {\n line-height: 2;\n }\n .text-start {\n text-align: start;\n }\n .text-end {\n text-align: end;\n }\n .text-center {\n text-align: center;\n }\n .text-decoration-none {\n text-decoration: none;\n }\n .text-decoration-underline {\n text-decoration: underline;\n }\n .text-decoration-line-through {\n text-decoration: line-through;\n }\n .text-lowercase {\n text-transform: lowercase;\n }\n .text-uppercase {\n text-transform: uppercase;\n }\n .text-capitalize {\n text-transform: capitalize;\n }\n .text-wrap {\n text-wrap: wrap;\n }\n .text-nowrap {\n text-wrap: nowrap;\n }\n .text-balance {\n text-wrap: balance;\n }\n .text-pretty {\n text-wrap: pretty;\n }\n .text-break {\n word-wrap: break-word;\n word-break: break-word;\n }\n .fg-primary {\n --fg: var(--primary-fg);\n color: var(--fg);\n }\n .fg-accent {\n --fg: var(--accent-fg);\n color: var(--fg);\n }\n .fg-success {\n --fg: var(--success-fg);\n color: var(--fg);\n }\n .fg-danger {\n --fg: var(--danger-fg);\n color: var(--fg);\n }\n .fg-warning {\n --fg: var(--warning-fg);\n color: var(--fg);\n }\n .fg-info {\n --fg: var(--info-fg);\n color: var(--fg);\n }\n .fg-inverse {\n --fg: var(--inverse-fg);\n color: var(--fg);\n }\n .fg-secondary {\n --fg: var(--secondary-fg);\n color: var(--fg);\n }\n .fg-body {\n --fg: var(--fg-body);\n color: var(--fg);\n }\n .fg-1 {\n --fg: var(--fg-1);\n color: var(--fg);\n }\n .fg-2 {\n --fg: var(--fg-2);\n color: var(--fg);\n }\n .fg-3 {\n --fg: var(--fg-3);\n color: var(--fg);\n }\n .fg-4 {\n --fg: var(--fg-4);\n color: var(--fg);\n }\n .fg-bg {\n --fg: var(--fg-bg);\n color: var(--fg);\n }\n .fg-white {\n --fg: var(--fg-white);\n color: var(--fg);\n }\n .fg-black {\n --fg: var(--fg-black);\n color: var(--fg);\n }\n .fg-reset {\n --fg: inherit;\n color: var(--fg);\n }\n .fg-emphasis-primary {\n --fg: var(--primary-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-accent {\n --fg: var(--accent-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-success {\n --fg: var(--success-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-danger {\n --fg: var(--danger-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-warning {\n --fg: var(--warning-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-info {\n --fg: var(--info-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-inverse {\n --fg: var(--inverse-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-secondary {\n --fg: var(--secondary-fg-emphasis);\n color: var(--fg);\n }\n .fg-contrast-primary {\n --fg: var(--primary-contrast);\n color: var(--fg);\n }\n .fg-contrast-accent {\n --fg: var(--accent-contrast);\n color: var(--fg);\n }\n .fg-contrast-success {\n --fg: var(--success-contrast);\n color: var(--fg);\n }\n .fg-contrast-danger {\n --fg: var(--danger-contrast);\n color: var(--fg);\n }\n .fg-contrast-warning {\n --fg: var(--warning-contrast);\n color: var(--fg);\n }\n .fg-contrast-info {\n --fg: var(--info-contrast);\n color: var(--fg);\n }\n .fg-contrast-inverse {\n --fg: var(--inverse-contrast);\n color: var(--fg);\n }\n .fg-contrast-secondary {\n --fg: var(--secondary-contrast);\n color: var(--fg);\n }\n .fg-10 {\n color: color-mix(in oklch, var(--fg) 10%, transparent);\n }\n .fg-20 {\n color: color-mix(in oklch, var(--fg) 20%, transparent);\n }\n .fg-30 {\n color: color-mix(in oklch, var(--fg) 30%, transparent);\n }\n .fg-40 {\n color: color-mix(in oklch, var(--fg) 40%, transparent);\n }\n .fg-50 {\n color: color-mix(in oklch, var(--fg) 50%, transparent);\n }\n .fg-60 {\n color: color-mix(in oklch, var(--fg) 60%, transparent);\n }\n .fg-70 {\n color: color-mix(in oklch, var(--fg) 70%, transparent);\n }\n .fg-80 {\n color: color-mix(in oklch, var(--fg) 80%, transparent);\n }\n .fg-90 {\n color: color-mix(in oklch, var(--fg) 90%, transparent);\n }\n .fg-100 {\n color: var(--fg);\n }\n .link-10 {\n color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .hover\\:link-10:hover {\n color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .link-20 {\n color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .hover\\:link-20:hover {\n color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .link-30 {\n color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .hover\\:link-30:hover {\n color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .link-40 {\n color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .hover\\:link-40:hover {\n color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .link-50 {\n color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .hover\\:link-50:hover {\n color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .link-60 {\n color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .hover\\:link-60:hover {\n color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .link-70 {\n color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .hover\\:link-70:hover {\n color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .link-80 {\n color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .hover\\:link-80:hover {\n color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .link-90 {\n color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .hover\\:link-90:hover {\n color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .link-100 {\n color: var(--link-color);\n }\n .hover\\:link-100:hover {\n color: var(--link-color);\n }\n .underline-offset-1 {\n text-underline-offset: 0.125em;\n }\n .hover\\:underline-offset-1:hover {\n text-underline-offset: 0.125em;\n }\n .underline-offset-2 {\n text-underline-offset: 0.25em;\n }\n .hover\\:underline-offset-2:hover {\n text-underline-offset: 0.25em;\n }\n .underline-offset-3 {\n text-underline-offset: 0.375em;\n }\n .hover\\:underline-offset-3:hover {\n text-underline-offset: 0.375em;\n }\n .underline-primary {\n text-decoration-color: light-dark(var(--blue-600), var(--blue-400));\n }\n .underline-accent {\n text-decoration-color: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n }\n .underline-success {\n text-decoration-color: light-dark(var(--green-600), var(--green-400));\n }\n .underline-danger {\n text-decoration-color: light-dark(var(--red-600), var(--red-400));\n }\n .underline-warning {\n text-decoration-color: light-dark(var(--yellow-700), var(--yellow-400));\n }\n .underline-info {\n text-decoration-color: light-dark(var(--cyan-600), var(--cyan-400));\n }\n .underline-inverse {\n text-decoration-color: light-dark(var(--gray-900), var(--gray-200));\n }\n .underline-secondary {\n text-decoration-color: light-dark(var(--gray-600), var(--gray-400));\n }\n .underline-10 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .hover\\:underline-10:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .underline-20 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .hover\\:underline-20:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .underline-30 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .hover\\:underline-30:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .underline-40 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .hover\\:underline-40:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .underline-50 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .hover\\:underline-50:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .underline-60 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .hover\\:underline-60:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .underline-70 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .hover\\:underline-70:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .underline-80 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .hover\\:underline-80:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .underline-90 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .hover\\:underline-90:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .underline-100 {\n text-decoration-color: var(--link-color);\n }\n .hover\\:underline-100:hover {\n text-decoration-color: var(--link-color);\n }\n .underline-thickness-1 {\n text-decoration-thickness: 1px;\n }\n .hover\\:underline-thickness-1:hover {\n text-decoration-thickness: 1px;\n }\n .underline-thickness-2 {\n text-decoration-thickness: 2px;\n }\n .hover\\:underline-thickness-2:hover {\n text-decoration-thickness: 2px;\n }\n .underline-thickness-3 {\n text-decoration-thickness: 3px;\n }\n .hover\\:underline-thickness-3:hover {\n text-decoration-thickness: 3px;\n }\n .underline-thickness-4 {\n text-decoration-thickness: 4px;\n }\n .hover\\:underline-thickness-4:hover {\n text-decoration-thickness: 4px;\n }\n .underline-thickness-5 {\n text-decoration-thickness: 5px;\n }\n .hover\\:underline-thickness-5:hover {\n text-decoration-thickness: 5px;\n }\n .bg-primary {\n --bg: var(--primary-bg);\n background-color: var(--bg);\n }\n .bg-accent {\n --bg: var(--accent-bg);\n background-color: var(--bg);\n }\n .bg-success {\n --bg: var(--success-bg);\n background-color: var(--bg);\n }\n .bg-danger {\n --bg: var(--danger-bg);\n background-color: var(--bg);\n }\n .bg-warning {\n --bg: var(--warning-bg);\n background-color: var(--bg);\n }\n .bg-info {\n --bg: var(--info-bg);\n background-color: var(--bg);\n }\n .bg-inverse {\n --bg: var(--inverse-bg);\n background-color: var(--bg);\n }\n .bg-secondary {\n --bg: var(--secondary-bg);\n background-color: var(--bg);\n }\n .bg-body {\n --bg: var(--bg-body);\n background-color: var(--bg);\n }\n .bg-1 {\n --bg: var(--bg-1);\n background-color: var(--bg);\n }\n .bg-2 {\n --bg: var(--bg-2);\n background-color: var(--bg);\n }\n .bg-3 {\n --bg: var(--bg-3);\n background-color: var(--bg);\n }\n .bg-4 {\n --bg: var(--bg-4);\n background-color: var(--bg);\n }\n .bg-fg {\n --bg: var(--bg-fg);\n background-color: var(--bg);\n }\n .bg-white {\n --bg: var(--bg-white);\n background-color: var(--bg);\n }\n .bg-black {\n --bg: var(--bg-black);\n background-color: var(--bg);\n }\n .bg-transparent {\n --bg: var(--bg-transparent);\n background-color: var(--bg);\n }\n .bg-subtle-primary {\n --bg: var(--primary-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-accent {\n --bg: var(--accent-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-success {\n --bg: var(--success-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-danger {\n --bg: var(--danger-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-warning {\n --bg: var(--warning-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-info {\n --bg: var(--info-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-inverse {\n --bg: var(--inverse-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-secondary {\n --bg: var(--secondary-bg-subtle);\n background-color: var(--bg);\n }\n .bg-muted-primary {\n --bg: var(--primary-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-accent {\n --bg: var(--accent-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-success {\n --bg: var(--success-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-danger {\n --bg: var(--danger-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-warning {\n --bg: var(--warning-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-info {\n --bg: var(--info-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-inverse {\n --bg: var(--inverse-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-secondary {\n --bg: var(--secondary-bg-muted);\n background-color: var(--bg);\n }\n .bg-10 {\n background-color: color-mix(in oklch, var(--bg) 10%, transparent);\n }\n .bg-20 {\n background-color: color-mix(in oklch, var(--bg) 20%, transparent);\n }\n .bg-30 {\n background-color: color-mix(in oklch, var(--bg) 30%, transparent);\n }\n .bg-40 {\n background-color: color-mix(in oklch, var(--bg) 40%, transparent);\n }\n .bg-50 {\n background-color: color-mix(in oklch, var(--bg) 50%, transparent);\n }\n .bg-60 {\n background-color: color-mix(in oklch, var(--bg) 60%, transparent);\n }\n .bg-70 {\n background-color: color-mix(in oklch, var(--bg) 70%, transparent);\n }\n .bg-80 {\n background-color: color-mix(in oklch, var(--bg) 80%, transparent);\n }\n .bg-90 {\n background-color: color-mix(in oklch, var(--bg) 90%, transparent);\n }\n .bg-100 {\n background-color: var(--bg);\n }\n .theme-contrast {\n background-color: var(--theme-bg);\n color: var(--theme-contrast);\n }\n .theme-subtle {\n background-color: var(--theme-bg-subtle);\n color: var(--theme-fg);\n }\n .theme-muted {\n background-color: var(--theme-bg-muted);\n color: var(--theme-fg-emphasis);\n }\n .theme-border {\n border: var(--border-width) solid var(--theme-border);\n }\n .bg-gradient {\n background-image: var(--gradient);\n }\n .user-select-all {\n user-select: all;\n }\n .user-select-auto {\n user-select: auto;\n }\n .user-select-text {\n user-select: text;\n }\n .user-select-none {\n user-select: none;\n }\n .pe-none {\n pointer-events: none;\n }\n .pe-auto {\n pointer-events: auto;\n }\n .rounded-0 {\n --rounded-size: 0;\n border-radius: var(--rounded-size);\n }\n .rounded-1 {\n --rounded-size: 0.125rem;\n border-radius: var(--rounded-size);\n }\n .rounded-2 {\n --rounded-size: 0.1875rem;\n border-radius: var(--rounded-size);\n }\n .rounded-3 {\n --rounded-size: 0.25rem;\n border-radius: var(--rounded-size);\n }\n .rounded-4 {\n --rounded-size: 0.375rem;\n border-radius: var(--rounded-size);\n }\n .rounded-5 {\n --rounded-size: 0.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded-6 {\n --rounded-size: 0.625rem;\n border-radius: var(--rounded-size);\n }\n .rounded-7 {\n --rounded-size: 0.75rem;\n border-radius: var(--rounded-size);\n }\n .rounded-8 {\n --rounded-size: 1rem;\n border-radius: var(--rounded-size);\n }\n .rounded-9 {\n --rounded-size: 1.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded {\n --rounded-size: 0.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded-circle {\n --rounded-size: 50%;\n border-radius: var(--rounded-size);\n }\n .rounded-pill {\n --rounded-size: var(--radius-pill);\n border-radius: var(--rounded-size);\n }\n .rounded-size-0 {\n --rounded-size: 0;\n }\n .rounded-size-1 {\n --rounded-size: 0.125rem;\n }\n .rounded-size-2 {\n --rounded-size: 0.1875rem;\n }\n .rounded-size-3 {\n --rounded-size: 0.25rem;\n }\n .rounded-size-4 {\n --rounded-size: 0.375rem;\n }\n .rounded-size-5 {\n --rounded-size: 0.5rem;\n }\n .rounded-size-6 {\n --rounded-size: 0.625rem;\n }\n .rounded-size-7 {\n --rounded-size: 0.75rem;\n }\n .rounded-size-8 {\n --rounded-size: 1rem;\n }\n .rounded-size-9 {\n --rounded-size: 1.5rem;\n }\n .rounded-size {\n --rounded-size: 0.5rem;\n }\n .rounded-size-circle {\n --rounded-size: 50%;\n }\n .rounded-size-pill {\n --rounded-size: var(--radius-pill);\n }\n .rounded-top-0 {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n .rounded-top-1 {\n border-start-start-radius: 0.125rem;\n border-start-end-radius: 0.125rem;\n }\n .rounded-top-2 {\n border-start-start-radius: 0.1875rem;\n border-start-end-radius: 0.1875rem;\n }\n .rounded-top-3 {\n border-start-start-radius: 0.25rem;\n border-start-end-radius: 0.25rem;\n }\n .rounded-top-4 {\n border-start-start-radius: 0.375rem;\n border-start-end-radius: 0.375rem;\n }\n .rounded-top-5 {\n border-start-start-radius: 0.5rem;\n border-start-end-radius: 0.5rem;\n }\n .rounded-top-6 {\n border-start-start-radius: 0.625rem;\n border-start-end-radius: 0.625rem;\n }\n .rounded-top-7 {\n border-start-start-radius: 0.75rem;\n border-start-end-radius: 0.75rem;\n }\n .rounded-top-8 {\n border-start-start-radius: 1rem;\n border-start-end-radius: 1rem;\n }\n .rounded-top-9 {\n border-start-start-radius: 1.5rem;\n border-start-end-radius: 1.5rem;\n }\n .rounded-top {\n border-start-start-radius: var(--rounded-size, var(--radius-5));\n border-start-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-top-circle {\n border-start-start-radius: 50%;\n border-start-end-radius: 50%;\n }\n .rounded-top-pill {\n border-start-start-radius: var(--radius-pill);\n border-start-end-radius: var(--radius-pill);\n }\n .rounded-end-0 {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .rounded-end-1 {\n border-start-end-radius: 0.125rem;\n border-end-end-radius: 0.125rem;\n }\n .rounded-end-2 {\n border-start-end-radius: 0.1875rem;\n border-end-end-radius: 0.1875rem;\n }\n .rounded-end-3 {\n border-start-end-radius: 0.25rem;\n border-end-end-radius: 0.25rem;\n }\n .rounded-end-4 {\n border-start-end-radius: 0.375rem;\n border-end-end-radius: 0.375rem;\n }\n .rounded-end-5 {\n border-start-end-radius: 0.5rem;\n border-end-end-radius: 0.5rem;\n }\n .rounded-end-6 {\n border-start-end-radius: 0.625rem;\n border-end-end-radius: 0.625rem;\n }\n .rounded-end-7 {\n border-start-end-radius: 0.75rem;\n border-end-end-radius: 0.75rem;\n }\n .rounded-end-8 {\n border-start-end-radius: 1rem;\n border-end-end-radius: 1rem;\n }\n .rounded-end-9 {\n border-start-end-radius: 1.5rem;\n border-end-end-radius: 1.5rem;\n }\n .rounded-end {\n border-start-end-radius: var(--rounded-size, var(--radius-5));\n border-end-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-end-circle {\n border-start-end-radius: 50%;\n border-end-end-radius: 50%;\n }\n .rounded-end-pill {\n border-start-end-radius: var(--radius-pill);\n border-end-end-radius: var(--radius-pill);\n }\n .rounded-bottom-0 {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .rounded-bottom-1 {\n border-end-start-radius: 0.125rem;\n border-end-end-radius: 0.125rem;\n }\n .rounded-bottom-2 {\n border-end-start-radius: 0.1875rem;\n border-end-end-radius: 0.1875rem;\n }\n .rounded-bottom-3 {\n border-end-start-radius: 0.25rem;\n border-end-end-radius: 0.25rem;\n }\n .rounded-bottom-4 {\n border-end-start-radius: 0.375rem;\n border-end-end-radius: 0.375rem;\n }\n .rounded-bottom-5 {\n border-end-start-radius: 0.5rem;\n border-end-end-radius: 0.5rem;\n }\n .rounded-bottom-6 {\n border-end-start-radius: 0.625rem;\n border-end-end-radius: 0.625rem;\n }\n .rounded-bottom-7 {\n border-end-start-radius: 0.75rem;\n border-end-end-radius: 0.75rem;\n }\n .rounded-bottom-8 {\n border-end-start-radius: 1rem;\n border-end-end-radius: 1rem;\n }\n .rounded-bottom-9 {\n border-end-start-radius: 1.5rem;\n border-end-end-radius: 1.5rem;\n }\n .rounded-bottom {\n border-end-start-radius: var(--rounded-size, var(--radius-5));\n border-end-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-bottom-circle {\n border-end-start-radius: 50%;\n border-end-end-radius: 50%;\n }\n .rounded-bottom-pill {\n border-end-start-radius: var(--radius-pill);\n border-end-end-radius: var(--radius-pill);\n }\n .rounded-start-0 {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .rounded-start-1 {\n border-start-start-radius: 0.125rem;\n border-end-start-radius: 0.125rem;\n }\n .rounded-start-2 {\n border-start-start-radius: 0.1875rem;\n border-end-start-radius: 0.1875rem;\n }\n .rounded-start-3 {\n border-start-start-radius: 0.25rem;\n border-end-start-radius: 0.25rem;\n }\n .rounded-start-4 {\n border-start-start-radius: 0.375rem;\n border-end-start-radius: 0.375rem;\n }\n .rounded-start-5 {\n border-start-start-radius: 0.5rem;\n border-end-start-radius: 0.5rem;\n }\n .rounded-start-6 {\n border-start-start-radius: 0.625rem;\n border-end-start-radius: 0.625rem;\n }\n .rounded-start-7 {\n border-start-start-radius: 0.75rem;\n border-end-start-radius: 0.75rem;\n }\n .rounded-start-8 {\n border-start-start-radius: 1rem;\n border-end-start-radius: 1rem;\n }\n .rounded-start-9 {\n border-start-start-radius: 1.5rem;\n border-end-start-radius: 1.5rem;\n }\n .rounded-start {\n border-start-start-radius: var(--rounded-size, var(--radius-5));\n border-end-start-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-start-circle {\n border-start-start-radius: 50%;\n border-end-start-radius: 50%;\n }\n .rounded-start-pill {\n border-start-start-radius: var(--radius-pill);\n border-end-start-radius: var(--radius-pill);\n }\n .visible {\n visibility: visible;\n }\n .invisible {\n visibility: hidden;\n }\n .z-n1 {\n z-index: -1;\n }\n .z-0 {\n z-index: 0;\n }\n .z-1 {\n z-index: 1;\n }\n .z-2 {\n z-index: 2;\n }\n .z-3 {\n z-index: 3;\n }\n @media (width >= 576px) {\n .sm\\:float-start {\n float: inline-start;\n }\n .sm\\:float-end {\n float: inline-end;\n }\n .sm\\:float-none {\n float: none;\n }\n .sm\\:object-fit-contain {\n object-fit: contain;\n }\n .sm\\:object-fit-cover {\n object-fit: cover;\n }\n .sm\\:object-fit-fill {\n object-fit: fill;\n }\n .sm\\:object-fit-scale {\n object-fit: scale-down;\n }\n .sm\\:object-fit-none {\n object-fit: none;\n }\n .sm\\:d-inline {\n display: inline;\n }\n .sm\\:d-inline-block {\n display: inline-block;\n }\n .sm\\:d-block {\n display: block;\n }\n .sm\\:d-grid {\n display: grid;\n }\n .sm\\:d-inline-grid {\n display: inline-grid;\n }\n .sm\\:d-table {\n display: table;\n }\n .sm\\:d-table-row {\n display: table-row;\n }\n .sm\\:d-table-cell {\n display: table-cell;\n }\n .sm\\:d-flex {\n display: flex;\n }\n .sm\\:d-inline-flex {\n display: inline-flex;\n }\n .sm\\:d-contents {\n display: contents;\n }\n .sm\\:d-flow-root {\n display: flow-root;\n }\n .sm\\:d-none {\n display: none;\n }\n .sm\\:flex-fill {\n flex: 1 1 auto;\n }\n .sm\\:flex-row {\n flex-direction: row;\n }\n .sm\\:flex-column {\n flex-direction: column;\n }\n .sm\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .sm\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .sm\\:flex-grow-0 {\n flex-grow: 0;\n }\n .sm\\:flex-grow-1 {\n flex-grow: 1;\n }\n .sm\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .sm\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .sm\\:flex-wrap {\n flex-wrap: wrap;\n }\n .sm\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .sm\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .sm\\:justify-content-start {\n justify-content: flex-start;\n }\n .sm\\:justify-content-end {\n justify-content: flex-end;\n }\n .sm\\:justify-content-center {\n justify-content: center;\n }\n .sm\\:justify-content-between {\n justify-content: space-between;\n }\n .sm\\:justify-content-around {\n justify-content: space-around;\n }\n .sm\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .sm\\:justify-items-start {\n justify-items: start;\n }\n .sm\\:justify-items-end {\n justify-items: end;\n }\n .sm\\:justify-items-center {\n justify-items: center;\n }\n .sm\\:justify-items-stretch {\n justify-items: stretch;\n }\n .sm\\:justify-self-start {\n justify-self: start;\n }\n .sm\\:justify-self-end {\n justify-self: end;\n }\n .sm\\:justify-self-center {\n justify-self: center;\n }\n .sm\\:align-items-start {\n align-items: flex-start;\n }\n .sm\\:align-items-end {\n align-items: flex-end;\n }\n .sm\\:align-items-center {\n align-items: center;\n }\n .sm\\:align-items-baseline {\n align-items: baseline;\n }\n .sm\\:align-items-stretch {\n align-items: stretch;\n }\n .sm\\:align-content-start {\n align-content: flex-start;\n }\n .sm\\:align-content-end {\n align-content: flex-end;\n }\n .sm\\:align-content-center {\n align-content: center;\n }\n .sm\\:align-content-between {\n align-content: space-between;\n }\n .sm\\:align-content-around {\n align-content: space-around;\n }\n .sm\\:align-content-stretch {\n align-content: stretch;\n }\n .sm\\:align-self-auto {\n align-self: auto;\n }\n .sm\\:align-self-start {\n align-self: flex-start;\n }\n .sm\\:align-self-end {\n align-self: flex-end;\n }\n .sm\\:align-self-center {\n align-self: center;\n }\n .sm\\:align-self-baseline {\n align-self: baseline;\n }\n .sm\\:align-self-stretch {\n align-self: stretch;\n }\n .sm\\:place-items-start {\n place-items: start;\n }\n .sm\\:place-items-end {\n place-items: end;\n }\n .sm\\:place-items-center {\n place-items: center;\n }\n .sm\\:place-items-stretch {\n place-items: stretch;\n }\n .sm\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .sm\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .sm\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .sm\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .sm\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .sm\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .sm\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .sm\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .sm\\:order-first {\n order: -1;\n }\n .sm\\:order-0 {\n order: 0;\n }\n .sm\\:order-1 {\n order: 1;\n }\n .sm\\:order-2 {\n order: 2;\n }\n .sm\\:order-3 {\n order: 3;\n }\n .sm\\:order-4 {\n order: 4;\n }\n .sm\\:order-5 {\n order: 5;\n }\n .sm\\:order-last {\n order: 6;\n }\n .sm\\:m-0 {\n margin: 0;\n }\n .sm\\:m-1 {\n margin: 0.25rem;\n }\n .sm\\:m-2 {\n margin: 0.5rem;\n }\n .sm\\:m-3 {\n margin: 0.75rem;\n }\n .sm\\:m-4 {\n margin: 1rem;\n }\n .sm\\:m-5 {\n margin: 1.25rem;\n }\n .sm\\:m-6 {\n margin: 1.5rem;\n }\n .sm\\:m-7 {\n margin: 2rem;\n }\n .sm\\:m-8 {\n margin: 2.5rem;\n }\n .sm\\:m-9 {\n margin: 3rem;\n }\n .sm\\:m-auto {\n margin: auto;\n }\n .sm\\:mx-0 {\n margin-inline: 0;\n }\n .sm\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .sm\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .sm\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .sm\\:mx-4 {\n margin-inline: 1rem;\n }\n .sm\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .sm\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .sm\\:mx-7 {\n margin-inline: 2rem;\n }\n .sm\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .sm\\:mx-9 {\n margin-inline: 3rem;\n }\n .sm\\:mx-auto {\n margin-inline: auto;\n }\n .sm\\:my-0 {\n margin-block: 0;\n }\n .sm\\:my-1 {\n margin-block: 0.25rem;\n }\n .sm\\:my-2 {\n margin-block: 0.5rem;\n }\n .sm\\:my-3 {\n margin-block: 0.75rem;\n }\n .sm\\:my-4 {\n margin-block: 1rem;\n }\n .sm\\:my-5 {\n margin-block: 1.25rem;\n }\n .sm\\:my-6 {\n margin-block: 1.5rem;\n }\n .sm\\:my-7 {\n margin-block: 2rem;\n }\n .sm\\:my-8 {\n margin-block: 2.5rem;\n }\n .sm\\:my-9 {\n margin-block: 3rem;\n }\n .sm\\:my-auto {\n margin-block: auto;\n }\n .sm\\:mt-0 {\n margin-block-start: 0;\n }\n .sm\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .sm\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .sm\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .sm\\:mt-4 {\n margin-block-start: 1rem;\n }\n .sm\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .sm\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .sm\\:mt-7 {\n margin-block-start: 2rem;\n }\n .sm\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .sm\\:mt-9 {\n margin-block-start: 3rem;\n }\n .sm\\:mt-auto {\n margin-block-start: auto;\n }\n .sm\\:me-0 {\n margin-inline-end: 0;\n }\n .sm\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .sm\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .sm\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .sm\\:me-4 {\n margin-inline-end: 1rem;\n }\n .sm\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .sm\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .sm\\:me-7 {\n margin-inline-end: 2rem;\n }\n .sm\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .sm\\:me-9 {\n margin-inline-end: 3rem;\n }\n .sm\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .sm\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .sm\\:me-auto {\n margin-inline-end: auto;\n }\n .sm\\:mb-0 {\n margin-block-end: 0;\n }\n .sm\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .sm\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .sm\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .sm\\:mb-4 {\n margin-block-end: 1rem;\n }\n .sm\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .sm\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .sm\\:mb-7 {\n margin-block-end: 2rem;\n }\n .sm\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .sm\\:mb-9 {\n margin-block-end: 3rem;\n }\n .sm\\:mb-auto {\n margin-block-end: auto;\n }\n .sm\\:ms-0 {\n margin-inline-start: 0;\n }\n .sm\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .sm\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .sm\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .sm\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .sm\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .sm\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .sm\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .sm\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .sm\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .sm\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .sm\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .sm\\:ms-auto {\n margin-inline-start: auto;\n }\n .sm\\:p-0 {\n padding: 0;\n }\n .sm\\:p-1 {\n padding: 0.25rem;\n }\n .sm\\:p-2 {\n padding: 0.5rem;\n }\n .sm\\:p-3 {\n padding: 0.75rem;\n }\n .sm\\:p-4 {\n padding: 1rem;\n }\n .sm\\:p-5 {\n padding: 1.25rem;\n }\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n .sm\\:p-7 {\n padding: 2rem;\n }\n .sm\\:p-8 {\n padding: 2.5rem;\n }\n .sm\\:p-9 {\n padding: 3rem;\n }\n .sm\\:px-0 {\n padding-inline: 0;\n }\n .sm\\:px-1 {\n padding-inline: 0.25rem;\n }\n .sm\\:px-2 {\n padding-inline: 0.5rem;\n }\n .sm\\:px-3 {\n padding-inline: 0.75rem;\n }\n .sm\\:px-4 {\n padding-inline: 1rem;\n }\n .sm\\:px-5 {\n padding-inline: 1.25rem;\n }\n .sm\\:px-6 {\n padding-inline: 1.5rem;\n }\n .sm\\:px-7 {\n padding-inline: 2rem;\n }\n .sm\\:px-8 {\n padding-inline: 2.5rem;\n }\n .sm\\:px-9 {\n padding-inline: 3rem;\n }\n .sm\\:py-0 {\n padding-block: 0;\n }\n .sm\\:py-1 {\n padding-block: 0.25rem;\n }\n .sm\\:py-2 {\n padding-block: 0.5rem;\n }\n .sm\\:py-3 {\n padding-block: 0.75rem;\n }\n .sm\\:py-4 {\n padding-block: 1rem;\n }\n .sm\\:py-5 {\n padding-block: 1.25rem;\n }\n .sm\\:py-6 {\n padding-block: 1.5rem;\n }\n .sm\\:py-7 {\n padding-block: 2rem;\n }\n .sm\\:py-8 {\n padding-block: 2.5rem;\n }\n .sm\\:py-9 {\n padding-block: 3rem;\n }\n .sm\\:pt-0 {\n padding-block-start: 0;\n }\n .sm\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .sm\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .sm\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .sm\\:pt-4 {\n padding-block-start: 1rem;\n }\n .sm\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .sm\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .sm\\:pt-7 {\n padding-block-start: 2rem;\n }\n .sm\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .sm\\:pt-9 {\n padding-block-start: 3rem;\n }\n .sm\\:pe-0 {\n padding-inline-end: 0;\n }\n .sm\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .sm\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .sm\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .sm\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .sm\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .sm\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .sm\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .sm\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .sm\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .sm\\:pb-0 {\n padding-block-end: 0;\n }\n .sm\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .sm\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .sm\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .sm\\:pb-4 {\n padding-block-end: 1rem;\n }\n .sm\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .sm\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .sm\\:pb-7 {\n padding-block-end: 2rem;\n }\n .sm\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .sm\\:pb-9 {\n padding-block-end: 3rem;\n }\n .sm\\:ps-0 {\n padding-inline-start: 0;\n }\n .sm\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .sm\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .sm\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .sm\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .sm\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .sm\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .sm\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .sm\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .sm\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .sm\\:gap-0 {\n gap: 0;\n }\n .sm\\:gap-1 {\n gap: 0.25rem;\n }\n .sm\\:gap-2 {\n gap: 0.5rem;\n }\n .sm\\:gap-3 {\n gap: 0.75rem;\n }\n .sm\\:gap-4 {\n gap: 1rem;\n }\n .sm\\:gap-5 {\n gap: 1.25rem;\n }\n .sm\\:gap-6 {\n gap: 1.5rem;\n }\n .sm\\:gap-7 {\n gap: 2rem;\n }\n .sm\\:gap-8 {\n gap: 2.5rem;\n }\n .sm\\:gap-9 {\n gap: 3rem;\n }\n .sm\\:row-gap-0 {\n row-gap: 0;\n }\n .sm\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .sm\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .sm\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .sm\\:row-gap-4 {\n row-gap: 1rem;\n }\n .sm\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .sm\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .sm\\:row-gap-7 {\n row-gap: 2rem;\n }\n .sm\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .sm\\:row-gap-9 {\n row-gap: 3rem;\n }\n .sm\\:column-gap-0 {\n column-gap: 0;\n }\n .sm\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .sm\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .sm\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .sm\\:column-gap-4 {\n column-gap: 1rem;\n }\n .sm\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .sm\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .sm\\:column-gap-7 {\n column-gap: 2rem;\n }\n .sm\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .sm\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.sm\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.sm\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.sm\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.sm\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.sm\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.sm\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.sm\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.sm\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.sm\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.sm\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.sm\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.sm\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.sm\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.sm\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.sm\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.sm\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.sm\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.sm\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.sm\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.sm\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.sm\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.sm\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.sm\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.sm\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .sm\\:text-start {\n text-align: start;\n }\n .sm\\:text-end {\n text-align: end;\n }\n .sm\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 768px) {\n .md\\:float-start {\n float: inline-start;\n }\n .md\\:float-end {\n float: inline-end;\n }\n .md\\:float-none {\n float: none;\n }\n .md\\:object-fit-contain {\n object-fit: contain;\n }\n .md\\:object-fit-cover {\n object-fit: cover;\n }\n .md\\:object-fit-fill {\n object-fit: fill;\n }\n .md\\:object-fit-scale {\n object-fit: scale-down;\n }\n .md\\:object-fit-none {\n object-fit: none;\n }\n .md\\:d-inline {\n display: inline;\n }\n .md\\:d-inline-block {\n display: inline-block;\n }\n .md\\:d-block {\n display: block;\n }\n .md\\:d-grid {\n display: grid;\n }\n .md\\:d-inline-grid {\n display: inline-grid;\n }\n .md\\:d-table {\n display: table;\n }\n .md\\:d-table-row {\n display: table-row;\n }\n .md\\:d-table-cell {\n display: table-cell;\n }\n .md\\:d-flex {\n display: flex;\n }\n .md\\:d-inline-flex {\n display: inline-flex;\n }\n .md\\:d-contents {\n display: contents;\n }\n .md\\:d-flow-root {\n display: flow-root;\n }\n .md\\:d-none {\n display: none;\n }\n .md\\:flex-fill {\n flex: 1 1 auto;\n }\n .md\\:flex-row {\n flex-direction: row;\n }\n .md\\:flex-column {\n flex-direction: column;\n }\n .md\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .md\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .md\\:flex-grow-0 {\n flex-grow: 0;\n }\n .md\\:flex-grow-1 {\n flex-grow: 1;\n }\n .md\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .md\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .md\\:flex-wrap {\n flex-wrap: wrap;\n }\n .md\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .md\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .md\\:justify-content-start {\n justify-content: flex-start;\n }\n .md\\:justify-content-end {\n justify-content: flex-end;\n }\n .md\\:justify-content-center {\n justify-content: center;\n }\n .md\\:justify-content-between {\n justify-content: space-between;\n }\n .md\\:justify-content-around {\n justify-content: space-around;\n }\n .md\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .md\\:justify-items-start {\n justify-items: start;\n }\n .md\\:justify-items-end {\n justify-items: end;\n }\n .md\\:justify-items-center {\n justify-items: center;\n }\n .md\\:justify-items-stretch {\n justify-items: stretch;\n }\n .md\\:justify-self-start {\n justify-self: start;\n }\n .md\\:justify-self-end {\n justify-self: end;\n }\n .md\\:justify-self-center {\n justify-self: center;\n }\n .md\\:align-items-start {\n align-items: flex-start;\n }\n .md\\:align-items-end {\n align-items: flex-end;\n }\n .md\\:align-items-center {\n align-items: center;\n }\n .md\\:align-items-baseline {\n align-items: baseline;\n }\n .md\\:align-items-stretch {\n align-items: stretch;\n }\n .md\\:align-content-start {\n align-content: flex-start;\n }\n .md\\:align-content-end {\n align-content: flex-end;\n }\n .md\\:align-content-center {\n align-content: center;\n }\n .md\\:align-content-between {\n align-content: space-between;\n }\n .md\\:align-content-around {\n align-content: space-around;\n }\n .md\\:align-content-stretch {\n align-content: stretch;\n }\n .md\\:align-self-auto {\n align-self: auto;\n }\n .md\\:align-self-start {\n align-self: flex-start;\n }\n .md\\:align-self-end {\n align-self: flex-end;\n }\n .md\\:align-self-center {\n align-self: center;\n }\n .md\\:align-self-baseline {\n align-self: baseline;\n }\n .md\\:align-self-stretch {\n align-self: stretch;\n }\n .md\\:place-items-start {\n place-items: start;\n }\n .md\\:place-items-end {\n place-items: end;\n }\n .md\\:place-items-center {\n place-items: center;\n }\n .md\\:place-items-stretch {\n place-items: stretch;\n }\n .md\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .md\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .md\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .md\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .md\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .md\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .md\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .md\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .md\\:order-first {\n order: -1;\n }\n .md\\:order-0 {\n order: 0;\n }\n .md\\:order-1 {\n order: 1;\n }\n .md\\:order-2 {\n order: 2;\n }\n .md\\:order-3 {\n order: 3;\n }\n .md\\:order-4 {\n order: 4;\n }\n .md\\:order-5 {\n order: 5;\n }\n .md\\:order-last {\n order: 6;\n }\n .md\\:m-0 {\n margin: 0;\n }\n .md\\:m-1 {\n margin: 0.25rem;\n }\n .md\\:m-2 {\n margin: 0.5rem;\n }\n .md\\:m-3 {\n margin: 0.75rem;\n }\n .md\\:m-4 {\n margin: 1rem;\n }\n .md\\:m-5 {\n margin: 1.25rem;\n }\n .md\\:m-6 {\n margin: 1.5rem;\n }\n .md\\:m-7 {\n margin: 2rem;\n }\n .md\\:m-8 {\n margin: 2.5rem;\n }\n .md\\:m-9 {\n margin: 3rem;\n }\n .md\\:m-auto {\n margin: auto;\n }\n .md\\:mx-0 {\n margin-inline: 0;\n }\n .md\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .md\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .md\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .md\\:mx-4 {\n margin-inline: 1rem;\n }\n .md\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .md\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .md\\:mx-7 {\n margin-inline: 2rem;\n }\n .md\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .md\\:mx-9 {\n margin-inline: 3rem;\n }\n .md\\:mx-auto {\n margin-inline: auto;\n }\n .md\\:my-0 {\n margin-block: 0;\n }\n .md\\:my-1 {\n margin-block: 0.25rem;\n }\n .md\\:my-2 {\n margin-block: 0.5rem;\n }\n .md\\:my-3 {\n margin-block: 0.75rem;\n }\n .md\\:my-4 {\n margin-block: 1rem;\n }\n .md\\:my-5 {\n margin-block: 1.25rem;\n }\n .md\\:my-6 {\n margin-block: 1.5rem;\n }\n .md\\:my-7 {\n margin-block: 2rem;\n }\n .md\\:my-8 {\n margin-block: 2.5rem;\n }\n .md\\:my-9 {\n margin-block: 3rem;\n }\n .md\\:my-auto {\n margin-block: auto;\n }\n .md\\:mt-0 {\n margin-block-start: 0;\n }\n .md\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .md\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .md\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .md\\:mt-4 {\n margin-block-start: 1rem;\n }\n .md\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .md\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .md\\:mt-7 {\n margin-block-start: 2rem;\n }\n .md\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .md\\:mt-9 {\n margin-block-start: 3rem;\n }\n .md\\:mt-auto {\n margin-block-start: auto;\n }\n .md\\:me-0 {\n margin-inline-end: 0;\n }\n .md\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .md\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .md\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .md\\:me-4 {\n margin-inline-end: 1rem;\n }\n .md\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .md\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .md\\:me-7 {\n margin-inline-end: 2rem;\n }\n .md\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .md\\:me-9 {\n margin-inline-end: 3rem;\n }\n .md\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .md\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .md\\:me-auto {\n margin-inline-end: auto;\n }\n .md\\:mb-0 {\n margin-block-end: 0;\n }\n .md\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .md\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .md\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .md\\:mb-4 {\n margin-block-end: 1rem;\n }\n .md\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .md\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .md\\:mb-7 {\n margin-block-end: 2rem;\n }\n .md\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .md\\:mb-9 {\n margin-block-end: 3rem;\n }\n .md\\:mb-auto {\n margin-block-end: auto;\n }\n .md\\:ms-0 {\n margin-inline-start: 0;\n }\n .md\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .md\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .md\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .md\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .md\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .md\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .md\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .md\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .md\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .md\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .md\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .md\\:ms-auto {\n margin-inline-start: auto;\n }\n .md\\:p-0 {\n padding: 0;\n }\n .md\\:p-1 {\n padding: 0.25rem;\n }\n .md\\:p-2 {\n padding: 0.5rem;\n }\n .md\\:p-3 {\n padding: 0.75rem;\n }\n .md\\:p-4 {\n padding: 1rem;\n }\n .md\\:p-5 {\n padding: 1.25rem;\n }\n .md\\:p-6 {\n padding: 1.5rem;\n }\n .md\\:p-7 {\n padding: 2rem;\n }\n .md\\:p-8 {\n padding: 2.5rem;\n }\n .md\\:p-9 {\n padding: 3rem;\n }\n .md\\:px-0 {\n padding-inline: 0;\n }\n .md\\:px-1 {\n padding-inline: 0.25rem;\n }\n .md\\:px-2 {\n padding-inline: 0.5rem;\n }\n .md\\:px-3 {\n padding-inline: 0.75rem;\n }\n .md\\:px-4 {\n padding-inline: 1rem;\n }\n .md\\:px-5 {\n padding-inline: 1.25rem;\n }\n .md\\:px-6 {\n padding-inline: 1.5rem;\n }\n .md\\:px-7 {\n padding-inline: 2rem;\n }\n .md\\:px-8 {\n padding-inline: 2.5rem;\n }\n .md\\:px-9 {\n padding-inline: 3rem;\n }\n .md\\:py-0 {\n padding-block: 0;\n }\n .md\\:py-1 {\n padding-block: 0.25rem;\n }\n .md\\:py-2 {\n padding-block: 0.5rem;\n }\n .md\\:py-3 {\n padding-block: 0.75rem;\n }\n .md\\:py-4 {\n padding-block: 1rem;\n }\n .md\\:py-5 {\n padding-block: 1.25rem;\n }\n .md\\:py-6 {\n padding-block: 1.5rem;\n }\n .md\\:py-7 {\n padding-block: 2rem;\n }\n .md\\:py-8 {\n padding-block: 2.5rem;\n }\n .md\\:py-9 {\n padding-block: 3rem;\n }\n .md\\:pt-0 {\n padding-block-start: 0;\n }\n .md\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .md\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .md\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .md\\:pt-4 {\n padding-block-start: 1rem;\n }\n .md\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .md\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .md\\:pt-7 {\n padding-block-start: 2rem;\n }\n .md\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .md\\:pt-9 {\n padding-block-start: 3rem;\n }\n .md\\:pe-0 {\n padding-inline-end: 0;\n }\n .md\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .md\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .md\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .md\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .md\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .md\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .md\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .md\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .md\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .md\\:pb-0 {\n padding-block-end: 0;\n }\n .md\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .md\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .md\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .md\\:pb-4 {\n padding-block-end: 1rem;\n }\n .md\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .md\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .md\\:pb-7 {\n padding-block-end: 2rem;\n }\n .md\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .md\\:pb-9 {\n padding-block-end: 3rem;\n }\n .md\\:ps-0 {\n padding-inline-start: 0;\n }\n .md\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .md\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .md\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .md\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .md\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .md\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .md\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .md\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .md\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .md\\:gap-0 {\n gap: 0;\n }\n .md\\:gap-1 {\n gap: 0.25rem;\n }\n .md\\:gap-2 {\n gap: 0.5rem;\n }\n .md\\:gap-3 {\n gap: 0.75rem;\n }\n .md\\:gap-4 {\n gap: 1rem;\n }\n .md\\:gap-5 {\n gap: 1.25rem;\n }\n .md\\:gap-6 {\n gap: 1.5rem;\n }\n .md\\:gap-7 {\n gap: 2rem;\n }\n .md\\:gap-8 {\n gap: 2.5rem;\n }\n .md\\:gap-9 {\n gap: 3rem;\n }\n .md\\:row-gap-0 {\n row-gap: 0;\n }\n .md\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .md\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .md\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .md\\:row-gap-4 {\n row-gap: 1rem;\n }\n .md\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .md\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .md\\:row-gap-7 {\n row-gap: 2rem;\n }\n .md\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .md\\:row-gap-9 {\n row-gap: 3rem;\n }\n .md\\:column-gap-0 {\n column-gap: 0;\n }\n .md\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .md\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .md\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .md\\:column-gap-4 {\n column-gap: 1rem;\n }\n .md\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .md\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .md\\:column-gap-7 {\n column-gap: 2rem;\n }\n .md\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .md\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.md\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.md\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.md\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.md\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.md\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.md\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.md\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.md\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.md\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.md\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.md\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.md\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.md\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.md\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.md\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.md\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.md\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.md\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.md\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.md\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.md\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.md\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.md\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.md\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .md\\:text-start {\n text-align: start;\n }\n .md\\:text-end {\n text-align: end;\n }\n .md\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1024px) {\n .lg\\:float-start {\n float: inline-start;\n }\n .lg\\:float-end {\n float: inline-end;\n }\n .lg\\:float-none {\n float: none;\n }\n .lg\\:object-fit-contain {\n object-fit: contain;\n }\n .lg\\:object-fit-cover {\n object-fit: cover;\n }\n .lg\\:object-fit-fill {\n object-fit: fill;\n }\n .lg\\:object-fit-scale {\n object-fit: scale-down;\n }\n .lg\\:object-fit-none {\n object-fit: none;\n }\n .lg\\:d-inline {\n display: inline;\n }\n .lg\\:d-inline-block {\n display: inline-block;\n }\n .lg\\:d-block {\n display: block;\n }\n .lg\\:d-grid {\n display: grid;\n }\n .lg\\:d-inline-grid {\n display: inline-grid;\n }\n .lg\\:d-table {\n display: table;\n }\n .lg\\:d-table-row {\n display: table-row;\n }\n .lg\\:d-table-cell {\n display: table-cell;\n }\n .lg\\:d-flex {\n display: flex;\n }\n .lg\\:d-inline-flex {\n display: inline-flex;\n }\n .lg\\:d-contents {\n display: contents;\n }\n .lg\\:d-flow-root {\n display: flow-root;\n }\n .lg\\:d-none {\n display: none;\n }\n .lg\\:flex-fill {\n flex: 1 1 auto;\n }\n .lg\\:flex-row {\n flex-direction: row;\n }\n .lg\\:flex-column {\n flex-direction: column;\n }\n .lg\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .lg\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .lg\\:flex-grow-0 {\n flex-grow: 0;\n }\n .lg\\:flex-grow-1 {\n flex-grow: 1;\n }\n .lg\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .lg\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .lg\\:flex-wrap {\n flex-wrap: wrap;\n }\n .lg\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .lg\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .lg\\:justify-content-start {\n justify-content: flex-start;\n }\n .lg\\:justify-content-end {\n justify-content: flex-end;\n }\n .lg\\:justify-content-center {\n justify-content: center;\n }\n .lg\\:justify-content-between {\n justify-content: space-between;\n }\n .lg\\:justify-content-around {\n justify-content: space-around;\n }\n .lg\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .lg\\:justify-items-start {\n justify-items: start;\n }\n .lg\\:justify-items-end {\n justify-items: end;\n }\n .lg\\:justify-items-center {\n justify-items: center;\n }\n .lg\\:justify-items-stretch {\n justify-items: stretch;\n }\n .lg\\:justify-self-start {\n justify-self: start;\n }\n .lg\\:justify-self-end {\n justify-self: end;\n }\n .lg\\:justify-self-center {\n justify-self: center;\n }\n .lg\\:align-items-start {\n align-items: flex-start;\n }\n .lg\\:align-items-end {\n align-items: flex-end;\n }\n .lg\\:align-items-center {\n align-items: center;\n }\n .lg\\:align-items-baseline {\n align-items: baseline;\n }\n .lg\\:align-items-stretch {\n align-items: stretch;\n }\n .lg\\:align-content-start {\n align-content: flex-start;\n }\n .lg\\:align-content-end {\n align-content: flex-end;\n }\n .lg\\:align-content-center {\n align-content: center;\n }\n .lg\\:align-content-between {\n align-content: space-between;\n }\n .lg\\:align-content-around {\n align-content: space-around;\n }\n .lg\\:align-content-stretch {\n align-content: stretch;\n }\n .lg\\:align-self-auto {\n align-self: auto;\n }\n .lg\\:align-self-start {\n align-self: flex-start;\n }\n .lg\\:align-self-end {\n align-self: flex-end;\n }\n .lg\\:align-self-center {\n align-self: center;\n }\n .lg\\:align-self-baseline {\n align-self: baseline;\n }\n .lg\\:align-self-stretch {\n align-self: stretch;\n }\n .lg\\:place-items-start {\n place-items: start;\n }\n .lg\\:place-items-end {\n place-items: end;\n }\n .lg\\:place-items-center {\n place-items: center;\n }\n .lg\\:place-items-stretch {\n place-items: stretch;\n }\n .lg\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .lg\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .lg\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .lg\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .lg\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .lg\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .lg\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .lg\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .lg\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .lg\\:order-first {\n order: -1;\n }\n .lg\\:order-0 {\n order: 0;\n }\n .lg\\:order-1 {\n order: 1;\n }\n .lg\\:order-2 {\n order: 2;\n }\n .lg\\:order-3 {\n order: 3;\n }\n .lg\\:order-4 {\n order: 4;\n }\n .lg\\:order-5 {\n order: 5;\n }\n .lg\\:order-last {\n order: 6;\n }\n .lg\\:m-0 {\n margin: 0;\n }\n .lg\\:m-1 {\n margin: 0.25rem;\n }\n .lg\\:m-2 {\n margin: 0.5rem;\n }\n .lg\\:m-3 {\n margin: 0.75rem;\n }\n .lg\\:m-4 {\n margin: 1rem;\n }\n .lg\\:m-5 {\n margin: 1.25rem;\n }\n .lg\\:m-6 {\n margin: 1.5rem;\n }\n .lg\\:m-7 {\n margin: 2rem;\n }\n .lg\\:m-8 {\n margin: 2.5rem;\n }\n .lg\\:m-9 {\n margin: 3rem;\n }\n .lg\\:m-auto {\n margin: auto;\n }\n .lg\\:mx-0 {\n margin-inline: 0;\n }\n .lg\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .lg\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .lg\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .lg\\:mx-4 {\n margin-inline: 1rem;\n }\n .lg\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .lg\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .lg\\:mx-7 {\n margin-inline: 2rem;\n }\n .lg\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .lg\\:mx-9 {\n margin-inline: 3rem;\n }\n .lg\\:mx-auto {\n margin-inline: auto;\n }\n .lg\\:my-0 {\n margin-block: 0;\n }\n .lg\\:my-1 {\n margin-block: 0.25rem;\n }\n .lg\\:my-2 {\n margin-block: 0.5rem;\n }\n .lg\\:my-3 {\n margin-block: 0.75rem;\n }\n .lg\\:my-4 {\n margin-block: 1rem;\n }\n .lg\\:my-5 {\n margin-block: 1.25rem;\n }\n .lg\\:my-6 {\n margin-block: 1.5rem;\n }\n .lg\\:my-7 {\n margin-block: 2rem;\n }\n .lg\\:my-8 {\n margin-block: 2.5rem;\n }\n .lg\\:my-9 {\n margin-block: 3rem;\n }\n .lg\\:my-auto {\n margin-block: auto;\n }\n .lg\\:mt-0 {\n margin-block-start: 0;\n }\n .lg\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .lg\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .lg\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .lg\\:mt-4 {\n margin-block-start: 1rem;\n }\n .lg\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .lg\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .lg\\:mt-7 {\n margin-block-start: 2rem;\n }\n .lg\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .lg\\:mt-9 {\n margin-block-start: 3rem;\n }\n .lg\\:mt-auto {\n margin-block-start: auto;\n }\n .lg\\:me-0 {\n margin-inline-end: 0;\n }\n .lg\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .lg\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .lg\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .lg\\:me-4 {\n margin-inline-end: 1rem;\n }\n .lg\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .lg\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .lg\\:me-7 {\n margin-inline-end: 2rem;\n }\n .lg\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .lg\\:me-9 {\n margin-inline-end: 3rem;\n }\n .lg\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .lg\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .lg\\:me-auto {\n margin-inline-end: auto;\n }\n .lg\\:mb-0 {\n margin-block-end: 0;\n }\n .lg\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .lg\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .lg\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .lg\\:mb-4 {\n margin-block-end: 1rem;\n }\n .lg\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .lg\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .lg\\:mb-7 {\n margin-block-end: 2rem;\n }\n .lg\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .lg\\:mb-9 {\n margin-block-end: 3rem;\n }\n .lg\\:mb-auto {\n margin-block-end: auto;\n }\n .lg\\:ms-0 {\n margin-inline-start: 0;\n }\n .lg\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .lg\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .lg\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .lg\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .lg\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .lg\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .lg\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .lg\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .lg\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .lg\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .lg\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .lg\\:ms-auto {\n margin-inline-start: auto;\n }\n .lg\\:p-0 {\n padding: 0;\n }\n .lg\\:p-1 {\n padding: 0.25rem;\n }\n .lg\\:p-2 {\n padding: 0.5rem;\n }\n .lg\\:p-3 {\n padding: 0.75rem;\n }\n .lg\\:p-4 {\n padding: 1rem;\n }\n .lg\\:p-5 {\n padding: 1.25rem;\n }\n .lg\\:p-6 {\n padding: 1.5rem;\n }\n .lg\\:p-7 {\n padding: 2rem;\n }\n .lg\\:p-8 {\n padding: 2.5rem;\n }\n .lg\\:p-9 {\n padding: 3rem;\n }\n .lg\\:px-0 {\n padding-inline: 0;\n }\n .lg\\:px-1 {\n padding-inline: 0.25rem;\n }\n .lg\\:px-2 {\n padding-inline: 0.5rem;\n }\n .lg\\:px-3 {\n padding-inline: 0.75rem;\n }\n .lg\\:px-4 {\n padding-inline: 1rem;\n }\n .lg\\:px-5 {\n padding-inline: 1.25rem;\n }\n .lg\\:px-6 {\n padding-inline: 1.5rem;\n }\n .lg\\:px-7 {\n padding-inline: 2rem;\n }\n .lg\\:px-8 {\n padding-inline: 2.5rem;\n }\n .lg\\:px-9 {\n padding-inline: 3rem;\n }\n .lg\\:py-0 {\n padding-block: 0;\n }\n .lg\\:py-1 {\n padding-block: 0.25rem;\n }\n .lg\\:py-2 {\n padding-block: 0.5rem;\n }\n .lg\\:py-3 {\n padding-block: 0.75rem;\n }\n .lg\\:py-4 {\n padding-block: 1rem;\n }\n .lg\\:py-5 {\n padding-block: 1.25rem;\n }\n .lg\\:py-6 {\n padding-block: 1.5rem;\n }\n .lg\\:py-7 {\n padding-block: 2rem;\n }\n .lg\\:py-8 {\n padding-block: 2.5rem;\n }\n .lg\\:py-9 {\n padding-block: 3rem;\n }\n .lg\\:pt-0 {\n padding-block-start: 0;\n }\n .lg\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .lg\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .lg\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .lg\\:pt-4 {\n padding-block-start: 1rem;\n }\n .lg\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .lg\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .lg\\:pt-7 {\n padding-block-start: 2rem;\n }\n .lg\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .lg\\:pt-9 {\n padding-block-start: 3rem;\n }\n .lg\\:pe-0 {\n padding-inline-end: 0;\n }\n .lg\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .lg\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .lg\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .lg\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .lg\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .lg\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .lg\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .lg\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .lg\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .lg\\:pb-0 {\n padding-block-end: 0;\n }\n .lg\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .lg\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .lg\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .lg\\:pb-4 {\n padding-block-end: 1rem;\n }\n .lg\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .lg\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .lg\\:pb-7 {\n padding-block-end: 2rem;\n }\n .lg\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .lg\\:pb-9 {\n padding-block-end: 3rem;\n }\n .lg\\:ps-0 {\n padding-inline-start: 0;\n }\n .lg\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .lg\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .lg\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .lg\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .lg\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .lg\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .lg\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .lg\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .lg\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .lg\\:gap-0 {\n gap: 0;\n }\n .lg\\:gap-1 {\n gap: 0.25rem;\n }\n .lg\\:gap-2 {\n gap: 0.5rem;\n }\n .lg\\:gap-3 {\n gap: 0.75rem;\n }\n .lg\\:gap-4 {\n gap: 1rem;\n }\n .lg\\:gap-5 {\n gap: 1.25rem;\n }\n .lg\\:gap-6 {\n gap: 1.5rem;\n }\n .lg\\:gap-7 {\n gap: 2rem;\n }\n .lg\\:gap-8 {\n gap: 2.5rem;\n }\n .lg\\:gap-9 {\n gap: 3rem;\n }\n .lg\\:row-gap-0 {\n row-gap: 0;\n }\n .lg\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .lg\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .lg\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .lg\\:row-gap-4 {\n row-gap: 1rem;\n }\n .lg\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .lg\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .lg\\:row-gap-7 {\n row-gap: 2rem;\n }\n .lg\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .lg\\:row-gap-9 {\n row-gap: 3rem;\n }\n .lg\\:column-gap-0 {\n column-gap: 0;\n }\n .lg\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .lg\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .lg\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .lg\\:column-gap-4 {\n column-gap: 1rem;\n }\n .lg\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .lg\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .lg\\:column-gap-7 {\n column-gap: 2rem;\n }\n .lg\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .lg\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.lg\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.lg\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.lg\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.lg\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.lg\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.lg\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.lg\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.lg\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.lg\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.lg\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.lg\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.lg\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.lg\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.lg\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.lg\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.lg\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.lg\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.lg\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.lg\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.lg\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.lg\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.lg\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.lg\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.lg\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .lg\\:text-start {\n text-align: start;\n }\n .lg\\:text-end {\n text-align: end;\n }\n .lg\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1280px) {\n .xl\\:float-start {\n float: inline-start;\n }\n .xl\\:float-end {\n float: inline-end;\n }\n .xl\\:float-none {\n float: none;\n }\n .xl\\:object-fit-contain {\n object-fit: contain;\n }\n .xl\\:object-fit-cover {\n object-fit: cover;\n }\n .xl\\:object-fit-fill {\n object-fit: fill;\n }\n .xl\\:object-fit-scale {\n object-fit: scale-down;\n }\n .xl\\:object-fit-none {\n object-fit: none;\n }\n .xl\\:d-inline {\n display: inline;\n }\n .xl\\:d-inline-block {\n display: inline-block;\n }\n .xl\\:d-block {\n display: block;\n }\n .xl\\:d-grid {\n display: grid;\n }\n .xl\\:d-inline-grid {\n display: inline-grid;\n }\n .xl\\:d-table {\n display: table;\n }\n .xl\\:d-table-row {\n display: table-row;\n }\n .xl\\:d-table-cell {\n display: table-cell;\n }\n .xl\\:d-flex {\n display: flex;\n }\n .xl\\:d-inline-flex {\n display: inline-flex;\n }\n .xl\\:d-contents {\n display: contents;\n }\n .xl\\:d-flow-root {\n display: flow-root;\n }\n .xl\\:d-none {\n display: none;\n }\n .xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .xl\\:flex-row {\n flex-direction: row;\n }\n .xl\\:flex-column {\n flex-direction: column;\n }\n .xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .xl\\:justify-content-center {\n justify-content: center;\n }\n .xl\\:justify-content-between {\n justify-content: space-between;\n }\n .xl\\:justify-content-around {\n justify-content: space-around;\n }\n .xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .xl\\:justify-items-start {\n justify-items: start;\n }\n .xl\\:justify-items-end {\n justify-items: end;\n }\n .xl\\:justify-items-center {\n justify-items: center;\n }\n .xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .xl\\:justify-self-start {\n justify-self: start;\n }\n .xl\\:justify-self-end {\n justify-self: end;\n }\n .xl\\:justify-self-center {\n justify-self: center;\n }\n .xl\\:align-items-start {\n align-items: flex-start;\n }\n .xl\\:align-items-end {\n align-items: flex-end;\n }\n .xl\\:align-items-center {\n align-items: center;\n }\n .xl\\:align-items-baseline {\n align-items: baseline;\n }\n .xl\\:align-items-stretch {\n align-items: stretch;\n }\n .xl\\:align-content-start {\n align-content: flex-start;\n }\n .xl\\:align-content-end {\n align-content: flex-end;\n }\n .xl\\:align-content-center {\n align-content: center;\n }\n .xl\\:align-content-between {\n align-content: space-between;\n }\n .xl\\:align-content-around {\n align-content: space-around;\n }\n .xl\\:align-content-stretch {\n align-content: stretch;\n }\n .xl\\:align-self-auto {\n align-self: auto;\n }\n .xl\\:align-self-start {\n align-self: flex-start;\n }\n .xl\\:align-self-end {\n align-self: flex-end;\n }\n .xl\\:align-self-center {\n align-self: center;\n }\n .xl\\:align-self-baseline {\n align-self: baseline;\n }\n .xl\\:align-self-stretch {\n align-self: stretch;\n }\n .xl\\:place-items-start {\n place-items: start;\n }\n .xl\\:place-items-end {\n place-items: end;\n }\n .xl\\:place-items-center {\n place-items: center;\n }\n .xl\\:place-items-stretch {\n place-items: stretch;\n }\n .xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .xl\\:order-first {\n order: -1;\n }\n .xl\\:order-0 {\n order: 0;\n }\n .xl\\:order-1 {\n order: 1;\n }\n .xl\\:order-2 {\n order: 2;\n }\n .xl\\:order-3 {\n order: 3;\n }\n .xl\\:order-4 {\n order: 4;\n }\n .xl\\:order-5 {\n order: 5;\n }\n .xl\\:order-last {\n order: 6;\n }\n .xl\\:m-0 {\n margin: 0;\n }\n .xl\\:m-1 {\n margin: 0.25rem;\n }\n .xl\\:m-2 {\n margin: 0.5rem;\n }\n .xl\\:m-3 {\n margin: 0.75rem;\n }\n .xl\\:m-4 {\n margin: 1rem;\n }\n .xl\\:m-5 {\n margin: 1.25rem;\n }\n .xl\\:m-6 {\n margin: 1.5rem;\n }\n .xl\\:m-7 {\n margin: 2rem;\n }\n .xl\\:m-8 {\n margin: 2.5rem;\n }\n .xl\\:m-9 {\n margin: 3rem;\n }\n .xl\\:m-auto {\n margin: auto;\n }\n .xl\\:mx-0 {\n margin-inline: 0;\n }\n .xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .xl\\:mx-auto {\n margin-inline: auto;\n }\n .xl\\:my-0 {\n margin-block: 0;\n }\n .xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .xl\\:my-4 {\n margin-block: 1rem;\n }\n .xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .xl\\:my-7 {\n margin-block: 2rem;\n }\n .xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .xl\\:my-9 {\n margin-block: 3rem;\n }\n .xl\\:my-auto {\n margin-block: auto;\n }\n .xl\\:mt-0 {\n margin-block-start: 0;\n }\n .xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .xl\\:mt-auto {\n margin-block-start: auto;\n }\n .xl\\:me-0 {\n margin-inline-end: 0;\n }\n .xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .xl\\:me-auto {\n margin-inline-end: auto;\n }\n .xl\\:mb-0 {\n margin-block-end: 0;\n }\n .xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .xl\\:mb-auto {\n margin-block-end: auto;\n }\n .xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .xl\\:p-0 {\n padding: 0;\n }\n .xl\\:p-1 {\n padding: 0.25rem;\n }\n .xl\\:p-2 {\n padding: 0.5rem;\n }\n .xl\\:p-3 {\n padding: 0.75rem;\n }\n .xl\\:p-4 {\n padding: 1rem;\n }\n .xl\\:p-5 {\n padding: 1.25rem;\n }\n .xl\\:p-6 {\n padding: 1.5rem;\n }\n .xl\\:p-7 {\n padding: 2rem;\n }\n .xl\\:p-8 {\n padding: 2.5rem;\n }\n .xl\\:p-9 {\n padding: 3rem;\n }\n .xl\\:px-0 {\n padding-inline: 0;\n }\n .xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .xl\\:px-4 {\n padding-inline: 1rem;\n }\n .xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .xl\\:px-7 {\n padding-inline: 2rem;\n }\n .xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .xl\\:px-9 {\n padding-inline: 3rem;\n }\n .xl\\:py-0 {\n padding-block: 0;\n }\n .xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .xl\\:py-4 {\n padding-block: 1rem;\n }\n .xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .xl\\:py-7 {\n padding-block: 2rem;\n }\n .xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .xl\\:py-9 {\n padding-block: 3rem;\n }\n .xl\\:pt-0 {\n padding-block-start: 0;\n }\n .xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .xl\\:pb-0 {\n padding-block-end: 0;\n }\n .xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .xl\\:gap-0 {\n gap: 0;\n }\n .xl\\:gap-1 {\n gap: 0.25rem;\n }\n .xl\\:gap-2 {\n gap: 0.5rem;\n }\n .xl\\:gap-3 {\n gap: 0.75rem;\n }\n .xl\\:gap-4 {\n gap: 1rem;\n }\n .xl\\:gap-5 {\n gap: 1.25rem;\n }\n .xl\\:gap-6 {\n gap: 1.5rem;\n }\n .xl\\:gap-7 {\n gap: 2rem;\n }\n .xl\\:gap-8 {\n gap: 2.5rem;\n }\n .xl\\:gap-9 {\n gap: 3rem;\n }\n .xl\\:row-gap-0 {\n row-gap: 0;\n }\n .xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .xl\\:column-gap-0 {\n column-gap: 0;\n }\n .xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.xl\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.xl\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.xl\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.xl\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.xl\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.xl\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.xl\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.xl\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.xl\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.xl\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.xl\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.xl\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.xl\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.xl\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.xl\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.xl\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.xl\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.xl\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.xl\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.xl\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.xl\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.xl\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.xl\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.xl\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .xl\\:text-start {\n text-align: start;\n }\n .xl\\:text-end {\n text-align: end;\n }\n .xl\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:float-start {\n float: inline-start;\n }\n .\\32 xl\\:float-end {\n float: inline-end;\n }\n .\\32 xl\\:float-none {\n float: none;\n }\n .\\32 xl\\:object-fit-contain {\n object-fit: contain;\n }\n .\\32 xl\\:object-fit-cover {\n object-fit: cover;\n }\n .\\32 xl\\:object-fit-fill {\n object-fit: fill;\n }\n .\\32 xl\\:object-fit-scale {\n object-fit: scale-down;\n }\n .\\32 xl\\:object-fit-none {\n object-fit: none;\n }\n .\\32 xl\\:d-inline {\n display: inline;\n }\n .\\32 xl\\:d-inline-block {\n display: inline-block;\n }\n .\\32 xl\\:d-block {\n display: block;\n }\n .\\32 xl\\:d-grid {\n display: grid;\n }\n .\\32 xl\\:d-inline-grid {\n display: inline-grid;\n }\n .\\32 xl\\:d-table {\n display: table;\n }\n .\\32 xl\\:d-table-row {\n display: table-row;\n }\n .\\32 xl\\:d-table-cell {\n display: table-cell;\n }\n .\\32 xl\\:d-flex {\n display: flex;\n }\n .\\32 xl\\:d-inline-flex {\n display: inline-flex;\n }\n .\\32 xl\\:d-contents {\n display: contents;\n }\n .\\32 xl\\:d-flow-root {\n display: flow-root;\n }\n .\\32 xl\\:d-none {\n display: none;\n }\n .\\32 xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .\\32 xl\\:flex-row {\n flex-direction: row;\n }\n .\\32 xl\\:flex-column {\n flex-direction: column;\n }\n .\\32 xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .\\32 xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .\\32 xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .\\32 xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .\\32 xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .\\32 xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .\\32 xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .\\32 xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .\\32 xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .\\32 xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .\\32 xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .\\32 xl\\:justify-content-center {\n justify-content: center;\n }\n .\\32 xl\\:justify-content-between {\n justify-content: space-between;\n }\n .\\32 xl\\:justify-content-around {\n justify-content: space-around;\n }\n .\\32 xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .\\32 xl\\:justify-items-start {\n justify-items: start;\n }\n .\\32 xl\\:justify-items-end {\n justify-items: end;\n }\n .\\32 xl\\:justify-items-center {\n justify-items: center;\n }\n .\\32 xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .\\32 xl\\:justify-self-start {\n justify-self: start;\n }\n .\\32 xl\\:justify-self-end {\n justify-self: end;\n }\n .\\32 xl\\:justify-self-center {\n justify-self: center;\n }\n .\\32 xl\\:align-items-start {\n align-items: flex-start;\n }\n .\\32 xl\\:align-items-end {\n align-items: flex-end;\n }\n .\\32 xl\\:align-items-center {\n align-items: center;\n }\n .\\32 xl\\:align-items-baseline {\n align-items: baseline;\n }\n .\\32 xl\\:align-items-stretch {\n align-items: stretch;\n }\n .\\32 xl\\:align-content-start {\n align-content: flex-start;\n }\n .\\32 xl\\:align-content-end {\n align-content: flex-end;\n }\n .\\32 xl\\:align-content-center {\n align-content: center;\n }\n .\\32 xl\\:align-content-between {\n align-content: space-between;\n }\n .\\32 xl\\:align-content-around {\n align-content: space-around;\n }\n .\\32 xl\\:align-content-stretch {\n align-content: stretch;\n }\n .\\32 xl\\:align-self-auto {\n align-self: auto;\n }\n .\\32 xl\\:align-self-start {\n align-self: flex-start;\n }\n .\\32 xl\\:align-self-end {\n align-self: flex-end;\n }\n .\\32 xl\\:align-self-center {\n align-self: center;\n }\n .\\32 xl\\:align-self-baseline {\n align-self: baseline;\n }\n .\\32 xl\\:align-self-stretch {\n align-self: stretch;\n }\n .\\32 xl\\:place-items-start {\n place-items: start;\n }\n .\\32 xl\\:place-items-end {\n place-items: end;\n }\n .\\32 xl\\:place-items-center {\n place-items: center;\n }\n .\\32 xl\\:place-items-stretch {\n place-items: stretch;\n }\n .\\32 xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .\\32 xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .\\32 xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .\\32 xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .\\32 xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .\\32 xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .\\32 xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .\\32 xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .\\32 xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .\\32 xl\\:order-first {\n order: -1;\n }\n .\\32 xl\\:order-0 {\n order: 0;\n }\n .\\32 xl\\:order-1 {\n order: 1;\n }\n .\\32 xl\\:order-2 {\n order: 2;\n }\n .\\32 xl\\:order-3 {\n order: 3;\n }\n .\\32 xl\\:order-4 {\n order: 4;\n }\n .\\32 xl\\:order-5 {\n order: 5;\n }\n .\\32 xl\\:order-last {\n order: 6;\n }\n .\\32 xl\\:m-0 {\n margin: 0;\n }\n .\\32 xl\\:m-1 {\n margin: 0.25rem;\n }\n .\\32 xl\\:m-2 {\n margin: 0.5rem;\n }\n .\\32 xl\\:m-3 {\n margin: 0.75rem;\n }\n .\\32 xl\\:m-4 {\n margin: 1rem;\n }\n .\\32 xl\\:m-5 {\n margin: 1.25rem;\n }\n .\\32 xl\\:m-6 {\n margin: 1.5rem;\n }\n .\\32 xl\\:m-7 {\n margin: 2rem;\n }\n .\\32 xl\\:m-8 {\n margin: 2.5rem;\n }\n .\\32 xl\\:m-9 {\n margin: 3rem;\n }\n .\\32 xl\\:m-auto {\n margin: auto;\n }\n .\\32 xl\\:mx-0 {\n margin-inline: 0;\n }\n .\\32 xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .\\32 xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .\\32 xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .\\32 xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .\\32 xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .\\32 xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .\\32 xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .\\32 xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .\\32 xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .\\32 xl\\:mx-auto {\n margin-inline: auto;\n }\n .\\32 xl\\:my-0 {\n margin-block: 0;\n }\n .\\32 xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .\\32 xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .\\32 xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .\\32 xl\\:my-4 {\n margin-block: 1rem;\n }\n .\\32 xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .\\32 xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .\\32 xl\\:my-7 {\n margin-block: 2rem;\n }\n .\\32 xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .\\32 xl\\:my-9 {\n margin-block: 3rem;\n }\n .\\32 xl\\:my-auto {\n margin-block: auto;\n }\n .\\32 xl\\:mt-0 {\n margin-block-start: 0;\n }\n .\\32 xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .\\32 xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .\\32 xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .\\32 xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .\\32 xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .\\32 xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .\\32 xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .\\32 xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .\\32 xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .\\32 xl\\:mt-auto {\n margin-block-start: auto;\n }\n .\\32 xl\\:me-0 {\n margin-inline-end: 0;\n }\n .\\32 xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .\\32 xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .\\32 xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .\\32 xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .\\32 xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .\\32 xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .\\32 xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .\\32 xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .\\32 xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .\\32 xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .\\32 xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .\\32 xl\\:me-auto {\n margin-inline-end: auto;\n }\n .\\32 xl\\:mb-0 {\n margin-block-end: 0;\n }\n .\\32 xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .\\32 xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .\\32 xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .\\32 xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .\\32 xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .\\32 xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .\\32 xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .\\32 xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .\\32 xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .\\32 xl\\:mb-auto {\n margin-block-end: auto;\n }\n .\\32 xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .\\32 xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .\\32 xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .\\32 xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .\\32 xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .\\32 xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .\\32 xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .\\32 xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .\\32 xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .\\32 xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .\\32 xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .\\32 xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .\\32 xl\\:p-0 {\n padding: 0;\n }\n .\\32 xl\\:p-1 {\n padding: 0.25rem;\n }\n .\\32 xl\\:p-2 {\n padding: 0.5rem;\n }\n .\\32 xl\\:p-3 {\n padding: 0.75rem;\n }\n .\\32 xl\\:p-4 {\n padding: 1rem;\n }\n .\\32 xl\\:p-5 {\n padding: 1.25rem;\n }\n .\\32 xl\\:p-6 {\n padding: 1.5rem;\n }\n .\\32 xl\\:p-7 {\n padding: 2rem;\n }\n .\\32 xl\\:p-8 {\n padding: 2.5rem;\n }\n .\\32 xl\\:p-9 {\n padding: 3rem;\n }\n .\\32 xl\\:px-0 {\n padding-inline: 0;\n }\n .\\32 xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .\\32 xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .\\32 xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .\\32 xl\\:px-4 {\n padding-inline: 1rem;\n }\n .\\32 xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .\\32 xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .\\32 xl\\:px-7 {\n padding-inline: 2rem;\n }\n .\\32 xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .\\32 xl\\:px-9 {\n padding-inline: 3rem;\n }\n .\\32 xl\\:py-0 {\n padding-block: 0;\n }\n .\\32 xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .\\32 xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .\\32 xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .\\32 xl\\:py-4 {\n padding-block: 1rem;\n }\n .\\32 xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .\\32 xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .\\32 xl\\:py-7 {\n padding-block: 2rem;\n }\n .\\32 xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .\\32 xl\\:py-9 {\n padding-block: 3rem;\n }\n .\\32 xl\\:pt-0 {\n padding-block-start: 0;\n }\n .\\32 xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .\\32 xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .\\32 xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .\\32 xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .\\32 xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .\\32 xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .\\32 xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .\\32 xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .\\32 xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .\\32 xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .\\32 xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .\\32 xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .\\32 xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .\\32 xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .\\32 xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .\\32 xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .\\32 xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .\\32 xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .\\32 xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .\\32 xl\\:pb-0 {\n padding-block-end: 0;\n }\n .\\32 xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .\\32 xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .\\32 xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .\\32 xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .\\32 xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .\\32 xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .\\32 xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .\\32 xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .\\32 xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .\\32 xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .\\32 xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .\\32 xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .\\32 xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .\\32 xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .\\32 xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .\\32 xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .\\32 xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .\\32 xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .\\32 xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .\\32 xl\\:gap-0 {\n gap: 0;\n }\n .\\32 xl\\:gap-1 {\n gap: 0.25rem;\n }\n .\\32 xl\\:gap-2 {\n gap: 0.5rem;\n }\n .\\32 xl\\:gap-3 {\n gap: 0.75rem;\n }\n .\\32 xl\\:gap-4 {\n gap: 1rem;\n }\n .\\32 xl\\:gap-5 {\n gap: 1.25rem;\n }\n .\\32 xl\\:gap-6 {\n gap: 1.5rem;\n }\n .\\32 xl\\:gap-7 {\n gap: 2rem;\n }\n .\\32 xl\\:gap-8 {\n gap: 2.5rem;\n }\n .\\32 xl\\:gap-9 {\n gap: 3rem;\n }\n .\\32 xl\\:row-gap-0 {\n row-gap: 0;\n }\n .\\32 xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .\\32 xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .\\32 xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .\\32 xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .\\32 xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .\\32 xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .\\32 xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .\\32 xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .\\32 xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .\\32 xl\\:column-gap-0 {\n column-gap: 0;\n }\n .\\32 xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .\\32 xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .\\32 xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .\\32 xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .\\32 xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .\\32 xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .\\32 xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .\\32 xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .\\32 xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.\\32 xl\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.\\32 xl\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.\\32 xl\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.\\32 xl\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.\\32 xl\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.\\32 xl\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.\\32 xl\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.\\32 xl\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.\\32 xl\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.\\32 xl\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.\\32 xl\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.\\32 xl\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.\\32 xl\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.\\32 xl\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.\\32 xl\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.\\32 xl\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.\\32 xl\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.\\32 xl\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.\\32 xl\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.\\32 xl\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.\\32 xl\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.\\32 xl\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.\\32 xl\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.\\32 xl\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .\\32 xl\\:text-start {\n text-align: start;\n }\n .\\32 xl\\:text-end {\n text-align: end;\n }\n .\\32 xl\\:text-center {\n text-align: center;\n }\n }\n}\n\n/*# sourceMappingURL=bootstrap-utilities.css.map */\n","$file: \"\" !default;\n\n/*!\n * Bootstrap #{$file} v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n","// stylelint-disable hue-degree-notation, @stylistic/number-leading-zero\n\n@use \"sass:map\";\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n// Easily convert colors to oklch() with https://oklch.com/\n\n$white: #fff !default;\n$black: #000 !default;\n\n// scss-docs-start colors-list\n$blue: oklch(60% 0.24 240) !default;\n$indigo: oklch(56% 0.26 288) !default;\n$violet: oklch(56% 0.24 300) !default;\n$purple: oklch(56% 0.24 320) !default;\n$pink: oklch(60% 0.22 4) !default;\n$red: oklch(60% 0.22 20) !default;\n$orange: oklch(70% 0.22 52) !default;\n$amber: oklch(79% 0.2 78) !default;\n$yellow: oklch(88% 0.24 88) !default;\n$lime: oklch(65% 0.24 135) !default;\n$green: oklch(64% 0.22 160) !default;\n$teal: oklch(68% 0.22 190) !default;\n$cyan: oklch(69% 0.22 220) !default;\n$brown: oklch(60% 0.12 54) !default;\n$gray: oklch(60% 0.02 245) !default;\n$pewter: oklch(65% 0.01 290) !default;\n// scss-docs-end colors-list\n\n// scss-docs-start colors-map\n$colors: () !default;\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: defaults(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"violet\": $violet,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"amber\": $amber,\n \"yellow\": $yellow,\n \"lime\": $lime,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"brown\": $brown,\n \"gray\": $gray,\n \"pewter\": $pewter,\n ),\n $colors\n);\n// scss-docs-end colors-map\n\n// scss-docs-start color-mix-options\n$color-mix-space: lab !default;\n$tint-color: var(--white) !default;\n$shade-color: var(--black) !default;\n\n$color-tints: (\n \"025\": 94%,\n \"050\": 90%,\n \"100\": 80%,\n \"200\": 60%,\n \"300\": 40%,\n \"400\": 20%,\n) !default;\n\n$color-shades: (\n \"600\": 16%,\n \"700\": 32%,\n \"800\": 48%,\n \"900\": 64%,\n \"950\": 76%,\n \"975\": 88%,\n) !default;\n// scss-docs-end color-mix-options\n\n// scss-docs-start color-tokens\n$color-tokens: () !default;\n\n$-color-defaults: () !default;\n@each $color, $value in $colors {\n @each $stop, $percent in $color-tints {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$tint-color} #{$percent}, #{$value}));\n }\n $-color-defaults: map.set($-color-defaults, --#{$color}-500, #{$value});\n @each $stop, $percent in $color-shades {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$shade-color} #{$percent}, #{$value}));\n }\n}\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$color-tokens: defaults($-color-defaults, $color-tokens);\n// scss-docs-end color-tokens\n\n:root {\n @include tokens($color-tokens);\n}\n","// Mixin to output tokens as CSS custom properties\n\n// scss-docs-start mixin-tokens\n@mixin tokens($map) {\n @each $prop, $value in $map {\n #{$prop}: #{$value};\n }\n}\n// scss-docs-end mixin-tokens\n","@use \"sass:map\";\n@use \"colors\" as *;\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"theme\" as *;\n@use \"mixins/tokens\" as *;\n// mdo-do: do we need theme?\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n\n$root-tokens: () !default;\n\n// scss-docs-start root-tokens\n// stylelint-disable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: defaults(\n (\n --black: #{$black},\n --white: #{$white},\n\n --gradient: #{$gradient},\n\n // scss-docs-start root-font-weight-variables\n --font-weight-lighter: lighter,\n --font-weight-light: 300,\n --font-weight-normal: 400,\n --font-weight-medium: 500,\n --font-weight-semibold: 600,\n --font-weight-bold: 700,\n --font-weight-bolder: bolder,\n // scss-docs-end root-font-weight-variables\n\n // scss-docs-start root-body-variables\n --body-font-family: system-ui,\n --body-font-size: var(--font-size-base),\n --body-font-weight: #{$font-weight-base},\n --body-line-height: #{$line-height-base},\n\n --heading-color: #{$headings-color},\n\n --hr-border-color: var(--border-color),\n\n --link-color: light-dark(var(--primary-base), var(--primary-fg)),\n --link-decoration: #{$link-decoration},\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000),\n\n --font-mono: \"ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Monaco, 'Cascadia Mono', Consolas, 'Liberation Mono', monospace;\",\n --code-font-size: 95%,\n --code-color: var(--fg-2),\n\n // scss-docs-start root-border-var\n --border-width: #{$border-width},\n --border-style: #{$border-style},\n --border-color: light-dark(var(--gray-200), var(--gray-700)),\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent),\n // scss-docs-end root-border-var\n\n // scss-docs-start root-box-shadow-variables\n --box-shadow: 0 .5rem 1rem rgb(0 0 0 / 15%),\n --box-shadow-sm: 0 .125rem .25rem rgb(0 0 0 / 7.5%),\n --box-shadow-lg: 0 1rem 3rem rgb(0 0 0 / 17.5%),\n --box-shadow-inset: inset 0 1px 2px rgb(0 0 0 / 7.5%),\n // scss-docs-end root-box-shadow-variables\n\n --spacer: 1rem,\n\n // scss-docs-start root-focus-variables\n --focus-ring-width: 3px,\n --focus-ring-offset: 1px,\n --focus-ring-color: var(--primary-focus-ring),\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color),\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-variables\n --control-checked-bg: var(--primary-base),\n --control-checked-border-color: var(--control-checked-bg),\n --control-active-bg: var(--primary-base),\n --control-active-border-color: var(--control-active-bg),\n --control-disabled-bg: var(--bg-3),\n --control-disabled-opacity: .65,\n\n --btn-input-fg: var(--fg-body),\n --btn-input-bg: var(--bg-body),\n\n --btn-input-min-height: 2.375rem,\n --btn-input-padding-y: .375rem,\n --btn-input-padding-x: .75rem,\n --btn-input-font-size: var(--font-size-base),\n --btn-input-line-height: var(--line-height-base),\n --btn-input-border-radius: var(--radius-5),\n\n --btn-input-xs-min-height: 1.5rem,\n --btn-input-xs-padding-y: .125rem,\n --btn-input-xs-padding-x: .5rem,\n --btn-input-xs-font-size: var(--font-size-xs),\n --btn-input-xs-line-height: 1.125,\n --btn-input-xs-border-radius: var(--radius-5),\n\n --btn-input-sm-min-height: 2rem,\n --btn-input-sm-padding-y: .25rem,\n --btn-input-sm-padding-x: .625rem,\n --btn-input-sm-font-size: var(--font-size-sm),\n --btn-input-sm-line-height: var(--line-height-sm),\n --btn-input-sm-border-radius: var(--radius-5),\n\n --btn-input-lg-min-height: 2.75rem,\n --btn-input-lg-padding-y: .5rem,\n --btn-input-lg-padding-x: 1rem,\n --btn-input-lg-font-size: var(--font-size-md),\n --btn-input-lg-line-height: var(--line-height-md),\n --btn-input-lg-border-radius: var(--radius-7),\n // scss-docs-end root-form-variables\n ),\n $root-tokens\n);\n// stylelint-enable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// scss-docs-end root-tokens\n\n// scss-docs-start root-font-size-loop\n// Generate font-size and line-height tokens\n@each $name, $props in $font-sizes {\n $root-tokens: map.set($root-tokens, --font-size-#{$name}, map.get($props, \"font-size\"));\n $root-tokens: map.set($root-tokens, --line-height-#{$name}, map.get($props, \"line-height\"));\n}\n// scss-docs-end root-font-size-loop\n\n// scss-docs-start root-theme-tokens\n// Generate semantic theme colors\n@each $color-name, $color-map in $theme-colors {\n @each $key, $value in $color-map {\n $root-tokens: map.set($root-tokens, --#{$color-name}-#{$key}, $value);\n }\n}\n\n// Generate background tokens\n@each $key, $value in $theme-bgs {\n $root-tokens: map.set($root-tokens, --bg-#{$key}, $value);\n}\n\n// Generate foreground tokens\n@each $key, $value in $theme-fgs {\n $root-tokens: map.set($root-tokens, --fg-#{$key}, $value);\n}\n\n// Generate border tokens\n@each $key, $value in $theme-borders {\n $root-tokens: map.set($root-tokens, --border-#{$key}, $value);\n}\n// scss-docs-end root-theme-tokens\n\n// Generate breakpoint tokens\n@each $name, $value in $breakpoints {\n $root-tokens: map.set($root-tokens, --breakpoint-#{$name}, $value);\n}\n\n// Generate spacer tokens\n// scss-docs-start root-spacer-loop\n@each $key, $value in $spacers {\n $root-tokens: map.set($root-tokens, --spacer-#{$key}, $value);\n}\n// scss-docs-end root-spacer-loop\n\n// Generate radius tokens\n// scss-docs-start root-radius-loop\n@each $key, $value in $radii {\n $root-tokens: map.set($root-tokens, --radius-#{$key}, $value);\n}\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: map.set($root-tokens, --radius-pill, 50rem);\n// scss-docs-end root-radius-loop\n\n:root {\n @include tokens($root-tokens);\n\n color-scheme: light dark;\n // Always reserve the viewport scrollbar gutter so layout doesn't shift\n // when overflow: hidden is applied (e.g. when a dialog opens on Windows).\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=\"dark\"] {\n color-scheme: dark;\n}\n\n[data-bs-theme=\"light\"] {\n color-scheme: light;\n}\n","@layer helpers {\n .focus-ring:focus-visible {\n // outline: var(--focus-ring);\n outline: var(--focus-ring-width) solid var(--theme-focus-ring, var(--focus-ring-color));\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/transition\" as *;\n\n@layer helpers {\n .icon-link {\n display: inline-flex;\n gap: $icon-link-gap;\n align-items: center;\n text-decoration-color: rgba(var(--link-color-rgb), var(--link-opacity, .5));\n text-underline-offset: $icon-link-underline-offset;\n backface-visibility: hidden;\n\n > .bi {\n flex-shrink: 0;\n width: $icon-link-icon-size;\n height: $icon-link-icon-size;\n fill: currentcolor;\n @include transition($icon-link-icon-transition);\n }\n }\n\n .icon-link-hover {\n &:hover,\n &:focus-visible {\n > .bi {\n transform: var(--icon-link-transform, $icon-link-icon-transform);\n }\n }\n }\n}\n","@use \"sass:map\";\n@use \"sass:meta\";\n\n// Configuration\n//\n// Variables and settings not related to theme, components, and more go here. It does include layout.\n\n// Merge overrides on top of defaults, stripping null entries.\n// Null values let users remove map keys via @use ... with().\n// Accepts a list as $defaults (converted to a map with `true` values).\n@function defaults($defaults, $overrides) {\n @if meta.type-of($defaults) == \"list\" {\n $map: ();\n @each $key in $defaults {\n $map: map.merge($map, ($key: true));\n }\n $defaults: $map;\n }\n $merged: map.merge($defaults, $overrides);\n @each $key, $value in $merged {\n @if $value == null {\n $merged: map.remove($merged, $key);\n }\n }\n @return $merged;\n}\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: true !default;\n$enable-gradients: true !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: false !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: true !default;\n$enable-button-pointers: true !default;\n// $enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n\n$color-mode-type: \"media-query\" !default;\n$color-contrast-dark: #000 !default;\n$color-contrast-light: #fff !default;\n$min-contrast-ratio: 4.5 !default;\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer * .75,\n 4: $spacer,\n 5: $spacer * 1.25,\n 6: $spacer * 1.5,\n 7: $spacer * 2,\n 8: $spacer * 2.5,\n 9: $spacer * 3,\n) !default;\n\n$negative-spacers: (\n \"-1\": $spacer * -.25,\n \"-2\": $spacer * -.5,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n$sizes: (\n 1: $spacer,\n 2: $spacer * 2,\n 3: $spacer * 3,\n 4: $spacer * 4,\n 5: $spacer * 5,\n 6: $spacer * 6,\n 7: $spacer * 7,\n 8: $spacer * 8,\n 9: $spacer * 9,\n 10: $spacer * 10,\n 11: $spacer * 11,\n 12: $spacer * 12,\n) !default;\n\n$radius: .5rem !default;\n$radii: (\n 0: 0,\n 1: $radius * .25,\n 2: $radius * .375,\n 3: $radius * .5,\n 4: $radius * .75,\n 5: $radius,\n 6: $radius * 1.25,\n 7: $radius * 1.5,\n 8: $radius * 2,\n 9: $radius * 3,\n) !default;\n\n// Breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start breakpoints\n$breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 1024px,\n xl: 1280px,\n 2xl: 1536px\n) !default;\n// scss-docs-end breakpoints\n\n// @include _assert-ascending($breakpoints, \"$breakpoints\");\n// @include _assert-starts-at-zero($breakpoints, \"$breakpoints\");\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-x: 1.5rem !default;\n$grid-gutter-y: 0 !default;\n$grid-row-columns: 6 !default;\n\n$gutters: $spacers !default;\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1200px,\n 2xl: 1440px\n) !default;\n// scss-docs-end container-max-widths\n\n$container-padding-x: $grid-gutter-x !default;\n\n$utilities: () !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent)) !default;\n// scss-docs-end variable-gradient\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Links\n//\n// Style anchor elements.\n\n$link-decoration: underline !default;\n$link-underline-offset: .2em !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: color-mix(in oklch, var(--gray-100), var(--gray-200)) !default;\n// scss-docs-end border-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"auto\": auto,\n \"1x1\": #{\"1 / 1\"},\n \"4x3\": #{\"4 / 3\"},\n \"16x9\": #{\"16 / 9\"},\n \"21x9\": #{\"21 / 9\"}\n) !default;\n// scss-docs-end aspect-ratios\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$font-sizes: defaults(\n (\n \"xs\": (\n \"font-size\": .75rem,\n \"line-height\": 1.25\n ),\n \"sm\": (\n \"font-size\": .875rem,\n \"line-height\": 1.5\n ),\n \"md\": (\n \"font-size\": 1rem,\n \"line-height\": 1.5\n ),\n \"lg\": (\n \"font-size\": clamp(1.25rem, 1rem + .625vw, 1.5rem),\n \"line-height\": 1.5\n ),\n \"xl\": (\n \"font-size\": clamp(1.5rem, 1.1rem + .75vw, 1.75rem),\n \"line-height\": calc(2.5 / 1.75)\n ),\n \"2xl\": (\n \"font-size\": clamp(1.75rem, 1.3rem + 1vw, 2rem),\n \"line-height\": calc(3 / 2.25)\n ),\n \"3xl\": (\n \"font-size\": clamp(2rem, 1.5rem + 1.875vw, 2.5rem),\n \"line-height\": 1.2\n ),\n \"4xl\": (\n \"font-size\": clamp(2.25rem, 1.75rem + 2.5vw, 3rem),\n \"line-height\": 1.1\n ),\n \"5xl\": (\n \"font-size\": clamp(3rem, 2rem + 5vw, 4rem),\n \"line-height\": 1.1\n ),\n \"6xl\": (\n \"font-size\": clamp(3.75rem, 2.5rem + 6.25vw, 5rem),\n \"line-height\": 1\n ),\n ),\n $font-sizes\n);\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: var(--spacer-2) !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start type-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n// scss-docs-end type-variables\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-menu: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n// $zindex-drawer-backdrop: 1040 !default;\n$zindex-drawer: 1045 !default;\n$zindex-dialog: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n","@use \"sass:list\";\n@use \"../config\" as *;\n\n// stylelint-disable property-disallowed-list\n@mixin transition($transition...) {\n @if list.length($transition) == 0 {\n $transition: $transition-base;\n }\n\n @if list.length($transition) > 1 {\n @each $value in $transition {\n @if $value == null or $value == none {\n @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n }\n }\n }\n\n @if $enable-transitions {\n @if list.nth($transition, 1) != null {\n transition: $transition;\n }\n\n @if $enable-reduced-motion and list.nth($transition, 1) != null and list.nth($transition, 1) != none {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n }\n}\n","@use \"sass:map\";\n@use \"../config\" as *;\n@use \"../layout/breakpoints\" as *;\n\n@layer helpers {\n .fixed-top {\n position: fixed;\n inset: 0 0 auto;\n z-index: $zindex-fixed;\n }\n\n .fixed-bottom {\n position: fixed;\n inset: auto 0 0;\n z-index: $zindex-fixed;\n }\n\n // Responsive sticky top and bottom\n @each $breakpoint in map.keys($breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n .#{$prefix}sticky-top {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n\n .#{$prefix}sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: $zindex-sticky;\n }\n }\n }\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:string\";\n@use \"../config\" as *;\n\n// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px)\n//\n// The map defined in the `$breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl 2xl))\n// md\n@function breakpoint-next($name, $breakpoints: $breakpoints, $breakpoint-names: map.keys($breakpoints)) {\n $n: list.index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoint-names}`\";\n }\n // Use @if/@else because list.nth would error if evaluated when $n equals list length\n @if $n < list.length($breakpoint-names) {\n @return list.nth($breakpoint-names, $n + 1);\n } @else {\n @return null;\n }\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $breakpoints) {\n $min: map.get($breakpoints, $name);\n @return if(sass($min != 0): $min; else: null);\n}\n\n// Maximum breakpoint width for range media queries.\n// Returns the breakpoint value to use as an upper bound in range queries.\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n// >> breakpoint-max(xxl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// null\n@function breakpoint-max($name, $breakpoints: $breakpoints) {\n @if $name == null {\n @return null;\n }\n $max: map.get($breakpoints, $name);\n @return if(sass($max and $max > 0): $max; else: null);\n}\n\n// Escape a name for use at the start of a CSS identifier.\n// Leading digits are hex-escaped (e.g., 2xl becomes \\32 xl).\n@function css-escape-ident($name) {\n $name-str: \"#{$name}\";\n $digits: \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\";\n $first: string.slice($name-str, 1, 1);\n\n @if list.index($digits, $first) {\n @return \"\\\\3#{$first} #{string.slice($name-str, 2)}\";\n }\n\n @return $name-str;\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name\n// with an escaped colon as a Tailwind-style prefix for responsive class names.\n// Leading digits are CSS-escaped (e.g., 2xl becomes \\32 xl) for valid identifiers.\n//\n// >> breakpoint-prefix(xs, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\" (Returns a blank string)\n// >> breakpoint-prefix(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"sm\\:\"\n// >> breakpoint-prefix(2xl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\\32 xl\\:\"\n@function breakpoint-prefix($name, $breakpoints: $breakpoints) {\n @if breakpoint-min($name, $breakpoints) == null {\n @return \"\";\n }\n\n @return \"#{css-escape-ident($name)}\\\\:\";\n}\n\n// Iterate all breakpoints and provide the current name and prefix.\n//\n// @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-up($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n @content($breakpoint, $prefix);\n }\n}\n\n// Iterate all breakpoints and provide the current name, next name, and next prefix.\n//\n// @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-down($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $next: breakpoint-next($breakpoint, $breakpoints);\n $prefix: breakpoint-prefix($next, $breakpoints);\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Backwards-compatible alias for next/down breakpoint loops.\n@mixin loop-breakpoints($breakpoints: $breakpoints) {\n @include loop-breakpoints-down($breakpoints) using ($breakpoint, $next, $prefix) {\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (width >= $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (width < $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n\n\n// Container queries\n//\n// Container queries allow elements to respond to the size of a containing element\n// rather than the viewport. These mixins mirror the media-breakpoint-* mixins above.\n//\n// scss-docs-start container-query-mixins\n\n// Set an element as a query container.\n//\n// @include set-container(); // container-type: inline-size\n// @include set-container(size); // container-type: size\n// @include set-container(inline-size, sidebar); // container: sidebar / inline-size\n//\n@mixin set-container($type: inline-size, $name: null) {\n @if $name {\n container: #{$name} / #{$type};\n } @else {\n container-type: #{$type};\n }\n}\n\n// Container query of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider within the container.\n//\n// @include container-breakpoint-up(md) { ... }\n// @include container-breakpoint-up(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-up($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower within the container.\n//\n// @include container-breakpoint-down(lg) { ... }\n// @include container-breakpoint-down(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-down($name, $container-name: null, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @if $container-name {\n @container #{$container-name} (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width < #{$max}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints within the container.\n//\n// @include container-breakpoint-between(md, xl) { ... }\n// @include container-breakpoint-between(md, xl, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-between($lower, $upper, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($lower, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($upper, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n\n// Container query between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint within the container.\n//\n// @include container-breakpoint-only(md) { ... }\n// @include container-breakpoint-only(md, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-only($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($name, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($next, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n// scss-docs-end container-query-mixins\n","@use \"../layout/breakpoints\" as *;\n\n@layer helpers {\n // scss-docs-start stacks\n .stack-container {\n @include set-container();\n }\n\n [class*=\"hstack\"],\n [class*=\"vstack\"] {\n display: flex;\n flex: var(--stack-flex, 1 1 auto);\n flex-direction: var(--stack-direction, row);\n align-items: var(--stack-align-items, center);\n align-self: var(--stack-align-self, stretch);\n }\n\n @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n .#{$prefix}vstack {\n @include container-breakpoint-up($breakpoint) {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n .#{$prefix}hstack {\n @include container-breakpoint-up($breakpoint) {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n }\n // scss-docs-end stacks\n}\n","@use \"../theme\" as *;\n\n// Generate theme modifier classes (e.g., .theme-primary, .theme-accent, etc.)\n@layer helpers {\n @include generate-theme-classes();\n}\n","@use \"sass:map\";\n\n@function theme-color-values($key) {\n $result: ();\n\n @each $color-name, $color-map in $theme-colors {\n @if map.has-key($color-map, $key) {\n $result: map.merge($result, ($color-name: map.get($color-map, $key)));\n }\n }\n\n @return $result;\n}\n\n// Themes map sub-keys\n//\n// Return var() references to root tokens instead of raw values.\n// Ex: theme-color-refs(\"bg\") => (primary: var(--primary-bg), accent: var(--accent-bg), ...)\n@function theme-color-refs($key) {\n $result: ();\n\n @each $color-name, $color-map in $theme-colors {\n @if map.has-key($color-map, $key) {\n $result: map.merge($result, ($color-name: var(--#{$color-name}-#{$key})));\n }\n }\n\n @return $result;\n}\n\n// Theme token to root tokens\n//\n// Returns the global :root token reference for a given a given token map, prefix, and key.\n// Ex: theme-token-refs($theme-bgs, \"bg\") => (body: var(--bg-body), 1: var(--bg-1), ...)\n// Skips `inherit` since it's a CSS-wide keyword that can't be stored in a custom property.\n@function theme-token-refs($map, $prefix) {\n $result: ();\n\n @each $key, $value in $map {\n @if $value != inherit {\n $result: map.merge($result, ($key: var(--#{$prefix}-#{$key})));\n }\n }\n\n @return $result;\n}\n\n// Generate opacity values using color-mix()\n@function theme-opacity-values($color-var, $opacities: $util-opacity) {\n $result: ();\n\n @each $key, $value in $opacities {\n @if $key == 100 {\n // For 100%, use direct variable reference (more efficient)\n $result: map.merge($result, ($key: var($color-var)));\n } @else {\n // For other values, use color-mix()\n $percentage: $key * 1%;\n $result: map.merge($result, ($key: color-mix(in oklch, var($color-var) $percentage, transparent)));\n }\n }\n\n @return $result;\n}\n\n// Generate theme classes dynamically based on the keys in each theme color map\n@mixin generate-theme-classes() {\n @each $color-name, $color-map in $theme-colors {\n .theme-#{$color-name} {\n @each $key, $value in $color-map {\n --theme-#{$key}: var(--#{$color-name}-#{$key});\n }\n }\n }\n}\n\n// scss-docs-start theme-colors\n$theme-colors: (\n \"primary\": (\n \"base\": var(--blue-500),\n \"fg\": light-dark(var(--blue-600), var(--blue-400)),\n \"fg-emphasis\": light-dark(var(--blue-800), var(--blue-200)),\n \"bg\": var(--blue-500),\n \"bg-subtle\": light-dark(var(--blue-100), var(--blue-900)),\n \"bg-muted\": light-dark(var(--blue-200), var(--blue-800)),\n \"border\": light-dark(var(--blue-300), var(--blue-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"accent\": (\n \"base\": var(--indigo-500),\n \"fg\": light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300))),\n \"fg-emphasis\": light-dark(var(--indigo-800), var(--indigo-300)),\n \"bg\": var(--indigo-500),\n \"bg-subtle\": light-dark(var(--indigo-100), var(--indigo-900)),\n \"bg-muted\": light-dark(var(--indigo-200), var(--indigo-800)),\n \"border\": light-dark(var(--indigo-300), var(--indigo-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"success\": (\n \"base\": var(--green-500),\n \"fg\": light-dark(var(--green-600), var(--green-400)),\n \"fg-emphasis\": light-dark(var(--green-800), var(--green-300)),\n \"bg\": var(--green-500),\n \"bg-subtle\": light-dark(var(--green-100), var(--green-900)),\n \"bg-muted\": light-dark(var(--green-200), var(--green-800)),\n \"border\": light-dark(var(--green-300), var(--green-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"danger\": (\n \"base\": var(--red-500),\n \"fg\": light-dark(var(--red-600), var(--red-400)),\n \"fg-emphasis\": light-dark(var(--red-800), var(--red-300)),\n \"bg\": var(--red-500),\n \"bg-subtle\": light-dark(var(--red-100), var(--red-900)),\n \"bg-muted\": light-dark(var(--red-200), var(--red-800)),\n \"border\": light-dark(var(--red-300), var(--red-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"warning\": (\n \"base\": var(--yellow-500),\n \"fg\": light-dark(var(--yellow-700), var(--yellow-400)),\n \"fg-emphasis\": light-dark(var(--yellow-800), var(--yellow-300)),\n \"bg\": var(--yellow-500),\n \"bg-subtle\": light-dark(var(--yellow-100), var(--yellow-900)),\n \"bg-muted\": light-dark(var(--yellow-200), var(--yellow-800)),\n \"border\": light-dark(var(--yellow-300), var(--yellow-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body))),\n \"contrast\": var(--gray-900)\n ),\n \"info\": (\n \"base\": var(--cyan-500),\n \"fg\": light-dark(var(--cyan-600), var(--cyan-400)),\n \"fg-emphasis\": light-dark(var(--cyan-800), var(--cyan-300)),\n \"bg\": var(--cyan-500),\n \"bg-subtle\": light-dark(var(--cyan-100), var(--cyan-900)),\n \"bg-muted\": light-dark(var(--cyan-200), var(--cyan-800)),\n \"border\": light-dark(var(--cyan-300), var(--cyan-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body))),\n \"contrast\": var(--gray-900)\n ),\n \"inverse\": (\n \"base\": var(--gray-900),\n \"fg\": light-dark(var(--gray-900), var(--gray-200)),\n \"fg-emphasis\": light-dark(var(--gray-975), var(--white)),\n \"bg\": light-dark(var(--gray-900), var(--gray-025)),\n \"bg-subtle\": light-dark(var(--gray-100), var(--gray-900)),\n \"bg-muted\": light-dark(var(--gray-200), var(--gray-300)),\n \"border\": light-dark(var(--gray-400), var(--gray-100)),\n \"focus-ring\": color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body)),\n \"contrast\": light-dark(var(--white), var(--gray-900))\n ),\n \"secondary\": (\n \"base\": var(--gray-200),\n \"fg\": light-dark(var(--gray-600), var(--gray-400)),\n \"fg-emphasis\": light-dark(var(--gray-800), var(--gray-200)),\n \"bg\": light-dark(var(--gray-100), var(--gray-600)),\n \"bg-subtle\": light-dark(var(--gray-050), var(--gray-800)),\n \"bg-muted\": light-dark(var(--gray-100), var(--gray-700)),\n \"border\": light-dark(var(--gray-300), var(--gray-600)),\n \"focus-ring\": color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body)),\n \"contrast\": light-dark(var(--gray-900), var(--white))\n )\n) !default;\n// scss-docs-end theme-colors\n\n// mdo-do: consider using muted, subtle, ghost or something instead of linear scale?\n$theme-bgs: (\n \"body\": light-dark(var(--white), var(--gray-975)),\n \"1\": light-dark(var(--gray-025), var(--gray-950)),\n \"2\": light-dark(var(--gray-050), var(--gray-900)),\n \"3\": light-dark(var(--gray-100), var(--gray-800)),\n \"4\": light-dark(var(--gray-200), var(--gray-700)),\n \"fg\": var(--fg-body),\n \"white\": var(--white),\n \"black\": var(--black),\n \"transparent\": transparent,\n \"inherit\": inherit,\n) !default;\n\n$theme-fgs: (\n \"body\": light-dark(var(--gray-900), var(--gray-050)),\n \"1\": light-dark(var(--gray-800), var(--gray-200)),\n \"2\": light-dark(var(--gray-700), var(--gray-300)),\n \"3\": light-dark(var(--gray-600), var(--gray-500)),\n \"4\": light-dark(var(--gray-500), var(--gray-600)),\n \"bg\": var(--bg-body),\n \"white\": var(--white),\n \"black\": var(--black),\n \"inherit\": inherit,\n) !default;\n\n$theme-borders: (\n \"bg\": var(--bg-body),\n \"body\": light-dark(var(--gray-300), var(--gray-800)),\n \"muted\": light-dark(var(--gray-200), var(--gray-800)),\n \"subtle\": light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-900)),\n \"emphasized\": light-dark(var(--gray-400), var(--gray-600)),\n \"white\": var(--white),\n \"black\": var(--black),\n) !default;\n\n$util-opacity: (\n 10: .1,\n 20: .2,\n 30: .3,\n 40: .4,\n 50: .5,\n 60: .6,\n 70: .7,\n 80: .8,\n 90: .9,\n 100: 1\n) !default;\n","@use \"../mixins/visually-hidden\" as *;\n\n@layer helpers {\n .visually-hidden,\n .visually-hidden-focusable:not(:focus, :focus-within) {\n @include visually-hidden();\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Hide content visually while keeping it accessible to assistive technologies\n//\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin visually-hidden() {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n\n // Fix for positioned table caption that could become anonymous cells\n &:not(caption) {\n position: absolute !important;\n }\n\n // Fix to prevent overflowing children to become focusable\n * {\n overflow: hidden !important;\n }\n}\n\n// Use to only display content when it's focused, or one of its child elements is focused\n// (i.e. when focus is within the element/container that the class was applied to)\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/WAI/WCAG22/Techniques/general/G1.html\n\n@mixin visually-hidden-focusable() {\n &:not(:focus, :focus-within) {\n @include visually-hidden();\n }\n}\n","@use \"../config\" as *;\n\n@layer helpers {\n .stretched-link {\n &::#{$stretched-link-pseudo-element} {\n position: absolute;\n inset: 0;\n z-index: $stretched-link-z-index;\n content: \"\";\n }\n }\n}\n","@use \"../mixins/text-truncate\" as *;\n\n@layer helpers {\n .text-truncate {\n @include text-truncate();\n }\n}\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","@layer helpers {\n .vr {\n display: inline-block;\n align-self: stretch;\n width: var(--vr-border-width, var(--border-width));\n min-height: 1em;\n background-color: var(--border-color);\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/utilities\" as *;\n@use \"../utilities\" as *;\n\n@layer utilities {\n @include generate-utilities-loop($utilities, $breakpoints);\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"../layout/breakpoints\" as bp;\n\n// Utility generator\n\n// - Utilities can use three different types of selectors:\n// - class: .class\n// - attr-starts: [class^=\"class\"]\n// - attr-includes: [class*=\"class\"]\n// - Utilities can target children via `child-selector`, wrapped in :where() for zero specificity\n// - Utilities can generate regular CSS properties and CSS custom properties\n// - Utilities can be responsive or not\n// - Utilities can have state variants (e.g., hover, focus, active)\n// - Utilities can define local CSS variables\n//\n// CSS custom properties can be generated in two ways:\n//\n// 1. Property map with null values (CSS var receives the utility value):\n// \"bg-color\": (\n// property: (\n// \"--bg\": null,\n// \"background-color\": var(--bg)\n// ),\n// class: bg,\n// values: (\n// primary: var(--blue-500),\n// )\n// )\n// Generates:\n// .bg-primary {\n// --bs-bg: var(--bs-blue-500);\n// background-color: var(--bs-bg);\n// }\n//\n// 2. Variables map (static CSS custom properties on every class):\n// \"link-underline\": (\n// property: text-decoration-color,\n// class: link-underline,\n// variables: (\n// \"link-underline-opacity\": 1\n// ),\n// values: (...)\n// )\n// Generates:\n// .link-underline {\n// --bs-link-underline-opacity: 1;\n// text-decoration-color: ...;\n// }\n\n// Helper mixin to emit CSS custom properties from a utility's `variables` key.\n// When variables is a map, the provided static values are used on each class.\n// When variables is a list or single identifier, each variable receives the current utility value.\n@mixin generate-variables($utility, $value) {\n @if map.has-key($utility, variables) {\n $variables: map.get($utility, variables);\n @if meta.type-of($variables) == \"map\" {\n @each $var-key, $var-value in $variables {\n --#{$var-key}: #{$var-value};\n }\n } @else {\n // Treat as a list (or single identifier) — each variable gets the utility value\n @each $var-name in $variables {\n --#{$var-name}: #{$value};\n }\n }\n }\n}\n\n// Helper mixin to generate CSS properties for both legacy and property map approaches\n@mixin generate-properties($utility, $property-map, $properties, $value) {\n @if $property-map != null {\n // Property-Value Mapping approach\n @each $property, $default-value in $property-map {\n // If value is a map, check if it has a key for this property.\n // Otherwise, use default-value (or $value if default-value is null).\n $actual-value: $default-value;\n @if meta.type-of($value) == \"map\" and map.has-key($value, $property) {\n $actual-value: map.get($value, $property);\n } @else if $default-value == null {\n $actual-value: $value;\n }\n @if map.get($utility, important) {\n #{$property}: $actual-value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $actual-value;\n }\n }\n } @else {\n // Legacy approach\n @each $property in $properties {\n @if map.get($utility, important) {\n #{$property}: $value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $value;\n }\n }\n }\n}\n\n@mixin generate-utility($utility, $prefix: \"\") {\n // Validate required keys\n @if not map.has-key($utility, property) {\n @error \"Utility is missing required `property` key: #{$utility}\";\n }\n @if not map.has-key($utility, values) {\n @error \"Utility is missing required `values` key: #{$utility}\";\n }\n\n // Warn on unknown keys (likely typos)\n $valid-keys: property, values, class, selector, responsive, print, dark, important, state, variables, child-selector, enabled;\n @each $key in map.keys($utility) {\n @if not list.index($valid-keys, $key) {\n @warn \"Unknown utility key `#{$key}` found. Valid keys are: #{$valid-keys}\";\n }\n }\n\n // Validate boolean keys\n @each $bool-key in (responsive, print, dark, important, enabled) {\n @if map.has-key($utility, $bool-key) {\n $val: map.get($utility, $bool-key);\n @if $val != true and $val != false {\n @error \"Utility key `#{$bool-key}` should be a boolean (true or false), got: #{$val}\";\n }\n }\n }\n\n // Determine if we're generating a class, or an attribute selector\n $selector-type: \"class\";\n @if map.has-key($utility, selector) {\n $selector-type: map.get($utility, selector);\n // Validate selector type\n $valid-selectors: \"class\", \"attr-starts\", \"attr-includes\";\n @if not list.index($valid-selectors, $selector-type) {\n @error \"Invalid `selector` value `#{$selector-type}`. Must be one of: #{$valid-selectors}\";\n }\n }\n // Then get the class name to use in a class (e.g., .class) or in an attribute selector (e.g., [class^=\"class\"])\n $selector-class: map.get($utility, class);\n\n // Attribute selectors require a `class` key\n @if $selector-type != \"class\" and not map.has-key($utility, class) {\n @error \"Utility with `selector: #{$selector-type}` requires a `class` key.\";\n }\n\n // Get the list or map of values and ensure it's a map\n $values: map.get($utility, values);\n @if meta.type-of($values) != \"map\" {\n @if meta.type-of($values) == \"list\" {\n $list: ();\n @each $value in $values {\n $list: map.merge($list, ($value: $value));\n }\n $values: $list;\n } @else {\n $values: (null: $values);\n }\n }\n\n @each $key, $value in $values {\n $properties: map.get($utility, property);\n $property-map: null;\n $custom-class: \"\";\n\n // Check if property is a map (Property-Value Mapping approach)\n @if meta.type-of($properties) == \"map\" {\n $property-map: $properties;\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n }\n } @else {\n // Legacy approach: multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if meta.type-of($properties) == \"string\" {\n $properties: list.append((), $properties);\n }\n // Use custom class if present, otherwise use the first value from the list of properties\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n } @else {\n $custom-class: list.nth($properties, 1);\n }\n @if $custom-class == null {\n $custom-class: \"\";\n }\n }\n\n // State params to generate state variants\n $state: ();\n @if map.has-key($utility, state) {\n $state: map.get($utility, state);\n }\n\n // Don't add a dash before value key if value key is null (e.g. with shadow class)\n $custom-class-modifier: \"\";\n @if $key {\n @if $custom-class == \"\" {\n $custom-class-modifier: $key;\n } @else {\n $custom-class-modifier: \"-\" + $key;\n }\n }\n\n // Build the class name fragment (without prefix or dot) for reuse in state variants\n $class-name: \"\";\n @if $selector-type == \"class\" {\n @if $custom-class != \"\" {\n $class-name: $custom-class + $custom-class-modifier;\n } @else if $selector-class != null and $selector-class != \"\" {\n $class-name: $selector-class + $custom-class-modifier;\n } @else {\n $class-name: $custom-class-modifier;\n }\n }\n\n $selector: \"\";\n @if $selector-type == \"class\" {\n $selector: \".#{$prefix + $class-name}\";\n } @else if $selector-type == \"attr-starts\" {\n $selector: \"[class^=\\\"#{$selector-class}\\\"]\";\n } @else if $selector-type == \"attr-includes\" {\n $selector: \"[class*=\\\"#{$selector-class}\\\"]\";\n }\n\n // Apply child-selector wrapping if present (wraps in :where() for zero specificity)\n $child-sel: null;\n @if map.has-key($utility, child-selector) {\n $child-sel: map.get($utility, child-selector);\n }\n\n $final-selector: $selector;\n @if $child-sel {\n $final-selector: \":where(#{$selector} #{$child-sel})\";\n }\n\n #{$final-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n\n // Generate state variants (e.g., hover:link-10 instead of link-10-hover)\n @if $state != () {\n @each $state-variant in $state {\n $state-selector: \".#{$prefix}#{$state-variant}\\\\:#{$class-name}:#{$state-variant}\";\n @if $child-sel {\n $state-selector: \":where(#{$state-selector} #{$child-sel})\";\n }\n\n #{$state-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n }\n }\n }\n}\n\n// Generates all utility classes: base, responsive, print, and dark.\n// Extracted so that tests can call this mixin directly with a custom $utilities map\n// rather than having to mirror the loop conditions inline.\n@mixin generate-utilities-loop($utilities, $breakpoints) {\n // Base + responsive (one pass per breakpoint)\n @each $breakpoint in map.keys($breakpoints) {\n @include bp.media-breakpoint-up($breakpoint, $breakpoints) {\n $prefix: bp.breakpoint-prefix($breakpoint, $breakpoints);\n\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and (map.get($utility, responsive) or $prefix == \"\") {\n @include generate-utility($utility, $prefix);\n }\n }\n }\n }\n\n // Print utilities\n @media print {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, print) == true {\n @include generate-utility($utility, \"print\\\\:\");\n }\n }\n }\n\n // Dark utilities\n @media (prefers-color-scheme: dark) {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, dark) == true {\n @include generate-utility($utility, \"dark\\\\:\");\n }\n }\n }\n}\n"],"names":[]}
\ No newline at end of file
--bs-link-color: light-dark(var(--bs-primary-base), var(--bs-primary-fg));
--bs-link-decoration: underline;
--bs-link-hover-color: color-mix(in oklch, var(--bs-link-color) 90%, #000);
- --bs-font-mono: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
+ --bs-font-mono: ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Monaco, 'Cascadia Mono', Consolas, 'Liberation Mono', monospace;;
--bs-code-font-size: 95%;
--bs-code-color: var(--bs-fg-2);
--bs-border-width: 1px;
--bs-border-style: solid;
- --bs-border-color: light-dark(color-mix(in oklch, var(--bs-gray-100), var(--bs-gray-200)), var(--bs-gray-700));
+ --bs-border-color: light-dark(var(--bs-gray-200), var(--bs-gray-700));
--bs-border-color-translucent: color-mix(in oklch, var(--bs-fg-body) 15%, transparent);
--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
--bs-border-bg: var(--bs-bg-body);
--bs-border-body: light-dark(var(--bs-gray-300), var(--bs-gray-800));
--bs-border-muted: light-dark(var(--bs-gray-200), var(--bs-gray-800));
- --bs-border-subtle: light-dark(var(--bs-gray-100), var(--bs-gray-900));
+ --bs-border-subtle: light-dark(color-mix(in oklch, var(--bs-gray-100), var(--bs-gray-200)), var(--bs-gray-900));
--bs-border-emphasized: light-dark(var(--bs-gray-400), var(--bs-gray-600));
--bs-border-white: var(--bs-white);
--bs-border-black: var(--bs-black);
::-webkit-datetime-edit-second-field,
::-webkit-datetime-edit-minute-field,
::-webkit-datetime-edit-hour-field,
+ ::-webkit-datetime-edit-meridiem-field,
::-webkit-datetime-edit-ampm-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-week-field,
--bs-check-margin-block: 0.125rem;
--bs-check-bg: var(--bs-bg-body);
--bs-check-border-color: var(--bs-border-color);
- --bs-check-border-radius: 0.375rem;
+ --bs-check-border-radius: var(--bs-radius-5);
+ --bs-check-icon-checked: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m5.5 10 3 3 6-6'/%3e%3c/svg%3e");
+ --bs-check-icon-indeterminate: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 10h8'/%3e%3c/svg%3e");
--bs-check-checked-bg: var(--bs-control-checked-bg);
--bs-check-checked-border-color: var(--bs-control-checked-border-color);
--bs-check-indeterminate-bg: var(--bs-control-checked-bg);
--bs-check-active-border-color: var(--bs-control-active-border-color);
--bs-check-disabled-bg: var(--bs-control-disabled-bg);
--bs-check-disabled-opacity: var(--bs-control-disabled-opacity);
- display: grid;
- grid-template-columns: repeat(1, minmax(0, 1fr));
- margin-block: var(--bs-check-margin-block);
- }
- .check :where(svg, input) {
+ position: relative;
flex-shrink: 0;
- grid-row-start: 1;
- grid-column-start: 1;
width: var(--bs-check-size);
height: var(--bs-check-size);
- }
- .check :where(input) {
+ margin-block: var(--bs-check-margin-block);
-webkit-appearance: none;
appearance: none;
background-color: var(--bs-theme-bg, var(--bs-check-bg));
border: 1px solid var(--bs-theme-bg, var(--bs-check-border-color));
- border-radius: 0.3em;
+ border-radius: 33%;
}
- .check :where(input:checked, input:indeterminate) {
+ .check:checked, .check:indeterminate {
background-color: var(--bs-theme-bg, var(--bs-check-checked-bg));
border-color: var(--bs-theme-bg, var(--bs-check-checked-border-color));
}
- .check :where(input:focus-visible) {
+ .check:checked::before, .check:indeterminate::before {
+ position: absolute;
+ inset: 0;
+ pointer-events: none;
+ content: "";
+ background-color: var(--bs-theme-contrast, var(--bs-primary-contrast));
+ mask-repeat: no-repeat;
+ mask-position: center;
+ mask-size: contain;
+ }
+ .check:checked::before {
+ mask-image: var(--bs-check-icon-checked);
+ }
+ .check:indeterminate::before {
+ mask-image: var(--bs-check-icon-indeterminate);
+ }
+ .check:focus-visible {
outline: var(--bs-focus-ring);
outline-offset: var(--bs-focus-ring-offset);
--bs-focus-ring-offset: -1px;
}
- .check:has(input:checked) .checked, .check:has(input:indeterminate) .indeterminate {
- display: block;
- color: var(--bs-theme-contrast, var(--bs-primary-contrast));
- stroke: currentcolor;
- }
- .check:has(input:disabled) {
+ .check:disabled {
--bs-check-bg: var(--bs-check-disabled-bg);
}
- .check:has(input:disabled) ~ label {
+ .check:disabled ~ label {
color: var(--bs-fg-3);
cursor: default;
}
- .check:has(input:disabled:checked) {
+ .check:disabled:checked {
opacity: var(--bs-check-disabled-opacity);
}
- .check :where(svg) {
- pointer-events: none;
- }
- .check :where(svg path) {
- display: none;
- }
.check-sm {
--bs-check-size: 1rem;
}
+ .check-sm + label {
+ font-size: var(--bs-font-size-sm);
+ }
.check-lg {
--bs-check-size: 1.5rem;
- --bs-check-margin-block: 0;
+ --bs-check-margin-block: .375rem;
+ }
+ .check-lg + label {
+ font-size: var(--bs-font-size-lg);
}
}
@layer forms {
}
.radio:checked::before {
position: absolute;
- inset: 0.25rem;
+ inset: calc(var(--bs-radio-size) * 0.25);
content: "";
background-color: currentcolor;
border-radius: 50%;
.radio-sm {
--bs-radio-size: 1rem;
}
+ .radio-sm + label {
+ font-size: var(--bs-font-size-sm);
+ }
.radio-lg {
--bs-radio-size: 1.5rem;
- --bs-radio-margin-block: 0;
+ --bs-radio-margin-block: .375rem;
+ }
+ .radio-lg + label {
+ font-size: var(--bs-font-size-lg);
}
}
@layer forms {
.switch {
--bs-switch-height: 1.25rem;
- --bs-switch-width: calc(var(--bs-switch-height) * 1.5);
+ --bs-switch-width: calc(var(--bs-switch-height) * 1.75);
--bs-switch-padding: 0.0625rem;
--bs-switch-margin-block: 0.125rem;
--bs-switch-bg: var(--bs-bg-3);
.switch-sm {
--bs-switch-height: 1rem;
}
+ .switch-sm + label {
+ font-size: var(--bs-font-size-sm);
+ }
.switch-lg {
--bs-switch-height: 1.5rem;
- --bs-switch-margin-block: 0;
+ --bs-switch-margin-block: .375rem;
+ }
+ .switch-lg + label {
+ font-size: var(--bs-font-size-lg);
}
}
@layer forms {
border: var(--bs-range-thumb-border);
border-radius: var(--bs-range-thumb-border-radius);
box-shadow: var(--bs-range-thumb-box-shadow);
- -webkit-transition: var(--bs-range-thumb-transition);
transition: var(--bs-range-thumb-transition);
}
@media (prefers-reduced-motion: reduce) {
.form-range::-webkit-slider-thumb {
- -webkit-transition: none;
transition: none;
}
}
border: var(--bs-range-thumb-border);
border-radius: var(--bs-range-thumb-border-radius);
box-shadow: var(--bs-range-thumb-box-shadow);
- -moz-transition: var(--bs-range-thumb-transition);
transition: var(--bs-range-thumb-transition);
}
@media (prefers-reduced-motion: reduce) {
.form-range::-moz-range-thumb {
- -moz-transition: none;
transition: none;
}
}
--bs-otp-size: var(--bs-btn-input-lg-min-height);
--bs-otp-font-size: var(--bs-btn-input-font-size);
--bs-otp-gap: 0.5rem;
+ --bs-otp-slot-fg: var(--bs-btn-input-fg);
+ --bs-otp-slot-bg: var(--bs-btn-input-bg);
+ --bs-otp-slot-border-width: var(--bs-border-width);
+ --bs-otp-slot-border-color: var(--bs-border-color);
+ --bs-otp-slot-border-radius: var(--bs-radius-5);
+ position: relative;
+ display: flex;
+ }
+ .otp-rendered .otp-input {
+ position: absolute;
+ inset: 0;
+ width: 100%;
+ height: 100%;
+ padding: 0;
+ color: transparent;
+ text-align: center;
+ cursor: default;
+ caret-color: transparent;
+ background-color: transparent;
+ border: 0;
+ outline: 0;
+ box-shadow: none;
+ }
+ .otp-rendered .otp-input::selection {
+ color: transparent;
+ background-color: transparent;
+ }
+ .otp-slots {
display: inline-flex;
gap: var(--bs-otp-gap);
+ pointer-events: none;
}
- .otp .form-control {
+ .otp-slot {
+ display: flex;
+ align-items: center;
+ justify-content: center;
width: var(--bs-otp-size);
min-height: var(--bs-otp-size);
- padding: 0;
font-size: var(--bs-otp-font-size);
font-weight: 500;
line-height: 1;
- text-align: center;
+ color: var(--bs-otp-slot-fg);
+ background-color: var(--bs-otp-slot-bg);
+ border: var(--bs-otp-slot-border-width) solid var(--bs-otp-slot-border-color);
+ border-radius: var(--bs-otp-slot-border-radius);
+ box-shadow: var(--bs-box-shadow-inset);
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
- .otp .form-control::-webkit-outer-spin-button, .otp .form-control::-webkit-inner-spin-button {
- margin: 0;
- -webkit-appearance: none;
- appearance: none;
- }
- .otp .form-control[type=number] {
- -webkit-appearance: textfield;
- appearance: textfield;
+ @media (prefers-reduced-motion: reduce) {
+ .otp-slot {
+ transition: none;
+ }
}
- .otp .form-control:focus, .otp .form-control:focus-visible {
+ .otp-slot-active {
+ --bs-focus-ring-offset: -1px;
z-index: 1;
+ outline: var(--bs-focus-ring);
+ outline-offset: var(--bs-focus-ring-offset);
+ }
+ .otp-slot-active:not(.otp-slot-filled)::after {
+ width: 1px;
+ height: 50%;
+ content: "";
+ background-color: var(--bs-otp-slot-fg);
+ animation: otp-caret-blink 1s step-end infinite;
}
- .otp.input-group {
+ .otp-input:disabled ~ .otp-slots .otp-slot {
+ background-color: var(--bs-bg-2);
+ }
+ .otp-connected .otp-slots {
gap: 0;
- width: auto;
}
- .otp.input-group .form-control {
- flex: 0 0 auto;
+ .otp-connected .otp-slot {
+ border-radius: 0;
+ }
+ .otp-connected .otp-slot:not(:first-child) {
+ margin-inline-start: calc(var(--bs-otp-slot-border-width) * -1);
+ }
+ .otp-connected .otp-slot:first-child {
+ border-start-start-radius: var(--bs-otp-slot-border-radius);
+ border-end-start-radius: var(--bs-otp-slot-border-radius);
+ }
+ .otp-connected .otp-slot:last-child {
+ border-start-end-radius: var(--bs-otp-slot-border-radius);
+ border-end-end-radius: var(--bs-otp-slot-border-radius);
}
.otp-separator {
display: flex;
-webkit-user-select: none;
user-select: none;
}
+ .otp-sm {
+ --bs-otp-size: var(--bs-btn-input-sm-min-height);
+ --bs-otp-font-size: var(--bs-btn-input-sm-font-size);
+ }
+ .otp-lg {
+ --bs-otp-size: var(--bs-btn-input-lg-min-height);
+ --bs-otp-font-size: var(--bs-btn-input-lg-font-size);
+ }
+}
+@keyframes otp-caret-blink {
+ 0%, 100% {
+ opacity: 1;
+ }
+ 50% {
+ opacity: 0;
+ }
}
@layer forms {
.form-adorn {
}
.form-field:has(> .check, > .radio, > .switch) {
grid-template-columns: auto 1fr;
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
align-items: start;
}
outline-offset: var(--bs-focus-ring-offset);
--bs-control-border-color: var(--bs-success-border);
}
- .check input.is-valid {
+ .check.is-valid {
--bs-check-border-color: var(--bs-success-border);
--bs-check-checked-bg: var(--bs-success-bg);
--bs-check-checked-border-color: var(--bs-success-bg);
}
- .check input.is-valid:focus-visible {
+ .check.is-valid:focus-visible {
outline: var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);
outline-offset: var(--bs-focus-ring-offset);
}
- [data-bs-validate~=valid] .check input:user-valid {
+ [data-bs-validate~=valid] .check:user-valid {
--bs-check-border-color: var(--bs-success-border);
--bs-check-checked-bg: var(--bs-success-bg);
--bs-check-checked-border-color: var(--bs-success-bg);
}
- [data-bs-validate~=valid] .check input:user-valid:focus-visible {
+ [data-bs-validate~=valid] .check:user-valid:focus-visible {
outline: var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);
outline-offset: var(--bs-focus-ring-offset);
}
- .form-field:has(.check input.is-valid) label {
+ .form-field:has(.check.is-valid) label {
color: var(--bs-success-fg);
}
- .form-field:has(.check input.is-valid) .valid-feedback,
- .form-field:has(.check input.is-valid) .valid-tooltip {
+ .form-field:has(.check.is-valid) .valid-feedback,
+ .form-field:has(.check.is-valid) .valid-tooltip {
display: block;
}
- [data-bs-validate~=valid] .form-field:has(.check input:user-valid) label {
+ [data-bs-validate~=valid] .form-field:has(.check:user-valid) label {
color: var(--bs-success-fg);
}
- [data-bs-validate~=valid] .form-field:has(.check input:user-valid) .valid-feedback,
- [data-bs-validate~=valid] .form-field:has(.check input:user-valid) .valid-tooltip {
+ [data-bs-validate~=valid] .form-field:has(.check:user-valid) .valid-feedback,
+ [data-bs-validate~=valid] .form-field:has(.check:user-valid) .valid-tooltip {
display: block;
}
.radio.is-valid {
[data-bs-validate~=valid] .input-group > .form-control:not(:focus), .input-group > .form-floating:not(:focus-within):user-valid {
z-index: 3;
}
- .otp.is-valid .form-control {
- --bs-control-border-color: var(--bs-success-border);
+ .otp.is-valid .otp-slot {
+ --bs-otp-slot-border-color: var(--bs-success-border);
}
- .otp.is-valid .form-control:focus {
+ .otp.is-valid .otp-slot-active {
outline: var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);
outline-offset: var(--bs-focus-ring-offset);
- --bs-control-border-color: var(--bs-success-border);
}
- [data-bs-validate~=valid] .otp:user-valid .form-control {
- --bs-control-border-color: var(--bs-success-border);
+ [data-bs-validate~=valid] .otp:user-valid .otp-slot {
+ --bs-otp-slot-border-color: var(--bs-success-border);
}
- [data-bs-validate~=valid] .otp:user-valid .form-control:focus {
+ [data-bs-validate~=valid] .otp:user-valid .otp-slot-active {
outline: var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);
outline-offset: var(--bs-focus-ring-offset);
- --bs-control-border-color: var(--bs-success-border);
}
.invalid-feedback {
display: none;
outline-offset: var(--bs-focus-ring-offset);
--bs-control-border-color: var(--bs-danger-border);
}
- .check input.is-invalid {
+ .check.is-invalid {
--bs-check-border-color: var(--bs-danger-border);
--bs-check-checked-bg: var(--bs-danger-bg);
--bs-check-checked-border-color: var(--bs-danger-bg);
}
- .check input.is-invalid:focus-visible {
+ .check.is-invalid:focus-visible {
outline: var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);
outline-offset: var(--bs-focus-ring-offset);
}
- [data-bs-validate] .check input:user-invalid {
+ [data-bs-validate] .check:user-invalid {
--bs-check-border-color: var(--bs-danger-border);
--bs-check-checked-bg: var(--bs-danger-bg);
--bs-check-checked-border-color: var(--bs-danger-bg);
}
- [data-bs-validate] .check input:user-invalid:focus-visible {
+ [data-bs-validate] .check:user-invalid:focus-visible {
outline: var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);
outline-offset: var(--bs-focus-ring-offset);
}
- .form-field:has(.check input.is-invalid) label {
+ .form-field:has(.check.is-invalid) label {
color: var(--bs-danger-fg);
}
- .form-field:has(.check input.is-invalid) .invalid-feedback,
- .form-field:has(.check input.is-invalid) .invalid-tooltip {
+ .form-field:has(.check.is-invalid) .invalid-feedback,
+ .form-field:has(.check.is-invalid) .invalid-tooltip {
display: block;
}
- [data-bs-validate] .form-field:has(.check input:user-invalid) label {
+ [data-bs-validate] .form-field:has(.check:user-invalid) label {
color: var(--bs-danger-fg);
}
- [data-bs-validate] .form-field:has(.check input:user-invalid) .invalid-feedback,
- [data-bs-validate] .form-field:has(.check input:user-invalid) .invalid-tooltip {
+ [data-bs-validate] .form-field:has(.check:user-invalid) .invalid-feedback,
+ [data-bs-validate] .form-field:has(.check:user-invalid) .invalid-tooltip {
display: block;
}
.radio.is-invalid {
[data-bs-validate] .input-group > .form-control:not(:focus), .input-group > .form-floating:not(:focus-within):user-invalid {
z-index: 4;
}
- .otp.is-invalid .form-control {
- --bs-control-border-color: var(--bs-danger-border);
+ .otp.is-invalid .otp-slot {
+ --bs-otp-slot-border-color: var(--bs-danger-border);
}
- .otp.is-invalid .form-control:focus {
+ .otp.is-invalid .otp-slot-active {
outline: var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);
outline-offset: var(--bs-focus-ring-offset);
- --bs-control-border-color: var(--bs-danger-border);
}
- [data-bs-validate] .otp:user-invalid .form-control {
- --bs-control-border-color: var(--bs-danger-border);
+ [data-bs-validate] .otp:user-invalid .otp-slot {
+ --bs-otp-slot-border-color: var(--bs-danger-border);
}
- [data-bs-validate] .otp:user-invalid .form-control:focus {
+ [data-bs-validate] .otp:user-invalid .otp-slot-active {
outline: var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);
outline-offset: var(--bs-focus-ring-offset);
- --bs-control-border-color: var(--bs-danger-border);
}
}
@layer components {
}
@layer components {
.btn-close {
- --bs-btn-close-size: 1.25rem;
+ --bs-btn-close-size: 1.5rem;
--bs-btn-close-color: inherit;
+ --bs-btn-close-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath d='M12 0a4 4 0 0 1 4 4v8a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4zm-.646 4.646a.5.5 0 0 0-.707 0L8 7.293 5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.647a.5.5 0 1 0 .708.707L8 8.707l2.647 2.646a.5.5 0 1 0 .707-.707L8.707 8l2.646-2.646a.5.5 0 0 0 0-.708z'/%3e%3c/svg%3e");
--bs-btn-close-opacity: 0.5;
--bs-btn-close-hover-opacity: 0.75;
--bs-btn-close-focus-opacity: 0.85;
height: var(--bs-btn-close-size);
padding: 0;
color: var(--bs-btn-close-color);
- background: transparent;
+ background-color: currentcolor;
border: 0;
border-radius: var(--bs-radius-5);
opacity: var(--bs-btn-close-opacity);
- }
- .btn-close > svg {
- display: block;
- width: 100%;
- height: 100%;
- fill: currentcolor;
+ mask-image: var(--bs-btn-close-icon);
+ mask-repeat: no-repeat;
+ mask-position: center;
+ mask-size: contain;
}
.btn-close:hover {
color: var(--bs-btn-close-color);
background-color: var(--bs-accordion-bg);
border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);
}
+ @media (prefers-reduced-motion: no-preference) {
+ .accordion-item {
+ interpolate-size: allow-keywords;
+ }
+ }
+ .accordion-item::details-content {
+ block-size: 0;
+ overflow-y: clip;
+ transition: content-visibility 0.2s allow-discrete, block-size 0.2s;
+ }
+ @media (prefers-reduced-motion: reduce) {
+ .accordion-item::details-content {
+ transition: none;
+ }
+ }
.accordion-item:first-of-type {
border-start-start-radius: var(--bs-accordion-border-radius);
border-start-end-radius: var(--bs-accordion-border-radius);
.accordion-item[open] {
border-color: var(--bs-theme-border, var(--bs-accordion-border-color));
}
+ .accordion-item[open]::details-content {
+ block-size: auto;
+ }
.accordion-item[open] > .accordion-header {
color: var(--bs-theme-fg, var(--bs-accordion-active-color));
background-color: var(--bs-theme-bg-subtle, var(--bs-accordion-active-bg));
background-color: var(--bs-theme-bg, var(--bs-avatar-bg));
border-radius: var(--bs-avatar-border-radius);
}
+ .avatar > .avatar-img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ }
.avatar-subtle {
color: var(--bs-theme-fg, var(--bs-avatar-color));
background-color: var(--bs-theme-bg-subtle, var(--bs-avatar-bg));
}
.avatar-img {
- width: 100%;
- height: 100%;
- -o-object-fit: cover;
- object-fit: cover;
- border-radius: inherit;
+ border-radius: var(--bs-avatar-border-radius, 50%);
}
.avatar-status {
position: absolute;
.avatar-stack .avatar {
margin-left: calc(var(--bs-avatar-size) * var(--bs-avatar-stack-spacing));
border: var(--bs-avatar-border-width) solid var(--bs-avatar-border-color);
- -webkit-mask-image: none;
mask-image: none;
transition: var(--bs-avatar-stack-transition);
}
transform: translateY(-2px);
}
.avatar-xs,
- .avatar-stack-xs {
+ .avatar-stack-xs > .avatar {
--bs-avatar-size: 1.5rem;
--bs-avatar-status-size: 0.625rem;
}
.avatar-sm,
- .avatar-stack-sm {
+ .avatar-stack-sm > .avatar {
--bs-avatar-size: 2rem;
}
.avatar-lg,
- .avatar-stack-lg {
+ .avatar-stack-lg > .avatar {
--bs-avatar-size: 3rem;
--bs-avatar-status-size: 1rem;
+ --bs-avatar-border-width: 3px;
}
.avatar-xl,
- .avatar-stack-xl {
+ .avatar-stack-xl > .avatar {
--bs-avatar-size: 4rem;
--bs-avatar-status-size: 1.25rem;
+ --bs-avatar-border-width: 4px;
}
}
@layer components {
--bs-breadcrumb-bg: transparent;
--bs-breadcrumb-border-radius: var(--bs-radius-5);
--bs-breadcrumb-divider-color: var(--bs-fg-4);
+ --bs-breadcrumb-divider-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 16'%3e%3cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M2 2l4 6-4 6'/%3e%3c/svg%3e");
+ --bs-breadcrumb-divider-width: 0.375rem;
+ --bs-breadcrumb-divider-height: 0.75rem;
--bs-breadcrumb-link-padding-x: 0.75rem;
--bs-breadcrumb-link-padding-y: 0.25rem;
--bs-breadcrumb-link-color: var(--bs-fg-3);
margin-inline: calc(var(--bs-breadcrumb-link-padding-x) / 4);
color: var(--bs-breadcrumb-divider-color);
}
+ .breadcrumb-divider:empty::before {
+ display: block;
+ width: var(--bs-breadcrumb-divider-width);
+ height: var(--bs-breadcrumb-divider-height);
+ content: "";
+ background-color: currentcolor;
+ mask-image: var(--bs-breadcrumb-divider-icon);
+ mask-repeat: no-repeat;
+ mask-position: center;
+ mask-size: contain;
+ }
.breadcrumb-link {
position: relative;
display: flex;
.chip-icon > img {
width: var(--bs-chip-icon-size);
height: var(--bs-chip-icon-size);
- -o-object-fit: cover;
object-fit: cover;
border-radius: 50%;
}
color: var(--bs-fg-body);
word-wrap: break-word;
background-color: var(--bs-card-bg);
+ border-radius: var(--bs-card-border-radius);
box-shadow: var(--bs-card-box-shadow);
}
.card > hr {
}
.card-translucent {
background-color: color-mix(in oklch, var(--bs-card-bg) 80%, transparent);
- -webkit-backdrop-filter: blur(5px) saturate(180%);
backdrop-filter: blur(5px) saturate(180%);
}
.card-translucent .card-header,
}
@layer components {
.carousel {
+ --bs-carousel-gap: 0.75rem;
+ --bs-carousel-indicator-bg: var(--bs-fg-3);
+ --bs-carousel-indicator-width: 0.75rem;
+ --bs-carousel-indicator-height: 0.75rem;
+ --bs-carousel-indicator-spacer: 0.25rem;
+ --bs-carousel-indicator-transition: opacity .6s ease, width .3s ease;
+ --bs-carousel-indicator-progress-bg: var(--bs-carousel-indicator-bg);
+ --bs-carousel-control-icon-width: 1rem;
+ --bs-carousel-control-prev-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/></svg>");
+ --bs-carousel-control-next-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/></svg>");
+ --bs-carousel-control-pause-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M5.5 3.5A1.5 1.5 0 0 1 7 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5m5 0A1.5 1.5 0 0 1 12 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5'/></svg>");
+ --bs-carousel-control-play-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='m11.596 8.697-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393z'/></svg>");
+ --bs-carousel-items: 1;
+ --bs-carousel-items-gap: 0px;
+ --bs-carousel-items-peek: 0px;
+ --bs-carousel-fade-duration: 0.6s;
position: relative;
- --bs-carousel-control-color: #fff;
- --bs-carousel-control-width: 15%;
- --bs-carousel-control-opacity: 0.5;
- --bs-carousel-control-hover-opacity: 0.9;
- --bs-carousel-control-transition: opacity 0.15s ease;
- --bs-carousel-control-icon-filter: none;
- --bs-carousel-indicator-width: 30px;
- --bs-carousel-indicator-height: 3px;
- --bs-carousel-indicator-hit-area-height: 10px;
- --bs-carousel-indicator-spacer: 3px;
- --bs-carousel-indicator-opacity: 0.5;
- --bs-carousel-indicator-active-bg: var(--bs-white);
- --bs-carousel-indicator-active-opacity: 1;
- --bs-carousel-indicator-transition: opacity 0.6s ease;
- --bs-carousel-caption-width: 70%;
- --bs-carousel-caption-color: var(--bs-white);
- --bs-carousel-caption-padding-y: 1.25rem;
- --bs-carousel-caption-spacer: 1.25rem;
- --bs-carousel-control-icon-width: 2rem;
- --bs-carousel-control-prev-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/></svg>");
- --bs-carousel-control-next-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/></svg>");
- --bs-carousel-transition-duration: 0.6s;
- --bs-carousel-transition: transform 0.6s ease-in-out;
- }
- .carousel.pointer-event {
- touch-action: pan-y;
+ display: flex;
+ flex-direction: column;
+ gap: var(--bs-carousel-gap);
}
.carousel-inner {
- position: relative;
- display: flow-root;
+ display: flex;
+ gap: var(--bs-carousel-items-gap);
width: 100%;
- overflow: hidden;
+ padding-inline: var(--bs-carousel-items-peek);
+ overflow-x: auto;
+ overscroll-behavior-x: contain;
+ scroll-snap-type: x mandatory;
+ scroll-padding-inline: var(--bs-carousel-items-peek);
+ scrollbar-width: none;
}
- .carousel-item {
- position: relative;
+ .carousel-inner::-webkit-scrollbar {
display: none;
- float: inline-start;
- width: 100%;
- margin-inline-end: -100%;
- backface-visibility: hidden;
- transition: var(--bs-carousel-transition);
}
- @media (prefers-reduced-motion: reduce) {
- .carousel-item {
- transition: none;
+ @media (prefers-reduced-motion: no-preference) {
+ .carousel-inner {
+ scroll-behavior: smooth;
}
}
- .carousel-item.active,
- .carousel-item-next,
- .carousel-item-prev {
- display: block;
- }
- .carousel-item-next:not(.carousel-item-start),
- .active.carousel-item-end {
- transform: translateX(100%);
+ .carousel-item {
+ flex: 0 0 calc((100% - (var(--bs-carousel-items) - 1) * var(--bs-carousel-items-gap)) / var(--bs-carousel-items));
+ min-width: 0;
+ scroll-snap-align: start;
+ scroll-snap-stop: always;
}
- .carousel-item-prev:not(.carousel-item-end),
- .active.carousel-item-start {
- transform: translateX(-100%);
+ .carousel-center .carousel-item {
+ scroll-snap-align: center;
}
- .carousel-fade .carousel-item {
- opacity: 0;
- transition-property: opacity;
- transform: none;
+ .carousel-auto .carousel-item {
+ flex-basis: auto;
}
- .carousel-fade .carousel-item.active,
- .carousel-fade .carousel-item-next.carousel-item-start,
- .carousel-fade .carousel-item-prev.carousel-item-end {
- z-index: 1;
- opacity: 1;
+ .carousel-fade .carousel-inner {
+ display: grid;
+ overflow: hidden;
+ scroll-snap-type: none;
}
- .carousel-fade .active.carousel-item-start,
- .carousel-fade .active.carousel-item-end {
- z-index: 0;
+ .carousel-fade .carousel-item {
+ grid-area: 1/1;
+ width: 100%;
+ visibility: hidden;
opacity: 0;
- transition: opacity 0s var(--bs-carousel-transition-duration);
+ transition: opacity var(--bs-carousel-fade-duration) ease, visibility 0s linear var(--bs-carousel-fade-duration);
}
@media (prefers-reduced-motion: reduce) {
- .carousel-fade .active.carousel-item-start,
- .carousel-fade .active.carousel-item-end {
+ .carousel-fade .carousel-item {
transition: none;
}
}
- .carousel-control-prev,
- .carousel-control-next {
- position: absolute;
- inset-block: 0;
- z-index: 1;
- display: flex;
- align-items: center;
- justify-content: center;
- width: var(--bs-carousel-control-width);
- padding: 0;
- color: var(--bs-carousel-control-color);
- text-align: center;
- background: none;
- filter: var(--bs-carousel-control-icon-filter);
- border: 0;
- opacity: var(--bs-carousel-control-opacity);
- transition: var(--bs-carousel-control-transition);
+ .carousel-fade .carousel-item.active {
+ visibility: visible;
+ opacity: 1;
+ transition: opacity var(--bs-carousel-fade-duration) ease;
}
@media (prefers-reduced-motion: reduce) {
- .carousel-control-prev,
- .carousel-control-next {
+ .carousel-fade .carousel-item.active {
transition: none;
}
}
- .carousel-control-prev:hover, .carousel-control-prev:focus,
- .carousel-control-next:hover,
- .carousel-control-next:focus {
- color: var(--bs-carousel-control-color);
- text-decoration: none;
- outline: 0;
- opacity: var(--bs-carousel-control-hover-opacity);
- }
- .carousel-control-prev {
- inset-inline-start: 0;
- background-image: linear-gradient(90deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.001));
- }
- .carousel-control-next {
- inset-inline-end: 0;
- background-image: linear-gradient(270deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.001));
- }
- .carousel-control-prev-icon,
- .carousel-control-next-icon {
+ .carousel-icon-prev,
+ .carousel-icon-next,
+ .carousel-icon-pause,
+ .carousel-icon-play {
display: inline-block;
width: var(--bs-carousel-control-icon-width);
height: var(--bs-carousel-control-icon-width);
- background-repeat: no-repeat;
- background-position: 50%;
- background-size: 100% 100%;
+ background-color: currentcolor;
+ mask-repeat: no-repeat;
+ mask-position: 50%;
+ mask-size: 100% 100%;
+ }
+ .carousel-icon-prev {
+ mask-image: var(--bs-carousel-control-prev-icon);
+ }
+ .carousel-icon-next {
+ mask-image: var(--bs-carousel-control-next-icon);
+ }
+ [dir=rtl] .carousel-icon-prev,
+ [dir=rtl] .carousel-icon-next {
+ transform: scaleX(-1);
}
- .carousel-control-prev-icon {
- background-image: var(--bs-carousel-control-prev-icon-bg);
+ .carousel-icon-pause {
+ mask-image: var(--bs-carousel-control-pause-icon);
}
- [dir=rtl] .carousel-control-prev-icon {
- background-image: var(--bs-carousel-control-next-icon-bg);
+ .carousel-icon-play {
+ mask-image: var(--bs-carousel-control-play-icon);
}
- .carousel-control-next-icon {
- background-image: var(--bs-carousel-control-next-icon-bg);
+ .carousel-control-play-pause .carousel-icon-play {
+ display: none;
+ }
+ .carousel-control-play-pause.paused .carousel-icon-pause {
+ display: none;
}
- [dir=rtl] .carousel-control-next-icon {
- background-image: var(--bs-carousel-control-prev-icon-bg);
+ .carousel-control-play-pause.paused .carousel-icon-play {
+ display: inline-block;
}
.carousel-indicators {
- position: absolute;
- inset: auto 0 0;
- z-index: 2;
display: flex;
+ gap: var(--bs-carousel-indicator-spacer);
justify-content: center;
- padding: 0;
- margin-inline: var(--bs-carousel-control-width);
- margin-bottom: 1rem;
}
.carousel-indicators [data-bs-target] {
- box-sizing: content-box;
flex: 0 1 auto;
width: var(--bs-carousel-indicator-width);
height: var(--bs-carousel-indicator-height);
padding: 0;
- margin-inline: var(--bs-carousel-indicator-spacer);
- text-indent: -999px;
cursor: pointer;
- background-color: var(--bs-carousel-indicator-active-bg);
- background-clip: padding-box;
- border: 0;
- border-block: var(--bs-carousel-indicator-hit-area-height) solid transparent;
- opacity: var(--bs-carousel-indicator-opacity);
+ background-color: transparent;
+ border: 1px solid var(--bs-carousel-indicator-bg);
+ border-radius: var(--bs-carousel-indicator-width);
transition: var(--bs-carousel-indicator-transition);
}
@media (prefers-reduced-motion: reduce) {
}
}
.carousel-indicators .active {
- opacity: var(--bs-carousel-indicator-active-opacity);
- }
- .carousel-caption {
- position: absolute;
- right: calc((100% - var(--bs-carousel-caption-width)) * 0.5);
- bottom: var(--bs-carousel-caption-spacer);
- left: calc((100% - var(--bs-carousel-caption-width)) * 0.5);
- padding-top: var(--bs-carousel-caption-padding-y);
- padding-bottom: var(--bs-carousel-caption-padding-y);
- color: var(--bs-carousel-caption-color);
- text-align: center;
+ width: calc(var(--bs-carousel-indicator-width) * 2.5);
+ background-color: var(--bs-carousel-indicator-bg);
+ border-color: var(--bs-carousel-indicator-bg);
}
- .carousel-dark {
- --bs-carousel-indicator-active-bg: #000;
- --bs-carousel-caption-color: #000;
- --bs-carousel-control-icon-filter: invert(1) grayscale(100);
+ @keyframes carousel-indicator-progress {
+ from {
+ inline-size: 0;
+ }
+ to {
+ inline-size: 100%;
+ }
}
- @media (prefers-color-scheme: dark) {
- :root {
- --bs-carousel-indicator-active-bg: #000;
- --bs-carousel-caption-color: #000;
- --bs-carousel-control-icon-filter: invert(1) grayscale(100);
+ @media (prefers-reduced-motion: no-preference) {
+ .carousel-playing .carousel-indicators .active {
+ position: relative;
+ overflow: hidden;
+ background-color: transparent;
+ }
+ .carousel-playing .carousel-indicators .active::after {
+ position: absolute;
+ inset-block: 0;
+ inset-inline-start: 0;
+ inline-size: 0;
+ content: "";
+ background-color: var(--bs-carousel-indicator-progress-bg);
+ animation: carousel-indicator-progress var(--bs-carousel-interval, 5000ms) linear forwards;
}
}
+ .carousel-overlay {
+ --bs-carousel-indicator-bg: light-dark(var(--bs-white), var(--bs-black));
+ }
+ .carousel-overlay .carousel-overlay-controls {
+ position: absolute;
+ inset-block-end: 1rem;
+ inset-inline: 1rem;
+ z-index: 1;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ }
}
@layer components {
[data-vc=calendar] {
position: absolute;
inset: 0.25rem;
content: "";
- background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%236b7280' d='M12 16c-.3 0-.5-.1-.7-.3l-6-6c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l5.3 5.3 5.3-5.3c.4-.4 1-.4 1.4 0s.4 1 0 1.4l-6 6c-.2.2-.4.3-.7.3'/></svg>");
- background-repeat: no-repeat;
- background-position: center;
+ background-color: var(--bs-datepicker-color);
+ mask-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 16c-.3 0-.5-.1-.7-.3l-6-6c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l5.3 5.3 5.3-5.3c.4-.4 1-.4 1.4 0s.4 1 0 1.4l-6 6c-.2.2-.4.3-.7.3'/></svg>");
+ mask-repeat: no-repeat;
+ mask-position: center;
}
[data-vc-arrow]:hover {
background-color: var(--bs-datepicker-day-hover-bg);
flex-grow: 1;
grid-template-columns: repeat(var(--bs-vc-columns, 4), minmax(0, 1fr));
row-gap: 1rem;
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
align-items: center;
}
}
.dialog:not(.dialog-instant)::backdrop {
background-color: var(--bs-dialog-backdrop-bg);
- -webkit-backdrop-filter: blur(var(--bs-dialog-backdrop-blur));
backdrop-filter: blur(var(--bs-dialog-backdrop-blur));
- transition: background-color var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), display var(--bs-dialog-transition-duration) allow-discrete, overlay var(--bs-dialog-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing);
transition: background-color var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), backdrop-filter var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), display var(--bs-dialog-transition-duration) allow-discrete, overlay var(--bs-dialog-transition-duration) allow-discrete;
- transition: background-color var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), backdrop-filter var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), display var(--bs-dialog-transition-duration) allow-discrete, overlay var(--bs-dialog-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing);
}
@media (prefers-reduced-motion: reduce) {
.dialog:not(.dialog-instant)::backdrop {
}
.dialog:not(.dialog-instant).hiding::backdrop {
background-color: transparent;
- -webkit-backdrop-filter: blur(0);
backdrop-filter: blur(0);
}
.dialog.dialog-instant::backdrop {
background-color: var(--bs-dialog-backdrop-bg);
- -webkit-backdrop-filter: blur(var(--bs-dialog-backdrop-blur));
backdrop-filter: blur(var(--bs-dialog-backdrop-blur));
}
.dialog[open]:not(.hiding) {
@starting-style {
.dialog:not(.dialog-instant)::backdrop {
background-color: transparent;
- -webkit-backdrop-filter: blur(0);
backdrop-filter: blur(0);
}
.dialog.dialog-swap-in:not(.dialog-instant)::backdrop {
background-color: var(--bs-dialog-backdrop-bg);
- -webkit-backdrop-filter: blur(var(--bs-dialog-backdrop-blur));
backdrop-filter: blur(var(--bs-dialog-backdrop-blur));
}
}
--bs-menu-item-padding-y: 0.25rem;
--bs-menu-item-border-radius: var(--bs-radius-5);
--bs-menu-icon-size: 1rem;
- --bs-menu-image-size: 1.5rem;
--bs-menu-description-font-size: var(--bs-font-size-xs);
--bs-menu-check-color: currentcolor;
--bs-menu-header-color: var(--bs-fg-3);
--bs-menu-item-active-bg: light-dark(var(--bs-menu-item-active-bg-light), var(--bs-menu-item-active-bg-dark));
--bs-menu-item-hover-bg: light-dark(var(--bs-menu-item-hover-bg-light), var(--bs-menu-item-hover-bg-dark));
background-color: color-mix(in oklch, var(--bs-menu-bg) 80%, transparent);
- -webkit-backdrop-filter: blur(5px) saturate(180%);
backdrop-filter: blur(5px) saturate(180%);
}
.menu-divider {
height: auto;
margin-top: 0.125rem;
}
- .menu-image {
- width: var(--bs-menu-image-size);
- height: var(--bs-menu-image-size);
- -o-object-fit: cover;
- object-fit: cover;
- border-radius: var(--bs-radius-5);
- }
.menu-item-content {
display: flex;
flex: 1;
color: var(--bs-menu-item-hover-color);
background-color: var(--bs-menu-item-hover-bg);
}
- @media (max-width: 575.98px) {
- .submenu:has(.submenu-stacked) {
- position: static;
- }
- .submenu-stacked {
- position: absolute;
- inset: 0;
- z-index: 1;
- display: flex;
- flex-direction: column;
- gap: var(--bs-menu-gap);
- min-width: 0;
- padding: var(--bs-menu-padding-y) var(--bs-menu-padding-x);
- background-color: var(--bs-menu-bg);
- border: 0;
- border-radius: 0;
- box-shadow: none;
- }
- .submenu-back {
- display: flex;
- gap: var(--bs-menu-item-gap);
- align-items: center;
- padding: var(--bs-menu-item-padding-y) var(--bs-menu-item-padding-x);
- font-weight: var(--bs-font-weight-semibold, 600);
- color: var(--bs-menu-item-color);
- }
- .submenu-back::before {
- display: inline-block;
- flex-shrink: 0;
- width: 0.375em;
- height: 0.375em;
- content: "";
- border-color: currentcolor;
- border-style: solid;
- border-width: 0.125em 0 0 0.125em;
- transform: rotate(-45deg);
- }
- [dir=rtl] .submenu-back::before {
- border-width: 0 0.125em 0.125em 0;
- }
- .submenu-dimmed {
- pointer-events: none;
- filter: blur(2px);
- opacity: 0.3;
- }
- }
}
@layer components {
.list-group {
--bs-navbar-toggler-border-color: color-mix(in oklch, var(--bs-fg-body) 15%, transparent);
--bs-navbar-toggler-border-radius: var(--bs-radius-5);
--bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;
+ --bs-navbar-toggler-icon-size: 1.25rem;
+ --bs-navbar-toggler-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath stroke='black' stroke-linecap='round' stroke-width='1' d='M1 3.5h14M1 8h14M1 12.5h14'/%3e%3c/svg%3e");
position: relative;
display: flex;
flex-wrap: wrap;
--bs-btn-bg: transparent;
--bs-btn-hover-bg: var(--bs-bg-2);
}
+ .navbar-toggler-icon {
+ display: inline-block;
+ width: var(--bs-navbar-toggler-icon-size);
+ height: var(--bs-navbar-toggler-icon-size);
+ background-color: currentcolor;
+ mask-image: var(--bs-navbar-toggler-icon);
+ mask-repeat: no-repeat;
+ mask-position: center;
+ mask-size: contain;
+ }
.navbar-expand > .container,
.navbar-expand > .container-fluid {
flex-wrap: nowrap;
content: "";
background-color: color-mix(in oklch, var(--bs-navbar-bg, var(--bs-bg-body)) 80%, transparent);
background-image: none;
- -webkit-backdrop-filter: blur(5px) saturate(180%);
backdrop-filter: blur(5px) saturate(180%);
}
.navbar[data-bs-theme=dark] {
--bs-drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);
--bs-drawer-title-line-height: 1.5;
background-color: color-mix(in oklch, var(--bs-drawer-backdrop-bg) var(--bs-drawer-backdrop-opacity), transparent);
- -webkit-backdrop-filter: blur(var(--bs-drawer-backdrop-blur));
backdrop-filter: blur(var(--bs-drawer-backdrop-blur));
- transition: background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing);
transition: background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete;
- transition: background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing);
}
@media (prefers-reduced-motion: reduce) {
.sm\:drawer::backdrop {
--bs-drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);
--bs-drawer-title-line-height: 1.5;
background-color: color-mix(in oklch, var(--bs-drawer-backdrop-bg) var(--bs-drawer-backdrop-opacity), transparent);
- -webkit-backdrop-filter: blur(var(--bs-drawer-backdrop-blur));
backdrop-filter: blur(var(--bs-drawer-backdrop-blur));
- transition: background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing);
transition: background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete;
- transition: background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing);
}
@media (prefers-reduced-motion: reduce) {
.md\:drawer::backdrop {
--bs-drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);
--bs-drawer-title-line-height: 1.5;
background-color: color-mix(in oklch, var(--bs-drawer-backdrop-bg) var(--bs-drawer-backdrop-opacity), transparent);
- -webkit-backdrop-filter: blur(var(--bs-drawer-backdrop-blur));
backdrop-filter: blur(var(--bs-drawer-backdrop-blur));
- transition: background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing);
transition: background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete;
- transition: background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing);
}
@media (prefers-reduced-motion: reduce) {
.lg\:drawer::backdrop {
--bs-drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);
--bs-drawer-title-line-height: 1.5;
background-color: color-mix(in oklch, var(--bs-drawer-backdrop-bg) var(--bs-drawer-backdrop-opacity), transparent);
- -webkit-backdrop-filter: blur(var(--bs-drawer-backdrop-blur));
backdrop-filter: blur(var(--bs-drawer-backdrop-blur));
- transition: background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing);
transition: background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete;
- transition: background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing);
}
@media (prefers-reduced-motion: reduce) {
.xl\:drawer::backdrop {
--bs-drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);
--bs-drawer-title-line-height: 1.5;
background-color: color-mix(in oklch, var(--bs-drawer-backdrop-bg) var(--bs-drawer-backdrop-opacity), transparent);
- -webkit-backdrop-filter: blur(var(--bs-drawer-backdrop-blur));
backdrop-filter: blur(var(--bs-drawer-backdrop-blur));
- transition: background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing);
transition: background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete;
- transition: background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing);
}
@media (prefers-reduced-motion: reduce) {
.\32 xl\:drawer::backdrop {
--bs-drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);
--bs-drawer-title-line-height: 1.5;
background-color: color-mix(in oklch, var(--bs-drawer-backdrop-bg) var(--bs-drawer-backdrop-opacity), transparent);
- -webkit-backdrop-filter: blur(var(--bs-drawer-backdrop-blur));
backdrop-filter: blur(var(--bs-drawer-backdrop-blur));
- transition: background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing);
transition: background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete;
- transition: background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing);
}
@media (prefers-reduced-motion: reduce) {
.drawer::backdrop {
@starting-style {
.sm\:drawer::backdrop {
background-color: transparent;
- -webkit-backdrop-filter: blur(0);
backdrop-filter: blur(0);
}
.md\:drawer::backdrop {
background-color: transparent;
- -webkit-backdrop-filter: blur(0);
backdrop-filter: blur(0);
}
.lg\:drawer::backdrop {
background-color: transparent;
- -webkit-backdrop-filter: blur(0);
backdrop-filter: blur(0);
}
.xl\:drawer::backdrop {
background-color: transparent;
- -webkit-backdrop-filter: blur(0);
backdrop-filter: blur(0);
}
.\32 xl\:drawer::backdrop {
background-color: transparent;
- -webkit-backdrop-filter: blur(0);
backdrop-filter: blur(0);
}
.drawer::backdrop {
background-color: transparent;
- -webkit-backdrop-filter: blur(0);
backdrop-filter: blur(0);
}
}
}
.drawer-translucent {
background-color: color-mix(in oklch, var(--bs-drawer-bg) 80%, transparent);
- -webkit-backdrop-filter: blur(5px) saturate(180%);
backdrop-filter: blur(5px) saturate(180%);
}
.drawer-sheet {
padding: var(--bs-drawer-padding-y) var(--bs-drawer-padding-x);
}
.drawer-header .btn-close {
- padding: calc(var(--bs-drawer-padding-y) * 0.5) calc(var(--bs-drawer-padding-x) * 0.5);
+ margin-block: calc(-0.5 * var(--bs-drawer-padding-y));
margin-inline-start: auto;
- margin-inline-end: calc(-0.5 * var(--bs-drawer-padding-x));
- margin-top: calc(-0.5 * var(--bs-drawer-padding-y));
- margin-bottom: calc(-0.5 * var(--bs-drawer-padding-y));
}
.drawer-title {
margin-bottom: 0;
}
}
.placeholder-wave {
- -webkit-mask-image: linear-gradient(130deg, #000 55%, rgb(0, 0, 0, calc(1 - var(--bs-placeholder-opacity-min))) 75%, #000 95%);
mask-image: linear-gradient(130deg, #000 55%, rgb(0, 0, 0, calc(1 - var(--bs-placeholder-opacity-min))) 75%, #000 95%);
- -webkit-mask-size: 200% 100%;
mask-size: 200% 100%;
animation: placeholder-wave 2s linear infinite;
}
@keyframes placeholder-wave {
100% {
- -webkit-mask-position: -200% 0%;
mask-position: -200% 0%;
}
}
color: inherit;
}
.toast-translucent {
- -webkit-backdrop-filter: blur(5px) saturate(180%);
backdrop-filter: blur(5px) saturate(180%);
}
.toast-body {
float: none;
}
.object-fit-contain {
- -o-object-fit: contain;
object-fit: contain;
}
.object-fit-cover {
- -o-object-fit: cover;
object-fit: cover;
}
.object-fit-fill {
- -o-object-fit: fill;
object-fit: fill;
}
.object-fit-scale {
- -o-object-fit: scale-down;
object-fit: scale-down;
}
.object-fit-none {
- -o-object-fit: none;
object-fit: none;
}
.opacity-0 {
row-gap: 3rem;
}
.column-gap-0 {
- -moz-column-gap: 0;
column-gap: 0;
}
.column-gap-1 {
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
}
.column-gap-2 {
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
}
.column-gap-3 {
- -moz-column-gap: 0.75rem;
column-gap: 0.75rem;
}
.column-gap-4 {
- -moz-column-gap: 1rem;
column-gap: 1rem;
}
.column-gap-5 {
- -moz-column-gap: 1.25rem;
column-gap: 1.25rem;
}
.column-gap-6 {
- -moz-column-gap: 1.5rem;
column-gap: 1.5rem;
}
.column-gap-7 {
- -moz-column-gap: 2rem;
column-gap: 2rem;
}
.column-gap-8 {
- -moz-column-gap: 2.5rem;
column-gap: 2.5rem;
}
.column-gap-9 {
- -moz-column-gap: 3rem;
column-gap: 3rem;
}
:where(.space-x-0 > :not(:last-child)) {
--bs-fg: var(--bs-fg-black);
color: var(--bs-fg);
}
+ .fg-reset {
+ --bs-fg: inherit;
+ color: var(--bs-fg);
+ }
.fg-emphasis-primary {
--bs-fg: var(--bs-primary-fg-emphasis);
color: var(--bs-fg);
float: none;
}
.sm\:object-fit-contain {
- -o-object-fit: contain;
object-fit: contain;
}
.sm\:object-fit-cover {
- -o-object-fit: cover;
object-fit: cover;
}
.sm\:object-fit-fill {
- -o-object-fit: fill;
object-fit: fill;
}
.sm\:object-fit-scale {
- -o-object-fit: scale-down;
object-fit: scale-down;
}
.sm\:object-fit-none {
- -o-object-fit: none;
object-fit: none;
}
.sm\:d-inline {
row-gap: 3rem;
}
.sm\:column-gap-0 {
- -moz-column-gap: 0;
column-gap: 0;
}
.sm\:column-gap-1 {
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
}
.sm\:column-gap-2 {
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
}
.sm\:column-gap-3 {
- -moz-column-gap: 0.75rem;
column-gap: 0.75rem;
}
.sm\:column-gap-4 {
- -moz-column-gap: 1rem;
column-gap: 1rem;
}
.sm\:column-gap-5 {
- -moz-column-gap: 1.25rem;
column-gap: 1.25rem;
}
.sm\:column-gap-6 {
- -moz-column-gap: 1.5rem;
column-gap: 1.5rem;
}
.sm\:column-gap-7 {
- -moz-column-gap: 2rem;
column-gap: 2rem;
}
.sm\:column-gap-8 {
- -moz-column-gap: 2.5rem;
column-gap: 2.5rem;
}
.sm\:column-gap-9 {
- -moz-column-gap: 3rem;
column-gap: 3rem;
}
:where(.sm\:space-x-0 > :not(:last-child)) {
float: none;
}
.md\:object-fit-contain {
- -o-object-fit: contain;
object-fit: contain;
}
.md\:object-fit-cover {
- -o-object-fit: cover;
object-fit: cover;
}
.md\:object-fit-fill {
- -o-object-fit: fill;
object-fit: fill;
}
.md\:object-fit-scale {
- -o-object-fit: scale-down;
object-fit: scale-down;
}
.md\:object-fit-none {
- -o-object-fit: none;
object-fit: none;
}
.md\:d-inline {
row-gap: 3rem;
}
.md\:column-gap-0 {
- -moz-column-gap: 0;
column-gap: 0;
}
.md\:column-gap-1 {
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
}
.md\:column-gap-2 {
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
}
.md\:column-gap-3 {
- -moz-column-gap: 0.75rem;
column-gap: 0.75rem;
}
.md\:column-gap-4 {
- -moz-column-gap: 1rem;
column-gap: 1rem;
}
.md\:column-gap-5 {
- -moz-column-gap: 1.25rem;
column-gap: 1.25rem;
}
.md\:column-gap-6 {
- -moz-column-gap: 1.5rem;
column-gap: 1.5rem;
}
.md\:column-gap-7 {
- -moz-column-gap: 2rem;
column-gap: 2rem;
}
.md\:column-gap-8 {
- -moz-column-gap: 2.5rem;
column-gap: 2.5rem;
}
.md\:column-gap-9 {
- -moz-column-gap: 3rem;
column-gap: 3rem;
}
:where(.md\:space-x-0 > :not(:last-child)) {
float: none;
}
.lg\:object-fit-contain {
- -o-object-fit: contain;
object-fit: contain;
}
.lg\:object-fit-cover {
- -o-object-fit: cover;
object-fit: cover;
}
.lg\:object-fit-fill {
- -o-object-fit: fill;
object-fit: fill;
}
.lg\:object-fit-scale {
- -o-object-fit: scale-down;
object-fit: scale-down;
}
.lg\:object-fit-none {
- -o-object-fit: none;
object-fit: none;
}
.lg\:d-inline {
row-gap: 3rem;
}
.lg\:column-gap-0 {
- -moz-column-gap: 0;
column-gap: 0;
}
.lg\:column-gap-1 {
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
}
.lg\:column-gap-2 {
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
}
.lg\:column-gap-3 {
- -moz-column-gap: 0.75rem;
column-gap: 0.75rem;
}
.lg\:column-gap-4 {
- -moz-column-gap: 1rem;
column-gap: 1rem;
}
.lg\:column-gap-5 {
- -moz-column-gap: 1.25rem;
column-gap: 1.25rem;
}
.lg\:column-gap-6 {
- -moz-column-gap: 1.5rem;
column-gap: 1.5rem;
}
.lg\:column-gap-7 {
- -moz-column-gap: 2rem;
column-gap: 2rem;
}
.lg\:column-gap-8 {
- -moz-column-gap: 2.5rem;
column-gap: 2.5rem;
}
.lg\:column-gap-9 {
- -moz-column-gap: 3rem;
column-gap: 3rem;
}
:where(.lg\:space-x-0 > :not(:last-child)) {
float: none;
}
.xl\:object-fit-contain {
- -o-object-fit: contain;
object-fit: contain;
}
.xl\:object-fit-cover {
- -o-object-fit: cover;
object-fit: cover;
}
.xl\:object-fit-fill {
- -o-object-fit: fill;
object-fit: fill;
}
.xl\:object-fit-scale {
- -o-object-fit: scale-down;
object-fit: scale-down;
}
.xl\:object-fit-none {
- -o-object-fit: none;
object-fit: none;
}
.xl\:d-inline {
row-gap: 3rem;
}
.xl\:column-gap-0 {
- -moz-column-gap: 0;
column-gap: 0;
}
.xl\:column-gap-1 {
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
}
.xl\:column-gap-2 {
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
}
.xl\:column-gap-3 {
- -moz-column-gap: 0.75rem;
column-gap: 0.75rem;
}
.xl\:column-gap-4 {
- -moz-column-gap: 1rem;
column-gap: 1rem;
}
.xl\:column-gap-5 {
- -moz-column-gap: 1.25rem;
column-gap: 1.25rem;
}
.xl\:column-gap-6 {
- -moz-column-gap: 1.5rem;
column-gap: 1.5rem;
}
.xl\:column-gap-7 {
- -moz-column-gap: 2rem;
column-gap: 2rem;
}
.xl\:column-gap-8 {
- -moz-column-gap: 2.5rem;
column-gap: 2.5rem;
}
.xl\:column-gap-9 {
- -moz-column-gap: 3rem;
column-gap: 3rem;
}
:where(.xl\:space-x-0 > :not(:last-child)) {
float: none;
}
.\32 xl\:object-fit-contain {
- -o-object-fit: contain;
object-fit: contain;
}
.\32 xl\:object-fit-cover {
- -o-object-fit: cover;
object-fit: cover;
}
.\32 xl\:object-fit-fill {
- -o-object-fit: fill;
object-fit: fill;
}
.\32 xl\:object-fit-scale {
- -o-object-fit: scale-down;
object-fit: scale-down;
}
.\32 xl\:object-fit-none {
- -o-object-fit: none;
object-fit: none;
}
.\32 xl\:d-inline {
row-gap: 3rem;
}
.\32 xl\:column-gap-0 {
- -moz-column-gap: 0;
column-gap: 0;
}
.\32 xl\:column-gap-1 {
- -moz-column-gap: 0.25rem;
column-gap: 0.25rem;
}
.\32 xl\:column-gap-2 {
- -moz-column-gap: 0.5rem;
column-gap: 0.5rem;
}
.\32 xl\:column-gap-3 {
- -moz-column-gap: 0.75rem;
column-gap: 0.75rem;
}
.\32 xl\:column-gap-4 {
- -moz-column-gap: 1rem;
column-gap: 1rem;
}
.\32 xl\:column-gap-5 {
- -moz-column-gap: 1.25rem;
column-gap: 1.25rem;
}
.\32 xl\:column-gap-6 {
- -moz-column-gap: 1.5rem;
column-gap: 1.5rem;
}
.\32 xl\:column-gap-7 {
- -moz-column-gap: 2rem;
column-gap: 2rem;
}
.\32 xl\:column-gap-8 {
- -moz-column-gap: 2.5rem;
column-gap: 2.5rem;
}
.\32 xl\:column-gap-9 {
- -moz-column-gap: 3rem;
column-gap: 3rem;
}
:where(.\32 xl\:space-x-0 > :not(:last-child)) {
-{"version":3,"sources":["bootstrap.css","../../scss/_banner.scss","../../scss/_colors.scss","../../scss/mixins/_tokens.scss","../../scss/_root.scss","../../scss/content/_reboot.scss","../../scss/_config.scss","../../scss/mixins/_border-radius.scss","../../scss/content/_type.scss","../../scss/mixins/_lists.scss","../../scss/content/_tables.scss","../../scss/layout/_breakpoints.scss","../../scss/content/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_box-shadow.scss","../../scss/content/_prose.scss","../../scss/mixins/_transition.scss","../../scss/layout/_containers.scss","../../scss/layout/_grid.scss","../../scss/mixins/_grid.scss","../../scss/forms/_labels.scss","../../scss/forms/_form-text.scss","../../scss/forms/_form-control.scss","../../scss/mixins/_focus-ring.scss","../../scss/forms/_check.scss","../../scss/forms/_radio.scss","../../scss/forms/_switch.scss","../../scss/forms/_form-range.scss","../../scss/mixins/_gradients.scss","../../scss/forms/_floating-labels.scss","../../scss/forms/_input-group.scss","../../scss/forms/_strength.scss","../../scss/forms/_otp-input.scss","../../scss/forms/_form-adorn.scss","../../scss/forms/_chip-input.scss","../../scss/forms/_combobox.scss","../../scss/forms/_form-field.scss","../../scss/forms/_validation.scss","../../scss/mixins/_form-validation.scss","../../scss/buttons/_button.scss","../../scss/buttons/_button-group.scss","../../scss/buttons/_close.scss","../../scss/_accordion.scss","../../scss/_alert.scss","../../scss/_avatar.scss","../../scss/_badge.scss","../../scss/_breadcrumb.scss","../../scss/_chip.scss","../../scss/_card.scss","../../scss/_carousel.scss","../../scss/mixins/_color-mode.scss","../../scss/_datepicker.scss","../../scss/_dialog.scss","../../scss/mixins/_dialog-shared.scss","../../scss/_menu.scss","../../scss/_list-group.scss","../../scss/_nav.scss","../../scss/_nav-overflow.scss","../../scss/_navbar.scss","../../scss/_drawer.scss","../../scss/_pagination.scss","../../scss/_placeholder.scss","../../scss/_popover.scss","../../scss/mixins/_reset-text.scss","../../scss/_progress.scss","../../scss/_spinner.scss","../../scss/_stepper.scss","../../scss/_toasts.scss","../../scss/_tooltip.scss","../../scss/_transitions.scss","../../scss/helpers/_focus-ring.scss","../../scss/helpers/_icon-link.scss","../../scss/helpers/_position.scss","../../scss/helpers/_stacks.scss","../../scss/helpers/_theme-colors.scss","../../scss/_theme.scss","../../scss/helpers/_visually-hidden.scss","../../scss/mixins/_visually-hidden.scss","../../scss/helpers/_stretched-link.scss","../../scss/helpers/_text-truncation.scss","../../scss/mixins/_text-truncate.scss","../../scss/helpers/_vr.scss","../../scss/utilities/_api.scss","../../scss/mixins/_utilities.scss"],"names":[],"mappings":"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;EmBj6EQ;IACE,wBAAA;EnBm6EV;EmBp6EQ;IACE,wBAAA;EnBs6EV;EmBv6EQ;IACE,wBAAA;EnBy6EV;EmB16EQ;IACE,wBAAA;EnB46EV;EmB76EQ;IACE,wBAAA;EnB+6EV;EmBh7EQ;IACE,yBAAA;EnBk7EV;EmBn7EQ;IACE,yBAAA;EnBq7EV;EmBt7EQ;IACE,yBAAA;EnBw7EV;EmBj7EQ;IACE,oBAFS;EnBq7EnB;EmBp7EQ;IACE,oBAFS;EnBw7EnB;EmBv7EQ;IACE,oBAFS;EnB27EnB;EmB17EQ;IACE,oBAFS;EnB87EnB;EmB77EQ;IACE,oBAFS;EnBi8EnB;EmBh8EQ;IACE,oBAFS;EnBo8EnB;EmBn8EQ;IACE,oBAFS;EnBu8EnB;EmBt8EQ;IACE,oBAFS;EnB08EnB;EmBz8EQ;IACE,oBAFS;EnB68EnB;EmB58EQ;IACE,qBAFS;EnBg9EnB;EmB/8EQ;IACE,qBAFS;EnBm9EnB;EWv+EE;IQaM;MACE,wBAAA;InB69ER;ImB99EM;MACE,wBAAA;InBg+ER;ImBj+EM;MACE,wBAAA;InBm+ER;ImBp+EM;MACE,wBAAA;InBs+ER;ImBv+EM;MACE,wBAAA;InBy+ER;ImB1+EM;MACE,wBAAA;InB4+ER;ImB7+EM;MACE,wBAAA;InB++ER;ImBh/EM;MACE,wBAAA;InBk/ER;ImBn/EM;MACE,wBAAA;InBq/ER;ImBt/EM;MACE,yBAAA;InBw/ER;ImBz/EM;MACE,yBAAA;InB2/ER;ImB5/EM;MACE,yBAAA;InB8/ER;ImBv/EM;MACE,oBAFS;InB2/EjB;ImB1/EM;MACE,oBAFS;InB8/EjB;ImB7/EM;MACE,oBAFS;InBigFjB;ImBhgFM;MACE,oBAFS;InBogFjB;ImBngFM;MACE,oBAFS;InBugFjB;ImBtgFM;MACE,oBAFS;InB0gFjB;ImBzgFM;MACE,oBAFS;InB6gFjB;ImB5gFM;MACE,oBAFS;InBghFjB;ImB/gFM;MACE,oBAFS;InBmhFjB;ImBlhFM;MACE,qBAFS;InBshFjB;ImBrhFM;MACE,qBAFS;InByhFjB;EACF;EW9iFE;IQaM;MACE,wBAAA;InBoiFR;ImBriFM;MACE,wBAAA;InBuiFR;ImBxiFM;MACE,wBAAA;InB0iFR;ImB3iFM;MACE,wBAAA;InB6iFR;ImB9iFM;MACE,wBAAA;InBgjFR;ImBjjFM;MACE,wBAAA;InBmjFR;ImBpjFM;MACE,wBAAA;InBsjFR;ImBvjFM;MACE,wBAAA;InByjFR;ImB1jFM;MACE,wBAAA;InB4jFR;ImB7jFM;MACE,yBAAA;InB+jFR;ImBhkFM;MACE,yBAAA;InBkkFR;ImBnkFM;MACE,yBAAA;InBqkFR;ImB9jFM;MACE,oBAFS;InBkkFjB;ImBjkFM;MACE,oBAFS;InBqkFjB;ImBpkFM;MACE,oBAFS;InBwkFjB;ImBvkFM;MACE,oBAFS;InB2kFjB;ImB1kFM;MACE,oBAFS;InB8kFjB;ImB7kFM;MACE,oBAFS;InBilFjB;ImBhlFM;MACE,oBAFS;InBolFjB;ImBnlFM;MACE,oBAFS;InBulFjB;ImBtlFM;MACE,oBAFS;InB0lFjB;ImBzlFM;MACE,qBAFS;InB6lFjB;ImB5lFM;MACE,qBAFS;InBgmFjB;EACF;EWrnFE;IQaM;MACE,wBAAA;InB2mFR;ImB5mFM;MACE,wBAAA;InB8mFR;ImB/mFM;MACE,wBAAA;InBinFR;ImBlnFM;MACE,wBAAA;InBonFR;ImBrnFM;MACE,wBAAA;InBunFR;ImBxnFM;MACE,wBAAA;InB0nFR;ImB3nFM;MACE,wBAAA;InB6nFR;ImB9nFM;MACE,wBAAA;InBgoFR;ImBjoFM;MACE,wBAAA;InBmoFR;ImBpoFM;MACE,yBAAA;InBsoFR;ImBvoFM;MACE,yBAAA;InByoFR;ImB1oFM;MACE,yBAAA;InB4oFR;ImBroFM;MACE,oBAFS;InByoFjB;ImBxoFM;MACE,oBAFS;InB4oFjB;ImB3oFM;MACE,oBAFS;InB+oFjB;ImB9oFM;MACE,oBAFS;InBkpFjB;ImBjpFM;MACE,oBAFS;InBqpFjB;ImBppFM;MACE,oBAFS;InBwpFjB;ImBvpFM;MACE,oBAFS;InB2pFjB;ImB1pFM;MACE,oBAFS;InB8pFjB;ImB7pFM;MACE,oBAFS;InBiqFjB;ImBhqFM;MACE,qBAFS;InBoqFjB;ImBnqFM;MACE,qBAFS;InBuqFjB;EACF;EW5rFE;IQaM;MACE,wBAAA;InBkrFR;ImBnrFM;MACE,wBAAA;InBqrFR;ImBtrFM;MACE,wBAAA;InBwrFR;ImBzrFM;MACE,wBAAA;InB2rFR;ImB5rFM;MACE,wBAAA;InB8rFR;ImB/rFM;MACE,wBAAA;InBisFR;ImBlsFM;MACE,wBAAA;InBosFR;ImBrsFM;MACE,wBAAA;InBusFR;ImBxsFM;MACE,wBAAA;InB0sFR;ImB3sFM;MACE,yBAAA;InB6sFR;ImB9sFM;MACE,yBAAA;InBgtFR;ImBjtFM;MACE,yBAAA;InBmtFR;ImB5sFM;MACE,oBAFS;InBgtFjB;ImB/sFM;MACE,oBAFS;InBmtFjB;ImBltFM;MACE,oBAFS;InBstFjB;ImBrtFM;MACE,oBAFS;InBytFjB;ImBxtFM;MACE,oBAFS;InB4tFjB;ImB3tFM;MACE,oBAFS;InB+tFjB;ImB9tFM;MACE,oBAFS;InBkuFjB;ImBjuFM;MACE,oBAFS;InBquFjB;ImBpuFM;MACE,oBAFS;InBwuFjB;ImBvuFM;MACE,qBAFS;InB2uFjB;ImB1uFM;MACE,qBAFS;InB8uFjB;EACF;EWnwFE;IQaM;MACE,wBAAA;InByvFR;ImB1vFM;MACE,wBAAA;InB4vFR;ImB7vFM;MACE,wBAAA;InB+vFR;ImBhwFM;MACE,wBAAA;InBkwFR;ImBnwFM;MACE,wBAAA;InBqwFR;ImBtwFM;MACE,wBAAA;InBwwFR;ImBzwFM;MACE,wBAAA;InB2wFR;ImB5wFM;MACE,wBAAA;InB8wFR;ImB/wFM;MACE,wBAAA;InBixFR;ImBlxFM;MACE,yBAAA;InBoxFR;ImBrxFM;MACE,yBAAA;InBuxFR;ImBxxFM;MACE,yBAAA;InB0xFR;ImBnxFM;MACE,oBAFS;InBuxFjB;ImBtxFM;MACE,oBAFS;InB0xFjB;ImBzxFM;MACE,oBAFS;InB6xFjB;ImB5xFM;MACE,oBAFS;InBgyFjB;ImB/xFM;MACE,oBAFS;InBmyFjB;ImBlyFM;MACE,oBAFS;InBsyFjB;ImBryFM;MACE,oB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yDO;EnF8kTb;EmF3/SE;IA5II,iBAyDO;EnFilTb;EmF9/SE;IA5II,kBAyDO;EnFolTb;EmFjgTE;IA5II,aAyDO;EnFulTb;EmFpgTE;IA5II,gCAoDG;EnF+lTT;EmFvgTE;IA5II,mCAoDG;EnFkmTT;EmF1gTE;IA5II,mCAoDG;EnFqmTT;EmF7gTE;IA5II,gBAoDG;EnFwmTT;EmFhhTE;IA5II,gBAyDO;EnFsmTb;EmFnhTE;IA5II,kBAyDO;EnFymTb;EmFthTE;IA5II,kBAyDO;EnF4mTb;EmFzhTE;IA5II,eAyDO;EnF+mTb;EmF5hTE;IA5II,gBAyDO;EnFknTb;EmF/hTE;IA5II,MAoDG;EnF0nTT;EmFliTE;IA5II,QAoDG;EnF6nTT;EmFriTE;IA5II,SAoDG;EnFgoTT;EmFxiTE;IA5II,SAoDG;EnFmoTT;EmF3iTE;IA5II,WAoDG;EnFsoTT;EmF9iTE;IA5II,YAoDG;EnFyoTT;EmFjjTE;IA5II,qBAoDG;EnF4oTT;EmFpjTE;IA5II,uBAoDG;EnF+oTT;EmFvjTE;IA5II,wBAoDG;EnFkpTT;EmF1jTE;IA5II,mBAoDG;EnFqpTT;EmF7jTE;IA5II,qBAoDG;EnFwpTT;EmFhkTE;IA5II,sBAoDG;EnF2pTT;EmFnkTE;IA5II,gCAoDG;EnF8pTT;EmFtkTE;IA5II,2BAoDG;EnFiqTT;EmFzkTE;IA5II,2BAoDG;EnFoqTT;EmF5kTE;IA5II,4EAoDG;EnFuqTT;EmF/kTE;IA5II,SAoDG;EnF0qTT;EmFllTE;IA5II,wFAoDG;EnF6qTT;EmFrlTE;IA5II,qBAoDG;EnFgrTT;EmFxlTE;IA5II,uFAoDG;EnFmrTT;EmF3lTE;IA5II,oBAoDG;EnFsrTT;EmF9lTE;IA5II,sFAoDG;EnFyrTT;EmFjmTE;IA5II,mBAoDG;EnF4rTT;EmFpmTE;IA5II,yFAoDG;EnF+rTT;EmFvmTE;IA5II,sBAoDG;EnFksTT;EmF1mTE;IA5II,kFAoDG;EnFqsTT;EmF7mTE;IA5II,eAoDG;EnFwsTT;EmFhnTE;IA5II,mFAoDG;EnF2sTT;EmFnnTE;IA5II,gBAoDG;EnF8sTT;EmFtnTE;I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Fg8TT;EmFx2TE;IA5II,gBAoDG;EnFm8TT;EmF32TE;IA5II,aAoDG;EnFs8TT;EmF92TE;IA5II,iBAoDG;EnFy8TT;EmFj3TE;IA5II,cAoDG;EnF48TT;EmFp3TE;IA5II,mBAyDO;EnF08Tb;EmFv3TE;IA5II,sBAyDO;EnF68Tb;EmF13TE;IA5II,2BAyDO;EnFg9Tb;EmF73TE;IA5II,8BAyDO;EnFm9Tb;EmFh4TE;IA5II,YAoDG;EnF29TT;EmFn4TE;IA5II,YAoDG;EnF89TT;EmFt4TE;IA5II,cAoDG;EnFi+TT;EmFz4TE;IA5II,cAoDG;EnFo+TT;EmF54TE;IA5II,eAyDO;EnFk+Tb;EmF/4TE;IA5II,iBAyDO;EnFq+Tb;EmFl5TE;IA5II,uBAyDO;EnFw+Tb;EmFr5TE;IA5II,2BAoDG;EnFg/TT;EmFx5TE;IA5II,yBAoDG;EnFm/TT;EmF35TE;IA5II,uBAoDG;EnFs/TT;EmF95TE;IA5II,8BAoDG;EnFy/TT;EmFj6TE;IA5II,6BAoDG;EnF4/TT;EmFp6TE;IA5II,6BAoDG;EnF+/TT;EmFv6TE;IA5II,oBAoDG;EnFkgUT;EmF16TE;IA5II,kBAoDG;EnFqgUT;EmF76TE;IA5II,qBAoDG;EnFwgUT;EmFh7TE;IA5II,sBAoDG;EnF2gUT;EmFn7TE;IA5II,mBAoDG;EnF8gUT;EmFt7TE;IA5II,iBAoDG;EnFihUT;EmFz7TE;IA5II,oBAoDG;EnFohUT;EmF57TE;IA5II,uBAoDG;EnFuhUT;EmF/7TE;IA5II,qBAoDG;EnF0hUT;EmFl8TE;IA5II,mBAoDG;EnF6hUT;EmFr8TE;IA5II,qBAoDG;EnFgiUT;EmFx8TE;IA5II,oBAoDG;EnFmiUT;EmF38TE;IA5II,yBAoDG;EnFsiUT;EmF98TE;IA5II,uBAoDG;EnFyiUT;EmFj9TE;IA5II,qBAoDG;EnF4iUT;EmFp9TE;IA5II,4BAoDG;EnF+iUT;EmFv9TE;IA5II,2BAoDG;EnFkjUT;EmF19TE;IA5II,sBAoDG;EnFqjUT;EmF79TE;IA5II,gBAoDG;EnFwjUT;EmFh+TE;IA5II,sBAoDG;EnF2jUT;EmFn+TE;IA5II,oBAoDG;EnF8jUT;EmFt+TE;IA5II,kBAoDG;EnFikUT;EmFz+TE;IA5II,oBAoDG;EnFokUT;EmF5+TE;IA5II,mBAoDG;EnFukUT;EmF/+TE;IA5II,kBAoDG;EnF0kUT;EmFl/TE;IA5II,gBAoDG;EnF6kUT;EmFr/TE;IA5II,mBAoDG;EnFglUT;EmFx/TE;IA5II,oBAoDG;EnFmlUT;EmF3/TE;IA5II,0BAoDG;EnFslUT;EmF9/TE;IA5II,qCAoDG;EnFylUT;EmFjgUE;IA5II,qCAoDG;EnF4lUT;EmFpgUE;IA5II,qCAoDG;EnF+lUT;EmFvgUE;IA5II,qCAoDG;EnFkmUT;EmF1gUE;IA5II,mBAoDG;EnFqmUT;EmF7gUE;IA5II,mBAyDO;EnFmmUb;EmFhhUE;IA5II,sBAyDO;EnFsmUb;EmFnhUE;IA5II,qBAyDO;EnFymUb;EmFthUE;IA5II,SAoDG;EnFinUT;EmFzhUE;IA5II,QAoDG;EnFonUT;EmF5hUE;IA5II,QAoDG;EnFunUT;EmF/hUE;IA5II,QAoDG;EnF0nUT;EmFliUE;IA5II,QAoDG;EnF6nUT;EmFriUE;IA5II,QAoDG;EnFgoUT;EmFxiUE;IA5II,QAoDG;EnFmoUT;EmF3iUE;IA5II,QAoDG;EnFsoUT;EmF9iUE;IA5II,SAoDG;EnFyoUT;EmFjjUE;IA5II,eAoDG;EnF4oUT;EmFpjUE;IA5II,cAoDG;EnF+oUT;EmFvjUE;IA5II,eAoDG;EnFkpUT;EmF1jUE;IA5II,YAoDG;EnFqpUT;EmF7jUE;IA5II,eAoDG;EnFwpUT;EmFhkUE;IA5II,cAoDG;EnF2pUT;EmFnkUE;IA5II,YAoDG;EnF8pUT;EmFtkUE;IA5II,cAoDG;EnFiqUT;EmFzkUE;IA5II,YAoDG;EnFoqUT;EmF5kUE;IA5II,YAoDG;EnFuqUT;EmF/kUE;IA5II,gBAoDG;EnF0qUT;EmFllUE;IA5II,sBAoDG;EnF6qUT;EmFrlUE;IA5II,qBAoDG;EnFgrUT;EmFxlUE;IA5II,sBAoDG;EnFmrUT;EmF3lUE;IA5II,mBAoDG;EnFsrUT;EmF9lUE;IA5II,sBAoDG;EnFyrUT;EmFjmUE;IA5II,qBAoDG;EnF4rUT;EmFpmUE;IA5II,mBAoDG;EnF+rUT;EmFvmUE;IA5II,qBAoDG;EnFksUT;EmF1mUE;IA5II,mBAoDG;EnFqsUT;EmF7mUE;IA5II,mBAoDG;EnFwsUT;EmFhnUE;IA5II,eAoDG;EnF2sUT;EmFnnUE;IA5II,qBAoDG;EnF8sUT;EmFtnUE;IA5II,oBAoDG;EnFitUT;EmFznUE;IA5II,qBAoDG;EnFotUT;EmF5nUE;IA5II,kBAoDG;EnFutUT;EmF/nUE;IA5II,qBAoDG;EnF0tUT;EmFloUE;IA5II,oBAoDG;EnF6tUT;EmFroUE;IA5II,kBAoDG;EnFguUT;EmFxoUE;IA5II,oBAoDG;EnFmuUT;EmF3oUE;IA5II,kBAoDG;EnFsuUT;EmF9oUE;IA5II,kBAoDG;EnFyuUT;EmFjpUE;IA5II,qBAoDG;EnF4uUT;EmFppUE;IA5II,2BAoDG;EnF+uUT;EmFvpUE;IA5II,0BAoDG;EnFkvUT;EmF1pUE;IA5II,2BAoDG;EnFqvUT;EmF7pUE;IA5II,wBAoDG;EnFwvUT;EmFhqUE;IA5II,2BAoDG;EnF2vUT;EmFnqUE;IA5II,0BAoDG;EnF8vUT;EmFtqUE;IA5II,wBAoDG;EnFiwUT;EmFzqUE;IA5II,0BAoDG;EnFowUT;EmF5qUE;IA5II,wBAoDG;EnFuwUT;EmF/qUE;IA5II,wBAoDG;EnF0wUT;EmFlrUE;IA5II,oBAoDG;EnF6wUT;EmFrrUE;IA5II,0BAoDG;EnFgxUT;EmFxrUE;IA5II,yBAoDG;EnFmxUT;EmF3rUE;IA5II,0BAoDG;EnFsxUT;EmF9rUE;IA5II,uBAoDG;EnFyxUT;EmFjsUE;IA5II,0BAoDG;EnF4xUT;EmFpsUE;IA5II,yBAoDG;EnF+xUT;EmFvsUE;IA5II,uBAoDG;EnFkyUT;EmF1sUE;IA5II,yBAoDG;EnFqyUT;EmF7sUE;IA5II,uBAoDG;EnFwyUT;EmFhtUE;IA5II,2BAoDG;EnF2yUT;EmFntUE;IA5II,0BAoDG;EnF8yUT;EmFttUE;IA5II,uBAoDG;EnFizUT;EmFztUE;IA5II,mBAoDG;EnFozUT;EmF5tUE;IA5II,yBAoDG;EnFuzUT;EmF/tUE;IA5II,wBAoDG;EnF0zUT;EmFluUE;IA5II,yBAoDG;EnF6zUT;EmFruUE;IA5II,sBAoDG;EnFg0UT;EmFxuUE;IA5II,yBAoDG;EnFm0UT;EmF3uUE;IA5II,wBAoDG;EnFs0UT;EmF9uUE;IA5II,sBAoDG;EnFy0UT;EmFjvUE;IA5II,wBAoDG;EnF40UT;EmFpvUE;IA5II,sBAoDG;EnF+0UT;EmFvvUE;IA5II,sBAoDG;EnFk1UT;EmF1vUE;IA5II,sBAoDG;EnFq1UT;EmF7vUE;IA5II,4BAoDG;EnFw1UT;EmFhwUE;IA5II,2BAoDG;EnF21UT;EmFnwUE;IA5II,4BAoDG;EnF81UT;EmFtwUE;IA5II,yBAoDG;EnFi2UT;EmFzwUE;IA5II,4BAoDG;EnFo2UT;EmF5wUE;IA5II,2BAoDG;EnFu2UT;EmF/wUE;IA5II,yBAoDG;EnF02UT;EmFlxUE;IA5II,2BAoDG;EnF62UT;EmFrxUE;IA5II,yBAoDG;EnFg3UT;EmFxxUE;IA5II,6BAoDG;EnFm3UT;EmF3xUE;IA5II,4BAoDG;EnFs3UT;EmF9xUE;IA5II,yBAoDG;EnFy3UT;EmFjyUE;IA5II,UAoDG;EnF43UT;EmFpyUE;IA5II,gBAoDG;EnF+3UT;EmFvyUE;IA5II,eAoDG;EnFk4UT;EmF1yUE;IA5II,gBAoDG;EnFq4UT;EmF7yUE;IA5II,aAoDG;EnFw4UT;EmFhzUE;IA5II,gBAoDG;EnF24UT;EmFnzUE;IA5II,eAoDG;EnF84UT;EmFtzUE;IA5II,aAoDG;EnFi5UT;EmFzzUE;IA5II,eAoDG;EnFo5UT;EmF5zUE;IA5II,aAoDG;EnFu5UT;EmF/zUE;IA5II,iBAoDG;EnF05UT;EmFl0UE;IA5II,uBAoDG;EnF65UT;EmFr0UE;IA5II,sBAoDG;EnFg6UT;EmFx0UE;IA5II,uBAoDG;EnFm6UT;EmF30UE;IA5II,oBAoDG;EnFs6UT;EmF90UE;IA5II,uBAoDG;EnFy6UT;EmFj1UE;IA5II,sBAoDG;EnF46UT;EmFp1UE;IA5II,oBAoDG;EnF+6UT;EmFv1UE;IA5II,sBAoDG;EnFk7UT;EmF11UE;IA5II,oBAoDG;EnFq7UT;EmF71UE;IA5II,gBAoDG;EnFw7UT;EmFh2UE;IA5II,sBAoDG;EnF27UT;EmFn2UE;IA5II,qBAoDG;EnF87UT;EmFt2UE;IA5II,sBAoDG;EnFi8UT;EmFz2UE;IA5II,mBAoDG;EnFo8UT;EmF52UE;IA5II,sBAoDG;EnFu8UT;EmF/2UE;IA5II,qBAoDG;EnF08UT;EmFl3UE;IA5II,mBAoDG;EnF68UT;EmFr3UE;IA5II,qBAoDG;EnFg9UT;EmFx3UE;IA5II,mBAoDG;EnFm9UT;EmF33UE;IA5II,sBAoDG;EnFs9UT;EmF93UE;IA5II,4BAoDG;EnFy9UT;EmFj4UE;IA5II,2BAoDG;EnF49UT;EmFp4UE;IA5II,4BAoDG;EnF+9UT;EmFv4UE;IA5II,yBAoDG;EnFk+UT;EmF14UE;IA5II,4BAoDG;EnFq+UT;EmF74UE;IA5II,2BAoDG;EnFw+UT;EmFh5UE;IA5II,yBAoDG;EnF2+UT;EmFn5UE;IA5II,2BAoDG;EnF8+UT;EmFt5UE;IA5II,yBAoDG;EnFi/UT;EmFz5UE;IA5II,qBAoDG;EnFo/UT;EmF55UE;IA5II,2BAoDG;EnFu/UT;EmF/5UE;IA5II,0BAoDG;EnF0/UT;EmFl6UE;IA5II,2BAoDG;EnF6/UT;EmFr6UE;IA5II,wBAoDG;EnFggVT;EmFx6UE;IA5II,2BAoDG;EnFmgVT;EmF36UE;IA5II,0BAoDG;EnFsgVT;EmF96UE;IA5II,wBAoDG;EnFygVT;EmFj7UE;IA5II,0BAoDG;EnF4gVT;EmFp7UE;IA5II,wBAoDG;EnF+gVT;EmFv7UE;IA5II,oBAoDG;EnFkhVT;EmF17UE;IA5II,0BAoDG;EnFqhVT;EmF77UE;IA5II,yBAoDG;EnFwhVT;EmFh8UE;IA5II,0BAoDG;EnF2hVT;EmFn8UE;IA5II,uBAoDG;EnF8hVT;EmFt8UE;IA5II,0BAoDG;EnFiiVT;EmFz8UE;IA5II,yBAoDG;EnFoiVT;EmF58UE;IA5II,uBAoDG;EnFuiVT;EmF/8UE;IA5II,yBAoDG;EnF0iVT;EmFl9UE;IA5II,uBAoDG;EnF6iVT;EmFr9UE;IA5II,uBAoDG;EnFg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DG;IA7DH,mBA2ES;EnF6/Vf;EmFn7VE;IA5II,yDAoDG;EnF8gWT;EmFt7VE;IA5II,yDAoDG;EnFihWT;EmFz7VE;IA5II,yDAoDG;EnFohWT;EmF57VE;IA5II,yDAoDG;EnFuhWT;EmF/7VE;IA5II,yDAoDG;EnF0hWT;EmFl8VE;IA5II,yDAoDG;EnF6hWT;EmFr8VE;IA5II,yDAoDG;EnFgiWT;EmFx8VE;IA5II,yDAoDG;EnFmiWT;EmF38VE;IA5II,yDAoDG;EnFsiWT;EmF98VE;IA5II,mBAoDG;EnFyiWT;EmFj9VE;IA5II,iEAoDG;EnF4iWT;EmFv8VM;IAzJA,iEAoDG;EnF+iWT;EmFv9VE;IA5II,iEAoDG;EnFkjWT;EmF78VM;IAzJA,iEAoDG;EnFqjWT;EmF79VE;IA5II,iEAoDG;EnFwjWT;EmFn9VM;IAzJA,iEAoDG;EnF2jWT;EmFn+VE;IA5II,iEAoDG;EnF8jWT;EmFz9VM;IAzJA,iEAoDG;EnFikWT;EmFz+VE;IA5II,iEAoDG;EnFokWT;EmF/9VM;IAzJA,iEAoDG;EnFukWT;EmF/+VE;IA5II,iEAoDG;EnF0kWT;EmFr+VM;IAzJA,iEAoDG;EnF6kWT;EmFr/VE;IA5II,iEAoDG;EnFglWT;EmF3+VM;IAzJA,iEAoDG;EnFmlWT;EmF3/VE;IA5II,iEAoDG;EnFslWT;EmFj/VM;IAzJA,iEAoDG;EnFylWT;EmFjgWE;IA5II,iEAoDG;EnF4lWT;EmFv/VM;IAzJA,iEAoDG;EnF+lWT;EmFvgWE;IA5II,2BAoDG;EnFkmWT;EmF7/VM;IAzJA,2BAoDG;EnFqmWT;EmF7gWE;IA5II,8BAoDG;EnFwmWT;EmFngWM;IAzJA,8BAoDG;EnF2mWT;EmFnhWE;IA5II,6BAoDG;EnF8mWT;EmFzgWM;IAzJA,6BAoDG;EnFinWT;EmFzhWE;IA5II,8BAoDG;EnFonWT;EmF/gWM;IAzJA,8BAoDG;EnFunWT;EmF/hWE;IA5II,yEAoDG;EnF0nWT;EmFliWE;IA5II,wHAoDG;EnF6nWT;EmFriWE;IA5II,2EAoDG;EnFgoWT;EmFxiWE;IA5II,uEAoDG;EnFmoWT;EmF3iWE;IA5II,6E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Fi0XP;ImFzuXA;MA5II,YAoDG;InFo0XP;ImF5uXA;MA5II,cAoDG;InFu0XP;ImF/uXA;MA5II,cAoDG;InF00XP;ImFlvXA;MA5II,eAyDO;InFw0XX;ImFrvXA;MA5II,iBAyDO;InF20XX;ImFxvXA;MA5II,uBAyDO;InF80XX;ImF3vXA;MA5II,2BAoDG;InFs1XP;ImF9vXA;MA5II,yBAoDG;InFy1XP;ImFjwXA;MA5II,uBAoDG;InF41XP;ImFpwXA;MA5II,8BAoDG;InF+1XP;ImFvwXA;MA5II,6BAoDG;InFk2XP;ImF1wXA;MA5II,6BAoDG;InFq2XP;ImF7wXA;MA5II,oBAoDG;InFw2XP;ImFhxXA;MA5II,kBAoDG;InF22XP;ImFnxXA;MA5II,qBAoDG;InF82XP;ImFtxXA;MA5II,sBAoDG;InFi3XP;ImFzxXA;MA5II,mBAoDG;InFo3XP;ImF5xXA;MA5II,iBAoDG;InFu3XP;ImF/xXA;MA5II,oBAoDG;InF03XP;ImFlyXA;MA5II,uBAoDG;InF63XP;ImFryXA;MA5II,qBAoDG;InFg4XP;ImFxyXA;MA5II,mBAoDG;InFm4XP;ImF3yXA;MA5II,qBAoDG;InFs4XP;ImF9yXA;MA5II,oBAoDG;InFy4XP;ImFjzXA;MA5II,yBAoDG;InF44XP;ImFpzXA;MA5II,uBAoDG;InF+4XP;ImFvzXA;MA5II,qBAoDG;InFk5XP;ImF1zXA;MA5II,4BAoDG;InFq5XP;ImF7zXA;MA5II,2BAoDG;InFw5XP;ImFh0XA;MA5II,sBAoDG;InF25XP;ImFn0XA;MA5II,gBAoDG;InF85XP;ImFt0XA;MA5II,sBAoDG;InFi6XP;ImFz0XA;MA5II,oBAoDG;InFo6XP;ImF50XA;MA5II,kBAoDG;InFu6XP;ImF/0XA;MA5II,oBAoDG;InF06XP;ImFl1XA;MA5II,mBAoDG;InF66XP;ImFr1XA;MA5II,kBAoDG;InFg7XP;ImFx1XA;MA5II,gBAoDG;InFm7XP;ImF31XA;MA5II,mBAoDG;InFs7XP;ImF91XA;MA5II,oBAoDG;InFy7XP;ImFj2XA;MA5II,0BAoDG;InF47XP;ImFp2XA;MA5II,qCAoDG;InF+7XP;ImFv2XA;MA5II,qCAoDG;InFk8XP;ImF12XA;MA5II,qCAoDG;InFq8XP;ImF72XA;MA5II,qCAoDG;InFw8XP;ImFh3XA;MA5II,mBAoDG;InF28XP;ImFn3XA;MA5II,mBAyDO;InFy8XX;ImFt3XA;MA5II,sBAyDO;InF48XX;ImFz3XA;MA5II,qBAyDO;InF+8XX;ImF53XA;MA5II,SAoDG;InFu9XP;ImF/3XA;MA5II,QAoDG;InF09XP;ImFl4XA;MA5II,QAoDG;InF69XP;ImFr4XA;MA5II,QAoDG;InFg+XP;ImFx4XA;MA5II,QAoDG;InFm+XP;ImF34XA;MA5II,QAoDG;InFs+XP;ImF94XA;MA5II,QAoDG;InFy+XP;ImFj5XA;MA5II,QAoDG;InF4+XP;ImFp5XA;MA5II,SAoDG;InF++XP;ImFv5XA;MA5II,eAoDG;InFk/XP;ImF15XA;MA5II,cAoDG;InFq/XP;ImF75XA;MA5II,eAoDG;InFw/XP;ImFh6XA;MA5II,YAoDG;InF2/XP;ImFn6XA;MA5II,eAoDG;InF8/XP;ImFt6XA;MA5II,cAoDG;InFigYP;ImFz6XA;MA5II,YAoDG;InFogYP;ImF56XA;MA5II,cAoDG;InFugYP;ImF/6XA;MA5II,YAoDG;InF0gYP;ImFl7XA;MA5II,YAoDG;InF6gYP;ImFr7XA;MA5II,gBAoDG;InFghYP;ImFx7XA;MA5II,sBAoDG;InFmhYP;ImF37XA;MA5II,qBAoDG;InFshYP;ImF97XA;MA5II,sBAoDG;InFyhYP;ImFj8XA;MA5II,mBAoDG;InF4hYP;ImFp8XA;MA5II,sBAoDG;InF+hYP;ImFv8XA;MA5II,qBAoDG;InFkiYP;ImF18XA;MA5II,mBAoDG;InFqiYP;ImF78XA;MA5II,qBAoDG;InFwiYP;ImFh9XA;MA5II,mBAoDG;InF2iYP;ImFn9XA;MA5II,mBAoDG;InF8iYP;ImFt9XA;MA5II,eAoDG;InFijYP;ImFz9XA;MA5II,qBAoDG;InFojYP;ImF59XA;MA5II,oBAoDG;InFujYP;ImF/9XA;MA5II,qBAoDG;InF0jYP;ImFl+XA;MA5II,kBAoDG;InF6jYP;ImFr+XA;MA5II,qBAoDG;InFgkYP;ImFx+XA;MA5II,oBAoDG;InFmkYP;ImF3+XA;MA5II,kBAoDG;InFskYP;ImF9+XA;MA5II,oBAoDG;InFykYP;ImFj/XA;MA5II,kBAoDG;InF4kYP;ImFp/XA;MA5II,kBAoDG;InF+kYP;ImFv/XA;MA5II,qBAoDG;InFklYP;ImF1/XA;MA5II,2BAoDG;InFqlYP;ImF7/XA;MA5II,0BAoDG;InFwlYP;ImFhgYA;MA5II,2BAoDG;InF2lYP;ImFngYA;MA5II,wBAoDG;InF8lYP;ImFtgYA;MA5II,2BAoDG;InFimYP;ImFzgYA;MA5II,0BAoDG;InFomYP;ImF5gYA;MA5II,wBAoDG;InFumYP;ImF/gYA;MA5II,0BAoDG;InF0mYP;ImFlhYA;MA5II,wBAoDG;InF6mYP;ImFrhYA;MA5II,wBAoDG;InFgnYP;ImFxhYA;MA5II,oBAoDG;InFmnYP;ImF3hYA;MA5II,0BAoDG;InFsnYP;ImF9hYA;MA5II,yBAoDG;InFynYP;ImFjiYA;MA5II,0BAoDG;InF4nYP;ImFpiYA;MA5II,uBAoDG;InF+nYP;ImFviYA;MA5II,0BAoDG;InFkoYP;ImF1iYA;MA5II,yBAoDG;InFqoYP;ImF7iYA;MA5II,uBAoDG;InFwoYP;ImFhjYA;MA5II,yBAoDG;InF2oYP;ImFnjYA;MA5II,uBAoDG;InF8oYP;ImFtjYA;MA5II,2BAoDG;InFipYP;ImFzjYA;MA5II,0BAoDG;InFopYP;ImF5jYA;MA5II,uBAoDG;InFupYP;ImF/jYA;MA5II,mBAoDG;InF0pYP;ImFlkYA;MA5II,yBAoDG;InF6pYP;ImFrkYA;MA5II,wBAoDG;InFgqYP;ImFxkYA;MA5II,yBAoDG;InFmqYP;ImF3kYA;MA5II,sBAoDG;InFsqYP;ImF9kYA;MA5II,yBAoDG;InFyqYP;ImFjlYA;MA5II,wBAoDG;InF4qYP;ImFplYA;MA5II,sBAoDG;InF+qYP;ImFvlYA;MA5II,wBAoDG;InFkrYP;ImF1lYA;MA5II,sBAoDG;InFqrYP;ImF7lYA;MA5II,sBAoDG;InFwrYP;ImFhmYA;MA5II,sBAoDG;InF2rYP;ImFnmYA;MA5II,4BAoDG;InF8rYP;ImFtmYA;MA5II,2BAoDG;InFisYP;ImFzmYA;MA5II,4BAoDG;InFosYP;ImF5mYA;MA5II,yBAoDG;InFusYP;ImF/mYA;MA5II,4BAoDG;InF0sYP;ImFlnYA;MA5II,2BAoDG;InF6sYP;ImFrnYA;MA5II,yBAoDG;InFgtYP;ImFxnYA;MA5II,2BAoDG;InFmtYP;ImF3nYA;MA5II,yBAoDG;InFstYP;ImF9nYA;MA5II,6BAoDG;InFytYP;ImFjoYA;MA5II,4BAoDG;InF4tYP;ImFpoYA;MA5II,yBAoDG;InF+tYP;ImFvoYA;MA5II,UAoDG;InFkuYP;ImF1oYA;MA5II,gBAoDG;InFquYP;ImF7oYA;MA5II,eAoDG;InFwuYP;ImFhpYA;MA5II,gBAoDG;InF2uYP;ImFnpYA;MA5II,aAoDG;InF8uYP;ImFtpYA;MA5II,gBAoDG;InFivYP;ImFzpYA;MA5II,eAoDG;InFovYP;ImF5pYA;MA5II,aAoDG;InFuvYP;ImF/pYA;MA5II,eAoDG;InF0vYP;ImFlqYA;MA5II,aAoDG;InF6vYP;ImFrqYA;MA5II,iBAoDG;InFgwYP;ImFxqYA;MA5II,uBAoDG;InFmwYP;ImF3qYA;MA5II,sBAoDG;InFswYP;ImF9qYA;MA5II,uBAoDG;InFywYP;ImFjrYA;MA5II,oBAoDG;InF4wYP;ImFprYA;MA5II,uBAoDG;InF+wYP;ImFvrYA;MA5II,sBAoDG;InFkxYP;ImF1rYA;MA5II,oBAoDG;InFqxYP;ImF7rYA;MA5II,sBAoDG;InFwxYP;ImFhsYA;MA5II,oBAoDG;InF2xYP;ImFnsYA;MA5II,gBAoDG;InF8xYP;ImFtsYA;MA5II,sBAoDG;InFiyYP;ImFzsYA;MA5II,qBAoDG;InFoyYP;ImF5sYA;MA5II,sBAoDG;InFuyYP;ImF/sYA;MA5II,mBAoDG;InF0yYP;ImFltYA;MA5II,sBAoDG;InF6yYP;ImFrtYA;MA5II,qBAoDG;InFgzYP;ImFxtYA;MA5II,mBAoDG;InFmzYP;ImF3tYA;MA5II,qBAoDG;InFszYP;ImF9tYA;MA5II,mBAoDG;InFyzYP;ImFjuYA;MA5II,sBAoDG;InF4zYP;ImFpuYA;MA5II,4BAoDG;InF+zYP;ImFvuYA;MA5II,2BAoDG;InFk0YP;ImF1uYA;MA5II,4BAoDG;InFq0YP;ImF7uYA;MA5II,yBAoDG;InFw0YP;ImFhvYA;MA5II,4BAoDG;InF20YP;ImFnvYA;MA5II,2BAoDG;InF80YP;ImFtvYA;MA5II,yBAoDG;InFi1YP;ImFzvYA;MA5II,2BAoDG;InFo1YP;ImF5vYA;MA5II,yBAoDG;InFu1YP;ImF/vYA;MA5II,qBAoDG;InF01YP;ImFlwYA;MA5II,2BAoDG;InF61YP;ImFrwYA;MA5II,0BAoDG;InFg2YP;ImFxwYA;MA5II,2BAoDG;InFm2YP;ImF3wYA;MA5II,wBAoDG;InFs2YP;ImF9wYA;MA5II,2BAoDG;InFy2YP;ImFjxYA;MA5II,0BAoDG;InF42YP;ImFpxYA;MA5II,wBAoDG;InF+2YP;ImFvxYA;MA5II,0BAoDG;InFk3YP;ImF1xYA;MA5II,wBAoDG;InFq3YP;ImF7xYA;MA5II,oBAoDG;InFw3YP;ImFhyYA;MA5II,0BAoDG;InF23YP;ImFnyYA;MA5II,yBAoDG;InF83YP;ImFtyYA;MA5II,0BAoDG;InFi4YP;ImFzyYA;MA5II,uBAoDG;InFo4YP;ImF5yYA;MA5II,0BAoDG;InFu4YP;ImF/yYA;MA5II,yBAoDG;InF04YP;ImFlzYA;MA5II,uBAoDG;InF64YP;ImFrzYA;MA5II,yBAoDG;InFg5YP;ImFxzYA;MA5II,uBAoDG;InFm5YP;ImF3zYA;MA5II,uBAoDG;InFs5YP;ImF9zYA;MA5II,6BAoDG;InFy5YP;ImFj0YA;MA5II,4BAoDG;InF45YP;ImFp0YA;MA5II,6BAoDG;InF+5YP;ImFv0YA;MA5II,0BAoDG;InFk6YP;ImF10YA;MA5II,6BAoDG;InFq6YP;ImF70YA;MA5II,4BAoDG;InFw6YP;ImFh1YA;MA5II,0BAoDG;InF26YP;ImFn1YA;MA5II,4BAoDG;InF86YP;ImFt1YA;MA5II,0BAoDG;I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ZP;ImF7rZA;MA5II,oBAoDG;InFwxZP;ImFhsZA;MA5II,mBAoDG;InF2xZP;ImFnsZA;MA5II,kBAoDG;InF8xZP;ImFtsZA;MA5II,gBAoDG;InFiyZP;ImFzsZA;MA5II,mBAoDG;InFoyZP;ImF5sZA;MA5II,oBAoDG;InFuyZP;ImF/sZA;MA5II,0BAoDG;InF0yZP;ImFltZA;MA5II,qCAoDG;InF6yZP;ImFrtZA;MA5II,qCAoDG;InFgzZP;ImFxtZA;MA5II,qCAoDG;InFmzZP;ImF3tZA;MA5II,qCAoDG;InFszZP;ImF9tZA;MA5II,mBAoDG;InFyzZP;ImFjuZA;MA5II,mBAyDO;InFuzZX;ImFpuZA;MA5II,sBAyDO;InF0zZX;ImFvuZA;MA5II,qBAyDO;InF6zZX;ImF1uZA;MA5II,SAoDG;InFq0ZP;ImF7uZA;MA5II,QAoDG;InFw0ZP;ImFhvZA;MA5II,QAoDG;InF20ZP;ImFnvZA;MA5II,QAoDG;InF80ZP;ImFtvZA;MA5II,QAoDG;InFi1ZP;ImFzvZA;MA5II,QAoDG;InFo1ZP;ImF5vZA;MA5II,QAoDG;InFu1ZP;ImF/vZA;MA5II,QAoDG;InF01ZP;ImFlwZA;MA5II,SAoDG;InF61ZP;ImFrwZA;MA5II,eAoDG;InFg2ZP;ImFxwZA;MA5II,cAoDG;InFm2ZP;ImF3wZA;MA5II,eAoDG;InFs2ZP;ImF9wZA;MA5II,YAoDG;InFy2ZP;ImFjxZA;MA5II,eAoDG;InF42ZP;ImFpxZA;MA5II,cAoDG;InF+2ZP;ImFvxZA;MA5II,YAoDG;InFk3ZP;ImF1xZA;MA5II,cAoDG;InFq3ZP;ImF7xZA;MA5II,YAoDG;InFw3ZP;ImFhyZA;MA5II,YAoDG;InF23ZP;ImFnyZA;MA5II,gBAoDG;InF83ZP;ImFtyZA;MA5II,sBAoDG;InFi4ZP;ImFzyZA;MA5II,qBAoDG;InFo4ZP;ImF5yZA;MA5II,sBAoDG;InFu4ZP;ImF/yZA;MA5II,mBAoDG;InF04ZP;ImFlzZA;MA5II,sBAoDG;InF64ZP;ImFrzZA;MA5II,qBAoDG;InFg5ZP;ImFxzZA;MA5II,mBAoDG;InFm5ZP;ImF3zZA;MA5II,qBAoDG;InFs5ZP;ImF9zZA;MA5II,mBAoDG;InFy5ZP;ImFj0ZA;MA5II,mBAoDG;InF45ZP;ImFp0ZA;MA5II,eAoDG;InF+5ZP;ImFv0ZA;MA5II,qBAoDG;InFk6ZP;ImF10ZA;MA5II,oBAoDG;InFq6ZP;ImF70ZA;MA5II,qBAoDG;InFw6ZP;ImFh1ZA;MA5II,kBAoDG;InF26ZP;ImFn1ZA;MA5II,qBAoDG;InF86ZP;ImFt1ZA;MA5II,oBAoDG;InFi7ZP;ImFz1ZA;MA5II,kBAoDG;InFo7ZP;ImF51ZA;MA5II,oBAoDG;InFu7ZP;ImF/1ZA;MA5II,kBAoDG;InF07ZP;ImFl2ZA;MA5II,kBAoDG;InF67ZP;ImFr2ZA;MA5II,qBAoDG;InFg8ZP;ImFx2ZA;MA5II,2BAoDG;InFm8ZP;ImF32ZA;MA5II,0BAoDG;InFs8ZP;ImF92ZA;MA5II,2BAoDG;InFy8ZP;ImFj3ZA;MA5II,wBAoDG;InF48ZP;ImFp3ZA;MA5II,2BAoDG;InF+8ZP;ImFv3ZA;MA5II,0BAoDG;InFk9ZP;ImF13ZA;MA5II,wBAoDG;InFq9ZP;ImF73ZA;MA5II,0BAoDG;InFw9ZP;ImFh4ZA;MA5II,wBAoDG;InF29ZP;ImFn4ZA;MA5II,wBAoDG;InF89ZP;ImFt4ZA;MA5II,oBAoDG;InFi+ZP;ImFz4ZA;MA5II,0BAoDG;InFo+ZP;ImF54ZA;MA5II,yBAoDG;InFu+ZP;ImF/4ZA;MA5II,0BAoDG;InF0+ZP;ImFl5ZA;MA5II,uBAoDG;InF6+ZP;ImFr5ZA;MA5II,0BAoDG;InFg/ZP;ImFx5ZA;MA5II,yBAoDG;InFm/ZP;ImF35ZA;MA5II,uBAoDG;InFs/ZP;ImF95ZA;MA5II,yBAoDG;InFy/ZP;ImFj6ZA;MA5II,uBAoDG;InF4/ZP;ImFp6ZA;MA5II,2BAoDG;InF+/ZP;ImFv6ZA;MA5II,0BAoDG;InFkgaP;ImF16ZA;MA5II,uBAoDG;InFqgaP;ImF76ZA;MA5II,mBAoDG;InFwgaP;ImFh7ZA;MA5II,yBAoDG;InF2gaP;ImFn7ZA;MA5II,wBAoDG;InF8gaP;ImFt7ZA;MA5II,yBAoDG;InFihaP;ImFz7ZA;MA5II,sBAoDG;InFohaP;ImF57ZA;MA5II,yBAoDG;InFuhaP;ImF/7ZA;MA5II,wBAoDG;InF0haP;ImFl8ZA;MA5II,sBAoDG;InF6haP;ImFr8ZA;MA5II,wBAoDG;InFgiaP;ImFx8ZA;MA5II,sBAoDG;InFmiaP;ImF38ZA;MA5II,sBAoDG;InFsiaP;ImF98ZA;MA5II,sBAoDG;InFyiaP;ImFj9ZA;MA5II,4BAoDG;InF4iaP;ImFp9ZA;MA5II,2BAoDG;InF+iaP;ImFv9ZA;MA5II,4BAoDG;InFkjaP;ImF19ZA;MA5II,yBAoDG;InFqjaP;ImF79ZA;MA5II,4BAoDG;InFwjaP;ImFh+ZA;MA5II,2BAoDG;InF2jaP;ImFn+ZA;MA5II,yBAoDG;InF8jaP;ImFt+ZA;MA5II,2BAoDG;InFikaP;ImFz+ZA;MA5II,yBAoDG;InFokaP;ImF5+ZA;MA5II,6BAoDG;InFukaP;ImF/+ZA;MA5II,4BAoDG;InF0kaP;ImFl/ZA;MA5II,yBAoDG;InF6kaP;ImFr/ZA;MA5II,UAoDG;InFglaP;ImFx/ZA;MA5II,gBAoDG;InFmlaP;ImF3/ZA;MA5II,eAoDG;InFslaP;ImF9/ZA;MA5II,gBAoDG;InFylaP;ImFjgaA;MA5II,aAoDG;InF4laP;ImFpgaA;MA5II,gBAoDG;InF+laP;ImFvgaA;MA5II,eAoDG;InFkmaP;ImF1gaA;MA5II,aAoDG;InFqmaP;ImF7gaA;MA5II,eAoDG;InFwmaP;ImFhhaA;MA5II,aAoDG;InF2maP;ImFnhaA;MA5II,iBAoDG;InF8maP;ImFthaA;MA5II,uBAoDG;InFinaP;ImFzhaA;MA5II,sBAoDG;InFonaP;ImF5haA;MA5II,uBAoDG;InFunaP;ImF/haA;MA5II,oBAoDG;InF0naP;ImFliaA;MA5II,uBAoDG;InF6naP;ImFriaA;MA5II,sBAoDG;InFgoaP;ImFxiaA;MA5II,oBAoDG;InFmoaP;ImF3iaA;MA5II,sBAoDG;InFsoaP;ImF9iaA;MA5II,oBAoDG;InFyoaP;ImFjjaA;MA5II,gBAoDG;InF4oaP;ImFpjaA;MA5II,sBAoDG;InF+oaP;ImFvjaA;MA5II,qBAoDG;InFkpaP;ImF1jaA;MA5II,sBAoDG;InFqpaP;ImF7jaA;MA5II,mBAoDG;InFwpaP;ImFhkaA;MA5II,sBAoDG;InF2paP;ImFnkaA;MA5II,qBAoDG;InF8paP;ImFtkaA;MA5II,mBAoDG;InFiqaP;ImFzkaA;MA5II,qBAoDG;InFoqaP;ImF5kaA;MA5II,mBAoDG;InFuqaP;ImF/kaA;MA5II,sBAoDG;InF0qaP;ImFllaA;MA5II,4BAoDG;InF6qaP;ImFrlaA;MA5II,2BAoDG;InFgraP;ImFxlaA;MA5II,4BAoDG;InFmraP;ImF3laA;MA5II,yBAoDG;InFsraP;ImF9laA;MA5II,4BAoDG;InFyraP;ImFjmaA;MA5II,2BAoDG;InF4raP;ImFpmaA;MA5II,yBAoDG;InF+raP;ImFvmaA;MA5II,2BAoDG;InFksaP;ImF1maA;MA5II,yBAoDG;InFqsaP;ImF7maA;MA5II,qBAoDG;InFwsaP;ImFhnaA;MA5II,2BAoDG;InF2saP;ImFnnaA;MA5II,0BAoDG;InF8saP;ImFtnaA;MA5II,2BAoDG;InFitaP;ImFznaA;MA5II,wBAoDG;InFotaP;ImF5naA;MA5II,2BAoDG;InFutaP;ImF/naA;MA5II,0BAoDG;InF0taP;ImFloaA;MA5II,wBAoDG;InF6taP;ImFroaA;MA5II,0BAoDG;InFguaP;ImFxoaA;MA5II,wBAoDG;InFmuaP;ImF3oaA;MA5II,oBAoDG;InFsuaP;ImF9oaA;MA5II,0BAoDG;InFyuaP;ImFjpaA;MA5II,yBAoDG;InF4uaP;ImFppaA;MA5II,0BAoDG;InF+uaP;ImFvpaA;MA5II,uBAoDG;InFkvaP;ImF1paA;MA5II,0BAoDG;InFqvaP;ImF7paA;MA5II,yBAoDG;InFwvaP;ImFhqaA;MA5II,uBAoDG;InF2vaP;ImFnqaA;MA5II,yBAoDG;InF8vaP;ImFtqaA;MA5II,uBAoDG;InFiwaP;ImFzqaA;MA5II,uBAoDG;InFowaP;ImF5qaA;MA5II,6BAoDG;InFuwaP;ImF/qaA;MA5II,4BAoDG;InF0waP;ImFlraA;MA5II,6BAoDG;InF6waP;ImFrraA;MA5II,0BAoDG;InFgxaP;ImFxraA;MA5II,6BAoDG;InFmxaP;ImF3raA;MA5II,4BAoDG;InFsxaP;ImF9raA;MA5II,0BAoDG;InFyxaP;ImFjsaA;MA5II,4BAoDG;InF4xaP;ImFpsaA;MA5II,0BAoDG;InF+xaP;ImFvsaA;MA5II,MAoDG;InFkyaP;ImF1saA;MA5II,YAoDG;InFqyaP;ImF7saA;MA5II,WAoDG;InFwyaP;ImFhtaA;MA5II,YAoDG;InF2yaP;ImFntaA;MA5II,SAoDG;InF8yaP;ImFttaA;MA5II,YAoDG;InFizaP;ImFztaA;MA5II,WAoDG;InFozaP;ImF5taA;MA5II,SAoDG;InFuzaP;ImF/taA;MA5II,WAoDG;InF0zaP;ImFluaA;MA5II,SAoDG;InF6zaP;ImFruaA;MA5II,UAoDG;InFg0aP;ImFxuaA;MA5II,gBAoDG;InFm0aP;ImF3uaA;MA5II,eAoDG;InFs0aP;ImF9uaA;MA5II,gBAoDG;InFy0aP;ImFjvaA;MA5II,aAoDG;InF40aP;ImFpvaA;MA5II,gBAoDG;InF+0aP;ImFvvaA;MA5II,eAoDG;InFk1aP;ImF1vaA;MA5II,aAoDG;InFq1aP;ImF7vaA;MA5II,eAoDG;InFw1aP;ImFhwaA;MA5II,aAoDG;InF21aP;ImFnwaA;MA5II,kBAoDG;MApDH,aAoDG;InF81aP;ImFtwaA;MA5II,wBAoDG;MApDH,mBAoDG;InFi2aP;ImFzwaA;MA5II,uBAoDG;MApDH,kBAoDG;InFo2aP;ImF5waA;MA5II,wBAoDG;MApDH,mBAoDG;InFu2aP;ImF/waA;MA5II,qBAoDG;MApDH,gBAoDG;InF02aP;ImFlxaA;MA5II,wBAoDG;MApDH,mBAoDG;InF62aP;ImFrxaA;MA5II,uBAoDG;MApDH,kBAoDG;InFg3aP;ImFxxaA;MA5II,qBAoDG;MApDH,gBAoDG;InFm3aP;ImF3xaA;MA5II,uBAoDG;MApDH,kBAoDG;InFs3aP;ImF9xaA;MA5II,qBAoDG;MApDH,gBAoDG;InFy3aP;ImFjyaA;MA5II,oBAoDG;InF43aP;ImFpyaA;MA5II,0BAoDG;InF+3aP;ImFvyaA;MA5II,yBAoDG;InFk4aP;ImF1yaA;MA5II,0BAoDG;InFq4aP;ImF7yaA;MA5II,uBAoDG;InFw4aP;ImFhzaA;MA5II,0BAoDG;InF24aP;ImFnzaA;MA5II,yBAoDG;InF84aP;ImFtzaA;MA5II,uBAoDG;InFi5aP;ImFzzaA;MA5II,yBAoDG;InFo5aP;ImF5zaA;MA5II,uBAoDG;InFu5aP;ImF/zaA;MA5II,mBAoDG;InF05aP;ImFl0aA;MA5II,yBAoDG;InF65aP;ImFr0aA;MA5II,wBAoDG;InFg6aP;ImFx0aA;MA5II,yBAoDG;InFm6aP;ImF30aA;MA5II,sBAoDG;InFs6aP;ImF90aA;MA5II,yBAoDG;InFy6aP;ImFj1aA;MA5II,wBAoDG;InF46aP;ImFp1aA;MA5II,sBAoDG;InF+6aP;ImFv1aA;MA5II,wBAoDG;InFk7aP;ImF11aA;MA5II,sBAoDG;InFq7aP;ImF71aA;MA5II,yFAoDG;InFw7aP;ImFh2aA;MA5II,sBAoDG;InF27aP;ImFn2aA;MA5II,wFAoDG;InF87aP;ImFt2aA;MA5II,qBAoDG;InFi8aP;ImFz2aA;MA5II,iBAoDG;InFo8aP;ImF52aA;MA5II,eAoDG;InFu8aP;ImF/2aA;MA5II,kBAoDG;InF08aP;EACF;EW/9aE;IwE4GA;MA5II,mBAoDG;InF+8aP;ImFv3aA;MA5II,iBAoDG;InFk9aP;ImF13aA;MA5II,WAoDG;InFq9aP;ImF73aA;MA5II,sBAoDG;MApDH,mBAoDG;InFw9aP;ImFh4aA;MA5II,oBAoDG;MApDH,iBAoDG;InF29aP;ImFn4aA;MA5II,mBAoDG;MApDH,gBAoDG;InF89aP;ImFt4aA;MA5II,yBAoDG;MApDH,sBAoDG;InFi+aP;ImFz4aA;MA5II,mBAoDG;MApDH,gBAoDG;InFo+aP;ImF54aA;MA5II,eAyDO;InFk+aX;ImF/4aA;MA5II,qBAyDO;InFq+aX;ImFl5aA;MA5II,cAyDO;InFw+aX;ImFr5aA;MA5II,aAyDO;InF2+aX;ImFx5aA;MA5II,oBAyDO;InF8+aX;ImF35aA;MA5II,cAyDO;InFi/aX;ImF95aA;MA5II,kBAyDO;InFo/aX;ImFj6aA;MA5II,mBAyDO;InFu/aX;ImFp6aA;MA5II,aAyDO;InF0/aX;ImFv6aA;MA5II,oBAyDO;InF6/aX;ImF16aA;MA5II,iBAyDO;InFggbX;ImF76aA;MA5II,kBAyDO;InFmgbX;ImFh7aA;MA5II,aAyDO;InFsgbX;ImFn7aA;MA5II,cAoDG;InF8gbP;ImFt7aA;MA5II,mBAyDO;InF4gbX;ImFz7aA;MA5II,sBAyDO;InF+gbX;ImF57aA;MA5II,2BAyDO;InFkhbX;ImF/7aA;MA5II,8BAyDO;InFqhbX;ImFl8aA;MA5II,YAoDG;InF6hbP;ImFr8aA;MA5II,YAoDG;InFgibP;ImFx8aA;MA5II,cAoDG;InFmibP;ImF38aA;MA5II,cAoDG;InFsibP;ImF98aA;MA5II,eAyDO;InFoibX;ImFj9aA;MA5II,iBAyDO;InFuibX;ImFp9aA;MA5II,uBAyDO;InF0ibX;ImFv9aA;MA5II,2BAoDG;InFkjbP;ImF19aA;MA5II,yBAoDG;InFqjbP;ImF79aA;MA5II,uBAoDG;InFwjbP;ImFh+aA;MA5II,8BAoDG;InF2jbP;ImFn+aA;MA5II,6BAoDG;InF8jbP;ImFt+aA;MA5II,6BAoDG;InFikbP;ImFz+aA;MA5II,oBAoDG;InFokbP;ImF5+aA;MA5II,kBAoDG;InFukbP;ImF/+aA;MA5II,qBAoDG;InF0kbP;ImFl/aA;MA5II,sBAoDG;InF6kbP;ImFr/aA;MA5II,mBAoDG;InFglbP;ImFx/aA;MA5II,iBAoDG;InFmlbP;ImF3/aA;MA5II,oBAoDG;InFslbP;ImF9/aA;MA5II,uBAoDG;InFylbP;ImFjgbA;MA5II,qBAoDG;InF4lbP;ImFpgbA;MA5II,mBAoDG;InF+lbP;ImFvgbA;MA5II,qBAoDG;InFkmbP;ImF1gbA;MA5II,oBAoDG;InFqmbP;ImF7gbA;MA5II,yBAoDG;InFwmbP;ImFhhbA;MA5II,uBAoDG;InF2mbP;ImFnhbA;MA5II,qBAoDG;InF8mbP;ImFthbA;MA5II,4BAoDG;InFinbP;ImFzhbA;MA5II,2BAoDG;InFonbP;ImF5hbA;MA5II,sBAoDG;InFunbP;ImF/hbA;MA5II,gBAoDG;InF0nbP;ImFlibA;MA5II,sBAoDG;InF6nbP;ImFribA;MA5II,oBAoDG;InFgobP;ImFxibA;MA5II,kBAoDG;InFmobP;ImF3ibA;MA5II,oBAoDG;InFsobP;ImF9ibA;MA5II,mBAoDG;InFyobP;ImFjjbA;MA5II,kBAoDG;InF4obP;ImFpjbA;MA5II,gBAoDG;InF+obP;ImFvjbA;MA5II,mBAoDG;InFkpbP;ImF1jbA;MA5II,oBAoDG;InFqpbP;ImF7jbA;MA5II,0BAoDG;InFwpbP;ImFhkbA;MA5II,qCAoDG;InF2pbP;ImFnkbA;MA5II,qCAoDG;InF8pbP;ImFtkbA;MA5II,qCAoDG;InFiqbP;ImFzkbA;MA5II,qCAoDG;InFoqbP;ImF5kbA;MA5II,mBAoDG;InFuqbP;ImF/kbA;MA5II,mBAyDO;InFqqbX;ImFllbA;MA5II,sBAyDO;InFwqbX;ImFrlbA;MA5II,qBAyDO;InF2qbX;ImFxlbA;MA5II,SAoDG;InFmrbP;ImF3lbA;MA5II,QAoDG;InFsrbP;ImF9lbA;MA5II,QAoDG;InFyrbP;ImFjmbA;MA5II,QAoDG;InF4rbP;ImFpmbA;MA5II,QAoDG;InF+rbP;ImFvmbA;MA5II,QAoDG;InFksbP;ImF1mbA;MA5II,QAoDG;InFqsbP;ImF7mbA;MA5II,QAoDG;InFwsbP;ImFhnbA;MA5II,SAoDG;InF2sbP;ImFnnbA;MA5II,eAoDG;InF8sbP;ImFtnbA;MA5II,cAoDG;InFitbP;ImFznbA;MA5II,eAoDG;InFotbP;ImF5nbA;MA5II,YAoDG;InFutbP;ImF/nbA;MA5II,eAoDG;InF0tbP;ImFlobA;MA5II,cAoDG;InF6tbP;ImFrobA;MA5II,YAoDG;InFgubP;ImFxobA;MA5II,cAoDG;InFmubP;ImF3obA;MA5II,YAoDG;InFsubP;ImF9obA;MA5II,YAoDG;InFyubP;ImFjpbA;MA5II,gBAoDG;InF4ubP;ImFppbA;MA5II,sBAoDG;InF+ubP;ImFvpbA;MA5II,qBAoDG;InFkvbP;ImF1pbA;MA5II,sBAoDG;InFqvbP;ImF7pbA;MA5II,mBAoDG;InFwvbP;ImFhqbA;MA5II,sBAoDG;InF2vbP;ImFnqbA;MA5II,qBAoDG;InF8vbP;ImFtqbA;MA5II,mBAoDG;InFiwbP;ImFzqbA;MA5II,qBAoDG;InFowbP;ImF5qbA;MA5II,mBAoDG;InFuwbP;ImF/qbA;MA5II,mBAoDG;InF0wbP;ImFlrbA;MA5II,eAoDG;InF6wbP;ImFrrbA;MA5II,qBAoDG;InFgxbP;ImFxrbA;MA5II,oBAoDG;InFmxbP;ImF3rbA;MA5II,qBAoDG;InFsxbP;ImF9rbA;MA5II,kBAoDG;InFyxbP;ImFjsbA;MA5II,qBAoDG;InF4xbP;ImFpsbA;MA5II,oBAoDG;InF+xbP;ImFvsbA;MA5II,kBAoDG;InFkybP;ImF1sbA;MA5II,oBAoDG;InFqybP;ImF7sbA;MA5II,kBAoDG;InFwybP;ImFhtbA;MA5II,kBAoDG;InF2ybP;ImFntbA;MA5II,qBAoDG;InF8ybP;ImFttbA;MA5II,2BAoDG;InFizbP;ImFztbA;MA5II,0BAoDG;InFozbP;ImF5tbA;MA5II,2BAoDG;InFuzbP;ImF/tbA;MA5II,wBAoDG;InF0zbP;ImFlubA;MA5II,2BAoDG;InF6zbP;ImFrubA;MA5II,0BAoDG;InFg0bP;ImFxubA;MA5II,wBAoDG;InFm0bP;ImF3ubA;MA5II,0BAoDG;InFs0bP;ImF9ubA;MA5II,wBAoDG;InFy0bP;ImFjvbA;MA5II,wBAoDG;InF40bP;ImFpvbA;MA5II,oBAoDG;InF+0bP;ImFvvbA;MA5II,0BAoDG;InFk1bP;ImF1vbA;MA5II,yBAoDG;InFq1bP;ImF7vbA;MA5II,0BAoDG;InFw1bP;ImFhwbA;MA5II,uBAoDG;InF21bP;ImFnwbA;MA5II,0BAoDG;InF81bP;ImFtwbA;MA5II,yBAoDG;InFi2bP;ImFzwbA;MA5II,uBAoDG;InFo2bP;ImF5wbA;MA5II,yBAoDG;InFu2bP;ImF/wbA;MA5II,uBAoDG;InF02bP;ImFlxbA;MA5II,2BAoDG;InF62bP;ImFrxbA;MA5II,0BAoDG;InFg3bP;ImFxxbA;MA5II,uBAoDG;InFm3bP;ImF3xbA;MA5II,mBAoDG;InFs3bP;ImF9xbA;MA5II,yBAoDG;InFy3bP;ImFjybA;MA5II,wBAoDG;InF43bP;ImFpybA;MA5II,yBAoDG;InF+3bP;ImFvybA;MA5II,sBAoDG;InFk4bP;ImF1ybA;MA5II,yBAoDG;InFq4bP;ImF7ybA;MA5II,wBAoDG;InFw4bP;ImFhzbA;MA5II,sBAoDG;InF24bP;ImFnzbA;MA5II,wBAoDG;InF84bP;ImFtzbA;MA5II,sBAoDG;InFi5bP;ImFzzbA;MA5II,sBAoDG;InFo5bP;ImF5zbA;MA5II,sBAoDG;InFu5bP;ImF/zbA;MA5II,4BAoDG;InF05bP;ImFl0bA;MA5II,2BAoDG;InF65bP;ImFr0bA;MA5II,4BAoDG;InFg6bP;ImFx0bA;MA5II,yBAoDG;InFm6bP;ImF30bA;MA5II,4BAoDG;InFs6bP;ImF90bA;MA5II,2BAoDG;InFy6bP;ImFj1bA;MA5II,yBAoDG;InF46bP;ImFp1bA;MA5II,2BAoDG;InF+6bP;ImFv1bA;MA5II,yBAoDG;InFk7bP;ImF11bA;MA5II,6BAoDG;InFq7bP;ImF71bA;MA5II,4BAoDG;InFw7bP;ImFh2bA;MA5II,yBAoDG;InF27bP;ImFn2bA;MA5II,UAoDG;InF87bP;ImFt2bA;MA5II,gBAoDG;InFi8bP;ImFz2bA;MA5II,eAoDG;InFo8bP;ImF52bA;MA5II,gBAoDG;InFu8bP;ImF/2bA;MA5II,aAoDG;InF08bP;ImFl3bA;MA5II,gBAoDG;InF68bP;ImFr3bA;MA5II,eAoDG;InFg9bP;ImFx3bA;MA5II,aAoDG;InFm9bP;ImF33bA;MA5II,eAoDG;InFs9bP;ImF93bA;MA5II,aAoDG;InFy9bP;ImFj4bA;MA5II,iBAoDG;InF49bP;ImFp4bA;MA5II,uBAoDG;InF+9bP;ImFv4bA;MA5II,sBAoDG;InFk+bP;ImF14bA;MA5II,uBAoDG;InFq+bP;ImF74bA;MA5II,oBAoDG;InFw+bP;ImFh5bA;MA5II,uBAoDG;InF2+bP;ImFn5bA;MA5II,sBAoDG;InF8+bP;ImFt5bA;MA5II,oBAoDG;InFi/bP;ImFz5bA;MA5II,sBAoDG;InFo/bP;ImF55bA;MA5II,oBAoDG;InFu/bP;ImF/5bA;MA5II,gBAoDG;InF0/bP;ImFl6bA;MA5II,sBAoDG;InF6/bP;ImFr6bA;MA5II,qBAoDG;InFggcP;ImFx6bA;MA5II,sBAoDG;InFmgcP;ImF36bA;MA5II,mBAoDG;InFsgcP;ImF96bA;MA5II,sBAoDG;InFygcP;ImFj7bA;MA5II,qBAoDG;InF4gcP;ImFp7bA;MA5II,mBAoDG;InF+gcP;ImFv7bA;MA5II,qBAoDG;InFkhcP;ImF17bA;MA5II,mBAoDG;InFqhcP;ImF77bA;MA5II,sBAoDG;InFwhcP;ImFh8bA;MA5II,4BAoDG;InF2hcP;ImFn8bA;MA5II,2BAoDG;InF8hcP;ImFt8bA;MA5II,4BAoDG;InFiicP;ImFz8bA;MA5II,yBAoDG;InFoicP;ImF58bA;MA5II,4BAoDG;InFuicP;ImF/8bA;MA5II,2BAoDG;InF0icP;ImFl9bA;MA5II,yBAoDG;InF6icP;ImFr9bA;MA5II,2BAoDG;InFgjcP;ImFx9bA;MA5II,yBAoDG;InFmjcP;ImF39bA;MA5II,qBAoDG;InFsjcP;ImF99bA;MA5II,2BAoDG;InFyjcP;ImFj+bA;MA5II,0BAoDG;InF4jcP;ImFp+bA;MA5II,2BAoDG;InF+jcP;ImFv+bA;MA5II,wBAoDG;InFkkcP;ImF1+bA;MA5II,2BAoDG;InFqkcP;ImF7+bA;MA5II,0BAoDG;InFwkcP;ImFh/bA;MA5II,wBAoDG;InF2kcP;ImFn/bA;MA5II,0BAoDG;InF8kcP;ImFt/bA;MA5II,wBAoDG;InFilcP;ImFz/bA;MA5II,oBAoDG;InFolcP;ImF5/bA;MA5II,0BAoDG;InFulcP;ImF//bA;MA5II,yBAoDG;InF0lcP;ImFlgcA;MA5II,0BAoDG;InF6lcP;ImFrgcA;MA5II,uBAoDG;InFgmcP;ImFxgcA;MA5II,0BAoDG;InFmmcP;ImF3gcA;MA5II,yBAoDG;InFsmcP;ImF9gcA;MA5II,uBAoDG;InFymcP;ImFjhcA;MA5II,yBAoDG;InF4mcP;ImFphcA;MA5II,uBAoDG;InF+mcP;ImFvhcA;MA5II,uBAoDG;InFkncP;ImF1hcA;MA5II,6BAoDG;InFqncP;ImF7hcA;MA5II,4BAoDG;InFwncP;ImFhicA;MA5II,6BAoDG;InF2ncP;ImFnicA;MA5II,0BAoDG;InF8ncP;ImFticA;MA5II,6BAoDG;InFiocP;ImFzicA;MA5II,4BAoDG;InFoocP;ImF5icA;MA5II,0BAoDG;InFuocP;ImF/icA;MA5II,4BAoDG;InF0ocP;ImFljcA;MA5II,0BAoDG;InF6ocP;ImFrjcA;MA5II,MAoDG;InFgpcP;ImFxjcA;MA5II,YAoDG;InFmpcP;ImF3jcA;MA5II,WAoDG;InFspcP;ImF9jcA;MA5II,YAoDG;InFypcP;ImFjkcA;MA5II,SAoDG;InF4pcP;ImFpkcA;MA5II,YAoDG;InF+pcP;ImFvkcA;MA5II,WAoDG;InFkqcP;ImF1kcA;MA5II,SAoDG;InFqqcP;ImF7kcA;MA5II,WAoDG;InFwqcP;ImFhlcA;MA5II,SAoDG;InF2qcP;ImFnlcA;MA5II,UAoDG;InF8qcP;ImFtlcA;MA5II,gBAoDG;InFircP;ImFzlcA;MA5II,eAoDG;InForcP;ImF5lcA;MA5II,gBAoDG;InFurcP;ImF/lcA;MA5II,aAoDG;InF0rcP;ImFlmcA;MA5II,gBAoDG;InF6rcP;ImFrmcA;MA5II,eAoDG;InFgscP;ImFxmcA;MA5II,aAoDG;InFmscP;ImF3mcA;MA5II,eAoDG;InFsscP;ImF9mcA;MA5II,aAoDG;InFyscP;ImFjncA;MA5II,kBAoDG;MApDH,aAoDG;InF4scP;ImFpncA;MA5II,wBAoDG;MApDH,mBAoDG;InF+scP;ImFvncA;MA5II,uBAoDG;MApDH,kBAoDG;InFktcP;ImF1ncA;MA5II,wBAoDG;MApDH,mBAoDG;InFqtcP;ImF7ncA;MA5II,qBAoDG;MApDH,gBAoDG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F52cA;MA5II,uBAoDG;InFu8cP;ImF/2cA;MA5II,qBAoDG;InF08cP;ImFl3cA;MA5II,mBAoDG;InF68cP;ImFr3cA;MA5II,qBAoDG;InFg9cP;ImFx3cA;MA5II,oBAoDG;InFm9cP;ImF33cA;MA5II,yBAoDG;InFs9cP;ImF93cA;MA5II,uBAoDG;InFy9cP;ImFj4cA;MA5II,qBAoDG;InF49cP;ImFp4cA;MA5II,4BAoDG;InF+9cP;ImFv4cA;MA5II,2BAoDG;InFk+cP;ImF14cA;MA5II,sBAoDG;InFq+cP;ImF74cA;MA5II,gBAoDG;InFw+cP;ImFh5cA;MA5II,sBAoDG;InF2+cP;ImFn5cA;MA5II,oBAoDG;InF8+cP;ImFt5cA;MA5II,kBAoDG;InFi/cP;ImFz5cA;MA5II,oBAoDG;InFo/cP;ImF55cA;MA5II,mBAoDG;InFu/cP;ImF/5cA;MA5II,kBAoDG;InF0/cP;ImFl6cA;MA5II,gBAoDG;InF6/cP;ImFr6cA;MA5II,mBAoDG;InFggdP;ImFx6cA;MA5II,oBAoDG;InFmgdP;ImF36cA;MA5II,0BAoDG;InFsgdP;ImF96cA;MA5II,qCAoDG;InFygdP;ImFj7cA;MA5II,qCAoDG;InF4gdP;ImFp7cA;MA5II,qCAoDG;InF+gdP;ImFv7cA;MA5II,qCAoDG;InFkhdP;ImF17cA;MA5II,mBAoDG;InFqhdP;ImF77cA;MA5II,mBAyDO;InFmhdX;ImFh8cA;MA5II,sBAyDO;InFshdX;ImFn8cA;MA5II,qBAyDO;InFyhdX;ImFt8cA;MA5II,SAoDG;InFiidP;ImFz8cA;MA5II,QAoDG;InFoidP;ImF58cA;MA5II,QAoDG;InFuidP;ImF/8cA;MA5II,QAoDG;InF0idP;ImFl9cA;MA5II,QAoDG;InF6idP;ImFr9cA;MA5II,QAoDG;InFgjdP;ImFx9cA;MA5II,QAoDG;InFmjdP;ImF39cA;MA5II,QAoDG;InFsjdP;ImF99cA;MA5II,SAoDG;InFyjdP;ImFj+cA;MA5II,eAoDG;InF4jdP;ImFp+cA;MA5II,cAoDG;InF+jdP;ImFv+cA;MA5II,eAoDG;InFkkdP;ImF1+cA;MA5II,YAoDG;InFqkdP;ImF7+cA;MA5II,eAoDG;InFwkdP;ImFh/cA;MA5II,cAoDG;InF2kdP;ImFn/cA;MA5II,YAoDG;InF8kdP;ImFt/cA;MA5II,cAoDG;InFildP;ImFz/cA;MA5II,YAoDG;InFoldP;ImF5/cA;MA5II,YAoDG;InFuldP;ImF//cA;MA5II,gBAoDG;InF0ldP;ImFlgdA;MA5II,sBAoDG;InF6ldP;ImFrgdA;MA5II,qBAoDG;InFgmdP;ImFxgdA;MA5II,sBAoDG;InFmmdP;ImF3gdA;MA5II,mBAoDG;InFsmdP;ImF9gdA;MA5II,sBAoDG;InFymdP;ImFjhdA;MA5II,qBAoDG;InF4mdP;ImFphdA;MA5II,mBAoDG;InF+mdP;ImFvhdA;MA5II,qBAoDG;InFkndP;ImF1hdA;MA5II,mBAoDG;InFqndP;ImF7hdA;MA5II,mBAoDG;InFwndP;ImFhidA;MA5II,eAoDG;InF2ndP;ImFnidA;MA5II,qBAoDG;InF8ndP;ImFtidA;MA5II,oBAoDG;InFiodP;ImFzidA;MA5II,qBAoDG;InFoodP;ImF5idA;MA5II,kBAoDG;InFuodP;ImF/idA;MA5II,qBAoDG;InF0odP;ImFljdA;MA5II,oBAoDG;InF6odP;ImFrjdA;MA5II,kBAoDG;InFgpdP;ImFxjdA;MA5II,oBAoDG;InFmpdP;ImF3jdA;MA5II,kBAoDG;InFspdP;ImF9jdA;MA5II,kBAoDG;InFypdP;ImFjkdA;MA5II,qBAoDG;InF4pdP;ImFpkdA;MA5II,2BAoDG;InF+pdP;ImFvkdA;MA5II,0BAoDG;InFkqdP;ImF1kdA;MA5II,2BAoDG;InFqqdP;ImF7kdA;MA5II,wBAoDG;InFwqdP;ImFhldA;MA5II,2BAoDG;InF2qdP;ImFnldA;MA5II,0BAoDG;InF8qdP;ImFtldA;MA5II,wBAoDG;InFirdP;ImFzldA;MA5II,0BAoDG;InFordP;ImF5ldA;MA5II,wBAoDG;InFurdP;ImF/ldA;MA5II,wBAoDG;InF0rdP;ImFlmdA;MA5II,oBAoDG;InF6rdP;ImFrmdA;MA5II,0BAoDG;InFgsdP;ImFxmdA;MA5II,yBAoDG;InFmsdP;ImF3mdA;MA5II,0BAoDG;InFssdP;ImF9mdA;MA5II,uBAoDG;InFysdP;ImFjndA;MA5II,0BAoDG;InF4sdP;ImFpndA;MA5II,yBAoDG;InF+sdP;ImFvndA;MA5II,uBAoDG;InFktdP;ImF1ndA;MA5II,yBAoDG;InFqtdP;ImF7ndA;MA5II,uBAoDG;InFwtdP;ImFhodA;MA5II,2BAoDG;InF2tdP;ImFnodA;MA5II,0BAoDG;InF8tdP;ImFtodA;MA5II,uBAoDG;InFiudP;ImFzodA;MA5II,mBAoDG;InFoudP;ImF5odA;MA5II,yBAoDG;InFuudP;ImF/odA;MA5II,wBAoDG;InF0udP;ImFlpdA;MA5II,yBAoDG;InF6udP;ImFrpdA;MA5II,sBAoDG;InFgvdP;ImFxpdA;MA5II,yBAoDG;InFmvdP;ImF3pdA;MA5II,wBAoDG;InFsvdP;ImF9pdA;MA5II,sBAoDG;InFyvdP;ImFjqdA;MA5II,wBAoDG;InF4vdP;ImFpqdA;MA5II,sBAoDG;InF+vdP;ImFvqdA;MA5II,sBAoDG;InFkwdP;ImF1qdA;MA5II,sBAoDG;InFqwdP;ImF7qdA;MA5II,4BAoDG;InFwwdP;ImFhrdA;MA5II,2BAoDG;InF2wdP;ImFnrdA;MA5II,4BAoDG;InF8wdP;ImFtrdA;MA5II,yBAoDG;InFixdP;ImFzrdA;MA5II,4BAoDG;InFoxdP;ImF5rdA;MA5II,2BAoDG;InFuxdP;ImF/rdA;MA5II,yBAoDG;InF0xdP;ImFlsdA;MA5II,2BAoDG;InF6xdP;ImFrsdA;MA5II,yBAoDG;InFgydP;ImFxsdA;MA5II,6BAoDG;InFmydP;ImF3sdA;MA5II,4BAoDG;InFsydP;ImF9sdA;MA5II,yBAoDG;InFyydP;ImFjtdA;MA5II,UAoDG;InF4ydP;ImFptdA;MA5II,gBAoDG;InF+ydP;ImFvtdA;MA5II,eAoDG;InFkzdP;ImF1tdA;MA5II,gBAoDG;InFqzdP;ImF7tdA;MA5II,aAoDG;InFwzdP;ImFhudA;MA5II,gBAoDG;InF2zdP;ImFnudA;MA5II,eAoDG;InF8zdP;ImFtudA;MA5II,aAoDG;InFi0dP;ImFzudA;MA5II,eAoDG;InFo0dP;ImF5udA;MA5II,aAoDG;InFu0dP;ImF/udA;MA5II,iBAoDG;InF00dP;ImFlvdA;MA5II,uBAoDG;InF60dP;ImFrvdA;MA5II,sBAoDG;InFg1dP;ImFxvdA;MA5II,uBAoDG;InFm1dP;ImF3vdA;MA5II,oBAoDG;InFs1dP;ImF9vdA;MA5II,uBAoDG;InFy1dP;ImFjwdA;MA5II,sBAoDG;InF41dP;ImFpwdA;MA5II,oBAoDG;InF+1dP;ImFvwdA;MA5II,sBAoDG;InFk2dP;ImF1wdA;MA5II,oBAoDG;InFq2dP;ImF7wdA;MA5II,gBAoDG;InFw2dP;ImFhxdA;MA5II,sBAoDG;InF22dP;ImFnxdA;MA5II,qBAoDG;InF82dP;ImFtxdA;MA5II,sBAoDG;InFi3dP;ImFzxdA;MA5II,mBAoDG;InFo3dP;ImF5xdA;MA5II,sBAoDG;InFu3dP;ImF/xdA;MA5II,qBAoDG;InF03dP;ImFlydA;MA5II,mBAoDG;InF63dP;ImFrydA;MA5II,qBAoDG;InFg4dP;ImFxydA;MA5II,mBAoDG;InFm4dP;ImF3ydA;MA5II,sBAoDG;InFs4dP;ImF9ydA;MA5II,4BAoDG;InFy4dP;ImFjzdA;MA5II,2BAoDG;InF44dP;ImFpzdA;MA5II,4BAoDG;InF+4dP;ImFvzdA;MA5II,yBAoDG;InFk5dP;ImF1zdA;MA5II,4BAoDG;InFq5dP;ImF7zdA;MA5II,2BAoDG;InFw5dP;ImFh0dA;MA5II,yBAoDG;InF25dP;ImFn0dA;MA5II,2BAoDG;InF85dP;ImFt0dA;MA5II,yBAoDG;InFi6dP;ImFz0dA;MA5II,qBAoDG;InFo6dP;ImF50dA;MA5II,2BAoDG;InFu6dP;ImF/0dA;MA5II,0BAoDG;InF06dP;ImFl1dA;MA5II,2BAoDG;InF66dP;ImFr1dA;MA5II,wBAoDG;InFg7dP;ImFx1dA;MA5II,2BAoDG;InFm7dP;ImF31dA;MA5II,0BAoDG;InFs7dP;ImF91dA;MA5II,wBAoDG;InFy7dP;ImFj2dA;MA5II,0BAoDG;InF47dP;ImFp2dA;MA5II,wBAoDG;InF+7dP;ImFv2dA;MA5II,oBAoDG;InFk8dP;ImF12dA;MA5II,0BAoDG;InFq8dP;ImF72dA;MA5II,yBAoDG;InFw8dP;ImFh3dA;MA5II,0BAoDG;InF28dP;ImFn3dA;MA5II,uBAoDG;InF88dP;ImFt3dA;MA5II,0BAoDG;InFi9dP;ImFz3dA;MA5II,yBAoDG;InFo9dP;ImF53dA;MA5II,uBAoDG;InFu9dP;ImF/3dA;MA5II,yBAoDG;InF09dP;ImFl4dA;MA5II,uBAoDG;InF69dP;ImFr4dA;MA5II,uBAoDG;InFg+dP;ImFx4dA;MA5II,6BAoDG;InFm+dP;ImF34dA;MA5II,4BAoDG;InFs+dP;ImF94dA;MA5II,6BAoDG;InFy+dP;ImFj5dA;MA5II,0BAoDG;InF4+dP;ImFp5dA;MA5II,6BAoDG;InF++dP;ImFv5dA;MA5II,4BAoDG;InFk/dP;ImF15dA;MA5II,0BAoDG;InFq/dP;ImF75dA;MA5II,4BAoDG;InFw/dP;ImFh6dA;MA5II,0BAoDG;InF2/dP;ImFn6dA;MA5II,MAoDG;InF8/dP;ImFt6dA;MA5II,YAoDG;InFigeP;ImFz6dA;MA5II,WAoDG;InFogeP;ImF56dA;MA5II,YAoDG;InFugeP;ImF/6dA;MA5II,SAoDG;InF0geP;ImFl7dA;MA5II,YAoDG;InF6geP;ImFr7dA;MA5II,WAoDG;InFgheP;ImFx7dA;MA5II,SAoDG;InFmheP;ImF37dA;MA5II,WAoDG;InFsheP;ImF97dA;MA5II,SAoDG;InFyheP;ImFj8dA;MA5II,UAoDG;InF4heP;ImFp8dA;MA5II,gBAoDG;InF+heP;ImFv8dA;MA5II,eAoDG;InFkieP;ImF18dA;MA5II,gBAoDG;InFqieP;ImF78dA;MA5II,aAoDG;InFwieP;ImFh9dA;MA5II,gBAoDG;InF2ieP;ImFn9dA;MA5II,eAoDG;InF8ieP;ImFt9dA;MA5II,aAoDG;InFijeP;ImFz9dA;MA5II,eAoDG;InFojeP;ImF59dA;MA5II,aAoDG;InFujeP;ImF/9dA;MA5II,kBAoDG;MApDH,aAoDG;InF0jeP;ImFl+dA;MA5II,wBAoDG;MApDH,mBAoDG;InF6jeP;ImFr+dA;MA5II,uBAoDG;MApDH,kBAoDG;InFgkeP;ImFx+dA;MA5II,wBAoDG;MApDH,mBAoDG;InFmkeP;ImF3+dA;MA5II,qBAoDG;MApDH,gBAoDG;InFskeP;ImF9+dA;MA5II,wBAoDG;MApDH,mBAoDG;InFykeP;ImFj/dA;MA5II,uBAoDG;MApDH,kBAoDG;InF4keP;ImFp/dA;MA5II,qBAoDG;MApDH,gBAoDG;InF+keP;ImFv/dA;MA5II,uBAoDG;MApDH,kBAoDG;InFkleP;ImF1/dA;MA5II,qBAoDG;MApDH,gBAoDG;InFqleP;ImF7/dA;MA5II,oBAoDG;InFwleP;ImFhgeA;MA5II,0BAoDG;InF2leP;ImFngeA;MA5II,yBAoDG;InF8leP;ImFtgeA;MA5II,0BAoDG;InFimeP;ImFzgeA;MA5II,uBAoDG;InFomeP;ImF5geA;MA5II,0BAoDG;InFumeP;ImF/geA;MA5II,yBAoDG;InF0meP;ImFlheA;MA5II,uBAoDG;InF6meP;ImFrheA;MA5II,yBAoDG;InFgneP;ImFxheA;MA5II,uBAoDG;InFmneP;ImF3heA;MA5II,mBAoDG;InFsneP;ImF9heA;MA5II,yBAoDG;InFyneP;ImFjieA;MA5II,wBAoDG;InF4neP;ImFpieA;MA5II,yBAoDG;InF+neP;ImFvieA;MA5II,sBAoDG;InFkoeP;ImF1ieA;MA5II,yBAoDG;InFqoeP;ImF7ieA;MA5II,wBAoDG;InFwoeP;ImFhjeA;MA5II,sBAoDG;InF2oeP;ImFnjeA;MA5II,wBAoDG;InF8oeP;ImFtjeA;MA5II,sBAoDG;InFipeP;ImFzjeA;MA5II,yFAoDG;InFopeP;ImF5jeA;MA5II,sBAoDG;InFupeP;ImF/jeA;MA5II,wFAoDG;InF0peP;ImFlkeA;MA5II,qBAoDG;InF6peP;ImFrkeA;MA5II,iBAoDG;InFgqeP;ImFxkeA;MA5II,eAoDG;InFmqeP;ImF3keA;MA5II,kBAoDG;InFsqeP;EACF;EW3reE;IwE4GA;MA5II,mBAoDG;InF2qeP;ImFnleA;MA5II,iBAoDG;InF8qeP;ImFtleA;MA5II,WAoDG;InFireP;ImFzleA;MA5II,sBAoDG;MApDH,mBAoDG;InForeP;ImF5leA;MA5II,oBAoDG;MApDH,iBAoDG;InFureP;ImF/leA;MA5II,mBAoDG;MApDH,gBAoDG;InF0reP;ImFlmeA;MA5II,yBAoDG;MApDH,sBAoDG;InF6reP;ImFrmeA;MA5II,mBAoDG;MApDH,gBAoDG;InFgseP;ImFxmeA;MA5II,eAyDO;InF8reX;ImF3meA;MA5II,qBAyDO;InFiseX;ImF9meA;MA5II,cAyDO;InFoseX;ImFjneA;MA5II,aAyDO;InFuseX;ImFpneA;MA5II,oBAyDO;InF0seX;ImFvneA;MA5II,cAyDO;InF6seX;ImF1neA;MA5II,kBAyDO;InFgteX;ImF7neA;MA5II,mBAyDO;InFmteX;ImFhoeA;MA5II,aAyDO;InFsteX;ImFnoeA;MA5II,oBAyDO;InFyteX;ImFtoeA;MA5II,iBAyDO;InF4teX;ImFzoeA;MA5II,kBAyDO;InF+teX;ImF5oeA;MA5II,aAyDO;InFkueX;ImF/oeA;MA5II,cAoDG;InF0ueP;ImFlpeA;MA5II,mBAyDO;InFwueX;ImFrpeA;MA5II,sBAyDO;InF2ueX;ImFxpeA;MA5II,2BAyDO;InF8ueX;ImF3peA;MA5II,8BAyDO;InFiveX;ImF9peA;MA5II,YAoDG;InFyveP;ImFjqeA;MA5II,YAoDG;InF4veP;ImFpqeA;MA5II,cAoDG;InF+veP;ImFvqeA;MA5II,cAoDG;InFkweP;ImF1qeA;MA5II,eAyDO;InFgweX;ImF7qeA;MA5II,iBAyDO;InFmweX;ImFhreA;MA5II,uBAyDO;InFsweX;ImFnreA;MA5II,2BAoDG;InF8weP;ImFtreA;MA5II,yBAoDG;InFixeP;ImFzreA;MA5II,uBAoDG;InFoxeP;ImF5reA;MA5II,8BAoDG;InFuxeP;ImF/reA;MA5II,6BAoDG;InF0xeP;ImFlseA;MA5II,6BAoDG;InF6xeP;ImFrseA;MA5II,oBAoDG;InFgyeP;ImFxseA;MA5II,kBAoDG;InFmyeP;ImF3seA;MA5II,qBAoDG;InFsyeP;ImF9seA;MA5II,sBAoDG;InFyyeP;ImFjteA;MA5II,mBAoDG;InF4yeP;ImFpteA;MA5II,iBAoDG;InF+yeP;ImFvteA;MA5II,oBAoDG;InFkzeP;ImF1teA;MA5II,uBAoDG;InFqzeP;ImF7teA;MA5II,qBAoDG;InFwzeP;ImFhueA;MA5II,mBAoDG;InF2zeP;ImFnueA;MA5II,qBAoDG;InF8zeP;ImFtueA;MA5II,oBAoDG;InFi0eP;ImFzueA;MA5II,yBAoDG;InFo0eP;ImF5ueA;MA5II,uBAoDG;InFu0eP;ImF/ueA;MA5II,qBAoDG;InF00eP;ImFlveA;MA5II,4BAoDG;InF60eP;ImFrveA;MA5II,2BAoDG;InFg1eP;ImFxveA;MA5II,sBAoDG;InFm1eP;ImF3veA;MA5II,gBAoDG;InFs1eP;ImF9veA;MA5II,sBAoDG;InFy1eP;ImFjweA;MA5II,oBAoDG;InF41eP;ImFpweA;MA5II,kBAoDG;InF+1eP;ImFvweA;MA5II,oBAoDG;InFk2eP;ImF1weA;MA5II,mBAoDG;InFq2eP;ImF7weA;MA5II,kBAoDG;InFw2eP;ImFhxeA;MA5II,gBAoDG;InF22eP;ImFnxeA;MA5II,mBAoDG;InF82eP;ImFtxeA;MA5II,oBAoDG;InFi3eP;ImFzxeA;MA5II,0BAoDG;InFo3eP;ImF5xeA;MA5II,qCAoDG;InFu3eP;ImF/xeA;MA5II,qCAoDG;InF03eP;ImFlyeA;MA5II,qCAoDG;InF63eP;ImFryeA;MA5II,qCAoDG;InFg4eP;ImFxyeA;MA5II,mBAoDG;InFm4eP;ImF3yeA;MA5II,mBAyDO;InFi4eX;ImF9yeA;MA5II,sBAyDO;InFo4eX;ImFjzeA;MA5II,qBAyDO;InFu4eX;ImFpzeA;MA5II,SAoDG;InF+4eP;ImFvzeA;MA5II,QAoDG;InFk5eP;ImF1zeA;MA5II,QAoDG;InFq5eP;ImF7zeA;MA5II,QAoDG;InFw5eP;ImFh0eA;MA5II,QAoDG;InF25eP;ImFn0eA;MA5II,QAoDG;InF85eP;ImFt0eA;MA5II,QAoDG;InFi6eP;ImFz0eA;MA5II,QAoDG;InFo6eP;ImF50eA;MA5II,SAoDG;InFu6eP;ImF/0eA;MA5II,eAoDG;InF06eP;ImFl1eA;MA5II,cAoDG;InF66eP;ImFr1eA;MA5II,eAoDG;InFg7eP;ImFx1eA;MA5II,YAoDG;InFm7eP;ImF31eA;MA5II,eAoDG;InFs7eP;ImF91eA;MA5II,cAoDG;InFy7eP;ImFj2eA;MA5II,YAoDG;InF47eP;ImFp2eA;MA5II,cAoDG;InF+7eP;ImFv2eA;MA5II,YAoDG;InFk8eP;ImF12eA;MA5II,YAoDG;InFq8eP;ImF72eA;MA5II,gBAoDG;InFw8eP;ImFh3eA;MA5II,sBAoDG;InF28eP;ImFn3eA;MA5II,qBAoDG;InF88eP;ImFt3eA;MA5II,sBAoDG;InFi9eP;ImFz3eA;MA5II,mBAoDG;InFo9eP;ImF53eA;MA5II,sBAoDG;InFu9eP;ImF/3eA;MA5II,qBAoDG;InF09eP;ImFl4eA;MA5II,mBAoDG;InF69eP;ImFr4eA;MA5II,qBAoDG;InFg+eP;ImFx4eA;MA5II,mBAoDG;InFm+eP;ImF34eA;MA5II,mBAoDG;InFs+eP;ImF94eA;MA5II,eAoDG;InFy+eP;ImFj5eA;MA5II,qBAoDG;InF4+eP;ImFp5eA;MA5II,oBAoDG;InF++eP;ImFv5eA;MA5II,qBAoDG;InFk/eP;ImF15eA;MA5II,kBAoDG;InFq/eP;ImF75eA;MA5II,qBAoDG;InFw/eP;ImFh6eA;MA5II,oBAoDG;InF2/eP;ImFn6eA;MA5II,kBAoDG;InF8/eP;ImFt6eA;MA5II,oBAoDG;InFigfP;ImFz6eA;MA5II,kBAoDG;InFogfP;ImF56eA;MA5II,kBAoDG;InFugfP;ImF/6eA;MA5II,qBAoDG;InF0gfP;ImFl7eA;MA5II,2BAoDG;InF6gfP;ImFr7eA;MA5II,0BAoDG;InFghfP;ImFx7eA;MA5II,2BAoDG;InFmhfP;ImF37eA;MA5II,wBAoDG;InFshfP;ImF97eA;MA5II,2BAoDG;InFyhfP;ImFj8eA;MA5II,0BAoDG;InF4hfP;ImFp8eA;MA5II,wBAoDG;InF+hfP;ImFv8eA;MA5II,0BAoDG;InFkifP;ImF18eA;MA5II,wBAoDG;InFqifP;ImF78eA;MA5II,wBAoDG;InFwifP;ImFh9eA;MA5II,oBAoDG;InF2ifP;ImFn9eA;MA5II,0BAoDG;InF8ifP;ImFt9eA;MA5II,yBAoDG;InFijfP;ImFz9eA;MA5II,0BAoDG;InFojfP;ImF59eA;MA5II,uBAoDG;InFujfP;ImF/9eA;MA5II,0BAoDG;InF0jfP;ImFl+eA;MA5II,yBAoDG;InF6jfP;ImFr+eA;MA5II,uBAoDG;InFgkfP;ImFx+eA;MA5II,yBAoDG;InFmkfP;ImF3+eA;MA5II,uBAoDG;InFskfP;ImF9+eA;MA5II,2BAoDG;InFykfP;ImFj/eA;MA5II,0BAoDG;InF4kfP;ImFp/eA;MA5II,uBAoDG;InF+kfP;ImFv/eA;MA5II,mBAoDG;InFklfP;ImF1/eA;MA5II,yBAoDG;InFqlfP;ImF7/eA;MA5II,wBAoDG;InFwlfP;ImFhgfA;MA5II,yBAoDG;InF2lfP;ImFngfA;MA5II,sBAoDG;InF8lfP;ImFtgfA;MA5II,yBAoDG;InFimfP;ImFzgfA;MA5II,wBAoDG;InFomfP;ImF5gfA;MA5II,sBAoDG;InFumfP;ImF/gfA;MA5II,wBAoDG;InF0mfP;ImFlhfA;MA5II,sBAoDG;InF6mfP;ImFrhfA;MA5II,sBAoDG;InFgnfP;ImFxhfA;MA5II,sBAoDG;InFmnfP;ImF3hfA;MA5II,4BAoDG;InFsnfP;ImF9hfA;MA5II,2BAoDG;InFynfP;ImFjifA;MA5II,4BAoDG;InF4nfP;ImFpifA;MA5II,yBAoDG;InF+nfP;ImFvifA;MA5II,4BAoDG;InFkofP;ImF1ifA;MA5II,2BAoDG;InFqofP;ImF7ifA;MA5II,yBAoDG;InFwofP;ImFhjfA;MA5II,2BAoDG;InF2ofP;ImFnjfA;MA5II,yBAoDG;InF8ofP;ImFtjfA;MA5II,6BAoDG;InFipfP;ImFzjfA;MA5II,4BAoDG;InFopfP;ImF5jfA;MA5II,yBAoDG;InFupfP;ImF/jfA;MA5II,UAoDG;InF0pfP;ImFlkfA;MA5II,gBAoDG;InF6pfP;ImFrkfA;MA5II,eAoDG;InFgqfP;ImFxkfA;MA5II,gBAoDG;InFmqfP;ImF3kfA;MA5II,aAoDG;InFsqfP;ImF9kfA;MA5II,gBAoDG;InFyqfP;ImFjlfA;MA5II,eAoDG;InF4qfP;ImFplfA;MA5II,aAoDG;InF+qfP;ImFvlfA;MA5II,eAoDG;InFkrfP;ImF1lfA;MA5II,aAoDG;InFqrfP;ImF7lfA;MA5II,iBAoDG;InFwrfP;ImFhmfA;MA5II,uBAoDG;InF2rfP;ImFnmfA;MA5II,sBAoDG;InF8rfP;ImFtmfA;MA5II,uBAoDG;InFisfP;ImFzmfA;MA5II,oBAoDG;InFosfP;ImF5mfA;MA5II,uBAoDG;InFusfP;ImF/mfA;MA5II,sBAoDG;InF0sfP;ImFlnfA;MA5II,oBAoDG;InF6sfP;ImFrnfA;MA5II,sBAoDG;InFgtfP;ImFxnfA;MA5II,oBAoDG;InFmtfP;ImF3nfA;MA5II,gBAoDG;InFstfP;ImF9nfA;MA5II,sBAoDG;InFytfP;ImFjofA;MA5II,qBAoDG;InF4tfP;ImFpofA;MA5II,sBAoDG;InF+tfP;ImFvofA;MA5II,mBAoDG;InFkufP;ImF1ofA;MA5II,sBAoDG;InFqufP;ImF7ofA;MA5II,qBAoDG;InFwufP;ImFhpfA;MA5II,mBAoDG;InF2ufP;ImFnpfA;MA5II,qBAoDG;InF8ufP;ImFtpfA;MA5II,mBAoDG;InFivfP;ImFzpfA;MA5II,sBAoDG;InFovfP;ImF5pfA;MA5II,4BAoDG;InFuvfP;ImF/pfA;MA5II,2BAoDG;InF0vfP;ImFlqfA;MA5II,4BAoDG;InF6vfP;ImFrqfA;MA5II,yBAoDG;InFgwfP;ImFxqfA;MA5II,4BAoDG;InFmwfP;ImF3qfA;MA5II,2BAoDG;InFswfP;ImF9qfA;MA5II,yBAoDG;InFywfP;ImFjrfA;MA5II,2BAoDG;InF4wfP;ImFprfA;MA5II,yBAoDG;InF+wfP;ImFvrfA;MA5II,qBAoDG;InFkxfP;ImF1rfA;MA5II,2BAoDG;InFqxfP;ImF7rfA;MA5II,0BAoDG;InFwxfP;ImFhsfA;MA5II,2BAoDG;InF2xfP;ImFnsfA;MA5II,wBAoDG;InF8xfP;ImFtsfA;MA5II,2BAoDG;InFiyfP;ImFzsfA;MA5II,0BAoDG;InFoyfP;ImF5sfA;MA5II,wBAoDG;InFuyfP;ImF/sfA;MA5II,0BAoDG;InF0yfP;ImFltfA;MA5II,wBAoDG;InF6yfP;ImFrtfA;MA5II,oBAoDG;InFgzfP;ImFxtfA;MA5II,0BAoDG;InFmzfP;ImF3tfA;MA5II,yBAoDG;InFszfP;ImF9tfA;MA5II,0BAoDG;InFyzfP;ImFjufA;MA5II,uBAoDG;InF4zfP;ImFpufA;MA5II,0BAoDG;InF+zfP;ImFvufA;MA5II,yBAoDG;InFk0fP;ImF1ufA;MA5II,uBAoDG;InFq0fP;ImF7ufA;MA5II,yBAoDG;InFw0fP;ImFhvfA;MA5II,uBAoDG;InF20fP;ImFnvfA;MA5II,uBAoDG;InF80fP;ImFtvfA;MA5II,6BAoDG;InFi1fP;ImFzvfA;MA5II,4BAoDG;InFo1fP;ImF5vfA;MA5II,6BAoDG;InFu1fP;ImF/vfA;MA5II,0BAoDG;InF01fP;ImFlwfA;MA5II,6BAoDG;InF61fP;ImFrwfA;MA5II,4BAoDG;InFg2fP;ImFxwfA;MA5II,0BAoDG;InFm2fP;ImF3wfA;MA5II,4BAoDG;InFs2fP;ImF9wfA;MA5II,0BAoDG;InFy2fP;ImFjxfA;MA5II,MAoDG;InF42fP;ImFpxfA;MA5II,YAoDG;InF+2fP;ImFvxfA;MA5II,WAoDG;InFk3fP;ImF1xfA;MA5II,YAoDG;InFq3fP;ImF7xfA;MA5II,SAoDG;InFw3fP;ImFhyfA;MA5II,YAoDG;InF23fP;ImFnyfA;MA5II,WAoDG;InF83fP;ImFtyfA;MA5II,SAoDG;InFi4fP;ImFzyfA;MA5II,WAoDG;InFo4fP;ImF5yfA;MA5II,SAoDG;InFu4fP;ImF/yfA;MA5II,UAoDG;InF04fP;ImFlzfA;MA5II,gBAoDG;InF64fP;ImFrzfA;MA5II,eAoDG;InFg5fP;ImFxzfA;MA5II,gBAoDG;InFm5fP;ImF3zfA;MA5II,aAoDG;InFs5fP;ImF9zfA;MA5II,gBAoDG;InFy5fP;ImFj0fA;MA5II,eAoDG;InF45fP;ImFp0fA;MA5II,aAoDG;InF+5fP;ImFv0fA;MA5II,eAoDG;InFk6fP;ImF10fA;MA5II,aAoDG;InFq6fP;ImF70fA;MA5II,kBAoDG;MApDH,aAoDG;InFw6fP;ImFh1fA;MA5II,wBAoDG;MApDH,mBAoDG;InF26fP;ImFn1fA;MA5II,uBAoDG;MApDH,kBAoDG;InF86fP;ImFt1fA;MA5II,wBAoDG;MApDH,mBAoDG;InFi7fP;ImFz1fA;MA5II,qBAoDG;MApDH,gBAoDG;InFo7fP;ImF51fA;MA5II,wBAoDG;MApDH,mBAoDG;InFu7fP;ImF/1fA;MA5II,uBAoDG;MApDH,kBAoDG;InF07fP;ImFl2fA;MA5II,qBAoDG;MApDH,gBAoDG;InF67fP;ImFr2fA;MA5II,uBAoDG;MApDH,kBAoDG;InFg8fP;ImFx2fA;MA5II,qBAoDG;MApDH,gBAoDG;InFm8fP;ImF32fA;MA5II,oBAoDG;InFs8fP;ImF92fA;MA5II,0BAoDG;InFy8fP;ImFj3fA;MA5II,yBAoDG;InF48fP;ImFp3fA;MA5II,0BAoDG;InF+8fP;ImFv3fA;MA5II,uBAoDG;InFk9fP;ImF13fA;MA5II,0BAoDG;InFq9fP;ImF73fA;MA5II,yBAoDG;InFw9fP;ImFh4fA;MA5II,uBAoDG;InF29fP;ImFn4fA;MA5II,yBAoDG;InF89fP;ImFt4fA;MA5II,uBAoDG;InFi+fP;ImFz4fA;MA5II,mBAoDG;InFo+fP;ImF54fA;MA5II,yBAoDG;InFu+fP;ImF/4fA;MA5II,wBAoDG;InF0+fP;ImFl5fA;MA5II,yBAoDG;InF6+fP;ImFr5fA;MA5II,sBAoDG;InFg/fP;ImFx5fA;MA5II,yBAoDG;InFm/fP;ImF35fA;MA5II,wBAoDG;InFs/fP;ImF95fA;MA5II,sBAoDG;InFy/fP;ImFj6fA;MA5II,wBAoDG;InF4/fP;ImFp6fA;MA5II,sBAoDG;InF+/fP;ImFv6fA;MA5II,yFAoDG;InFkggBP;ImF16fA;MA5II,sBAoDG;InFqggBP;ImF76fA;MA5II,wFAoDG;InFwggBP;ImFh7fA;MA5II,qBAoDG;InF2ggBP;ImFn7fA;MA5II,iBAoDG;InF8ggBP;ImFt7fA;MA5II,eAoDG;InFihgBP;ImFz7fA;MA5II,kBAoDG;InFohgBP;EACF;AACF","file":"bootstrap.css","sourcesContent":["@charset \"UTF-8\";\n/*!\n * Bootstrap v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.24 240deg));\n --blue-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.24 240deg));\n --blue-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.24 240deg));\n --blue-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.24 240deg));\n --blue-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.24 240deg));\n --blue-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.24 240deg));\n --blue-500: oklch(60% 0.24 240deg);\n --blue-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.24 240deg));\n --blue-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.24 240deg));\n --blue-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.24 240deg));\n --blue-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.24 240deg));\n --blue-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.24 240deg));\n --blue-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.24 240deg));\n --indigo-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.26 288deg));\n --indigo-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.26 288deg));\n --indigo-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.26 288deg));\n --indigo-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.26 288deg));\n --indigo-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.26 288deg));\n --indigo-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.26 288deg));\n --indigo-500: oklch(56% 0.26 288deg);\n --indigo-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.26 288deg));\n --indigo-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.26 288deg));\n --indigo-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.26 288deg));\n --indigo-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.26 288deg));\n --indigo-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.26 288deg));\n --indigo-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.26 288deg));\n --violet-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 300deg));\n --violet-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 300deg));\n --violet-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 300deg));\n --violet-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 300deg));\n --violet-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 300deg));\n --violet-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 300deg));\n --violet-500: oklch(56% 0.24 300deg);\n --violet-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 300deg));\n --violet-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 300deg));\n --violet-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 300deg));\n --violet-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 300deg));\n --violet-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 300deg));\n --violet-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 300deg));\n --purple-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 320deg));\n --purple-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 320deg));\n --purple-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 320deg));\n --purple-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 320deg));\n --purple-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 320deg));\n --purple-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 320deg));\n --purple-500: oklch(56% 0.24 320deg);\n --purple-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 320deg));\n --purple-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 320deg));\n --purple-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 320deg));\n --purple-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 320deg));\n --purple-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 320deg));\n --purple-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 320deg));\n --pink-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 4deg));\n --pink-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 4deg));\n --pink-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 4deg));\n --pink-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 4deg));\n --pink-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 4deg));\n --pink-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 4deg));\n --pink-500: oklch(60% 0.22 4deg);\n --pink-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 4deg));\n --pink-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 4deg));\n --pink-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 4deg));\n --pink-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 4deg));\n --pink-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 4deg));\n --pink-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 4deg));\n --red-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 20deg));\n --red-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 20deg));\n --red-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 20deg));\n --red-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 20deg));\n --red-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 20deg));\n --red-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 20deg));\n --red-500: oklch(60% 0.22 20deg);\n --red-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 20deg));\n --red-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 20deg));\n --red-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 20deg));\n --red-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 20deg));\n --red-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 20deg));\n --red-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 20deg));\n --orange-025: color-mix(in lab, var(--white) 94%, oklch(70% 0.22 52deg));\n --orange-050: color-mix(in lab, var(--white) 90%, oklch(70% 0.22 52deg));\n --orange-100: color-mix(in lab, var(--white) 80%, oklch(70% 0.22 52deg));\n --orange-200: color-mix(in lab, var(--white) 60%, oklch(70% 0.22 52deg));\n --orange-300: color-mix(in lab, var(--white) 40%, oklch(70% 0.22 52deg));\n --orange-400: color-mix(in lab, var(--white) 20%, oklch(70% 0.22 52deg));\n --orange-500: oklch(70% 0.22 52deg);\n --orange-600: color-mix(in lab, var(--black) 16%, oklch(70% 0.22 52deg));\n --orange-700: color-mix(in lab, var(--black) 32%, oklch(70% 0.22 52deg));\n --orange-800: color-mix(in lab, var(--black) 48%, oklch(70% 0.22 52deg));\n --orange-900: color-mix(in lab, var(--black) 64%, oklch(70% 0.22 52deg));\n --orange-950: color-mix(in lab, var(--black) 76%, oklch(70% 0.22 52deg));\n --orange-975: color-mix(in lab, var(--black) 88%, oklch(70% 0.22 52deg));\n --amber-025: color-mix(in lab, var(--white) 94%, oklch(79% 0.2 78deg));\n --amber-050: color-mix(in lab, var(--white) 90%, oklch(79% 0.2 78deg));\n --amber-100: color-mix(in lab, var(--white) 80%, oklch(79% 0.2 78deg));\n --amber-200: color-mix(in lab, var(--white) 60%, oklch(79% 0.2 78deg));\n --amber-300: color-mix(in lab, var(--white) 40%, oklch(79% 0.2 78deg));\n --amber-400: color-mix(in lab, var(--white) 20%, oklch(79% 0.2 78deg));\n --amber-500: oklch(79% 0.2 78deg);\n --amber-600: color-mix(in lab, var(--black) 16%, oklch(79% 0.2 78deg));\n --amber-700: color-mix(in lab, var(--black) 32%, oklch(79% 0.2 78deg));\n --amber-800: color-mix(in lab, var(--black) 48%, oklch(79% 0.2 78deg));\n --amber-900: color-mix(in lab, var(--black) 64%, oklch(79% 0.2 78deg));\n --amber-950: color-mix(in lab, var(--black) 76%, oklch(79% 0.2 78deg));\n --amber-975: color-mix(in lab, var(--black) 88%, oklch(79% 0.2 78deg));\n --yellow-025: color-mix(in lab, var(--white) 94%, oklch(88% 0.24 88deg));\n --yellow-050: color-mix(in lab, var(--white) 90%, oklch(88% 0.24 88deg));\n --yellow-100: color-mix(in lab, var(--white) 80%, oklch(88% 0.24 88deg));\n --yellow-200: color-mix(in lab, var(--white) 60%, oklch(88% 0.24 88deg));\n --yellow-300: color-mix(in lab, var(--white) 40%, oklch(88% 0.24 88deg));\n --yellow-400: color-mix(in lab, var(--white) 20%, oklch(88% 0.24 88deg));\n --yellow-500: oklch(88% 0.24 88deg);\n --yellow-600: color-mix(in lab, var(--black) 16%, oklch(88% 0.24 88deg));\n --yellow-700: color-mix(in lab, var(--black) 32%, oklch(88% 0.24 88deg));\n --yellow-800: color-mix(in lab, var(--black) 48%, oklch(88% 0.24 88deg));\n --yellow-900: color-mix(in lab, var(--black) 64%, oklch(88% 0.24 88deg));\n --yellow-950: color-mix(in lab, var(--black) 76%, oklch(88% 0.24 88deg));\n --yellow-975: color-mix(in lab, var(--black) 88%, oklch(88% 0.24 88deg));\n --lime-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.24 135deg));\n --lime-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.24 135deg));\n --lime-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.24 135deg));\n --lime-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.24 135deg));\n --lime-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.24 135deg));\n --lime-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.24 135deg));\n --lime-500: oklch(65% 0.24 135deg);\n --lime-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.24 135deg));\n --lime-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.24 135deg));\n --lime-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.24 135deg));\n --lime-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.24 135deg));\n --lime-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.24 135deg));\n --lime-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.24 135deg));\n --green-025: color-mix(in lab, var(--white) 94%, oklch(64% 0.22 160deg));\n --green-050: color-mix(in lab, var(--white) 90%, oklch(64% 0.22 160deg));\n --green-100: color-mix(in lab, var(--white) 80%, oklch(64% 0.22 160deg));\n --green-200: color-mix(in lab, var(--white) 60%, oklch(64% 0.22 160deg));\n --green-300: color-mix(in lab, var(--white) 40%, oklch(64% 0.22 160deg));\n --green-400: color-mix(in lab, var(--white) 20%, oklch(64% 0.22 160deg));\n --green-500: oklch(64% 0.22 160deg);\n --green-600: color-mix(in lab, var(--black) 16%, oklch(64% 0.22 160deg));\n --green-700: color-mix(in lab, var(--black) 32%, oklch(64% 0.22 160deg));\n --green-800: color-mix(in lab, var(--black) 48%, oklch(64% 0.22 160deg));\n --green-900: color-mix(in lab, var(--black) 64%, oklch(64% 0.22 160deg));\n --green-950: color-mix(in lab, var(--black) 76%, oklch(64% 0.22 160deg));\n --green-975: color-mix(in lab, var(--black) 88%, oklch(64% 0.22 160deg));\n --teal-025: color-mix(in lab, var(--white) 94%, oklch(68% 0.22 190deg));\n --teal-050: color-mix(in lab, var(--white) 90%, oklch(68% 0.22 190deg));\n --teal-100: color-mix(in lab, var(--white) 80%, oklch(68% 0.22 190deg));\n --teal-200: color-mix(in lab, var(--white) 60%, oklch(68% 0.22 190deg));\n --teal-300: color-mix(in lab, var(--white) 40%, oklch(68% 0.22 190deg));\n --teal-400: color-mix(in lab, var(--white) 20%, oklch(68% 0.22 190deg));\n --teal-500: oklch(68% 0.22 190deg);\n --teal-600: color-mix(in lab, var(--black) 16%, oklch(68% 0.22 190deg));\n --teal-700: color-mix(in lab, var(--black) 32%, oklch(68% 0.22 190deg));\n --teal-800: color-mix(in lab, var(--black) 48%, oklch(68% 0.22 190deg));\n --teal-900: color-mix(in lab, var(--black) 64%, oklch(68% 0.22 190deg));\n --teal-950: color-mix(in lab, var(--black) 76%, oklch(68% 0.22 190deg));\n --teal-975: color-mix(in lab, var(--black) 88%, oklch(68% 0.22 190deg));\n --cyan-025: color-mix(in lab, var(--white) 94%, oklch(69% 0.22 220deg));\n --cyan-050: color-mix(in lab, var(--white) 90%, oklch(69% 0.22 220deg));\n --cyan-100: color-mix(in lab, var(--white) 80%, oklch(69% 0.22 220deg));\n --cyan-200: color-mix(in lab, var(--white) 60%, oklch(69% 0.22 220deg));\n --cyan-300: color-mix(in lab, var(--white) 40%, oklch(69% 0.22 220deg));\n --cyan-400: color-mix(in lab, var(--white) 20%, oklch(69% 0.22 220deg));\n --cyan-500: oklch(69% 0.22 220deg);\n --cyan-600: color-mix(in lab, var(--black) 16%, oklch(69% 0.22 220deg));\n --cyan-700: color-mix(in lab, var(--black) 32%, oklch(69% 0.22 220deg));\n --cyan-800: color-mix(in lab, var(--black) 48%, oklch(69% 0.22 220deg));\n --cyan-900: color-mix(in lab, var(--black) 64%, oklch(69% 0.22 220deg));\n --cyan-950: color-mix(in lab, var(--black) 76%, oklch(69% 0.22 220deg));\n --cyan-975: color-mix(in lab, var(--black) 88%, oklch(69% 0.22 220deg));\n --brown-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.12 54deg));\n --brown-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.12 54deg));\n --brown-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.12 54deg));\n --brown-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.12 54deg));\n --brown-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.12 54deg));\n --brown-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.12 54deg));\n --brown-500: oklch(60% 0.12 54deg);\n --brown-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.12 54deg));\n --brown-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.12 54deg));\n --brown-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.12 54deg));\n --brown-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.12 54deg));\n --brown-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.12 54deg));\n --brown-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.12 54deg));\n --gray-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.02 245deg));\n --gray-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.02 245deg));\n --gray-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.02 245deg));\n --gray-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.02 245deg));\n --gray-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.02 245deg));\n --gray-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.02 245deg));\n --gray-500: oklch(60% 0.02 245deg);\n --gray-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.02 245deg));\n --gray-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.02 245deg));\n --gray-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.02 245deg));\n --gray-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.02 245deg));\n --gray-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.02 245deg));\n --gray-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.02 245deg));\n --pewter-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.01 290deg));\n --pewter-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.01 290deg));\n --pewter-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.01 290deg));\n --pewter-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.01 290deg));\n --pewter-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.01 290deg));\n --pewter-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.01 290deg));\n --pewter-500: oklch(65% 0.01 290deg);\n --pewter-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.01 290deg));\n --pewter-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.01 290deg));\n --pewter-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.01 290deg));\n --pewter-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.01 290deg));\n --pewter-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.01 290deg));\n --pewter-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.01 290deg));\n}\n\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n:root {\n --black: #000;\n --white: #fff;\n --gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent));\n --font-weight-lighter: lighter;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-bolder: bolder;\n --body-font-family: system-ui;\n --body-font-size: var(--font-size-base);\n --body-font-weight: 400;\n --body-line-height: 1.5;\n --heading-color: inherit;\n --hr-border-color: var(--border-color);\n --link-color: light-dark(var(--primary-base), var(--primary-fg));\n --link-decoration: underline;\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000);\n --font-mono: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;\n --code-font-size: 95%;\n --code-color: var(--fg-2);\n --border-width: 1px;\n --border-style: solid;\n --border-color: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-700));\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent);\n --box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n --box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n --box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);\n --box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n --spacer: 1rem;\n --focus-ring-width: 3px;\n --focus-ring-offset: 1px;\n --focus-ring-color: var(--primary-focus-ring);\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color);\n --control-checked-bg: var(--primary-base);\n --control-checked-border-color: var(--control-checked-bg);\n --control-active-bg: var(--primary-base);\n --control-active-border-color: var(--control-active-bg);\n --control-disabled-bg: var(--bg-3);\n --control-disabled-opacity: 0.65;\n --btn-input-fg: var(--fg-body);\n --btn-input-bg: var(--bg-body);\n --btn-input-min-height: 2.375rem;\n --btn-input-padding-y: 0.375rem;\n --btn-input-padding-x: 0.75rem;\n --btn-input-font-size: var(--font-size-base);\n --btn-input-line-height: var(--line-height-base);\n --btn-input-border-radius: var(--radius-5);\n --btn-input-xs-min-height: 1.5rem;\n --btn-input-xs-padding-y: 0.125rem;\n --btn-input-xs-padding-x: 0.5rem;\n --btn-input-xs-font-size: var(--font-size-xs);\n --btn-input-xs-line-height: 1.125;\n --btn-input-xs-border-radius: var(--radius-5);\n --btn-input-sm-min-height: 2rem;\n --btn-input-sm-padding-y: 0.25rem;\n --btn-input-sm-padding-x: 0.625rem;\n --btn-input-sm-font-size: var(--font-size-sm);\n --btn-input-sm-line-height: var(--line-height-sm);\n --btn-input-sm-border-radius: var(--radius-5);\n --btn-input-lg-min-height: 2.75rem;\n --btn-input-lg-padding-y: 0.5rem;\n --btn-input-lg-padding-x: 1rem;\n --btn-input-lg-font-size: var(--font-size-md);\n --btn-input-lg-line-height: var(--line-height-md);\n --btn-input-lg-border-radius: var(--radius-7);\n --font-size-xs: 0.75rem;\n --line-height-xs: 1.25;\n --font-size-sm: 0.875rem;\n --line-height-sm: 1.5;\n --font-size-md: 1rem;\n --line-height-md: 1.5;\n --font-size-lg: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n --line-height-lg: 1.5;\n --font-size-xl: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n --line-height-xl: 1.4285714286;\n --font-size-2xl: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n --line-height-2xl: 1.3333333333;\n --font-size-3xl: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n --line-height-3xl: 1.2;\n --font-size-4xl: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n --line-height-4xl: 1.1;\n --font-size-5xl: clamp(3rem, 2rem + 5vw, 4rem);\n --line-height-5xl: 1.1;\n --font-size-6xl: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n --line-height-6xl: 1;\n --primary-base: var(--blue-500);\n --primary-fg: light-dark(var(--blue-600), var(--blue-400));\n --primary-fg-emphasis: light-dark(var(--blue-800), var(--blue-200));\n --primary-bg: var(--blue-500);\n --primary-bg-subtle: light-dark(var(--blue-100), var(--blue-900));\n --primary-bg-muted: light-dark(var(--blue-200), var(--blue-800));\n --primary-border: light-dark(var(--blue-300), var(--blue-600));\n --primary-focus-ring: light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body)));\n --primary-contrast: var(--white);\n --accent-base: var(--indigo-500);\n --accent-fg: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n --accent-fg-emphasis: light-dark(var(--indigo-800), var(--indigo-300));\n --accent-bg: var(--indigo-500);\n --accent-bg-subtle: light-dark(var(--indigo-100), var(--indigo-900));\n --accent-bg-muted: light-dark(var(--indigo-200), var(--indigo-800));\n --accent-border: light-dark(var(--indigo-300), var(--indigo-600));\n --accent-focus-ring: light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body)));\n --accent-contrast: var(--white);\n --success-base: var(--green-500);\n --success-fg: light-dark(var(--green-600), var(--green-400));\n --success-fg-emphasis: light-dark(var(--green-800), var(--green-300));\n --success-bg: var(--green-500);\n --success-bg-subtle: light-dark(var(--green-100), var(--green-900));\n --success-bg-muted: light-dark(var(--green-200), var(--green-800));\n --success-border: light-dark(var(--green-300), var(--green-600));\n --success-focus-ring: light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body)));\n --success-contrast: var(--white);\n --danger-base: var(--red-500);\n --danger-fg: light-dark(var(--red-600), var(--red-400));\n --danger-fg-emphasis: light-dark(var(--red-800), var(--red-300));\n --danger-bg: var(--red-500);\n --danger-bg-subtle: light-dark(var(--red-100), var(--red-900));\n --danger-bg-muted: light-dark(var(--red-200), var(--red-800));\n --danger-border: light-dark(var(--red-300), var(--red-600));\n --danger-focus-ring: light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body)));\n --danger-contrast: var(--white);\n --warning-base: var(--yellow-500);\n --warning-fg: light-dark(var(--yellow-700), var(--yellow-400));\n --warning-fg-emphasis: light-dark(var(--yellow-800), var(--yellow-300));\n --warning-bg: var(--yellow-500);\n --warning-bg-subtle: light-dark(var(--yellow-100), var(--yellow-900));\n --warning-bg-muted: light-dark(var(--yellow-200), var(--yellow-800));\n --warning-border: light-dark(var(--yellow-300), var(--yellow-600));\n --warning-focus-ring: light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body)));\n --warning-contrast: var(--gray-900);\n --info-base: var(--cyan-500);\n --info-fg: light-dark(var(--cyan-600), var(--cyan-400));\n --info-fg-emphasis: light-dark(var(--cyan-800), var(--cyan-300));\n --info-bg: var(--cyan-500);\n --info-bg-subtle: light-dark(var(--cyan-100), var(--cyan-900));\n --info-bg-muted: light-dark(var(--cyan-200), var(--cyan-800));\n --info-border: light-dark(var(--cyan-300), var(--cyan-600));\n --info-focus-ring: light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body)));\n --info-contrast: var(--gray-900);\n --inverse-base: var(--gray-900);\n --inverse-fg: light-dark(var(--gray-900), var(--gray-200));\n --inverse-fg-emphasis: light-dark(var(--gray-975), var(--white));\n --inverse-bg: light-dark(var(--gray-900), var(--gray-025));\n --inverse-bg-subtle: light-dark(var(--gray-100), var(--gray-900));\n --inverse-bg-muted: light-dark(var(--gray-200), var(--gray-300));\n --inverse-border: light-dark(var(--gray-400), var(--gray-100));\n --inverse-focus-ring: color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body));\n --inverse-contrast: light-dark(var(--white), var(--gray-900));\n --secondary-base: var(--gray-200);\n --secondary-fg: light-dark(var(--gray-600), var(--gray-400));\n --secondary-fg-emphasis: light-dark(var(--gray-800), var(--gray-200));\n --secondary-bg: light-dark(var(--gray-100), var(--gray-600));\n --secondary-bg-subtle: light-dark(var(--gray-050), var(--gray-800));\n --secondary-bg-muted: light-dark(var(--gray-100), var(--gray-700));\n --secondary-border: light-dark(var(--gray-300), var(--gray-600));\n --secondary-focus-ring: color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body));\n --secondary-contrast: light-dark(var(--gray-900), var(--white));\n --bg-body: light-dark(var(--white), var(--gray-975));\n --bg-1: light-dark(var(--gray-025), var(--gray-950));\n --bg-2: light-dark(var(--gray-050), var(--gray-900));\n --bg-3: light-dark(var(--gray-100), var(--gray-800));\n --bg-4: light-dark(var(--gray-200), var(--gray-700));\n --bg-fg: var(--fg-body);\n --bg-white: var(--white);\n --bg-black: var(--black);\n --bg-transparent: transparent;\n --bg-inherit: inherit;\n --fg-body: light-dark(var(--gray-900), var(--gray-050));\n --fg-1: light-dark(var(--gray-800), var(--gray-200));\n --fg-2: light-dark(var(--gray-700), var(--gray-300));\n --fg-3: light-dark(var(--gray-600), var(--gray-500));\n --fg-4: light-dark(var(--gray-500), var(--gray-600));\n --fg-bg: var(--bg-body);\n --fg-white: var(--white);\n --fg-black: var(--black);\n --fg-inherit: inherit;\n --border-bg: var(--bg-body);\n --border-body: light-dark(var(--gray-300), var(--gray-800));\n --border-muted: light-dark(var(--gray-200), var(--gray-800));\n --border-subtle: light-dark(var(--gray-100), var(--gray-900));\n --border-emphasized: light-dark(var(--gray-400), var(--gray-600));\n --border-white: var(--white);\n --border-black: var(--black);\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 1024px;\n --breakpoint-xl: 1280px;\n --breakpoint-2xl: 1536px;\n --spacer-0: 0;\n --spacer-1: 0.25rem;\n --spacer-2: 0.5rem;\n --spacer-3: 0.75rem;\n --spacer-4: 1rem;\n --spacer-5: 1.25rem;\n --spacer-6: 1.5rem;\n --spacer-7: 2rem;\n --spacer-8: 2.5rem;\n --spacer-9: 3rem;\n --radius-0: 0;\n --radius-1: 0.125rem;\n --radius-2: 0.1875rem;\n --radius-3: 0.25rem;\n --radius-4: 0.375rem;\n --radius-5: 0.5rem;\n --radius-6: 0.625rem;\n --radius-7: 0.75rem;\n --radius-8: 1rem;\n --radius-9: 1.5rem;\n --radius-pill: 50rem;\n color-scheme: light dark;\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=dark] {\n color-scheme: dark;\n}\n\n[data-bs-theme=light] {\n color-scheme: light;\n}\n\n@layer reboot {\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n :root {\n accent-color: var(--primary-base);\n }\n body {\n margin: 0;\n font-family: var(--body-font-family);\n font-size: var(--body-font-size);\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n color: var(--fg-body);\n text-align: var(--body-text-align);\n background-color: var(--bg-body);\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n margin: var(--hr-margin-y, var(--spacer)) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n h6,\n .h6, h5,\n .h5, h4,\n .h4, h3,\n .h3, h2,\n .h2, h1,\n .h1 {\n margin-top: 0;\n margin-bottom: var(--spacer-2);\n font-weight: 500;\n line-height: 1.2;\n color: var(--heading-color);\n }\n h1,\n .h1 {\n font-size: var(--font-size-3xl);\n }\n h2,\n .h2 {\n font-size: var(--font-size-2xl);\n }\n h3,\n .h3 {\n font-size: var(--font-size-xl);\n }\n h4,\n .h4 {\n font-size: var(--font-size-lg);\n }\n h5,\n .h5 {\n font-size: var(--font-size-md);\n }\n h6,\n .h6 {\n font-size: var(--font-size-sm);\n }\n p {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n abbr[title] {\n text-decoration: underline dotted;\n cursor: help;\n text-decoration-skip-ink: none;\n }\n address {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n }\n ol,\n ul {\n padding-inline-start: 2rem;\n }\n ol,\n ul,\n dl {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n ol ol,\n ul ul,\n ol ul,\n ul ol {\n margin-bottom: 0;\n }\n dt {\n font-weight: 700;\n }\n dd {\n margin-inline-start: 0;\n margin-bottom: 0.5rem;\n }\n blockquote {\n margin: 0 0 1rem;\n }\n blockquote > * {\n margin-block: 0;\n }\n b,\n strong {\n font-weight: bolder;\n }\n small,\n .small {\n font-size: var(--small-font-size, 87.5%);\n }\n mark,\n .mark {\n --mark-padding: 0.1875em;\n --mark-color: var(--fg-body);\n --mark-bg: light-dark(var(--yellow-100), var(--yellow-900));\n padding: var(--mark-padding);\n color: var(--mark-color);\n background-color: var(--mark-bg);\n }\n sub,\n sup {\n position: relative;\n font-size: var(--sub-sup-font-size, 0.75em);\n line-height: 0;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n a {\n color: var(--theme-fg, var(--link-color));\n text-decoration: var(--link-decoration);\n text-underline-offset: 0.2em;\n }\n a:hover {\n color: var(--theme-fg-emphasis, var(--link-hover-color));\n text-decoration: var(--link-hover-decoration, var(--link-decoration));\n }\n a:not([href], [class]), a:not([href], [class]):hover {\n color: inherit;\n text-decoration: none;\n }\n pre,\n code,\n kbd,\n samp {\n font-family: var(--font-mono);\n font-size: 1em;\n }\n pre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: var(--code-font-size);\n color: var(--code-color, inherit);\n }\n pre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n code {\n font-size: var(--code-font-size);\n color: var(--code-color);\n word-wrap: break-word;\n }\n a > code {\n color: inherit;\n }\n kbd {\n --kbd-padding-y: 0.125rem;\n --kbd-padding-x: 0.25rem;\n --kbd-font-size: var(--font-size-xs);\n --kbd-color: var(--bg-body);\n --kbd-bg: var(--fg-2);\n --kbd-border-radius: var(--radius-5);\n padding: var(--kbd-padding-y) var(--kbd-padding-x);\n font-size: var(--kbd-font-size);\n color: var(--kbd-color);\n background-color: var(--kbd-bg);\n border-radius: var(--kbd-border-radius);\n }\n kbd kbd {\n padding: 0;\n font-size: 1em;\n font-weight: inherit;\n }\n figure {\n margin: 0 0 1rem;\n }\n img,\n svg {\n vertical-align: middle;\n }\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n caption {\n padding-block: 0.5rem;\n color: var(--fg-3);\n text-align: start;\n }\n th {\n text-align: inherit;\n text-align: -webkit-match-parent;\n }\n thead,\n tbody,\n tfoot,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n label {\n display: inline-block;\n }\n button {\n border-radius: 0;\n }\n button:focus:not(:focus-visible) {\n outline: 0;\n }\n input,\n button,\n select,\n optgroup,\n textarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n [role=button] {\n cursor: pointer;\n }\n select {\n word-wrap: normal;\n }\n select:disabled {\n opacity: 1;\n }\n [list]:not([type=date], [type=datetime-local], [type=month], [type=week], [type=time])::-webkit-calendar-picker-indicator {\n display: none !important;\n }\n button,\n [type=button],\n [type=reset],\n [type=submit] {\n -webkit-appearance: button;\n }\n button:not(:disabled),\n [type=button]:not(:disabled),\n [type=reset]:not(:disabled),\n [type=submit]:not(:disabled) {\n cursor: pointer;\n }\n textarea {\n resize: vertical;\n }\n fieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n }\n legend {\n float: inline-start;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: 1.5rem;\n line-height: inherit;\n }\n legend + * {\n clear: inline-start;\n }\n ::-webkit-datetime-edit-fields-wrapper,\n ::-webkit-datetime-edit-text,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-ampm-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-week-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-year-field {\n padding: 0;\n }\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n [type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n }\n [type=search]::-webkit-search-cancel-button {\n cursor: pointer;\n filter: grayscale(1);\n }\n [type=tel],\n [type=url],\n [type=email],\n [type=number] {\n direction: ltr;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n ::file-selector-button {\n font: inherit;\n -webkit-appearance: button;\n }\n output {\n display: inline-block;\n }\n iframe {\n border: 0;\n }\n summary {\n display: list-item;\n cursor: pointer;\n }\n progress {\n vertical-align: baseline;\n }\n [hidden] {\n display: none !important;\n }\n}\n@layer content {\n .list-unstyled {\n padding-inline-start: 0;\n list-style: none;\n }\n .list-inline {\n padding-inline-start: 0;\n list-style: none;\n }\n .list-inline-item {\n display: inline-block;\n }\n .list-inline-item:not(:last-child) {\n margin-inline-end: var(--list-inline-padding, var(--spacer)/2);\n }\n .initialism {\n font-size: var(--initialism-font-size, var(--font-size-xs));\n text-transform: uppercase;\n }\n .blockquote {\n --blockquote-gap: calc(var(--spacer) / 2);\n --blockquote-padding-x: var(--spacer);\n --blockquote-margin-y: 1rem;\n --blockquote-font-size: var(--font-size-md);\n --blockquote-border-width: 0.25rem;\n --blockquote-border-color: var(--border-color);\n --blockquote-footer-font-size: var(--font-size-sm);\n --blockquote-footer-color: var(--fg-3);\n display: flex;\n flex-direction: column;\n gap: var(--blockquote-gap);\n padding-inline-start: var(--blockquote-padding-x);\n margin-bottom: var(--blockquote-margin-y);\n font-size: var(--blockquote-font-size);\n border-inline-start: var(--blockquote-border-width) solid var(--blockquote-border-color);\n }\n .blockquote > * {\n margin-bottom: 0;\n }\n figure.blockquote blockquote {\n margin-bottom: 0;\n }\n .blockquote-footer {\n font-size: var(--blockquote-footer-font-size);\n color: var(--blockquote-footer-color);\n }\n .blockquote-footer::before {\n content: \"— \";\n }\n}\n@layer content {\n .table {\n --table-cell-padding-y: 0.5rem;\n --table-cell-padding-x: 0.5rem;\n --table-cell-vertical-align: top;\n --table-color: var(--fg-body);\n --table-bg: var(--bg-body);\n --table-accent-bg: transparent;\n --table-border-width: var(--border-width);\n --table-border-color: var(--border-color);\n --table-group-separator-color: currentcolor;\n --table-striped-color: var(--table-color);\n --table-striped-bg-factor: 5%;\n --table-striped-bg: color-mix(in srgb, var(--table-color) var(--table-striped-bg-factor), transparent);\n --table-active-color: var(--table-color);\n --table-active-bg-factor: 10%;\n --table-active-bg: color-mix(in srgb, var(--table-color) var(--table-active-bg-factor), transparent);\n --table-hover-color: var(--table-color);\n --table-hover-bg-factor: 7.5%;\n --table-hover-bg: color-mix(in srgb, var(--table-color) var(--table-hover-bg-factor), transparent);\n --table-color-type: initial;\n --table-bg-type: initial;\n --table-color-state: initial;\n --table-bg-state: initial;\n width: 100%;\n margin-bottom: var(--spacer);\n vertical-align: var(--table-cell-vertical-align);\n border-color: var(--theme-border, var(--table-border-color));\n }\n .table > :not(caption) > * > * {\n padding: var(--table-cell-padding-y) var(--table-cell-padding-x);\n color: var(--table-color-state, var(--table-color-type, var(--theme-fg, var(--table-color))));\n background-color: var(--theme-bg-subtle, var(--table-bg));\n border-block-end-width: var(--table-border-width);\n box-shadow: inset 0 0 0 9999px var(--table-bg-state, var(--table-bg-type, var(--theme-bg-subtle, var(--table-accent-bg))));\n }\n .table > tbody {\n vertical-align: inherit;\n }\n .table > thead {\n vertical-align: bottom;\n }\n .table-group-divider {\n border-block-start: calc(var(--table-border-width) * 2) solid var(--table-group-separator-color);\n }\n .caption-top {\n caption-side: top;\n }\n .table-sm > :not(caption) > * > * {\n --table-cell-padding-y: .25rem;\n --table-cell-padding-x: .25rem;\n }\n .table-bordered > :not(caption) > * {\n border-width: var(--table-border-width) 0;\n }\n .table-bordered > :not(caption) > * > * {\n border-width: 0 var(--table-border-width);\n }\n .table-borderless > :not(caption) > * > * {\n border-block-end-width: 0;\n }\n .table-borderless > :not(:first-child) {\n border-block-start-width: 0;\n }\n .table-striped > tbody > tr:nth-of-type(odd) > * {\n --table-color-type: var(--theme-fg, var(--table-striped-color));\n --table-bg-type: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-striped-bg-factor), transparent);\n }\n .table-striped-columns > :not(caption) > tr > :nth-child(even) {\n --table-color-type: var(--theme-fg, var(--table-striped-color));\n --table-bg-type: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-striped-bg-factor), transparent);\n }\n .table-active {\n --table-color-state: var(--theme-fg, var(--table-active-color));\n --table-bg-state: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-active-bg-factor), transparent);\n }\n .table-hover > tbody > tr:hover > * {\n --table-color-state: var(--theme-fg, var(--table-hover-color));\n --table-bg-state: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-hover-bg-factor), transparent);\n }\n .table-responsive {\n container-type: inline-size;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .sm\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 576px) {\n .sm\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .md\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 768px) {\n .md\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .lg\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 1024px) {\n .lg\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .xl\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 1280px) {\n .xl\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .\\32 xl\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 1536px) {\n .\\32 xl\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n @container (width < 576px) {\n .sm\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .sm\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .sm\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .sm\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .sm\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .sm\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .sm\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n @container (width < 768px) {\n .md\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .md\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .md\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .md\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .md\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .md\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .md\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n @container (width < 1024px) {\n .lg\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .lg\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .lg\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .lg\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .lg\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .lg\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .lg\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n @container (width < 1280px) {\n .xl\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .xl\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .xl\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .xl\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .xl\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .xl\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .xl\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n @container (width < 1536px) {\n .\\32 xl\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .\\32 xl\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .\\32 xl\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .\\32 xl\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .\\32 xl\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .\\32 xl\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .\\32 xl\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n}\n@layer content {\n .img-fluid {\n max-width: 100%;\n height: auto;\n }\n .img-thumbnail {\n --thumbnail-padding: 0.25rem;\n --thumbnail-bg: var(--bg-body);\n --thumbnail-border-width: var(--border-width);\n --thumbnail-border-color: var(--border-color);\n --thumbnail-border-radius: var(--radius-5);\n --thumbnail-box-shadow: var(--box-shadow-sm);\n padding: var(--thumbnail-padding);\n background-color: var(--thumbnail-bg);\n border: var(--thumbnail-border-width) solid var(--thumbnail-border-color);\n border-radius: var(--thumbnail-border-radius);\n box-shadow: var(--thumbnail-box-shadow);\n max-width: 100%;\n height: auto;\n }\n .figure {\n --figure-gap: calc(var(--spacer) * 0.5);\n --figure-caption-font-size: var(--font-size-sm);\n --figure-caption-color: var(--fg-3);\n display: flex;\n flex-direction: column;\n gap: var(--figure-gap);\n }\n .figure-caption {\n font-size: var(--figure-caption-font-size);\n color: var(--figure-caption-color);\n }\n}\n@layer content {\n .prose {\n --content-font-size: 1rem;\n --content-line-height: 1.5;\n --content-gap: calc(var(--content-font-size) * var(--content-line-height));\n --heading-color: light-dark(var(--gray-900), var(--white));\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--content-gap);\n max-width: 1000px;\n margin-inline: auto;\n font-size: var(--content-font-size);\n line-height: var(--content-line-height);\n }\n @media (width >= 1024px) {\n .prose {\n --content-font-size: var(--font-size-md);\n --content-line-height: 1.625;\n }\n }\n .prose :where(p, ul, ol, dl, pre, table, blockquote):not(:where(.not-prose, .not-prose *)) {\n margin-block: 0;\n }\n .prose :where(ul, ol):not([class], :where(.not-prose, .not-prose *)) li:not(:last-child) {\n margin-bottom: calc(var(--content-gap) / 4);\n }\n .prose :where(li ul, li ol):not(:where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) / 4);\n }\n .prose :where(hr):not(:where(.not-prose, .not-prose *)) {\n margin: calc(var(--content-gap) * 1.5) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n .prose :where(h1, h2, h3, h4, h5, h6):not([class], :where(.not-prose, .not-prose *)) {\n margin-top: 0;\n margin-bottom: calc(var(--content-gap) / -2);\n font-weight: 500;\n line-height: 1.25;\n }\n .prose :where(h1, h2, h3, h4, h5, h6):not([class], :where(.not-prose, .not-prose *)) code {\n font-weight: 600;\n color: inherit;\n }\n .prose :where(h1, h2):not(:first-child, :where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) * 0.75);\n }\n .prose :where(h3, h4, h5, h6):not(:first-child, :where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) * 0.5);\n }\n .prose :where(h1):not(:where(.not-prose, .not-prose *)) {\n font-size: 2.25em;\n line-height: 1.1;\n }\n .prose :where(h2):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.75em;\n }\n .prose :where(h3):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.5em;\n }\n .prose :where(h4):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.25em;\n }\n .prose :where(h5):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.125em;\n }\n .prose :where(h6):not(:where(.not-prose, .not-prose *)) {\n font-size: 1em;\n }\n .prose :where(a:not([class])):not(:where(.not-prose, .not-prose *)) {\n color: var(--link-color);\n text-decoration: underline;\n text-decoration-color: color-mix(in srgb, var(--link-color) 25%, transparent);\n text-underline-offset: 4px;\n transition: 0.1s text-decoration-color ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .prose :where(a:not([class])):not(:where(.not-prose, .not-prose *)) {\n transition: none;\n }\n }\n .prose :where(a:not([class])):not(:where(.not-prose, .not-prose *)):hover {\n text-decoration-color: var(--link-hover-color);\n }\n .prose :where(img):not(:where(.not-prose, .not-prose *)) {\n max-width: 100%;\n }\n .prose :where(blockquote):not(:where(.not-prose, .not-prose *)) {\n padding-inline-start: calc(var(--content-gap) / 2);\n margin: 0;\n border-inline-start: 4px solid var(--border-color);\n }\n .prose :where(table):not(:where(.not-prose, .not-prose *)) {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n }\n .prose :where(table:not([class])):not(:where(.not-prose, .not-prose *)) td,\n .prose :where(table:not([class])):not(:where(.not-prose, .not-prose *)) th {\n padding: 6px 12px;\n text-align: inherit;\n border: 1px solid var(--border-color);\n }\n .prose :where(dt):not(:where(.not-prose, .not-prose *)) {\n font-weight: 500;\n }\n .prose :where(video, img):not(:where(.not-prose, .not-prose *)) {\n max-width: 100%;\n }\n}\n@layer layout {\n .container,\n .container-fluid,\n .\\32 xl\\:container,\n .xl\\:container,\n .lg\\:container,\n .md\\:container,\n .sm\\:container {\n --gutter-x: 1.5rem;\n --gutter-y: 0;\n width: 100%;\n padding-inline: calc(var(--gutter-x) * 0.5);\n margin-inline: auto;\n }\n @media (width >= 576px) {\n .sm\\:container, .container {\n max-width: 540px;\n }\n }\n @media (width >= 768px) {\n .md\\:container, .sm\\:container, .container {\n max-width: 720px;\n }\n }\n @media (width >= 1024px) {\n .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 960px;\n }\n }\n @media (width >= 1280px) {\n .xl\\:container, .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 1200px;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:container, .xl\\:container, .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 1440px;\n }\n }\n}\n@layer layout {\n .row {\n --gutter-x: 1.5rem;\n --gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-inline: calc(-0.5 * var(--gutter-x));\n margin-top: calc(-1 * var(--gutter-y));\n }\n .row > * {\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-inline: calc(var(--gutter-x) * 0.5);\n margin-top: var(--gutter-y);\n }\n .col {\n flex: 1 0 0;\n }\n .row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .offset-3 {\n margin-inline-start: 25%;\n }\n .offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .offset-6 {\n margin-inline-start: 50%;\n }\n .offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .offset-9 {\n margin-inline-start: 75%;\n }\n .offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .g-0,\n .gx-0 {\n --gutter-x: 0;\n }\n .g-0,\n .gy-0 {\n --gutter-y: 0;\n }\n .g-1,\n .gx-1 {\n --gutter-x: 0.25rem;\n }\n .g-1,\n .gy-1 {\n --gutter-y: 0.25rem;\n }\n .g-2,\n .gx-2 {\n --gutter-x: 0.5rem;\n }\n .g-2,\n .gy-2 {\n --gutter-y: 0.5rem;\n }\n .g-3,\n .gx-3 {\n --gutter-x: 0.75rem;\n }\n .g-3,\n .gy-3 {\n --gutter-y: 0.75rem;\n }\n .g-4,\n .gx-4 {\n --gutter-x: 1rem;\n }\n .g-4,\n .gy-4 {\n --gutter-y: 1rem;\n }\n .g-5,\n .gx-5 {\n --gutter-x: 1.25rem;\n }\n .g-5,\n .gy-5 {\n --gutter-y: 1.25rem;\n }\n .g-6,\n .gx-6 {\n --gutter-x: 1.5rem;\n }\n .g-6,\n .gy-6 {\n --gutter-y: 1.5rem;\n }\n .g-7,\n .gx-7 {\n --gutter-x: 2rem;\n }\n .g-7,\n .gy-7 {\n --gutter-y: 2rem;\n }\n .g-8,\n .gx-8 {\n --gutter-x: 2.5rem;\n }\n .g-8,\n .gy-8 {\n --gutter-y: 2.5rem;\n }\n .g-9,\n .gx-9 {\n --gutter-x: 3rem;\n }\n .g-9,\n .gy-9 {\n --gutter-y: 3rem;\n }\n @media (width >= 576px) {\n .sm\\:col {\n flex: 1 0 0;\n }\n .sm\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .sm\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .sm\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .sm\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .sm\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .sm\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .sm\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .sm\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .sm\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .sm\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .sm\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .sm\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .sm\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .sm\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .sm\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .sm\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .sm\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .sm\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .sm\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .sm\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .sm\\:offset-0 {\n margin-inline-start: 0;\n }\n .sm\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .sm\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .sm\\:offset-3 {\n margin-inline-start: 25%;\n }\n .sm\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .sm\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .sm\\:offset-6 {\n margin-inline-start: 50%;\n }\n .sm\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .sm\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .sm\\:offset-9 {\n margin-inline-start: 75%;\n }\n .sm\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .sm\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .sm\\:g-0,\n .sm\\:gx-0 {\n --gutter-x: 0;\n }\n .sm\\:g-0,\n .sm\\:gy-0 {\n --gutter-y: 0;\n }\n .sm\\:g-1,\n .sm\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .sm\\:g-1,\n .sm\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .sm\\:g-2,\n .sm\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .sm\\:g-2,\n .sm\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .sm\\:g-3,\n .sm\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .sm\\:g-3,\n .sm\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .sm\\:g-4,\n .sm\\:gx-4 {\n --gutter-x: 1rem;\n }\n .sm\\:g-4,\n .sm\\:gy-4 {\n --gutter-y: 1rem;\n }\n .sm\\:g-5,\n .sm\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .sm\\:g-5,\n .sm\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .sm\\:g-6,\n .sm\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .sm\\:g-6,\n .sm\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .sm\\:g-7,\n .sm\\:gx-7 {\n --gutter-x: 2rem;\n }\n .sm\\:g-7,\n .sm\\:gy-7 {\n --gutter-y: 2rem;\n }\n .sm\\:g-8,\n .sm\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .sm\\:g-8,\n .sm\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .sm\\:g-9,\n .sm\\:gx-9 {\n --gutter-x: 3rem;\n }\n .sm\\:g-9,\n .sm\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 768px) {\n .md\\:col {\n flex: 1 0 0;\n }\n .md\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .md\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .md\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .md\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .md\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .md\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .md\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .md\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .md\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .md\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .md\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .md\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .md\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .md\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .md\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .md\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .md\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .md\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .md\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .md\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .md\\:offset-0 {\n margin-inline-start: 0;\n }\n .md\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .md\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .md\\:offset-3 {\n margin-inline-start: 25%;\n }\n .md\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .md\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .md\\:offset-6 {\n margin-inline-start: 50%;\n }\n .md\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .md\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .md\\:offset-9 {\n margin-inline-start: 75%;\n }\n .md\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .md\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .md\\:g-0,\n .md\\:gx-0 {\n --gutter-x: 0;\n }\n .md\\:g-0,\n .md\\:gy-0 {\n --gutter-y: 0;\n }\n .md\\:g-1,\n .md\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .md\\:g-1,\n .md\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .md\\:g-2,\n .md\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .md\\:g-2,\n .md\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .md\\:g-3,\n .md\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .md\\:g-3,\n .md\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .md\\:g-4,\n .md\\:gx-4 {\n --gutter-x: 1rem;\n }\n .md\\:g-4,\n .md\\:gy-4 {\n --gutter-y: 1rem;\n }\n .md\\:g-5,\n .md\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .md\\:g-5,\n .md\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .md\\:g-6,\n .md\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .md\\:g-6,\n .md\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .md\\:g-7,\n .md\\:gx-7 {\n --gutter-x: 2rem;\n }\n .md\\:g-7,\n .md\\:gy-7 {\n --gutter-y: 2rem;\n }\n .md\\:g-8,\n .md\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .md\\:g-8,\n .md\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .md\\:g-9,\n .md\\:gx-9 {\n --gutter-x: 3rem;\n }\n .md\\:g-9,\n .md\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1024px) {\n .lg\\:col {\n flex: 1 0 0;\n }\n .lg\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .lg\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .lg\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .lg\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .lg\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .lg\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .lg\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .lg\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .lg\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .lg\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .lg\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .lg\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .lg\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .lg\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .lg\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .lg\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .lg\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .lg\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .lg\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .lg\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .lg\\:offset-0 {\n margin-inline-start: 0;\n }\n .lg\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .lg\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .lg\\:offset-3 {\n margin-inline-start: 25%;\n }\n .lg\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .lg\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .lg\\:offset-6 {\n margin-inline-start: 50%;\n }\n .lg\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .lg\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .lg\\:offset-9 {\n margin-inline-start: 75%;\n }\n .lg\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .lg\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .lg\\:g-0,\n .lg\\:gx-0 {\n --gutter-x: 0;\n }\n .lg\\:g-0,\n .lg\\:gy-0 {\n --gutter-y: 0;\n }\n .lg\\:g-1,\n .lg\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .lg\\:g-1,\n .lg\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .lg\\:g-2,\n .lg\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .lg\\:g-2,\n .lg\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .lg\\:g-3,\n .lg\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .lg\\:g-3,\n .lg\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .lg\\:g-4,\n .lg\\:gx-4 {\n --gutter-x: 1rem;\n }\n .lg\\:g-4,\n .lg\\:gy-4 {\n --gutter-y: 1rem;\n }\n .lg\\:g-5,\n .lg\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .lg\\:g-5,\n .lg\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .lg\\:g-6,\n .lg\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .lg\\:g-6,\n .lg\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .lg\\:g-7,\n .lg\\:gx-7 {\n --gutter-x: 2rem;\n }\n .lg\\:g-7,\n .lg\\:gy-7 {\n --gutter-y: 2rem;\n }\n .lg\\:g-8,\n .lg\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .lg\\:g-8,\n .lg\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .lg\\:g-9,\n .lg\\:gx-9 {\n --gutter-x: 3rem;\n }\n .lg\\:g-9,\n .lg\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1280px) {\n .xl\\:col {\n flex: 1 0 0;\n }\n .xl\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .xl\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .xl\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .xl\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .xl\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .xl\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .xl\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .xl\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .xl\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .xl\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .xl\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .xl\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .xl\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .xl\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .xl\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .xl\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .xl\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .xl\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .xl\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .xl\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .xl\\:offset-0 {\n margin-inline-start: 0;\n }\n .xl\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .xl\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .xl\\:offset-3 {\n margin-inline-start: 25%;\n }\n .xl\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .xl\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .xl\\:offset-6 {\n margin-inline-start: 50%;\n }\n .xl\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .xl\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .xl\\:offset-9 {\n margin-inline-start: 75%;\n }\n .xl\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .xl\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .xl\\:g-0,\n .xl\\:gx-0 {\n --gutter-x: 0;\n }\n .xl\\:g-0,\n .xl\\:gy-0 {\n --gutter-y: 0;\n }\n .xl\\:g-1,\n .xl\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .xl\\:g-1,\n .xl\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .xl\\:g-2,\n .xl\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .xl\\:g-2,\n .xl\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .xl\\:g-3,\n .xl\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .xl\\:g-3,\n .xl\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .xl\\:g-4,\n .xl\\:gx-4 {\n --gutter-x: 1rem;\n }\n .xl\\:g-4,\n .xl\\:gy-4 {\n --gutter-y: 1rem;\n }\n .xl\\:g-5,\n .xl\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .xl\\:g-5,\n .xl\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .xl\\:g-6,\n .xl\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .xl\\:g-6,\n .xl\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .xl\\:g-7,\n .xl\\:gx-7 {\n --gutter-x: 2rem;\n }\n .xl\\:g-7,\n .xl\\:gy-7 {\n --gutter-y: 2rem;\n }\n .xl\\:g-8,\n .xl\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .xl\\:g-8,\n .xl\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .xl\\:g-9,\n .xl\\:gx-9 {\n --gutter-x: 3rem;\n }\n .xl\\:g-9,\n .xl\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:col {\n flex: 1 0 0;\n }\n .\\32 xl\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .\\32 xl\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .\\32 xl\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .\\32 xl\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .\\32 xl\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .\\32 xl\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .\\32 xl\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .\\32 xl\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .\\32 xl\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .\\32 xl\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .\\32 xl\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .\\32 xl\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .\\32 xl\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .\\32 xl\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .\\32 xl\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .\\32 xl\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .\\32 xl\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .\\32 xl\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .\\32 xl\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .\\32 xl\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .\\32 xl\\:offset-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .\\32 xl\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .\\32 xl\\:offset-3 {\n margin-inline-start: 25%;\n }\n .\\32 xl\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .\\32 xl\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .\\32 xl\\:offset-6 {\n margin-inline-start: 50%;\n }\n .\\32 xl\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .\\32 xl\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .\\32 xl\\:offset-9 {\n margin-inline-start: 75%;\n }\n .\\32 xl\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .\\32 xl\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .\\32 xl\\:g-0,\n .\\32 xl\\:gx-0 {\n --gutter-x: 0;\n }\n .\\32 xl\\:g-0,\n .\\32 xl\\:gy-0 {\n --gutter-y: 0;\n }\n .\\32 xl\\:g-1,\n .\\32 xl\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .\\32 xl\\:g-1,\n .\\32 xl\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .\\32 xl\\:g-2,\n .\\32 xl\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .\\32 xl\\:g-2,\n .\\32 xl\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .\\32 xl\\:g-3,\n .\\32 xl\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .\\32 xl\\:g-3,\n .\\32 xl\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .\\32 xl\\:g-4,\n .\\32 xl\\:gx-4 {\n --gutter-x: 1rem;\n }\n .\\32 xl\\:g-4,\n .\\32 xl\\:gy-4 {\n --gutter-y: 1rem;\n }\n .\\32 xl\\:g-5,\n .\\32 xl\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .\\32 xl\\:g-5,\n .\\32 xl\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .\\32 xl\\:g-6,\n .\\32 xl\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .\\32 xl\\:g-6,\n .\\32 xl\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .\\32 xl\\:g-7,\n .\\32 xl\\:gx-7 {\n --gutter-x: 2rem;\n }\n .\\32 xl\\:g-7,\n .\\32 xl\\:gy-7 {\n --gutter-y: 2rem;\n }\n .\\32 xl\\:g-8,\n .\\32 xl\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .\\32 xl\\:g-8,\n .\\32 xl\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .\\32 xl\\:g-9,\n .\\32 xl\\:gx-9 {\n --gutter-x: 3rem;\n }\n .\\32 xl\\:g-9,\n .\\32 xl\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n .grid {\n --columns: 12;\n --rows: 1;\n --gap: 1.5rem;\n display: grid;\n grid-template-rows: repeat(var(--rows), 1fr);\n grid-template-columns: repeat(var(--columns), 1fr);\n gap: var(--gap);\n }\n .g-col-1 {\n grid-column: auto/span 1;\n }\n .g-col-2 {\n grid-column: auto/span 2;\n }\n .g-col-3 {\n grid-column: auto/span 3;\n }\n .g-col-4 {\n grid-column: auto/span 4;\n }\n .g-col-5 {\n grid-column: auto/span 5;\n }\n .g-col-6 {\n grid-column: auto/span 6;\n }\n .g-col-7 {\n grid-column: auto/span 7;\n }\n .g-col-8 {\n grid-column: auto/span 8;\n }\n .g-col-9 {\n grid-column: auto/span 9;\n }\n .g-col-10 {\n grid-column: auto/span 10;\n }\n .g-col-11 {\n grid-column: auto/span 11;\n }\n .g-col-12 {\n grid-column: auto/span 12;\n }\n .g-start-1 {\n grid-column-start: 1;\n }\n .g-start-2 {\n grid-column-start: 2;\n }\n .g-start-3 {\n grid-column-start: 3;\n }\n .g-start-4 {\n grid-column-start: 4;\n }\n .g-start-5 {\n grid-column-start: 5;\n }\n .g-start-6 {\n grid-column-start: 6;\n }\n .g-start-7 {\n grid-column-start: 7;\n }\n .g-start-8 {\n grid-column-start: 8;\n }\n .g-start-9 {\n grid-column-start: 9;\n }\n .g-start-10 {\n grid-column-start: 10;\n }\n .g-start-11 {\n grid-column-start: 11;\n }\n @media (width >= 576px) {\n .sm\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .sm\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .sm\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .sm\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .sm\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .sm\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .sm\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .sm\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .sm\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .sm\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .sm\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .sm\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .sm\\:g-start-1 {\n grid-column-start: 1;\n }\n .sm\\:g-start-2 {\n grid-column-start: 2;\n }\n .sm\\:g-start-3 {\n grid-column-start: 3;\n }\n .sm\\:g-start-4 {\n grid-column-start: 4;\n }\n .sm\\:g-start-5 {\n grid-column-start: 5;\n }\n .sm\\:g-start-6 {\n grid-column-start: 6;\n }\n .sm\\:g-start-7 {\n grid-column-start: 7;\n }\n .sm\\:g-start-8 {\n grid-column-start: 8;\n }\n .sm\\:g-start-9 {\n grid-column-start: 9;\n }\n .sm\\:g-start-10 {\n grid-column-start: 10;\n }\n .sm\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 768px) {\n .md\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .md\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .md\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .md\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .md\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .md\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .md\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .md\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .md\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .md\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .md\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .md\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .md\\:g-start-1 {\n grid-column-start: 1;\n }\n .md\\:g-start-2 {\n grid-column-start: 2;\n }\n .md\\:g-start-3 {\n grid-column-start: 3;\n }\n .md\\:g-start-4 {\n grid-column-start: 4;\n }\n .md\\:g-start-5 {\n grid-column-start: 5;\n }\n .md\\:g-start-6 {\n grid-column-start: 6;\n }\n .md\\:g-start-7 {\n grid-column-start: 7;\n }\n .md\\:g-start-8 {\n grid-column-start: 8;\n }\n .md\\:g-start-9 {\n grid-column-start: 9;\n }\n .md\\:g-start-10 {\n grid-column-start: 10;\n }\n .md\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1024px) {\n .lg\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .lg\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .lg\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .lg\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .lg\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .lg\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .lg\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .lg\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .lg\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .lg\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .lg\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .lg\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .lg\\:g-start-1 {\n grid-column-start: 1;\n }\n .lg\\:g-start-2 {\n grid-column-start: 2;\n }\n .lg\\:g-start-3 {\n grid-column-start: 3;\n }\n .lg\\:g-start-4 {\n grid-column-start: 4;\n }\n .lg\\:g-start-5 {\n grid-column-start: 5;\n }\n .lg\\:g-start-6 {\n grid-column-start: 6;\n }\n .lg\\:g-start-7 {\n grid-column-start: 7;\n }\n .lg\\:g-start-8 {\n grid-column-start: 8;\n }\n .lg\\:g-start-9 {\n grid-column-start: 9;\n }\n .lg\\:g-start-10 {\n grid-column-start: 10;\n }\n .lg\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1280px) {\n .xl\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .xl\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .xl\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .xl\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .xl\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .xl\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .xl\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .xl\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .xl\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .xl\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .xl\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .xl\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .xl\\:g-start-1 {\n grid-column-start: 1;\n }\n .xl\\:g-start-2 {\n grid-column-start: 2;\n }\n .xl\\:g-start-3 {\n grid-column-start: 3;\n }\n .xl\\:g-start-4 {\n grid-column-start: 4;\n }\n .xl\\:g-start-5 {\n grid-column-start: 5;\n }\n .xl\\:g-start-6 {\n grid-column-start: 6;\n }\n .xl\\:g-start-7 {\n grid-column-start: 7;\n }\n .xl\\:g-start-8 {\n grid-column-start: 8;\n }\n .xl\\:g-start-9 {\n grid-column-start: 9;\n }\n .xl\\:g-start-10 {\n grid-column-start: 10;\n }\n .xl\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .\\32 xl\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .\\32 xl\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .\\32 xl\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .\\32 xl\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .\\32 xl\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .\\32 xl\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .\\32 xl\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .\\32 xl\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .\\32 xl\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .\\32 xl\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .\\32 xl\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .\\32 xl\\:g-start-1 {\n grid-column-start: 1;\n }\n .\\32 xl\\:g-start-2 {\n grid-column-start: 2;\n }\n .\\32 xl\\:g-start-3 {\n grid-column-start: 3;\n }\n .\\32 xl\\:g-start-4 {\n grid-column-start: 4;\n }\n .\\32 xl\\:g-start-5 {\n grid-column-start: 5;\n }\n .\\32 xl\\:g-start-6 {\n grid-column-start: 6;\n }\n .\\32 xl\\:g-start-7 {\n grid-column-start: 7;\n }\n .\\32 xl\\:g-start-8 {\n grid-column-start: 8;\n }\n .\\32 xl\\:g-start-9 {\n grid-column-start: 9;\n }\n .\\32 xl\\:g-start-10 {\n grid-column-start: 10;\n }\n .\\32 xl\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n .grid-cols-subgrid {\n grid-template-columns: subgrid;\n }\n .grid-fill {\n --gap: 1.5rem;\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-auto-flow: row;\n gap: var(--gap);\n }\n}\n@layer forms {\n .form-label,\n .col-form-label {\n font-size: var(--label-font-size, inherit);\n font-style: var(--label-font-style, inherit);\n font-weight: var(--label-font-weight, 500);\n color: var(--label-color, var(--fg-body));\n }\n .form-label {\n margin-bottom: var(--label-margin-bottom, calc(var(--spacer) / 2));\n }\n .col-form-label {\n --label-padding-y: calc(var(--btn-input-padding-y) + var(--border-width));\n padding-block: var(--label-padding-y);\n margin-bottom: 0;\n }\n .col-form-label-lg {\n --label-padding-y: calc(var(--btn-input-lg-padding-y) + var(--border-width));\n font-size: var(--btn-input-lg-font-size);\n }\n .col-form-label-sm {\n --label-padding-y: calc(var(--btn-input-sm-padding-y) + var(--border-width));\n font-size: var(--btn-input-sm-font-size);\n }\n}\n@layer forms {\n .form-text {\n --form-text-margin-top: 0.25rem;\n --form-text-font-size: var(--font-size-sm);\n --form-text-color: var(--fg-2);\n font-size: var(--form-text-font-size);\n font-style: var(--form-text-font-style);\n font-weight: var(--form-text-font-weight);\n color: var(--form-text-color);\n }\n}\n@layer forms {\n .form-control {\n --control-min-height: var(--btn-input-min-height);\n --control-padding-y: var(--btn-input-padding-y);\n --control-padding-x: var(--btn-input-padding-x);\n --control-font-size: var(--btn-input-font-size);\n --control-line-height: var(--btn-input-line-height);\n --control-fg: var(--btn-input-fg);\n --control-bg: var(--btn-input-bg);\n --control-border-width: var(--border-width);\n --control-border-color: var(--border-color);\n --control-border-radius: var(--radius-5);\n --control-box-shadow: var(--box-shadow-inset);\n --control-action-bg: var(--bg-1);\n --control-action-hover-bg: var(--bg-2);\n --control-transition-property: border-color, box-shadow;\n --control-transition-timing: 0.15s ease-in-out;\n --control-transition: var(--control-transition-property) var(--control-transition-timing);\n --control-placeholder-color: var(--fg-3);\n --control-disabled-color: var(--control-fg);\n --control-disabled-bg: var(--bg-2);\n --control-disabled-border-color: var(--control-border-color);\n --control-select-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2300000080' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n --control-select-bg-position: right 0.75rem center;\n --control-select-bg-size: 16px 12px;\n --control-select-bg-dark: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff80' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n display: flex;\n width: 100%;\n min-height: var(--control-min-height);\n padding: var(--control-padding-y) var(--control-padding-x);\n font-size: var(--control-font-size);\n line-height: var(--control-line-height);\n color: var(--control-fg);\n appearance: none;\n background-color: var(--control-bg);\n background-clip: padding-box;\n border: var(--control-border-width) solid var(--control-border-color);\n border-radius: var(--control-border-radius);\n box-shadow: var(--control-box-shadow);\n transition: var(--control-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n }\n .form-control:focus-visible {\n --focus-ring-offset: -1px;\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-control::placeholder {\n color: var(--control-placeholder-color);\n opacity: 1;\n }\n .form-control:disabled {\n color: var(--control-disabled-color);\n background-color: var(--control-disabled-bg);\n border-color: var(--control-disabled-border-color);\n opacity: 1;\n }\n .form-control::-webkit-datetime-edit {\n display: block;\n height: 1.5rem;\n padding: 0;\n margin-bottom: -0.125rem;\n }\n .form-control::-webkit-datetime-edit-fields-wrapper {\n height: 1.5rem;\n }\n .form-control[type=file] {\n overflow: hidden;\n }\n .form-control[type=file]:not(:disabled, [readonly]) {\n cursor: pointer;\n }\n .form-control::file-selector-button {\n min-height: var(--control-min-height);\n padding: var(--control-padding-y) var(--control-padding-x);\n margin: calc(var(--control-padding-y) * -1) calc(var(--control-padding-x) * -1);\n margin-inline-end: var(--control-padding-x);\n color: var(--control-fg);\n pointer-events: none;\n background-color: var(--control-action-bg);\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: var(--control-border-width);\n border-radius: 0;\n transition: var(--control-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-control::file-selector-button {\n transition: none;\n }\n }\n .form-control:hover:not(:disabled, [readonly])::file-selector-button {\n background-color: var(--control-action-hover-bg);\n }\n .form-control-plaintext {\n display: block;\n width: 100%;\n padding: var(--control-padding-y) 0;\n margin-bottom: 0;\n line-height: var(--control-line-height);\n color: var(--control-fg);\n background-color: transparent;\n border: solid transparent;\n border-width: var(--control-border-width) 0;\n }\n .form-control-plaintext:focus {\n outline: 0;\n }\n .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-inline: 0;\n }\n select.form-control,\n .form-control-caret {\n padding-inline-end: calc(var(--control-padding-x) * 3);\n background-image: var(--control-select-bg);\n background-repeat: no-repeat;\n background-position: var(--control-select-bg-position);\n background-size: var(--control-select-bg-size);\n }\n select.form-control[multiple], select.form-control[size]:not([size=\"1\"]),\n .form-control-caret[multiple],\n .form-control-caret[size]:not([size=\"1\"]) {\n padding-inline-end: var(--control-padding-x);\n background-image: none;\n }\n @media (prefers-color-scheme: dark) {\n select.form-control,\n .form-control-caret {\n background-image: var(--control-select-bg-dark);\n }\n }\n .form-control-sm {\n --control-min-height: var(--btn-input-sm-min-height);\n --control-padding-y: var(--btn-input-sm-padding-y);\n --control-padding-x: var(--btn-input-sm-padding-x);\n --control-font-size: var(--btn-input-sm-font-size);\n --control-line-height: var(--btn-input-sm-line-height);\n --control-border-radius: var(--btn-input-sm-border-radius);\n }\n .form-control-lg {\n --control-min-height: var(--btn-input-lg-min-height);\n --control-padding-y: var(--btn-input-lg-padding-y);\n --control-padding-x: var(--btn-input-lg-padding-x);\n --control-font-size: var(--btn-input-lg-font-size);\n --control-line-height: var(--btn-input-lg-line-height);\n --control-border-radius: var(--btn-input-lg-border-radius);\n }\n .form-control-color {\n width: var(--control-min-height);\n padding: var(--control-padding-y);\n }\n .form-control-color:not(:disabled, [readonly]) {\n cursor: pointer;\n }\n .form-control-color::-moz-color-swatch {\n border: 0 !important;\n border-radius: var(--radius-5);\n }\n .form-control-color::-webkit-color-swatch {\n border: 0 !important;\n border-radius: var(--radius-5);\n }\n .form-ghost {\n display: block;\n width: 100%;\n padding: 0;\n font: inherit;\n color: inherit;\n appearance: none;\n background: transparent;\n border: 0;\n }\n .form-ghost:focus {\n outline: 0;\n }\n .form-ghost::placeholder {\n color: var(--fg-3);\n opacity: 1;\n }\n .form-ghost:disabled {\n color: var(--fg-4);\n cursor: not-allowed;\n }\n}\n@layer forms {\n .check {\n --check-size: 1.25rem;\n --check-margin-block: 0.125rem;\n --check-bg: var(--bg-body);\n --check-border-color: var(--border-color);\n --check-border-radius: 0.375rem;\n --check-checked-bg: var(--control-checked-bg);\n --check-checked-border-color: var(--control-checked-border-color);\n --check-indeterminate-bg: var(--control-checked-bg);\n --check-indeterminate-border-color: var(--control-checked-border-color);\n --check-active-bg: var(--control-active-bg);\n --check-active-border-color: var(--control-active-border-color);\n --check-disabled-bg: var(--control-disabled-bg);\n --check-disabled-opacity: var(--control-disabled-opacity);\n display: grid;\n grid-template-columns: repeat(1, minmax(0, 1fr));\n margin-block: var(--check-margin-block);\n }\n .check :where(svg, input) {\n flex-shrink: 0;\n grid-row-start: 1;\n grid-column-start: 1;\n width: var(--check-size);\n height: var(--check-size);\n }\n .check :where(input) {\n appearance: none;\n background-color: var(--theme-bg, var(--check-bg));\n border: 1px solid var(--theme-bg, var(--check-border-color));\n border-radius: 0.3em;\n }\n .check :where(input:checked, input:indeterminate) {\n background-color: var(--theme-bg, var(--check-checked-bg));\n border-color: var(--theme-bg, var(--check-checked-border-color));\n }\n .check :where(input:focus-visible) {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: -1px;\n }\n .check:has(input:checked) .checked, .check:has(input:indeterminate) .indeterminate {\n display: block;\n color: var(--theme-contrast, var(--primary-contrast));\n stroke: currentcolor;\n }\n .check:has(input:disabled) {\n --check-bg: var(--check-disabled-bg);\n }\n .check:has(input:disabled) ~ label {\n color: var(--fg-3);\n cursor: default;\n }\n .check:has(input:disabled:checked) {\n opacity: var(--check-disabled-opacity);\n }\n .check :where(svg) {\n pointer-events: none;\n }\n .check :where(svg path) {\n display: none;\n }\n .check-sm {\n --check-size: 1rem;\n }\n .check-lg {\n --check-size: 1.5rem;\n --check-margin-block: 0;\n }\n}\n@layer forms {\n .radio {\n --radio-size: 1.25rem;\n --radio-margin-block: 0.125rem;\n --radio-bg: var(--bg-body);\n --radio-border-color: var(--border-color);\n --radio-checked-bg: var(--control-checked-bg);\n --radio-checked-border-color: var(--control-checked-border-color);\n --radio-disabled-bg: var(--control-disabled-bg);\n --radio-disabled-opacity: var(--control-disabled-opacity);\n position: relative;\n flex-shrink: 0;\n width: var(--radio-size);\n height: var(--radio-size);\n margin-block: var(--radio-margin-block);\n appearance: none;\n background-color: var(--theme-bg, var(--radio-bg));\n border: 1px solid var(--theme-bg, var(--radio-border-color));\n border-radius: 50%;\n }\n .radio:checked {\n color: var(--theme-contrast, var(--primary-contrast));\n background-color: var(--theme-bg, var(--radio-checked-bg));\n border-color: var(--theme-bg, var(--radio-checked-border-color));\n }\n .radio:checked::before {\n position: absolute;\n inset: 0.25rem;\n content: \"\";\n background-color: currentcolor;\n border-radius: 50%;\n }\n .radio:disabled {\n --radio-bg: var(--radio-disabled-bg);\n }\n .radio:disabled ~ label {\n color: var(--secondary-fg);\n cursor: default;\n }\n .radio:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .radio-sm {\n --radio-size: 1rem;\n }\n .radio-lg {\n --radio-size: 1.5rem;\n --radio-margin-block: 0;\n }\n}\n@layer forms {\n .switch {\n --switch-height: 1.25rem;\n --switch-width: calc(var(--switch-height) * 1.5);\n --switch-padding: 0.0625rem;\n --switch-margin-block: 0.125rem;\n --switch-bg: var(--bg-3);\n --switch-border-width: var(--border-width);\n --switch-border-color: var(--border-color);\n --switch-indicator-bg: var(--white);\n --switch-indicator-width: calc(var(--switch-height) - var(--switch-padding) * 2 - var(--switch-border-width) * 2);\n --switch-indicator-height: calc(var(--switch-height) - var(--switch-padding) * 2 - var(--switch-border-width) * 2);\n --switch-checked-bg: var(--control-checked-bg);\n --switch-checked-border-color: var(--switch-checked-bg);\n --switch-checked-indicator-bg: var(--white);\n --switch-disabled-bg: var(--control-disabled-bg);\n --switch-disabled-indicator-bg: var(--fg-3);\n position: relative;\n flex-shrink: 0;\n width: var(--switch-width);\n height: var(--switch-height);\n padding: var(--switch-padding);\n margin-block: var(--switch-margin-block);\n background-color: var(--switch-bg);\n border: var(--switch-border-width) solid var(--switch-border-color);\n border-radius: 10rem;\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);\n transition: background-color 0.15s ease-in-out;\n }\n .switch::before {\n position: absolute;\n inset-block: var(--switch-padding);\n inset-inline-start: var(--switch-padding);\n width: var(--switch-indicator-width);\n height: var(--switch-indicator-height);\n content: \"\";\n background-color: var(--theme-contrast, var(--switch-indicator-bg));\n border-radius: 10rem;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n transition: inset-inline-start 0.15s ease-in-out;\n }\n .switch input {\n position: absolute;\n inset: 0;\n appearance: none;\n background-color: transparent;\n outline: 0;\n }\n .switch:focus-within {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .switch:has(input:checked) {\n background-color: var(--theme-bg, var(--switch-checked-bg));\n border-color: var(--theme-bg, var(--switch-checked-border-color));\n }\n .switch:has(input:checked)::before {\n inset-inline-start: calc(100% - var(--switch-indicator-width) - var(--switch-padding));\n }\n .switch:has(input:disabled) {\n --switch-bg: var(--switch-disabled-bg);\n --switch-indicator-bg: var(--switch-disabled-indicator-bg);\n }\n .switch:has(input:disabled)::before {\n opacity: 0.4;\n }\n .switch:has(input:disabled) ~ label {\n color: var(--secondary-fg);\n cursor: default;\n }\n .switch-sm {\n --switch-height: 1rem;\n }\n .switch-lg {\n --switch-height: 1.5rem;\n --switch-margin-block: 0;\n }\n}\n@layer forms {\n .form-range {\n --range-track-width: 100%;\n --range-track-height: 0.5rem;\n --range-track-cursor: pointer;\n --range-track-bg: var(--bg-3);\n --range-track-border-radius: 1rem;\n --range-track-box-shadow: var(--box-shadow-inset);\n --range-thumb-width: 1rem;\n --range-thumb-height: var(--range-thumb-width);\n --range-thumb-bg: var(--primary-base);\n --range-thumb-border: var(--range-thumb-bg) solid var(--border-color);\n --range-thumb-border-radius: 1rem;\n --range-thumb-box-shadow: 0 1px 2px rgb(0 0 0 / 7.5%), 0 2px 4px rgb(0 0 0 / 7.5%);\n --range-thumb-active-bg: color-mix(in oklch, var(--primary-base) 70%, var(--bg-body));\n --range-thumb-disabled-bg: var(--fg-3);\n --range-thumb-transition-property: background-color, border-color, box-shadow;\n --range-thumb-transition-timing: 0.15s ease-in-out;\n --range-thumb-transition: var(--range-thumb-transition-property) var(--range-thumb-transition-timing);\n width: 100%;\n height: calc(var(--range-thumb-height) + var(--focus-ring-width) * 2);\n padding: 0;\n appearance: none;\n background-color: transparent;\n }\n .form-range:hover::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid color-mix(in oklch, var(--primary-focus-ring), transparent);\n }\n .form-range:hover::-moz-range-thumb {\n outline: var(--focus-ring-width) solid color-mix(in oklch, var(--primary-focus-ring), transparent);\n }\n .form-range:focus-visible {\n outline: 0;\n }\n .form-range:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: 0;\n }\n .form-range:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: 0;\n }\n .form-range::-moz-focus-outer {\n border: 0;\n }\n .form-range::-webkit-slider-thumb {\n width: var(--range-thumb-width);\n height: var(--range-thumb-height);\n appearance: none;\n background-color: var(--range-thumb-bg);\n background-image: var(--gradient);\n border: var(--range-thumb-border);\n border-radius: var(--range-thumb-border-radius);\n box-shadow: var(--range-thumb-box-shadow);\n transition: var(--range-thumb-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-range::-webkit-slider-thumb {\n transition: none;\n }\n }\n .form-range::-webkit-slider-thumb:active {\n background-color: var(--range-thumb-active-bg);\n background-image: var(--gradient);\n }\n .form-range::-webkit-slider-thumb {\n margin-top: calc((var(--range-track-height) - var(--range-thumb-height)) * 0.5);\n }\n .form-range::-moz-range-thumb {\n width: var(--range-thumb-width);\n height: var(--range-thumb-height);\n appearance: none;\n background-color: var(--range-thumb-bg);\n background-image: var(--gradient);\n border: var(--range-thumb-border);\n border-radius: var(--range-thumb-border-radius);\n box-shadow: var(--range-thumb-box-shadow);\n transition: var(--range-thumb-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-range::-moz-range-thumb {\n transition: none;\n }\n }\n .form-range::-moz-range-thumb:active {\n background-color: var(--range-thumb-active-bg);\n background-image: var(--gradient);\n }\n .form-range::-webkit-slider-runnable-track {\n width: var(--range-track-width);\n height: var(--range-track-height);\n color: transparent;\n cursor: var(--range-track-cursor);\n background-color: var(--range-track-bg);\n border-color: transparent;\n border-radius: var(--range-track-border-radius);\n box-shadow: var(--range-track-box-shadow);\n }\n .form-range::-moz-range-track {\n width: var(--range-track-width);\n height: var(--range-track-height);\n color: transparent;\n cursor: var(--range-track-cursor);\n background-color: var(--range-track-bg);\n border-color: transparent;\n border-radius: var(--range-track-border-radius);\n box-shadow: var(--range-track-box-shadow);\n }\n .form-range:disabled {\n pointer-events: none;\n }\n .form-range:disabled::-webkit-slider-thumb {\n background-color: var(--range-thumb-disabled-bg);\n }\n .form-range:disabled::-moz-range-thumb {\n background-color: var(--range-thumb-disabled-bg);\n }\n}\n@layer forms {\n .form-floating {\n --form-floating-height: calc(3.5rem + var(--border-width) * 2);\n --form-floating-line-height: 1.25;\n --form-floating-padding-x: var(--btn-input-padding-x);\n --form-floating-padding-y: 1rem;\n --form-floating-input-padding-t: 1.625rem;\n --form-floating-input-padding-b: 0.625rem;\n --form-floating-label-height: 1.5em;\n --form-floating-label-opacity: 0.65;\n --form-floating-label-transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n --form-floating-label-disabled-color: var(--fg-3);\n --form-floating-transition-property: opacity, transform;\n --form-floating-transition-timing: 0.1s ease-in-out;\n --form-floating-transition: var(--form-floating-transition-property) var(--form-floating-transition-timing);\n position: relative;\n }\n .form-floating > label {\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n z-index: 2;\n display: flex;\n align-items: center;\n max-width: 100%;\n height: 100%;\n padding: var(--form-floating-padding-y) var(--form-floating-padding-x);\n overflow: hidden;\n color: color-mix(in oklch, var(--fg-body) var(--form-floating-label-opacity), transparent);\n text-align: start;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n border: var(--input-btn-border-width) solid transparent;\n transform-origin: 0 0;\n transition: var(--form-floating-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-floating > label {\n transition: none;\n }\n }\n .form-floating > .form-control,\n .form-floating > .form-control-plaintext {\n height: var(--form-floating-height);\n min-height: var(--form-floating-height);\n padding: var(--form-floating-padding-y) var(--form-floating-padding-x);\n line-height: var(--form-floating-line-height);\n }\n .form-floating > .form-control::placeholder,\n .form-floating > .form-control-plaintext::placeholder {\n color: transparent;\n }\n .form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown),\n .form-floating > .form-control-plaintext:focus,\n .form-floating > .form-control-plaintext:not(:placeholder-shown) {\n padding-top: var(--form-floating-input-padding-t);\n padding-bottom: var(--form-floating-input-padding-b);\n }\n .form-floating > .form-control:-webkit-autofill,\n .form-floating > .form-control-plaintext:-webkit-autofill {\n padding-top: var(--form-floating-input-padding-t);\n padding-bottom: var(--form-floating-input-padding-b);\n }\n .form-floating > .form-control:focus ~ label,\n .form-floating > .form-control:not(:placeholder-shown) ~ label,\n .form-floating > .form-control-plaintext ~ label {\n transform: var(--form-floating-label-transform);\n }\n .form-floating > .form-control:-webkit-autofill ~ label {\n transform: var(--form-floating-label-transform);\n }\n .form-floating > textarea:focus ~ label::after,\n .form-floating > textarea:not(:placeholder-shown) ~ label::after {\n position: absolute;\n inset: var(--form-floating-padding-y) calc(var(--form-floating-padding-x) * 0.5);\n z-index: -1;\n height: var(--form-floating-label-height);\n content: \"\";\n background-color: var(--control-bg);\n border-radius: var(--btn-input-border-radius);\n }\n .form-floating > textarea:disabled ~ label::after {\n background-color: var(--control-disabled-bg);\n }\n .form-floating > .form-control-plaintext ~ label {\n border-width: var(--control-border-width) 0;\n }\n .form-floating > :disabled ~ label,\n .form-floating > .form-control:disabled ~ label {\n color: var(--form-floating-label-disabled-color);\n }\n}\n@layer components {\n .input-group {\n --input-group-addon-padding-y: var(--btn-input-padding-y);\n --input-group-addon-padding-x: var(--btn-input-padding-x);\n --input-group-addon-font-size: var(--btn-input-font-size);\n --input-group-addon-line-height: var(--btn-input-line-height);\n --input-group-addon-color: var(--fg-body);\n --input-group-addon-bg: var(--bg-2);\n --input-group-addon-border-color: var(--border-color);\n position: relative;\n display: flex;\n align-items: stretch;\n width: 100%;\n }\n .input-group > .form-control,\n .input-group > .form-floating {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n }\n .input-group > .form-control:focus,\n .input-group > .form-floating:focus-within {\n z-index: 5;\n }\n .input-group > .input-group-btn {\n position: relative;\n z-index: 2;\n }\n .input-group > .input-group-btn:focus {\n z-index: 5;\n }\n .input-group-text {\n display: flex;\n align-items: center;\n padding: var(--input-group-addon-padding-y) var(--input-group-addon-padding-x);\n font-size: var(--input-group-addon-font-size);\n line-height: var(--input-group-addon-line-height);\n color: var(--input-group-addon-color);\n text-align: center;\n white-space: nowrap;\n background-color: var(--input-group-addon-bg);\n border: var(--border-width) solid var(--input-group-addon-border-color);\n border-radius: var(--btn-input-border-radius);\n }\n .input-group-sm > .form-control,\n .input-group-sm > .input-group-text,\n .input-group-sm > .btn {\n min-height: var(--btn-input-sm-min-height);\n padding: var(--btn-input-sm-padding-y) var(--btn-input-sm-padding-x);\n font-size: var(--btn-input-sm-font-size);\n border-radius: var(--btn-input-sm-border-radius);\n }\n .input-group-lg > .form-control,\n .input-group-lg > .input-group-text,\n .input-group-lg > .btn {\n min-height: var(--btn-input-lg-min-height);\n padding: var(--btn-input-lg-padding-y) var(--btn-input-lg-padding-x);\n font-size: var(--btn-input-lg-font-size);\n border-radius: var(--btn-input-lg-border-radius);\n }\n .input-group > :not(:last-child, .menu-toggle-split, .menu, .input-group-ignore, .form-floating, :has(+ :is(.menu, .input-group-ignore):last-child)),\n .input-group > .menu-toggle-split:nth-last-child(n+3),\n .input-group > .form-floating:not(:last-child) > .form-control,\n .input-group > .form-floating:not(:last-child) > .form-select {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .input-group > :not(:first-child, .menu, .input-group-ignore) {\n margin-inline-start: calc(-1 * var(--border-width));\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .input-group > :first-child:is(.input-group-ignore) + :not(.menu, .input-group-ignore) {\n border-start-start-radius: var(--btn-input-border-radius);\n border-end-start-radius: var(--btn-input-border-radius);\n }\n .input-group > .form-floating:not(:first-child) > .form-control,\n .input-group > .form-floating:not(:first-child) > .form-select {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n}\n@layer forms {\n .strength {\n --strength-height: 0.375rem;\n --strength-gap: 0.25rem;\n --strength-margin-top: 0.25rem;\n --strength-border-radius: var(--radius-pill);\n --strength-bg: var(--bg-2);\n --strength-color: var(--bg-2);\n --strength-weak-color: var(--danger-bg);\n --strength-fair-color: var(--warning-bg);\n --strength-good-color: var(--info-bg);\n --strength-strong-color: var(--success-bg);\n display: flex;\n gap: var(--strength-gap);\n width: 100%;\n margin-top: var(--strength-margin-top);\n }\n .strength-segment {\n flex: 1;\n height: var(--strength-height);\n background-color: var(--strength-bg);\n border-radius: var(--strength-border-radius);\n transition: background-color 0.2s ease-in-out, width 0.3s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .strength-segment {\n transition: none;\n }\n }\n .strength-segment.active {\n background-color: var(--strength-color);\n }\n .strength[data-bs-strength=weak] {\n --strength-color: var(--strength-weak-color);\n }\n .strength[data-bs-strength=fair] {\n --strength-color: var(--strength-fair-color);\n }\n .strength[data-bs-strength=good] {\n --strength-color: var(--strength-good-color);\n }\n .strength[data-bs-strength=strong] {\n --strength-color: var(--strength-strong-color);\n }\n .strength-text {\n display: block;\n margin-top: var(--strength-margin-top);\n font-size: var(--font-size-xs);\n color: var(--strength-color, var(--fg-3));\n transition: color 0.2s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .strength-text {\n transition: none;\n }\n }\n .strength-text:empty {\n display: none;\n }\n .strength-bar {\n --strength-height: 0.375rem;\n --strength-gap: 0.25rem;\n --strength-margin-top: 0.25rem;\n --strength-border-radius: var(--radius-pill);\n --strength-bg: var(--bg-2);\n --strength-color: var(--bg-2);\n --strength-weak-color: var(--danger-bg);\n --strength-fair-color: var(--warning-bg);\n --strength-good-color: var(--info-bg);\n --strength-strong-color: var(--success-bg);\n --strength-color: transparent;\n --strength-width: 0%;\n width: 100%;\n height: var(--strength-height);\n margin-top: var(--strength-margin-top);\n overflow: hidden;\n background-color: var(--strength-bg);\n border-radius: var(--strength-border-radius);\n }\n .strength-bar::after {\n display: block;\n width: var(--strength-width);\n height: 100%;\n content: \"\";\n background-color: var(--strength-color);\n border-radius: var(--strength-border-radius);\n transition: background-color 0.2s ease-in-out, width 0.3s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .strength-bar::after {\n transition: none;\n }\n }\n .strength-bar[data-bs-strength=weak] {\n --strength-color: var(--strength-weak-color);\n --strength-width: 25%;\n }\n .strength-bar[data-bs-strength=fair] {\n --strength-color: var(--strength-fair-color);\n --strength-width: 50%;\n }\n .strength-bar[data-bs-strength=good] {\n --strength-color: var(--strength-good-color);\n --strength-width: 75%;\n }\n .strength-bar[data-bs-strength=strong] {\n --strength-color: var(--strength-strong-color);\n --strength-width: 100%;\n }\n}\n@layer components {\n .otp {\n --otp-size: var(--btn-input-lg-min-height);\n --otp-font-size: var(--btn-input-font-size);\n --otp-gap: 0.5rem;\n display: inline-flex;\n gap: var(--otp-gap);\n }\n .otp .form-control {\n width: var(--otp-size);\n min-height: var(--otp-size);\n padding: 0;\n font-size: var(--otp-font-size);\n font-weight: 500;\n line-height: 1;\n text-align: center;\n }\n .otp .form-control::-webkit-outer-spin-button, .otp .form-control::-webkit-inner-spin-button {\n margin: 0;\n appearance: none;\n }\n .otp .form-control[type=number] {\n appearance: textfield;\n }\n .otp .form-control:focus, .otp .form-control:focus-visible {\n z-index: 1;\n }\n .otp.input-group {\n gap: 0;\n width: auto;\n }\n .otp.input-group .form-control {\n flex: 0 0 auto;\n }\n .otp-separator {\n display: flex;\n align-items: center;\n padding-inline: var(--otp-gap);\n font-size: var(--otp-font-size);\n color: var(--fg-4);\n user-select: none;\n }\n}\n@layer forms {\n .form-adorn {\n --form-adorn-gap: 0.375rem;\n --form-adorn-icon-size: 1rem;\n --form-adorn-icon-color: var(--fg-2);\n gap: var(--form-adorn-gap);\n align-items: center;\n }\n .form-adorn:focus-visible {\n outline: 0;\n }\n .form-adorn:focus-within {\n --focus-ring-offset: -1px;\n border-color: var(--focus-ring-color);\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-adorn > .form-ghost {\n flex: 1;\n min-width: 0;\n }\n .form-adorn.form-adorn-end > .form-ghost {\n order: -1;\n }\n .form-adorn-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n color: var(--form-adorn-icon-color);\n pointer-events: none;\n }\n .form-adorn-icon > svg {\n width: var(--form-adorn-icon-size);\n height: var(--form-adorn-icon-size);\n }\n .form-adorn-text {\n flex-shrink: 0;\n color: var(--form-adorn-icon-color);\n pointer-events: none;\n user-select: none;\n }\n}\n@layer forms {\n .chip-input {\n --chip-input-padding-y: 0.75rem;\n --chip-input-padding-x: 0.75rem;\n --chip-input-gap: 0.375rem;\n --chip-input-ghost-min-width: 5rem;\n --control-fg: var(--btn-input-fg);\n --control-bg: var(--btn-input-bg);\n --control-border-width: var(--border-width);\n --control-border-color: var(--border-color);\n --control-border-radius: var(--radius-5);\n display: flex;\n flex-wrap: wrap;\n gap: var(--chip-input-gap);\n align-items: center;\n padding: var(--chip-input-padding-y) var(--chip-input-padding-x);\n color: var(--control-fg);\n background-color: var(--control-bg);\n border: var(--control-border-width) solid var(--control-border-color);\n border-radius: var(--control-border-radius);\n }\n .chip-input:focus-within {\n --focus-ring-offset: -1px;\n border-color: var(--focus-ring-color);\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .chip-input > .form-ghost {\n flex: 1 1 0;\n min-width: var(--chip-input-ghost-min-width);\n min-height: 1.75rem;\n }\n .chip-input.disabled, .chip-input:has(.form-ghost:disabled) {\n cursor: not-allowed;\n background-color: var(--bg-2);\n opacity: 1;\n }\n .chip-input.disabled:focus-within, .chip-input:has(.form-ghost:disabled):focus-within {\n border-color: var(--control-border-color);\n outline: 0;\n }\n .chip-input.disabled > .chip, .chip-input:has(.form-ghost:disabled) > .chip {\n pointer-events: none;\n opacity: var(--control-disabled-opacity);\n }\n}\n@layer components {\n .combobox-toggle {\n display: inline-flex;\n gap: 0.5rem;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding-inline-end: var(--control-padding-x);\n text-align: start;\n cursor: pointer;\n }\n .combobox-toggle.show {\n background-color: var(--bg-1);\n }\n .combobox-toggle:disabled, .combobox-toggle.disabled {\n cursor: not-allowed;\n opacity: 0.65;\n }\n .combobox-value {\n display: flex;\n flex: 1;\n gap: 0.5rem;\n align-items: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .combobox-placeholder {\n color: color-mix(in oklch, currentcolor 65%, transparent);\n }\n .combobox-caret {\n flex-shrink: 0;\n transition: transform 0.2s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .combobox-caret {\n transition: none;\n }\n }\n .show > .combobox-caret {\n transform: rotate(180deg);\n }\n .combobox-toggle + .menu {\n --menu-max-height: 300px;\n --menu-overflow-y: auto;\n }\n .combobox-search {\n position: sticky;\n top: 0;\n z-index: 1;\n padding: var(--menu-padding-x, 0.25rem);\n background-color: var(--menu-bg, var(--bg-body));\n }\n .combobox-search-input {\n width: 100%;\n }\n .combobox-no-results {\n padding: 1rem;\n font-size: var(--font-size-sm);\n color: var(--fg-3);\n text-align: center;\n }\n}\n@layer forms {\n .form-field {\n position: relative;\n display: grid;\n gap: 0.5rem;\n }\n .form-field > label,\n .form-field > .form-label {\n justify-self: start;\n margin-bottom: 0;\n }\n .form-field:has(> .check, > .radio, > .switch) {\n grid-template-columns: auto 1fr;\n column-gap: 0.5rem;\n align-items: start;\n }\n .form-field:has(> .check, > .radio, > .switch) > .check,\n .form-field:has(> .check, > .radio, > .switch) > .radio,\n .form-field:has(> .check, > .radio, > .switch) > .switch {\n grid-column: 1;\n }\n .form-field:has(> .check, > .radio, > .switch) > :not(.check, .radio, .switch) {\n grid-column: 2;\n }\n .form-field:has(> .check, > .radio, > .switch) > .form-label {\n grid-column: 1/-1;\n }\n .form-field-content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n .form-field-card {\n position: relative;\n padding: calc(var(--spacer) * 0.75);\n cursor: pointer;\n border: var(--border-width) solid transparent;\n border-radius: var(--radius-7);\n }\n .form-field-card:hover {\n background-color: var(--bg-1);\n }\n .form-field-card:has(:checked) {\n background-color: var(--bg-1);\n border-color: var(--border-color);\n }\n .form-field-card label::before {\n position: absolute;\n inset: 0;\n content: \"\";\n }\n .form-group {\n display: grid;\n gap: 0.5rem;\n }\n .form-group > label,\n .form-group > .form-label,\n .form-group > legend {\n justify-self: start;\n margin-bottom: 0;\n }\n}\n@layer components {\n .valid-feedback {\n display: none;\n width: 100%;\n font-size: var(--font-size-sm);\n color: var(--success-fg);\n }\n .tooltip.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n margin-top: 0.1rem;\n color: var(--success-contrast);\n text-align: center;\n background-color: var(--success-bg);\n opacity: 1;\n border-radius: var(--tooltip-border-radius);\n }\n .is-valid ~ .valid-feedback,\n .is-valid ~ .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] :user-valid ~ .valid-feedback,\n [data-bs-validate~=valid] :user-valid ~ .valid-tooltip {\n display: block;\n }\n .form-control.is-valid {\n --control-border-color: var(--success-border);\n }\n .form-control.is-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .form-control:user-valid {\n --control-border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .form-control:user-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--success-border);\n }\n .check input.is-valid {\n --check-border-color: var(--success-border);\n --check-checked-bg: var(--success-bg);\n --check-checked-border-color: var(--success-bg);\n }\n .check input.is-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .check input:user-valid {\n --check-border-color: var(--success-border);\n --check-checked-bg: var(--success-bg);\n --check-checked-border-color: var(--success-bg);\n }\n [data-bs-validate~=valid] .check input:user-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.check input.is-valid) label {\n color: var(--success-fg);\n }\n .form-field:has(.check input.is-valid) .valid-feedback,\n .form-field:has(.check input.is-valid) .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-field:has(.check input:user-valid) label {\n color: var(--success-fg);\n }\n [data-bs-validate~=valid] .form-field:has(.check input:user-valid) .valid-feedback,\n [data-bs-validate~=valid] .form-field:has(.check input:user-valid) .valid-tooltip {\n display: block;\n }\n .radio.is-valid {\n --radio-border-color: var(--success-border);\n --radio-checked-bg: var(--success-bg);\n --radio-checked-border-color: var(--success-bg);\n }\n .radio.is-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .radio:user-valid {\n --radio-border-color: var(--success-border);\n --radio-checked-bg: var(--success-bg);\n --radio-checked-border-color: var(--success-bg);\n }\n [data-bs-validate~=valid] .radio:user-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.radio.is-valid) label {\n color: var(--success-fg);\n }\n .form-field:has(.radio.is-valid) .valid-feedback,\n .form-field:has(.radio.is-valid) .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-field:has(.radio:user-valid) label {\n color: var(--success-fg);\n }\n [data-bs-validate~=valid] .form-field:has(.radio:user-valid) .valid-feedback,\n [data-bs-validate~=valid] .form-field:has(.radio:user-valid) .valid-tooltip {\n display: block;\n }\n .switch:has(input.is-valid) {\n --switch-border-color: var(--success-border);\n --switch-checked-bg: var(--success-bg);\n --switch-checked-border-color: var(--success-bg);\n }\n .switch:has(input.is-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .switch:has(input:user-valid) {\n --switch-border-color: var(--success-border);\n --switch-checked-bg: var(--success-bg);\n --switch-checked-border-color: var(--success-bg);\n }\n [data-bs-validate~=valid] .switch:has(input:user-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.switch input.is-valid) label {\n color: var(--success-fg);\n }\n .form-field:has(.switch input.is-valid) .valid-feedback,\n .form-field:has(.switch input.is-valid) .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-field:has(.switch input:user-valid) label {\n color: var(--success-fg);\n }\n [data-bs-validate~=valid] .form-field:has(.switch input:user-valid) .valid-feedback,\n [data-bs-validate~=valid] .form-field:has(.switch input:user-valid) .valid-tooltip {\n display: block;\n }\n .chip-input:has(.form-ghost.is-valid) {\n border-color: var(--success-border);\n }\n .chip-input:has(.form-ghost.is-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--success-border);\n }\n .chip-input:has(.form-ghost.is-valid) ~ .valid-feedback,\n .chip-input:has(.form-ghost.is-valid) ~ .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid) {\n border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid) ~ .valid-feedback,\n [data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid) ~ .valid-tooltip {\n display: block;\n }\n .form-adorn:has(.form-ghost.is-valid) {\n border-color: var(--success-border);\n }\n .form-adorn:has(.form-ghost.is-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--success-border);\n }\n .form-adorn:has(.form-ghost.is-valid) ~ .valid-feedback,\n .form-adorn:has(.form-ghost.is-valid) ~ .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid) {\n border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid) ~ .valid-feedback,\n [data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid) ~ .valid-tooltip {\n display: block;\n }\n .form-range.is-valid::-webkit-slider-thumb {\n background: var(--success-bg);\n }\n .form-range.is-valid::-moz-range-thumb {\n background: var(--success-bg);\n }\n .form-range.is-valid:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-range.is-valid:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-range.is-valid ~ .valid-feedback,\n .form-range.is-valid ~ .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-range:user-valid::-webkit-slider-thumb {\n background: var(--success-bg);\n }\n [data-bs-validate~=valid] .form-range:user-valid::-moz-range-thumb {\n background: var(--success-bg);\n }\n [data-bs-validate~=valid] .form-range:user-valid:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .form-range:user-valid:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .form-range:user-valid ~ .valid-feedback,\n [data-bs-validate~=valid] .form-range:user-valid ~ .valid-tooltip {\n display: block;\n }\n .form-field:has(.input-group .form-control.is-valid) .valid-feedback,\n .form-field:has(.input-group .form-control.is-valid) .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-field:has(.input-group .form-control:user-valid) .valid-feedback,\n [data-bs-validate~=valid] .form-field:has(.input-group .form-control:user-valid) .valid-tooltip {\n display: block;\n }\n .input-group > .form-control:not(:focus).is-valid,\n .input-group > .form-floating:not(:focus-within).is-valid {\n z-index: 3;\n }\n [data-bs-validate~=valid] .input-group > .form-control:not(:focus), .input-group > .form-floating:not(:focus-within):user-valid {\n z-index: 3;\n }\n .otp.is-valid .form-control {\n --control-border-color: var(--success-border);\n }\n .otp.is-valid .form-control:focus {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .otp:user-valid .form-control {\n --control-border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .otp:user-valid .form-control:focus {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--success-border);\n }\n .invalid-feedback {\n display: none;\n width: 100%;\n font-size: var(--font-size-sm);\n color: var(--danger-fg);\n }\n .tooltip.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n margin-top: 0.1rem;\n color: var(--danger-contrast);\n text-align: center;\n background-color: var(--danger-bg);\n opacity: 1;\n border-radius: var(--tooltip-border-radius);\n }\n .is-invalid ~ .invalid-feedback,\n .is-invalid ~ .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] :user-invalid ~ .invalid-feedback,\n [data-bs-validate] :user-invalid ~ .invalid-tooltip {\n display: block;\n }\n .form-control.is-invalid {\n --control-border-color: var(--danger-border);\n }\n .form-control.is-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--danger-border);\n }\n [data-bs-validate] .form-control:user-invalid {\n --control-border-color: var(--danger-border);\n }\n [data-bs-validate] .form-control:user-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--danger-border);\n }\n .check input.is-invalid {\n --check-border-color: var(--danger-border);\n --check-checked-bg: var(--danger-bg);\n --check-checked-border-color: var(--danger-bg);\n }\n .check input.is-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .check input:user-invalid {\n --check-border-color: var(--danger-border);\n --check-checked-bg: var(--danger-bg);\n --check-checked-border-color: var(--danger-bg);\n }\n [data-bs-validate] .check input:user-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.check input.is-invalid) label {\n color: var(--danger-fg);\n }\n .form-field:has(.check input.is-invalid) .invalid-feedback,\n .form-field:has(.check input.is-invalid) .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-field:has(.check input:user-invalid) label {\n color: var(--danger-fg);\n }\n [data-bs-validate] .form-field:has(.check input:user-invalid) .invalid-feedback,\n [data-bs-validate] .form-field:has(.check input:user-invalid) .invalid-tooltip {\n display: block;\n }\n .radio.is-invalid {\n --radio-border-color: var(--danger-border);\n --radio-checked-bg: var(--danger-bg);\n --radio-checked-border-color: var(--danger-bg);\n }\n .radio.is-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .radio:user-invalid {\n --radio-border-color: var(--danger-border);\n --radio-checked-bg: var(--danger-bg);\n --radio-checked-border-color: var(--danger-bg);\n }\n [data-bs-validate] .radio:user-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.radio.is-invalid) label {\n color: var(--danger-fg);\n }\n .form-field:has(.radio.is-invalid) .invalid-feedback,\n .form-field:has(.radio.is-invalid) .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-field:has(.radio:user-invalid) label {\n color: var(--danger-fg);\n }\n [data-bs-validate] .form-field:has(.radio:user-invalid) .invalid-feedback,\n [data-bs-validate] .form-field:has(.radio:user-invalid) .invalid-tooltip {\n display: block;\n }\n .switch:has(input.is-invalid) {\n --switch-border-color: var(--danger-border);\n --switch-checked-bg: var(--danger-bg);\n --switch-checked-border-color: var(--danger-bg);\n }\n .switch:has(input.is-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .switch:has(input:user-invalid) {\n --switch-border-color: var(--danger-border);\n --switch-checked-bg: var(--danger-bg);\n --switch-checked-border-color: var(--danger-bg);\n }\n [data-bs-validate] .switch:has(input:user-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.switch input.is-invalid) label {\n color: var(--danger-fg);\n }\n .form-field:has(.switch input.is-invalid) .invalid-feedback,\n .form-field:has(.switch input.is-invalid) .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-field:has(.switch input:user-invalid) label {\n color: var(--danger-fg);\n }\n [data-bs-validate] .form-field:has(.switch input:user-invalid) .invalid-feedback,\n [data-bs-validate] .form-field:has(.switch input:user-invalid) .invalid-tooltip {\n display: block;\n }\n .chip-input:has(.form-ghost.is-invalid) {\n border-color: var(--danger-border);\n }\n .chip-input:has(.form-ghost.is-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--danger-border);\n }\n .chip-input:has(.form-ghost.is-invalid) ~ .invalid-feedback,\n .chip-input:has(.form-ghost.is-invalid) ~ .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid) {\n border-color: var(--danger-border);\n }\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--danger-border);\n }\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid) ~ .invalid-feedback,\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid) ~ .invalid-tooltip {\n display: block;\n }\n .form-adorn:has(.form-ghost.is-invalid) {\n border-color: var(--danger-border);\n }\n .form-adorn:has(.form-ghost.is-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--danger-border);\n }\n .form-adorn:has(.form-ghost.is-invalid) ~ .invalid-feedback,\n .form-adorn:has(.form-ghost.is-invalid) ~ .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid) {\n border-color: var(--danger-border);\n }\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--danger-border);\n }\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid) ~ .invalid-feedback,\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid) ~ .invalid-tooltip {\n display: block;\n }\n .form-range.is-invalid::-webkit-slider-thumb {\n background: var(--danger-bg);\n }\n .form-range.is-invalid::-moz-range-thumb {\n background: var(--danger-bg);\n }\n .form-range.is-invalid:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-range.is-invalid:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-range.is-invalid ~ .invalid-feedback,\n .form-range.is-invalid ~ .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-range:user-invalid::-webkit-slider-thumb {\n background: var(--danger-bg);\n }\n [data-bs-validate] .form-range:user-invalid::-moz-range-thumb {\n background: var(--danger-bg);\n }\n [data-bs-validate] .form-range:user-invalid:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .form-range:user-invalid:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .form-range:user-invalid ~ .invalid-feedback,\n [data-bs-validate] .form-range:user-invalid ~ .invalid-tooltip {\n display: block;\n }\n .form-field:has(.input-group .form-control.is-invalid) .invalid-feedback,\n .form-field:has(.input-group .form-control.is-invalid) .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-field:has(.input-group .form-control:user-invalid) .invalid-feedback,\n [data-bs-validate] .form-field:has(.input-group .form-control:user-invalid) .invalid-tooltip {\n display: block;\n }\n .input-group > .form-control:not(:focus).is-invalid,\n .input-group > .form-floating:not(:focus-within).is-invalid {\n z-index: 4;\n }\n [data-bs-validate] .input-group > .form-control:not(:focus), .input-group > .form-floating:not(:focus-within):user-invalid {\n z-index: 4;\n }\n .otp.is-invalid .form-control {\n --control-border-color: var(--danger-border);\n }\n .otp.is-invalid .form-control:focus {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--danger-border);\n }\n [data-bs-validate] .otp:user-invalid .form-control {\n --control-border-color: var(--danger-border);\n }\n [data-bs-validate] .otp:user-invalid .form-control:focus {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--danger-border);\n }\n}\n@layer components {\n .btn, .btn-link, .btn-icon, .btn-solid, .btn-outline, .btn-subtle, .btn-text {\n --btn-min-height: var(--btn-input-min-height);\n --btn-padding-x: var(--btn-input-padding-x);\n --btn-padding-y: var(--btn-input-padding-y);\n --btn-font-size: var(--btn-input-font-size);\n --btn-font-weight: var(--btn-input-font-weight);\n --btn-line-height: var(--btn-input-line-height);\n --btn-color: var(--fg-body);\n --btn-white-space: nowrap;\n --btn-border-width: var(--border-width);\n --btn-border-color: transparent;\n --btn-border-radius: var(--radius-5);\n --btn-hover-border-color: transparent;\n --btn-disabled-opacity: 0.65;\n --btn-transition-timing: 0.15s ease-in-out;\n --btn-transition-property: color, background-color, border-color, box-shadow;\n --btn-transition: var(--btn-transition-property) var(--btn-transition-timing);\n display: inline-flex;\n gap: var(--btn-gap, 0.25rem);\n align-items: center;\n justify-content: center;\n min-height: var(--btn-min-height);\n padding: var(--btn-padding-y) var(--btn-padding-x);\n font-size: var(--btn-font-size);\n font-weight: var(--btn-font-weight);\n line-height: var(--btn-line-height);\n color: var(--btn-color);\n text-decoration: none;\n white-space: var(--btn-white-space);\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n background-color: var(--btn-bg, var(--bg-2));\n border: var(--btn-border-width) solid var(--btn-border-color);\n border-radius: var(--btn-border-radius);\n transition: var(--btn-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .btn, .btn-link, .btn-icon, .btn-solid, .btn-outline, .btn-subtle, .btn-text {\n transition: none;\n }\n }\n .btn:hover, .btn-link:hover, .btn-icon:hover, .btn-solid:hover, .btn-outline:hover, .btn-subtle:hover, .btn-text:hover {\n color: var(--btn-hover-color);\n background-color: var(--btn-hover-bg, var(--bg-3));\n border-color: var(--btn-hover-border-color);\n }\n .btn:focus-visible, .btn-link:focus-visible, .btn-icon:focus-visible, .btn-solid:focus-visible, .btn-outline:focus-visible, .btn-subtle:focus-visible, .btn-text:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: 1px;\n }\n .btn.active, .btn.show, .btn-link.active, .btn-link.show, .btn-icon.active, .btn-icon.show, .btn-solid.active, .btn-solid.show, .btn-outline.active, .btn-outline.show, .btn-subtle.active, .btn-subtle.show, .btn-text.active, .btn-text.show {\n color: var(--btn-active-color);\n background-color: var(--btn-active-bg, var(--bg-3));\n border-color: var(--btn-active-border-color);\n }\n .btn.active:focus-visible, .btn.show:focus-visible, .btn-link.active:focus-visible, .btn-link.show:focus-visible, .btn-icon.active:focus-visible, .btn-icon.show:focus-visible, .btn-solid.active:focus-visible, .btn-solid.show:focus-visible, .btn-outline.active:focus-visible, .btn-outline.show:focus-visible, .btn-subtle.active:focus-visible, .btn-subtle.show:focus-visible, .btn-text.active:focus-visible, .btn-text.show:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .btn:disabled, .btn.disabled, fieldset:disabled .btn, .btn-link:disabled, .btn-link.disabled, fieldset:disabled .btn-link, .btn-icon:disabled, .btn-icon.disabled, fieldset:disabled .btn-icon, .btn-solid:disabled, .btn-solid.disabled, fieldset:disabled .btn-solid, .btn-outline:disabled, .btn-outline.disabled, fieldset:disabled .btn-outline, .btn-subtle:disabled, .btn-subtle.disabled, fieldset:disabled .btn-subtle, .btn-text:disabled, .btn-text.disabled, fieldset:disabled .btn-text {\n color: var(--btn-disabled-color);\n pointer-events: none;\n background-color: var(--btn-disabled-bg, var(--bg-1));\n background-image: none;\n border-color: var(--btn-disabled-border-color);\n opacity: var(--btn-disabled-opacity);\n }\n .btn-solid {\n --btn-bg: var(--theme-bg);\n --btn-color: var(--theme-contrast);\n --btn-border-color: var(--theme-bg);\n --btn-active-bg: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-border-color: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-color: oklch(from var(--theme-contrast) calc(l * .9) calc(c * 1.15) h);\n --btn-disabled-bg: var(--theme-bg);\n --btn-disabled-color: var(--theme-contrast);\n --btn-disabled-border-color: var(--theme-bg);\n }\n .btn-solid:hover {\n --btn-hover-bg: oklch(from var(--theme-bg) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-border-color: oklch(from var(--theme-bg) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-color: oklch(from var(--theme-contrast) calc(l * .95) calc(c * 1.1) h);\n }\n .btn-solid:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n .btn-solid:active, .btn-solid.active, .btn-solid.btn-check:has(input:checked) {\n --btn-active-bg: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-border-color: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-color: oklch(from var(--theme-contrast) calc(l * .9) calc(c * 1.15) h);\n }\n .btn-solid:disabled, .btn-solid.disabled, .btn-solid.btn-check:has(input:disabled) {\n --btn-disabled-bg: var(--theme-bg);\n --btn-disabled-color: var(--theme-contrast);\n --btn-disabled-border-color: var(--theme-bg);\n }\n .btn-outline {\n --btn-bg: transparent;\n --btn-color: var(--theme-fg);\n --btn-border-color: var(--theme-border);\n --btn-active-bg: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-color: oklch(from var(--theme-contrast) calc(l * .9) calc(c * 1.15) h);\n --btn-active-border-color: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-disabled-bg: transparent;\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-border-color: var(--theme-border);\n }\n .btn-outline:hover {\n --btn-hover-bg: oklch(from var(--theme-bg) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-color: oklch(from var(--theme-contrast) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-border-color: oklch(from var(--theme-bg) calc(l * .95) calc(c * 1.1) h);\n }\n .btn-outline:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n .btn-outline:active, .btn-outline.active, .btn-outline.btn-check:has(input:checked) {\n --btn-active-bg: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-color: oklch(from var(--theme-contrast) calc(l * .9) calc(c * 1.15) h);\n --btn-active-border-color: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n }\n .btn-outline:disabled, .btn-outline.disabled, .btn-outline.btn-check:has(input:disabled) {\n --btn-disabled-bg: transparent;\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-border-color: var(--theme-border);\n }\n .btn-subtle {\n --btn-bg: var(--theme-bg-subtle);\n --btn-color: var(--theme-fg);\n --btn-border-color: transparent;\n --btn-active-bg: var(--theme-bg-subtle);\n --btn-active-color: oklch(from var(--theme-fg-emphasis) calc(l * .9) calc(c * 1.15) h);\n --btn-disabled-bg: var(--theme-bg-subtle);\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-border-color: transparent;\n }\n .btn-subtle:hover {\n --btn-hover-bg: color-mix(in oklch, var(--theme-bg-muted) 50%, var(--theme-bg-subtle));\n --btn-hover-color: oklch(from var(--theme-fg-emphasis) calc(l * .95) calc(c * 1.1) h);\n }\n .btn-subtle:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n .btn-subtle:active, .btn-subtle.active, .btn-subtle.btn-check:has(input:checked) {\n --btn-active-bg: var(--theme-bg-subtle);\n --btn-active-color: oklch(from var(--theme-fg-emphasis) calc(l * .9) calc(c * 1.15) h);\n }\n .btn-subtle:disabled, .btn-subtle.disabled, .btn-subtle.btn-check:has(input:disabled) {\n --btn-disabled-bg: var(--theme-bg-subtle);\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-border-color: transparent;\n }\n .btn-text {\n --btn-color: var(--theme-fg);\n --btn-bg: transparent;\n --btn-border-color: transparent;\n --btn-active-color: oklch(from var(--theme-fg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-bg: var(--theme-bg-subtle);\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-bg: transparent;\n --btn-disabled-border-color: transparent;\n }\n .btn-text:hover {\n --btn-hover-color: oklch(from var(--theme-fg) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-bg: var(--theme-bg-subtle);\n }\n .btn-text:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n .btn-text:active, .btn-text.active, .btn-text.btn-check:has(input:checked) {\n --btn-active-color: oklch(from var(--theme-fg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-bg: var(--theme-bg-subtle);\n }\n .btn-text:disabled, .btn-text.disabled, .btn-text.btn-check:has(input:disabled) {\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-bg: transparent;\n --btn-disabled-border-color: transparent;\n }\n .btn-link {\n --btn-font-weight: var(--font-weight-normal);\n --btn-color: var(--link-color);\n --btn-bg: transparent;\n --btn-border-color: transparent;\n --btn-hover-color: var(--link-hover-color);\n --btn-hover-bg: transparent;\n --btn-hover-border-color: transparent;\n --btn-active-color: var(--link-hover-color);\n --btn-active-bg: transparent;\n --btn-active-border-color: transparent;\n --btn-disabled-color: var(--fg-3);\n --btn-disabled-border-color: transparent;\n color: var(--theme-fg, var(--btn-color));\n text-decoration: var(--link-decoration);\n background-image: none;\n }\n .btn-link:focus-visible {\n color: var(--theme-fg, var(--btn-color));\n }\n .btn-link:hover {\n color: var(--theme-fg-emphasis, var(--btn-hover-color));\n }\n .btn-xs,\n .btn-group-xs > [class*=btn-] {\n --btn-min-height: var(--btn-input-xs-min-height);\n --btn-padding-y: var(--btn-input-xs-padding-y);\n --btn-padding-x: var(--btn-input-xs-padding-x);\n --btn-font-size: var(--btn-input-xs-font-size);\n --btn-line-height: var(--btn-input-xs-line-height);\n --btn-border-radius: var(--btn-input-xs-border-radius);\n }\n .btn-sm,\n .btn-group-sm > [class*=btn-] {\n --btn-min-height: var(--btn-input-sm-min-height);\n --btn-padding-y: var(--btn-input-sm-padding-y);\n --btn-padding-x: var(--btn-input-sm-padding-x);\n --btn-font-size: var(--btn-input-sm-font-size);\n --btn-line-height: var(--btn-input-sm-line-height);\n --btn-border-radius: var(--btn-input-sm-border-radius);\n }\n .btn-lg,\n .btn-group-lg > [class*=btn-] {\n --btn-min-height: var(--btn-input-lg-min-height);\n --btn-padding-y: var(--btn-input-lg-padding-y);\n --btn-padding-x: var(--btn-input-lg-padding-x);\n --btn-font-size: var(--btn-input-lg-font-size);\n --btn-line-height: var(--btn-input-lg-line-height);\n --btn-border-radius: var(--btn-input-lg-border-radius);\n }\n .btn-icon {\n align-items: center;\n justify-content: center;\n aspect-ratio: 1;\n padding: 0;\n }\n .btn-check > input {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n .btn-check:has(input:checked) {\n color: var(--btn-active-color);\n background-color: var(--btn-active-bg, var(--bg-3));\n background-image: none;\n border-color: var(--btn-active-border-color);\n box-shadow: var(--btn-active-shadow);\n }\n .btn-check:has(input:focus-visible) {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: 1px;\n }\n .btn-check:has(input:disabled) {\n color: var(--btn-disabled-color);\n pointer-events: none;\n background-color: var(--btn-disabled-bg, var(--bg-1));\n background-image: none;\n border-color: var(--btn-disabled-border-color);\n opacity: var(--btn-disabled-opacity);\n box-shadow: none;\n }\n .btn-styled {\n --btn-gradient-start: rgba(255, 255, 255, 0.125);\n --btn-gradient-end: rgba(0, 0, 0, 0.075);\n --btn-border-mix-color: #000;\n --btn-border-mix-amount: 10%;\n --btn-border-hover-mix-amount: 12.5%;\n --btn-border-active-mix-amount: 20%;\n --btn-shadow: 0 1px 2px rgb(0 0 0 / 15%), inset 0 1px 0 rgb(255 255 255 / 10%);\n --btn-active-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n background-image: linear-gradient(to bottom, var(--btn-gradient-start), var(--btn-gradient-end));\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-mix-amount));\n box-shadow: var(--btn-shadow);\n }\n .btn-styled:hover {\n background-image: linear-gradient(to bottom, var(--btn-gradient-start), var(--btn-gradient-end));\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-hover-mix-amount));\n }\n .btn-styled:active, .btn-styled.active {\n background-image: none;\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-active-mix-amount));\n box-shadow: var(--btn-active-shadow);\n }\n .btn-styled:disabled, .btn-styled.disabled {\n background-image: none;\n box-shadow: none;\n }\n}\n@layer components {\n .btn-group,\n .btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n }\n .btn-group > [class*=btn-],\n .btn-group-vertical > [class*=btn-] {\n position: relative;\n flex: 1 1 auto;\n }\n .btn-group > [class*=btn-]:hover,\n .btn-group-vertical > [class*=btn-]:hover {\n z-index: 1;\n }\n .btn-group > .btn-check:has(input:checked),\n .btn-group > [class*=btn-]:active,\n .btn-group > [class*=btn-].active,\n .btn-group-vertical > .btn-check:has(input:checked),\n .btn-group-vertical > [class*=btn-]:active,\n .btn-group-vertical > [class*=btn-].active {\n z-index: 2;\n }\n .btn-group > .btn-check:has(input:focus),\n .btn-group > [class*=btn-]:focus,\n .btn-group-vertical > .btn-check:has(input:focus),\n .btn-group-vertical > [class*=btn-]:focus {\n z-index: 3;\n }\n .btn-group-divider > [class*=btn-] + [class*=btn-]::before {\n position: absolute;\n z-index: 3;\n content: \"\";\n background-color: var(--btn-color);\n opacity: 0.25;\n }\n .btn-group:where(.btn-group-divider) > [class*=btn-] + [class*=btn-]::before {\n top: 25%;\n bottom: 25%;\n left: calc(var(--btn-border-width) * -1);\n width: var(--btn-border-width);\n }\n .btn-group-vertical:where(.btn-group-divider) > [class*=btn-] + [class*=btn-]::before {\n top: calc(var(--btn-border-width) * -1);\n right: var(--btn-padding-x);\n left: var(--btn-padding-x);\n height: var(--btn-border-width);\n }\n .btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n justify-content: flex-start;\n }\n .btn-toolbar .input-group {\n width: auto;\n }\n .btn-group {\n border-radius: var(--btn-border-radius);\n }\n .btn-group > [class*=btn-]:not(:first-child),\n .btn-group > .btn-group:not(:first-child) {\n margin-inline-start: calc(-1 * var(--btn-border-width));\n }\n .btn-group > [class*=btn-]:not(:last-child, :has(+ .menu)),\n .btn-group > .btn-group:not(:last-child) > [class*=btn-] {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .btn-group > [class*=btn-]:not(:first-child),\n .btn-group > .btn-group:not(:first-child) > [class*=btn-] {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n }\n .btn-group-vertical > [class*=btn-],\n .btn-group-vertical > .btn-group {\n width: 100%;\n }\n .btn-group-vertical > [class*=btn-]:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: calc(-1 * var(--btn-border-width));\n }\n .btn-group-vertical > [class*=btn-]:not(:last-child, :has(+ .menu)),\n .btn-group-vertical > .btn-group:not(:last-child) > [class*=btn-] {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .btn-group-vertical > [class*=btn-]:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) > [class*=btn-] {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n}\n@layer components {\n .btn-close {\n --btn-close-size: 1.25rem;\n --btn-close-color: inherit;\n --btn-close-opacity: 0.5;\n --btn-close-hover-opacity: 0.75;\n --btn-close-focus-opacity: 0.85;\n --btn-close-disabled-opacity: 0.25;\n box-sizing: content-box;\n width: var(--btn-close-size);\n height: var(--btn-close-size);\n padding: 0;\n color: var(--btn-close-color);\n background: transparent;\n border: 0;\n border-radius: var(--radius-5);\n opacity: var(--btn-close-opacity);\n }\n .btn-close > svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: currentcolor;\n }\n .btn-close:hover {\n color: var(--btn-close-color);\n text-decoration: none;\n opacity: var(--btn-close-hover-opacity);\n }\n .btn-close:focus-visible {\n opacity: var(--btn-close-focus-opacity);\n outline: var(--focus-ring);\n }\n .btn-close:disabled, .btn-close.disabled {\n pointer-events: none;\n user-select: none;\n opacity: var(--btn-close-disabled-opacity);\n }\n}\n@layer components {\n .accordion {\n --accordion-padding-x: 1.25rem;\n --accordion-padding-y: 1rem;\n --accordion-color: var(--fg-body);\n --accordion-bg: var(--bg-body);\n --accordion-transition-property: color, background-color, border-radius;\n --accordion-transition-timing: .15s ease-in-out;\n --accordion-transition: var(--accordion-transition-property) var(--accordion-timing);\n --accordion-border-color: var(--border-color);\n --accordion-border-width: var(--border-width);\n --accordion-border-radius: var(--accordion-radius, var(--radius-7));\n --accordion-btn-color: var(--fg-2);\n --accordion-btn-bg: var(--bg-body);\n --accordion-btn-icon-width: 1rem;\n --accordion-btn-icon-transform: rotate(-180deg);\n --accordion-btn-icon-transition: transform 0.2s ease-in-out;\n --accordion-active-color: var(--fg);\n --accordion-active-bg: var(--bg-2);\n }\n .accordion-header {\n display: flex;\n align-items: center;\n width: 100%;\n padding: var(--accordion-btn-padding-y, var(--accordion-padding-y)) var(--accordion-btn-padding-x, var(--accordion-padding-x));\n font-size: var(--accordion-font-size, var(--font-size-base));\n color: var(--accordion-btn-color);\n text-align: start;\n list-style: none;\n cursor: pointer;\n background-color: var(--accordion-btn-bg);\n transition: var(--accordion-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .accordion-header {\n transition: none;\n }\n }\n .accordion-header::-webkit-details-marker {\n display: none;\n }\n .accordion-header .accordion-icon {\n flex-shrink: 0;\n width: var(--accordion-btn-icon-width);\n height: var(--accordion-btn-icon-width);\n margin-inline-start: auto;\n color: currentcolor;\n transition: var(--accordion-btn-icon-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .accordion-header .accordion-icon {\n transition: none;\n }\n }\n .accordion-header:hover {\n z-index: 2;\n }\n .accordion-header:focus-visible {\n position: relative;\n z-index: 3;\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n outline-offset: -1px;\n }\n .accordion-item {\n color: var(--accordion-color);\n background-color: var(--accordion-bg);\n border: var(--accordion-border-width) solid var(--accordion-border-color);\n }\n .accordion-item:first-of-type {\n border-start-start-radius: var(--accordion-border-radius);\n border-start-end-radius: var(--accordion-border-radius);\n }\n .accordion-item:first-of-type > .accordion-header {\n border-start-start-radius: calc(var(--accordion-border-radius) - var(--accordion-border-width));\n border-start-end-radius: calc(var(--accordion-border-radius) - var(--accordion-border-width));\n }\n .accordion-item:not(:first-of-type) {\n border-block-start: 0;\n }\n .accordion-item:last-of-type {\n border-end-start-radius: var(--accordion-border-radius);\n border-end-end-radius: var(--accordion-border-radius);\n }\n .accordion-item:last-of-type > .accordion-header {\n border-end-start-radius: calc(var(--accordion-border-radius) - var(--accordion-border-width));\n border-end-end-radius: calc(var(--accordion-border-radius) - var(--accordion-border-width));\n }\n .accordion-item:last-of-type > .accordion-body {\n border-end-start-radius: var(--accordion-border-radius);\n border-end-end-radius: var(--accordion-border-radius);\n }\n .accordion-item[open] {\n border-color: var(--theme-border, var(--accordion-border-color));\n }\n .accordion-item[open] > .accordion-header {\n color: var(--theme-fg, var(--accordion-active-color));\n background-color: var(--theme-bg-subtle, var(--accordion-active-bg));\n box-shadow: inset 0 calc(-1 * var(--accordion-border-width)) 0 var(--theme-border, var(--accordion-border-color));\n }\n .accordion-item[open] > .accordion-header .accordion-icon {\n transform: var(--accordion-btn-icon-transform);\n }\n .accordion-item[open]:last-of-type > .accordion-header {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .accordion-body {\n padding: var(--accordion-body-padding-y, var(--accordion-padding-y)) var(--accordion-body-padding-x, var(--accordion-padding-x));\n }\n .accordion-flush > .accordion-item {\n border-inline: 0;\n border-radius: 0;\n }\n .accordion-flush > .accordion-item:first-child {\n border-block-start: 0;\n }\n .accordion-flush > .accordion-item:last-child {\n border-block-end: 0;\n }\n .accordion-flush > .accordion-item > .accordion-header,\n .accordion-flush > .accordion-item > .accordion-body {\n border-radius: 0;\n }\n}\n@layer components {\n .alert {\n --alert-gap: var(--spacer-3);\n --alert-bg: var(--theme-bg-subtle, var(--bg-1));\n --alert-padding-x: var(--spacer);\n --alert-padding-y: var(--spacer);\n --alert-color: var(--theme-fg, inherit);\n --alert-border-color: var(--theme-border, var(--border-color));\n --alert-border: var(--border-width) solid var(--alert-border-color);\n --alert-border-radius: var(--radius-5);\n --alert-link-color: inherit;\n --hr-border-color: var(--theme-border, var(--border-color));\n display: flex;\n gap: var(--alert-gap);\n align-items: start;\n padding: var(--alert-padding-y) var(--alert-padding-x);\n color: var(--alert-color);\n background-color: var(--alert-bg);\n border: var(--alert-border);\n border-radius: var(--alert-border-radius);\n }\n .alert > p {\n margin-bottom: 0;\n }\n .alert-heading {\n color: inherit;\n }\n .alert-link {\n font-weight: var(--font-weight-semibold);\n color: var(--alert-link-color);\n }\n}\n@layer components {\n .avatar {\n --avatar-size: 2.5rem;\n --avatar-border-radius: 50%;\n --avatar-border-width: 2px;\n --avatar-border-color: var(--bg-body);\n --avatar-bg: var(--bg-2);\n --avatar-color: var(--fg-body);\n --avatar-status-size: 0.75rem;\n --avatar-status-border-width: 2px;\n --avatar-status-border-color: var(--bg-body);\n --avatar-stack-spacing: -0.3;\n --avatar-stack-transition: transform .2s ease-in-out;\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--avatar-size);\n height: var(--avatar-size);\n font-size: calc(var(--avatar-size) * 0.4);\n font-weight: var(--avatar-font-weight, var(--font-weight-medium));\n line-height: 1;\n color: var(--theme-contrast, var(--avatar-color));\n text-transform: uppercase;\n vertical-align: middle;\n background-color: var(--theme-bg, var(--avatar-bg));\n border-radius: var(--avatar-border-radius);\n }\n .avatar-subtle {\n color: var(--theme-fg, var(--avatar-color));\n background-color: var(--theme-bg-subtle, var(--avatar-bg));\n }\n .avatar-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: inherit;\n }\n .avatar-status {\n position: absolute;\n right: calc(var(--avatar-status-border-width) * -1);\n bottom: calc(var(--avatar-status-border-width) * -1);\n width: var(--avatar-status-size);\n height: var(--avatar-status-size);\n background-color: var(--gray-400);\n border: var(--avatar-status-border-width) solid var(--avatar-status-border-color);\n border-radius: 50%;\n }\n .avatar-status.status-online {\n background-color: var(--green-500);\n }\n .avatar-status.status-offline {\n background-color: var(--gray-400);\n border-radius: 20%;\n }\n .avatar-status.status-busy {\n background-color: var(--red-500);\n border-radius: 20%;\n }\n .avatar-status.status-away {\n background-color: var(--yellow-500);\n }\n .avatar-stack {\n display: inline-flex;\n flex-direction: row-reverse;\n }\n .avatar-stack .avatar {\n margin-left: calc(var(--avatar-size) * var(--avatar-stack-spacing));\n border: var(--avatar-border-width) solid var(--avatar-border-color);\n mask-image: none;\n transition: var(--avatar-stack-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .avatar-stack .avatar {\n transition: none;\n }\n }\n .avatar-stack .avatar:last-child {\n margin-left: 0;\n }\n .avatar-stack .avatar:hover {\n z-index: 1;\n transform: translateY(-2px);\n }\n .avatar-xs,\n .avatar-stack-xs {\n --avatar-size: 1.5rem;\n --avatar-status-size: 0.625rem;\n }\n .avatar-sm,\n .avatar-stack-sm {\n --avatar-size: 2rem;\n }\n .avatar-lg,\n .avatar-stack-lg {\n --avatar-size: 3rem;\n --avatar-status-size: 1rem;\n }\n .avatar-xl,\n .avatar-stack-xl {\n --avatar-size: 4rem;\n --avatar-status-size: 1.25rem;\n }\n}\n@layer components {\n .badge {\n --badge-padding-x: 0.625em;\n --badge-padding-y: 0.25em;\n --badge-font-size: clamp(12px, 0.75em, 0.75em);\n --badge-font-weight: var(--font-weight-semibold);\n --badge-color: inherit;\n --badge-bg: var(--bg-2);\n --badge-border-width: var(--border-width);\n --badge-border-color: transparent;\n --badge-border-radius: var(--radius-7);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 1.375rem;\n padding: var(--badge-padding-y) var(--badge-padding-x);\n font-size: var(--badge-font-size);\n font-weight: var(--badge-font-weight);\n line-height: 1;\n color: var(--theme-contrast, var(--badge-color));\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n background-color: var(--theme-bg, var(--badge-bg));\n border: var(--badge-border-width) solid var(--badge-border-color);\n border-radius: var(--badge-border-radius);\n }\n .badge:empty {\n display: none;\n }\n .btn .badge {\n position: relative;\n top: -1px;\n }\n .badge-subtle {\n --badge-color: var(--theme-fg);\n --badge-bg: var(--theme-bg-subtle);\n --badge-border-color: transparent;\n color: var(--badge-color);\n background-color: var(--badge-bg);\n border-color: var(--badge-border-color);\n }\n .badge-outline {\n --badge-color: var(--theme-fg);\n --badge-bg: transparent;\n --badge-border-color: var(--theme-border);\n color: var(--badge-color);\n background-color: var(--badge-bg);\n border-color: var(--badge-border-color);\n }\n}\n@layer components {\n .breadcrumb {\n --breadcrumb-margin-bottom: 1rem;\n --breadcrumb-font-size: inherit;\n --breadcrumb-bg: transparent;\n --breadcrumb-border-radius: var(--radius-5);\n --breadcrumb-divider-color: var(--fg-4);\n --breadcrumb-link-padding-x: 0.75rem;\n --breadcrumb-link-padding-y: 0.25rem;\n --breadcrumb-link-color: var(--fg-3);\n --breadcrumb-link-hover-color: var(--fg-2);\n --breadcrumb-link-hover-bg: var(--bg-1);\n --breadcrumb-link-active-color: var(--fg-1);\n --breadcrumb-link-border-radius: var(--radius-7);\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n padding: var(--breadcrumb-padding-y, 0) var(--breadcrumb-padding-x, 0);\n font-size: var(--breadcrumb-font-size);\n list-style: none;\n background-color: var(--breadcrumb-bg);\n border-radius: var(--breadcrumb-border-radius);\n }\n .breadcrumb-item {\n display: flex;\n }\n .breadcrumb-divider {\n margin-inline: calc(var(--breadcrumb-link-padding-x) / 4);\n color: var(--breadcrumb-divider-color);\n }\n .breadcrumb-link {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 2.25rem;\n padding: var(--breadcrumb-link-padding-y) var(--breadcrumb-link-padding-x);\n color: var(--breadcrumb-link-color);\n text-decoration: none;\n border-radius: var(--breadcrumb-link-border-radius);\n transition: 0.1s text-decoration-color ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .breadcrumb-link {\n transition: none;\n }\n }\n .breadcrumb-link:hover {\n z-index: 2;\n color: var(--breadcrumb-link-hover-color);\n background-color: var(--breadcrumb-link-hover-bg);\n }\n .breadcrumb-link.active {\n color: var(--breadcrumb-link-active-color);\n }\n}\n@layer components {\n .chip {\n --chip-height: 1.75rem;\n --chip-padding-x: 0.625rem;\n --chip-gap: 0.3125rem;\n --chip-border-radius: var(--radius-pill);\n --chip-img-size: 1.25rem;\n --chip-icon-size: 1rem;\n --chip-dismiss-size: 1rem;\n --chip-dismiss-opacity: 0.65;\n --chip-dismiss-hover-opacity: 1;\n --chip-color: var(--theme-fg, var(--fg-body));\n --chip-bg: var(--theme-bg-subtle, var(--bg-2));\n --chip-border-color: transparent;\n --chip-selected-color: var(--theme-contrast, var(--primary-contrast));\n --chip-selected-bg: var(--theme-bg, var(--primary-bg));\n --chip-selected-border-color: var(--theme-bg, var(--primary-bg));\n display: inline-flex;\n gap: var(--chip-gap);\n align-items: center;\n height: var(--chip-height);\n padding-inline: var(--chip-padding-x);\n font-size: var(--chip-font-size, var(--font-size-sm));\n font-weight: var(--chip-font-weight, var(--font-weight-base));\n line-height: var(--chip-line-height, 1.25rem);\n color: var(--chip-color);\n text-decoration: none;\n white-space: nowrap;\n vertical-align: middle;\n cursor: pointer;\n background-color: var(--chip-bg);\n border: var(--border-width) solid var(--chip-border-color);\n border-radius: var(--chip-border-radius);\n }\n .chip:hover {\n --chip-bg: var(--theme-bg-muted, var(--bg-3));\n }\n .chip:focus-visible {\n outline: 0;\n }\n .chip.active {\n --chip-color: var(--chip-selected-color);\n --chip-bg: var(--chip-selected-bg);\n --chip-border-color: var(--chip-selected-border-color);\n }\n .chip.active:hover {\n --chip-bg: var(--chip-selected-bg);\n opacity: 0.9;\n }\n .chip.disabled, .chip:disabled {\n pointer-events: none;\n opacity: 0.65;\n }\n .chip-img {\n width: var(--chip-img-size);\n height: var(--chip-img-size);\n border-radius: 50%;\n }\n .chip-img:first-child {\n margin-inline-start: -0.375rem;\n }\n .chip-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n margin-inline-start: calc(var(--chip-gap) * -0.25);\n }\n .chip-icon > svg {\n display: block;\n width: var(--chip-icon-size);\n height: var(--chip-icon-size);\n }\n .chip-icon > img {\n width: var(--chip-icon-size);\n height: var(--chip-icon-size);\n object-fit: cover;\n border-radius: 50%;\n }\n .chip-dismiss {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--chip-min-height);\n height: var(--chip-min-height);\n padding: 0;\n margin-inline-end: calc(var(--chip-padding-x) * -0.25);\n color: inherit;\n cursor: pointer;\n background: transparent;\n border: 0;\n opacity: var(--chip-dismiss-opacity);\n }\n .chip-dismiss:hover {\n opacity: var(--chip-dismiss-hover-opacity);\n }\n .chip-dismiss:focus-visible {\n outline: 0;\n opacity: 1;\n outline: var(--focus-ring);\n }\n .chip-dismiss > svg {\n display: block;\n width: var(--chip-dismiss-size);\n height: var(--chip-dismiss-size);\n }\n}\n@layer components {\n .card {\n --card-spacer-y: var(--spacer-5);\n --card-spacer-x: var(--spacer-5);\n --card-subtitle-color: inherit;\n --card-border-width: var(--border-width);\n --card-border-color: var(--border-color-translucent);\n --card-border-radius: var(--radius-7);\n --card-box-shadow: none;\n --card-inner-border-radius: calc(var(--radius-7) - var(--border-width));\n --card-cap-padding-y: var(--spacer-3);\n --card-cap-padding-x: var(--spacer);\n --card-cap-bg: var(--bg-1);\n --card-cap-color: inherit;\n --card-height: auto;\n --card-color: inherit;\n --card-bg: var(--bg-body);\n --card-img-overlay-padding: var(--card-spacer-y);\n --card-group-margin: 0.75rem;\n --card-body-gap: calc(var(--card-spacer-y) * 0.5);\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n height: var(--card-height);\n color: var(--fg-body);\n word-wrap: break-word;\n background-color: var(--card-bg);\n box-shadow: var(--card-box-shadow);\n }\n .card > hr {\n margin-inline: 0;\n }\n .card-body {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n gap: var(--card-body-gap);\n align-items: flex-start;\n padding: var(--card-spacer-y) var(--card-spacer-x);\n color: var(--card-color);\n border: solid var(--theme-bg, var(--card-border-color));\n border-width: 0 var(--card-border-width);\n }\n .card-body > * {\n margin-block: 0;\n }\n .card-body,\n .card-list {\n border: solid var(--theme-bg, var(--card-border-color));\n border-width: 0 var(--card-border-width);\n }\n .card-body:first-child,\n .card-list:first-child {\n border-start-start-radius: var(--card-border-radius);\n border-start-end-radius: var(--card-border-radius);\n border-top-width: var(--card-border-width);\n }\n .card-body:last-child,\n .card-list:last-child {\n border-end-start-radius: var(--card-border-radius);\n border-end-end-radius: var(--card-border-radius);\n border-bottom-width: var(--card-border-width);\n }\n .card-body:not(:first-child, :last-child),\n .card-list:not(:first-child, :last-child) {\n border-block-end-width: var(--card-border-width);\n }\n .card-title,\n .card-subtitle,\n .card-text {\n align-self: stretch;\n }\n .card-subtitle {\n margin-top: calc(var(--card-body-gap) * -0.5);\n }\n .card-header {\n padding: var(--card-cap-padding-y) var(--card-cap-padding-x);\n margin-bottom: 0;\n color: var(--theme-contrast, var(--card-cap-color));\n background-color: var(--theme-bg, var(--card-cap-bg));\n border: var(--card-border-width) solid var(--theme-bg, var(--card-border-color));\n }\n .card-header:first-child {\n border-radius: var(--card-inner-border-radius) var(--card-inner-border-radius) 0 0;\n }\n .card-footer {\n padding: var(--card-cap-padding-y) var(--card-cap-padding-x);\n color: var(--card-cap-color);\n background-color: var(--theme-bg, var(--card-cap-bg));\n border: var(--card-border-width) solid var(--theme-bg, var(--card-border-color));\n }\n .card-footer:last-child {\n border-radius: 0 0 var(--card-inner-border-radius) var(--card-inner-border-radius);\n }\n .card-translucent {\n background-color: color-mix(in oklch, var(--card-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n .card-translucent .card-header,\n .card-translucent .card-footer {\n background-color: color-mix(in oklch, var(--card-cap-bg) 60%, transparent);\n }\n .card-subtle {\n border-color: var(--theme-border, var(--card-border-color));\n }\n .card-subtle .card-header {\n color: var(--theme-fg-emphasis, currentcolor);\n background-color: var(--theme-bg-subtle, var(--card-cap-bg));\n border-color: var(--theme-border, var(--card-border-color));\n }\n .card-subtle .card-footer {\n color: var(--theme-fg-emphasis, currentcolor);\n background-color: var(--theme-bg-subtle, var(--card-cap-bg));\n border-color: var(--theme-border, var(--card-border-color));\n }\n .card-subtle .card-body,\n .card-subtle .card-list {\n border-color: var(--theme-border, var(--card-border-color));\n }\n .nav.card-header-tabs {\n margin-inline: calc(-0.5 * var(--card-cap-padding-x));\n margin-bottom: calc(-1 * var(--card-cap-padding-y));\n border-block-end: 0;\n }\n .nav.card-header-tabs .nav-link.active {\n background-color: var(--card-bg);\n border-block-end-color: var(--card-bg);\n }\n .card-img-overlay {\n position: absolute;\n inset: 0;\n padding: var(--card-img-overlay-padding);\n border-radius: var(--card-inner-border-radius);\n }\n .card-img,\n .card-img-top,\n .card-img-bottom {\n width: 100%;\n outline: var(--card-border-width) solid var(--card-border-color);\n outline-offset: calc(var(--card-border-width) * -1);\n }\n .card-img,\n .card-img-top {\n border-start-start-radius: var(--card-inner-border-radius);\n border-start-end-radius: var(--card-inner-border-radius);\n }\n .card-img,\n .card-img-bottom {\n border-end-start-radius: var(--card-inner-border-radius);\n border-end-end-radius: var(--card-inner-border-radius);\n }\n .card-row {\n flex-direction: row;\n }\n .card-row .card-body,\n .card-row .card-list {\n border-width: var(--card-border-width) 0;\n border-radius: 0;\n }\n .card-row .card-body:first-child,\n .card-row .card-list:first-child {\n border-start-start-radius: var(--card-inner-border-radius);\n border-end-start-radius: var(--card-inner-border-radius);\n border-inline-start-width: var(--card-border-width);\n }\n .card-row .card-body:last-child,\n .card-row .card-list:last-child {\n border-start-end-radius: var(--card-inner-border-radius);\n border-end-end-radius: var(--card-inner-border-radius);\n border-inline-end-width: var(--card-border-width);\n }\n .card-row .card-body:not(:first-child, :last-child),\n .card-row .card-list:not(:first-child, :last-child) {\n border-inline-end-width: var(--card-border-width);\n }\n .card-img-start {\n border-start-start-radius: var(--card-inner-border-radius);\n border-end-start-radius: var(--card-inner-border-radius);\n }\n .card-img-end {\n border-start-end-radius: var(--card-inner-border-radius);\n border-end-end-radius: var(--card-inner-border-radius);\n }\n .card-group > .card {\n margin-bottom: var(--card-group-margin);\n }\n @media (width >= 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-inline-start: 0;\n border-inline-start: 0;\n }\n .card-group > .card:not(:last-child) {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .card-group > .card:not(:last-child) > .card-img-top,\n .card-group > .card:not(:last-child) > .card-header,\n .card-group > .card:not(:last-child) > .card-body {\n border-start-end-radius: 0;\n }\n .card-group > .card:not(:last-child) > .card-img-bottom,\n .card-group > .card:not(:last-child) > .card-footer,\n .card-group > .card:not(:last-child) > .card-body {\n border-end-end-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .card-group > .card:not(:first-child) > .card-img-top,\n .card-group > .card:not(:first-child) > .card-header,\n .card-group > .card:not(:first-child) > .card-body {\n border-start-start-radius: 0;\n }\n .card-group > .card:not(:first-child) > .card-img-bottom,\n .card-group > .card:not(:first-child) > .card-footer,\n .card-group > .card:not(:first-child) > .card-body {\n border-end-start-radius: 0;\n }\n }\n}\n@layer components {\n .carousel {\n position: relative;\n --carousel-control-color: #fff;\n --carousel-control-width: 15%;\n --carousel-control-opacity: 0.5;\n --carousel-control-hover-opacity: 0.9;\n --carousel-control-transition: opacity 0.15s ease;\n --carousel-control-icon-filter: none;\n --carousel-indicator-width: 30px;\n --carousel-indicator-height: 3px;\n --carousel-indicator-hit-area-height: 10px;\n --carousel-indicator-spacer: 3px;\n --carousel-indicator-opacity: 0.5;\n --carousel-indicator-active-bg: var(--white);\n --carousel-indicator-active-opacity: 1;\n --carousel-indicator-transition: opacity 0.6s ease;\n --carousel-caption-width: 70%;\n --carousel-caption-color: var(--white);\n --carousel-caption-padding-y: 1.25rem;\n --carousel-caption-spacer: 1.25rem;\n --carousel-control-icon-width: 2rem;\n --carousel-control-prev-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/></svg>\");\n --carousel-control-next-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/></svg>\");\n --carousel-transition-duration: 0.6s;\n --carousel-transition: transform 0.6s ease-in-out;\n }\n .carousel.pointer-event {\n touch-action: pan-y;\n }\n .carousel-inner {\n position: relative;\n display: flow-root;\n width: 100%;\n overflow: hidden;\n }\n .carousel-item {\n position: relative;\n display: none;\n float: inline-start;\n width: 100%;\n margin-inline-end: -100%;\n backface-visibility: hidden;\n transition: var(--carousel-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n }\n .carousel-item.active,\n .carousel-item-next,\n .carousel-item-prev {\n display: block;\n }\n .carousel-item-next:not(.carousel-item-start),\n .active.carousel-item-end {\n transform: translateX(100%);\n }\n .carousel-item-prev:not(.carousel-item-end),\n .active.carousel-item-start {\n transform: translateX(-100%);\n }\n .carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n }\n .carousel-fade .carousel-item.active,\n .carousel-fade .carousel-item-next.carousel-item-start,\n .carousel-fade .carousel-item-prev.carousel-item-end {\n z-index: 1;\n opacity: 1;\n }\n .carousel-fade .active.carousel-item-start,\n .carousel-fade .active.carousel-item-end {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s var(--carousel-transition-duration);\n }\n @media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-start,\n .carousel-fade .active.carousel-item-end {\n transition: none;\n }\n }\n .carousel-control-prev,\n .carousel-control-next {\n position: absolute;\n inset-block: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--carousel-control-width);\n padding: 0;\n color: var(--carousel-control-color);\n text-align: center;\n background: none;\n filter: var(--carousel-control-icon-filter);\n border: 0;\n opacity: var(--carousel-control-opacity);\n transition: var(--carousel-control-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n }\n .carousel-control-prev:hover, .carousel-control-prev:focus,\n .carousel-control-next:hover,\n .carousel-control-next:focus {\n color: var(--carousel-control-color);\n text-decoration: none;\n outline: 0;\n opacity: var(--carousel-control-hover-opacity);\n }\n .carousel-control-prev {\n inset-inline-start: 0;\n background-image: linear-gradient(90deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.001));\n }\n .carousel-control-next {\n inset-inline-end: 0;\n background-image: linear-gradient(270deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.001));\n }\n .carousel-control-prev-icon,\n .carousel-control-next-icon {\n display: inline-block;\n width: var(--carousel-control-icon-width);\n height: var(--carousel-control-icon-width);\n background-repeat: no-repeat;\n background-position: 50%;\n background-size: 100% 100%;\n }\n .carousel-control-prev-icon {\n background-image: var(--carousel-control-prev-icon-bg);\n }\n [dir=rtl] .carousel-control-prev-icon {\n background-image: var(--carousel-control-next-icon-bg);\n }\n .carousel-control-next-icon {\n background-image: var(--carousel-control-next-icon-bg);\n }\n [dir=rtl] .carousel-control-next-icon {\n background-image: var(--carousel-control-prev-icon-bg);\n }\n .carousel-indicators {\n position: absolute;\n inset: auto 0 0;\n z-index: 2;\n display: flex;\n justify-content: center;\n padding: 0;\n margin-inline: var(--carousel-control-width);\n margin-bottom: 1rem;\n }\n .carousel-indicators [data-bs-target] {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: var(--carousel-indicator-width);\n height: var(--carousel-indicator-height);\n padding: 0;\n margin-inline: var(--carousel-indicator-spacer);\n text-indent: -999px;\n cursor: pointer;\n background-color: var(--carousel-indicator-active-bg);\n background-clip: padding-box;\n border: 0;\n border-block: var(--carousel-indicator-hit-area-height) solid transparent;\n opacity: var(--carousel-indicator-opacity);\n transition: var(--carousel-indicator-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .carousel-indicators [data-bs-target] {\n transition: none;\n }\n }\n .carousel-indicators .active {\n opacity: var(--carousel-indicator-active-opacity);\n }\n .carousel-caption {\n position: absolute;\n right: calc((100% - var(--carousel-caption-width)) * 0.5);\n bottom: var(--carousel-caption-spacer);\n left: calc((100% - var(--carousel-caption-width)) * 0.5);\n padding-top: var(--carousel-caption-padding-y);\n padding-bottom: var(--carousel-caption-padding-y);\n color: var(--carousel-caption-color);\n text-align: center;\n }\n .carousel-dark {\n --carousel-indicator-active-bg: #000;\n --carousel-caption-color: #000;\n --carousel-control-icon-filter: invert(1) grayscale(100);\n }\n @media (prefers-color-scheme: dark) {\n :root {\n --carousel-indicator-active-bg: #000;\n --carousel-caption-color: #000;\n --carousel-control-icon-filter: invert(1) grayscale(100);\n }\n }\n}\n@layer components {\n [data-vc=calendar] {\n --datepicker-padding: 1rem;\n --datepicker-bg: var(--bg-body);\n --datepicker-color: var(--fg-body);\n --datepicker-border-color: var(--border-color-translucent);\n --datepicker-border-width: var(--border-width);\n --datepicker-border-radius: var(--radius-7);\n --datepicker-box-shadow: var(--box-shadow);\n --datepicker-font-size: var(--font-size-sm);\n --datepicker-min-width: 280px;\n --datepicker-zindex: 1000;\n --datepicker-header-font-weight: 600;\n --datepicker-weekday-color: var(--fg-3);\n --datepicker-day-hover-bg: var(--bg-1);\n --datepicker-day-selected-bg: var(--primary-bg);\n --datepicker-day-selected-color: var(--primary-contrast);\n --datepicker-day-today-bg: var(--bg-2);\n --datepicker-day-today-color: var(--fg-1);\n --datepicker-day-disabled-color: var(--fg-4);\n position: absolute;\n z-index: var(--datepicker-zindex);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n min-width: var(--datepicker-min-width);\n padding: var(--datepicker-padding);\n font-family: var(--font-sans-serif);\n font-size: var(--datepicker-font-size);\n color: var(--datepicker-color);\n color-scheme: light dark;\n background-color: var(--datepicker-bg);\n border: var(--datepicker-border-width) solid var(--datepicker-border-color);\n box-shadow: var(--datepicker-box-shadow);\n opacity: 1;\n border-radius: var(--datepicker-border-radius);\n }\n [data-vc=calendar][data-bs-theme=light] {\n color-scheme: light;\n }\n [data-vc=calendar][data-bs-theme=dark] {\n color-scheme: dark;\n }\n [data-vc=calendar] button:focus-visible {\n position: relative;\n z-index: 1;\n outline: var(--focus-ring);\n }\n [data-vc-calendar-hidden] {\n pointer-events: none;\n opacity: 0;\n }\n [data-vc=calendar]:not([data-vc-input]) {\n position: relative;\n width: fit-content;\n padding: 0;\n border: 0;\n box-shadow: none;\n }\n [data-vc-position=bottom] {\n margin-block-start: 0.25rem;\n }\n [data-vc-position=top] {\n margin-block-end: -0.25rem;\n }\n [data-vc-arrow] {\n position: relative;\n display: block;\n width: 2rem;\n height: 2rem;\n color: var(--datepicker-color);\n pointer-events: auto;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n }\n [data-vc-arrow]::before {\n position: absolute;\n inset: 0.25rem;\n content: \"\";\n background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%236b7280' d='M12 16c-.3 0-.5-.1-.7-.3l-6-6c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l5.3 5.3 5.3-5.3c.4-.4 1-.4 1.4 0s.4 1 0 1.4l-6 6c-.2.2-.4.3-.7.3'/></svg>\");\n background-repeat: no-repeat;\n background-position: center;\n }\n [data-vc-arrow]:hover {\n background-color: var(--datepicker-day-hover-bg);\n }\n [data-vc-arrow=prev]::before {\n transform: rotate(90deg);\n }\n [data-vc-arrow=next]::before {\n transform: rotate(-90deg);\n }\n [data-vc=controls] {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 20;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: 1rem;\n padding-right: 1rem;\n padding-left: 1rem;\n pointer-events: none;\n }\n [data-vc=grid] {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n gap: 1.75rem;\n }\n [data-vc=column] {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n min-width: 240px;\n }\n [data-vc=header] {\n position: relative;\n display: flex;\n align-items: center;\n margin-bottom: 0.75rem;\n }\n [data-vc-header=content] {\n display: inline-flex;\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n white-space: pre-wrap;\n }\n [data-vc=month],\n [data-vc=year] {\n padding: 0.25rem 0.5rem;\n margin-inline: -0.125rem;\n font-size: 1rem;\n font-weight: var(--datepicker-header-font-weight);\n color: var(--datepicker-color);\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n }\n [data-vc=month]:disabled,\n [data-vc=year]:disabled {\n color: var(--datepicker-day-disabled-color);\n pointer-events: none;\n }\n [data-vc=month]:hover:not(:disabled),\n [data-vc=year]:hover:not(:disabled) {\n background-color: var(--datepicker-day-hover-bg);\n }\n [data-vc=content] {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n }\n [data-vc=months],\n [data-vc=years] {\n display: grid;\n flex-grow: 1;\n grid-template-columns: repeat(var(--vc-columns, 4), minmax(0, 1fr));\n row-gap: 1rem;\n column-gap: 0.25rem;\n align-items: center;\n }\n [data-vc=years] {\n --vc-columns: 5;\n }\n [data-vc-months-month],\n [data-vc-years-year] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 2.5rem;\n padding: 0.25rem;\n font-size: 0.75rem;\n font-weight: 600;\n line-height: 1rem;\n color: var(--datepicker-weekday-color);\n text-align: center;\n word-break: break-all;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n }\n [data-vc-months-month]:disabled,\n [data-vc-years-year]:disabled {\n color: var(--datepicker-day-disabled-color);\n pointer-events: none;\n }\n [data-vc-months-month]:hover:not(:disabled),\n [data-vc-years-year]:hover:not(:disabled) {\n background-color: var(--datepicker-day-hover-bg);\n }\n [data-vc-months-month][data-vc-months-month-selected], [data-vc-months-month][data-vc-years-year-selected],\n [data-vc-years-year][data-vc-months-month-selected],\n [data-vc-years-year][data-vc-years-year-selected] {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n }\n [data-vc-months-month][data-vc-months-month-selected]:hover, [data-vc-months-month][data-vc-years-year-selected]:hover,\n [data-vc-years-year][data-vc-months-month-selected]:hover,\n [data-vc-years-year][data-vc-years-year-selected]:hover {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n }\n [data-vc=week] {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n justify-items: center;\n margin-bottom: 0.5rem;\n }\n [data-vc-week-day] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 1.875rem;\n padding: 0;\n margin: 0;\n font-size: 0.75rem;\n font-weight: 600;\n line-height: 1rem;\n color: var(--datepicker-weekday-color);\n background-color: transparent;\n border: 0;\n }\n button[data-vc-week-day] {\n cursor: pointer;\n }\n [data-vc=dates] {\n pointer-events: none;\n }\n [data-vc-dates=row] {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n align-items: center;\n justify-items: center;\n width: 100%;\n }\n [data-vc-date] {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n pointer-events: auto;\n }\n [data-vc-date]:not(:has([data-vc-date-btn])), [data-vc-date][data-vc-date-disabled], [data-vc-date][data-vc-date-disabled] [data-vc-date-btn] {\n pointer-events: none;\n }\n [data-vc-date-btn] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 1.875rem;\n height: 100%;\n min-height: 1.875rem;\n padding: 0;\n font-size: 0.75rem;\n font-weight: 400;\n line-height: 1rem;\n color: var(--datepicker-color);\n cursor: pointer;\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n }\n [data-vc-date-btn]:hover {\n background-color: var(--datepicker-day-hover-bg);\n }\n [data-vc-date-today] [data-vc-date-btn] {\n font-weight: 600;\n color: var(--datepicker-day-today-color);\n background-color: var(--datepicker-day-today-bg);\n }\n [data-vc-date-month=next] [data-vc-date-btn],\n [data-vc-date-month=prev] [data-vc-date-btn] {\n opacity: 0.5;\n }\n [data-vc-date-disabled] [data-vc-date-btn] {\n color: var(--datepicker-day-disabled-color);\n }\n [data-vc-date-hover] [data-vc-date-btn] {\n background-color: var(--datepicker-day-hover-bg);\n border-radius: 0;\n }\n [data-vc-date-hover=first] [data-vc-date-btn] {\n border-start-start-radius: var(--radius-5);\n border-end-start-radius: var(--radius-5);\n }\n [data-vc-date-hover=last] [data-vc-date-btn] {\n border-start-end-radius: var(--radius-5);\n border-end-end-radius: var(--radius-5);\n }\n [data-vc-date-hover=first-and-last] [data-vc-date-btn] {\n border-radius: var(--radius-5);\n }\n [data-vc-date-selected=middle] [data-vc-date-btn] {\n border-radius: 0;\n opacity: 0.8;\n }\n [data-vc-date-selected] [data-vc-date-btn] {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n }\n [data-vc-date-selected=first] [data-vc-date-btn] {\n border-top-left-radius: var(--radius-5);\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: var(--radius-5);\n }\n [data-vc-date-selected=last] [data-vc-date-btn] {\n border-top-left-radius: 0;\n border-top-right-radius: var(--radius-5);\n border-bottom-right-radius: var(--radius-5);\n border-bottom-left-radius: 0;\n }\n [data-vc-date-selected=first-and-last] [data-vc-date-btn] {\n border-radius: var(--radius-5);\n }\n}\n@layer components {\n .dialog-open {\n overflow: hidden;\n }\n .dialog {\n --dialog-padding: 1rem;\n --dialog-width: 500px;\n --dialog-margin: 1.75rem;\n --dialog-color: var(--fg-body);\n --dialog-bg: var(--bg-body);\n --dialog-border-color: var(--border-color-translucent);\n --dialog-border-width: var(--border-width);\n --dialog-border-radius: var(--radius-7);\n --dialog-box-shadow: var(--box-shadow-lg);\n --dialog-transition-duration: 0.3s;\n --dialog-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --dialog-backdrop-bg: rgba(0, 0, 0, 0.5);\n --dialog-backdrop-blur: 8px;\n --dialog-header-padding: 1rem;\n --dialog-header-border-color: var(--border-color);\n --dialog-header-border-width: var(--border-width);\n --dialog-footer-padding: 1rem;\n --dialog-footer-border-color: var(--border-color);\n --dialog-footer-border-width: var(--border-width);\n --dialog-footer-gap: 0.5rem;\n display: flex;\n flex-direction: column;\n width: var(--dialog-width);\n max-width: calc(100% - var(--dialog-margin) * 2);\n max-height: calc(100% - var(--dialog-margin) * 2);\n padding: 0;\n margin: auto;\n overflow: visible;\n color: var(--dialog-color);\n visibility: hidden;\n background-color: var(--dialog-bg);\n background-clip: padding-box;\n border: var(--dialog-border-width) solid var(--dialog-border-color);\n border-radius: var(--dialog-border-radius);\n box-shadow: var(--dialog-box-shadow);\n }\n .dialog:not(.dialog-instant) {\n opacity: 0;\n transition: opacity var(--dialog-transition-duration) var(--dialog-transition-timing), transform var(--dialog-transition-duration) var(--dialog-transition-timing), visibility 0s var(--dialog-transition-duration);\n }\n @media (prefers-reduced-motion: reduce) {\n .dialog:not(.dialog-instant) {\n transition: none;\n }\n }\n .dialog:not(.dialog-instant).dialog-slide-down {\n transform: translateY(-3rem);\n }\n .dialog:not(.dialog-instant).dialog-slide-up {\n transform: translateY(3rem);\n }\n .dialog:not(.dialog-instant)[open]:not(.hiding) {\n overflow: visible;\n visibility: visible;\n opacity: 1;\n transition: opacity var(--dialog-transition-duration) var(--dialog-transition-timing), transform var(--dialog-transition-duration) var(--dialog-transition-timing), visibility 0s;\n }\n @media (prefers-reduced-motion: reduce) {\n .dialog:not(.dialog-instant)[open]:not(.hiding) {\n transition: none;\n }\n }\n .dialog:not(.dialog-instant)[open]:not(.hiding) {\n transform: none;\n }\n .dialog:not(.dialog-instant)[open].dialog-static:not(.hiding) {\n transform: scale(1.02);\n }\n .dialog:not(.dialog-instant)::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n transition: background-color var(--dialog-transition-duration) var(--dialog-transition-timing), backdrop-filter var(--dialog-transition-duration) var(--dialog-transition-timing), display var(--dialog-transition-duration) allow-discrete, overlay var(--dialog-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .dialog:not(.dialog-instant)::backdrop {\n transition: none;\n }\n }\n .dialog:not(.dialog-instant).hiding::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .dialog.dialog-instant::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n }\n .dialog[open]:not(.hiding) {\n overflow: visible;\n visibility: visible;\n opacity: 1;\n transform: none;\n }\n .dialog.dialog-nonmodal {\n position: fixed;\n inset-block-start: 50%;\n inset-inline-start: 50%;\n z-index: 1055;\n margin-inline: 0;\n transform: translate(-50%, -50%);\n }\n .dialog.dialog-scrollable[open] {\n max-height: calc(100% - var(--dialog-margin) * 2);\n }\n .dialog.dialog-scrollable[open] .dialog-body {\n overflow-y: auto;\n }\n @starting-style {\n .dialog:not(.dialog-instant)::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .dialog.dialog-swap-in:not(.dialog-instant)::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n }\n }\n .dialog-sm {\n --dialog-width: 280px;\n }\n .dialog-lg {\n --dialog-width: 800px;\n }\n .dialog-xl {\n --dialog-width: 1140px;\n }\n .dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n @media (width < 576px) {\n .sm-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n @media (width < 768px) {\n .md-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n @media (width < 1024px) {\n .lg-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n @media (width < 1280px) {\n .xl-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n @media (width < 1536px) {\n .\\32 xl-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n .dialog-header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n padding: var(--dialog-header-padding);\n border-block-end: var(--dialog-header-border-width) solid var(--dialog-header-border-color);\n }\n .dialog-header .btn-close {\n margin-inline-start: auto;\n }\n .dialog-title {\n margin-bottom: 0;\n line-height: 1.5;\n font-size: var(--font-size-md);\n }\n .dialog-body {\n position: relative;\n flex: 1 1 auto;\n padding: var(--dialog-padding);\n }\n .dialog-footer {\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n gap: var(--dialog-footer-gap);\n align-items: center;\n justify-content: flex-end;\n padding: var(--dialog-footer-padding);\n border-block-start: var(--dialog-footer-border-width) solid var(--dialog-footer-border-color);\n }\n}\n@layer components {\n .menu {\n --menu-zindex: 1000;\n --menu-gap: 0.125rem;\n --menu-min-width: 10rem;\n --menu-padding-x: 0.25rem;\n --menu-padding-y: 0.25rem;\n --menu-spacer: 0.125rem;\n --menu-font-size: var(--font-size-sm);\n --menu-color: var(--fg-body);\n --menu-bg: var(--bg-body);\n --menu-box-shadow: var(--box-shadow);\n --menu-divider-bg: var(--border-color-translucent);\n --menu-divider-margin-y: 0.125rem;\n --menu-divider-margin-x: 0.25rem;\n --menu-item-color: var(--menu-color, var(--fg-body));\n --menu-item-hover-color: var(--menu-color, var(--fg-body));\n --menu-item-hover-bg: var(--bg-1);\n --menu-item-active-color: var(--primary-contrast);\n --menu-item-active-bg: var(--primary-bg);\n --menu-item-disabled-color: var(--fg-3);\n --menu-item-gap: 0.5rem;\n --menu-item-padding-x: 0.75rem;\n --menu-item-padding-y: 0.25rem;\n --menu-item-border-radius: var(--radius-5);\n --menu-icon-size: 1rem;\n --menu-image-size: 1.5rem;\n --menu-description-font-size: var(--font-size-xs);\n --menu-check-color: currentcolor;\n --menu-header-color: var(--fg-3);\n --menu-header-padding-x: 0.75rem;\n --menu-header-padding-y: 0.25rem;\n --menu-transition-duration: 0.15s;\n --menu-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n position: absolute;\n z-index: var(--menu-zindex);\n display: none;\n flex-direction: column;\n gap: var(--menu-gap);\n min-width: var(--menu-min-width);\n max-height: var(--menu-max-height, none);\n padding: var(--menu-padding-y) var(--menu-padding-x);\n margin: 0;\n overflow-y: var(--menu-overflow-y, initial);\n overscroll-behavior: contain;\n font-size: var(--menu-font-size);\n color: var(--menu-color);\n text-align: start;\n list-style: none;\n background-color: var(--menu-bg);\n background-clip: padding-box;\n border: var(--menu-border-width, var(--border-width)) solid var(--menu-border-color, var(--border-color-translucent));\n border-radius: var(--menu-border-radius, var(--radius-7));\n box-shadow: var(--menu-box-shadow);\n opacity: 0;\n transform: scale(0.95);\n transform-origin: top start;\n }\n .menu[data-bs-placement^=top] {\n transform-origin: bottom start;\n }\n .menu[data-bs-placement=bottom-end] {\n transform-origin: top end;\n }\n .menu[data-bs-placement=top-end] {\n transform-origin: bottom end;\n }\n .menu[data-bs-placement^=left] {\n transform-origin: top end;\n }\n .menu {\n transition: opacity var(--menu-transition-duration) var(--menu-transition-timing), transform var(--menu-transition-duration) var(--menu-transition-timing), display var(--menu-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .menu {\n transition: none;\n }\n }\n .menu.show {\n display: flex;\n opacity: 1;\n transform: none;\n }\n @starting-style {\n .menu.show {\n opacity: 0;\n transform: scale(0.95);\n }\n }\n .menu-scrollable {\n --menu-max-height: 80dvh;\n --menu-overflow-y: auto;\n }\n .menu-translucent {\n --menu-item-hover-bg-light: color-mix(in oklch, var(--bg-1) 90%, transparent);\n --menu-item-hover-bg-dark: color-mix(in oklch, var(--bg-1) 80%, transparent);\n --menu-item-active-bg-light: color-mix(in oklch, var(--primary-bg) 80%, transparent);\n --menu-item-active-bg-dark: color-mix(in oklch, var(--primary-bg) 70%, transparent);\n --menu-item-active-bg: light-dark(var(--menu-item-active-bg-light), var(--menu-item-active-bg-dark));\n --menu-item-hover-bg: light-dark(var(--menu-item-hover-bg-light), var(--menu-item-hover-bg-dark));\n background-color: color-mix(in oklch, var(--menu-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n .menu-divider {\n height: 0;\n margin: var(--menu-divider-margin-y) var(--menu-divider-margin-x);\n overflow: hidden;\n border-block-start: 1px solid var(--menu-divider-bg);\n opacity: 1;\n }\n .menu-item {\n display: flex;\n gap: var(--menu-item-gap);\n align-items: center;\n width: 100%;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n font-weight: var(--menu-item-font-weight, var(--font-weight-normal));\n color: var(--theme-fg, var(--menu-item-color));\n text-align: inherit;\n text-decoration: none;\n white-space: nowrap;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n outline: 0;\n border-radius: var(--menu-item-border-radius, 0);\n }\n .menu-item:hover, .menu-item:focus {\n color: var(--theme-fg-emphasis, var(--menu-item-hover-color));\n background-color: var(--theme-bg-subtle, var(--menu-item-hover-bg));\n }\n .menu-item.active, .menu-item:active {\n color: var(--theme-contrast, var(--menu-item-active-color));\n background-color: var(--theme-bg, var(--menu-item-active-bg));\n }\n .menu-item.active .menu-item-icon, .menu-item:active .menu-item-icon {\n color: inherit !important;\n }\n .menu-item.selected {\n font-weight: 600;\n }\n .menu-item.disabled, .menu-item:disabled {\n color: var(--menu-item-disabled-color);\n pointer-events: none;\n background-color: transparent;\n background-image: none;\n }\n .menu-item-icon {\n flex-shrink: 0;\n align-self: flex-start;\n width: var(--menu-icon-size);\n height: auto;\n margin-top: 0.125rem;\n }\n .menu-image {\n width: var(--menu-image-size);\n height: var(--menu-image-size);\n object-fit: cover;\n border-radius: var(--radius-5);\n }\n .menu-item-content {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-width: fit-content;\n }\n .menu-item-description {\n font-size: var(--menu-description-font-size);\n font-weight: var(--font-weight-normal);\n color: color-mix(in oklch, currentcolor 65%, transparent);\n }\n .menu-item-check {\n flex-shrink: 0;\n align-self: flex-start;\n margin-block-start: 0.125rem;\n margin-inline-start: auto;\n color: var(--menu-check-color);\n visibility: hidden;\n }\n .selected > .menu-item-check {\n visibility: visible;\n }\n .menu-header {\n display: block;\n padding: var(--menu-header-padding-y) var(--menu-header-padding-x);\n margin-bottom: 0;\n font-size: var(--font-size-sm);\n color: var(--menu-header-color);\n white-space: nowrap;\n }\n .menu-text {\n display: block;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n color: var(--fg-2);\n }\n .submenu {\n position: relative;\n }\n .submenu > .menu-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .submenu > .menu-item::after {\n display: inline-block;\n flex-shrink: 0;\n width: 0.375em;\n height: 0.375em;\n margin-inline-start: auto;\n content: \"\";\n border-color: currentcolor;\n border-style: solid;\n border-width: 0 0.125em 0.125em 0;\n transform: rotate(-45deg);\n }\n [dir=rtl] .submenu > .menu-item::after {\n transform: rotate(135deg);\n }\n .submenu > .menu {\n top: 0;\n margin-top: calc(-1 * var(--menu-padding-y));\n }\n .submenu:hover > .menu-item, .submenu:focus-within > .menu-item {\n color: var(--menu-item-hover-color);\n background-color: var(--menu-item-hover-bg);\n }\n .submenu.show > .menu-item {\n color: var(--menu-item-hover-color);\n background-color: var(--menu-item-hover-bg);\n }\n @media (max-width: 575.98px) {\n .submenu:has(.submenu-stacked) {\n position: static;\n }\n .submenu-stacked {\n position: absolute;\n inset: 0;\n z-index: 1;\n display: flex;\n flex-direction: column;\n gap: var(--menu-gap);\n min-width: 0;\n padding: var(--menu-padding-y) var(--menu-padding-x);\n background-color: var(--menu-bg);\n border: 0;\n border-radius: 0;\n box-shadow: none;\n }\n .submenu-back {\n display: flex;\n gap: var(--menu-item-gap);\n align-items: center;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n font-weight: var(--font-weight-semibold, 600);\n color: var(--menu-item-color);\n }\n .submenu-back::before {\n display: inline-block;\n flex-shrink: 0;\n width: 0.375em;\n height: 0.375em;\n content: \"\";\n border-color: currentcolor;\n border-style: solid;\n border-width: 0.125em 0 0 0.125em;\n transform: rotate(-45deg);\n }\n [dir=rtl] .submenu-back::before {\n border-width: 0 0.125em 0.125em 0;\n }\n .submenu-dimmed {\n pointer-events: none;\n filter: blur(2px);\n opacity: 0.3;\n }\n }\n}\n@layer components {\n .list-group {\n --list-group-color: var(--fg-body);\n --list-group-bg: var(--bg-body);\n --list-group-border-color: var(--border-color);\n --list-group-border-width: var(--border-width);\n --list-group-border-radius: var(--radius-5);\n --list-group-item-padding-x: var(--spacer);\n --list-group-item-padding-y: var(--spacer-2);\n --list-group-action-color: var(--fg-2);\n --list-group-action-hover-color: var(--fg-1);\n --list-group-action-hover-bg: var(--bg-1);\n --list-group-action-active-color: var(--fg-body);\n --list-group-action-active-bg: var(--bg-2);\n --list-group-disabled-color: var(--fg-3);\n --list-group-disabled-bg: var(--bg-body);\n --list-group-active-color: var(--primary-contrast);\n --list-group-active-bg: var(--primary-bg);\n --list-group-active-border-color: var(--primary-bg);\n display: flex;\n flex-direction: column;\n padding-inline-start: 0;\n margin-bottom: 0;\n border-radius: var(--list-group-border-radius);\n }\n .list-group-numbered {\n list-style-type: none;\n counter-reset: section;\n }\n .list-group-numbered > .list-group-item::before {\n content: counters(section, \".\") \". \";\n counter-increment: section;\n }\n .list-group-item {\n position: relative;\n display: block;\n padding: var(--list-group-item-padding-y) var(--list-group-item-padding-x);\n color: var(--theme-fg, var(--list-group-color));\n background-color: var(--theme-bg-subtle, var(--list-group-bg));\n border: var(--list-group-border-width) solid var(--theme-border, var(--list-group-border-color));\n }\n .list-group-item:first-child {\n border-start-start-radius: inherit;\n border-start-end-radius: inherit;\n }\n .list-group-item:last-child {\n border-end-start-radius: inherit;\n border-end-end-radius: inherit;\n }\n .list-group-item.disabled, .list-group-item:disabled {\n color: var(--list-group-disabled-color);\n pointer-events: none;\n background-color: var(--list-group-disabled-bg);\n }\n .list-group-item.active {\n z-index: 2;\n color: var(--list-group-active-color);\n background-color: var(--list-group-active-bg);\n border-color: var(--list-group-active-border-color);\n }\n .list-group-item + .list-group-item {\n border-block-start-width: 0;\n }\n .list-group-item + .list-group-item.active {\n margin-top: calc(-1 * var(--list-group-border-width));\n border-block-start-width: var(--list-group-border-width);\n }\n .list-group-item-action {\n width: 100%;\n color: var(--theme-fg, var(--list-group-action-color));\n text-align: inherit;\n text-decoration: none;\n }\n .list-group-item-action:not(.active):hover, .list-group-item-action:not(.active):focus {\n z-index: 1;\n color: var(--theme-fg-emphasis, var(--list-group-action-hover-color));\n text-decoration: none;\n background-color: var(--theme-bg-muted, var(--list-group-action-hover-bg));\n }\n .list-group-item-action:not(.active):active {\n color: var(--theme-fg-emphasis, var(--list-group-action-active-color));\n background-color: var(--theme-bg-muted, var(--list-group-action-active-bg));\n }\n .list-group-horizontal {\n flex-direction: row;\n }\n .list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n @media (width >= 576px) {\n .sm\\:list-group-horizontal {\n flex-direction: row;\n }\n .sm\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .sm\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .sm\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .sm\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .sm\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n @media (width >= 768px) {\n .md\\:list-group-horizontal {\n flex-direction: row;\n }\n .md\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .md\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .md\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .md\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .md\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n @media (width >= 1024px) {\n .lg\\:list-group-horizontal {\n flex-direction: row;\n }\n .lg\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .lg\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .lg\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .lg\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .lg\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n @media (width >= 1280px) {\n .xl\\:list-group-horizontal {\n flex-direction: row;\n }\n .xl\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .xl\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .xl\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .xl\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .xl\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:list-group-horizontal {\n flex-direction: row;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n .list-group-flush {\n border-radius: 0;\n }\n .list-group-flush > .list-group-item {\n border-width: 0 0 var(--list-group-border-width);\n }\n .list-group-flush > .list-group-item:last-child {\n border-block-end-width: 0;\n }\n}\n@layer components {\n .nav {\n --nav-gap: 0.125rem;\n --nav-link-gap: 0.5rem;\n --nav-link-align: center;\n --nav-link-justify: center;\n --nav-link-padding-x: 0.75rem;\n --nav-link-padding-y: 0.375rem;\n --nav-link-color: var(--fg-2);\n --nav-link-hover-color: var(--fg-1);\n --nav-link-hover-bg: var(--bg-1);\n --nav-link-active-color: var(--fg-body);\n --nav-link-active-bg: var(--bg-2);\n --nav-link-disabled-color: var(--fg-4);\n --nav-link-border-width: var(--border-width);\n --nav-link-transition-property: color, background-color, border-color;\n --nav-link-transition-timing: 0.15s ease-in-out;\n --nav-link-transition: var(--nav-link-transition-property) var(--nav-link-transition-timing);\n display: flex;\n flex-wrap: wrap;\n gap: var(--nav-gap);\n padding-inline-start: 0;\n margin-bottom: 0;\n list-style: none;\n }\n .nav-item {\n display: flex;\n }\n .nav-link {\n display: flex;\n gap: var(--nav-link-gap);\n align-items: var(--nav-link-align);\n justify-content: var(--nav-link-justify);\n padding: var(--nav-link-padding-y) var(--nav-link-padding-x);\n font-weight: var(--nav-link-font-weight);\n color: var(--nav-link-color);\n text-decoration: none;\n white-space: nowrap;\n background: none;\n border: var(--nav-link-border-width) solid transparent;\n border-radius: var(--radius-5);\n transition: var(--nav-link-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .nav-link {\n transition: none;\n }\n }\n .nav-link:hover, .nav-link:focus {\n color: var(--nav-link-hover-color);\n background-color: var(--nav-link-hover-bg);\n }\n .nav-link:focus-visible {\n --focus-ring-offset: 1px;\n color: var(--nav-link-hover-color);\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .nav-link.active, .nav-link:active {\n color: var(--nav-link-active-color);\n background-color: var(--nav-link-active-bg);\n }\n .nav-link.disabled, .nav-link:disabled {\n color: var(--nav-link-disabled-color);\n pointer-events: none;\n cursor: default;\n }\n .nav-tabs {\n --nav-tabs-border-width: var(--border-width);\n --nav-tabs-border-color: var(--border-color);\n --nav-tabs-border-radius: var(--radius-5);\n --nav-tabs-link-hover-border-color: var(--border-subtle);\n --nav-tabs-link-active-color: var(--fg-color);\n --nav-tabs-link-active-bg: var(--bg-body);\n --nav-tabs-link-active-border-color: var(--border-color) var(--border-color) var(--bg-body);\n box-shadow: inset 0 calc(-1 * var(--nav-tabs-border-width)) 0 var(--nav-tabs-border-color);\n }\n .nav-tabs .nav-link {\n border: var(--nav-tabs-border-width) solid transparent;\n border-bottom-color: var(--nav-tabs-border-color);\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .nav-tabs .nav-link:hover {\n isolation: isolate;\n border-color: var(--nav-tabs-link-hover-border-color);\n border-bottom-color: var(--nav-tabs-border-color);\n }\n .nav-tabs .nav-link.active,\n .nav-tabs .nav-item.show .nav-link {\n color: var(--nav-tabs-link-active-color);\n background-color: var(--nav-tabs-link-active-bg);\n border-color: var(--nav-tabs-link-active-border-color);\n border-bottom-color: var(--nav-tabs-link-active-bg);\n }\n .nav-tabs .menu {\n margin-top: calc(-1 * var(--nav-tabs-border-width));\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n .nav-pills {\n --nav-pills-bg: var(--bg-1);\n --nav-pills-padding: 0.25rem;\n --nav-pills-border-radius: var(--radius-9);\n --nav-pills-link-active-color: var(--primary-contrast);\n --nav-pills-link-active-bg: var(--primary-bg);\n --nav-pills-link-border-radius: var(--radius-9);\n display: inline-flex;\n padding: var(--nav-pills-padding);\n background-color: var(--nav-pills-bg);\n border-radius: var(--nav-pills-border-radius);\n }\n .nav-pills .nav-link {\n border-radius: var(--nav-pills-link-border-radius);\n }\n .nav-pills .nav-link.active,\n .nav-pills .show > .nav-link {\n color: var(--nav-pills-link-active-color);\n background-color: var(--nav-pills-link-active-bg);\n background-image: var(--gradient);\n }\n .nav-pills-vertical {\n flex-direction: column;\n align-items: stretch;\n }\n .nav-pills-vertical .nav-item,\n .nav-pills-vertical .nav-link {\n width: 100%;\n }\n .nav-underline {\n --nav-gap: 1rem;\n --nav-link-active-bg: transparent;\n --nav-underline-border-width: 0.125rem;\n --nav-underline-link-active-color: var(--fg-color);\n }\n .nav-underline .nav-link {\n padding-inline: 0;\n border: 0;\n border-block-end: var(--nav-underline-border-width) solid transparent;\n border-radius: 0;\n }\n .nav-underline .nav-link:hover, .nav-underline .nav-link:focus {\n border-block-end-color: currentcolor;\n }\n .nav-underline .nav-link.active,\n .nav-underline .show > .nav-link {\n font-weight: 700;\n color: var(--nav-underline-link-active-color);\n border-block-end-color: currentcolor;\n }\n .nav-fill > .nav-link,\n .nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n .nav-justified > .nav-link,\n .nav-justified .nav-item {\n flex-grow: 1;\n flex-basis: 0;\n text-align: center;\n }\n .nav-fill .nav-item .nav-link,\n .nav-justified .nav-item .nav-link {\n width: 100%;\n }\n .tab-content > .tab-pane {\n display: none;\n }\n .tab-content > .active {\n display: block;\n }\n}\n@layer components {\n .nav-overflow {\n flex-wrap: nowrap;\n min-width: 0;\n }\n .nav-pills.nav-overflow {\n display: flex;\n }\n .navbar-nav.nav-overflow {\n flex: 1 1 0;\n }\n .nav-overflow-item {\n flex-shrink: 0;\n margin-inline-start: auto;\n }\n .nav-overflow [data-bs-nav-overflow=true] {\n display: none;\n }\n .nav-overflow-keep {\n flex-shrink: 0;\n }\n}\n@layer components {\n .navbar {\n --navbar-padding-x: 0;\n --navbar-padding-y: 0.5rem;\n --navbar-color: var(--fg-2);\n --navbar-hover-color: var(--fg-1);\n --navbar-disabled-color: var(--fg-3);\n --navbar-active-color: var(--fg-body);\n --navbar-brand-padding-y: 0.75rem;\n --navbar-brand-margin-end: 1rem;\n --navbar-brand-font-size: var(--font-size-md);\n --navbar-brand-font-weight: var(--font-weight-medium);\n --navbar-brand-color: var(--fg-body);\n --navbar-brand-hover-color: var(--fg-body);\n --navbar-nav-link-padding-x: 0.75rem;\n --navbar-toggler-width: 2rem;\n --navbar-toggler-padding-y: 0.25rem;\n --navbar-toggler-padding-x: 0.75rem;\n --navbar-toggler-font-size: var(--font-size-lg);\n --navbar-toggler-border-color: color-mix(in oklch, var(--fg-body) 15%, transparent);\n --navbar-toggler-border-radius: var(--radius-5);\n --navbar-toggler-transition: box-shadow 0.15s ease-in-out;\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: var(--navbar-padding-y) var(--navbar-padding-x);\n container-type: inline-size;\n color: var(--navbar-color, var(--fg-body));\n background-color: var(--navbar-bg, var(--bg-body));\n }\n .navbar > .\\32 xl\\:container, .navbar > .xl\\:container, .navbar > .lg\\:container, .navbar > .md\\:container, .navbar > .sm\\:container, .navbar > .container,\n .navbar > .container-fluid {\n display: flex;\n flex-wrap: inherit;\n align-items: center;\n justify-content: space-between;\n }\n .navbar-brand {\n padding-top: var(--navbar-brand-padding-y);\n padding-bottom: var(--navbar-brand-padding-y);\n margin-inline-end: var(--navbar-brand-margin-end);\n font-size: var(--navbar-brand-font-size);\n font-weight: var(--navbar-brand-font-weight);\n color: var(--navbar-brand-color);\n text-decoration: none;\n white-space: nowrap;\n }\n .navbar-brand:hover, .navbar-brand:focus {\n color: var(--navbar-brand-hover-color);\n }\n .navbar-nav {\n --nav-gap: 0.25rem;\n --nav-link-gap: 0.5rem;\n --nav-link-padding-x: 0.5rem;\n --nav-link-padding-y: 0.375rem;\n --nav-link-color: var(--navbar-color);\n --nav-link-border-width: var(--border-width);\n --nav-link-hover-color: var(--navbar-hover-color);\n --nav-link-hover-bg: transparent;\n --nav-link-active-color: var(--navbar-active-color);\n --nav-link-active-bg: transparent;\n --nav-link-disabled-color: var(--navbar-disabled-color);\n display: flex;\n flex-direction: column;\n gap: var(--nav-gap);\n padding-inline-start: 0;\n margin-bottom: 0;\n list-style: none;\n }\n .navbar-nav .nav-link.active, .navbar-nav .nav-link.show {\n color: var(--navbar-active-color);\n border: var(--nav-link-border-width) solid var(--nav-link-border-color, transparent);\n }\n .navbar-text {\n padding-top: var(--navbar-brand-padding-y);\n padding-bottom: var(--navbar-brand-padding-y);\n color: var(--navbar-color);\n }\n .navbar-text a,\n .navbar-text a:hover,\n .navbar-text a:focus {\n color: var(--navbar-active-color);\n }\n .navbar-toggler {\n --btn-bg: transparent;\n --btn-hover-bg: var(--bg-2);\n }\n .navbar-expand > .container,\n .navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .navbar-expand .navbar-toggler {\n display: none !important;\n }\n .navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n .navbar-expand {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n @container (width >= 576px) {\n .sm\\:navbar-expand > .container,\n .sm\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .sm\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .sm\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .sm\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .sm\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .sm\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n @container (width >= 768px) {\n .md\\:navbar-expand > .container,\n .md\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .md\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .md\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .md\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .md\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .md\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n @container (width >= 1024px) {\n .lg\\:navbar-expand > .container,\n .lg\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .lg\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .lg\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .lg\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .lg\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .lg\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n @container (width >= 1280px) {\n .xl\\:navbar-expand > .container,\n .xl\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .xl\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .xl\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .xl\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .xl\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .xl\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:navbar-expand > .container,\n .\\32 xl\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .\\32 xl\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .\\32 xl\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .\\32 xl\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .\\32 xl\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .\\32 xl\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n .navbar [class*=drawer]:not([open], .hiding) {\n transition: none !important;\n }\n @media (prefers-reduced-motion: reduce) {\n .navbar [class*=drawer]:not([open], .hiding) {\n transition: none;\n }\n }\n .navbar-translucent {\n position: relative;\n background-color: transparent;\n }\n .navbar-translucent::before {\n position: absolute;\n inset: 0;\n z-index: -1;\n content: \"\";\n background-color: color-mix(in oklch, var(--navbar-bg, var(--bg-body)) 80%, transparent);\n background-image: none;\n backdrop-filter: blur(5px) saturate(180%);\n }\n .navbar[data-bs-theme=dark] {\n --navbar-color: color-mix(in oklch, var(--white) 0.55, transparent);\n --navbar-hover-color: color-mix(in oklch, var(--white) 0.75, transparent);\n --navbar-disabled-color: color-mix(in oklch, var(--white) 0.25, transparent);\n --navbar-active-color: var(--white);\n --navbar-brand-color: var(--white);\n --navbar-brand-hover-color: var(--white);\n --navbar-toggler-border-color: color-mix(in oklch, var(--white) 0.1, transparent);\n }\n}\n.drawer, .\\32 xl\\:drawer, .xl\\:drawer, .lg\\:drawer, .md\\:drawer, .sm\\:drawer {\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n}\n\n@layer components {\n @media (width < 576px) {\n .sm\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .sm\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .sm\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .sm\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .sm\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .sm\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .sm\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 576px) and (prefers-reduced-motion: reduce) {\n .sm\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 576px) {\n .sm\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .sm\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .sm\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 576px) and (prefers-reduced-motion: reduce) {\n .sm\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 576px) {\n .sm\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 576px) {\n .sm\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 576px) and (prefers-reduced-motion: reduce) {\n .sm\\:drawer {\n transition: none;\n }\n }\n @media (width >= 576px) {\n .sm\\:drawer .drawer-header {\n display: none;\n }\n .sm\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n @media (width < 768px) {\n .md\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .md\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .md\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .md\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .md\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .md\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .md\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 768px) and (prefers-reduced-motion: reduce) {\n .md\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 768px) {\n .md\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .md\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .md\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 768px) and (prefers-reduced-motion: reduce) {\n .md\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 768px) {\n .md\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 768px) {\n .md\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 768px) and (prefers-reduced-motion: reduce) {\n .md\\:drawer {\n transition: none;\n }\n }\n @media (width >= 768px) {\n .md\\:drawer .drawer-header {\n display: none;\n }\n .md\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n @media (width < 1024px) {\n .lg\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .lg\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .lg\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .lg\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .lg\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .lg\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .lg\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 1024px) and (prefers-reduced-motion: reduce) {\n .lg\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 1024px) {\n .lg\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .lg\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .lg\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 1024px) and (prefers-reduced-motion: reduce) {\n .lg\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 1024px) {\n .lg\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 1024px) {\n .lg\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 1024px) and (prefers-reduced-motion: reduce) {\n .lg\\:drawer {\n transition: none;\n }\n }\n @media (width >= 1024px) {\n .lg\\:drawer .drawer-header {\n display: none;\n }\n .lg\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n @media (width < 1280px) {\n .xl\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .xl\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .xl\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .xl\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .xl\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .xl\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .xl\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 1280px) and (prefers-reduced-motion: reduce) {\n .xl\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 1280px) {\n .xl\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .xl\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .xl\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 1280px) and (prefers-reduced-motion: reduce) {\n .xl\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 1280px) {\n .xl\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 1280px) {\n .xl\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 1280px) and (prefers-reduced-motion: reduce) {\n .xl\\:drawer {\n transition: none;\n }\n }\n @media (width >= 1280px) {\n .xl\\:drawer .drawer-header {\n display: none;\n }\n .xl\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n @media (width < 1536px) {\n .\\32 xl\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .\\32 xl\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .\\32 xl\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .\\32 xl\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .\\32 xl\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .\\32 xl\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .\\32 xl\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 1536px) and (prefers-reduced-motion: reduce) {\n .\\32 xl\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 1536px) {\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 1536px) and (prefers-reduced-motion: reduce) {\n .\\32 xl\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 1536px) {\n .\\32 xl\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 1536px) and (prefers-reduced-motion: reduce) {\n .\\32 xl\\:drawer {\n transition: none;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:drawer .drawer-header {\n display: none;\n }\n .\\32 xl\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n .drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n @media (prefers-reduced-motion: reduce) {\n .drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n .drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n }\n @media (prefers-reduced-motion: reduce) {\n .drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n .drawer:not(.drawer-instant)[open] {\n transform: none;\n }\n .drawer[open] {\n visibility: visible;\n transform: none;\n }\n .sm\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .sm\\:drawer::backdrop {\n transition: none;\n }\n }\n .md\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .md\\:drawer::backdrop {\n transition: none;\n }\n }\n .lg\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .lg\\:drawer::backdrop {\n transition: none;\n }\n }\n .xl\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .xl\\:drawer::backdrop {\n transition: none;\n }\n }\n .\\32 xl\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .\\32 xl\\:drawer::backdrop {\n transition: none;\n }\n }\n .drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .drawer::backdrop {\n transition: none;\n }\n }\n @starting-style {\n .sm\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .md\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .lg\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .xl\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .\\32 xl\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n }\n .drawer-static {\n transform: scale(1.02);\n }\n .drawer-translucent {\n background-color: color-mix(in oklch, var(--drawer-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n .drawer-sheet {\n --drawer-inset: 0;\n --drawer-border-radius: 0;\n --drawer-border-width: 0;\n --drawer-box-shadow: none;\n }\n .drawer-header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n padding: var(--drawer-padding-y) var(--drawer-padding-x);\n }\n .drawer-header .btn-close {\n padding: calc(var(--drawer-padding-y) * 0.5) calc(var(--drawer-padding-x) * 0.5);\n margin-inline-start: auto;\n margin-inline-end: calc(-0.5 * var(--drawer-padding-x));\n margin-top: calc(-0.5 * var(--drawer-padding-y));\n margin-bottom: calc(-0.5 * var(--drawer-padding-y));\n }\n .drawer-title {\n margin-bottom: 0;\n line-height: var(--drawer-title-line-height);\n }\n .drawer-body {\n display: flex;\n flex-direction: column;\n gap: var(--drawer-padding-y);\n flex: 1 1 auto;\n padding: var(--drawer-padding-y) var(--drawer-padding-x);\n overflow-y: auto;\n }\n .drawer-footer {\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n gap: 0.5rem;\n align-items: center;\n justify-content: flex-end;\n padding: var(--drawer-padding-y) var(--drawer-padding-x);\n border-block-start: var(--drawer-border-width) solid var(--drawer-border-color);\n }\n .drawer-fit-content {\n inset-block-end: auto;\n }\n}\n@layer components {\n .pagination {\n --pagination-min-height: var(--btn-input-min-height);\n --pagination-padding-x: var(--btn-input-padding-x);\n --pagination-padding-y: var(--btn-input-padding-y);\n --pagination-font-size: var(--btn-input-font-size);\n --pagination-color: var(--link-color);\n --pagination-bg: var(--bg-body);\n --pagination-border-width: var(--border-width);\n --pagination-border-color: var(--border-color);\n --pagination-border-radius: var(--btn-input-border-radius);\n --pagination-hover-color: var(--link-hover-color);\n --pagination-hover-bg: var(--bg-1);\n --pagination-hover-border-color: var(--border-color);\n --pagination-focus-color: var(--link-hover-color);\n --pagination-focus-bg: var(--bg-2);\n --pagination-active-color: var(--primary-contrast);\n --pagination-active-bg: var(--primary-bg);\n --pagination-active-border-color: var(--primary-bg);\n --pagination-disabled-color: var(--fg-3);\n --pagination-disabled-bg: var(--bg-2);\n --pagination-disabled-border-color: var(--border-color);\n display: flex;\n padding-inline-start: 0;\n list-style: none;\n }\n .page-link {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: var(--pagination-min-height);\n padding: var(--pagination-padding-y) var(--pagination-padding-x);\n font-size: var(--pagination-font-size);\n color: var(--pagination-color);\n text-decoration: none;\n background-color: var(--pagination-bg);\n border: var(--pagination-border-width) solid var(--pagination-border-color);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .page-link {\n transition: none;\n }\n }\n .page-link:hover {\n z-index: 2;\n color: var(--pagination-hover-color);\n background-color: var(--pagination-hover-bg);\n border-color: var(--pagination-hover-border-color);\n }\n .page-link:focus-visible {\n z-index: 3;\n color: var(--pagination-focus-color);\n background-color: var(--pagination-focus-bg);\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .page-link.active, .active > .page-link {\n z-index: 3;\n color: var(--pagination-active-color);\n background-color: var(--pagination-active-bg);\n background-image: var(--gradient);\n border-color: var(--pagination-active-border-color);\n }\n .page-link.disabled, .disabled > .page-link {\n color: var(--pagination-disabled-color);\n pointer-events: none;\n background-color: var(--pagination-disabled-bg);\n border-color: var(--pagination-disabled-border-color);\n }\n .page-item:not(:first-child) .page-link {\n margin-inline-start: calc(-1 * var(--pagination-border-width));\n }\n .page-item:first-child .page-link {\n border-start-start-radius: var(--pagination-border-radius);\n border-end-start-radius: var(--pagination-border-radius);\n }\n .page-item:last-child .page-link {\n border-start-end-radius: var(--pagination-border-radius);\n border-end-end-radius: var(--pagination-border-radius);\n }\n .pagination-sm {\n --pagination-min-height: var(--bs-btn-input-sm-min-height);\n --pagination-padding-y: var(--btn-input-sm-padding-y);\n --pagination-padding-x: var(--btn-input-sm-padding-x);\n --pagination-font-size: var(--btn-input-sm-font-size);\n --pagination-border-radius: var(--btn-input-sm-border-radius);\n }\n .pagination-lg {\n --pagination-min-height: var(--bs-btn-input-lg-min-height);\n --pagination-padding-y: var(--btn-input-lg-padding-y);\n --pagination-padding-x: var(--btn-input-lg-padding-x);\n --pagination-font-size: var(--btn-input-lg-font-size);\n --pagination-border-radius: var(--btn-input-lg-border-radius);\n }\n}\n@layer components {\n .placeholder {\n --placeholder-opacity-max: 0.5;\n --placeholder-opacity-min: 0.2;\n display: inline-block;\n min-height: 1em;\n vertical-align: middle;\n cursor: wait;\n background-color: currentcolor;\n opacity: var(--placeholder-opacity-max);\n }\n .placeholder.btn::before {\n display: inline-block;\n content: \"\";\n }\n .placeholder-xs {\n min-height: 0.6em;\n }\n .placeholder-sm {\n min-height: 0.8em;\n }\n .placeholder-lg {\n min-height: 1.2em;\n }\n .placeholder-glow .placeholder {\n animation: placeholder-glow 2s ease-in-out infinite;\n }\n @keyframes placeholder-glow {\n 50% {\n opacity: var(--placeholder-opacity-min);\n }\n }\n .placeholder-wave {\n mask-image: linear-gradient(130deg, #000 55%, rgb(0, 0, 0, calc(1 - var(--placeholder-opacity-min))) 75%, #000 95%);\n mask-size: 200% 100%;\n animation: placeholder-wave 2s linear infinite;\n }\n @keyframes placeholder-wave {\n 100% {\n mask-position: -200% 0%;\n }\n }\n}\n@layer components {\n .popover {\n --popover-zindex: 1070;\n --popover-max-width: 280px;\n --popover-font-size: var(--font-size-sm);\n --popover-bg: var(--bg-body);\n --popover-border-width: var(--border-width);\n --popover-border-color: var(--border-color-translucent);\n --popover-border-radius: var(--radius-7);\n --popover-inner-border-radius: calc(var(--radius-7) - var(--border-width));\n --popover-box-shadow: var(--box-shadow);\n --popover-header-padding-x: var(--spacer);\n --popover-header-padding-y: var(--spacer-3);\n --popover-header-font-size: var(--font-size-sm);\n --popover-header-color: inherit;\n --popover-header-bg: var(--bg-1);\n --popover-body-padding-x: var(--spacer);\n --popover-body-padding-y: var(--spacer-3);\n --popover-body-color: var(--fg-body);\n --popover-arrow-width: 1rem;\n --popover-arrow-height: 0.5rem;\n --popover-arrow-border: var(--popover-border-color);\n z-index: var(--popover-zindex);\n display: block;\n max-width: var(--popover-max-width);\n font-family: var(--body-font-family);\n font-style: normal;\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: var(--popover-font-size);\n word-wrap: break-word;\n background-color: var(--popover-bg);\n background-clip: padding-box;\n border: var(--popover-border-width) solid var(--popover-border-color);\n border-radius: var(--popover-border-radius);\n box-shadow: var(--popover-box-shadow);\n }\n .popover .popover-arrow {\n display: block;\n width: var(--popover-arrow-width);\n height: var(--popover-arrow-height);\n }\n .popover .popover-arrow::before, .popover .popover-arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n border-width: 0;\n }\n .bs-popover-top > .popover-arrow, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow {\n bottom: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n }\n .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow::after {\n border-width: var(--popover-arrow-height) calc(var(--popover-arrow-width) * 0.5) 0;\n }\n .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow::before {\n bottom: 0;\n border-block-start-color: var(--popover-arrow-border);\n }\n .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow::after {\n bottom: var(--popover-border-width);\n border-block-start-color: var(--popover-bg);\n }\n .bs-popover-end > .popover-arrow, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow {\n left: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n width: var(--popover-arrow-height);\n height: var(--popover-arrow-width);\n }\n .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow::after {\n border-width: calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height) calc(var(--popover-arrow-width) * 0.5) 0;\n }\n .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow::before {\n left: 0;\n border-inline-end-color: var(--popover-arrow-border);\n }\n .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow::after {\n left: var(--popover-border-width);\n border-inline-end-color: var(--popover-bg);\n }\n .bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow {\n top: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n }\n .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow::after {\n border-width: 0 calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height);\n }\n .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow::before {\n top: 0;\n border-block-end-color: var(--popover-arrow-border);\n }\n .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow::after {\n top: var(--popover-border-width);\n border-block-end-color: var(--popover-bg);\n }\n .bs-popover-bottom .popover-header::before, .bs-popover-auto[data-bs-placement^=bottom] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: var(--popover-arrow-width);\n margin-inline-start: calc(-0.5 * var(--popover-arrow-width));\n content: \"\";\n border-block-end: var(--popover-border-width) solid var(--popover-header-bg);\n }\n .bs-popover-start > .popover-arrow, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow {\n right: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n width: var(--popover-arrow-height);\n height: var(--popover-arrow-width);\n }\n .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow::after {\n border-width: calc(var(--popover-arrow-width) * 0.5) 0 calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height);\n }\n .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow::before {\n right: 0;\n border-inline-start-color: var(--popover-arrow-border);\n }\n .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow::after {\n right: var(--popover-border-width);\n border-inline-start-color: var(--popover-bg);\n }\n .popover-header {\n padding: var(--popover-header-padding-y) var(--popover-header-padding-x);\n margin-bottom: 0;\n font-size: var(--popover-header-font-size);\n color: var(--popover-header-color);\n background-color: var(--popover-header-bg);\n border-block-end: var(--popover-border-width) solid var(--popover-border-color);\n border-start-start-radius: var(--popover-inner-border-radius);\n border-start-end-radius: var(--popover-inner-border-radius);\n }\n .popover-header:empty {\n display: none;\n }\n .popover-body {\n padding: var(--popover-body-padding-y) var(--popover-body-padding-x);\n color: var(--popover-body-color);\n }\n}\n@layer components {\n @keyframes progress-bar-stripes {\n 0% {\n background-position-x: var(--progress-height);\n }\n }\n .progress,\n .progress-stacked {\n --progress-height: 1rem;\n --progress-font-size: var(--font-size-sm);\n --progress-bg: var(--bg-2);\n --progress-border-radius: var(--radius-5);\n --progress-box-shadow: var(--box-shadow-inset);\n --progress-bar-color: var(--white);\n --progress-bar-bg: var(--primary-bg);\n --progress-bar-transition: width 0.6s ease;\n --progress-bar-animation: progress-bar-stripes 1s linear infinite;\n display: flex;\n height: var(--progress-height);\n overflow: hidden;\n font-size: var(--progress-font-size);\n background-color: var(--progress-bg);\n border-radius: var(--progress-border-radius);\n box-shadow: var(--progress-box-shadow);\n }\n .progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: var(--theme-contrast, var(--progress-bar-color));\n text-align: center;\n white-space: nowrap;\n background-color: var(--theme-bg, var(--progress-bar-bg));\n transition: var(--progress-bar-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n }\n .progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: var(--progress-height) var(--progress-height);\n }\n .progress-stacked > .progress {\n overflow: visible;\n }\n .progress-stacked > .progress > .progress-bar {\n width: 100%;\n }\n .progress-bar-animated {\n animation: var(--progress-bar-animation);\n }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n }\n}\n@layer components {\n .spinner-grow,\n .spinner-border {\n display: inline-block;\n flex-shrink: 0;\n width: var(--spinner-width);\n height: var(--spinner-height);\n vertical-align: var(--spinner-vertical-align);\n border-radius: 50%;\n animation: var(--spinner-animation-speed) linear infinite var(--spinner-animation-name);\n }\n @keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n }\n .spinner-border {\n --spinner-width: 2rem;\n --spinner-height: 2rem;\n --spinner-vertical-align: -0.125em;\n --spinner-border-width: 0.25em;\n --spinner-animation-speed: 0.75s;\n --spinner-animation-name: spinner-border;\n border: var(--spinner-border-width) solid currentcolor;\n border-inline-end-color: transparent;\n }\n .spinner-border-sm {\n --spinner-width: 1rem;\n --spinner-height: 1rem;\n --spinner-border-width: .2em;\n }\n @keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n }\n .spinner-grow {\n --spinner-width: 2rem;\n --spinner-height: 2rem;\n --spinner-vertical-align: -0.125em;\n --spinner-animation-speed: 0.75s;\n --spinner-animation-name: spinner-grow;\n background-color: currentcolor;\n opacity: 0;\n }\n .spinner-grow-sm {\n --spinner-width: 1rem;\n --spinner-height: 1rem;\n }\n @media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n --spinner-animation-speed: 1.5s;\n }\n }\n}\n@layer components {\n .stepper {\n --stepper-size: 2rem;\n --stepper-gap: 1rem;\n --stepper-font-size: var(--font-size-sm);\n --stepper-text-gap: 0.5rem;\n --stepper-track-size: 0.125rem;\n --stepper-bg: var(--bg-2);\n --stepper-active-color: var(--primary-contrast);\n --stepper-active-bg: var(--primary-bg);\n display: grid;\n grid-auto-rows: 1fr;\n grid-auto-flow: row;\n gap: var(--stepper-gap);\n padding-inline-start: 0;\n list-style: none;\n counter-reset: stepper;\n }\n .stepper-item {\n position: relative;\n display: grid;\n grid-template-rows: auto;\n grid-template-columns: var(--stepper-size) auto;\n gap: var(--stepper-text-gap);\n align-items: var(--stepper-align-items, center);\n text-decoration: none;\n }\n .stepper-item::before {\n position: relative;\n z-index: 1;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--stepper-size);\n height: var(--stepper-size);\n padding: 0.5rem;\n font-size: var(--stepper-font-size);\n font-weight: 600;\n line-height: 1;\n text-align: center;\n content: counter(stepper);\n counter-increment: stepper;\n background-color: var(--stepper-bg);\n border-radius: 50%;\n }\n .stepper-item::after {\n position: absolute;\n inset-block-start: 50%;\n inset-block-end: 100%;\n inset-inline-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n width: var(--stepper-track-size);\n height: calc(100% + var(--stepper-gap));\n content: \"\";\n background-color: var(--stepper-bg);\n }\n .stepper-item:last-child::after {\n display: none;\n }\n .stepper-item.active::before, .stepper-item.active::after {\n color: var(--theme-contrast, var(--stepper-active-color));\n background-color: var(--theme-bg, var(--stepper-active-bg));\n }\n .stepper-item.active:not(:has(+ .stepper-item.active))::after {\n background-color: var(--stepper-bg);\n }\n .stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n @container (width >= 576px) {\n .sm\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .sm\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .sm\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .sm\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n @container (width >= 768px) {\n .md\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .md\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .md\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .md\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n @container (width >= 1024px) {\n .lg\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .lg\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .lg\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .lg\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n @container (width >= 1280px) {\n .xl\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .xl\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .xl\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .xl\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .\\32 xl\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .\\32 xl\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .\\32 xl\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n .stepper-overflow {\n container-type: inline-size;\n overflow-x: auto;\n overscroll-behavior-x: contain;\n -webkit-overflow-scrolling: touch;\n }\n .stepper-overflow > .stepper {\n width: max-content;\n min-width: 100%;\n }\n}\n@layer components {\n .toast {\n --toast-zindex: 1090;\n --toast-padding-x: 1rem;\n --toast-padding-y: 0.75rem;\n --toast-spacing: 1.5rem;\n --toast-max-width: 350px;\n --toast-font-size: var(--font-size-sm);\n --toast-bg: var(--bg-body);\n --toast-border-width: var(--border-width);\n --toast-border-color: var(--border-color-translucent);\n --toast-box-shadow: var(--box-shadow);\n --toast-header-color: var(--fg-3);\n --toast-header-bg: var(--bg-1);\n --toast-header-border-color: var(--border-color-translucent);\n display: flex;\n flex-direction: column;\n width: var(--toast-max-width);\n max-width: 100%;\n overflow: hidden;\n font-size: var(--toast-font-size);\n color: var(--toast-color, var(--fg-body));\n pointer-events: auto;\n background-color: var(--toast-bg);\n background-clip: padding-box;\n border: var(--toast-border-width) solid var(--theme-border, var(--toast-border-color));\n box-shadow: var(--toast-box-shadow);\n border-radius: var(--toast-border-radius, var(--radius-7));\n }\n .toast.showing {\n opacity: 0;\n }\n .toast:not(.show) {\n display: none;\n }\n .toast-container {\n --toast-zindex: 1090;\n position: absolute;\n z-index: var(--toast-zindex);\n width: max-content;\n max-width: 100%;\n pointer-events: none;\n }\n .toast-container > :not(:last-child) {\n margin-bottom: var(--toast-spacing);\n }\n .toast-header {\n display: flex;\n align-items: center;\n padding: var(--toast-padding-y) var(--toast-padding-x);\n color: var(--theme-fg-emphasis, var(--toast-header-color));\n background-color: var(--theme-bg-subtle, var(--toast-header-bg));\n border-block-end: var(--toast-border-width, var(--border-width)) solid var(--theme-border, var(--toast-header-border-color, var(--border-color-translucent)));\n }\n .toast-header .btn-close {\n margin-inline-start: calc(0.5 * var(--toast-padding-x));\n margin-inline-end: calc(-0.25 * var(--toast-padding-x));\n color: inherit;\n }\n .toast-translucent {\n backdrop-filter: blur(5px) saturate(180%);\n }\n .toast-body {\n padding: var(--toast-padding-x);\n word-wrap: break-word;\n }\n}\n@layer components {\n .tooltip {\n --tooltip-zindex: 1080;\n --tooltip-max-width: 200px;\n --tooltip-padding-x: var(--spacer-3);\n --tooltip-padding-y: calc(var(--spacer) * 0.375);\n --tooltip-font-size: var(--font-size-sm);\n --tooltip-color: var(--bg-body);\n --tooltip-bg: var(--fg-body);\n --tooltip-border-radius: var(--radius-5);\n --tooltip-opacity: 0.95;\n --tooltip-arrow-width: 0.8rem;\n --tooltip-arrow-height: 0.4rem;\n z-index: var(--tooltip-zindex);\n display: block;\n font-family: var(--body-font-family);\n font-style: normal;\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: var(--tooltip-font-size);\n word-wrap: break-word;\n opacity: 0;\n }\n .tooltip.show {\n opacity: var(--tooltip-opacity);\n }\n .tooltip .tooltip-arrow {\n display: block;\n width: var(--tooltip-arrow-width);\n height: var(--tooltip-arrow-height);\n }\n .tooltip .tooltip-arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n .bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-bs-placement^=top] .tooltip-arrow {\n bottom: calc(-1 * var(--tooltip-arrow-height));\n }\n .bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-bs-placement^=top] .tooltip-arrow::before {\n top: -1px;\n border-width: var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * 0.5) 0;\n border-block-start-color: var(--tooltip-bg);\n }\n .bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-bs-placement^=right] .tooltip-arrow {\n left: calc(-1 * var(--tooltip-arrow-height));\n width: var(--tooltip-arrow-height);\n height: var(--tooltip-arrow-width);\n }\n .bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-bs-placement^=right] .tooltip-arrow::before {\n right: -1px;\n border-width: calc(var(--tooltip-arrow-width) * 0.5) var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * 0.5) 0;\n border-inline-end-color: var(--tooltip-bg);\n }\n .bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-bs-placement^=bottom] .tooltip-arrow {\n top: calc(-1 * var(--tooltip-arrow-height));\n }\n .bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-bs-placement^=bottom] .tooltip-arrow::before {\n bottom: -1px;\n border-width: 0 calc(var(--tooltip-arrow-width) * 0.5) var(--tooltip-arrow-height);\n border-block-end-color: var(--tooltip-bg);\n }\n .bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-bs-placement^=left] .tooltip-arrow {\n right: calc(-1 * var(--tooltip-arrow-height));\n width: var(--tooltip-arrow-height);\n height: var(--tooltip-arrow-width);\n }\n .bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-bs-placement^=left] .tooltip-arrow::before {\n left: -1px;\n border-width: calc(var(--tooltip-arrow-width) * 0.5) 0 calc(var(--tooltip-arrow-width) * 0.5) var(--tooltip-arrow-height);\n border-inline-start-color: var(--tooltip-bg);\n }\n .tooltip-inner {\n max-width: var(--tooltip-max-width);\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n color: var(--tooltip-color);\n text-align: center;\n background-color: var(--tooltip-bg);\n border-radius: var(--tooltip-border-radius);\n }\n}\n.fade {\n transition: opacity 0.15s linear;\n}\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n.collapsing.collapse-horizontal {\n width: 0;\n height: auto;\n transition: width 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing.collapse-horizontal {\n transition: none;\n }\n}\n\n@layer helpers {\n .focus-ring:focus-visible {\n outline: var(--focus-ring-width) solid var(--theme-focus-ring, var(--focus-ring-color));\n }\n}\n@layer helpers {\n .icon-link {\n display: inline-flex;\n gap: 0.375rem;\n align-items: center;\n text-decoration-color: rgba(var(--link-color-rgb), var(--link-opacity, 0.5));\n text-underline-offset: 0.25em;\n backface-visibility: hidden;\n }\n .icon-link > .bi {\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n fill: currentcolor;\n transition: 0.2s ease-in-out transform;\n }\n @media (prefers-reduced-motion: reduce) {\n .icon-link > .bi {\n transition: none;\n }\n }\n .icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi {\n transform: var(--icon-link-transform, translate3d(0.25em, 0, 0));\n }\n}\n@layer helpers {\n .fixed-top {\n position: fixed;\n inset: 0 0 auto;\n z-index: 1030;\n }\n .fixed-bottom {\n position: fixed;\n inset: auto 0 0;\n z-index: 1030;\n }\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n @media (width >= 576px) {\n .sm\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sm\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 768px) {\n .md\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .md\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1024px) {\n .lg\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .lg\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1280px) {\n .xl\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .xl\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .\\32 xl\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n}\n@layer helpers {\n .stack-container {\n container-type: inline-size;\n }\n [class*=hstack],\n [class*=vstack] {\n display: flex;\n flex: var(--stack-flex, 1 1 auto);\n flex-direction: var(--stack-direction, row);\n align-items: var(--stack-align-items, center);\n align-self: var(--stack-align-self, stretch);\n }\n .vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n .hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n @container (width >= 576px) {\n .sm\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 576px) {\n .sm\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 768px) {\n .md\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 768px) {\n .md\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1024px) {\n .lg\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1024px) {\n .lg\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1280px) {\n .xl\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1280px) {\n .xl\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n}\n@layer helpers {\n .theme-primary {\n --theme-base: var(--primary-base);\n --theme-fg: var(--primary-fg);\n --theme-fg-emphasis: var(--primary-fg-emphasis);\n --theme-bg: var(--primary-bg);\n --theme-bg-subtle: var(--primary-bg-subtle);\n --theme-bg-muted: var(--primary-bg-muted);\n --theme-border: var(--primary-border);\n --theme-focus-ring: var(--primary-focus-ring);\n --theme-contrast: var(--primary-contrast);\n }\n .theme-accent {\n --theme-base: var(--accent-base);\n --theme-fg: var(--accent-fg);\n --theme-fg-emphasis: var(--accent-fg-emphasis);\n --theme-bg: var(--accent-bg);\n --theme-bg-subtle: var(--accent-bg-subtle);\n --theme-bg-muted: var(--accent-bg-muted);\n --theme-border: var(--accent-border);\n --theme-focus-ring: var(--accent-focus-ring);\n --theme-contrast: var(--accent-contrast);\n }\n .theme-success {\n --theme-base: var(--success-base);\n --theme-fg: var(--success-fg);\n --theme-fg-emphasis: var(--success-fg-emphasis);\n --theme-bg: var(--success-bg);\n --theme-bg-subtle: var(--success-bg-subtle);\n --theme-bg-muted: var(--success-bg-muted);\n --theme-border: var(--success-border);\n --theme-focus-ring: var(--success-focus-ring);\n --theme-contrast: var(--success-contrast);\n }\n .theme-danger {\n --theme-base: var(--danger-base);\n --theme-fg: var(--danger-fg);\n --theme-fg-emphasis: var(--danger-fg-emphasis);\n --theme-bg: var(--danger-bg);\n --theme-bg-subtle: var(--danger-bg-subtle);\n --theme-bg-muted: var(--danger-bg-muted);\n --theme-border: var(--danger-border);\n --theme-focus-ring: var(--danger-focus-ring);\n --theme-contrast: var(--danger-contrast);\n }\n .theme-warning {\n --theme-base: var(--warning-base);\n --theme-fg: var(--warning-fg);\n --theme-fg-emphasis: var(--warning-fg-emphasis);\n --theme-bg: var(--warning-bg);\n --theme-bg-subtle: var(--warning-bg-subtle);\n --theme-bg-muted: var(--warning-bg-muted);\n --theme-border: var(--warning-border);\n --theme-focus-ring: var(--warning-focus-ring);\n --theme-contrast: var(--warning-contrast);\n }\n .theme-info {\n --theme-base: var(--info-base);\n --theme-fg: var(--info-fg);\n --theme-fg-emphasis: var(--info-fg-emphasis);\n --theme-bg: var(--info-bg);\n --theme-bg-subtle: var(--info-bg-subtle);\n --theme-bg-muted: var(--info-bg-muted);\n --theme-border: var(--info-border);\n --theme-focus-ring: var(--info-focus-ring);\n --theme-contrast: var(--info-contrast);\n }\n .theme-inverse {\n --theme-base: var(--inverse-base);\n --theme-fg: var(--inverse-fg);\n --theme-fg-emphasis: var(--inverse-fg-emphasis);\n --theme-bg: var(--inverse-bg);\n --theme-bg-subtle: var(--inverse-bg-subtle);\n --theme-bg-muted: var(--inverse-bg-muted);\n --theme-border: var(--inverse-border);\n --theme-focus-ring: var(--inverse-focus-ring);\n --theme-contrast: var(--inverse-contrast);\n }\n .theme-secondary {\n --theme-base: var(--secondary-base);\n --theme-fg: var(--secondary-fg);\n --theme-fg-emphasis: var(--secondary-fg-emphasis);\n --theme-bg: var(--secondary-bg);\n --theme-bg-subtle: var(--secondary-bg-subtle);\n --theme-bg-muted: var(--secondary-bg-muted);\n --theme-border: var(--secondary-border);\n --theme-focus-ring: var(--secondary-focus-ring);\n --theme-contrast: var(--secondary-contrast);\n }\n}\n@layer helpers {\n .visually-hidden,\n .visually-hidden-focusable:not(:focus, :focus-within) {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n .visually-hidden:not(caption),\n .visually-hidden-focusable:not(:focus, :focus-within):not(caption) {\n position: absolute !important;\n }\n .visually-hidden *,\n .visually-hidden-focusable:not(:focus, :focus-within) * {\n overflow: hidden !important;\n }\n}\n@layer helpers {\n .stretched-link::after {\n position: absolute;\n inset: 0;\n z-index: 1;\n content: \"\";\n }\n}\n@layer helpers {\n .text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n@layer helpers {\n .vr {\n display: inline-block;\n align-self: stretch;\n width: var(--vr-border-width, var(--border-width));\n min-height: 1em;\n background-color: var(--border-color);\n }\n}\n@layer utilities {\n .align-baseline {\n vertical-align: baseline;\n }\n .align-top {\n vertical-align: top;\n }\n .align-middle {\n vertical-align: middle;\n }\n .align-bottom {\n vertical-align: bottom;\n }\n .align-text-bottom {\n vertical-align: text-bottom;\n }\n .align-text-top {\n vertical-align: text-top;\n }\n [class*=ratio-] {\n aspect-ratio: var(--ratio);\n }\n .ratio-auto {\n --ratio: auto;\n }\n .ratio-1x1 {\n --ratio: 1 / 1;\n }\n .ratio-4x3 {\n --ratio: 4 / 3;\n }\n .ratio-16x9 {\n --ratio: 16 / 9;\n }\n .ratio-21x9 {\n --ratio: 21 / 9;\n }\n .float-start {\n float: inline-start;\n }\n .float-end {\n float: inline-end;\n }\n .float-none {\n float: none;\n }\n .object-fit-contain {\n object-fit: contain;\n }\n .object-fit-cover {\n object-fit: cover;\n }\n .object-fit-fill {\n object-fit: fill;\n }\n .object-fit-scale {\n object-fit: scale-down;\n }\n .object-fit-none {\n object-fit: none;\n }\n .opacity-0 {\n opacity: 0;\n }\n .opacity-25 {\n opacity: 0.25;\n }\n .opacity-50 {\n opacity: 0.5;\n }\n .opacity-75 {\n opacity: 0.75;\n }\n .opacity-100 {\n opacity: 1;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-visible {\n overflow: visible;\n }\n .overflow-scroll {\n overflow: scroll;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-x-visible {\n overflow-x: visible;\n }\n .overflow-x-scroll {\n overflow-x: scroll;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .overflow-y-hidden {\n overflow-y: hidden;\n }\n .overflow-y-visible {\n overflow-y: visible;\n }\n .overflow-y-scroll {\n overflow-y: scroll;\n }\n .contains-inline {\n container-type: inline-size;\n }\n .contains-size {\n container-type: size;\n }\n .d-inline {\n display: inline;\n }\n .d-inline-block {\n display: inline-block;\n }\n .d-block {\n display: block;\n }\n .d-grid {\n display: grid;\n }\n .d-inline-grid {\n display: inline-grid;\n }\n .d-table {\n display: table;\n }\n .d-table-row {\n display: table-row;\n }\n .d-table-cell {\n display: table-cell;\n }\n .d-flex {\n display: flex;\n }\n .d-inline-flex {\n display: inline-flex;\n }\n .d-contents {\n display: contents;\n }\n .d-flow-root {\n display: flow-root;\n }\n .d-none {\n display: none;\n }\n .shadow {\n box-shadow: var(--box-shadow);\n }\n .shadow-sm {\n box-shadow: var(--box-shadow-sm);\n }\n .shadow-lg {\n box-shadow: var(--box-shadow-lg);\n }\n .shadow-none {\n box-shadow: none;\n }\n .position-static {\n position: static;\n }\n .position-relative {\n position: relative;\n }\n .position-absolute {\n position: absolute;\n }\n .position-fixed {\n position: fixed;\n }\n .position-sticky {\n position: sticky;\n }\n .top-0 {\n top: 0;\n }\n .top-50 {\n top: 50%;\n }\n .top-100 {\n top: 100%;\n }\n .bottom-0 {\n bottom: 0;\n }\n .bottom-50 {\n bottom: 50%;\n }\n .bottom-100 {\n bottom: 100%;\n }\n .start-0 {\n inset-inline-start: 0;\n }\n .start-50 {\n inset-inline-start: 50%;\n }\n .start-100 {\n inset-inline-start: 100%;\n }\n .end-0 {\n inset-inline-end: 0;\n }\n .end-50 {\n inset-inline-end: 50%;\n }\n .end-100 {\n inset-inline-end: 100%;\n }\n .translate-middle {\n transform: translate(-50%, -50%);\n }\n .translate-middle-x {\n transform: translateX(-50%);\n }\n .translate-middle-y {\n transform: translateY(-50%);\n }\n .border {\n border: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-0 {\n border: 0;\n }\n .border-top {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-top-0 {\n border-block-start: 0;\n }\n .border-end {\n border-inline-end: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-end-0 {\n border-inline-end: 0;\n }\n .border-bottom {\n border-block-end: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-bottom-0 {\n border-block-end: 0;\n }\n .border-start {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-start-0 {\n border-inline-start: 0;\n }\n .border-y {\n border-block: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-y-0 {\n border-block: 0;\n }\n .border-x {\n border-inline: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-x-0 {\n border-inline: 0;\n }\n .border-primary {\n --border-color: var(--primary-bg);\n border-color: var(--border-color);\n }\n .border-accent {\n --border-color: var(--accent-bg);\n border-color: var(--border-color);\n }\n .border-success {\n --border-color: var(--success-bg);\n border-color: var(--border-color);\n }\n .border-danger {\n --border-color: var(--danger-bg);\n border-color: var(--border-color);\n }\n .border-warning {\n --border-color: var(--warning-bg);\n border-color: var(--border-color);\n }\n .border-info {\n --border-color: var(--info-bg);\n border-color: var(--border-color);\n }\n .border-inverse {\n --border-color: var(--inverse-bg);\n border-color: var(--border-color);\n }\n .border-secondary {\n --border-color: var(--secondary-bg);\n border-color: var(--border-color);\n }\n .border-bg {\n --border-color: var(--border-bg);\n border-color: var(--border-color);\n }\n .border-body {\n --border-color: var(--border-body);\n border-color: var(--border-color);\n }\n .border-muted {\n --border-color: var(--border-muted);\n border-color: var(--border-color);\n }\n .border-subtle {\n --border-color: var(--border-subtle);\n border-color: var(--border-color);\n }\n .border-emphasized {\n --border-color: var(--border-emphasized);\n border-color: var(--border-color);\n }\n .border-white {\n --border-color: var(--border-white);\n border-color: var(--border-color);\n }\n .border-black {\n --border-color: var(--border-black);\n border-color: var(--border-color);\n }\n .border-subtle-primary {\n --border-color: var(--primary-border);\n border-color: var(--border-color);\n }\n .border-subtle-accent {\n --border-color: var(--accent-border);\n border-color: var(--border-color);\n }\n .border-subtle-success {\n --border-color: var(--success-border);\n border-color: var(--border-color);\n }\n .border-subtle-danger {\n --border-color: var(--danger-border);\n border-color: var(--border-color);\n }\n .border-subtle-warning {\n --border-color: var(--warning-border);\n border-color: var(--border-color);\n }\n .border-subtle-info {\n --border-color: var(--info-border);\n border-color: var(--border-color);\n }\n .border-subtle-inverse {\n --border-color: var(--inverse-border);\n border-color: var(--border-color);\n }\n .border-subtle-secondary {\n --border-color: var(--secondary-border);\n border-color: var(--border-color);\n }\n .border-1 {\n border-width: 1px;\n }\n .border-2 {\n border-width: 2px;\n }\n .border-3 {\n border-width: 3px;\n }\n .border-4 {\n border-width: 4px;\n }\n .border-5 {\n border-width: 5px;\n }\n .border-10 {\n border-color: color-mix(in oklch, var(--border-color) 10%, transparent);\n }\n .border-20 {\n border-color: color-mix(in oklch, var(--border-color) 20%, transparent);\n }\n .border-30 {\n border-color: color-mix(in oklch, var(--border-color) 30%, transparent);\n }\n .border-40 {\n border-color: color-mix(in oklch, var(--border-color) 40%, transparent);\n }\n .border-50 {\n border-color: color-mix(in oklch, var(--border-color) 50%, transparent);\n }\n .border-60 {\n border-color: color-mix(in oklch, var(--border-color) 60%, transparent);\n }\n .border-70 {\n border-color: color-mix(in oklch, var(--border-color) 70%, transparent);\n }\n .border-80 {\n border-color: color-mix(in oklch, var(--border-color) 80%, transparent);\n }\n .border-90 {\n border-color: color-mix(in oklch, var(--border-color) 90%, transparent);\n }\n .border-100 {\n border-color: var(--border-color);\n }\n .w-1 {\n width: 1rem;\n }\n .w-2 {\n width: 2rem;\n }\n .w-3 {\n width: 3rem;\n }\n .w-4 {\n width: 4rem;\n }\n .w-5 {\n width: 5rem;\n }\n .w-6 {\n width: 6rem;\n }\n .w-7 {\n width: 7rem;\n }\n .w-8 {\n width: 8rem;\n }\n .w-9 {\n width: 9rem;\n }\n .w-10 {\n width: 10rem;\n }\n .w-11 {\n width: 11rem;\n }\n .w-12 {\n width: 12rem;\n }\n .w-25 {\n width: 25%;\n }\n .w-50 {\n width: 50%;\n }\n .w-75 {\n width: 75%;\n }\n .w-100 {\n width: 100%;\n }\n .w-auto {\n width: auto;\n }\n .w-min {\n width: min-content;\n }\n .w-max {\n width: max-content;\n }\n .w-fit {\n width: fit-content;\n }\n .max-w-100 {\n max-width: 100%;\n }\n .min-w-0 {\n min-width: 0;\n }\n .min-w-100 {\n min-width: 100%;\n }\n .vw-100 {\n width: 100vw;\n }\n .min-vw-100 {\n min-width: 100vw;\n }\n .h-25 {\n height: 25%;\n }\n .h-50 {\n height: 50%;\n }\n .h-75 {\n height: 75%;\n }\n .h-100 {\n height: 100%;\n }\n .h-auto {\n height: auto;\n }\n .h-min {\n height: min-content;\n }\n .h-max {\n height: max-content;\n }\n .h-fit {\n height: fit-content;\n }\n .max-h-100 {\n max-height: 100%;\n }\n .min-h-0 {\n min-height: 0;\n }\n .min-h-100 {\n min-height: 100%;\n }\n .vh-100 {\n height: 100vh;\n }\n .min-vh-100 {\n min-height: 100vh;\n }\n .flex-fill {\n flex: 1 1 auto;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-column {\n flex-direction: column;\n }\n .flex-row-reverse {\n flex-direction: row-reverse;\n }\n .flex-column-reverse {\n flex-direction: column-reverse;\n }\n .flex-grow-0 {\n flex-grow: 0;\n }\n .flex-grow-1 {\n flex-grow: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .flex-shrink-1 {\n flex-shrink: 1;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .flex-nowrap {\n flex-wrap: nowrap;\n }\n .flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .justify-content-start {\n justify-content: flex-start;\n }\n .justify-content-end {\n justify-content: flex-end;\n }\n .justify-content-center {\n justify-content: center;\n }\n .justify-content-between {\n justify-content: space-between;\n }\n .justify-content-around {\n justify-content: space-around;\n }\n .justify-content-evenly {\n justify-content: space-evenly;\n }\n .justify-items-start {\n justify-items: start;\n }\n .justify-items-end {\n justify-items: end;\n }\n .justify-items-center {\n justify-items: center;\n }\n .justify-items-stretch {\n justify-items: stretch;\n }\n .justify-self-start {\n justify-self: start;\n }\n .justify-self-end {\n justify-self: end;\n }\n .justify-self-center {\n justify-self: center;\n }\n .align-items-start {\n align-items: flex-start;\n }\n .align-items-end {\n align-items: flex-end;\n }\n .align-items-center {\n align-items: center;\n }\n .align-items-baseline {\n align-items: baseline;\n }\n .align-items-stretch {\n align-items: stretch;\n }\n .align-content-start {\n align-content: flex-start;\n }\n .align-content-end {\n align-content: flex-end;\n }\n .align-content-center {\n align-content: center;\n }\n .align-content-between {\n align-content: space-between;\n }\n .align-content-around {\n align-content: space-around;\n }\n .align-content-stretch {\n align-content: stretch;\n }\n .align-self-auto {\n align-self: auto;\n }\n .align-self-start {\n align-self: flex-start;\n }\n .align-self-end {\n align-self: flex-end;\n }\n .align-self-center {\n align-self: center;\n }\n .align-self-baseline {\n align-self: baseline;\n }\n .align-self-stretch {\n align-self: stretch;\n }\n .place-items-start {\n place-items: start;\n }\n .place-items-end {\n place-items: end;\n }\n .place-items-center {\n place-items: center;\n }\n .place-items-stretch {\n place-items: stretch;\n }\n .grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .grid-cols-fill {\n grid-column: 1 / -1;\n }\n .grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .order-first {\n order: -1;\n }\n .order-0 {\n order: 0;\n }\n .order-1 {\n order: 1;\n }\n .order-2 {\n order: 2;\n }\n .order-3 {\n order: 3;\n }\n .order-4 {\n order: 4;\n }\n .order-5 {\n order: 5;\n }\n .order-last {\n order: 6;\n }\n .m-0 {\n margin: 0;\n }\n .m-1 {\n margin: 0.25rem;\n }\n .m-2 {\n margin: 0.5rem;\n }\n .m-3 {\n margin: 0.75rem;\n }\n .m-4 {\n margin: 1rem;\n }\n .m-5 {\n margin: 1.25rem;\n }\n .m-6 {\n margin: 1.5rem;\n }\n .m-7 {\n margin: 2rem;\n }\n .m-8 {\n margin: 2.5rem;\n }\n .m-9 {\n margin: 3rem;\n }\n .m-auto {\n margin: auto;\n }\n .mx-0 {\n margin-inline: 0;\n }\n .mx-1 {\n margin-inline: 0.25rem;\n }\n .mx-2 {\n margin-inline: 0.5rem;\n }\n .mx-3 {\n margin-inline: 0.75rem;\n }\n .mx-4 {\n margin-inline: 1rem;\n }\n .mx-5 {\n margin-inline: 1.25rem;\n }\n .mx-6 {\n margin-inline: 1.5rem;\n }\n .mx-7 {\n margin-inline: 2rem;\n }\n .mx-8 {\n margin-inline: 2.5rem;\n }\n .mx-9 {\n margin-inline: 3rem;\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-0 {\n margin-block: 0;\n }\n .my-1 {\n margin-block: 0.25rem;\n }\n .my-2 {\n margin-block: 0.5rem;\n }\n .my-3 {\n margin-block: 0.75rem;\n }\n .my-4 {\n margin-block: 1rem;\n }\n .my-5 {\n margin-block: 1.25rem;\n }\n .my-6 {\n margin-block: 1.5rem;\n }\n .my-7 {\n margin-block: 2rem;\n }\n .my-8 {\n margin-block: 2.5rem;\n }\n .my-9 {\n margin-block: 3rem;\n }\n .my-auto {\n margin-block: auto;\n }\n .mt-0 {\n margin-block-start: 0;\n }\n .mt-1 {\n margin-block-start: 0.25rem;\n }\n .mt-2 {\n margin-block-start: 0.5rem;\n }\n .mt-3 {\n margin-block-start: 0.75rem;\n }\n .mt-4 {\n margin-block-start: 1rem;\n }\n .mt-5 {\n margin-block-start: 1.25rem;\n }\n .mt-6 {\n margin-block-start: 1.5rem;\n }\n .mt-7 {\n margin-block-start: 2rem;\n }\n .mt-8 {\n margin-block-start: 2.5rem;\n }\n .mt-9 {\n margin-block-start: 3rem;\n }\n .mt-auto {\n margin-block-start: auto;\n }\n .me-0 {\n margin-inline-end: 0;\n }\n .me-1 {\n margin-inline-end: 0.25rem;\n }\n .me-2 {\n margin-inline-end: 0.5rem;\n }\n .me-3 {\n margin-inline-end: 0.75rem;\n }\n .me-4 {\n margin-inline-end: 1rem;\n }\n .me-5 {\n margin-inline-end: 1.25rem;\n }\n .me-6 {\n margin-inline-end: 1.5rem;\n }\n .me-7 {\n margin-inline-end: 2rem;\n }\n .me-8 {\n margin-inline-end: 2.5rem;\n }\n .me-9 {\n margin-inline-end: 3rem;\n }\n .me--1 {\n margin-inline-end: -0.25rem;\n }\n .me--2 {\n margin-inline-end: -0.5rem;\n }\n .me-auto {\n margin-inline-end: auto;\n }\n .mb-0 {\n margin-block-end: 0;\n }\n .mb-1 {\n margin-block-end: 0.25rem;\n }\n .mb-2 {\n margin-block-end: 0.5rem;\n }\n .mb-3 {\n margin-block-end: 0.75rem;\n }\n .mb-4 {\n margin-block-end: 1rem;\n }\n .mb-5 {\n margin-block-end: 1.25rem;\n }\n .mb-6 {\n margin-block-end: 1.5rem;\n }\n .mb-7 {\n margin-block-end: 2rem;\n }\n .mb-8 {\n margin-block-end: 2.5rem;\n }\n .mb-9 {\n margin-block-end: 3rem;\n }\n .mb-auto {\n margin-block-end: auto;\n }\n .ms-0 {\n margin-inline-start: 0;\n }\n .ms-1 {\n margin-inline-start: 0.25rem;\n }\n .ms-2 {\n margin-inline-start: 0.5rem;\n }\n .ms-3 {\n margin-inline-start: 0.75rem;\n }\n .ms-4 {\n margin-inline-start: 1rem;\n }\n .ms-5 {\n margin-inline-start: 1.25rem;\n }\n .ms-6 {\n margin-inline-start: 1.5rem;\n }\n .ms-7 {\n margin-inline-start: 2rem;\n }\n .ms-8 {\n margin-inline-start: 2.5rem;\n }\n .ms-9 {\n margin-inline-start: 3rem;\n }\n .ms--1 {\n margin-inline-start: -0.25rem;\n }\n .ms--2 {\n margin-inline-start: -0.5rem;\n }\n .ms-auto {\n margin-inline-start: auto;\n }\n .p-0 {\n padding: 0;\n }\n .p-1 {\n padding: 0.25rem;\n }\n .p-2 {\n padding: 0.5rem;\n }\n .p-3 {\n padding: 0.75rem;\n }\n .p-4 {\n padding: 1rem;\n }\n .p-5 {\n padding: 1.25rem;\n }\n .p-6 {\n padding: 1.5rem;\n }\n .p-7 {\n padding: 2rem;\n }\n .p-8 {\n padding: 2.5rem;\n }\n .p-9 {\n padding: 3rem;\n }\n .px-0 {\n padding-inline: 0;\n }\n .px-1 {\n padding-inline: 0.25rem;\n }\n .px-2 {\n padding-inline: 0.5rem;\n }\n .px-3 {\n padding-inline: 0.75rem;\n }\n .px-4 {\n padding-inline: 1rem;\n }\n .px-5 {\n padding-inline: 1.25rem;\n }\n .px-6 {\n padding-inline: 1.5rem;\n }\n .px-7 {\n padding-inline: 2rem;\n }\n .px-8 {\n padding-inline: 2.5rem;\n }\n .px-9 {\n padding-inline: 3rem;\n }\n .py-0 {\n padding-block: 0;\n }\n .py-1 {\n padding-block: 0.25rem;\n }\n .py-2 {\n padding-block: 0.5rem;\n }\n .py-3 {\n padding-block: 0.75rem;\n }\n .py-4 {\n padding-block: 1rem;\n }\n .py-5 {\n padding-block: 1.25rem;\n }\n .py-6 {\n padding-block: 1.5rem;\n }\n .py-7 {\n padding-block: 2rem;\n }\n .py-8 {\n padding-block: 2.5rem;\n }\n .py-9 {\n padding-block: 3rem;\n }\n .pt-0 {\n padding-block-start: 0;\n }\n .pt-1 {\n padding-block-start: 0.25rem;\n }\n .pt-2 {\n padding-block-start: 0.5rem;\n }\n .pt-3 {\n padding-block-start: 0.75rem;\n }\n .pt-4 {\n padding-block-start: 1rem;\n }\n .pt-5 {\n padding-block-start: 1.25rem;\n }\n .pt-6 {\n padding-block-start: 1.5rem;\n }\n .pt-7 {\n padding-block-start: 2rem;\n }\n .pt-8 {\n padding-block-start: 2.5rem;\n }\n .pt-9 {\n padding-block-start: 3rem;\n }\n .pe-0 {\n padding-inline-end: 0;\n }\n .pe-1 {\n padding-inline-end: 0.25rem;\n }\n .pe-2 {\n padding-inline-end: 0.5rem;\n }\n .pe-3 {\n padding-inline-end: 0.75rem;\n }\n .pe-4 {\n padding-inline-end: 1rem;\n }\n .pe-5 {\n padding-inline-end: 1.25rem;\n }\n .pe-6 {\n padding-inline-end: 1.5rem;\n }\n .pe-7 {\n padding-inline-end: 2rem;\n }\n .pe-8 {\n padding-inline-end: 2.5rem;\n }\n .pe-9 {\n padding-inline-end: 3rem;\n }\n .pb-0 {\n padding-block-end: 0;\n }\n .pb-1 {\n padding-block-end: 0.25rem;\n }\n .pb-2 {\n padding-block-end: 0.5rem;\n }\n .pb-3 {\n padding-block-end: 0.75rem;\n }\n .pb-4 {\n padding-block-end: 1rem;\n }\n .pb-5 {\n padding-block-end: 1.25rem;\n }\n .pb-6 {\n padding-block-end: 1.5rem;\n }\n .pb-7 {\n padding-block-end: 2rem;\n }\n .pb-8 {\n padding-block-end: 2.5rem;\n }\n .pb-9 {\n padding-block-end: 3rem;\n }\n .ps-0 {\n padding-inline-start: 0;\n }\n .ps-1 {\n padding-inline-start: 0.25rem;\n }\n .ps-2 {\n padding-inline-start: 0.5rem;\n }\n .ps-3 {\n padding-inline-start: 0.75rem;\n }\n .ps-4 {\n padding-inline-start: 1rem;\n }\n .ps-5 {\n padding-inline-start: 1.25rem;\n }\n .ps-6 {\n padding-inline-start: 1.5rem;\n }\n .ps-7 {\n padding-inline-start: 2rem;\n }\n .ps-8 {\n padding-inline-start: 2.5rem;\n }\n .ps-9 {\n padding-inline-start: 3rem;\n }\n .gap-0 {\n gap: 0;\n }\n .gap-1 {\n gap: 0.25rem;\n }\n .gap-2 {\n gap: 0.5rem;\n }\n .gap-3 {\n gap: 0.75rem;\n }\n .gap-4 {\n gap: 1rem;\n }\n .gap-5 {\n gap: 1.25rem;\n }\n .gap-6 {\n gap: 1.5rem;\n }\n .gap-7 {\n gap: 2rem;\n }\n .gap-8 {\n gap: 2.5rem;\n }\n .gap-9 {\n gap: 3rem;\n }\n .row-gap-0 {\n row-gap: 0;\n }\n .row-gap-1 {\n row-gap: 0.25rem;\n }\n .row-gap-2 {\n row-gap: 0.5rem;\n }\n .row-gap-3 {\n row-gap: 0.75rem;\n }\n .row-gap-4 {\n row-gap: 1rem;\n }\n .row-gap-5 {\n row-gap: 1.25rem;\n }\n .row-gap-6 {\n row-gap: 1.5rem;\n }\n .row-gap-7 {\n row-gap: 2rem;\n }\n .row-gap-8 {\n row-gap: 2.5rem;\n }\n .row-gap-9 {\n row-gap: 3rem;\n }\n .column-gap-0 {\n column-gap: 0;\n }\n .column-gap-1 {\n column-gap: 0.25rem;\n }\n .column-gap-2 {\n column-gap: 0.5rem;\n }\n .column-gap-3 {\n column-gap: 0.75rem;\n }\n .column-gap-4 {\n column-gap: 1rem;\n }\n .column-gap-5 {\n column-gap: 1.25rem;\n }\n .column-gap-6 {\n column-gap: 1.5rem;\n }\n .column-gap-7 {\n column-gap: 2rem;\n }\n .column-gap-8 {\n column-gap: 2.5rem;\n }\n .column-gap-9 {\n column-gap: 3rem;\n }\n :where(.space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .font-monospace {\n font-family: var(--font-mono);\n }\n .font-body {\n font-family: var(--body-font-family);\n }\n .fs-xs {\n font-size: 0.75rem;\n }\n .fs-sm {\n font-size: 0.875rem;\n }\n .fs-md {\n font-size: 1rem;\n }\n .fs-lg {\n font-size: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n }\n .fs-xl {\n font-size: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n }\n .fs-2xl {\n font-size: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n }\n .fs-3xl {\n font-size: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n }\n .fs-4xl {\n font-size: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n }\n .fs-5xl {\n font-size: clamp(3rem, 2rem + 5vw, 4rem);\n }\n .fs-6xl {\n font-size: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n }\n .text-xs {\n font-size: 0.75rem;\n line-height: 1.25;\n }\n .text-sm {\n font-size: 0.875rem;\n line-height: 1.5;\n }\n .text-md {\n font-size: 1rem;\n line-height: 1.5;\n }\n .text-lg {\n font-size: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n line-height: 1.5;\n }\n .text-xl {\n font-size: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n line-height: 1.4285714286;\n }\n .text-2xl {\n font-size: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n line-height: 1.3333333333;\n }\n .text-3xl {\n font-size: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n line-height: 1.2;\n }\n .text-4xl {\n font-size: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n line-height: 1.1;\n }\n .text-5xl {\n font-size: clamp(3rem, 2rem + 5vw, 4rem);\n line-height: 1.1;\n }\n .text-6xl {\n font-size: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n line-height: 1;\n }\n .fst-italic {\n font-style: italic;\n }\n .fst-normal {\n font-style: normal;\n }\n .fw-lighter {\n font-weight: lighter;\n }\n .fw-light {\n font-weight: 300;\n }\n .fw-normal {\n font-weight: 400;\n }\n .fw-medium {\n font-weight: 500;\n }\n .fw-semibold {\n font-weight: 600;\n }\n .fw-bold {\n font-weight: 700;\n }\n .fw-bolder {\n font-weight: bolder;\n }\n .lh-1 {\n line-height: 1;\n }\n .lh-sm {\n line-height: 1.25;\n }\n .lh-base {\n line-height: 1.5;\n }\n .lh-lg {\n line-height: 2;\n }\n .text-start {\n text-align: start;\n }\n .text-end {\n text-align: end;\n }\n .text-center {\n text-align: center;\n }\n .text-decoration-none {\n text-decoration: none;\n }\n .text-decoration-underline {\n text-decoration: underline;\n }\n .text-decoration-line-through {\n text-decoration: line-through;\n }\n .text-lowercase {\n text-transform: lowercase;\n }\n .text-uppercase {\n text-transform: uppercase;\n }\n .text-capitalize {\n text-transform: capitalize;\n }\n .text-wrap {\n text-wrap: wrap;\n }\n .text-nowrap {\n text-wrap: nowrap;\n }\n .text-balance {\n text-wrap: balance;\n }\n .text-pretty {\n text-wrap: pretty;\n }\n .text-break {\n word-wrap: break-word;\n word-break: break-word;\n }\n .fg-primary {\n --fg: var(--primary-fg);\n color: var(--fg);\n }\n .fg-accent {\n --fg: var(--accent-fg);\n color: var(--fg);\n }\n .fg-success {\n --fg: var(--success-fg);\n color: var(--fg);\n }\n .fg-danger {\n --fg: var(--danger-fg);\n color: var(--fg);\n }\n .fg-warning {\n --fg: var(--warning-fg);\n color: var(--fg);\n }\n .fg-info {\n --fg: var(--info-fg);\n color: var(--fg);\n }\n .fg-inverse {\n --fg: var(--inverse-fg);\n color: var(--fg);\n }\n .fg-secondary {\n --fg: var(--secondary-fg);\n color: var(--fg);\n }\n .fg-body {\n --fg: var(--fg-body);\n color: var(--fg);\n }\n .fg-1 {\n --fg: var(--fg-1);\n color: var(--fg);\n }\n .fg-2 {\n --fg: var(--fg-2);\n color: var(--fg);\n }\n .fg-3 {\n --fg: var(--fg-3);\n color: var(--fg);\n }\n .fg-4 {\n --fg: var(--fg-4);\n color: var(--fg);\n }\n .fg-bg {\n --fg: var(--fg-bg);\n color: var(--fg);\n }\n .fg-white {\n --fg: var(--fg-white);\n color: var(--fg);\n }\n .fg-black {\n --fg: var(--fg-black);\n color: var(--fg);\n }\n .fg-emphasis-primary {\n --fg: var(--primary-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-accent {\n --fg: var(--accent-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-success {\n --fg: var(--success-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-danger {\n --fg: var(--danger-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-warning {\n --fg: var(--warning-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-info {\n --fg: var(--info-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-inverse {\n --fg: var(--inverse-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-secondary {\n --fg: var(--secondary-fg-emphasis);\n color: var(--fg);\n }\n .fg-contrast-primary {\n --fg: var(--primary-contrast);\n color: var(--fg);\n }\n .fg-contrast-accent {\n --fg: var(--accent-contrast);\n color: var(--fg);\n }\n .fg-contrast-success {\n --fg: var(--success-contrast);\n color: var(--fg);\n }\n .fg-contrast-danger {\n --fg: var(--danger-contrast);\n color: var(--fg);\n }\n .fg-contrast-warning {\n --fg: var(--warning-contrast);\n color: var(--fg);\n }\n .fg-contrast-info {\n --fg: var(--info-contrast);\n color: var(--fg);\n }\n .fg-contrast-inverse {\n --fg: var(--inverse-contrast);\n color: var(--fg);\n }\n .fg-contrast-secondary {\n --fg: var(--secondary-contrast);\n color: var(--fg);\n }\n .fg-10 {\n color: color-mix(in oklch, var(--fg) 10%, transparent);\n }\n .fg-20 {\n color: color-mix(in oklch, var(--fg) 20%, transparent);\n }\n .fg-30 {\n color: color-mix(in oklch, var(--fg) 30%, transparent);\n }\n .fg-40 {\n color: color-mix(in oklch, var(--fg) 40%, transparent);\n }\n .fg-50 {\n color: color-mix(in oklch, var(--fg) 50%, transparent);\n }\n .fg-60 {\n color: color-mix(in oklch, var(--fg) 60%, transparent);\n }\n .fg-70 {\n color: color-mix(in oklch, var(--fg) 70%, transparent);\n }\n .fg-80 {\n color: color-mix(in oklch, var(--fg) 80%, transparent);\n }\n .fg-90 {\n color: color-mix(in oklch, var(--fg) 90%, transparent);\n }\n .fg-100 {\n color: var(--fg);\n }\n .link-10 {\n color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .hover\\:link-10:hover {\n color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .link-20 {\n color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .hover\\:link-20:hover {\n color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .link-30 {\n color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .hover\\:link-30:hover {\n color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .link-40 {\n color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .hover\\:link-40:hover {\n color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .link-50 {\n color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .hover\\:link-50:hover {\n color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .link-60 {\n color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .hover\\:link-60:hover {\n color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .link-70 {\n color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .hover\\:link-70:hover {\n color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .link-80 {\n color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .hover\\:link-80:hover {\n color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .link-90 {\n color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .hover\\:link-90:hover {\n color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .link-100 {\n color: var(--link-color);\n }\n .hover\\:link-100:hover {\n color: var(--link-color);\n }\n .underline-offset-1 {\n text-underline-offset: 0.125em;\n }\n .hover\\:underline-offset-1:hover {\n text-underline-offset: 0.125em;\n }\n .underline-offset-2 {\n text-underline-offset: 0.25em;\n }\n .hover\\:underline-offset-2:hover {\n text-underline-offset: 0.25em;\n }\n .underline-offset-3 {\n text-underline-offset: 0.375em;\n }\n .hover\\:underline-offset-3:hover {\n text-underline-offset: 0.375em;\n }\n .underline-primary {\n text-decoration-color: light-dark(var(--blue-600), var(--blue-400));\n }\n .underline-accent {\n text-decoration-color: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n }\n .underline-success {\n text-decoration-color: light-dark(var(--green-600), var(--green-400));\n }\n .underline-danger {\n text-decoration-color: light-dark(var(--red-600), var(--red-400));\n }\n .underline-warning {\n text-decoration-color: light-dark(var(--yellow-700), var(--yellow-400));\n }\n .underline-info {\n text-decoration-color: light-dark(var(--cyan-600), var(--cyan-400));\n }\n .underline-inverse {\n text-decoration-color: light-dark(var(--gray-900), var(--gray-200));\n }\n .underline-secondary {\n text-decoration-color: light-dark(var(--gray-600), var(--gray-400));\n }\n .underline-10 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .hover\\:underline-10:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .underline-20 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .hover\\:underline-20:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .underline-30 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .hover\\:underline-30:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .underline-40 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .hover\\:underline-40:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .underline-50 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .hover\\:underline-50:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .underline-60 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .hover\\:underline-60:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .underline-70 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .hover\\:underline-70:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .underline-80 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .hover\\:underline-80:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .underline-90 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .hover\\:underline-90:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .underline-100 {\n text-decoration-color: var(--link-color);\n }\n .hover\\:underline-100:hover {\n text-decoration-color: var(--link-color);\n }\n .underline-thickness-1 {\n text-decoration-thickness: 1px;\n }\n .hover\\:underline-thickness-1:hover {\n text-decoration-thickness: 1px;\n }\n .underline-thickness-2 {\n text-decoration-thickness: 2px;\n }\n .hover\\:underline-thickness-2:hover {\n text-decoration-thickness: 2px;\n }\n .underline-thickness-3 {\n text-decoration-thickness: 3px;\n }\n .hover\\:underline-thickness-3:hover {\n text-decoration-thickness: 3px;\n }\n .underline-thickness-4 {\n text-decoration-thickness: 4px;\n }\n .hover\\:underline-thickness-4:hover {\n text-decoration-thickness: 4px;\n }\n .underline-thickness-5 {\n text-decoration-thickness: 5px;\n }\n .hover\\:underline-thickness-5:hover {\n text-decoration-thickness: 5px;\n }\n .bg-primary {\n --bg: var(--primary-bg);\n background-color: var(--bg);\n }\n .bg-accent {\n --bg: var(--accent-bg);\n background-color: var(--bg);\n }\n .bg-success {\n --bg: var(--success-bg);\n background-color: var(--bg);\n }\n .bg-danger {\n --bg: var(--danger-bg);\n background-color: var(--bg);\n }\n .bg-warning {\n --bg: var(--warning-bg);\n background-color: var(--bg);\n }\n .bg-info {\n --bg: var(--info-bg);\n background-color: var(--bg);\n }\n .bg-inverse {\n --bg: var(--inverse-bg);\n background-color: var(--bg);\n }\n .bg-secondary {\n --bg: var(--secondary-bg);\n background-color: var(--bg);\n }\n .bg-body {\n --bg: var(--bg-body);\n background-color: var(--bg);\n }\n .bg-1 {\n --bg: var(--bg-1);\n background-color: var(--bg);\n }\n .bg-2 {\n --bg: var(--bg-2);\n background-color: var(--bg);\n }\n .bg-3 {\n --bg: var(--bg-3);\n background-color: var(--bg);\n }\n .bg-4 {\n --bg: var(--bg-4);\n background-color: var(--bg);\n }\n .bg-fg {\n --bg: var(--bg-fg);\n background-color: var(--bg);\n }\n .bg-white {\n --bg: var(--bg-white);\n background-color: var(--bg);\n }\n .bg-black {\n --bg: var(--bg-black);\n background-color: var(--bg);\n }\n .bg-transparent {\n --bg: var(--bg-transparent);\n background-color: var(--bg);\n }\n .bg-subtle-primary {\n --bg: var(--primary-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-accent {\n --bg: var(--accent-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-success {\n --bg: var(--success-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-danger {\n --bg: var(--danger-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-warning {\n --bg: var(--warning-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-info {\n --bg: var(--info-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-inverse {\n --bg: var(--inverse-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-secondary {\n --bg: var(--secondary-bg-subtle);\n background-color: var(--bg);\n }\n .bg-muted-primary {\n --bg: var(--primary-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-accent {\n --bg: var(--accent-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-success {\n --bg: var(--success-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-danger {\n --bg: var(--danger-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-warning {\n --bg: var(--warning-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-info {\n --bg: var(--info-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-inverse {\n --bg: var(--inverse-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-secondary {\n --bg: var(--secondary-bg-muted);\n background-color: var(--bg);\n }\n .bg-10 {\n background-color: color-mix(in oklch, var(--bg) 10%, transparent);\n }\n .bg-20 {\n background-color: color-mix(in oklch, var(--bg) 20%, transparent);\n }\n .bg-30 {\n background-color: color-mix(in oklch, var(--bg) 30%, transparent);\n }\n .bg-40 {\n background-color: color-mix(in oklch, var(--bg) 40%, transparent);\n }\n .bg-50 {\n background-color: color-mix(in oklch, var(--bg) 50%, transparent);\n }\n .bg-60 {\n background-color: color-mix(in oklch, var(--bg) 60%, transparent);\n }\n .bg-70 {\n background-color: color-mix(in oklch, var(--bg) 70%, transparent);\n }\n .bg-80 {\n background-color: color-mix(in oklch, var(--bg) 80%, transparent);\n }\n .bg-90 {\n background-color: color-mix(in oklch, var(--bg) 90%, transparent);\n }\n .bg-100 {\n background-color: var(--bg);\n }\n .theme-contrast {\n background-color: var(--theme-bg);\n color: var(--theme-contrast);\n }\n .theme-subtle {\n background-color: var(--theme-bg-subtle);\n color: var(--theme-fg);\n }\n .theme-muted {\n background-color: var(--theme-bg-muted);\n color: var(--theme-fg-emphasis);\n }\n .theme-border {\n border: var(--border-width) solid var(--theme-border);\n }\n .bg-gradient {\n background-image: var(--gradient);\n }\n .user-select-all {\n user-select: all;\n }\n .user-select-auto {\n user-select: auto;\n }\n .user-select-text {\n user-select: text;\n }\n .user-select-none {\n user-select: none;\n }\n .pe-none {\n pointer-events: none;\n }\n .pe-auto {\n pointer-events: auto;\n }\n .rounded-0 {\n --rounded-size: 0;\n border-radius: var(--rounded-size);\n }\n .rounded-1 {\n --rounded-size: 0.125rem;\n border-radius: var(--rounded-size);\n }\n .rounded-2 {\n --rounded-size: 0.1875rem;\n border-radius: var(--rounded-size);\n }\n .rounded-3 {\n --rounded-size: 0.25rem;\n border-radius: var(--rounded-size);\n }\n .rounded-4 {\n --rounded-size: 0.375rem;\n border-radius: var(--rounded-size);\n }\n .rounded-5 {\n --rounded-size: 0.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded-6 {\n --rounded-size: 0.625rem;\n border-radius: var(--rounded-size);\n }\n .rounded-7 {\n --rounded-size: 0.75rem;\n border-radius: var(--rounded-size);\n }\n .rounded-8 {\n --rounded-size: 1rem;\n border-radius: var(--rounded-size);\n }\n .rounded-9 {\n --rounded-size: 1.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded {\n --rounded-size: 0.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded-circle {\n --rounded-size: 50%;\n border-radius: var(--rounded-size);\n }\n .rounded-pill {\n --rounded-size: var(--radius-pill);\n border-radius: var(--rounded-size);\n }\n .rounded-size-0 {\n --rounded-size: 0;\n }\n .rounded-size-1 {\n --rounded-size: 0.125rem;\n }\n .rounded-size-2 {\n --rounded-size: 0.1875rem;\n }\n .rounded-size-3 {\n --rounded-size: 0.25rem;\n }\n .rounded-size-4 {\n --rounded-size: 0.375rem;\n }\n .rounded-size-5 {\n --rounded-size: 0.5rem;\n }\n .rounded-size-6 {\n --rounded-size: 0.625rem;\n }\n .rounded-size-7 {\n --rounded-size: 0.75rem;\n }\n .rounded-size-8 {\n --rounded-size: 1rem;\n }\n .rounded-size-9 {\n --rounded-size: 1.5rem;\n }\n .rounded-size {\n --rounded-size: 0.5rem;\n }\n .rounded-size-circle {\n --rounded-size: 50%;\n }\n .rounded-size-pill {\n --rounded-size: var(--radius-pill);\n }\n .rounded-top-0 {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n .rounded-top-1 {\n border-start-start-radius: 0.125rem;\n border-start-end-radius: 0.125rem;\n }\n .rounded-top-2 {\n border-start-start-radius: 0.1875rem;\n border-start-end-radius: 0.1875rem;\n }\n .rounded-top-3 {\n border-start-start-radius: 0.25rem;\n border-start-end-radius: 0.25rem;\n }\n .rounded-top-4 {\n border-start-start-radius: 0.375rem;\n border-start-end-radius: 0.375rem;\n }\n .rounded-top-5 {\n border-start-start-radius: 0.5rem;\n border-start-end-radius: 0.5rem;\n }\n .rounded-top-6 {\n border-start-start-radius: 0.625rem;\n border-start-end-radius: 0.625rem;\n }\n .rounded-top-7 {\n border-start-start-radius: 0.75rem;\n border-start-end-radius: 0.75rem;\n }\n .rounded-top-8 {\n border-start-start-radius: 1rem;\n border-start-end-radius: 1rem;\n }\n .rounded-top-9 {\n border-start-start-radius: 1.5rem;\n border-start-end-radius: 1.5rem;\n }\n .rounded-top {\n border-start-start-radius: var(--rounded-size, var(--radius-5));\n border-start-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-top-circle {\n border-start-start-radius: 50%;\n border-start-end-radius: 50%;\n }\n .rounded-top-pill {\n border-start-start-radius: var(--radius-pill);\n border-start-end-radius: var(--radius-pill);\n }\n .rounded-end-0 {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .rounded-end-1 {\n border-start-end-radius: 0.125rem;\n border-end-end-radius: 0.125rem;\n }\n .rounded-end-2 {\n border-start-end-radius: 0.1875rem;\n border-end-end-radius: 0.1875rem;\n }\n .rounded-end-3 {\n border-start-end-radius: 0.25rem;\n border-end-end-radius: 0.25rem;\n }\n .rounded-end-4 {\n border-start-end-radius: 0.375rem;\n border-end-end-radius: 0.375rem;\n }\n .rounded-end-5 {\n border-start-end-radius: 0.5rem;\n border-end-end-radius: 0.5rem;\n }\n .rounded-end-6 {\n border-start-end-radius: 0.625rem;\n border-end-end-radius: 0.625rem;\n }\n .rounded-end-7 {\n border-start-end-radius: 0.75rem;\n border-end-end-radius: 0.75rem;\n }\n .rounded-end-8 {\n border-start-end-radius: 1rem;\n border-end-end-radius: 1rem;\n }\n .rounded-end-9 {\n border-start-end-radius: 1.5rem;\n border-end-end-radius: 1.5rem;\n }\n .rounded-end {\n border-start-end-radius: var(--rounded-size, var(--radius-5));\n border-end-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-end-circle {\n border-start-end-radius: 50%;\n border-end-end-radius: 50%;\n }\n .rounded-end-pill {\n border-start-end-radius: var(--radius-pill);\n border-end-end-radius: var(--radius-pill);\n }\n .rounded-bottom-0 {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .rounded-bottom-1 {\n border-end-start-radius: 0.125rem;\n border-end-end-radius: 0.125rem;\n }\n .rounded-bottom-2 {\n border-end-start-radius: 0.1875rem;\n border-end-end-radius: 0.1875rem;\n }\n .rounded-bottom-3 {\n border-end-start-radius: 0.25rem;\n border-end-end-radius: 0.25rem;\n }\n .rounded-bottom-4 {\n border-end-start-radius: 0.375rem;\n border-end-end-radius: 0.375rem;\n }\n .rounded-bottom-5 {\n border-end-start-radius: 0.5rem;\n border-end-end-radius: 0.5rem;\n }\n .rounded-bottom-6 {\n border-end-start-radius: 0.625rem;\n border-end-end-radius: 0.625rem;\n }\n .rounded-bottom-7 {\n border-end-start-radius: 0.75rem;\n border-end-end-radius: 0.75rem;\n }\n .rounded-bottom-8 {\n border-end-start-radius: 1rem;\n border-end-end-radius: 1rem;\n }\n .rounded-bottom-9 {\n border-end-start-radius: 1.5rem;\n border-end-end-radius: 1.5rem;\n }\n .rounded-bottom {\n border-end-start-radius: var(--rounded-size, var(--radius-5));\n border-end-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-bottom-circle {\n border-end-start-radius: 50%;\n border-end-end-radius: 50%;\n }\n .rounded-bottom-pill {\n border-end-start-radius: var(--radius-pill);\n border-end-end-radius: var(--radius-pill);\n }\n .rounded-start-0 {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .rounded-start-1 {\n border-start-start-radius: 0.125rem;\n border-end-start-radius: 0.125rem;\n }\n .rounded-start-2 {\n border-start-start-radius: 0.1875rem;\n border-end-start-radius: 0.1875rem;\n }\n .rounded-start-3 {\n border-start-start-radius: 0.25rem;\n border-end-start-radius: 0.25rem;\n }\n .rounded-start-4 {\n border-start-start-radius: 0.375rem;\n border-end-start-radius: 0.375rem;\n }\n .rounded-start-5 {\n border-start-start-radius: 0.5rem;\n border-end-start-radius: 0.5rem;\n }\n .rounded-start-6 {\n border-start-start-radius: 0.625rem;\n border-end-start-radius: 0.625rem;\n }\n .rounded-start-7 {\n border-start-start-radius: 0.75rem;\n border-end-start-radius: 0.75rem;\n }\n .rounded-start-8 {\n border-start-start-radius: 1rem;\n border-end-start-radius: 1rem;\n }\n .rounded-start-9 {\n border-start-start-radius: 1.5rem;\n border-end-start-radius: 1.5rem;\n }\n .rounded-start {\n border-start-start-radius: var(--rounded-size, var(--radius-5));\n border-end-start-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-start-circle {\n border-start-start-radius: 50%;\n border-end-start-radius: 50%;\n }\n .rounded-start-pill {\n border-start-start-radius: var(--radius-pill);\n border-end-start-radius: var(--radius-pill);\n }\n .visible {\n visibility: visible;\n }\n .invisible {\n visibility: hidden;\n }\n .z-n1 {\n z-index: -1;\n }\n .z-0 {\n z-index: 0;\n }\n .z-1 {\n z-index: 1;\n }\n .z-2 {\n z-index: 2;\n }\n .z-3 {\n z-index: 3;\n }\n @media (width >= 576px) {\n .sm\\:float-start {\n float: inline-start;\n }\n .sm\\:float-end {\n float: inline-end;\n }\n .sm\\:float-none {\n float: none;\n }\n .sm\\:object-fit-contain {\n object-fit: contain;\n }\n .sm\\:object-fit-cover {\n object-fit: cover;\n }\n .sm\\:object-fit-fill {\n object-fit: fill;\n }\n .sm\\:object-fit-scale {\n object-fit: scale-down;\n }\n .sm\\:object-fit-none {\n object-fit: none;\n }\n .sm\\:d-inline {\n display: inline;\n }\n .sm\\:d-inline-block {\n display: inline-block;\n }\n .sm\\:d-block {\n display: block;\n }\n .sm\\:d-grid {\n display: grid;\n }\n .sm\\:d-inline-grid {\n display: inline-grid;\n }\n .sm\\:d-table {\n display: table;\n }\n .sm\\:d-table-row {\n display: table-row;\n }\n .sm\\:d-table-cell {\n display: table-cell;\n }\n .sm\\:d-flex {\n display: flex;\n }\n .sm\\:d-inline-flex {\n display: inline-flex;\n }\n .sm\\:d-contents {\n display: contents;\n }\n .sm\\:d-flow-root {\n display: flow-root;\n }\n .sm\\:d-none {\n display: none;\n }\n .sm\\:flex-fill {\n flex: 1 1 auto;\n }\n .sm\\:flex-row {\n flex-direction: row;\n }\n .sm\\:flex-column {\n flex-direction: column;\n }\n .sm\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .sm\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .sm\\:flex-grow-0 {\n flex-grow: 0;\n }\n .sm\\:flex-grow-1 {\n flex-grow: 1;\n }\n .sm\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .sm\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .sm\\:flex-wrap {\n flex-wrap: wrap;\n }\n .sm\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .sm\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .sm\\:justify-content-start {\n justify-content: flex-start;\n }\n .sm\\:justify-content-end {\n justify-content: flex-end;\n }\n .sm\\:justify-content-center {\n justify-content: center;\n }\n .sm\\:justify-content-between {\n justify-content: space-between;\n }\n .sm\\:justify-content-around {\n justify-content: space-around;\n }\n .sm\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .sm\\:justify-items-start {\n justify-items: start;\n }\n .sm\\:justify-items-end {\n justify-items: end;\n }\n .sm\\:justify-items-center {\n justify-items: center;\n }\n .sm\\:justify-items-stretch {\n justify-items: stretch;\n }\n .sm\\:justify-self-start {\n justify-self: start;\n }\n .sm\\:justify-self-end {\n justify-self: end;\n }\n .sm\\:justify-self-center {\n justify-self: center;\n }\n .sm\\:align-items-start {\n align-items: flex-start;\n }\n .sm\\:align-items-end {\n align-items: flex-end;\n }\n .sm\\:align-items-center {\n align-items: center;\n }\n .sm\\:align-items-baseline {\n align-items: baseline;\n }\n .sm\\:align-items-stretch {\n align-items: stretch;\n }\n .sm\\:align-content-start {\n align-content: flex-start;\n }\n .sm\\:align-content-end {\n align-content: flex-end;\n }\n .sm\\:align-content-center {\n align-content: center;\n }\n .sm\\:align-content-between {\n align-content: space-between;\n }\n .sm\\:align-content-around {\n align-content: space-around;\n }\n .sm\\:align-content-stretch {\n align-content: stretch;\n }\n .sm\\:align-self-auto {\n align-self: auto;\n }\n .sm\\:align-self-start {\n align-self: flex-start;\n }\n .sm\\:align-self-end {\n align-self: flex-end;\n }\n .sm\\:align-self-center {\n align-self: center;\n }\n .sm\\:align-self-baseline {\n align-self: baseline;\n }\n .sm\\:align-self-stretch {\n align-self: stretch;\n }\n .sm\\:place-items-start {\n place-items: start;\n }\n .sm\\:place-items-end {\n place-items: end;\n }\n .sm\\:place-items-center {\n place-items: center;\n }\n .sm\\:place-items-stretch {\n place-items: stretch;\n }\n .sm\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .sm\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .sm\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .sm\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .sm\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .sm\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .sm\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .sm\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .sm\\:order-first {\n order: -1;\n }\n .sm\\:order-0 {\n order: 0;\n }\n .sm\\:order-1 {\n order: 1;\n }\n .sm\\:order-2 {\n order: 2;\n }\n .sm\\:order-3 {\n order: 3;\n }\n .sm\\:order-4 {\n order: 4;\n }\n .sm\\:order-5 {\n order: 5;\n }\n .sm\\:order-last {\n order: 6;\n }\n .sm\\:m-0 {\n margin: 0;\n }\n .sm\\:m-1 {\n margin: 0.25rem;\n }\n .sm\\:m-2 {\n margin: 0.5rem;\n }\n .sm\\:m-3 {\n margin: 0.75rem;\n }\n .sm\\:m-4 {\n margin: 1rem;\n }\n .sm\\:m-5 {\n margin: 1.25rem;\n }\n .sm\\:m-6 {\n margin: 1.5rem;\n }\n .sm\\:m-7 {\n margin: 2rem;\n }\n .sm\\:m-8 {\n margin: 2.5rem;\n }\n .sm\\:m-9 {\n margin: 3rem;\n }\n .sm\\:m-auto {\n margin: auto;\n }\n .sm\\:mx-0 {\n margin-inline: 0;\n }\n .sm\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .sm\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .sm\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .sm\\:mx-4 {\n margin-inline: 1rem;\n }\n .sm\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .sm\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .sm\\:mx-7 {\n margin-inline: 2rem;\n }\n .sm\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .sm\\:mx-9 {\n margin-inline: 3rem;\n }\n .sm\\:mx-auto {\n margin-inline: auto;\n }\n .sm\\:my-0 {\n margin-block: 0;\n }\n .sm\\:my-1 {\n margin-block: 0.25rem;\n }\n .sm\\:my-2 {\n margin-block: 0.5rem;\n }\n .sm\\:my-3 {\n margin-block: 0.75rem;\n }\n .sm\\:my-4 {\n margin-block: 1rem;\n }\n .sm\\:my-5 {\n margin-block: 1.25rem;\n }\n .sm\\:my-6 {\n margin-block: 1.5rem;\n }\n .sm\\:my-7 {\n margin-block: 2rem;\n }\n .sm\\:my-8 {\n margin-block: 2.5rem;\n }\n .sm\\:my-9 {\n margin-block: 3rem;\n }\n .sm\\:my-auto {\n margin-block: auto;\n }\n .sm\\:mt-0 {\n margin-block-start: 0;\n }\n .sm\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .sm\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .sm\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .sm\\:mt-4 {\n margin-block-start: 1rem;\n }\n .sm\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .sm\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .sm\\:mt-7 {\n margin-block-start: 2rem;\n }\n .sm\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .sm\\:mt-9 {\n margin-block-start: 3rem;\n }\n .sm\\:mt-auto {\n margin-block-start: auto;\n }\n .sm\\:me-0 {\n margin-inline-end: 0;\n }\n .sm\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .sm\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .sm\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .sm\\:me-4 {\n margin-inline-end: 1rem;\n }\n .sm\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .sm\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .sm\\:me-7 {\n margin-inline-end: 2rem;\n }\n .sm\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .sm\\:me-9 {\n margin-inline-end: 3rem;\n }\n .sm\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .sm\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .sm\\:me-auto {\n margin-inline-end: auto;\n }\n .sm\\:mb-0 {\n margin-block-end: 0;\n }\n .sm\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .sm\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .sm\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .sm\\:mb-4 {\n margin-block-end: 1rem;\n }\n .sm\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .sm\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .sm\\:mb-7 {\n margin-block-end: 2rem;\n }\n .sm\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .sm\\:mb-9 {\n margin-block-end: 3rem;\n }\n .sm\\:mb-auto {\n margin-block-end: auto;\n }\n .sm\\:ms-0 {\n margin-inline-start: 0;\n }\n .sm\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .sm\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .sm\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .sm\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .sm\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .sm\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .sm\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .sm\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .sm\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .sm\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .sm\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .sm\\:ms-auto {\n margin-inline-start: auto;\n }\n .sm\\:p-0 {\n padding: 0;\n }\n .sm\\:p-1 {\n padding: 0.25rem;\n }\n .sm\\:p-2 {\n padding: 0.5rem;\n }\n .sm\\:p-3 {\n padding: 0.75rem;\n }\n .sm\\:p-4 {\n padding: 1rem;\n }\n .sm\\:p-5 {\n padding: 1.25rem;\n }\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n .sm\\:p-7 {\n padding: 2rem;\n }\n .sm\\:p-8 {\n padding: 2.5rem;\n }\n .sm\\:p-9 {\n padding: 3rem;\n }\n .sm\\:px-0 {\n padding-inline: 0;\n }\n .sm\\:px-1 {\n padding-inline: 0.25rem;\n }\n .sm\\:px-2 {\n padding-inline: 0.5rem;\n }\n .sm\\:px-3 {\n padding-inline: 0.75rem;\n }\n .sm\\:px-4 {\n padding-inline: 1rem;\n }\n .sm\\:px-5 {\n padding-inline: 1.25rem;\n }\n .sm\\:px-6 {\n padding-inline: 1.5rem;\n }\n .sm\\:px-7 {\n padding-inline: 2rem;\n }\n .sm\\:px-8 {\n padding-inline: 2.5rem;\n }\n .sm\\:px-9 {\n padding-inline: 3rem;\n }\n .sm\\:py-0 {\n padding-block: 0;\n }\n .sm\\:py-1 {\n padding-block: 0.25rem;\n }\n .sm\\:py-2 {\n padding-block: 0.5rem;\n }\n .sm\\:py-3 {\n padding-block: 0.75rem;\n }\n .sm\\:py-4 {\n padding-block: 1rem;\n }\n .sm\\:py-5 {\n padding-block: 1.25rem;\n }\n .sm\\:py-6 {\n padding-block: 1.5rem;\n }\n .sm\\:py-7 {\n padding-block: 2rem;\n }\n .sm\\:py-8 {\n padding-block: 2.5rem;\n }\n .sm\\:py-9 {\n padding-block: 3rem;\n }\n .sm\\:pt-0 {\n padding-block-start: 0;\n }\n .sm\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .sm\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .sm\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .sm\\:pt-4 {\n padding-block-start: 1rem;\n }\n .sm\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .sm\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .sm\\:pt-7 {\n padding-block-start: 2rem;\n }\n .sm\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .sm\\:pt-9 {\n padding-block-start: 3rem;\n }\n .sm\\:pe-0 {\n padding-inline-end: 0;\n }\n .sm\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .sm\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .sm\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .sm\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .sm\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .sm\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .sm\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .sm\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .sm\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .sm\\:pb-0 {\n padding-block-end: 0;\n }\n .sm\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .sm\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .sm\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .sm\\:pb-4 {\n padding-block-end: 1rem;\n }\n .sm\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .sm\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .sm\\:pb-7 {\n padding-block-end: 2rem;\n }\n .sm\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .sm\\:pb-9 {\n padding-block-end: 3rem;\n }\n .sm\\:ps-0 {\n padding-inline-start: 0;\n }\n .sm\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .sm\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .sm\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .sm\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .sm\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .sm\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .sm\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .sm\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .sm\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .sm\\:gap-0 {\n gap: 0;\n }\n .sm\\:gap-1 {\n gap: 0.25rem;\n }\n .sm\\:gap-2 {\n gap: 0.5rem;\n }\n .sm\\:gap-3 {\n gap: 0.75rem;\n }\n .sm\\:gap-4 {\n gap: 1rem;\n }\n .sm\\:gap-5 {\n gap: 1.25rem;\n }\n .sm\\:gap-6 {\n gap: 1.5rem;\n }\n .sm\\:gap-7 {\n gap: 2rem;\n }\n .sm\\:gap-8 {\n gap: 2.5rem;\n }\n .sm\\:gap-9 {\n gap: 3rem;\n }\n .sm\\:row-gap-0 {\n row-gap: 0;\n }\n .sm\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .sm\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .sm\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .sm\\:row-gap-4 {\n row-gap: 1rem;\n }\n .sm\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .sm\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .sm\\:row-gap-7 {\n row-gap: 2rem;\n }\n .sm\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .sm\\:row-gap-9 {\n row-gap: 3rem;\n }\n .sm\\:column-gap-0 {\n column-gap: 0;\n }\n .sm\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .sm\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .sm\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .sm\\:column-gap-4 {\n column-gap: 1rem;\n }\n .sm\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .sm\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .sm\\:column-gap-7 {\n column-gap: 2rem;\n }\n .sm\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .sm\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.sm\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.sm\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.sm\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.sm\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.sm\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.sm\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.sm\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.sm\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.sm\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.sm\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.sm\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.sm\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.sm\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.sm\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.sm\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.sm\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.sm\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.sm\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.sm\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.sm\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.sm\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.sm\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.sm\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.sm\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .sm\\:text-start {\n text-align: start;\n }\n .sm\\:text-end {\n text-align: end;\n }\n .sm\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 768px) {\n .md\\:float-start {\n float: inline-start;\n }\n .md\\:float-end {\n float: inline-end;\n }\n .md\\:float-none {\n float: none;\n }\n .md\\:object-fit-contain {\n object-fit: contain;\n }\n .md\\:object-fit-cover {\n object-fit: cover;\n }\n .md\\:object-fit-fill {\n object-fit: fill;\n }\n .md\\:object-fit-scale {\n object-fit: scale-down;\n }\n .md\\:object-fit-none {\n object-fit: none;\n }\n .md\\:d-inline {\n display: inline;\n }\n .md\\:d-inline-block {\n display: inline-block;\n }\n .md\\:d-block {\n display: block;\n }\n .md\\:d-grid {\n display: grid;\n }\n .md\\:d-inline-grid {\n display: inline-grid;\n }\n .md\\:d-table {\n display: table;\n }\n .md\\:d-table-row {\n display: table-row;\n }\n .md\\:d-table-cell {\n display: table-cell;\n }\n .md\\:d-flex {\n display: flex;\n }\n .md\\:d-inline-flex {\n display: inline-flex;\n }\n .md\\:d-contents {\n display: contents;\n }\n .md\\:d-flow-root {\n display: flow-root;\n }\n .md\\:d-none {\n display: none;\n }\n .md\\:flex-fill {\n flex: 1 1 auto;\n }\n .md\\:flex-row {\n flex-direction: row;\n }\n .md\\:flex-column {\n flex-direction: column;\n }\n .md\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .md\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .md\\:flex-grow-0 {\n flex-grow: 0;\n }\n .md\\:flex-grow-1 {\n flex-grow: 1;\n }\n .md\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .md\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .md\\:flex-wrap {\n flex-wrap: wrap;\n }\n .md\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .md\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .md\\:justify-content-start {\n justify-content: flex-start;\n }\n .md\\:justify-content-end {\n justify-content: flex-end;\n }\n .md\\:justify-content-center {\n justify-content: center;\n }\n .md\\:justify-content-between {\n justify-content: space-between;\n }\n .md\\:justify-content-around {\n justify-content: space-around;\n }\n .md\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .md\\:justify-items-start {\n justify-items: start;\n }\n .md\\:justify-items-end {\n justify-items: end;\n }\n .md\\:justify-items-center {\n justify-items: center;\n }\n .md\\:justify-items-stretch {\n justify-items: stretch;\n }\n .md\\:justify-self-start {\n justify-self: start;\n }\n .md\\:justify-self-end {\n justify-self: end;\n }\n .md\\:justify-self-center {\n justify-self: center;\n }\n .md\\:align-items-start {\n align-items: flex-start;\n }\n .md\\:align-items-end {\n align-items: flex-end;\n }\n .md\\:align-items-center {\n align-items: center;\n }\n .md\\:align-items-baseline {\n align-items: baseline;\n }\n .md\\:align-items-stretch {\n align-items: stretch;\n }\n .md\\:align-content-start {\n align-content: flex-start;\n }\n .md\\:align-content-end {\n align-content: flex-end;\n }\n .md\\:align-content-center {\n align-content: center;\n }\n .md\\:align-content-between {\n align-content: space-between;\n }\n .md\\:align-content-around {\n align-content: space-around;\n }\n .md\\:align-content-stretch {\n align-content: stretch;\n }\n .md\\:align-self-auto {\n align-self: auto;\n }\n .md\\:align-self-start {\n align-self: flex-start;\n }\n .md\\:align-self-end {\n align-self: flex-end;\n }\n .md\\:align-self-center {\n align-self: center;\n }\n .md\\:align-self-baseline {\n align-self: baseline;\n }\n .md\\:align-self-stretch {\n align-self: stretch;\n }\n .md\\:place-items-start {\n place-items: start;\n }\n .md\\:place-items-end {\n place-items: end;\n }\n .md\\:place-items-center {\n place-items: center;\n }\n .md\\:place-items-stretch {\n place-items: stretch;\n }\n .md\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .md\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .md\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .md\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .md\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .md\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .md\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .md\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .md\\:order-first {\n order: -1;\n }\n .md\\:order-0 {\n order: 0;\n }\n .md\\:order-1 {\n order: 1;\n }\n .md\\:order-2 {\n order: 2;\n }\n .md\\:order-3 {\n order: 3;\n }\n .md\\:order-4 {\n order: 4;\n }\n .md\\:order-5 {\n order: 5;\n }\n .md\\:order-last {\n order: 6;\n }\n .md\\:m-0 {\n margin: 0;\n }\n .md\\:m-1 {\n margin: 0.25rem;\n }\n .md\\:m-2 {\n margin: 0.5rem;\n }\n .md\\:m-3 {\n margin: 0.75rem;\n }\n .md\\:m-4 {\n margin: 1rem;\n }\n .md\\:m-5 {\n margin: 1.25rem;\n }\n .md\\:m-6 {\n margin: 1.5rem;\n }\n .md\\:m-7 {\n margin: 2rem;\n }\n .md\\:m-8 {\n margin: 2.5rem;\n }\n .md\\:m-9 {\n margin: 3rem;\n }\n .md\\:m-auto {\n margin: auto;\n }\n .md\\:mx-0 {\n margin-inline: 0;\n }\n .md\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .md\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .md\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .md\\:mx-4 {\n margin-inline: 1rem;\n }\n .md\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .md\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .md\\:mx-7 {\n margin-inline: 2rem;\n }\n .md\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .md\\:mx-9 {\n margin-inline: 3rem;\n }\n .md\\:mx-auto {\n margin-inline: auto;\n }\n .md\\:my-0 {\n margin-block: 0;\n }\n .md\\:my-1 {\n margin-block: 0.25rem;\n }\n .md\\:my-2 {\n margin-block: 0.5rem;\n }\n .md\\:my-3 {\n margin-block: 0.75rem;\n }\n .md\\:my-4 {\n margin-block: 1rem;\n }\n .md\\:my-5 {\n margin-block: 1.25rem;\n }\n .md\\:my-6 {\n margin-block: 1.5rem;\n }\n .md\\:my-7 {\n margin-block: 2rem;\n }\n .md\\:my-8 {\n margin-block: 2.5rem;\n }\n .md\\:my-9 {\n margin-block: 3rem;\n }\n .md\\:my-auto {\n margin-block: auto;\n }\n .md\\:mt-0 {\n margin-block-start: 0;\n }\n .md\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .md\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .md\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .md\\:mt-4 {\n margin-block-start: 1rem;\n }\n .md\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .md\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .md\\:mt-7 {\n margin-block-start: 2rem;\n }\n .md\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .md\\:mt-9 {\n margin-block-start: 3rem;\n }\n .md\\:mt-auto {\n margin-block-start: auto;\n }\n .md\\:me-0 {\n margin-inline-end: 0;\n }\n .md\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .md\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .md\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .md\\:me-4 {\n margin-inline-end: 1rem;\n }\n .md\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .md\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .md\\:me-7 {\n margin-inline-end: 2rem;\n }\n .md\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .md\\:me-9 {\n margin-inline-end: 3rem;\n }\n .md\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .md\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .md\\:me-auto {\n margin-inline-end: auto;\n }\n .md\\:mb-0 {\n margin-block-end: 0;\n }\n .md\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .md\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .md\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .md\\:mb-4 {\n margin-block-end: 1rem;\n }\n .md\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .md\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .md\\:mb-7 {\n margin-block-end: 2rem;\n }\n .md\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .md\\:mb-9 {\n margin-block-end: 3rem;\n }\n .md\\:mb-auto {\n margin-block-end: auto;\n }\n .md\\:ms-0 {\n margin-inline-start: 0;\n }\n .md\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .md\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .md\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .md\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .md\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .md\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .md\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .md\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .md\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .md\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .md\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .md\\:ms-auto {\n margin-inline-start: auto;\n }\n .md\\:p-0 {\n padding: 0;\n }\n .md\\:p-1 {\n padding: 0.25rem;\n }\n .md\\:p-2 {\n padding: 0.5rem;\n }\n .md\\:p-3 {\n padding: 0.75rem;\n }\n .md\\:p-4 {\n padding: 1rem;\n }\n .md\\:p-5 {\n padding: 1.25rem;\n }\n .md\\:p-6 {\n padding: 1.5rem;\n }\n .md\\:p-7 {\n padding: 2rem;\n }\n .md\\:p-8 {\n padding: 2.5rem;\n }\n .md\\:p-9 {\n padding: 3rem;\n }\n .md\\:px-0 {\n padding-inline: 0;\n }\n .md\\:px-1 {\n padding-inline: 0.25rem;\n }\n .md\\:px-2 {\n padding-inline: 0.5rem;\n }\n .md\\:px-3 {\n padding-inline: 0.75rem;\n }\n .md\\:px-4 {\n padding-inline: 1rem;\n }\n .md\\:px-5 {\n padding-inline: 1.25rem;\n }\n .md\\:px-6 {\n padding-inline: 1.5rem;\n }\n .md\\:px-7 {\n padding-inline: 2rem;\n }\n .md\\:px-8 {\n padding-inline: 2.5rem;\n }\n .md\\:px-9 {\n padding-inline: 3rem;\n }\n .md\\:py-0 {\n padding-block: 0;\n }\n .md\\:py-1 {\n padding-block: 0.25rem;\n }\n .md\\:py-2 {\n padding-block: 0.5rem;\n }\n .md\\:py-3 {\n padding-block: 0.75rem;\n }\n .md\\:py-4 {\n padding-block: 1rem;\n }\n .md\\:py-5 {\n padding-block: 1.25rem;\n }\n .md\\:py-6 {\n padding-block: 1.5rem;\n }\n .md\\:py-7 {\n padding-block: 2rem;\n }\n .md\\:py-8 {\n padding-block: 2.5rem;\n }\n .md\\:py-9 {\n padding-block: 3rem;\n }\n .md\\:pt-0 {\n padding-block-start: 0;\n }\n .md\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .md\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .md\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .md\\:pt-4 {\n padding-block-start: 1rem;\n }\n .md\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .md\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .md\\:pt-7 {\n padding-block-start: 2rem;\n }\n .md\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .md\\:pt-9 {\n padding-block-start: 3rem;\n }\n .md\\:pe-0 {\n padding-inline-end: 0;\n }\n .md\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .md\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .md\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .md\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .md\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .md\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .md\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .md\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .md\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .md\\:pb-0 {\n padding-block-end: 0;\n }\n .md\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .md\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .md\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .md\\:pb-4 {\n padding-block-end: 1rem;\n }\n .md\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .md\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .md\\:pb-7 {\n padding-block-end: 2rem;\n }\n .md\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .md\\:pb-9 {\n padding-block-end: 3rem;\n }\n .md\\:ps-0 {\n padding-inline-start: 0;\n }\n .md\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .md\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .md\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .md\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .md\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .md\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .md\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .md\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .md\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .md\\:gap-0 {\n gap: 0;\n }\n .md\\:gap-1 {\n gap: 0.25rem;\n }\n .md\\:gap-2 {\n gap: 0.5rem;\n }\n .md\\:gap-3 {\n gap: 0.75rem;\n }\n .md\\:gap-4 {\n gap: 1rem;\n }\n .md\\:gap-5 {\n gap: 1.25rem;\n }\n .md\\:gap-6 {\n gap: 1.5rem;\n }\n .md\\:gap-7 {\n gap: 2rem;\n }\n .md\\:gap-8 {\n gap: 2.5rem;\n }\n .md\\:gap-9 {\n gap: 3rem;\n }\n .md\\:row-gap-0 {\n row-gap: 0;\n }\n .md\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .md\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .md\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .md\\:row-gap-4 {\n row-gap: 1rem;\n }\n .md\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .md\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .md\\:row-gap-7 {\n row-gap: 2rem;\n }\n .md\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .md\\:row-gap-9 {\n row-gap: 3rem;\n }\n .md\\:column-gap-0 {\n column-gap: 0;\n }\n .md\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .md\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .md\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .md\\:column-gap-4 {\n column-gap: 1rem;\n }\n .md\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .md\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .md\\:column-gap-7 {\n column-gap: 2rem;\n }\n .md\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .md\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.md\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.md\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.md\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.md\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.md\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.md\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.md\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.md\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.md\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.md\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.md\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.md\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.md\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.md\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.md\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.md\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.md\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.md\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.md\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.md\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.md\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.md\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.md\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.md\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .md\\:text-start {\n text-align: start;\n }\n .md\\:text-end {\n text-align: end;\n }\n .md\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1024px) {\n .lg\\:float-start {\n float: inline-start;\n }\n .lg\\:float-end {\n float: inline-end;\n }\n .lg\\:float-none {\n float: none;\n }\n .lg\\:object-fit-contain {\n object-fit: contain;\n }\n .lg\\:object-fit-cover {\n object-fit: cover;\n }\n .lg\\:object-fit-fill {\n object-fit: fill;\n }\n .lg\\:object-fit-scale {\n object-fit: scale-down;\n }\n .lg\\:object-fit-none {\n object-fit: none;\n }\n .lg\\:d-inline {\n display: inline;\n }\n .lg\\:d-inline-block {\n display: inline-block;\n }\n .lg\\:d-block {\n display: block;\n }\n .lg\\:d-grid {\n display: grid;\n }\n .lg\\:d-inline-grid {\n display: inline-grid;\n }\n .lg\\:d-table {\n display: table;\n }\n .lg\\:d-table-row {\n display: table-row;\n }\n .lg\\:d-table-cell {\n display: table-cell;\n }\n .lg\\:d-flex {\n display: flex;\n }\n .lg\\:d-inline-flex {\n display: inline-flex;\n }\n .lg\\:d-contents {\n display: contents;\n }\n .lg\\:d-flow-root {\n display: flow-root;\n }\n .lg\\:d-none {\n display: none;\n }\n .lg\\:flex-fill {\n flex: 1 1 auto;\n }\n .lg\\:flex-row {\n flex-direction: row;\n }\n .lg\\:flex-column {\n flex-direction: column;\n }\n .lg\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .lg\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .lg\\:flex-grow-0 {\n flex-grow: 0;\n }\n .lg\\:flex-grow-1 {\n flex-grow: 1;\n }\n .lg\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .lg\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .lg\\:flex-wrap {\n flex-wrap: wrap;\n }\n .lg\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .lg\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .lg\\:justify-content-start {\n justify-content: flex-start;\n }\n .lg\\:justify-content-end {\n justify-content: flex-end;\n }\n .lg\\:justify-content-center {\n justify-content: center;\n }\n .lg\\:justify-content-between {\n justify-content: space-between;\n }\n .lg\\:justify-content-around {\n justify-content: space-around;\n }\n .lg\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .lg\\:justify-items-start {\n justify-items: start;\n }\n .lg\\:justify-items-end {\n justify-items: end;\n }\n .lg\\:justify-items-center {\n justify-items: center;\n }\n .lg\\:justify-items-stretch {\n justify-items: stretch;\n }\n .lg\\:justify-self-start {\n justify-self: start;\n }\n .lg\\:justify-self-end {\n justify-self: end;\n }\n .lg\\:justify-self-center {\n justify-self: center;\n }\n .lg\\:align-items-start {\n align-items: flex-start;\n }\n .lg\\:align-items-end {\n align-items: flex-end;\n }\n .lg\\:align-items-center {\n align-items: center;\n }\n .lg\\:align-items-baseline {\n align-items: baseline;\n }\n .lg\\:align-items-stretch {\n align-items: stretch;\n }\n .lg\\:align-content-start {\n align-content: flex-start;\n }\n .lg\\:align-content-end {\n align-content: flex-end;\n }\n .lg\\:align-content-center {\n align-content: center;\n }\n .lg\\:align-content-between {\n align-content: space-between;\n }\n .lg\\:align-content-around {\n align-content: space-around;\n }\n .lg\\:align-content-stretch {\n align-content: stretch;\n }\n .lg\\:align-self-auto {\n align-self: auto;\n }\n .lg\\:align-self-start {\n align-self: flex-start;\n }\n .lg\\:align-self-end {\n align-self: flex-end;\n }\n .lg\\:align-self-center {\n align-self: center;\n }\n .lg\\:align-self-baseline {\n align-self: baseline;\n }\n .lg\\:align-self-stretch {\n align-self: stretch;\n }\n .lg\\:place-items-start {\n place-items: start;\n }\n .lg\\:place-items-end {\n place-items: end;\n }\n .lg\\:place-items-center {\n place-items: center;\n }\n .lg\\:place-items-stretch {\n place-items: stretch;\n }\n .lg\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .lg\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .lg\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .lg\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .lg\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .lg\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .lg\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .lg\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .lg\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .lg\\:order-first {\n order: -1;\n }\n .lg\\:order-0 {\n order: 0;\n }\n .lg\\:order-1 {\n order: 1;\n }\n .lg\\:order-2 {\n order: 2;\n }\n .lg\\:order-3 {\n order: 3;\n }\n .lg\\:order-4 {\n order: 4;\n }\n .lg\\:order-5 {\n order: 5;\n }\n .lg\\:order-last {\n order: 6;\n }\n .lg\\:m-0 {\n margin: 0;\n }\n .lg\\:m-1 {\n margin: 0.25rem;\n }\n .lg\\:m-2 {\n margin: 0.5rem;\n }\n .lg\\:m-3 {\n margin: 0.75rem;\n }\n .lg\\:m-4 {\n margin: 1rem;\n }\n .lg\\:m-5 {\n margin: 1.25rem;\n }\n .lg\\:m-6 {\n margin: 1.5rem;\n }\n .lg\\:m-7 {\n margin: 2rem;\n }\n .lg\\:m-8 {\n margin: 2.5rem;\n }\n .lg\\:m-9 {\n margin: 3rem;\n }\n .lg\\:m-auto {\n margin: auto;\n }\n .lg\\:mx-0 {\n margin-inline: 0;\n }\n .lg\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .lg\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .lg\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .lg\\:mx-4 {\n margin-inline: 1rem;\n }\n .lg\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .lg\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .lg\\:mx-7 {\n margin-inline: 2rem;\n }\n .lg\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .lg\\:mx-9 {\n margin-inline: 3rem;\n }\n .lg\\:mx-auto {\n margin-inline: auto;\n }\n .lg\\:my-0 {\n margin-block: 0;\n }\n .lg\\:my-1 {\n margin-block: 0.25rem;\n }\n .lg\\:my-2 {\n margin-block: 0.5rem;\n }\n .lg\\:my-3 {\n margin-block: 0.75rem;\n }\n .lg\\:my-4 {\n margin-block: 1rem;\n }\n .lg\\:my-5 {\n margin-block: 1.25rem;\n }\n .lg\\:my-6 {\n margin-block: 1.5rem;\n }\n .lg\\:my-7 {\n margin-block: 2rem;\n }\n .lg\\:my-8 {\n margin-block: 2.5rem;\n }\n .lg\\:my-9 {\n margin-block: 3rem;\n }\n .lg\\:my-auto {\n margin-block: auto;\n }\n .lg\\:mt-0 {\n margin-block-start: 0;\n }\n .lg\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .lg\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .lg\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .lg\\:mt-4 {\n margin-block-start: 1rem;\n }\n .lg\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .lg\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .lg\\:mt-7 {\n margin-block-start: 2rem;\n }\n .lg\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .lg\\:mt-9 {\n margin-block-start: 3rem;\n }\n .lg\\:mt-auto {\n margin-block-start: auto;\n }\n .lg\\:me-0 {\n margin-inline-end: 0;\n }\n .lg\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .lg\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .lg\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .lg\\:me-4 {\n margin-inline-end: 1rem;\n }\n .lg\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .lg\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .lg\\:me-7 {\n margin-inline-end: 2rem;\n }\n .lg\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .lg\\:me-9 {\n margin-inline-end: 3rem;\n }\n .lg\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .lg\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .lg\\:me-auto {\n margin-inline-end: auto;\n }\n .lg\\:mb-0 {\n margin-block-end: 0;\n }\n .lg\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .lg\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .lg\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .lg\\:mb-4 {\n margin-block-end: 1rem;\n }\n .lg\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .lg\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .lg\\:mb-7 {\n margin-block-end: 2rem;\n }\n .lg\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .lg\\:mb-9 {\n margin-block-end: 3rem;\n }\n .lg\\:mb-auto {\n margin-block-end: auto;\n }\n .lg\\:ms-0 {\n margin-inline-start: 0;\n }\n .lg\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .lg\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .lg\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .lg\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .lg\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .lg\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .lg\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .lg\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .lg\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .lg\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .lg\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .lg\\:ms-auto {\n margin-inline-start: auto;\n }\n .lg\\:p-0 {\n padding: 0;\n }\n .lg\\:p-1 {\n padding: 0.25rem;\n }\n .lg\\:p-2 {\n padding: 0.5rem;\n }\n .lg\\:p-3 {\n padding: 0.75rem;\n }\n .lg\\:p-4 {\n padding: 1rem;\n }\n .lg\\:p-5 {\n padding: 1.25rem;\n }\n .lg\\:p-6 {\n padding: 1.5rem;\n }\n .lg\\:p-7 {\n padding: 2rem;\n }\n .lg\\:p-8 {\n padding: 2.5rem;\n }\n .lg\\:p-9 {\n padding: 3rem;\n }\n .lg\\:px-0 {\n padding-inline: 0;\n }\n .lg\\:px-1 {\n padding-inline: 0.25rem;\n }\n .lg\\:px-2 {\n padding-inline: 0.5rem;\n }\n .lg\\:px-3 {\n padding-inline: 0.75rem;\n }\n .lg\\:px-4 {\n padding-inline: 1rem;\n }\n .lg\\:px-5 {\n padding-inline: 1.25rem;\n }\n .lg\\:px-6 {\n padding-inline: 1.5rem;\n }\n .lg\\:px-7 {\n padding-inline: 2rem;\n }\n .lg\\:px-8 {\n padding-inline: 2.5rem;\n }\n .lg\\:px-9 {\n padding-inline: 3rem;\n }\n .lg\\:py-0 {\n padding-block: 0;\n }\n .lg\\:py-1 {\n padding-block: 0.25rem;\n }\n .lg\\:py-2 {\n padding-block: 0.5rem;\n }\n .lg\\:py-3 {\n padding-block: 0.75rem;\n }\n .lg\\:py-4 {\n padding-block: 1rem;\n }\n .lg\\:py-5 {\n padding-block: 1.25rem;\n }\n .lg\\:py-6 {\n padding-block: 1.5rem;\n }\n .lg\\:py-7 {\n padding-block: 2rem;\n }\n .lg\\:py-8 {\n padding-block: 2.5rem;\n }\n .lg\\:py-9 {\n padding-block: 3rem;\n }\n .lg\\:pt-0 {\n padding-block-start: 0;\n }\n .lg\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .lg\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .lg\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .lg\\:pt-4 {\n padding-block-start: 1rem;\n }\n .lg\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .lg\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .lg\\:pt-7 {\n padding-block-start: 2rem;\n }\n .lg\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .lg\\:pt-9 {\n padding-block-start: 3rem;\n }\n .lg\\:pe-0 {\n padding-inline-end: 0;\n }\n .lg\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .lg\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .lg\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .lg\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .lg\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .lg\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .lg\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .lg\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .lg\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .lg\\:pb-0 {\n padding-block-end: 0;\n }\n .lg\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .lg\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .lg\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .lg\\:pb-4 {\n padding-block-end: 1rem;\n }\n .lg\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .lg\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .lg\\:pb-7 {\n padding-block-end: 2rem;\n }\n .lg\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .lg\\:pb-9 {\n padding-block-end: 3rem;\n }\n .lg\\:ps-0 {\n padding-inline-start: 0;\n }\n .lg\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .lg\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .lg\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .lg\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .lg\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .lg\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .lg\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .lg\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .lg\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .lg\\:gap-0 {\n gap: 0;\n }\n .lg\\:gap-1 {\n gap: 0.25rem;\n }\n .lg\\:gap-2 {\n gap: 0.5rem;\n }\n .lg\\:gap-3 {\n gap: 0.75rem;\n }\n .lg\\:gap-4 {\n gap: 1rem;\n }\n .lg\\:gap-5 {\n gap: 1.25rem;\n }\n .lg\\:gap-6 {\n gap: 1.5rem;\n }\n .lg\\:gap-7 {\n gap: 2rem;\n }\n .lg\\:gap-8 {\n gap: 2.5rem;\n }\n .lg\\:gap-9 {\n gap: 3rem;\n }\n .lg\\:row-gap-0 {\n row-gap: 0;\n }\n .lg\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .lg\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .lg\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .lg\\:row-gap-4 {\n row-gap: 1rem;\n }\n .lg\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .lg\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .lg\\:row-gap-7 {\n row-gap: 2rem;\n }\n .lg\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .lg\\:row-gap-9 {\n row-gap: 3rem;\n }\n .lg\\:column-gap-0 {\n column-gap: 0;\n }\n .lg\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .lg\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .lg\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .lg\\:column-gap-4 {\n column-gap: 1rem;\n }\n .lg\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .lg\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .lg\\:column-gap-7 {\n column-gap: 2rem;\n }\n .lg\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .lg\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.lg\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.lg\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.lg\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.lg\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.lg\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.lg\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.lg\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.lg\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.lg\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.lg\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.lg\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.lg\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.lg\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.lg\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.lg\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.lg\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.lg\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.lg\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.lg\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.lg\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.lg\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.lg\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.lg\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.lg\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .lg\\:text-start {\n text-align: start;\n }\n .lg\\:text-end {\n text-align: end;\n }\n .lg\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1280px) {\n .xl\\:float-start {\n float: inline-start;\n }\n .xl\\:float-end {\n float: inline-end;\n }\n .xl\\:float-none {\n float: none;\n }\n .xl\\:object-fit-contain {\n object-fit: contain;\n }\n .xl\\:object-fit-cover {\n object-fit: cover;\n }\n .xl\\:object-fit-fill {\n object-fit: fill;\n }\n .xl\\:object-fit-scale {\n object-fit: scale-down;\n }\n .xl\\:object-fit-none {\n object-fit: none;\n }\n .xl\\:d-inline {\n display: inline;\n }\n .xl\\:d-inline-block {\n display: inline-block;\n }\n .xl\\:d-block {\n display: block;\n }\n .xl\\:d-grid {\n display: grid;\n }\n .xl\\:d-inline-grid {\n display: inline-grid;\n }\n .xl\\:d-table {\n display: table;\n }\n .xl\\:d-table-row {\n display: table-row;\n }\n .xl\\:d-table-cell {\n display: table-cell;\n }\n .xl\\:d-flex {\n display: flex;\n }\n .xl\\:d-inline-flex {\n display: inline-flex;\n }\n .xl\\:d-contents {\n display: contents;\n }\n .xl\\:d-flow-root {\n display: flow-root;\n }\n .xl\\:d-none {\n display: none;\n }\n .xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .xl\\:flex-row {\n flex-direction: row;\n }\n .xl\\:flex-column {\n flex-direction: column;\n }\n .xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .xl\\:justify-content-center {\n justify-content: center;\n }\n .xl\\:justify-content-between {\n justify-content: space-between;\n }\n .xl\\:justify-content-around {\n justify-content: space-around;\n }\n .xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .xl\\:justify-items-start {\n justify-items: start;\n }\n .xl\\:justify-items-end {\n justify-items: end;\n }\n .xl\\:justify-items-center {\n justify-items: center;\n }\n .xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .xl\\:justify-self-start {\n justify-self: start;\n }\n .xl\\:justify-self-end {\n justify-self: end;\n }\n .xl\\:justify-self-center {\n justify-self: center;\n }\n .xl\\:align-items-start {\n align-items: flex-start;\n }\n .xl\\:align-items-end {\n align-items: flex-end;\n }\n .xl\\:align-items-center {\n align-items: center;\n }\n .xl\\:align-items-baseline {\n align-items: baseline;\n }\n .xl\\:align-items-stretch {\n align-items: stretch;\n }\n .xl\\:align-content-start {\n align-content: flex-start;\n }\n .xl\\:align-content-end {\n align-content: flex-end;\n }\n .xl\\:align-content-center {\n align-content: center;\n }\n .xl\\:align-content-between {\n align-content: space-between;\n }\n .xl\\:align-content-around {\n align-content: space-around;\n }\n .xl\\:align-content-stretch {\n align-content: stretch;\n }\n .xl\\:align-self-auto {\n align-self: auto;\n }\n .xl\\:align-self-start {\n align-self: flex-start;\n }\n .xl\\:align-self-end {\n align-self: flex-end;\n }\n .xl\\:align-self-center {\n align-self: center;\n }\n .xl\\:align-self-baseline {\n align-self: baseline;\n }\n .xl\\:align-self-stretch {\n align-self: stretch;\n }\n .xl\\:place-items-start {\n place-items: start;\n }\n .xl\\:place-items-end {\n place-items: end;\n }\n .xl\\:place-items-center {\n place-items: center;\n }\n .xl\\:place-items-stretch {\n place-items: stretch;\n }\n .xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .xl\\:order-first {\n order: -1;\n }\n .xl\\:order-0 {\n order: 0;\n }\n .xl\\:order-1 {\n order: 1;\n }\n .xl\\:order-2 {\n order: 2;\n }\n .xl\\:order-3 {\n order: 3;\n }\n .xl\\:order-4 {\n order: 4;\n }\n .xl\\:order-5 {\n order: 5;\n }\n .xl\\:order-last {\n order: 6;\n }\n .xl\\:m-0 {\n margin: 0;\n }\n .xl\\:m-1 {\n margin: 0.25rem;\n }\n .xl\\:m-2 {\n margin: 0.5rem;\n }\n .xl\\:m-3 {\n margin: 0.75rem;\n }\n .xl\\:m-4 {\n margin: 1rem;\n }\n .xl\\:m-5 {\n margin: 1.25rem;\n }\n .xl\\:m-6 {\n margin: 1.5rem;\n }\n .xl\\:m-7 {\n margin: 2rem;\n }\n .xl\\:m-8 {\n margin: 2.5rem;\n }\n .xl\\:m-9 {\n margin: 3rem;\n }\n .xl\\:m-auto {\n margin: auto;\n }\n .xl\\:mx-0 {\n margin-inline: 0;\n }\n .xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .xl\\:mx-auto {\n margin-inline: auto;\n }\n .xl\\:my-0 {\n margin-block: 0;\n }\n .xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .xl\\:my-4 {\n margin-block: 1rem;\n }\n .xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .xl\\:my-7 {\n margin-block: 2rem;\n }\n .xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .xl\\:my-9 {\n margin-block: 3rem;\n }\n .xl\\:my-auto {\n margin-block: auto;\n }\n .xl\\:mt-0 {\n margin-block-start: 0;\n }\n .xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .xl\\:mt-auto {\n margin-block-start: auto;\n }\n .xl\\:me-0 {\n margin-inline-end: 0;\n }\n .xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .xl\\:me-auto {\n margin-inline-end: auto;\n }\n .xl\\:mb-0 {\n margin-block-end: 0;\n }\n .xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .xl\\:mb-auto {\n margin-block-end: auto;\n }\n .xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .xl\\:p-0 {\n padding: 0;\n }\n .xl\\:p-1 {\n padding: 0.25rem;\n }\n .xl\\:p-2 {\n padding: 0.5rem;\n }\n .xl\\:p-3 {\n padding: 0.75rem;\n }\n .xl\\:p-4 {\n padding: 1rem;\n }\n .xl\\:p-5 {\n padding: 1.25rem;\n }\n .xl\\:p-6 {\n padding: 1.5rem;\n }\n .xl\\:p-7 {\n padding: 2rem;\n }\n .xl\\:p-8 {\n padding: 2.5rem;\n }\n .xl\\:p-9 {\n padding: 3rem;\n }\n .xl\\:px-0 {\n padding-inline: 0;\n }\n .xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .xl\\:px-4 {\n padding-inline: 1rem;\n }\n .xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .xl\\:px-7 {\n padding-inline: 2rem;\n }\n .xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .xl\\:px-9 {\n padding-inline: 3rem;\n }\n .xl\\:py-0 {\n padding-block: 0;\n }\n .xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .xl\\:py-4 {\n padding-block: 1rem;\n }\n .xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .xl\\:py-7 {\n padding-block: 2rem;\n }\n .xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .xl\\:py-9 {\n padding-block: 3rem;\n }\n .xl\\:pt-0 {\n padding-block-start: 0;\n }\n .xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .xl\\:pb-0 {\n padding-block-end: 0;\n }\n .xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .xl\\:gap-0 {\n gap: 0;\n }\n .xl\\:gap-1 {\n gap: 0.25rem;\n }\n .xl\\:gap-2 {\n gap: 0.5rem;\n }\n .xl\\:gap-3 {\n gap: 0.75rem;\n }\n .xl\\:gap-4 {\n gap: 1rem;\n }\n .xl\\:gap-5 {\n gap: 1.25rem;\n }\n .xl\\:gap-6 {\n gap: 1.5rem;\n }\n .xl\\:gap-7 {\n gap: 2rem;\n }\n .xl\\:gap-8 {\n gap: 2.5rem;\n }\n .xl\\:gap-9 {\n gap: 3rem;\n }\n .xl\\:row-gap-0 {\n row-gap: 0;\n }\n .xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .xl\\:column-gap-0 {\n column-gap: 0;\n }\n .xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.xl\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.xl\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.xl\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.xl\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.xl\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.xl\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.xl\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.xl\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.xl\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.xl\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.xl\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.xl\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.xl\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.xl\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.xl\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.xl\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.xl\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.xl\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.xl\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.xl\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.xl\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.xl\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.xl\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.xl\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .xl\\:text-start {\n text-align: start;\n }\n .xl\\:text-end {\n text-align: end;\n }\n .xl\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:float-start {\n float: inline-start;\n }\n .\\32 xl\\:float-end {\n float: inline-end;\n }\n .\\32 xl\\:float-none {\n float: none;\n }\n .\\32 xl\\:object-fit-contain {\n object-fit: contain;\n }\n .\\32 xl\\:object-fit-cover {\n object-fit: cover;\n }\n .\\32 xl\\:object-fit-fill {\n object-fit: fill;\n }\n .\\32 xl\\:object-fit-scale {\n object-fit: scale-down;\n }\n .\\32 xl\\:object-fit-none {\n object-fit: none;\n }\n .\\32 xl\\:d-inline {\n display: inline;\n }\n .\\32 xl\\:d-inline-block {\n display: inline-block;\n }\n .\\32 xl\\:d-block {\n display: block;\n }\n .\\32 xl\\:d-grid {\n display: grid;\n }\n .\\32 xl\\:d-inline-grid {\n display: inline-grid;\n }\n .\\32 xl\\:d-table {\n display: table;\n }\n .\\32 xl\\:d-table-row {\n display: table-row;\n }\n .\\32 xl\\:d-table-cell {\n display: table-cell;\n }\n .\\32 xl\\:d-flex {\n display: flex;\n }\n .\\32 xl\\:d-inline-flex {\n display: inline-flex;\n }\n .\\32 xl\\:d-contents {\n display: contents;\n }\n .\\32 xl\\:d-flow-root {\n display: flow-root;\n }\n .\\32 xl\\:d-none {\n display: none;\n }\n .\\32 xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .\\32 xl\\:flex-row {\n flex-direction: row;\n }\n .\\32 xl\\:flex-column {\n flex-direction: column;\n }\n .\\32 xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .\\32 xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .\\32 xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .\\32 xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .\\32 xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .\\32 xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .\\32 xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .\\32 xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .\\32 xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .\\32 xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .\\32 xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .\\32 xl\\:justify-content-center {\n justify-content: center;\n }\n .\\32 xl\\:justify-content-between {\n justify-content: space-between;\n }\n .\\32 xl\\:justify-content-around {\n justify-content: space-around;\n }\n .\\32 xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .\\32 xl\\:justify-items-start {\n justify-items: start;\n }\n .\\32 xl\\:justify-items-end {\n justify-items: end;\n }\n .\\32 xl\\:justify-items-center {\n justify-items: center;\n }\n .\\32 xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .\\32 xl\\:justify-self-start {\n justify-self: start;\n }\n .\\32 xl\\:justify-self-end {\n justify-self: end;\n }\n .\\32 xl\\:justify-self-center {\n justify-self: center;\n }\n .\\32 xl\\:align-items-start {\n align-items: flex-start;\n }\n .\\32 xl\\:align-items-end {\n align-items: flex-end;\n }\n .\\32 xl\\:align-items-center {\n align-items: center;\n }\n .\\32 xl\\:align-items-baseline {\n align-items: baseline;\n }\n .\\32 xl\\:align-items-stretch {\n align-items: stretch;\n }\n .\\32 xl\\:align-content-start {\n align-content: flex-start;\n }\n .\\32 xl\\:align-content-end {\n align-content: flex-end;\n }\n .\\32 xl\\:align-content-center {\n align-content: center;\n }\n .\\32 xl\\:align-content-between {\n align-content: space-between;\n }\n .\\32 xl\\:align-content-around {\n align-content: space-around;\n }\n .\\32 xl\\:align-content-stretch {\n align-content: stretch;\n }\n .\\32 xl\\:align-self-auto {\n align-self: auto;\n }\n .\\32 xl\\:align-self-start {\n align-self: flex-start;\n }\n .\\32 xl\\:align-self-end {\n align-self: flex-end;\n }\n .\\32 xl\\:align-self-center {\n align-self: center;\n }\n .\\32 xl\\:align-self-baseline {\n align-self: baseline;\n }\n .\\32 xl\\:align-self-stretch {\n align-self: stretch;\n }\n .\\32 xl\\:place-items-start {\n place-items: start;\n }\n .\\32 xl\\:place-items-end {\n place-items: end;\n }\n .\\32 xl\\:place-items-center {\n place-items: center;\n }\n .\\32 xl\\:place-items-stretch {\n place-items: stretch;\n }\n .\\32 xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .\\32 xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .\\32 xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .\\32 xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .\\32 xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .\\32 xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .\\32 xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .\\32 xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .\\32 xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .\\32 xl\\:order-first {\n order: -1;\n }\n .\\32 xl\\:order-0 {\n order: 0;\n }\n .\\32 xl\\:order-1 {\n order: 1;\n }\n .\\32 xl\\:order-2 {\n order: 2;\n }\n .\\32 xl\\:order-3 {\n order: 3;\n }\n .\\32 xl\\:order-4 {\n order: 4;\n }\n .\\32 xl\\:order-5 {\n order: 5;\n }\n .\\32 xl\\:order-last {\n order: 6;\n }\n .\\32 xl\\:m-0 {\n margin: 0;\n }\n .\\32 xl\\:m-1 {\n margin: 0.25rem;\n }\n .\\32 xl\\:m-2 {\n margin: 0.5rem;\n }\n .\\32 xl\\:m-3 {\n margin: 0.75rem;\n }\n .\\32 xl\\:m-4 {\n margin: 1rem;\n }\n .\\32 xl\\:m-5 {\n margin: 1.25rem;\n }\n .\\32 xl\\:m-6 {\n margin: 1.5rem;\n }\n .\\32 xl\\:m-7 {\n margin: 2rem;\n }\n .\\32 xl\\:m-8 {\n margin: 2.5rem;\n }\n .\\32 xl\\:m-9 {\n margin: 3rem;\n }\n .\\32 xl\\:m-auto {\n margin: auto;\n }\n .\\32 xl\\:mx-0 {\n margin-inline: 0;\n }\n .\\32 xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .\\32 xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .\\32 xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .\\32 xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .\\32 xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .\\32 xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .\\32 xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .\\32 xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .\\32 xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .\\32 xl\\:mx-auto {\n margin-inline: auto;\n }\n .\\32 xl\\:my-0 {\n margin-block: 0;\n }\n .\\32 xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .\\32 xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .\\32 xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .\\32 xl\\:my-4 {\n margin-block: 1rem;\n }\n .\\32 xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .\\32 xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .\\32 xl\\:my-7 {\n margin-block: 2rem;\n }\n .\\32 xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .\\32 xl\\:my-9 {\n margin-block: 3rem;\n }\n .\\32 xl\\:my-auto {\n margin-block: auto;\n }\n .\\32 xl\\:mt-0 {\n margin-block-start: 0;\n }\n .\\32 xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .\\32 xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .\\32 xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .\\32 xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .\\32 xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .\\32 xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .\\32 xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .\\32 xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .\\32 xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .\\32 xl\\:mt-auto {\n margin-block-start: auto;\n }\n .\\32 xl\\:me-0 {\n margin-inline-end: 0;\n }\n .\\32 xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .\\32 xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .\\32 xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .\\32 xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .\\32 xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .\\32 xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .\\32 xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .\\32 xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .\\32 xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .\\32 xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .\\32 xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .\\32 xl\\:me-auto {\n margin-inline-end: auto;\n }\n .\\32 xl\\:mb-0 {\n margin-block-end: 0;\n }\n .\\32 xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .\\32 xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .\\32 xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .\\32 xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .\\32 xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .\\32 xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .\\32 xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .\\32 xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .\\32 xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .\\32 xl\\:mb-auto {\n margin-block-end: auto;\n }\n .\\32 xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .\\32 xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .\\32 xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .\\32 xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .\\32 xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .\\32 xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .\\32 xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .\\32 xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .\\32 xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .\\32 xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .\\32 xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .\\32 xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .\\32 xl\\:p-0 {\n padding: 0;\n }\n .\\32 xl\\:p-1 {\n padding: 0.25rem;\n }\n .\\32 xl\\:p-2 {\n padding: 0.5rem;\n }\n .\\32 xl\\:p-3 {\n padding: 0.75rem;\n }\n .\\32 xl\\:p-4 {\n padding: 1rem;\n }\n .\\32 xl\\:p-5 {\n padding: 1.25rem;\n }\n .\\32 xl\\:p-6 {\n padding: 1.5rem;\n }\n .\\32 xl\\:p-7 {\n padding: 2rem;\n }\n .\\32 xl\\:p-8 {\n padding: 2.5rem;\n }\n .\\32 xl\\:p-9 {\n padding: 3rem;\n }\n .\\32 xl\\:px-0 {\n padding-inline: 0;\n }\n .\\32 xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .\\32 xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .\\32 xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .\\32 xl\\:px-4 {\n padding-inline: 1rem;\n }\n .\\32 xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .\\32 xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .\\32 xl\\:px-7 {\n padding-inline: 2rem;\n }\n .\\32 xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .\\32 xl\\:px-9 {\n padding-inline: 3rem;\n }\n .\\32 xl\\:py-0 {\n padding-block: 0;\n }\n .\\32 xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .\\32 xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .\\32 xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .\\32 xl\\:py-4 {\n padding-block: 1rem;\n }\n .\\32 xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .\\32 xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .\\32 xl\\:py-7 {\n padding-block: 2rem;\n }\n .\\32 xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .\\32 xl\\:py-9 {\n padding-block: 3rem;\n }\n .\\32 xl\\:pt-0 {\n padding-block-start: 0;\n }\n .\\32 xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .\\32 xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .\\32 xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .\\32 xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .\\32 xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .\\32 xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .\\32 xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .\\32 xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .\\32 xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .\\32 xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .\\32 xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .\\32 xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .\\32 xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .\\32 xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .\\32 xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .\\32 xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .\\32 xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .\\32 xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .\\32 xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .\\32 xl\\:pb-0 {\n padding-block-end: 0;\n }\n .\\32 xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .\\32 xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .\\32 xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .\\32 xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .\\32 xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .\\32 xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .\\32 xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .\\32 xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .\\32 xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .\\32 xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .\\32 xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .\\32 xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .\\32 xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .\\32 xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .\\32 xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .\\32 xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .\\32 xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .\\32 xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .\\32 xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .\\32 xl\\:gap-0 {\n gap: 0;\n }\n .\\32 xl\\:gap-1 {\n gap: 0.25rem;\n }\n .\\32 xl\\:gap-2 {\n gap: 0.5rem;\n }\n .\\32 xl\\:gap-3 {\n gap: 0.75rem;\n }\n .\\32 xl\\:gap-4 {\n gap: 1rem;\n }\n .\\32 xl\\:gap-5 {\n gap: 1.25rem;\n }\n .\\32 xl\\:gap-6 {\n gap: 1.5rem;\n }\n .\\32 xl\\:gap-7 {\n gap: 2rem;\n }\n .\\32 xl\\:gap-8 {\n gap: 2.5rem;\n }\n .\\32 xl\\:gap-9 {\n gap: 3rem;\n }\n .\\32 xl\\:row-gap-0 {\n row-gap: 0;\n }\n .\\32 xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .\\32 xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .\\32 xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .\\32 xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .\\32 xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .\\32 xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .\\32 xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .\\32 xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .\\32 xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .\\32 xl\\:column-gap-0 {\n column-gap: 0;\n }\n .\\32 xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .\\32 xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .\\32 xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .\\32 xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .\\32 xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .\\32 xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .\\32 xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .\\32 xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .\\32 xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.\\32 xl\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.\\32 xl\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.\\32 xl\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.\\32 xl\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.\\32 xl\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.\\32 xl\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.\\32 xl\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.\\32 xl\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.\\32 xl\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.\\32 xl\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.\\32 xl\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.\\32 xl\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.\\32 xl\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.\\32 xl\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.\\32 xl\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.\\32 xl\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.\\32 xl\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.\\32 xl\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.\\32 xl\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.\\32 xl\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.\\32 xl\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.\\32 xl\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.\\32 xl\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.\\32 xl\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .\\32 xl\\:text-start {\n text-align: start;\n }\n .\\32 xl\\:text-end {\n text-align: end;\n }\n .\\32 xl\\:text-center {\n text-align: center;\n }\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */\n","$file: \"\" !default;\n\n/*!\n * Bootstrap #{$file} v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n","// stylelint-disable hue-degree-notation, @stylistic/number-leading-zero\n\n@use \"sass:map\";\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n// Easily convert colors to oklch() with https://oklch.com/\n\n$white: #fff !default;\n$black: #000 !default;\n\n// scss-docs-start colors-list\n$blue: oklch(60% 0.24 240) !default;\n$indigo: oklch(56% 0.26 288) !default;\n$violet: oklch(56% 0.24 300) !default;\n$purple: oklch(56% 0.24 320) !default;\n$pink: oklch(60% 0.22 4) !default;\n$red: oklch(60% 0.22 20) !default;\n$orange: oklch(70% 0.22 52) !default;\n$amber: oklch(79% 0.2 78) !default;\n$yellow: oklch(88% 0.24 88) !default;\n$lime: oklch(65% 0.24 135) !default;\n$green: oklch(64% 0.22 160) !default;\n$teal: oklch(68% 0.22 190) !default;\n$cyan: oklch(69% 0.22 220) !default;\n$brown: oklch(60% 0.12 54) !default;\n$gray: oklch(60% 0.02 245) !default;\n$pewter: oklch(65% 0.01 290) !default;\n// scss-docs-end colors-list\n\n// scss-docs-start colors-map\n$colors: () !default;\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: defaults(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"violet\": $violet,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"amber\": $amber,\n \"yellow\": $yellow,\n \"lime\": $lime,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"brown\": $brown,\n \"gray\": $gray,\n \"pewter\": $pewter,\n ),\n $colors\n);\n// scss-docs-end colors-map\n\n// scss-docs-start color-mix-options\n$color-mix-space: lab !default;\n$tint-color: var(--white) !default;\n$shade-color: var(--black) !default;\n\n$color-tints: (\n \"025\": 94%,\n \"050\": 90%,\n \"100\": 80%,\n \"200\": 60%,\n \"300\": 40%,\n \"400\": 20%,\n) !default;\n\n$color-shades: (\n \"600\": 16%,\n \"700\": 32%,\n \"800\": 48%,\n \"900\": 64%,\n \"950\": 76%,\n \"975\": 88%,\n) !default;\n// scss-docs-end color-mix-options\n\n// scss-docs-start color-tokens\n$color-tokens: () !default;\n\n$-color-defaults: () !default;\n@each $color, $value in $colors {\n @each $stop, $percent in $color-tints {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$tint-color} #{$percent}, #{$value}));\n }\n $-color-defaults: map.set($-color-defaults, --#{$color}-500, #{$value});\n @each $stop, $percent in $color-shades {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$shade-color} #{$percent}, #{$value}));\n }\n}\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$color-tokens: defaults($-color-defaults, $color-tokens);\n// scss-docs-end color-tokens\n\n:root {\n @include tokens($color-tokens);\n}\n","// Mixin to output tokens as CSS custom properties\n\n// scss-docs-start mixin-tokens\n@mixin tokens($map) {\n @each $prop, $value in $map {\n #{$prop}: #{$value};\n }\n}\n// scss-docs-end mixin-tokens\n","@use \"sass:map\";\n@use \"colors\" as *;\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"theme\" as *;\n@use \"mixins/tokens\" as *;\n// mdo-do: do we need theme?\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n\n$root-tokens: () !default;\n\n// scss-docs-start root-tokens\n// stylelint-disable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: defaults(\n (\n --black: #{$black},\n --white: #{$white},\n\n --gradient: #{$gradient},\n\n // scss-docs-start root-font-weight-variables\n --font-weight-lighter: lighter,\n --font-weight-light: 300,\n --font-weight-normal: 400,\n --font-weight-medium: 500,\n --font-weight-semibold: 600,\n --font-weight-bold: 700,\n --font-weight-bolder: bolder,\n // scss-docs-end root-font-weight-variables\n\n // scss-docs-start root-body-variables\n --body-font-family: system-ui,\n --body-font-size: var(--font-size-base),\n --body-font-weight: #{$font-weight-base},\n --body-line-height: #{$line-height-base},\n\n --heading-color: #{$headings-color},\n\n --hr-border-color: var(--border-color),\n\n --link-color: light-dark(var(--primary-base), var(--primary-fg)),\n --link-decoration: #{$link-decoration},\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000),\n\n --font-mono: \"SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace\",\n --code-font-size: 95%,\n --code-color: var(--fg-2),\n\n // scss-docs-start root-border-var\n --border-width: #{$border-width},\n --border-style: #{$border-style},\n --border-color: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-700)),\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent),\n // scss-docs-end root-border-var\n\n // scss-docs-start root-box-shadow-variables\n --box-shadow: 0 .5rem 1rem rgb(0 0 0 / 15%),\n --box-shadow-sm: 0 .125rem .25rem rgb(0 0 0 / 7.5%),\n --box-shadow-lg: 0 1rem 3rem rgb(0 0 0 / 17.5%),\n --box-shadow-inset: inset 0 1px 2px rgb(0 0 0 / 7.5%),\n // scss-docs-end root-box-shadow-variables\n\n --spacer: 1rem,\n\n // scss-docs-start root-focus-variables\n --focus-ring-width: 3px,\n --focus-ring-offset: 1px,\n --focus-ring-color: var(--primary-focus-ring),\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color),\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-variables\n --control-checked-bg: var(--primary-base),\n --control-checked-border-color: var(--control-checked-bg),\n --control-active-bg: var(--primary-base),\n --control-active-border-color: var(--control-active-bg),\n --control-disabled-bg: var(--bg-3),\n --control-disabled-opacity: .65,\n\n --btn-input-fg: var(--fg-body),\n --btn-input-bg: var(--bg-body),\n\n --btn-input-min-height: 2.375rem,\n --btn-input-padding-y: .375rem,\n --btn-input-padding-x: .75rem,\n --btn-input-font-size: var(--font-size-base),\n --btn-input-line-height: var(--line-height-base),\n --btn-input-border-radius: var(--radius-5),\n\n --btn-input-xs-min-height: 1.5rem,\n --btn-input-xs-padding-y: .125rem,\n --btn-input-xs-padding-x: .5rem,\n --btn-input-xs-font-size: var(--font-size-xs),\n --btn-input-xs-line-height: 1.125,\n --btn-input-xs-border-radius: var(--radius-5),\n\n --btn-input-sm-min-height: 2rem,\n --btn-input-sm-padding-y: .25rem,\n --btn-input-sm-padding-x: .625rem,\n --btn-input-sm-font-size: var(--font-size-sm),\n --btn-input-sm-line-height: var(--line-height-sm),\n --btn-input-sm-border-radius: var(--radius-5),\n\n --btn-input-lg-min-height: 2.75rem,\n --btn-input-lg-padding-y: .5rem,\n --btn-input-lg-padding-x: 1rem,\n --btn-input-lg-font-size: var(--font-size-md),\n --btn-input-lg-line-height: var(--line-height-md),\n --btn-input-lg-border-radius: var(--radius-7),\n // scss-docs-end root-form-variables\n ),\n $root-tokens\n);\n// stylelint-enable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// scss-docs-end root-tokens\n\n// scss-docs-start root-font-size-loop\n// Generate font-size and line-height tokens\n@each $name, $props in $font-sizes {\n $root-tokens: map.set($root-tokens, --font-size-#{$name}, map.get($props, \"font-size\"));\n $root-tokens: map.set($root-tokens, --line-height-#{$name}, map.get($props, \"line-height\"));\n}\n// scss-docs-end root-font-size-loop\n\n// scss-docs-start root-theme-tokens\n// Generate semantic theme colors\n@each $color-name, $color-map in $theme-colors {\n @each $key, $value in $color-map {\n $root-tokens: map.set($root-tokens, --#{$color-name}-#{$key}, $value);\n }\n}\n\n// Generate background tokens\n@each $key, $value in $theme-bgs {\n $root-tokens: map.set($root-tokens, --bg-#{$key}, $value);\n}\n\n// Generate foreground tokens\n@each $key, $value in $theme-fgs {\n $root-tokens: map.set($root-tokens, --fg-#{$key}, $value);\n}\n\n// Generate border tokens\n@each $key, $value in $theme-borders {\n $root-tokens: map.set($root-tokens, --border-#{$key}, $value);\n}\n// scss-docs-end root-theme-tokens\n\n// Generate breakpoint tokens\n@each $name, $value in $breakpoints {\n $root-tokens: map.set($root-tokens, --breakpoint-#{$name}, $value);\n}\n\n// Generate spacer tokens\n// scss-docs-start root-spacer-loop\n@each $key, $value in $spacers {\n $root-tokens: map.set($root-tokens, --spacer-#{$key}, $value);\n}\n// scss-docs-end root-spacer-loop\n\n// Generate radius tokens\n// scss-docs-start root-radius-loop\n@each $key, $value in $radii {\n $root-tokens: map.set($root-tokens, --radius-#{$key}, $value);\n}\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: map.set($root-tokens, --radius-pill, 50rem);\n// scss-docs-end root-radius-loop\n\n:root {\n @include tokens($root-tokens);\n\n color-scheme: light dark;\n // Always reserve the viewport scrollbar gutter so layout doesn't shift\n // when overflow: hidden is applied (e.g. when a dialog opens on Windows).\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=\"dark\"] {\n color-scheme: dark;\n}\n\n[data-bs-theme=\"light\"] {\n color-scheme: light;\n}\n","@use \"../config\" as *;\n@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n$reboot-kbd-tokens: () !default;\n$reboot-mark-tokens: () !default;\n\n// scss-docs-start reboot-kbd-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$reboot-kbd-tokens: defaults(\n (\n --kbd-padding-y: .125rem,\n --kbd-padding-x: .25rem,\n --kbd-font-size: var(--font-size-xs),\n --kbd-color: var(--bg-body),\n --kbd-bg: var(--fg-2),\n --kbd-border-radius: var(--radius-5),\n ),\n $reboot-kbd-tokens\n);\n// scss-docs-end reboot-kbd-tokens\n\n// scss-docs-start reboot-mark-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$reboot-mark-tokens: defaults(\n (\n --mark-padding: .1875em,\n --mark-color: var(--fg-body),\n --mark-bg: light-dark(var(--yellow-100), var(--yellow-900)),\n ),\n $reboot-mark-tokens\n);\n// scss-docs-end reboot-mark-tokens\n\n@layer reboot {\n // Reboot\n //\n // Normalization of HTML elements, manually forked from Normalize.css to remove\n // styles targeting irrelevant browsers while applying new styles.\n //\n // Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n // Document\n //\n // Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n // Root\n //\n // Ability to the value of the root font sizes, affecting the value of `rem`.\n // null by default, thus nothing is generated.\n\n :root {\n // Assume browser default font-size of 16px, or a user's preference\n accent-color: var(--primary-base);\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n }\n\n // Body\n //\n // 1. Remove the margin in all browsers.\n // 2. As a best practice, apply a default `background-color`.\n // 3. Prevent adjustments of font size after orientation changes in iOS.\n // 4. Change the default tap highlight to be completely transparent in iOS.\n\n // scss-docs-start reboot-body-rules\n body {\n margin: 0; // 1\n font-family: var(--body-font-family);\n font-size: var(--body-font-size);\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n color: var(--fg-body);\n text-align: var(--body-text-align);\n background-color: var(--bg-body); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: transparent; // 4\n }\n // scss-docs-end reboot-body-rules\n\n hr {\n margin: var(--hr-margin-y, var(--spacer)) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n\n // Typography\n //\n // 1. Remove top margins from headings\n // By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n // margin for easier control within type scales as it avoids margin collapsing.\n\n %heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: var(--heading-color);\n }\n\n h1,\n .h1 {\n @extend %heading;\n font-size: var(--font-size-3xl);\n }\n\n h2,\n .h2 {\n @extend %heading;\n font-size: var(--font-size-2xl);\n }\n\n h3,\n .h3 {\n @extend %heading;\n font-size: var(--font-size-xl);\n }\n\n h4,\n .h4 {\n @extend %heading;\n font-size: var(--font-size-lg);\n }\n\n h5,\n .h5 {\n @extend %heading;\n font-size: var(--font-size-md);\n }\n\n h6,\n .h6 {\n @extend %heading;\n font-size: var(--font-size-sm);\n }\n\n // Reset margins on paragraphs\n //\n // Similarly, the top margin on `<p>`s get reset. However, we also reset the\n // bottom margin to use `rem` units instead of `em`.\n\n p {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n }\n\n // Abbreviations\n //\n // 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n // 2. Add explicit cursor to indicate changed behavior.\n // 3. Prevent the text-decoration to be skipped.\n\n abbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n }\n\n // Address\n\n address {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n }\n\n // Lists\n\n ol,\n ul {\n padding-inline-start: 2rem;\n }\n\n ol,\n ul,\n dl {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n\n ol ol,\n ul ul,\n ol ul,\n ul ol {\n margin-bottom: 0;\n }\n\n dt {\n font-weight: $dt-font-weight;\n }\n\n // 1. Undo browser default\n\n dd {\n margin-inline-start: 0; // 1\n margin-bottom: .5rem;\n }\n\n // Blockquote\n\n blockquote {\n margin: 0 0 1rem;\n > * {\n margin-block: 0;\n }\n }\n\n // Strong\n //\n // Add the correct font weight in Chrome, Edge, and Safari\n\n b,\n strong {\n font-weight: $font-weight-bolder;\n }\n\n // Small\n //\n // Add the correct font size in all browsers\n\n small,\n .small {\n font-size: var(--small-font-size, 87.5%);\n }\n\n // Mark\n\n mark,\n .mark {\n @include tokens($reboot-mark-tokens);\n padding: var(--mark-padding);\n color: var(--mark-color);\n background-color: var(--mark-bg);\n }\n\n // Sub and Sup\n //\n // Prevent `sub` and `sup` elements from affecting the line height in\n // all browsers.\n\n sub,\n sup {\n position: relative;\n font-size: var(--sub-sup-font-size, .75em);\n line-height: 0;\n vertical-align: baseline;\n }\n\n sub { bottom: -.25em; }\n sup { top: -.5em; }\n\n // Links\n\n a {\n color: var(--theme-fg, var(--link-color));\n text-decoration: var(--link-decoration);\n text-underline-offset: $link-underline-offset;\n\n &:hover {\n // --link-color: var(--link-hover-color);\n // --link-decoration: var(--link-hover-decoration, var(--link-decoration));\n color: var(--theme-fg-emphasis, var(--link-hover-color));\n text-decoration: var(--link-hover-decoration, var(--link-decoration));\n }\n }\n\n // And undo these styles for placeholder links/named anchors (without href).\n // It would be more straightforward to just use a[href] in previous block, but that\n // causes specificity issues in many other styles that are too complex to fix.\n // See https://github.com/twbs/bootstrap/issues/19402\n\n a:not([href], [class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n }\n\n // Code\n\n pre,\n code,\n kbd,\n samp {\n font-family: var(--font-mono);\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n }\n\n // 1. Remove browser default top margin\n // 2. Reset browser default of `1em` to use `rem`s\n // 3. Don't allow content to break outside\n\n pre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n font-size: var(--code-font-size);\n color: var(--code-color, inherit);\n\n // Account for some code outputs that place code tags in pre tags\n code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n }\n\n code {\n font-size: var(--code-font-size);\n color: var(--code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n }\n\n kbd {\n @include tokens($reboot-kbd-tokens);\n padding: var(--kbd-padding-y) var(--kbd-padding-x);\n font-size: var(--kbd-font-size);\n color: var(--kbd-color);\n background-color: var(--kbd-bg);\n @include border-radius(var(--kbd-border-radius));\n\n kbd {\n padding: 0;\n font-size: 1em;\n font-weight: inherit; // mdo-do: check if this is needed\n }\n }\n\n // Figures\n //\n // Apply a consistent margin strategy (matches our type styles).\n\n figure {\n margin: 0 0 1rem;\n }\n\n // Images and content\n\n img,\n svg {\n vertical-align: middle;\n }\n\n // Tables\n //\n // Prevent double borders\n\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n\n caption {\n // padding-top: $table-cell-padding-y;\n // padding-bottom: $table-cell-padding-y;\n // color: $table-caption-color;\n padding-block: .5rem;\n color: var(--fg-3);\n text-align: start;\n }\n\n // 1. Removes font-weight bold by inheriting\n // 2. Matches default `<td>` alignment by inheriting `text-align`.\n // 3. Fix alignment for Safari\n\n th {\n // font-weight: $table-th-font-weight; // 1 // mdo-do: it's null by default. maybe we remove?\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n }\n\n thead,\n tbody,\n tfoot,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n\n // Forms\n //\n // 1. Allow labels to use `margin` for spacing.\n\n label {\n display: inline-block; // 1\n }\n\n // Remove the default `border-radius` that macOS Chrome adds.\n // See https://github.com/twbs/bootstrap/issues/24093\n\n button {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n }\n\n // Explicitly remove focus outline in Chromium when it shouldn't be\n // visible (e.g. as result of mouse click or touch tap). It already\n // should be doing this automatically, but seems to currently be\n // confused and applies its very visible two-tone outline anyway.\n\n button:focus:not(:focus-visible) {\n outline: 0;\n }\n\n // 1. Remove the margin in Firefox and Safari\n\n input,\n button,\n select,\n optgroup,\n textarea {\n margin: 0; // 1\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n // Set the cursor for non-`<button>` buttons\n //\n // Details at https://github.com/twbs/bootstrap/pull/30562\n [role=\"button\"] {\n cursor: pointer;\n }\n\n select {\n // Remove the inheritance of word-wrap in Safari.\n // See https://github.com/twbs/bootstrap/issues/24990\n word-wrap: normal;\n\n // Undo the opacity change from Chrome\n &:disabled {\n opacity: 1;\n }\n }\n\n // Remove the dropdown arrow only from text type inputs built with datalists in Chrome.\n // See https://stackoverflow.com/a/54997118\n\n [list]:not([type=\"date\"], [type=\"datetime-local\"], [type=\"month\"], [type=\"week\"], [type=\"time\"])::-webkit-calendar-picker-indicator {\n display: none !important;\n }\n\n // 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n // controls in Android 4.\n // 2. Correct the inability to style clickable types in iOS and Safari.\n // 3. Opinionated: add \"hand\" cursor to non-disabled button elements.\n\n button,\n [type=\"button\"], // 1\n [type=\"reset\"],\n [type=\"submit\"] {\n -webkit-appearance: button; // 2\n\n @if $enable-button-pointers {\n &:not(:disabled) {\n cursor: pointer; // 3\n }\n }\n }\n\n // 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.\n\n textarea {\n resize: vertical; // 1\n }\n\n // 1. Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n // 2. Reset the default outline behavior of fieldsets so they don't affect page layout.\n\n fieldset {\n min-width: 0; // 1\n padding: 0; // 2\n margin: 0; // 2\n border: 0; // 2\n }\n\n // 1. By using `float: inline-start`, the legend will behave like a block element.\n // This way the border of a fieldset wraps around the legend if present.\n // 2. Fix wrapping bug.\n // See https://github.com/twbs/bootstrap/issues/29712\n\n legend {\n float: inline-start; // 1\n width: 100%;\n padding: 0;\n margin-bottom: $legend-margin-bottom;\n font-size: $legend-font-size;\n font-weight: $legend-font-weight;\n line-height: inherit;\n\n + * {\n clear: inline-start; // 2\n }\n }\n\n // Fix height of inputs with a type of datetime-local, date, month, week, or time\n // See https://github.com/twbs/bootstrap/issues/18842\n\n ::-webkit-datetime-edit-fields-wrapper,\n ::-webkit-datetime-edit-text,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-ampm-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-week-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-year-field {\n padding: 0;\n }\n\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n\n // 1. This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n // 2. Correct the outline style in Safari.\n\n [type=\"search\"] {\n -webkit-appearance: textfield; // 1\n outline-offset: -2px; // 2\n\n // 3. Better affordance and consistent appearance for search cancel button\n &::-webkit-search-cancel-button {\n cursor: pointer;\n filter: grayscale(1);\n }\n }\n\n // A few input types should stay LTR regardless of document direction\n // See https://rtlstyling.com/posts/rtl-styling#form-inputs\n\n [type=\"tel\"],\n [type=\"url\"],\n [type=\"email\"],\n [type=\"number\"] {\n direction: ltr;\n }\n\n // Remove the inner padding in Chrome and Safari on macOS.\n\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n // Remove padding around color pickers in webkit browsers\n\n ::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n\n // 1. Inherit font family and line height for file input buttons\n // 2. Correct the inability to style clickable types in iOS and Safari.\n\n ::file-selector-button {\n font: inherit; // 1\n -webkit-appearance: button; // 2\n }\n\n // Correct element displays\n\n output {\n display: inline-block;\n }\n\n // Remove border from iframe\n\n iframe {\n border: 0;\n }\n\n // Summary\n //\n // 1. Add the correct display in all browsers\n\n summary {\n display: list-item; // 1\n cursor: pointer;\n }\n\n // Progress\n //\n // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n progress {\n vertical-align: baseline;\n }\n\n // Hidden attribute\n //\n // Always hide an element with the `hidden` HTML attribute.\n\n [hidden] {\n display: none !important;\n }\n}\n","@use \"sass:map\";\n@use \"sass:meta\";\n\n// Configuration\n//\n// Variables and settings not related to theme, components, and more go here. It does include layout.\n\n// Merge overrides on top of defaults, stripping null entries.\n// Null values let users remove map keys via @use ... with().\n// Accepts a list as $defaults (converted to a map with `true` values).\n@function defaults($defaults, $overrides) {\n @if meta.type-of($defaults) == \"list\" {\n $map: ();\n @each $key in $defaults {\n $map: map.merge($map, ($key: true));\n }\n $defaults: $map;\n }\n $merged: map.merge($defaults, $overrides);\n @each $key, $value in $merged {\n @if $value == null {\n $merged: map.remove($merged, $key);\n }\n }\n @return $merged;\n}\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: true !default;\n$enable-gradients: true !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: false !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: true !default;\n$enable-button-pointers: true !default;\n// $enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n\n$enable-dark-mode: true !default;\n\n$color-mode-type: \"media-query\" !default;\n$color-contrast-dark: #000 !default;\n$color-contrast-light: #fff !default;\n$min-contrast-ratio: 4.5 !default;\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer * .75,\n 4: $spacer,\n 5: $spacer * 1.25,\n 6: $spacer * 1.5,\n 7: $spacer * 2,\n 8: $spacer * 2.5,\n 9: $spacer * 3,\n) !default;\n\n$negative-spacers: (\n \"-1\": $spacer * -.25,\n \"-2\": $spacer * -.5,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n$sizes: (\n 1: $spacer,\n 2: $spacer * 2,\n 3: $spacer * 3,\n 4: $spacer * 4,\n 5: $spacer * 5,\n 6: $spacer * 6,\n 7: $spacer * 7,\n 8: $spacer * 8,\n 9: $spacer * 9,\n 10: $spacer * 10,\n 11: $spacer * 11,\n 12: $spacer * 12,\n) !default;\n\n$radius: .5rem !default;\n$radii: (\n 0: 0,\n 1: $radius * .25,\n 2: $radius * .375,\n 3: $radius * .5,\n 4: $radius * .75,\n 5: $radius,\n 6: $radius * 1.25,\n 7: $radius * 1.5,\n 8: $radius * 2,\n 9: $radius * 3,\n) !default;\n\n// Breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start breakpoints\n$breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 1024px,\n xl: 1280px,\n 2xl: 1536px\n) !default;\n// scss-docs-end breakpoints\n\n// @include _assert-ascending($breakpoints, \"$breakpoints\");\n// @include _assert-starts-at-zero($breakpoints, \"$breakpoints\");\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-x: 1.5rem !default;\n$grid-gutter-y: 0 !default;\n$grid-row-columns: 6 !default;\n\n$gutters: $spacers !default;\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1200px,\n 2xl: 1440px\n) !default;\n// scss-docs-end container-max-widths\n\n$container-padding-x: $grid-gutter-x !default;\n\n$utilities: () !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent)) !default;\n// scss-docs-end variable-gradient\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Links\n//\n// Style anchor elements.\n\n$link-decoration: underline !default;\n$link-underline-offset: .2em !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: color-mix(in oklch, var(--gray-100), var(--gray-200)) !default;\n// scss-docs-end border-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"auto\": auto,\n \"1x1\": #{\"1 / 1\"},\n \"4x3\": #{\"4 / 3\"},\n \"16x9\": #{\"16 / 9\"},\n \"21x9\": #{\"21 / 9\"}\n) !default;\n// scss-docs-end aspect-ratios\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$font-sizes: defaults(\n (\n \"xs\": (\n \"font-size\": .75rem,\n \"line-height\": 1.25\n ),\n \"sm\": (\n \"font-size\": .875rem,\n \"line-height\": 1.5\n ),\n \"md\": (\n \"font-size\": 1rem,\n \"line-height\": 1.5\n ),\n \"lg\": (\n \"font-size\": clamp(1.25rem, 1rem + .625vw, 1.5rem),\n \"line-height\": 1.5\n ),\n \"xl\": (\n \"font-size\": clamp(1.5rem, 1.1rem + .75vw, 1.75rem),\n \"line-height\": calc(2.5 / 1.75)\n ),\n \"2xl\": (\n \"font-size\": clamp(1.75rem, 1.3rem + 1vw, 2rem),\n \"line-height\": calc(3 / 2.25)\n ),\n \"3xl\": (\n \"font-size\": clamp(2rem, 1.5rem + 1.875vw, 2.5rem),\n \"line-height\": 1.2\n ),\n \"4xl\": (\n \"font-size\": clamp(2.25rem, 1.75rem + 2.5vw, 3rem),\n \"line-height\": 1.1\n ),\n \"5xl\": (\n \"font-size\": clamp(3rem, 2rem + 5vw, 4rem),\n \"line-height\": 1.1\n ),\n \"6xl\": (\n \"font-size\": clamp(3.75rem, 2.5rem + 6.25vw, 5rem),\n \"line-height\": 1\n ),\n ),\n $font-sizes\n);\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: var(--spacer-2) !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start type-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n// scss-docs-end type-variables\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-menu: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n// $zindex-drawer-backdrop: 1040 !default;\n$zindex-drawer: 1045 !default;\n$zindex-dialog: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n","@use \"sass:list\";\n@use \"sass:math\";\n@use \"sass:meta\";\n@use \"../config\" as *;\n\n// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n $return: ();\n @each $value in $radius {\n @if meta.type-of($value) == number {\n $return: list.append($return, math.max($value, 0));\n } @else {\n $return: list.append($return, $value);\n }\n }\n @return $return;\n}\n\n// scss-docs-start border-radius-mixins\n@mixin border-radius($radius: var(--radius-5), $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: valid-radius($radius);\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n border-start-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-end-radius: valid-radius($radius);\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-start-radius: valid-radius($radius);\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n border-end-start-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-start-radius: valid-radius($radius);\n }\n}\n// scss-docs-end border-radius-mixins\n","@use \"../functions\" as *;\n@use \"../mixins/lists\" as *;\n@use \"../mixins/tokens\" as *;\n\n$blockquote-tokens: () !default;\n\n// scss-docs-start blockquote-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$blockquote-tokens: defaults(\n (\n --blockquote-gap: calc(var(--spacer) / 2),\n --blockquote-padding-x: var(--spacer),\n --blockquote-margin-y: 1rem,\n --blockquote-font-size: var(--font-size-md),\n --blockquote-border-width: .25rem,\n --blockquote-border-color: var(--border-color),\n --blockquote-footer-font-size: var(--font-size-sm),\n --blockquote-footer-color: var(--fg-3),\n ),\n $blockquote-tokens\n);\n// scss-docs-end blockquote-tokens\n\n@layer content {\n //\n // Lists\n //\n\n .list-unstyled {\n @include list-unstyled();\n }\n\n // Inline turns list items into inline-block\n .list-inline {\n @include list-unstyled();\n }\n .list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-inline-end: var(--list-inline-padding, var(--spacer) / 2);\n }\n }\n\n //\n // Misc\n //\n\n // Builds on `abbr`\n .initialism {\n font-size: var(--initialism-font-size, var(--font-size-xs));\n text-transform: uppercase;\n }\n\n // Blockquotes\n .blockquote {\n @include tokens($blockquote-tokens);\n display: flex;\n flex-direction: column;\n gap: var(--blockquote-gap);\n padding-inline-start: var(--blockquote-padding-x);\n margin-bottom: var(--blockquote-margin-y);\n font-size: var(--blockquote-font-size);\n border-inline-start: var(--blockquote-border-width) solid var(--blockquote-border-color);\n\n > * {\n margin-bottom: 0;\n }\n }\n\n // stylelint-disable-next-line selector-no-qualifying-type\n figure.blockquote {\n blockquote {\n margin-bottom: 0;\n }\n }\n\n .blockquote-footer {\n font-size: var(--blockquote-footer-font-size);\n color: var(--blockquote-footer-color);\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n padding-inline-start: 0;\n list-style: none;\n}\n","@use \"sass:map\";\n@use \"../config\" as *;\n@use \"../functions\" as *;\n@use \"../layout/breakpoints\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$table-tokens: () !default;\n\n// scss-docs-start table-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$table-tokens: defaults(\n (\n --table-cell-padding-y: .5rem,\n --table-cell-padding-x: .5rem,\n --table-cell-vertical-align: top,\n --table-color: var(--fg-body),\n --table-bg: var(--bg-body),\n --table-accent-bg: transparent,\n --table-border-width: var(--border-width),\n --table-border-color: var(--border-color),\n --table-group-separator-color: currentcolor,\n --table-striped-color: var(--table-color),\n --table-striped-bg-factor: 5%,\n --table-striped-bg: color-mix(in srgb, var(--table-color) var(--table-striped-bg-factor), transparent),\n --table-active-color: var(--table-color),\n --table-active-bg-factor: 10%,\n --table-active-bg: color-mix(in srgb, var(--table-color) var(--table-active-bg-factor), transparent),\n --table-hover-color: var(--table-color),\n --table-hover-bg-factor: 7.5%,\n --table-hover-bg: color-mix(in srgb, var(--table-color) var(--table-hover-bg-factor), transparent),\n ),\n $table-tokens\n);\n// scss-docs-end table-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n$table-striped-order: odd !default;\n$table-striped-columns-order: even !default;\n\n//\n// Basic Bootstrap table\n//\n\n@layer content {\n .table {\n @include tokens($table-tokens);\n\n // Reset needed for nesting tables\n --table-color-type: initial;\n --table-bg-type: initial;\n --table-color-state: initial;\n --table-bg-state: initial;\n // End of reset\n\n width: 100%;\n margin-bottom: var(--spacer);\n vertical-align: var(--table-cell-vertical-align);\n border-color: var(--theme-border, var(--table-border-color));\n\n // Target th & td\n // We need the child combinator to prevent styles leaking to nested tables which doesn't have a `.table` class.\n // We use the universal selectors here to simplify the selector (else we would need 6 different selectors).\n // Another advantage is that this generates less code and makes the selector less specific making it easier to override.\n // stylelint-disable-next-line selector-max-universal\n > :not(caption) > * > * {\n padding: var(--table-cell-padding-y) var(--table-cell-padding-x);\n // Following the precept of cascades: https://codepen.io/miriamsuzanne/full/vYNgodb\n color: var(--table-color-state, var(--table-color-type, var(--theme-fg, var(--table-color))));\n background-color: var(--theme-bg-subtle, var(--table-bg));\n border-block-end-width: var(--table-border-width);\n box-shadow: inset 0 0 0 9999px var(--table-bg-state, var(--table-bg-type, var(--theme-bg-subtle, var(--table-accent-bg))));\n }\n\n > tbody {\n vertical-align: inherit;\n }\n\n > thead {\n vertical-align: bottom;\n }\n }\n\n .table-group-divider {\n border-block-start: calc(var(--table-border-width) * 2) solid var(--table-group-separator-color);\n }\n\n //\n // Change placement of captions with a class\n //\n\n .caption-top {\n caption-side: top;\n }\n\n //\n // Condensed table w/ half padding\n //\n\n .table-sm {\n // stylelint-disable-next-line selector-max-universal\n > :not(caption) > * > * {\n --table-cell-padding-y: .25rem;\n --table-cell-padding-x: .25rem;\n }\n }\n\n // Border versions\n //\n // Add or remove borders all around the table and between all the columns.\n //\n // When borders are added on all sides of the cells, the corners can render odd when\n // these borders do not have the same color or if they are semi-transparent.\n // Therefore we add top and border bottoms to the `tr`s and left and right borders\n // to the `td`s or `th`s\n\n .table-bordered {\n > :not(caption) > * {\n border-width: var(--table-border-width) 0;\n\n // stylelint-disable-next-line selector-max-universal\n > * {\n border-width: 0 var(--table-border-width);\n }\n }\n }\n\n .table-borderless {\n // stylelint-disable-next-line selector-max-universal\n > :not(caption) > * > * {\n border-block-end-width: 0;\n }\n\n > :not(:first-child) {\n border-block-start-width: 0;\n }\n }\n\n // Zebra-striping\n //\n // Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n // For rows\n .table-striped {\n > tbody > tr:nth-of-type(#{$table-striped-order}) > * {\n --table-color-type: var(--theme-fg, var(--table-striped-color));\n --table-bg-type: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-striped-bg-factor), transparent);\n }\n }\n\n // For columns\n .table-striped-columns {\n > :not(caption) > tr > :nth-child(#{$table-striped-columns-order}) {\n --table-color-type: var(--theme-fg, var(--table-striped-color));\n --table-bg-type: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-striped-bg-factor), transparent);\n }\n }\n\n // Active table\n //\n // The `.table-active` class can be added to highlight rows or cells\n\n .table-active {\n --table-color-state: var(--theme-fg, var(--table-active-color));\n --table-bg-state: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-active-bg-factor), transparent);\n }\n\n // Hover effect\n //\n // Placed here since it has to come after the potential zebra striping\n\n .table-hover {\n > tbody > tr:hover > * {\n --table-color-state: var(--theme-fg, var(--table-hover-color));\n --table-bg-state: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-hover-bg-factor), transparent);\n }\n }\n\n // Responsive tables\n //\n // Generate `.table-responsive` classes that act as container query contexts\n // and enable horizontal scrolling when table content overflows.\n\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n .#{$prefix}table-responsive {\n container-type: inline-size;\n\n @include media-breakpoint-down($breakpoint) {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n }\n\n // Stacked tables\n //\n // Generate `.table-stacked` classes that convert table rows into stacked\n // blocks using container queries. Requires a `.table-responsive` ancestor\n // and `data-cell` attributes on `<td>` elements for column labels.\n\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include container-breakpoint-down($breakpoint) {\n .#{$prefix}table-stacked {\n > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n\n + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n\n > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * .25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n\n &:first-child {\n font-weight: var(--font-weight-bold);\n }\n\n // + td::before {\n // margin-block-start: .25rem;\n // }\n\n &[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n }\n\n > td:not(:first-child) + td::before {\n margin-block-start: .25rem;\n }\n }\n }\n }\n }\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:string\";\n@use \"../config\" as *;\n\n// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px)\n//\n// The map defined in the `$breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl 2xl))\n// md\n@function breakpoint-next($name, $breakpoints: $breakpoints, $breakpoint-names: map.keys($breakpoints)) {\n $n: list.index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoint-names}`\";\n }\n // Use @if/@else because list.nth would error if evaluated when $n equals list length\n @if $n < list.length($breakpoint-names) {\n @return list.nth($breakpoint-names, $n + 1);\n } @else {\n @return null;\n }\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $breakpoints) {\n $min: map.get($breakpoints, $name);\n @return if(sass($min != 0): $min; else: null);\n}\n\n// Maximum breakpoint width for range media queries.\n// Returns the breakpoint value to use as an upper bound in range queries.\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n// >> breakpoint-max(xxl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// null\n@function breakpoint-max($name, $breakpoints: $breakpoints) {\n @if $name == null {\n @return null;\n }\n $max: map.get($breakpoints, $name);\n @return if(sass($max and $max > 0): $max; else: null);\n}\n\n// Escape a name for use at the start of a CSS identifier.\n// Leading digits are hex-escaped (e.g., 2xl becomes \\32 xl).\n@function css-escape-ident($name) {\n $name-str: \"#{$name}\";\n $digits: \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\";\n $first: string.slice($name-str, 1, 1);\n\n @if list.index($digits, $first) {\n @return \"\\\\3#{$first} #{string.slice($name-str, 2)}\";\n }\n\n @return $name-str;\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name\n// with an escaped colon as a Tailwind-style prefix for responsive class names.\n// Leading digits are CSS-escaped (e.g., 2xl becomes \\32 xl) for valid identifiers.\n//\n// >> breakpoint-prefix(xs, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\" (Returns a blank string)\n// >> breakpoint-prefix(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"sm\\:\"\n// >> breakpoint-prefix(2xl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\\32 xl\\:\"\n@function breakpoint-prefix($name, $breakpoints: $breakpoints) {\n @if breakpoint-min($name, $breakpoints) == null {\n @return \"\";\n }\n\n @return \"#{css-escape-ident($name)}\\\\:\";\n}\n\n// Iterate all breakpoints and provide the current name and prefix.\n//\n// @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-up($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n @content($breakpoint, $prefix);\n }\n}\n\n// Iterate all breakpoints and provide the current name, next name, and next prefix.\n//\n// @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-down($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $next: breakpoint-next($breakpoint, $breakpoints);\n $prefix: breakpoint-prefix($next, $breakpoints);\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Backwards-compatible alias for next/down breakpoint loops.\n@mixin loop-breakpoints($breakpoints: $breakpoints) {\n @include loop-breakpoints-down($breakpoints) using ($breakpoint, $next, $prefix) {\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (width >= $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (width < $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n\n\n// Container queries\n//\n// Container queries allow elements to respond to the size of a containing element\n// rather than the viewport. These mixins mirror the media-breakpoint-* mixins above.\n//\n// scss-docs-start container-query-mixins\n\n// Set an element as a query container.\n//\n// @include set-container(); // container-type: inline-size\n// @include set-container(size); // container-type: size\n// @include set-container(inline-size, sidebar); // container: sidebar / inline-size\n//\n@mixin set-container($type: inline-size, $name: null) {\n @if $name {\n container: #{$name} / #{$type};\n } @else {\n container-type: #{$type};\n }\n}\n\n// Container query of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider within the container.\n//\n// @include container-breakpoint-up(md) { ... }\n// @include container-breakpoint-up(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-up($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower within the container.\n//\n// @include container-breakpoint-down(lg) { ... }\n// @include container-breakpoint-down(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-down($name, $container-name: null, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @if $container-name {\n @container #{$container-name} (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width < #{$max}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints within the container.\n//\n// @include container-breakpoint-between(md, xl) { ... }\n// @include container-breakpoint-between(md, xl, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-between($lower, $upper, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($lower, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($upper, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n\n// Container query between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint within the container.\n//\n// @include container-breakpoint-only(md) { ... }\n// @include container-breakpoint-only(md, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-only($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($name, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($next, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n// scss-docs-end container-query-mixins\n","@use \"../functions\" as *;\n@use \"../mixins/image\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/box-shadow\" as *;\n@use \"../mixins/tokens\" as *;\n\n$thumbnail-tokens: () !default;\n\n// scss-docs-start thumbnail-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$thumbnail-tokens: defaults(\n (\n --thumbnail-padding: .25rem,\n --thumbnail-bg: var(--bg-body),\n --thumbnail-border-width: var(--border-width),\n --thumbnail-border-color: var(--border-color),\n --thumbnail-border-radius: var(--radius-5),\n --thumbnail-box-shadow: var(--box-shadow-sm),\n ),\n $thumbnail-tokens\n);\n// scss-docs-end thumbnail-tokens\n\n$figure-tokens: () !default;\n\n// scss-docs-start figure-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$figure-tokens: defaults(\n (\n --figure-gap: calc(var(--spacer) * .5),\n --figure-caption-font-size: var(--font-size-sm),\n --figure-caption-color: var(--fg-3),\n ),\n $figure-tokens\n);\n// scss-docs-end figure-tokens\n\n@layer content {\n // Responsive images (ensure images don't scale beyond their parents)\n //\n // This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n // We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n // and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n // which weren't expecting the images within themselves to be involuntarily resized.\n // See also https://github.com/twbs/bootstrap/issues/18178\n .img-fluid {\n @include img-fluid();\n }\n\n .img-thumbnail {\n @include tokens($thumbnail-tokens);\n padding: var(--thumbnail-padding);\n background-color: var(--thumbnail-bg);\n border: var(--thumbnail-border-width) solid var(--thumbnail-border-color);\n @include border-radius(var(--thumbnail-border-radius));\n @include box-shadow(var(--thumbnail-box-shadow));\n\n // Keep them at most 100% wide\n @include img-fluid();\n }\n\n .figure {\n @include tokens($figure-tokens);\n // Ensures the caption's text aligns with the image.\n display: flex;\n flex-direction: column;\n gap: var(--figure-gap);\n }\n\n .figure-caption {\n font-size: var(--figure-caption-font-size);\n color: var(--figure-caption-color);\n }\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n","@use \"sass:list\";\n@use \"../config\" as *;\n\n@mixin box-shadow($shadow...) {\n @if $enable-shadows {\n $result: ();\n $has-single-value: false;\n $single-value: null;\n\n @each $value in $shadow {\n @if $value != null {\n @if $value == none or $value == initial or $value == inherit or $value == unset {\n $has-single-value: true;\n $single-value: $value;\n } @else {\n $result: list.append($result, $value, \"comma\");\n }\n }\n }\n\n @if $has-single-value {\n box-shadow: $single-value;\n } @else if (list.length($result) > 0) {\n box-shadow: $result;\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$prose-tokens: () !default;\n\n// scss-docs-start prose-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$prose-tokens: defaults(\n (\n --content-font-size: 1rem,\n --content-line-height: 1.5,\n --content-gap: calc(var(--content-font-size) * var(--content-line-height)),\n --heading-color: light-dark(var(--gray-900), var(--white)),\n ),\n $prose-tokens\n);\n// scss-docs-end prose-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer content {\n .prose {\n @include tokens($prose-tokens);\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--content-gap);\n max-width: 1000px;\n margin-inline: auto;\n font-size: var(--content-font-size);\n line-height: var(--content-line-height);\n\n @media (width >= 1024px) {\n --content-font-size: var(--font-size-md);\n --content-line-height: 1.625;\n // --content-gap: calc(var(--content-font-size) * var(--content-line-height));\n }\n\n :where(p, ul, ol, dl, pre, table, blockquote):not(:where(.not-prose, .not-prose *)) {\n margin-block: 0;\n }\n\n :where(ul, ol):not([class], :where(.not-prose, .not-prose *)) li:not(:last-child) {\n margin-bottom: calc(var(--content-gap) / 4);\n }\n\n :where(li ul, li ol):not(:where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) / 4);\n }\n\n :where(hr):not(:where(.not-prose, .not-prose *)) {\n margin: calc(var(--content-gap) * 1.5) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n\n :where(h1, h2, h3, h4, h5, h6):not([class], :where(.not-prose, .not-prose *)) {\n margin-top: 0;\n margin-bottom: calc(var(--content-gap) / -2);\n font-weight: 500;\n line-height: 1.25;\n\n code {\n font-weight: 600;\n color: inherit;\n }\n }\n\n :where(h1, h2):not(:first-child, :where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) * .75);\n }\n\n :where(h3, h4, h5, h6):not(:first-child, :where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) * .5);\n }\n\n :where(h1):not(:where(.not-prose, .not-prose *)) {\n font-size: 2.25em;\n line-height: 1.1;\n }\n :where(h2):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.75em;\n }\n :where(h3):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.5em;\n }\n :where(h4):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.25em;\n }\n :where(h5):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.125em;\n }\n :where(h6):not(:where(.not-prose, .not-prose *)) {\n font-size: 1em;\n }\n\n :where(a:not([class])):not(:where(.not-prose, .not-prose *)) {\n color: var(--link-color);\n text-decoration: underline;\n text-decoration-color: color-mix(in srgb, var(--link-color) 25%, transparent);\n text-underline-offset: 4px;\n @include transition(.1s text-decoration-color ease-in-out);\n\n &:hover {\n text-decoration-color: var(--link-hover-color);\n }\n }\n\n :where(img):not(:where(.not-prose, .not-prose *)) {\n max-width: 100%;\n }\n\n :where(blockquote):not(:where(.not-prose, .not-prose *)) {\n padding-inline-start: calc(var(--content-gap) / 2);\n margin: 0;\n border-inline-start: 4px solid var(--border-color);\n }\n\n :where(table):not(:where(.not-prose, .not-prose *)) {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n }\n\n :where(table:not([class])):not(:where(.not-prose, .not-prose *)) {\n td,\n th {\n padding: 6px 12px;\n text-align: inherit;\n border: 1px solid var(--border-color);\n }\n }\n\n :where(dt):not(:where(.not-prose, .not-prose *)) {\n font-weight: 500;\n }\n\n :where(video, img):not(:where(.not-prose, .not-prose *)) {\n max-width: 100%;\n }\n }\n}\n","@use \"sass:list\";\n@use \"../config\" as *;\n\n// stylelint-disable property-disallowed-list\n@mixin transition($transition...) {\n @if list.length($transition) == 0 {\n $transition: $transition-base;\n }\n\n @if list.length($transition) > 1 {\n @each $value in $transition {\n @if $value == null or $value == none {\n @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n }\n }\n }\n\n @if $enable-transitions {\n @if list.nth($transition, 1) != null {\n transition: $transition;\n }\n\n @if $enable-reduced-motion and list.nth($transition, 1) != null and list.nth($transition, 1) != none {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n }\n}\n","@use \"../config\" as *;\n@use \"breakpoints\" as *;\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n --gutter-x: #{$gutter};\n --gutter-y: 0;\n width: 100%;\n padding-inline: calc(var(--gutter-x) * .5);\n margin-inline: auto;\n}\n\n@layer layout {\n @if $enable-container-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .#{breakpoint-prefix($breakpoint, $breakpoints)}container {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n @each $name, $width in $breakpoints {\n @if ($extend-breakpoint) {\n .#{breakpoint-prefix($name, $breakpoints)}container {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/grid\" as *;\n\n// mdo-do\n// - check gap utilities as replacement for gutter classes from v5\n\n@layer layout {\n @if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n\n @include make-grid-columns();\n }\n\n @if $enable-cssgrid {\n .grid {\n --columns: #{$grid-columns};\n --rows: 1;\n --gap: #{$grid-gutter-x};\n\n display: grid;\n grid-template-rows: repeat(var(--rows), 1fr);\n grid-template-columns: repeat(var(--columns), 1fr);\n gap: var(--gap);\n\n }\n\n @include make-cssgrid();\n }\n\n // mdo-do: add to utilities?\n .grid-cols-subgrid {\n grid-template-columns: subgrid;\n }\n\n .grid-fill {\n --gap: #{$grid-gutter-x};\n\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-auto-flow: row;\n gap: var(--gap);\n }\n\n // .g-col-auto {\n // grid-column: auto;\n // }\n\n // mdo-do: add to utilities?\n // .grid-cols-3 {\n // --columns: 3;\n // }\n // .grid-cols-4 {\n // --columns: 4;\n // }\n // .grid-cols-6 {\n // --columns: 6;\n // }\n\n // .grid-full {\n // grid-column: 1 / -1;\n // }\n}\n","@use \"sass:map\";\n@use \"sass:math\";\n@use \"sass:meta\";\n@use \"../config\" as *;\n@use \"../layout/breakpoints\" as *;\n\n// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter-x: $grid-gutter-x, $gutter-y: $grid-gutter-y) {\n --gutter-x: #{$gutter-x};\n --gutter-y: #{$gutter-y};\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-inline: calc(-.5 * var(--gutter-x));\n margin-top: calc(-1 * var(--gutter-y));\n}\n\n@mixin make-col-ready() {\n // Add box sizing if only the grid is loaded\n // stylelint-disable-next-line scss/at-function-named-arguments\n box-sizing: if(sass(meta.variable-exists(include-column-box-sizing) and $include-column-box-sizing): border-box; else: null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-inline: calc(var(--gutter-x) * .5);\n margin-top: var(--gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: math.percentage(math.div($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: math.div($size, $columns);\n // stylelint-disable-next-line scss/at-function-named-arguments\n margin-inline-start: if(sass($num == 0): 0; else: math.percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// number of columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: math.percentage(math.div(1, $count));\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-x, $breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n .#{$prefix}col {\n flex: 1 0 0;\n }\n\n .#{$prefix}row-cols-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .#{$prefix}row-cols-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .#{$prefix}col-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .#{$prefix}col-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($prefix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .#{$prefix}offset-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .#{$prefix}g-#{$key},\n .#{$prefix}gx-#{$key} {\n --gutter-x: #{$value};\n }\n\n .#{$prefix}g-#{$key},\n .#{$prefix}gy-#{$key} {\n --gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .#{$prefix}g-col-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is an invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .#{$prefix}g-start-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","@use \"../functions\" as *;\n\n$form-label-tokens: () !default;\n\n// scss-docs-start form-label-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-label-tokens: defaults(\n (\n --label-margin-bottom: calc(var(--spacer) / 2),\n --label-font-size: null,\n --label-font-style: null,\n --label-font-weight: null,\n --label-color: null,\n ),\n $form-label-tokens\n);\n// scss-docs-end form-label-tokens\n\n@layer forms {\n .form-label,\n .col-form-label {\n font-size: var(--label-font-size, inherit);\n font-style: var(--label-font-style, inherit);\n font-weight: var(--label-font-weight, 500);\n color: var(--label-color, var(--fg-body));\n }\n\n .form-label {\n margin-bottom: var(--label-margin-bottom, calc(var(--spacer) / 2));\n }\n\n // For use with horizontal and inline forms, when you need the label (or legend)\n // text to align with the form controls.\n .col-form-label {\n --label-padding-y: calc(var(--btn-input-padding-y) + var(--border-width));\n padding-block: var(--label-padding-y);\n margin-bottom: 0; // Override the `<legend>` default\n }\n\n .col-form-label-lg {\n --label-padding-y: calc(var(--btn-input-lg-padding-y) + var(--border-width));\n font-size: var(--btn-input-lg-font-size);\n }\n\n .col-form-label-sm {\n --label-padding-y: calc(var(--btn-input-sm-padding-y) + var(--border-width));\n font-size: var(--btn-input-sm-font-size);\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/tokens\" as *;\n\n$form-text-tokens: () !default;\n\n// scss-docs-start form-text-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-text-tokens: defaults(\n (\n --form-text-margin-top: .25rem,\n --form-text-font-size: var(--font-size-sm),\n --form-text-font-style: null,\n --form-text-font-weight: null,\n --form-text-color: var(--fg-2),\n ),\n $form-text-tokens\n);\n// scss-docs-end form-text-tokens\n\n@layer forms {\n .form-text {\n @include tokens($form-text-tokens);\n\n // margin-top: var(--form-text-margin-top);\n font-size: var(--form-text-font-size);\n font-style: var(--form-text-font-style);\n font-weight: var(--form-text-font-weight);\n color: var(--form-text-color);\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/box-shadow\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n$form-control-tokens: () !default;\n\n// scss-docs-start form-control-tokens\n// stylelint-disable custom-property-no-missing-var-function\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-control-tokens: defaults(\n (\n --control-min-height: var(--btn-input-min-height),\n --control-padding-y: var(--btn-input-padding-y),\n --control-padding-x: var(--btn-input-padding-x),\n --control-font-size: var(--btn-input-font-size),\n --control-line-height: var(--btn-input-line-height),\n --control-fg: var(--btn-input-fg),\n --control-bg: var(--btn-input-bg),\n --control-border-width: var(--border-width),\n --control-border-color: var(--border-color),\n --control-border-radius: var(--radius-5),\n --control-box-shadow: var(--box-shadow-inset),\n --control-action-bg: var(--bg-1),\n --control-action-hover-bg: var(--bg-2),\n --control-transition-property: \"border-color, box-shadow\",\n --control-transition-timing: .15s ease-in-out,\n --control-transition: var(--control-transition-property) var(--control-transition-timing),\n --control-placeholder-color: var(--fg-3),\n --control-disabled-color: var(--control-fg),\n --control-disabled-bg: var(--bg-2),\n --control-disabled-border-color: var(--control-border-color),\n --control-select-bg: #{escape-svg(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#00000080' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>\"))},\n --control-select-bg-position: right .75rem center,\n --control-select-bg-size: 16px 12px,\n --control-select-bg-dark: #{escape-svg(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#ffffff80' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>\"))},\n ),\n $form-control-tokens\n);\n// scss-docs-end form-control-tokens\n\n// scss-docs-start form-control-sizes\n$form-control-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-control-sizes: defaults(\n (\"sm\", \"lg\"),\n $form-control-sizes\n);\n// scss-docs-end form-control-sizes\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer forms {\n .form-control {\n @include tokens($form-control-tokens);\n\n display: flex;\n width: 100%;\n min-height: var(--control-min-height);\n padding: var(--control-padding-y) var(--control-padding-x);\n font-size: var(--control-font-size);\n line-height: var(--control-line-height);\n color: var(--control-fg);\n appearance: none;\n background-color: var(--control-bg);\n background-clip: padding-box;\n border: var(--control-border-width) solid var(--control-border-color);\n @include border-radius(var(--control-border-radius), 0);\n @include box-shadow(var(--control-box-shadow));\n @include transition(var(--control-transition));\n\n // Customize the `:focus` state to imitate native WebKit styles.\n &:focus-visible {\n --focus-ring-offset: -1px;\n @include focus-ring(true);\n }\n\n // Placeholder\n &::placeholder {\n color: var(--control-placeholder-color);\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n opacity: 1;\n }\n\n // Disabled inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &:disabled {\n color: var(--control-disabled-color);\n background-color: var(--control-disabled-bg);\n border-color: var(--control-disabled-border-color);\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n }\n\n // Date and time inputs\n // &::-webkit-date-and-time-value {\n // // On Android Chrome, form-control's \"width: 100%\" makes the input width too small\n // // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109\n // //\n // // On iOS Safari, form-control's \"appearance: none\" + \"width: 100%\" makes the input width too small\n // // Tested under iOS 16.2 / Safari 16.2\n // min-width: 85px; // Seems to be a good minimum safe width\n\n // // Add some height to date inputs on iOS\n // // https://github.com/twbs/bootstrap/issues/23307\n // // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved\n // // Multiply line-height by 1em if it has no unit\n // height: 1.5em;\n\n // // Android Chrome type=\"date\" is taller than the other inputs\n // // because of \"margin: 1px 24px 1px 4px\" inside the shadow DOM\n // // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109\n // margin: 0;\n // background-color: var(--red-500);\n // }\n\n // Prevent excessive date input height in Webkit\n // https://github.com/twbs/bootstrap/issues/34433\n\n // mdo-do: need to check this stuff out across browsers\n &::-webkit-datetime-edit {\n display: block;\n height: 1.5rem;\n padding: 0;\n margin-bottom: -.125rem;\n }\n &::-webkit-datetime-edit-fields-wrapper {\n height: 1.5rem;\n }\n\n // File inputs\n &[type=\"file\"] {\n overflow: hidden; // prevent pseudo element button overlap\n\n &:not(:disabled, [readonly]) {\n cursor: pointer;\n }\n }\n &::file-selector-button {\n min-height: var(--control-min-height);\n padding: var(--control-padding-y) var(--control-padding-x);\n margin: calc(var(--control-padding-y) * -1) calc(var(--control-padding-x) * -1);\n margin-inline-end: var(--control-padding-x);\n color: var(--control-fg);\n // @include gradient-bg(var(--control-action-bg));\n pointer-events: none;\n background-color: var(--control-action-bg);\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: var(--control-border-width);\n border-radius: 0; // stylelint-disable-line property-disallowed-list\n @include transition(var(--control-transition));\n }\n\n &:hover:not(:disabled, [readonly])::file-selector-button {\n background-color: var(--control-action-hover-bg);\n }\n }\n\n // Readonly controls as plain text\n //\n // Apply class to a readonly input to make it appear like regular plain\n // text (without any border, background color, focus indicator)\n\n .form-control-plaintext {\n display: block;\n width: 100%;\n padding: var(--control-padding-y) 0;\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n line-height: var(--control-line-height);\n color: var(--control-fg);\n background-color: transparent;\n border: solid transparent;\n border-width: var(--control-border-width) 0;\n\n &:focus {\n outline: 0;\n }\n\n &.form-control-sm,\n &.form-control-lg {\n padding-inline: 0;\n }\n }\n\n // stylelint-disable selector-no-qualifying-type\n select.form-control,\n .form-control-caret {\n padding-inline-end: calc(var(--control-padding-x) * 3);\n background-image: var(--control-select-bg);\n background-repeat: no-repeat;\n background-position: var(--control-select-bg-position);\n background-size: var(--control-select-bg-size);\n\n &[multiple],\n &[size]:not([size=\"1\"]) {\n padding-inline-end: var(--control-padding-x);\n background-image: none;\n }\n }\n\n @media (prefers-color-scheme: dark) {\n select.form-control,\n .form-control-caret {\n background-image: var(--control-select-bg-dark);\n }\n }\n // stylelint-enable selector-no-qualifying-type\n\n // Form control sizing\n //\n // Build on `.form-control` with modifier classes to decrease or increase the\n // height and font-size of form controls.\n //\n // Repeated in `_input_group.scss` to avoid Sass extend issues.\n @each $size, $_ in $form-control-sizes {\n .form-control-#{$size} {\n --control-min-height: var(--btn-input-#{$size}-min-height);\n --control-padding-y: var(--btn-input-#{$size}-padding-y);\n --control-padding-x: var(--btn-input-#{$size}-padding-x);\n --control-font-size: var(--btn-input-#{$size}-font-size);\n --control-line-height: var(--btn-input-#{$size}-line-height);\n --control-border-radius: var(--btn-input-#{$size}-border-radius);\n }\n }\n\n .form-control-color {\n width: var(--control-min-height);\n padding: var(--control-padding-y);\n\n &:not(:disabled, [readonly]) {\n cursor: pointer;\n }\n\n &::-moz-color-swatch {\n border: 0 !important; // stylelint-disable-line declaration-no-important\n @include border-radius(var(--radius-5));\n }\n\n &::-webkit-color-swatch {\n border: 0 !important; // stylelint-disable-line declaration-no-important\n @include border-radius(var(--radius-5));\n }\n }\n\n // Ghost input - removes all visual styling\n // Used inside custom wrappers that handle their own styling\n .form-ghost {\n display: block;\n width: 100%;\n padding: 0;\n font: inherit;\n color: inherit;\n appearance: none;\n background: transparent;\n border: 0;\n\n &:focus {\n outline: 0;\n }\n\n &::placeholder {\n color: var(--fg-3);\n opacity: 1;\n }\n\n &:disabled {\n color: var(--fg-4);\n cursor: not-allowed;\n }\n }\n}\n","@mixin focus-ring($offset: false, $color: null) {\n @if $color != null {\n outline: var(--focus-ring-width) solid #{$color};\n } @else {\n outline: var(--focus-ring);\n }\n @if $offset {\n outline-offset: var(--focus-ring-offset);\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$check-tokens: () !default;\n\n// scss-docs-start check-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$check-tokens: defaults(\n (\n --check-size: 1.25rem,\n --check-margin-block: .125rem,\n --check-bg: var(--bg-body),\n --check-border-color: var(--border-color),\n --check-border-radius: .375rem,\n --check-checked-bg: var(--control-checked-bg),\n --check-checked-border-color: var(--control-checked-border-color),\n --check-indeterminate-bg: var(--control-checked-bg),\n --check-indeterminate-border-color: var(--control-checked-border-color),\n --check-active-bg: var(--control-active-bg),\n --check-active-border-color: var(--control-active-border-color),\n --check-disabled-bg: var(--control-disabled-bg),\n --check-disabled-opacity: var(--control-disabled-opacity),\n ),\n $check-tokens\n);\n// scss-docs-end check-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer forms {\n .check {\n @include tokens($check-tokens);\n\n display: grid;\n grid-template-columns: repeat(1, minmax(0, 1fr));\n margin-block: var(--check-margin-block);\n\n :where(svg, input) {\n flex-shrink: 0;\n grid-row-start: 1;\n grid-column-start: 1;\n width: var(--check-size);\n height: var(--check-size);\n }\n\n :where(input) {\n appearance: none;\n // later: maybe set a tertiary bg color?\n background-color: var(--theme-bg, var(--check-bg));\n border: 1px solid var(--theme-bg, var(--check-border-color));\n // stylelint-disable-next-line property-disallowed-list\n border-radius: .3em;\n }\n\n :where(input:checked, input:indeterminate) {\n background-color: var(--theme-bg, var(--check-checked-bg));\n border-color: var(--theme-bg, var(--check-checked-border-color));\n }\n\n :where(input:focus-visible) {\n @include focus-ring(true);\n --focus-ring-offset: -1px;\n }\n\n &:has(input:checked) .checked,\n &:has(input:indeterminate) .indeterminate {\n display: block;\n color: var(--theme-contrast, var(--primary-contrast));\n stroke: currentcolor;\n }\n\n &:has(input:disabled) {\n --check-bg: var(--check-disabled-bg);\n\n ~ label {\n color: var(--fg-3);\n cursor: default;\n }\n }\n &:has(input:disabled:checked) {\n opacity: var(--check-disabled-opacity);\n }\n\n :where(svg) {\n pointer-events: none;\n }\n\n :where(svg path) {\n display: none;\n }\n }\n\n .check-sm {\n --check-size: 1rem;\n }\n .check-lg {\n --check-size: 1.5rem;\n --check-margin-block: 0;\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$radio-tokens: () !default;\n\n// scss-docs-start radio-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$radio-tokens: defaults(\n (\n --radio-size: 1.25rem,\n --radio-margin-block: .125rem,\n --radio-bg: var(--bg-body),\n --radio-border-color: var(--border-color),\n --radio-checked-bg: var(--control-checked-bg),\n --radio-checked-border-color: var(--control-checked-border-color),\n --radio-disabled-bg: var(--control-disabled-bg),\n --radio-disabled-opacity: var(--control-disabled-opacity),\n ),\n $radio-tokens\n);\n// scss-docs-end radio-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer forms {\n .radio {\n @include tokens($radio-tokens);\n\n position: relative;\n flex-shrink: 0;\n width: var(--radio-size);\n height: var(--radio-size);\n margin-block: var(--radio-margin-block);\n appearance: none;\n background-color: var(--theme-bg, var(--radio-bg));\n border: 1px solid var(--theme-bg, var(--radio-border-color));\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n\n &:checked {\n color: var(--theme-contrast, var(--primary-contrast));\n background-color: var(--theme-bg, var(--radio-checked-bg));\n border-color: var(--theme-bg, var(--radio-checked-border-color));\n\n &::before {\n position: absolute;\n inset: .25rem;\n content: \"\";\n background-color: currentcolor;\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n }\n }\n\n &:disabled {\n --radio-bg: var(--radio-disabled-bg);\n\n ~ label {\n color: var(--secondary-fg);\n cursor: default;\n }\n }\n\n &:focus-visible {\n @include focus-ring(true);\n }\n }\n\n .radio-sm {\n --radio-size: 1rem;\n }\n .radio-lg {\n --radio-size: 1.5rem;\n --radio-margin-block: 0;\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$switch-tokens: () !default;\n\n// scss-docs-start switch-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$switch-tokens: defaults(\n (\n --switch-height: 1.25rem,\n --switch-width: calc(var(--switch-height) * 1.5),\n --switch-padding: .0625rem,\n --switch-margin-block: .125rem,\n --switch-bg: var(--bg-3),\n --switch-border-width: var(--border-width),\n --switch-border-color: var(--border-color),\n --switch-indicator-bg: var(--white),\n --switch-indicator-width: calc(var(--switch-height) - calc(var(--switch-padding) * 2) - var(--switch-border-width) * 2),\n --switch-indicator-height: calc(var(--switch-height) - calc(var(--switch-padding) * 2) - var(--switch-border-width) * 2),\n --switch-checked-bg: var(--control-checked-bg),\n --switch-checked-border-color: var(--switch-checked-bg),\n --switch-checked-indicator-bg: var(--white),\n --switch-disabled-bg: var(--control-disabled-bg),\n --switch-disabled-indicator-bg: var(--fg-3),\n ),\n $switch-tokens\n);\n// scss-docs-end switch-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer forms {\n .switch {\n @include tokens($switch-tokens);\n\n position: relative;\n flex-shrink: 0;\n width: var(--switch-width);\n height: var(--switch-height);\n padding: var(--switch-padding);\n margin-block: var(--switch-margin-block);\n background-color: var(--switch-bg);\n border: var(--switch-border-width) solid var(--switch-border-color);\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 10rem;\n box-shadow: inset 0 1px 2px rgb(0 0 0 / .05);\n // stylelint-disable-next-line property-disallowed-list\n transition: background-color .15s ease-in-out;\n\n &::before {\n position: absolute;\n inset-block: var(--switch-padding);\n inset-inline-start: var(--switch-padding);\n width: var(--switch-indicator-width);\n height: var(--switch-indicator-height);\n content: \"\";\n background-color: var(--theme-contrast, var(--switch-indicator-bg));\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 10rem;\n box-shadow: 0 1px 2px rgb(0 0 0 / .1);\n // stylelint-disable-next-line property-disallowed-list\n transition: inset-inline-start .15s ease-in-out;\n }\n\n input {\n position: absolute;\n inset: 0;\n appearance: none;\n background-color: transparent;\n outline: 0;\n }\n\n &:focus-within {\n @include focus-ring(true);\n }\n\n &:has(input:checked) {\n background-color: var(--theme-bg, var(--switch-checked-bg));\n border-color: var(--theme-bg, var(--switch-checked-border-color));\n\n &::before {\n inset-inline-start: calc(100% - var(--switch-indicator-width) - var(--switch-padding));\n }\n }\n\n &:has(input:disabled) {\n --switch-bg: var(--switch-disabled-bg);\n --switch-indicator-bg: var(--switch-disabled-indicator-bg);\n\n &::before { opacity: .4; }\n\n ~ label {\n color: var(--secondary-fg);\n cursor: default;\n }\n }\n }\n .switch-sm {\n --switch-height: 1rem;\n }\n .switch-lg {\n --switch-height: 1.5rem;\n --switch-margin-block: 0;\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/box-shadow\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/transition\" as *;\n@use \"../mixins/gradients\" as *;\n@use \"../mixins/tokens\" as *;\n\n$range-tokens: () !default;\n\n// scss-docs-start range-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$range-tokens: defaults(\n (\n --range-track-width: 100%,\n --range-track-height: .5rem,\n --range-track-cursor: pointer,\n --range-track-bg: var(--bg-3),\n --range-track-border-radius: 1rem,\n --range-track-box-shadow: var(--box-shadow-inset),\n --range-thumb-width: 1rem,\n --range-thumb-height: var(--range-thumb-width),\n --range-thumb-bg: var(--primary-base),\n --range-thumb-border: var(--range-thumb-bg) solid var(--border-color),\n --range-thumb-border-radius: 1rem,\n --range-thumb-box-shadow: \"0 1px 2px rgb(0 0 0 / 7.5%), 0 2px 4px rgb(0 0 0 / 7.5%)\",\n --range-thumb-active-bg: color-mix(in oklch, var(--primary-base) 70%, var(--bg-body)),\n --range-thumb-disabled-bg: var(--fg-3),\n --range-thumb-transition-property: \"background-color, border-color, box-shadow\",\n --range-thumb-transition-timing: .15s ease-in-out,\n --range-thumb-transition: var(--range-thumb-transition-property) var(--range-thumb-transition-timing),\n ),\n $range-tokens\n);\n// scss-docs-end range-tokens\n\n// scss-docs-start range-mixins\n@mixin range-thumb() {\n width: var(--range-thumb-width);\n height: var(--range-thumb-height);\n appearance: none;\n @include gradient-bg(var(--range-thumb-bg));\n border: var(--range-thumb-border);\n @include border-radius(var(--range-thumb-border-radius));\n @include box-shadow(var(--range-thumb-box-shadow));\n @include transition(var(--range-thumb-transition));\n\n &:active {\n @include gradient-bg(var(--range-thumb-active-bg));\n }\n}\n\n@mixin range-track() {\n width: var(--range-track-width);\n height: var(--range-track-height);\n color: transparent; // Why?\n cursor: var(--range-track-cursor);\n background-color: var(--range-track-bg);\n border-color: transparent; // Firefox specific?\n @include border-radius(var(--range-track-border-radius));\n @include box-shadow(var(--range-track-box-shadow));\n}\n// scss-docs-end range-mixins\n\n@layer forms {\n .form-range {\n @include tokens($range-tokens);\n\n width: 100%;\n height: calc(var(--range-thumb-height) + (var(--focus-ring-width) * 2));\n padding: 0; // Need to reset padding\n appearance: none;\n background-color: transparent;\n\n &:hover {\n &::-webkit-slider-thumb {\n @include focus-ring(false, color-mix(in oklch, var(--primary-focus-ring), transparent));\n }\n &::-moz-range-thumb {\n @include focus-ring(false, color-mix(in oklch, var(--primary-focus-ring), transparent));\n }\n }\n\n &:focus-visible {\n outline: 0;\n\n // Pseudo-elements must be split across multiple rulesets to have an effect.\n &::-webkit-slider-thumb {\n @include focus-ring(true);\n --focus-ring-offset: 0;\n }\n &::-moz-range-thumb {\n @include focus-ring(true);\n --focus-ring-offset: 0;\n }\n }\n\n &::-moz-focus-outer {\n border: 0;\n }\n\n &::-webkit-slider-thumb {\n @include range-thumb();\n margin-top: calc((var(--range-track-height) - var(--range-thumb-height)) * .5); // Webkit specific\n }\n\n &::-moz-range-thumb {\n @include range-thumb();\n }\n\n &::-webkit-slider-runnable-track {\n @include range-track();\n }\n\n &::-moz-range-track {\n @include range-track();\n }\n\n &:disabled {\n pointer-events: none;\n\n &::-webkit-slider-thumb {\n background-color: var(--range-thumb-disabled-bg);\n }\n\n &::-moz-range-thumb {\n background-color: var(--range-thumb-disabled-bg);\n }\n }\n }\n}\n","@use \"../colors\" as *;\n@use \"../config\" as *;\n\n// Gradients\n\n// scss-docs-start gradient-bg-mixin\n@mixin gradient-bg($color: null) {\n background-color: $color;\n\n @if $enable-gradients {\n background-image: var(--gradient);\n }\n}\n// scss-docs-end gradient-bg-mixin\n\n// scss-docs-start gradient-mixins\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: var(--gray-700), $end-color: var(--gray-800), $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: var(--gray-700), $end-color: var(--gray-800), $start-percent: null, $end-percent: null) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n}\n\n@mixin gradient-directional($start-color: var(--gray-700), $end-color: var(--gray-800), $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n}\n\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n}\n\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n}\n\n@mixin gradient-radial($inner-color: var(--gray-700), $outer-color: var(--gray-800)) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n}\n\n@mixin gradient-striped($color: rgb(255 255 255 / .15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n// scss-docs-end gradient-mixins\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n$form-floating-tokens: () !default;\n\n// scss-docs-start form-floating-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-floating-tokens: defaults(\n (\n --form-floating-height: calc(3.5rem + (var(--border-width) * 2)),\n --form-floating-line-height: 1.25,\n --form-floating-padding-x: var(--btn-input-padding-x),\n --form-floating-padding-y: 1rem,\n --form-floating-input-padding-t: 1.625rem,\n --form-floating-input-padding-b: .625rem,\n --form-floating-label-height: 1.5em,\n --form-floating-label-opacity: .65,\n --form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem),\n --form-floating-label-disabled-color: var(--fg-3),\n --form-floating-transition-property: \"opacity, transform\",\n --form-floating-transition-timing: .1s ease-in-out,\n --form-floating-transition: var(--form-floating-transition-property) var(--form-floating-transition-timing),\n ),\n $form-floating-tokens\n);\n// scss-docs-end form-floating-tokens\n\n@layer forms {\n .form-floating {\n @include tokens($form-floating-tokens);\n\n position: relative;\n\n > label {\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n z-index: 2;\n display: flex;\n align-items: center;\n max-width: 100%;\n height: 100%; // allow textareas\n padding: var(--form-floating-padding-y) var(--form-floating-padding-x);\n overflow: hidden;\n color: color-mix(in oklch, var(--fg-body) var(--form-floating-label-opacity), transparent);\n text-align: start;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n border: var(--input-btn-border-width) solid transparent; // Required for aligning label's text with the input as it affects inner box model\n transform-origin: 0 0;\n @include transition(var(--form-floating-transition));\n }\n\n > .form-control,\n > .form-control-plaintext {\n height: var(--form-floating-height);\n min-height: var(--form-floating-height);\n padding: var(--form-floating-padding-y) var(--form-floating-padding-x);\n line-height: var(--form-floating-line-height);\n\n &::placeholder {\n color: transparent;\n }\n\n &:focus,\n &:not(:placeholder-shown) {\n padding-top: var(--form-floating-input-padding-t);\n padding-bottom: var(--form-floating-input-padding-b);\n }\n // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped\n &:-webkit-autofill {\n padding-top: var(--form-floating-input-padding-t);\n padding-bottom: var(--form-floating-input-padding-b);\n }\n }\n\n > .form-control:focus,\n > .form-control:not(:placeholder-shown),\n > .form-control-plaintext {\n ~ label {\n transform: var(--form-floating-label-transform);\n }\n }\n\n // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped\n > .form-control:-webkit-autofill {\n ~ label {\n transform: var(--form-floating-label-transform);\n }\n }\n > textarea:focus,\n > textarea:not(:placeholder-shown) {\n ~ label::after {\n position: absolute;\n inset: var(--form-floating-padding-y) calc(var(--form-floating-padding-x) * .5);\n z-index: -1;\n height: var(--form-floating-label-height);\n content: \"\";\n background-color: var(--control-bg);\n @include border-radius(var(--btn-input-border-radius));\n }\n }\n > textarea:disabled ~ label::after {\n background-color: var(--control-disabled-bg);\n }\n\n > .form-control-plaintext {\n ~ label {\n border-width: var(--control-border-width) 0; // Required to properly position label text - as explained above\n }\n }\n\n > :disabled ~ label,\n > .form-control:disabled ~ label { // Required for `.form-control`s because of specificity\n color: var(--form-floating-label-disabled-color);\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n\n$input-group-addon-tokens: () !default;\n\n// scss-docs-start input-group-addon-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$input-group-addon-tokens: defaults(\n (\n --input-group-addon-padding-y: var(--btn-input-padding-y),\n --input-group-addon-padding-x: var(--btn-input-padding-x),\n --input-group-addon-font-size: var(--btn-input-font-size),\n --input-group-addon-line-height: var(--btn-input-line-height),\n --input-group-addon-color: var(--fg-body),\n --input-group-addon-bg: var(--bg-2),\n --input-group-addon-border-color: var(--border-color),\n ),\n $input-group-addon-tokens\n);\n// scss-docs-end input-group-addon-tokens\n\n// scss-docs-start input-group-sizes\n$input-group-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$input-group-sizes: defaults(\n (\"sm\", \"lg\"),\n $input-group-sizes\n);\n// scss-docs-end input-group-sizes\n\n@layer components {\n .input-group {\n @include tokens($input-group-addon-tokens);\n\n position: relative;\n display: flex;\n align-items: stretch;\n width: 100%;\n\n > .form-control,\n > .form-floating {\n position: relative; // For focus state's z-index\n flex: 1 1 auto;\n width: 1%;\n min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size\n }\n\n // Bring the \"active\" form control to the top of surrounding elements\n > .form-control:focus,\n > .form-floating:focus-within {\n z-index: 5;\n }\n\n // Ensure buttons are always above inputs for more visually pleasing borders.\n // This isn't needed for `.input-group-text` since it shares the same border-color\n // as our inputs.\n > .input-group-btn {\n position: relative;\n z-index: 2;\n\n &:focus {\n z-index: 5;\n }\n }\n }\n\n // Textual addons\n //\n // Serves as a catch-all element for any text or radio/checkbox input you wish\n // to prepend or append to an input.\n\n .input-group-text {\n display: flex;\n align-items: center;\n padding: var(--input-group-addon-padding-y) var(--input-group-addon-padding-x);\n font-size: var(--input-group-addon-font-size); // Match inputs\n // font-weight: $input-group-addon-font-weight;\n line-height: var(--input-group-addon-line-height);\n color: var(--input-group-addon-color);\n text-align: center;\n white-space: nowrap;\n background-color: var(--input-group-addon-bg);\n border: var(--border-width) solid var(--input-group-addon-border-color);\n @include border-radius(var(--btn-input-border-radius));\n }\n\n // Sizing\n //\n // Remix the default form control sizing classes into new ones for easier\n // manipulation.\n\n @each $size, $_ in $input-group-sizes {\n .input-group-#{$size} {\n > .form-control,\n > .input-group-text,\n > .btn {\n min-height: var(--btn-input-#{$size}-min-height);\n padding: var(--btn-input-#{$size}-padding-y) var(--btn-input-#{$size}-padding-x);\n font-size: var(--btn-input-#{$size}-font-size);\n @include border-radius(var(--btn-input-#{$size}-border-radius));\n }\n }\n }\n\n // Rounded corners\n //\n // These rulesets must come after the sizing ones to properly override sm and lg\n // border-radius values when extending. They're more specific than we'd like\n // with the `.input-group >` part, but without it, we cannot override the sizing.\n\n // stylelint-disable-next-line no-duplicate-selectors\n .input-group {\n > :not(:last-child, .menu-toggle-split, .menu, .input-group-ignore, .form-floating, :has(+ :is(.menu, .input-group-ignore):last-child)),\n > .menu-toggle-split:nth-last-child(n + 3),\n > .form-floating:not(:last-child) > .form-control,\n > .form-floating:not(:last-child) > .form-select {\n @include border-end-radius(0);\n }\n\n > :not(:first-child, .menu, .input-group-ignore) {\n margin-inline-start: calc(-1 * var(--border-width));\n @include border-start-radius(0);\n }\n\n > :first-child:is(.input-group-ignore) + :not(.menu, .input-group-ignore) {\n @include border-start-radius(var(--btn-input-border-radius));\n }\n\n > .form-floating:not(:first-child) > .form-control,\n > .form-floating:not(:first-child) > .form-select {\n @include border-start-radius(0);\n }\n }\n}\n","@use \"sass:list\";\n@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$strength-tokens: () !default;\n\n// scss-docs-start strength-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$strength-tokens: defaults(\n (\n --strength-height: .375rem,\n --strength-gap: .25rem,\n --strength-margin-top: .25rem,\n --strength-border-radius: var(--radius-pill),\n --strength-bg: var(--bg-2),\n --strength-color: var(--bg-2),\n --strength-weak-color: var(--danger-bg),\n --strength-fair-color: var(--warning-bg),\n --strength-good-color: var(--info-bg),\n --strength-strong-color: var(--success-bg),\n ),\n $strength-tokens\n);\n// scss-docs-end strength-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n// scss-docs-start strength-levels\n$strength-levels: weak, fair, good, strong !default;\n// scss-docs-end strength-levels\n\n$strength-transition: background-color .2s ease-in-out, width .3s ease-in-out !default;\n\n@layer forms {\n // Strength meter container\n .strength {\n @include tokens($strength-tokens);\n\n display: flex;\n gap: var(--strength-gap);\n width: 100%;\n margin-top: var(--strength-margin-top);\n }\n\n // Individual strength segments\n .strength-segment {\n flex: 1;\n height: var(--strength-height);\n background-color: var(--strength-bg);\n @include border-radius(var(--strength-border-radius));\n @include transition($strength-transition);\n\n // Filled state\n &.active {\n background-color: var(--strength-color);\n }\n }\n\n @each $level in $strength-levels {\n .strength[data-bs-strength=\"#{$level}\"] {\n --strength-color: var(--strength-#{$level}-color);\n }\n }\n // Optional text feedback\n .strength-text {\n display: block;\n margin-top: var(--strength-margin-top);\n font-size: var(--font-size-xs);\n color: var(--strength-color, var(--fg-3));\n @include transition(color .2s ease-in-out);\n\n // Hide when empty\n &:empty {\n display: none;\n }\n }\n\n // Alternative: Single bar variant (like a progress bar)\n .strength-bar {\n @include tokens($strength-tokens);\n\n --strength-color: transparent;\n --strength-width: 0%;\n\n width: 100%;\n height: var(--strength-height);\n margin-top: var(--strength-margin-top);\n overflow: hidden;\n background-color: var(--strength-bg);\n @include border-radius(var(--strength-border-radius));\n\n &::after {\n display: block;\n width: var(--strength-width);\n height: 100%;\n content: \"\";\n background-color: var(--strength-color);\n @include border-radius(var(--strength-border-radius));\n @include transition($strength-transition);\n }\n\n @each $level in $strength-levels {\n &[data-bs-strength=\"#{$level}\"] {\n --strength-color: var(--strength-#{$level}-color);\n --strength-width: #{list.index($strength-levels, $level) * 25%};\n }\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/tokens\" as *;\n\n$otp-tokens: () !default;\n\n// scss-docs-start otp-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$otp-tokens: defaults(\n (\n --otp-size: var(--btn-input-lg-min-height),\n --otp-font-size: var(--btn-input-font-size),\n --otp-gap: .5rem,\n ),\n $otp-tokens\n);\n// scss-docs-end otp-tokens\n\n// scss-docs-start otp-sizes\n$otp-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$otp-sizes: defaults(\n (\"sm\", \"lg\"),\n $otp-sizes\n);\n// scss-docs-end otp-sizes\n\n@layer components {\n .otp {\n @include tokens($otp-tokens);\n\n display: inline-flex;\n gap: var(--otp-gap);\n\n .form-control {\n width: var(--otp-size);\n min-height: var(--otp-size);\n padding: 0;\n font-size: var(--otp-font-size);\n font-weight: 500;\n line-height: 1;\n text-align: center;\n\n // Remove default number spinners\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n margin: 0;\n appearance: none;\n }\n\n &[type=\"number\"] {\n appearance: textfield;\n }\n\n &:focus,\n &:focus-visible {\n z-index: 1;\n }\n }\n }\n\n // When used with .input-group, disable the gap and prevent inputs from stretching\n .otp.input-group {\n gap: 0;\n width: auto; // Override input-group's width: 100%\n\n .form-control {\n flex: 0 0 auto; // Don't grow or shrink, use fixed width\n }\n }\n\n .otp-separator {\n display: flex;\n align-items: center;\n padding-inline: var(--otp-gap);\n font-size: var(--otp-font-size);\n color: var(--fg-4);\n user-select: none;\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n$form-adorn-tokens: () !default;\n\n// scss-docs-start form-adorn-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-adorn-tokens: defaults(\n (\n --form-adorn-gap: .375rem,\n --form-adorn-icon-size: 1rem,\n --form-adorn-icon-color: var(--fg-2),\n ),\n $form-adorn-tokens\n);\n// scss-docs-end form-adorn-tokens\n\n@layer forms {\n .form-adorn {\n @include tokens($form-adorn-tokens);\n\n gap: var(--form-adorn-gap);\n align-items: center;\n\n // Prevent default `.form-control` focus\n &:focus-visible {\n outline: 0;\n }\n\n &:focus-within {\n --focus-ring-offset: -1px;\n border-color: var(--focus-ring-color);\n @include focus-ring(true);\n }\n\n // Ghost input fills remaining space\n > .form-ghost {\n flex: 1;\n min-width: 0; // Prevent text overflow\n }\n\n &.form-adorn-end > .form-ghost {\n order: -1;\n }\n }\n\n .form-adorn-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n color: var(--form-adorn-icon-color);\n pointer-events: none;\n\n > svg {\n width: var(--form-adorn-icon-size);\n height: var(--form-adorn-icon-size);\n }\n }\n\n .form-adorn-text {\n flex-shrink: 0;\n color: var(--form-adorn-icon-color);\n pointer-events: none;\n user-select: none;\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n$chip-input-tokens: () !default;\n\n// scss-docs-start chip-input-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$chip-input-tokens: defaults(\n (\n --chip-input-padding-y: .75rem,\n --chip-input-padding-x: .75rem,\n --chip-input-gap: .375rem,\n --chip-input-ghost-min-width: 5rem,\n --control-fg: var(--btn-input-fg),\n --control-bg: var(--btn-input-bg),\n --control-border-width: var(--border-width),\n --control-border-color: var(--border-color),\n --control-border-radius: var(--radius-5),\n ),\n $chip-input-tokens\n);\n// scss-docs-end chip-input-tokens\n\n@layer forms {\n .chip-input {\n @include tokens($chip-input-tokens);\n\n // Flexbox wrapping layout\n display: flex;\n flex-wrap: wrap;\n gap: var(--chip-input-gap);\n align-items: center;\n padding: var(--chip-input-padding-y) var(--chip-input-padding-x);\n\n color: var(--control-fg);\n background-color: var(--control-bg);\n border: var(--control-border-width) solid var(--control-border-color);\n @include border-radius(var(--control-border-radius), 0);\n\n // Focus state when ghost input is focused\n &:focus-within {\n --focus-ring-offset: -1px;\n border-color: var(--focus-ring-color);\n @include focus-ring(true);\n }\n\n // Ghost input fills remaining space\n > .form-ghost {\n flex: 1 1 0;\n min-width: var(--chip-input-ghost-min-width);\n min-height: 1.75rem;\n }\n\n // Disabled state\n &.disabled,\n &:has(.form-ghost:disabled) {\n cursor: not-allowed;\n background-color: var(--bg-2);\n opacity: 1;\n\n &:focus-within {\n border-color: var(--control-border-color);\n outline: 0;\n }\n\n > .chip {\n pointer-events: none;\n opacity: var(--control-disabled-opacity);\n }\n }\n }\n}\n","@use \"../mixins/transition\" as *;\n\n@layer components {\n .combobox-toggle {\n display: inline-flex;\n gap: .5rem;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding-inline-end: var(--control-padding-x);\n text-align: start;\n cursor: pointer;\n\n &.show {\n background-color: var(--bg-1);\n }\n\n &:disabled,\n &.disabled {\n cursor: not-allowed;\n opacity: .65;\n }\n }\n\n .combobox-value {\n display: flex;\n flex: 1;\n gap: .5rem;\n align-items: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .combobox-placeholder {\n color: color-mix(in oklch, currentcolor 65%, transparent);\n }\n\n .combobox-caret {\n flex-shrink: 0;\n @include transition(transform .2s ease-in-out);\n\n .show > & {\n transform: rotate(180deg);\n }\n }\n\n .combobox-toggle + .menu {\n --menu-max-height: 300px;\n --menu-overflow-y: auto;\n }\n\n .combobox-search {\n position: sticky;\n top: 0;\n z-index: 1;\n padding: var(--menu-padding-x, .25rem);\n background-color: var(--menu-bg, var(--bg-body));\n }\n\n .combobox-search-input {\n width: 100%;\n }\n\n .combobox-no-results {\n padding: 1rem;\n font-size: var(--font-size-sm);\n color: var(--fg-3);\n text-align: center;\n }\n}\n","@use \"../mixins/border-radius\" as *;\n\n// scss-docs-start form-field\n@layer forms {\n .form-field {\n position: relative;\n display: grid;\n gap: .5rem;\n // width: 100%;\n\n > label,\n > .form-label {\n justify-self: start;\n margin-bottom: 0;\n }\n\n &:has(> .check, > .radio, > .switch) {\n grid-template-columns: auto 1fr;\n column-gap: .5rem;\n align-items: start;\n\n > .check,\n > .radio,\n > .switch {\n grid-column: 1;\n }\n\n > :not(.check, .radio, .switch) {\n grid-column: 2;\n }\n\n > .form-label {\n grid-column: 1 / -1;\n }\n }\n }\n\n .form-field-content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n\n .form-field-card {\n position: relative;\n padding: calc(var(--spacer) * .75);\n cursor: pointer;\n border: var(--border-width) solid transparent;\n @include border-radius(var(--radius-7));\n\n &:hover {\n background-color: var(--bg-1);\n }\n\n &:has(:checked) {\n background-color: var(--bg-1);\n border-color: var(--border-color);\n }\n\n label::before {\n position: absolute;\n inset: 0;\n content: \"\";\n }\n }\n\n .form-group {\n display: grid;\n gap: .5rem;\n\n > label,\n > .form-label,\n > legend {\n justify-self: start;\n margin-bottom: 0;\n }\n }\n}\n// scss-docs-end form-field\n","@use \"../config\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/form-validation\" as *;\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid.\n// Server-side: `.is-invalid` / `.is-valid` classes work globally.\n// Client-side: `:user-invalid` pseudo-class is scoped behind `[data-bs-validate]`.\n// `:user-valid` is scoped behind `[data-bs-validate~=\"valid\"]` so success styling is opt-in.\n// Custom states (e.g., \"warning\") use only `.is-*` classes.\n\n// scss-docs-start form-validation-states\n$validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$validation-states: defaults(\n (\n \"valid\": \"success\",\n \"invalid\": \"danger\",\n ),\n $validation-states\n);\n// scss-docs-end form-validation-states\n\n// scss-docs-start form-validation-state-mixin\n@mixin form-validation-state($state, $theme) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n font-size: var(--font-size-sm);\n color: var(--#{$theme}-fg);\n }\n\n // More specific to override base tooltip styles\n .tooltip.#{$state}-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n margin-top: .1rem;\n color: var(--#{$theme}-contrast);\n text-align: center;\n background-color: var(--#{$theme}-bg);\n opacity: 1;\n @include border-radius(var(--tooltip-border-radius));\n }\n\n // Generic sibling feedback display — works for .form-control, .form-range,\n // and any element where feedback is a direct sibling.\n @include form-validation-state-selector($state) {\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n\n // Form control\n .form-control {\n @include form-validation-state-selector($state) {\n --control-border-color: var(--#{$theme}-border);\n\n &:focus-visible {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n --control-border-color: var(--#{$theme}-border);\n }\n }\n }\n\n // Checkbox — control-level styling (border, checked bg, focus ring).\n .check input {\n @include form-validation-state-selector($state) {\n --check-border-color: var(--#{$theme}-border);\n --check-checked-bg: var(--#{$theme}-bg);\n --check-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-visible {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n }\n\n // Checkbox — label color and feedback display via .form-field:has().\n .form-field:has(.check input.is-#{$state}) {\n label { color: var(--#{$theme}-fg); }\n\n .#{$state}-feedback,\n .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-field:has(.check input:user-invalid) {\n label { color: var(--#{$theme}-fg); }\n\n .invalid-feedback,\n .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-field:has(.check input:user-valid) {\n label { color: var(--#{$theme}-fg); }\n\n .valid-feedback,\n .valid-tooltip { display: block; }\n }\n }\n\n // Radio — control-level styling.\n .radio {\n @include form-validation-state-selector($state) {\n --radio-border-color: var(--#{$theme}-border);\n --radio-checked-bg: var(--#{$theme}-bg);\n --radio-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-visible {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n }\n\n // Radio — label color and feedback display via .form-field:has().\n .form-field:has(.radio.is-#{$state}) {\n label { color: var(--#{$theme}-fg); }\n\n .#{$state}-feedback,\n .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-field:has(.radio:user-invalid) {\n label { color: var(--#{$theme}-fg); }\n\n .invalid-feedback,\n .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-field:has(.radio:user-valid) {\n label { color: var(--#{$theme}-fg); }\n\n .valid-feedback,\n .valid-tooltip { display: block; }\n }\n }\n\n // Switch — control-level styling. The input is an invisible overlay;\n // all visuals are on the .switch wrapper.\n .switch:has(input.is-#{$state}) {\n --switch-border-color: var(--#{$theme}-border);\n --switch-checked-bg: var(--#{$theme}-bg);\n --switch-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .switch:has(input:user-invalid) {\n --switch-border-color: var(--#{$theme}-border);\n --switch-checked-bg: var(--#{$theme}-bg);\n --switch-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .switch:has(input:user-valid) {\n --switch-border-color: var(--#{$theme}-border);\n --switch-checked-bg: var(--#{$theme}-bg);\n --switch-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n }\n\n // Switch — label color and feedback display via .form-field:has().\n .form-field:has(.switch input.is-#{$state}) {\n label { color: var(--#{$theme}-fg); }\n\n .#{$state}-feedback,\n .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-field:has(.switch input:user-invalid) {\n label { color: var(--#{$theme}-fg); }\n\n .invalid-feedback,\n .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-field:has(.switch input:user-valid) {\n label { color: var(--#{$theme}-fg); }\n\n .valid-feedback,\n .valid-tooltip { display: block; }\n }\n }\n\n // Chip input — wrapper has the visible border; the .form-ghost inside\n // receives the native pseudo-class.\n .chip-input:has(.form-ghost.is-#{$state}) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .invalid-feedback,\n ~ .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .chip-input:has(.form-ghost:user-valid) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .valid-feedback,\n ~ .valid-tooltip { display: block; }\n }\n }\n\n // Form adorn — :user-invalid fires on the inner .form-ghost, so we\n // propagate it to the visible wrapper with :has().\n .form-adorn:has(.form-ghost.is-#{$state}) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .invalid-feedback,\n ~ .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-adorn:has(.form-ghost:user-valid) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .valid-feedback,\n ~ .valid-tooltip { display: block; }\n }\n }\n\n // Range — .form-range IS the <input>, so the mixin applies directly.\n .form-range {\n @include form-validation-state-selector($state) {\n &::-webkit-slider-thumb { background: var(--#{$theme}-bg); }\n &::-moz-range-thumb { background: var(--#{$theme}-bg); }\n\n &:focus-visible {\n &::-webkit-slider-thumb {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n &::-moz-range-thumb {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip { display: block; }\n }\n }\n\n // Input group — feedback lives outside the input-group in the parent\n // .form-field, so we use :has() to toggle display.\n .form-field:has(.input-group .form-control.is-#{$state}) {\n .#{$state}-feedback,\n .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-field:has(.input-group .form-control:user-invalid) {\n .invalid-feedback,\n .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-field:has(.input-group .form-control:user-valid) {\n .valid-feedback,\n .valid-tooltip { display: block; }\n }\n }\n\n .input-group {\n > .form-control:not(:focus),\n > .form-floating:not(:focus-within) {\n @include form-validation-state-selector($state) {\n @if $state == \"valid\" {\n z-index: 3;\n } @else if $state == \"invalid\" {\n z-index: 4;\n }\n }\n }\n }\n\n // OTP — validation applies to the wrapper; inner .form-control inherits.\n .otp {\n @include form-validation-state-selector($state) {\n .form-control {\n --control-border-color: var(--#{$theme}-border);\n }\n\n .form-control:focus {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n --control-border-color: var(--#{$theme}-border);\n }\n }\n }\n}\n// scss-docs-end form-validation-state-mixin\n\n@layer components {\n // scss-docs-start form-validation-states-loop\n @each $state, $theme in $validation-states {\n @include form-validation-state($state, $theme);\n }\n // scss-docs-end form-validation-states-loop\n}\n","// scss-docs-start form-validation-state-selector\n@mixin form-validation-state-selector($state) {\n @if & {\n &.is-#{$state} {\n @content;\n }\n\n @if $state == \"invalid\" {\n @at-root [data-bs-validate] #{&}:user-invalid {\n @content;\n }\n } @else if $state == \"valid\" {\n @at-root [data-bs-validate~=\"valid\"] #{&}:user-valid {\n @content;\n }\n }\n } @else {\n .is-#{$state} {\n @content;\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] :user-invalid {\n @content;\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] :user-valid {\n @content;\n }\n }\n }\n}\n// scss-docs-end form-validation-state-selector\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"sass:string\";\n@use \"../config\" as *;\n@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/box-shadow\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function, scss/dollar-variable-default\n\n$button-tokens: () !default;\n\n// scss-docs-start btn-tokens\n$button-tokens: defaults(\n (\n --btn-min-height: var(--btn-input-min-height),\n --btn-padding-x: var(--btn-input-padding-x),\n --btn-padding-y: var(--btn-input-padding-y),\n --btn-font-size: var(--btn-input-font-size),\n --btn-font-weight: var(--btn-input-font-weight),\n --btn-line-height: var(--btn-input-line-height),\n --btn-color: var(--fg-body),\n --btn-white-space: nowrap,\n --btn-border-width: var(--border-width),\n --btn-border-color: transparent,\n --btn-border-radius: var(--radius-5),\n --btn-hover-border-color: transparent,\n --btn-disabled-opacity: .65,\n --btn-transition-timing: .15s ease-in-out,\n --btn-transition-property: \"color, background-color, border-color, box-shadow\",\n --btn-transition: var(--btn-transition-property) var(--btn-transition-timing),\n ),\n $button-tokens\n);\n// scss-docs-end btn-tokens\n\n$button-link-tokens: () !default;\n\n// scss-docs-start button-link-tokens\n$button-link-tokens: defaults(\n (\n --btn-font-weight: var(--font-weight-normal),\n --btn-color: var(--link-color),\n --btn-bg: transparent,\n --btn-border-color: transparent,\n --btn-hover-color: var(--link-hover-color),\n --btn-hover-bg: transparent,\n --btn-hover-border-color: transparent,\n --btn-active-color: var(--link-hover-color),\n --btn-active-bg: transparent,\n --btn-active-border-color: transparent,\n --btn-disabled-color: var(--fg-3),\n --btn-disabled-border-color: transparent,\n ),\n $button-link-tokens\n);\n// scss-docs-end button-link-tokens\n\n$button-styled-tokens: () !default;\n\n// scss-docs-start button-styled-tokens\n$button-styled-tokens: defaults(\n (\n --btn-gradient-start: rgb(255 255 255 / 12.5%),\n --btn-gradient-end: rgb(0 0 0 / 7.5%) ,\n --btn-border-mix-color: #000,\n --btn-border-mix-amount: 10%,\n --btn-border-hover-mix-amount: 12.5%,\n --btn-border-active-mix-amount: 20%,\n --btn-shadow: \"0 1px 2px rgb(0 0 0 / 15%), inset 0 1px 0 rgb(255 255 255 / 10%)\",\n --btn-active-shadow: inset 0 2px 4px rgb(0 0 0 / .15) ,\n ),\n $button-styled-tokens\n);\n// scss-docs-end button-styled-tokens\n\n// scss-docs-start button-sizes\n$button-sizes: () !default;\n$button-sizes: defaults(\n (\"xs\", \"sm\", \"lg\"),\n $button-sizes\n);\n// scss-docs-end button-sizes\n\n$button-variants: () !default;\n\n// scss-docs-start btn-variants\n$button-variants: defaults(\n (\n \"solid\": (\n \"base\": (\n \"bg\": \"bg\",\n \"color\": \"contrast\",\n \"border-color\": \"bg\"\n ),\n \"hover\": (\n \"bg\": \"bg\",\n \"border-color\": \"bg\",\n \"color\": \"contrast\"\n ),\n \"active\": (\n \"bg\": \"bg\",\n \"border-color\": \"bg\",\n \"color\": \"contrast\"\n )\n ),\n \"outline\": (\n \"base\": (\n \"bg\": \"transparent\",\n \"color\": \"fg\",\n \"border-color\": \"border\"\n ),\n \"hover\": (\n \"bg\": \"bg\",\n \"color\": \"contrast\",\n \"border-color\": \"bg\"\n ),\n \"active\": (\n \"bg\": \"bg\",\n \"color\": \"contrast\",\n \"border-color\": \"bg\"\n )\n ),\n \"subtle\": (\n \"base\": (\n \"bg\": \"bg-subtle\",\n \"color\": \"fg\",\n \"border-color\": \"transparent\"\n ),\n \"hover\": (\n \"bg\": (\"bg-muted\", \"bg-subtle\"),\n \"color\": \"fg-emphasis\"\n ),\n \"active\": (\n \"bg\": \"bg-subtle\",\n \"color\": \"fg-emphasis\"\n )\n ),\n \"text\": (\n \"base\": (\n \"color\": \"fg\",\n \"bg\": \"transparent\",\n \"border-color\": \"transparent\"\n ),\n \"hover\": (\n \"color\": \"fg\",\n \"bg\": \"bg-subtle\"\n ),\n \"active\": (\n \"color\": \"fg\",\n \"bg\": \"bg-subtle\"\n )\n )\n ),\n $button-variants\n);\n// scss-docs-end btn-variants\n// stylelint-enable custom-property-no-missing-var-function, scss/dollar-variable-default\n\n//\n// Base styles\n//\n\n// scss-docs-start btn-variant-selectors\n$btn-variant-selectors: (string.unquote(\".btn\"), string.unquote(\".btn-link\"), string.unquote(\".btn-icon\")) !default;\n@each $variant, $config in $button-variants {\n $btn-variant-selectors: list.append($btn-variant-selectors, string.unquote(\".btn-#{$variant}\"), comma);\n}\n// scss-docs-end btn-variant-selectors\n\n@layer components {\n #{$btn-variant-selectors} {\n @include tokens($button-tokens);\n\n display: inline-flex;\n gap: var(--btn-gap, .25rem);\n align-items: center;\n justify-content: center;\n min-height: var(--btn-min-height);\n padding: var(--btn-padding-y) var(--btn-padding-x);\n // font-family: var(--btn-font-family);\n font-size: var(--btn-font-size);\n font-weight: var(--btn-font-weight);\n line-height: var(--btn-line-height);\n color: var(--btn-color);\n text-decoration: none;\n white-space: var(--btn-white-space);\n vertical-align: middle;\n // stylelint-disable-next-line scss/at-function-named-arguments\n cursor: if(sass($enable-button-pointers): pointer; else: null);\n user-select: none;\n background-color: var(--btn-bg, var(--bg-2));\n border: var(--btn-border-width) solid var(--btn-border-color);\n @include border-radius(var(--btn-border-radius));\n @include transition(var(--btn-transition));\n\n &:hover {\n color: var(--btn-hover-color);\n background-color: var(--btn-hover-bg, var(--bg-3));\n border-color: var(--btn-hover-border-color);\n }\n\n &:focus-visible {\n @include focus-ring(true);\n --focus-ring-offset: 1px;\n }\n\n &.active,\n &.show {\n color: var(--btn-active-color);\n background-color: var(--btn-active-bg, var(--bg-3));\n border-color: var(--btn-active-border-color);\n\n &:focus-visible {\n @include focus-ring(true);\n }\n }\n\n &:disabled,\n &.disabled,\n fieldset:disabled & {\n color: var(--btn-disabled-color);\n pointer-events: none;\n background-color: var(--btn-disabled-bg, var(--bg-1));\n // stylelint-disable-next-line scss/at-function-named-arguments\n background-image: if(sass($enable-gradients): none; else: null);\n border-color: var(--btn-disabled-border-color);\n opacity: var(--btn-disabled-opacity);\n }\n }\n\n // Main button style generator mixin\n // Generate button variant classes (e.g., .btn-solid, .btn-outline, etc.)\n // scss-docs-start btn-variant-mixin\n @each $variant, $config in $button-variants {\n .btn-#{$variant} {\n @each $property, $value in map.get($button-variants, $variant, \"base\") {\n @if $value == \"transparent\" {\n --btn-#{$property}: transparent;\n } @else {\n --btn-#{$property}: var(--theme-#{$value});\n }\n }\n\n @each $property, $value in map.get($button-variants, $variant, \"active\") {\n @if $value == \"transparent\" {\n --btn-active-#{$property}: transparent;\n } @else if $value == \"bg-subtle\" {\n --btn-active-#{$property}: var(--theme-#{$value});\n } @else {\n --btn-active-#{$property}: oklch(from var(--theme-#{$value}) calc(l * .9) calc(c * 1.15) h);\n }\n }\n @each $property, $value in map.get($button-variants, $variant, \"base\") {\n @if $value == \"transparent\" {\n --btn-disabled-#{$property}: transparent;\n } @else {\n --btn-disabled-#{$property}: var(--theme-#{$value});\n }\n }\n\n &:hover {\n @each $property, $value in map.get($button-variants, $variant, \"hover\") {\n @if $value == \"transparent\" {\n --btn-hover-#{$property}: transparent;\n } @else if meta.type-of($value) == \"list\" {\n $first-value: list.nth($value, 1);\n $second-value: list.nth($value, 2);\n --btn-hover-#{$property}: color-mix(in oklch, var(--theme-#{$first-value}) 50%, var(--theme-#{$second-value}));\n } @else if $value == \"bg-subtle\" {\n --btn-hover-#{$property}: var(--theme-#{$value});\n } @else {\n --btn-hover-#{$property}: oklch(from var(--theme-#{$value}) calc(l * .95) calc(c * 1.1) h);\n }\n }\n }\n\n &:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n\n &:active,\n &.active,\n &.btn-check:has(input:checked) {\n @each $property, $value in map.get($button-variants, $variant, \"active\") {\n @if $value == \"transparent\" {\n --btn-active-#{$property}: transparent;\n } @else if $value == \"bg-subtle\" {\n --btn-active-#{$property}: var(--theme-#{$value});\n } @else {\n --btn-active-#{$property}: oklch(from var(--theme-#{$value}) calc(l * .9) calc(c * 1.15) h);\n }\n }\n }\n\n // Disabled state for toggle buttons\n &:disabled,\n &.disabled,\n &.btn-check:has(input:disabled) {\n @each $property, $value in map.get($button-variants, $variant, \"base\") {\n @if $value == \"transparent\" {\n --btn-disabled-#{$property}: transparent;\n } @else {\n --btn-disabled-#{$property}: var(--theme-#{$value});\n }\n }\n }\n }\n }\n // scss-docs-end btn-variant-mixin\n\n //\n // Link buttons\n //\n\n // Make a button look and behave like a link\n .btn-link {\n @include tokens($button-link-tokens);\n\n color: var(--theme-fg, var(--btn-color));\n text-decoration: var(--link-decoration);\n\n @if $enable-gradients {\n background-image: none;\n }\n\n &:focus-visible {\n color: var(--theme-fg, var(--btn-color));\n }\n\n &:hover {\n color: var(--theme-fg-emphasis, var(--btn-hover-color));\n }\n\n // No need for an active state here\n }\n\n //\n // Button Sizes\n //\n\n // Generate button size classes from the $button-sizes map\n // Skip \"md\" as it's the default size for .btn\n\n // scss-docs-start btn-sizes-loop\n @each $size, $_ in $button-sizes {\n .btn-#{$size},\n .btn-group-#{$size} > [class*=\"btn-\"] {\n --btn-min-height: var(--btn-input-#{$size}-min-height);\n --btn-padding-y: var(--btn-input-#{$size}-padding-y);\n --btn-padding-x: var(--btn-input-#{$size}-padding-x);\n --btn-font-size: var(--btn-input-#{$size}-font-size);\n --btn-line-height: var(--btn-input-#{$size}-line-height);\n --btn-border-radius: var(--btn-input-#{$size}-border-radius);\n }\n }\n // scss-docs-end btn-sizes-loop\n\n .btn-icon {\n align-items: center;\n justify-content: center;\n aspect-ratio: 1;\n padding: 0;\n }\n\n //\n // Toggle buttons (.btn-check)\n //\n // Checkbox and radio inputs that look like buttons. Add .btn-check to a\n // label with button classes, with the input nested inside.\n //\n // Example: <label class=\"btn-check btn-solid theme-primary\"><input type=\"checkbox\">Toggle</label>\n\n .btn-check {\n > input {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n\n &:has(input:checked) {\n color: var(--btn-active-color);\n background-color: var(--btn-active-bg, var(--bg-3));\n // stylelint-disable-next-line scss/at-function-named-arguments\n background-image: if(sass($enable-gradients): none; else: null);\n border-color: var(--btn-active-border-color);\n @include box-shadow(var(--btn-active-shadow));\n }\n\n &:has(input:focus-visible) {\n @include focus-ring(true);\n --focus-ring-offset: 1px;\n }\n\n &:has(input:disabled) {\n color: var(--btn-disabled-color);\n pointer-events: none;\n background-color: var(--btn-disabled-bg, var(--bg-1));\n // stylelint-disable-next-line scss/at-function-named-arguments\n background-image: if(sass($enable-gradients): none; else: null);\n border-color: var(--btn-disabled-border-color);\n opacity: var(--btn-disabled-opacity);\n @include box-shadow(none);\n }\n }\n\n //\n // Styled buttons\n //\n // Add visual depth with gradients and shadows. Customize via CSS variables.\n\n .btn-styled {\n @include tokens($button-styled-tokens);\n\n background-image:\n linear-gradient(\n to bottom,\n var(--btn-gradient-start),\n var(--btn-gradient-end)\n );\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-mix-amount));\n box-shadow: var(--btn-shadow);\n\n &:hover {\n background-image:\n linear-gradient(\n to bottom,\n var(--btn-gradient-start),\n var(--btn-gradient-end)\n );\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-hover-mix-amount));\n }\n\n &:active,\n &.active {\n background-image: none;\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-active-mix-amount));\n box-shadow: var(--btn-active-shadow);\n }\n\n &:disabled,\n &.disabled {\n background-image: none;\n box-shadow: none;\n }\n }\n}\n","@use \"../mixins/border-radius\" as *;\n\n@layer components {\n // Make the div behave like a button\n .btn-group,\n .btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; // match .btn alignment given font-size hack above\n\n > [class*=\"btn-\"] {\n position: relative;\n flex: 1 1 auto;\n\n &:hover {\n z-index: 1;\n }\n }\n\n > .btn-check:has(input:checked),\n > [class*=\"btn-\"]:active,\n > [class*=\"btn-\"].active {\n z-index: 2;\n }\n\n > .btn-check:has(input:focus),\n > [class*=\"btn-\"]:focus {\n z-index: 3;\n }\n }\n\n .btn-group-divider {\n > [class*=\"btn-\"] + [class*=\"btn-\"] {\n &::before {\n position: absolute;\n // top: 25%;\n // bottom: 25%;\n // left: calc(var(--btn-border-width) * -1);\n z-index: 3;\n // width: var(--btn-border-width);\n content: \"\";\n background-color: var(--btn-color);\n opacity: .25;\n }\n }\n }\n\n .btn-group:where(.btn-group-divider) {\n > [class*=\"btn-\"] + [class*=\"btn-\"] {\n &::before {\n top: 25%;\n bottom: 25%;\n left: calc(var(--btn-border-width) * -1);\n width: var(--btn-border-width);\n }\n }\n }\n\n .btn-group-vertical:where(.btn-group-divider) {\n > [class*=\"btn-\"] + [class*=\"btn-\"] {\n &::before {\n top: calc(var(--btn-border-width) * -1);\n right: var(--btn-padding-x);\n left: var(--btn-padding-x);\n height: var(--btn-border-width);\n }\n }\n }\n\n // Optional: Group multiple button groups together for a toolbar\n .btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: .5rem;\n justify-content: flex-start;\n\n .input-group {\n width: auto;\n }\n }\n\n .btn-group {\n @include border-radius(var(--btn-border-radius));\n\n // Prevent double borders when buttons are next to each other\n > [class*=\"btn-\"]:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-inline-start: calc(-1 * var(--btn-border-width));\n }\n\n // Reset rounded corners\n > [class*=\"btn-\"]:not(:last-child, :has(+ .menu)),\n > .btn-group:not(:last-child) > [class*=\"btn-\"] {\n @include border-end-radius(0);\n }\n\n // The left radius should be 0 if the button is not the first child\n > [class*=\"btn-\"]:not(:first-child),\n > .btn-group:not(:first-child) > [class*=\"btn-\"] {\n @include border-start-radius(0);\n }\n }\n\n //\n // Vertical button groups\n //\n\n .btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n > [class*=\"btn-\"],\n > .btn-group {\n width: 100%;\n }\n\n > [class*=\"btn-\"]:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-top: calc(-1 * var(--btn-border-width));\n }\n\n // Reset rounded corners\n > [class*=\"btn-\"]:not(:last-child, :has(+ .menu)),\n > .btn-group:not(:last-child) > [class*=\"btn-\"] {\n @include border-bottom-radius(0);\n }\n\n // The top radius should be 0 if the button is not the first child\n > [class*=\"btn-\"]:not(:first-child),\n > .btn-group:not(:first-child) > [class*=\"btn-\"] {\n @include border-top-radius(0);\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n$btn-close-tokens: () !default;\n\n// scss-docs-start btn-close-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$btn-close-tokens: defaults(\n (\n --btn-close-size: 1.25rem,\n --btn-close-color: inherit,\n --btn-close-opacity: .5,\n --btn-close-hover-opacity: .75,\n --btn-close-focus-opacity: .85,\n --btn-close-disabled-opacity: .25,\n ),\n $btn-close-tokens\n);\n// scss-docs-end btn-close-tokens\n\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n@layer components {\n .btn-close {\n @include tokens($btn-close-tokens);\n\n box-sizing: content-box;\n width: var(--btn-close-size);\n height: var(--btn-close-size);\n padding: 0;\n color: var(--btn-close-color);\n background: transparent; // for button elements\n border: 0; // for button elements\n @include border-radius(var(--radius-5));\n opacity: var(--btn-close-opacity);\n\n > svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: currentcolor;\n }\n\n // Override <a>'s hover style\n &:hover {\n color: var(--btn-close-color);\n text-decoration: none;\n opacity: var(--btn-close-hover-opacity);\n }\n\n &:focus-visible {\n opacity: var(--btn-close-focus-opacity);\n @include focus-ring();\n }\n\n &:disabled,\n &.disabled {\n pointer-events: none;\n user-select: none;\n opacity: var(--btn-close-disabled-opacity);\n }\n }\n}\n","@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/tokens\" as *;\n\n$accordion-tokens: () !default;\n\n// scss-docs-start accordion-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$accordion-tokens: defaults(\n (\n --accordion-padding-x: 1.25rem,\n --accordion-padding-y: 1rem,\n --accordion-color: var(--fg-body),\n --accordion-bg: var(--bg-body),\n --accordion-transition-property: \"color, background-color, border-radius\",\n --accordion-transition-timing: \".15s ease-in-out\",\n --accordion-transition: var(--accordion-transition-property) var(--accordion-timing),\n --accordion-border-color: var(--border-color),\n --accordion-border-width: var(--border-width),\n --accordion-border-radius: var(--accordion-radius, var(--radius-7)),\n --accordion-btn-color: var(--fg-2),\n --accordion-btn-bg: var(--bg-body),\n --accordion-btn-icon-width: 1rem,\n --accordion-btn-icon-transform: rotate(-180deg),\n --accordion-btn-icon-transition: transform .2s ease-in-out,\n --accordion-active-color: var(--fg),\n --accordion-active-bg: var(--bg-2),\n ),\n $accordion-tokens\n);\n// scss-docs-end accordion-tokens\n\n@layer components {\n .accordion {\n @include tokens($accordion-tokens);\n }\n\n .accordion-header {\n display: flex;\n align-items: center;\n width: 100%;\n padding: var(--accordion-btn-padding-y, var(--accordion-padding-y)) var(--accordion-btn-padding-x, var(--accordion-padding-x));\n font-size: var(--accordion-font-size, var(--font-size-base));\n color: var(--accordion-btn-color);\n text-align: start;\n list-style: none; // Remove default marker\n cursor: pointer;\n background-color: var(--accordion-btn-bg);\n @include transition(var(--accordion-transition));\n\n &::-webkit-details-marker {\n display: none;\n }\n\n .accordion-icon {\n flex-shrink: 0;\n width: var(--accordion-btn-icon-width);\n height: var(--accordion-btn-icon-width);\n margin-inline-start: auto;\n color: currentcolor;\n @include transition(var(--accordion-btn-icon-transition));\n }\n\n &:hover {\n z-index: 2;\n }\n\n &:focus-visible {\n position: relative;\n z-index: 3;\n @include focus-ring(true);\n outline-offset: -1px;\n }\n }\n\n .accordion-item {\n color: var(--accordion-color);\n background-color: var(--accordion-bg);\n border: var(--accordion-border-width) solid var(--accordion-border-color);\n\n &:first-of-type {\n @include border-top-radius(var(--accordion-border-radius));\n\n > .accordion-header {\n @include border-top-radius(calc(var(--accordion-border-radius) - var(--accordion-border-width)));\n }\n }\n\n &:not(:first-of-type) {\n border-block-start: 0;\n }\n\n // Only set a border-radius on the last item if the accordion is collapsed\n &:last-of-type {\n @include border-bottom-radius(var(--accordion-border-radius));\n\n > .accordion-header {\n @include border-bottom-radius(calc(var(--accordion-border-radius) - var(--accordion-border-width)));\n }\n\n > .accordion-body {\n @include border-bottom-radius(var(--accordion-border-radius));\n }\n }\n\n // Open state - details[open] applies these styles\n &[open] {\n border-color: var(--theme-border, var(--accordion-border-color));\n\n > .accordion-header {\n color: var(--theme-fg, var(--accordion-active-color));\n background-color: var(--theme-bg-subtle, var(--accordion-active-bg));\n box-shadow: inset 0 calc(-1 * var(--accordion-border-width)) 0 var(--theme-border, var(--accordion-border-color));\n\n .accordion-icon {\n transform: var(--accordion-btn-icon-transform);\n }\n }\n\n // Remove bottom radius from header when open (even on last item)\n &:last-of-type > .accordion-header {\n @include border-bottom-radius(0);\n }\n }\n }\n\n .accordion-body {\n padding: var(--accordion-body-padding-y, var(--accordion-padding-y)) var(--accordion-body-padding-x, var(--accordion-padding-x));\n }\n\n\n // Flush accordion items\n //\n // Remove borders and border-radius to keep accordion items edge-to-edge.\n\n .accordion-flush {\n > .accordion-item {\n border-inline: 0;\n @include border-radius(0);\n\n &:first-child {\n border-block-start: 0;\n }\n\n &:last-child {\n border-block-end: 0;\n }\n\n > .accordion-header,\n > .accordion-body {\n @include border-radius(0);\n }\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/tokens\" as *;\n\n$alert-tokens: () !default;\n\n// scss-docs-start alert-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$alert-tokens: defaults(\n (\n --alert-gap: var(--spacer-3),\n --alert-bg: var(--theme-bg-subtle, var(--bg-1)),\n --alert-padding-x: var(--spacer),\n --alert-padding-y: var(--spacer),\n --alert-color: var(--theme-fg, inherit),\n --alert-border-color: var(--theme-border, var(--border-color)),\n --alert-border: var(--border-width) solid var(--alert-border-color),\n --alert-border-radius: var(--radius-5),\n --alert-link-color: inherit,\n --hr-border-color: var(--theme-border, var(--border-color)),\n ),\n $alert-tokens\n);\n// scss-docs-end alert-tokens\n\n@layer components {\n .alert {\n @include tokens($alert-tokens);\n\n display: flex;\n gap: var(--alert-gap);\n align-items: start;\n padding: var(--alert-padding-y) var(--alert-padding-x);\n color: var(--alert-color);\n background-color: var(--alert-bg);\n border: var(--alert-border);\n @include border-radius(var(--alert-border-radius));\n }\n\n .alert > p {\n margin-bottom: 0;\n }\n\n .alert-heading {\n // Specified to prevent conflicts of changing $headings-color\n color: inherit;\n }\n\n // Provide class for links that match alerts\n .alert-link {\n font-weight: var(--font-weight-semibold);\n color: var(--alert-link-color);\n }\n}\n","@use \"sass:map\";\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/tokens\" as *;\n\n$avatar-tokens: () !default;\n\n// stylelint-disable custom-property-no-missing-var-function\n// scss-docs-start avatar-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$avatar-tokens: defaults(\n (\n --avatar-size: 2.5rem,\n --avatar-border-radius: 50%,\n --avatar-border-width: 2px,\n --avatar-border-color: var(--bg-body),\n --avatar-bg: var(--bg-2),\n --avatar-color: var(--fg-body),\n // --avatar-font-weight: var(--font-weight-medium), // Defaults to fallback\n --avatar-status-size: .75rem,\n --avatar-status-border-width: 2px,\n --avatar-status-border-color: var(--bg-body),\n --avatar-stack-spacing: -.3,\n --avatar-stack-transition: \"transform .2s ease-in-out\",\n ),\n $avatar-tokens\n);\n// scss-docs-end avatar-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n// scss-docs-start avatar-sizes\n$avatar-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$avatar-sizes: defaults(\n (\n \"xs\": (\n size: 1.5rem,\n status-size: .625rem,\n ),\n \"sm\": (\n size: 2rem,\n ),\n \"lg\": (\n size: 3rem,\n status-size: 1rem,\n ),\n \"xl\": (\n size: 4rem,\n status-size: 1.25rem,\n ),\n ),\n $avatar-sizes\n);\n// scss-docs-end avatar-sizes\n\n@layer components {\n .avatar {\n @include tokens($avatar-tokens);\n\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--avatar-size);\n height: var(--avatar-size);\n font-size: calc(var(--avatar-size) * .4);\n font-weight: var(--avatar-font-weight, var(--font-weight-medium));\n line-height: 1;\n color: var(--theme-contrast, var(--avatar-color));\n text-transform: uppercase;\n vertical-align: middle;\n background-color: var(--theme-bg, var(--avatar-bg));\n @include border-radius(var(--avatar-border-radius));\n }\n\n .avatar-subtle {\n color: var(--theme-fg, var(--avatar-color));\n background-color: var(--theme-bg-subtle, var(--avatar-bg));\n }\n\n .avatar-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n @include border-radius(inherit);\n }\n\n .avatar-status {\n position: absolute;\n right: calc(var(--avatar-status-border-width) * -1);\n bottom: calc(var(--avatar-status-border-width) * -1);\n width: var(--avatar-status-size);\n height: var(--avatar-status-size);\n background-color: var(--gray-400);\n border: var(--avatar-status-border-width) solid var(--avatar-status-border-color);\n @include border-radius(50%);\n\n &.status-online {\n background-color: var(--green-500);\n }\n\n &.status-offline {\n background-color: var(--gray-400);\n @include border-radius(20%);\n }\n\n &.status-busy {\n background-color: var(--red-500);\n @include border-radius(20%);\n }\n\n &.status-away {\n background-color: var(--yellow-500);\n }\n }\n\n .avatar-stack {\n display: inline-flex;\n flex-direction: row-reverse;\n\n .avatar {\n // Stack spacing is calculated as a percentage of avatar size\n margin-left: calc(var(--avatar-size) * var(--avatar-stack-spacing));\n border: var(--avatar-border-width) solid var(--avatar-border-color);\n mask-image: none;\n @include transition(var(--avatar-stack-transition));\n\n &:last-child {\n margin-left: 0;\n }\n\n &:hover {\n z-index: 1;\n transform: translateY(-2px);\n }\n }\n }\n\n @each $size, $tokens in $avatar-sizes {\n .avatar-#{$size},\n .avatar-stack-#{$size} {\n --avatar-size: #{map.get($tokens, size)};\n\n @if map.has-key($tokens, status-size) {\n --avatar-status-size: #{map.get($tokens, status-size)};\n }\n }\n }\n}\n","@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/tokens\" as *;\n\n$badge-tokens: () !default;\n\n// scss-docs-start badge-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$badge-tokens: defaults(\n (\n --badge-padding-x: .625em,\n --badge-padding-y: .25em,\n --badge-font-size: clamp(12px, .75em, .75em),\n --badge-font-weight: var(--font-weight-semibold),\n --badge-color: inherit,\n --badge-bg: var(--bg-2),\n --badge-border-width: var(--border-width),\n --badge-border-color: transparent,\n --badge-border-radius: var(--radius-7),\n ),\n $badge-tokens\n);\n// scss-docs-end badge-tokens\n\n// scss-docs-start badge-variants\n$badge-variants: (\n \"subtle\": (\n \"color\": \"fg\",\n \"bg\": \"bg-subtle\",\n \"border-color\": \"transparent\"\n ),\n \"outline\": (\n \"color\": \"fg\",\n \"bg\": \"transparent\",\n \"border-color\": \"border\"\n )\n) !default;\n// scss-docs-end badge-variants\n\n@layer components {\n .badge {\n @include tokens($badge-tokens);\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 1.375rem;\n padding: var(--badge-padding-y) var(--badge-padding-x);\n font-size: var(--badge-font-size);\n font-weight: var(--badge-font-weight);\n line-height: 1;\n color: var(--theme-contrast, var(--badge-color));\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n background-color: var(--theme-bg, var(--badge-bg));\n border: var(--badge-border-width) solid var(--badge-border-color);\n @include border-radius(var(--badge-border-radius));\n // @include gradient-bg();\n\n // Empty badges collapse automatically\n &:empty {\n display: none;\n }\n }\n\n // Quick fix for badges in buttons\n .btn .badge {\n position: relative;\n top: -1px;\n }\n\n // scss-docs-start badge-variant-loop\n @each $variant, $properties in $badge-variants {\n .badge-#{$variant} {\n @each $property, $value in $properties {\n @if $value == \"transparent\" {\n --badge-#{$property}: transparent;\n } @else {\n --badge-#{$property}: var(--theme-#{$value});\n }\n }\n\n color: var(--badge-color);\n background-color: var(--badge-bg);\n border-color: var(--badge-border-color);\n }\n }\n // scss-docs-end badge-variant-loop\n}\n","@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/tokens\" as *;\n\n$breadcrumb-tokens: () !default;\n\n// scss-docs-start breadcrumb-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$breadcrumb-tokens: defaults(\n (\n --breadcrumb-margin-bottom: 1rem,\n --breadcrumb-font-size: inherit,\n --breadcrumb-bg: transparent,\n --breadcrumb-border-radius: var(--radius-5),\n --breadcrumb-divider-color: var(--fg-4),\n --breadcrumb-link-padding-x: .75rem,\n --breadcrumb-link-padding-y: .25rem,\n --breadcrumb-link-color: var(--fg-3),\n --breadcrumb-link-hover-color: var(--fg-2),\n --breadcrumb-link-hover-bg: var(--bg-1),\n --breadcrumb-link-active-color: var(--fg-1),\n --breadcrumb-link-border-radius: var(--radius-7),\n ),\n $breadcrumb-tokens\n);\n// scss-docs-end breadcrumb-tokens\n\n@layer components {\n .breadcrumb {\n @include tokens($breadcrumb-tokens);\n\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n padding: var(--breadcrumb-padding-y, 0) var(--breadcrumb-padding-x, 0);\n font-size: var(--breadcrumb-font-size);\n list-style: none;\n background-color: var(--breadcrumb-bg);\n @include border-radius(var(--breadcrumb-border-radius));\n }\n\n .breadcrumb-item {\n display: flex;\n }\n\n .breadcrumb-divider {\n margin-inline: calc(var(--breadcrumb-link-padding-x) / 4);\n color: var(--breadcrumb-divider-color);\n }\n\n .breadcrumb-link {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 2.25rem;\n padding: var(--breadcrumb-link-padding-y) var(--breadcrumb-link-padding-x);\n color: var(--breadcrumb-link-color);\n text-decoration: none;\n @include border-radius(var(--breadcrumb-link-border-radius));\n @include transition(.1s text-decoration-color ease-in-out);\n\n &:hover {\n z-index: 2;\n color: var(--breadcrumb-link-hover-color);\n background-color: var(--breadcrumb-link-hover-bg);\n }\n\n &.active {\n color: var(--breadcrumb-link-active-color);\n }\n }\n}\n","@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/tokens\" as *;\n\n$chip-tokens: () !default;\n\n// stylelint-disable custom-property-no-missing-var-function\n// scss-docs-start chip-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$chip-tokens: defaults(\n (\n --chip-height: 1.75rem,\n --chip-padding-x: .625rem,\n --chip-gap: .3125rem,\n --chip-border-radius: var(--radius-pill),\n --chip-img-size: 1.25rem,\n --chip-icon-size: 1rem,\n --chip-dismiss-size: 1rem,\n --chip-dismiss-opacity: .65,\n --chip-dismiss-hover-opacity: 1,\n --chip-color: var(--theme-fg, var(--fg-body)),\n --chip-bg: var(--theme-bg-subtle, var(--bg-2)),\n --chip-border-color: transparent,\n --chip-selected-color: var(--theme-contrast, var(--primary-contrast)),\n --chip-selected-bg: var(--theme-bg, var(--primary-bg)),\n --chip-selected-border-color: var(--theme-bg, var(--primary-bg)),\n ),\n $chip-tokens\n);\n// scss-docs-end chip-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer components {\n .chip {\n @include tokens($chip-tokens);\n\n display: inline-flex;\n gap: var(--chip-gap);\n align-items: center;\n height: var(--chip-height);\n padding-inline: var(--chip-padding-x);\n font-size: var(--chip-font-size, var(--font-size-sm));\n font-weight: var(--chip-font-weight, var(--font-weight-base));\n line-height: var(--chip-line-height, 1.25rem);\n color: var(--chip-color);\n text-decoration: none;\n white-space: nowrap;\n vertical-align: middle;\n cursor: pointer;\n background-color: var(--chip-bg);\n border: var(--border-width) solid var(--chip-border-color);\n @include border-radius(var(--chip-border-radius));\n\n &:hover {\n --chip-bg: var(--theme-bg-muted, var(--bg-3));\n }\n\n &:focus-visible {\n outline: 0;\n // @include focus-ring();\n }\n\n &.active {\n --chip-color: var(--chip-selected-color);\n --chip-bg: var(--chip-selected-bg);\n --chip-border-color: var(--chip-selected-border-color);\n\n &:hover {\n --chip-bg: var(--chip-selected-bg);\n opacity: .9;\n }\n }\n\n &.disabled,\n &:disabled {\n pointer-events: none;\n opacity: .65;\n }\n }\n\n .chip-img {\n width: var(--chip-img-size);\n height: var(--chip-img-size);\n @include border-radius(50%);\n\n &:first-child {\n margin-inline-start: -.375rem;\n }\n }\n\n // Chip icon (left side)\n .chip-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n margin-inline-start: calc(var(--chip-gap) * -.25);\n\n > svg {\n display: block; // Prevents baseline alignment issues\n width: var(--chip-icon-size);\n height: var(--chip-icon-size);\n }\n\n > img {\n width: var(--chip-icon-size);\n height: var(--chip-icon-size);\n object-fit: cover;\n @include border-radius(50%);\n }\n }\n\n // Dismiss button (right side)\n .chip-dismiss {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--chip-min-height);\n height: var(--chip-min-height);\n padding: 0;\n // margin-inline-start: calc(var(--chip-padding-x) * -.5);\n margin-inline-end: calc(var(--chip-padding-x) * -.25);\n color: inherit;\n cursor: pointer;\n background: transparent;\n border: 0;\n opacity: var(--chip-dismiss-opacity);\n // @include transition(opacity .15s ease-in-out);\n\n &:hover {\n opacity: var(--chip-dismiss-hover-opacity);\n }\n\n &:focus-visible {\n outline: 0;\n opacity: 1;\n @include focus-ring();\n }\n\n > svg {\n display: block; // Prevents baseline alignment issues\n width: var(--chip-dismiss-size);\n height: var(--chip-dismiss-size);\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/tokens\" as *;\n@use \"layout/breakpoints\" as *;\n\n$card-tokens: () !default;\n\n// scss-docs-start card-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$card-tokens: defaults(\n (\n --card-spacer-y: var(--spacer-5),\n --card-spacer-x: var(--spacer-5),\n --card-subtitle-color: inherit,\n --card-border-width: var(--border-width),\n --card-border-color: var(--border-color-translucent),\n --card-border-radius: var(--radius-7),\n --card-box-shadow: none,\n --card-inner-border-radius: calc(var(--radius-7) - var(--border-width)),\n --card-cap-padding-y: var(--spacer-3),\n --card-cap-padding-x: var(--spacer),\n --card-cap-bg: var(--bg-1),\n --card-cap-color: inherit,\n --card-height: auto,\n --card-color: inherit,\n --card-bg: var(--bg-body),\n --card-img-overlay-padding: var(--card-spacer-y),\n --card-group-margin: #{$grid-gutter-x * .5},\n --card-body-gap: calc(var(--card-spacer-y) * .5),\n ),\n $card-tokens\n);\n// scss-docs-end card-tokens\n\n@layer components {\n .card {\n @include tokens($card-tokens);\n\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n height: var(--card-height);\n color: var(--fg-body);\n word-wrap: break-word;\n background-color: var(--card-bg);\n // border: var(--card-border-width) solid var(--card-border-color);\n // @include border-radius(var(--card-border-radius));\n @include box-shadow(var(--card-box-shadow));\n\n > hr {\n margin-inline: 0;\n }\n }\n\n .card-body {\n display: flex;\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n // as much space as possible, ensuring footers are aligned to the bottom.\n flex: 1 1 auto;\n flex-direction: column;\n gap: var(--card-body-gap);\n align-items: flex-start;\n padding: var(--card-spacer-y) var(--card-spacer-x);\n color: var(--card-color);\n border: solid var(--theme-bg, var(--card-border-color));\n border-width: 0 var(--card-border-width);\n\n > * {\n margin-block: 0;\n }\n }\n\n .card-body,\n .card-list {\n border: solid var(--theme-bg, var(--card-border-color));\n border-width: 0 var(--card-border-width);\n\n &:first-child {\n @include border-top-radius(var(--card-border-radius));\n border-top-width: var(--card-border-width);\n }\n\n &:last-child {\n @include border-bottom-radius(var(--card-border-radius));\n border-bottom-width: var(--card-border-width);\n }\n\n &:not(:first-child, :last-child) {\n border-block-end-width: var(--card-border-width);\n }\n }\n\n .card-title,\n .card-subtitle,\n .card-text {\n align-self: stretch;\n }\n\n .card-subtitle {\n margin-top: calc(var(--card-body-gap) * -.5);\n }\n\n .card-header {\n padding: var(--card-cap-padding-y) var(--card-cap-padding-x);\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\n color: var(--theme-contrast, var(--card-cap-color));\n background-color: var(--theme-bg, var(--card-cap-bg));\n border: var(--card-border-width) solid var(--theme-bg, var(--card-border-color));\n\n &:first-child {\n @include border-radius(var(--card-inner-border-radius) var(--card-inner-border-radius) 0 0);\n }\n }\n\n .card-footer {\n padding: var(--card-cap-padding-y) var(--card-cap-padding-x);\n color: var(--card-cap-color);\n background-color: var(--theme-bg, var(--card-cap-bg));\n border: var(--card-border-width) solid var(--theme-bg, var(--card-border-color));\n\n &:last-child {\n @include border-radius(0 0 var(--card-inner-border-radius) var(--card-inner-border-radius));\n }\n }\n\n .card-translucent {\n background-color: color-mix(in oklch, var(--card-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n\n .card-header,\n .card-footer {\n background-color: color-mix(in oklch, var(--card-cap-bg) 60%, transparent);\n }\n }\n\n .card-subtle {\n border-color: var(--theme-border, var(--card-border-color));\n\n .card-header {\n color: var(--theme-fg-emphasis, currentcolor);\n background-color: var(--theme-bg-subtle, var(--card-cap-bg));\n border-color: var(--theme-border, var(--card-border-color));\n }\n\n .card-footer {\n color: var(--theme-fg-emphasis, currentcolor);\n background-color: var(--theme-bg-subtle, var(--card-cap-bg));\n border-color: var(--theme-border, var(--card-border-color));\n }\n\n .card-body,\n .card-list {\n border-color: var(--theme-border, var(--card-border-color));\n }\n }\n\n //\n // Header navs\n //\n\n // Combined selector because of specificity match with `.nav` base class\n .nav.card-header-tabs {\n margin-inline: calc(-.5 * var(--card-cap-padding-x));\n margin-bottom: calc(-1 * var(--card-cap-padding-y));\n border-block-end: 0;\n\n .nav-link.active {\n background-color: var(--card-bg);\n border-block-end-color: var(--card-bg);\n }\n }\n\n // Card image\n .card-img-overlay {\n position: absolute;\n inset: 0;\n padding: var(--card-img-overlay-padding);\n @include border-radius(var(--card-inner-border-radius));\n }\n\n .card-img,\n .card-img-top,\n .card-img-bottom {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n outline: var(--card-border-width) solid var(--card-border-color);\n outline-offset: calc(var(--card-border-width) * -1);\n }\n\n .card-img,\n .card-img-top {\n @include border-top-radius(var(--card-inner-border-radius));\n }\n\n .card-img,\n .card-img-bottom {\n @include border-bottom-radius(var(--card-inner-border-radius));\n }\n\n .card-row {\n flex-direction: row;\n\n .card-body,\n .card-list {\n border-width: var(--card-border-width) 0;\n @include border-radius(0);\n\n &:first-child {\n @include border-start-radius(var(--card-inner-border-radius));\n border-inline-start-width: var(--card-border-width);\n }\n\n &:last-child {\n @include border-end-radius(var(--card-inner-border-radius));\n border-inline-end-width: var(--card-border-width);\n }\n\n &:not(:first-child, :last-child) {\n border-inline-end-width: var(--card-border-width);\n }\n }\n }\n\n .card-img-start {\n @include border-start-radius(var(--card-inner-border-radius));\n }\n\n .card-img-end {\n @include border-end-radius(var(--card-inner-border-radius));\n }\n\n //\n // Card groups\n //\n\n .card-group {\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n margin-bottom: var(--card-group-margin);\n }\n\n @include media-breakpoint-up(sm) {\n display: flex;\n flex-flow: row wrap;\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n flex: 1 0 0;\n margin-bottom: 0;\n\n + .card {\n margin-inline-start: 0;\n border-inline-start: 0;\n }\n\n // Handle rounded corners\n @if $enable-rounded {\n &:not(:last-child) {\n @include border-end-radius(0);\n\n > .card-img-top,\n > .card-header,\n > .card-body {\n border-start-end-radius: 0;\n }\n > .card-img-bottom,\n > .card-footer,\n > .card-body {\n border-end-end-radius: 0;\n }\n }\n\n &:not(:first-child) {\n @include border-start-radius(0);\n\n > .card-img-top,\n > .card-header,\n > .card-body {\n border-start-start-radius: 0;\n }\n > .card-img-bottom,\n > .card-footer,\n > .card-body {\n border-end-start-radius: 0;\n }\n }\n }\n }\n }\n }\n}\n","@use \"config\" as *;\n@use \"colors\" as *;\n@use \"functions\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/color-mode\" as *;\n@use \"mixins/tokens\" as *;\n\n$carousel-tokens: () !default;\n\n// scss-docs-start carousel-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$carousel-tokens: defaults(\n (\n --carousel-control-color: #{$white},\n --carousel-control-width: 15%,\n --carousel-control-opacity: .5,\n --carousel-control-hover-opacity: .9,\n --carousel-control-transition: opacity .15s ease,\n --carousel-control-icon-filter: none,\n --carousel-indicator-width: 30px,\n --carousel-indicator-height: 3px,\n --carousel-indicator-hit-area-height: 10px,\n --carousel-indicator-spacer: 3px,\n --carousel-indicator-opacity: .5,\n --carousel-indicator-active-bg: var(--white),\n --carousel-indicator-active-opacity: 1,\n --carousel-indicator-transition: opacity .6s ease,\n --carousel-caption-width: 70%,\n --carousel-caption-color: var(--white),\n --carousel-caption-padding-y: 1.25rem,\n --carousel-caption-spacer: 1.25rem,\n --carousel-control-icon-width: 2rem,\n --carousel-control-prev-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/></svg>\"),\n --carousel-control-next-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/></svg>\"),\n --carousel-transition-duration: .6s,\n --carousel-transition: transform .6s ease-in-out,\n ),\n $carousel-tokens\n);\n// scss-docs-end carousel-tokens\n\n$carousel-dark-tokens: () !default;\n\n// scss-docs-start carousel-dark-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$carousel-dark-tokens: defaults(\n (\n --carousel-indicator-active-bg: #{$black},\n --carousel-caption-color: #{$black},\n --carousel-control-icon-filter: invert(1) grayscale(100),\n ),\n $carousel-dark-tokens\n);\n// scss-docs-end carousel-dark-tokens\n\n// Notes on the classes:\n//\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\n// even when their scroll action started on a carousel, but for compatibility (with Firefox)\n// we're preventing all actions instead\n// 2. The .carousel-item-start and .carousel-item-end is used to indicate where\n// the active slide is heading.\n// 3. .active.carousel-item is the current slide.\n// 4. .active.carousel-item-start and .active.carousel-item-end is the current\n// slide in its in-transition state. Only one of these occurs at a time.\n// 5. .carousel-item-next.carousel-item-start and .carousel-item-prev.carousel-item-end\n// is the upcoming slide in transition.\n\n@layer components {\n .carousel {\n position: relative;\n @include tokens($carousel-tokens);\n }\n\n .carousel.pointer-event {\n touch-action: pan-y;\n }\n\n .carousel-inner {\n position: relative;\n display: flow-root;\n width: 100%;\n overflow: hidden;\n }\n\n .carousel-item {\n position: relative;\n display: none;\n float: inline-start;\n width: 100%;\n margin-inline-end: -100%;\n backface-visibility: hidden;\n @include transition(var(--carousel-transition));\n }\n\n .carousel-item.active,\n .carousel-item-next,\n .carousel-item-prev {\n display: block;\n }\n\n .carousel-item-next:not(.carousel-item-start),\n .active.carousel-item-end {\n transform: translateX(100%);\n }\n\n .carousel-item-prev:not(.carousel-item-end),\n .active.carousel-item-start {\n transform: translateX(-100%);\n }\n\n //\n // Alternate transitions\n //\n\n .carousel-fade {\n .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n }\n\n .carousel-item.active,\n .carousel-item-next.carousel-item-start,\n .carousel-item-prev.carousel-item-end {\n z-index: 1;\n opacity: 1;\n }\n\n .active.carousel-item-start,\n .active.carousel-item-end {\n z-index: 0;\n opacity: 0;\n @include transition(opacity 0s var(--carousel-transition-duration));\n }\n }\n\n //\n // Left/right controls for nav\n //\n\n .carousel-control-prev,\n .carousel-control-next {\n position: absolute;\n inset-block: 0;\n z-index: 1;\n // Use flex for alignment (1-3)\n display: flex; // 1. allow flex styles\n align-items: center; // 2. vertically center contents\n justify-content: center; // 3. horizontally center contents\n width: var(--carousel-control-width);\n padding: 0;\n color: var(--carousel-control-color);\n text-align: center;\n background: none;\n filter: var(--carousel-control-icon-filter);\n border: 0;\n opacity: var(--carousel-control-opacity);\n @include transition(var(--carousel-control-transition));\n\n // Hover/focus state\n &:hover,\n &:focus {\n color: var(--carousel-control-color);\n text-decoration: none;\n outline: 0;\n opacity: var(--carousel-control-hover-opacity);\n }\n }\n .carousel-control-prev {\n inset-inline-start: 0;\n // stylelint-disable-next-line scss/at-function-named-arguments, @stylistic/function-whitespace-after\n background-image: if(sass($enable-gradients): linear-gradient(90deg, rgb(0 0 0 / .25), rgb(0 0 0 / .001)); else: null);\n }\n .carousel-control-next {\n inset-inline-end: 0;\n // stylelint-disable-next-line scss/at-function-named-arguments, @stylistic/function-whitespace-after\n background-image: if(sass($enable-gradients): linear-gradient(270deg, rgb(0 0 0 / .25), rgb(0 0 0 / .001)); else: null);\n }\n\n // Icons for within\n .carousel-control-prev-icon,\n .carousel-control-next-icon {\n display: inline-block;\n width: var(--carousel-control-icon-width);\n height: var(--carousel-control-icon-width);\n background-repeat: no-repeat;\n background-position: 50%;\n background-size: 100% 100%;\n }\n\n .carousel-control-prev-icon {\n background-image: var(--carousel-control-prev-icon-bg);\n }\n\n [dir=\"rtl\"] .carousel-control-prev-icon {\n background-image: var(--carousel-control-next-icon-bg);\n }\n\n .carousel-control-next-icon {\n background-image: var(--carousel-control-next-icon-bg);\n }\n\n [dir=\"rtl\"] .carousel-control-next-icon {\n background-image: var(--carousel-control-prev-icon-bg);\n }\n\n // Optional indicator pips/controls\n //\n // Add a container (such as a list) with the following class and add an item (ideally a focusable control,\n // like a button) with data-bs-target for each slide your carousel holds.\n\n .carousel-indicators {\n position: absolute;\n inset: auto 0 0;\n z-index: 2;\n display: flex;\n justify-content: center;\n padding: 0;\n // Use the .carousel-control's width as margin so we don't overlay those\n margin-inline: var(--carousel-control-width);\n margin-bottom: 1rem;\n\n [data-bs-target] {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: var(--carousel-indicator-width);\n height: var(--carousel-indicator-height);\n padding: 0;\n margin-inline: var(--carousel-indicator-spacer);\n text-indent: -999px;\n cursor: pointer;\n background-color: var(--carousel-indicator-active-bg);\n background-clip: padding-box;\n border: 0;\n // Use transparent borders to increase the hit area by 10px on top and bottom.\n border-block: var(--carousel-indicator-hit-area-height) solid transparent;\n opacity: var(--carousel-indicator-opacity);\n @include transition(var(--carousel-indicator-transition));\n }\n\n .active {\n opacity: var(--carousel-indicator-active-opacity);\n }\n }\n\n // Optional captions\n //\n //\n\n .carousel-caption {\n position: absolute;\n right: calc((100% - var(--carousel-caption-width)) * .5);\n bottom: var(--carousel-caption-spacer);\n left: calc((100% - var(--carousel-caption-width)) * .5);\n padding-top: var(--carousel-caption-padding-y);\n padding-bottom: var(--carousel-caption-padding-y);\n color: var(--carousel-caption-color);\n text-align: center;\n }\n\n // Dark mode carousel\n\n @mixin carousel-dark() {\n @include tokens($carousel-dark-tokens);\n }\n\n .carousel-dark {\n @include carousel-dark();\n }\n\n @if $enable-dark-mode {\n @include color-mode(dark, true) {\n @include carousel-dark();\n }\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start color-mode-mixin\n@mixin color-mode($mode: light, $root: false) {\n @if $color-mode-type == \"media-query\" {\n @if $root == true {\n @media (prefers-color-scheme: $mode) {\n :root {\n @content;\n }\n }\n } @else {\n @media (prefers-color-scheme: $mode) {\n @content;\n }\n }\n } @else {\n [data-bs-theme=\"#{$mode}\"] {\n @content;\n }\n }\n}\n// scss-docs-end color-mode-mixin\n","// stylelint-disable selector-max-attribute, property-disallowed-list, selector-no-qualifying-type -- VCP uses extensive data attributes and requires direct border-radius properties for range selection\n\n@use \"functions\" as *;\n@use \"config\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/tokens\" as *;\n\n$datepicker-tokens: () !default;\n\n// scss-docs-start datepicker-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$datepicker-tokens: defaults(\n (\n --datepicker-padding: 1rem,\n --datepicker-bg: var(--bg-body),\n --datepicker-color: var(--fg-body),\n --datepicker-border-color: var(--border-color-translucent),\n --datepicker-border-width: var(--border-width),\n --datepicker-border-radius: var(--radius-7),\n --datepicker-box-shadow: var(--box-shadow),\n --datepicker-font-size: var(--font-size-sm),\n --datepicker-min-width: 280px,\n --datepicker-zindex: #{$zindex-menu},\n --datepicker-header-font-weight: 600,\n --datepicker-weekday-color: var(--fg-3),\n --datepicker-day-hover-bg: var(--bg-1),\n --datepicker-day-selected-bg: var(--primary-bg),\n --datepicker-day-selected-color: var(--primary-contrast),\n --datepicker-day-today-bg: var(--bg-2),\n --datepicker-day-today-color: var(--fg-1),\n --datepicker-day-disabled-color: var(--fg-4),\n ),\n $datepicker-tokens\n);\n// scss-docs-end datepicker-tokens\n\n@layer components {\n [data-vc=\"calendar\"] {\n @include tokens($datepicker-tokens);\n\n position: absolute;\n z-index: var(--datepicker-zindex);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n min-width: var(--datepicker-min-width);\n padding: var(--datepicker-padding);\n font-family: var(--font-sans-serif);\n font-size: var(--datepicker-font-size);\n color: var(--datepicker-color);\n color-scheme: light dark;\n background-color: var(--datepicker-bg);\n border: var(--datepicker-border-width) solid var(--datepicker-border-color);\n box-shadow: var(--datepicker-box-shadow);\n opacity: 1;\n @include border-radius(var(--datepicker-border-radius));\n\n // Respond to Bootstrap's color mode system\n &[data-bs-theme=\"light\"] {\n color-scheme: light;\n }\n\n &[data-bs-theme=\"dark\"] {\n color-scheme: dark;\n }\n\n // Catch-all for focus styles\n button:focus-visible {\n position: relative;\n z-index: 1;\n @include focus-ring();\n }\n }\n\n [data-vc-calendar-hidden] {\n pointer-events: none;\n opacity: 0;\n }\n\n // Inline calendars\n //\n // Remove popover styling for more neutral styling\n [data-vc=\"calendar\"]:not([data-vc-input]) {\n position: relative;\n width: fit-content;\n padding: 0;\n border: 0;\n box-shadow: none;\n }\n\n [data-vc-position=\"bottom\"] {\n margin-block-start: .25rem;\n }\n\n [data-vc-position=\"top\"] {\n margin-block-end: -.25rem;\n }\n\n [data-vc-arrow] {\n position: relative;\n display: block;\n width: 2rem;\n height: 2rem;\n color: var(--datepicker-color);\n pointer-events: auto;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n @include border-radius(var(--radius-5));\n\n &::before {\n position: absolute;\n inset: .25rem;\n content: \"\";\n background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%236b7280' d='M12 16c-.3 0-.5-.1-.7-.3l-6-6c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l5.3 5.3 5.3-5.3c.4-.4 1-.4 1.4 0s.4 1 0 1.4l-6 6c-.2.2-.4.3-.7.3'/></svg>\");\n background-repeat: no-repeat;\n background-position: center;\n }\n\n &:hover {\n background-color: var(--datepicker-day-hover-bg);\n }\n }\n\n [data-vc-arrow=\"prev\"]::before {\n transform: rotate(90deg);\n }\n\n [data-vc-arrow=\"next\"]::before {\n transform: rotate(-90deg);\n }\n\n // Grid layout\n [data-vc=\"controls\"] {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 20;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: 1rem;\n padding-right: 1rem;\n padding-left: 1rem;\n pointer-events: none;\n }\n\n [data-vc=\"grid\"] {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n gap: 1.75rem;\n }\n\n [data-vc=\"column\"] {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n min-width: 240px;\n }\n\n //\n // Header\n //\n\n [data-vc=\"header\"] {\n position: relative;\n display: flex;\n align-items: center;\n margin-bottom: .75rem;\n }\n\n // Month and year\n [data-vc-header=\"content\"] {\n display: inline-flex;\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n white-space: pre-wrap;\n }\n\n [data-vc=\"month\"],\n [data-vc=\"year\"] {\n padding: .25rem .5rem;\n margin-inline: -.125rem;\n font-size: 1rem;\n font-weight: var(--datepicker-header-font-weight);\n color: var(--datepicker-color);\n // cursor: pointer;\n background-color: transparent;\n border: 0;\n @include border-radius(var(--radius-5));\n\n &:disabled {\n color: var(--datepicker-day-disabled-color);\n pointer-events: none;\n }\n\n &:hover:not(:disabled) {\n background-color: var(--datepicker-day-hover-bg);\n }\n }\n\n [data-vc=\"content\"] {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n }\n\n // Month/Year grids\n [data-vc=\"months\"],\n [data-vc=\"years\"] {\n display: grid;\n flex-grow: 1;\n grid-template-columns: repeat(var(--vc-columns, 4), minmax(0, 1fr));\n row-gap: 1rem;\n column-gap: .25rem;\n align-items: center;\n }\n\n [data-vc=\"years\"] {\n --vc-columns: 5;\n }\n\n [data-vc-months-month],\n [data-vc-years-year] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 2.5rem;\n padding: .25rem;\n font-size: .75rem;\n font-weight: 600;\n line-height: 1rem;\n color: var(--datepicker-weekday-color);\n text-align: center;\n word-break: break-all;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n @include border-radius(var(--radius-5));\n\n &:disabled {\n color: var(--datepicker-day-disabled-color);\n pointer-events: none;\n }\n\n &:hover:not(:disabled) {\n background-color: var(--datepicker-day-hover-bg);\n }\n\n &[data-vc-months-month-selected],\n &[data-vc-years-year-selected] {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n\n &:hover {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n }\n }\n }\n\n // Week days header\n [data-vc=\"week\"] {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n justify-items: center;\n margin-bottom: .5rem;\n }\n\n [data-vc-week-day] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 1.875rem;\n padding: 0;\n margin: 0;\n font-size: .75rem;\n font-weight: 600;\n line-height: 1rem;\n color: var(--datepicker-weekday-color);\n background-color: transparent;\n border: 0;\n }\n\n button[data-vc-week-day] {\n cursor: pointer;\n }\n\n // Dates grid\n [data-vc=\"dates\"] {\n pointer-events: none;\n }\n\n [data-vc-dates=\"row\"] {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n align-items: center;\n justify-items: center;\n width: 100%;\n }\n\n [data-vc-date] {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n padding-top: .125rem;\n padding-bottom: .125rem;\n pointer-events: auto;\n\n &:not(:has([data-vc-date-btn])),\n &[data-vc-date-disabled],\n &[data-vc-date-disabled] [data-vc-date-btn] {\n pointer-events: none;\n }\n }\n\n // Date button\n [data-vc-date-btn] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 1.875rem;\n height: 100%;\n min-height: 1.875rem;\n padding: 0;\n font-size: .75rem;\n font-weight: 400;\n line-height: 1rem;\n color: var(--datepicker-color);\n cursor: pointer;\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n\n &:hover {\n background-color: var(--datepicker-day-hover-bg);\n }\n }\n\n // Today\n [data-vc-date-today] [data-vc-date-btn] {\n font-weight: 600;\n color: var(--datepicker-day-today-color);\n background-color: var(--datepicker-day-today-bg);\n }\n\n // Outside month\n [data-vc-date-month=\"next\"] [data-vc-date-btn],\n [data-vc-date-month=\"prev\"] [data-vc-date-btn] {\n opacity: .5;\n }\n\n // Disabled\n [data-vc-date-disabled] [data-vc-date-btn] {\n color: var(--datepicker-day-disabled-color);\n }\n\n // Range selection styles\n [data-vc-date-hover] [data-vc-date-btn] {\n background-color: var(--datepicker-day-hover-bg);\n border-radius: 0;\n }\n\n [data-vc-date-hover=\"first\"] [data-vc-date-btn] {\n border-start-start-radius: var(--radius-5);\n border-end-start-radius: var(--radius-5);\n }\n\n [data-vc-date-hover=\"last\"] [data-vc-date-btn] {\n border-start-end-radius: var(--radius-5);\n border-end-end-radius: var(--radius-5);\n }\n\n [data-vc-date-hover=\"first-and-last\"] [data-vc-date-btn] {\n border-radius: var(--radius-5);\n }\n\n [data-vc-date-selected=\"middle\"] [data-vc-date-btn] {\n border-radius: 0;\n opacity: .8;\n }\n\n // Selected\n [data-vc-date-selected] [data-vc-date-btn] {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n\n }\n\n [data-vc-date-selected=\"first\"] [data-vc-date-btn] {\n border-top-left-radius: var(--radius-5);\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: var(--radius-5);\n }\n\n [data-vc-date-selected=\"last\"] [data-vc-date-btn] {\n border-top-left-radius: 0;\n border-top-right-radius: var(--radius-5);\n border-bottom-right-radius: var(--radius-5);\n border-bottom-left-radius: 0;\n }\n\n [data-vc-date-selected=\"first-and-last\"] [data-vc-date-btn] {\n border-radius: var(--radius-5);\n }\n}\n","@use \"sass:map\";\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/dialog-shared\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/tokens\" as *;\n\n// Native <dialog> component\n// Uses the browser's native dialog element with showModal()/show()/close() APIs\n// Leverages native [open] attribute and ::backdrop pseudo-element\n\n// stylelint-disable custom-property-no-missing-var-function\n$dialog-tokens: () !default;\n\n// scss-docs-start dialog-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$dialog-tokens: defaults(\n (\n --dialog-padding: 1rem,\n --dialog-width: 500px,\n --dialog-margin: 1.75rem,\n --dialog-color: var(--fg-body),\n --dialog-bg: var(--bg-body),\n --dialog-border-color: var(--border-color-translucent),\n --dialog-border-width: var(--border-width),\n --dialog-border-radius: var(--radius-7),\n --dialog-box-shadow: var(--box-shadow-lg),\n --dialog-transition-duration: .3s,\n --dialog-transition-timing: cubic-bezier(.22, 1, .36, 1),\n --dialog-backdrop-bg: rgb(0 0 0 / 50%),\n --dialog-backdrop-blur: 8px,\n --dialog-header-padding: 1rem,\n --dialog-header-border-color: var(--border-color),\n --dialog-header-border-width: var(--border-width),\n --dialog-footer-padding: 1rem,\n --dialog-footer-border-color: var(--border-color),\n --dialog-footer-border-width: var(--border-width),\n --dialog-footer-gap: .5rem,\n ),\n $dialog-tokens\n);\n// scss-docs-end dialog-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n// scss-docs-start dialog-sizes\n$dialog-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$dialog-sizes: defaults(\n (\n sm: 280px,\n lg: 800px,\n xl: 1140px,\n ),\n $dialog-sizes\n);\n// scss-docs-end dialog-sizes\n\n@layer components {\n // Prevent body scroll when dialog is open\n .dialog-open {\n overflow: hidden;\n }\n\n .dialog {\n @include tokens($dialog-tokens);\n\n // Override UA display:none so visibility controls the hidden state,\n // enabling reliable cross-browser exit animations after close().\n display: flex;\n flex-direction: column;\n width: var(--dialog-width);\n max-width: calc(100% - var(--dialog-margin) * 2);\n max-height: calc(100% - var(--dialog-margin) * 2);\n padding: 0;\n margin: auto;\n overflow: visible;\n color: var(--dialog-color);\n visibility: hidden;\n background-color: var(--dialog-bg);\n background-clip: padding-box;\n border: var(--dialog-border-width) solid var(--dialog-border-color);\n @include border-radius(var(--dialog-border-radius));\n @include box-shadow(var(--dialog-box-shadow));\n\n // Animated variant (default) — transitions, opacity fade, slide transforms.\n // Adding .dialog-instant skips all animations (instant show/hide).\n &:not(.dialog-instant) {\n // Exit state: faded out\n opacity: 0;\n\n // Exit transition: opacity and transform animate out, then visibility\n // flips hidden after the animation completes (via the delay).\n @include transition(\n opacity var(--dialog-transition-duration) var(--dialog-transition-timing),\n transform var(--dialog-transition-duration) var(--dialog-transition-timing),\n visibility 0s var(--dialog-transition-duration)\n );\n\n // Slide-down variant: enters from above sliding down, exits by reversing\n // back up. Base value is the entry-from / exit-to position so the\n // animation works on every open (not just the first, which is the only\n // time @starting-style applies for a persistent <dialog> element).\n &.dialog-slide-down {\n transform: translateY(-3rem);\n }\n\n // Slide-up variant: enters from below sliding up, exits by reversing\n // back down. See note above re: base value choice.\n &.dialog-slide-up {\n transform: translateY(3rem);\n }\n\n // Open state: visible and faded in.\n // Entry transition: visibility flips visible immediately (0s, no delay),\n // then opacity and transform animate in.\n // The :not(.hiding) qualifier lets the exit transition fall back to the\n // base \"exit\" state above while [open] is still present (the JS keeps\n // the dialog in the top layer during the exit so the ::backdrop and\n // the browser's modal centering remain intact).\n &[open]:not(.hiding) {\n overflow: visible;\n visibility: visible;\n opacity: 1;\n @include transition(\n opacity var(--dialog-transition-duration) var(--dialog-transition-timing),\n transform var(--dialog-transition-duration) var(--dialog-transition-timing),\n visibility 0s\n );\n transform: none;\n }\n\n // Static backdrop \"bounce\" animation (modal dialogs only). Qualified\n // with [open] (to outrank the open-state `transform: none` selector\n // which now also includes `:not(.hiding)`) and `:not(.hiding)` (so\n // a backdrop click while the dialog is mid-exit doesn't fight the\n // slide-out transform).\n &[open].dialog-static:not(.hiding) {\n transform: scale(1.02);\n }\n\n // Native backdrop styling with transitions\n &::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n @include backdrop-transitions(var(--dialog-transition-duration), var(--dialog-transition-timing));\n }\n\n // Exit: fade the native backdrop out alongside the dialog. The dialog\n // is kept in the top layer (and thus the ::backdrop is still rendered)\n // for the duration of the exit transition.\n &.hiding::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n }\n\n // Instant variant — no transitions, just snap visibility\n &.dialog-instant {\n &::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n }\n }\n\n // Open state base (always applies, regardless of animation mode).\n // Excluded while .hiding is present so the animated exit (above) can\n // fall through to the base \"exit\" state — for instant dialogs, .hiding\n // is removed synchronously after close() so this still applies normally.\n &[open]:not(.hiding) {\n overflow: visible;\n visibility: visible;\n opacity: 1;\n transform: none;\n }\n\n // Non-modal dialog positioning\n // show() doesn't use the top layer, so we need explicit positioning and z-index\n &.dialog-nonmodal {\n position: fixed;\n inset-block-start: 50%;\n inset-inline-start: 50%;\n z-index: $zindex-dialog;\n margin-inline: 0;\n transform: translate(-50%, -50%);\n }\n\n // Scrollable dialog body (header/footer stay fixed)\n &.dialog-scrollable[open] {\n max-height: calc(100% - var(--dialog-margin) * 2);\n\n .dialog-body {\n overflow-y: auto;\n }\n }\n }\n\n // Entry animation for ::backdrop via @starting-style. The backdrop only\n // exists while the dialog is in the top layer, so its starting state can't\n // be expressed on the base selector.\n // Default dialog (fade only) and the slide variants do NOT need\n // @starting-style — the base opacity: 0 (and base transform for slides)\n // serves as the entry-from state with the visibility trick.\n @starting-style {\n .dialog:not(.dialog-instant)::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n\n // Swap entry: when this dialog is opened as the target of a swap, the\n // outgoing dialog's ::backdrop is being removed synchronously in the same\n // JS tick. To avoid any flicker (either a dip from a fade-in over nothing,\n // or double-darkening from two stacked backdrops), start this backdrop\n // already-opaque so it takes over from the outgoing one seamlessly.\n .dialog.dialog-swap-in:not(.dialog-instant)::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n }\n }\n\n // Dialog sizes\n @each $size, $value in $dialog-sizes {\n .dialog-#{$size} { --dialog-width: #{$value}; }\n }\n\n // Fullscreen dialog\n .dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n\n // Responsive fullscreen dialogs\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @if $prefix != \"\" {\n @include media-breakpoint-down($breakpoint) {\n .#{css-escape-ident($breakpoint)}-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n }\n }\n\n // Dialog header\n .dialog-header {\n @include dialog-header(var(--dialog-header-padding));\n border-block-end: var(--dialog-header-border-width) solid var(--dialog-header-border-color);\n\n .btn-close {\n margin-inline-start: auto;\n }\n }\n\n // Dialog title\n .dialog-title {\n @include dialog-title();\n font-size: var(--font-size-md);\n }\n\n // Dialog body\n .dialog-body {\n position: relative;\n @include dialog-body(var(--dialog-padding));\n }\n\n // Dialog footer\n .dialog-footer {\n @include dialog-footer(var(--dialog-footer-padding), var(--dialog-footer-gap), var(--dialog-footer-border-width), var(--dialog-footer-border-color));\n }\n}\n","// Shared mixins for Dialog and Drawer sub-components.\n// Both components use identical header/footer/body/title patterns\n// with different token namespaces.\n\n@use \"transition\" as *;\n\n// Header: flex row with close button alignment\n@mixin dialog-header($padding) {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n padding: $padding;\n}\n\n// Footer: flex row with end-aligned actions\n@mixin dialog-footer($padding, $gap, $border-width, $border-color) {\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n gap: $gap;\n align-items: center;\n justify-content: flex-end;\n padding: $padding;\n border-block-start: $border-width solid $border-color;\n}\n\n// Body: flexible scrollable content area\n@mixin dialog-body($padding) {\n flex: 1 1 auto;\n padding: $padding;\n}\n\n// Title: reset margin, set line-height\n@mixin dialog-title($line-height: 1.5) {\n margin-bottom: 0;\n line-height: $line-height;\n}\n\n// Backdrop transitions for ::backdrop pseudo-element.\n// Both Dialog and Drawer use identical allow-discrete transitions\n// on display and overlay to keep ::backdrop in the top layer.\n@mixin backdrop-transitions($duration, $timing) {\n @include transition(\n background-color $duration $timing,\n backdrop-filter $duration $timing,\n display $duration allow-discrete,\n overlay $duration allow-discrete\n );\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/tokens\" as *;\n@use \"mixins/transition\" as *;\n\n// stylelint-disable scss/dollar-variable-default, custom-property-no-missing-var-function\n$menu-tokens: () !default;\n\n// scss-docs-start menu-tokens\n$menu-tokens: defaults(\n (\n --menu-zindex: #{$zindex-menu},\n --menu-gap: .125rem,\n --menu-min-width: 10rem,\n --menu-padding-x: .25rem,\n --menu-padding-y: .25rem,\n --menu-spacer: .125rem,\n --menu-font-size: var(--font-size-sm),\n --menu-color: var(--fg-body),\n --menu-bg: var(--bg-body),\n // --menu-border-color: var(--border-color-translucent),\n // --menu-border-radius: var(--radius-7),\n // --menu-border-width: var(--border-width),\n --menu-box-shadow: var(--box-shadow),\n // --menu-max-height: none,\n --menu-divider-bg: var(--border-color-translucent),\n --menu-divider-margin-y: .125rem,\n --menu-divider-margin-x: .25rem,\n --menu-item-color: var(--menu-color, var(--fg-body)),\n --menu-item-hover-color: var(--menu-color, var(--fg-body)),\n --menu-item-hover-bg: var(--bg-1),\n --menu-item-active-color: var(--primary-contrast),\n --menu-item-active-bg: var(--primary-bg),\n --menu-item-disabled-color: var(--fg-3),\n --menu-item-gap: .5rem,\n --menu-item-padding-x: .75rem,\n --menu-item-padding-y: .25rem,\n --menu-item-border-radius: var(--radius-5),\n --menu-icon-size: 1rem,\n --menu-image-size: 1.5rem,\n --menu-description-font-size: var(--font-size-xs),\n --menu-check-color: currentcolor,\n --menu-header-color: var(--fg-3),\n --menu-header-padding-x: .75rem,\n --menu-header-padding-y: .25rem,\n --menu-transition-duration: .15s,\n --menu-transition-timing: cubic-bezier(.22, 1, .36, 1),\n ),\n $menu-tokens\n);\n// scss-docs-end menu-tokens\n\n// stylelint-enable custom-property-no-missing-var-function, scss/dollar-variable-default\n\n@layer components {\n .menu {\n @include tokens($menu-tokens);\n\n position: absolute;\n z-index: var(--menu-zindex);\n display: none;\n flex-direction: column;\n gap: var(--menu-gap);\n min-width: var(--menu-min-width);\n max-height: var(--menu-max-height, none);\n padding: var(--menu-padding-y) var(--menu-padding-x);\n margin: 0;\n overflow-y: var(--menu-overflow-y, initial);\n overscroll-behavior: contain;\n font-size: var(--menu-font-size);\n color: var(--menu-color);\n text-align: start;\n list-style: none;\n background-color: var(--menu-bg);\n background-clip: padding-box;\n border: var(--menu-border-width, var(--border-width)) solid var(--menu-border-color, var(--border-color-translucent));\n @include border-radius(var(--menu-border-radius, var(--radius-7)));\n @include box-shadow(var(--menu-box-shadow));\n opacity: 0;\n transform: scale(.95);\n transform-origin: top start;\n\n &[data-bs-placement^=\"top\"] {\n transform-origin: bottom start;\n }\n\n &[data-bs-placement=\"bottom-end\"] {\n transform-origin: top end;\n }\n\n &[data-bs-placement=\"top-end\"] {\n transform-origin: bottom end;\n }\n\n &[data-bs-placement^=\"left\"] {\n transform-origin: top end;\n }\n\n @include transition(\n opacity var(--menu-transition-duration) var(--menu-transition-timing),\n transform var(--menu-transition-duration) var(--menu-transition-timing),\n display var(--menu-transition-duration) allow-discrete\n );\n\n &.show {\n display: flex;\n opacity: 1;\n transform: none;\n }\n }\n\n @starting-style {\n .menu.show {\n opacity: 0;\n transform: scale(.95);\n }\n }\n\n .menu-scrollable {\n --menu-max-height: 80dvh;\n --menu-overflow-y: auto;\n }\n\n .menu-translucent {\n --menu-item-hover-bg-light: color-mix(in oklch, var(--bg-1) 90%, transparent);\n --menu-item-hover-bg-dark: color-mix(in oklch, var(--bg-1) 80%, transparent);\n\n --menu-item-active-bg-light: color-mix(in oklch, var(--primary-bg) 80%, transparent);\n --menu-item-active-bg-dark: color-mix(in oklch, var(--primary-bg) 70%, transparent);\n\n --menu-item-active-bg: light-dark(var(--menu-item-active-bg-light), var(--menu-item-active-bg-dark));\n --menu-item-hover-bg: light-dark(var(--menu-item-hover-bg-light), var(--menu-item-hover-bg-dark));\n\n background-color: color-mix(in oklch, var(--menu-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n\n .menu-divider {\n height: 0;\n margin: var(--menu-divider-margin-y) var(--menu-divider-margin-x);\n overflow: hidden;\n border-block-start: 1px solid var(--menu-divider-bg);\n opacity: 1;\n }\n\n .menu-item {\n display: flex;\n gap: var(--menu-item-gap);\n align-items: center;\n width: 100%;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n font-weight: var(--menu-item-font-weight, var(--font-weight-normal));\n color: var(--theme-fg, var(--menu-item-color));\n text-align: inherit;\n text-decoration: none;\n white-space: nowrap;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n outline: 0;\n @include border-radius(var(--menu-item-border-radius, 0));\n\n &:hover,\n &:focus {\n color: var(--theme-fg-emphasis, var(--menu-item-hover-color));\n background-color: var(--theme-bg-subtle, var(--menu-item-hover-bg));\n // @include gradient-bg(var(--theme-bg-subtle, var(--menu-item-hover-bg)));\n }\n\n &.active,\n &:active {\n color: var(--theme-contrast, var(--menu-item-active-color));\n background-color: var(--theme-bg, var(--menu-item-active-bg));\n // @include gradient-bg(var(--theme-bg, var(--menu-item-active-bg)));\n\n .menu-item-icon {\n color: inherit !important; // stylelint-disable-line declaration-no-important\n }\n }\n\n &.selected {\n font-weight: $font-weight-semibold;\n }\n\n &.disabled,\n &:disabled {\n color: var(--menu-item-disabled-color);\n pointer-events: none;\n background-color: transparent;\n // stylelint-disable-next-line scss/at-function-named-arguments\n background-image: if(sass($enable-gradients): none; else: null);\n }\n }\n\n .menu-item-icon {\n flex-shrink: 0;\n align-self: flex-start;\n width: var(--menu-icon-size);\n height: auto;\n margin-top: .125rem;\n }\n\n .menu-image {\n width: var(--menu-image-size);\n height: var(--menu-image-size);\n object-fit: cover;\n @include border-radius(var(--radius-5));\n }\n\n .menu-item-content {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-width: fit-content;\n }\n\n .menu-item-description {\n font-size: var(--menu-description-font-size);\n font-weight: var(--font-weight-normal);\n color: color-mix(in oklch, currentcolor 65%, transparent);\n }\n\n .menu-item-check {\n flex-shrink: 0;\n align-self: flex-start;\n margin-block-start: .125rem;\n margin-inline-start: auto;\n color: var(--menu-check-color);\n visibility: hidden;\n\n .selected > & {\n visibility: visible;\n }\n }\n\n .menu-header {\n display: block;\n padding: var(--menu-header-padding-y) var(--menu-header-padding-x);\n margin-bottom: 0;\n font-size: var(--font-size-sm);\n color: var(--menu-header-color);\n white-space: nowrap;\n }\n\n .menu-text {\n display: block;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n color: var(--fg-2);\n }\n\n // scss-docs-start submenu\n .submenu {\n position: relative;\n\n > .menu-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n > .menu-item::after {\n display: inline-block;\n flex-shrink: 0;\n width: .375em;\n height: .375em;\n margin-inline-start: auto;\n content: \"\";\n border-color: currentcolor;\n border-style: solid;\n border-width: 0 .125em .125em 0;\n transform: rotate(-45deg);\n\n [dir=\"rtl\"] & {\n transform: rotate(135deg);\n }\n }\n\n > .menu {\n top: 0;\n margin-top: calc(-1 * var(--menu-padding-y));\n }\n\n &:hover > .menu-item,\n &:focus-within > .menu-item {\n color: var(--menu-item-hover-color);\n background-color: var(--menu-item-hover-bg);\n }\n\n &.show > .menu-item {\n color: var(--menu-item-hover-color);\n background-color: var(--menu-item-hover-bg);\n }\n }\n\n // Mobile stacking: submenu covers the parent menu in-place\n @media (max-width: 575.98px) {\n .submenu:has(.submenu-stacked) {\n position: static;\n }\n\n .submenu-stacked {\n position: absolute;\n inset: 0;\n z-index: 1;\n display: flex;\n flex-direction: column;\n gap: var(--menu-gap);\n min-width: 0;\n padding: var(--menu-padding-y) var(--menu-padding-x);\n background-color: var(--menu-bg);\n border: 0;\n @include border-radius(0);\n box-shadow: none;\n }\n\n .submenu-back {\n display: flex;\n gap: var(--menu-item-gap);\n align-items: center;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n font-weight: var(--font-weight-semibold, 600);\n color: var(--menu-item-color);\n\n &::before {\n display: inline-block;\n flex-shrink: 0;\n width: .375em;\n height: .375em;\n content: \"\";\n border-color: currentcolor;\n border-style: solid;\n border-width: .125em 0 0 .125em;\n transform: rotate(-45deg);\n\n [dir=\"rtl\"] & {\n border-width: 0 .125em .125em 0;\n }\n }\n }\n\n .submenu-dimmed {\n pointer-events: none;\n filter: blur(2px);\n opacity: .3;\n }\n }\n // scss-docs-end submenu\n}\n","@use \"sass:map\";\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/tokens\" as *;\n\n$list-group-tokens: () !default;\n\n// scss-docs-start list-group-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$list-group-tokens: defaults(\n (\n --list-group-color: var(--fg-body),\n --list-group-bg: var(--bg-body),\n --list-group-border-color: var(--border-color),\n --list-group-border-width: var(--border-width),\n --list-group-border-radius: var(--radius-5),\n --list-group-item-padding-x: var(--spacer),\n --list-group-item-padding-y: var(--spacer-2),\n --list-group-action-color: var(--fg-2),\n --list-group-action-hover-color: var(--fg-1),\n --list-group-action-hover-bg: var(--bg-1),\n --list-group-action-active-color: var(--fg-body),\n --list-group-action-active-bg: var(--bg-2),\n --list-group-disabled-color: var(--fg-3),\n --list-group-disabled-bg: var(--bg-body),\n --list-group-active-color: var(--primary-contrast),\n --list-group-active-bg: var(--primary-bg),\n --list-group-active-border-color: var(--primary-bg),\n ),\n $list-group-tokens\n);\n// scss-docs-end list-group-tokens\n\n@layer components {\n .list-group {\n @include tokens($list-group-tokens);\n\n display: flex;\n flex-direction: column;\n\n // No need to set list-style: none; since .list-group-item is block level\n padding-inline-start: 0; // reset padding because ul and ol\n margin-bottom: 0;\n @include border-radius(var(--list-group-border-radius));\n }\n\n .list-group-numbered {\n list-style-type: none;\n counter-reset: section;\n\n > .list-group-item::before {\n // Increments only this instance of the section counter\n content: counters(section, \".\") \". \";\n counter-increment: section;\n }\n }\n\n // Individual list items\n //\n // Use on `li`s or `div`s within the `.list-group` parent.\n\n .list-group-item {\n position: relative;\n display: block;\n padding: var(--list-group-item-padding-y) var(--list-group-item-padding-x);\n color: var(--theme-fg, var(--list-group-color));\n // stylelint-disable-next-line scss/at-function-named-arguments\n text-decoration: if(sass($link-decoration == none): null);\n background-color: var(--theme-bg-subtle, var(--list-group-bg));\n border: var(--list-group-border-width) solid var(--theme-border, var(--list-group-border-color));\n\n &:first-child {\n @include border-top-radius(inherit);\n }\n\n &:last-child {\n @include border-bottom-radius(inherit);\n }\n\n &.disabled,\n &:disabled {\n color: var(--list-group-disabled-color);\n pointer-events: none;\n background-color: var(--list-group-disabled-bg);\n }\n\n // Include both here for `<a>`s and `<button>`s\n &.active {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: var(--list-group-active-color);\n background-color: var(--list-group-active-bg);\n border-color: var(--list-group-active-border-color);\n }\n\n // stylelint-disable-next-line scss/selector-no-redundant-nesting-selector\n & + .list-group-item {\n border-block-start-width: 0;\n\n &.active {\n margin-top: calc(-1 * var(--list-group-border-width));\n border-block-start-width: var(--list-group-border-width);\n }\n }\n }\n\n // Interactive list items\n //\n // Use anchor or button elements instead of `li`s or `div`s to create interactive\n // list items. Includes an extra `.active` modifier class for selected items.\n\n .list-group-item-action {\n width: 100%; // For `<button>`s (anchors become 100% by default though)\n color: var(--theme-fg, var(--list-group-action-color));\n text-align: inherit; // For `<button>`s (anchors inherit)\n text-decoration: none;\n\n &:not(.active) {\n // Hover state\n &:hover,\n &:focus {\n z-index: 1; // Place hover/focus items above their siblings for proper border styling\n color: var(--theme-fg-emphasis, var(--list-group-action-hover-color));\n text-decoration: none;\n background-color: var(--theme-bg-muted, var(--list-group-action-hover-bg));\n }\n\n &:active {\n color: var(--theme-fg-emphasis, var(--list-group-action-active-color));\n background-color: var(--theme-bg-muted, var(--list-group-action-active-bg));\n }\n }\n }\n\n // Horizontal\n //\n // Change the layout of list group items from vertical (default) to horizontal.\n\n @each $breakpoint in map.keys($breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n .#{$prefix}list-group-horizontal {\n flex-direction: row;\n\n > .list-group-item {\n &:first-child:not(:last-child) {\n @include border-bottom-start-radius(var(--list-group-border-radius));\n @include border-top-end-radius(0);\n }\n\n &:last-child:not(:first-child) {\n @include border-top-end-radius(var(--list-group-border-radius));\n @include border-bottom-start-radius(0);\n }\n\n &.active {\n margin-top: 0;\n }\n\n + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n\n &.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n }\n }\n }\n }\n\n // Flush list items\n //\n // Remove borders and border-radius to keep list group items edge-to-edge. Most\n // useful within other components (e.g., cards).\n\n .list-group-flush {\n @include border-radius(0);\n\n > .list-group-item {\n border-width: 0 0 var(--list-group-border-width);\n\n &:last-child {\n border-block-end-width: 0;\n }\n }\n }\n}\n","@use \"functions\" as *;\n@use \"config\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/gradients\" as *;\n@use \"mixins/tokens\" as *;\n@use \"mixins/transition\" as *;\n\n$nav-tokens: () !default;\n\n// scss-docs-start nav-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$nav-tokens: defaults(\n (\n --nav-gap: .125rem,\n --nav-link-gap: .5rem,\n --nav-link-align: center,\n --nav-link-justify: center,\n --nav-link-padding-x: .75rem,\n --nav-link-padding-y: .375rem,\n --nav-link-color: var(--fg-2),\n --nav-link-hover-color: var(--fg-1),\n --nav-link-hover-bg: var(--bg-1),\n --nav-link-active-color: var(--fg-body),\n --nav-link-active-bg: var(--bg-2),\n --nav-link-disabled-color: var(--fg-4),\n --nav-link-border-width: var(--border-width),\n --nav-link-transition-property: \"color, background-color, border-color\",\n --nav-link-transition-timing: .15s ease-in-out,\n --nav-link-transition: var(--nav-link-transition-property) var(--nav-link-transition-timing),\n ),\n $nav-tokens\n);\n// scss-docs-end nav-tokens\n\n$nav-tabs-tokens: () !default;\n\n// scss-docs-start nav-tabs-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$nav-tabs-tokens: defaults(\n (\n --nav-tabs-border-width: var(--border-width),\n --nav-tabs-border-color: var(--border-color),\n --nav-tabs-border-radius: var(--radius-5),\n --nav-tabs-link-hover-border-color: var(--border-subtle),\n --nav-tabs-link-active-color: var(--fg-color),\n --nav-tabs-link-active-bg: var(--bg-body),\n --nav-tabs-link-active-border-color: var(--border-color) var(--border-color) var(--bg-body),\n ),\n $nav-tabs-tokens\n);\n// scss-docs-end nav-tabs-tokens\n\n$nav-pills-tokens: () !default;\n\n// scss-docs-start nav-pills-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$nav-pills-tokens: defaults(\n (\n --nav-pills-bg: var(--bg-1),\n --nav-pills-padding: .25rem,\n --nav-pills-border-radius: var(--radius-9),\n --nav-pills-link-active-color: var(--primary-contrast),\n --nav-pills-link-active-bg: var(--primary-bg),\n --nav-pills-link-border-radius: var(--radius-9),\n ),\n $nav-pills-tokens\n);\n// scss-docs-end nav-pills-tokens\n\n$nav-underline-tokens: () !default;\n\n// scss-docs-start nav-underline-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$nav-underline-tokens: defaults(\n (\n --nav-gap: 1rem,\n --nav-link-active-bg: transparent,\n --nav-underline-border-width: .125rem,\n --nav-underline-link-active-color: var(--fg-color),\n ),\n $nav-underline-tokens\n);\n// scss-docs-end nav-underline-tokens\n\n// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s, `<ul>`s or `<ol>`s.\n\n@layer components {\n .nav {\n @include tokens($nav-tokens);\n\n display: flex;\n flex-wrap: wrap;\n gap: var(--nav-gap);\n padding-inline-start: 0;\n margin-bottom: 0;\n list-style: none;\n }\n\n .nav-item {\n display: flex;\n }\n\n .nav-link {\n display: flex;\n gap: var(--nav-link-gap);\n align-items: var(--nav-link-align);\n justify-content: var(--nav-link-justify);\n padding: var(--nav-link-padding-y) var(--nav-link-padding-x);\n font-weight: var(--nav-link-font-weight);\n color: var(--nav-link-color);\n text-decoration: none;\n white-space: nowrap;\n background: none;\n border: var(--nav-link-border-width) solid transparent;\n @include border-radius(var(--radius-5));\n @include transition(var(--nav-link-transition));\n\n &:hover,\n &:focus {\n color: var(--nav-link-hover-color);\n background-color: var(--nav-link-hover-bg);\n }\n\n &:focus-visible {\n --focus-ring-offset: 1px;\n color: var(--nav-link-hover-color);\n @include focus-ring(true);\n }\n\n &.active,\n &:active {\n color: var(--nav-link-active-color);\n background-color: var(--nav-link-active-bg);\n }\n\n // Disabled state lightens text\n &.disabled,\n &:disabled {\n color: var(--nav-link-disabled-color);\n pointer-events: none;\n cursor: default;\n }\n }\n\n //\n // Tabs\n //\n\n .nav-tabs {\n // scss-docs-start nav-tabs-css-vars\n @include tokens($nav-tabs-tokens);\n // scss-docs-end nav-tabs-css-vars\n\n box-shadow: inset 0 calc(-1 * var(--nav-tabs-border-width)) 0 var(--nav-tabs-border-color);\n\n .nav-link {\n border: var(--nav-tabs-border-width) solid transparent;\n border-bottom-color: var(--nav-tabs-border-color);\n @include border-bottom-radius(0);\n\n &:hover {\n // Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link\n isolation: isolate;\n border-color: var(--nav-tabs-link-hover-border-color);\n border-bottom-color: var(--nav-tabs-border-color);\n }\n }\n\n .nav-link.active,\n .nav-item.show .nav-link {\n color: var(--nav-tabs-link-active-color);\n background-color: var(--nav-tabs-link-active-bg);\n border-color: var(--nav-tabs-link-active-border-color);\n border-bottom-color: var(--nav-tabs-link-active-bg);\n }\n\n .menu {\n margin-top: calc(-1 * var(--nav-tabs-border-width));\n @include border-top-radius(0);\n }\n }\n\n //\n // Pills\n //\n\n .nav-pills {\n @include tokens($nav-pills-tokens);\n\n display: inline-flex;\n padding: var(--nav-pills-padding);\n background-color: var(--nav-pills-bg);\n @include border-radius(var(--nav-pills-border-radius));\n\n .nav-link {\n @include border-radius(var(--nav-pills-link-border-radius));\n }\n\n .nav-link.active,\n .show > .nav-link {\n color: var(--nav-pills-link-active-color);\n @include gradient-bg(var(--nav-pills-link-active-bg));\n }\n }\n\n .nav-pills-vertical {\n flex-direction: column;\n align-items: stretch;\n\n .nav-item,\n .nav-link {\n width: 100%;\n }\n }\n\n //\n // Underline\n //\n\n .nav-underline {\n // scss-docs-start nav-underline-css-vars\n @include tokens($nav-underline-tokens);\n // scss-docs-end nav-underline-css-vars\n\n .nav-link {\n padding-inline: 0;\n border: 0;\n border-block-end: var(--nav-underline-border-width) solid transparent;\n @include border-radius(0);\n\n &:hover,\n &:focus {\n border-block-end-color: currentcolor;\n }\n }\n\n .nav-link.active,\n .show > .nav-link {\n font-weight: $font-weight-bold;\n color: var(--nav-underline-link-active-color);\n border-block-end-color: currentcolor;\n }\n }\n\n //\n // Justified variants\n //\n\n .nav-fill {\n > .nav-link,\n .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n }\n\n .nav-justified {\n > .nav-link,\n .nav-item {\n flex-grow: 1;\n flex-basis: 0;\n text-align: center;\n }\n }\n\n .nav-fill,\n .nav-justified {\n .nav-item .nav-link {\n width: 100%; // Make sure button will grow\n }\n }\n\n // Tabbable tabs\n //\n // Hide tabbable panes to start, show them when `.active`\n\n .tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n }\n}\n","// Nav Overflow (Priority+ Pattern)\n//\n// A responsive navigation pattern that automatically moves items\n// to an overflow menu when space is limited.\n\n@layer components {\n .nav-overflow {\n flex-wrap: nowrap;\n min-width: 0; // Allow flex child to shrink below content width\n }\n\n // Pills use inline-flex by default; override so the nav fills its container\n // and the ResizeObserver can detect width changes.\n .nav-pills.nav-overflow {\n display: flex;\n }\n\n // Inside a navbar the nav is a flex child that sizes to content by default;\n // grow it so it fills remaining space and shrinks with the container.\n .navbar-nav.nav-overflow {\n flex: 1 1 0;\n }\n\n // Container item for overflow\n .nav-overflow-item {\n flex-shrink: 0;\n margin-inline-start: auto;\n }\n\n // Hide items that have been moved to overflow\n .nav-overflow [data-bs-nav-overflow=\"true\"] {\n display: none;\n }\n\n // Preserve items that should never overflow\n .nav-overflow-keep {\n flex-shrink: 0;\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/tokens\" as *;\n@use \"mixins/transition\" as *;\n\n// mdo-do: fix nav-link-height and navbar-brand-height, which we previously calculated with font-size, line-height, and block padding\n\n// stylelint-disable custom-property-no-missing-var-function\n// scss-docs-start navbar-breakpoints\n$navbar-breakpoints: $breakpoints !default;\n// scss-docs-end navbar-breakpoints\n\n$navbar-tokens: () !default;\n$navbar-dark-tokens: () !default;\n$navbar-nav-tokens: () !default;\n\n// scss-docs-start navbar-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$navbar-tokens: defaults(\n (\n --navbar-padding-x: 0,\n --navbar-padding-y: .5rem,\n --navbar-color: var(--fg-2),\n --navbar-hover-color: var(--fg-1),\n --navbar-disabled-color: var(--fg-3),\n --navbar-active-color: var(--fg-body),\n --navbar-brand-padding-y: .75rem,\n --navbar-brand-margin-end: 1rem,\n --navbar-brand-font-size: var(--font-size-md),\n --navbar-brand-font-weight: var(--font-weight-medium),\n --navbar-brand-color: var(--fg-body),\n --navbar-brand-hover-color: var(--fg-body),\n --navbar-nav-link-padding-x: .75rem,\n --navbar-toggler-width: 2rem,\n --navbar-toggler-padding-y: .25rem,\n --navbar-toggler-padding-x: .75rem,\n --navbar-toggler-font-size: var(--font-size-lg),\n --navbar-toggler-border-color: color-mix(in oklch, var(--fg-body) 15%, transparent),\n --navbar-toggler-border-radius: var(--radius-5),\n --navbar-toggler-transition: box-shadow .15s ease-in-out,\n ),\n $navbar-tokens\n);\n// scss-docs-end navbar-tokens\n\n// scss-docs-start navbar-dark-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$navbar-dark-tokens: defaults(\n (\n --navbar-color: color-mix(in oklch, var(--white) .55, transparent),\n --navbar-hover-color: color-mix(in oklch, var(--white) .75, transparent),\n --navbar-disabled-color: color-mix(in oklch, var(--white) .25, transparent),\n --navbar-active-color: var(--white),\n --navbar-brand-color: var(--white),\n --navbar-brand-hover-color: var(--white),\n --navbar-toggler-border-color: color-mix(in oklch, var(--white) .1, transparent),\n ),\n $navbar-dark-tokens\n);\n// scss-docs-end navbar-dark-tokens\n\n// scss-docs-start navbar-nav-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$navbar-nav-tokens: defaults(\n (\n --nav-gap: .25rem,\n --nav-link-gap: .5rem,\n --nav-link-padding-x: .5rem,\n --nav-link-padding-y: .375rem,\n --nav-link-color: var(--navbar-color),\n --nav-link-border-width: var(--border-width),\n //--nav-link-border-color: var(--border-color),\n --nav-link-hover-color: var(--navbar-hover-color),\n --nav-link-hover-bg: transparent,\n --nav-link-active-color: var(--navbar-active-color),\n --nav-link-active-bg: transparent,\n --nav-link-disabled-color: var(--navbar-disabled-color),\n ),\n $navbar-nav-tokens\n);\n// scss-docs-end navbar-nav-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer components {\n // Base navbar\n .navbar {\n @include tokens($navbar-tokens);\n\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: var(--navbar-padding-y) var(--navbar-padding-x);\n @include set-container();\n color: var(--navbar-color, var(--fg-body));\n background-color: var(--navbar-bg, var(--bg-body));\n // @include gradient-bg(var(--navbar-bg, var(--bg-body)));\n\n // Container properties for nested containers\n %container-flex-properties {\n display: flex;\n flex-wrap: inherit;\n align-items: center;\n justify-content: space-between;\n }\n\n > .container,\n > .container-fluid {\n @extend %container-flex-properties;\n }\n\n @each $breakpoint, $container-max-width in $container-max-widths {\n > .#{breakpoint-prefix($breakpoint, $container-max-widths)}container {\n @extend %container-flex-properties;\n }\n }\n }\n\n // Navbar brand\n //\n // Used for brand, project, or site names.\n .navbar-brand {\n padding-top: var(--navbar-brand-padding-y);\n padding-bottom: var(--navbar-brand-padding-y);\n margin-inline-end: var(--navbar-brand-margin-end);\n font-size: var(--navbar-brand-font-size);\n font-weight: var(--navbar-brand-font-weight);\n color: var(--navbar-brand-color);\n text-decoration: none;\n white-space: nowrap;\n\n &:hover,\n &:focus {\n color: var(--navbar-brand-hover-color);\n }\n }\n\n // Navigation within navbars. Sets all nav-link CSS variables needed for\n // proper styling.\n //\n // Relies on `.nav` base class.\n .navbar-nav {\n @include tokens($navbar-nav-tokens);\n\n display: flex;\n flex-direction: column;\n gap: var(--nav-gap);\n padding-inline-start: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-link {\n &.active,\n &.show {\n color: var(--navbar-active-color);\n border: var(--nav-link-border-width) solid var(--nav-link-border-color, transparent);\n }\n }\n }\n\n // Navbar text\n //\n // For adding text or inline elements to the navbar\n .navbar-text {\n padding-top: var(--navbar-brand-padding-y);\n padding-bottom: var(--navbar-brand-padding-y);\n color: var(--navbar-color);\n\n a,\n a:hover,\n a:focus {\n color: var(--navbar-active-color);\n }\n }\n\n // Button for toggling the navbar when in its collapsed state\n .navbar-toggler {\n --btn-bg: transparent;\n --btn-hover-bg: var(--bg-2);\n }\n\n // scss-docs-start navbar-expand-loop\n // Generate series of responsive `.navbar-expand` classes for configuring\n // where your navbar collapses and expands. Uses container queries so the\n // navbar responds to its own width, not the viewport width.\n\n // Mixin for expanded state styles (applied to descendants)\n @mixin navbar-expanded {\n // Style the inner container since we can't style .navbar itself with container queries\n > .container,\n > .container-fluid,\n %navbar-expand-container {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n\n .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n\n .navbar-toggler {\n display: none !important; // stylelint-disable-line declaration-no-important\n }\n\n [class*=\"drawer\"] {\n // stylelint-disable declaration-no-important\n // Reset native <dialog> UA styles and below-breakpoint drawer styles.\n // Must use !important to override both UA <dialog> defaults and the\n // responsive drawer styles from media-breakpoint-down().\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n @include box-shadow(none);\n @include transition(none);\n // stylelint-enable declaration-no-important\n\n .drawer-header {\n display: none !important; // stylelint-disable-line declaration-no-important\n }\n\n .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n }\n\n // Always expanded (no responsive behavior)\n .navbar-expand {\n @include navbar-expanded();\n\n // Also set on navbar itself for non-responsive case\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n\n // Responsive navbar expand classes using container queries\n @include loop-breakpoints-down($navbar-breakpoints) using ($breakpoint, $next, $prefix) {\n @if $next {\n .#{$prefix}navbar-expand {\n @include container-breakpoint-up($next) {\n @include navbar-expanded();\n }\n }\n }\n }\n // scss-docs-end navbar-expand-loop\n\n // Prevent drawer flash on breakpoint crossing.\n // When the navbar crosses from expanded (inline) to collapsed (drawer),\n // the drawer transitions from visibility:visible to visibility:hidden.\n // Without this override, the slide transition plays — briefly showing the\n // panel sliding away. Disabling transitions when not [open] ensures only\n // intentional show/hide actions animate.\n // stylelint-disable-next-line no-duplicate-selectors\n .navbar {\n [class*=\"drawer\"]:not([open], .hiding) {\n @include transition(none !important);\n }\n }\n\n .navbar-translucent {\n position: relative;\n background-color: transparent;\n\n &::before {\n position: absolute;\n inset: 0;\n z-index: -1;\n content: \"\";\n background-color: color-mix(in oklch, var(--navbar-bg, var(--bg-body)) 80%, transparent);\n background-image: none;\n backdrop-filter: blur(5px) saturate(180%);\n }\n }\n\n .navbar[data-bs-theme=\"dark\"] {\n @include tokens($navbar-dark-tokens);\n }\n}\n","@use \"functions\" as *;\n@use \"config\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/dialog-shared\" as *;\n@use \"mixins/transition\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$drawer-tokens: () !default;\n\n// scss-docs-start drawer-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$drawer-tokens: defaults(\n (\n --drawer-inset: var(--spacer),\n --drawer-zindex: #{$zindex-drawer},\n --drawer-width: 400px,\n --drawer-height: 30vh,\n --drawer-padding-x: var(--spacer),\n --drawer-padding-y: var(--spacer),\n --drawer-color: var(--fg-body),\n --drawer-bg: var(--bg-body),\n --drawer-border-width: var(--border-width),\n --drawer-border-color: var(--border-color-translucent),\n --drawer-border-radius: var(--radius-7),\n --drawer-box-shadow: var(--box-shadow-lg),\n --drawer-transition-duration: .3s,\n --drawer-transition-timing: cubic-bezier(.22, 1, .36, 1),\n --drawer-title-line-height: 1.5,\n ),\n $drawer-tokens\n);\n// scss-docs-end drawer-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n$drawer-backdrop-tokens: () !default;\n\n// scss-docs-start drawer-backdrop-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$drawer-backdrop-tokens: defaults(\n (\n --drawer-backdrop-bg: var(--bg-body),\n --drawer-backdrop-opacity: 25%,\n --drawer-backdrop-blur: 8px,\n ),\n $drawer-backdrop-tokens\n);\n// scss-docs-end drawer-backdrop-tokens\n\n%drawer-css-vars {\n @include tokens($drawer-tokens);\n}\n\n@layer components {\n // Apply CSS vars to all drawer responsive variants\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n .#{$prefix}drawer {\n @extend %drawer-css-vars;\n }\n }\n\n // Responsive drawer styles\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n .#{$prefix}drawer {\n @include media-breakpoint-down($next) {\n // Reset native <dialog> UA defaults (fit-content sizing, inset, margins)\n // and override display:none so visibility controls the hidden state.\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n\n @include border-radius(var(--drawer-border-radius));\n @include box-shadow(var(--drawer-box-shadow));\n\n // Placement positioning and sizing — always applied regardless of animation mode.\n &:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n\n &:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n\n &:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n\n &:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n\n &:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n\n // Animated variant (default) — transitions + off-screen transforms.\n // Adding .drawer-instant skips all animations.\n &:not(.drawer-instant) {\n @include transition(transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration));\n\n // Off-screen transforms per placement\n &:where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n\n :root:dir(rtl) & {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n }\n\n &:where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n\n :root:dir(rtl) & {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n }\n\n &:where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n\n &:where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n\n &:where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n\n // Open state: slide in with transition\n &[open] {\n visibility: visible;\n @include transition(transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s);\n transform: none;\n }\n }\n\n // Open state base (always applies, regardless of animation mode)\n &[open] {\n visibility: visible;\n transform: none;\n }\n }\n\n // Above breakpoint - show content inline (for responsive drawer)\n // Above breakpoint - show content inline (for responsive drawer).\n // Must fully reset all drawer styles so the element behaves as an\n // inline flex container within its parent (e.g., a navbar).\n @if not ($prefix == \"\") {\n @include media-breakpoint-up($next) {\n // stylelint-disable declaration-no-important\n --drawer-height: auto;\n --drawer-border-width: 0;\n // Reset native <dialog> UA styles\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n @include transition(none !important);\n // stylelint-enable declaration-no-important\n\n .drawer-header {\n display: none;\n }\n\n .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n // stylelint-disable-next-line declaration-no-important\n background-color: transparent !important;\n }\n @include border-radius(0);\n @include box-shadow(none);\n }\n }\n }\n }\n\n // Native ::backdrop for modal drawer.\n // ::backdrop lives in the top layer outside the DOM tree, so it does NOT\n // inherit custom properties from the element. Tokens must be applied directly.\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n .#{$prefix}drawer::backdrop {\n @include tokens($drawer-backdrop-tokens);\n @include tokens($drawer-tokens);\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n @include backdrop-transitions(var(--drawer-transition-duration), var(--drawer-transition-timing));\n }\n }\n\n // Backdrop entry animation — ::backdrop can safely use @starting-style\n // since it only exists when the dialog is in the top layer (no responsive issue).\n @starting-style {\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n .#{$prefix}drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n }\n }\n\n // Static backdrop transition (\"bounce\")\n .drawer-static {\n transform: scale(1.02);\n }\n\n .drawer-translucent {\n background-color: color-mix(in oklch, var(--drawer-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n\n // Sheet variant: flush-to-edge panel with no inset, border-radius, or shadow.\n // Overrides tokens so placement transforms (which use calc() with --drawer-inset)\n // automatically position the drawer at the viewport edge.\n .drawer-sheet {\n --drawer-inset: 0;\n --drawer-border-radius: 0;\n --drawer-border-width: 0;\n --drawer-box-shadow: none;\n }\n\n // Header with close button\n .drawer-header {\n @include dialog-header(var(--drawer-padding-y) var(--drawer-padding-x));\n\n .btn-close {\n padding: calc(var(--drawer-padding-y) * .5) calc(var(--drawer-padding-x) * .5);\n margin-inline-start: auto;\n margin-inline-end: calc(-.5 * var(--drawer-padding-x));\n margin-top: calc(-.5 * var(--drawer-padding-y));\n margin-bottom: calc(-.5 * var(--drawer-padding-y));\n }\n }\n\n // Title\n .drawer-title {\n @include dialog-title(var(--drawer-title-line-height));\n }\n\n // Scrollable body\n .drawer-body {\n display: flex;\n flex-direction: column;\n gap: var(--drawer-padding-y);\n @include dialog-body(var(--drawer-padding-y) var(--drawer-padding-x));\n overflow-y: auto;\n }\n\n // Optional footer\n .drawer-footer {\n @include dialog-footer(var(--drawer-padding-y) var(--drawer-padding-x), .5rem, var(--drawer-border-width), var(--drawer-border-color));\n }\n\n .drawer-fit-content {\n inset-block-end: auto;\n }\n}\n","@use \"functions\" as *;\n@use \"mixins/lists\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/gradients\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/tokens\" as *;\n\n// mdo-do: Update pagination to support variant themes\n\n// stylelint-disable custom-property-no-missing-var-function\n$pagination-tokens: () !default;\n\n// scss-docs-start pagination-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$pagination-tokens: defaults(\n (\n --pagination-min-height: var(--btn-input-min-height),\n --pagination-padding-x: var(--btn-input-padding-x),\n --pagination-padding-y: var(--btn-input-padding-y),\n --pagination-font-size: var(--btn-input-font-size),\n --pagination-color: var(--link-color),\n --pagination-bg: var(--bg-body),\n --pagination-border-width: var(--border-width),\n --pagination-border-color: var(--border-color),\n --pagination-border-radius: var(--btn-input-border-radius),\n --pagination-hover-color: var(--link-hover-color),\n --pagination-hover-bg: var(--bg-1),\n --pagination-hover-border-color: var(--border-color),\n --pagination-focus-color: var(--link-hover-color),\n --pagination-focus-bg: var(--bg-2),\n --pagination-active-color: var(--primary-contrast),\n --pagination-active-bg: var(--primary-bg),\n --pagination-active-border-color: var(--primary-bg),\n --pagination-disabled-color: var(--fg-3),\n --pagination-disabled-bg: var(--bg-2),\n --pagination-disabled-border-color: var(--border-color),\n ),\n $pagination-tokens\n);\n// scss-docs-end pagination-tokens\n\n// scss-docs-start pagination-sizes\n$pagination-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$pagination-sizes: defaults(\n (\"sm\", \"lg\"),\n $pagination-sizes\n);\n// scss-docs-end pagination-sizes\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer components {\n .pagination {\n @include tokens($pagination-tokens);\n\n display: flex;\n @include list-unstyled();\n }\n\n .page-link {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: var(--pagination-min-height);\n padding: var(--pagination-padding-y) var(--pagination-padding-x);\n font-size: var(--pagination-font-size);\n color: var(--pagination-color);\n text-decoration: none;\n background-color: var(--pagination-bg);\n border: var(--pagination-border-width) solid var(--pagination-border-color);\n @include transition(color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out);\n\n &:hover {\n z-index: 2;\n color: var(--pagination-hover-color);\n background-color: var(--pagination-hover-bg);\n border-color: var(--pagination-hover-border-color);\n }\n\n &:focus-visible {\n z-index: 3;\n color: var(--pagination-focus-color);\n background-color: var(--pagination-focus-bg);\n @include focus-ring(true);\n }\n\n &.active,\n .active > & {\n z-index: 3;\n color: var(--pagination-active-color);\n @include gradient-bg(var(--pagination-active-bg));\n border-color: var(--pagination-active-border-color);\n }\n\n &.disabled,\n .disabled > & {\n color: var(--pagination-disabled-color);\n pointer-events: none;\n background-color: var(--pagination-disabled-bg);\n border-color: var(--pagination-disabled-border-color);\n }\n }\n\n .page-item {\n &:not(:first-child) .page-link {\n margin-inline-start: calc(-1 * var(--pagination-border-width));\n }\n\n &:first-child {\n .page-link {\n @include border-start-radius(var(--pagination-border-radius));\n }\n }\n\n &:last-child {\n .page-link {\n @include border-end-radius(var(--pagination-border-radius));\n }\n }\n }\n\n //\n // Sizing\n //\n\n // scss-docs-start pagination-sizes-loop\n @each $size, $_ in $pagination-sizes {\n .pagination-#{$size} {\n --pagination-min-height: var(--bs-btn-input-#{$size}-min-height);\n --pagination-padding-y: var(--btn-input-#{$size}-padding-y);\n --pagination-padding-x: var(--btn-input-#{$size}-padding-x);\n --pagination-font-size: var(--btn-input-#{$size}-font-size);\n --pagination-border-radius: var(--btn-input-#{$size}-border-radius);\n }\n }\n // scss-docs-end pagination-sizes-loop\n}\n","@use \"colors\" as *;\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n$placeholder-tokens: () !default;\n\n// scss-docs-start placeholder-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$placeholder-tokens: defaults(\n (\n --placeholder-opacity-max: .5,\n --placeholder-opacity-min: .2,\n ),\n $placeholder-tokens\n);\n// scss-docs-end placeholder-tokens\n\n@layer components {\n .placeholder {\n @include tokens($placeholder-tokens);\n\n display: inline-block;\n min-height: 1em;\n vertical-align: middle;\n cursor: wait;\n background-color: currentcolor;\n opacity: var(--placeholder-opacity-max);\n\n &.btn::before {\n display: inline-block;\n content: \"\";\n }\n }\n\n // Sizing\n .placeholder-xs {\n min-height: .6em;\n }\n\n .placeholder-sm {\n min-height: .8em;\n }\n\n .placeholder-lg {\n min-height: 1.2em;\n }\n\n // Animation\n .placeholder-glow {\n .placeholder {\n animation: placeholder-glow 2s ease-in-out infinite;\n }\n }\n\n @keyframes placeholder-glow {\n 50% {\n opacity: var(--placeholder-opacity-min);\n }\n }\n\n .placeholder-wave {\n mask-image: linear-gradient(130deg, $black 55%, rgb(0 0 0 / calc(1 - var(--placeholder-opacity-min))) 75%, $black 95%);\n mask-size: 200% 100%;\n animation: placeholder-wave 2s linear infinite;\n }\n\n @keyframes placeholder-wave {\n 100% {\n mask-position: -200% 0%;\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/reset-text\" as *;\n@use \"mixins/tokens\" as *;\n\n$popover-tokens: () !default;\n\n// scss-docs-start popover-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$popover-tokens: defaults(\n (\n --popover-zindex: #{$zindex-popover},\n --popover-max-width: 280px,\n --popover-font-size: var(--font-size-sm),\n --popover-bg: var(--bg-body),\n --popover-border-width: var(--border-width),\n --popover-border-color: var(--border-color-translucent),\n --popover-border-radius: var(--radius-7),\n --popover-inner-border-radius: calc(var(--radius-7) - var(--border-width)),\n --popover-box-shadow: var(--box-shadow),\n --popover-header-padding-x: var(--spacer),\n --popover-header-padding-y: var(--spacer-3),\n --popover-header-font-size: var(--font-size-sm),\n --popover-header-color: #{$headings-color},\n --popover-header-bg: var(--bg-1),\n --popover-body-padding-x: var(--spacer),\n --popover-body-padding-y: var(--spacer-3),\n --popover-body-color: var(--fg-body),\n --popover-arrow-width: 1rem,\n --popover-arrow-height: .5rem,\n --popover-arrow-border: var(--popover-border-color),\n ),\n $popover-tokens\n);\n// scss-docs-end popover-tokens\n\n@layer components {\n .popover {\n // scss-docs-start popover-css-vars\n @include tokens($popover-tokens);\n // scss-docs-end popover-css-vars\n\n z-index: var(--popover-zindex);\n display: block;\n max-width: var(--popover-max-width);\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n font-size: var(--popover-font-size);\n // Allow breaking very long words so they don't overflow the popover's bounds\n word-wrap: break-word;\n background-color: var(--popover-bg);\n background-clip: padding-box;\n border: var(--popover-border-width) solid var(--popover-border-color);\n @include border-radius(var(--popover-border-radius));\n @include box-shadow(var(--popover-box-shadow));\n\n .popover-arrow {\n display: block;\n width: var(--popover-arrow-width);\n height: var(--popover-arrow-height);\n\n &::before,\n &::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n border-width: 0;\n }\n }\n }\n\n .bs-popover-top {\n > .popover-arrow {\n bottom: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n\n &::before,\n &::after {\n border-width: var(--popover-arrow-height) calc(var(--popover-arrow-width) * .5) 0;\n }\n\n &::before {\n bottom: 0;\n border-block-start-color: var(--popover-arrow-border);\n }\n\n &::after {\n bottom: var(--popover-border-width);\n border-block-start-color: var(--popover-bg);\n }\n }\n }\n\n .bs-popover-end {\n > .popover-arrow {\n left: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n width: var(--popover-arrow-height);\n height: var(--popover-arrow-width);\n\n &::before,\n &::after {\n border-width: calc(var(--popover-arrow-width) * .5) var(--popover-arrow-height) calc(var(--popover-arrow-width) * .5) 0;\n }\n\n &::before {\n left: 0;\n border-inline-end-color: var(--popover-arrow-border);\n }\n\n &::after {\n left: var(--popover-border-width);\n border-inline-end-color: var(--popover-bg);\n }\n }\n }\n\n .bs-popover-bottom {\n > .popover-arrow {\n top: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n\n &::before,\n &::after {\n border-width: 0 calc(var(--popover-arrow-width) * .5) var(--popover-arrow-height);\n }\n\n &::before {\n top: 0;\n border-block-end-color: var(--popover-arrow-border);\n }\n\n &::after {\n top: var(--popover-border-width);\n border-block-end-color: var(--popover-bg);\n }\n }\n\n // This will remove the popover-header's border just below the arrow\n .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: var(--popover-arrow-width);\n margin-inline-start: calc(-.5 * var(--popover-arrow-width));\n content: \"\";\n border-block-end: var(--popover-border-width) solid var(--popover-header-bg);\n }\n }\n\n .bs-popover-start {\n > .popover-arrow {\n right: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n width: var(--popover-arrow-height);\n height: var(--popover-arrow-width);\n\n &::before,\n &::after {\n border-width: calc(var(--popover-arrow-width) * .5) 0 calc(var(--popover-arrow-width) * .5) var(--popover-arrow-height);\n }\n\n &::before {\n right: 0;\n border-inline-start-color: var(--popover-arrow-border);\n }\n\n &::after {\n right: var(--popover-border-width);\n border-inline-start-color: var(--popover-bg);\n }\n }\n }\n\n .bs-popover-auto {\n &[data-bs-placement^=\"top\"] {\n @extend .bs-popover-top;\n }\n &[data-bs-placement^=\"right\"] {\n @extend .bs-popover-end;\n }\n &[data-bs-placement^=\"bottom\"] {\n @extend .bs-popover-bottom;\n }\n &[data-bs-placement^=\"left\"] {\n @extend .bs-popover-start;\n }\n }\n\n // Offset the popover to account for the popover arrow\n .popover-header {\n padding: var(--popover-header-padding-y) var(--popover-header-padding-x);\n margin-bottom: 0; // Reset the default from Reboot\n font-size: var(--popover-header-font-size);\n color: var(--popover-header-color);\n background-color: var(--popover-header-bg);\n border-block-end: var(--popover-border-width) solid var(--popover-border-color);\n @include border-top-radius(var(--popover-inner-border-radius));\n\n &:empty {\n display: none;\n }\n }\n\n .popover-body {\n padding: var(--popover-body-padding-y) var(--popover-body-padding-x);\n color: var(--popover-body-color);\n }\n}\n","@mixin reset-text {\n font-family: var(--body-font-family);\n // We deliberately do NOT reset font-size or overflow-wrap / word-wrap.\n font-style: normal;\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/gradients\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/tokens\" as *;\n\n$progress-tokens: () !default;\n\n// scss-docs-start progress-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$progress-tokens: defaults(\n (\n --progress-height: 1rem,\n --progress-font-size: var(--font-size-sm),\n --progress-bg: var(--bg-2),\n --progress-border-radius: var(--radius-5),\n --progress-box-shadow: var(--box-shadow-inset),\n --progress-bar-color: var(--white),\n --progress-bar-bg: var(--primary-bg),\n --progress-bar-transition: width .6s ease,\n --progress-bar-animation: progress-bar-stripes 1s linear infinite,\n ),\n $progress-tokens\n);\n// scss-docs-end progress-tokens\n\n// Disable animation if transitions are disabled\n\n@layer components {\n // scss-docs-start progress-keyframes\n @if $enable-transitions {\n @keyframes progress-bar-stripes {\n 0% { background-position-x: var(--progress-height); }\n }\n }\n // scss-docs-end progress-keyframes\n\n .progress,\n .progress-stacked {\n @include tokens($progress-tokens);\n\n display: flex;\n height: var(--progress-height);\n overflow: hidden;\n font-size: var(--progress-font-size);\n background-color: var(--progress-bg);\n @include border-radius(var(--progress-border-radius));\n @include box-shadow(var(--progress-box-shadow));\n }\n\n .progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: var(--theme-contrast, var(--progress-bar-color));\n text-align: center;\n white-space: nowrap;\n background-color: var(--theme-bg, var(--progress-bar-bg));\n @include transition(var(--progress-bar-transition));\n }\n\n .progress-bar-striped {\n @include gradient-striped();\n background-size: var(--progress-height) var(--progress-height);\n }\n\n .progress-stacked > .progress {\n overflow: visible;\n }\n\n .progress-stacked > .progress > .progress-bar {\n width: 100%;\n }\n\n @if $enable-transitions {\n .progress-bar-animated {\n animation: var(--progress-bar-animation);\n\n @if $enable-reduced-motion {\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n }\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$spinner-border-tokens: () !default;\n\n// scss-docs-start spinner-border-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$spinner-border-tokens: defaults(\n (\n --spinner-width: 2rem,\n --spinner-height: 2rem,\n --spinner-vertical-align: -.125em,\n --spinner-border-width: .25em,\n --spinner-animation-speed: .75s,\n --spinner-animation-name: spinner-border,\n ),\n $spinner-border-tokens\n);\n// scss-docs-end spinner-border-tokens\n\n$spinner-grow-tokens: () !default;\n\n// scss-docs-start spinner-grow-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$spinner-grow-tokens: defaults(\n (\n --spinner-width: 2rem,\n --spinner-height: 2rem,\n --spinner-vertical-align: -.125em,\n --spinner-animation-speed: .75s,\n --spinner-animation-name: spinner-grow,\n ),\n $spinner-grow-tokens\n);\n// scss-docs-end spinner-grow-tokens\n\n// stylelint-enable custom-property-no-missing-var-function\n\n//\n// Rotating border\n//\n\n@layer components {\n // mdo-do: Refactor this to assume flex parent and remove `vertical-align`\n .spinner-grow,\n .spinner-border {\n display: inline-block;\n flex-shrink: 0;\n width: var(--spinner-width);\n height: var(--spinner-height);\n vertical-align: var(--spinner-vertical-align);\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n animation: var(--spinner-animation-speed) linear infinite var(--spinner-animation-name);\n }\n\n // scss-docs-start spinner-border-keyframes\n @keyframes spinner-border {\n to { transform: rotate(360deg); }\n }\n // scss-docs-end spinner-border-keyframes\n\n .spinner-border {\n @include tokens($spinner-border-tokens);\n\n border: var(--spinner-border-width) solid currentcolor;\n border-inline-end-color: transparent;\n }\n\n .spinner-border-sm {\n // scss-docs-start spinner-border-sm-css-vars\n --spinner-width: 1rem;\n --spinner-height: 1rem;\n --spinner-border-width: .2em;\n // scss-docs-end spinner-border-sm-css-vars\n }\n\n //\n // Growing circle\n //\n\n // scss-docs-start spinner-grow-keyframes\n @keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n }\n // scss-docs-end spinner-grow-keyframes\n\n .spinner-grow {\n @include tokens($spinner-grow-tokens);\n\n background-color: currentcolor;\n opacity: 0;\n }\n\n .spinner-grow-sm {\n // scss-docs-start spinner-grow-sm-css-vars\n --spinner-width: 1rem;\n --spinner-height: 1rem;\n // scss-docs-end spinner-grow-sm-css-vars\n }\n\n @if $enable-reduced-motion {\n @media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n --spinner-animation-speed: 1.5s;\n }\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/tokens\" as *;\n\n$stepper-tokens: () !default;\n\n// scss-docs-start stepper-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$stepper-tokens: defaults(\n (\n --stepper-size: 2rem,\n --stepper-gap: 1rem,\n --stepper-font-size: var(--font-size-sm),\n --stepper-text-gap: .5rem,\n --stepper-track-size: .125rem,\n --stepper-bg: var(--bg-2),\n --stepper-active-color: var(--primary-contrast),\n --stepper-active-bg: var(--primary-bg),\n ),\n $stepper-tokens\n);\n// scss-docs-end stepper-tokens\n\n// scss-docs-start stepper-horizontal-mixin\n@mixin stepper-horizontal() {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n\n .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n\n &::after {\n inset-block-start: calc((var(--stepper-size) * .5) - (var(--stepper-track-size) * .5));\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n\n &:last-child::after {\n right: 100%;\n }\n }\n}\n// scss-docs-end stepper-horizontal-mixin\n\n@layer components {\n .stepper {\n @include tokens($stepper-tokens);\n\n display: grid;\n grid-auto-rows: 1fr;\n grid-auto-flow: row;\n gap: var(--stepper-gap);\n padding-inline-start: 0;\n list-style: none;\n counter-reset: stepper;\n }\n\n .stepper-item {\n position: relative;\n display: grid;\n grid-template-rows: auto;\n grid-template-columns: var(--stepper-size) auto;\n gap: var(--stepper-text-gap);\n align-items: var(--stepper-align-items, center);\n text-decoration: none;\n\n // The counter\n &::before {\n position: relative;\n z-index: 1;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--stepper-size);\n height: var(--stepper-size);\n padding: .5rem;\n font-size: var(--stepper-font-size);\n font-weight: 600;\n line-height: 1;\n text-align: center;\n content: counter(stepper);\n counter-increment: stepper;\n background-color: var(--stepper-bg);\n @include border-radius(50%);\n }\n\n // Connecting lines\n &::after {\n position: absolute;\n inset-block-start: 50%;\n inset-block-end: 100%;\n inset-inline-start: calc((var(--stepper-size) * .5) - (var(--stepper-track-size) * .5));\n width: var(--stepper-track-size);\n height: calc(100% + var(--stepper-gap));\n content: \"\";\n background-color: var(--stepper-bg);\n }\n\n // Avoid sibling selector for easier CSS overrides\n &:last-child::after {\n display: none;\n }\n\n &.active {\n &::before,\n &::after {\n color: var(--theme-contrast, var(--stepper-active-color));\n background-color: var(--theme-bg, var(--stepper-active-bg));\n }\n }\n }\n\n // Targets the last .active element from a sequence of active elements\n .stepper-item.active:not(:has(+ .stepper-item.active))::after {\n background-color: var(--stepper-bg);\n }\n\n .stepper-horizontal {\n @include stepper-horizontal();\n }\n\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n @if $next {\n .#{$prefix}stepper-horizontal {\n @include container-breakpoint-up($next) {\n @include stepper-horizontal();\n }\n }\n }\n }\n\n // scss-docs-start stepper-overflow\n .stepper-overflow {\n container-type: inline-size;\n overflow-x: auto;\n overscroll-behavior-x: contain;\n -webkit-overflow-scrolling: touch;\n\n > .stepper {\n width: max-content;\n min-width: 100%;\n }\n }\n // scss-docs-end stepper-overflow\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/tokens\" as *;\n\n$toast-tokens: () !default;\n\n// scss-docs-start toast-tokens\n// stylelint-disable custom-property-no-missing-var-function\n// stylelint-disable-next-line scss/dollar-variable-default\n$toast-tokens: defaults(\n (\n --toast-zindex: #{$zindex-toast},\n --toast-padding-x: 1rem,\n --toast-padding-y: .75rem,\n --toast-spacing: #{$container-padding-x},\n --toast-max-width: 350px,\n --toast-font-size: var(--font-size-sm),\n --toast-color: null,\n --toast-bg: var(--bg-body),\n --toast-border-width: var(--border-width),\n --toast-border-color: var(--border-color-translucent),\n --toast-border-radius: null,\n --toast-box-shadow: var(--box-shadow),\n --toast-header-color: var(--fg-3),\n --toast-header-bg: var(--bg-1),\n --toast-header-border-color: var(--border-color-translucent),\n ),\n $toast-tokens\n);\n// stylelint-enable custom-property-no-missing-var-function\n// scss-docs-end toast-tokens\n\n@layer components {\n .toast {\n @include tokens($toast-tokens);\n\n display: flex;\n flex-direction: column;\n width: var(--toast-max-width);\n max-width: 100%;\n overflow: hidden;\n font-size: var(--toast-font-size);\n color: var(--toast-color, var(--fg-body));\n pointer-events: auto;\n background-color: var(--toast-bg);\n background-clip: padding-box;\n border: var(--toast-border-width) solid var(--theme-border, var(--toast-border-color));\n box-shadow: var(--toast-box-shadow);\n @include border-radius(var(--toast-border-radius, var(--radius-7)));\n\n &.showing {\n opacity: 0;\n }\n\n &:not(.show) {\n display: none;\n }\n }\n\n .toast-container {\n --toast-zindex: #{$zindex-toast};\n\n position: absolute;\n z-index: var(--toast-zindex);\n width: max-content;\n max-width: 100%;\n pointer-events: none;\n\n > :not(:last-child) {\n margin-bottom: var(--toast-spacing);\n }\n }\n\n .toast-header {\n display: flex;\n align-items: center;\n padding: var(--toast-padding-y) var(--toast-padding-x);\n color: var(--theme-fg-emphasis, var(--toast-header-color));\n background-color: var(--theme-bg-subtle, var(--toast-header-bg));\n // background-clip: padding-box;\n border-block-end: var(--toast-border-width, var(--border-width)) solid var(--theme-border, var(--toast-header-border-color, var(--border-color-translucent)));\n\n .btn-close {\n margin-inline-start: calc(.5 * var(--toast-padding-x));\n margin-inline-end: calc(-.25 * var(--toast-padding-x));\n color: inherit;\n }\n }\n\n .toast-translucent {\n backdrop-filter: blur(5px) saturate(180%);\n }\n\n .toast-body {\n padding: var(--toast-padding-x);\n word-wrap: break-word;\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/reset-text\" as *;\n@use \"mixins/tokens\" as *;\n\n$tooltip-tokens: () !default;\n\n// scss-docs-start tooltip-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$tooltip-tokens: defaults(\n (\n --tooltip-zindex: #{$zindex-tooltip},\n --tooltip-max-width: 200px,\n --tooltip-padding-x: var(--spacer-3),\n --tooltip-padding-y: calc(var(--spacer) * .375),\n --tooltip-font-size: var(--font-size-sm),\n --tooltip-color: var(--bg-body),\n --tooltip-bg: var(--fg-body),\n --tooltip-border-radius: var(--radius-5),\n --tooltip-opacity: .95,\n --tooltip-arrow-width: .8rem,\n --tooltip-arrow-height: .4rem,\n ),\n $tooltip-tokens\n);\n// scss-docs-end tooltip-tokens\n\n@layer components {\n .tooltip {\n @include tokens($tooltip-tokens);\n\n z-index: var(--tooltip-zindex);\n display: block;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n font-size: var(--tooltip-font-size);\n // Allow breaking very long words so they don't overflow the tooltip's bounds\n word-wrap: break-word;\n opacity: 0;\n\n &.show { opacity: var(--tooltip-opacity); }\n\n .tooltip-arrow {\n display: block;\n width: var(--tooltip-arrow-width);\n height: var(--tooltip-arrow-height);\n\n &::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n }\n\n .bs-tooltip-top .tooltip-arrow {\n bottom: calc(-1 * var(--tooltip-arrow-height));\n\n &::before {\n top: -1px;\n border-width: var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * .5) 0;\n border-block-start-color: var(--tooltip-bg);\n }\n }\n\n .bs-tooltip-end .tooltip-arrow {\n left: calc(-1 * var(--tooltip-arrow-height));\n width: var(--tooltip-arrow-height);\n height: var(--tooltip-arrow-width);\n\n &::before {\n right: -1px;\n border-width: calc(var(--tooltip-arrow-width) * .5) var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * .5) 0;\n border-inline-end-color: var(--tooltip-bg);\n }\n }\n\n .bs-tooltip-bottom .tooltip-arrow {\n top: calc(-1 * var(--tooltip-arrow-height));\n\n &::before {\n bottom: -1px;\n border-width: 0 calc(var(--tooltip-arrow-width) * .5) var(--tooltip-arrow-height);\n border-block-end-color: var(--tooltip-bg);\n }\n }\n\n .bs-tooltip-start .tooltip-arrow {\n right: calc(-1 * var(--tooltip-arrow-height));\n width: var(--tooltip-arrow-height);\n height: var(--tooltip-arrow-width);\n\n &::before {\n left: -1px;\n border-width: calc(var(--tooltip-arrow-width) * .5) 0 calc(var(--tooltip-arrow-width) * .5) var(--tooltip-arrow-height);\n border-inline-start-color: var(--tooltip-bg);\n }\n }\n\n .bs-tooltip-auto {\n &[data-bs-placement^=\"top\"] {\n @extend .bs-tooltip-top;\n }\n &[data-bs-placement^=\"right\"] {\n @extend .bs-tooltip-end;\n }\n &[data-bs-placement^=\"bottom\"] {\n @extend .bs-tooltip-bottom;\n }\n &[data-bs-placement^=\"left\"] {\n @extend .bs-tooltip-start;\n }\n }\n\n // Wrapper for the tooltip content\n .tooltip-inner {\n max-width: var(--tooltip-max-width);\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n color: var(--tooltip-color);\n text-align: center;\n background-color: var(--tooltip-bg);\n @include border-radius(var(--tooltip-border-radius));\n }\n}\n","@use \"config\" as *;\n@use \"mixins/transition\" as *;\n\n.fade {\n @include transition($transition-fade);\n\n &:not(.show) {\n opacity: 0;\n }\n}\n\n// scss-docs-start collapse-classes\n.collapse {\n &:not(.show) {\n display: none;\n }\n}\n\n.collapsing {\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n\n &.collapse-horizontal {\n width: 0;\n height: auto;\n @include transition($transition-collapse-width);\n }\n}\n// scss-docs-end collapse-classes\n","@layer helpers {\n .focus-ring:focus-visible {\n // outline: var(--focus-ring);\n outline: var(--focus-ring-width) solid var(--theme-focus-ring, var(--focus-ring-color));\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/transition\" as *;\n\n@layer helpers {\n .icon-link {\n display: inline-flex;\n gap: $icon-link-gap;\n align-items: center;\n text-decoration-color: rgba(var(--link-color-rgb), var(--link-opacity, .5));\n text-underline-offset: $icon-link-underline-offset;\n backface-visibility: hidden;\n\n > .bi {\n flex-shrink: 0;\n width: $icon-link-icon-size;\n height: $icon-link-icon-size;\n fill: currentcolor;\n @include transition($icon-link-icon-transition);\n }\n }\n\n .icon-link-hover {\n &:hover,\n &:focus-visible {\n > .bi {\n transform: var(--icon-link-transform, $icon-link-icon-transform);\n }\n }\n }\n}\n","@use \"sass:map\";\n@use \"../config\" as *;\n@use \"../layout/breakpoints\" as *;\n\n@layer helpers {\n .fixed-top {\n position: fixed;\n inset: 0 0 auto;\n z-index: $zindex-fixed;\n }\n\n .fixed-bottom {\n position: fixed;\n inset: auto 0 0;\n z-index: $zindex-fixed;\n }\n\n // Responsive sticky top and bottom\n @each $breakpoint in map.keys($breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n .#{$prefix}sticky-top {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n\n .#{$prefix}sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: $zindex-sticky;\n }\n }\n }\n}\n","@use \"../layout/breakpoints\" as *;\n\n@layer helpers {\n // scss-docs-start stacks\n .stack-container {\n @include set-container();\n }\n\n [class*=\"hstack\"],\n [class*=\"vstack\"] {\n display: flex;\n flex: var(--stack-flex, 1 1 auto);\n flex-direction: var(--stack-direction, row);\n align-items: var(--stack-align-items, center);\n align-self: var(--stack-align-self, stretch);\n }\n\n @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n .#{$prefix}vstack {\n @include container-breakpoint-up($breakpoint) {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n .#{$prefix}hstack {\n @include container-breakpoint-up($breakpoint) {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n }\n // scss-docs-end stacks\n}\n","@use \"../theme\" as *;\n\n// Generate theme modifier classes (e.g., .theme-primary, .theme-accent, etc.)\n@layer helpers {\n @include generate-theme-classes();\n}\n","@use \"sass:map\";\n\n@function theme-color-values($key) {\n $result: ();\n\n @each $color-name, $color-map in $theme-colors {\n @if map.has-key($color-map, $key) {\n $result: map.merge($result, ($color-name: map.get($color-map, $key)));\n }\n }\n\n @return $result;\n}\n\n// Themes map sub-keys\n//\n// Return var() references to root tokens instead of raw values.\n// Ex: theme-color-refs(\"bg\") => (primary: var(--primary-bg), accent: var(--accent-bg), ...)\n@function theme-color-refs($key) {\n $result: ();\n\n @each $color-name, $color-map in $theme-colors {\n @if map.has-key($color-map, $key) {\n $result: map.merge($result, ($color-name: var(--#{$color-name}-#{$key})));\n }\n }\n\n @return $result;\n}\n\n// Theme token to root tokens\n//\n// Returns the global :root token reference for a given a given token map, prefix, and key.\n// Ex: theme-token-refs($theme-bgs, \"bg\") => (body: var(--bg-body), 1: var(--bg-1), ...)\n// Skips `inherit` since it's a CSS-wide keyword that can't be stored in a custom property.\n@function theme-token-refs($map, $prefix) {\n $result: ();\n\n @each $key, $value in $map {\n @if $value != inherit {\n $result: map.merge($result, ($key: var(--#{$prefix}-#{$key})));\n }\n }\n\n @return $result;\n}\n\n// Generate opacity values using color-mix()\n@function theme-opacity-values($color-var, $opacities: $util-opacity) {\n $result: ();\n\n @each $key, $value in $opacities {\n @if $key == 100 {\n // For 100%, use direct variable reference (more efficient)\n $result: map.merge($result, ($key: var($color-var)));\n } @else {\n // For other values, use color-mix()\n $percentage: $key * 1%;\n $result: map.merge($result, ($key: color-mix(in oklch, var($color-var) $percentage, transparent)));\n }\n }\n\n @return $result;\n}\n\n// Generate theme classes dynamically based on the keys in each theme color map\n@mixin generate-theme-classes() {\n @each $color-name, $color-map in $theme-colors {\n .theme-#{$color-name} {\n @each $key, $value in $color-map {\n --theme-#{$key}: var(--#{$color-name}-#{$key});\n }\n }\n }\n}\n\n// scss-docs-start theme-colors\n$theme-colors: (\n \"primary\": (\n \"base\": var(--blue-500),\n \"fg\": light-dark(var(--blue-600), var(--blue-400)),\n \"fg-emphasis\": light-dark(var(--blue-800), var(--blue-200)),\n \"bg\": var(--blue-500),\n \"bg-subtle\": light-dark(var(--blue-100), var(--blue-900)),\n \"bg-muted\": light-dark(var(--blue-200), var(--blue-800)),\n \"border\": light-dark(var(--blue-300), var(--blue-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"accent\": (\n \"base\": var(--indigo-500),\n \"fg\": light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300))),\n \"fg-emphasis\": light-dark(var(--indigo-800), var(--indigo-300)),\n \"bg\": var(--indigo-500),\n \"bg-subtle\": light-dark(var(--indigo-100), var(--indigo-900)),\n \"bg-muted\": light-dark(var(--indigo-200), var(--indigo-800)),\n \"border\": light-dark(var(--indigo-300), var(--indigo-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"success\": (\n \"base\": var(--green-500),\n \"fg\": light-dark(var(--green-600), var(--green-400)),\n \"fg-emphasis\": light-dark(var(--green-800), var(--green-300)),\n \"bg\": var(--green-500),\n \"bg-subtle\": light-dark(var(--green-100), var(--green-900)),\n \"bg-muted\": light-dark(var(--green-200), var(--green-800)),\n \"border\": light-dark(var(--green-300), var(--green-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"danger\": (\n \"base\": var(--red-500),\n \"fg\": light-dark(var(--red-600), var(--red-400)),\n \"fg-emphasis\": light-dark(var(--red-800), var(--red-300)),\n \"bg\": var(--red-500),\n \"bg-subtle\": light-dark(var(--red-100), var(--red-900)),\n \"bg-muted\": light-dark(var(--red-200), var(--red-800)),\n \"border\": light-dark(var(--red-300), var(--red-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"warning\": (\n \"base\": var(--yellow-500),\n \"fg\": light-dark(var(--yellow-700), var(--yellow-400)),\n \"fg-emphasis\": light-dark(var(--yellow-800), var(--yellow-300)),\n \"bg\": var(--yellow-500),\n \"bg-subtle\": light-dark(var(--yellow-100), var(--yellow-900)),\n \"bg-muted\": light-dark(var(--yellow-200), var(--yellow-800)),\n \"border\": light-dark(var(--yellow-300), var(--yellow-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body))),\n \"contrast\": var(--gray-900)\n ),\n \"info\": (\n \"base\": var(--cyan-500),\n \"fg\": light-dark(var(--cyan-600), var(--cyan-400)),\n \"fg-emphasis\": light-dark(var(--cyan-800), var(--cyan-300)),\n \"bg\": var(--cyan-500),\n \"bg-subtle\": light-dark(var(--cyan-100), var(--cyan-900)),\n \"bg-muted\": light-dark(var(--cyan-200), var(--cyan-800)),\n \"border\": light-dark(var(--cyan-300), var(--cyan-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body))),\n \"contrast\": var(--gray-900)\n ),\n \"inverse\": (\n \"base\": var(--gray-900),\n \"fg\": light-dark(var(--gray-900), var(--gray-200)),\n \"fg-emphasis\": light-dark(var(--gray-975), var(--white)),\n \"bg\": light-dark(var(--gray-900), var(--gray-025)),\n \"bg-subtle\": light-dark(var(--gray-100), var(--gray-900)),\n \"bg-muted\": light-dark(var(--gray-200), var(--gray-300)),\n \"border\": light-dark(var(--gray-400), var(--gray-100)),\n \"focus-ring\": color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body)),\n \"contrast\": light-dark(var(--white), var(--gray-900))\n ),\n \"secondary\": (\n \"base\": var(--gray-200),\n \"fg\": light-dark(var(--gray-600), var(--gray-400)),\n \"fg-emphasis\": light-dark(var(--gray-800), var(--gray-200)),\n \"bg\": light-dark(var(--gray-100), var(--gray-600)),\n \"bg-subtle\": light-dark(var(--gray-050), var(--gray-800)),\n \"bg-muted\": light-dark(var(--gray-100), var(--gray-700)),\n \"border\": light-dark(var(--gray-300), var(--gray-600)),\n \"focus-ring\": color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body)),\n \"contrast\": light-dark(var(--gray-900), var(--white))\n )\n) !default;\n// scss-docs-end theme-colors\n\n// mdo-do: consider using muted, subtle, ghost or something instead of linear scale?\n$theme-bgs: (\n \"body\": light-dark(var(--white), var(--gray-975)),\n \"1\": light-dark(var(--gray-025), var(--gray-950)),\n \"2\": light-dark(var(--gray-050), var(--gray-900)),\n \"3\": light-dark(var(--gray-100), var(--gray-800)),\n \"4\": light-dark(var(--gray-200), var(--gray-700)),\n \"fg\": var(--fg-body),\n \"white\": var(--white),\n \"black\": var(--black),\n \"transparent\": transparent,\n \"inherit\": inherit,\n) !default;\n\n$theme-fgs: (\n \"body\": light-dark(var(--gray-900), var(--gray-050)),\n \"1\": light-dark(var(--gray-800), var(--gray-200)),\n \"2\": light-dark(var(--gray-700), var(--gray-300)),\n \"3\": light-dark(var(--gray-600), var(--gray-500)),\n \"4\": light-dark(var(--gray-500), var(--gray-600)),\n \"bg\": var(--bg-body),\n \"white\": var(--white),\n \"black\": var(--black),\n \"inherit\": inherit,\n) !default;\n\n$theme-borders: (\n \"bg\": var(--bg-body),\n \"body\": light-dark(var(--gray-300), var(--gray-800)),\n \"muted\": light-dark(var(--gray-200), var(--gray-800)),\n \"subtle\": light-dark(var(--gray-100), var(--gray-900)),\n \"emphasized\": light-dark(var(--gray-400), var(--gray-600)),\n \"white\": var(--white),\n \"black\": var(--black),\n) !default;\n\n$util-opacity: (\n 10: .1,\n 20: .2,\n 30: .3,\n 40: .4,\n 50: .5,\n 60: .6,\n 70: .7,\n 80: .8,\n 90: .9,\n 100: 1\n) !default;\n","@use \"../mixins/visually-hidden\" as *;\n\n@layer helpers {\n .visually-hidden,\n .visually-hidden-focusable:not(:focus, :focus-within) {\n @include visually-hidden();\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Hide content visually while keeping it accessible to assistive technologies\n//\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin visually-hidden() {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n\n // Fix for positioned table caption that could become anonymous cells\n &:not(caption) {\n position: absolute !important;\n }\n\n // Fix to prevent overflowing children to become focusable\n * {\n overflow: hidden !important;\n }\n}\n\n// Use to only display content when it's focused, or one of its child elements is focused\n// (i.e. when focus is within the element/container that the class was applied to)\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/WAI/WCAG22/Techniques/general/G1.html\n\n@mixin visually-hidden-focusable() {\n &:not(:focus, :focus-within) {\n @include visually-hidden();\n }\n}\n","@use \"../config\" as *;\n\n@layer helpers {\n .stretched-link {\n &::#{$stretched-link-pseudo-element} {\n position: absolute;\n inset: 0;\n z-index: $stretched-link-z-index;\n content: \"\";\n }\n }\n}\n","@use \"../mixins/text-truncate\" as *;\n\n@layer helpers {\n .text-truncate {\n @include text-truncate();\n }\n}\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","@layer helpers {\n .vr {\n display: inline-block;\n align-self: stretch;\n width: var(--vr-border-width, var(--border-width));\n min-height: 1em;\n background-color: var(--border-color);\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/utilities\" as *;\n@use \"../utilities\" as *;\n\n@layer utilities {\n @include generate-utilities-loop($utilities, $breakpoints);\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"../layout/breakpoints\" as bp;\n\n// Utility generator\n\n// - Utilities can use three different types of selectors:\n// - class: .class\n// - attr-starts: [class^=\"class\"]\n// - attr-includes: [class*=\"class\"]\n// - Utilities can target children via `child-selector`, wrapped in :where() for zero specificity\n// - Utilities can generate regular CSS properties and CSS custom properties\n// - Utilities can be responsive or not\n// - Utilities can have state variants (e.g., hover, focus, active)\n// - Utilities can define local CSS variables\n//\n// CSS custom properties can be generated in two ways:\n//\n// 1. Property map with null values (CSS var receives the utility value):\n// \"bg-color\": (\n// property: (\n// \"--bg\": null,\n// \"background-color\": var(--bg)\n// ),\n// class: bg,\n// values: (\n// primary: var(--blue-500),\n// )\n// )\n// Generates:\n// .bg-primary {\n// --bs-bg: var(--bs-blue-500);\n// background-color: var(--bs-bg);\n// }\n//\n// 2. Variables map (static CSS custom properties on every class):\n// \"link-underline\": (\n// property: text-decoration-color,\n// class: link-underline,\n// variables: (\n// \"link-underline-opacity\": 1\n// ),\n// values: (...)\n// )\n// Generates:\n// .link-underline {\n// --bs-link-underline-opacity: 1;\n// text-decoration-color: ...;\n// }\n\n// Helper mixin to emit CSS custom properties from a utility's `variables` key.\n// When variables is a map, the provided static values are used on each class.\n// When variables is a list or single identifier, each variable receives the current utility value.\n@mixin generate-variables($utility, $value) {\n @if map.has-key($utility, variables) {\n $variables: map.get($utility, variables);\n @if meta.type-of($variables) == \"map\" {\n @each $var-key, $var-value in $variables {\n --#{$var-key}: #{$var-value};\n }\n } @else {\n // Treat as a list (or single identifier) — each variable gets the utility value\n @each $var-name in $variables {\n --#{$var-name}: #{$value};\n }\n }\n }\n}\n\n// Helper mixin to generate CSS properties for both legacy and property map approaches\n@mixin generate-properties($utility, $property-map, $properties, $value) {\n @if $property-map != null {\n // Property-Value Mapping approach\n @each $property, $default-value in $property-map {\n // If value is a map, check if it has a key for this property.\n // Otherwise, use default-value (or $value if default-value is null).\n $actual-value: $default-value;\n @if meta.type-of($value) == \"map\" and map.has-key($value, $property) {\n $actual-value: map.get($value, $property);\n } @else if $default-value == null {\n $actual-value: $value;\n }\n @if map.get($utility, important) {\n #{$property}: $actual-value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $actual-value;\n }\n }\n } @else {\n // Legacy approach\n @each $property in $properties {\n @if map.get($utility, important) {\n #{$property}: $value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $value;\n }\n }\n }\n}\n\n@mixin generate-utility($utility, $prefix: \"\") {\n // Validate required keys\n @if not map.has-key($utility, property) {\n @error \"Utility is missing required `property` key: #{$utility}\";\n }\n @if not map.has-key($utility, values) {\n @error \"Utility is missing required `values` key: #{$utility}\";\n }\n\n // Warn on unknown keys (likely typos)\n $valid-keys: property, values, class, selector, responsive, print, dark, important, state, variables, child-selector, enabled;\n @each $key in map.keys($utility) {\n @if not list.index($valid-keys, $key) {\n @warn \"Unknown utility key `#{$key}` found. Valid keys are: #{$valid-keys}\";\n }\n }\n\n // Validate boolean keys\n @each $bool-key in (responsive, print, dark, important, enabled) {\n @if map.has-key($utility, $bool-key) {\n $val: map.get($utility, $bool-key);\n @if $val != true and $val != false {\n @error \"Utility key `#{$bool-key}` should be a boolean (true or false), got: #{$val}\";\n }\n }\n }\n\n // Determine if we're generating a class, or an attribute selector\n $selector-type: \"class\";\n @if map.has-key($utility, selector) {\n $selector-type: map.get($utility, selector);\n // Validate selector type\n $valid-selectors: \"class\", \"attr-starts\", \"attr-includes\";\n @if not list.index($valid-selectors, $selector-type) {\n @error \"Invalid `selector` value `#{$selector-type}`. Must be one of: #{$valid-selectors}\";\n }\n }\n // Then get the class name to use in a class (e.g., .class) or in an attribute selector (e.g., [class^=\"class\"])\n $selector-class: map.get($utility, class);\n\n // Attribute selectors require a `class` key\n @if $selector-type != \"class\" and not map.has-key($utility, class) {\n @error \"Utility with `selector: #{$selector-type}` requires a `class` key.\";\n }\n\n // Get the list or map of values and ensure it's a map\n $values: map.get($utility, values);\n @if meta.type-of($values) != \"map\" {\n @if meta.type-of($values) == \"list\" {\n $list: ();\n @each $value in $values {\n $list: map.merge($list, ($value: $value));\n }\n $values: $list;\n } @else {\n $values: (null: $values);\n }\n }\n\n @each $key, $value in $values {\n $properties: map.get($utility, property);\n $property-map: null;\n $custom-class: \"\";\n\n // Check if property is a map (Property-Value Mapping approach)\n @if meta.type-of($properties) == \"map\" {\n $property-map: $properties;\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n }\n } @else {\n // Legacy approach: multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if meta.type-of($properties) == \"string\" {\n $properties: list.append((), $properties);\n }\n // Use custom class if present, otherwise use the first value from the list of properties\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n } @else {\n $custom-class: list.nth($properties, 1);\n }\n @if $custom-class == null {\n $custom-class: \"\";\n }\n }\n\n // State params to generate state variants\n $state: ();\n @if map.has-key($utility, state) {\n $state: map.get($utility, state);\n }\n\n // Don't add a dash before value key if value key is null (e.g. with shadow class)\n $custom-class-modifier: \"\";\n @if $key {\n @if $custom-class == \"\" {\n $custom-class-modifier: $key;\n } @else {\n $custom-class-modifier: \"-\" + $key;\n }\n }\n\n // Build the class name fragment (without prefix or dot) for reuse in state variants\n $class-name: \"\";\n @if $selector-type == \"class\" {\n @if $custom-class != \"\" {\n $class-name: $custom-class + $custom-class-modifier;\n } @else if $selector-class != null and $selector-class != \"\" {\n $class-name: $selector-class + $custom-class-modifier;\n } @else {\n $class-name: $custom-class-modifier;\n }\n }\n\n $selector: \"\";\n @if $selector-type == \"class\" {\n $selector: \".#{$prefix + $class-name}\";\n } @else if $selector-type == \"attr-starts\" {\n $selector: \"[class^=\\\"#{$selector-class}\\\"]\";\n } @else if $selector-type == \"attr-includes\" {\n $selector: \"[class*=\\\"#{$selector-class}\\\"]\";\n }\n\n // Apply child-selector wrapping if present (wraps in :where() for zero specificity)\n $child-sel: null;\n @if map.has-key($utility, child-selector) {\n $child-sel: map.get($utility, child-selector);\n }\n\n $final-selector: $selector;\n @if $child-sel {\n $final-selector: \":where(#{$selector} #{$child-sel})\";\n }\n\n #{$final-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n\n // Generate state variants (e.g., hover:link-10 instead of link-10-hover)\n @if $state != () {\n @each $state-variant in $state {\n $state-selector: \".#{$prefix}#{$state-variant}\\\\:#{$class-name}:#{$state-variant}\";\n @if $child-sel {\n $state-selector: \":where(#{$state-selector} #{$child-sel})\";\n }\n\n #{$state-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n }\n }\n }\n}\n\n// Generates all utility classes: base, responsive, print, and dark.\n// Extracted so that tests can call this mixin directly with a custom $utilities map\n// rather than having to mirror the loop conditions inline.\n@mixin generate-utilities-loop($utilities, $breakpoints) {\n // Base + responsive (one pass per breakpoint)\n @each $breakpoint in map.keys($breakpoints) {\n @include bp.media-breakpoint-up($breakpoint, $breakpoints) {\n $prefix: bp.breakpoint-prefix($breakpoint, $breakpoints);\n\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and (map.get($utility, responsive) or $prefix == \"\") {\n @include generate-utility($utility, $prefix);\n }\n }\n }\n }\n\n // Print utilities\n @media print {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, print) == true {\n @include generate-utility($utility, \"print\\\\:\");\n }\n }\n }\n\n // Dark utilities\n @media (prefers-color-scheme: dark) {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, dark) == true {\n @include generate-utility($utility, \"dark\\\\:\");\n }\n }\n }\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["bootstrap.css","../../scss/_banner.scss","../../scss/_colors.scss","../../scss/mixins/_tokens.scss","../../scss/_root.scss","../../scss/content/_reboot.scss","../../scss/_config.scss","../../scss/mixins/_border-radius.scss","../../scss/content/_type.scss","../../scss/mixins/_lists.scss","../../scss/content/_tables.scss","../../scss/layout/_breakpoints.scss","../../scss/content/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_box-shadow.scss","../../scss/content/_prose.scss","../../scss/mixins/_transition.scss","../../scss/layout/_containers.scss","../../scss/layout/_grid.scss","../../scss/mixins/_grid.scss","../../scss/forms/_labels.scss","../../scss/forms/_form-text.scss","../../scss/forms/_form-control.scss","../../scss/mixins/_focus-ring.scss","../../scss/forms/_check.scss","../../scss/mixins/_mask-icon.scss","../../scss/forms/_radio.scss","../../scss/forms/_switch.scss","../../scss/forms/_form-range.scss","../../scss/mixins/_gradients.scss","../../scss/forms/_floating-labels.scss","../../scss/forms/_input-group.scss","../../scss/forms/_strength.scss","../../scss/forms/_otp-input.scss","../../scss/forms/_form-adorn.scss","../../scss/forms/_chip-input.scss","../../scss/forms/_combobox.scss","../../scss/forms/_form-field.scss","../../scss/forms/_validation.scss","../../scss/mixins/_form-validation.scss","../../scss/buttons/_button.scss","../../scss/buttons/_button-group.scss","../../scss/buttons/_close.scss","../../scss/_accordion.scss","../../scss/_alert.scss","../../scss/_avatar.scss","../../scss/_badge.scss","../../scss/_breadcrumb.scss","../../scss/_chip.scss","../../scss/_card.scss","../../scss/_carousel.scss","../../scss/_datepicker.scss","../../scss/_dialog.scss","../../scss/mixins/_dialog-shared.scss","../../scss/_menu.scss","../../scss/_list-group.scss","../../scss/_nav.scss","../../scss/_nav-overflow.scss","../../scss/_navbar.scss","../../scss/_drawer.scss","../../scss/_pagination.scss","../../scss/_placeholder.scss","../../scss/_popover.scss","../../scss/mixins/_reset-text.scss","../../scss/_progress.scss","../../scss/_spinner.scss","../../scss/_stepper.scss","../../scss/_toasts.scss","../../scss/_tooltip.scss","../../scss/_transitions.scss","../../scss/helpers/_focus-ring.scss","../../scss/helpers/_icon-link.scss","../../scss/helpers/_position.scss","../../scss/helpers/_stacks.scss","../../scss/helpers/_theme-colors.scss","../../scss/_theme.scss","../../scss/helpers/_visually-hidden.scss","../../scss/mixins/_visually-hidden.scss","../../scss/helpers/_stretched-link.scss","../../scss/helpers/_text-truncation.scss","../../scss/mixins/_text-truncate.scss","../../scss/helpers/_vr.scss","../../scss/utilities/_api.scss","../../scss/mixins/_utilities.scss"],"names":[],"mappings":"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V;EmBl6EQ;IACE,wBAAA;EnBo6EV;EmBr6EQ;IACE,wBAAA;EnBu6EV;EmBx6EQ;IACE,wBAAA;EnB06EV;EmB36EQ;IACE,wBAAA;EnB66EV;EmB96EQ;IACE,wBAAA;EnBg7EV;EmBj7EQ;IACE,yBAAA;EnBm7EV;EmBp7EQ;IACE,yBAAA;EnBs7EV;EmBv7EQ;IACE,yBAAA;EnBy7EV;EmBl7EQ;IACE,oBAFS;EnBs7EnB;EmBr7EQ;IACE,oBAFS;EnBy7EnB;EmBx7EQ;IACE,oBAFS;EnB47EnB;EmB37EQ;IACE,oBAFS;EnB+7EnB;EmB97EQ;IACE,oBAFS;EnBk8EnB;EmBj8EQ;IACE,oBAFS;EnBq8EnB;EmBp8EQ;IACE,oBAFS;EnBw8EnB;EmBv8EQ;IACE,oBAFS;EnB28EnB;EmB18EQ;IACE,oBAFS;EnB88EnB;EmB78EQ;IACE,qBAFS;EnBi9EnB;EmBh9EQ;IACE,qBAFS;EnBo9EnB;EWx+EE;IQaM;MACE,wBAAA;InB89ER;ImB/9EM;MACE,wBAAA;InBi+ER;ImBl+EM;MACE,wBAAA;InBo+ER;ImBr+EM;MACE,wBAAA;InBu+ER;ImBx+EM;MACE,wBAAA;InB0+ER;ImB3+EM;MACE,wBAAA;InB6+ER;ImB9+EM;MACE,wBAAA;InBg/ER;ImBj/EM;MACE,wBAAA;InBm/ER;ImBp/EM;MACE,wBAAA;InBs/ER;ImBv/EM;MACE,yBAAA;InBy/ER;ImB1/EM;MACE,yBAAA;InB4/ER;ImB7/EM;MACE,yBAAA;InB+/ER;ImBx/EM;MACE,oBAFS;InB4/EjB;ImB3/EM;MACE,oBAFS;InB+/EjB;ImB9/EM;MACE,oBAFS;InBkgFjB;ImBjgFM;MACE,oBAFS;InBqgFjB;ImBpgFM;MACE,oBAFS;InBwgFjB;ImBvgFM;MACE,oBAFS;InB2gFjB;ImB1gFM;MACE,oBAFS;InB8gFjB;ImB7gFM;MACE,oBAFS;InBihFjB;ImBhhFM;MACE,oBAFS;InBohFjB;ImBnhFM;MACE,qBAFS;InBuhFjB;ImBthFM;MACE,qBAFS;InB0hFjB;EACF;EW/iFE;IQaM;MACE,wBAAA;InBqiFR;ImBtiFM;MACE,wBAAA;InBwiFR;ImBziFM;MACE,wBAAA;InB2iFR;ImB5iFM;MACE,wBAAA;InB8iFR;ImB/iFM;MACE,wBAAA;InBijFR;ImBljFM;MACE,wBAAA;InBojFR;ImBrjFM;MACE,wBAAA;InBujFR;ImBxjFM;MACE,wBAAA;InB0jFR;ImB3jFM;MACE,wBAAA;InB6jFR;ImB9jFM;MACE,yBAAA;InBgkFR;ImBjkFM;MACE,yBAAA;InBmkFR;ImBpkFM;MACE,yBAAA;InBskFR;ImB/jFM;MACE,oBAFS;InBmkFjB;ImBlkFM;MACE,oBAFS;InBskFjB;ImBrkFM;MACE,oBAFS;InBykFjB;ImBxkFM;MACE,oBAFS;InB4kFjB;ImB3kFM;MACE,oBAFS;InB+kFjB;ImB9kFM;MACE,oBAFS;InBklFjB;ImBjlFM;MACE,oBAFS;InBqlFjB;ImBplFM;MACE,oBAFS;InBwlFjB;ImBvlFM;MACE,oBAFS;InB2lFjB;ImB1lFM;MACE,qBAFS;InB8lFjB;ImB7lFM;MACE,qBAFS;InBimFjB;EACF;EWtnFE;IQaM;MACE,wBAAA;InB4mFR;ImB7mFM;MACE,wBAAA;InB+mFR;ImBhnFM;MACE,wBAAA;InBknFR;ImBnnFM;MACE,wBAAA;InBqnFR;ImBtnFM;MACE,wBAAA;InBwnFR;ImBznFM;MACE,wBAAA;InB2nFR;ImB5nFM;MACE,wBAAA;InB8nFR;ImB/nFM;MACE,wBAAA;InBioFR;ImBloFM;MACE,wBAAA;InBooFR;ImBroFM;MACE,yBAAA;InBuoFR;ImBxoFM;MACE,yBAAA;InB0oFR;ImB3oFM;MACE,yBAAA;InB6oFR;ImBtoFM;MACE,oBAFS;InB0oFjB;ImBzoFM;MACE,oBAFS;InB6oFjB;ImB5oFM;MACE,oBAFS;InBgpFjB;ImB/oFM;MACE,oBAFS;InBmpFjB;ImBlpFM;MACE,oBAFS;InBspFjB;ImBrpFM;MACE,oBAFS;InBypFjB;ImBxpFM;MACE,oBAFS;InB4pFjB;ImB3pFM;MACE,oBAFS;InB+pFjB;ImB9pFM;MACE,oBAFS;InBkqFjB;ImBjqFM;MACE,qBAFS;InBqqFjB;ImBpqFM;MACE,qBAFS;InBwqFjB;EACF;EW7rFE;IQaM;MACE,wBAAA;InBmrFR;ImBprFM;MACE,wBAAA;InBsrFR;ImBvrFM;MACE,wBAAA;InByrFR;ImB1rFM;MACE,wBAAA;InB4rFR;ImB7rFM;MACE,wBAAA;InB+rFR;ImBhsFM;MACE,wBAAA;InBksFR;ImBnsFM;MACE,wBAAA;InBqsFR;ImBtsFM;MACE,wBAAA;InBwsFR;ImBzsFM;MACE,wBAAA;InB2sFR;ImB5sFM;MACE,yBAAA;InB8sFR;ImB/sFM;MACE,yBAAA;InBitFR;ImBltFM;MACE,yBAAA;InBotFR;ImB7sFM;MACE,oBAFS;InBitFjB;ImBhtFM;MACE,oBAFS;InBotFjB;ImBntFM;MACE,oBAFS;InButFjB;ImBttFM;MACE,oBAFS;InB0tFjB;ImBztFM;MACE,oBAFS;InB6tFjB;ImB5tFM;MACE,oBAFS;InBguFjB;ImB/tFM;MACE,oBAFS;InBmuFjB;ImBluFM;MACE,oBAFS;InBsuFjB;ImBruFM;MACE,oBAFS;InByuFjB;ImBxuFM;MACE,qBAFS;InB4uFjB;ImB3uFM;MACE,qBAFS;InB+uFjB;EACF;EWpwFE;IQaM;MACE,wBAAA;InB0vFR;ImB3vFM;MACE,wBAAA;InB6vFR;ImB9vFM;MACE,wBAAA;InBgwFR;ImBjwFM;MACE,wBAAA;InBmwFR;ImBpwFM;MACE,wBAAA;InBswFR;ImBvwFM;MACE,wBAAA;InBywFR;ImB1wFM;MACE,wBAAA;InB4wFR;ImB7wFM;MACE,wBAAA;InB+wFR;ImBhxFM;MACE,wBAAA;InBkxFR;ImBnxFM;MACE,yBAAA;InBqxFR;ImBtxFM;MACE,yBAAA;InBwxFR;ImBzxFM;MACE,yBAAA;InB2xFR;ImBpxFM;MACE,oBAFS;InBwxFjB;ImBvxFM;MACE,oBAFS;InB2xFjB;ImB1xFM;MACE,oBAFS;InB8xFjB;ImB7xFM;MACE,oBAFS;InBiyFjB;ImBhyFM;MACE,oBAFS;InBoyFjB;ImBnyFM;MACE,oBAFS;InBuyFjB;ImBtyFM;MACE,o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DG;EnFkhTT;EmF17SE;IA5II,iBAoDG;EnFqhTT;EmF77SE;IA5II,iBAoDG;EnFwhTT;EmFh8SE;IA5II,kBAoDG;EnF2hTT;EmFn8SE;IA5II,kBAoDG;EnF8hTT;EmFt8SE;IA5II,mBAoDG;EnFiiTT;EmFz8SE;IA5II,iBAoDG;EnFoiTT;EmF58SE;IA5II,WAoDG;EnFuiTT;EmF/8SE;IA5II,mBAoDG;EnF0iTT;EmFl9SE;IA5II,iBAoDG;EnF6iTT;EmFr9SE;IA5II,gBAoDG;EnFgjTT;EmFx9SE;IA5II,sBAoDG;EnFmjTT;EmF39SE;IA5II,gBAoDG;EnFsjTT;EmF99SE;IA5II,UAoDG;EnFyjTT;EmFj+SE;IA5II,aAoDG;EnF4jTT;EmFp+SE;IA5II,YAoDG;EnF+jTT;EmFv+SE;IA5II,aAoDG;EnFkkTT;EmF1+SE;IA5II,UAoDG;EnFqkTT;EmF7+SE;IA5II,cAyDO;EnFmkTb;EmFh/SE;IA5II,gBAyDO;EnFskTb;EmFn/SE;IA5II,iBAyDO;EnFykTb;EmFt/SE;IA5II,gBAyDO;EnF4kTb;EmFz/SE;IA5II,gBAyDO;EnF+kTb;EmF5/SE;IA5II,kBAyDO;EnFklTb;EmF//SE;IA5II,mBAyDO;EnFqlTb;EmFlgTE;IA5II,kBAyDO;EnFwlTb;EmFrgTE;IA5II,gBAyDO;EnF2lTb;EmFxgTE;IA5II,kBAyDO;EnF8lTb;EmF3gTE;IA5II,mBAyDO;EnFimTb;EmF9gTE;IA5II,kBAyDO;EnFomTb;EmFjhTE;IA5II,2BAoDG;EnF4mTT;EmFphTE;IA5II,oBAoDG;EnF+mTT;EmFvhTE;IA5II,eAyDO;EnF6mTb;EmF1hTE;IA5II,qBAyDO;EnFgnTb;EmF7hTE;IA5II,cAyDO;EnFmnTb;EmFhiTE;IA5II,aAyDO;EnFsnTb;EmFniTE;IA5II,oBAyDO;EnFynTb;EmFtiTE;IA5II,cAyDO;EnF4nTb;EmFziTE;IA5II,kBAyDO;EnF+nTb;EmF5iTE;IA5II,mBAyDO;EnFkoTb;EmF/iTE;IA5II,aAyDO;EnFqoTb;EmFljTE;IA5II,oBAyDO;EnFwoTb;EmFrjTE;IA5II,iBAyDO;EnF2oTb;EmFxjTE;IA5II,kBAyDO;EnF8oTb;EmF3jTE;IA5II,aAyDO;EnFipTb;EmF9jTE;IA5II,gCAoDG;EnFypTT;EmFjkTE;IA5II,mCAoDG;EnF4pTT;EmFpkTE;IA5II,mCAoDG;EnF+pTT;EmFvkTE;IA5II,gBAoDG;EnFkqTT;EmF1kTE;IA5II,gBAyDO;EnFgqTb;EmF7kTE;IA5II,kBAyDO;EnFmqTb;EmFhlTE;IA5II,kBAyDO;EnFsqTb;EmFnlTE;IA5II,eAyDO;EnFyqTb;EmFtlTE;IA5II,gBAyDO;EnF4qTb;EmFzlTE;IA5II,MAoDG;EnForTT;EmF5lTE;IA5II,QAoDG;EnFurTT;EmF/lTE;IA5II,SAoDG;EnF0rTT;EmFlmTE;IA5II,SAoDG;EnF6rTT;EmFrmTE;IA5II,WAoDG;EnFgsTT;EmFxmTE;IA5II,YAoDG;EnFmsTT;EmF3mTE;IA5II,qBAoDG;EnFssTT;EmF9mTE;IA5II,uBAoDG;EnFysTT;EmFjnTE;IA5II,wBAoDG;EnF4sTT;EmFpnTE;IA5II,mBAoDG;EnF+sTT;EmFvnTE;IA5II,qBAoDG;EnFktTT;EmF1nTE;IA5II,sBAoDG;EnFqtTT;EmF7nTE;IA5II,gCAoDG;EnFwtTT;EmFhoTE;IA5II,2BAoDG;EnF2tTT;EmFnoTE;IA5II,2BAoDG;EnF8tTT;EmFtoTE;IA5II,4EAoDG;EnFiuTT;EmFzoTE;IA5II,SAoDG;EnFouTT;EmF5oTE;IA5II,wFAoDG;EnFuuTT;EmF/oTE;IA5II,qBAoDG;EnF0uTT;EmFlpTE;IA5II,uFAoDG;EnF6uTT;EmFrpTE;IA5II,oBAoDG;EnFgvTT;EmFxpTE;IA5II,sFAoDG;EnFmvTT;EmF3pTE;IA5II,mBAoDG;EnFsvTT;EmF9pTE;IA5II,yFAoDG;EnFyvTT;EmFjqTE;IA5II,sBAoDG;EnF4vTT;EmFpqTE;IA5II,kFAoDG;EnF+vTT;EmFvqTE;IA5II,eAoDG;EnFkwTT;EmF1qTE;IA5II,mFAoDG;EnFqwTT;EmF7qTE;IA5II,gBAoDG;EnFwwTT;EmFhrTE;IArJI,uCA6DG;IA7DH,oCA2ES;EnF8vTf;EmFprTE;IArJI,sCA6DG;IA7DH,oCA2ES;EnFkwTf;EmFxrTE;IArJI,uCA6DG;IA7DH,oCA2ES;EnFswTf;EmF5rTE;IArJI,sCA6DG;IA7DH,oCA2ES;EnF0wTf;EmFhsTE;IArJI,uCA6DG;IA7DH,oCA2ES;EnF8wTf;EmFpsTE;IArJI,oCA6DG;IA7DH,oCA2ES;EnFkxTf;EmFxsTE;IArJI,uCA6DG;IA7DH,oCA2ES;EnFsxTf;EmF5sTE;IArJI,yCA6DG;IA7DH,oCA2ES;EnF0xTf;EmFhtTE;IArJI,sCA6DG;IA7DH,oCA2ES;EnF8xTf;EmFptTE;IArJI,wCA6DG;IA7DH,oCA2ES;EnFkyTf;EmFxtTE;IArJI,yCA6DG;IA7DH,oCA2ES;EnFsyTf;EmF5tTE;IArJI,0CA6DG;IA7DH,oCA2ES;EnF0yTf;EmFhuTE;IArJI,8CA6DG;IA7DH,oCA2ES;EnF8yTf;EmFpuTE;IArJI,yCA6DG;IA7DH,oCA2ES;EnFkzTf;EmFxuTE;IArJI,yCA6DG;IA7DH,oCA2ES;EnFszTf;EmF5uTE;IArJI,2CA6DG;IA7DH,oCA2ES;EnF0zTf;EmFhvTE;IArJI,0CA6DG;IA7DH,oCA2ES;EnF8zTf;EmFpvTE;IArJI,2CA6DG;IA7DH,oCA2ES;EnFk0Tf;EmFxvTE;IArJI,0CA6DG;IA7DH,oCA2ES;EnFs0Tf;EmF5vTE;IArJI,2CA6DG;IA7DH,oCA2ES;EnF00Tf;EmFhwTE;IArJI,wCA6DG;IA7DH,oCA2ES;EnF80Tf;EmFpwTE;IArJI,2CA6DG;IA7DH,oCA2ES;EnFk1Tf;EmFxwTE;IArJI,6CA6DG;IA7DH,oCA2ES;EnFs1Tf;EmF5wTE;IA5II,iBAoDG;EnFu2TT;EmF/wTE;IA5II,iBAoDG;EnF02TT;EmFlxTE;IA5II,iBAoDG;EnF62TT;EmFrxTE;IA5II,iBAoDG;EnFg3TT;EmFxxTE;IA5II,iBAoDG;EnFm3TT;EmF3xTE;IA5II,0EAoDG;EnFs3TT;EmF9xTE;IA5II,0EAoDG;EnFy3TT;EmFjyTE;IA5II,0EAoDG;EnF43TT;EmFpyTE;IA5II,0EAoDG;EnF+3TT;EmFvyTE;IA5II,0EAoDG;EnFk4TT;EmF1yTE;IA5II,0EAoDG;EnFq4TT;EmF7yTE;IA5II,0EAoDG;EnFw4TT;EmFhzTE;IA5II,0EAoDG;EnF24TT;EmFnzTE;IA5II,0EAoDG;EnF84TT;EmFtzTE;IA5II,oCAoDG;EnFi5TT;EmFzzTE;IA5II,WAoDG;EnFo5TT;EmF5zTE;IA5II,WAoDG;EnFu5TT;EmF/zTE;IA5II,WAoDG;EnF05TT;EmFl0TE;IA5II,WAoDG;EnF65TT;EmFr0TE;IA5II,WAoDG;EnFg6TT;EmFx0TE;IA5II,WAoDG;EnFm6TT;EmF30TE;IA5II,WAoDG;EnFs6TT;EmF90TE;IA5II,WAoDG;EnFy6TT;EmFj1TE;IA5II,WAoDG;EnF46TT;EmFp1TE;IA5II,YAoDG;EnF+6TT;EmFv1TE;IA5II,YAoDG;EnFk7TT;EmF11TE;IA5II,YAoDG;EnFq7TT;EmF71TE;IA5II,UAoDG;EnFw7TT;EmFh2TE;IA5II,UAoDG;EnF27TT;EmFn2TE;IA5II,UAoDG;EnF87TT;EmFt2TE;IA5II,WAoDG;EnFi8TT;EmFz2TE;IA5II,WAoDG;EnFo8TT;EmF52TE;IA5II,kBAoDG;EnFu8TT;EmF/2TE;IA5II,kBAoDG;EnF08TT;EmFl3TE;IA5II,uBAoDG;IApDH,kBAoDG;EnF68TT;EmFr3TE;IA5II,eAoDG;EnFg9TT;EmFx3TE;IA5II,YAoDG;EnFm9TT;EmF33TE;IA5II,eAoDG;EnFs9TT;EmF93TE;IA5II,YAoDG;EnFy9TT;EmFj4TE;IA5II,gBAoDG;EnF49TT;EmFp4TE;IA5II,WAoDG;EnF+9TT;EmFv4TE;IA5II,WAoDG;EnFk+TT;EmF14TE;IA5II,WAoDG;EnFq+TT;EmF74TE;IA5II,YAoDG;EnFw+TT;EmFh5TE;IA5II,YAoDG;EnF2+TT;EmFn5TE;IA5II,mBAoDG;EnF8+TT;EmFt5TE;IA5II,mBAoDG;EnFi/TT;EmFz5TE;IA5II,wBAoDG;IApDH,mBAoDG;EnFo/TT;EmF55TE;IA5II,gBAoDG;EnFu/TT;EmF/5TE;IA5II,aAoDG;EnF0/TT;EmFl6TE;IA5II,gBAoDG;EnF6/TT;EmFr6TE;IA5II,aAoDG;EnFggUT;EmFx6TE;IA5II,iBAoDG;EnFmgUT;EmF36TE;IA5II,cAoDG;EnFsgUT;EmF96TE;IA5II,mBAyDO;EnFogUb;EmFj7TE;IA5II,sBAyDO;EnFugUb;EmFp7TE;IA5II,2BAyDO;EnF0gUb;EmFv7TE;IA5II,8BAyDO;EnF6gUb;EmF17TE;IA5II,YAoDG;EnFqhUT;EmF77TE;IA5II,YAoDG;EnFwhUT;EmFh8TE;IA5II,cAoDG;EnF2hUT;EmFn8TE;IA5II,cAoDG;EnF8hUT;EmFt8TE;IA5II,eAyDO;EnF4hUb;EmFz8TE;IA5II,iBAyDO;EnF+hUb;EmF58TE;IA5II,uBAyDO;EnFkiUb;EmF/8TE;IA5II,2BAoDG;EnF0iUT;EmFl9TE;IA5II,yBAoDG;EnF6iUT;EmFr9TE;IA5II,uBAoDG;EnFgjUT;EmFx9TE;IA5II,8BAoDG;EnFmjUT;EmF39TE;IA5II,6BAoDG;EnFsjUT;EmF99TE;IA5II,6BAoDG;EnFyjUT;EmFj+TE;IA5II,oBAoDG;EnF4jUT;EmFp+TE;IA5II,kBAoDG;EnF+jUT;EmFv+TE;IA5II,qBAoDG;EnFkkUT;EmF1+TE;IA5II,sBAoDG;EnFqkUT;EmF7+TE;IA5II,mBAoDG;EnFwkUT;EmFh/TE;IA5II,iBAoDG;EnF2kUT;EmFn/TE;IA5II,oBAoDG;EnF8kUT;EmFt/TE;IA5II,uBAoDG;EnFilUT;EmFz/TE;IA5II,qBAoDG;EnFolUT;EmF5/TE;IA5II,mBAoDG;EnFulUT;EmF//TE;IA5II,qBAoDG;EnF0lUT;EmFlgUE;IA5II,oBAoDG;EnF6lUT;EmFrgUE;IA5II,yBAoDG;EnFgmUT;EmFxgUE;IA5II,uBAoDG;EnFmmUT;EmF3gUE;IA5II,qBAoDG;EnFsmUT;EmF9gUE;IA5II,4BAoDG;EnFymUT;EmFjhUE;IA5II,2BAoDG;EnF4mUT;EmFphUE;IA5II,sBAoDG;EnF+mUT;EmFvhUE;IA5II,gBAoDG;EnFknUT;EmF1hUE;IA5II,sBAoDG;EnFqnUT;EmF7hUE;IA5II,oBAoDG;EnFwnUT;EmFhiUE;IA5II,kBAoDG;EnF2nUT;EmFniUE;IA5II,oBAoDG;EnF8nUT;EmFtiUE;IA5II,mBAoDG;EnFioUT;EmFziUE;IA5II,kBAoDG;EnFooUT;EmF5iUE;IA5II,gBAoDG;EnFuoUT;EmF/iUE;IA5II,mBAoDG;EnF0oUT;EmFljUE;IA5II,oBAoDG;EnF6oUT;EmFrjUE;IA5II,0BAoDG;EnFgpUT;EmFxjUE;IA5II,qCAoDG;EnFmpUT;EmF3jUE;IA5II,qCAoDG;EnFspUT;EmF9jUE;IA5II,qCAoDG;EnFypUT;EmFjkUE;IA5II,qCAoDG;EnF4pUT;EmFpkUE;IA5II,mBAoDG;EnF+pUT;EmFvkUE;IA5II,mBAyDO;EnF6pUb;EmF1kUE;IA5II,sBAyDO;EnFgqUb;EmF7kUE;IA5II,qBAyDO;EnFmqUb;EmFhlUE;IA5II,SAoDG;EnF2qUT;EmFnlUE;IA5II,QAoDG;EnF8qUT;EmFtlUE;IA5II,QAoDG;EnFirUT;EmFzlUE;IA5II,QAoDG;EnForUT;EmF5lUE;IA5II,QAoDG;EnFurUT;EmF/lUE;IA5II,QAoDG;EnF0rUT;EmFlmUE;IA5II,QAoDG;EnF6rUT;EmFrmUE;IA5II,QAoDG;EnFgsUT;EmFxmUE;IA5II,SAoDG;EnFmsUT;EmF3mUE;IA5II,eAoDG;EnFssUT;EmF9mUE;IA5II,cAoDG;EnFysUT;EmFjnUE;IA5II,eAoDG;EnF4sUT;EmFpnUE;IA5II,YAoDG;EnF+sUT;EmFvnUE;IA5II,eAoDG;EnFktUT;EmF1nUE;IA5II,cAoDG;EnFqtUT;EmF7nUE;IA5II,YAoDG;EnFwtUT;EmFhoUE;IA5II,cAoDG;EnF2tUT;EmFnoUE;IA5II,YAoDG;EnF8tUT;EmFtoUE;IA5II,YAoDG;EnFiuUT;EmFzoUE;IA5II,gBAoDG;EnFouUT;EmF5oUE;IA5II,sBAoDG;EnFuuUT;EmF/oUE;IA5II,qBAoDG;EnF0uUT;EmFlpUE;IA5II,sBAoDG;EnF6uUT;EmFrpUE;IA5II,mBAoDG;EnFgvUT;EmFxpUE;IA5II,sBAoDG;EnFmvUT;EmF3pUE;IA5II,qBAoDG;EnFsvUT;EmF9pUE;IA5II,mBAoDG;EnFyvUT;EmFjqUE;IA5II,qBAoDG;EnF4vUT;EmFpqUE;IA5II,mBAoDG;EnF+vUT;EmFvqUE;IA5II,mBAoDG;EnFkwUT;EmF1qUE;IA5II,eAoDG;EnFqwUT;EmF7qUE;IA5II,qBAoDG;EnFwwUT;EmFhrUE;IA5II,oBAoDG;EnF2wUT;EmFnrUE;IA5II,qBAoDG;EnF8wUT;EmFtrUE;IA5II,kBAoDG;EnFixUT;EmFzrUE;IA5II,qBAoDG;EnFoxUT;EmF5rUE;IA5II,oBAoDG;EnFuxUT;EmF/rUE;IA5II,kBAoDG;EnF0xUT;EmFlsUE;IA5II,oBAoDG;EnF6xUT;EmFrsUE;IA5II,kBAoDG;EnFgyUT;EmFxsUE;IA5II,kBAoDG;EnFmyUT;EmF3sUE;IA5II,qBAoDG;EnFsyUT;EmF9sUE;IA5II,2BAoDG;EnFyyUT;EmFjtUE;IA5II,0BAoDG;EnF4yUT;EmFptUE;IA5II,2BAoDG;EnF+yUT;EmFvtUE;IA5II,wBAoDG;EnFkzUT;EmF1tUE;IA5II,2BAoDG;EnFqzUT;EmF7tUE;IA5II,0BAoDG;EnFwzUT;EmFhuUE;IA5II,wBAoDG;EnF2zUT;EmFnuUE;IA5II,0BAoDG;EnF8zUT;EmFtuUE;IA5II,wBAoDG;EnFi0UT;EmFzuUE;IA5II,wBAoDG;EnFo0UT;EmF5uUE;IA5II,oBAoDG;EnFu0UT;EmF/uUE;IA5II,0BAoDG;EnF00UT;EmFlvUE;IA5II,yBAoDG;EnF60UT;EmFrvUE;IA5II,0BAoDG;EnFg1UT;EmFxvUE;IA5II,uBAoDG;EnFm1UT;EmF3vUE;IA5II,0BAoDG;EnFs1UT;EmF9vUE;IA5II,yBAoDG;EnFy1UT;EmFjwUE;IA5II,uBAoDG;EnF41UT;EmFpwUE;IA5II,yBAoDG;EnF+1UT;EmFvwUE;IA5II,uBAoDG;EnFk2UT;EmF1wUE;IA5II,2BAoDG;EnFq2UT;EmF7wUE;IA5II,0BAoDG;EnFw2UT;EmFhxUE;IA5II,uBAoDG;EnF22UT;EmFnxUE;IA5II,mBAoDG;EnF82UT;EmFtxUE;IA5II,yBAoDG;EnFi3UT;EmFzxUE;IA5II,wBAoDG;EnFo3UT;EmF5xUE;IA5II,yBAoDG;EnFu3UT;EmF/xUE;IA5II,sBAoDG;EnF03UT;EmFlyUE;IA5II,yBAoDG;EnF63UT;EmFryUE;IA5II,wBAoDG;EnFg4UT;EmFxyUE;IA5II,sBAoDG;EnFm4UT;EmF3yUE;IA5II,wBAoDG;EnFs4UT;EmF9yUE;IA5II,sBAoDG;EnFy4UT;EmFjzUE;IA5II,sBAoDG;EnF44UT;EmFpzUE;IA5II,sBAoDG;EnF+4UT;EmFvzUE;IA5II,4BAoDG;EnFk5UT;EmF1zUE;IA5II,2BAoDG;EnFq5UT;EmF7zUE;IA5II,4BAoDG;EnFw5UT;EmFh0UE;IA5II,yBAoDG;EnF25UT;EmFn0UE;IA5II,4BAoDG;EnF85UT;EmFt0UE;IA5II,2BAoDG;EnFi6UT;EmFz0UE;IA5II,yBAoDG;EnFo6UT;EmF50UE;IA5II,2BAoDG;EnFu6UT;EmF/0UE;IA5II,yBAoDG;EnF06UT;EmFl1UE;IA5II,6BAoDG;EnF66UT;EmFr1UE;IA5II,4BAoDG;EnFg7UT;EmFx1UE;IA5II,yBAoDG;EnFm7UT;EmF31UE;IA5II,UAoDG;EnFs7UT;EmF91UE;IA5II,gBAoDG;EnFy7UT;EmFj2UE;IA5II,eAoDG;EnF47UT;EmFp2UE;IA5II,gBAoDG;EnF+7UT;EmFv2UE;IA5II,aAoDG;EnFk8UT;EmF12UE;IA5II,gBAoDG;EnFq8UT;EmF72UE;IA5II,eAoDG;EnFw8UT;EmFh3UE;IA5II,aAoDG;EnF28UT;EmFn3UE;IA5II,eAoDG;EnF88UT;EmFt3UE;IA5II,aAoDG;EnFi9UT;EmFz3UE;IA5II,iBAoDG;EnFo9UT;EmF53UE;IA5II,uBAoDG;EnFu9UT;EmF/3UE;IA5II,sBAoDG;EnF09UT;EmFl4UE;IA5II,uBAoDG;EnF69UT;EmFr4UE;IA5II,oBAoDG;EnFg+UT;EmFx4UE;IA5II,uBAoDG;EnFm+UT;EmF34UE;IA5II,sBAoDG;EnFs+UT;EmF94UE;IA5II,oBAoDG;EnFy+UT;EmFj5UE;IA5II,sBAoDG;EnF4+UT;EmFp5UE;IA5II,oBAoDG;EnF++UT;EmFv5UE;IA5II,gBAoDG;EnFk/UT;EmF15UE;IA5II,sBAoDG;EnFq/UT;EmF75UE;IA5II,qBAoDG;EnFw/UT;EmFh6UE;IA5II,sBAoDG;EnF2/UT;EmFn6UE;IA5II,mBAoDG;EnF8/UT;EmFt6UE;IA5II,sBAoDG;EnFigVT;EmFz6UE;IA5II,qBAoDG;EnFogVT;EmF56UE;IA5II,mBAoDG;EnFugVT;EmF/6UE;IA5II,qBAoDG;EnF0gVT;EmFl7UE;IA5II,mBAoDG;EnF6gVT;EmFr7UE;IA5II,sBAoDG;EnFghVT;EmFx7UE;IA5II,4BAoDG;EnFmhVT;EmF37UE;IA5II,2BAoDG;EnFshVT;EmF97UE;IA5II,4BAoDG;EnFyhVT;EmFj8UE;IA5II,yBAoDG;EnF4hVT;EmFp8UE;IA5II,4BAoDG;EnF+hVT;EmFv8UE;IA5II,2BAoDG;EnFkiVT;EmF18UE;IA5II,yBAoDG;EnFqiVT;EmF78UE;IA5II,2BAoDG;EnFwiVT;EmFh9UE;IA5II,yBAoDG;EnF2iVT;EmFn9UE;IA5II,qBAoDG;EnF8iVT;EmFt9UE;IA5II,2BAoDG;EnFijVT;EmFz9UE;IA5II,0BAoDG;EnFojVT;EmF59UE;IA5II,2BAoDG;EnFujVT;EmF/9UE;IA5II,wBAoDG;EnF0jVT;EmFl+UE;IA5II,2BAoDG;EnF6jVT;EmFr+UE;IA5II,0BAoDG;EnFgkVT;EmFx+UE;IA5II,wBAoDG;EnFmkVT;EmF3+UE;IA5II,0BAoDG;EnFskVT;EmF9+UE;IA5II,wBAoDG;EnFykVT;EmFj/UE;IA5II,oBAoDG;EnF4kVT;EmFp/UE;IA5II,0BAoDG;EnF+kVT;EmFv/UE;IA5II,yBAoDG;EnFklVT;EmF1/UE;IA5II,0BAoDG;EnFqlVT;EmF7/UE;IA5II,uBAoDG;EnFwlVT;EmFhgVE;IA5II,0BAoDG;EnF2lVT;EmFngVE;IA5II,yBAoDG;EnF8lVT;EmFtgVE;IA5II,uBAoDG;EnFimVT;EmFzgVE;IA5II,yBAoDG;EnFomVT;EmF5gVE;IA5II,uBAoDG;EnFumVT;EmF/gVE;IA5II,uBAoDG;EnF0mVT;EmFlhVE;IA5II,6BAoDG;EnF6mVT;EmFrhVE;IA5II,4BAoDG;EnFgnVT;EmFxhVE;IA5II,6BAoDG;EnFmnVT;EmF3hVE;IA5II,0BAoDG;EnFsnVT;EmF9hVE;IA5II,6BAoDG;EnFynVT;EmFjiVE;IA5II,4BAoDG;EnF4nVT;EmFpiVE;IA5II,0BAoDG;EnF+nVT;EmFviVE;IA5II,4BAoDG;EnFkoVT;EmF1iVE;IA5II,0BAoDG;EnFqoVT;EmF7iVE;IA5II,MAoDG;EnFwoVT;EmFhjVE;IA5II,YAoDG;EnF2oVT;EmFnjVE;IA5II,WAoDG;EnF8oVT;EmFtjVE;IA5II,YAoDG;EnFipVT;EmFzjVE;IA5II,SAoDG;EnFopVT;EmF5jVE;IA5II,YAoDG;EnFupVT;EmF/jVE;IA5II,WAoDG;EnF0pVT;EmFlkVE;IA5II,SAoDG;EnF6pVT;EmFrkVE;IA5II,WAoDG;EnFgqVT;EmFxkVE;IA5II,SAoDG;EnFmqVT;EmF3kVE;IA5II,UAoDG;EnFsqVT;EmF9kVE;IA5II,gBAoDG;EnFyqVT;EmFjlVE;IA5II,eAoDG;EnF4qVT;EmFplVE;IA5II,gBAoDG;EnF+qVT;EmFvlVE;IA5II,aAoDG;EnFkrVT;EmF1lVE;IA5II,gBAoDG;EnFqrVT;EmF7lVE;IA5II,eAoDG;EnFwrVT;EmFhmVE;IA5II,aAoDG;EnF2rVT;EmFnmVE;IA5II,eAoDG;EnF8rVT;EmFtmVE;IA5II,aAoDG;EnFisVT;EmFzmVE;IA5II,aAoDG;EnFosVT;EmF5mVE;IA5II,mBAoDG;EnFusVT;EmF/mVE;IA5II,kBAoDG;EnF0sVT;EmFlnVE;IA5II,mBAoDG;EnF6sVT;EmFrnVE;IA5II,gBAoDG;EnFgtVT;EmFxnVE;IA5II,mBAoDG;EnFmtVT;EmF3nVE;IA5II,kBAoDG;EnFstVT;EmF9nVE;IA5II,gBAoDG;EnFytVT;EmFjoVE;IA5II,kBAoDG;EnF4tVT;EmFpoVE;IA5II,gBAoDG;EnF+tVT;EmFvoVE;IA5II,oBAoDG;EnFkuVT;EmF1oVE;IA5II,0BAoDG;EnFquVT;EmF7oVE;IA5II,yBAoDG;EnFwuVT;EmFhpVE;IA5II,0BAoDG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mF1/VE;IA5II,yDAoDG;EnFqlWT;EmF7/VE;IA5II,yDAoDG;EnFwlWT;EmFhgWE;IA5II,yDAoDG;EnF2lWT;EmFngWE;IA5II,yDAoDG;EnF8lWT;EmFtgWE;IA5II,yDAoDG;EnFimWT;EmFzgWE;IA5II,yDAoDG;EnFomWT;EmF5gWE;IA5II,mBAoDG;EnFumWT;EmF/gWE;IA5II,iEAoDG;EnF0mWT;EmFrgWM;IAzJA,iEAoDG;EnF6mWT;EmFrhWE;IA5II,iEAoDG;EnFgnWT;EmF3gWM;IAzJA,iEAoDG;EnFmnWT;EmF3hWE;IA5II,iEAoDG;EnFsnWT;EmFjhWM;IAzJA,iEAoDG;EnFynWT;EmFjiWE;IA5II,iEAoDG;EnF4nWT;EmFvhWM;IAzJA,iEAoDG;EnF+nWT;EmFviWE;IA5II,iEAoDG;EnFkoWT;EmF7hWM;IAzJA,iEAoDG;EnFqoWT;EmF7iWE;IA5II,iEAoDG;EnFwoWT;EmFniWM;IAzJA,iEAoDG;EnF2oWT;EmFnjWE;IA5II,iEAoDG;EnF8oWT;EmFziWM;IAzJA,iEAoDG;EnFipWT;EmFzjWE;IA5II,iEAoDG;EnFopWT;EmF/iWM;IAzJA,iEAoDG;EnFupWT;EmF/jWE;IA5II,iEAoDG;EnF0pWT;EmFrjWM;IAzJA,iEAoDG;EnF6pWT;EmFrkWE;IA5II,2BAoDG;EnFgqWT;EmF3jWM;IAzJA,2BAoDG;EnFmqWT;EmF3kWE;IA5II,8BAoDG;EnFsqWT;EmFjkWM;IAzJA,8BAoDG;EnFyqWT;EmFjlWE;IA5II,6BAoDG;EnF4qWT;EmFvkWM;IAzJA,6BAoDG;EnF+qWT;EmFvlWE;IA5II,8BAoDG;EnFkrWT;EmF7kWM;IAzJA,8BAoDG;EnFqrWT;EmF7lWE;IA5II,yEAoDG;EnFwrWT;EmFhmWE;IA5II,wHAoDG;EnF2rWT;EmFnmWE;IA5II,2EAoDG;EnF8rWT;EmFtmWE;IA5II,uEAoDG;EnFisWT;EmFzmWE;IA5II,6EAoDG;EnFosWT;EmF5mWE;IA5II,yEAoDG;EnFusWT;EmF/mWE;IA5II,yEAoDG;EnF0sWT;EmFlnWE;IA5II,yEAoDG;EnF6sWT;EmFrnWE;IA5I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;EnFoxXT;EmF5rXE;IA5II,gDAoDG;IApDH,8CAoDG;EnFwxXT;EmFhsXE;IA5II,mBAoDG;EnF2xXT;EmFnsXE;IA5II,kBAoDG;EnF8xXT;EmFtsXE;IA5II,WAoDG;EnFiyXT;EmFzsXE;IA5II,UAoDG;EnFoyXT;EmF5sXE;IA5II,UAoDG;EnFuyXT;EmF/sXE;IA5II,UAoDG;EnF0yXT;EmFltXE;IA5II,UAoDG;EnF6yXT;EWj0XE;IwE4GA;MA5II,mBAoDG;InFizXP;ImFztXA;MA5II,iBAoDG;InFozXP;ImF5tXA;MA5II,WAoDG;InFuzXP;ImF/tXA;MA5II,mBAoDG;InF0zXP;ImFluXA;MA5II,iBAoDG;InF6zXP;ImFruXA;MA5II,gBAoDG;InFg0XP;ImFxuXA;MA5II,sBAoDG;InFm0XP;ImF3uXA;MA5II,gBAoDG;InFs0XP;ImF9uXA;MA5II,eAyDO;InFo0XX;ImFjvXA;MA5II,qBAyDO;InFu0XX;ImFpvXA;MA5II,cAyDO;InF00XX;ImFvvXA;MA5II,aAyDO;InF60XX;ImF1vXA;MA5II,oBAyDO;InFg1XX;ImF7vXA;MA5II,cAyDO;InFm1XX;ImFhwXA;MA5II,kBAyDO;InFs1XX;ImFnwXA;MA5II,mBAyDO;InFy1XX;ImFtwXA;MA5II,aAyDO;InF41XX;ImFzwXA;MA5II,oBAyDO;InF+1XX;ImF5wXA;MA5II,iBAyDO;InFk2XX;ImF/wXA;MA5II,kBAyDO;InFq2XX;ImFlxXA;MA5II,aAyDO;InFw2XX;ImFrxXA;MA5II,cAoDG;InFg3XP;ImFxxXA;MA5II,mBAyDO;InF82XX;ImF3xXA;MA5II,sBAyDO;InFi3XX;ImF9xXA;MA5II,2BAyDO;InFo3XX;ImFjyXA;MA5II,8BAyDO;InFu3XX;ImFpyXA;MA5II,YAoDG;InF+3XP;ImFvyXA;MA5II,YAoDG;InFk4XP;ImF1yXA;MA5II,cAoDG;InFq4XP;ImF7yXA;MA5II,cAoDG;InFw4XP;ImFhzXA;MA5II,eAyDO;InFs4XX;ImFnzXA;MA5II,iBAyDO;InFy4XX;ImFtzXA;MA5II,uBAyDO;InF44XX;ImFzzXA;MA5II,2BAoDG;InFo5XP;ImF5zXA;MA5II,yBAoDG;InFu5XP;ImF/zXA;MA5II,uBAoDG;InF05XP;ImFl0XA;MA5II,8BAoDG;InF65XP;ImFr0XA;MA5II,6BAoDG;InFg6XP;ImFx0XA;MA5II,6BAoDG;InFm6XP;ImF30XA;MA5II,oBAoDG;InFs6XP;ImF90XA;MA5II,kBAoDG;InFy6XP;ImFj1XA;MA5II,qBAoDG;InF46XP;ImFp1XA;MA5II,sBAoDG;InF+6XP;ImFv1XA;MA5II,mBAoDG;InFk7XP;ImF11XA;MA5II,iBAoDG;InFq7XP;ImF71XA;MA5II,oBAoDG;InFw7XP;ImFh2XA;MA5II,uBAoDG;InF27XP;ImFn2XA;MA5II,qBAoDG;InF87XP;ImFt2XA;MA5II,mBAoDG;InFi8XP;ImFz2XA;MA5II,qBAoDG;InFo8XP;ImF52XA;MA5II,oBAoDG;InFu8XP;ImF/2XA;MA5II,yBAoDG;InF08XP;ImFl3XA;MA5II,uBAoDG;InF68XP;ImFr3XA;MA5II,qBAoDG;InFg9XP;ImFx3XA;MA5II,4BAoDG;InFm9XP;ImF33XA;MA5II,2BAoDG;InFs9XP;ImF93XA;MA5II,sBAoDG;InFy9XP;ImFj4XA;MA5II,gBAoDG;InF49XP;ImFp4XA;MA5II,sBAoDG;InF+9XP;ImFv4XA;MA5II,oBAoDG;InFk+XP;ImF14XA;MA5II,kBAoDG;InFq+XP;ImF74XA;MA5II,oBAoDG;InFw+XP;ImFh5XA;MA5II,mBAoDG;InF2+XP;ImFn5XA;MA5II,kBAoDG;InF8+XP;ImFt5XA;MA5II,gBAoDG;InFi/XP;ImFz5XA;MA5II,mBAoDG;InFo/XP;ImF55XA;MA5II,oBAoDG;InFu/XP;ImF/5XA;MA5II,0BAoDG;InF0/XP;ImFl6XA;MA5II,qCAoDG;InF6/XP;ImFr6XA;MA5II,qCAoDG;InFggYP;ImFx6XA;MA5II,qCAoDG;InFmgYP;ImF36XA;MA5II,qCAoDG;InFsgYP;ImF96XA;MA5II,mBAoDG;InFygYP;ImFj7XA;MA5II,mBAyDO;InFugYX;ImFp7XA;MA5II,sBAyDO;InF0gYX;ImFv7XA;MA5II,qBAyDO;InF6gYX;ImF17XA;MA5II,SAoDG;InFqhYP;ImF77XA;MA5II,QAoDG;InFwhYP;ImFh8XA;MA5II,QAoDG;InF2hYP;ImFn8XA;MA5II,QAoDG;InF8hYP;ImFt8XA;MA5II,QAoDG;InFiiYP;ImFz8XA;MA5II,QAoDG;InFoiYP;ImF58XA;MA5II,QAoDG;InFuiYP;ImF/8XA;MA5II,QAoDG;InF0iYP;ImFl9XA;MA5II,SAoDG;InF6iYP;ImFr9XA;MA5II,eAoDG;InFgjYP;ImFx9XA;MA5II,cAoDG;InFmjYP;ImF39XA;MA5II,eAoDG;InFsjYP;ImF99XA;MA5II,YAoDG;InFyjYP;ImFj+XA;MA5II,eAoDG;InF4jYP;ImFp+XA;MA5II,cAoDG;InF+jYP;ImFv+XA;MA5II,YAoDG;InFkkYP;ImF1+XA;MA5II,cAoDG;InFqkYP;ImF7+XA;MA5II,YAoDG;InFwkYP;ImFh/XA;MA5II,YAoDG;InF2kYP;ImFn/XA;MA5II,gBAoDG;InF8kYP;ImFt/XA;MA5II,sBAoDG;InFilYP;ImFz/XA;MA5II,qBAoDG;InFolYP;ImF5/XA;MA5II,sBAoDG;InFulYP;ImF//XA;MA5II,mBAoDG;InF0lYP;ImFlgYA;MA5II,sBAoDG;InF6lYP;ImFrgYA;MA5II,qBAoDG;InFgmYP;ImFxgYA;MA5II,mBAoDG;InFmmYP;ImF3gYA;MA5II,qBAoDG;InFsmYP;ImF9gYA;MA5II,mBAoDG;InFymYP;ImFjhYA;MA5II,mBAoDG;InF4mYP;ImFphYA;MA5II,eAoDG;InF+mYP;ImFvhYA;MA5II,qBAoDG;InFknYP;ImF1hYA;MA5II,oBAoDG;InFqnYP;ImF7hYA;MA5II,qBAoDG;InFwnYP;ImFhiYA;MA5II,kBAoDG;InF2nYP;ImFniYA;MA5II,qBAoDG;InF8nYP;ImFtiYA;MA5II,oBAoDG;InFioYP;ImFziYA;MA5II,kBAoDG;InFooYP;ImF5iYA;MA5II,oBAoDG;InFuoYP;ImF/iYA;MA5II,kBAoDG;InF0oYP;ImFljYA;MA5II,kBAoDG;InF6oYP;ImFrjYA;MA5II,qBAoDG;InFgpYP;ImFxjYA;MA5II,2BAoDG;InFmpYP;ImF3jYA;MA5II,0BAoDG;InFspYP;ImF9jYA;MA5II,2BAoDG;InFypYP;ImFjkYA;MA5II,wBAoDG;InF4pYP;ImFpkYA;MA5II,2BAoDG;InF+pYP;ImFvkYA;MA5II,0BAoDG;InFkqYP;ImF1kYA;MA5II,wBAoDG;InFqqYP;ImF7kYA;MA5II,0BAoDG;InFwqYP;ImFhlYA;MA5II,wBAoDG;InF2qYP;ImFnlYA;MA5II,wBAoDG;InF8qYP;ImFtlYA;MA5II,oBAoDG;InFirYP;ImFzlYA;MA5II,0BAoDG;InForYP;ImF5lYA;MA5II,yBAoDG;InFurYP;ImF/lYA;MA5II,0BAoDG;InF0rYP;ImFlmYA;MA5II,uBAoDG;InF6rYP;ImFrmYA;MA5II,0BAoDG;InFgsYP;ImFxmYA;MA5II,yBAoDG;InFmsYP;ImF3mYA;MA5II,uBAoDG;InFssYP;ImF9mYA;MA5II,yBAoDG;InFysYP;ImFjnYA;MA5II,uBAoDG;InF4sYP;ImFpnYA;MA5II,2BAoDG;InF+sYP;ImFvnYA;MA5II,0BAoDG;InFktYP;ImF1nYA;MA5II,uBAoDG;InFqtYP;ImF7nYA;MA5II,mBAoDG;InFwtYP;ImFhoYA;MA5II,yBAoDG;InF2tYP;ImFnoYA;MA5II,wBAoDG;InF8tYP;ImFtoYA;MA5II,yBAoDG;InFiuYP;ImFzoYA;MA5II,sBAoDG;InFouYP;ImF5oYA;MA5II,yBAoDG;InFuuYP;ImF/oYA;MA5II,wBAoDG;InF0uYP;ImFlpYA;MA5II,sBAoDG;InF6uYP;ImFrpYA;MA5II,wBAoDG;InFgvYP;ImFxpYA;MA5II,sBAoDG;InFmvYP;ImF3pYA;MA5II,sBAoDG;InFsvYP;ImF9pYA;MA5II,sBAoDG;InFyvYP;ImFjqYA;MA5II,4BAoDG;InF4vYP;ImFpqYA;MA5II,2BAoDG;InF+vYP;ImFvqYA;MA5II,4BAoDG;InFkwYP;ImF1qYA;MA5II,yBAoDG;InFqwYP;ImF7qYA;MA5II,4BAoDG;InFwwYP;ImFhrYA;MA5II,2BAoDG;InF2wYP;ImFnrYA;MA5II,yBAoDG;InF8wYP;ImFtrYA;MA5II,2BAoDG;InFixYP;ImFzrYA;MA5II,yBAoDG;InFoxYP;ImF5rYA;MA5II,6BAoDG;InFuxYP;ImF/rYA;MA5II,4BAoDG;InF0xYP;ImFlsYA;MA5II,yBAoDG;InF6xYP;ImFrsYA;MA5II,UAoDG;InFgyYP;ImFxsYA;MA5II,gBAoDG;InFmyYP;ImF3sYA;MA5II,eAoDG;InFsyYP;ImF9sYA;MA5II,gBAoDG;InFyyYP;ImFjtYA;MA5II,aAoDG;InF4yYP;ImFptYA;MA5II,gBAoDG;InF+yYP;ImFvtYA;MA5II,eAoDG;InFkzYP;ImF1tYA;MA5II,aAoDG;InFqzYP;ImF7tYA;MA5II,eAoDG;InFwzYP;ImFhuYA;MA5II,aAoDG;InF2zYP;ImFnuYA;MA5II,iBAoDG;InF8zYP;ImFtuYA;MA5II,uBAoDG;InFi0YP;ImFzuYA;MA5II,sBAoDG;InFo0YP;ImF5uYA;MA5II,uBAoDG;InFu0YP;ImF/uYA;MA5II,oBAoDG;InF00YP;ImFlvYA;MA5II,uBAoDG;InF60YP;ImFrvYA;MA5II,sBAoDG;InFg1YP;ImFxvYA;MA5II,oBAoDG;InFm1YP;ImF3vYA;MA5II,sBAoDG;InFs1YP;ImF9vYA;MA5II,oBAoDG;InFy1YP;ImFjwYA;MA5II,gBAoDG;InF41YP;ImFpwYA;MA5II,sBAoDG;InF+1YP;ImFvwYA;MA5II,qBAoDG;InFk2YP;ImF1wYA;MA5II,sBAoDG;InFq2YP;ImF7wYA;MA5II,mBAoDG;InFw2YP;ImFhxYA;MA5II,sBAoDG;InF22YP;ImFnxYA;MA5II,qBAoDG;InF82YP;ImFtxYA;MA5II,mBAoDG;InFi3YP;ImFzxYA;MA5II,qBAoDG;InFo3YP;ImF5xYA;MA5II,mBAoDG;InFu3YP;ImF/xYA;MA5II,sBAoDG;InF03YP;ImFlyYA;MA5II,4BAoDG;InF63YP;ImFryYA;MA5II,2BAoDG;InFg4YP;ImFxyYA;MA5II,4BAoDG;InFm4YP;ImF3yYA;MA5II,yBAoDG;InFs4YP;ImF9yYA;MA5II,4BAoDG;InFy4YP;ImFjzYA;MA5II,2BAoDG;InF44YP;ImFpzYA;MA5II,yBAoDG;InF+4YP;ImFvzYA;MA5II,2BAoDG;InFk5YP;ImF1zYA;MA5II,yBAoDG;InFq5YP;ImF7zYA;MA5II,qBAoDG;InFw5YP;ImFh0YA;MA5II,2BAoDG;InF25YP;ImFn0YA;MA5II,0BAoDG;InF85YP;ImFt0YA;MA5II,2BAoDG;InFi6YP;ImFz0YA;MA5II,wBAoDG;InFo6YP;ImF50YA;MA5II,2BAoDG;InFu6YP;ImF/0YA;MA5II,0BAoDG;InF06YP;ImFl1YA;MA5II,wBAoDG;InF66YP;ImFr1YA;MA5II,0BAoDG;InFg7YP;ImFx1YA;MA5II,wBAoDG;InFm7YP;ImF31YA;MA5II,oBAoDG;InFs7YP;ImF91YA;MA5II,0BAoDG;InFy7YP;ImFj2YA;MA5II,yBAoDG;InF47YP;ImFp2YA;MA5II,0BAoDG;InF+7YP;ImFv2YA;MA5II,uBAoDG;InFk8YP;ImF12YA;MA5II,0BAoDG;InFq8YP;ImF72YA;MA5II,yBAoDG;InFw8YP;ImFh3YA;MA5II,uBAoDG;InF28YP;ImFn3YA;MA5II,yBAoDG;InF88YP;ImFt3YA;MA5II,uBAoDG;InFi9YP;ImFz3YA;MA5II,uBAoDG;InFo9YP;ImF53YA;MA5II,6BAoDG;InFu9YP;ImF/3YA;MA5II,4BAoDG;InF09YP;ImFl4YA;MA5II,6BAoDG;InF69YP;ImFr4YA;MA5II,0BAoDG;InFg+YP;ImFx4YA;MA5II,6BAoDG;InFm+YP;ImF34YA;MA5II,4BAoDG;InFs+YP;ImF94YA;MA5II,0BAoDG;InFy+YP;ImFj5YA;MA5II,4BAoDG;InF4+YP;ImFp5YA;MA5II,0BAoDG;InF++YP;ImFv5YA;MA5II,MAoDG;InFk/YP;ImF15YA;MA5II,YAoDG;InFq/YP;ImF75YA;MA5II,WAoDG;InFw/YP;ImFh6YA;MA5II,YAoDG;InF2/YP;ImFn6YA;MA5II,SAoDG;InF8/YP;ImFt6YA;MA5II,YAoDG;InFigZP;ImFz6YA;MA5II,WAoDG;InFogZP;ImF56YA;MA5II,SAoDG;InFugZP;ImF/6YA;MA5II,WAoDG;InF0gZP;ImFl7YA;MA5II,SAoDG;InF6gZP;ImFr7YA;MA5II,UAoDG;InFghZP;ImFx7YA;MA5II,gBAoDG;InFmhZP;ImF37YA;MA5II,eAoDG;InFshZP;ImF97YA;MA5II,gBAoDG;InFyhZP;ImFj8YA;MA5II,aAoDG;InF4hZP;ImFp8YA;MA5II,gBAoDG;InF+hZP;ImFv8YA;MA5II,eAoDG;InFkiZP;ImF18YA;MA5II,aAoDG;InFqiZP;ImF78YA;MA5II,eAoDG;InFwiZP;ImFh9YA;MA5II,aAoDG;InF2iZP;ImFn9YA;MA5II,aAoDG;InF8iZP;ImFt9YA;MA5II,mBAoDG;InFijZP;ImFz9YA;MA5II,kBAoDG;InFojZP;ImF59YA;MA5II,mBAoDG;InFujZP;ImF/9YA;MA5II,gBAoDG;InF0jZP;ImFl+YA;MA5II,mBAoDG;InF6jZP;ImFr+YA;MA5II,kBAoDG;InFgkZP;ImFx+YA;MA5II,gBAoDG;InFmkZP;ImF3+YA;MA5II,kBAoDG;InFskZP;ImF9+YA;MA5II,gBAoDG;InFykZP;ImFj/YA;MA5II,oBAoDG;InF4kZP;ImFp/YA;MA5II,0BAoDG;InF+kZP;ImFv/YA;MA5II,yBAoDG;InFklZP;ImF1/YA;MA5II,0BAoDG;InFqlZP;ImF7/YA;MA5II,uBAoDG;InFwlZP;ImFhgZA;MA5II,0BAoDG;InF2lZP;ImFngZA;MA5II,yBAoDG;InF8lZP;ImFtgZA;MA5II,uBAoDG;InFimZP;ImFzgZA;MA5II,yBAoDG;InFomZP;ImF5gZA;MA5II,uBAoDG;InFumZP;ImF/gZA;MA5II,mBAoDG;InF0mZP;ImFlhZA;MA5II,yBAoDG;InF6mZP;ImFrhZA;MA5II,wBAoDG;InFgnZP;ImFxhZA;MA5II,yBAoDG;InFmnZP;ImF3hZA;MA5II,sBAoDG;InFsnZP;ImF9hZA;MA5II,yBAoDG;InFynZP;ImFjiZA;MA5II,wBAoDG;InF4nZP;ImFpiZA;MA5II,sBAoDG;InF+nZP;ImFviZA;MA5II,wBAoDG;InFkoZP;ImF1iZA;MA5II,sBAoDG;InFqoZP;ImF7iZA;MA5II,yFAoDG;InFwoZP;ImFhjZA;MA5II,sBAoDG;InF2oZP;ImFnjZA;MA5II,wFAoDG;InF8oZP;ImFtjZA;MA5II,qBAoDG;InFipZP;ImFzjZA;MA5II,iBAoDG;InFopZP;ImF5jZA;MA5II,eAoDG;InFupZP;ImF/jZA;MA5II,kBAoDG;InF0pZP;EACF;EW/qZE;IwE4GA;MA5II,mBAoDG;InF+pZP;ImFvkZA;MA5II,iBAoDG;InFkqZP;ImF1kZA;MA5II,WAoDG;InFqqZP;ImF7kZA;MA5II,mBAoDG;InFwqZP;ImFhlZA;MA5II,iBAoDG;InF2qZP;ImFnlZA;MA5II,gBAoDG;InF8qZP;ImFtlZA;MA5II,sBAoDG;InFirZP;ImFzlZA;MA5II,gBAoDG;InForZP;ImF5lZA;MA5II,eAyDO;InFkrZX;ImF/lZA;MA5II,qBAyDO;InFqrZX;ImFlmZA;MA5II,cAyDO;InFwrZX;ImFrmZA;MA5II,aAyDO;InF2rZX;ImFxmZA;MA5II,oBAyDO;InF8rZX;ImF3mZA;MA5II,cAyDO;InFisZX;ImF9mZA;MA5II,kBAyDO;InFosZX;ImFjnZA;MA5II,mBAyDO;InFusZX;ImFpnZA;MA5II,aAyDO;InF0sZX;ImFvnZA;MA5II,oBAyDO;InF6sZX;ImF1nZA;MA5II,iBAyDO;InFgtZX;ImF7nZA;MA5II,kBAyDO;InFmtZX;ImFhoZA;MA5II,aAyDO;InFstZX;ImFnoZA;MA5II,cAoDG;InF8tZP;ImFtoZA;MA5II,mBAyDO;InF4tZX;ImFzoZA;MA5II,sBAyDO;InF+tZX;ImF5oZA;MA5II,2BAyDO;InFkuZX;ImF/oZA;MA5II,8BAyDO;InFquZX;ImFlpZA;MA5II,YAoDG;InF6uZP;ImFrpZA;MA5II,YAoDG;InFgvZP;ImFxpZA;MA5II,cAoDG;InFmvZP;ImF3pZA;MA5II,cAoDG;InFsvZP;ImF9pZA;MA5II,eAyDO;InFovZX;ImFjqZA;MA5II,iBAyDO;InFuvZX;ImFpqZA;MA5II,uBAyDO;InF0vZX;ImFvqZA;MA5II,2BAoDG;InFkwZP;ImF1qZA;MA5II,yBAoDG;InFqwZP;ImF7qZA;MA5II,uBAoDG;InFwwZP;ImFhrZA;MA5II,8BAoDG;InF2wZP;ImFnrZA;MA5II,6BAoDG;InF8wZP;ImFtrZA;MA5II,6BAoDG;InFixZP;ImFzrZA;MA5II,oBAoDG;InFoxZP;ImF5rZA;MA5II,kBAoDG;InFuxZP;ImF/rZA;MA5II,qBAoDG;InF0xZP;ImFlsZA;MA5II,sBAoDG;InF6xZP;ImFrsZA;MA5II,mBAoDG;InFgyZP;ImFxsZA;MA5II,iBAoDG;InFmyZP;ImF3sZA;MA5II,oBAoDG;InFsyZP;ImF9sZA;MA5II,uBAoDG;InFyyZP;ImFjtZA;MA5II,qBAoDG;InF4yZP;ImFptZA;MA5II,mBAoDG;InF+yZP;ImFvtZA;MA5II,qBAoDG;InFkzZP;ImF1tZA;MA5II,oBAoDG;InFqzZP;ImF7tZA;MA5II,yBAoDG;InFwzZP;ImFhuZA;MA5II,uBAoDG;InF2zZP;ImFnuZA;MA5II,qBAoDG;InF8zZP;ImFtuZA;MA5II,4BAoDG;InFi0ZP;ImFzuZA;MA5II,2BAoDG;InFo0ZP;ImF5uZA;MA5II,sBAoDG;InFu0ZP;ImF/uZA;MA5II,gBAoDG;InF00ZP;ImFlvZA;MA5II,sBAoDG;InF60ZP;ImFrvZA;MA5II,oBAoDG;InFg1ZP;ImFxvZA;MA5II,kBAoDG;InFm1ZP;ImF3vZA;MA5II,oBAoDG;InFs1ZP;ImF9vZA;MA5II,mBAoDG;InFy1ZP;ImFjwZA;MA5II,kBAoDG;InF41ZP;ImFpwZA;MA5II,gBAoDG;InF+1ZP;ImFvwZA;MA5II,mBAoDG;InFk2ZP;ImF1wZA;MA5II,oBAoDG;InFq2ZP;ImF7wZA;MA5II,0BAoDG;InFw2ZP;ImFhxZA;MA5II,qCAoDG;InF22ZP;ImFnxZA;MA5II,qCAoDG;InF82ZP;ImFtxZA;MA5II,qCAoDG;InFi3ZP;ImFzxZA;MA5II,qCAoDG;InFo3ZP;ImF5xZA;MA5II,mBAoDG;InFu3ZP;ImF/xZA;MA5II,mBAyDO;InFq3ZX;ImFlyZA;MA5II,sBAyDO;InFw3ZX;ImFryZA;MA5II,qBAyDO;InF23ZX;ImFxyZA;MA5II,SAoDG;InFm4ZP;ImF3yZA;MA5II,QAoDG;InFs4ZP;ImF9yZA;MA5II,QAoDG;InFy4ZP;ImFjzZA;MA5II,QAoDG;InF44ZP;ImFpzZA;MA5II,QAoDG;InF+4ZP;ImFvzZA;MA5II,QAoDG;InFk5ZP;ImF1zZA;MA5II,QAoDG;InFq5ZP;ImF7zZA;MA5II,QAoDG;InFw5ZP;ImFh0ZA;MA5II,SAoDG;InF25ZP;ImFn0ZA;MA5II,eAoDG;InF85ZP;ImFt0ZA;MA5II,cAoDG;InFi6ZP;ImFz0ZA;MA5II,eAoDG;InFo6ZP;ImF50ZA;MA5II,YAoDG;InFu6ZP;ImF/0ZA;MA5II,eAoDG;InF06ZP;ImFl1ZA;MA5II,cAoDG;InF66ZP;ImFr1ZA;MA5II,YAoDG;InFg7ZP;ImFx1ZA;MA5II,cAoDG;InFm7ZP;ImF31ZA;MA5II,YAoDG;InFs7ZP;ImF91ZA;MA5II,YAoDG;InFy7ZP;ImFj2ZA;MA5II,gBAoDG;InF47ZP;ImFp2ZA;MA5II,sBAoDG;InF+7ZP;ImFv2ZA;MA5II,qBAoDG;InFk8ZP;ImF12ZA;MA5II,sBAoDG;InFq8ZP;ImF72ZA;MA5II,mBAoDG;InFw8ZP;ImFh3ZA;MA5II,sBAoDG;InF28ZP;ImFn3ZA;MA5II,qBAoDG;InF88ZP;ImFt3ZA;MA5II,mBAoDG;InFi9ZP;ImFz3ZA;MA5II,qBAoDG;InFo9ZP;ImF53ZA;MA5II,mBAoDG;InFu9ZP;ImF/3ZA;MA5II,mBAoDG;InF09ZP;ImFl4ZA;MA5II,eAoDG;InF69ZP;ImFr4ZA;MA5II,qBAoDG;InFg+ZP;ImFx4ZA;MA5II,oBAoDG;InFm+ZP;ImF34ZA;MA5II,qBAoDG;InFs+ZP;ImF94ZA;MA5II,kBAoDG;InFy+ZP;ImFj5ZA;MA5II,qBAoDG;InF4+ZP;ImFp5ZA;MA5II,oBAoDG;InF++ZP;ImFv5ZA;MA5II,kBAoDG;InFk/ZP;ImF15ZA;MA5II,oBAoDG;InFq/ZP;ImF75ZA;MA5II,kBAoDG;InFw/ZP;ImFh6ZA;MA5II,kBAoDG;InF2/ZP;ImFn6ZA;MA5II,qBAoDG;InF8/ZP;ImFt6ZA;MA5II,2BAoDG;InFigaP;ImFz6ZA;MA5II,0BAoDG;InFogaP;ImF56ZA;MA5II,2BAoDG;InFugaP;ImF/6ZA;MA5II,wBAoDG;InF0gaP;ImFl7ZA;MA5II,2BAoDG;InF6gaP;ImFr7ZA;MA5II,0BAoDG;InFghaP;ImFx7ZA;MA5II,wBAoDG;InFmhaP;ImF37ZA;MA5II,0BAoDG;InFshaP;ImF97ZA;MA5II,wBAoDG;InFyhaP;ImFj8ZA;MA5II,wBAoDG;InF4haP;ImFp8ZA;MA5II,oBAoDG;InF+haP;ImFv8ZA;MA5II,0BAoDG;InFkiaP;ImF18ZA;MA5II,yBAoDG;InFqiaP;ImF78ZA;MA5II,0BAoDG;InFwiaP;ImFh9ZA;MA5II,uBAoDG;InF2iaP;ImFn9ZA;MA5II,0BAoDG;InF8iaP;ImFt9ZA;MA5II,yBAoDG;InFijaP;ImFz9ZA;MA5II,uBAoDG;InFojaP;ImF59ZA;MA5II,yBAoDG;InFujaP;ImF/9ZA;MA5II,uBAoDG;InF0jaP;ImFl+ZA;MA5II,2BAoDG;InF6jaP;ImFr+ZA;MA5II,0BAoDG;InFgkaP;ImFx+ZA;MA5II,uBAoDG;InFmkaP;ImF3+ZA;MA5II,mBAoDG;InFskaP;ImF9+ZA;MA5II,yBAoDG;InFykaP;ImFj/ZA;MA5II,wBAoDG;InF4kaP;ImFp/ZA;MA5II,yBAoDG;InF+kaP;ImFv/ZA;MA5II,sBAoDG;InFklaP;ImF1/ZA;MA5II,yBAoDG;InFqlaP;ImF7/ZA;MA5II,wBAoDG;InFwlaP;ImFhgaA;MA5II,sBAoDG;InF2laP;ImFngaA;MA5II,wBAoDG;InF8laP;ImFtgaA;MA5II,sBAoDG;InFimaP;ImFzgaA;MA5II,sBAoDG;InFomaP;ImF5gaA;MA5II,sBAoDG;InFumaP;ImF/gaA;MA5II,4BAoDG;InF0maP;ImFlhaA;MA5II,2BAoDG;InF6maP;ImFrhaA;MA5II,4BAoDG;InFgnaP;ImFxhaA;MA5II,yBAoDG;InFmnaP;ImF3haA;MA5II,4BAoDG;InFsnaP;ImF9haA;MA5II,2BAoDG;InFynaP;ImFjiaA;MA5II,yBAoDG;InF4naP;ImFpiaA;MA5II,2BAoDG;InF+naP;ImFviaA;MA5II,yBAoDG;InFkoaP;ImF1iaA;MA5II,6BAoDG;InFqoaP;ImF7iaA;MA5II,4BAoDG;InFwoaP;ImFhjaA;MA5II,yBAoDG;InF2oaP;ImFnjaA;MA5II,UAoDG;InF8oaP;ImFtjaA;MA5II,gBAoDG;InFipaP;ImFzjaA;MA5II,eAoDG;InFopaP;ImF5jaA;MA5II,gBAoDG;InFupaP;ImF/jaA;MA5II,aAoDG;InF0paP;ImFlkaA;MA5II,gBAoDG;InF6paP;ImFrkaA;MA5II,eAoDG;InFgqaP;ImFxkaA;MA5II,aAoDG;InFmqaP;ImF3kaA;MA5II,eAoDG;InFsqaP;ImF9kaA;MA5II,aAoDG;InFyqaP;ImFjlaA;MA5II,iBAoDG;InF4qaP;ImFplaA;MA5II,uBAoDG;InF+qaP;ImFvlaA;MA5II,sBAoDG;InFkraP;ImF1laA;MA5II,uBAoDG;InFqraP;ImF7laA;MA5II,oBAoDG;InFwraP;ImFhmaA;MA5II,uBAoDG;InF2raP;ImFnmaA;MA5II,sBAoDG;InF8raP;ImFtmaA;MA5II,oBAoDG;InFisaP;ImFzmaA;MA5II,sBAoDG;InFosaP;ImF5maA;MA5II,oBAoDG;InFusaP;ImF/maA;MA5II,gBAoDG;InF0saP;ImFlnaA;MA5II,sBAoDG;InF6saP;ImFrnaA;MA5II,qBAoDG;InFgtaP;ImFxnaA;MA5II,sBAoDG;InFmtaP;ImF3naA;MA5II,mBAoDG;InFstaP;ImF9naA;MA5II,sBAoDG;InFytaP;ImFjoaA;MA5II,qBAoDG;InF4taP;ImFpoaA;MA5II,mBAoDG;InF+taP;ImFvoaA;MA5II,qBAoDG;InFkuaP;ImF1oaA;MA5II,mBAoDG;InFquaP;ImF7oaA;MA5II,sBAoDG;InFwuaP;ImFhpaA;MA5II,4BAoDG;InF2uaP;ImFnpaA;MA5II,2BAoDG;InF8uaP;ImFtpaA;MA5II,4BAoDG;InFivaP;ImFzpaA;MA5II,yBAoDG;InFovaP;ImF5paA;MA5II,4BAoDG;InFuvaP;ImF/paA;MA5II,2BAoDG;InF0vaP;ImFlqaA;MA5II,yBAoDG;InF6vaP;ImFrqaA;MA5II,2BAoDG;InFgwaP;ImFxqaA;MA5II,yBAoDG;InFmwaP;ImF3qaA;MA5II,qBAoDG;InFswaP;ImF9qaA;MA5II,2BAoDG;InFywaP;ImFjraA;MA5II,0BAoDG;InF4waP;ImFpraA;MA5II,2BAoDG;InF+waP;ImFvraA;MA5II,wBAoDG;InFkxaP;ImF1raA;MA5II,2BAoDG;InFqxaP;ImF7raA;MA5II,0BAoDG;InFwxaP;ImFhsaA;MA5II,wBAoDG;InF2xaP;ImFnsaA;MA5II,0BAoDG;InF8xaP;ImFtsaA;MA5II,wBAoDG;InFiyaP;ImFzsaA;MA5II,oBAoDG;InFoyaP;ImF5saA;MA5II,0BAoDG;InFuyaP;ImF/saA;MA5II,yBAoDG;InF0yaP;ImFltaA;MA5II,0BAoDG;InF6yaP;ImFrtaA;MA5II,uBAoDG;InFgzaP;ImFxtaA;MA5II,0BAoDG;InFmzaP;ImF3taA;MA5II,yBAoDG;InFszaP;ImF9taA;MA5II,uBAoDG;InFyzaP;ImFjuaA;MA5II,yBAoDG;InF4zaP;ImFpuaA;MA5II,uBAoDG;InF+zaP;ImFvuaA;MA5II,uBAoDG;InFk0aP;ImF1uaA;MA5II,6BAoDG;InFq0aP;ImF7uaA;MA5II,4BAoDG;InFw0aP;ImFhvaA;MA5II,6BAoDG;InF20aP;ImFnvaA;MA5II,0BAoDG;InF80aP;ImFtvaA;MA5II,6BAoDG;InFi1aP;ImFzvaA;MA5II,4BAoDG;InFo1aP;ImF5vaA;MA5II,0BAoDG;InFu1aP;ImF/vaA;MA5II,4BAoDG;InF01aP;ImFlwaA;MA5II,0BAoDG;InF61aP;ImFrwaA;MA5II,MAoDG;InFg2aP;ImFxwaA;MA5II,YAoDG;InFm2aP;ImF3waA;MA5II,WAoDG;InFs2aP;ImF9waA;MA5II,YAoDG;InFy2aP;ImFjxaA;MA5II,SAoDG;InF42aP;ImFpxaA;MA5II,YAoDG;InF+2aP;ImFvxaA;MA5II,WAoDG;InFk3aP;ImF1xaA;MA5II,SAoDG;InFq3aP;ImF7xaA;MA5II,WAoDG;InFw3aP;ImFhyaA;MA5II,SAoDG;InF23aP;ImFnyaA;MA5II,UAoDG;InF83aP;ImFtyaA;MA5II,gBAoDG;InFi4aP;ImFzyaA;MA5II,eAoDG;InFo4aP;ImF5yaA;MA5II,gBAoDG;InFu4aP;ImF/yaA;MA5II,aAoDG;InF04aP;ImFlzaA;MA5II,gBAoDG;InF64aP;ImFrzaA;MA5II,eAoDG;InFg5aP;ImFxzaA;MA5II,aAoDG;InFm5aP;ImF3zaA;MA5II,eAoDG;InFs5aP;ImF9zaA;MA5II,aAoDG;InFy5aP;ImFj0aA;MA5II,aAoDG;InF45aP;ImFp0aA;MA5II,mBAoDG;InF+5aP;ImFv0aA;MA5II,kBAoDG;InFk6aP;ImF10aA;MA5II,mBAoDG;InFq6aP;ImF70aA;MA5II,gBAoDG;InFw6aP;ImFh1aA;MA5II,mBAoDG;InF26aP;ImFn1aA;MA5II,kBAoDG;InF86aP;ImFt1aA;MA5II,gBAoDG;InFi7aP;ImFz1aA;MA5II,kBAoDG;InFo7aP;ImF51aA;MA5II,gBAoDG;InFu7aP;ImF/1aA;MA5II,oBAoDG;InF07aP;ImFl2aA;MA5II,0BAoDG;InF67aP;ImFr2aA;MA5II,yBAoDG;InFg8aP;ImFx2aA;MA5II,0BAoDG;InFm8aP;ImF32aA;MA5II,uBAoDG;InFs8aP;ImF92aA;MA5II,0BAoDG;InFy8aP;ImFj3aA;MA5II,yBAoDG;InF48aP;ImFp3aA;MA5II,uBAoDG;InF+8aP;ImFv3aA;MA5II,yBAoDG;InFk9aP;ImF13aA;MA5II,uBAoDG;InFq9aP;ImF73aA;MA5II,mBAoDG;InFw9aP;ImFh4aA;MA5II,yBAoDG;InF29aP;ImFn4aA;MA5II,wBAoDG;InF89aP;ImFt4aA;MA5II,yBAoDG;InFi+aP;ImFz4aA;MA5II,sBAoDG;InFo+aP;ImF54aA;MA5II,yBAoDG;InFu+aP;ImF/4aA;MA5II,wBAoDG;InF0+aP;ImFl5aA;MA5II,sBAoDG;InF6+aP;ImFr5aA;MA5II,wBAoDG;InFg/aP;ImFx5aA;MA5II,sBAoDG;InFm/aP;ImF35aA;MA5II,yFAoDG;InFs/aP;ImF95aA;MA5II,sBAoDG;InFy/aP;ImFj6aA;MA5II,wFAoDG;InF4/aP;ImFp6aA;MA5II,qBAoDG;InF+/aP;ImFv6aA;MA5II,iBAoDG;InFkgbP;ImF16aA;MA5II,eAoDG;InFqgbP;ImF76aA;MA5II,kBAoDG;InFwgbP;EACF;EW7hbE;IwE4GA;MA5II,mBAoDG;InF6gbP;ImFr7aA;MA5II,iBAoDG;InFghbP;ImFx7aA;MA5II,WAoDG;InFmhbP;ImF37aA;MA5II,mBAoDG;InFshbP;ImF97aA;MA5II,iBAoDG;InFyhbP;ImFj8aA;MA5II,gBAoDG;InF4hbP;ImFp8aA;MA5II,sBAoDG;InF+hbP;ImFv8aA;MA5II,gBAoDG;InFkibP;ImF18aA;MA5II,eAyDO;InFgibX;ImF78aA;MA5II,qBAyDO;InFmibX;ImFh9aA;MA5II,cAyDO;InFsibX;ImFn9aA;MA5II,aAyDO;InFyibX;ImFt9aA;MA5II,oBAyDO;InF4ibX;ImFz9aA;MA5II,cAyDO;InF+ibX;ImF59aA;MA5II,kBAyDO;InFkjbX;ImF/9aA;MA5II,mBAyDO;InFqjbX;ImFl+aA;MA5II,aAyDO;InFwjbX;ImFr+aA;MA5II,oBAyDO;InF2jbX;ImFx+aA;MA5II,iBAyDO;InF8jbX;ImF3+aA;MA5II,kBAyDO;InFikbX;ImF9+aA;MA5II,aAyDO;InFokbX;ImFj/aA;MA5II,cAoDG;InF4kbP;ImFp/aA;MA5II,mBAyDO;InF0kbX;ImFv/aA;MA5II,sBAyDO;InF6kbX;ImF1/aA;MA5II,2BAyDO;InFglbX;ImF7/aA;MA5II,8BAyDO;InFmlbX;ImFhgbA;MA5II,YAoDG;InF2lbP;ImFngbA;MA5II,YAoDG;InF8lbP;ImFtgbA;MA5II,cAoDG;InFimbP;ImFzgbA;MA5II,cAoDG;InFombP;ImF5gbA;MA5II,eAyDO;InFkmbX;ImF/gbA;MA5II,iBAyDO;InFqmbX;ImFlhbA;MA5II,uBAyDO;InFwmbX;ImFrhbA;MA5II,2BAoDG;InFgnbP;ImFxhbA;MA5II,yBAoDG;InFmnbP;ImF3hbA;MA5II,uBAoDG;InFsnbP;ImF9hbA;MA5II,8BAoDG;InFynbP;ImFjibA;MA5II,6BAoDG;InF4nbP;ImFpibA;MA5II,6BAoDG;InF+nbP;ImFvibA;MA5II,oBAoDG;InFkobP;ImF1ibA;MA5II,kBAoDG;InFqobP;ImF7ibA;MA5II,qBAoDG;InFwobP;ImFhjbA;MA5II,sBAoDG;InF2obP;ImFnjbA;MA5II,mBAoDG;InF8obP;ImFtjbA;MA5II,iBAoDG;InFipbP;ImFzjbA;MA5II,oBAoDG;InFopbP;ImF5jbA;MA5II,uBAoDG;InFupbP;ImF/jbA;MA5II,qBAoDG;InF0pbP;ImFlkbA;MA5II,mBAoDG;InF6pbP;ImFrkbA;MA5II,qBAoDG;InFgqbP;ImFxkbA;MA5II,oBAoDG;InFmqbP;ImF3kbA;MA5II,yBAoDG;InFsqbP;ImF9kbA;MA5II,uBAoDG;InFyqbP;ImFjlbA;MA5II,qBAoDG;InF4qbP;ImFplbA;MA5II,4BAoDG;InF+qbP;ImFvlbA;MA5II,2BAoDG;InFkrbP;ImF1lbA;MA5II,sBAoDG;InFqrbP;ImF7lbA;MA5II,gBAoDG;InFwrbP;ImFhmbA;MA5II,sBAoDG;InF2rbP;ImFnmbA;MA5II,oBAoDG;InF8rbP;ImFtmbA;MA5II,kBAoDG;InFisbP;ImFzmbA;MA5II,oBAoDG;InFosbP;ImF5mbA;MA5II,mBAoDG;InFusbP;ImF/mbA;MA5II,kBAoDG;InF0sbP;ImFlnbA;MA5II,gBAoDG;InF6sbP;ImFrnbA;MA5II,mBAoDG;InFgtbP;ImFxnbA;MA5II,oBAoDG;InFmtbP;ImF3nbA;MA5II,0BAoDG;InFstbP;ImF9nbA;MA5II,qCAoDG;InFytbP;ImFjobA;MA5II,qCAoDG;InF4tbP;ImFpobA;MA5II,qCAoDG;InF+tbP;ImFvobA;MA5II,qCAoDG;InFkubP;ImF1obA;MA5II,mBAoDG;InFqubP;ImF7obA;MA5II,mBAyDO;InFmubX;ImFhpbA;MA5II,sBAyDO;InFsubX;ImFnpbA;MA5II,qBAyDO;InFyubX;ImFtpbA;MA5II,SAoDG;InFivbP;ImFzpbA;MA5II,QAoDG;InFovbP;ImF5pbA;MA5II,QAoDG;InFuvbP;ImF/pbA;MA5II,QAoDG;InF0vbP;ImFlqbA;MA5II,QAoDG;InF6vbP;ImFrqbA;MA5II,QAoDG;InFgwbP;ImFxqbA;MA5II,QAoDG;InFmwbP;ImF3qbA;MA5II,QAoDG;InFswbP;ImF9qbA;MA5II,SAoDG;InFywbP;ImFjrbA;MA5II,eAoDG;InF4wbP;ImFprbA;MA5II,cAoDG;InF+wbP;ImFvrbA;MA5II,eAoDG;InFkxbP;ImF1rbA;MA5II,YAoDG;InFqxbP;ImF7rbA;MA5II,eAoDG;InFwxbP;ImFhsbA;MA5II,cAoDG;InF2xbP;ImFnsbA;MA5II,YAoDG;InF8xbP;ImFtsbA;MA5II,cAoDG;InFiybP;ImFzsbA;MA5II,YAoDG;InFoybP;ImF5sbA;MA5II,YAoDG;InFuybP;ImF/sbA;MA5II,gBAoDG;InF0ybP;ImFltbA;MA5II,sBAoDG;InF6ybP;ImFrtbA;MA5II,qBAoDG;InFgzbP;ImFxtbA;MA5II,sBAoDG;InFmzbP;ImF3tbA;MA5II,mBAoDG;InFszbP;ImF9tbA;MA5II,sBAoDG;InFyzbP;ImFjubA;MA5II,qBAoDG;InF4zbP;ImFpubA;MA5II,mBAoDG;InF+zbP;ImFvubA;MA5II,qBAoDG;InFk0bP;ImF1ubA;MA5II,mBAoDG;InFq0bP;ImF7ubA;MA5II,mBAoDG;InFw0bP;ImFhvbA;MA5II,eAoDG;InF20bP;ImFnvbA;MA5II,qBAoDG;InF80bP;ImFtvbA;MA5II,oBAoDG;InFi1bP;ImFzvbA;MA5II,qBAoDG;InFo1bP;ImF5vbA;MA5II,kBAoDG;InFu1bP;ImF/vbA;MA5II,qBAoDG;InF01bP;ImFlwbA;MA5II,oBAoDG;InF61bP;ImFrwbA;MA5II,kBAoDG;InFg2bP;ImFxwbA;MA5II,oBAoDG;InFm2bP;ImF3wbA;MA5II,kBAoDG;InFs2bP;ImF9wbA;MA5II,kBAoDG;InFy2bP;ImFjxbA;MA5II,qBAoDG;InF42bP;ImFpxbA;MA5II,2BAoDG;InF+2bP;ImFvxbA;MA5II,0BAoDG;InFk3bP;ImF1xbA;MA5II,2BAoDG;InFq3bP;ImF7xbA;MA5II,wBAoDG;InFw3bP;ImFhybA;MA5II,2BAoDG;InF23bP;ImFnybA;MA5II,0BAoDG;InF83bP;ImFtybA;MA5II,wBAoDG;InFi4bP;ImFzybA;MA5II,0BAoDG;InFo4bP;ImF5ybA;MA5II,wBAoDG;InFu4bP;ImF/ybA;MA5II,wBAoDG;InF04bP;ImFlzbA;MA5II,oBAoDG;InF64bP;ImFrzbA;MA5II,0BAoDG;InFg5bP;ImFxzbA;MA5II,yBAoDG;InFm5bP;ImF3zbA;MA5II,0BAoDG;InFs5bP;ImF9zbA;MA5II,uBAoDG;InFy5bP;ImFj0bA;MA5II,0BAoDG;InF45bP;ImFp0bA;MA5II,yBAoDG;InF+5bP;ImFv0bA;MA5II,uBAoDG;InFk6bP;ImF10bA;MA5II,yBAoDG;InFq6bP;ImF70bA;MA5II,uBAoDG;InFw6bP;ImFh1bA;MA5II,2BAoDG;InF26bP;ImFn1bA;MA5II,0BAoDG;InF86bP;ImFt1bA;MA5II,uBAoDG;InFi7bP;ImFz1bA;MA5II,mBAoDG;InFo7bP;ImF51bA;MA5II,yBAoDG;InFu7bP;ImF/1bA;MA5II,wBAoDG;InF07bP;ImFl2bA;MA5II,yBAoDG;InF67bP;ImFr2bA;MA5II,sBAoDG;InFg8bP;ImFx2bA;MA5II,yBAoDG;InFm8bP;ImF32bA;MA5II,wBAoDG;InFs8bP;ImF92bA;MA5II,sBAoDG;InFy8bP;ImFj3bA;MA5II,wBAoDG;InF48bP;ImFp3bA;MA5II,sBAoDG;InF+8bP;ImFv3bA;MA5II,sBAoDG;InFk9bP;ImF13bA;MA5II,sBAoDG;InFq9bP;ImF73bA;MA5II,4BAoDG;InFw9bP;ImFh4bA;MA5II,2BAoDG;InF29bP;ImFn4bA;MA5II,4BAoDG;InF89bP;ImFt4bA;MA5II,yBAoDG;InFi+bP;ImFz4bA;MA5II,4BAoDG;InFo+bP;ImF54bA;MA5II,2BAoDG;InFu+bP;ImF/4bA;MA5II,yBAoDG;InF0+bP;ImFl5bA;MA5II,2BAoDG;InF6+bP;ImFr5bA;MA5II,yBAoDG;InFg/bP;ImFx5bA;MA5II,6BAoDG;InFm/bP;ImF35bA;MA5II,4BAoDG;InFs/bP;ImF95bA;MA5II,yBAoDG;InFy/bP;ImFj6bA;MA5II,UAoDG;InF4/bP;ImFp6bA;MA5II,gBAoDG;InF+/bP;ImFv6bA;MA5II,eAoDG;InFkgcP;ImF16bA;MA5II,gBAoDG;InFqgcP;ImF76bA;MA5II,aAoDG;InFwgcP;ImFh7bA;MA5II,gBAoDG;InF2gcP;ImFn7bA;MA5II,eAoDG;InF8gcP;ImFt7bA;MA5II,aAoDG;InFihcP;ImFz7bA;MA5II,eAoDG;InFohcP;ImF57bA;MA5II,aAoDG;InFuhcP;ImF/7bA;MA5II,iBAoDG;InF0hcP;ImFl8bA;MA5II,uBAoDG;InF6hcP;ImFr8bA;MA5II,sBAoDG;InFgicP;ImFx8bA;MA5II,uBAoDG;InFmicP;ImF38bA;MA5II,oBAoDG;InFsicP;ImF98bA;MA5II,uBAoDG;InFyicP;ImFj9bA;MA5II,sBAoDG;InF4icP;ImFp9bA;MA5II,oBAoDG;InF+icP;ImFv9bA;MA5II,sBAoDG;InFkjcP;ImF19bA;MA5II,oBAoDG;InFqjcP;ImF79bA;MA5II,gBAoDG;InFwjcP;ImFh+bA;MA5II,sBAoDG;InF2jcP;ImFn+bA;MA5II,qBAoDG;InF8jcP;ImFt+bA;MA5II,sBAoDG;InFikcP;ImFz+bA;MA5II,mBAoDG;InFokcP;ImF5+bA;MA5II,sBAoDG;InFukcP;ImF/+bA;MA5II,qBAoDG;InF0kcP;ImFl/bA;MA5II,mBAoDG;InF6kcP;ImFr/bA;MA5II,qBAoDG;InFglcP;ImFx/bA;MA5II,mBAoDG;InFmlcP;ImF3/bA;MA5II,sBAoDG;InFslcP;ImF9/bA;MA5II,4BAoDG;InFylcP;ImFjgcA;MA5II,2BAoDG;InF4lcP;ImFpgcA;MA5II,4BAoDG;InF+lcP;ImFvgcA;MA5II,yBAoDG;InFkmcP;ImF1gcA;MA5II,4BAoDG;InFqmcP;ImF7gcA;MA5II,2BAoDG;InFwmcP;ImFhhcA;MA5II,yBAoDG;InF2mcP;ImFnhcA;MA5II,2BAoDG;InF8mcP;ImFthcA;MA5II,yBAoDG;InFincP;ImFzhcA;MA5II,qBAoDG;InFoncP;ImF5hcA;MA5II,2BAoDG;InFuncP;ImF/hcA;MA5II,0BAoDG;InF0ncP;ImFlicA;MA5II,2BAoDG;InF6ncP;ImFricA;MA5II,wBAoDG;InFgocP;ImFxicA;MA5II,2BAoDG;InFmocP;ImF3icA;MA5II,0BAoDG;InFsocP;ImF9icA;MA5II,wBAoDG;InFyocP;ImFjjcA;MA5II,0BAoDG;InF4ocP;ImFpjcA;MA5II,wBAoDG;InF+ocP;ImFvjcA;MA5II,oBAoDG;InFkpcP;ImF1jcA;MA5II,0BAoDG;InFqpcP;ImF7jcA;MA5II,yBAoDG;InFwpcP;ImFhkcA;MA5II,0BAoDG;InF2pcP;ImFnkcA;MA5II,uBAoDG;InF8pcP;ImFtkcA;MA5II,0BAoDG;InFiqcP;ImFzkcA;MA5II,yBAoDG;InFoqcP;ImF5kcA;MA5II,uBAoDG;InFuqcP;ImF/kcA;MA5II,yBAoDG;InF0qcP;ImFllcA;MA5II,uBAoDG;InF6qcP;ImFrlcA;MA5II,uBAoDG;InFgrcP;ImFxlcA;MA5II,6BAoDG;InFmrcP;ImF3lcA;MA5II,4BAoDG;InFsrcP;ImF9lcA;MA5II,6BAoDG;InFyrcP;ImFjmcA;MA5II,0BAoDG;InF4rcP;ImFpmcA;MA5II,6BAoDG;InF+rcP;ImFvmcA;MA5II,4BAoDG;InFkscP;ImF1mcA;MA5II,0BAoDG;InFqscP;ImF7mcA;MA5II,4BAoDG;InFwscP;ImFhncA;MA5II,0BAoDG;InF2scP;ImFnncA;MA5II,MAoDG;InF8scP;ImFtncA;MA5II,YAoDG;InFitcP;ImFzncA;MA5II,WAoDG;InFotcP;ImF5ncA;MA5II,YAoDG;InFutcP;ImF/ncA;MA5II,SAoDG;InF0tcP;ImFlocA;MA5II,YAoDG;InF6tcP;ImFrocA;MA5II,WAoDG;InFgucP;ImFxocA;MA5II,SAoDG;InFmucP;ImF3ocA;MA5II,WAoDG;InFsucP;ImF9ocA;MA5II,SAoDG;InFyucP;ImFjpcA;MA5II,UAoDG;InF4ucP;ImFppcA;MA5II,gBAoDG;InF+ucP;ImFvpcA;MA5II,eAoDG;InFkvcP;ImF1pcA;MA5II,gBAoDG;InFqvcP;ImF7pcA;MA5II,aAoDG;InFwvcP;ImFhqcA;MA5II,gBAoDG;InF2vcP;ImFnqcA;MA5II,eAoDG;InF8vcP;ImFtqcA;MA5II,aAoDG;InFiwcP;ImFzqcA;MA5II,eAoDG;InFowcP;ImF5qcA;MA5II,aAoDG;InFuwcP;ImF/qcA;MA5II,aAoDG;InF0wcP;ImFlrcA;MA5II,mBAoDG;InF6wcP;ImFrrcA;MA5II,kBAoDG;InFgxcP;ImFxrcA;MA5II,mBAoDG;InFmxcP;ImF3rcA;MA5II,gBAoDG;InFsxcP;ImF9rcA;MA5II,mBAoDG;InFyxcP;ImFjscA;MA5II,kBAoDG;InF4xcP;ImFpscA;MA5II,gBAoDG;InF+xcP;ImFvscA;MA5II,kBAoDG;InFkycP;ImF1scA;MA5II,gBAoDG;InFqycP;ImF7scA;MA5II,oBAoDG;InFwycP;ImFhtcA;MA5II,0BAoDG;InF2ycP;ImFntcA;MA5II,yBAoDG;InF8ycP;ImFttcA;MA5II,0BAoDG;InFizcP;ImFztcA;MA5II,uBAoDG;InFozcP;ImF5tcA;MA5II,0BAoDG;InFuzcP;ImF/tcA;MA5II,yBAoDG;InF0zcP;ImFlucA;MA5II,uBAoDG;InF6zcP;ImFrucA;MA5II,yBAoDG;InFg0cP;ImFxucA;MA5II,uBAoDG;InFm0cP;ImF3ucA;MA5II,mBAoDG;InFs0cP;ImF9ucA;MA5II,yBAoDG;InFy0cP;ImFjvcA;MA5II,wBAoDG;InF40cP;ImFpvcA;MA5II,yBAoDG;InF+0cP;ImFvvcA;MA5II,sBAoDG;InFk1cP;ImF1vcA;MA5II,yBAoDG;InFq1cP;ImF7vcA;MA5II,wBAoDG;InFw1cP;ImFhwcA;MA5II,sBAoDG;InF21cP;ImFnwcA;MA5II,wBAoDG;InF81cP;ImFtwcA;MA5II,sBAoDG;InFi2cP;ImFzwcA;MA5II,yFAoDG;InFo2cP;ImF5wcA;MA5II,sBAoDG;InFu2cP;ImF/wcA;MA5II,wFAoDG;InF02cP;ImFlxcA;MA5II,qBAoDG;InF62cP;ImFrxcA;MA5II,iBAoDG;InFg3cP;ImFxxcA;MA5II,eAoDG;InFm3cP;ImF3xcA;MA5II,kBAoDG;InFs3cP;EACF;EW34cE;IwE4GA;MA5II,mBAoDG;InF23cP;ImFnycA;MA5II,iBAoDG;InF83cP;ImFtycA;MA5II,WAoDG;InFi4cP;ImFzycA;MA5II,mBAoDG;InFo4cP;ImF5ycA;MA5II,iBAoDG;InFu4cP;ImF/ycA;MA5II,gBAoDG;InF04cP;ImFlzcA;MA5II,sBAoDG;InF64cP;ImFrzcA;MA5II,gBAoDG;InFg5cP;ImFxzcA;MA5II,eAyDO;InF84cX;ImF3zcA;MA5II,qBAyDO;InFi5cX;ImF9zcA;MA5II,cAyDO;InFo5cX;ImFj0cA;MA5II,aAyDO;InFu5cX;ImFp0cA;MA5II,oBAyDO;InF05cX;ImFv0cA;MA5II,cAyDO;InF65cX;ImF10cA;MA5II,kBAyDO;InFg6cX;ImF70cA;MA5II,mBAyDO;InFm6cX;ImFh1cA;MA5II,aAyDO;InFs6cX;ImFn1cA;MA5II,oBAyDO;InFy6cX;ImFt1cA;MA5II,iBAyDO;InF46cX;ImFz1cA;MA5II,kBAyDO;InF+6cX;ImF51cA;MA5II,aAyDO;InFk7cX;ImF/1cA;MA5II,cAoDG;InF07cP;ImFl2cA;MA5II,mBAyDO;InFw7cX;ImFr2cA;MA5II,sBAyDO;InF27cX;ImFx2cA;MA5II,2BAyDO;InF87cX;ImF32cA;MA5II,8BAyDO;InFi8cX;ImF92cA;MA5II,YAoDG;InFy8cP;ImFj3cA;MA5II,YAoDG;InF48cP;ImFp3cA;MA5II,cAoDG;InF+8cP;ImFv3cA;MA5II,cAoDG;InFk9cP;ImF13cA;MA5II,eAyDO;InFg9cX;ImF73cA;MA5II,iBAyDO;InFm9cX;ImFh4cA;MA5II,uBAyDO;InFs9cX;ImFn4cA;MA5II,2BAoDG;InF89cP;ImFt4cA;MA5II,yBAoDG;InFi+cP;ImFz4cA;MA5II,uBAoDG;InFo+cP;ImF54cA;MA5II,8BAoDG;InFu+cP;ImF/4cA;MA5II,6BAoDG;InF0+cP;ImFl5cA;MA5II,6BAoDG;InF6+cP;ImFr5cA;MA5II,oBAoDG;InFg/cP;ImFx5cA;MA5II,kBAoDG;InFm/cP;ImF35cA;MA5II,qBAoDG;InFs/cP;ImF95cA;MA5II,sBAoDG;InFy/cP;ImFj6cA;MA5II,mBAoDG;InF4/cP;ImFp6cA;MA5II,iBAoDG;InF+/cP;ImFv6cA;MA5II,oBAoDG;InFkgdP;ImF16cA;MA5II,uBAoDG;InFqgdP;ImF76cA;MA5II,qBAoDG;InFwgdP;ImFh7cA;MA5II,mBAoDG;InF2gdP;ImFn7cA;MA5II,qBAoDG;InF8gdP;ImFt7cA;MA5II,oBAoDG;InFihdP;ImFz7cA;MA5II,yBAoDG;InFohdP;ImF57cA;MA5II,uBAoDG;InFuhdP;ImF/7cA;MA5II,qBAoDG;InF0hdP;ImFl8cA;MA5II,4BAoDG;InF6hdP;ImFr8cA;MA5II,2BAoDG;InFgidP;ImFx8cA;MA5II,sBAoDG;InFmidP;ImF38cA;MA5II,gBAoDG;InFsidP;ImF98cA;MA5II,sBAoDG;InFyidP;ImFj9cA;MA5II,oBAoDG;InF4idP;ImFp9cA;MA5II,kBAoDG;InF+idP;ImFv9cA;MA5II,oBAoDG;InFkjdP;ImF19cA;MA5II,mBAoDG;InFqjdP;ImF79cA;MA5II,kBAoDG;InFwjdP;ImFh+cA;MA5II,gBAoDG;InF2jdP;ImFn+cA;MA5II,mBAoDG;InF8jdP;ImFt+cA;MA5II,oBAoDG;InFikdP;ImFz+cA;MA5II,0BAoDG;InFokdP;ImF5+cA;MA5II,qCAoDG;InFukdP;ImF/+cA;MA5II,qCAoDG;InF0kdP;ImFl/cA;MA5II,qCAoDG;InF6kdP;ImFr/cA;MA5II,qCAoDG;InFgldP;ImFx/cA;MA5II,mBAoDG;InFmldP;ImF3/cA;MA5II,mBAyDO;InFildX;ImF9/cA;MA5II,sBAyDO;InFoldX;ImFjgdA;MA5II,qBAyDO;InFuldX;ImFpgdA;MA5II,SAoDG;InF+ldP;ImFvgdA;MA5II,QAoDG;InFkmdP;ImF1gdA;MA5II,QAoDG;InFqmdP;ImF7gdA;MA5II,QAoDG;InFwmdP;ImFhhdA;MA5II,QAoDG;InF2mdP;ImFnhdA;MA5II,QAoDG;InF8mdP;ImFthdA;MA5II,QAoDG;InFindP;ImFzhdA;MA5II,QAoDG;InFondP;ImF5hdA;MA5II,SAoDG;InFundP;ImF/hdA;MA5II,eAoDG;InF0ndP;ImFlidA;MA5II,cAoDG;InF6ndP;ImFridA;MA5II,eAoDG;InFgodP;ImFxidA;MA5II,YAoDG;InFmodP;ImF3idA;MA5II,eAoDG;InFsodP;ImF9idA;MA5II,cAoDG;InFyodP;ImFjjdA;MA5II,YAoDG;InF4odP;ImFpjdA;MA5II,cAoDG;InF+odP;ImFvjdA;MA5II,YAoDG;InFkpdP;ImF1jdA;MA5II,YAoDG;InFqpdP;ImF7jdA;MA5II,gBAoDG;InFwpdP;ImFhkdA;MA5II,sBAoDG;InF2pdP;ImFnkdA;MA5II,qBAoDG;InF8pdP;ImFtkdA;MA5II,sBAoDG;InFiqdP;ImFzkdA;MA5II,mBAoDG;InFoqdP;ImF5kdA;MA5II,sBAoDG;InFuqdP;ImF/kdA;MA5II,qBAoDG;InF0qdP;ImFlldA;MA5II,mBAoDG;InF6qdP;ImFrldA;MA5II,qBAoDG;InFgrdP;ImFxldA;MA5II,mBAoDG;InFmrdP;ImF3ldA;MA5II,mBAoDG;InFsrdP;ImF9ldA;MA5II,eAoDG;InFyrdP;ImFjmdA;MA5II,qBAoDG;InF4rdP;ImFpmdA;MA5II,oBAoDG;InF+rdP;ImFvmdA;MA5II,qBAoDG;InFksdP;ImF1mdA;MA5II,kBAoDG;InFqsdP;ImF7mdA;MA5II,qBAoDG;InFwsdP;ImFhndA;MA5II,oBAoDG;InF2sdP;ImFnndA;MA5II,kBAoDG;InF8sdP;ImFtndA;MA5II,oBAoDG;InFitdP;ImFzndA;MA5II,kBAoDG;InFotdP;ImF5ndA;MA5II,kBAoDG;InFutdP;ImF/ndA;MA5II,qBAoDG;InF0tdP;ImFlodA;MA5II,2BAoDG;InF6tdP;ImFrodA;MA5II,0BAoDG;InFgudP;ImFxodA;MA5II,2BAoDG;InFmudP;ImF3odA;MA5II,wBAoDG;InFsudP;ImF9odA;MA5II,2BAoDG;InFyudP;ImFjpdA;MA5II,0BAoDG;InF4udP;ImFppdA;MA5II,wBAoDG;InF+udP;ImFvpdA;MA5II,0BAoDG;InFkvdP;ImF1pdA;MA5II,wBAoDG;InFqvdP;ImF7pdA;MA5II,wBAoDG;InFwvdP;ImFhqdA;MA5II,oBAoDG;InF2vdP;ImFnqdA;MA5II,0BAoDG;InF8vdP;ImFtqdA;MA5II,yBAoDG;InFiwdP;ImFzqdA;MA5II,0BAoDG;InFowdP;ImF5qdA;MA5II,uBAoDG;InFuwdP;ImF/qdA;MA5II,0BAoDG;InF0wdP;ImFlrdA;MA5II,yBAoDG;InF6wdP;ImFrrdA;MA5II,uBAoDG;InFgxdP;ImFxrdA;MA5II,yBAoDG;InFmxdP;ImF3rdA;MA5II,uBAoDG;InFsxdP;ImF9rdA;MA5II,2BAoDG;InFyxdP;ImFjsdA;MA5II,0BAoDG;InF4xdP;ImFpsdA;MA5II,uBAoDG;InF+xdP;ImFvsdA;MA5II,mBAoDG;InFkydP;ImF1sdA;MA5II,yBAoDG;InFqydP;ImF7sdA;MA5II,wBAoDG;InFwydP;ImFhtdA;MA5II,yBAoDG;InF2ydP;ImFntdA;MA5II,sBAoDG;InF8ydP;ImFttdA;MA5II,yBAoDG;InFizdP;ImFztdA;MA5II,wBAoDG;InFozdP;ImF5tdA;MA5II,sBAoDG;InFuzdP;ImF/tdA;MA5II,wBAoDG;InF0zdP;ImFludA;MA5II,sBAoDG;InF6zdP;ImFrudA;MA5II,sBAoDG;InFg0dP;ImFxudA;MA5II,sBAoDG;InFm0dP;ImF3udA;MA5II,4BAoDG;InFs0dP;ImF9udA;MA5II,2BAoDG;InFy0dP;ImFjvdA;MA5II,4BAoDG;InF40dP;ImFpvdA;MA5II,yBAoDG;InF+0dP;ImFvvdA;MA5II,4BAoDG;InFk1dP;ImF1vdA;MA5II,2BAoDG;InFq1dP;ImF7vdA;MA5II,yBAoDG;InFw1dP;ImFhwdA;MA5II,2BAoDG;InF21dP;ImFnwdA;MA5II,yBAoDG;InF81dP;ImFtwdA;MA5II,6BAoDG;InFi2dP;ImFzwdA;MA5II,4BAoDG;InFo2dP;ImF5wdA;MA5II,yBAoDG;InFu2dP;ImF/wdA;MA5II,UAoDG;InF02dP;ImFlxdA;MA5II,gBAoDG;InF62dP;ImFrxdA;MA5II,eAoDG;InFg3dP;ImFxxdA;MA5II,gBAoDG;InFm3dP;ImF3xdA;MA5II,aAoDG;InFs3dP;ImF9xdA;MA5II,gBAoDG;InFy3dP;ImFjydA;MA5II,eAoDG;InF43dP;ImFpydA;MA5II,aAoDG;InF+3dP;ImFvydA;MA5II,eAoDG;InFk4dP;ImF1ydA;MA5II,aAoDG;InFq4dP;ImF7ydA;MA5II,iBAoDG;InFw4dP;ImFhzdA;MA5II,uBAoDG;InF24dP;ImFnzdA;MA5II,sBAoDG;InF84dP;ImFtzdA;MA5II,uBAoDG;InFi5dP;ImFzzdA;MA5II,oBAoDG;InFo5dP;ImF5zdA;MA5II,uBAoDG;InFu5dP;ImF/zdA;MA5II,sBAoDG;InF05dP;ImFl0dA;MA5II,oBAoDG;InF65dP;ImFr0dA;MA5II,sBAoDG;InFg6dP;ImFx0dA;MA5II,oBAoDG;InFm6dP;ImF30dA;MA5II,gBAoDG;InFs6dP;ImF90dA;MA5II,sBAoDG;InFy6dP;ImFj1dA;MA5II,qBAoDG;InF46dP;ImFp1dA;MA5II,sBAoDG;InF+6dP;ImFv1dA;MA5II,mBAoDG;InFk7dP;ImF11dA;MA5II,sBAoDG;InFq7dP;ImF71dA;MA5II,qBAoDG;InFw7dP;ImFh2dA;MA5II,mBAoDG;InF27dP;ImFn2dA;MA5II,qBAoDG;InF87dP;ImFt2dA;MA5II,mBAoDG;InFi8dP;ImFz2dA;MA5II,sBAoDG;InFo8dP;ImF52dA;MA5II,4BAoDG;InFu8dP;ImF/2dA;MA5II,2BAoDG;InF08dP;ImFl3dA;MA5II,4BAoDG;InF68dP;ImFr3dA;MA5II,yBAoDG;InFg9dP;ImFx3dA;MA5II,4BAoDG;InFm9dP;ImF33dA;MA5II,2BAoDG;InFs9dP;ImF93dA;MA5II,yBAoDG;InFy9dP;ImFj4dA;MA5II,2BAoDG;InF49dP;ImFp4dA;MA5II,yBAoDG;InF+9dP;ImFv4dA;MA5II,qBAoDG;InFk+dP;ImF14dA;MA5II,2BAoDG;InFq+dP;ImF74dA;MA5II,0BAoDG;InFw+dP;ImFh5dA;MA5II,2BAoDG;InF2+dP;ImFn5dA;MA5II,wBAoDG;InF8+dP;ImFt5dA;MA5II,2BAoDG;InFi/dP;ImFz5dA;MA5II,0BAoDG;InFo/dP;ImF55dA;MA5II,wBAoDG;InFu/dP;ImF/5dA;MA5II,0BAoDG;InF0/dP;ImFl6dA;MA5II,wBAoDG;InF6/dP;ImFr6dA;MA5II,oBAoDG;InFggeP;ImFx6dA;MA5II,0BAoDG;InFmgeP;ImF36dA;MA5II,yBAoDG;InFsgeP;ImF96dA;MA5II,0BAoDG;InFygeP;ImFj7dA;MA5II,uBAoDG;InF4geP;ImFp7dA;MA5II,0BAoDG;InF+geP;ImFv7dA;MA5II,yBAoDG;InFkheP;ImF17dA;MA5II,uBAoDG;InFqheP;ImF77dA;MA5II,yBAoDG;InFwheP;ImFh8dA;MA5II,uBAoDG;InF2heP;ImFn8dA;MA5II,uBAoDG;InF8heP;ImFt8dA;MA5II,6BAoDG;InFiieP;ImFz8dA;MA5II,4BAoDG;InFoieP;ImF58dA;MA5II,6BAoDG;InFuieP;ImF/8dA;MA5II,0BAoDG;InF0ieP;ImFl9dA;MA5II,6BAoDG;InF6ieP;ImFr9dA;MA5II,4BAoDG;InFgjeP;ImFx9dA;MA5II,0BAoDG;InFmjeP;ImF39dA;MA5II,4BAoDG;InFsjeP;ImF99dA;MA5II,0BAoDG;InFyjeP;ImFj+dA;MA5II,MAoDG;InF4jeP;ImFp+dA;MA5II,YAoDG;InF+jeP;ImFv+dA;MA5II,WAoDG;InFkkeP;ImF1+dA;MA5II,YAoDG;InFqkeP;ImF7+dA;MA5II,SAoDG;InFwkeP;ImFh/dA;MA5II,YAoDG;InF2keP;ImFn/dA;MA5II,WAoDG;InF8keP;ImFt/dA;MA5II,SAoDG;InFileP;ImFz/dA;MA5II,WAoDG;InFoleP;ImF5/dA;MA5II,SAoDG;InFuleP;ImF//dA;MA5II,UAoDG;InF0leP;ImFlgeA;MA5II,gBAoDG;InF6leP;ImFrgeA;MA5II,eAoDG;InFgmeP;ImFxgeA;MA5II,gBAoDG;InFmmeP;ImF3geA;MA5II,aAoDG;InFsmeP;ImF9geA;MA5II,gBAoDG;InFymeP;ImFjheA;MA5II,eAoDG;InF4meP;ImFpheA;MA5II,aAoDG;InF+meP;ImFvheA;MA5II,eAoDG;InFkneP;ImF1heA;MA5II,aAoDG;InFqneP;ImF7heA;MA5II,aAoDG;InFwneP;ImFhieA;MA5II,mBAoDG;InF2neP;ImFnieA;MA5II,kBAoDG;InF8neP;ImFtieA;MA5II,mBAoDG;InFioeP;ImFzieA;MA5II,gBAoDG;InFooeP;ImF5ieA;MA5II,mBAoDG;InFuoeP;ImF/ieA;MA5II,kBAoDG;InF0oeP;ImFljeA;MA5II,gBAoDG;InF6oeP;ImFrjeA;MA5II,kBAoDG;InFgpeP;ImFxjeA;MA5II,gBAoDG;InFmpeP;ImF3jeA;MA5II,oBAoDG;InFspeP;ImF9jeA;MA5II,0BAoDG;InFypeP;ImFjkeA;MA5II,yBAoDG;InF4peP;ImFpkeA;MA5II,0BAoDG;InF+peP;ImFvkeA;MA5II,uBAoDG;InFkqeP;ImF1keA;MA5II,0BAoDG;InFqqeP;ImF7keA;MA5II,yBAoDG;InFwqeP;ImFhleA;MA5II,uBAoDG;InF2qeP;ImFnleA;MA5II,yBAoDG;InF8qeP;ImFtleA;MA5II,uBAoDG;InFireP;ImFzleA;MA5II,mBAoDG;InForeP;ImF5leA;MA5II,yBAoDG;InFureP;ImF/leA;MA5II,wBAoDG;InF0reP;ImFlmeA;MA5II,yBAoDG;InF6reP;ImFrmeA;MA5II,sBAoDG;InFgseP;ImFxmeA;MA5II,yBAoDG;InFmseP;ImF3meA;MA5II,wBAoDG;InFsseP;ImF9meA;MA5II,sBAoDG;InFyseP;ImFjneA;MA5II,wBAoDG;InF4seP;ImFpneA;MA5II,sBAoDG;InF+seP;ImFvneA;MA5II,yFAoDG;InFkteP;ImF1neA;MA5II,sBAoDG;InFqteP;ImF7neA;MA5II,wFAoDG;InFwteP;ImFhoeA;MA5II,qBAoDG;InF2teP;ImFnoeA;MA5II,iBAoDG;InF8teP;ImFtoeA;MA5II,eAoDG;InFiueP;ImFzoeA;MA5II,kBAoDG;InFoueP;EACF;EWzveE;IwE4GA;MA5II,mBAoDG;InFyueP;ImFjpeA;MA5II,iBAoDG;InF4ueP;ImFppeA;MA5II,WAoDG;InF+ueP;ImFvpeA;MA5II,mBAoDG;InFkveP;ImF1peA;MA5II,iBAoDG;InFqveP;ImF7peA;MA5II,gBAoDG;InFwveP;ImFhqeA;MA5II,sBAoDG;InF2veP;ImFnqeA;MA5II,gBAoDG;InF8veP;ImFtqeA;MA5II,eAyDO;InF4veX;ImFzqeA;MA5II,qBAyDO;InF+veX;ImF5qeA;MA5II,cAyDO;InFkweX;ImF/qeA;MA5II,aAyDO;InFqweX;ImFlreA;MA5II,oBAyDO;InFwweX;ImFrreA;MA5II,cAyDO;InF2weX;ImFxreA;MA5II,kBAyDO;InF8weX;ImF3reA;MA5II,mBAyDO;InFixeX;ImF9reA;MA5II,aAyDO;InFoxeX;ImFjseA;MA5II,oBAyDO;InFuxeX;ImFpseA;MA5II,iBAyDO;InF0xeX;ImFvseA;MA5II,kBAyDO;InF6xeX;ImF1seA;MA5II,aAyDO;InFgyeX;ImF7seA;MA5II,cAoDG;InFwyeP;ImFhteA;MA5II,mBAyDO;InFsyeX;ImFnteA;MA5II,sBAyDO;InFyyeX;ImFtteA;MA5II,2BAyDO;InF4yeX;ImFzteA;MA5II,8BAyDO;InF+yeX;ImF5teA;MA5II,YAoDG;InFuzeP;ImF/teA;MA5II,YAoDG;InF0zeP;ImFlueA;MA5II,cAoDG;InF6zeP;ImFrueA;MA5II,cAoDG;InFg0eP;ImFxueA;MA5II,eAyDO;InF8zeX;ImF3ueA;MA5II,iBAyDO;InFi0eX;ImF9ueA;MA5II,uBAyDO;InFo0eX;ImFjveA;MA5II,2BAoDG;InF40eP;ImFpveA;MA5II,yBAoDG;InF+0eP;ImFvveA;MA5II,uBAoDG;InFk1eP;ImF1veA;MA5II,8BAoDG;InFq1eP;ImF7veA;MA5II,6BAoDG;InFw1eP;ImFhweA;MA5II,6BAoDG;InF21eP;ImFnweA;MA5II,oBAoDG;InF81eP;ImFtweA;MA5II,kBAoDG;InFi2eP;ImFzweA;MA5II,qBAoDG;InFo2eP;ImF5weA;MA5II,sBAoDG;InFu2eP;ImF/weA;MA5II,mBAoDG;InF02eP;ImFlxeA;MA5II,iBAoDG;InF62eP;ImFrxeA;MA5II,oBAoDG;InFg3eP;ImFxxeA;MA5II,uBAoDG;InFm3eP;ImF3xeA;MA5II,qBAoDG;InFs3eP;ImF9xeA;MA5II,mBAoDG;InFy3eP;ImFjyeA;MA5II,qBAoDG;InF43eP;ImFpyeA;MA5II,oBAoDG;InF+3eP;ImFvyeA;MA5II,yBAoDG;InFk4eP;ImF1yeA;MA5II,uBAoDG;InFq4eP;ImF7yeA;MA5II,qBAoDG;InFw4eP;ImFhzeA;MA5II,4BAoDG;InF24eP;ImFnzeA;MA5II,2BAoDG;InF84eP;ImFtzeA;MA5II,sBAoDG;InFi5eP;ImFzzeA;MA5II,gBAoDG;InFo5eP;ImF5zeA;MA5II,sBAoDG;InFu5eP;ImF/zeA;MA5II,oBAoDG;InF05eP;ImFl0eA;MA5II,kBAoDG;InF65eP;ImFr0eA;MA5II,oBAoDG;InFg6eP;ImFx0eA;MA5II,mBAoDG;InFm6eP;ImF30eA;MA5II,kBAoDG;InFs6eP;ImF90eA;MA5II,gBAoDG;InFy6eP;ImFj1eA;MA5II,mBAoDG;InF46eP;ImFp1eA;MA5II,oBAoDG;InF+6eP;ImFv1eA;MA5II,0BAoDG;InFk7eP;ImF11eA;MA5II,qCAoDG;InFq7eP;ImF71eA;MA5II,qCAoDG;InFw7eP;ImFh2eA;MA5II,qCAoDG;InF27eP;ImFn2eA;MA5II,qCAoDG;InF87eP;ImFt2eA;MA5II,mBAoDG;InFi8eP;ImFz2eA;MA5II,mBAyDO;InF+7eX;ImF52eA;MA5II,sBAyDO;InFk8eX;ImF/2eA;MA5II,qBAyDO;InFq8eX;ImFl3eA;MA5II,SAoDG;InF68eP;ImFr3eA;MA5II,QAoDG;InFg9eP;ImFx3eA;MA5II,QAoDG;InFm9eP;ImF33eA;MA5II,QAoDG;InFs9eP;ImF93eA;MA5II,QAoDG;InFy9eP;ImFj4eA;MA5II,QAoDG;InF49eP;ImFp4eA;MA5II,QAoDG;InF+9eP;ImFv4eA;MA5II,QAoDG;InFk+eP;ImF14eA;MA5II,SAoDG;InFq+eP;ImF74eA;MA5II,eAoDG;InFw+eP;ImFh5eA;MA5II,cAoDG;InF2+eP;ImFn5eA;MA5II,eAoDG;InF8+eP;ImFt5eA;MA5II,YAoDG;InFi/eP;ImFz5eA;MA5II,eAoDG;InFo/eP;ImF55eA;MA5II,cAoDG;InFu/eP;ImF/5eA;MA5II,YAoDG;InF0/eP;ImFl6eA;MA5II,cAoDG;InF6/eP;ImFr6eA;MA5II,YAoDG;InFggfP;ImFx6eA;MA5II,YAoDG;InFmgfP;ImF36eA;MA5II,gBAoDG;InFsgfP;ImF96eA;MA5II,sBAoDG;InFygfP;ImFj7eA;MA5II,qBAoDG;InF4gfP;ImFp7eA;MA5II,sBAoDG;InF+gfP;ImFv7eA;MA5II,mBAoDG;InFkhfP;ImF17eA;MA5II,sBAoDG;InFqhfP;ImF77eA;MA5II,qBAoDG;InFwhfP;ImFh8eA;MA5II,mBAoDG;InF2hfP;ImFn8eA;MA5II,qBAoDG;InF8hfP;ImFt8eA;MA5II,mBAoDG;InFiifP;ImFz8eA;MA5II,mBAoDG;InFoifP;ImF58eA;MA5II,eAoDG;InFuifP;ImF/8eA;MA5II,qBAoDG;InF0ifP;ImFl9eA;MA5II,oBAoDG;InF6ifP;ImFr9eA;MA5II,qBAoDG;InFgjfP;ImFx9eA;MA5II,kBAoDG;InFmjfP;ImF39eA;MA5II,qBAoDG;InFsjfP;ImF99eA;MA5II,oBAoDG;InFyjfP;ImFj+eA;MA5II,kBAoDG;InF4jfP;ImFp+eA;MA5II,oBAoDG;InF+jfP;ImFv+eA;MA5II,kBAoDG;InFkkfP;ImF1+eA;MA5II,kBAoDG;InFqkfP;ImF7+eA;MA5II,qBAoDG;InFwkfP;ImFh/eA;MA5II,2BAoDG;InF2kfP;ImFn/eA;MA5II,0BAoDG;InF8kfP;ImFt/eA;MA5II,2BAoDG;InFilfP;ImFz/eA;MA5II,wBAoDG;InFolfP;ImF5/eA;MA5II,2BAoDG;InFulfP;ImF//eA;MA5II,0BAoDG;InF0lfP;ImFlgfA;MA5II,wBAoDG;InF6lfP;ImFrgfA;MA5II,0BAoDG;InFgmfP;ImFxgfA;MA5II,wBAoDG;InFmmfP;ImF3gfA;MA5II,wBAoDG;InFsmfP;ImF9gfA;MA5II,oBAoDG;InFymfP;ImFjhfA;MA5II,0BAoDG;InF4mfP;ImFphfA;MA5II,yBAoDG;InF+mfP;ImFvhfA;MA5II,0BAoDG;InFknfP;ImF1hfA;MA5II,uBAoDG;InFqnfP;ImF7hfA;MA5II,0BAoDG;InFwnfP;ImFhifA;MA5II,yBAoDG;InF2nfP;ImFnifA;MA5II,uBAoDG;InF8nfP;ImFtifA;MA5II,yBAoDG;InFiofP;ImFzifA;MA5II,uBAoDG;InFoofP;ImF5ifA;MA5II,2BAoDG;InFuofP;ImF/ifA;MA5II,0BAoDG;InF0ofP;ImFljfA;MA5II,uBAoDG;InF6ofP;ImFrjfA;MA5II,mBAoDG;InFgpfP;ImFxjfA;MA5II,yBAoDG;InFmpfP;ImF3jfA;MA5II,wBAoDG;InFspfP;ImF9jfA;MA5II,yBAoDG;InFypfP;ImFjkfA;MA5II,sBAoDG;InF4pfP;ImFpkfA;MA5II,yBAoDG;InF+pfP;ImFvkfA;MA5II,wBAoDG;InFkqfP;ImF1kfA;MA5II,sBAoDG;InFqqfP;ImF7kfA;MA5II,wBAoDG;InFwqfP;ImFhlfA;MA5II,sBAoDG;InF2qfP;ImFnlfA;MA5II,sBAoDG;InF8qfP;ImFtlfA;MA5II,sBAoDG;InFirfP;ImFzlfA;MA5II,4BAoDG;InForfP;ImF5lfA;MA5II,2BAoDG;InFurfP;ImF/lfA;MA5II,4BAoDG;InF0rfP;ImFlmfA;MA5II,yBAoDG;InF6rfP;ImFrmfA;MA5II,4BAoDG;InFgsfP;ImFxmfA;MA5II,2BAoDG;InFmsfP;ImF3mfA;MA5II,yBAoDG;InFssfP;ImF9mfA;MA5II,2BAoDG;InFysfP;ImFjnfA;MA5II,yBAoDG;InF4sfP;ImFpnfA;MA5II,6BAoDG;InF+sfP;ImFvnfA;MA5II,4BAoDG;InFktfP;ImF1nfA;MA5II,yBAoDG;InFqtfP;ImF7nfA;MA5II,UAoDG;InFwtfP;ImFhofA;MA5II,gBAoDG;InF2tfP;ImFnofA;MA5II,eAoDG;InF8tfP;ImFtofA;MA5II,gBAoDG;InFiufP;ImFzofA;MA5II,aAoDG;InFoufP;ImF5ofA;MA5II,gBAoDG;InFuufP;ImF/ofA;MA5II,eAoDG;InF0ufP;ImFlpfA;MA5II,aAoDG;InF6ufP;ImFrpfA;MA5II,eAoDG;InFgvfP;ImFxpfA;MA5II,aAoDG;InFmvfP;ImF3pfA;MA5II,iBAoDG;InFsvfP;ImF9pfA;MA5II,uBAoDG;InFyvfP;ImFjqfA;MA5II,sBAoDG;InF4vfP;ImFpqfA;MA5II,uBAoDG;InF+vfP;ImFvqfA;MA5II,oBAoDG;InFkwfP;ImF1qfA;MA5II,uBAoDG;InFqwfP;ImF7qfA;MA5II,sBAoDG;InFwwfP;ImFhrfA;MA5II,oBAoDG;InF2wfP;ImFnrfA;MA5II,sBAoDG;InF8wfP;ImFtrfA;MA5II,oBAoDG;InFixfP;ImFzrfA;MA5II,gBAoDG;InFoxfP;ImF5rfA;MA5II,sBAoDG;InFuxfP;ImF/rfA;MA5II,qBAoDG;InF0xfP;ImFlsfA;MA5II,sBAoDG;InF6xfP;ImFrsfA;MA5II,mBAoDG;InFgyfP;ImFxsfA;MA5II,sBAoDG;InFmyfP;ImF3sfA;MA5II,qBAoDG;InFsyfP;ImF9sfA;MA5II,mBAoDG;InFyyfP;ImFjtfA;MA5II,qBAoDG;InF4yfP;ImFptfA;MA5II,mBAoDG;InF+yfP;ImFvtfA;MA5II,sBAoDG;InFkzfP;ImF1tfA;MA5II,4BAoDG;InFqzfP;ImF7tfA;MA5II,2BAoDG;InFwzfP;ImFhufA;MA5II,4BAoDG;InF2zfP;ImFnufA;MA5II,yBAoDG;InF8zfP;ImFtufA;MA5II,4BAoDG;InFi0fP;ImFzufA;MA5II,2BAoDG;InFo0fP;ImF5ufA;MA5II,yBAoDG;InFu0fP;ImF/ufA;MA5II,2BAoDG;InF00fP;ImFlvfA;MA5II,yBAoDG;InF60fP;ImFrvfA;MA5II,qBAoDG;InFg1fP;ImFxvfA;MA5II,2BAoDG;InFm1fP;ImF3vfA;MA5II,0BAoDG;InFs1fP;ImF9vfA;MA5II,2BAoDG;InFy1fP;ImFjwfA;MA5II,wBAoDG;InF41fP;ImFpwfA;MA5II,2BAoDG;InF+1fP;ImFvwfA;MA5II,0BAoDG;InFk2fP;ImF1wfA;MA5II,wBAoDG;InFq2fP;ImF7wfA;MA5II,0BAoDG;InFw2fP;ImFhxfA;MA5II,wBAoDG;InF22fP;ImFnxfA;MA5II,oBAoDG;InF82fP;ImFtxfA;MA5II,0BAoDG;InFi3fP;ImFzxfA;MA5II,yBAoDG;InFo3fP;ImF5xfA;MA5II,0BAoDG;InFu3fP;ImF/xfA;MA5II,uBAoDG;InF03fP;ImFlyfA;MA5II,0BAoDG;InF63fP;ImFryfA;MA5II,yBAoDG;InFg4fP;ImFxyfA;MA5II,uBAoDG;InFm4fP;ImF3yfA;MA5II,yBAoDG;InFs4fP;ImF9yfA;MA5II,uBAoDG;InFy4fP;ImFjzfA;MA5II,uBAoDG;InF44fP;ImFpzfA;MA5II,6BAoDG;InF+4fP;ImFvzfA;MA5II,4BAoDG;InFk5fP;ImF1zfA;MA5II,6BAoDG;InFq5fP;ImF7zfA;MA5II,0BAoDG;InFw5fP;ImFh0fA;MA5II,6BAoDG;InF25fP;ImFn0fA;MA5II,4BAoDG;InF85fP;ImFt0fA;MA5II,0BAoDG;InFi6fP;ImFz0fA;MA5II,4BAoDG;InFo6fP;ImF50fA;MA5II,0BAoDG;InFu6fP;ImF/0fA;MA5II,MAoDG;InF06fP;ImFl1fA;MA5II,YAoDG;InF66fP;ImFr1fA;MA5II,WAoDG;InFg7fP;ImFx1fA;MA5II,YAoDG;InFm7fP;ImF31fA;MA5II,SAoDG;InFs7fP;ImF91fA;MA5II,YAoDG;InFy7fP;ImFj2fA;MA5II,WAoDG;InF47fP;ImFp2fA;MA5II,SAoDG;InF+7fP;ImFv2fA;MA5II,WAoDG;InFk8fP;ImF12fA;MA5II,SAoDG;InFq8fP;ImF72fA;MA5II,UAoDG;InFw8fP;ImFh3fA;MA5II,gBAoDG;InF28fP;ImFn3fA;MA5II,eAoDG;InF88fP;ImFt3fA;MA5II,gBAoDG;InFi9fP;ImFz3fA;MA5II,aAoDG;InFo9fP;ImF53fA;MA5II,gBAoDG;InFu9fP;ImF/3fA;MA5II,eAoDG;InF09fP;ImFl4fA;MA5II,aAoDG;InF69fP;ImFr4fA;MA5II,eAoDG;InFg+fP;ImFx4fA;MA5II,aAoDG;InFm+fP;ImF34fA;MA5II,aAoDG;InFs+fP;ImF94fA;MA5II,mBAoDG;InFy+fP;ImFj5fA;MA5II,kBAoDG;InF4+fP;ImFp5fA;MA5II,mBAoDG;InF++fP;ImFv5fA;MA5II,gBAoDG;InFk/fP;ImF15fA;MA5II,mBAoDG;InFq/fP;ImF75fA;MA5II,kBAoDG;InFw/fP;ImFh6fA;MA5II,gBAoDG;InF2/fP;ImFn6fA;MA5II,kBAoDG;InF8/fP;ImFt6fA;MA5II,gBAoDG;InFiggBP;ImFz6fA;MA5II,oBAoDG;InFoggBP;ImF56fA;MA5II,0BAoDG;InFuggBP;ImF/6fA;MA5II,yBAoDG;InF0ggBP;ImFl7fA;MA5II,0BAoDG;InF6ggBP;ImFr7fA;MA5II,uBAoDG;InFghgBP;ImFx7fA;MA5II,0BAoDG;InFmhgBP;ImF37fA;MA5II,yBAoDG;InFshgBP;ImF97fA;MA5II,uBAoDG;InFyhgBP;ImFj8fA;MA5II,yBAoDG;InF4hgBP;ImFp8fA;MA5II,uBAoDG;InF+hgBP;ImFv8fA;MA5II,mBAoDG;InFkigBP;ImF18fA;MA5II,yBAoDG;InFqigBP;ImF78fA;MA5II,wBAoDG;InFwigBP;ImFh9fA;MA5II,yBAoDG;InF2igBP;ImFn9fA;MA5II,sBAoDG;InF8igBP;ImFt9fA;MA5II,yBAoDG;InFijgBP;ImFz9fA;MA5II,wBAoDG;InFojgBP;ImF59fA;MA5II,sBAoDG;InFujgBP;ImF/9fA;MA5II,wBAoDG;InF0jgBP;ImFl+fA;MA5II,sBAoDG;InF6jgBP;ImFr+fA;MA5II,yFAoDG;InFgkgBP;ImFx+fA;MA5II,sBAoDG;InFmkgBP;ImF3+fA;MA5II,wFAoDG;InFskgBP;ImF9+fA;MA5II,qBAoDG;InFykgBP;ImFj/fA;MA5II,iBAoDG;InF4kgBP;ImFp/fA;MA5II,eAoDG;InF+kgBP;ImFv/fA;MA5II,kBAoDG;InFklgBP;EACF;AACF","file":"bootstrap.css","sourcesContent":["@charset \"UTF-8\";\n/*!\n * Bootstrap v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.24 240deg));\n --blue-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.24 240deg));\n --blue-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.24 240deg));\n --blue-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.24 240deg));\n --blue-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.24 240deg));\n --blue-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.24 240deg));\n --blue-500: oklch(60% 0.24 240deg);\n --blue-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.24 240deg));\n --blue-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.24 240deg));\n --blue-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.24 240deg));\n --blue-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.24 240deg));\n --blue-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.24 240deg));\n --blue-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.24 240deg));\n --indigo-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.26 288deg));\n --indigo-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.26 288deg));\n --indigo-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.26 288deg));\n --indigo-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.26 288deg));\n --indigo-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.26 288deg));\n --indigo-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.26 288deg));\n --indigo-500: oklch(56% 0.26 288deg);\n --indigo-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.26 288deg));\n --indigo-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.26 288deg));\n --indigo-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.26 288deg));\n --indigo-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.26 288deg));\n --indigo-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.26 288deg));\n --indigo-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.26 288deg));\n --violet-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 300deg));\n --violet-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 300deg));\n --violet-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 300deg));\n --violet-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 300deg));\n --violet-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 300deg));\n --violet-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 300deg));\n --violet-500: oklch(56% 0.24 300deg);\n --violet-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 300deg));\n --violet-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 300deg));\n --violet-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 300deg));\n --violet-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 300deg));\n --violet-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 300deg));\n --violet-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 300deg));\n --purple-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 320deg));\n --purple-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 320deg));\n --purple-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 320deg));\n --purple-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 320deg));\n --purple-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 320deg));\n --purple-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 320deg));\n --purple-500: oklch(56% 0.24 320deg);\n --purple-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 320deg));\n --purple-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 320deg));\n --purple-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 320deg));\n --purple-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 320deg));\n --purple-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 320deg));\n --purple-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 320deg));\n --pink-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 4deg));\n --pink-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 4deg));\n --pink-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 4deg));\n --pink-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 4deg));\n --pink-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 4deg));\n --pink-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 4deg));\n --pink-500: oklch(60% 0.22 4deg);\n --pink-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 4deg));\n --pink-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 4deg));\n --pink-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 4deg));\n --pink-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 4deg));\n --pink-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 4deg));\n --pink-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 4deg));\n --red-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 20deg));\n --red-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 20deg));\n --red-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 20deg));\n --red-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 20deg));\n --red-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 20deg));\n --red-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 20deg));\n --red-500: oklch(60% 0.22 20deg);\n --red-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 20deg));\n --red-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 20deg));\n --red-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 20deg));\n --red-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 20deg));\n --red-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 20deg));\n --red-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 20deg));\n --orange-025: color-mix(in lab, var(--white) 94%, oklch(70% 0.22 52deg));\n --orange-050: color-mix(in lab, var(--white) 90%, oklch(70% 0.22 52deg));\n --orange-100: color-mix(in lab, var(--white) 80%, oklch(70% 0.22 52deg));\n --orange-200: color-mix(in lab, var(--white) 60%, oklch(70% 0.22 52deg));\n --orange-300: color-mix(in lab, var(--white) 40%, oklch(70% 0.22 52deg));\n --orange-400: color-mix(in lab, var(--white) 20%, oklch(70% 0.22 52deg));\n --orange-500: oklch(70% 0.22 52deg);\n --orange-600: color-mix(in lab, var(--black) 16%, oklch(70% 0.22 52deg));\n --orange-700: color-mix(in lab, var(--black) 32%, oklch(70% 0.22 52deg));\n --orange-800: color-mix(in lab, var(--black) 48%, oklch(70% 0.22 52deg));\n --orange-900: color-mix(in lab, var(--black) 64%, oklch(70% 0.22 52deg));\n --orange-950: color-mix(in lab, var(--black) 76%, oklch(70% 0.22 52deg));\n --orange-975: color-mix(in lab, var(--black) 88%, oklch(70% 0.22 52deg));\n --amber-025: color-mix(in lab, var(--white) 94%, oklch(79% 0.2 78deg));\n --amber-050: color-mix(in lab, var(--white) 90%, oklch(79% 0.2 78deg));\n --amber-100: color-mix(in lab, var(--white) 80%, oklch(79% 0.2 78deg));\n --amber-200: color-mix(in lab, var(--white) 60%, oklch(79% 0.2 78deg));\n --amber-300: color-mix(in lab, var(--white) 40%, oklch(79% 0.2 78deg));\n --amber-400: color-mix(in lab, var(--white) 20%, oklch(79% 0.2 78deg));\n --amber-500: oklch(79% 0.2 78deg);\n --amber-600: color-mix(in lab, var(--black) 16%, oklch(79% 0.2 78deg));\n --amber-700: color-mix(in lab, var(--black) 32%, oklch(79% 0.2 78deg));\n --amber-800: color-mix(in lab, var(--black) 48%, oklch(79% 0.2 78deg));\n --amber-900: color-mix(in lab, var(--black) 64%, oklch(79% 0.2 78deg));\n --amber-950: color-mix(in lab, var(--black) 76%, oklch(79% 0.2 78deg));\n --amber-975: color-mix(in lab, var(--black) 88%, oklch(79% 0.2 78deg));\n --yellow-025: color-mix(in lab, var(--white) 94%, oklch(88% 0.24 88deg));\n --yellow-050: color-mix(in lab, var(--white) 90%, oklch(88% 0.24 88deg));\n --yellow-100: color-mix(in lab, var(--white) 80%, oklch(88% 0.24 88deg));\n --yellow-200: color-mix(in lab, var(--white) 60%, oklch(88% 0.24 88deg));\n --yellow-300: color-mix(in lab, var(--white) 40%, oklch(88% 0.24 88deg));\n --yellow-400: color-mix(in lab, var(--white) 20%, oklch(88% 0.24 88deg));\n --yellow-500: oklch(88% 0.24 88deg);\n --yellow-600: color-mix(in lab, var(--black) 16%, oklch(88% 0.24 88deg));\n --yellow-700: color-mix(in lab, var(--black) 32%, oklch(88% 0.24 88deg));\n --yellow-800: color-mix(in lab, var(--black) 48%, oklch(88% 0.24 88deg));\n --yellow-900: color-mix(in lab, var(--black) 64%, oklch(88% 0.24 88deg));\n --yellow-950: color-mix(in lab, var(--black) 76%, oklch(88% 0.24 88deg));\n --yellow-975: color-mix(in lab, var(--black) 88%, oklch(88% 0.24 88deg));\n --lime-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.24 135deg));\n --lime-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.24 135deg));\n --lime-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.24 135deg));\n --lime-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.24 135deg));\n --lime-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.24 135deg));\n --lime-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.24 135deg));\n --lime-500: oklch(65% 0.24 135deg);\n --lime-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.24 135deg));\n --lime-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.24 135deg));\n --lime-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.24 135deg));\n --lime-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.24 135deg));\n --lime-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.24 135deg));\n --lime-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.24 135deg));\n --green-025: color-mix(in lab, var(--white) 94%, oklch(64% 0.22 160deg));\n --green-050: color-mix(in lab, var(--white) 90%, oklch(64% 0.22 160deg));\n --green-100: color-mix(in lab, var(--white) 80%, oklch(64% 0.22 160deg));\n --green-200: color-mix(in lab, var(--white) 60%, oklch(64% 0.22 160deg));\n --green-300: color-mix(in lab, var(--white) 40%, oklch(64% 0.22 160deg));\n --green-400: color-mix(in lab, var(--white) 20%, oklch(64% 0.22 160deg));\n --green-500: oklch(64% 0.22 160deg);\n --green-600: color-mix(in lab, var(--black) 16%, oklch(64% 0.22 160deg));\n --green-700: color-mix(in lab, var(--black) 32%, oklch(64% 0.22 160deg));\n --green-800: color-mix(in lab, var(--black) 48%, oklch(64% 0.22 160deg));\n --green-900: color-mix(in lab, var(--black) 64%, oklch(64% 0.22 160deg));\n --green-950: color-mix(in lab, var(--black) 76%, oklch(64% 0.22 160deg));\n --green-975: color-mix(in lab, var(--black) 88%, oklch(64% 0.22 160deg));\n --teal-025: color-mix(in lab, var(--white) 94%, oklch(68% 0.22 190deg));\n --teal-050: color-mix(in lab, var(--white) 90%, oklch(68% 0.22 190deg));\n --teal-100: color-mix(in lab, var(--white) 80%, oklch(68% 0.22 190deg));\n --teal-200: color-mix(in lab, var(--white) 60%, oklch(68% 0.22 190deg));\n --teal-300: color-mix(in lab, var(--white) 40%, oklch(68% 0.22 190deg));\n --teal-400: color-mix(in lab, var(--white) 20%, oklch(68% 0.22 190deg));\n --teal-500: oklch(68% 0.22 190deg);\n --teal-600: color-mix(in lab, var(--black) 16%, oklch(68% 0.22 190deg));\n --teal-700: color-mix(in lab, var(--black) 32%, oklch(68% 0.22 190deg));\n --teal-800: color-mix(in lab, var(--black) 48%, oklch(68% 0.22 190deg));\n --teal-900: color-mix(in lab, var(--black) 64%, oklch(68% 0.22 190deg));\n --teal-950: color-mix(in lab, var(--black) 76%, oklch(68% 0.22 190deg));\n --teal-975: color-mix(in lab, var(--black) 88%, oklch(68% 0.22 190deg));\n --cyan-025: color-mix(in lab, var(--white) 94%, oklch(69% 0.22 220deg));\n --cyan-050: color-mix(in lab, var(--white) 90%, oklch(69% 0.22 220deg));\n --cyan-100: color-mix(in lab, var(--white) 80%, oklch(69% 0.22 220deg));\n --cyan-200: color-mix(in lab, var(--white) 60%, oklch(69% 0.22 220deg));\n --cyan-300: color-mix(in lab, var(--white) 40%, oklch(69% 0.22 220deg));\n --cyan-400: color-mix(in lab, var(--white) 20%, oklch(69% 0.22 220deg));\n --cyan-500: oklch(69% 0.22 220deg);\n --cyan-600: color-mix(in lab, var(--black) 16%, oklch(69% 0.22 220deg));\n --cyan-700: color-mix(in lab, var(--black) 32%, oklch(69% 0.22 220deg));\n --cyan-800: color-mix(in lab, var(--black) 48%, oklch(69% 0.22 220deg));\n --cyan-900: color-mix(in lab, var(--black) 64%, oklch(69% 0.22 220deg));\n --cyan-950: color-mix(in lab, var(--black) 76%, oklch(69% 0.22 220deg));\n --cyan-975: color-mix(in lab, var(--black) 88%, oklch(69% 0.22 220deg));\n --brown-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.12 54deg));\n --brown-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.12 54deg));\n --brown-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.12 54deg));\n --brown-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.12 54deg));\n --brown-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.12 54deg));\n --brown-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.12 54deg));\n --brown-500: oklch(60% 0.12 54deg);\n --brown-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.12 54deg));\n --brown-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.12 54deg));\n --brown-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.12 54deg));\n --brown-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.12 54deg));\n --brown-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.12 54deg));\n --brown-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.12 54deg));\n --gray-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.02 245deg));\n --gray-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.02 245deg));\n --gray-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.02 245deg));\n --gray-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.02 245deg));\n --gray-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.02 245deg));\n --gray-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.02 245deg));\n --gray-500: oklch(60% 0.02 245deg);\n --gray-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.02 245deg));\n --gray-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.02 245deg));\n --gray-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.02 245deg));\n --gray-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.02 245deg));\n --gray-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.02 245deg));\n --gray-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.02 245deg));\n --pewter-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.01 290deg));\n --pewter-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.01 290deg));\n --pewter-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.01 290deg));\n --pewter-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.01 290deg));\n --pewter-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.01 290deg));\n --pewter-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.01 290deg));\n --pewter-500: oklch(65% 0.01 290deg);\n --pewter-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.01 290deg));\n --pewter-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.01 290deg));\n --pewter-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.01 290deg));\n --pewter-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.01 290deg));\n --pewter-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.01 290deg));\n --pewter-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.01 290deg));\n}\n\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n:root {\n --black: #000;\n --white: #fff;\n --gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent));\n --font-weight-lighter: lighter;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-bolder: bolder;\n --body-font-family: system-ui;\n --body-font-size: var(--font-size-base);\n --body-font-weight: 400;\n --body-line-height: 1.5;\n --heading-color: inherit;\n --hr-border-color: var(--border-color);\n --link-color: light-dark(var(--primary-base), var(--primary-fg));\n --link-decoration: underline;\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000);\n --font-mono: ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Monaco, 'Cascadia Mono', Consolas, 'Liberation Mono', monospace;;\n --code-font-size: 95%;\n --code-color: var(--fg-2);\n --border-width: 1px;\n --border-style: solid;\n --border-color: light-dark(var(--gray-200), var(--gray-700));\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent);\n --box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n --box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n --box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);\n --box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n --spacer: 1rem;\n --focus-ring-width: 3px;\n --focus-ring-offset: 1px;\n --focus-ring-color: var(--primary-focus-ring);\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color);\n --control-checked-bg: var(--primary-base);\n --control-checked-border-color: var(--control-checked-bg);\n --control-active-bg: var(--primary-base);\n --control-active-border-color: var(--control-active-bg);\n --control-disabled-bg: var(--bg-3);\n --control-disabled-opacity: 0.65;\n --btn-input-fg: var(--fg-body);\n --btn-input-bg: var(--bg-body);\n --btn-input-min-height: 2.375rem;\n --btn-input-padding-y: 0.375rem;\n --btn-input-padding-x: 0.75rem;\n --btn-input-font-size: var(--font-size-base);\n --btn-input-line-height: var(--line-height-base);\n --btn-input-border-radius: var(--radius-5);\n --btn-input-xs-min-height: 1.5rem;\n --btn-input-xs-padding-y: 0.125rem;\n --btn-input-xs-padding-x: 0.5rem;\n --btn-input-xs-font-size: var(--font-size-xs);\n --btn-input-xs-line-height: 1.125;\n --btn-input-xs-border-radius: var(--radius-5);\n --btn-input-sm-min-height: 2rem;\n --btn-input-sm-padding-y: 0.25rem;\n --btn-input-sm-padding-x: 0.625rem;\n --btn-input-sm-font-size: var(--font-size-sm);\n --btn-input-sm-line-height: var(--line-height-sm);\n --btn-input-sm-border-radius: var(--radius-5);\n --btn-input-lg-min-height: 2.75rem;\n --btn-input-lg-padding-y: 0.5rem;\n --btn-input-lg-padding-x: 1rem;\n --btn-input-lg-font-size: var(--font-size-md);\n --btn-input-lg-line-height: var(--line-height-md);\n --btn-input-lg-border-radius: var(--radius-7);\n --font-size-xs: 0.75rem;\n --line-height-xs: 1.25;\n --font-size-sm: 0.875rem;\n --line-height-sm: 1.5;\n --font-size-md: 1rem;\n --line-height-md: 1.5;\n --font-size-lg: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n --line-height-lg: 1.5;\n --font-size-xl: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n --line-height-xl: 1.4285714286;\n --font-size-2xl: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n --line-height-2xl: 1.3333333333;\n --font-size-3xl: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n --line-height-3xl: 1.2;\n --font-size-4xl: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n --line-height-4xl: 1.1;\n --font-size-5xl: clamp(3rem, 2rem + 5vw, 4rem);\n --line-height-5xl: 1.1;\n --font-size-6xl: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n --line-height-6xl: 1;\n --primary-base: var(--blue-500);\n --primary-fg: light-dark(var(--blue-600), var(--blue-400));\n --primary-fg-emphasis: light-dark(var(--blue-800), var(--blue-200));\n --primary-bg: var(--blue-500);\n --primary-bg-subtle: light-dark(var(--blue-100), var(--blue-900));\n --primary-bg-muted: light-dark(var(--blue-200), var(--blue-800));\n --primary-border: light-dark(var(--blue-300), var(--blue-600));\n --primary-focus-ring: light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body)));\n --primary-contrast: var(--white);\n --accent-base: var(--indigo-500);\n --accent-fg: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n --accent-fg-emphasis: light-dark(var(--indigo-800), var(--indigo-300));\n --accent-bg: var(--indigo-500);\n --accent-bg-subtle: light-dark(var(--indigo-100), var(--indigo-900));\n --accent-bg-muted: light-dark(var(--indigo-200), var(--indigo-800));\n --accent-border: light-dark(var(--indigo-300), var(--indigo-600));\n --accent-focus-ring: light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body)));\n --accent-contrast: var(--white);\n --success-base: var(--green-500);\n --success-fg: light-dark(var(--green-600), var(--green-400));\n --success-fg-emphasis: light-dark(var(--green-800), var(--green-300));\n --success-bg: var(--green-500);\n --success-bg-subtle: light-dark(var(--green-100), var(--green-900));\n --success-bg-muted: light-dark(var(--green-200), var(--green-800));\n --success-border: light-dark(var(--green-300), var(--green-600));\n --success-focus-ring: light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body)));\n --success-contrast: var(--white);\n --danger-base: var(--red-500);\n --danger-fg: light-dark(var(--red-600), var(--red-400));\n --danger-fg-emphasis: light-dark(var(--red-800), var(--red-300));\n --danger-bg: var(--red-500);\n --danger-bg-subtle: light-dark(var(--red-100), var(--red-900));\n --danger-bg-muted: light-dark(var(--red-200), var(--red-800));\n --danger-border: light-dark(var(--red-300), var(--red-600));\n --danger-focus-ring: light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body)));\n --danger-contrast: var(--white);\n --warning-base: var(--yellow-500);\n --warning-fg: light-dark(var(--yellow-700), var(--yellow-400));\n --warning-fg-emphasis: light-dark(var(--yellow-800), var(--yellow-300));\n --warning-bg: var(--yellow-500);\n --warning-bg-subtle: light-dark(var(--yellow-100), var(--yellow-900));\n --warning-bg-muted: light-dark(var(--yellow-200), var(--yellow-800));\n --warning-border: light-dark(var(--yellow-300), var(--yellow-600));\n --warning-focus-ring: light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body)));\n --warning-contrast: var(--gray-900);\n --info-base: var(--cyan-500);\n --info-fg: light-dark(var(--cyan-600), var(--cyan-400));\n --info-fg-emphasis: light-dark(var(--cyan-800), var(--cyan-300));\n --info-bg: var(--cyan-500);\n --info-bg-subtle: light-dark(var(--cyan-100), var(--cyan-900));\n --info-bg-muted: light-dark(var(--cyan-200), var(--cyan-800));\n --info-border: light-dark(var(--cyan-300), var(--cyan-600));\n --info-focus-ring: light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body)));\n --info-contrast: var(--gray-900);\n --inverse-base: var(--gray-900);\n --inverse-fg: light-dark(var(--gray-900), var(--gray-200));\n --inverse-fg-emphasis: light-dark(var(--gray-975), var(--white));\n --inverse-bg: light-dark(var(--gray-900), var(--gray-025));\n --inverse-bg-subtle: light-dark(var(--gray-100), var(--gray-900));\n --inverse-bg-muted: light-dark(var(--gray-200), var(--gray-300));\n --inverse-border: light-dark(var(--gray-400), var(--gray-100));\n --inverse-focus-ring: color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body));\n --inverse-contrast: light-dark(var(--white), var(--gray-900));\n --secondary-base: var(--gray-200);\n --secondary-fg: light-dark(var(--gray-600), var(--gray-400));\n --secondary-fg-emphasis: light-dark(var(--gray-800), var(--gray-200));\n --secondary-bg: light-dark(var(--gray-100), var(--gray-600));\n --secondary-bg-subtle: light-dark(var(--gray-050), var(--gray-800));\n --secondary-bg-muted: light-dark(var(--gray-100), var(--gray-700));\n --secondary-border: light-dark(var(--gray-300), var(--gray-600));\n --secondary-focus-ring: color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body));\n --secondary-contrast: light-dark(var(--gray-900), var(--white));\n --bg-body: light-dark(var(--white), var(--gray-975));\n --bg-1: light-dark(var(--gray-025), var(--gray-950));\n --bg-2: light-dark(var(--gray-050), var(--gray-900));\n --bg-3: light-dark(var(--gray-100), var(--gray-800));\n --bg-4: light-dark(var(--gray-200), var(--gray-700));\n --bg-fg: var(--fg-body);\n --bg-white: var(--white);\n --bg-black: var(--black);\n --bg-transparent: transparent;\n --bg-inherit: inherit;\n --fg-body: light-dark(var(--gray-900), var(--gray-050));\n --fg-1: light-dark(var(--gray-800), var(--gray-200));\n --fg-2: light-dark(var(--gray-700), var(--gray-300));\n --fg-3: light-dark(var(--gray-600), var(--gray-500));\n --fg-4: light-dark(var(--gray-500), var(--gray-600));\n --fg-bg: var(--bg-body);\n --fg-white: var(--white);\n --fg-black: var(--black);\n --fg-inherit: inherit;\n --border-bg: var(--bg-body);\n --border-body: light-dark(var(--gray-300), var(--gray-800));\n --border-muted: light-dark(var(--gray-200), var(--gray-800));\n --border-subtle: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-900));\n --border-emphasized: light-dark(var(--gray-400), var(--gray-600));\n --border-white: var(--white);\n --border-black: var(--black);\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 1024px;\n --breakpoint-xl: 1280px;\n --breakpoint-2xl: 1536px;\n --spacer-0: 0;\n --spacer-1: 0.25rem;\n --spacer-2: 0.5rem;\n --spacer-3: 0.75rem;\n --spacer-4: 1rem;\n --spacer-5: 1.25rem;\n --spacer-6: 1.5rem;\n --spacer-7: 2rem;\n --spacer-8: 2.5rem;\n --spacer-9: 3rem;\n --radius-0: 0;\n --radius-1: 0.125rem;\n --radius-2: 0.1875rem;\n --radius-3: 0.25rem;\n --radius-4: 0.375rem;\n --radius-5: 0.5rem;\n --radius-6: 0.625rem;\n --radius-7: 0.75rem;\n --radius-8: 1rem;\n --radius-9: 1.5rem;\n --radius-pill: 50rem;\n color-scheme: light dark;\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=dark] {\n color-scheme: dark;\n}\n\n[data-bs-theme=light] {\n color-scheme: light;\n}\n\n@layer reboot {\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n :root {\n accent-color: var(--primary-base);\n }\n body {\n margin: 0;\n font-family: var(--body-font-family);\n font-size: var(--body-font-size);\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n color: var(--fg-body);\n text-align: var(--body-text-align);\n background-color: var(--bg-body);\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n margin: var(--hr-margin-y, var(--spacer)) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n h6,\n .h6, h5,\n .h5, h4,\n .h4, h3,\n .h3, h2,\n .h2, h1,\n .h1 {\n margin-top: 0;\n margin-bottom: var(--spacer-2);\n font-weight: 500;\n line-height: 1.2;\n color: var(--heading-color);\n }\n h1,\n .h1 {\n font-size: var(--font-size-3xl);\n }\n h2,\n .h2 {\n font-size: var(--font-size-2xl);\n }\n h3,\n .h3 {\n font-size: var(--font-size-xl);\n }\n h4,\n .h4 {\n font-size: var(--font-size-lg);\n }\n h5,\n .h5 {\n font-size: var(--font-size-md);\n }\n h6,\n .h6 {\n font-size: var(--font-size-sm);\n }\n p {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n abbr[title] {\n text-decoration: underline dotted;\n cursor: help;\n text-decoration-skip-ink: none;\n }\n address {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n }\n ol,\n ul {\n padding-inline-start: 2rem;\n }\n ol,\n ul,\n dl {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n ol ol,\n ul ul,\n ol ul,\n ul ol {\n margin-bottom: 0;\n }\n dt {\n font-weight: 700;\n }\n dd {\n margin-inline-start: 0;\n margin-bottom: 0.5rem;\n }\n blockquote {\n margin: 0 0 1rem;\n }\n blockquote > * {\n margin-block: 0;\n }\n b,\n strong {\n font-weight: bolder;\n }\n small,\n .small {\n font-size: var(--small-font-size, 87.5%);\n }\n mark,\n .mark {\n --mark-padding: 0.1875em;\n --mark-color: var(--fg-body);\n --mark-bg: light-dark(var(--yellow-100), var(--yellow-900));\n padding: var(--mark-padding);\n color: var(--mark-color);\n background-color: var(--mark-bg);\n }\n sub,\n sup {\n position: relative;\n font-size: var(--sub-sup-font-size, 0.75em);\n line-height: 0;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n a {\n color: var(--theme-fg, var(--link-color));\n text-decoration: var(--link-decoration);\n text-underline-offset: 0.2em;\n }\n a:hover {\n color: var(--theme-fg-emphasis, var(--link-hover-color));\n text-decoration: var(--link-hover-decoration, var(--link-decoration));\n }\n a:not([href], [class]), a:not([href], [class]):hover {\n color: inherit;\n text-decoration: none;\n }\n pre,\n code,\n kbd,\n samp {\n font-family: var(--font-mono);\n font-size: 1em;\n }\n pre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: var(--code-font-size);\n color: var(--code-color, inherit);\n }\n pre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n code {\n font-size: var(--code-font-size);\n color: var(--code-color);\n word-wrap: break-word;\n }\n a > code {\n color: inherit;\n }\n kbd {\n --kbd-padding-y: 0.125rem;\n --kbd-padding-x: 0.25rem;\n --kbd-font-size: var(--font-size-xs);\n --kbd-color: var(--bg-body);\n --kbd-bg: var(--fg-2);\n --kbd-border-radius: var(--radius-5);\n padding: var(--kbd-padding-y) var(--kbd-padding-x);\n font-size: var(--kbd-font-size);\n color: var(--kbd-color);\n background-color: var(--kbd-bg);\n border-radius: var(--kbd-border-radius);\n }\n kbd kbd {\n padding: 0;\n font-size: 1em;\n font-weight: inherit;\n }\n figure {\n margin: 0 0 1rem;\n }\n img,\n svg {\n vertical-align: middle;\n }\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n caption {\n padding-block: 0.5rem;\n color: var(--fg-3);\n text-align: start;\n }\n th {\n text-align: inherit;\n text-align: -webkit-match-parent;\n }\n thead,\n tbody,\n tfoot,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n label {\n display: inline-block;\n }\n button {\n border-radius: 0;\n }\n button:focus:not(:focus-visible) {\n outline: 0;\n }\n input,\n button,\n select,\n optgroup,\n textarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n [role=button] {\n cursor: pointer;\n }\n select {\n word-wrap: normal;\n }\n select:disabled {\n opacity: 1;\n }\n [list]:not([type=date], [type=datetime-local], [type=month], [type=week], [type=time])::-webkit-calendar-picker-indicator {\n display: none !important;\n }\n button,\n [type=button],\n [type=reset],\n [type=submit] {\n -webkit-appearance: button;\n }\n button:not(:disabled),\n [type=button]:not(:disabled),\n [type=reset]:not(:disabled),\n [type=submit]:not(:disabled) {\n cursor: pointer;\n }\n textarea {\n resize: vertical;\n }\n fieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n }\n legend {\n float: inline-start;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: 1.5rem;\n line-height: inherit;\n }\n legend + * {\n clear: inline-start;\n }\n ::-webkit-datetime-edit-fields-wrapper,\n ::-webkit-datetime-edit-text,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-meridiem-field,\n ::-webkit-datetime-edit-ampm-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-week-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-year-field {\n padding: 0;\n }\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n [type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n }\n [type=search]::-webkit-search-cancel-button {\n cursor: pointer;\n filter: grayscale(1);\n }\n [type=tel],\n [type=url],\n [type=email],\n [type=number] {\n direction: ltr;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n ::file-selector-button {\n font: inherit;\n -webkit-appearance: button;\n }\n output {\n display: inline-block;\n }\n iframe {\n border: 0;\n }\n summary {\n display: list-item;\n cursor: pointer;\n }\n progress {\n vertical-align: baseline;\n }\n [hidden] {\n display: none !important;\n }\n}\n@layer content {\n .list-unstyled {\n padding-inline-start: 0;\n list-style: none;\n }\n .list-inline {\n padding-inline-start: 0;\n list-style: none;\n }\n .list-inline-item {\n display: inline-block;\n }\n .list-inline-item:not(:last-child) {\n margin-inline-end: var(--list-inline-padding, var(--spacer)/2);\n }\n .initialism {\n font-size: var(--initialism-font-size, var(--font-size-xs));\n text-transform: uppercase;\n }\n .blockquote {\n --blockquote-gap: calc(var(--spacer) / 2);\n --blockquote-padding-x: var(--spacer);\n --blockquote-margin-y: 1rem;\n --blockquote-font-size: var(--font-size-md);\n --blockquote-border-width: 0.25rem;\n --blockquote-border-color: var(--border-color);\n --blockquote-footer-font-size: var(--font-size-sm);\n --blockquote-footer-color: var(--fg-3);\n display: flex;\n flex-direction: column;\n gap: var(--blockquote-gap);\n padding-inline-start: var(--blockquote-padding-x);\n margin-bottom: var(--blockquote-margin-y);\n font-size: var(--blockquote-font-size);\n border-inline-start: var(--blockquote-border-width) solid var(--blockquote-border-color);\n }\n .blockquote > * {\n margin-bottom: 0;\n }\n figure.blockquote blockquote {\n margin-bottom: 0;\n }\n .blockquote-footer {\n font-size: var(--blockquote-footer-font-size);\n color: var(--blockquote-footer-color);\n }\n .blockquote-footer::before {\n content: \"— \";\n }\n}\n@layer content {\n .table {\n --table-cell-padding-y: 0.5rem;\n --table-cell-padding-x: 0.5rem;\n --table-cell-vertical-align: top;\n --table-color: var(--fg-body);\n --table-bg: var(--bg-body);\n --table-accent-bg: transparent;\n --table-border-width: var(--border-width);\n --table-border-color: var(--border-color);\n --table-group-separator-color: currentcolor;\n --table-striped-color: var(--table-color);\n --table-striped-bg-factor: 5%;\n --table-striped-bg: color-mix(in srgb, var(--table-color) var(--table-striped-bg-factor), transparent);\n --table-active-color: var(--table-color);\n --table-active-bg-factor: 10%;\n --table-active-bg: color-mix(in srgb, var(--table-color) var(--table-active-bg-factor), transparent);\n --table-hover-color: var(--table-color);\n --table-hover-bg-factor: 7.5%;\n --table-hover-bg: color-mix(in srgb, var(--table-color) var(--table-hover-bg-factor), transparent);\n --table-color-type: initial;\n --table-bg-type: initial;\n --table-color-state: initial;\n --table-bg-state: initial;\n width: 100%;\n margin-bottom: var(--spacer);\n vertical-align: var(--table-cell-vertical-align);\n border-color: var(--theme-border, var(--table-border-color));\n }\n .table > :not(caption) > * > * {\n padding: var(--table-cell-padding-y) var(--table-cell-padding-x);\n color: var(--table-color-state, var(--table-color-type, var(--theme-fg, var(--table-color))));\n background-color: var(--theme-bg-subtle, var(--table-bg));\n border-block-end-width: var(--table-border-width);\n box-shadow: inset 0 0 0 9999px var(--table-bg-state, var(--table-bg-type, var(--theme-bg-subtle, var(--table-accent-bg))));\n }\n .table > tbody {\n vertical-align: inherit;\n }\n .table > thead {\n vertical-align: bottom;\n }\n .table-group-divider {\n border-block-start: calc(var(--table-border-width) * 2) solid var(--table-group-separator-color);\n }\n .caption-top {\n caption-side: top;\n }\n .table-sm > :not(caption) > * > * {\n --table-cell-padding-y: .25rem;\n --table-cell-padding-x: .25rem;\n }\n .table-bordered > :not(caption) > * {\n border-width: var(--table-border-width) 0;\n }\n .table-bordered > :not(caption) > * > * {\n border-width: 0 var(--table-border-width);\n }\n .table-borderless > :not(caption) > * > * {\n border-block-end-width: 0;\n }\n .table-borderless > :not(:first-child) {\n border-block-start-width: 0;\n }\n .table-striped > tbody > tr:nth-of-type(odd) > * {\n --table-color-type: var(--theme-fg, var(--table-striped-color));\n --table-bg-type: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-striped-bg-factor), transparent);\n }\n .table-striped-columns > :not(caption) > tr > :nth-child(even) {\n --table-color-type: var(--theme-fg, var(--table-striped-color));\n --table-bg-type: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-striped-bg-factor), transparent);\n }\n .table-active {\n --table-color-state: var(--theme-fg, var(--table-active-color));\n --table-bg-state: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-active-bg-factor), transparent);\n }\n .table-hover > tbody > tr:hover > * {\n --table-color-state: var(--theme-fg, var(--table-hover-color));\n --table-bg-state: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-hover-bg-factor), transparent);\n }\n .table-responsive {\n container-type: inline-size;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .sm\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 576px) {\n .sm\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .md\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 768px) {\n .md\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .lg\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 1024px) {\n .lg\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .xl\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 1280px) {\n .xl\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .\\32 xl\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 1536px) {\n .\\32 xl\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n @container (width < 576px) {\n .sm\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .sm\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .sm\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .sm\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .sm\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .sm\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .sm\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n @container (width < 768px) {\n .md\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .md\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .md\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .md\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .md\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .md\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .md\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n @container (width < 1024px) {\n .lg\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .lg\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .lg\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .lg\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .lg\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .lg\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .lg\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n @container (width < 1280px) {\n .xl\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .xl\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .xl\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .xl\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .xl\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .xl\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .xl\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n @container (width < 1536px) {\n .\\32 xl\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .\\32 xl\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .\\32 xl\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .\\32 xl\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .\\32 xl\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .\\32 xl\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .\\32 xl\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n}\n@layer content {\n .img-fluid {\n max-width: 100%;\n height: auto;\n }\n .img-thumbnail {\n --thumbnail-padding: 0.25rem;\n --thumbnail-bg: var(--bg-body);\n --thumbnail-border-width: var(--border-width);\n --thumbnail-border-color: var(--border-color);\n --thumbnail-border-radius: var(--radius-5);\n --thumbnail-box-shadow: var(--box-shadow-sm);\n padding: var(--thumbnail-padding);\n background-color: var(--thumbnail-bg);\n border: var(--thumbnail-border-width) solid var(--thumbnail-border-color);\n border-radius: var(--thumbnail-border-radius);\n box-shadow: var(--thumbnail-box-shadow);\n max-width: 100%;\n height: auto;\n }\n .figure {\n --figure-gap: calc(var(--spacer) * 0.5);\n --figure-caption-font-size: var(--font-size-sm);\n --figure-caption-color: var(--fg-3);\n display: flex;\n flex-direction: column;\n gap: var(--figure-gap);\n }\n .figure-caption {\n font-size: var(--figure-caption-font-size);\n color: var(--figure-caption-color);\n }\n}\n@layer content {\n .prose {\n --content-font-size: 1rem;\n --content-line-height: 1.5;\n --content-gap: calc(var(--content-font-size) * var(--content-line-height));\n --heading-color: light-dark(var(--gray-900), var(--white));\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--content-gap);\n max-width: 1000px;\n margin-inline: auto;\n font-size: var(--content-font-size);\n line-height: var(--content-line-height);\n }\n @media (width >= 1024px) {\n .prose {\n --content-font-size: var(--font-size-md);\n --content-line-height: 1.625;\n }\n }\n .prose :where(p, ul, ol, dl, pre, table, blockquote):not(:where(.not-prose, .not-prose *)) {\n margin-block: 0;\n }\n .prose :where(ul, ol):not([class], :where(.not-prose, .not-prose *)) li:not(:last-child) {\n margin-bottom: calc(var(--content-gap) / 4);\n }\n .prose :where(li ul, li ol):not(:where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) / 4);\n }\n .prose :where(hr):not(:where(.not-prose, .not-prose *)) {\n margin: calc(var(--content-gap) * 1.5) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n .prose :where(h1, h2, h3, h4, h5, h6):not([class], :where(.not-prose, .not-prose *)) {\n margin-top: 0;\n margin-bottom: calc(var(--content-gap) / -2);\n font-weight: 500;\n line-height: 1.25;\n }\n .prose :where(h1, h2, h3, h4, h5, h6):not([class], :where(.not-prose, .not-prose *)) code {\n font-weight: 600;\n color: inherit;\n }\n .prose :where(h1, h2):not(:first-child, :where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) * 0.75);\n }\n .prose :where(h3, h4, h5, h6):not(:first-child, :where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) * 0.5);\n }\n .prose :where(h1):not(:where(.not-prose, .not-prose *)) {\n font-size: 2.25em;\n line-height: 1.1;\n }\n .prose :where(h2):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.75em;\n }\n .prose :where(h3):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.5em;\n }\n .prose :where(h4):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.25em;\n }\n .prose :where(h5):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.125em;\n }\n .prose :where(h6):not(:where(.not-prose, .not-prose *)) {\n font-size: 1em;\n }\n .prose :where(a:not([class])):not(:where(.not-prose, .not-prose *)) {\n color: var(--link-color);\n text-decoration: underline;\n text-decoration-color: color-mix(in srgb, var(--link-color) 25%, transparent);\n text-underline-offset: 4px;\n transition: 0.1s text-decoration-color ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .prose :where(a:not([class])):not(:where(.not-prose, .not-prose *)) {\n transition: none;\n }\n }\n .prose :where(a:not([class])):not(:where(.not-prose, .not-prose *)):hover {\n text-decoration-color: var(--link-hover-color);\n }\n .prose :where(img):not(:where(.not-prose, .not-prose *)) {\n max-width: 100%;\n }\n .prose :where(blockquote):not(:where(.not-prose, .not-prose *)) {\n padding-inline-start: calc(var(--content-gap) / 2);\n margin: 0;\n border-inline-start: 4px solid var(--border-color);\n }\n .prose :where(table):not(:where(.not-prose, .not-prose *)) {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n }\n .prose :where(table:not([class])):not(:where(.not-prose, .not-prose *)) td,\n .prose :where(table:not([class])):not(:where(.not-prose, .not-prose *)) th {\n padding: 6px 12px;\n text-align: inherit;\n border: 1px solid var(--border-color);\n }\n .prose :where(dt):not(:where(.not-prose, .not-prose *)) {\n font-weight: 500;\n }\n .prose :where(video, img):not(:where(.not-prose, .not-prose *)) {\n max-width: 100%;\n }\n}\n@layer layout {\n .container,\n .container-fluid,\n .\\32 xl\\:container,\n .xl\\:container,\n .lg\\:container,\n .md\\:container,\n .sm\\:container {\n --gutter-x: 1.5rem;\n --gutter-y: 0;\n width: 100%;\n padding-inline: calc(var(--gutter-x) * 0.5);\n margin-inline: auto;\n }\n @media (width >= 576px) {\n .sm\\:container, .container {\n max-width: 540px;\n }\n }\n @media (width >= 768px) {\n .md\\:container, .sm\\:container, .container {\n max-width: 720px;\n }\n }\n @media (width >= 1024px) {\n .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 960px;\n }\n }\n @media (width >= 1280px) {\n .xl\\:container, .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 1200px;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:container, .xl\\:container, .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 1440px;\n }\n }\n}\n@layer layout {\n .row {\n --gutter-x: 1.5rem;\n --gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-inline: calc(-0.5 * var(--gutter-x));\n margin-top: calc(-1 * var(--gutter-y));\n }\n .row > * {\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-inline: calc(var(--gutter-x) * 0.5);\n margin-top: var(--gutter-y);\n }\n .col {\n flex: 1 0 0;\n }\n .row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .offset-3 {\n margin-inline-start: 25%;\n }\n .offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .offset-6 {\n margin-inline-start: 50%;\n }\n .offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .offset-9 {\n margin-inline-start: 75%;\n }\n .offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .g-0,\n .gx-0 {\n --gutter-x: 0;\n }\n .g-0,\n .gy-0 {\n --gutter-y: 0;\n }\n .g-1,\n .gx-1 {\n --gutter-x: 0.25rem;\n }\n .g-1,\n .gy-1 {\n --gutter-y: 0.25rem;\n }\n .g-2,\n .gx-2 {\n --gutter-x: 0.5rem;\n }\n .g-2,\n .gy-2 {\n --gutter-y: 0.5rem;\n }\n .g-3,\n .gx-3 {\n --gutter-x: 0.75rem;\n }\n .g-3,\n .gy-3 {\n --gutter-y: 0.75rem;\n }\n .g-4,\n .gx-4 {\n --gutter-x: 1rem;\n }\n .g-4,\n .gy-4 {\n --gutter-y: 1rem;\n }\n .g-5,\n .gx-5 {\n --gutter-x: 1.25rem;\n }\n .g-5,\n .gy-5 {\n --gutter-y: 1.25rem;\n }\n .g-6,\n .gx-6 {\n --gutter-x: 1.5rem;\n }\n .g-6,\n .gy-6 {\n --gutter-y: 1.5rem;\n }\n .g-7,\n .gx-7 {\n --gutter-x: 2rem;\n }\n .g-7,\n .gy-7 {\n --gutter-y: 2rem;\n }\n .g-8,\n .gx-8 {\n --gutter-x: 2.5rem;\n }\n .g-8,\n .gy-8 {\n --gutter-y: 2.5rem;\n }\n .g-9,\n .gx-9 {\n --gutter-x: 3rem;\n }\n .g-9,\n .gy-9 {\n --gutter-y: 3rem;\n }\n @media (width >= 576px) {\n .sm\\:col {\n flex: 1 0 0;\n }\n .sm\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .sm\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .sm\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .sm\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .sm\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .sm\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .sm\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .sm\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .sm\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .sm\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .sm\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .sm\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .sm\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .sm\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .sm\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .sm\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .sm\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .sm\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .sm\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .sm\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .sm\\:offset-0 {\n margin-inline-start: 0;\n }\n .sm\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .sm\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .sm\\:offset-3 {\n margin-inline-start: 25%;\n }\n .sm\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .sm\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .sm\\:offset-6 {\n margin-inline-start: 50%;\n }\n .sm\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .sm\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .sm\\:offset-9 {\n margin-inline-start: 75%;\n }\n .sm\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .sm\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .sm\\:g-0,\n .sm\\:gx-0 {\n --gutter-x: 0;\n }\n .sm\\:g-0,\n .sm\\:gy-0 {\n --gutter-y: 0;\n }\n .sm\\:g-1,\n .sm\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .sm\\:g-1,\n .sm\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .sm\\:g-2,\n .sm\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .sm\\:g-2,\n .sm\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .sm\\:g-3,\n .sm\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .sm\\:g-3,\n .sm\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .sm\\:g-4,\n .sm\\:gx-4 {\n --gutter-x: 1rem;\n }\n .sm\\:g-4,\n .sm\\:gy-4 {\n --gutter-y: 1rem;\n }\n .sm\\:g-5,\n .sm\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .sm\\:g-5,\n .sm\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .sm\\:g-6,\n .sm\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .sm\\:g-6,\n .sm\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .sm\\:g-7,\n .sm\\:gx-7 {\n --gutter-x: 2rem;\n }\n .sm\\:g-7,\n .sm\\:gy-7 {\n --gutter-y: 2rem;\n }\n .sm\\:g-8,\n .sm\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .sm\\:g-8,\n .sm\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .sm\\:g-9,\n .sm\\:gx-9 {\n --gutter-x: 3rem;\n }\n .sm\\:g-9,\n .sm\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 768px) {\n .md\\:col {\n flex: 1 0 0;\n }\n .md\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .md\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .md\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .md\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .md\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .md\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .md\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .md\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .md\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .md\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .md\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .md\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .md\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .md\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .md\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .md\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .md\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .md\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .md\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .md\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .md\\:offset-0 {\n margin-inline-start: 0;\n }\n .md\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .md\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .md\\:offset-3 {\n margin-inline-start: 25%;\n }\n .md\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .md\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .md\\:offset-6 {\n margin-inline-start: 50%;\n }\n .md\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .md\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .md\\:offset-9 {\n margin-inline-start: 75%;\n }\n .md\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .md\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .md\\:g-0,\n .md\\:gx-0 {\n --gutter-x: 0;\n }\n .md\\:g-0,\n .md\\:gy-0 {\n --gutter-y: 0;\n }\n .md\\:g-1,\n .md\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .md\\:g-1,\n .md\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .md\\:g-2,\n .md\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .md\\:g-2,\n .md\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .md\\:g-3,\n .md\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .md\\:g-3,\n .md\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .md\\:g-4,\n .md\\:gx-4 {\n --gutter-x: 1rem;\n }\n .md\\:g-4,\n .md\\:gy-4 {\n --gutter-y: 1rem;\n }\n .md\\:g-5,\n .md\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .md\\:g-5,\n .md\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .md\\:g-6,\n .md\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .md\\:g-6,\n .md\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .md\\:g-7,\n .md\\:gx-7 {\n --gutter-x: 2rem;\n }\n .md\\:g-7,\n .md\\:gy-7 {\n --gutter-y: 2rem;\n }\n .md\\:g-8,\n .md\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .md\\:g-8,\n .md\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .md\\:g-9,\n .md\\:gx-9 {\n --gutter-x: 3rem;\n }\n .md\\:g-9,\n .md\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1024px) {\n .lg\\:col {\n flex: 1 0 0;\n }\n .lg\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .lg\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .lg\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .lg\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .lg\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .lg\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .lg\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .lg\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .lg\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .lg\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .lg\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .lg\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .lg\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .lg\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .lg\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .lg\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .lg\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .lg\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .lg\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .lg\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .lg\\:offset-0 {\n margin-inline-start: 0;\n }\n .lg\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .lg\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .lg\\:offset-3 {\n margin-inline-start: 25%;\n }\n .lg\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .lg\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .lg\\:offset-6 {\n margin-inline-start: 50%;\n }\n .lg\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .lg\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .lg\\:offset-9 {\n margin-inline-start: 75%;\n }\n .lg\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .lg\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .lg\\:g-0,\n .lg\\:gx-0 {\n --gutter-x: 0;\n }\n .lg\\:g-0,\n .lg\\:gy-0 {\n --gutter-y: 0;\n }\n .lg\\:g-1,\n .lg\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .lg\\:g-1,\n .lg\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .lg\\:g-2,\n .lg\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .lg\\:g-2,\n .lg\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .lg\\:g-3,\n .lg\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .lg\\:g-3,\n .lg\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .lg\\:g-4,\n .lg\\:gx-4 {\n --gutter-x: 1rem;\n }\n .lg\\:g-4,\n .lg\\:gy-4 {\n --gutter-y: 1rem;\n }\n .lg\\:g-5,\n .lg\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .lg\\:g-5,\n .lg\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .lg\\:g-6,\n .lg\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .lg\\:g-6,\n .lg\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .lg\\:g-7,\n .lg\\:gx-7 {\n --gutter-x: 2rem;\n }\n .lg\\:g-7,\n .lg\\:gy-7 {\n --gutter-y: 2rem;\n }\n .lg\\:g-8,\n .lg\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .lg\\:g-8,\n .lg\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .lg\\:g-9,\n .lg\\:gx-9 {\n --gutter-x: 3rem;\n }\n .lg\\:g-9,\n .lg\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1280px) {\n .xl\\:col {\n flex: 1 0 0;\n }\n .xl\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .xl\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .xl\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .xl\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .xl\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .xl\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .xl\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .xl\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .xl\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .xl\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .xl\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .xl\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .xl\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .xl\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .xl\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .xl\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .xl\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .xl\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .xl\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .xl\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .xl\\:offset-0 {\n margin-inline-start: 0;\n }\n .xl\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .xl\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .xl\\:offset-3 {\n margin-inline-start: 25%;\n }\n .xl\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .xl\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .xl\\:offset-6 {\n margin-inline-start: 50%;\n }\n .xl\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .xl\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .xl\\:offset-9 {\n margin-inline-start: 75%;\n }\n .xl\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .xl\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .xl\\:g-0,\n .xl\\:gx-0 {\n --gutter-x: 0;\n }\n .xl\\:g-0,\n .xl\\:gy-0 {\n --gutter-y: 0;\n }\n .xl\\:g-1,\n .xl\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .xl\\:g-1,\n .xl\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .xl\\:g-2,\n .xl\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .xl\\:g-2,\n .xl\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .xl\\:g-3,\n .xl\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .xl\\:g-3,\n .xl\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .xl\\:g-4,\n .xl\\:gx-4 {\n --gutter-x: 1rem;\n }\n .xl\\:g-4,\n .xl\\:gy-4 {\n --gutter-y: 1rem;\n }\n .xl\\:g-5,\n .xl\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .xl\\:g-5,\n .xl\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .xl\\:g-6,\n .xl\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .xl\\:g-6,\n .xl\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .xl\\:g-7,\n .xl\\:gx-7 {\n --gutter-x: 2rem;\n }\n .xl\\:g-7,\n .xl\\:gy-7 {\n --gutter-y: 2rem;\n }\n .xl\\:g-8,\n .xl\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .xl\\:g-8,\n .xl\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .xl\\:g-9,\n .xl\\:gx-9 {\n --gutter-x: 3rem;\n }\n .xl\\:g-9,\n .xl\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:col {\n flex: 1 0 0;\n }\n .\\32 xl\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .\\32 xl\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .\\32 xl\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .\\32 xl\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .\\32 xl\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .\\32 xl\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .\\32 xl\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .\\32 xl\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .\\32 xl\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .\\32 xl\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .\\32 xl\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .\\32 xl\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .\\32 xl\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .\\32 xl\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .\\32 xl\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .\\32 xl\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .\\32 xl\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .\\32 xl\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .\\32 xl\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .\\32 xl\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .\\32 xl\\:offset-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .\\32 xl\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .\\32 xl\\:offset-3 {\n margin-inline-start: 25%;\n }\n .\\32 xl\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .\\32 xl\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .\\32 xl\\:offset-6 {\n margin-inline-start: 50%;\n }\n .\\32 xl\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .\\32 xl\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .\\32 xl\\:offset-9 {\n margin-inline-start: 75%;\n }\n .\\32 xl\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .\\32 xl\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .\\32 xl\\:g-0,\n .\\32 xl\\:gx-0 {\n --gutter-x: 0;\n }\n .\\32 xl\\:g-0,\n .\\32 xl\\:gy-0 {\n --gutter-y: 0;\n }\n .\\32 xl\\:g-1,\n .\\32 xl\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .\\32 xl\\:g-1,\n .\\32 xl\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .\\32 xl\\:g-2,\n .\\32 xl\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .\\32 xl\\:g-2,\n .\\32 xl\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .\\32 xl\\:g-3,\n .\\32 xl\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .\\32 xl\\:g-3,\n .\\32 xl\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .\\32 xl\\:g-4,\n .\\32 xl\\:gx-4 {\n --gutter-x: 1rem;\n }\n .\\32 xl\\:g-4,\n .\\32 xl\\:gy-4 {\n --gutter-y: 1rem;\n }\n .\\32 xl\\:g-5,\n .\\32 xl\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .\\32 xl\\:g-5,\n .\\32 xl\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .\\32 xl\\:g-6,\n .\\32 xl\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .\\32 xl\\:g-6,\n .\\32 xl\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .\\32 xl\\:g-7,\n .\\32 xl\\:gx-7 {\n --gutter-x: 2rem;\n }\n .\\32 xl\\:g-7,\n .\\32 xl\\:gy-7 {\n --gutter-y: 2rem;\n }\n .\\32 xl\\:g-8,\n .\\32 xl\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .\\32 xl\\:g-8,\n .\\32 xl\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .\\32 xl\\:g-9,\n .\\32 xl\\:gx-9 {\n --gutter-x: 3rem;\n }\n .\\32 xl\\:g-9,\n .\\32 xl\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n .grid {\n --columns: 12;\n --rows: 1;\n --gap: 1.5rem;\n display: grid;\n grid-template-rows: repeat(var(--rows), 1fr);\n grid-template-columns: repeat(var(--columns), 1fr);\n gap: var(--gap);\n }\n .g-col-1 {\n grid-column: auto/span 1;\n }\n .g-col-2 {\n grid-column: auto/span 2;\n }\n .g-col-3 {\n grid-column: auto/span 3;\n }\n .g-col-4 {\n grid-column: auto/span 4;\n }\n .g-col-5 {\n grid-column: auto/span 5;\n }\n .g-col-6 {\n grid-column: auto/span 6;\n }\n .g-col-7 {\n grid-column: auto/span 7;\n }\n .g-col-8 {\n grid-column: auto/span 8;\n }\n .g-col-9 {\n grid-column: auto/span 9;\n }\n .g-col-10 {\n grid-column: auto/span 10;\n }\n .g-col-11 {\n grid-column: auto/span 11;\n }\n .g-col-12 {\n grid-column: auto/span 12;\n }\n .g-start-1 {\n grid-column-start: 1;\n }\n .g-start-2 {\n grid-column-start: 2;\n }\n .g-start-3 {\n grid-column-start: 3;\n }\n .g-start-4 {\n grid-column-start: 4;\n }\n .g-start-5 {\n grid-column-start: 5;\n }\n .g-start-6 {\n grid-column-start: 6;\n }\n .g-start-7 {\n grid-column-start: 7;\n }\n .g-start-8 {\n grid-column-start: 8;\n }\n .g-start-9 {\n grid-column-start: 9;\n }\n .g-start-10 {\n grid-column-start: 10;\n }\n .g-start-11 {\n grid-column-start: 11;\n }\n @media (width >= 576px) {\n .sm\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .sm\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .sm\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .sm\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .sm\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .sm\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .sm\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .sm\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .sm\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .sm\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .sm\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .sm\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .sm\\:g-start-1 {\n grid-column-start: 1;\n }\n .sm\\:g-start-2 {\n grid-column-start: 2;\n }\n .sm\\:g-start-3 {\n grid-column-start: 3;\n }\n .sm\\:g-start-4 {\n grid-column-start: 4;\n }\n .sm\\:g-start-5 {\n grid-column-start: 5;\n }\n .sm\\:g-start-6 {\n grid-column-start: 6;\n }\n .sm\\:g-start-7 {\n grid-column-start: 7;\n }\n .sm\\:g-start-8 {\n grid-column-start: 8;\n }\n .sm\\:g-start-9 {\n grid-column-start: 9;\n }\n .sm\\:g-start-10 {\n grid-column-start: 10;\n }\n .sm\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 768px) {\n .md\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .md\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .md\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .md\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .md\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .md\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .md\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .md\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .md\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .md\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .md\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .md\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .md\\:g-start-1 {\n grid-column-start: 1;\n }\n .md\\:g-start-2 {\n grid-column-start: 2;\n }\n .md\\:g-start-3 {\n grid-column-start: 3;\n }\n .md\\:g-start-4 {\n grid-column-start: 4;\n }\n .md\\:g-start-5 {\n grid-column-start: 5;\n }\n .md\\:g-start-6 {\n grid-column-start: 6;\n }\n .md\\:g-start-7 {\n grid-column-start: 7;\n }\n .md\\:g-start-8 {\n grid-column-start: 8;\n }\n .md\\:g-start-9 {\n grid-column-start: 9;\n }\n .md\\:g-start-10 {\n grid-column-start: 10;\n }\n .md\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1024px) {\n .lg\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .lg\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .lg\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .lg\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .lg\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .lg\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .lg\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .lg\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .lg\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .lg\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .lg\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .lg\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .lg\\:g-start-1 {\n grid-column-start: 1;\n }\n .lg\\:g-start-2 {\n grid-column-start: 2;\n }\n .lg\\:g-start-3 {\n grid-column-start: 3;\n }\n .lg\\:g-start-4 {\n grid-column-start: 4;\n }\n .lg\\:g-start-5 {\n grid-column-start: 5;\n }\n .lg\\:g-start-6 {\n grid-column-start: 6;\n }\n .lg\\:g-start-7 {\n grid-column-start: 7;\n }\n .lg\\:g-start-8 {\n grid-column-start: 8;\n }\n .lg\\:g-start-9 {\n grid-column-start: 9;\n }\n .lg\\:g-start-10 {\n grid-column-start: 10;\n }\n .lg\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1280px) {\n .xl\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .xl\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .xl\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .xl\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .xl\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .xl\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .xl\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .xl\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .xl\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .xl\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .xl\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .xl\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .xl\\:g-start-1 {\n grid-column-start: 1;\n }\n .xl\\:g-start-2 {\n grid-column-start: 2;\n }\n .xl\\:g-start-3 {\n grid-column-start: 3;\n }\n .xl\\:g-start-4 {\n grid-column-start: 4;\n }\n .xl\\:g-start-5 {\n grid-column-start: 5;\n }\n .xl\\:g-start-6 {\n grid-column-start: 6;\n }\n .xl\\:g-start-7 {\n grid-column-start: 7;\n }\n .xl\\:g-start-8 {\n grid-column-start: 8;\n }\n .xl\\:g-start-9 {\n grid-column-start: 9;\n }\n .xl\\:g-start-10 {\n grid-column-start: 10;\n }\n .xl\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .\\32 xl\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .\\32 xl\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .\\32 xl\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .\\32 xl\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .\\32 xl\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .\\32 xl\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .\\32 xl\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .\\32 xl\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .\\32 xl\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .\\32 xl\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .\\32 xl\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .\\32 xl\\:g-start-1 {\n grid-column-start: 1;\n }\n .\\32 xl\\:g-start-2 {\n grid-column-start: 2;\n }\n .\\32 xl\\:g-start-3 {\n grid-column-start: 3;\n }\n .\\32 xl\\:g-start-4 {\n grid-column-start: 4;\n }\n .\\32 xl\\:g-start-5 {\n grid-column-start: 5;\n }\n .\\32 xl\\:g-start-6 {\n grid-column-start: 6;\n }\n .\\32 xl\\:g-start-7 {\n grid-column-start: 7;\n }\n .\\32 xl\\:g-start-8 {\n grid-column-start: 8;\n }\n .\\32 xl\\:g-start-9 {\n grid-column-start: 9;\n }\n .\\32 xl\\:g-start-10 {\n grid-column-start: 10;\n }\n .\\32 xl\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n .grid-cols-subgrid {\n grid-template-columns: subgrid;\n }\n .grid-fill {\n --gap: 1.5rem;\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-auto-flow: row;\n gap: var(--gap);\n }\n}\n@layer forms {\n .form-label,\n .col-form-label {\n font-size: var(--label-font-size, inherit);\n font-style: var(--label-font-style, inherit);\n font-weight: var(--label-font-weight, 500);\n color: var(--label-color, var(--fg-body));\n }\n .form-label {\n margin-bottom: var(--label-margin-bottom, calc(var(--spacer) / 2));\n }\n .col-form-label {\n --label-padding-y: calc(var(--btn-input-padding-y) + var(--border-width));\n padding-block: var(--label-padding-y);\n margin-bottom: 0;\n }\n .col-form-label-lg {\n --label-padding-y: calc(var(--btn-input-lg-padding-y) + var(--border-width));\n font-size: var(--btn-input-lg-font-size);\n }\n .col-form-label-sm {\n --label-padding-y: calc(var(--btn-input-sm-padding-y) + var(--border-width));\n font-size: var(--btn-input-sm-font-size);\n }\n}\n@layer forms {\n .form-text {\n --form-text-margin-top: 0.25rem;\n --form-text-font-size: var(--font-size-sm);\n --form-text-color: var(--fg-2);\n font-size: var(--form-text-font-size);\n font-style: var(--form-text-font-style);\n font-weight: var(--form-text-font-weight);\n color: var(--form-text-color);\n }\n}\n@layer forms {\n .form-control {\n --control-min-height: var(--btn-input-min-height);\n --control-padding-y: var(--btn-input-padding-y);\n --control-padding-x: var(--btn-input-padding-x);\n --control-font-size: var(--btn-input-font-size);\n --control-line-height: var(--btn-input-line-height);\n --control-fg: var(--btn-input-fg);\n --control-bg: var(--btn-input-bg);\n --control-border-width: var(--border-width);\n --control-border-color: var(--border-color);\n --control-border-radius: var(--radius-5);\n --control-box-shadow: var(--box-shadow-inset);\n --control-action-bg: var(--bg-1);\n --control-action-hover-bg: var(--bg-2);\n --control-transition-property: border-color, box-shadow;\n --control-transition-timing: 0.15s ease-in-out;\n --control-transition: var(--control-transition-property) var(--control-transition-timing);\n --control-placeholder-color: var(--fg-3);\n --control-disabled-color: var(--control-fg);\n --control-disabled-bg: var(--bg-2);\n --control-disabled-border-color: var(--control-border-color);\n --control-select-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2300000080' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n --control-select-bg-position: right 0.75rem center;\n --control-select-bg-size: 16px 12px;\n --control-select-bg-dark: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff80' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n display: flex;\n width: 100%;\n min-height: var(--control-min-height);\n padding: var(--control-padding-y) var(--control-padding-x);\n font-size: var(--control-font-size);\n line-height: var(--control-line-height);\n color: var(--control-fg);\n appearance: none;\n background-color: var(--control-bg);\n background-clip: padding-box;\n border: var(--control-border-width) solid var(--control-border-color);\n border-radius: var(--control-border-radius);\n box-shadow: var(--control-box-shadow);\n transition: var(--control-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n }\n .form-control:focus-visible {\n --focus-ring-offset: -1px;\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-control::placeholder {\n color: var(--control-placeholder-color);\n opacity: 1;\n }\n .form-control:disabled {\n color: var(--control-disabled-color);\n background-color: var(--control-disabled-bg);\n border-color: var(--control-disabled-border-color);\n opacity: 1;\n }\n .form-control::-webkit-datetime-edit {\n display: block;\n height: 1.5rem;\n padding: 0;\n margin-bottom: -0.125rem;\n }\n .form-control::-webkit-datetime-edit-fields-wrapper {\n height: 1.5rem;\n }\n .form-control[type=file] {\n overflow: hidden;\n }\n .form-control[type=file]:not(:disabled, [readonly]) {\n cursor: pointer;\n }\n .form-control::file-selector-button {\n min-height: var(--control-min-height);\n padding: var(--control-padding-y) var(--control-padding-x);\n margin: calc(var(--control-padding-y) * -1) calc(var(--control-padding-x) * -1);\n margin-inline-end: var(--control-padding-x);\n color: var(--control-fg);\n pointer-events: none;\n background-color: var(--control-action-bg);\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: var(--control-border-width);\n border-radius: 0;\n transition: var(--control-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-control::file-selector-button {\n transition: none;\n }\n }\n .form-control:hover:not(:disabled, [readonly])::file-selector-button {\n background-color: var(--control-action-hover-bg);\n }\n .form-control-plaintext {\n display: block;\n width: 100%;\n padding: var(--control-padding-y) 0;\n margin-bottom: 0;\n line-height: var(--control-line-height);\n color: var(--control-fg);\n background-color: transparent;\n border: solid transparent;\n border-width: var(--control-border-width) 0;\n }\n .form-control-plaintext:focus {\n outline: 0;\n }\n .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-inline: 0;\n }\n select.form-control,\n .form-control-caret {\n padding-inline-end: calc(var(--control-padding-x) * 3);\n background-image: var(--control-select-bg);\n background-repeat: no-repeat;\n background-position: var(--control-select-bg-position);\n background-size: var(--control-select-bg-size);\n }\n select.form-control[multiple], select.form-control[size]:not([size=\"1\"]),\n .form-control-caret[multiple],\n .form-control-caret[size]:not([size=\"1\"]) {\n padding-inline-end: var(--control-padding-x);\n background-image: none;\n }\n @media (prefers-color-scheme: dark) {\n select.form-control,\n .form-control-caret {\n background-image: var(--control-select-bg-dark);\n }\n }\n .form-control-sm {\n --control-min-height: var(--btn-input-sm-min-height);\n --control-padding-y: var(--btn-input-sm-padding-y);\n --control-padding-x: var(--btn-input-sm-padding-x);\n --control-font-size: var(--btn-input-sm-font-size);\n --control-line-height: var(--btn-input-sm-line-height);\n --control-border-radius: var(--btn-input-sm-border-radius);\n }\n .form-control-lg {\n --control-min-height: var(--btn-input-lg-min-height);\n --control-padding-y: var(--btn-input-lg-padding-y);\n --control-padding-x: var(--btn-input-lg-padding-x);\n --control-font-size: var(--btn-input-lg-font-size);\n --control-line-height: var(--btn-input-lg-line-height);\n --control-border-radius: var(--btn-input-lg-border-radius);\n }\n .form-control-color {\n width: var(--control-min-height);\n padding: var(--control-padding-y);\n }\n .form-control-color:not(:disabled, [readonly]) {\n cursor: pointer;\n }\n .form-control-color::-moz-color-swatch {\n border: 0 !important;\n border-radius: var(--radius-5);\n }\n .form-control-color::-webkit-color-swatch {\n border: 0 !important;\n border-radius: var(--radius-5);\n }\n .form-ghost {\n display: block;\n width: 100%;\n padding: 0;\n font: inherit;\n color: inherit;\n appearance: none;\n background: transparent;\n border: 0;\n }\n .form-ghost:focus {\n outline: 0;\n }\n .form-ghost::placeholder {\n color: var(--fg-3);\n opacity: 1;\n }\n .form-ghost:disabled {\n color: var(--fg-4);\n cursor: not-allowed;\n }\n}\n@layer forms {\n .check {\n --check-size: 1.25rem;\n --check-margin-block: 0.125rem;\n --check-bg: var(--bg-body);\n --check-border-color: var(--border-color);\n --check-border-radius: var(--radius-5);\n --check-icon-checked: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m5.5 10 3 3 6-6'/%3e%3c/svg%3e\");\n --check-icon-indeterminate: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 10h8'/%3e%3c/svg%3e\");\n --check-checked-bg: var(--control-checked-bg);\n --check-checked-border-color: var(--control-checked-border-color);\n --check-indeterminate-bg: var(--control-checked-bg);\n --check-indeterminate-border-color: var(--control-checked-border-color);\n --check-active-bg: var(--control-active-bg);\n --check-active-border-color: var(--control-active-border-color);\n --check-disabled-bg: var(--control-disabled-bg);\n --check-disabled-opacity: var(--control-disabled-opacity);\n position: relative;\n flex-shrink: 0;\n width: var(--check-size);\n height: var(--check-size);\n margin-block: var(--check-margin-block);\n appearance: none;\n background-color: var(--theme-bg, var(--check-bg));\n border: 1px solid var(--theme-bg, var(--check-border-color));\n border-radius: 33%;\n }\n .check:checked, .check:indeterminate {\n background-color: var(--theme-bg, var(--check-checked-bg));\n border-color: var(--theme-bg, var(--check-checked-border-color));\n }\n .check:checked::before, .check:indeterminate::before {\n position: absolute;\n inset: 0;\n pointer-events: none;\n content: \"\";\n background-color: var(--theme-contrast, var(--primary-contrast));\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: contain;\n }\n .check:checked::before {\n mask-image: var(--check-icon-checked);\n }\n .check:indeterminate::before {\n mask-image: var(--check-icon-indeterminate);\n }\n .check:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: -1px;\n }\n .check:disabled {\n --check-bg: var(--check-disabled-bg);\n }\n .check:disabled ~ label {\n color: var(--fg-3);\n cursor: default;\n }\n .check:disabled:checked {\n opacity: var(--check-disabled-opacity);\n }\n .check-sm {\n --check-size: 1rem;\n }\n .check-sm + label {\n font-size: var(--font-size-sm);\n }\n .check-lg {\n --check-size: 1.5rem;\n --check-margin-block: .375rem;\n }\n .check-lg + label {\n font-size: var(--font-size-lg);\n }\n}\n@layer forms {\n .radio {\n --radio-size: 1.25rem;\n --radio-margin-block: 0.125rem;\n --radio-bg: var(--bg-body);\n --radio-border-color: var(--border-color);\n --radio-checked-bg: var(--control-checked-bg);\n --radio-checked-border-color: var(--control-checked-border-color);\n --radio-disabled-bg: var(--control-disabled-bg);\n --radio-disabled-opacity: var(--control-disabled-opacity);\n position: relative;\n flex-shrink: 0;\n width: var(--radio-size);\n height: var(--radio-size);\n margin-block: var(--radio-margin-block);\n appearance: none;\n background-color: var(--theme-bg, var(--radio-bg));\n border: 1px solid var(--theme-bg, var(--radio-border-color));\n border-radius: 50%;\n }\n .radio:checked {\n color: var(--theme-contrast, var(--primary-contrast));\n background-color: var(--theme-bg, var(--radio-checked-bg));\n border-color: var(--theme-bg, var(--radio-checked-border-color));\n }\n .radio:checked::before {\n position: absolute;\n inset: calc(var(--radio-size) * 0.25);\n content: \"\";\n background-color: currentcolor;\n border-radius: 50%;\n }\n .radio:disabled {\n --radio-bg: var(--radio-disabled-bg);\n }\n .radio:disabled ~ label {\n color: var(--secondary-fg);\n cursor: default;\n }\n .radio:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .radio-sm {\n --radio-size: 1rem;\n }\n .radio-sm + label {\n font-size: var(--font-size-sm);\n }\n .radio-lg {\n --radio-size: 1.5rem;\n --radio-margin-block: .375rem;\n }\n .radio-lg + label {\n font-size: var(--font-size-lg);\n }\n}\n@layer forms {\n .switch {\n --switch-height: 1.25rem;\n --switch-width: calc(var(--switch-height) * 1.75);\n --switch-padding: 0.0625rem;\n --switch-margin-block: 0.125rem;\n --switch-bg: var(--bg-3);\n --switch-border-width: var(--border-width);\n --switch-border-color: var(--border-color);\n --switch-indicator-bg: var(--white);\n --switch-indicator-width: calc(var(--switch-height) - var(--switch-padding) * 2 - var(--switch-border-width) * 2);\n --switch-indicator-height: calc(var(--switch-height) - var(--switch-padding) * 2 - var(--switch-border-width) * 2);\n --switch-checked-bg: var(--control-checked-bg);\n --switch-checked-border-color: var(--switch-checked-bg);\n --switch-checked-indicator-bg: var(--white);\n --switch-disabled-bg: var(--control-disabled-bg);\n --switch-disabled-indicator-bg: var(--fg-3);\n position: relative;\n flex-shrink: 0;\n width: var(--switch-width);\n height: var(--switch-height);\n padding: var(--switch-padding);\n margin-block: var(--switch-margin-block);\n background-color: var(--switch-bg);\n border: var(--switch-border-width) solid var(--switch-border-color);\n border-radius: 10rem;\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);\n transition: background-color 0.15s ease-in-out;\n }\n .switch::before {\n position: absolute;\n inset-block: var(--switch-padding);\n inset-inline-start: var(--switch-padding);\n width: var(--switch-indicator-width);\n height: var(--switch-indicator-height);\n content: \"\";\n background-color: var(--theme-contrast, var(--switch-indicator-bg));\n border-radius: 10rem;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n transition: inset-inline-start 0.15s ease-in-out;\n }\n .switch input {\n position: absolute;\n inset: 0;\n appearance: none;\n background-color: transparent;\n outline: 0;\n }\n .switch:focus-within {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .switch:has(input:checked) {\n background-color: var(--theme-bg, var(--switch-checked-bg));\n border-color: var(--theme-bg, var(--switch-checked-border-color));\n }\n .switch:has(input:checked)::before {\n inset-inline-start: calc(100% - var(--switch-indicator-width) - var(--switch-padding));\n }\n .switch:has(input:disabled) {\n --switch-bg: var(--switch-disabled-bg);\n --switch-indicator-bg: var(--switch-disabled-indicator-bg);\n }\n .switch:has(input:disabled)::before {\n opacity: 0.4;\n }\n .switch:has(input:disabled) ~ label {\n color: var(--secondary-fg);\n cursor: default;\n }\n .switch-sm {\n --switch-height: 1rem;\n }\n .switch-sm + label {\n font-size: var(--font-size-sm);\n }\n .switch-lg {\n --switch-height: 1.5rem;\n --switch-margin-block: .375rem;\n }\n .switch-lg + label {\n font-size: var(--font-size-lg);\n }\n}\n@layer forms {\n .form-range {\n --range-track-width: 100%;\n --range-track-height: 0.5rem;\n --range-track-cursor: pointer;\n --range-track-bg: var(--bg-3);\n --range-track-border-radius: 1rem;\n --range-track-box-shadow: var(--box-shadow-inset);\n --range-thumb-width: 1rem;\n --range-thumb-height: var(--range-thumb-width);\n --range-thumb-bg: var(--primary-base);\n --range-thumb-border: var(--range-thumb-bg) solid var(--border-color);\n --range-thumb-border-radius: 1rem;\n --range-thumb-box-shadow: 0 1px 2px rgb(0 0 0 / 7.5%), 0 2px 4px rgb(0 0 0 / 7.5%);\n --range-thumb-active-bg: color-mix(in oklch, var(--primary-base) 70%, var(--bg-body));\n --range-thumb-disabled-bg: var(--fg-3);\n --range-thumb-transition-property: background-color, border-color, box-shadow;\n --range-thumb-transition-timing: 0.15s ease-in-out;\n --range-thumb-transition: var(--range-thumb-transition-property) var(--range-thumb-transition-timing);\n width: 100%;\n height: calc(var(--range-thumb-height) + var(--focus-ring-width) * 2);\n padding: 0;\n appearance: none;\n background-color: transparent;\n }\n .form-range:hover::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid color-mix(in oklch, var(--primary-focus-ring), transparent);\n }\n .form-range:hover::-moz-range-thumb {\n outline: var(--focus-ring-width) solid color-mix(in oklch, var(--primary-focus-ring), transparent);\n }\n .form-range:focus-visible {\n outline: 0;\n }\n .form-range:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: 0;\n }\n .form-range:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: 0;\n }\n .form-range::-moz-focus-outer {\n border: 0;\n }\n .form-range::-webkit-slider-thumb {\n width: var(--range-thumb-width);\n height: var(--range-thumb-height);\n appearance: none;\n background-color: var(--range-thumb-bg);\n background-image: var(--gradient);\n border: var(--range-thumb-border);\n border-radius: var(--range-thumb-border-radius);\n box-shadow: var(--range-thumb-box-shadow);\n transition: var(--range-thumb-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-range::-webkit-slider-thumb {\n transition: none;\n }\n }\n .form-range::-webkit-slider-thumb:active {\n background-color: var(--range-thumb-active-bg);\n background-image: var(--gradient);\n }\n .form-range::-webkit-slider-thumb {\n margin-top: calc((var(--range-track-height) - var(--range-thumb-height)) * 0.5);\n }\n .form-range::-moz-range-thumb {\n width: var(--range-thumb-width);\n height: var(--range-thumb-height);\n appearance: none;\n background-color: var(--range-thumb-bg);\n background-image: var(--gradient);\n border: var(--range-thumb-border);\n border-radius: var(--range-thumb-border-radius);\n box-shadow: var(--range-thumb-box-shadow);\n transition: var(--range-thumb-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-range::-moz-range-thumb {\n transition: none;\n }\n }\n .form-range::-moz-range-thumb:active {\n background-color: var(--range-thumb-active-bg);\n background-image: var(--gradient);\n }\n .form-range::-webkit-slider-runnable-track {\n width: var(--range-track-width);\n height: var(--range-track-height);\n color: transparent;\n cursor: var(--range-track-cursor);\n background-color: var(--range-track-bg);\n border-color: transparent;\n border-radius: var(--range-track-border-radius);\n box-shadow: var(--range-track-box-shadow);\n }\n .form-range::-moz-range-track {\n width: var(--range-track-width);\n height: var(--range-track-height);\n color: transparent;\n cursor: var(--range-track-cursor);\n background-color: var(--range-track-bg);\n border-color: transparent;\n border-radius: var(--range-track-border-radius);\n box-shadow: var(--range-track-box-shadow);\n }\n .form-range:disabled {\n pointer-events: none;\n }\n .form-range:disabled::-webkit-slider-thumb {\n background-color: var(--range-thumb-disabled-bg);\n }\n .form-range:disabled::-moz-range-thumb {\n background-color: var(--range-thumb-disabled-bg);\n }\n}\n@layer forms {\n .form-floating {\n --form-floating-height: calc(3.5rem + var(--border-width) * 2);\n --form-floating-line-height: 1.25;\n --form-floating-padding-x: var(--btn-input-padding-x);\n --form-floating-padding-y: 1rem;\n --form-floating-input-padding-t: 1.625rem;\n --form-floating-input-padding-b: 0.625rem;\n --form-floating-label-height: 1.5em;\n --form-floating-label-opacity: 0.65;\n --form-floating-label-transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n --form-floating-label-disabled-color: var(--fg-3);\n --form-floating-transition-property: opacity, transform;\n --form-floating-transition-timing: 0.1s ease-in-out;\n --form-floating-transition: var(--form-floating-transition-property) var(--form-floating-transition-timing);\n position: relative;\n }\n .form-floating > label {\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n z-index: 2;\n display: flex;\n align-items: center;\n max-width: 100%;\n height: 100%;\n padding: var(--form-floating-padding-y) var(--form-floating-padding-x);\n overflow: hidden;\n color: color-mix(in oklch, var(--fg-body) var(--form-floating-label-opacity), transparent);\n text-align: start;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n border: var(--input-btn-border-width) solid transparent;\n transform-origin: 0 0;\n transition: var(--form-floating-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-floating > label {\n transition: none;\n }\n }\n .form-floating > .form-control,\n .form-floating > .form-control-plaintext {\n height: var(--form-floating-height);\n min-height: var(--form-floating-height);\n padding: var(--form-floating-padding-y) var(--form-floating-padding-x);\n line-height: var(--form-floating-line-height);\n }\n .form-floating > .form-control::placeholder,\n .form-floating > .form-control-plaintext::placeholder {\n color: transparent;\n }\n .form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown),\n .form-floating > .form-control-plaintext:focus,\n .form-floating > .form-control-plaintext:not(:placeholder-shown) {\n padding-top: var(--form-floating-input-padding-t);\n padding-bottom: var(--form-floating-input-padding-b);\n }\n .form-floating > .form-control:-webkit-autofill,\n .form-floating > .form-control-plaintext:-webkit-autofill {\n padding-top: var(--form-floating-input-padding-t);\n padding-bottom: var(--form-floating-input-padding-b);\n }\n .form-floating > .form-control:focus ~ label,\n .form-floating > .form-control:not(:placeholder-shown) ~ label,\n .form-floating > .form-control-plaintext ~ label {\n transform: var(--form-floating-label-transform);\n }\n .form-floating > .form-control:-webkit-autofill ~ label {\n transform: var(--form-floating-label-transform);\n }\n .form-floating > textarea:focus ~ label::after,\n .form-floating > textarea:not(:placeholder-shown) ~ label::after {\n position: absolute;\n inset: var(--form-floating-padding-y) calc(var(--form-floating-padding-x) * 0.5);\n z-index: -1;\n height: var(--form-floating-label-height);\n content: \"\";\n background-color: var(--control-bg);\n border-radius: var(--btn-input-border-radius);\n }\n .form-floating > textarea:disabled ~ label::after {\n background-color: var(--control-disabled-bg);\n }\n .form-floating > .form-control-plaintext ~ label {\n border-width: var(--control-border-width) 0;\n }\n .form-floating > :disabled ~ label,\n .form-floating > .form-control:disabled ~ label {\n color: var(--form-floating-label-disabled-color);\n }\n}\n@layer components {\n .input-group {\n --input-group-addon-padding-y: var(--btn-input-padding-y);\n --input-group-addon-padding-x: var(--btn-input-padding-x);\n --input-group-addon-font-size: var(--btn-input-font-size);\n --input-group-addon-line-height: var(--btn-input-line-height);\n --input-group-addon-color: var(--fg-body);\n --input-group-addon-bg: var(--bg-2);\n --input-group-addon-border-color: var(--border-color);\n position: relative;\n display: flex;\n align-items: stretch;\n width: 100%;\n }\n .input-group > .form-control,\n .input-group > .form-floating {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n }\n .input-group > .form-control:focus,\n .input-group > .form-floating:focus-within {\n z-index: 5;\n }\n .input-group > .input-group-btn {\n position: relative;\n z-index: 2;\n }\n .input-group > .input-group-btn:focus {\n z-index: 5;\n }\n .input-group-text {\n display: flex;\n align-items: center;\n padding: var(--input-group-addon-padding-y) var(--input-group-addon-padding-x);\n font-size: var(--input-group-addon-font-size);\n line-height: var(--input-group-addon-line-height);\n color: var(--input-group-addon-color);\n text-align: center;\n white-space: nowrap;\n background-color: var(--input-group-addon-bg);\n border: var(--border-width) solid var(--input-group-addon-border-color);\n border-radius: var(--btn-input-border-radius);\n }\n .input-group-sm > .form-control,\n .input-group-sm > .input-group-text,\n .input-group-sm > .btn {\n min-height: var(--btn-input-sm-min-height);\n padding: var(--btn-input-sm-padding-y) var(--btn-input-sm-padding-x);\n font-size: var(--btn-input-sm-font-size);\n border-radius: var(--btn-input-sm-border-radius);\n }\n .input-group-lg > .form-control,\n .input-group-lg > .input-group-text,\n .input-group-lg > .btn {\n min-height: var(--btn-input-lg-min-height);\n padding: var(--btn-input-lg-padding-y) var(--btn-input-lg-padding-x);\n font-size: var(--btn-input-lg-font-size);\n border-radius: var(--btn-input-lg-border-radius);\n }\n .input-group > :not(:last-child, .menu-toggle-split, .menu, .input-group-ignore, .form-floating, :has(+ :is(.menu, .input-group-ignore):last-child)),\n .input-group > .menu-toggle-split:nth-last-child(n+3),\n .input-group > .form-floating:not(:last-child) > .form-control,\n .input-group > .form-floating:not(:last-child) > .form-select {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .input-group > :not(:first-child, .menu, .input-group-ignore) {\n margin-inline-start: calc(-1 * var(--border-width));\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .input-group > :first-child:is(.input-group-ignore) + :not(.menu, .input-group-ignore) {\n border-start-start-radius: var(--btn-input-border-radius);\n border-end-start-radius: var(--btn-input-border-radius);\n }\n .input-group > .form-floating:not(:first-child) > .form-control,\n .input-group > .form-floating:not(:first-child) > .form-select {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n}\n@layer forms {\n .strength {\n --strength-height: 0.375rem;\n --strength-gap: 0.25rem;\n --strength-margin-top: 0.25rem;\n --strength-border-radius: var(--radius-pill);\n --strength-bg: var(--bg-2);\n --strength-color: var(--bg-2);\n --strength-weak-color: var(--danger-bg);\n --strength-fair-color: var(--warning-bg);\n --strength-good-color: var(--info-bg);\n --strength-strong-color: var(--success-bg);\n display: flex;\n gap: var(--strength-gap);\n width: 100%;\n margin-top: var(--strength-margin-top);\n }\n .strength-segment {\n flex: 1;\n height: var(--strength-height);\n background-color: var(--strength-bg);\n border-radius: var(--strength-border-radius);\n transition: background-color 0.2s ease-in-out, width 0.3s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .strength-segment {\n transition: none;\n }\n }\n .strength-segment.active {\n background-color: var(--strength-color);\n }\n .strength[data-bs-strength=weak] {\n --strength-color: var(--strength-weak-color);\n }\n .strength[data-bs-strength=fair] {\n --strength-color: var(--strength-fair-color);\n }\n .strength[data-bs-strength=good] {\n --strength-color: var(--strength-good-color);\n }\n .strength[data-bs-strength=strong] {\n --strength-color: var(--strength-strong-color);\n }\n .strength-text {\n display: block;\n margin-top: var(--strength-margin-top);\n font-size: var(--font-size-xs);\n color: var(--strength-color, var(--fg-3));\n transition: color 0.2s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .strength-text {\n transition: none;\n }\n }\n .strength-text:empty {\n display: none;\n }\n .strength-bar {\n --strength-height: 0.375rem;\n --strength-gap: 0.25rem;\n --strength-margin-top: 0.25rem;\n --strength-border-radius: var(--radius-pill);\n --strength-bg: var(--bg-2);\n --strength-color: var(--bg-2);\n --strength-weak-color: var(--danger-bg);\n --strength-fair-color: var(--warning-bg);\n --strength-good-color: var(--info-bg);\n --strength-strong-color: var(--success-bg);\n --strength-color: transparent;\n --strength-width: 0%;\n width: 100%;\n height: var(--strength-height);\n margin-top: var(--strength-margin-top);\n overflow: hidden;\n background-color: var(--strength-bg);\n border-radius: var(--strength-border-radius);\n }\n .strength-bar::after {\n display: block;\n width: var(--strength-width);\n height: 100%;\n content: \"\";\n background-color: var(--strength-color);\n border-radius: var(--strength-border-radius);\n transition: background-color 0.2s ease-in-out, width 0.3s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .strength-bar::after {\n transition: none;\n }\n }\n .strength-bar[data-bs-strength=weak] {\n --strength-color: var(--strength-weak-color);\n --strength-width: 25%;\n }\n .strength-bar[data-bs-strength=fair] {\n --strength-color: var(--strength-fair-color);\n --strength-width: 50%;\n }\n .strength-bar[data-bs-strength=good] {\n --strength-color: var(--strength-good-color);\n --strength-width: 75%;\n }\n .strength-bar[data-bs-strength=strong] {\n --strength-color: var(--strength-strong-color);\n --strength-width: 100%;\n }\n}\n@layer components {\n .otp {\n --otp-size: var(--btn-input-lg-min-height);\n --otp-font-size: var(--btn-input-font-size);\n --otp-gap: 0.5rem;\n --otp-slot-fg: var(--btn-input-fg);\n --otp-slot-bg: var(--btn-input-bg);\n --otp-slot-border-width: var(--border-width);\n --otp-slot-border-color: var(--border-color);\n --otp-slot-border-radius: var(--radius-5);\n position: relative;\n display: flex;\n }\n .otp-rendered .otp-input {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n color: transparent;\n text-align: center;\n cursor: default;\n caret-color: transparent;\n background-color: transparent;\n border: 0;\n outline: 0;\n box-shadow: none;\n }\n .otp-rendered .otp-input::selection {\n color: transparent;\n background-color: transparent;\n }\n .otp-slots {\n display: inline-flex;\n gap: var(--otp-gap);\n pointer-events: none;\n }\n .otp-slot {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--otp-size);\n min-height: var(--otp-size);\n font-size: var(--otp-font-size);\n font-weight: 500;\n line-height: 1;\n color: var(--otp-slot-fg);\n background-color: var(--otp-slot-bg);\n border: var(--otp-slot-border-width) solid var(--otp-slot-border-color);\n border-radius: var(--otp-slot-border-radius);\n box-shadow: var(--box-shadow-inset);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .otp-slot {\n transition: none;\n }\n }\n .otp-slot-active {\n --focus-ring-offset: -1px;\n z-index: 1;\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .otp-slot-active:not(.otp-slot-filled)::after {\n width: 1px;\n height: 50%;\n content: \"\";\n background-color: var(--otp-slot-fg);\n animation: otp-caret-blink 1s step-end infinite;\n }\n .otp-input:disabled ~ .otp-slots .otp-slot {\n background-color: var(--bg-2);\n }\n .otp-connected .otp-slots {\n gap: 0;\n }\n .otp-connected .otp-slot {\n border-radius: 0;\n }\n .otp-connected .otp-slot:not(:first-child) {\n margin-inline-start: calc(var(--otp-slot-border-width) * -1);\n }\n .otp-connected .otp-slot:first-child {\n border-start-start-radius: var(--otp-slot-border-radius);\n border-end-start-radius: var(--otp-slot-border-radius);\n }\n .otp-connected .otp-slot:last-child {\n border-start-end-radius: var(--otp-slot-border-radius);\n border-end-end-radius: var(--otp-slot-border-radius);\n }\n .otp-separator {\n display: flex;\n align-items: center;\n padding-inline: var(--otp-gap);\n font-size: var(--otp-font-size);\n color: var(--fg-4);\n user-select: none;\n }\n .otp-sm {\n --otp-size: var(--btn-input-sm-min-height);\n --otp-font-size: var(--btn-input-sm-font-size);\n }\n .otp-lg {\n --otp-size: var(--btn-input-lg-min-height);\n --otp-font-size: var(--btn-input-lg-font-size);\n }\n}\n@keyframes otp-caret-blink {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0;\n }\n}\n@layer forms {\n .form-adorn {\n --form-adorn-gap: 0.375rem;\n --form-adorn-icon-size: 1rem;\n --form-adorn-icon-color: var(--fg-2);\n gap: var(--form-adorn-gap);\n align-items: center;\n }\n .form-adorn:focus-visible {\n outline: 0;\n }\n .form-adorn:focus-within {\n --focus-ring-offset: -1px;\n border-color: var(--focus-ring-color);\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-adorn > .form-ghost {\n flex: 1;\n min-width: 0;\n }\n .form-adorn.form-adorn-end > .form-ghost {\n order: -1;\n }\n .form-adorn-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n color: var(--form-adorn-icon-color);\n pointer-events: none;\n }\n .form-adorn-icon > svg {\n width: var(--form-adorn-icon-size);\n height: var(--form-adorn-icon-size);\n }\n .form-adorn-text {\n flex-shrink: 0;\n color: var(--form-adorn-icon-color);\n pointer-events: none;\n user-select: none;\n }\n}\n@layer forms {\n .chip-input {\n --chip-input-padding-y: 0.75rem;\n --chip-input-padding-x: 0.75rem;\n --chip-input-gap: 0.375rem;\n --chip-input-ghost-min-width: 5rem;\n --control-fg: var(--btn-input-fg);\n --control-bg: var(--btn-input-bg);\n --control-border-width: var(--border-width);\n --control-border-color: var(--border-color);\n --control-border-radius: var(--radius-5);\n display: flex;\n flex-wrap: wrap;\n gap: var(--chip-input-gap);\n align-items: center;\n padding: var(--chip-input-padding-y) var(--chip-input-padding-x);\n color: var(--control-fg);\n background-color: var(--control-bg);\n border: var(--control-border-width) solid var(--control-border-color);\n border-radius: var(--control-border-radius);\n }\n .chip-input:focus-within {\n --focus-ring-offset: -1px;\n border-color: var(--focus-ring-color);\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .chip-input > .form-ghost {\n flex: 1 1 0;\n min-width: var(--chip-input-ghost-min-width);\n min-height: 1.75rem;\n }\n .chip-input.disabled, .chip-input:has(.form-ghost:disabled) {\n cursor: not-allowed;\n background-color: var(--bg-2);\n opacity: 1;\n }\n .chip-input.disabled:focus-within, .chip-input:has(.form-ghost:disabled):focus-within {\n border-color: var(--control-border-color);\n outline: 0;\n }\n .chip-input.disabled > .chip, .chip-input:has(.form-ghost:disabled) > .chip {\n pointer-events: none;\n opacity: var(--control-disabled-opacity);\n }\n}\n@layer components {\n .combobox-toggle {\n display: inline-flex;\n gap: 0.5rem;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding-inline-end: var(--control-padding-x);\n text-align: start;\n cursor: pointer;\n }\n .combobox-toggle.show {\n background-color: var(--bg-1);\n }\n .combobox-toggle:disabled, .combobox-toggle.disabled {\n cursor: not-allowed;\n opacity: 0.65;\n }\n .combobox-value {\n display: flex;\n flex: 1;\n gap: 0.5rem;\n align-items: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .combobox-placeholder {\n color: color-mix(in oklch, currentcolor 65%, transparent);\n }\n .combobox-caret {\n flex-shrink: 0;\n transition: transform 0.2s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .combobox-caret {\n transition: none;\n }\n }\n .show > .combobox-caret {\n transform: rotate(180deg);\n }\n .combobox-toggle + .menu {\n --menu-max-height: 300px;\n --menu-overflow-y: auto;\n }\n .combobox-search {\n position: sticky;\n top: 0;\n z-index: 1;\n padding: var(--menu-padding-x, 0.25rem);\n background-color: var(--menu-bg, var(--bg-body));\n }\n .combobox-search-input {\n width: 100%;\n }\n .combobox-no-results {\n padding: 1rem;\n font-size: var(--font-size-sm);\n color: var(--fg-3);\n text-align: center;\n }\n}\n@layer forms {\n .form-field {\n position: relative;\n display: grid;\n gap: 0.5rem;\n }\n .form-field > label,\n .form-field > .form-label {\n justify-self: start;\n margin-bottom: 0;\n }\n .form-field:has(> .check, > .radio, > .switch) {\n grid-template-columns: auto 1fr;\n column-gap: 0.5rem;\n align-items: start;\n }\n .form-field:has(> .check, > .radio, > .switch) > .check,\n .form-field:has(> .check, > .radio, > .switch) > .radio,\n .form-field:has(> .check, > .radio, > .switch) > .switch {\n grid-column: 1;\n }\n .form-field:has(> .check, > .radio, > .switch) > :not(.check, .radio, .switch) {\n grid-column: 2;\n }\n .form-field:has(> .check, > .radio, > .switch) > .form-label {\n grid-column: 1/-1;\n }\n .form-field-content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n .form-field-card {\n position: relative;\n padding: calc(var(--spacer) * 0.75);\n cursor: pointer;\n border: var(--border-width) solid transparent;\n border-radius: var(--radius-7);\n }\n .form-field-card:hover {\n background-color: var(--bg-1);\n }\n .form-field-card:has(:checked) {\n background-color: var(--bg-1);\n border-color: var(--border-color);\n }\n .form-field-card label::before {\n position: absolute;\n inset: 0;\n content: \"\";\n }\n .form-group {\n display: grid;\n gap: 0.5rem;\n }\n .form-group > label,\n .form-group > .form-label,\n .form-group > legend {\n justify-self: start;\n margin-bottom: 0;\n }\n}\n@layer components {\n .valid-feedback {\n display: none;\n width: 100%;\n font-size: var(--font-size-sm);\n color: var(--success-fg);\n }\n .tooltip.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n margin-top: 0.1rem;\n color: var(--success-contrast);\n text-align: center;\n background-color: var(--success-bg);\n opacity: 1;\n border-radius: var(--tooltip-border-radius);\n }\n .is-valid ~ .valid-feedback,\n .is-valid ~ .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] :user-valid ~ .valid-feedback,\n [data-bs-validate~=valid] :user-valid ~ .valid-tooltip {\n display: block;\n }\n .form-control.is-valid {\n --control-border-color: var(--success-border);\n }\n .form-control.is-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .form-control:user-valid {\n --control-border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .form-control:user-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--success-border);\n }\n .check.is-valid {\n --check-border-color: var(--success-border);\n --check-checked-bg: var(--success-bg);\n --check-checked-border-color: var(--success-bg);\n }\n .check.is-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .check:user-valid {\n --check-border-color: var(--success-border);\n --check-checked-bg: var(--success-bg);\n --check-checked-border-color: var(--success-bg);\n }\n [data-bs-validate~=valid] .check:user-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.check.is-valid) label {\n color: var(--success-fg);\n }\n .form-field:has(.check.is-valid) .valid-feedback,\n .form-field:has(.check.is-valid) .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-field:has(.check:user-valid) label {\n color: var(--success-fg);\n }\n [data-bs-validate~=valid] .form-field:has(.check:user-valid) .valid-feedback,\n [data-bs-validate~=valid] .form-field:has(.check:user-valid) .valid-tooltip {\n display: block;\n }\n .radio.is-valid {\n --radio-border-color: var(--success-border);\n --radio-checked-bg: var(--success-bg);\n --radio-checked-border-color: var(--success-bg);\n }\n .radio.is-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .radio:user-valid {\n --radio-border-color: var(--success-border);\n --radio-checked-bg: var(--success-bg);\n --radio-checked-border-color: var(--success-bg);\n }\n [data-bs-validate~=valid] .radio:user-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.radio.is-valid) label {\n color: var(--success-fg);\n }\n .form-field:has(.radio.is-valid) .valid-feedback,\n .form-field:has(.radio.is-valid) .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-field:has(.radio:user-valid) label {\n color: var(--success-fg);\n }\n [data-bs-validate~=valid] .form-field:has(.radio:user-valid) .valid-feedback,\n [data-bs-validate~=valid] .form-field:has(.radio:user-valid) .valid-tooltip {\n display: block;\n }\n .switch:has(input.is-valid) {\n --switch-border-color: var(--success-border);\n --switch-checked-bg: var(--success-bg);\n --switch-checked-border-color: var(--success-bg);\n }\n .switch:has(input.is-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .switch:has(input:user-valid) {\n --switch-border-color: var(--success-border);\n --switch-checked-bg: var(--success-bg);\n --switch-checked-border-color: var(--success-bg);\n }\n [data-bs-validate~=valid] .switch:has(input:user-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.switch input.is-valid) label {\n color: var(--success-fg);\n }\n .form-field:has(.switch input.is-valid) .valid-feedback,\n .form-field:has(.switch input.is-valid) .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-field:has(.switch input:user-valid) label {\n color: var(--success-fg);\n }\n [data-bs-validate~=valid] .form-field:has(.switch input:user-valid) .valid-feedback,\n [data-bs-validate~=valid] .form-field:has(.switch input:user-valid) .valid-tooltip {\n display: block;\n }\n .chip-input:has(.form-ghost.is-valid) {\n border-color: var(--success-border);\n }\n .chip-input:has(.form-ghost.is-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--success-border);\n }\n .chip-input:has(.form-ghost.is-valid) ~ .valid-feedback,\n .chip-input:has(.form-ghost.is-valid) ~ .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid) {\n border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid) ~ .valid-feedback,\n [data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid) ~ .valid-tooltip {\n display: block;\n }\n .form-adorn:has(.form-ghost.is-valid) {\n border-color: var(--success-border);\n }\n .form-adorn:has(.form-ghost.is-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--success-border);\n }\n .form-adorn:has(.form-ghost.is-valid) ~ .valid-feedback,\n .form-adorn:has(.form-ghost.is-valid) ~ .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid) {\n border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid) ~ .valid-feedback,\n [data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid) ~ .valid-tooltip {\n display: block;\n }\n .form-range.is-valid::-webkit-slider-thumb {\n background: var(--success-bg);\n }\n .form-range.is-valid::-moz-range-thumb {\n background: var(--success-bg);\n }\n .form-range.is-valid:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-range.is-valid:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-range.is-valid ~ .valid-feedback,\n .form-range.is-valid ~ .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-range:user-valid::-webkit-slider-thumb {\n background: var(--success-bg);\n }\n [data-bs-validate~=valid] .form-range:user-valid::-moz-range-thumb {\n background: var(--success-bg);\n }\n [data-bs-validate~=valid] .form-range:user-valid:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .form-range:user-valid:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .form-range:user-valid ~ .valid-feedback,\n [data-bs-validate~=valid] .form-range:user-valid ~ .valid-tooltip {\n display: block;\n }\n .form-field:has(.input-group .form-control.is-valid) .valid-feedback,\n .form-field:has(.input-group .form-control.is-valid) .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-field:has(.input-group .form-control:user-valid) .valid-feedback,\n [data-bs-validate~=valid] .form-field:has(.input-group .form-control:user-valid) .valid-tooltip {\n display: block;\n }\n .input-group > .form-control:not(:focus).is-valid,\n .input-group > .form-floating:not(:focus-within).is-valid {\n z-index: 3;\n }\n [data-bs-validate~=valid] .input-group > .form-control:not(:focus), .input-group > .form-floating:not(:focus-within):user-valid {\n z-index: 3;\n }\n .otp.is-valid .otp-slot {\n --otp-slot-border-color: var(--success-border);\n }\n .otp.is-valid .otp-slot-active {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .otp:user-valid .otp-slot {\n --otp-slot-border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .otp:user-valid .otp-slot-active {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .invalid-feedback {\n display: none;\n width: 100%;\n font-size: var(--font-size-sm);\n color: var(--danger-fg);\n }\n .tooltip.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n margin-top: 0.1rem;\n color: var(--danger-contrast);\n text-align: center;\n background-color: var(--danger-bg);\n opacity: 1;\n border-radius: var(--tooltip-border-radius);\n }\n .is-invalid ~ .invalid-feedback,\n .is-invalid ~ .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] :user-invalid ~ .invalid-feedback,\n [data-bs-validate] :user-invalid ~ .invalid-tooltip {\n display: block;\n }\n .form-control.is-invalid {\n --control-border-color: var(--danger-border);\n }\n .form-control.is-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--danger-border);\n }\n [data-bs-validate] .form-control:user-invalid {\n --control-border-color: var(--danger-border);\n }\n [data-bs-validate] .form-control:user-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--danger-border);\n }\n .check.is-invalid {\n --check-border-color: var(--danger-border);\n --check-checked-bg: var(--danger-bg);\n --check-checked-border-color: var(--danger-bg);\n }\n .check.is-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .check:user-invalid {\n --check-border-color: var(--danger-border);\n --check-checked-bg: var(--danger-bg);\n --check-checked-border-color: var(--danger-bg);\n }\n [data-bs-validate] .check:user-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.check.is-invalid) label {\n color: var(--danger-fg);\n }\n .form-field:has(.check.is-invalid) .invalid-feedback,\n .form-field:has(.check.is-invalid) .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-field:has(.check:user-invalid) label {\n color: var(--danger-fg);\n }\n [data-bs-validate] .form-field:has(.check:user-invalid) .invalid-feedback,\n [data-bs-validate] .form-field:has(.check:user-invalid) .invalid-tooltip {\n display: block;\n }\n .radio.is-invalid {\n --radio-border-color: var(--danger-border);\n --radio-checked-bg: var(--danger-bg);\n --radio-checked-border-color: var(--danger-bg);\n }\n .radio.is-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .radio:user-invalid {\n --radio-border-color: var(--danger-border);\n --radio-checked-bg: var(--danger-bg);\n --radio-checked-border-color: var(--danger-bg);\n }\n [data-bs-validate] .radio:user-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.radio.is-invalid) label {\n color: var(--danger-fg);\n }\n .form-field:has(.radio.is-invalid) .invalid-feedback,\n .form-field:has(.radio.is-invalid) .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-field:has(.radio:user-invalid) label {\n color: var(--danger-fg);\n }\n [data-bs-validate] .form-field:has(.radio:user-invalid) .invalid-feedback,\n [data-bs-validate] .form-field:has(.radio:user-invalid) .invalid-tooltip {\n display: block;\n }\n .switch:has(input.is-invalid) {\n --switch-border-color: var(--danger-border);\n --switch-checked-bg: var(--danger-bg);\n --switch-checked-border-color: var(--danger-bg);\n }\n .switch:has(input.is-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .switch:has(input:user-invalid) {\n --switch-border-color: var(--danger-border);\n --switch-checked-bg: var(--danger-bg);\n --switch-checked-border-color: var(--danger-bg);\n }\n [data-bs-validate] .switch:has(input:user-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.switch input.is-invalid) label {\n color: var(--danger-fg);\n }\n .form-field:has(.switch input.is-invalid) .invalid-feedback,\n .form-field:has(.switch input.is-invalid) .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-field:has(.switch input:user-invalid) label {\n color: var(--danger-fg);\n }\n [data-bs-validate] .form-field:has(.switch input:user-invalid) .invalid-feedback,\n [data-bs-validate] .form-field:has(.switch input:user-invalid) .invalid-tooltip {\n display: block;\n }\n .chip-input:has(.form-ghost.is-invalid) {\n border-color: var(--danger-border);\n }\n .chip-input:has(.form-ghost.is-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--danger-border);\n }\n .chip-input:has(.form-ghost.is-invalid) ~ .invalid-feedback,\n .chip-input:has(.form-ghost.is-invalid) ~ .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid) {\n border-color: var(--danger-border);\n }\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--danger-border);\n }\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid) ~ .invalid-feedback,\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid) ~ .invalid-tooltip {\n display: block;\n }\n .form-adorn:has(.form-ghost.is-invalid) {\n border-color: var(--danger-border);\n }\n .form-adorn:has(.form-ghost.is-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--danger-border);\n }\n .form-adorn:has(.form-ghost.is-invalid) ~ .invalid-feedback,\n .form-adorn:has(.form-ghost.is-invalid) ~ .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid) {\n border-color: var(--danger-border);\n }\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--danger-border);\n }\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid) ~ .invalid-feedback,\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid) ~ .invalid-tooltip {\n display: block;\n }\n .form-range.is-invalid::-webkit-slider-thumb {\n background: var(--danger-bg);\n }\n .form-range.is-invalid::-moz-range-thumb {\n background: var(--danger-bg);\n }\n .form-range.is-invalid:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-range.is-invalid:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-range.is-invalid ~ .invalid-feedback,\n .form-range.is-invalid ~ .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-range:user-invalid::-webkit-slider-thumb {\n background: var(--danger-bg);\n }\n [data-bs-validate] .form-range:user-invalid::-moz-range-thumb {\n background: var(--danger-bg);\n }\n [data-bs-validate] .form-range:user-invalid:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .form-range:user-invalid:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .form-range:user-invalid ~ .invalid-feedback,\n [data-bs-validate] .form-range:user-invalid ~ .invalid-tooltip {\n display: block;\n }\n .form-field:has(.input-group .form-control.is-invalid) .invalid-feedback,\n .form-field:has(.input-group .form-control.is-invalid) .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-field:has(.input-group .form-control:user-invalid) .invalid-feedback,\n [data-bs-validate] .form-field:has(.input-group .form-control:user-invalid) .invalid-tooltip {\n display: block;\n }\n .input-group > .form-control:not(:focus).is-invalid,\n .input-group > .form-floating:not(:focus-within).is-invalid {\n z-index: 4;\n }\n [data-bs-validate] .input-group > .form-control:not(:focus), .input-group > .form-floating:not(:focus-within):user-invalid {\n z-index: 4;\n }\n .otp.is-invalid .otp-slot {\n --otp-slot-border-color: var(--danger-border);\n }\n .otp.is-invalid .otp-slot-active {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .otp:user-invalid .otp-slot {\n --otp-slot-border-color: var(--danger-border);\n }\n [data-bs-validate] .otp:user-invalid .otp-slot-active {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n}\n@layer components {\n .btn, .btn-link, .btn-icon, .btn-solid, .btn-outline, .btn-subtle, .btn-text {\n --btn-min-height: var(--btn-input-min-height);\n --btn-padding-x: var(--btn-input-padding-x);\n --btn-padding-y: var(--btn-input-padding-y);\n --btn-font-size: var(--btn-input-font-size);\n --btn-font-weight: var(--btn-input-font-weight);\n --btn-line-height: var(--btn-input-line-height);\n --btn-color: var(--fg-body);\n --btn-white-space: nowrap;\n --btn-border-width: var(--border-width);\n --btn-border-color: transparent;\n --btn-border-radius: var(--radius-5);\n --btn-hover-border-color: transparent;\n --btn-disabled-opacity: 0.65;\n --btn-transition-timing: 0.15s ease-in-out;\n --btn-transition-property: color, background-color, border-color, box-shadow;\n --btn-transition: var(--btn-transition-property) var(--btn-transition-timing);\n display: inline-flex;\n gap: var(--btn-gap, 0.25rem);\n align-items: center;\n justify-content: center;\n min-height: var(--btn-min-height);\n padding: var(--btn-padding-y) var(--btn-padding-x);\n font-size: var(--btn-font-size);\n font-weight: var(--btn-font-weight);\n line-height: var(--btn-line-height);\n color: var(--btn-color);\n text-decoration: none;\n white-space: var(--btn-white-space);\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n background-color: var(--btn-bg, var(--bg-2));\n border: var(--btn-border-width) solid var(--btn-border-color);\n border-radius: var(--btn-border-radius);\n transition: var(--btn-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .btn, .btn-link, .btn-icon, .btn-solid, .btn-outline, .btn-subtle, .btn-text {\n transition: none;\n }\n }\n .btn:hover, .btn-link:hover, .btn-icon:hover, .btn-solid:hover, .btn-outline:hover, .btn-subtle:hover, .btn-text:hover {\n color: var(--btn-hover-color);\n background-color: var(--btn-hover-bg, var(--bg-3));\n border-color: var(--btn-hover-border-color);\n }\n .btn:focus-visible, .btn-link:focus-visible, .btn-icon:focus-visible, .btn-solid:focus-visible, .btn-outline:focus-visible, .btn-subtle:focus-visible, .btn-text:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: 1px;\n }\n .btn.active, .btn.show, .btn-link.active, .btn-link.show, .btn-icon.active, .btn-icon.show, .btn-solid.active, .btn-solid.show, .btn-outline.active, .btn-outline.show, .btn-subtle.active, .btn-subtle.show, .btn-text.active, .btn-text.show {\n color: var(--btn-active-color);\n background-color: var(--btn-active-bg, var(--bg-3));\n border-color: var(--btn-active-border-color);\n }\n .btn.active:focus-visible, .btn.show:focus-visible, .btn-link.active:focus-visible, .btn-link.show:focus-visible, .btn-icon.active:focus-visible, .btn-icon.show:focus-visible, .btn-solid.active:focus-visible, .btn-solid.show:focus-visible, .btn-outline.active:focus-visible, .btn-outline.show:focus-visible, .btn-subtle.active:focus-visible, .btn-subtle.show:focus-visible, .btn-text.active:focus-visible, .btn-text.show:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .btn:disabled, .btn.disabled, fieldset:disabled .btn, .btn-link:disabled, .btn-link.disabled, fieldset:disabled .btn-link, .btn-icon:disabled, .btn-icon.disabled, fieldset:disabled .btn-icon, .btn-solid:disabled, .btn-solid.disabled, fieldset:disabled .btn-solid, .btn-outline:disabled, .btn-outline.disabled, fieldset:disabled .btn-outline, .btn-subtle:disabled, .btn-subtle.disabled, fieldset:disabled .btn-subtle, .btn-text:disabled, .btn-text.disabled, fieldset:disabled .btn-text {\n color: var(--btn-disabled-color);\n pointer-events: none;\n background-color: var(--btn-disabled-bg, var(--bg-1));\n background-image: none;\n border-color: var(--btn-disabled-border-color);\n opacity: var(--btn-disabled-opacity);\n }\n .btn-solid {\n --btn-bg: var(--theme-bg);\n --btn-color: var(--theme-contrast);\n --btn-border-color: var(--theme-bg);\n --btn-active-bg: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-border-color: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-color: oklch(from var(--theme-contrast) calc(l * .9) calc(c * 1.15) h);\n --btn-disabled-bg: var(--theme-bg);\n --btn-disabled-color: var(--theme-contrast);\n --btn-disabled-border-color: var(--theme-bg);\n }\n .btn-solid:hover {\n --btn-hover-bg: oklch(from var(--theme-bg) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-border-color: oklch(from var(--theme-bg) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-color: oklch(from var(--theme-contrast) calc(l * .95) calc(c * 1.1) h);\n }\n .btn-solid:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n .btn-solid:active, .btn-solid.active, .btn-solid.btn-check:has(input:checked) {\n --btn-active-bg: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-border-color: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-color: oklch(from var(--theme-contrast) calc(l * .9) calc(c * 1.15) h);\n }\n .btn-solid:disabled, .btn-solid.disabled, .btn-solid.btn-check:has(input:disabled) {\n --btn-disabled-bg: var(--theme-bg);\n --btn-disabled-color: var(--theme-contrast);\n --btn-disabled-border-color: var(--theme-bg);\n }\n .btn-outline {\n --btn-bg: transparent;\n --btn-color: var(--theme-fg);\n --btn-border-color: var(--theme-border);\n --btn-active-bg: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-color: oklch(from var(--theme-contrast) calc(l * .9) calc(c * 1.15) h);\n --btn-active-border-color: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-disabled-bg: transparent;\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-border-color: var(--theme-border);\n }\n .btn-outline:hover {\n --btn-hover-bg: oklch(from var(--theme-bg) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-color: oklch(from var(--theme-contrast) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-border-color: oklch(from var(--theme-bg) calc(l * .95) calc(c * 1.1) h);\n }\n .btn-outline:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n .btn-outline:active, .btn-outline.active, .btn-outline.btn-check:has(input:checked) {\n --btn-active-bg: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-color: oklch(from var(--theme-contrast) calc(l * .9) calc(c * 1.15) h);\n --btn-active-border-color: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n }\n .btn-outline:disabled, .btn-outline.disabled, .btn-outline.btn-check:has(input:disabled) {\n --btn-disabled-bg: transparent;\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-border-color: var(--theme-border);\n }\n .btn-subtle {\n --btn-bg: var(--theme-bg-subtle);\n --btn-color: var(--theme-fg);\n --btn-border-color: transparent;\n --btn-active-bg: var(--theme-bg-subtle);\n --btn-active-color: oklch(from var(--theme-fg-emphasis) calc(l * .9) calc(c * 1.15) h);\n --btn-disabled-bg: var(--theme-bg-subtle);\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-border-color: transparent;\n }\n .btn-subtle:hover {\n --btn-hover-bg: color-mix(in oklch, var(--theme-bg-muted) 50%, var(--theme-bg-subtle));\n --btn-hover-color: oklch(from var(--theme-fg-emphasis) calc(l * .95) calc(c * 1.1) h);\n }\n .btn-subtle:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n .btn-subtle:active, .btn-subtle.active, .btn-subtle.btn-check:has(input:checked) {\n --btn-active-bg: var(--theme-bg-subtle);\n --btn-active-color: oklch(from var(--theme-fg-emphasis) calc(l * .9) calc(c * 1.15) h);\n }\n .btn-subtle:disabled, .btn-subtle.disabled, .btn-subtle.btn-check:has(input:disabled) {\n --btn-disabled-bg: var(--theme-bg-subtle);\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-border-color: transparent;\n }\n .btn-text {\n --btn-color: var(--theme-fg);\n --btn-bg: transparent;\n --btn-border-color: transparent;\n --btn-active-color: oklch(from var(--theme-fg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-bg: var(--theme-bg-subtle);\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-bg: transparent;\n --btn-disabled-border-color: transparent;\n }\n .btn-text:hover {\n --btn-hover-color: oklch(from var(--theme-fg) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-bg: var(--theme-bg-subtle);\n }\n .btn-text:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n .btn-text:active, .btn-text.active, .btn-text.btn-check:has(input:checked) {\n --btn-active-color: oklch(from var(--theme-fg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-bg: var(--theme-bg-subtle);\n }\n .btn-text:disabled, .btn-text.disabled, .btn-text.btn-check:has(input:disabled) {\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-bg: transparent;\n --btn-disabled-border-color: transparent;\n }\n .btn-link {\n --btn-font-weight: var(--font-weight-normal);\n --btn-color: var(--link-color);\n --btn-bg: transparent;\n --btn-border-color: transparent;\n --btn-hover-color: var(--link-hover-color);\n --btn-hover-bg: transparent;\n --btn-hover-border-color: transparent;\n --btn-active-color: var(--link-hover-color);\n --btn-active-bg: transparent;\n --btn-active-border-color: transparent;\n --btn-disabled-color: var(--fg-3);\n --btn-disabled-border-color: transparent;\n color: var(--theme-fg, var(--btn-color));\n text-decoration: var(--link-decoration);\n background-image: none;\n }\n .btn-link:focus-visible {\n color: var(--theme-fg, var(--btn-color));\n }\n .btn-link:hover {\n color: var(--theme-fg-emphasis, var(--btn-hover-color));\n }\n .btn-xs,\n .btn-group-xs > [class*=btn-] {\n --btn-min-height: var(--btn-input-xs-min-height);\n --btn-padding-y: var(--btn-input-xs-padding-y);\n --btn-padding-x: var(--btn-input-xs-padding-x);\n --btn-font-size: var(--btn-input-xs-font-size);\n --btn-line-height: var(--btn-input-xs-line-height);\n --btn-border-radius: var(--btn-input-xs-border-radius);\n }\n .btn-sm,\n .btn-group-sm > [class*=btn-] {\n --btn-min-height: var(--btn-input-sm-min-height);\n --btn-padding-y: var(--btn-input-sm-padding-y);\n --btn-padding-x: var(--btn-input-sm-padding-x);\n --btn-font-size: var(--btn-input-sm-font-size);\n --btn-line-height: var(--btn-input-sm-line-height);\n --btn-border-radius: var(--btn-input-sm-border-radius);\n }\n .btn-lg,\n .btn-group-lg > [class*=btn-] {\n --btn-min-height: var(--btn-input-lg-min-height);\n --btn-padding-y: var(--btn-input-lg-padding-y);\n --btn-padding-x: var(--btn-input-lg-padding-x);\n --btn-font-size: var(--btn-input-lg-font-size);\n --btn-line-height: var(--btn-input-lg-line-height);\n --btn-border-radius: var(--btn-input-lg-border-radius);\n }\n .btn-icon {\n align-items: center;\n justify-content: center;\n aspect-ratio: 1;\n padding: 0;\n }\n .btn-check > input {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n .btn-check:has(input:checked) {\n color: var(--btn-active-color);\n background-color: var(--btn-active-bg, var(--bg-3));\n background-image: none;\n border-color: var(--btn-active-border-color);\n box-shadow: var(--btn-active-shadow);\n }\n .btn-check:has(input:focus-visible) {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: 1px;\n }\n .btn-check:has(input:disabled) {\n color: var(--btn-disabled-color);\n pointer-events: none;\n background-color: var(--btn-disabled-bg, var(--bg-1));\n background-image: none;\n border-color: var(--btn-disabled-border-color);\n opacity: var(--btn-disabled-opacity);\n box-shadow: none;\n }\n .btn-styled {\n --btn-gradient-start: rgba(255, 255, 255, 0.125);\n --btn-gradient-end: rgba(0, 0, 0, 0.075);\n --btn-border-mix-color: #000;\n --btn-border-mix-amount: 10%;\n --btn-border-hover-mix-amount: 12.5%;\n --btn-border-active-mix-amount: 20%;\n --btn-shadow: 0 1px 2px rgb(0 0 0 / 15%), inset 0 1px 0 rgb(255 255 255 / 10%);\n --btn-active-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n background-image: linear-gradient(to bottom, var(--btn-gradient-start), var(--btn-gradient-end));\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-mix-amount));\n box-shadow: var(--btn-shadow);\n }\n .btn-styled:hover {\n background-image: linear-gradient(to bottom, var(--btn-gradient-start), var(--btn-gradient-end));\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-hover-mix-amount));\n }\n .btn-styled:active, .btn-styled.active {\n background-image: none;\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-active-mix-amount));\n box-shadow: var(--btn-active-shadow);\n }\n .btn-styled:disabled, .btn-styled.disabled {\n background-image: none;\n box-shadow: none;\n }\n}\n@layer components {\n .btn-group,\n .btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n }\n .btn-group > [class*=btn-],\n .btn-group-vertical > [class*=btn-] {\n position: relative;\n flex: 1 1 auto;\n }\n .btn-group > [class*=btn-]:hover,\n .btn-group-vertical > [class*=btn-]:hover {\n z-index: 1;\n }\n .btn-group > .btn-check:has(input:checked),\n .btn-group > [class*=btn-]:active,\n .btn-group > [class*=btn-].active,\n .btn-group-vertical > .btn-check:has(input:checked),\n .btn-group-vertical > [class*=btn-]:active,\n .btn-group-vertical > [class*=btn-].active {\n z-index: 2;\n }\n .btn-group > .btn-check:has(input:focus),\n .btn-group > [class*=btn-]:focus,\n .btn-group-vertical > .btn-check:has(input:focus),\n .btn-group-vertical > [class*=btn-]:focus {\n z-index: 3;\n }\n .btn-group-divider > [class*=btn-] + [class*=btn-]::before {\n position: absolute;\n z-index: 3;\n content: \"\";\n background-color: var(--btn-color);\n opacity: 0.25;\n }\n .btn-group:where(.btn-group-divider) > [class*=btn-] + [class*=btn-]::before {\n top: 25%;\n bottom: 25%;\n left: calc(var(--btn-border-width) * -1);\n width: var(--btn-border-width);\n }\n .btn-group-vertical:where(.btn-group-divider) > [class*=btn-] + [class*=btn-]::before {\n top: calc(var(--btn-border-width) * -1);\n right: var(--btn-padding-x);\n left: var(--btn-padding-x);\n height: var(--btn-border-width);\n }\n .btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n justify-content: flex-start;\n }\n .btn-toolbar .input-group {\n width: auto;\n }\n .btn-group {\n border-radius: var(--btn-border-radius);\n }\n .btn-group > [class*=btn-]:not(:first-child),\n .btn-group > .btn-group:not(:first-child) {\n margin-inline-start: calc(-1 * var(--btn-border-width));\n }\n .btn-group > [class*=btn-]:not(:last-child, :has(+ .menu)),\n .btn-group > .btn-group:not(:last-child) > [class*=btn-] {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .btn-group > [class*=btn-]:not(:first-child),\n .btn-group > .btn-group:not(:first-child) > [class*=btn-] {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n }\n .btn-group-vertical > [class*=btn-],\n .btn-group-vertical > .btn-group {\n width: 100%;\n }\n .btn-group-vertical > [class*=btn-]:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: calc(-1 * var(--btn-border-width));\n }\n .btn-group-vertical > [class*=btn-]:not(:last-child, :has(+ .menu)),\n .btn-group-vertical > .btn-group:not(:last-child) > [class*=btn-] {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .btn-group-vertical > [class*=btn-]:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) > [class*=btn-] {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n}\n@layer components {\n .btn-close {\n --btn-close-size: 1.5rem;\n --btn-close-color: inherit;\n --btn-close-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath d='M12 0a4 4 0 0 1 4 4v8a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4zm-.646 4.646a.5.5 0 0 0-.707 0L8 7.293 5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.647a.5.5 0 1 0 .708.707L8 8.707l2.647 2.646a.5.5 0 1 0 .707-.707L8.707 8l2.646-2.646a.5.5 0 0 0 0-.708z'/%3e%3c/svg%3e\");\n --btn-close-opacity: 0.5;\n --btn-close-hover-opacity: 0.75;\n --btn-close-focus-opacity: 0.85;\n --btn-close-disabled-opacity: 0.25;\n box-sizing: content-box;\n width: var(--btn-close-size);\n height: var(--btn-close-size);\n padding: 0;\n color: var(--btn-close-color);\n background-color: currentcolor;\n border: 0;\n border-radius: var(--radius-5);\n opacity: var(--btn-close-opacity);\n mask-image: var(--btn-close-icon);\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: contain;\n }\n .btn-close:hover {\n color: var(--btn-close-color);\n text-decoration: none;\n opacity: var(--btn-close-hover-opacity);\n }\n .btn-close:focus-visible {\n opacity: var(--btn-close-focus-opacity);\n outline: var(--focus-ring);\n }\n .btn-close:disabled, .btn-close.disabled {\n pointer-events: none;\n user-select: none;\n opacity: var(--btn-close-disabled-opacity);\n }\n}\n@layer components {\n .accordion {\n --accordion-padding-x: 1.25rem;\n --accordion-padding-y: 1rem;\n --accordion-color: var(--fg-body);\n --accordion-bg: var(--bg-body);\n --accordion-transition-property: color, background-color, border-radius;\n --accordion-transition-timing: .15s ease-in-out;\n --accordion-transition: var(--accordion-transition-property) var(--accordion-timing);\n --accordion-border-color: var(--border-color);\n --accordion-border-width: var(--border-width);\n --accordion-border-radius: var(--accordion-radius, var(--radius-7));\n --accordion-btn-color: var(--fg-2);\n --accordion-btn-bg: var(--bg-body);\n --accordion-btn-icon-width: 1rem;\n --accordion-btn-icon-transform: rotate(-180deg);\n --accordion-btn-icon-transition: transform 0.2s ease-in-out;\n --accordion-active-color: var(--fg);\n --accordion-active-bg: var(--bg-2);\n }\n .accordion-header {\n display: flex;\n align-items: center;\n width: 100%;\n padding: var(--accordion-btn-padding-y, var(--accordion-padding-y)) var(--accordion-btn-padding-x, var(--accordion-padding-x));\n font-size: var(--accordion-font-size, var(--font-size-base));\n color: var(--accordion-btn-color);\n text-align: start;\n list-style: none;\n cursor: pointer;\n background-color: var(--accordion-btn-bg);\n transition: var(--accordion-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .accordion-header {\n transition: none;\n }\n }\n .accordion-header::-webkit-details-marker {\n display: none;\n }\n .accordion-header .accordion-icon {\n flex-shrink: 0;\n width: var(--accordion-btn-icon-width);\n height: var(--accordion-btn-icon-width);\n margin-inline-start: auto;\n color: currentcolor;\n transition: var(--accordion-btn-icon-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .accordion-header .accordion-icon {\n transition: none;\n }\n }\n .accordion-header:hover {\n z-index: 2;\n }\n .accordion-header:focus-visible {\n position: relative;\n z-index: 3;\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n outline-offset: -1px;\n }\n .accordion-item {\n color: var(--accordion-color);\n background-color: var(--accordion-bg);\n border: var(--accordion-border-width) solid var(--accordion-border-color);\n }\n @media (prefers-reduced-motion: no-preference) {\n .accordion-item {\n interpolate-size: allow-keywords;\n }\n }\n .accordion-item::details-content {\n block-size: 0;\n overflow-y: clip;\n transition: content-visibility 0.2s allow-discrete, block-size 0.2s;\n }\n @media (prefers-reduced-motion: reduce) {\n .accordion-item::details-content {\n transition: none;\n }\n }\n .accordion-item:first-of-type {\n border-start-start-radius: var(--accordion-border-radius);\n border-start-end-radius: var(--accordion-border-radius);\n }\n .accordion-item:first-of-type > .accordion-header {\n border-start-start-radius: calc(var(--accordion-border-radius) - var(--accordion-border-width));\n border-start-end-radius: calc(var(--accordion-border-radius) - var(--accordion-border-width));\n }\n .accordion-item:not(:first-of-type) {\n border-block-start: 0;\n }\n .accordion-item:last-of-type {\n border-end-start-radius: var(--accordion-border-radius);\n border-end-end-radius: var(--accordion-border-radius);\n }\n .accordion-item:last-of-type > .accordion-header {\n border-end-start-radius: calc(var(--accordion-border-radius) - var(--accordion-border-width));\n border-end-end-radius: calc(var(--accordion-border-radius) - var(--accordion-border-width));\n }\n .accordion-item:last-of-type > .accordion-body {\n border-end-start-radius: var(--accordion-border-radius);\n border-end-end-radius: var(--accordion-border-radius);\n }\n .accordion-item[open] {\n border-color: var(--theme-border, var(--accordion-border-color));\n }\n .accordion-item[open]::details-content {\n block-size: auto;\n }\n .accordion-item[open] > .accordion-header {\n color: var(--theme-fg, var(--accordion-active-color));\n background-color: var(--theme-bg-subtle, var(--accordion-active-bg));\n box-shadow: inset 0 calc(-1 * var(--accordion-border-width)) 0 var(--theme-border, var(--accordion-border-color));\n }\n .accordion-item[open] > .accordion-header .accordion-icon {\n transform: var(--accordion-btn-icon-transform);\n }\n .accordion-item[open]:last-of-type > .accordion-header {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .accordion-body {\n padding: var(--accordion-body-padding-y, var(--accordion-padding-y)) var(--accordion-body-padding-x, var(--accordion-padding-x));\n }\n .accordion-flush > .accordion-item {\n border-inline: 0;\n border-radius: 0;\n }\n .accordion-flush > .accordion-item:first-child {\n border-block-start: 0;\n }\n .accordion-flush > .accordion-item:last-child {\n border-block-end: 0;\n }\n .accordion-flush > .accordion-item > .accordion-header,\n .accordion-flush > .accordion-item > .accordion-body {\n border-radius: 0;\n }\n}\n@layer components {\n .alert {\n --alert-gap: var(--spacer-3);\n --alert-bg: var(--theme-bg-subtle, var(--bg-1));\n --alert-padding-x: var(--spacer);\n --alert-padding-y: var(--spacer);\n --alert-color: var(--theme-fg, inherit);\n --alert-border-color: var(--theme-border, var(--border-color));\n --alert-border: var(--border-width) solid var(--alert-border-color);\n --alert-border-radius: var(--radius-5);\n --alert-link-color: inherit;\n --hr-border-color: var(--theme-border, var(--border-color));\n display: flex;\n gap: var(--alert-gap);\n align-items: start;\n padding: var(--alert-padding-y) var(--alert-padding-x);\n color: var(--alert-color);\n background-color: var(--alert-bg);\n border: var(--alert-border);\n border-radius: var(--alert-border-radius);\n }\n .alert > p {\n margin-bottom: 0;\n }\n .alert-heading {\n color: inherit;\n }\n .alert-link {\n font-weight: var(--font-weight-semibold);\n color: var(--alert-link-color);\n }\n}\n@layer components {\n .avatar {\n --avatar-size: 2.5rem;\n --avatar-border-radius: 50%;\n --avatar-border-width: 2px;\n --avatar-border-color: var(--bg-body);\n --avatar-bg: var(--bg-2);\n --avatar-color: var(--fg-body);\n --avatar-status-size: 0.75rem;\n --avatar-status-border-width: 2px;\n --avatar-status-border-color: var(--bg-body);\n --avatar-stack-spacing: -0.3;\n --avatar-stack-transition: transform .2s ease-in-out;\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--avatar-size);\n height: var(--avatar-size);\n font-size: calc(var(--avatar-size) * 0.4);\n font-weight: var(--avatar-font-weight, var(--font-weight-medium));\n line-height: 1;\n color: var(--theme-contrast, var(--avatar-color));\n text-transform: uppercase;\n vertical-align: middle;\n background-color: var(--theme-bg, var(--avatar-bg));\n border-radius: var(--avatar-border-radius);\n }\n .avatar > .avatar-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .avatar-subtle {\n color: var(--theme-fg, var(--avatar-color));\n background-color: var(--theme-bg-subtle, var(--avatar-bg));\n }\n .avatar-img {\n border-radius: var(--avatar-border-radius, 50%);\n }\n .avatar-status {\n position: absolute;\n right: calc(var(--avatar-status-border-width) * -1);\n bottom: calc(var(--avatar-status-border-width) * -1);\n width: var(--avatar-status-size);\n height: var(--avatar-status-size);\n background-color: var(--gray-400);\n border: var(--avatar-status-border-width) solid var(--avatar-status-border-color);\n border-radius: 50%;\n }\n .avatar-status.status-online {\n background-color: var(--green-500);\n }\n .avatar-status.status-offline {\n background-color: var(--gray-400);\n border-radius: 20%;\n }\n .avatar-status.status-busy {\n background-color: var(--red-500);\n border-radius: 20%;\n }\n .avatar-status.status-away {\n background-color: var(--yellow-500);\n }\n .avatar-stack {\n display: inline-flex;\n flex-direction: row-reverse;\n }\n .avatar-stack .avatar {\n margin-left: calc(var(--avatar-size) * var(--avatar-stack-spacing));\n border: var(--avatar-border-width) solid var(--avatar-border-color);\n mask-image: none;\n transition: var(--avatar-stack-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .avatar-stack .avatar {\n transition: none;\n }\n }\n .avatar-stack .avatar:last-child {\n margin-left: 0;\n }\n .avatar-stack .avatar:hover {\n z-index: 1;\n transform: translateY(-2px);\n }\n .avatar-xs,\n .avatar-stack-xs > .avatar {\n --avatar-size: 1.5rem;\n --avatar-status-size: 0.625rem;\n }\n .avatar-sm,\n .avatar-stack-sm > .avatar {\n --avatar-size: 2rem;\n }\n .avatar-lg,\n .avatar-stack-lg > .avatar {\n --avatar-size: 3rem;\n --avatar-status-size: 1rem;\n --avatar-border-width: 3px;\n }\n .avatar-xl,\n .avatar-stack-xl > .avatar {\n --avatar-size: 4rem;\n --avatar-status-size: 1.25rem;\n --avatar-border-width: 4px;\n }\n}\n@layer components {\n .badge {\n --badge-padding-x: 0.625em;\n --badge-padding-y: 0.25em;\n --badge-font-size: clamp(12px, 0.75em, 0.75em);\n --badge-font-weight: var(--font-weight-semibold);\n --badge-color: inherit;\n --badge-bg: var(--bg-2);\n --badge-border-width: var(--border-width);\n --badge-border-color: transparent;\n --badge-border-radius: var(--radius-7);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 1.375rem;\n padding: var(--badge-padding-y) var(--badge-padding-x);\n font-size: var(--badge-font-size);\n font-weight: var(--badge-font-weight);\n line-height: 1;\n color: var(--theme-contrast, var(--badge-color));\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n background-color: var(--theme-bg, var(--badge-bg));\n border: var(--badge-border-width) solid var(--badge-border-color);\n border-radius: var(--badge-border-radius);\n }\n .badge:empty {\n display: none;\n }\n .btn .badge {\n position: relative;\n top: -1px;\n }\n .badge-subtle {\n --badge-color: var(--theme-fg);\n --badge-bg: var(--theme-bg-subtle);\n --badge-border-color: transparent;\n color: var(--badge-color);\n background-color: var(--badge-bg);\n border-color: var(--badge-border-color);\n }\n .badge-outline {\n --badge-color: var(--theme-fg);\n --badge-bg: transparent;\n --badge-border-color: var(--theme-border);\n color: var(--badge-color);\n background-color: var(--badge-bg);\n border-color: var(--badge-border-color);\n }\n}\n@layer components {\n .breadcrumb {\n --breadcrumb-margin-bottom: 1rem;\n --breadcrumb-font-size: inherit;\n --breadcrumb-bg: transparent;\n --breadcrumb-border-radius: var(--radius-5);\n --breadcrumb-divider-color: var(--fg-4);\n --breadcrumb-divider-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 16'%3e%3cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M2 2l4 6-4 6'/%3e%3c/svg%3e\");\n --breadcrumb-divider-width: 0.375rem;\n --breadcrumb-divider-height: 0.75rem;\n --breadcrumb-link-padding-x: 0.75rem;\n --breadcrumb-link-padding-y: 0.25rem;\n --breadcrumb-link-color: var(--fg-3);\n --breadcrumb-link-hover-color: var(--fg-2);\n --breadcrumb-link-hover-bg: var(--bg-1);\n --breadcrumb-link-active-color: var(--fg-1);\n --breadcrumb-link-border-radius: var(--radius-7);\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n padding: var(--breadcrumb-padding-y, 0) var(--breadcrumb-padding-x, 0);\n font-size: var(--breadcrumb-font-size);\n list-style: none;\n background-color: var(--breadcrumb-bg);\n border-radius: var(--breadcrumb-border-radius);\n }\n .breadcrumb-item {\n display: flex;\n }\n .breadcrumb-divider {\n margin-inline: calc(var(--breadcrumb-link-padding-x) / 4);\n color: var(--breadcrumb-divider-color);\n }\n .breadcrumb-divider:empty::before {\n display: block;\n width: var(--breadcrumb-divider-width);\n height: var(--breadcrumb-divider-height);\n content: \"\";\n background-color: currentcolor;\n mask-image: var(--breadcrumb-divider-icon);\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: contain;\n }\n .breadcrumb-link {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 2.25rem;\n padding: var(--breadcrumb-link-padding-y) var(--breadcrumb-link-padding-x);\n color: var(--breadcrumb-link-color);\n text-decoration: none;\n border-radius: var(--breadcrumb-link-border-radius);\n transition: 0.1s text-decoration-color ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .breadcrumb-link {\n transition: none;\n }\n }\n .breadcrumb-link:hover {\n z-index: 2;\n color: var(--breadcrumb-link-hover-color);\n background-color: var(--breadcrumb-link-hover-bg);\n }\n .breadcrumb-link.active {\n color: var(--breadcrumb-link-active-color);\n }\n}\n@layer components {\n .chip {\n --chip-height: 1.75rem;\n --chip-padding-x: 0.625rem;\n --chip-gap: 0.3125rem;\n --chip-border-radius: var(--radius-pill);\n --chip-img-size: 1.25rem;\n --chip-icon-size: 1rem;\n --chip-dismiss-size: 1rem;\n --chip-dismiss-opacity: 0.65;\n --chip-dismiss-hover-opacity: 1;\n --chip-color: var(--theme-fg, var(--fg-body));\n --chip-bg: var(--theme-bg-subtle, var(--bg-2));\n --chip-border-color: transparent;\n --chip-selected-color: var(--theme-contrast, var(--primary-contrast));\n --chip-selected-bg: var(--theme-bg, var(--primary-bg));\n --chip-selected-border-color: var(--theme-bg, var(--primary-bg));\n display: inline-flex;\n gap: var(--chip-gap);\n align-items: center;\n height: var(--chip-height);\n padding-inline: var(--chip-padding-x);\n font-size: var(--chip-font-size, var(--font-size-sm));\n font-weight: var(--chip-font-weight, var(--font-weight-base));\n line-height: var(--chip-line-height, 1.25rem);\n color: var(--chip-color);\n text-decoration: none;\n white-space: nowrap;\n vertical-align: middle;\n cursor: pointer;\n background-color: var(--chip-bg);\n border: var(--border-width) solid var(--chip-border-color);\n border-radius: var(--chip-border-radius);\n }\n .chip:hover {\n --chip-bg: var(--theme-bg-muted, var(--bg-3));\n }\n .chip:focus-visible {\n outline: 0;\n }\n .chip.active {\n --chip-color: var(--chip-selected-color);\n --chip-bg: var(--chip-selected-bg);\n --chip-border-color: var(--chip-selected-border-color);\n }\n .chip.active:hover {\n --chip-bg: var(--chip-selected-bg);\n opacity: 0.9;\n }\n .chip.disabled, .chip:disabled {\n pointer-events: none;\n opacity: 0.65;\n }\n .chip-img {\n width: var(--chip-img-size);\n height: var(--chip-img-size);\n border-radius: 50%;\n }\n .chip-img:first-child {\n margin-inline-start: -0.375rem;\n }\n .chip-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n margin-inline-start: calc(var(--chip-gap) * -0.25);\n }\n .chip-icon > svg {\n display: block;\n width: var(--chip-icon-size);\n height: var(--chip-icon-size);\n }\n .chip-icon > img {\n width: var(--chip-icon-size);\n height: var(--chip-icon-size);\n object-fit: cover;\n border-radius: 50%;\n }\n .chip-dismiss {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--chip-min-height);\n height: var(--chip-min-height);\n padding: 0;\n margin-inline-end: calc(var(--chip-padding-x) * -0.25);\n color: inherit;\n cursor: pointer;\n background: transparent;\n border: 0;\n opacity: var(--chip-dismiss-opacity);\n }\n .chip-dismiss:hover {\n opacity: var(--chip-dismiss-hover-opacity);\n }\n .chip-dismiss:focus-visible {\n outline: 0;\n opacity: 1;\n outline: var(--focus-ring);\n }\n .chip-dismiss > svg {\n display: block;\n width: var(--chip-dismiss-size);\n height: var(--chip-dismiss-size);\n }\n}\n@layer components {\n .card {\n --card-spacer-y: var(--spacer-5);\n --card-spacer-x: var(--spacer-5);\n --card-subtitle-color: inherit;\n --card-border-width: var(--border-width);\n --card-border-color: var(--border-color-translucent);\n --card-border-radius: var(--radius-7);\n --card-box-shadow: none;\n --card-inner-border-radius: calc(var(--radius-7) - var(--border-width));\n --card-cap-padding-y: var(--spacer-3);\n --card-cap-padding-x: var(--spacer);\n --card-cap-bg: var(--bg-1);\n --card-cap-color: inherit;\n --card-height: auto;\n --card-color: inherit;\n --card-bg: var(--bg-body);\n --card-img-overlay-padding: var(--card-spacer-y);\n --card-group-margin: 0.75rem;\n --card-body-gap: calc(var(--card-spacer-y) * 0.5);\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n height: var(--card-height);\n color: var(--fg-body);\n word-wrap: break-word;\n background-color: var(--card-bg);\n border-radius: var(--card-border-radius);\n box-shadow: var(--card-box-shadow);\n }\n .card > hr {\n margin-inline: 0;\n }\n .card-body {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n gap: var(--card-body-gap);\n align-items: flex-start;\n padding: var(--card-spacer-y) var(--card-spacer-x);\n color: var(--card-color);\n border: solid var(--theme-bg, var(--card-border-color));\n border-width: 0 var(--card-border-width);\n }\n .card-body > * {\n margin-block: 0;\n }\n .card-body,\n .card-list {\n border: solid var(--theme-bg, var(--card-border-color));\n border-width: 0 var(--card-border-width);\n }\n .card-body:first-child,\n .card-list:first-child {\n border-start-start-radius: var(--card-border-radius);\n border-start-end-radius: var(--card-border-radius);\n border-top-width: var(--card-border-width);\n }\n .card-body:last-child,\n .card-list:last-child {\n border-end-start-radius: var(--card-border-radius);\n border-end-end-radius: var(--card-border-radius);\n border-bottom-width: var(--card-border-width);\n }\n .card-body:not(:first-child, :last-child),\n .card-list:not(:first-child, :last-child) {\n border-block-end-width: var(--card-border-width);\n }\n .card-title,\n .card-subtitle,\n .card-text {\n align-self: stretch;\n }\n .card-subtitle {\n margin-top: calc(var(--card-body-gap) * -0.5);\n }\n .card-header {\n padding: var(--card-cap-padding-y) var(--card-cap-padding-x);\n margin-bottom: 0;\n color: var(--theme-contrast, var(--card-cap-color));\n background-color: var(--theme-bg, var(--card-cap-bg));\n border: var(--card-border-width) solid var(--theme-bg, var(--card-border-color));\n }\n .card-header:first-child {\n border-radius: var(--card-inner-border-radius) var(--card-inner-border-radius) 0 0;\n }\n .card-footer {\n padding: var(--card-cap-padding-y) var(--card-cap-padding-x);\n color: var(--card-cap-color);\n background-color: var(--theme-bg, var(--card-cap-bg));\n border: var(--card-border-width) solid var(--theme-bg, var(--card-border-color));\n }\n .card-footer:last-child {\n border-radius: 0 0 var(--card-inner-border-radius) var(--card-inner-border-radius);\n }\n .card-translucent {\n background-color: color-mix(in oklch, var(--card-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n .card-translucent .card-header,\n .card-translucent .card-footer {\n background-color: color-mix(in oklch, var(--card-cap-bg) 60%, transparent);\n }\n .card-subtle {\n border-color: var(--theme-border, var(--card-border-color));\n }\n .card-subtle .card-header {\n color: var(--theme-fg-emphasis, currentcolor);\n background-color: var(--theme-bg-subtle, var(--card-cap-bg));\n border-color: var(--theme-border, var(--card-border-color));\n }\n .card-subtle .card-footer {\n color: var(--theme-fg-emphasis, currentcolor);\n background-color: var(--theme-bg-subtle, var(--card-cap-bg));\n border-color: var(--theme-border, var(--card-border-color));\n }\n .card-subtle .card-body,\n .card-subtle .card-list {\n border-color: var(--theme-border, var(--card-border-color));\n }\n .nav.card-header-tabs {\n margin-inline: calc(-0.5 * var(--card-cap-padding-x));\n margin-bottom: calc(-1 * var(--card-cap-padding-y));\n border-block-end: 0;\n }\n .nav.card-header-tabs .nav-link.active {\n background-color: var(--card-bg);\n border-block-end-color: var(--card-bg);\n }\n .card-img-overlay {\n position: absolute;\n inset: 0;\n padding: var(--card-img-overlay-padding);\n border-radius: var(--card-inner-border-radius);\n }\n .card-img,\n .card-img-top,\n .card-img-bottom {\n width: 100%;\n outline: var(--card-border-width) solid var(--card-border-color);\n outline-offset: calc(var(--card-border-width) * -1);\n }\n .card-img,\n .card-img-top {\n border-start-start-radius: var(--card-inner-border-radius);\n border-start-end-radius: var(--card-inner-border-radius);\n }\n .card-img,\n .card-img-bottom {\n border-end-start-radius: var(--card-inner-border-radius);\n border-end-end-radius: var(--card-inner-border-radius);\n }\n .card-row {\n flex-direction: row;\n }\n .card-row .card-body,\n .card-row .card-list {\n border-width: var(--card-border-width) 0;\n border-radius: 0;\n }\n .card-row .card-body:first-child,\n .card-row .card-list:first-child {\n border-start-start-radius: var(--card-inner-border-radius);\n border-end-start-radius: var(--card-inner-border-radius);\n border-inline-start-width: var(--card-border-width);\n }\n .card-row .card-body:last-child,\n .card-row .card-list:last-child {\n border-start-end-radius: var(--card-inner-border-radius);\n border-end-end-radius: var(--card-inner-border-radius);\n border-inline-end-width: var(--card-border-width);\n }\n .card-row .card-body:not(:first-child, :last-child),\n .card-row .card-list:not(:first-child, :last-child) {\n border-inline-end-width: var(--card-border-width);\n }\n .card-img-start {\n border-start-start-radius: var(--card-inner-border-radius);\n border-end-start-radius: var(--card-inner-border-radius);\n }\n .card-img-end {\n border-start-end-radius: var(--card-inner-border-radius);\n border-end-end-radius: var(--card-inner-border-radius);\n }\n .card-group > .card {\n margin-bottom: var(--card-group-margin);\n }\n @media (width >= 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-inline-start: 0;\n border-inline-start: 0;\n }\n .card-group > .card:not(:last-child) {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .card-group > .card:not(:last-child) > .card-img-top,\n .card-group > .card:not(:last-child) > .card-header,\n .card-group > .card:not(:last-child) > .card-body {\n border-start-end-radius: 0;\n }\n .card-group > .card:not(:last-child) > .card-img-bottom,\n .card-group > .card:not(:last-child) > .card-footer,\n .card-group > .card:not(:last-child) > .card-body {\n border-end-end-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .card-group > .card:not(:first-child) > .card-img-top,\n .card-group > .card:not(:first-child) > .card-header,\n .card-group > .card:not(:first-child) > .card-body {\n border-start-start-radius: 0;\n }\n .card-group > .card:not(:first-child) > .card-img-bottom,\n .card-group > .card:not(:first-child) > .card-footer,\n .card-group > .card:not(:first-child) > .card-body {\n border-end-start-radius: 0;\n }\n }\n}\n@layer components {\n .carousel {\n --carousel-gap: 0.75rem;\n --carousel-indicator-bg: var(--fg-3);\n --carousel-indicator-width: 0.75rem;\n --carousel-indicator-height: 0.75rem;\n --carousel-indicator-spacer: 0.25rem;\n --carousel-indicator-transition: opacity .6s ease, width .3s ease;\n --carousel-indicator-progress-bg: var(--carousel-indicator-bg);\n --carousel-control-icon-width: 1rem;\n --carousel-control-prev-icon: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/></svg>\");\n --carousel-control-next-icon: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/></svg>\");\n --carousel-control-pause-icon: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M5.5 3.5A1.5 1.5 0 0 1 7 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5m5 0A1.5 1.5 0 0 1 12 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5'/></svg>\");\n --carousel-control-play-icon: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='m11.596 8.697-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393z'/></svg>\");\n --carousel-items: 1;\n --carousel-items-gap: 0px;\n --carousel-items-peek: 0px;\n --carousel-fade-duration: 0.6s;\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--carousel-gap);\n }\n .carousel-inner {\n display: flex;\n gap: var(--carousel-items-gap);\n width: 100%;\n padding-inline: var(--carousel-items-peek);\n overflow-x: auto;\n overscroll-behavior-x: contain;\n scroll-snap-type: x mandatory;\n scroll-padding-inline: var(--carousel-items-peek);\n scrollbar-width: none;\n }\n .carousel-inner::-webkit-scrollbar {\n display: none;\n }\n @media (prefers-reduced-motion: no-preference) {\n .carousel-inner {\n scroll-behavior: smooth;\n }\n }\n .carousel-item {\n flex: 0 0 calc((100% - (var(--carousel-items) - 1) * var(--carousel-items-gap)) / var(--carousel-items));\n min-width: 0;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n }\n .carousel-center .carousel-item {\n scroll-snap-align: center;\n }\n .carousel-auto .carousel-item {\n flex-basis: auto;\n }\n .carousel-fade .carousel-inner {\n display: grid;\n overflow: hidden;\n scroll-snap-type: none;\n }\n .carousel-fade .carousel-item {\n grid-area: 1/1;\n width: 100%;\n visibility: hidden;\n opacity: 0;\n transition: opacity var(--carousel-fade-duration) ease, visibility 0s linear var(--carousel-fade-duration);\n }\n @media (prefers-reduced-motion: reduce) {\n .carousel-fade .carousel-item {\n transition: none;\n }\n }\n .carousel-fade .carousel-item.active {\n visibility: visible;\n opacity: 1;\n transition: opacity var(--carousel-fade-duration) ease;\n }\n @media (prefers-reduced-motion: reduce) {\n .carousel-fade .carousel-item.active {\n transition: none;\n }\n }\n .carousel-icon-prev,\n .carousel-icon-next,\n .carousel-icon-pause,\n .carousel-icon-play {\n display: inline-block;\n width: var(--carousel-control-icon-width);\n height: var(--carousel-control-icon-width);\n background-color: currentcolor;\n mask-repeat: no-repeat;\n mask-position: 50%;\n mask-size: 100% 100%;\n }\n .carousel-icon-prev {\n mask-image: var(--carousel-control-prev-icon);\n }\n .carousel-icon-next {\n mask-image: var(--carousel-control-next-icon);\n }\n [dir=rtl] .carousel-icon-prev,\n [dir=rtl] .carousel-icon-next {\n transform: scaleX(-1);\n }\n .carousel-icon-pause {\n mask-image: var(--carousel-control-pause-icon);\n }\n .carousel-icon-play {\n mask-image: var(--carousel-control-play-icon);\n }\n .carousel-control-play-pause .carousel-icon-play {\n display: none;\n }\n .carousel-control-play-pause.paused .carousel-icon-pause {\n display: none;\n }\n .carousel-control-play-pause.paused .carousel-icon-play {\n display: inline-block;\n }\n .carousel-indicators {\n display: flex;\n gap: var(--carousel-indicator-spacer);\n justify-content: center;\n }\n .carousel-indicators [data-bs-target] {\n flex: 0 1 auto;\n width: var(--carousel-indicator-width);\n height: var(--carousel-indicator-height);\n padding: 0;\n cursor: pointer;\n background-color: transparent;\n border: 1px solid var(--carousel-indicator-bg);\n border-radius: var(--carousel-indicator-width);\n transition: var(--carousel-indicator-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .carousel-indicators [data-bs-target] {\n transition: none;\n }\n }\n .carousel-indicators .active {\n width: calc(var(--carousel-indicator-width) * 2.5);\n background-color: var(--carousel-indicator-bg);\n border-color: var(--carousel-indicator-bg);\n }\n @keyframes carousel-indicator-progress {\n from {\n inline-size: 0;\n }\n to {\n inline-size: 100%;\n }\n }\n @media (prefers-reduced-motion: no-preference) {\n .carousel-playing .carousel-indicators .active {\n position: relative;\n overflow: hidden;\n background-color: transparent;\n }\n .carousel-playing .carousel-indicators .active::after {\n position: absolute;\n inset-block: 0;\n inset-inline-start: 0;\n inline-size: 0;\n content: \"\";\n background-color: var(--carousel-indicator-progress-bg);\n animation: carousel-indicator-progress var(--carousel-interval, 5000ms) linear forwards;\n }\n }\n .carousel-overlay {\n --carousel-indicator-bg: light-dark(var(--white), var(--black));\n }\n .carousel-overlay .carousel-overlay-controls {\n position: absolute;\n inset-block-end: 1rem;\n inset-inline: 1rem;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n}\n@layer components {\n [data-vc=calendar] {\n --datepicker-padding: 1rem;\n --datepicker-bg: var(--bg-body);\n --datepicker-color: var(--fg-body);\n --datepicker-border-color: var(--border-color-translucent);\n --datepicker-border-width: var(--border-width);\n --datepicker-border-radius: var(--radius-7);\n --datepicker-box-shadow: var(--box-shadow);\n --datepicker-font-size: var(--font-size-sm);\n --datepicker-min-width: 280px;\n --datepicker-zindex: 1000;\n --datepicker-header-font-weight: 600;\n --datepicker-weekday-color: var(--fg-3);\n --datepicker-day-hover-bg: var(--bg-1);\n --datepicker-day-selected-bg: var(--primary-bg);\n --datepicker-day-selected-color: var(--primary-contrast);\n --datepicker-day-today-bg: var(--bg-2);\n --datepicker-day-today-color: var(--fg-1);\n --datepicker-day-disabled-color: var(--fg-4);\n position: absolute;\n z-index: var(--datepicker-zindex);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n min-width: var(--datepicker-min-width);\n padding: var(--datepicker-padding);\n font-family: var(--font-sans-serif);\n font-size: var(--datepicker-font-size);\n color: var(--datepicker-color);\n color-scheme: light dark;\n background-color: var(--datepicker-bg);\n border: var(--datepicker-border-width) solid var(--datepicker-border-color);\n box-shadow: var(--datepicker-box-shadow);\n opacity: 1;\n border-radius: var(--datepicker-border-radius);\n }\n [data-vc=calendar][data-bs-theme=light] {\n color-scheme: light;\n }\n [data-vc=calendar][data-bs-theme=dark] {\n color-scheme: dark;\n }\n [data-vc=calendar] button:focus-visible {\n position: relative;\n z-index: 1;\n outline: var(--focus-ring);\n }\n [data-vc-calendar-hidden] {\n pointer-events: none;\n opacity: 0;\n }\n [data-vc=calendar]:not([data-vc-input]) {\n position: relative;\n width: fit-content;\n padding: 0;\n border: 0;\n box-shadow: none;\n }\n [data-vc-position=bottom] {\n margin-block-start: 0.25rem;\n }\n [data-vc-position=top] {\n margin-block-end: -0.25rem;\n }\n [data-vc-arrow] {\n position: relative;\n display: block;\n width: 2rem;\n height: 2rem;\n color: var(--datepicker-color);\n pointer-events: auto;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n }\n [data-vc-arrow]::before {\n position: absolute;\n inset: 0.25rem;\n content: \"\";\n background-color: var(--datepicker-color);\n mask-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 16c-.3 0-.5-.1-.7-.3l-6-6c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l5.3 5.3 5.3-5.3c.4-.4 1-.4 1.4 0s.4 1 0 1.4l-6 6c-.2.2-.4.3-.7.3'/></svg>\");\n mask-repeat: no-repeat;\n mask-position: center;\n }\n [data-vc-arrow]:hover {\n background-color: var(--datepicker-day-hover-bg);\n }\n [data-vc-arrow=prev]::before {\n transform: rotate(90deg);\n }\n [data-vc-arrow=next]::before {\n transform: rotate(-90deg);\n }\n [data-vc=controls] {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 20;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: 1rem;\n padding-right: 1rem;\n padding-left: 1rem;\n pointer-events: none;\n }\n [data-vc=grid] {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n gap: 1.75rem;\n }\n [data-vc=column] {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n min-width: 240px;\n }\n [data-vc=header] {\n position: relative;\n display: flex;\n align-items: center;\n margin-bottom: 0.75rem;\n }\n [data-vc-header=content] {\n display: inline-flex;\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n white-space: pre-wrap;\n }\n [data-vc=month],\n [data-vc=year] {\n padding: 0.25rem 0.5rem;\n margin-inline: -0.125rem;\n font-size: 1rem;\n font-weight: var(--datepicker-header-font-weight);\n color: var(--datepicker-color);\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n }\n [data-vc=month]:disabled,\n [data-vc=year]:disabled {\n color: var(--datepicker-day-disabled-color);\n pointer-events: none;\n }\n [data-vc=month]:hover:not(:disabled),\n [data-vc=year]:hover:not(:disabled) {\n background-color: var(--datepicker-day-hover-bg);\n }\n [data-vc=content] {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n }\n [data-vc=months],\n [data-vc=years] {\n display: grid;\n flex-grow: 1;\n grid-template-columns: repeat(var(--vc-columns, 4), minmax(0, 1fr));\n row-gap: 1rem;\n column-gap: 0.25rem;\n align-items: center;\n }\n [data-vc=years] {\n --vc-columns: 5;\n }\n [data-vc-months-month],\n [data-vc-years-year] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 2.5rem;\n padding: 0.25rem;\n font-size: 0.75rem;\n font-weight: 600;\n line-height: 1rem;\n color: var(--datepicker-weekday-color);\n text-align: center;\n word-break: break-all;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n }\n [data-vc-months-month]:disabled,\n [data-vc-years-year]:disabled {\n color: var(--datepicker-day-disabled-color);\n pointer-events: none;\n }\n [data-vc-months-month]:hover:not(:disabled),\n [data-vc-years-year]:hover:not(:disabled) {\n background-color: var(--datepicker-day-hover-bg);\n }\n [data-vc-months-month][data-vc-months-month-selected], [data-vc-months-month][data-vc-years-year-selected],\n [data-vc-years-year][data-vc-months-month-selected],\n [data-vc-years-year][data-vc-years-year-selected] {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n }\n [data-vc-months-month][data-vc-months-month-selected]:hover, [data-vc-months-month][data-vc-years-year-selected]:hover,\n [data-vc-years-year][data-vc-months-month-selected]:hover,\n [data-vc-years-year][data-vc-years-year-selected]:hover {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n }\n [data-vc=week] {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n justify-items: center;\n margin-bottom: 0.5rem;\n }\n [data-vc-week-day] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 1.875rem;\n padding: 0;\n margin: 0;\n font-size: 0.75rem;\n font-weight: 600;\n line-height: 1rem;\n color: var(--datepicker-weekday-color);\n background-color: transparent;\n border: 0;\n }\n button[data-vc-week-day] {\n cursor: pointer;\n }\n [data-vc=dates] {\n pointer-events: none;\n }\n [data-vc-dates=row] {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n align-items: center;\n justify-items: center;\n width: 100%;\n }\n [data-vc-date] {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n pointer-events: auto;\n }\n [data-vc-date]:not(:has([data-vc-date-btn])), [data-vc-date][data-vc-date-disabled], [data-vc-date][data-vc-date-disabled] [data-vc-date-btn] {\n pointer-events: none;\n }\n [data-vc-date-btn] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 1.875rem;\n height: 100%;\n min-height: 1.875rem;\n padding: 0;\n font-size: 0.75rem;\n font-weight: 400;\n line-height: 1rem;\n color: var(--datepicker-color);\n cursor: pointer;\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n }\n [data-vc-date-btn]:hover {\n background-color: var(--datepicker-day-hover-bg);\n }\n [data-vc-date-today] [data-vc-date-btn] {\n font-weight: 600;\n color: var(--datepicker-day-today-color);\n background-color: var(--datepicker-day-today-bg);\n }\n [data-vc-date-month=next] [data-vc-date-btn],\n [data-vc-date-month=prev] [data-vc-date-btn] {\n opacity: 0.5;\n }\n [data-vc-date-disabled] [data-vc-date-btn] {\n color: var(--datepicker-day-disabled-color);\n }\n [data-vc-date-hover] [data-vc-date-btn] {\n background-color: var(--datepicker-day-hover-bg);\n border-radius: 0;\n }\n [data-vc-date-hover=first] [data-vc-date-btn] {\n border-start-start-radius: var(--radius-5);\n border-end-start-radius: var(--radius-5);\n }\n [data-vc-date-hover=last] [data-vc-date-btn] {\n border-start-end-radius: var(--radius-5);\n border-end-end-radius: var(--radius-5);\n }\n [data-vc-date-hover=first-and-last] [data-vc-date-btn] {\n border-radius: var(--radius-5);\n }\n [data-vc-date-selected=middle] [data-vc-date-btn] {\n border-radius: 0;\n opacity: 0.8;\n }\n [data-vc-date-selected] [data-vc-date-btn] {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n }\n [data-vc-date-selected=first] [data-vc-date-btn] {\n border-top-left-radius: var(--radius-5);\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: var(--radius-5);\n }\n [data-vc-date-selected=last] [data-vc-date-btn] {\n border-top-left-radius: 0;\n border-top-right-radius: var(--radius-5);\n border-bottom-right-radius: var(--radius-5);\n border-bottom-left-radius: 0;\n }\n [data-vc-date-selected=first-and-last] [data-vc-date-btn] {\n border-radius: var(--radius-5);\n }\n}\n@layer components {\n .dialog-open {\n overflow: hidden;\n }\n .dialog {\n --dialog-padding: 1rem;\n --dialog-width: 500px;\n --dialog-margin: 1.75rem;\n --dialog-color: var(--fg-body);\n --dialog-bg: var(--bg-body);\n --dialog-border-color: var(--border-color-translucent);\n --dialog-border-width: var(--border-width);\n --dialog-border-radius: var(--radius-7);\n --dialog-box-shadow: var(--box-shadow-lg);\n --dialog-transition-duration: 0.3s;\n --dialog-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --dialog-backdrop-bg: rgba(0, 0, 0, 0.5);\n --dialog-backdrop-blur: 8px;\n --dialog-header-padding: 1rem;\n --dialog-header-border-color: var(--border-color);\n --dialog-header-border-width: var(--border-width);\n --dialog-footer-padding: 1rem;\n --dialog-footer-border-color: var(--border-color);\n --dialog-footer-border-width: var(--border-width);\n --dialog-footer-gap: 0.5rem;\n display: flex;\n flex-direction: column;\n width: var(--dialog-width);\n max-width: calc(100% - var(--dialog-margin) * 2);\n max-height: calc(100% - var(--dialog-margin) * 2);\n padding: 0;\n margin: auto;\n overflow: visible;\n color: var(--dialog-color);\n visibility: hidden;\n background-color: var(--dialog-bg);\n background-clip: padding-box;\n border: var(--dialog-border-width) solid var(--dialog-border-color);\n border-radius: var(--dialog-border-radius);\n box-shadow: var(--dialog-box-shadow);\n }\n .dialog:not(.dialog-instant) {\n opacity: 0;\n transition: opacity var(--dialog-transition-duration) var(--dialog-transition-timing), transform var(--dialog-transition-duration) var(--dialog-transition-timing), visibility 0s var(--dialog-transition-duration);\n }\n @media (prefers-reduced-motion: reduce) {\n .dialog:not(.dialog-instant) {\n transition: none;\n }\n }\n .dialog:not(.dialog-instant).dialog-slide-down {\n transform: translateY(-3rem);\n }\n .dialog:not(.dialog-instant).dialog-slide-up {\n transform: translateY(3rem);\n }\n .dialog:not(.dialog-instant)[open]:not(.hiding) {\n overflow: visible;\n visibility: visible;\n opacity: 1;\n transition: opacity var(--dialog-transition-duration) var(--dialog-transition-timing), transform var(--dialog-transition-duration) var(--dialog-transition-timing), visibility 0s;\n }\n @media (prefers-reduced-motion: reduce) {\n .dialog:not(.dialog-instant)[open]:not(.hiding) {\n transition: none;\n }\n }\n .dialog:not(.dialog-instant)[open]:not(.hiding) {\n transform: none;\n }\n .dialog:not(.dialog-instant)[open].dialog-static:not(.hiding) {\n transform: scale(1.02);\n }\n .dialog:not(.dialog-instant)::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n transition: background-color var(--dialog-transition-duration) var(--dialog-transition-timing), backdrop-filter var(--dialog-transition-duration) var(--dialog-transition-timing), display var(--dialog-transition-duration) allow-discrete, overlay var(--dialog-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .dialog:not(.dialog-instant)::backdrop {\n transition: none;\n }\n }\n .dialog:not(.dialog-instant).hiding::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .dialog.dialog-instant::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n }\n .dialog[open]:not(.hiding) {\n overflow: visible;\n visibility: visible;\n opacity: 1;\n transform: none;\n }\n .dialog.dialog-nonmodal {\n position: fixed;\n inset-block-start: 50%;\n inset-inline-start: 50%;\n z-index: 1055;\n margin-inline: 0;\n transform: translate(-50%, -50%);\n }\n .dialog.dialog-scrollable[open] {\n max-height: calc(100% - var(--dialog-margin) * 2);\n }\n .dialog.dialog-scrollable[open] .dialog-body {\n overflow-y: auto;\n }\n @starting-style {\n .dialog:not(.dialog-instant)::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .dialog.dialog-swap-in:not(.dialog-instant)::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n }\n }\n .dialog-sm {\n --dialog-width: 280px;\n }\n .dialog-lg {\n --dialog-width: 800px;\n }\n .dialog-xl {\n --dialog-width: 1140px;\n }\n .dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n @media (width < 576px) {\n .sm-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n @media (width < 768px) {\n .md-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n @media (width < 1024px) {\n .lg-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n @media (width < 1280px) {\n .xl-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n @media (width < 1536px) {\n .\\32 xl-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n .dialog-header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n padding: var(--dialog-header-padding);\n border-block-end: var(--dialog-header-border-width) solid var(--dialog-header-border-color);\n }\n .dialog-header .btn-close {\n margin-inline-start: auto;\n }\n .dialog-title {\n margin-bottom: 0;\n line-height: 1.5;\n font-size: var(--font-size-md);\n }\n .dialog-body {\n position: relative;\n flex: 1 1 auto;\n padding: var(--dialog-padding);\n }\n .dialog-footer {\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n gap: var(--dialog-footer-gap);\n align-items: center;\n justify-content: flex-end;\n padding: var(--dialog-footer-padding);\n border-block-start: var(--dialog-footer-border-width) solid var(--dialog-footer-border-color);\n }\n}\n@layer components {\n .menu {\n --menu-zindex: 1000;\n --menu-gap: 0.125rem;\n --menu-min-width: 10rem;\n --menu-padding-x: 0.25rem;\n --menu-padding-y: 0.25rem;\n --menu-spacer: 0.125rem;\n --menu-font-size: var(--font-size-sm);\n --menu-color: var(--fg-body);\n --menu-bg: var(--bg-body);\n --menu-box-shadow: var(--box-shadow);\n --menu-divider-bg: var(--border-color-translucent);\n --menu-divider-margin-y: 0.125rem;\n --menu-divider-margin-x: 0.25rem;\n --menu-item-color: var(--menu-color, var(--fg-body));\n --menu-item-hover-color: var(--menu-color, var(--fg-body));\n --menu-item-hover-bg: var(--bg-1);\n --menu-item-active-color: var(--primary-contrast);\n --menu-item-active-bg: var(--primary-bg);\n --menu-item-disabled-color: var(--fg-3);\n --menu-item-gap: 0.5rem;\n --menu-item-padding-x: 0.75rem;\n --menu-item-padding-y: 0.25rem;\n --menu-item-border-radius: var(--radius-5);\n --menu-icon-size: 1rem;\n --menu-description-font-size: var(--font-size-xs);\n --menu-check-color: currentcolor;\n --menu-header-color: var(--fg-3);\n --menu-header-padding-x: 0.75rem;\n --menu-header-padding-y: 0.25rem;\n --menu-transition-duration: 0.15s;\n --menu-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n position: absolute;\n z-index: var(--menu-zindex);\n display: none;\n flex-direction: column;\n gap: var(--menu-gap);\n min-width: var(--menu-min-width);\n max-height: var(--menu-max-height, none);\n padding: var(--menu-padding-y) var(--menu-padding-x);\n margin: 0;\n overflow-y: var(--menu-overflow-y, initial);\n overscroll-behavior: contain;\n font-size: var(--menu-font-size);\n color: var(--menu-color);\n text-align: start;\n list-style: none;\n background-color: var(--menu-bg);\n background-clip: padding-box;\n border: var(--menu-border-width, var(--border-width)) solid var(--menu-border-color, var(--border-color-translucent));\n border-radius: var(--menu-border-radius, var(--radius-7));\n box-shadow: var(--menu-box-shadow);\n opacity: 0;\n transform: scale(0.95);\n transform-origin: top start;\n }\n .menu[data-bs-placement^=top] {\n transform-origin: bottom start;\n }\n .menu[data-bs-placement=bottom-end] {\n transform-origin: top end;\n }\n .menu[data-bs-placement=top-end] {\n transform-origin: bottom end;\n }\n .menu[data-bs-placement^=left] {\n transform-origin: top end;\n }\n .menu {\n transition: opacity var(--menu-transition-duration) var(--menu-transition-timing), transform var(--menu-transition-duration) var(--menu-transition-timing), display var(--menu-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .menu {\n transition: none;\n }\n }\n .menu.show {\n display: flex;\n opacity: 1;\n transform: none;\n }\n @starting-style {\n .menu.show {\n opacity: 0;\n transform: scale(0.95);\n }\n }\n .menu-scrollable {\n --menu-max-height: 80dvh;\n --menu-overflow-y: auto;\n }\n .menu-translucent {\n --menu-item-hover-bg-light: color-mix(in oklch, var(--bg-1) 90%, transparent);\n --menu-item-hover-bg-dark: color-mix(in oklch, var(--bg-1) 80%, transparent);\n --menu-item-active-bg-light: color-mix(in oklch, var(--primary-bg) 80%, transparent);\n --menu-item-active-bg-dark: color-mix(in oklch, var(--primary-bg) 70%, transparent);\n --menu-item-active-bg: light-dark(var(--menu-item-active-bg-light), var(--menu-item-active-bg-dark));\n --menu-item-hover-bg: light-dark(var(--menu-item-hover-bg-light), var(--menu-item-hover-bg-dark));\n background-color: color-mix(in oklch, var(--menu-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n .menu-divider {\n height: 0;\n margin: var(--menu-divider-margin-y) var(--menu-divider-margin-x);\n overflow: hidden;\n border-block-start: 1px solid var(--menu-divider-bg);\n opacity: 1;\n }\n .menu-item {\n display: flex;\n gap: var(--menu-item-gap);\n align-items: center;\n width: 100%;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n font-weight: var(--menu-item-font-weight, var(--font-weight-normal));\n color: var(--theme-fg, var(--menu-item-color));\n text-align: inherit;\n text-decoration: none;\n white-space: nowrap;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n outline: 0;\n border-radius: var(--menu-item-border-radius, 0);\n }\n .menu-item:hover, .menu-item:focus {\n color: var(--theme-fg-emphasis, var(--menu-item-hover-color));\n background-color: var(--theme-bg-subtle, var(--menu-item-hover-bg));\n }\n .menu-item.active, .menu-item:active {\n color: var(--theme-contrast, var(--menu-item-active-color));\n background-color: var(--theme-bg, var(--menu-item-active-bg));\n }\n .menu-item.active .menu-item-icon, .menu-item:active .menu-item-icon {\n color: inherit !important;\n }\n .menu-item.selected {\n font-weight: 600;\n }\n .menu-item.disabled, .menu-item:disabled {\n color: var(--menu-item-disabled-color);\n pointer-events: none;\n background-color: transparent;\n background-image: none;\n }\n .menu-item-icon {\n flex-shrink: 0;\n align-self: flex-start;\n width: var(--menu-icon-size);\n height: auto;\n margin-top: 0.125rem;\n }\n .menu-item-content {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-width: fit-content;\n }\n .menu-item-description {\n font-size: var(--menu-description-font-size);\n font-weight: var(--font-weight-normal);\n color: color-mix(in oklch, currentcolor 65%, transparent);\n }\n .menu-item-check {\n flex-shrink: 0;\n align-self: flex-start;\n margin-block-start: 0.125rem;\n margin-inline-start: auto;\n color: var(--menu-check-color);\n visibility: hidden;\n }\n .selected > .menu-item-check {\n visibility: visible;\n }\n .menu-header {\n display: block;\n padding: var(--menu-header-padding-y) var(--menu-header-padding-x);\n margin-bottom: 0;\n font-size: var(--font-size-sm);\n color: var(--menu-header-color);\n white-space: nowrap;\n }\n .menu-text {\n display: block;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n color: var(--fg-2);\n }\n .submenu {\n position: relative;\n }\n .submenu > .menu-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .submenu > .menu-item::after {\n display: inline-block;\n flex-shrink: 0;\n width: 0.375em;\n height: 0.375em;\n margin-inline-start: auto;\n content: \"\";\n border-color: currentcolor;\n border-style: solid;\n border-width: 0 0.125em 0.125em 0;\n transform: rotate(-45deg);\n }\n [dir=rtl] .submenu > .menu-item::after {\n transform: rotate(135deg);\n }\n .submenu > .menu {\n top: 0;\n margin-top: calc(-1 * var(--menu-padding-y));\n }\n .submenu:hover > .menu-item, .submenu:focus-within > .menu-item {\n color: var(--menu-item-hover-color);\n background-color: var(--menu-item-hover-bg);\n }\n .submenu.show > .menu-item {\n color: var(--menu-item-hover-color);\n background-color: var(--menu-item-hover-bg);\n }\n}\n@layer components {\n .list-group {\n --list-group-color: var(--fg-body);\n --list-group-bg: var(--bg-body);\n --list-group-border-color: var(--border-color);\n --list-group-border-width: var(--border-width);\n --list-group-border-radius: var(--radius-5);\n --list-group-item-padding-x: var(--spacer);\n --list-group-item-padding-y: var(--spacer-2);\n --list-group-action-color: var(--fg-2);\n --list-group-action-hover-color: var(--fg-1);\n --list-group-action-hover-bg: var(--bg-1);\n --list-group-action-active-color: var(--fg-body);\n --list-group-action-active-bg: var(--bg-2);\n --list-group-disabled-color: var(--fg-3);\n --list-group-disabled-bg: var(--bg-body);\n --list-group-active-color: var(--primary-contrast);\n --list-group-active-bg: var(--primary-bg);\n --list-group-active-border-color: var(--primary-bg);\n display: flex;\n flex-direction: column;\n padding-inline-start: 0;\n margin-bottom: 0;\n border-radius: var(--list-group-border-radius);\n }\n .list-group-numbered {\n list-style-type: none;\n counter-reset: section;\n }\n .list-group-numbered > .list-group-item::before {\n content: counters(section, \".\") \". \";\n counter-increment: section;\n }\n .list-group-item {\n position: relative;\n display: block;\n padding: var(--list-group-item-padding-y) var(--list-group-item-padding-x);\n color: var(--theme-fg, var(--list-group-color));\n background-color: var(--theme-bg-subtle, var(--list-group-bg));\n border: var(--list-group-border-width) solid var(--theme-border, var(--list-group-border-color));\n }\n .list-group-item:first-child {\n border-start-start-radius: inherit;\n border-start-end-radius: inherit;\n }\n .list-group-item:last-child {\n border-end-start-radius: inherit;\n border-end-end-radius: inherit;\n }\n .list-group-item.disabled, .list-group-item:disabled {\n color: var(--list-group-disabled-color);\n pointer-events: none;\n background-color: var(--list-group-disabled-bg);\n }\n .list-group-item.active {\n z-index: 2;\n color: var(--list-group-active-color);\n background-color: var(--list-group-active-bg);\n border-color: var(--list-group-active-border-color);\n }\n .list-group-item + .list-group-item {\n border-block-start-width: 0;\n }\n .list-group-item + .list-group-item.active {\n margin-top: calc(-1 * var(--list-group-border-width));\n border-block-start-width: var(--list-group-border-width);\n }\n .list-group-item-action {\n width: 100%;\n color: var(--theme-fg, var(--list-group-action-color));\n text-align: inherit;\n text-decoration: none;\n }\n .list-group-item-action:not(.active):hover, .list-group-item-action:not(.active):focus {\n z-index: 1;\n color: var(--theme-fg-emphasis, var(--list-group-action-hover-color));\n text-decoration: none;\n background-color: var(--theme-bg-muted, var(--list-group-action-hover-bg));\n }\n .list-group-item-action:not(.active):active {\n color: var(--theme-fg-emphasis, var(--list-group-action-active-color));\n background-color: var(--theme-bg-muted, var(--list-group-action-active-bg));\n }\n .list-group-horizontal {\n flex-direction: row;\n }\n .list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n @media (width >= 576px) {\n .sm\\:list-group-horizontal {\n flex-direction: row;\n }\n .sm\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .sm\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .sm\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .sm\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .sm\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n @media (width >= 768px) {\n .md\\:list-group-horizontal {\n flex-direction: row;\n }\n .md\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .md\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .md\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .md\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .md\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n @media (width >= 1024px) {\n .lg\\:list-group-horizontal {\n flex-direction: row;\n }\n .lg\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .lg\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .lg\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .lg\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .lg\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n @media (width >= 1280px) {\n .xl\\:list-group-horizontal {\n flex-direction: row;\n }\n .xl\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .xl\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .xl\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .xl\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .xl\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:list-group-horizontal {\n flex-direction: row;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n .list-group-flush {\n border-radius: 0;\n }\n .list-group-flush > .list-group-item {\n border-width: 0 0 var(--list-group-border-width);\n }\n .list-group-flush > .list-group-item:last-child {\n border-block-end-width: 0;\n }\n}\n@layer components {\n .nav {\n --nav-gap: 0.125rem;\n --nav-link-gap: 0.5rem;\n --nav-link-align: center;\n --nav-link-justify: center;\n --nav-link-padding-x: 0.75rem;\n --nav-link-padding-y: 0.375rem;\n --nav-link-color: var(--fg-2);\n --nav-link-hover-color: var(--fg-1);\n --nav-link-hover-bg: var(--bg-1);\n --nav-link-active-color: var(--fg-body);\n --nav-link-active-bg: var(--bg-2);\n --nav-link-disabled-color: var(--fg-4);\n --nav-link-border-width: var(--border-width);\n --nav-link-transition-property: color, background-color, border-color;\n --nav-link-transition-timing: 0.15s ease-in-out;\n --nav-link-transition: var(--nav-link-transition-property) var(--nav-link-transition-timing);\n display: flex;\n flex-wrap: wrap;\n gap: var(--nav-gap);\n padding-inline-start: 0;\n margin-bottom: 0;\n list-style: none;\n }\n .nav-item {\n display: flex;\n }\n .nav-link {\n display: flex;\n gap: var(--nav-link-gap);\n align-items: var(--nav-link-align);\n justify-content: var(--nav-link-justify);\n padding: var(--nav-link-padding-y) var(--nav-link-padding-x);\n font-weight: var(--nav-link-font-weight);\n color: var(--nav-link-color);\n text-decoration: none;\n white-space: nowrap;\n background: none;\n border: var(--nav-link-border-width) solid transparent;\n border-radius: var(--radius-5);\n transition: var(--nav-link-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .nav-link {\n transition: none;\n }\n }\n .nav-link:hover, .nav-link:focus {\n color: var(--nav-link-hover-color);\n background-color: var(--nav-link-hover-bg);\n }\n .nav-link:focus-visible {\n --focus-ring-offset: 1px;\n color: var(--nav-link-hover-color);\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .nav-link.active, .nav-link:active {\n color: var(--nav-link-active-color);\n background-color: var(--nav-link-active-bg);\n }\n .nav-link.disabled, .nav-link:disabled {\n color: var(--nav-link-disabled-color);\n pointer-events: none;\n cursor: default;\n }\n .nav-tabs {\n --nav-tabs-border-width: var(--border-width);\n --nav-tabs-border-color: var(--border-color);\n --nav-tabs-border-radius: var(--radius-5);\n --nav-tabs-link-hover-border-color: var(--border-subtle);\n --nav-tabs-link-active-color: var(--fg-color);\n --nav-tabs-link-active-bg: var(--bg-body);\n --nav-tabs-link-active-border-color: var(--border-color) var(--border-color) var(--bg-body);\n box-shadow: inset 0 calc(-1 * var(--nav-tabs-border-width)) 0 var(--nav-tabs-border-color);\n }\n .nav-tabs .nav-link {\n border: var(--nav-tabs-border-width) solid transparent;\n border-bottom-color: var(--nav-tabs-border-color);\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .nav-tabs .nav-link:hover {\n isolation: isolate;\n border-color: var(--nav-tabs-link-hover-border-color);\n border-bottom-color: var(--nav-tabs-border-color);\n }\n .nav-tabs .nav-link.active,\n .nav-tabs .nav-item.show .nav-link {\n color: var(--nav-tabs-link-active-color);\n background-color: var(--nav-tabs-link-active-bg);\n border-color: var(--nav-tabs-link-active-border-color);\n border-bottom-color: var(--nav-tabs-link-active-bg);\n }\n .nav-tabs .menu {\n margin-top: calc(-1 * var(--nav-tabs-border-width));\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n .nav-pills {\n --nav-pills-bg: var(--bg-1);\n --nav-pills-padding: 0.25rem;\n --nav-pills-border-radius: var(--radius-9);\n --nav-pills-link-active-color: var(--primary-contrast);\n --nav-pills-link-active-bg: var(--primary-bg);\n --nav-pills-link-border-radius: var(--radius-9);\n display: inline-flex;\n padding: var(--nav-pills-padding);\n background-color: var(--nav-pills-bg);\n border-radius: var(--nav-pills-border-radius);\n }\n .nav-pills .nav-link {\n border-radius: var(--nav-pills-link-border-radius);\n }\n .nav-pills .nav-link.active,\n .nav-pills .show > .nav-link {\n color: var(--nav-pills-link-active-color);\n background-color: var(--nav-pills-link-active-bg);\n background-image: var(--gradient);\n }\n .nav-pills-vertical {\n flex-direction: column;\n align-items: stretch;\n }\n .nav-pills-vertical .nav-item,\n .nav-pills-vertical .nav-link {\n width: 100%;\n }\n .nav-underline {\n --nav-gap: 1rem;\n --nav-link-active-bg: transparent;\n --nav-underline-border-width: 0.125rem;\n --nav-underline-link-active-color: var(--fg-color);\n }\n .nav-underline .nav-link {\n padding-inline: 0;\n border: 0;\n border-block-end: var(--nav-underline-border-width) solid transparent;\n border-radius: 0;\n }\n .nav-underline .nav-link:hover, .nav-underline .nav-link:focus {\n border-block-end-color: currentcolor;\n }\n .nav-underline .nav-link.active,\n .nav-underline .show > .nav-link {\n font-weight: 700;\n color: var(--nav-underline-link-active-color);\n border-block-end-color: currentcolor;\n }\n .nav-fill > .nav-link,\n .nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n .nav-justified > .nav-link,\n .nav-justified .nav-item {\n flex-grow: 1;\n flex-basis: 0;\n text-align: center;\n }\n .nav-fill .nav-item .nav-link,\n .nav-justified .nav-item .nav-link {\n width: 100%;\n }\n .tab-content > .tab-pane {\n display: none;\n }\n .tab-content > .active {\n display: block;\n }\n}\n@layer components {\n .nav-overflow {\n flex-wrap: nowrap;\n min-width: 0;\n }\n .nav-pills.nav-overflow {\n display: flex;\n }\n .navbar-nav.nav-overflow {\n flex: 1 1 0;\n }\n .nav-overflow-item {\n flex-shrink: 0;\n margin-inline-start: auto;\n }\n .nav-overflow [data-bs-nav-overflow=true] {\n display: none;\n }\n .nav-overflow-keep {\n flex-shrink: 0;\n }\n}\n@layer components {\n .navbar {\n --navbar-padding-x: 0;\n --navbar-padding-y: 0.5rem;\n --navbar-color: var(--fg-2);\n --navbar-hover-color: var(--fg-1);\n --navbar-disabled-color: var(--fg-3);\n --navbar-active-color: var(--fg-body);\n --navbar-brand-padding-y: 0.75rem;\n --navbar-brand-margin-end: 1rem;\n --navbar-brand-font-size: var(--font-size-md);\n --navbar-brand-font-weight: var(--font-weight-medium);\n --navbar-brand-color: var(--fg-body);\n --navbar-brand-hover-color: var(--fg-body);\n --navbar-nav-link-padding-x: 0.75rem;\n --navbar-toggler-width: 2rem;\n --navbar-toggler-padding-y: 0.25rem;\n --navbar-toggler-padding-x: 0.75rem;\n --navbar-toggler-font-size: var(--font-size-lg);\n --navbar-toggler-border-color: color-mix(in oklch, var(--fg-body) 15%, transparent);\n --navbar-toggler-border-radius: var(--radius-5);\n --navbar-toggler-transition: box-shadow 0.15s ease-in-out;\n --navbar-toggler-icon-size: 1.25rem;\n --navbar-toggler-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath stroke='black' stroke-linecap='round' stroke-width='1' d='M1 3.5h14M1 8h14M1 12.5h14'/%3e%3c/svg%3e\");\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: var(--navbar-padding-y) var(--navbar-padding-x);\n container-type: inline-size;\n color: var(--navbar-color, var(--fg-body));\n background-color: var(--navbar-bg, var(--bg-body));\n }\n .navbar > .\\32 xl\\:container, .navbar > .xl\\:container, .navbar > .lg\\:container, .navbar > .md\\:container, .navbar > .sm\\:container, .navbar > .container,\n .navbar > .container-fluid {\n display: flex;\n flex-wrap: inherit;\n align-items: center;\n justify-content: space-between;\n }\n .navbar-brand {\n padding-top: var(--navbar-brand-padding-y);\n padding-bottom: var(--navbar-brand-padding-y);\n margin-inline-end: var(--navbar-brand-margin-end);\n font-size: var(--navbar-brand-font-size);\n font-weight: var(--navbar-brand-font-weight);\n color: var(--navbar-brand-color);\n text-decoration: none;\n white-space: nowrap;\n }\n .navbar-brand:hover, .navbar-brand:focus {\n color: var(--navbar-brand-hover-color);\n }\n .navbar-nav {\n --nav-gap: 0.25rem;\n --nav-link-gap: 0.5rem;\n --nav-link-padding-x: 0.5rem;\n --nav-link-padding-y: 0.375rem;\n --nav-link-color: var(--navbar-color);\n --nav-link-border-width: var(--border-width);\n --nav-link-hover-color: var(--navbar-hover-color);\n --nav-link-hover-bg: transparent;\n --nav-link-active-color: var(--navbar-active-color);\n --nav-link-active-bg: transparent;\n --nav-link-disabled-color: var(--navbar-disabled-color);\n display: flex;\n flex-direction: column;\n gap: var(--nav-gap);\n padding-inline-start: 0;\n margin-bottom: 0;\n list-style: none;\n }\n .navbar-nav .nav-link.active, .navbar-nav .nav-link.show {\n color: var(--navbar-active-color);\n border: var(--nav-link-border-width) solid var(--nav-link-border-color, transparent);\n }\n .navbar-text {\n padding-top: var(--navbar-brand-padding-y);\n padding-bottom: var(--navbar-brand-padding-y);\n color: var(--navbar-color);\n }\n .navbar-text a,\n .navbar-text a:hover,\n .navbar-text a:focus {\n color: var(--navbar-active-color);\n }\n .navbar-toggler {\n --btn-bg: transparent;\n --btn-hover-bg: var(--bg-2);\n }\n .navbar-toggler-icon {\n display: inline-block;\n width: var(--navbar-toggler-icon-size);\n height: var(--navbar-toggler-icon-size);\n background-color: currentcolor;\n mask-image: var(--navbar-toggler-icon);\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: contain;\n }\n .navbar-expand > .container,\n .navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .navbar-expand .navbar-toggler {\n display: none !important;\n }\n .navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n .navbar-expand {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n @container (width >= 576px) {\n .sm\\:navbar-expand > .container,\n .sm\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .sm\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .sm\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .sm\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .sm\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .sm\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n @container (width >= 768px) {\n .md\\:navbar-expand > .container,\n .md\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .md\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .md\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .md\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .md\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .md\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n @container (width >= 1024px) {\n .lg\\:navbar-expand > .container,\n .lg\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .lg\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .lg\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .lg\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .lg\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .lg\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n @container (width >= 1280px) {\n .xl\\:navbar-expand > .container,\n .xl\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .xl\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .xl\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .xl\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .xl\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .xl\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:navbar-expand > .container,\n .\\32 xl\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .\\32 xl\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .\\32 xl\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .\\32 xl\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .\\32 xl\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .\\32 xl\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n .navbar [class*=drawer]:not([open], .hiding) {\n transition: none !important;\n }\n @media (prefers-reduced-motion: reduce) {\n .navbar [class*=drawer]:not([open], .hiding) {\n transition: none;\n }\n }\n .navbar-translucent {\n position: relative;\n background-color: transparent;\n }\n .navbar-translucent::before {\n position: absolute;\n inset: 0;\n z-index: -1;\n content: \"\";\n background-color: color-mix(in oklch, var(--navbar-bg, var(--bg-body)) 80%, transparent);\n background-image: none;\n backdrop-filter: blur(5px) saturate(180%);\n }\n .navbar[data-bs-theme=dark] {\n --navbar-color: color-mix(in oklch, var(--white) 0.55, transparent);\n --navbar-hover-color: color-mix(in oklch, var(--white) 0.75, transparent);\n --navbar-disabled-color: color-mix(in oklch, var(--white) 0.25, transparent);\n --navbar-active-color: var(--white);\n --navbar-brand-color: var(--white);\n --navbar-brand-hover-color: var(--white);\n --navbar-toggler-border-color: color-mix(in oklch, var(--white) 0.1, transparent);\n }\n}\n.drawer, .\\32 xl\\:drawer, .xl\\:drawer, .lg\\:drawer, .md\\:drawer, .sm\\:drawer {\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n}\n\n@layer components {\n @media (width < 576px) {\n .sm\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .sm\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .sm\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .sm\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .sm\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .sm\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .sm\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 576px) and (prefers-reduced-motion: reduce) {\n .sm\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 576px) {\n .sm\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .sm\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .sm\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 576px) and (prefers-reduced-motion: reduce) {\n .sm\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 576px) {\n .sm\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 576px) {\n .sm\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 576px) and (prefers-reduced-motion: reduce) {\n .sm\\:drawer {\n transition: none;\n }\n }\n @media (width >= 576px) {\n .sm\\:drawer .drawer-header {\n display: none;\n }\n .sm\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n @media (width < 768px) {\n .md\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .md\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .md\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .md\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .md\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .md\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .md\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 768px) and (prefers-reduced-motion: reduce) {\n .md\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 768px) {\n .md\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .md\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .md\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 768px) and (prefers-reduced-motion: reduce) {\n .md\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 768px) {\n .md\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 768px) {\n .md\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 768px) and (prefers-reduced-motion: reduce) {\n .md\\:drawer {\n transition: none;\n }\n }\n @media (width >= 768px) {\n .md\\:drawer .drawer-header {\n display: none;\n }\n .md\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n @media (width < 1024px) {\n .lg\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .lg\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .lg\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .lg\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .lg\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .lg\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .lg\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 1024px) and (prefers-reduced-motion: reduce) {\n .lg\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 1024px) {\n .lg\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .lg\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .lg\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 1024px) and (prefers-reduced-motion: reduce) {\n .lg\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 1024px) {\n .lg\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 1024px) {\n .lg\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 1024px) and (prefers-reduced-motion: reduce) {\n .lg\\:drawer {\n transition: none;\n }\n }\n @media (width >= 1024px) {\n .lg\\:drawer .drawer-header {\n display: none;\n }\n .lg\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n @media (width < 1280px) {\n .xl\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .xl\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .xl\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .xl\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .xl\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .xl\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .xl\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 1280px) and (prefers-reduced-motion: reduce) {\n .xl\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 1280px) {\n .xl\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .xl\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .xl\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 1280px) and (prefers-reduced-motion: reduce) {\n .xl\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 1280px) {\n .xl\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 1280px) {\n .xl\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 1280px) and (prefers-reduced-motion: reduce) {\n .xl\\:drawer {\n transition: none;\n }\n }\n @media (width >= 1280px) {\n .xl\\:drawer .drawer-header {\n display: none;\n }\n .xl\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n @media (width < 1536px) {\n .\\32 xl\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .\\32 xl\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .\\32 xl\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .\\32 xl\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .\\32 xl\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .\\32 xl\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .\\32 xl\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 1536px) and (prefers-reduced-motion: reduce) {\n .\\32 xl\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 1536px) {\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 1536px) and (prefers-reduced-motion: reduce) {\n .\\32 xl\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 1536px) {\n .\\32 xl\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 1536px) and (prefers-reduced-motion: reduce) {\n .\\32 xl\\:drawer {\n transition: none;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:drawer .drawer-header {\n display: none;\n }\n .\\32 xl\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n .drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n @media (prefers-reduced-motion: reduce) {\n .drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n .drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n }\n @media (prefers-reduced-motion: reduce) {\n .drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n .drawer:not(.drawer-instant)[open] {\n transform: none;\n }\n .drawer[open] {\n visibility: visible;\n transform: none;\n }\n .sm\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .sm\\:drawer::backdrop {\n transition: none;\n }\n }\n .md\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .md\\:drawer::backdrop {\n transition: none;\n }\n }\n .lg\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .lg\\:drawer::backdrop {\n transition: none;\n }\n }\n .xl\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .xl\\:drawer::backdrop {\n transition: none;\n }\n }\n .\\32 xl\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .\\32 xl\\:drawer::backdrop {\n transition: none;\n }\n }\n .drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .drawer::backdrop {\n transition: none;\n }\n }\n @starting-style {\n .sm\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .md\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .lg\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .xl\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .\\32 xl\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n }\n .drawer-static {\n transform: scale(1.02);\n }\n .drawer-translucent {\n background-color: color-mix(in oklch, var(--drawer-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n .drawer-sheet {\n --drawer-inset: 0;\n --drawer-border-radius: 0;\n --drawer-border-width: 0;\n --drawer-box-shadow: none;\n }\n .drawer-header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n padding: var(--drawer-padding-y) var(--drawer-padding-x);\n }\n .drawer-header .btn-close {\n margin-block: calc(-0.5 * var(--drawer-padding-y));\n margin-inline-start: auto;\n }\n .drawer-title {\n margin-bottom: 0;\n line-height: var(--drawer-title-line-height);\n }\n .drawer-body {\n display: flex;\n flex-direction: column;\n gap: var(--drawer-padding-y);\n flex: 1 1 auto;\n padding: var(--drawer-padding-y) var(--drawer-padding-x);\n overflow-y: auto;\n }\n .drawer-footer {\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n gap: 0.5rem;\n align-items: center;\n justify-content: flex-end;\n padding: var(--drawer-padding-y) var(--drawer-padding-x);\n border-block-start: var(--drawer-border-width) solid var(--drawer-border-color);\n }\n .drawer-fit-content {\n inset-block-end: auto;\n }\n}\n@layer components {\n .pagination {\n --pagination-min-height: var(--btn-input-min-height);\n --pagination-padding-x: var(--btn-input-padding-x);\n --pagination-padding-y: var(--btn-input-padding-y);\n --pagination-font-size: var(--btn-input-font-size);\n --pagination-color: var(--link-color);\n --pagination-bg: var(--bg-body);\n --pagination-border-width: var(--border-width);\n --pagination-border-color: var(--border-color);\n --pagination-border-radius: var(--btn-input-border-radius);\n --pagination-hover-color: var(--link-hover-color);\n --pagination-hover-bg: var(--bg-1);\n --pagination-hover-border-color: var(--border-color);\n --pagination-focus-color: var(--link-hover-color);\n --pagination-focus-bg: var(--bg-2);\n --pagination-active-color: var(--primary-contrast);\n --pagination-active-bg: var(--primary-bg);\n --pagination-active-border-color: var(--primary-bg);\n --pagination-disabled-color: var(--fg-3);\n --pagination-disabled-bg: var(--bg-2);\n --pagination-disabled-border-color: var(--border-color);\n display: flex;\n padding-inline-start: 0;\n list-style: none;\n }\n .page-link {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: var(--pagination-min-height);\n padding: var(--pagination-padding-y) var(--pagination-padding-x);\n font-size: var(--pagination-font-size);\n color: var(--pagination-color);\n text-decoration: none;\n background-color: var(--pagination-bg);\n border: var(--pagination-border-width) solid var(--pagination-border-color);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .page-link {\n transition: none;\n }\n }\n .page-link:hover {\n z-index: 2;\n color: var(--pagination-hover-color);\n background-color: var(--pagination-hover-bg);\n border-color: var(--pagination-hover-border-color);\n }\n .page-link:focus-visible {\n z-index: 3;\n color: var(--pagination-focus-color);\n background-color: var(--pagination-focus-bg);\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .page-link.active, .active > .page-link {\n z-index: 3;\n color: var(--pagination-active-color);\n background-color: var(--pagination-active-bg);\n background-image: var(--gradient);\n border-color: var(--pagination-active-border-color);\n }\n .page-link.disabled, .disabled > .page-link {\n color: var(--pagination-disabled-color);\n pointer-events: none;\n background-color: var(--pagination-disabled-bg);\n border-color: var(--pagination-disabled-border-color);\n }\n .page-item:not(:first-child) .page-link {\n margin-inline-start: calc(-1 * var(--pagination-border-width));\n }\n .page-item:first-child .page-link {\n border-start-start-radius: var(--pagination-border-radius);\n border-end-start-radius: var(--pagination-border-radius);\n }\n .page-item:last-child .page-link {\n border-start-end-radius: var(--pagination-border-radius);\n border-end-end-radius: var(--pagination-border-radius);\n }\n .pagination-sm {\n --pagination-min-height: var(--bs-btn-input-sm-min-height);\n --pagination-padding-y: var(--btn-input-sm-padding-y);\n --pagination-padding-x: var(--btn-input-sm-padding-x);\n --pagination-font-size: var(--btn-input-sm-font-size);\n --pagination-border-radius: var(--btn-input-sm-border-radius);\n }\n .pagination-lg {\n --pagination-min-height: var(--bs-btn-input-lg-min-height);\n --pagination-padding-y: var(--btn-input-lg-padding-y);\n --pagination-padding-x: var(--btn-input-lg-padding-x);\n --pagination-font-size: var(--btn-input-lg-font-size);\n --pagination-border-radius: var(--btn-input-lg-border-radius);\n }\n}\n@layer components {\n .placeholder {\n --placeholder-opacity-max: 0.5;\n --placeholder-opacity-min: 0.2;\n display: inline-block;\n min-height: 1em;\n vertical-align: middle;\n cursor: wait;\n background-color: currentcolor;\n opacity: var(--placeholder-opacity-max);\n }\n .placeholder.btn::before {\n display: inline-block;\n content: \"\";\n }\n .placeholder-xs {\n min-height: 0.6em;\n }\n .placeholder-sm {\n min-height: 0.8em;\n }\n .placeholder-lg {\n min-height: 1.2em;\n }\n .placeholder-glow .placeholder {\n animation: placeholder-glow 2s ease-in-out infinite;\n }\n @keyframes placeholder-glow {\n 50% {\n opacity: var(--placeholder-opacity-min);\n }\n }\n .placeholder-wave {\n mask-image: linear-gradient(130deg, #000 55%, rgb(0, 0, 0, calc(1 - var(--placeholder-opacity-min))) 75%, #000 95%);\n mask-size: 200% 100%;\n animation: placeholder-wave 2s linear infinite;\n }\n @keyframes placeholder-wave {\n 100% {\n mask-position: -200% 0%;\n }\n }\n}\n@layer components {\n .popover {\n --popover-zindex: 1070;\n --popover-max-width: 280px;\n --popover-font-size: var(--font-size-sm);\n --popover-bg: var(--bg-body);\n --popover-border-width: var(--border-width);\n --popover-border-color: var(--border-color-translucent);\n --popover-border-radius: var(--radius-7);\n --popover-inner-border-radius: calc(var(--radius-7) - var(--border-width));\n --popover-box-shadow: var(--box-shadow);\n --popover-header-padding-x: var(--spacer);\n --popover-header-padding-y: var(--spacer-3);\n --popover-header-font-size: var(--font-size-sm);\n --popover-header-color: inherit;\n --popover-header-bg: var(--bg-1);\n --popover-body-padding-x: var(--spacer);\n --popover-body-padding-y: var(--spacer-3);\n --popover-body-color: var(--fg-body);\n --popover-arrow-width: 1rem;\n --popover-arrow-height: 0.5rem;\n --popover-arrow-border: var(--popover-border-color);\n z-index: var(--popover-zindex);\n display: block;\n max-width: var(--popover-max-width);\n font-family: var(--body-font-family);\n font-style: normal;\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: var(--popover-font-size);\n word-wrap: break-word;\n background-color: var(--popover-bg);\n background-clip: padding-box;\n border: var(--popover-border-width) solid var(--popover-border-color);\n border-radius: var(--popover-border-radius);\n box-shadow: var(--popover-box-shadow);\n }\n .popover .popover-arrow {\n display: block;\n width: var(--popover-arrow-width);\n height: var(--popover-arrow-height);\n }\n .popover .popover-arrow::before, .popover .popover-arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n border-width: 0;\n }\n .bs-popover-top > .popover-arrow, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow {\n bottom: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n }\n .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow::after {\n border-width: var(--popover-arrow-height) calc(var(--popover-arrow-width) * 0.5) 0;\n }\n .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow::before {\n bottom: 0;\n border-block-start-color: var(--popover-arrow-border);\n }\n .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow::after {\n bottom: var(--popover-border-width);\n border-block-start-color: var(--popover-bg);\n }\n .bs-popover-end > .popover-arrow, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow {\n left: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n width: var(--popover-arrow-height);\n height: var(--popover-arrow-width);\n }\n .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow::after {\n border-width: calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height) calc(var(--popover-arrow-width) * 0.5) 0;\n }\n .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow::before {\n left: 0;\n border-inline-end-color: var(--popover-arrow-border);\n }\n .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow::after {\n left: var(--popover-border-width);\n border-inline-end-color: var(--popover-bg);\n }\n .bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow {\n top: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n }\n .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow::after {\n border-width: 0 calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height);\n }\n .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow::before {\n top: 0;\n border-block-end-color: var(--popover-arrow-border);\n }\n .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow::after {\n top: var(--popover-border-width);\n border-block-end-color: var(--popover-bg);\n }\n .bs-popover-bottom .popover-header::before, .bs-popover-auto[data-bs-placement^=bottom] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: var(--popover-arrow-width);\n margin-inline-start: calc(-0.5 * var(--popover-arrow-width));\n content: \"\";\n border-block-end: var(--popover-border-width) solid var(--popover-header-bg);\n }\n .bs-popover-start > .popover-arrow, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow {\n right: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n width: var(--popover-arrow-height);\n height: var(--popover-arrow-width);\n }\n .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow::after {\n border-width: calc(var(--popover-arrow-width) * 0.5) 0 calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height);\n }\n .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow::before {\n right: 0;\n border-inline-start-color: var(--popover-arrow-border);\n }\n .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow::after {\n right: var(--popover-border-width);\n border-inline-start-color: var(--popover-bg);\n }\n .popover-header {\n padding: var(--popover-header-padding-y) var(--popover-header-padding-x);\n margin-bottom: 0;\n font-size: var(--popover-header-font-size);\n color: var(--popover-header-color);\n background-color: var(--popover-header-bg);\n border-block-end: var(--popover-border-width) solid var(--popover-border-color);\n border-start-start-radius: var(--popover-inner-border-radius);\n border-start-end-radius: var(--popover-inner-border-radius);\n }\n .popover-header:empty {\n display: none;\n }\n .popover-body {\n padding: var(--popover-body-padding-y) var(--popover-body-padding-x);\n color: var(--popover-body-color);\n }\n}\n@layer components {\n @keyframes progress-bar-stripes {\n 0% {\n background-position-x: var(--progress-height);\n }\n }\n .progress,\n .progress-stacked {\n --progress-height: 1rem;\n --progress-font-size: var(--font-size-sm);\n --progress-bg: var(--bg-2);\n --progress-border-radius: var(--radius-5);\n --progress-box-shadow: var(--box-shadow-inset);\n --progress-bar-color: var(--white);\n --progress-bar-bg: var(--primary-bg);\n --progress-bar-transition: width 0.6s ease;\n --progress-bar-animation: progress-bar-stripes 1s linear infinite;\n display: flex;\n height: var(--progress-height);\n overflow: hidden;\n font-size: var(--progress-font-size);\n background-color: var(--progress-bg);\n border-radius: var(--progress-border-radius);\n box-shadow: var(--progress-box-shadow);\n }\n .progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: var(--theme-contrast, var(--progress-bar-color));\n text-align: center;\n white-space: nowrap;\n background-color: var(--theme-bg, var(--progress-bar-bg));\n transition: var(--progress-bar-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n }\n .progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: var(--progress-height) var(--progress-height);\n }\n .progress-stacked > .progress {\n overflow: visible;\n }\n .progress-stacked > .progress > .progress-bar {\n width: 100%;\n }\n .progress-bar-animated {\n animation: var(--progress-bar-animation);\n }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n }\n}\n@layer components {\n .spinner-grow,\n .spinner-border {\n display: inline-block;\n flex-shrink: 0;\n width: var(--spinner-width);\n height: var(--spinner-height);\n vertical-align: var(--spinner-vertical-align);\n border-radius: 50%;\n animation: var(--spinner-animation-speed) linear infinite var(--spinner-animation-name);\n }\n @keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n }\n .spinner-border {\n --spinner-width: 2rem;\n --spinner-height: 2rem;\n --spinner-vertical-align: -0.125em;\n --spinner-border-width: 0.25em;\n --spinner-animation-speed: 0.75s;\n --spinner-animation-name: spinner-border;\n border: var(--spinner-border-width) solid currentcolor;\n border-inline-end-color: transparent;\n }\n .spinner-border-sm {\n --spinner-width: 1rem;\n --spinner-height: 1rem;\n --spinner-border-width: .2em;\n }\n @keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n }\n .spinner-grow {\n --spinner-width: 2rem;\n --spinner-height: 2rem;\n --spinner-vertical-align: -0.125em;\n --spinner-animation-speed: 0.75s;\n --spinner-animation-name: spinner-grow;\n background-color: currentcolor;\n opacity: 0;\n }\n .spinner-grow-sm {\n --spinner-width: 1rem;\n --spinner-height: 1rem;\n }\n @media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n --spinner-animation-speed: 1.5s;\n }\n }\n}\n@layer components {\n .stepper {\n --stepper-size: 2rem;\n --stepper-gap: 1rem;\n --stepper-font-size: var(--font-size-sm);\n --stepper-text-gap: 0.5rem;\n --stepper-track-size: 0.125rem;\n --stepper-bg: var(--bg-2);\n --stepper-active-color: var(--primary-contrast);\n --stepper-active-bg: var(--primary-bg);\n display: grid;\n grid-auto-rows: 1fr;\n grid-auto-flow: row;\n gap: var(--stepper-gap);\n padding-inline-start: 0;\n list-style: none;\n counter-reset: stepper;\n }\n .stepper-item {\n position: relative;\n display: grid;\n grid-template-rows: auto;\n grid-template-columns: var(--stepper-size) auto;\n gap: var(--stepper-text-gap);\n align-items: var(--stepper-align-items, center);\n text-decoration: none;\n }\n .stepper-item::before {\n position: relative;\n z-index: 1;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--stepper-size);\n height: var(--stepper-size);\n padding: 0.5rem;\n font-size: var(--stepper-font-size);\n font-weight: 600;\n line-height: 1;\n text-align: center;\n content: counter(stepper);\n counter-increment: stepper;\n background-color: var(--stepper-bg);\n border-radius: 50%;\n }\n .stepper-item::after {\n position: absolute;\n inset-block-start: 50%;\n inset-block-end: 100%;\n inset-inline-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n width: var(--stepper-track-size);\n height: calc(100% + var(--stepper-gap));\n content: \"\";\n background-color: var(--stepper-bg);\n }\n .stepper-item:last-child::after {\n display: none;\n }\n .stepper-item.active::before, .stepper-item.active::after {\n color: var(--theme-contrast, var(--stepper-active-color));\n background-color: var(--theme-bg, var(--stepper-active-bg));\n }\n .stepper-item.active:not(:has(+ .stepper-item.active))::after {\n background-color: var(--stepper-bg);\n }\n .stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n @container (width >= 576px) {\n .sm\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .sm\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .sm\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .sm\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n @container (width >= 768px) {\n .md\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .md\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .md\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .md\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n @container (width >= 1024px) {\n .lg\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .lg\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .lg\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .lg\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n @container (width >= 1280px) {\n .xl\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .xl\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .xl\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .xl\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .\\32 xl\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .\\32 xl\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .\\32 xl\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n .stepper-overflow {\n container-type: inline-size;\n overflow-x: auto;\n overscroll-behavior-x: contain;\n -webkit-overflow-scrolling: touch;\n }\n .stepper-overflow > .stepper {\n width: max-content;\n min-width: 100%;\n }\n}\n@layer components {\n .toast {\n --toast-zindex: 1090;\n --toast-padding-x: 1rem;\n --toast-padding-y: 0.75rem;\n --toast-spacing: 1.5rem;\n --toast-max-width: 350px;\n --toast-font-size: var(--font-size-sm);\n --toast-bg: var(--bg-body);\n --toast-border-width: var(--border-width);\n --toast-border-color: var(--border-color-translucent);\n --toast-box-shadow: var(--box-shadow);\n --toast-header-color: var(--fg-3);\n --toast-header-bg: var(--bg-1);\n --toast-header-border-color: var(--border-color-translucent);\n display: flex;\n flex-direction: column;\n width: var(--toast-max-width);\n max-width: 100%;\n overflow: hidden;\n font-size: var(--toast-font-size);\n color: var(--toast-color, var(--fg-body));\n pointer-events: auto;\n background-color: var(--toast-bg);\n background-clip: padding-box;\n border: var(--toast-border-width) solid var(--theme-border, var(--toast-border-color));\n box-shadow: var(--toast-box-shadow);\n border-radius: var(--toast-border-radius, var(--radius-7));\n }\n .toast.showing {\n opacity: 0;\n }\n .toast:not(.show) {\n display: none;\n }\n .toast-container {\n --toast-zindex: 1090;\n position: absolute;\n z-index: var(--toast-zindex);\n width: max-content;\n max-width: 100%;\n pointer-events: none;\n }\n .toast-container > :not(:last-child) {\n margin-bottom: var(--toast-spacing);\n }\n .toast-header {\n display: flex;\n align-items: center;\n padding: var(--toast-padding-y) var(--toast-padding-x);\n color: var(--theme-fg-emphasis, var(--toast-header-color));\n background-color: var(--theme-bg-subtle, var(--toast-header-bg));\n border-block-end: var(--toast-border-width, var(--border-width)) solid var(--theme-border, var(--toast-header-border-color, var(--border-color-translucent)));\n }\n .toast-header .btn-close {\n margin-inline-start: calc(0.5 * var(--toast-padding-x));\n margin-inline-end: calc(-0.25 * var(--toast-padding-x));\n color: inherit;\n }\n .toast-translucent {\n backdrop-filter: blur(5px) saturate(180%);\n }\n .toast-body {\n padding: var(--toast-padding-x);\n word-wrap: break-word;\n }\n}\n@layer components {\n .tooltip {\n --tooltip-zindex: 1080;\n --tooltip-max-width: 200px;\n --tooltip-padding-x: var(--spacer-3);\n --tooltip-padding-y: calc(var(--spacer) * 0.375);\n --tooltip-font-size: var(--font-size-sm);\n --tooltip-color: var(--bg-body);\n --tooltip-bg: var(--fg-body);\n --tooltip-border-radius: var(--radius-5);\n --tooltip-opacity: 0.95;\n --tooltip-arrow-width: 0.8rem;\n --tooltip-arrow-height: 0.4rem;\n z-index: var(--tooltip-zindex);\n display: block;\n font-family: var(--body-font-family);\n font-style: normal;\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: var(--tooltip-font-size);\n word-wrap: break-word;\n opacity: 0;\n }\n .tooltip.show {\n opacity: var(--tooltip-opacity);\n }\n .tooltip .tooltip-arrow {\n display: block;\n width: var(--tooltip-arrow-width);\n height: var(--tooltip-arrow-height);\n }\n .tooltip .tooltip-arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n .bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-bs-placement^=top] .tooltip-arrow {\n bottom: calc(-1 * var(--tooltip-arrow-height));\n }\n .bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-bs-placement^=top] .tooltip-arrow::before {\n top: -1px;\n border-width: var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * 0.5) 0;\n border-block-start-color: var(--tooltip-bg);\n }\n .bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-bs-placement^=right] .tooltip-arrow {\n left: calc(-1 * var(--tooltip-arrow-height));\n width: var(--tooltip-arrow-height);\n height: var(--tooltip-arrow-width);\n }\n .bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-bs-placement^=right] .tooltip-arrow::before {\n right: -1px;\n border-width: calc(var(--tooltip-arrow-width) * 0.5) var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * 0.5) 0;\n border-inline-end-color: var(--tooltip-bg);\n }\n .bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-bs-placement^=bottom] .tooltip-arrow {\n top: calc(-1 * var(--tooltip-arrow-height));\n }\n .bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-bs-placement^=bottom] .tooltip-arrow::before {\n bottom: -1px;\n border-width: 0 calc(var(--tooltip-arrow-width) * 0.5) var(--tooltip-arrow-height);\n border-block-end-color: var(--tooltip-bg);\n }\n .bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-bs-placement^=left] .tooltip-arrow {\n right: calc(-1 * var(--tooltip-arrow-height));\n width: var(--tooltip-arrow-height);\n height: var(--tooltip-arrow-width);\n }\n .bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-bs-placement^=left] .tooltip-arrow::before {\n left: -1px;\n border-width: calc(var(--tooltip-arrow-width) * 0.5) 0 calc(var(--tooltip-arrow-width) * 0.5) var(--tooltip-arrow-height);\n border-inline-start-color: var(--tooltip-bg);\n }\n .tooltip-inner {\n max-width: var(--tooltip-max-width);\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n color: var(--tooltip-color);\n text-align: center;\n background-color: var(--tooltip-bg);\n border-radius: var(--tooltip-border-radius);\n }\n}\n.fade {\n transition: opacity 0.15s linear;\n}\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n.collapsing.collapse-horizontal {\n width: 0;\n height: auto;\n transition: width 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing.collapse-horizontal {\n transition: none;\n }\n}\n\n@layer helpers {\n .focus-ring:focus-visible {\n outline: var(--focus-ring-width) solid var(--theme-focus-ring, var(--focus-ring-color));\n }\n}\n@layer helpers {\n .icon-link {\n display: inline-flex;\n gap: 0.375rem;\n align-items: center;\n text-decoration-color: rgba(var(--link-color-rgb), var(--link-opacity, 0.5));\n text-underline-offset: 0.25em;\n backface-visibility: hidden;\n }\n .icon-link > .bi {\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n fill: currentcolor;\n transition: 0.2s ease-in-out transform;\n }\n @media (prefers-reduced-motion: reduce) {\n .icon-link > .bi {\n transition: none;\n }\n }\n .icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi {\n transform: var(--icon-link-transform, translate3d(0.25em, 0, 0));\n }\n}\n@layer helpers {\n .fixed-top {\n position: fixed;\n inset: 0 0 auto;\n z-index: 1030;\n }\n .fixed-bottom {\n position: fixed;\n inset: auto 0 0;\n z-index: 1030;\n }\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n @media (width >= 576px) {\n .sm\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sm\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 768px) {\n .md\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .md\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1024px) {\n .lg\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .lg\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1280px) {\n .xl\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .xl\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .\\32 xl\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n}\n@layer helpers {\n .stack-container {\n container-type: inline-size;\n }\n [class*=hstack],\n [class*=vstack] {\n display: flex;\n flex: var(--stack-flex, 1 1 auto);\n flex-direction: var(--stack-direction, row);\n align-items: var(--stack-align-items, center);\n align-self: var(--stack-align-self, stretch);\n }\n .vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n .hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n @container (width >= 576px) {\n .sm\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 576px) {\n .sm\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 768px) {\n .md\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 768px) {\n .md\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1024px) {\n .lg\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1024px) {\n .lg\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1280px) {\n .xl\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1280px) {\n .xl\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n}\n@layer helpers {\n .theme-primary {\n --theme-base: var(--primary-base);\n --theme-fg: var(--primary-fg);\n --theme-fg-emphasis: var(--primary-fg-emphasis);\n --theme-bg: var(--primary-bg);\n --theme-bg-subtle: var(--primary-bg-subtle);\n --theme-bg-muted: var(--primary-bg-muted);\n --theme-border: var(--primary-border);\n --theme-focus-ring: var(--primary-focus-ring);\n --theme-contrast: var(--primary-contrast);\n }\n .theme-accent {\n --theme-base: var(--accent-base);\n --theme-fg: var(--accent-fg);\n --theme-fg-emphasis: var(--accent-fg-emphasis);\n --theme-bg: var(--accent-bg);\n --theme-bg-subtle: var(--accent-bg-subtle);\n --theme-bg-muted: var(--accent-bg-muted);\n --theme-border: var(--accent-border);\n --theme-focus-ring: var(--accent-focus-ring);\n --theme-contrast: var(--accent-contrast);\n }\n .theme-success {\n --theme-base: var(--success-base);\n --theme-fg: var(--success-fg);\n --theme-fg-emphasis: var(--success-fg-emphasis);\n --theme-bg: var(--success-bg);\n --theme-bg-subtle: var(--success-bg-subtle);\n --theme-bg-muted: var(--success-bg-muted);\n --theme-border: var(--success-border);\n --theme-focus-ring: var(--success-focus-ring);\n --theme-contrast: var(--success-contrast);\n }\n .theme-danger {\n --theme-base: var(--danger-base);\n --theme-fg: var(--danger-fg);\n --theme-fg-emphasis: var(--danger-fg-emphasis);\n --theme-bg: var(--danger-bg);\n --theme-bg-subtle: var(--danger-bg-subtle);\n --theme-bg-muted: var(--danger-bg-muted);\n --theme-border: var(--danger-border);\n --theme-focus-ring: var(--danger-focus-ring);\n --theme-contrast: var(--danger-contrast);\n }\n .theme-warning {\n --theme-base: var(--warning-base);\n --theme-fg: var(--warning-fg);\n --theme-fg-emphasis: var(--warning-fg-emphasis);\n --theme-bg: var(--warning-bg);\n --theme-bg-subtle: var(--warning-bg-subtle);\n --theme-bg-muted: var(--warning-bg-muted);\n --theme-border: var(--warning-border);\n --theme-focus-ring: var(--warning-focus-ring);\n --theme-contrast: var(--warning-contrast);\n }\n .theme-info {\n --theme-base: var(--info-base);\n --theme-fg: var(--info-fg);\n --theme-fg-emphasis: var(--info-fg-emphasis);\n --theme-bg: var(--info-bg);\n --theme-bg-subtle: var(--info-bg-subtle);\n --theme-bg-muted: var(--info-bg-muted);\n --theme-border: var(--info-border);\n --theme-focus-ring: var(--info-focus-ring);\n --theme-contrast: var(--info-contrast);\n }\n .theme-inverse {\n --theme-base: var(--inverse-base);\n --theme-fg: var(--inverse-fg);\n --theme-fg-emphasis: var(--inverse-fg-emphasis);\n --theme-bg: var(--inverse-bg);\n --theme-bg-subtle: var(--inverse-bg-subtle);\n --theme-bg-muted: var(--inverse-bg-muted);\n --theme-border: var(--inverse-border);\n --theme-focus-ring: var(--inverse-focus-ring);\n --theme-contrast: var(--inverse-contrast);\n }\n .theme-secondary {\n --theme-base: var(--secondary-base);\n --theme-fg: var(--secondary-fg);\n --theme-fg-emphasis: var(--secondary-fg-emphasis);\n --theme-bg: var(--secondary-bg);\n --theme-bg-subtle: var(--secondary-bg-subtle);\n --theme-bg-muted: var(--secondary-bg-muted);\n --theme-border: var(--secondary-border);\n --theme-focus-ring: var(--secondary-focus-ring);\n --theme-contrast: var(--secondary-contrast);\n }\n}\n@layer helpers {\n .visually-hidden,\n .visually-hidden-focusable:not(:focus, :focus-within) {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n .visually-hidden:not(caption),\n .visually-hidden-focusable:not(:focus, :focus-within):not(caption) {\n position: absolute !important;\n }\n .visually-hidden *,\n .visually-hidden-focusable:not(:focus, :focus-within) * {\n overflow: hidden !important;\n }\n}\n@layer helpers {\n .stretched-link::after {\n position: absolute;\n inset: 0;\n z-index: 1;\n content: \"\";\n }\n}\n@layer helpers {\n .text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n@layer helpers {\n .vr {\n display: inline-block;\n align-self: stretch;\n width: var(--vr-border-width, var(--border-width));\n min-height: 1em;\n background-color: var(--border-color);\n }\n}\n@layer utilities {\n .align-baseline {\n vertical-align: baseline;\n }\n .align-top {\n vertical-align: top;\n }\n .align-middle {\n vertical-align: middle;\n }\n .align-bottom {\n vertical-align: bottom;\n }\n .align-text-bottom {\n vertical-align: text-bottom;\n }\n .align-text-top {\n vertical-align: text-top;\n }\n [class*=ratio-] {\n aspect-ratio: var(--ratio);\n }\n .ratio-auto {\n --ratio: auto;\n }\n .ratio-1x1 {\n --ratio: 1 / 1;\n }\n .ratio-4x3 {\n --ratio: 4 / 3;\n }\n .ratio-16x9 {\n --ratio: 16 / 9;\n }\n .ratio-21x9 {\n --ratio: 21 / 9;\n }\n .float-start {\n float: inline-start;\n }\n .float-end {\n float: inline-end;\n }\n .float-none {\n float: none;\n }\n .object-fit-contain {\n object-fit: contain;\n }\n .object-fit-cover {\n object-fit: cover;\n }\n .object-fit-fill {\n object-fit: fill;\n }\n .object-fit-scale {\n object-fit: scale-down;\n }\n .object-fit-none {\n object-fit: none;\n }\n .opacity-0 {\n opacity: 0;\n }\n .opacity-25 {\n opacity: 0.25;\n }\n .opacity-50 {\n opacity: 0.5;\n }\n .opacity-75 {\n opacity: 0.75;\n }\n .opacity-100 {\n opacity: 1;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-visible {\n overflow: visible;\n }\n .overflow-scroll {\n overflow: scroll;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-x-visible {\n overflow-x: visible;\n }\n .overflow-x-scroll {\n overflow-x: scroll;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .overflow-y-hidden {\n overflow-y: hidden;\n }\n .overflow-y-visible {\n overflow-y: visible;\n }\n .overflow-y-scroll {\n overflow-y: scroll;\n }\n .contains-inline {\n container-type: inline-size;\n }\n .contains-size {\n container-type: size;\n }\n .d-inline {\n display: inline;\n }\n .d-inline-block {\n display: inline-block;\n }\n .d-block {\n display: block;\n }\n .d-grid {\n display: grid;\n }\n .d-inline-grid {\n display: inline-grid;\n }\n .d-table {\n display: table;\n }\n .d-table-row {\n display: table-row;\n }\n .d-table-cell {\n display: table-cell;\n }\n .d-flex {\n display: flex;\n }\n .d-inline-flex {\n display: inline-flex;\n }\n .d-contents {\n display: contents;\n }\n .d-flow-root {\n display: flow-root;\n }\n .d-none {\n display: none;\n }\n .shadow {\n box-shadow: var(--box-shadow);\n }\n .shadow-sm {\n box-shadow: var(--box-shadow-sm);\n }\n .shadow-lg {\n box-shadow: var(--box-shadow-lg);\n }\n .shadow-none {\n box-shadow: none;\n }\n .position-static {\n position: static;\n }\n .position-relative {\n position: relative;\n }\n .position-absolute {\n position: absolute;\n }\n .position-fixed {\n position: fixed;\n }\n .position-sticky {\n position: sticky;\n }\n .top-0 {\n top: 0;\n }\n .top-50 {\n top: 50%;\n }\n .top-100 {\n top: 100%;\n }\n .bottom-0 {\n bottom: 0;\n }\n .bottom-50 {\n bottom: 50%;\n }\n .bottom-100 {\n bottom: 100%;\n }\n .start-0 {\n inset-inline-start: 0;\n }\n .start-50 {\n inset-inline-start: 50%;\n }\n .start-100 {\n inset-inline-start: 100%;\n }\n .end-0 {\n inset-inline-end: 0;\n }\n .end-50 {\n inset-inline-end: 50%;\n }\n .end-100 {\n inset-inline-end: 100%;\n }\n .translate-middle {\n transform: translate(-50%, -50%);\n }\n .translate-middle-x {\n transform: translateX(-50%);\n }\n .translate-middle-y {\n transform: translateY(-50%);\n }\n .border {\n border: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-0 {\n border: 0;\n }\n .border-top {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-top-0 {\n border-block-start: 0;\n }\n .border-end {\n border-inline-end: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-end-0 {\n border-inline-end: 0;\n }\n .border-bottom {\n border-block-end: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-bottom-0 {\n border-block-end: 0;\n }\n .border-start {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-start-0 {\n border-inline-start: 0;\n }\n .border-y {\n border-block: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-y-0 {\n border-block: 0;\n }\n .border-x {\n border-inline: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-x-0 {\n border-inline: 0;\n }\n .border-primary {\n --border-color: var(--primary-bg);\n border-color: var(--border-color);\n }\n .border-accent {\n --border-color: var(--accent-bg);\n border-color: var(--border-color);\n }\n .border-success {\n --border-color: var(--success-bg);\n border-color: var(--border-color);\n }\n .border-danger {\n --border-color: var(--danger-bg);\n border-color: var(--border-color);\n }\n .border-warning {\n --border-color: var(--warning-bg);\n border-color: var(--border-color);\n }\n .border-info {\n --border-color: var(--info-bg);\n border-color: var(--border-color);\n }\n .border-inverse {\n --border-color: var(--inverse-bg);\n border-color: var(--border-color);\n }\n .border-secondary {\n --border-color: var(--secondary-bg);\n border-color: var(--border-color);\n }\n .border-bg {\n --border-color: var(--border-bg);\n border-color: var(--border-color);\n }\n .border-body {\n --border-color: var(--border-body);\n border-color: var(--border-color);\n }\n .border-muted {\n --border-color: var(--border-muted);\n border-color: var(--border-color);\n }\n .border-subtle {\n --border-color: var(--border-subtle);\n border-color: var(--border-color);\n }\n .border-emphasized {\n --border-color: var(--border-emphasized);\n border-color: var(--border-color);\n }\n .border-white {\n --border-color: var(--border-white);\n border-color: var(--border-color);\n }\n .border-black {\n --border-color: var(--border-black);\n border-color: var(--border-color);\n }\n .border-subtle-primary {\n --border-color: var(--primary-border);\n border-color: var(--border-color);\n }\n .border-subtle-accent {\n --border-color: var(--accent-border);\n border-color: var(--border-color);\n }\n .border-subtle-success {\n --border-color: var(--success-border);\n border-color: var(--border-color);\n }\n .border-subtle-danger {\n --border-color: var(--danger-border);\n border-color: var(--border-color);\n }\n .border-subtle-warning {\n --border-color: var(--warning-border);\n border-color: var(--border-color);\n }\n .border-subtle-info {\n --border-color: var(--info-border);\n border-color: var(--border-color);\n }\n .border-subtle-inverse {\n --border-color: var(--inverse-border);\n border-color: var(--border-color);\n }\n .border-subtle-secondary {\n --border-color: var(--secondary-border);\n border-color: var(--border-color);\n }\n .border-1 {\n border-width: 1px;\n }\n .border-2 {\n border-width: 2px;\n }\n .border-3 {\n border-width: 3px;\n }\n .border-4 {\n border-width: 4px;\n }\n .border-5 {\n border-width: 5px;\n }\n .border-10 {\n border-color: color-mix(in oklch, var(--border-color) 10%, transparent);\n }\n .border-20 {\n border-color: color-mix(in oklch, var(--border-color) 20%, transparent);\n }\n .border-30 {\n border-color: color-mix(in oklch, var(--border-color) 30%, transparent);\n }\n .border-40 {\n border-color: color-mix(in oklch, var(--border-color) 40%, transparent);\n }\n .border-50 {\n border-color: color-mix(in oklch, var(--border-color) 50%, transparent);\n }\n .border-60 {\n border-color: color-mix(in oklch, var(--border-color) 60%, transparent);\n }\n .border-70 {\n border-color: color-mix(in oklch, var(--border-color) 70%, transparent);\n }\n .border-80 {\n border-color: color-mix(in oklch, var(--border-color) 80%, transparent);\n }\n .border-90 {\n border-color: color-mix(in oklch, var(--border-color) 90%, transparent);\n }\n .border-100 {\n border-color: var(--border-color);\n }\n .w-1 {\n width: 1rem;\n }\n .w-2 {\n width: 2rem;\n }\n .w-3 {\n width: 3rem;\n }\n .w-4 {\n width: 4rem;\n }\n .w-5 {\n width: 5rem;\n }\n .w-6 {\n width: 6rem;\n }\n .w-7 {\n width: 7rem;\n }\n .w-8 {\n width: 8rem;\n }\n .w-9 {\n width: 9rem;\n }\n .w-10 {\n width: 10rem;\n }\n .w-11 {\n width: 11rem;\n }\n .w-12 {\n width: 12rem;\n }\n .w-25 {\n width: 25%;\n }\n .w-50 {\n width: 50%;\n }\n .w-75 {\n width: 75%;\n }\n .w-100 {\n width: 100%;\n }\n .w-auto {\n width: auto;\n }\n .w-min {\n width: min-content;\n }\n .w-max {\n width: max-content;\n }\n .w-fit {\n width: fit-content;\n }\n .max-w-100 {\n max-width: 100%;\n }\n .min-w-0 {\n min-width: 0;\n }\n .min-w-100 {\n min-width: 100%;\n }\n .vw-100 {\n width: 100vw;\n }\n .min-vw-100 {\n min-width: 100vw;\n }\n .h-25 {\n height: 25%;\n }\n .h-50 {\n height: 50%;\n }\n .h-75 {\n height: 75%;\n }\n .h-100 {\n height: 100%;\n }\n .h-auto {\n height: auto;\n }\n .h-min {\n height: min-content;\n }\n .h-max {\n height: max-content;\n }\n .h-fit {\n height: fit-content;\n }\n .max-h-100 {\n max-height: 100%;\n }\n .min-h-0 {\n min-height: 0;\n }\n .min-h-100 {\n min-height: 100%;\n }\n .vh-100 {\n height: 100vh;\n }\n .min-vh-100 {\n min-height: 100vh;\n }\n .flex-fill {\n flex: 1 1 auto;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-column {\n flex-direction: column;\n }\n .flex-row-reverse {\n flex-direction: row-reverse;\n }\n .flex-column-reverse {\n flex-direction: column-reverse;\n }\n .flex-grow-0 {\n flex-grow: 0;\n }\n .flex-grow-1 {\n flex-grow: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .flex-shrink-1 {\n flex-shrink: 1;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .flex-nowrap {\n flex-wrap: nowrap;\n }\n .flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .justify-content-start {\n justify-content: flex-start;\n }\n .justify-content-end {\n justify-content: flex-end;\n }\n .justify-content-center {\n justify-content: center;\n }\n .justify-content-between {\n justify-content: space-between;\n }\n .justify-content-around {\n justify-content: space-around;\n }\n .justify-content-evenly {\n justify-content: space-evenly;\n }\n .justify-items-start {\n justify-items: start;\n }\n .justify-items-end {\n justify-items: end;\n }\n .justify-items-center {\n justify-items: center;\n }\n .justify-items-stretch {\n justify-items: stretch;\n }\n .justify-self-start {\n justify-self: start;\n }\n .justify-self-end {\n justify-self: end;\n }\n .justify-self-center {\n justify-self: center;\n }\n .align-items-start {\n align-items: flex-start;\n }\n .align-items-end {\n align-items: flex-end;\n }\n .align-items-center {\n align-items: center;\n }\n .align-items-baseline {\n align-items: baseline;\n }\n .align-items-stretch {\n align-items: stretch;\n }\n .align-content-start {\n align-content: flex-start;\n }\n .align-content-end {\n align-content: flex-end;\n }\n .align-content-center {\n align-content: center;\n }\n .align-content-between {\n align-content: space-between;\n }\n .align-content-around {\n align-content: space-around;\n }\n .align-content-stretch {\n align-content: stretch;\n }\n .align-self-auto {\n align-self: auto;\n }\n .align-self-start {\n align-self: flex-start;\n }\n .align-self-end {\n align-self: flex-end;\n }\n .align-self-center {\n align-self: center;\n }\n .align-self-baseline {\n align-self: baseline;\n }\n .align-self-stretch {\n align-self: stretch;\n }\n .place-items-start {\n place-items: start;\n }\n .place-items-end {\n place-items: end;\n }\n .place-items-center {\n place-items: center;\n }\n .place-items-stretch {\n place-items: stretch;\n }\n .grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .grid-cols-fill {\n grid-column: 1 / -1;\n }\n .grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .order-first {\n order: -1;\n }\n .order-0 {\n order: 0;\n }\n .order-1 {\n order: 1;\n }\n .order-2 {\n order: 2;\n }\n .order-3 {\n order: 3;\n }\n .order-4 {\n order: 4;\n }\n .order-5 {\n order: 5;\n }\n .order-last {\n order: 6;\n }\n .m-0 {\n margin: 0;\n }\n .m-1 {\n margin: 0.25rem;\n }\n .m-2 {\n margin: 0.5rem;\n }\n .m-3 {\n margin: 0.75rem;\n }\n .m-4 {\n margin: 1rem;\n }\n .m-5 {\n margin: 1.25rem;\n }\n .m-6 {\n margin: 1.5rem;\n }\n .m-7 {\n margin: 2rem;\n }\n .m-8 {\n margin: 2.5rem;\n }\n .m-9 {\n margin: 3rem;\n }\n .m-auto {\n margin: auto;\n }\n .mx-0 {\n margin-inline: 0;\n }\n .mx-1 {\n margin-inline: 0.25rem;\n }\n .mx-2 {\n margin-inline: 0.5rem;\n }\n .mx-3 {\n margin-inline: 0.75rem;\n }\n .mx-4 {\n margin-inline: 1rem;\n }\n .mx-5 {\n margin-inline: 1.25rem;\n }\n .mx-6 {\n margin-inline: 1.5rem;\n }\n .mx-7 {\n margin-inline: 2rem;\n }\n .mx-8 {\n margin-inline: 2.5rem;\n }\n .mx-9 {\n margin-inline: 3rem;\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-0 {\n margin-block: 0;\n }\n .my-1 {\n margin-block: 0.25rem;\n }\n .my-2 {\n margin-block: 0.5rem;\n }\n .my-3 {\n margin-block: 0.75rem;\n }\n .my-4 {\n margin-block: 1rem;\n }\n .my-5 {\n margin-block: 1.25rem;\n }\n .my-6 {\n margin-block: 1.5rem;\n }\n .my-7 {\n margin-block: 2rem;\n }\n .my-8 {\n margin-block: 2.5rem;\n }\n .my-9 {\n margin-block: 3rem;\n }\n .my-auto {\n margin-block: auto;\n }\n .mt-0 {\n margin-block-start: 0;\n }\n .mt-1 {\n margin-block-start: 0.25rem;\n }\n .mt-2 {\n margin-block-start: 0.5rem;\n }\n .mt-3 {\n margin-block-start: 0.75rem;\n }\n .mt-4 {\n margin-block-start: 1rem;\n }\n .mt-5 {\n margin-block-start: 1.25rem;\n }\n .mt-6 {\n margin-block-start: 1.5rem;\n }\n .mt-7 {\n margin-block-start: 2rem;\n }\n .mt-8 {\n margin-block-start: 2.5rem;\n }\n .mt-9 {\n margin-block-start: 3rem;\n }\n .mt-auto {\n margin-block-start: auto;\n }\n .me-0 {\n margin-inline-end: 0;\n }\n .me-1 {\n margin-inline-end: 0.25rem;\n }\n .me-2 {\n margin-inline-end: 0.5rem;\n }\n .me-3 {\n margin-inline-end: 0.75rem;\n }\n .me-4 {\n margin-inline-end: 1rem;\n }\n .me-5 {\n margin-inline-end: 1.25rem;\n }\n .me-6 {\n margin-inline-end: 1.5rem;\n }\n .me-7 {\n margin-inline-end: 2rem;\n }\n .me-8 {\n margin-inline-end: 2.5rem;\n }\n .me-9 {\n margin-inline-end: 3rem;\n }\n .me--1 {\n margin-inline-end: -0.25rem;\n }\n .me--2 {\n margin-inline-end: -0.5rem;\n }\n .me-auto {\n margin-inline-end: auto;\n }\n .mb-0 {\n margin-block-end: 0;\n }\n .mb-1 {\n margin-block-end: 0.25rem;\n }\n .mb-2 {\n margin-block-end: 0.5rem;\n }\n .mb-3 {\n margin-block-end: 0.75rem;\n }\n .mb-4 {\n margin-block-end: 1rem;\n }\n .mb-5 {\n margin-block-end: 1.25rem;\n }\n .mb-6 {\n margin-block-end: 1.5rem;\n }\n .mb-7 {\n margin-block-end: 2rem;\n }\n .mb-8 {\n margin-block-end: 2.5rem;\n }\n .mb-9 {\n margin-block-end: 3rem;\n }\n .mb-auto {\n margin-block-end: auto;\n }\n .ms-0 {\n margin-inline-start: 0;\n }\n .ms-1 {\n margin-inline-start: 0.25rem;\n }\n .ms-2 {\n margin-inline-start: 0.5rem;\n }\n .ms-3 {\n margin-inline-start: 0.75rem;\n }\n .ms-4 {\n margin-inline-start: 1rem;\n }\n .ms-5 {\n margin-inline-start: 1.25rem;\n }\n .ms-6 {\n margin-inline-start: 1.5rem;\n }\n .ms-7 {\n margin-inline-start: 2rem;\n }\n .ms-8 {\n margin-inline-start: 2.5rem;\n }\n .ms-9 {\n margin-inline-start: 3rem;\n }\n .ms--1 {\n margin-inline-start: -0.25rem;\n }\n .ms--2 {\n margin-inline-start: -0.5rem;\n }\n .ms-auto {\n margin-inline-start: auto;\n }\n .p-0 {\n padding: 0;\n }\n .p-1 {\n padding: 0.25rem;\n }\n .p-2 {\n padding: 0.5rem;\n }\n .p-3 {\n padding: 0.75rem;\n }\n .p-4 {\n padding: 1rem;\n }\n .p-5 {\n padding: 1.25rem;\n }\n .p-6 {\n padding: 1.5rem;\n }\n .p-7 {\n padding: 2rem;\n }\n .p-8 {\n padding: 2.5rem;\n }\n .p-9 {\n padding: 3rem;\n }\n .px-0 {\n padding-inline: 0;\n }\n .px-1 {\n padding-inline: 0.25rem;\n }\n .px-2 {\n padding-inline: 0.5rem;\n }\n .px-3 {\n padding-inline: 0.75rem;\n }\n .px-4 {\n padding-inline: 1rem;\n }\n .px-5 {\n padding-inline: 1.25rem;\n }\n .px-6 {\n padding-inline: 1.5rem;\n }\n .px-7 {\n padding-inline: 2rem;\n }\n .px-8 {\n padding-inline: 2.5rem;\n }\n .px-9 {\n padding-inline: 3rem;\n }\n .py-0 {\n padding-block: 0;\n }\n .py-1 {\n padding-block: 0.25rem;\n }\n .py-2 {\n padding-block: 0.5rem;\n }\n .py-3 {\n padding-block: 0.75rem;\n }\n .py-4 {\n padding-block: 1rem;\n }\n .py-5 {\n padding-block: 1.25rem;\n }\n .py-6 {\n padding-block: 1.5rem;\n }\n .py-7 {\n padding-block: 2rem;\n }\n .py-8 {\n padding-block: 2.5rem;\n }\n .py-9 {\n padding-block: 3rem;\n }\n .pt-0 {\n padding-block-start: 0;\n }\n .pt-1 {\n padding-block-start: 0.25rem;\n }\n .pt-2 {\n padding-block-start: 0.5rem;\n }\n .pt-3 {\n padding-block-start: 0.75rem;\n }\n .pt-4 {\n padding-block-start: 1rem;\n }\n .pt-5 {\n padding-block-start: 1.25rem;\n }\n .pt-6 {\n padding-block-start: 1.5rem;\n }\n .pt-7 {\n padding-block-start: 2rem;\n }\n .pt-8 {\n padding-block-start: 2.5rem;\n }\n .pt-9 {\n padding-block-start: 3rem;\n }\n .pe-0 {\n padding-inline-end: 0;\n }\n .pe-1 {\n padding-inline-end: 0.25rem;\n }\n .pe-2 {\n padding-inline-end: 0.5rem;\n }\n .pe-3 {\n padding-inline-end: 0.75rem;\n }\n .pe-4 {\n padding-inline-end: 1rem;\n }\n .pe-5 {\n padding-inline-end: 1.25rem;\n }\n .pe-6 {\n padding-inline-end: 1.5rem;\n }\n .pe-7 {\n padding-inline-end: 2rem;\n }\n .pe-8 {\n padding-inline-end: 2.5rem;\n }\n .pe-9 {\n padding-inline-end: 3rem;\n }\n .pb-0 {\n padding-block-end: 0;\n }\n .pb-1 {\n padding-block-end: 0.25rem;\n }\n .pb-2 {\n padding-block-end: 0.5rem;\n }\n .pb-3 {\n padding-block-end: 0.75rem;\n }\n .pb-4 {\n padding-block-end: 1rem;\n }\n .pb-5 {\n padding-block-end: 1.25rem;\n }\n .pb-6 {\n padding-block-end: 1.5rem;\n }\n .pb-7 {\n padding-block-end: 2rem;\n }\n .pb-8 {\n padding-block-end: 2.5rem;\n }\n .pb-9 {\n padding-block-end: 3rem;\n }\n .ps-0 {\n padding-inline-start: 0;\n }\n .ps-1 {\n padding-inline-start: 0.25rem;\n }\n .ps-2 {\n padding-inline-start: 0.5rem;\n }\n .ps-3 {\n padding-inline-start: 0.75rem;\n }\n .ps-4 {\n padding-inline-start: 1rem;\n }\n .ps-5 {\n padding-inline-start: 1.25rem;\n }\n .ps-6 {\n padding-inline-start: 1.5rem;\n }\n .ps-7 {\n padding-inline-start: 2rem;\n }\n .ps-8 {\n padding-inline-start: 2.5rem;\n }\n .ps-9 {\n padding-inline-start: 3rem;\n }\n .gap-0 {\n gap: 0;\n }\n .gap-1 {\n gap: 0.25rem;\n }\n .gap-2 {\n gap: 0.5rem;\n }\n .gap-3 {\n gap: 0.75rem;\n }\n .gap-4 {\n gap: 1rem;\n }\n .gap-5 {\n gap: 1.25rem;\n }\n .gap-6 {\n gap: 1.5rem;\n }\n .gap-7 {\n gap: 2rem;\n }\n .gap-8 {\n gap: 2.5rem;\n }\n .gap-9 {\n gap: 3rem;\n }\n .row-gap-0 {\n row-gap: 0;\n }\n .row-gap-1 {\n row-gap: 0.25rem;\n }\n .row-gap-2 {\n row-gap: 0.5rem;\n }\n .row-gap-3 {\n row-gap: 0.75rem;\n }\n .row-gap-4 {\n row-gap: 1rem;\n }\n .row-gap-5 {\n row-gap: 1.25rem;\n }\n .row-gap-6 {\n row-gap: 1.5rem;\n }\n .row-gap-7 {\n row-gap: 2rem;\n }\n .row-gap-8 {\n row-gap: 2.5rem;\n }\n .row-gap-9 {\n row-gap: 3rem;\n }\n .column-gap-0 {\n column-gap: 0;\n }\n .column-gap-1 {\n column-gap: 0.25rem;\n }\n .column-gap-2 {\n column-gap: 0.5rem;\n }\n .column-gap-3 {\n column-gap: 0.75rem;\n }\n .column-gap-4 {\n column-gap: 1rem;\n }\n .column-gap-5 {\n column-gap: 1.25rem;\n }\n .column-gap-6 {\n column-gap: 1.5rem;\n }\n .column-gap-7 {\n column-gap: 2rem;\n }\n .column-gap-8 {\n column-gap: 2.5rem;\n }\n .column-gap-9 {\n column-gap: 3rem;\n }\n :where(.space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .font-monospace {\n font-family: var(--font-mono);\n }\n .font-body {\n font-family: var(--body-font-family);\n }\n .fs-xs {\n font-size: 0.75rem;\n }\n .fs-sm {\n font-size: 0.875rem;\n }\n .fs-md {\n font-size: 1rem;\n }\n .fs-lg {\n font-size: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n }\n .fs-xl {\n font-size: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n }\n .fs-2xl {\n font-size: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n }\n .fs-3xl {\n font-size: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n }\n .fs-4xl {\n font-size: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n }\n .fs-5xl {\n font-size: clamp(3rem, 2rem + 5vw, 4rem);\n }\n .fs-6xl {\n font-size: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n }\n .text-xs {\n font-size: 0.75rem;\n line-height: 1.25;\n }\n .text-sm {\n font-size: 0.875rem;\n line-height: 1.5;\n }\n .text-md {\n font-size: 1rem;\n line-height: 1.5;\n }\n .text-lg {\n font-size: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n line-height: 1.5;\n }\n .text-xl {\n font-size: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n line-height: 1.4285714286;\n }\n .text-2xl {\n font-size: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n line-height: 1.3333333333;\n }\n .text-3xl {\n font-size: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n line-height: 1.2;\n }\n .text-4xl {\n font-size: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n line-height: 1.1;\n }\n .text-5xl {\n font-size: clamp(3rem, 2rem + 5vw, 4rem);\n line-height: 1.1;\n }\n .text-6xl {\n font-size: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n line-height: 1;\n }\n .fst-italic {\n font-style: italic;\n }\n .fst-normal {\n font-style: normal;\n }\n .fw-lighter {\n font-weight: lighter;\n }\n .fw-light {\n font-weight: 300;\n }\n .fw-normal {\n font-weight: 400;\n }\n .fw-medium {\n font-weight: 500;\n }\n .fw-semibold {\n font-weight: 600;\n }\n .fw-bold {\n font-weight: 700;\n }\n .fw-bolder {\n font-weight: bolder;\n }\n .lh-1 {\n line-height: 1;\n }\n .lh-sm {\n line-height: 1.25;\n }\n .lh-base {\n line-height: 1.5;\n }\n .lh-lg {\n line-height: 2;\n }\n .text-start {\n text-align: start;\n }\n .text-end {\n text-align: end;\n }\n .text-center {\n text-align: center;\n }\n .text-decoration-none {\n text-decoration: none;\n }\n .text-decoration-underline {\n text-decoration: underline;\n }\n .text-decoration-line-through {\n text-decoration: line-through;\n }\n .text-lowercase {\n text-transform: lowercase;\n }\n .text-uppercase {\n text-transform: uppercase;\n }\n .text-capitalize {\n text-transform: capitalize;\n }\n .text-wrap {\n text-wrap: wrap;\n }\n .text-nowrap {\n text-wrap: nowrap;\n }\n .text-balance {\n text-wrap: balance;\n }\n .text-pretty {\n text-wrap: pretty;\n }\n .text-break {\n word-wrap: break-word;\n word-break: break-word;\n }\n .fg-primary {\n --fg: var(--primary-fg);\n color: var(--fg);\n }\n .fg-accent {\n --fg: var(--accent-fg);\n color: var(--fg);\n }\n .fg-success {\n --fg: var(--success-fg);\n color: var(--fg);\n }\n .fg-danger {\n --fg: var(--danger-fg);\n color: var(--fg);\n }\n .fg-warning {\n --fg: var(--warning-fg);\n color: var(--fg);\n }\n .fg-info {\n --fg: var(--info-fg);\n color: var(--fg);\n }\n .fg-inverse {\n --fg: var(--inverse-fg);\n color: var(--fg);\n }\n .fg-secondary {\n --fg: var(--secondary-fg);\n color: var(--fg);\n }\n .fg-body {\n --fg: var(--fg-body);\n color: var(--fg);\n }\n .fg-1 {\n --fg: var(--fg-1);\n color: var(--fg);\n }\n .fg-2 {\n --fg: var(--fg-2);\n color: var(--fg);\n }\n .fg-3 {\n --fg: var(--fg-3);\n color: var(--fg);\n }\n .fg-4 {\n --fg: var(--fg-4);\n color: var(--fg);\n }\n .fg-bg {\n --fg: var(--fg-bg);\n color: var(--fg);\n }\n .fg-white {\n --fg: var(--fg-white);\n color: var(--fg);\n }\n .fg-black {\n --fg: var(--fg-black);\n color: var(--fg);\n }\n .fg-reset {\n --fg: inherit;\n color: var(--fg);\n }\n .fg-emphasis-primary {\n --fg: var(--primary-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-accent {\n --fg: var(--accent-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-success {\n --fg: var(--success-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-danger {\n --fg: var(--danger-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-warning {\n --fg: var(--warning-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-info {\n --fg: var(--info-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-inverse {\n --fg: var(--inverse-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-secondary {\n --fg: var(--secondary-fg-emphasis);\n color: var(--fg);\n }\n .fg-contrast-primary {\n --fg: var(--primary-contrast);\n color: var(--fg);\n }\n .fg-contrast-accent {\n --fg: var(--accent-contrast);\n color: var(--fg);\n }\n .fg-contrast-success {\n --fg: var(--success-contrast);\n color: var(--fg);\n }\n .fg-contrast-danger {\n --fg: var(--danger-contrast);\n color: var(--fg);\n }\n .fg-contrast-warning {\n --fg: var(--warning-contrast);\n color: var(--fg);\n }\n .fg-contrast-info {\n --fg: var(--info-contrast);\n color: var(--fg);\n }\n .fg-contrast-inverse {\n --fg: var(--inverse-contrast);\n color: var(--fg);\n }\n .fg-contrast-secondary {\n --fg: var(--secondary-contrast);\n color: var(--fg);\n }\n .fg-10 {\n color: color-mix(in oklch, var(--fg) 10%, transparent);\n }\n .fg-20 {\n color: color-mix(in oklch, var(--fg) 20%, transparent);\n }\n .fg-30 {\n color: color-mix(in oklch, var(--fg) 30%, transparent);\n }\n .fg-40 {\n color: color-mix(in oklch, var(--fg) 40%, transparent);\n }\n .fg-50 {\n color: color-mix(in oklch, var(--fg) 50%, transparent);\n }\n .fg-60 {\n color: color-mix(in oklch, var(--fg) 60%, transparent);\n }\n .fg-70 {\n color: color-mix(in oklch, var(--fg) 70%, transparent);\n }\n .fg-80 {\n color: color-mix(in oklch, var(--fg) 80%, transparent);\n }\n .fg-90 {\n color: color-mix(in oklch, var(--fg) 90%, transparent);\n }\n .fg-100 {\n color: var(--fg);\n }\n .link-10 {\n color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .hover\\:link-10:hover {\n color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .link-20 {\n color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .hover\\:link-20:hover {\n color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .link-30 {\n color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .hover\\:link-30:hover {\n color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .link-40 {\n color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .hover\\:link-40:hover {\n color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .link-50 {\n color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .hover\\:link-50:hover {\n color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .link-60 {\n color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .hover\\:link-60:hover {\n color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .link-70 {\n color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .hover\\:link-70:hover {\n color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .link-80 {\n color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .hover\\:link-80:hover {\n color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .link-90 {\n color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .hover\\:link-90:hover {\n color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .link-100 {\n color: var(--link-color);\n }\n .hover\\:link-100:hover {\n color: var(--link-color);\n }\n .underline-offset-1 {\n text-underline-offset: 0.125em;\n }\n .hover\\:underline-offset-1:hover {\n text-underline-offset: 0.125em;\n }\n .underline-offset-2 {\n text-underline-offset: 0.25em;\n }\n .hover\\:underline-offset-2:hover {\n text-underline-offset: 0.25em;\n }\n .underline-offset-3 {\n text-underline-offset: 0.375em;\n }\n .hover\\:underline-offset-3:hover {\n text-underline-offset: 0.375em;\n }\n .underline-primary {\n text-decoration-color: light-dark(var(--blue-600), var(--blue-400));\n }\n .underline-accent {\n text-decoration-color: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n }\n .underline-success {\n text-decoration-color: light-dark(var(--green-600), var(--green-400));\n }\n .underline-danger {\n text-decoration-color: light-dark(var(--red-600), var(--red-400));\n }\n .underline-warning {\n text-decoration-color: light-dark(var(--yellow-700), var(--yellow-400));\n }\n .underline-info {\n text-decoration-color: light-dark(var(--cyan-600), var(--cyan-400));\n }\n .underline-inverse {\n text-decoration-color: light-dark(var(--gray-900), var(--gray-200));\n }\n .underline-secondary {\n text-decoration-color: light-dark(var(--gray-600), var(--gray-400));\n }\n .underline-10 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .hover\\:underline-10:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .underline-20 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .hover\\:underline-20:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .underline-30 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .hover\\:underline-30:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .underline-40 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .hover\\:underline-40:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .underline-50 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .hover\\:underline-50:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .underline-60 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .hover\\:underline-60:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .underline-70 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .hover\\:underline-70:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .underline-80 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .hover\\:underline-80:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .underline-90 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .hover\\:underline-90:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .underline-100 {\n text-decoration-color: var(--link-color);\n }\n .hover\\:underline-100:hover {\n text-decoration-color: var(--link-color);\n }\n .underline-thickness-1 {\n text-decoration-thickness: 1px;\n }\n .hover\\:underline-thickness-1:hover {\n text-decoration-thickness: 1px;\n }\n .underline-thickness-2 {\n text-decoration-thickness: 2px;\n }\n .hover\\:underline-thickness-2:hover {\n text-decoration-thickness: 2px;\n }\n .underline-thickness-3 {\n text-decoration-thickness: 3px;\n }\n .hover\\:underline-thickness-3:hover {\n text-decoration-thickness: 3px;\n }\n .underline-thickness-4 {\n text-decoration-thickness: 4px;\n }\n .hover\\:underline-thickness-4:hover {\n text-decoration-thickness: 4px;\n }\n .underline-thickness-5 {\n text-decoration-thickness: 5px;\n }\n .hover\\:underline-thickness-5:hover {\n text-decoration-thickness: 5px;\n }\n .bg-primary {\n --bg: var(--primary-bg);\n background-color: var(--bg);\n }\n .bg-accent {\n --bg: var(--accent-bg);\n background-color: var(--bg);\n }\n .bg-success {\n --bg: var(--success-bg);\n background-color: var(--bg);\n }\n .bg-danger {\n --bg: var(--danger-bg);\n background-color: var(--bg);\n }\n .bg-warning {\n --bg: var(--warning-bg);\n background-color: var(--bg);\n }\n .bg-info {\n --bg: var(--info-bg);\n background-color: var(--bg);\n }\n .bg-inverse {\n --bg: var(--inverse-bg);\n background-color: var(--bg);\n }\n .bg-secondary {\n --bg: var(--secondary-bg);\n background-color: var(--bg);\n }\n .bg-body {\n --bg: var(--bg-body);\n background-color: var(--bg);\n }\n .bg-1 {\n --bg: var(--bg-1);\n background-color: var(--bg);\n }\n .bg-2 {\n --bg: var(--bg-2);\n background-color: var(--bg);\n }\n .bg-3 {\n --bg: var(--bg-3);\n background-color: var(--bg);\n }\n .bg-4 {\n --bg: var(--bg-4);\n background-color: var(--bg);\n }\n .bg-fg {\n --bg: var(--bg-fg);\n background-color: var(--bg);\n }\n .bg-white {\n --bg: var(--bg-white);\n background-color: var(--bg);\n }\n .bg-black {\n --bg: var(--bg-black);\n background-color: var(--bg);\n }\n .bg-transparent {\n --bg: var(--bg-transparent);\n background-color: var(--bg);\n }\n .bg-subtle-primary {\n --bg: var(--primary-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-accent {\n --bg: var(--accent-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-success {\n --bg: var(--success-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-danger {\n --bg: var(--danger-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-warning {\n --bg: var(--warning-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-info {\n --bg: var(--info-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-inverse {\n --bg: var(--inverse-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-secondary {\n --bg: var(--secondary-bg-subtle);\n background-color: var(--bg);\n }\n .bg-muted-primary {\n --bg: var(--primary-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-accent {\n --bg: var(--accent-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-success {\n --bg: var(--success-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-danger {\n --bg: var(--danger-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-warning {\n --bg: var(--warning-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-info {\n --bg: var(--info-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-inverse {\n --bg: var(--inverse-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-secondary {\n --bg: var(--secondary-bg-muted);\n background-color: var(--bg);\n }\n .bg-10 {\n background-color: color-mix(in oklch, var(--bg) 10%, transparent);\n }\n .bg-20 {\n background-color: color-mix(in oklch, var(--bg) 20%, transparent);\n }\n .bg-30 {\n background-color: color-mix(in oklch, var(--bg) 30%, transparent);\n }\n .bg-40 {\n background-color: color-mix(in oklch, var(--bg) 40%, transparent);\n }\n .bg-50 {\n background-color: color-mix(in oklch, var(--bg) 50%, transparent);\n }\n .bg-60 {\n background-color: color-mix(in oklch, var(--bg) 60%, transparent);\n }\n .bg-70 {\n background-color: color-mix(in oklch, var(--bg) 70%, transparent);\n }\n .bg-80 {\n background-color: color-mix(in oklch, var(--bg) 80%, transparent);\n }\n .bg-90 {\n background-color: color-mix(in oklch, var(--bg) 90%, transparent);\n }\n .bg-100 {\n background-color: var(--bg);\n }\n .theme-contrast {\n background-color: var(--theme-bg);\n color: var(--theme-contrast);\n }\n .theme-subtle {\n background-color: var(--theme-bg-subtle);\n color: var(--theme-fg);\n }\n .theme-muted {\n background-color: var(--theme-bg-muted);\n color: var(--theme-fg-emphasis);\n }\n .theme-border {\n border: var(--border-width) solid var(--theme-border);\n }\n .bg-gradient {\n background-image: var(--gradient);\n }\n .user-select-all {\n user-select: all;\n }\n .user-select-auto {\n user-select: auto;\n }\n .user-select-text {\n user-select: text;\n }\n .user-select-none {\n user-select: none;\n }\n .pe-none {\n pointer-events: none;\n }\n .pe-auto {\n pointer-events: auto;\n }\n .rounded-0 {\n --rounded-size: 0;\n border-radius: var(--rounded-size);\n }\n .rounded-1 {\n --rounded-size: 0.125rem;\n border-radius: var(--rounded-size);\n }\n .rounded-2 {\n --rounded-size: 0.1875rem;\n border-radius: var(--rounded-size);\n }\n .rounded-3 {\n --rounded-size: 0.25rem;\n border-radius: var(--rounded-size);\n }\n .rounded-4 {\n --rounded-size: 0.375rem;\n border-radius: var(--rounded-size);\n }\n .rounded-5 {\n --rounded-size: 0.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded-6 {\n --rounded-size: 0.625rem;\n border-radius: var(--rounded-size);\n }\n .rounded-7 {\n --rounded-size: 0.75rem;\n border-radius: var(--rounded-size);\n }\n .rounded-8 {\n --rounded-size: 1rem;\n border-radius: var(--rounded-size);\n }\n .rounded-9 {\n --rounded-size: 1.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded {\n --rounded-size: 0.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded-circle {\n --rounded-size: 50%;\n border-radius: var(--rounded-size);\n }\n .rounded-pill {\n --rounded-size: var(--radius-pill);\n border-radius: var(--rounded-size);\n }\n .rounded-size-0 {\n --rounded-size: 0;\n }\n .rounded-size-1 {\n --rounded-size: 0.125rem;\n }\n .rounded-size-2 {\n --rounded-size: 0.1875rem;\n }\n .rounded-size-3 {\n --rounded-size: 0.25rem;\n }\n .rounded-size-4 {\n --rounded-size: 0.375rem;\n }\n .rounded-size-5 {\n --rounded-size: 0.5rem;\n }\n .rounded-size-6 {\n --rounded-size: 0.625rem;\n }\n .rounded-size-7 {\n --rounded-size: 0.75rem;\n }\n .rounded-size-8 {\n --rounded-size: 1rem;\n }\n .rounded-size-9 {\n --rounded-size: 1.5rem;\n }\n .rounded-size {\n --rounded-size: 0.5rem;\n }\n .rounded-size-circle {\n --rounded-size: 50%;\n }\n .rounded-size-pill {\n --rounded-size: var(--radius-pill);\n }\n .rounded-top-0 {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n .rounded-top-1 {\n border-start-start-radius: 0.125rem;\n border-start-end-radius: 0.125rem;\n }\n .rounded-top-2 {\n border-start-start-radius: 0.1875rem;\n border-start-end-radius: 0.1875rem;\n }\n .rounded-top-3 {\n border-start-start-radius: 0.25rem;\n border-start-end-radius: 0.25rem;\n }\n .rounded-top-4 {\n border-start-start-radius: 0.375rem;\n border-start-end-radius: 0.375rem;\n }\n .rounded-top-5 {\n border-start-start-radius: 0.5rem;\n border-start-end-radius: 0.5rem;\n }\n .rounded-top-6 {\n border-start-start-radius: 0.625rem;\n border-start-end-radius: 0.625rem;\n }\n .rounded-top-7 {\n border-start-start-radius: 0.75rem;\n border-start-end-radius: 0.75rem;\n }\n .rounded-top-8 {\n border-start-start-radius: 1rem;\n border-start-end-radius: 1rem;\n }\n .rounded-top-9 {\n border-start-start-radius: 1.5rem;\n border-start-end-radius: 1.5rem;\n }\n .rounded-top {\n border-start-start-radius: var(--rounded-size, var(--radius-5));\n border-start-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-top-circle {\n border-start-start-radius: 50%;\n border-start-end-radius: 50%;\n }\n .rounded-top-pill {\n border-start-start-radius: var(--radius-pill);\n border-start-end-radius: var(--radius-pill);\n }\n .rounded-end-0 {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .rounded-end-1 {\n border-start-end-radius: 0.125rem;\n border-end-end-radius: 0.125rem;\n }\n .rounded-end-2 {\n border-start-end-radius: 0.1875rem;\n border-end-end-radius: 0.1875rem;\n }\n .rounded-end-3 {\n border-start-end-radius: 0.25rem;\n border-end-end-radius: 0.25rem;\n }\n .rounded-end-4 {\n border-start-end-radius: 0.375rem;\n border-end-end-radius: 0.375rem;\n }\n .rounded-end-5 {\n border-start-end-radius: 0.5rem;\n border-end-end-radius: 0.5rem;\n }\n .rounded-end-6 {\n border-start-end-radius: 0.625rem;\n border-end-end-radius: 0.625rem;\n }\n .rounded-end-7 {\n border-start-end-radius: 0.75rem;\n border-end-end-radius: 0.75rem;\n }\n .rounded-end-8 {\n border-start-end-radius: 1rem;\n border-end-end-radius: 1rem;\n }\n .rounded-end-9 {\n border-start-end-radius: 1.5rem;\n border-end-end-radius: 1.5rem;\n }\n .rounded-end {\n border-start-end-radius: var(--rounded-size, var(--radius-5));\n border-end-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-end-circle {\n border-start-end-radius: 50%;\n border-end-end-radius: 50%;\n }\n .rounded-end-pill {\n border-start-end-radius: var(--radius-pill);\n border-end-end-radius: var(--radius-pill);\n }\n .rounded-bottom-0 {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .rounded-bottom-1 {\n border-end-start-radius: 0.125rem;\n border-end-end-radius: 0.125rem;\n }\n .rounded-bottom-2 {\n border-end-start-radius: 0.1875rem;\n border-end-end-radius: 0.1875rem;\n }\n .rounded-bottom-3 {\n border-end-start-radius: 0.25rem;\n border-end-end-radius: 0.25rem;\n }\n .rounded-bottom-4 {\n border-end-start-radius: 0.375rem;\n border-end-end-radius: 0.375rem;\n }\n .rounded-bottom-5 {\n border-end-start-radius: 0.5rem;\n border-end-end-radius: 0.5rem;\n }\n .rounded-bottom-6 {\n border-end-start-radius: 0.625rem;\n border-end-end-radius: 0.625rem;\n }\n .rounded-bottom-7 {\n border-end-start-radius: 0.75rem;\n border-end-end-radius: 0.75rem;\n }\n .rounded-bottom-8 {\n border-end-start-radius: 1rem;\n border-end-end-radius: 1rem;\n }\n .rounded-bottom-9 {\n border-end-start-radius: 1.5rem;\n border-end-end-radius: 1.5rem;\n }\n .rounded-bottom {\n border-end-start-radius: var(--rounded-size, var(--radius-5));\n border-end-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-bottom-circle {\n border-end-start-radius: 50%;\n border-end-end-radius: 50%;\n }\n .rounded-bottom-pill {\n border-end-start-radius: var(--radius-pill);\n border-end-end-radius: var(--radius-pill);\n }\n .rounded-start-0 {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .rounded-start-1 {\n border-start-start-radius: 0.125rem;\n border-end-start-radius: 0.125rem;\n }\n .rounded-start-2 {\n border-start-start-radius: 0.1875rem;\n border-end-start-radius: 0.1875rem;\n }\n .rounded-start-3 {\n border-start-start-radius: 0.25rem;\n border-end-start-radius: 0.25rem;\n }\n .rounded-start-4 {\n border-start-start-radius: 0.375rem;\n border-end-start-radius: 0.375rem;\n }\n .rounded-start-5 {\n border-start-start-radius: 0.5rem;\n border-end-start-radius: 0.5rem;\n }\n .rounded-start-6 {\n border-start-start-radius: 0.625rem;\n border-end-start-radius: 0.625rem;\n }\n .rounded-start-7 {\n border-start-start-radius: 0.75rem;\n border-end-start-radius: 0.75rem;\n }\n .rounded-start-8 {\n border-start-start-radius: 1rem;\n border-end-start-radius: 1rem;\n }\n .rounded-start-9 {\n border-start-start-radius: 1.5rem;\n border-end-start-radius: 1.5rem;\n }\n .rounded-start {\n border-start-start-radius: var(--rounded-size, var(--radius-5));\n border-end-start-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-start-circle {\n border-start-start-radius: 50%;\n border-end-start-radius: 50%;\n }\n .rounded-start-pill {\n border-start-start-radius: var(--radius-pill);\n border-end-start-radius: var(--radius-pill);\n }\n .visible {\n visibility: visible;\n }\n .invisible {\n visibility: hidden;\n }\n .z-n1 {\n z-index: -1;\n }\n .z-0 {\n z-index: 0;\n }\n .z-1 {\n z-index: 1;\n }\n .z-2 {\n z-index: 2;\n }\n .z-3 {\n z-index: 3;\n }\n @media (width >= 576px) {\n .sm\\:float-start {\n float: inline-start;\n }\n .sm\\:float-end {\n float: inline-end;\n }\n .sm\\:float-none {\n float: none;\n }\n .sm\\:object-fit-contain {\n object-fit: contain;\n }\n .sm\\:object-fit-cover {\n object-fit: cover;\n }\n .sm\\:object-fit-fill {\n object-fit: fill;\n }\n .sm\\:object-fit-scale {\n object-fit: scale-down;\n }\n .sm\\:object-fit-none {\n object-fit: none;\n }\n .sm\\:d-inline {\n display: inline;\n }\n .sm\\:d-inline-block {\n display: inline-block;\n }\n .sm\\:d-block {\n display: block;\n }\n .sm\\:d-grid {\n display: grid;\n }\n .sm\\:d-inline-grid {\n display: inline-grid;\n }\n .sm\\:d-table {\n display: table;\n }\n .sm\\:d-table-row {\n display: table-row;\n }\n .sm\\:d-table-cell {\n display: table-cell;\n }\n .sm\\:d-flex {\n display: flex;\n }\n .sm\\:d-inline-flex {\n display: inline-flex;\n }\n .sm\\:d-contents {\n display: contents;\n }\n .sm\\:d-flow-root {\n display: flow-root;\n }\n .sm\\:d-none {\n display: none;\n }\n .sm\\:flex-fill {\n flex: 1 1 auto;\n }\n .sm\\:flex-row {\n flex-direction: row;\n }\n .sm\\:flex-column {\n flex-direction: column;\n }\n .sm\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .sm\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .sm\\:flex-grow-0 {\n flex-grow: 0;\n }\n .sm\\:flex-grow-1 {\n flex-grow: 1;\n }\n .sm\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .sm\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .sm\\:flex-wrap {\n flex-wrap: wrap;\n }\n .sm\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .sm\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .sm\\:justify-content-start {\n justify-content: flex-start;\n }\n .sm\\:justify-content-end {\n justify-content: flex-end;\n }\n .sm\\:justify-content-center {\n justify-content: center;\n }\n .sm\\:justify-content-between {\n justify-content: space-between;\n }\n .sm\\:justify-content-around {\n justify-content: space-around;\n }\n .sm\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .sm\\:justify-items-start {\n justify-items: start;\n }\n .sm\\:justify-items-end {\n justify-items: end;\n }\n .sm\\:justify-items-center {\n justify-items: center;\n }\n .sm\\:justify-items-stretch {\n justify-items: stretch;\n }\n .sm\\:justify-self-start {\n justify-self: start;\n }\n .sm\\:justify-self-end {\n justify-self: end;\n }\n .sm\\:justify-self-center {\n justify-self: center;\n }\n .sm\\:align-items-start {\n align-items: flex-start;\n }\n .sm\\:align-items-end {\n align-items: flex-end;\n }\n .sm\\:align-items-center {\n align-items: center;\n }\n .sm\\:align-items-baseline {\n align-items: baseline;\n }\n .sm\\:align-items-stretch {\n align-items: stretch;\n }\n .sm\\:align-content-start {\n align-content: flex-start;\n }\n .sm\\:align-content-end {\n align-content: flex-end;\n }\n .sm\\:align-content-center {\n align-content: center;\n }\n .sm\\:align-content-between {\n align-content: space-between;\n }\n .sm\\:align-content-around {\n align-content: space-around;\n }\n .sm\\:align-content-stretch {\n align-content: stretch;\n }\n .sm\\:align-self-auto {\n align-self: auto;\n }\n .sm\\:align-self-start {\n align-self: flex-start;\n }\n .sm\\:align-self-end {\n align-self: flex-end;\n }\n .sm\\:align-self-center {\n align-self: center;\n }\n .sm\\:align-self-baseline {\n align-self: baseline;\n }\n .sm\\:align-self-stretch {\n align-self: stretch;\n }\n .sm\\:place-items-start {\n place-items: start;\n }\n .sm\\:place-items-end {\n place-items: end;\n }\n .sm\\:place-items-center {\n place-items: center;\n }\n .sm\\:place-items-stretch {\n place-items: stretch;\n }\n .sm\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .sm\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .sm\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .sm\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .sm\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .sm\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .sm\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .sm\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .sm\\:order-first {\n order: -1;\n }\n .sm\\:order-0 {\n order: 0;\n }\n .sm\\:order-1 {\n order: 1;\n }\n .sm\\:order-2 {\n order: 2;\n }\n .sm\\:order-3 {\n order: 3;\n }\n .sm\\:order-4 {\n order: 4;\n }\n .sm\\:order-5 {\n order: 5;\n }\n .sm\\:order-last {\n order: 6;\n }\n .sm\\:m-0 {\n margin: 0;\n }\n .sm\\:m-1 {\n margin: 0.25rem;\n }\n .sm\\:m-2 {\n margin: 0.5rem;\n }\n .sm\\:m-3 {\n margin: 0.75rem;\n }\n .sm\\:m-4 {\n margin: 1rem;\n }\n .sm\\:m-5 {\n margin: 1.25rem;\n }\n .sm\\:m-6 {\n margin: 1.5rem;\n }\n .sm\\:m-7 {\n margin: 2rem;\n }\n .sm\\:m-8 {\n margin: 2.5rem;\n }\n .sm\\:m-9 {\n margin: 3rem;\n }\n .sm\\:m-auto {\n margin: auto;\n }\n .sm\\:mx-0 {\n margin-inline: 0;\n }\n .sm\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .sm\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .sm\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .sm\\:mx-4 {\n margin-inline: 1rem;\n }\n .sm\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .sm\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .sm\\:mx-7 {\n margin-inline: 2rem;\n }\n .sm\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .sm\\:mx-9 {\n margin-inline: 3rem;\n }\n .sm\\:mx-auto {\n margin-inline: auto;\n }\n .sm\\:my-0 {\n margin-block: 0;\n }\n .sm\\:my-1 {\n margin-block: 0.25rem;\n }\n .sm\\:my-2 {\n margin-block: 0.5rem;\n }\n .sm\\:my-3 {\n margin-block: 0.75rem;\n }\n .sm\\:my-4 {\n margin-block: 1rem;\n }\n .sm\\:my-5 {\n margin-block: 1.25rem;\n }\n .sm\\:my-6 {\n margin-block: 1.5rem;\n }\n .sm\\:my-7 {\n margin-block: 2rem;\n }\n .sm\\:my-8 {\n margin-block: 2.5rem;\n }\n .sm\\:my-9 {\n margin-block: 3rem;\n }\n .sm\\:my-auto {\n margin-block: auto;\n }\n .sm\\:mt-0 {\n margin-block-start: 0;\n }\n .sm\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .sm\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .sm\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .sm\\:mt-4 {\n margin-block-start: 1rem;\n }\n .sm\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .sm\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .sm\\:mt-7 {\n margin-block-start: 2rem;\n }\n .sm\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .sm\\:mt-9 {\n margin-block-start: 3rem;\n }\n .sm\\:mt-auto {\n margin-block-start: auto;\n }\n .sm\\:me-0 {\n margin-inline-end: 0;\n }\n .sm\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .sm\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .sm\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .sm\\:me-4 {\n margin-inline-end: 1rem;\n }\n .sm\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .sm\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .sm\\:me-7 {\n margin-inline-end: 2rem;\n }\n .sm\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .sm\\:me-9 {\n margin-inline-end: 3rem;\n }\n .sm\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .sm\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .sm\\:me-auto {\n margin-inline-end: auto;\n }\n .sm\\:mb-0 {\n margin-block-end: 0;\n }\n .sm\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .sm\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .sm\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .sm\\:mb-4 {\n margin-block-end: 1rem;\n }\n .sm\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .sm\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .sm\\:mb-7 {\n margin-block-end: 2rem;\n }\n .sm\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .sm\\:mb-9 {\n margin-block-end: 3rem;\n }\n .sm\\:mb-auto {\n margin-block-end: auto;\n }\n .sm\\:ms-0 {\n margin-inline-start: 0;\n }\n .sm\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .sm\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .sm\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .sm\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .sm\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .sm\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .sm\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .sm\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .sm\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .sm\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .sm\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .sm\\:ms-auto {\n margin-inline-start: auto;\n }\n .sm\\:p-0 {\n padding: 0;\n }\n .sm\\:p-1 {\n padding: 0.25rem;\n }\n .sm\\:p-2 {\n padding: 0.5rem;\n }\n .sm\\:p-3 {\n padding: 0.75rem;\n }\n .sm\\:p-4 {\n padding: 1rem;\n }\n .sm\\:p-5 {\n padding: 1.25rem;\n }\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n .sm\\:p-7 {\n padding: 2rem;\n }\n .sm\\:p-8 {\n padding: 2.5rem;\n }\n .sm\\:p-9 {\n padding: 3rem;\n }\n .sm\\:px-0 {\n padding-inline: 0;\n }\n .sm\\:px-1 {\n padding-inline: 0.25rem;\n }\n .sm\\:px-2 {\n padding-inline: 0.5rem;\n }\n .sm\\:px-3 {\n padding-inline: 0.75rem;\n }\n .sm\\:px-4 {\n padding-inline: 1rem;\n }\n .sm\\:px-5 {\n padding-inline: 1.25rem;\n }\n .sm\\:px-6 {\n padding-inline: 1.5rem;\n }\n .sm\\:px-7 {\n padding-inline: 2rem;\n }\n .sm\\:px-8 {\n padding-inline: 2.5rem;\n }\n .sm\\:px-9 {\n padding-inline: 3rem;\n }\n .sm\\:py-0 {\n padding-block: 0;\n }\n .sm\\:py-1 {\n padding-block: 0.25rem;\n }\n .sm\\:py-2 {\n padding-block: 0.5rem;\n }\n .sm\\:py-3 {\n padding-block: 0.75rem;\n }\n .sm\\:py-4 {\n padding-block: 1rem;\n }\n .sm\\:py-5 {\n padding-block: 1.25rem;\n }\n .sm\\:py-6 {\n padding-block: 1.5rem;\n }\n .sm\\:py-7 {\n padding-block: 2rem;\n }\n .sm\\:py-8 {\n padding-block: 2.5rem;\n }\n .sm\\:py-9 {\n padding-block: 3rem;\n }\n .sm\\:pt-0 {\n padding-block-start: 0;\n }\n .sm\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .sm\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .sm\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .sm\\:pt-4 {\n padding-block-start: 1rem;\n }\n .sm\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .sm\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .sm\\:pt-7 {\n padding-block-start: 2rem;\n }\n .sm\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .sm\\:pt-9 {\n padding-block-start: 3rem;\n }\n .sm\\:pe-0 {\n padding-inline-end: 0;\n }\n .sm\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .sm\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .sm\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .sm\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .sm\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .sm\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .sm\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .sm\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .sm\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .sm\\:pb-0 {\n padding-block-end: 0;\n }\n .sm\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .sm\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .sm\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .sm\\:pb-4 {\n padding-block-end: 1rem;\n }\n .sm\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .sm\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .sm\\:pb-7 {\n padding-block-end: 2rem;\n }\n .sm\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .sm\\:pb-9 {\n padding-block-end: 3rem;\n }\n .sm\\:ps-0 {\n padding-inline-start: 0;\n }\n .sm\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .sm\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .sm\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .sm\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .sm\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .sm\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .sm\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .sm\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .sm\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .sm\\:gap-0 {\n gap: 0;\n }\n .sm\\:gap-1 {\n gap: 0.25rem;\n }\n .sm\\:gap-2 {\n gap: 0.5rem;\n }\n .sm\\:gap-3 {\n gap: 0.75rem;\n }\n .sm\\:gap-4 {\n gap: 1rem;\n }\n .sm\\:gap-5 {\n gap: 1.25rem;\n }\n .sm\\:gap-6 {\n gap: 1.5rem;\n }\n .sm\\:gap-7 {\n gap: 2rem;\n }\n .sm\\:gap-8 {\n gap: 2.5rem;\n }\n .sm\\:gap-9 {\n gap: 3rem;\n }\n .sm\\:row-gap-0 {\n row-gap: 0;\n }\n .sm\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .sm\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .sm\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .sm\\:row-gap-4 {\n row-gap: 1rem;\n }\n .sm\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .sm\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .sm\\:row-gap-7 {\n row-gap: 2rem;\n }\n .sm\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .sm\\:row-gap-9 {\n row-gap: 3rem;\n }\n .sm\\:column-gap-0 {\n column-gap: 0;\n }\n .sm\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .sm\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .sm\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .sm\\:column-gap-4 {\n column-gap: 1rem;\n }\n .sm\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .sm\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .sm\\:column-gap-7 {\n column-gap: 2rem;\n }\n .sm\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .sm\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.sm\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.sm\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.sm\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.sm\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.sm\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.sm\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.sm\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.sm\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.sm\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.sm\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.sm\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.sm\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.sm\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.sm\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.sm\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.sm\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.sm\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.sm\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.sm\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.sm\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.sm\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.sm\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.sm\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.sm\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .sm\\:text-start {\n text-align: start;\n }\n .sm\\:text-end {\n text-align: end;\n }\n .sm\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 768px) {\n .md\\:float-start {\n float: inline-start;\n }\n .md\\:float-end {\n float: inline-end;\n }\n .md\\:float-none {\n float: none;\n }\n .md\\:object-fit-contain {\n object-fit: contain;\n }\n .md\\:object-fit-cover {\n object-fit: cover;\n }\n .md\\:object-fit-fill {\n object-fit: fill;\n }\n .md\\:object-fit-scale {\n object-fit: scale-down;\n }\n .md\\:object-fit-none {\n object-fit: none;\n }\n .md\\:d-inline {\n display: inline;\n }\n .md\\:d-inline-block {\n display: inline-block;\n }\n .md\\:d-block {\n display: block;\n }\n .md\\:d-grid {\n display: grid;\n }\n .md\\:d-inline-grid {\n display: inline-grid;\n }\n .md\\:d-table {\n display: table;\n }\n .md\\:d-table-row {\n display: table-row;\n }\n .md\\:d-table-cell {\n display: table-cell;\n }\n .md\\:d-flex {\n display: flex;\n }\n .md\\:d-inline-flex {\n display: inline-flex;\n }\n .md\\:d-contents {\n display: contents;\n }\n .md\\:d-flow-root {\n display: flow-root;\n }\n .md\\:d-none {\n display: none;\n }\n .md\\:flex-fill {\n flex: 1 1 auto;\n }\n .md\\:flex-row {\n flex-direction: row;\n }\n .md\\:flex-column {\n flex-direction: column;\n }\n .md\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .md\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .md\\:flex-grow-0 {\n flex-grow: 0;\n }\n .md\\:flex-grow-1 {\n flex-grow: 1;\n }\n .md\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .md\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .md\\:flex-wrap {\n flex-wrap: wrap;\n }\n .md\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .md\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .md\\:justify-content-start {\n justify-content: flex-start;\n }\n .md\\:justify-content-end {\n justify-content: flex-end;\n }\n .md\\:justify-content-center {\n justify-content: center;\n }\n .md\\:justify-content-between {\n justify-content: space-between;\n }\n .md\\:justify-content-around {\n justify-content: space-around;\n }\n .md\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .md\\:justify-items-start {\n justify-items: start;\n }\n .md\\:justify-items-end {\n justify-items: end;\n }\n .md\\:justify-items-center {\n justify-items: center;\n }\n .md\\:justify-items-stretch {\n justify-items: stretch;\n }\n .md\\:justify-self-start {\n justify-self: start;\n }\n .md\\:justify-self-end {\n justify-self: end;\n }\n .md\\:justify-self-center {\n justify-self: center;\n }\n .md\\:align-items-start {\n align-items: flex-start;\n }\n .md\\:align-items-end {\n align-items: flex-end;\n }\n .md\\:align-items-center {\n align-items: center;\n }\n .md\\:align-items-baseline {\n align-items: baseline;\n }\n .md\\:align-items-stretch {\n align-items: stretch;\n }\n .md\\:align-content-start {\n align-content: flex-start;\n }\n .md\\:align-content-end {\n align-content: flex-end;\n }\n .md\\:align-content-center {\n align-content: center;\n }\n .md\\:align-content-between {\n align-content: space-between;\n }\n .md\\:align-content-around {\n align-content: space-around;\n }\n .md\\:align-content-stretch {\n align-content: stretch;\n }\n .md\\:align-self-auto {\n align-self: auto;\n }\n .md\\:align-self-start {\n align-self: flex-start;\n }\n .md\\:align-self-end {\n align-self: flex-end;\n }\n .md\\:align-self-center {\n align-self: center;\n }\n .md\\:align-self-baseline {\n align-self: baseline;\n }\n .md\\:align-self-stretch {\n align-self: stretch;\n }\n .md\\:place-items-start {\n place-items: start;\n }\n .md\\:place-items-end {\n place-items: end;\n }\n .md\\:place-items-center {\n place-items: center;\n }\n .md\\:place-items-stretch {\n place-items: stretch;\n }\n .md\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .md\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .md\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .md\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .md\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .md\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .md\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .md\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .md\\:order-first {\n order: -1;\n }\n .md\\:order-0 {\n order: 0;\n }\n .md\\:order-1 {\n order: 1;\n }\n .md\\:order-2 {\n order: 2;\n }\n .md\\:order-3 {\n order: 3;\n }\n .md\\:order-4 {\n order: 4;\n }\n .md\\:order-5 {\n order: 5;\n }\n .md\\:order-last {\n order: 6;\n }\n .md\\:m-0 {\n margin: 0;\n }\n .md\\:m-1 {\n margin: 0.25rem;\n }\n .md\\:m-2 {\n margin: 0.5rem;\n }\n .md\\:m-3 {\n margin: 0.75rem;\n }\n .md\\:m-4 {\n margin: 1rem;\n }\n .md\\:m-5 {\n margin: 1.25rem;\n }\n .md\\:m-6 {\n margin: 1.5rem;\n }\n .md\\:m-7 {\n margin: 2rem;\n }\n .md\\:m-8 {\n margin: 2.5rem;\n }\n .md\\:m-9 {\n margin: 3rem;\n }\n .md\\:m-auto {\n margin: auto;\n }\n .md\\:mx-0 {\n margin-inline: 0;\n }\n .md\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .md\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .md\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .md\\:mx-4 {\n margin-inline: 1rem;\n }\n .md\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .md\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .md\\:mx-7 {\n margin-inline: 2rem;\n }\n .md\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .md\\:mx-9 {\n margin-inline: 3rem;\n }\n .md\\:mx-auto {\n margin-inline: auto;\n }\n .md\\:my-0 {\n margin-block: 0;\n }\n .md\\:my-1 {\n margin-block: 0.25rem;\n }\n .md\\:my-2 {\n margin-block: 0.5rem;\n }\n .md\\:my-3 {\n margin-block: 0.75rem;\n }\n .md\\:my-4 {\n margin-block: 1rem;\n }\n .md\\:my-5 {\n margin-block: 1.25rem;\n }\n .md\\:my-6 {\n margin-block: 1.5rem;\n }\n .md\\:my-7 {\n margin-block: 2rem;\n }\n .md\\:my-8 {\n margin-block: 2.5rem;\n }\n .md\\:my-9 {\n margin-block: 3rem;\n }\n .md\\:my-auto {\n margin-block: auto;\n }\n .md\\:mt-0 {\n margin-block-start: 0;\n }\n .md\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .md\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .md\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .md\\:mt-4 {\n margin-block-start: 1rem;\n }\n .md\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .md\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .md\\:mt-7 {\n margin-block-start: 2rem;\n }\n .md\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .md\\:mt-9 {\n margin-block-start: 3rem;\n }\n .md\\:mt-auto {\n margin-block-start: auto;\n }\n .md\\:me-0 {\n margin-inline-end: 0;\n }\n .md\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .md\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .md\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .md\\:me-4 {\n margin-inline-end: 1rem;\n }\n .md\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .md\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .md\\:me-7 {\n margin-inline-end: 2rem;\n }\n .md\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .md\\:me-9 {\n margin-inline-end: 3rem;\n }\n .md\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .md\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .md\\:me-auto {\n margin-inline-end: auto;\n }\n .md\\:mb-0 {\n margin-block-end: 0;\n }\n .md\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .md\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .md\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .md\\:mb-4 {\n margin-block-end: 1rem;\n }\n .md\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .md\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .md\\:mb-7 {\n margin-block-end: 2rem;\n }\n .md\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .md\\:mb-9 {\n margin-block-end: 3rem;\n }\n .md\\:mb-auto {\n margin-block-end: auto;\n }\n .md\\:ms-0 {\n margin-inline-start: 0;\n }\n .md\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .md\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .md\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .md\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .md\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .md\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .md\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .md\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .md\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .md\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .md\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .md\\:ms-auto {\n margin-inline-start: auto;\n }\n .md\\:p-0 {\n padding: 0;\n }\n .md\\:p-1 {\n padding: 0.25rem;\n }\n .md\\:p-2 {\n padding: 0.5rem;\n }\n .md\\:p-3 {\n padding: 0.75rem;\n }\n .md\\:p-4 {\n padding: 1rem;\n }\n .md\\:p-5 {\n padding: 1.25rem;\n }\n .md\\:p-6 {\n padding: 1.5rem;\n }\n .md\\:p-7 {\n padding: 2rem;\n }\n .md\\:p-8 {\n padding: 2.5rem;\n }\n .md\\:p-9 {\n padding: 3rem;\n }\n .md\\:px-0 {\n padding-inline: 0;\n }\n .md\\:px-1 {\n padding-inline: 0.25rem;\n }\n .md\\:px-2 {\n padding-inline: 0.5rem;\n }\n .md\\:px-3 {\n padding-inline: 0.75rem;\n }\n .md\\:px-4 {\n padding-inline: 1rem;\n }\n .md\\:px-5 {\n padding-inline: 1.25rem;\n }\n .md\\:px-6 {\n padding-inline: 1.5rem;\n }\n .md\\:px-7 {\n padding-inline: 2rem;\n }\n .md\\:px-8 {\n padding-inline: 2.5rem;\n }\n .md\\:px-9 {\n padding-inline: 3rem;\n }\n .md\\:py-0 {\n padding-block: 0;\n }\n .md\\:py-1 {\n padding-block: 0.25rem;\n }\n .md\\:py-2 {\n padding-block: 0.5rem;\n }\n .md\\:py-3 {\n padding-block: 0.75rem;\n }\n .md\\:py-4 {\n padding-block: 1rem;\n }\n .md\\:py-5 {\n padding-block: 1.25rem;\n }\n .md\\:py-6 {\n padding-block: 1.5rem;\n }\n .md\\:py-7 {\n padding-block: 2rem;\n }\n .md\\:py-8 {\n padding-block: 2.5rem;\n }\n .md\\:py-9 {\n padding-block: 3rem;\n }\n .md\\:pt-0 {\n padding-block-start: 0;\n }\n .md\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .md\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .md\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .md\\:pt-4 {\n padding-block-start: 1rem;\n }\n .md\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .md\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .md\\:pt-7 {\n padding-block-start: 2rem;\n }\n .md\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .md\\:pt-9 {\n padding-block-start: 3rem;\n }\n .md\\:pe-0 {\n padding-inline-end: 0;\n }\n .md\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .md\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .md\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .md\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .md\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .md\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .md\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .md\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .md\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .md\\:pb-0 {\n padding-block-end: 0;\n }\n .md\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .md\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .md\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .md\\:pb-4 {\n padding-block-end: 1rem;\n }\n .md\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .md\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .md\\:pb-7 {\n padding-block-end: 2rem;\n }\n .md\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .md\\:pb-9 {\n padding-block-end: 3rem;\n }\n .md\\:ps-0 {\n padding-inline-start: 0;\n }\n .md\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .md\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .md\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .md\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .md\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .md\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .md\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .md\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .md\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .md\\:gap-0 {\n gap: 0;\n }\n .md\\:gap-1 {\n gap: 0.25rem;\n }\n .md\\:gap-2 {\n gap: 0.5rem;\n }\n .md\\:gap-3 {\n gap: 0.75rem;\n }\n .md\\:gap-4 {\n gap: 1rem;\n }\n .md\\:gap-5 {\n gap: 1.25rem;\n }\n .md\\:gap-6 {\n gap: 1.5rem;\n }\n .md\\:gap-7 {\n gap: 2rem;\n }\n .md\\:gap-8 {\n gap: 2.5rem;\n }\n .md\\:gap-9 {\n gap: 3rem;\n }\n .md\\:row-gap-0 {\n row-gap: 0;\n }\n .md\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .md\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .md\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .md\\:row-gap-4 {\n row-gap: 1rem;\n }\n .md\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .md\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .md\\:row-gap-7 {\n row-gap: 2rem;\n }\n .md\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .md\\:row-gap-9 {\n row-gap: 3rem;\n }\n .md\\:column-gap-0 {\n column-gap: 0;\n }\n .md\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .md\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .md\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .md\\:column-gap-4 {\n column-gap: 1rem;\n }\n .md\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .md\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .md\\:column-gap-7 {\n column-gap: 2rem;\n }\n .md\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .md\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.md\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.md\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.md\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.md\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.md\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.md\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.md\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.md\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.md\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.md\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.md\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.md\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.md\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.md\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.md\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.md\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.md\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.md\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.md\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.md\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.md\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.md\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.md\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.md\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .md\\:text-start {\n text-align: start;\n }\n .md\\:text-end {\n text-align: end;\n }\n .md\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1024px) {\n .lg\\:float-start {\n float: inline-start;\n }\n .lg\\:float-end {\n float: inline-end;\n }\n .lg\\:float-none {\n float: none;\n }\n .lg\\:object-fit-contain {\n object-fit: contain;\n }\n .lg\\:object-fit-cover {\n object-fit: cover;\n }\n .lg\\:object-fit-fill {\n object-fit: fill;\n }\n .lg\\:object-fit-scale {\n object-fit: scale-down;\n }\n .lg\\:object-fit-none {\n object-fit: none;\n }\n .lg\\:d-inline {\n display: inline;\n }\n .lg\\:d-inline-block {\n display: inline-block;\n }\n .lg\\:d-block {\n display: block;\n }\n .lg\\:d-grid {\n display: grid;\n }\n .lg\\:d-inline-grid {\n display: inline-grid;\n }\n .lg\\:d-table {\n display: table;\n }\n .lg\\:d-table-row {\n display: table-row;\n }\n .lg\\:d-table-cell {\n display: table-cell;\n }\n .lg\\:d-flex {\n display: flex;\n }\n .lg\\:d-inline-flex {\n display: inline-flex;\n }\n .lg\\:d-contents {\n display: contents;\n }\n .lg\\:d-flow-root {\n display: flow-root;\n }\n .lg\\:d-none {\n display: none;\n }\n .lg\\:flex-fill {\n flex: 1 1 auto;\n }\n .lg\\:flex-row {\n flex-direction: row;\n }\n .lg\\:flex-column {\n flex-direction: column;\n }\n .lg\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .lg\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .lg\\:flex-grow-0 {\n flex-grow: 0;\n }\n .lg\\:flex-grow-1 {\n flex-grow: 1;\n }\n .lg\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .lg\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .lg\\:flex-wrap {\n flex-wrap: wrap;\n }\n .lg\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .lg\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .lg\\:justify-content-start {\n justify-content: flex-start;\n }\n .lg\\:justify-content-end {\n justify-content: flex-end;\n }\n .lg\\:justify-content-center {\n justify-content: center;\n }\n .lg\\:justify-content-between {\n justify-content: space-between;\n }\n .lg\\:justify-content-around {\n justify-content: space-around;\n }\n .lg\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .lg\\:justify-items-start {\n justify-items: start;\n }\n .lg\\:justify-items-end {\n justify-items: end;\n }\n .lg\\:justify-items-center {\n justify-items: center;\n }\n .lg\\:justify-items-stretch {\n justify-items: stretch;\n }\n .lg\\:justify-self-start {\n justify-self: start;\n }\n .lg\\:justify-self-end {\n justify-self: end;\n }\n .lg\\:justify-self-center {\n justify-self: center;\n }\n .lg\\:align-items-start {\n align-items: flex-start;\n }\n .lg\\:align-items-end {\n align-items: flex-end;\n }\n .lg\\:align-items-center {\n align-items: center;\n }\n .lg\\:align-items-baseline {\n align-items: baseline;\n }\n .lg\\:align-items-stretch {\n align-items: stretch;\n }\n .lg\\:align-content-start {\n align-content: flex-start;\n }\n .lg\\:align-content-end {\n align-content: flex-end;\n }\n .lg\\:align-content-center {\n align-content: center;\n }\n .lg\\:align-content-between {\n align-content: space-between;\n }\n .lg\\:align-content-around {\n align-content: space-around;\n }\n .lg\\:align-content-stretch {\n align-content: stretch;\n }\n .lg\\:align-self-auto {\n align-self: auto;\n }\n .lg\\:align-self-start {\n align-self: flex-start;\n }\n .lg\\:align-self-end {\n align-self: flex-end;\n }\n .lg\\:align-self-center {\n align-self: center;\n }\n .lg\\:align-self-baseline {\n align-self: baseline;\n }\n .lg\\:align-self-stretch {\n align-self: stretch;\n }\n .lg\\:place-items-start {\n place-items: start;\n }\n .lg\\:place-items-end {\n place-items: end;\n }\n .lg\\:place-items-center {\n place-items: center;\n }\n .lg\\:place-items-stretch {\n place-items: stretch;\n }\n .lg\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .lg\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .lg\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .lg\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .lg\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .lg\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .lg\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .lg\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .lg\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .lg\\:order-first {\n order: -1;\n }\n .lg\\:order-0 {\n order: 0;\n }\n .lg\\:order-1 {\n order: 1;\n }\n .lg\\:order-2 {\n order: 2;\n }\n .lg\\:order-3 {\n order: 3;\n }\n .lg\\:order-4 {\n order: 4;\n }\n .lg\\:order-5 {\n order: 5;\n }\n .lg\\:order-last {\n order: 6;\n }\n .lg\\:m-0 {\n margin: 0;\n }\n .lg\\:m-1 {\n margin: 0.25rem;\n }\n .lg\\:m-2 {\n margin: 0.5rem;\n }\n .lg\\:m-3 {\n margin: 0.75rem;\n }\n .lg\\:m-4 {\n margin: 1rem;\n }\n .lg\\:m-5 {\n margin: 1.25rem;\n }\n .lg\\:m-6 {\n margin: 1.5rem;\n }\n .lg\\:m-7 {\n margin: 2rem;\n }\n .lg\\:m-8 {\n margin: 2.5rem;\n }\n .lg\\:m-9 {\n margin: 3rem;\n }\n .lg\\:m-auto {\n margin: auto;\n }\n .lg\\:mx-0 {\n margin-inline: 0;\n }\n .lg\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .lg\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .lg\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .lg\\:mx-4 {\n margin-inline: 1rem;\n }\n .lg\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .lg\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .lg\\:mx-7 {\n margin-inline: 2rem;\n }\n .lg\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .lg\\:mx-9 {\n margin-inline: 3rem;\n }\n .lg\\:mx-auto {\n margin-inline: auto;\n }\n .lg\\:my-0 {\n margin-block: 0;\n }\n .lg\\:my-1 {\n margin-block: 0.25rem;\n }\n .lg\\:my-2 {\n margin-block: 0.5rem;\n }\n .lg\\:my-3 {\n margin-block: 0.75rem;\n }\n .lg\\:my-4 {\n margin-block: 1rem;\n }\n .lg\\:my-5 {\n margin-block: 1.25rem;\n }\n .lg\\:my-6 {\n margin-block: 1.5rem;\n }\n .lg\\:my-7 {\n margin-block: 2rem;\n }\n .lg\\:my-8 {\n margin-block: 2.5rem;\n }\n .lg\\:my-9 {\n margin-block: 3rem;\n }\n .lg\\:my-auto {\n margin-block: auto;\n }\n .lg\\:mt-0 {\n margin-block-start: 0;\n }\n .lg\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .lg\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .lg\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .lg\\:mt-4 {\n margin-block-start: 1rem;\n }\n .lg\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .lg\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .lg\\:mt-7 {\n margin-block-start: 2rem;\n }\n .lg\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .lg\\:mt-9 {\n margin-block-start: 3rem;\n }\n .lg\\:mt-auto {\n margin-block-start: auto;\n }\n .lg\\:me-0 {\n margin-inline-end: 0;\n }\n .lg\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .lg\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .lg\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .lg\\:me-4 {\n margin-inline-end: 1rem;\n }\n .lg\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .lg\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .lg\\:me-7 {\n margin-inline-end: 2rem;\n }\n .lg\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .lg\\:me-9 {\n margin-inline-end: 3rem;\n }\n .lg\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .lg\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .lg\\:me-auto {\n margin-inline-end: auto;\n }\n .lg\\:mb-0 {\n margin-block-end: 0;\n }\n .lg\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .lg\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .lg\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .lg\\:mb-4 {\n margin-block-end: 1rem;\n }\n .lg\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .lg\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .lg\\:mb-7 {\n margin-block-end: 2rem;\n }\n .lg\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .lg\\:mb-9 {\n margin-block-end: 3rem;\n }\n .lg\\:mb-auto {\n margin-block-end: auto;\n }\n .lg\\:ms-0 {\n margin-inline-start: 0;\n }\n .lg\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .lg\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .lg\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .lg\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .lg\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .lg\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .lg\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .lg\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .lg\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .lg\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .lg\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .lg\\:ms-auto {\n margin-inline-start: auto;\n }\n .lg\\:p-0 {\n padding: 0;\n }\n .lg\\:p-1 {\n padding: 0.25rem;\n }\n .lg\\:p-2 {\n padding: 0.5rem;\n }\n .lg\\:p-3 {\n padding: 0.75rem;\n }\n .lg\\:p-4 {\n padding: 1rem;\n }\n .lg\\:p-5 {\n padding: 1.25rem;\n }\n .lg\\:p-6 {\n padding: 1.5rem;\n }\n .lg\\:p-7 {\n padding: 2rem;\n }\n .lg\\:p-8 {\n padding: 2.5rem;\n }\n .lg\\:p-9 {\n padding: 3rem;\n }\n .lg\\:px-0 {\n padding-inline: 0;\n }\n .lg\\:px-1 {\n padding-inline: 0.25rem;\n }\n .lg\\:px-2 {\n padding-inline: 0.5rem;\n }\n .lg\\:px-3 {\n padding-inline: 0.75rem;\n }\n .lg\\:px-4 {\n padding-inline: 1rem;\n }\n .lg\\:px-5 {\n padding-inline: 1.25rem;\n }\n .lg\\:px-6 {\n padding-inline: 1.5rem;\n }\n .lg\\:px-7 {\n padding-inline: 2rem;\n }\n .lg\\:px-8 {\n padding-inline: 2.5rem;\n }\n .lg\\:px-9 {\n padding-inline: 3rem;\n }\n .lg\\:py-0 {\n padding-block: 0;\n }\n .lg\\:py-1 {\n padding-block: 0.25rem;\n }\n .lg\\:py-2 {\n padding-block: 0.5rem;\n }\n .lg\\:py-3 {\n padding-block: 0.75rem;\n }\n .lg\\:py-4 {\n padding-block: 1rem;\n }\n .lg\\:py-5 {\n padding-block: 1.25rem;\n }\n .lg\\:py-6 {\n padding-block: 1.5rem;\n }\n .lg\\:py-7 {\n padding-block: 2rem;\n }\n .lg\\:py-8 {\n padding-block: 2.5rem;\n }\n .lg\\:py-9 {\n padding-block: 3rem;\n }\n .lg\\:pt-0 {\n padding-block-start: 0;\n }\n .lg\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .lg\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .lg\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .lg\\:pt-4 {\n padding-block-start: 1rem;\n }\n .lg\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .lg\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .lg\\:pt-7 {\n padding-block-start: 2rem;\n }\n .lg\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .lg\\:pt-9 {\n padding-block-start: 3rem;\n }\n .lg\\:pe-0 {\n padding-inline-end: 0;\n }\n .lg\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .lg\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .lg\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .lg\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .lg\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .lg\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .lg\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .lg\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .lg\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .lg\\:pb-0 {\n padding-block-end: 0;\n }\n .lg\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .lg\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .lg\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .lg\\:pb-4 {\n padding-block-end: 1rem;\n }\n .lg\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .lg\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .lg\\:pb-7 {\n padding-block-end: 2rem;\n }\n .lg\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .lg\\:pb-9 {\n padding-block-end: 3rem;\n }\n .lg\\:ps-0 {\n padding-inline-start: 0;\n }\n .lg\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .lg\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .lg\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .lg\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .lg\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .lg\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .lg\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .lg\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .lg\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .lg\\:gap-0 {\n gap: 0;\n }\n .lg\\:gap-1 {\n gap: 0.25rem;\n }\n .lg\\:gap-2 {\n gap: 0.5rem;\n }\n .lg\\:gap-3 {\n gap: 0.75rem;\n }\n .lg\\:gap-4 {\n gap: 1rem;\n }\n .lg\\:gap-5 {\n gap: 1.25rem;\n }\n .lg\\:gap-6 {\n gap: 1.5rem;\n }\n .lg\\:gap-7 {\n gap: 2rem;\n }\n .lg\\:gap-8 {\n gap: 2.5rem;\n }\n .lg\\:gap-9 {\n gap: 3rem;\n }\n .lg\\:row-gap-0 {\n row-gap: 0;\n }\n .lg\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .lg\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .lg\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .lg\\:row-gap-4 {\n row-gap: 1rem;\n }\n .lg\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .lg\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .lg\\:row-gap-7 {\n row-gap: 2rem;\n }\n .lg\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .lg\\:row-gap-9 {\n row-gap: 3rem;\n }\n .lg\\:column-gap-0 {\n column-gap: 0;\n }\n .lg\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .lg\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .lg\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .lg\\:column-gap-4 {\n column-gap: 1rem;\n }\n .lg\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .lg\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .lg\\:column-gap-7 {\n column-gap: 2rem;\n }\n .lg\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .lg\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.lg\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.lg\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.lg\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.lg\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.lg\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.lg\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.lg\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.lg\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.lg\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.lg\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.lg\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.lg\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.lg\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.lg\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.lg\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.lg\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.lg\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.lg\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.lg\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.lg\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.lg\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.lg\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.lg\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.lg\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .lg\\:text-start {\n text-align: start;\n }\n .lg\\:text-end {\n text-align: end;\n }\n .lg\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1280px) {\n .xl\\:float-start {\n float: inline-start;\n }\n .xl\\:float-end {\n float: inline-end;\n }\n .xl\\:float-none {\n float: none;\n }\n .xl\\:object-fit-contain {\n object-fit: contain;\n }\n .xl\\:object-fit-cover {\n object-fit: cover;\n }\n .xl\\:object-fit-fill {\n object-fit: fill;\n }\n .xl\\:object-fit-scale {\n object-fit: scale-down;\n }\n .xl\\:object-fit-none {\n object-fit: none;\n }\n .xl\\:d-inline {\n display: inline;\n }\n .xl\\:d-inline-block {\n display: inline-block;\n }\n .xl\\:d-block {\n display: block;\n }\n .xl\\:d-grid {\n display: grid;\n }\n .xl\\:d-inline-grid {\n display: inline-grid;\n }\n .xl\\:d-table {\n display: table;\n }\n .xl\\:d-table-row {\n display: table-row;\n }\n .xl\\:d-table-cell {\n display: table-cell;\n }\n .xl\\:d-flex {\n display: flex;\n }\n .xl\\:d-inline-flex {\n display: inline-flex;\n }\n .xl\\:d-contents {\n display: contents;\n }\n .xl\\:d-flow-root {\n display: flow-root;\n }\n .xl\\:d-none {\n display: none;\n }\n .xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .xl\\:flex-row {\n flex-direction: row;\n }\n .xl\\:flex-column {\n flex-direction: column;\n }\n .xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .xl\\:justify-content-center {\n justify-content: center;\n }\n .xl\\:justify-content-between {\n justify-content: space-between;\n }\n .xl\\:justify-content-around {\n justify-content: space-around;\n }\n .xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .xl\\:justify-items-start {\n justify-items: start;\n }\n .xl\\:justify-items-end {\n justify-items: end;\n }\n .xl\\:justify-items-center {\n justify-items: center;\n }\n .xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .xl\\:justify-self-start {\n justify-self: start;\n }\n .xl\\:justify-self-end {\n justify-self: end;\n }\n .xl\\:justify-self-center {\n justify-self: center;\n }\n .xl\\:align-items-start {\n align-items: flex-start;\n }\n .xl\\:align-items-end {\n align-items: flex-end;\n }\n .xl\\:align-items-center {\n align-items: center;\n }\n .xl\\:align-items-baseline {\n align-items: baseline;\n }\n .xl\\:align-items-stretch {\n align-items: stretch;\n }\n .xl\\:align-content-start {\n align-content: flex-start;\n }\n .xl\\:align-content-end {\n align-content: flex-end;\n }\n .xl\\:align-content-center {\n align-content: center;\n }\n .xl\\:align-content-between {\n align-content: space-between;\n }\n .xl\\:align-content-around {\n align-content: space-around;\n }\n .xl\\:align-content-stretch {\n align-content: stretch;\n }\n .xl\\:align-self-auto {\n align-self: auto;\n }\n .xl\\:align-self-start {\n align-self: flex-start;\n }\n .xl\\:align-self-end {\n align-self: flex-end;\n }\n .xl\\:align-self-center {\n align-self: center;\n }\n .xl\\:align-self-baseline {\n align-self: baseline;\n }\n .xl\\:align-self-stretch {\n align-self: stretch;\n }\n .xl\\:place-items-start {\n place-items: start;\n }\n .xl\\:place-items-end {\n place-items: end;\n }\n .xl\\:place-items-center {\n place-items: center;\n }\n .xl\\:place-items-stretch {\n place-items: stretch;\n }\n .xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .xl\\:order-first {\n order: -1;\n }\n .xl\\:order-0 {\n order: 0;\n }\n .xl\\:order-1 {\n order: 1;\n }\n .xl\\:order-2 {\n order: 2;\n }\n .xl\\:order-3 {\n order: 3;\n }\n .xl\\:order-4 {\n order: 4;\n }\n .xl\\:order-5 {\n order: 5;\n }\n .xl\\:order-last {\n order: 6;\n }\n .xl\\:m-0 {\n margin: 0;\n }\n .xl\\:m-1 {\n margin: 0.25rem;\n }\n .xl\\:m-2 {\n margin: 0.5rem;\n }\n .xl\\:m-3 {\n margin: 0.75rem;\n }\n .xl\\:m-4 {\n margin: 1rem;\n }\n .xl\\:m-5 {\n margin: 1.25rem;\n }\n .xl\\:m-6 {\n margin: 1.5rem;\n }\n .xl\\:m-7 {\n margin: 2rem;\n }\n .xl\\:m-8 {\n margin: 2.5rem;\n }\n .xl\\:m-9 {\n margin: 3rem;\n }\n .xl\\:m-auto {\n margin: auto;\n }\n .xl\\:mx-0 {\n margin-inline: 0;\n }\n .xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .xl\\:mx-auto {\n margin-inline: auto;\n }\n .xl\\:my-0 {\n margin-block: 0;\n }\n .xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .xl\\:my-4 {\n margin-block: 1rem;\n }\n .xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .xl\\:my-7 {\n margin-block: 2rem;\n }\n .xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .xl\\:my-9 {\n margin-block: 3rem;\n }\n .xl\\:my-auto {\n margin-block: auto;\n }\n .xl\\:mt-0 {\n margin-block-start: 0;\n }\n .xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .xl\\:mt-auto {\n margin-block-start: auto;\n }\n .xl\\:me-0 {\n margin-inline-end: 0;\n }\n .xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .xl\\:me-auto {\n margin-inline-end: auto;\n }\n .xl\\:mb-0 {\n margin-block-end: 0;\n }\n .xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .xl\\:mb-auto {\n margin-block-end: auto;\n }\n .xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .xl\\:p-0 {\n padding: 0;\n }\n .xl\\:p-1 {\n padding: 0.25rem;\n }\n .xl\\:p-2 {\n padding: 0.5rem;\n }\n .xl\\:p-3 {\n padding: 0.75rem;\n }\n .xl\\:p-4 {\n padding: 1rem;\n }\n .xl\\:p-5 {\n padding: 1.25rem;\n }\n .xl\\:p-6 {\n padding: 1.5rem;\n }\n .xl\\:p-7 {\n padding: 2rem;\n }\n .xl\\:p-8 {\n padding: 2.5rem;\n }\n .xl\\:p-9 {\n padding: 3rem;\n }\n .xl\\:px-0 {\n padding-inline: 0;\n }\n .xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .xl\\:px-4 {\n padding-inline: 1rem;\n }\n .xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .xl\\:px-7 {\n padding-inline: 2rem;\n }\n .xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .xl\\:px-9 {\n padding-inline: 3rem;\n }\n .xl\\:py-0 {\n padding-block: 0;\n }\n .xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .xl\\:py-4 {\n padding-block: 1rem;\n }\n .xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .xl\\:py-7 {\n padding-block: 2rem;\n }\n .xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .xl\\:py-9 {\n padding-block: 3rem;\n }\n .xl\\:pt-0 {\n padding-block-start: 0;\n }\n .xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .xl\\:pb-0 {\n padding-block-end: 0;\n }\n .xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .xl\\:gap-0 {\n gap: 0;\n }\n .xl\\:gap-1 {\n gap: 0.25rem;\n }\n .xl\\:gap-2 {\n gap: 0.5rem;\n }\n .xl\\:gap-3 {\n gap: 0.75rem;\n }\n .xl\\:gap-4 {\n gap: 1rem;\n }\n .xl\\:gap-5 {\n gap: 1.25rem;\n }\n .xl\\:gap-6 {\n gap: 1.5rem;\n }\n .xl\\:gap-7 {\n gap: 2rem;\n }\n .xl\\:gap-8 {\n gap: 2.5rem;\n }\n .xl\\:gap-9 {\n gap: 3rem;\n }\n .xl\\:row-gap-0 {\n row-gap: 0;\n }\n .xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .xl\\:column-gap-0 {\n column-gap: 0;\n }\n .xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.xl\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.xl\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.xl\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.xl\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.xl\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.xl\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.xl\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.xl\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.xl\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.xl\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.xl\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.xl\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.xl\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.xl\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.xl\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.xl\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.xl\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.xl\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.xl\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.xl\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.xl\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.xl\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.xl\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.xl\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .xl\\:text-start {\n text-align: start;\n }\n .xl\\:text-end {\n text-align: end;\n }\n .xl\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:float-start {\n float: inline-start;\n }\n .\\32 xl\\:float-end {\n float: inline-end;\n }\n .\\32 xl\\:float-none {\n float: none;\n }\n .\\32 xl\\:object-fit-contain {\n object-fit: contain;\n }\n .\\32 xl\\:object-fit-cover {\n object-fit: cover;\n }\n .\\32 xl\\:object-fit-fill {\n object-fit: fill;\n }\n .\\32 xl\\:object-fit-scale {\n object-fit: scale-down;\n }\n .\\32 xl\\:object-fit-none {\n object-fit: none;\n }\n .\\32 xl\\:d-inline {\n display: inline;\n }\n .\\32 xl\\:d-inline-block {\n display: inline-block;\n }\n .\\32 xl\\:d-block {\n display: block;\n }\n .\\32 xl\\:d-grid {\n display: grid;\n }\n .\\32 xl\\:d-inline-grid {\n display: inline-grid;\n }\n .\\32 xl\\:d-table {\n display: table;\n }\n .\\32 xl\\:d-table-row {\n display: table-row;\n }\n .\\32 xl\\:d-table-cell {\n display: table-cell;\n }\n .\\32 xl\\:d-flex {\n display: flex;\n }\n .\\32 xl\\:d-inline-flex {\n display: inline-flex;\n }\n .\\32 xl\\:d-contents {\n display: contents;\n }\n .\\32 xl\\:d-flow-root {\n display: flow-root;\n }\n .\\32 xl\\:d-none {\n display: none;\n }\n .\\32 xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .\\32 xl\\:flex-row {\n flex-direction: row;\n }\n .\\32 xl\\:flex-column {\n flex-direction: column;\n }\n .\\32 xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .\\32 xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .\\32 xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .\\32 xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .\\32 xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .\\32 xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .\\32 xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .\\32 xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .\\32 xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .\\32 xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .\\32 xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .\\32 xl\\:justify-content-center {\n justify-content: center;\n }\n .\\32 xl\\:justify-content-between {\n justify-content: space-between;\n }\n .\\32 xl\\:justify-content-around {\n justify-content: space-around;\n }\n .\\32 xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .\\32 xl\\:justify-items-start {\n justify-items: start;\n }\n .\\32 xl\\:justify-items-end {\n justify-items: end;\n }\n .\\32 xl\\:justify-items-center {\n justify-items: center;\n }\n .\\32 xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .\\32 xl\\:justify-self-start {\n justify-self: start;\n }\n .\\32 xl\\:justify-self-end {\n justify-self: end;\n }\n .\\32 xl\\:justify-self-center {\n justify-self: center;\n }\n .\\32 xl\\:align-items-start {\n align-items: flex-start;\n }\n .\\32 xl\\:align-items-end {\n align-items: flex-end;\n }\n .\\32 xl\\:align-items-center {\n align-items: center;\n }\n .\\32 xl\\:align-items-baseline {\n align-items: baseline;\n }\n .\\32 xl\\:align-items-stretch {\n align-items: stretch;\n }\n .\\32 xl\\:align-content-start {\n align-content: flex-start;\n }\n .\\32 xl\\:align-content-end {\n align-content: flex-end;\n }\n .\\32 xl\\:align-content-center {\n align-content: center;\n }\n .\\32 xl\\:align-content-between {\n align-content: space-between;\n }\n .\\32 xl\\:align-content-around {\n align-content: space-around;\n }\n .\\32 xl\\:align-content-stretch {\n align-content: stretch;\n }\n .\\32 xl\\:align-self-auto {\n align-self: auto;\n }\n .\\32 xl\\:align-self-start {\n align-self: flex-start;\n }\n .\\32 xl\\:align-self-end {\n align-self: flex-end;\n }\n .\\32 xl\\:align-self-center {\n align-self: center;\n }\n .\\32 xl\\:align-self-baseline {\n align-self: baseline;\n }\n .\\32 xl\\:align-self-stretch {\n align-self: stretch;\n }\n .\\32 xl\\:place-items-start {\n place-items: start;\n }\n .\\32 xl\\:place-items-end {\n place-items: end;\n }\n .\\32 xl\\:place-items-center {\n place-items: center;\n }\n .\\32 xl\\:place-items-stretch {\n place-items: stretch;\n }\n .\\32 xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .\\32 xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .\\32 xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .\\32 xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .\\32 xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .\\32 xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .\\32 xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .\\32 xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .\\32 xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .\\32 xl\\:order-first {\n order: -1;\n }\n .\\32 xl\\:order-0 {\n order: 0;\n }\n .\\32 xl\\:order-1 {\n order: 1;\n }\n .\\32 xl\\:order-2 {\n order: 2;\n }\n .\\32 xl\\:order-3 {\n order: 3;\n }\n .\\32 xl\\:order-4 {\n order: 4;\n }\n .\\32 xl\\:order-5 {\n order: 5;\n }\n .\\32 xl\\:order-last {\n order: 6;\n }\n .\\32 xl\\:m-0 {\n margin: 0;\n }\n .\\32 xl\\:m-1 {\n margin: 0.25rem;\n }\n .\\32 xl\\:m-2 {\n margin: 0.5rem;\n }\n .\\32 xl\\:m-3 {\n margin: 0.75rem;\n }\n .\\32 xl\\:m-4 {\n margin: 1rem;\n }\n .\\32 xl\\:m-5 {\n margin: 1.25rem;\n }\n .\\32 xl\\:m-6 {\n margin: 1.5rem;\n }\n .\\32 xl\\:m-7 {\n margin: 2rem;\n }\n .\\32 xl\\:m-8 {\n margin: 2.5rem;\n }\n .\\32 xl\\:m-9 {\n margin: 3rem;\n }\n .\\32 xl\\:m-auto {\n margin: auto;\n }\n .\\32 xl\\:mx-0 {\n margin-inline: 0;\n }\n .\\32 xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .\\32 xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .\\32 xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .\\32 xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .\\32 xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .\\32 xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .\\32 xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .\\32 xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .\\32 xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .\\32 xl\\:mx-auto {\n margin-inline: auto;\n }\n .\\32 xl\\:my-0 {\n margin-block: 0;\n }\n .\\32 xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .\\32 xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .\\32 xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .\\32 xl\\:my-4 {\n margin-block: 1rem;\n }\n .\\32 xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .\\32 xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .\\32 xl\\:my-7 {\n margin-block: 2rem;\n }\n .\\32 xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .\\32 xl\\:my-9 {\n margin-block: 3rem;\n }\n .\\32 xl\\:my-auto {\n margin-block: auto;\n }\n .\\32 xl\\:mt-0 {\n margin-block-start: 0;\n }\n .\\32 xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .\\32 xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .\\32 xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .\\32 xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .\\32 xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .\\32 xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .\\32 xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .\\32 xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .\\32 xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .\\32 xl\\:mt-auto {\n margin-block-start: auto;\n }\n .\\32 xl\\:me-0 {\n margin-inline-end: 0;\n }\n .\\32 xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .\\32 xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .\\32 xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .\\32 xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .\\32 xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .\\32 xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .\\32 xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .\\32 xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .\\32 xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .\\32 xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .\\32 xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .\\32 xl\\:me-auto {\n margin-inline-end: auto;\n }\n .\\32 xl\\:mb-0 {\n margin-block-end: 0;\n }\n .\\32 xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .\\32 xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .\\32 xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .\\32 xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .\\32 xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .\\32 xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .\\32 xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .\\32 xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .\\32 xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .\\32 xl\\:mb-auto {\n margin-block-end: auto;\n }\n .\\32 xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .\\32 xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .\\32 xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .\\32 xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .\\32 xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .\\32 xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .\\32 xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .\\32 xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .\\32 xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .\\32 xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .\\32 xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .\\32 xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .\\32 xl\\:p-0 {\n padding: 0;\n }\n .\\32 xl\\:p-1 {\n padding: 0.25rem;\n }\n .\\32 xl\\:p-2 {\n padding: 0.5rem;\n }\n .\\32 xl\\:p-3 {\n padding: 0.75rem;\n }\n .\\32 xl\\:p-4 {\n padding: 1rem;\n }\n .\\32 xl\\:p-5 {\n padding: 1.25rem;\n }\n .\\32 xl\\:p-6 {\n padding: 1.5rem;\n }\n .\\32 xl\\:p-7 {\n padding: 2rem;\n }\n .\\32 xl\\:p-8 {\n padding: 2.5rem;\n }\n .\\32 xl\\:p-9 {\n padding: 3rem;\n }\n .\\32 xl\\:px-0 {\n padding-inline: 0;\n }\n .\\32 xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .\\32 xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .\\32 xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .\\32 xl\\:px-4 {\n padding-inline: 1rem;\n }\n .\\32 xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .\\32 xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .\\32 xl\\:px-7 {\n padding-inline: 2rem;\n }\n .\\32 xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .\\32 xl\\:px-9 {\n padding-inline: 3rem;\n }\n .\\32 xl\\:py-0 {\n padding-block: 0;\n }\n .\\32 xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .\\32 xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .\\32 xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .\\32 xl\\:py-4 {\n padding-block: 1rem;\n }\n .\\32 xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .\\32 xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .\\32 xl\\:py-7 {\n padding-block: 2rem;\n }\n .\\32 xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .\\32 xl\\:py-9 {\n padding-block: 3rem;\n }\n .\\32 xl\\:pt-0 {\n padding-block-start: 0;\n }\n .\\32 xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .\\32 xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .\\32 xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .\\32 xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .\\32 xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .\\32 xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .\\32 xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .\\32 xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .\\32 xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .\\32 xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .\\32 xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .\\32 xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .\\32 xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .\\32 xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .\\32 xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .\\32 xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .\\32 xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .\\32 xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .\\32 xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .\\32 xl\\:pb-0 {\n padding-block-end: 0;\n }\n .\\32 xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .\\32 xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .\\32 xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .\\32 xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .\\32 xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .\\32 xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .\\32 xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .\\32 xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .\\32 xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .\\32 xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .\\32 xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .\\32 xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .\\32 xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .\\32 xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .\\32 xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .\\32 xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .\\32 xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .\\32 xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .\\32 xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .\\32 xl\\:gap-0 {\n gap: 0;\n }\n .\\32 xl\\:gap-1 {\n gap: 0.25rem;\n }\n .\\32 xl\\:gap-2 {\n gap: 0.5rem;\n }\n .\\32 xl\\:gap-3 {\n gap: 0.75rem;\n }\n .\\32 xl\\:gap-4 {\n gap: 1rem;\n }\n .\\32 xl\\:gap-5 {\n gap: 1.25rem;\n }\n .\\32 xl\\:gap-6 {\n gap: 1.5rem;\n }\n .\\32 xl\\:gap-7 {\n gap: 2rem;\n }\n .\\32 xl\\:gap-8 {\n gap: 2.5rem;\n }\n .\\32 xl\\:gap-9 {\n gap: 3rem;\n }\n .\\32 xl\\:row-gap-0 {\n row-gap: 0;\n }\n .\\32 xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .\\32 xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .\\32 xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .\\32 xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .\\32 xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .\\32 xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .\\32 xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .\\32 xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .\\32 xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .\\32 xl\\:column-gap-0 {\n column-gap: 0;\n }\n .\\32 xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .\\32 xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .\\32 xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .\\32 xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .\\32 xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .\\32 xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .\\32 xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .\\32 xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .\\32 xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.\\32 xl\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.\\32 xl\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.\\32 xl\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.\\32 xl\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.\\32 xl\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.\\32 xl\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.\\32 xl\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.\\32 xl\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.\\32 xl\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.\\32 xl\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.\\32 xl\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.\\32 xl\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.\\32 xl\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.\\32 xl\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.\\32 xl\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.\\32 xl\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.\\32 xl\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.\\32 xl\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.\\32 xl\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.\\32 xl\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.\\32 xl\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.\\32 xl\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.\\32 xl\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.\\32 xl\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .\\32 xl\\:text-start {\n text-align: start;\n }\n .\\32 xl\\:text-end {\n text-align: end;\n }\n .\\32 xl\\:text-center {\n text-align: center;\n }\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */\n","$file: \"\" !default;\n\n/*!\n * Bootstrap #{$file} v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n","// stylelint-disable hue-degree-notation, @stylistic/number-leading-zero\n\n@use \"sass:map\";\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n// Easily convert colors to oklch() with https://oklch.com/\n\n$white: #fff !default;\n$black: #000 !default;\n\n// scss-docs-start colors-list\n$blue: oklch(60% 0.24 240) !default;\n$indigo: oklch(56% 0.26 288) !default;\n$violet: oklch(56% 0.24 300) !default;\n$purple: oklch(56% 0.24 320) !default;\n$pink: oklch(60% 0.22 4) !default;\n$red: oklch(60% 0.22 20) !default;\n$orange: oklch(70% 0.22 52) !default;\n$amber: oklch(79% 0.2 78) !default;\n$yellow: oklch(88% 0.24 88) !default;\n$lime: oklch(65% 0.24 135) !default;\n$green: oklch(64% 0.22 160) !default;\n$teal: oklch(68% 0.22 190) !default;\n$cyan: oklch(69% 0.22 220) !default;\n$brown: oklch(60% 0.12 54) !default;\n$gray: oklch(60% 0.02 245) !default;\n$pewter: oklch(65% 0.01 290) !default;\n// scss-docs-end colors-list\n\n// scss-docs-start colors-map\n$colors: () !default;\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: defaults(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"violet\": $violet,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"amber\": $amber,\n \"yellow\": $yellow,\n \"lime\": $lime,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"brown\": $brown,\n \"gray\": $gray,\n \"pewter\": $pewter,\n ),\n $colors\n);\n// scss-docs-end colors-map\n\n// scss-docs-start color-mix-options\n$color-mix-space: lab !default;\n$tint-color: var(--white) !default;\n$shade-color: var(--black) !default;\n\n$color-tints: (\n \"025\": 94%,\n \"050\": 90%,\n \"100\": 80%,\n \"200\": 60%,\n \"300\": 40%,\n \"400\": 20%,\n) !default;\n\n$color-shades: (\n \"600\": 16%,\n \"700\": 32%,\n \"800\": 48%,\n \"900\": 64%,\n \"950\": 76%,\n \"975\": 88%,\n) !default;\n// scss-docs-end color-mix-options\n\n// scss-docs-start color-tokens\n$color-tokens: () !default;\n\n$-color-defaults: () !default;\n@each $color, $value in $colors {\n @each $stop, $percent in $color-tints {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$tint-color} #{$percent}, #{$value}));\n }\n $-color-defaults: map.set($-color-defaults, --#{$color}-500, #{$value});\n @each $stop, $percent in $color-shades {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$shade-color} #{$percent}, #{$value}));\n }\n}\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$color-tokens: defaults($-color-defaults, $color-tokens);\n// scss-docs-end color-tokens\n\n:root {\n @include tokens($color-tokens);\n}\n","// Mixin to output tokens as CSS custom properties\n\n// scss-docs-start mixin-tokens\n@mixin tokens($map) {\n @each $prop, $value in $map {\n #{$prop}: #{$value};\n }\n}\n// scss-docs-end mixin-tokens\n","@use \"sass:map\";\n@use \"colors\" as *;\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"theme\" as *;\n@use \"mixins/tokens\" as *;\n// mdo-do: do we need theme?\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n\n$root-tokens: () !default;\n\n// scss-docs-start root-tokens\n// stylelint-disable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: defaults(\n (\n --black: #{$black},\n --white: #{$white},\n\n --gradient: #{$gradient},\n\n // scss-docs-start root-font-weight-variables\n --font-weight-lighter: lighter,\n --font-weight-light: 300,\n --font-weight-normal: 400,\n --font-weight-medium: 500,\n --font-weight-semibold: 600,\n --font-weight-bold: 700,\n --font-weight-bolder: bolder,\n // scss-docs-end root-font-weight-variables\n\n // scss-docs-start root-body-variables\n --body-font-family: system-ui,\n --body-font-size: var(--font-size-base),\n --body-font-weight: #{$font-weight-base},\n --body-line-height: #{$line-height-base},\n\n --heading-color: #{$headings-color},\n\n --hr-border-color: var(--border-color),\n\n --link-color: light-dark(var(--primary-base), var(--primary-fg)),\n --link-decoration: #{$link-decoration},\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000),\n\n --font-mono: \"ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Monaco, 'Cascadia Mono', Consolas, 'Liberation Mono', monospace;\",\n --code-font-size: 95%,\n --code-color: var(--fg-2),\n\n // scss-docs-start root-border-var\n --border-width: #{$border-width},\n --border-style: #{$border-style},\n --border-color: light-dark(var(--gray-200), var(--gray-700)),\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent),\n // scss-docs-end root-border-var\n\n // scss-docs-start root-box-shadow-variables\n --box-shadow: 0 .5rem 1rem rgb(0 0 0 / 15%),\n --box-shadow-sm: 0 .125rem .25rem rgb(0 0 0 / 7.5%),\n --box-shadow-lg: 0 1rem 3rem rgb(0 0 0 / 17.5%),\n --box-shadow-inset: inset 0 1px 2px rgb(0 0 0 / 7.5%),\n // scss-docs-end root-box-shadow-variables\n\n --spacer: 1rem,\n\n // scss-docs-start root-focus-variables\n --focus-ring-width: 3px,\n --focus-ring-offset: 1px,\n --focus-ring-color: var(--primary-focus-ring),\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color),\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-variables\n --control-checked-bg: var(--primary-base),\n --control-checked-border-color: var(--control-checked-bg),\n --control-active-bg: var(--primary-base),\n --control-active-border-color: var(--control-active-bg),\n --control-disabled-bg: var(--bg-3),\n --control-disabled-opacity: .65,\n\n --btn-input-fg: var(--fg-body),\n --btn-input-bg: var(--bg-body),\n\n --btn-input-min-height: 2.375rem,\n --btn-input-padding-y: .375rem,\n --btn-input-padding-x: .75rem,\n --btn-input-font-size: var(--font-size-base),\n --btn-input-line-height: var(--line-height-base),\n --btn-input-border-radius: var(--radius-5),\n\n --btn-input-xs-min-height: 1.5rem,\n --btn-input-xs-padding-y: .125rem,\n --btn-input-xs-padding-x: .5rem,\n --btn-input-xs-font-size: var(--font-size-xs),\n --btn-input-xs-line-height: 1.125,\n --btn-input-xs-border-radius: var(--radius-5),\n\n --btn-input-sm-min-height: 2rem,\n --btn-input-sm-padding-y: .25rem,\n --btn-input-sm-padding-x: .625rem,\n --btn-input-sm-font-size: var(--font-size-sm),\n --btn-input-sm-line-height: var(--line-height-sm),\n --btn-input-sm-border-radius: var(--radius-5),\n\n --btn-input-lg-min-height: 2.75rem,\n --btn-input-lg-padding-y: .5rem,\n --btn-input-lg-padding-x: 1rem,\n --btn-input-lg-font-size: var(--font-size-md),\n --btn-input-lg-line-height: var(--line-height-md),\n --btn-input-lg-border-radius: var(--radius-7),\n // scss-docs-end root-form-variables\n ),\n $root-tokens\n);\n// stylelint-enable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// scss-docs-end root-tokens\n\n// scss-docs-start root-font-size-loop\n// Generate font-size and line-height tokens\n@each $name, $props in $font-sizes {\n $root-tokens: map.set($root-tokens, --font-size-#{$name}, map.get($props, \"font-size\"));\n $root-tokens: map.set($root-tokens, --line-height-#{$name}, map.get($props, \"line-height\"));\n}\n// scss-docs-end root-font-size-loop\n\n// scss-docs-start root-theme-tokens\n// Generate semantic theme colors\n@each $color-name, $color-map in $theme-colors {\n @each $key, $value in $color-map {\n $root-tokens: map.set($root-tokens, --#{$color-name}-#{$key}, $value);\n }\n}\n\n// Generate background tokens\n@each $key, $value in $theme-bgs {\n $root-tokens: map.set($root-tokens, --bg-#{$key}, $value);\n}\n\n// Generate foreground tokens\n@each $key, $value in $theme-fgs {\n $root-tokens: map.set($root-tokens, --fg-#{$key}, $value);\n}\n\n// Generate border tokens\n@each $key, $value in $theme-borders {\n $root-tokens: map.set($root-tokens, --border-#{$key}, $value);\n}\n// scss-docs-end root-theme-tokens\n\n// Generate breakpoint tokens\n@each $name, $value in $breakpoints {\n $root-tokens: map.set($root-tokens, --breakpoint-#{$name}, $value);\n}\n\n// Generate spacer tokens\n// scss-docs-start root-spacer-loop\n@each $key, $value in $spacers {\n $root-tokens: map.set($root-tokens, --spacer-#{$key}, $value);\n}\n// scss-docs-end root-spacer-loop\n\n// Generate radius tokens\n// scss-docs-start root-radius-loop\n@each $key, $value in $radii {\n $root-tokens: map.set($root-tokens, --radius-#{$key}, $value);\n}\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: map.set($root-tokens, --radius-pill, 50rem);\n// scss-docs-end root-radius-loop\n\n:root {\n @include tokens($root-tokens);\n\n color-scheme: light dark;\n // Always reserve the viewport scrollbar gutter so layout doesn't shift\n // when overflow: hidden is applied (e.g. when a dialog opens on Windows).\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=\"dark\"] {\n color-scheme: dark;\n}\n\n[data-bs-theme=\"light\"] {\n color-scheme: light;\n}\n","@use \"../config\" as *;\n@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n$reboot-kbd-tokens: () !default;\n$reboot-mark-tokens: () !default;\n\n// scss-docs-start reboot-kbd-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$reboot-kbd-tokens: defaults(\n (\n --kbd-padding-y: .125rem,\n --kbd-padding-x: .25rem,\n --kbd-font-size: var(--font-size-xs),\n --kbd-color: var(--bg-body),\n --kbd-bg: var(--fg-2),\n --kbd-border-radius: var(--radius-5),\n ),\n $reboot-kbd-tokens\n);\n// scss-docs-end reboot-kbd-tokens\n\n// scss-docs-start reboot-mark-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$reboot-mark-tokens: defaults(\n (\n --mark-padding: .1875em,\n --mark-color: var(--fg-body),\n --mark-bg: light-dark(var(--yellow-100), var(--yellow-900)),\n ),\n $reboot-mark-tokens\n);\n// scss-docs-end reboot-mark-tokens\n\n@layer reboot {\n // Reboot\n //\n // Normalization of HTML elements, manually forked from Normalize.css to remove\n // styles targeting irrelevant browsers while applying new styles.\n //\n // Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n // Document\n //\n // Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n // Root\n //\n // Ability to the value of the root font sizes, affecting the value of `rem`.\n // null by default, thus nothing is generated.\n\n :root {\n // Assume browser default font-size of 16px, or a user's preference\n accent-color: var(--primary-base);\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n }\n\n // Body\n //\n // 1. Remove the margin in all browsers.\n // 2. As a best practice, apply a default `background-color`.\n // 3. Prevent adjustments of font size after orientation changes in iOS.\n // 4. Change the default tap highlight to be completely transparent in iOS.\n\n // scss-docs-start reboot-body-rules\n body {\n margin: 0; // 1\n font-family: var(--body-font-family);\n font-size: var(--body-font-size);\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n color: var(--fg-body);\n text-align: var(--body-text-align);\n background-color: var(--bg-body); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: transparent; // 4\n }\n // scss-docs-end reboot-body-rules\n\n hr {\n margin: var(--hr-margin-y, var(--spacer)) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n\n // Typography\n //\n // 1. Remove top margins from headings\n // By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n // margin for easier control within type scales as it avoids margin collapsing.\n\n %heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: var(--heading-color);\n }\n\n h1,\n .h1 {\n @extend %heading;\n font-size: var(--font-size-3xl);\n }\n\n h2,\n .h2 {\n @extend %heading;\n font-size: var(--font-size-2xl);\n }\n\n h3,\n .h3 {\n @extend %heading;\n font-size: var(--font-size-xl);\n }\n\n h4,\n .h4 {\n @extend %heading;\n font-size: var(--font-size-lg);\n }\n\n h5,\n .h5 {\n @extend %heading;\n font-size: var(--font-size-md);\n }\n\n h6,\n .h6 {\n @extend %heading;\n font-size: var(--font-size-sm);\n }\n\n // Reset margins on paragraphs\n //\n // Similarly, the top margin on `<p>`s get reset. However, we also reset the\n // bottom margin to use `rem` units instead of `em`.\n\n p {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n }\n\n // Abbreviations\n //\n // 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n // 2. Add explicit cursor to indicate changed behavior.\n // 3. Prevent the text-decoration to be skipped.\n\n abbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n }\n\n // Address\n\n address {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n }\n\n // Lists\n\n ol,\n ul {\n padding-inline-start: 2rem;\n }\n\n ol,\n ul,\n dl {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n\n ol ol,\n ul ul,\n ol ul,\n ul ol {\n margin-bottom: 0;\n }\n\n dt {\n font-weight: $dt-font-weight;\n }\n\n // 1. Undo browser default\n\n dd {\n margin-inline-start: 0; // 1\n margin-bottom: .5rem;\n }\n\n // Blockquote\n\n blockquote {\n margin: 0 0 1rem;\n > * {\n margin-block: 0;\n }\n }\n\n // Strong\n //\n // Add the correct font weight in Chrome, Edge, and Safari\n\n b,\n strong {\n font-weight: $font-weight-bolder;\n }\n\n // Small\n //\n // Add the correct font size in all browsers\n\n small,\n .small {\n font-size: var(--small-font-size, 87.5%);\n }\n\n // Mark\n\n mark,\n .mark {\n @include tokens($reboot-mark-tokens);\n padding: var(--mark-padding);\n color: var(--mark-color);\n background-color: var(--mark-bg);\n }\n\n // Sub and Sup\n //\n // Prevent `sub` and `sup` elements from affecting the line height in\n // all browsers.\n\n sub,\n sup {\n position: relative;\n font-size: var(--sub-sup-font-size, .75em);\n line-height: 0;\n vertical-align: baseline;\n }\n\n sub { bottom: -.25em; }\n sup { top: -.5em; }\n\n // Links\n\n a {\n color: var(--theme-fg, var(--link-color));\n text-decoration: var(--link-decoration);\n text-underline-offset: $link-underline-offset;\n\n &:hover {\n // --link-color: var(--link-hover-color);\n // --link-decoration: var(--link-hover-decoration, var(--link-decoration));\n color: var(--theme-fg-emphasis, var(--link-hover-color));\n text-decoration: var(--link-hover-decoration, var(--link-decoration));\n }\n }\n\n // And undo these styles for placeholder links/named anchors (without href).\n // It would be more straightforward to just use a[href] in previous block, but that\n // causes specificity issues in many other styles that are too complex to fix.\n // See https://github.com/twbs/bootstrap/issues/19402\n\n a:not([href], [class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n }\n\n // Code\n\n pre,\n code,\n kbd,\n samp {\n font-family: var(--font-mono);\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n }\n\n // 1. Remove browser default top margin\n // 2. Reset browser default of `1em` to use `rem`s\n // 3. Don't allow content to break outside\n\n pre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n font-size: var(--code-font-size);\n color: var(--code-color, inherit);\n\n // Account for some code outputs that place code tags in pre tags\n code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n }\n\n code {\n font-size: var(--code-font-size);\n color: var(--code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n }\n\n kbd {\n @include tokens($reboot-kbd-tokens);\n padding: var(--kbd-padding-y) var(--kbd-padding-x);\n font-size: var(--kbd-font-size);\n color: var(--kbd-color);\n background-color: var(--kbd-bg);\n @include border-radius(var(--kbd-border-radius));\n\n kbd {\n padding: 0;\n font-size: 1em;\n font-weight: inherit; // mdo-do: check if this is needed\n }\n }\n\n // Figures\n //\n // Apply a consistent margin strategy (matches our type styles).\n\n figure {\n margin: 0 0 1rem;\n }\n\n // Images and content\n\n img,\n svg {\n vertical-align: middle;\n }\n\n // Tables\n //\n // Prevent double borders\n\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n\n caption {\n // padding-top: $table-cell-padding-y;\n // padding-bottom: $table-cell-padding-y;\n // color: $table-caption-color;\n padding-block: .5rem;\n color: var(--fg-3);\n text-align: start;\n }\n\n // 1. Removes font-weight bold by inheriting\n // 2. Matches default `<td>` alignment by inheriting `text-align`.\n // 3. Fix alignment for Safari\n\n th {\n // font-weight: $table-th-font-weight; // 1 // mdo-do: it's null by default. maybe we remove?\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n }\n\n thead,\n tbody,\n tfoot,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n\n // Forms\n //\n // 1. Allow labels to use `margin` for spacing.\n\n label {\n display: inline-block; // 1\n }\n\n // Remove the default `border-radius` that macOS Chrome adds.\n // See https://github.com/twbs/bootstrap/issues/24093\n\n button {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n }\n\n // Explicitly remove focus outline in Chromium when it shouldn't be\n // visible (e.g. as result of mouse click or touch tap). It already\n // should be doing this automatically, but seems to currently be\n // confused and applies its very visible two-tone outline anyway.\n\n button:focus:not(:focus-visible) {\n outline: 0;\n }\n\n // 1. Remove the margin in Firefox and Safari\n\n input,\n button,\n select,\n optgroup,\n textarea {\n margin: 0; // 1\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n // Set the cursor for non-`<button>` buttons\n //\n // Details at https://github.com/twbs/bootstrap/pull/30562\n [role=\"button\"] {\n cursor: pointer;\n }\n\n select {\n // Remove the inheritance of word-wrap in Safari.\n // See https://github.com/twbs/bootstrap/issues/24990\n word-wrap: normal;\n\n // Undo the opacity change from Chrome\n &:disabled {\n opacity: 1;\n }\n }\n\n // Remove the dropdown arrow only from text type inputs built with datalists in Chrome.\n // See https://stackoverflow.com/a/54997118\n\n [list]:not([type=\"date\"], [type=\"datetime-local\"], [type=\"month\"], [type=\"week\"], [type=\"time\"])::-webkit-calendar-picker-indicator {\n display: none !important;\n }\n\n // 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n // controls in Android 4.\n // 2. Correct the inability to style clickable types in iOS and Safari.\n // 3. Opinionated: add \"hand\" cursor to non-disabled button elements.\n\n button,\n [type=\"button\"], // 1\n [type=\"reset\"],\n [type=\"submit\"] {\n -webkit-appearance: button; // 2\n\n @if $enable-button-pointers {\n &:not(:disabled) {\n cursor: pointer; // 3\n }\n }\n }\n\n // 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.\n\n textarea {\n resize: vertical; // 1\n }\n\n // 1. Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n // 2. Reset the default outline behavior of fieldsets so they don't affect page layout.\n\n fieldset {\n min-width: 0; // 1\n padding: 0; // 2\n margin: 0; // 2\n border: 0; // 2\n }\n\n // 1. By using `float: inline-start`, the legend will behave like a block element.\n // This way the border of a fieldset wraps around the legend if present.\n // 2. Fix wrapping bug.\n // See https://github.com/twbs/bootstrap/issues/29712\n\n legend {\n float: inline-start; // 1\n width: 100%;\n padding: 0;\n margin-bottom: $legend-margin-bottom;\n font-size: $legend-font-size;\n font-weight: $legend-font-weight;\n line-height: inherit;\n\n + * {\n clear: inline-start; // 2\n }\n }\n\n // Fix height of inputs with a type of datetime-local, date, month, week, or time\n // See https://github.com/twbs/bootstrap/issues/18842\n\n ::-webkit-datetime-edit-fields-wrapper,\n ::-webkit-datetime-edit-text,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-meridiem-field, // WebKit\n ::-webkit-datetime-edit-ampm-field, // Chromium\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-week-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-year-field {\n padding: 0;\n }\n\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n\n // 1. This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n // 2. Correct the outline style in Safari.\n\n [type=\"search\"] {\n -webkit-appearance: textfield; // 1\n outline-offset: -2px; // 2\n\n // 3. Better affordance and consistent appearance for search cancel button\n &::-webkit-search-cancel-button {\n cursor: pointer;\n filter: grayscale(1);\n }\n }\n\n // A few input types should stay LTR regardless of document direction\n // See https://rtlstyling.com/posts/rtl-styling#form-inputs\n\n [type=\"tel\"],\n [type=\"url\"],\n [type=\"email\"],\n [type=\"number\"] {\n direction: ltr;\n }\n\n // Remove the inner padding in Chrome and Safari on macOS.\n\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n // Remove padding around color pickers in webkit browsers\n\n ::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n\n // 1. Inherit font family and line height for file input buttons\n // 2. Correct the inability to style clickable types in iOS and Safari.\n\n ::file-selector-button {\n font: inherit; // 1\n -webkit-appearance: button; // 2\n }\n\n // Correct element displays\n\n output {\n display: inline-block;\n }\n\n // Remove border from iframe\n\n iframe {\n border: 0;\n }\n\n // Summary\n //\n // 1. Add the correct display in all browsers\n\n summary {\n display: list-item; // 1\n cursor: pointer;\n }\n\n // Progress\n //\n // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n progress {\n vertical-align: baseline;\n }\n\n // Hidden attribute\n //\n // Always hide an element with the `hidden` HTML attribute.\n\n [hidden] {\n display: none !important;\n }\n}\n","@use \"sass:map\";\n@use \"sass:meta\";\n\n// Configuration\n//\n// Variables and settings not related to theme, components, and more go here. It does include layout.\n\n// Merge overrides on top of defaults, stripping null entries.\n// Null values let users remove map keys via @use ... with().\n// Accepts a list as $defaults (converted to a map with `true` values).\n@function defaults($defaults, $overrides) {\n @if meta.type-of($defaults) == \"list\" {\n $map: ();\n @each $key in $defaults {\n $map: map.merge($map, ($key: true));\n }\n $defaults: $map;\n }\n $merged: map.merge($defaults, $overrides);\n @each $key, $value in $merged {\n @if $value == null {\n $merged: map.remove($merged, $key);\n }\n }\n @return $merged;\n}\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: true !default;\n$enable-gradients: true !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: false !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: true !default;\n$enable-button-pointers: true !default;\n// $enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n\n$color-mode-type: \"media-query\" !default;\n$color-contrast-dark: #000 !default;\n$color-contrast-light: #fff !default;\n$min-contrast-ratio: 4.5 !default;\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer * .75,\n 4: $spacer,\n 5: $spacer * 1.25,\n 6: $spacer * 1.5,\n 7: $spacer * 2,\n 8: $spacer * 2.5,\n 9: $spacer * 3,\n) !default;\n\n$negative-spacers: (\n \"-1\": $spacer * -.25,\n \"-2\": $spacer * -.5,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n$sizes: (\n 1: $spacer,\n 2: $spacer * 2,\n 3: $spacer * 3,\n 4: $spacer * 4,\n 5: $spacer * 5,\n 6: $spacer * 6,\n 7: $spacer * 7,\n 8: $spacer * 8,\n 9: $spacer * 9,\n 10: $spacer * 10,\n 11: $spacer * 11,\n 12: $spacer * 12,\n) !default;\n\n$radius: .5rem !default;\n$radii: (\n 0: 0,\n 1: $radius * .25,\n 2: $radius * .375,\n 3: $radius * .5,\n 4: $radius * .75,\n 5: $radius,\n 6: $radius * 1.25,\n 7: $radius * 1.5,\n 8: $radius * 2,\n 9: $radius * 3,\n) !default;\n\n// Breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start breakpoints\n$breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 1024px,\n xl: 1280px,\n 2xl: 1536px\n) !default;\n// scss-docs-end breakpoints\n\n// @include _assert-ascending($breakpoints, \"$breakpoints\");\n// @include _assert-starts-at-zero($breakpoints, \"$breakpoints\");\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-x: 1.5rem !default;\n$grid-gutter-y: 0 !default;\n$grid-row-columns: 6 !default;\n\n$gutters: $spacers !default;\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1200px,\n 2xl: 1440px\n) !default;\n// scss-docs-end container-max-widths\n\n$container-padding-x: $grid-gutter-x !default;\n\n$utilities: () !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent)) !default;\n// scss-docs-end variable-gradient\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Links\n//\n// Style anchor elements.\n\n$link-decoration: underline !default;\n$link-underline-offset: .2em !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: color-mix(in oklch, var(--gray-100), var(--gray-200)) !default;\n// scss-docs-end border-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"auto\": auto,\n \"1x1\": #{\"1 / 1\"},\n \"4x3\": #{\"4 / 3\"},\n \"16x9\": #{\"16 / 9\"},\n \"21x9\": #{\"21 / 9\"}\n) !default;\n// scss-docs-end aspect-ratios\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$font-sizes: defaults(\n (\n \"xs\": (\n \"font-size\": .75rem,\n \"line-height\": 1.25\n ),\n \"sm\": (\n \"font-size\": .875rem,\n \"line-height\": 1.5\n ),\n \"md\": (\n \"font-size\": 1rem,\n \"line-height\": 1.5\n ),\n \"lg\": (\n \"font-size\": clamp(1.25rem, 1rem + .625vw, 1.5rem),\n \"line-height\": 1.5\n ),\n \"xl\": (\n \"font-size\": clamp(1.5rem, 1.1rem + .75vw, 1.75rem),\n \"line-height\": calc(2.5 / 1.75)\n ),\n \"2xl\": (\n \"font-size\": clamp(1.75rem, 1.3rem + 1vw, 2rem),\n \"line-height\": calc(3 / 2.25)\n ),\n \"3xl\": (\n \"font-size\": clamp(2rem, 1.5rem + 1.875vw, 2.5rem),\n \"line-height\": 1.2\n ),\n \"4xl\": (\n \"font-size\": clamp(2.25rem, 1.75rem + 2.5vw, 3rem),\n \"line-height\": 1.1\n ),\n \"5xl\": (\n \"font-size\": clamp(3rem, 2rem + 5vw, 4rem),\n \"line-height\": 1.1\n ),\n \"6xl\": (\n \"font-size\": clamp(3.75rem, 2.5rem + 6.25vw, 5rem),\n \"line-height\": 1\n ),\n ),\n $font-sizes\n);\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: var(--spacer-2) !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start type-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n// scss-docs-end type-variables\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-menu: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n// $zindex-drawer-backdrop: 1040 !default;\n$zindex-drawer: 1045 !default;\n$zindex-dialog: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n","@use \"sass:list\";\n@use \"sass:math\";\n@use \"sass:meta\";\n@use \"../config\" as *;\n\n// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n $return: ();\n @each $value in $radius {\n @if meta.type-of($value) == number {\n $return: list.append($return, math.max($value, 0));\n } @else {\n $return: list.append($return, $value);\n }\n }\n @return $return;\n}\n\n// scss-docs-start border-radius-mixins\n@mixin border-radius($radius: var(--radius-5), $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: valid-radius($radius);\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n border-start-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-end-radius: valid-radius($radius);\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-start-radius: valid-radius($radius);\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n border-end-start-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-start-radius: valid-radius($radius);\n }\n}\n// scss-docs-end border-radius-mixins\n","@use \"../functions\" as *;\n@use \"../mixins/lists\" as *;\n@use \"../mixins/tokens\" as *;\n\n$blockquote-tokens: () !default;\n\n// scss-docs-start blockquote-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$blockquote-tokens: defaults(\n (\n --blockquote-gap: calc(var(--spacer) / 2),\n --blockquote-padding-x: var(--spacer),\n --blockquote-margin-y: 1rem,\n --blockquote-font-size: var(--font-size-md),\n --blockquote-border-width: .25rem,\n --blockquote-border-color: var(--border-color),\n --blockquote-footer-font-size: var(--font-size-sm),\n --blockquote-footer-color: var(--fg-3),\n ),\n $blockquote-tokens\n);\n// scss-docs-end blockquote-tokens\n\n@layer content {\n //\n // Lists\n //\n\n .list-unstyled {\n @include list-unstyled();\n }\n\n // Inline turns list items into inline-block\n .list-inline {\n @include list-unstyled();\n }\n .list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-inline-end: var(--list-inline-padding, var(--spacer) / 2);\n }\n }\n\n //\n // Misc\n //\n\n // Builds on `abbr`\n .initialism {\n font-size: var(--initialism-font-size, var(--font-size-xs));\n text-transform: uppercase;\n }\n\n // Blockquotes\n .blockquote {\n @include tokens($blockquote-tokens);\n display: flex;\n flex-direction: column;\n gap: var(--blockquote-gap);\n padding-inline-start: var(--blockquote-padding-x);\n margin-bottom: var(--blockquote-margin-y);\n font-size: var(--blockquote-font-size);\n border-inline-start: var(--blockquote-border-width) solid var(--blockquote-border-color);\n\n > * {\n margin-bottom: 0;\n }\n }\n\n // stylelint-disable-next-line selector-no-qualifying-type\n figure.blockquote {\n blockquote {\n margin-bottom: 0;\n }\n }\n\n .blockquote-footer {\n font-size: var(--blockquote-footer-font-size);\n color: var(--blockquote-footer-color);\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n padding-inline-start: 0;\n list-style: none;\n}\n","@use \"sass:map\";\n@use \"../config\" as *;\n@use \"../functions\" as *;\n@use \"../layout/breakpoints\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$table-tokens: () !default;\n\n// scss-docs-start table-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$table-tokens: defaults(\n (\n --table-cell-padding-y: .5rem,\n --table-cell-padding-x: .5rem,\n --table-cell-vertical-align: top,\n --table-color: var(--fg-body),\n --table-bg: var(--bg-body),\n --table-accent-bg: transparent,\n --table-border-width: var(--border-width),\n --table-border-color: var(--border-color),\n --table-group-separator-color: currentcolor,\n --table-striped-color: var(--table-color),\n --table-striped-bg-factor: 5%,\n --table-striped-bg: color-mix(in srgb, var(--table-color) var(--table-striped-bg-factor), transparent),\n --table-active-color: var(--table-color),\n --table-active-bg-factor: 10%,\n --table-active-bg: color-mix(in srgb, var(--table-color) var(--table-active-bg-factor), transparent),\n --table-hover-color: var(--table-color),\n --table-hover-bg-factor: 7.5%,\n --table-hover-bg: color-mix(in srgb, var(--table-color) var(--table-hover-bg-factor), transparent),\n ),\n $table-tokens\n);\n// scss-docs-end table-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n$table-striped-order: odd !default;\n$table-striped-columns-order: even !default;\n\n//\n// Basic Bootstrap table\n//\n\n@layer content {\n .table {\n @include tokens($table-tokens);\n\n // Reset needed for nesting tables\n --table-color-type: initial;\n --table-bg-type: initial;\n --table-color-state: initial;\n --table-bg-state: initial;\n // End of reset\n\n width: 100%;\n margin-bottom: var(--spacer);\n vertical-align: var(--table-cell-vertical-align);\n border-color: var(--theme-border, var(--table-border-color));\n\n // Target th & td\n // We need the child combinator to prevent styles leaking to nested tables which doesn't have a `.table` class.\n // We use the universal selectors here to simplify the selector (else we would need 6 different selectors).\n // Another advantage is that this generates less code and makes the selector less specific making it easier to override.\n // stylelint-disable-next-line selector-max-universal\n > :not(caption) > * > * {\n padding: var(--table-cell-padding-y) var(--table-cell-padding-x);\n // Following the precept of cascades: https://codepen.io/miriamsuzanne/full/vYNgodb\n color: var(--table-color-state, var(--table-color-type, var(--theme-fg, var(--table-color))));\n background-color: var(--theme-bg-subtle, var(--table-bg));\n border-block-end-width: var(--table-border-width);\n box-shadow: inset 0 0 0 9999px var(--table-bg-state, var(--table-bg-type, var(--theme-bg-subtle, var(--table-accent-bg))));\n }\n\n > tbody {\n vertical-align: inherit;\n }\n\n > thead {\n vertical-align: bottom;\n }\n }\n\n .table-group-divider {\n border-block-start: calc(var(--table-border-width) * 2) solid var(--table-group-separator-color);\n }\n\n //\n // Change placement of captions with a class\n //\n\n .caption-top {\n caption-side: top;\n }\n\n //\n // Condensed table w/ half padding\n //\n\n .table-sm {\n // stylelint-disable-next-line selector-max-universal\n > :not(caption) > * > * {\n --table-cell-padding-y: .25rem;\n --table-cell-padding-x: .25rem;\n }\n }\n\n // Border versions\n //\n // Add or remove borders all around the table and between all the columns.\n //\n // When borders are added on all sides of the cells, the corners can render odd when\n // these borders do not have the same color or if they are semi-transparent.\n // Therefore we add top and border bottoms to the `tr`s and left and right borders\n // to the `td`s or `th`s\n\n .table-bordered {\n > :not(caption) > * {\n border-width: var(--table-border-width) 0;\n\n // stylelint-disable-next-line selector-max-universal\n > * {\n border-width: 0 var(--table-border-width);\n }\n }\n }\n\n .table-borderless {\n // stylelint-disable-next-line selector-max-universal\n > :not(caption) > * > * {\n border-block-end-width: 0;\n }\n\n > :not(:first-child) {\n border-block-start-width: 0;\n }\n }\n\n // Zebra-striping\n //\n // Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n // For rows\n .table-striped {\n > tbody > tr:nth-of-type(#{$table-striped-order}) > * {\n --table-color-type: var(--theme-fg, var(--table-striped-color));\n --table-bg-type: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-striped-bg-factor), transparent);\n }\n }\n\n // For columns\n .table-striped-columns {\n > :not(caption) > tr > :nth-child(#{$table-striped-columns-order}) {\n --table-color-type: var(--theme-fg, var(--table-striped-color));\n --table-bg-type: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-striped-bg-factor), transparent);\n }\n }\n\n // Active table\n //\n // The `.table-active` class can be added to highlight rows or cells\n\n .table-active {\n --table-color-state: var(--theme-fg, var(--table-active-color));\n --table-bg-state: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-active-bg-factor), transparent);\n }\n\n // Hover effect\n //\n // Placed here since it has to come after the potential zebra striping\n\n .table-hover {\n > tbody > tr:hover > * {\n --table-color-state: var(--theme-fg, var(--table-hover-color));\n --table-bg-state: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-hover-bg-factor), transparent);\n }\n }\n\n // Responsive tables\n //\n // Generate `.table-responsive` classes that act as container query contexts\n // and enable horizontal scrolling when table content overflows.\n\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n .#{$prefix}table-responsive {\n container-type: inline-size;\n\n @include media-breakpoint-down($breakpoint) {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n }\n\n // Stacked tables\n //\n // Generate `.table-stacked` classes that convert table rows into stacked\n // blocks using container queries. Requires a `.table-responsive` ancestor\n // and `data-cell` attributes on `<td>` elements for column labels.\n\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include container-breakpoint-down($breakpoint) {\n .#{$prefix}table-stacked {\n > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n\n + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n\n > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * .25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n\n &:first-child {\n font-weight: var(--font-weight-bold);\n }\n\n // + td::before {\n // margin-block-start: .25rem;\n // }\n\n &[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n }\n\n > td:not(:first-child) + td::before {\n margin-block-start: .25rem;\n }\n }\n }\n }\n }\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:string\";\n@use \"../config\" as *;\n\n// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px)\n//\n// The map defined in the `$breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl 2xl))\n// md\n@function breakpoint-next($name, $breakpoints: $breakpoints, $breakpoint-names: map.keys($breakpoints)) {\n $n: list.index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoint-names}`\";\n }\n // Use @if/@else because list.nth would error if evaluated when $n equals list length\n @if $n < list.length($breakpoint-names) {\n @return list.nth($breakpoint-names, $n + 1);\n } @else {\n @return null;\n }\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $breakpoints) {\n $min: map.get($breakpoints, $name);\n @return if(sass($min != 0): $min; else: null);\n}\n\n// Maximum breakpoint width for range media queries.\n// Returns the breakpoint value to use as an upper bound in range queries.\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n// >> breakpoint-max(xxl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// null\n@function breakpoint-max($name, $breakpoints: $breakpoints) {\n @if $name == null {\n @return null;\n }\n $max: map.get($breakpoints, $name);\n @return if(sass($max and $max > 0): $max; else: null);\n}\n\n// Escape a name for use at the start of a CSS identifier.\n// Leading digits are hex-escaped (e.g., 2xl becomes \\32 xl).\n@function css-escape-ident($name) {\n $name-str: \"#{$name}\";\n $digits: \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\";\n $first: string.slice($name-str, 1, 1);\n\n @if list.index($digits, $first) {\n @return \"\\\\3#{$first} #{string.slice($name-str, 2)}\";\n }\n\n @return $name-str;\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name\n// with an escaped colon as a Tailwind-style prefix for responsive class names.\n// Leading digits are CSS-escaped (e.g., 2xl becomes \\32 xl) for valid identifiers.\n//\n// >> breakpoint-prefix(xs, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\" (Returns a blank string)\n// >> breakpoint-prefix(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"sm\\:\"\n// >> breakpoint-prefix(2xl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\\32 xl\\:\"\n@function breakpoint-prefix($name, $breakpoints: $breakpoints) {\n @if breakpoint-min($name, $breakpoints) == null {\n @return \"\";\n }\n\n @return \"#{css-escape-ident($name)}\\\\:\";\n}\n\n// Iterate all breakpoints and provide the current name and prefix.\n//\n// @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-up($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n @content($breakpoint, $prefix);\n }\n}\n\n// Iterate all breakpoints and provide the current name, next name, and next prefix.\n//\n// @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-down($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $next: breakpoint-next($breakpoint, $breakpoints);\n $prefix: breakpoint-prefix($next, $breakpoints);\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Backwards-compatible alias for next/down breakpoint loops.\n@mixin loop-breakpoints($breakpoints: $breakpoints) {\n @include loop-breakpoints-down($breakpoints) using ($breakpoint, $next, $prefix) {\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (width >= $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (width < $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n\n\n// Container queries\n//\n// Container queries allow elements to respond to the size of a containing element\n// rather than the viewport. These mixins mirror the media-breakpoint-* mixins above.\n//\n// scss-docs-start container-query-mixins\n\n// Set an element as a query container.\n//\n// @include set-container(); // container-type: inline-size\n// @include set-container(size); // container-type: size\n// @include set-container(inline-size, sidebar); // container: sidebar / inline-size\n//\n@mixin set-container($type: inline-size, $name: null) {\n @if $name {\n container: #{$name} / #{$type};\n } @else {\n container-type: #{$type};\n }\n}\n\n// Container query of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider within the container.\n//\n// @include container-breakpoint-up(md) { ... }\n// @include container-breakpoint-up(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-up($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower within the container.\n//\n// @include container-breakpoint-down(lg) { ... }\n// @include container-breakpoint-down(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-down($name, $container-name: null, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @if $container-name {\n @container #{$container-name} (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width < #{$max}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints within the container.\n//\n// @include container-breakpoint-between(md, xl) { ... }\n// @include container-breakpoint-between(md, xl, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-between($lower, $upper, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($lower, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($upper, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n\n// Container query between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint within the container.\n//\n// @include container-breakpoint-only(md) { ... }\n// @include container-breakpoint-only(md, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-only($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($name, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($next, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n// scss-docs-end container-query-mixins\n","@use \"../functions\" as *;\n@use \"../mixins/image\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/box-shadow\" as *;\n@use \"../mixins/tokens\" as *;\n\n$thumbnail-tokens: () !default;\n\n// scss-docs-start thumbnail-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$thumbnail-tokens: defaults(\n (\n --thumbnail-padding: .25rem,\n --thumbnail-bg: var(--bg-body),\n --thumbnail-border-width: var(--border-width),\n --thumbnail-border-color: var(--border-color),\n --thumbnail-border-radius: var(--radius-5),\n --thumbnail-box-shadow: var(--box-shadow-sm),\n ),\n $thumbnail-tokens\n);\n// scss-docs-end thumbnail-tokens\n\n$figure-tokens: () !default;\n\n// scss-docs-start figure-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$figure-tokens: defaults(\n (\n --figure-gap: calc(var(--spacer) * .5),\n --figure-caption-font-size: var(--font-size-sm),\n --figure-caption-color: var(--fg-3),\n ),\n $figure-tokens\n);\n// scss-docs-end figure-tokens\n\n@layer content {\n // Responsive images (ensure images don't scale beyond their parents)\n //\n // This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n // We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n // and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n // which weren't expecting the images within themselves to be involuntarily resized.\n // See also https://github.com/twbs/bootstrap/issues/18178\n .img-fluid {\n @include img-fluid();\n }\n\n .img-thumbnail {\n @include tokens($thumbnail-tokens);\n padding: var(--thumbnail-padding);\n background-color: var(--thumbnail-bg);\n border: var(--thumbnail-border-width) solid var(--thumbnail-border-color);\n @include border-radius(var(--thumbnail-border-radius));\n @include box-shadow(var(--thumbnail-box-shadow));\n\n // Keep them at most 100% wide\n @include img-fluid();\n }\n\n .figure {\n @include tokens($figure-tokens);\n // Ensures the caption's text aligns with the image.\n display: flex;\n flex-direction: column;\n gap: var(--figure-gap);\n }\n\n .figure-caption {\n font-size: var(--figure-caption-font-size);\n color: var(--figure-caption-color);\n }\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n","@use \"sass:list\";\n@use \"../config\" as *;\n\n@mixin box-shadow($shadow...) {\n @if $enable-shadows {\n $result: ();\n $has-single-value: false;\n $single-value: null;\n\n @each $value in $shadow {\n @if $value != null {\n @if $value == none or $value == initial or $value == inherit or $value == unset {\n $has-single-value: true;\n $single-value: $value;\n } @else {\n $result: list.append($result, $value, \"comma\");\n }\n }\n }\n\n @if $has-single-value {\n box-shadow: $single-value;\n } @else if (list.length($result) > 0) {\n box-shadow: $result;\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$prose-tokens: () !default;\n\n// scss-docs-start prose-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$prose-tokens: defaults(\n (\n --content-font-size: 1rem,\n --content-line-height: 1.5,\n --content-gap: calc(var(--content-font-size) * var(--content-line-height)),\n --heading-color: light-dark(var(--gray-900), var(--white)),\n ),\n $prose-tokens\n);\n// scss-docs-end prose-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer content {\n .prose {\n @include tokens($prose-tokens);\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--content-gap);\n max-width: 1000px;\n margin-inline: auto;\n font-size: var(--content-font-size);\n line-height: var(--content-line-height);\n\n @media (width >= 1024px) {\n --content-font-size: var(--font-size-md);\n --content-line-height: 1.625;\n // --content-gap: calc(var(--content-font-size) * var(--content-line-height));\n }\n\n :where(p, ul, ol, dl, pre, table, blockquote):not(:where(.not-prose, .not-prose *)) {\n margin-block: 0;\n }\n\n :where(ul, ol):not([class], :where(.not-prose, .not-prose *)) li:not(:last-child) {\n margin-bottom: calc(var(--content-gap) / 4);\n }\n\n :where(li ul, li ol):not(:where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) / 4);\n }\n\n :where(hr):not(:where(.not-prose, .not-prose *)) {\n margin: calc(var(--content-gap) * 1.5) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n\n :where(h1, h2, h3, h4, h5, h6):not([class], :where(.not-prose, .not-prose *)) {\n margin-top: 0;\n margin-bottom: calc(var(--content-gap) / -2);\n font-weight: 500;\n line-height: 1.25;\n\n code {\n font-weight: 600;\n color: inherit;\n }\n }\n\n :where(h1, h2):not(:first-child, :where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) * .75);\n }\n\n :where(h3, h4, h5, h6):not(:first-child, :where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) * .5);\n }\n\n :where(h1):not(:where(.not-prose, .not-prose *)) {\n font-size: 2.25em;\n line-height: 1.1;\n }\n :where(h2):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.75em;\n }\n :where(h3):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.5em;\n }\n :where(h4):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.25em;\n }\n :where(h5):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.125em;\n }\n :where(h6):not(:where(.not-prose, .not-prose *)) {\n font-size: 1em;\n }\n\n :where(a:not([class])):not(:where(.not-prose, .not-prose *)) {\n color: var(--link-color);\n text-decoration: underline;\n text-decoration-color: color-mix(in srgb, var(--link-color) 25%, transparent);\n text-underline-offset: 4px;\n @include transition(.1s text-decoration-color ease-in-out);\n\n &:hover {\n text-decoration-color: var(--link-hover-color);\n }\n }\n\n :where(img):not(:where(.not-prose, .not-prose *)) {\n max-width: 100%;\n }\n\n :where(blockquote):not(:where(.not-prose, .not-prose *)) {\n padding-inline-start: calc(var(--content-gap) / 2);\n margin: 0;\n border-inline-start: 4px solid var(--border-color);\n }\n\n :where(table):not(:where(.not-prose, .not-prose *)) {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n }\n\n :where(table:not([class])):not(:where(.not-prose, .not-prose *)) {\n td,\n th {\n padding: 6px 12px;\n text-align: inherit;\n border: 1px solid var(--border-color);\n }\n }\n\n :where(dt):not(:where(.not-prose, .not-prose *)) {\n font-weight: 500;\n }\n\n :where(video, img):not(:where(.not-prose, .not-prose *)) {\n max-width: 100%;\n }\n }\n}\n","@use \"sass:list\";\n@use \"../config\" as *;\n\n// stylelint-disable property-disallowed-list\n@mixin transition($transition...) {\n @if list.length($transition) == 0 {\n $transition: $transition-base;\n }\n\n @if list.length($transition) > 1 {\n @each $value in $transition {\n @if $value == null or $value == none {\n @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n }\n }\n }\n\n @if $enable-transitions {\n @if list.nth($transition, 1) != null {\n transition: $transition;\n }\n\n @if $enable-reduced-motion and list.nth($transition, 1) != null and list.nth($transition, 1) != none {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n }\n}\n","@use \"../config\" as *;\n@use \"breakpoints\" as *;\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n --gutter-x: #{$gutter};\n --gutter-y: 0;\n width: 100%;\n padding-inline: calc(var(--gutter-x) * .5);\n margin-inline: auto;\n}\n\n@layer layout {\n @if $enable-container-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .#{breakpoint-prefix($breakpoint, $breakpoints)}container {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n @each $name, $width in $breakpoints {\n @if ($extend-breakpoint) {\n .#{breakpoint-prefix($name, $breakpoints)}container {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/grid\" as *;\n\n// mdo-do\n// - check gap utilities as replacement for gutter classes from v5\n\n@layer layout {\n @if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n\n @include make-grid-columns();\n }\n\n @if $enable-cssgrid {\n .grid {\n --columns: #{$grid-columns};\n --rows: 1;\n --gap: #{$grid-gutter-x};\n\n display: grid;\n grid-template-rows: repeat(var(--rows), 1fr);\n grid-template-columns: repeat(var(--columns), 1fr);\n gap: var(--gap);\n\n }\n\n @include make-cssgrid();\n }\n\n // mdo-do: add to utilities?\n .grid-cols-subgrid {\n grid-template-columns: subgrid;\n }\n\n .grid-fill {\n --gap: #{$grid-gutter-x};\n\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-auto-flow: row;\n gap: var(--gap);\n }\n\n // .g-col-auto {\n // grid-column: auto;\n // }\n\n // mdo-do: add to utilities?\n // .grid-cols-3 {\n // --columns: 3;\n // }\n // .grid-cols-4 {\n // --columns: 4;\n // }\n // .grid-cols-6 {\n // --columns: 6;\n // }\n\n // .grid-full {\n // grid-column: 1 / -1;\n // }\n}\n","@use \"sass:map\";\n@use \"sass:math\";\n@use \"sass:meta\";\n@use \"../config\" as *;\n@use \"../layout/breakpoints\" as *;\n\n// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter-x: $grid-gutter-x, $gutter-y: $grid-gutter-y) {\n --gutter-x: #{$gutter-x};\n --gutter-y: #{$gutter-y};\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-inline: calc(-.5 * var(--gutter-x));\n margin-top: calc(-1 * var(--gutter-y));\n}\n\n@mixin make-col-ready() {\n // Add box sizing if only the grid is loaded\n // stylelint-disable-next-line scss/at-function-named-arguments\n box-sizing: if(sass(meta.variable-exists(include-column-box-sizing) and $include-column-box-sizing): border-box; else: null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-inline: calc(var(--gutter-x) * .5);\n margin-top: var(--gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: math.percentage(math.div($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: math.div($size, $columns);\n // stylelint-disable-next-line scss/at-function-named-arguments\n margin-inline-start: if(sass($num == 0): 0; else: math.percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// number of columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: math.percentage(math.div(1, $count));\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-x, $breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n .#{$prefix}col {\n flex: 1 0 0;\n }\n\n .#{$prefix}row-cols-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .#{$prefix}row-cols-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .#{$prefix}col-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .#{$prefix}col-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($prefix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .#{$prefix}offset-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .#{$prefix}g-#{$key},\n .#{$prefix}gx-#{$key} {\n --gutter-x: #{$value};\n }\n\n .#{$prefix}g-#{$key},\n .#{$prefix}gy-#{$key} {\n --gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .#{$prefix}g-col-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is an invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .#{$prefix}g-start-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","@use \"../functions\" as *;\n\n$form-label-tokens: () !default;\n\n// scss-docs-start form-label-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-label-tokens: defaults(\n (\n --label-margin-bottom: calc(var(--spacer) / 2),\n --label-font-size: null,\n --label-font-style: null,\n --label-font-weight: null,\n --label-color: null,\n ),\n $form-label-tokens\n);\n// scss-docs-end form-label-tokens\n\n@layer forms {\n .form-label,\n .col-form-label {\n font-size: var(--label-font-size, inherit);\n font-style: var(--label-font-style, inherit);\n font-weight: var(--label-font-weight, 500);\n color: var(--label-color, var(--fg-body));\n }\n\n .form-label {\n margin-bottom: var(--label-margin-bottom, calc(var(--spacer) / 2));\n }\n\n // For use with horizontal and inline forms, when you need the label (or legend)\n // text to align with the form controls.\n .col-form-label {\n --label-padding-y: calc(var(--btn-input-padding-y) + var(--border-width));\n padding-block: var(--label-padding-y);\n margin-bottom: 0; // Override the `<legend>` default\n }\n\n .col-form-label-lg {\n --label-padding-y: calc(var(--btn-input-lg-padding-y) + var(--border-width));\n font-size: var(--btn-input-lg-font-size);\n }\n\n .col-form-label-sm {\n --label-padding-y: calc(var(--btn-input-sm-padding-y) + var(--border-width));\n font-size: var(--btn-input-sm-font-size);\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/tokens\" as *;\n\n$form-text-tokens: () !default;\n\n// scss-docs-start form-text-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-text-tokens: defaults(\n (\n --form-text-margin-top: .25rem,\n --form-text-font-size: var(--font-size-sm),\n --form-text-font-style: null,\n --form-text-font-weight: null,\n --form-text-color: var(--fg-2),\n ),\n $form-text-tokens\n);\n// scss-docs-end form-text-tokens\n\n@layer forms {\n .form-text {\n @include tokens($form-text-tokens);\n\n // margin-top: var(--form-text-margin-top);\n font-size: var(--form-text-font-size);\n font-style: var(--form-text-font-style);\n font-weight: var(--form-text-font-weight);\n color: var(--form-text-color);\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/box-shadow\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n$form-control-tokens: () !default;\n\n// scss-docs-start form-control-tokens\n// stylelint-disable custom-property-no-missing-var-function\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-control-tokens: defaults(\n (\n --control-min-height: var(--btn-input-min-height),\n --control-padding-y: var(--btn-input-padding-y),\n --control-padding-x: var(--btn-input-padding-x),\n --control-font-size: var(--btn-input-font-size),\n --control-line-height: var(--btn-input-line-height),\n --control-fg: var(--btn-input-fg),\n --control-bg: var(--btn-input-bg),\n --control-border-width: var(--border-width),\n --control-border-color: var(--border-color),\n --control-border-radius: var(--radius-5),\n --control-box-shadow: var(--box-shadow-inset),\n --control-action-bg: var(--bg-1),\n --control-action-hover-bg: var(--bg-2),\n --control-transition-property: \"border-color, box-shadow\",\n --control-transition-timing: .15s ease-in-out,\n --control-transition: var(--control-transition-property) var(--control-transition-timing),\n --control-placeholder-color: var(--fg-3),\n --control-disabled-color: var(--control-fg),\n --control-disabled-bg: var(--bg-2),\n --control-disabled-border-color: var(--control-border-color),\n --control-select-bg: #{escape-svg(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#00000080' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>\"))},\n --control-select-bg-position: right .75rem center,\n --control-select-bg-size: 16px 12px,\n --control-select-bg-dark: #{escape-svg(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#ffffff80' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>\"))},\n ),\n $form-control-tokens\n);\n// scss-docs-end form-control-tokens\n\n// scss-docs-start form-control-sizes\n$form-control-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-control-sizes: defaults(\n (\"sm\", \"lg\"),\n $form-control-sizes\n);\n// scss-docs-end form-control-sizes\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer forms {\n .form-control {\n @include tokens($form-control-tokens);\n\n display: flex;\n width: 100%;\n min-height: var(--control-min-height);\n padding: var(--control-padding-y) var(--control-padding-x);\n font-size: var(--control-font-size);\n line-height: var(--control-line-height);\n color: var(--control-fg);\n appearance: none;\n background-color: var(--control-bg);\n background-clip: padding-box;\n border: var(--control-border-width) solid var(--control-border-color);\n @include border-radius(var(--control-border-radius), 0);\n @include box-shadow(var(--control-box-shadow));\n @include transition(var(--control-transition));\n\n // Customize the `:focus` state to imitate native WebKit styles.\n &:focus-visible {\n --focus-ring-offset: -1px;\n @include focus-ring(true);\n }\n\n // Placeholder\n &::placeholder {\n color: var(--control-placeholder-color);\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n opacity: 1;\n }\n\n // Disabled inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &:disabled {\n color: var(--control-disabled-color);\n background-color: var(--control-disabled-bg);\n border-color: var(--control-disabled-border-color);\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n }\n\n // Date and time inputs\n // &::-webkit-date-and-time-value {\n // // On Android Chrome, form-control's \"width: 100%\" makes the input width too small\n // // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109\n // //\n // // On iOS Safari, form-control's \"appearance: none\" + \"width: 100%\" makes the input width too small\n // // Tested under iOS 16.2 / Safari 16.2\n // min-width: 85px; // Seems to be a good minimum safe width\n\n // // Add some height to date inputs on iOS\n // // https://github.com/twbs/bootstrap/issues/23307\n // // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved\n // // Multiply line-height by 1em if it has no unit\n // height: 1.5em;\n\n // // Android Chrome type=\"date\" is taller than the other inputs\n // // because of \"margin: 1px 24px 1px 4px\" inside the shadow DOM\n // // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109\n // margin: 0;\n // background-color: var(--red-500);\n // }\n\n // Prevent excessive date input height in Webkit\n // https://github.com/twbs/bootstrap/issues/34433\n\n // mdo-do: need to check this stuff out across browsers\n &::-webkit-datetime-edit {\n display: block;\n height: 1.5rem;\n padding: 0;\n margin-bottom: -.125rem;\n }\n &::-webkit-datetime-edit-fields-wrapper {\n height: 1.5rem;\n }\n\n // File inputs\n &[type=\"file\"] {\n overflow: hidden; // prevent pseudo element button overlap\n\n &:not(:disabled, [readonly]) {\n cursor: pointer;\n }\n }\n &::file-selector-button {\n min-height: var(--control-min-height);\n padding: var(--control-padding-y) var(--control-padding-x);\n margin: calc(var(--control-padding-y) * -1) calc(var(--control-padding-x) * -1);\n margin-inline-end: var(--control-padding-x);\n color: var(--control-fg);\n // @include gradient-bg(var(--control-action-bg));\n pointer-events: none;\n background-color: var(--control-action-bg);\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: var(--control-border-width);\n border-radius: 0; // stylelint-disable-line property-disallowed-list\n @include transition(var(--control-transition));\n }\n\n &:hover:not(:disabled, [readonly])::file-selector-button {\n background-color: var(--control-action-hover-bg);\n }\n }\n\n // Readonly controls as plain text\n //\n // Apply class to a readonly input to make it appear like regular plain\n // text (without any border, background color, focus indicator)\n\n .form-control-plaintext {\n display: block;\n width: 100%;\n padding: var(--control-padding-y) 0;\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n line-height: var(--control-line-height);\n color: var(--control-fg);\n background-color: transparent;\n border: solid transparent;\n border-width: var(--control-border-width) 0;\n\n &:focus {\n outline: 0;\n }\n\n &.form-control-sm,\n &.form-control-lg {\n padding-inline: 0;\n }\n }\n\n // stylelint-disable selector-no-qualifying-type\n select.form-control,\n .form-control-caret {\n padding-inline-end: calc(var(--control-padding-x) * 3);\n background-image: var(--control-select-bg);\n background-repeat: no-repeat;\n background-position: var(--control-select-bg-position);\n background-size: var(--control-select-bg-size);\n\n &[multiple],\n &[size]:not([size=\"1\"]) {\n padding-inline-end: var(--control-padding-x);\n background-image: none;\n }\n }\n\n @media (prefers-color-scheme: dark) {\n select.form-control,\n .form-control-caret {\n background-image: var(--control-select-bg-dark);\n }\n }\n // stylelint-enable selector-no-qualifying-type\n\n // Form control sizing\n //\n // Build on `.form-control` with modifier classes to decrease or increase the\n // height and font-size of form controls.\n //\n // Repeated in `_input_group.scss` to avoid Sass extend issues.\n @each $size, $_ in $form-control-sizes {\n .form-control-#{$size} {\n --control-min-height: var(--btn-input-#{$size}-min-height);\n --control-padding-y: var(--btn-input-#{$size}-padding-y);\n --control-padding-x: var(--btn-input-#{$size}-padding-x);\n --control-font-size: var(--btn-input-#{$size}-font-size);\n --control-line-height: var(--btn-input-#{$size}-line-height);\n --control-border-radius: var(--btn-input-#{$size}-border-radius);\n }\n }\n\n .form-control-color {\n width: var(--control-min-height);\n padding: var(--control-padding-y);\n\n &:not(:disabled, [readonly]) {\n cursor: pointer;\n }\n\n &::-moz-color-swatch {\n border: 0 !important; // stylelint-disable-line declaration-no-important\n @include border-radius(var(--radius-5));\n }\n\n &::-webkit-color-swatch {\n border: 0 !important; // stylelint-disable-line declaration-no-important\n @include border-radius(var(--radius-5));\n }\n }\n\n // Ghost input - removes all visual styling\n // Used inside custom wrappers that handle their own styling\n .form-ghost {\n display: block;\n width: 100%;\n padding: 0;\n font: inherit;\n color: inherit;\n appearance: none;\n background: transparent;\n border: 0;\n\n &:focus {\n outline: 0;\n }\n\n &::placeholder {\n color: var(--fg-3);\n opacity: 1;\n }\n\n &:disabled {\n color: var(--fg-4);\n cursor: not-allowed;\n }\n }\n}\n","@mixin focus-ring($offset: false, $color: null) {\n @if $color != null {\n outline: var(--focus-ring-width) solid #{$color};\n } @else {\n outline: var(--focus-ring);\n }\n @if $offset {\n outline-offset: var(--focus-ring-offset);\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/mask-icon\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$check-tokens: () !default;\n\n// scss-docs-start check-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$check-tokens: defaults(\n (\n --check-size: 1.25rem,\n --check-margin-block: .125rem,\n --check-bg: var(--bg-body),\n --check-border-color: var(--border-color),\n --check-border-radius: var(--radius-5),\n --check-icon-checked: #{escape-svg(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m5.5 10 3 3 6-6'/></svg>\"))},\n --check-icon-indeterminate: #{escape-svg(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 10h8'/></svg>\"))},\n --check-checked-bg: var(--control-checked-bg),\n --check-checked-border-color: var(--control-checked-border-color),\n --check-indeterminate-bg: var(--control-checked-bg),\n --check-indeterminate-border-color: var(--control-checked-border-color),\n --check-active-bg: var(--control-active-bg),\n --check-active-border-color: var(--control-active-border-color),\n --check-disabled-bg: var(--control-disabled-bg),\n --check-disabled-opacity: var(--control-disabled-opacity),\n ),\n $check-tokens\n);\n// scss-docs-end check-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer forms {\n // The class lives on the `<input>` itself; `appearance: none` controls render\n // pseudo-elements, so the mark is drawn directly on the input — no wrapper.\n .check {\n @include tokens($check-tokens);\n\n position: relative;\n flex-shrink: 0;\n width: var(--check-size);\n height: var(--check-size);\n margin-block: var(--check-margin-block);\n appearance: none;\n // later: maybe set a tertiary bg color?\n background-color: var(--theme-bg, var(--check-bg));\n border: 1px solid var(--theme-bg, var(--check-border-color));\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 33%;\n\n &:checked,\n &:indeterminate {\n background-color: var(--theme-bg, var(--check-checked-bg));\n border-color: var(--theme-bg, var(--check-checked-border-color));\n\n // Check/indeterminate mark, overlaid on the input and rendered via a CSS\n // mask so it inherits the contrast color without an inline SVG.\n &::before {\n position: absolute;\n inset: 0;\n pointer-events: none;\n content: \"\";\n background-color: var(--theme-contrast, var(--primary-contrast));\n @include mask-icon();\n }\n }\n\n &:checked::before { mask-image: var(--check-icon-checked); }\n &:indeterminate::before { mask-image: var(--check-icon-indeterminate); }\n\n &:focus-visible {\n @include focus-ring(true);\n --focus-ring-offset: -1px;\n }\n\n &:disabled {\n --check-bg: var(--check-disabled-bg);\n\n ~ label {\n color: var(--fg-3);\n cursor: default;\n }\n }\n &:disabled:checked {\n opacity: var(--check-disabled-opacity);\n }\n }\n\n .check-sm {\n --check-size: 1rem;\n\n + label {\n font-size: var(--font-size-sm);\n }\n }\n .check-lg {\n --check-size: 1.5rem;\n --check-margin-block: .375rem;\n\n + label {\n font-size: var(--font-size-lg);\n }\n }\n}\n","// Mask icon\n//\n// Renders an SVG icon via a CSS mask so the shape is painted with the\n// element's `background-color` and therefore inherits theme/dark-mode color.\n// Set `background-color` on the element itself; pass `null` for `$icon` when\n// the mask image is applied conditionally (e.g. per state or direction).\n\n// scss-docs-start mask-icon-mixin\n@mixin mask-icon($icon: null, $size: contain, $position: center) {\n @if $icon != null {\n mask-image: $icon;\n }\n mask-repeat: no-repeat;\n @if $position != null {\n mask-position: $position;\n }\n @if $size != null {\n mask-size: $size;\n }\n}\n// scss-docs-end mask-icon-mixin\n","@use \"../functions\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$radio-tokens: () !default;\n\n// scss-docs-start radio-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$radio-tokens: defaults(\n (\n --radio-size: 1.25rem,\n --radio-margin-block: .125rem,\n --radio-bg: var(--bg-body),\n --radio-border-color: var(--border-color),\n --radio-checked-bg: var(--control-checked-bg),\n --radio-checked-border-color: var(--control-checked-border-color),\n --radio-disabled-bg: var(--control-disabled-bg),\n --radio-disabled-opacity: var(--control-disabled-opacity),\n ),\n $radio-tokens\n);\n// scss-docs-end radio-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer forms {\n .radio {\n @include tokens($radio-tokens);\n\n position: relative;\n flex-shrink: 0;\n width: var(--radio-size);\n height: var(--radio-size);\n margin-block: var(--radio-margin-block);\n appearance: none;\n background-color: var(--theme-bg, var(--radio-bg));\n border: 1px solid var(--theme-bg, var(--radio-border-color));\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n\n &:checked {\n color: var(--theme-contrast, var(--primary-contrast));\n background-color: var(--theme-bg, var(--radio-checked-bg));\n border-color: var(--theme-bg, var(--radio-checked-border-color));\n\n &::before {\n position: absolute;\n inset: calc(var(--radio-size) * .25);\n content: \"\";\n background-color: currentcolor;\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n }\n }\n\n &:disabled {\n --radio-bg: var(--radio-disabled-bg);\n\n ~ label {\n color: var(--secondary-fg);\n cursor: default;\n }\n }\n\n &:focus-visible {\n @include focus-ring(true);\n }\n }\n\n .radio-sm {\n --radio-size: 1rem;\n\n + label {\n font-size: var(--font-size-sm);\n }\n }\n .radio-lg {\n --radio-size: 1.5rem;\n --radio-margin-block: .375rem;\n\n + label {\n font-size: var(--font-size-lg);\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$switch-tokens: () !default;\n\n// scss-docs-start switch-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$switch-tokens: defaults(\n (\n --switch-height: 1.25rem,\n --switch-width: calc(var(--switch-height) * 1.75),\n --switch-padding: .0625rem,\n --switch-margin-block: .125rem,\n --switch-bg: var(--bg-3),\n --switch-border-width: var(--border-width),\n --switch-border-color: var(--border-color),\n --switch-indicator-bg: var(--white),\n --switch-indicator-width: calc(var(--switch-height) - calc(var(--switch-padding) * 2) - var(--switch-border-width) * 2),\n --switch-indicator-height: calc(var(--switch-height) - calc(var(--switch-padding) * 2) - var(--switch-border-width) * 2),\n --switch-checked-bg: var(--control-checked-bg),\n --switch-checked-border-color: var(--switch-checked-bg),\n --switch-checked-indicator-bg: var(--white),\n --switch-disabled-bg: var(--control-disabled-bg),\n --switch-disabled-indicator-bg: var(--fg-3),\n ),\n $switch-tokens\n);\n// scss-docs-end switch-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer forms {\n .switch {\n @include tokens($switch-tokens);\n\n position: relative;\n flex-shrink: 0;\n width: var(--switch-width);\n height: var(--switch-height);\n padding: var(--switch-padding);\n margin-block: var(--switch-margin-block);\n background-color: var(--switch-bg);\n border: var(--switch-border-width) solid var(--switch-border-color);\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 10rem;\n box-shadow: inset 0 1px 2px rgb(0 0 0 / .05);\n // stylelint-disable-next-line property-disallowed-list\n transition: background-color .15s ease-in-out;\n\n &::before {\n position: absolute;\n inset-block: var(--switch-padding);\n inset-inline-start: var(--switch-padding);\n width: var(--switch-indicator-width);\n height: var(--switch-indicator-height);\n content: \"\";\n background-color: var(--theme-contrast, var(--switch-indicator-bg));\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 10rem;\n box-shadow: 0 1px 2px rgb(0 0 0 / .1);\n // stylelint-disable-next-line property-disallowed-list\n transition: inset-inline-start .15s ease-in-out;\n }\n\n input {\n position: absolute;\n inset: 0;\n appearance: none;\n background-color: transparent;\n outline: 0;\n }\n\n &:focus-within {\n @include focus-ring(true);\n }\n\n &:has(input:checked) {\n background-color: var(--theme-bg, var(--switch-checked-bg));\n border-color: var(--theme-bg, var(--switch-checked-border-color));\n\n &::before {\n inset-inline-start: calc(100% - var(--switch-indicator-width) - var(--switch-padding));\n }\n }\n\n &:has(input:disabled) {\n --switch-bg: var(--switch-disabled-bg);\n --switch-indicator-bg: var(--switch-disabled-indicator-bg);\n\n &::before { opacity: .4; }\n\n ~ label {\n color: var(--secondary-fg);\n cursor: default;\n }\n }\n }\n .switch-sm {\n --switch-height: 1rem;\n\n + label {\n font-size: var(--font-size-sm);\n }\n }\n .switch-lg {\n --switch-height: 1.5rem;\n --switch-margin-block: .375rem;\n\n + label {\n font-size: var(--font-size-lg);\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/box-shadow\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/transition\" as *;\n@use \"../mixins/gradients\" as *;\n@use \"../mixins/tokens\" as *;\n\n$range-tokens: () !default;\n\n// scss-docs-start range-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$range-tokens: defaults(\n (\n --range-track-width: 100%,\n --range-track-height: .5rem,\n --range-track-cursor: pointer,\n --range-track-bg: var(--bg-3),\n --range-track-border-radius: 1rem,\n --range-track-box-shadow: var(--box-shadow-inset),\n --range-thumb-width: 1rem,\n --range-thumb-height: var(--range-thumb-width),\n --range-thumb-bg: var(--primary-base),\n --range-thumb-border: var(--range-thumb-bg) solid var(--border-color),\n --range-thumb-border-radius: 1rem,\n --range-thumb-box-shadow: \"0 1px 2px rgb(0 0 0 / 7.5%), 0 2px 4px rgb(0 0 0 / 7.5%)\",\n --range-thumb-active-bg: color-mix(in oklch, var(--primary-base) 70%, var(--bg-body)),\n --range-thumb-disabled-bg: var(--fg-3),\n --range-thumb-transition-property: \"background-color, border-color, box-shadow\",\n --range-thumb-transition-timing: .15s ease-in-out,\n --range-thumb-transition: var(--range-thumb-transition-property) var(--range-thumb-transition-timing),\n ),\n $range-tokens\n);\n// scss-docs-end range-tokens\n\n// scss-docs-start range-mixins\n@mixin range-thumb() {\n width: var(--range-thumb-width);\n height: var(--range-thumb-height);\n appearance: none;\n @include gradient-bg(var(--range-thumb-bg));\n border: var(--range-thumb-border);\n @include border-radius(var(--range-thumb-border-radius));\n @include box-shadow(var(--range-thumb-box-shadow));\n @include transition(var(--range-thumb-transition));\n\n &:active {\n @include gradient-bg(var(--range-thumb-active-bg));\n }\n}\n\n@mixin range-track() {\n width: var(--range-track-width);\n height: var(--range-track-height);\n color: transparent; // Why?\n cursor: var(--range-track-cursor);\n background-color: var(--range-track-bg);\n border-color: transparent; // Firefox specific?\n @include border-radius(var(--range-track-border-radius));\n @include box-shadow(var(--range-track-box-shadow));\n}\n// scss-docs-end range-mixins\n\n@layer forms {\n .form-range {\n @include tokens($range-tokens);\n\n width: 100%;\n height: calc(var(--range-thumb-height) + (var(--focus-ring-width) * 2));\n padding: 0; // Need to reset padding\n appearance: none;\n background-color: transparent;\n\n &:hover {\n &::-webkit-slider-thumb {\n @include focus-ring(false, color-mix(in oklch, var(--primary-focus-ring), transparent));\n }\n &::-moz-range-thumb {\n @include focus-ring(false, color-mix(in oklch, var(--primary-focus-ring), transparent));\n }\n }\n\n &:focus-visible {\n outline: 0;\n\n // Pseudo-elements must be split across multiple rulesets to have an effect.\n &::-webkit-slider-thumb {\n @include focus-ring(true);\n --focus-ring-offset: 0;\n }\n &::-moz-range-thumb {\n @include focus-ring(true);\n --focus-ring-offset: 0;\n }\n }\n\n &::-moz-focus-outer {\n border: 0;\n }\n\n &::-webkit-slider-thumb {\n @include range-thumb();\n margin-top: calc((var(--range-track-height) - var(--range-thumb-height)) * .5); // Webkit specific\n }\n\n &::-moz-range-thumb {\n @include range-thumb();\n }\n\n &::-webkit-slider-runnable-track {\n @include range-track();\n }\n\n &::-moz-range-track {\n @include range-track();\n }\n\n &:disabled {\n pointer-events: none;\n\n &::-webkit-slider-thumb {\n background-color: var(--range-thumb-disabled-bg);\n }\n\n &::-moz-range-thumb {\n background-color: var(--range-thumb-disabled-bg);\n }\n }\n }\n}\n","@use \"../colors\" as *;\n@use \"../config\" as *;\n\n// Gradients\n\n// scss-docs-start gradient-bg-mixin\n@mixin gradient-bg($color: null) {\n background-color: $color;\n\n @if $enable-gradients {\n background-image: var(--gradient);\n }\n}\n// scss-docs-end gradient-bg-mixin\n\n// scss-docs-start gradient-mixins\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: var(--gray-700), $end-color: var(--gray-800), $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: var(--gray-700), $end-color: var(--gray-800), $start-percent: null, $end-percent: null) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n}\n\n@mixin gradient-directional($start-color: var(--gray-700), $end-color: var(--gray-800), $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n}\n\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n}\n\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n}\n\n@mixin gradient-radial($inner-color: var(--gray-700), $outer-color: var(--gray-800)) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n}\n\n@mixin gradient-striped($color: rgb(255 255 255 / .15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n// scss-docs-end gradient-mixins\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n$form-floating-tokens: () !default;\n\n// scss-docs-start form-floating-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-floating-tokens: defaults(\n (\n --form-floating-height: calc(3.5rem + (var(--border-width) * 2)),\n --form-floating-line-height: 1.25,\n --form-floating-padding-x: var(--btn-input-padding-x),\n --form-floating-padding-y: 1rem,\n --form-floating-input-padding-t: 1.625rem,\n --form-floating-input-padding-b: .625rem,\n --form-floating-label-height: 1.5em,\n --form-floating-label-opacity: .65,\n --form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem),\n --form-floating-label-disabled-color: var(--fg-3),\n --form-floating-transition-property: \"opacity, transform\",\n --form-floating-transition-timing: .1s ease-in-out,\n --form-floating-transition: var(--form-floating-transition-property) var(--form-floating-transition-timing),\n ),\n $form-floating-tokens\n);\n// scss-docs-end form-floating-tokens\n\n@layer forms {\n .form-floating {\n @include tokens($form-floating-tokens);\n\n position: relative;\n\n > label {\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n z-index: 2;\n display: flex;\n align-items: center;\n max-width: 100%;\n height: 100%; // allow textareas\n padding: var(--form-floating-padding-y) var(--form-floating-padding-x);\n overflow: hidden;\n color: color-mix(in oklch, var(--fg-body) var(--form-floating-label-opacity), transparent);\n text-align: start;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n border: var(--input-btn-border-width) solid transparent; // Required for aligning label's text with the input as it affects inner box model\n transform-origin: 0 0;\n @include transition(var(--form-floating-transition));\n }\n\n > .form-control,\n > .form-control-plaintext {\n height: var(--form-floating-height);\n min-height: var(--form-floating-height);\n padding: var(--form-floating-padding-y) var(--form-floating-padding-x);\n line-height: var(--form-floating-line-height);\n\n &::placeholder {\n color: transparent;\n }\n\n &:focus,\n &:not(:placeholder-shown) {\n padding-top: var(--form-floating-input-padding-t);\n padding-bottom: var(--form-floating-input-padding-b);\n }\n // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped\n &:-webkit-autofill {\n padding-top: var(--form-floating-input-padding-t);\n padding-bottom: var(--form-floating-input-padding-b);\n }\n }\n\n > .form-control:focus,\n > .form-control:not(:placeholder-shown),\n > .form-control-plaintext {\n ~ label {\n transform: var(--form-floating-label-transform);\n }\n }\n\n // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped\n > .form-control:-webkit-autofill {\n ~ label {\n transform: var(--form-floating-label-transform);\n }\n }\n > textarea:focus,\n > textarea:not(:placeholder-shown) {\n ~ label::after {\n position: absolute;\n inset: var(--form-floating-padding-y) calc(var(--form-floating-padding-x) * .5);\n z-index: -1;\n height: var(--form-floating-label-height);\n content: \"\";\n background-color: var(--control-bg);\n @include border-radius(var(--btn-input-border-radius));\n }\n }\n > textarea:disabled ~ label::after {\n background-color: var(--control-disabled-bg);\n }\n\n > .form-control-plaintext {\n ~ label {\n border-width: var(--control-border-width) 0; // Required to properly position label text - as explained above\n }\n }\n\n > :disabled ~ label,\n > .form-control:disabled ~ label { // Required for `.form-control`s because of specificity\n color: var(--form-floating-label-disabled-color);\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n\n$input-group-addon-tokens: () !default;\n\n// scss-docs-start input-group-addon-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$input-group-addon-tokens: defaults(\n (\n --input-group-addon-padding-y: var(--btn-input-padding-y),\n --input-group-addon-padding-x: var(--btn-input-padding-x),\n --input-group-addon-font-size: var(--btn-input-font-size),\n --input-group-addon-line-height: var(--btn-input-line-height),\n --input-group-addon-color: var(--fg-body),\n --input-group-addon-bg: var(--bg-2),\n --input-group-addon-border-color: var(--border-color),\n ),\n $input-group-addon-tokens\n);\n// scss-docs-end input-group-addon-tokens\n\n// scss-docs-start input-group-sizes\n$input-group-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$input-group-sizes: defaults(\n (\"sm\", \"lg\"),\n $input-group-sizes\n);\n// scss-docs-end input-group-sizes\n\n@layer components {\n .input-group {\n @include tokens($input-group-addon-tokens);\n\n position: relative;\n display: flex;\n align-items: stretch;\n width: 100%;\n\n > .form-control,\n > .form-floating {\n position: relative; // For focus state's z-index\n flex: 1 1 auto;\n width: 1%;\n min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size\n }\n\n // Bring the \"active\" form control to the top of surrounding elements\n > .form-control:focus,\n > .form-floating:focus-within {\n z-index: 5;\n }\n\n // Ensure buttons are always above inputs for more visually pleasing borders.\n // This isn't needed for `.input-group-text` since it shares the same border-color\n // as our inputs.\n > .input-group-btn {\n position: relative;\n z-index: 2;\n\n &:focus {\n z-index: 5;\n }\n }\n }\n\n // Textual addons\n //\n // Serves as a catch-all element for any text or radio/checkbox input you wish\n // to prepend or append to an input.\n\n .input-group-text {\n display: flex;\n align-items: center;\n padding: var(--input-group-addon-padding-y) var(--input-group-addon-padding-x);\n font-size: var(--input-group-addon-font-size); // Match inputs\n // font-weight: $input-group-addon-font-weight;\n line-height: var(--input-group-addon-line-height);\n color: var(--input-group-addon-color);\n text-align: center;\n white-space: nowrap;\n background-color: var(--input-group-addon-bg);\n border: var(--border-width) solid var(--input-group-addon-border-color);\n @include border-radius(var(--btn-input-border-radius));\n }\n\n // Sizing\n //\n // Remix the default form control sizing classes into new ones for easier\n // manipulation.\n\n @each $size, $_ in $input-group-sizes {\n .input-group-#{$size} {\n > .form-control,\n > .input-group-text,\n > .btn {\n min-height: var(--btn-input-#{$size}-min-height);\n padding: var(--btn-input-#{$size}-padding-y) var(--btn-input-#{$size}-padding-x);\n font-size: var(--btn-input-#{$size}-font-size);\n @include border-radius(var(--btn-input-#{$size}-border-radius));\n }\n }\n }\n\n // Rounded corners\n //\n // These rulesets must come after the sizing ones to properly override sm and lg\n // border-radius values when extending. They're more specific than we'd like\n // with the `.input-group >` part, but without it, we cannot override the sizing.\n\n // stylelint-disable-next-line no-duplicate-selectors\n .input-group {\n > :not(:last-child, .menu-toggle-split, .menu, .input-group-ignore, .form-floating, :has(+ :is(.menu, .input-group-ignore):last-child)),\n > .menu-toggle-split:nth-last-child(n + 3),\n > .form-floating:not(:last-child) > .form-control,\n > .form-floating:not(:last-child) > .form-select {\n @include border-end-radius(0);\n }\n\n > :not(:first-child, .menu, .input-group-ignore) {\n margin-inline-start: calc(-1 * var(--border-width));\n @include border-start-radius(0);\n }\n\n > :first-child:is(.input-group-ignore) + :not(.menu, .input-group-ignore) {\n @include border-start-radius(var(--btn-input-border-radius));\n }\n\n > .form-floating:not(:first-child) > .form-control,\n > .form-floating:not(:first-child) > .form-select {\n @include border-start-radius(0);\n }\n }\n}\n","@use \"sass:list\";\n@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$strength-tokens: () !default;\n\n// scss-docs-start strength-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$strength-tokens: defaults(\n (\n --strength-height: .375rem,\n --strength-gap: .25rem,\n --strength-margin-top: .25rem,\n --strength-border-radius: var(--radius-pill),\n --strength-bg: var(--bg-2),\n --strength-color: var(--bg-2),\n --strength-weak-color: var(--danger-bg),\n --strength-fair-color: var(--warning-bg),\n --strength-good-color: var(--info-bg),\n --strength-strong-color: var(--success-bg),\n ),\n $strength-tokens\n);\n// scss-docs-end strength-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n// scss-docs-start strength-levels\n$strength-levels: weak, fair, good, strong !default;\n// scss-docs-end strength-levels\n\n$strength-transition: background-color .2s ease-in-out, width .3s ease-in-out !default;\n\n@layer forms {\n // Strength meter container\n .strength {\n @include tokens($strength-tokens);\n\n display: flex;\n gap: var(--strength-gap);\n width: 100%;\n margin-top: var(--strength-margin-top);\n }\n\n // Individual strength segments\n .strength-segment {\n flex: 1;\n height: var(--strength-height);\n background-color: var(--strength-bg);\n @include border-radius(var(--strength-border-radius));\n @include transition($strength-transition);\n\n // Filled state\n &.active {\n background-color: var(--strength-color);\n }\n }\n\n @each $level in $strength-levels {\n .strength[data-bs-strength=\"#{$level}\"] {\n --strength-color: var(--strength-#{$level}-color);\n }\n }\n // Optional text feedback\n .strength-text {\n display: block;\n margin-top: var(--strength-margin-top);\n font-size: var(--font-size-xs);\n color: var(--strength-color, var(--fg-3));\n @include transition(color .2s ease-in-out);\n\n // Hide when empty\n &:empty {\n display: none;\n }\n }\n\n // Alternative: Single bar variant (like a progress bar)\n .strength-bar {\n @include tokens($strength-tokens);\n\n --strength-color: transparent;\n --strength-width: 0%;\n\n width: 100%;\n height: var(--strength-height);\n margin-top: var(--strength-margin-top);\n overflow: hidden;\n background-color: var(--strength-bg);\n @include border-radius(var(--strength-border-radius));\n\n &::after {\n display: block;\n width: var(--strength-width);\n height: 100%;\n content: \"\";\n background-color: var(--strength-color);\n @include border-radius(var(--strength-border-radius));\n @include transition($strength-transition);\n }\n\n @each $level in $strength-levels {\n &[data-bs-strength=\"#{$level}\"] {\n --strength-color: var(--strength-#{$level}-color);\n --strength-width: #{list.index($strength-levels, $level) * 25%};\n }\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/box-shadow\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n$otp-tokens: () !default;\n\n// scss-docs-start otp-tokens\n// stylelint-disable custom-property-no-missing-var-function\n// stylelint-disable-next-line scss/dollar-variable-default\n$otp-tokens: defaults(\n (\n --otp-size: var(--btn-input-lg-min-height),\n --otp-font-size: var(--btn-input-font-size),\n --otp-gap: .5rem,\n --otp-slot-fg: var(--btn-input-fg),\n --otp-slot-bg: var(--btn-input-bg),\n --otp-slot-border-width: var(--border-width),\n --otp-slot-border-color: var(--border-color),\n --otp-slot-border-radius: var(--radius-5),\n ),\n $otp-tokens\n);\n// scss-docs-end otp-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n// scss-docs-start otp-sizes\n$otp-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$otp-sizes: defaults(\n (\"sm\", \"lg\"),\n $otp-sizes\n);\n// scss-docs-end otp-sizes\n\n@layer components {\n .otp {\n @include tokens($otp-tokens);\n\n position: relative;\n display: flex;\n }\n\n // A single real input backs the whole control. Once the JS renders the\n // visual slots (`.otp-rendered`), the input becomes a transparent overlay\n // that captures all interaction while the slots display the value.\n .otp-rendered .otp-input {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n color: transparent;\n text-align: center;\n cursor: default;\n caret-color: transparent;\n background-color: transparent;\n border: 0;\n outline: 0;\n box-shadow: none;\n\n // Never reveal the underlying characters, even on selection\n &::selection {\n color: transparent;\n background-color: transparent;\n }\n }\n\n .otp-slots {\n display: inline-flex;\n gap: var(--otp-gap);\n pointer-events: none; // let clicks fall through to the input overlay\n }\n\n .otp-slot {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--otp-size);\n min-height: var(--otp-size);\n font-size: var(--otp-font-size);\n font-weight: 500;\n line-height: 1;\n color: var(--otp-slot-fg);\n background-color: var(--otp-slot-bg);\n border: var(--otp-slot-border-width) solid var(--otp-slot-border-color);\n @include border-radius(var(--otp-slot-border-radius));\n @include box-shadow(var(--box-shadow-inset));\n @include transition(border-color .15s ease-in-out, box-shadow .15s ease-in-out);\n }\n\n // The slot at the caret gets the focus ring; empty active slots show a\n // blinking caret so the entry point is obvious.\n .otp-slot-active {\n --focus-ring-offset: -1px;\n z-index: 1;\n @include focus-ring(true);\n\n &:not(.otp-slot-filled)::after {\n width: 1px;\n height: 50%;\n content: \"\";\n background-color: var(--otp-slot-fg);\n animation: otp-caret-blink 1s step-end infinite;\n }\n }\n\n // Disabled state mirrors disabled form controls\n .otp-input:disabled ~ .otp-slots .otp-slot {\n background-color: var(--bg-2);\n }\n\n // Connected slots share borders for a single cohesive field\n .otp-connected .otp-slots {\n gap: 0;\n }\n .otp-connected .otp-slot {\n border-radius: 0; // stylelint-disable-line property-disallowed-list\n\n &:not(:first-child) {\n margin-inline-start: calc(var(--otp-slot-border-width) * -1);\n }\n &:first-child {\n @include border-start-radius(var(--otp-slot-border-radius));\n }\n &:last-child {\n @include border-end-radius(var(--otp-slot-border-radius));\n }\n }\n\n .otp-separator {\n display: flex;\n align-items: center;\n padding-inline: var(--otp-gap);\n font-size: var(--otp-font-size);\n color: var(--fg-4);\n user-select: none;\n }\n\n // OTP input sizing — keep in sync with `$form-control-sizes`.\n @each $size, $_ in $otp-sizes {\n .otp-#{$size} {\n --otp-size: var(--btn-input-#{$size}-min-height);\n --otp-font-size: var(--btn-input-#{$size}-font-size);\n }\n }\n}\n\n@keyframes otp-caret-blink {\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0;\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n$form-adorn-tokens: () !default;\n\n// scss-docs-start form-adorn-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-adorn-tokens: defaults(\n (\n --form-adorn-gap: .375rem,\n --form-adorn-icon-size: 1rem,\n --form-adorn-icon-color: var(--fg-2),\n ),\n $form-adorn-tokens\n);\n// scss-docs-end form-adorn-tokens\n\n@layer forms {\n .form-adorn {\n @include tokens($form-adorn-tokens);\n\n gap: var(--form-adorn-gap);\n align-items: center;\n\n // Prevent default `.form-control` focus\n &:focus-visible {\n outline: 0;\n }\n\n &:focus-within {\n --focus-ring-offset: -1px;\n border-color: var(--focus-ring-color);\n @include focus-ring(true);\n }\n\n // Ghost input fills remaining space\n > .form-ghost {\n flex: 1;\n min-width: 0; // Prevent text overflow\n }\n\n &.form-adorn-end > .form-ghost {\n order: -1;\n }\n }\n\n .form-adorn-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n color: var(--form-adorn-icon-color);\n pointer-events: none;\n\n > svg {\n width: var(--form-adorn-icon-size);\n height: var(--form-adorn-icon-size);\n }\n }\n\n .form-adorn-text {\n flex-shrink: 0;\n color: var(--form-adorn-icon-color);\n pointer-events: none;\n user-select: none;\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n$chip-input-tokens: () !default;\n\n// scss-docs-start chip-input-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$chip-input-tokens: defaults(\n (\n --chip-input-padding-y: .75rem,\n --chip-input-padding-x: .75rem,\n --chip-input-gap: .375rem,\n --chip-input-ghost-min-width: 5rem,\n --control-fg: var(--btn-input-fg),\n --control-bg: var(--btn-input-bg),\n --control-border-width: var(--border-width),\n --control-border-color: var(--border-color),\n --control-border-radius: var(--radius-5),\n ),\n $chip-input-tokens\n);\n// scss-docs-end chip-input-tokens\n\n@layer forms {\n .chip-input {\n @include tokens($chip-input-tokens);\n\n // Flexbox wrapping layout\n display: flex;\n flex-wrap: wrap;\n gap: var(--chip-input-gap);\n align-items: center;\n padding: var(--chip-input-padding-y) var(--chip-input-padding-x);\n\n color: var(--control-fg);\n background-color: var(--control-bg);\n border: var(--control-border-width) solid var(--control-border-color);\n @include border-radius(var(--control-border-radius), 0);\n\n // Focus state when ghost input is focused\n &:focus-within {\n --focus-ring-offset: -1px;\n border-color: var(--focus-ring-color);\n @include focus-ring(true);\n }\n\n // Ghost input fills remaining space\n > .form-ghost {\n flex: 1 1 0;\n min-width: var(--chip-input-ghost-min-width);\n min-height: 1.75rem;\n }\n\n // Disabled state\n &.disabled,\n &:has(.form-ghost:disabled) {\n cursor: not-allowed;\n background-color: var(--bg-2);\n opacity: 1;\n\n &:focus-within {\n border-color: var(--control-border-color);\n outline: 0;\n }\n\n > .chip {\n pointer-events: none;\n opacity: var(--control-disabled-opacity);\n }\n }\n }\n}\n","@use \"../mixins/transition\" as *;\n\n@layer components {\n .combobox-toggle {\n display: inline-flex;\n gap: .5rem;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding-inline-end: var(--control-padding-x);\n text-align: start;\n cursor: pointer;\n\n &.show {\n background-color: var(--bg-1);\n }\n\n &:disabled,\n &.disabled {\n cursor: not-allowed;\n opacity: .65;\n }\n }\n\n .combobox-value {\n display: flex;\n flex: 1;\n gap: .5rem;\n align-items: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .combobox-placeholder {\n color: color-mix(in oklch, currentcolor 65%, transparent);\n }\n\n .combobox-caret {\n flex-shrink: 0;\n @include transition(transform .2s ease-in-out);\n\n .show > & {\n transform: rotate(180deg);\n }\n }\n\n .combobox-toggle + .menu {\n --menu-max-height: 300px;\n --menu-overflow-y: auto;\n }\n\n .combobox-search {\n position: sticky;\n top: 0;\n z-index: 1;\n padding: var(--menu-padding-x, .25rem);\n background-color: var(--menu-bg, var(--bg-body));\n }\n\n .combobox-search-input {\n width: 100%;\n }\n\n .combobox-no-results {\n padding: 1rem;\n font-size: var(--font-size-sm);\n color: var(--fg-3);\n text-align: center;\n }\n}\n","@use \"../mixins/border-radius\" as *;\n\n// scss-docs-start form-field\n@layer forms {\n .form-field {\n position: relative;\n display: grid;\n gap: .5rem;\n // width: 100%;\n\n > label,\n > .form-label {\n justify-self: start;\n margin-bottom: 0;\n }\n\n &:has(> .check, > .radio, > .switch) {\n grid-template-columns: auto 1fr;\n column-gap: .5rem;\n align-items: start;\n\n > .check,\n > .radio,\n > .switch {\n grid-column: 1;\n }\n\n > :not(.check, .radio, .switch) {\n grid-column: 2;\n }\n\n > .form-label {\n grid-column: 1 / -1;\n }\n }\n }\n\n .form-field-content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n\n .form-field-card {\n position: relative;\n padding: calc(var(--spacer) * .75);\n cursor: pointer;\n border: var(--border-width) solid transparent;\n @include border-radius(var(--radius-7));\n\n &:hover {\n background-color: var(--bg-1);\n }\n\n &:has(:checked) {\n background-color: var(--bg-1);\n border-color: var(--border-color);\n }\n\n label::before {\n position: absolute;\n inset: 0;\n content: \"\";\n }\n }\n\n .form-group {\n display: grid;\n gap: .5rem;\n\n > label,\n > .form-label,\n > legend {\n justify-self: start;\n margin-bottom: 0;\n }\n }\n}\n// scss-docs-end form-field\n","@use \"../config\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/form-validation\" as *;\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid.\n// Server-side: `.is-invalid` / `.is-valid` classes work globally.\n// Client-side: `:user-invalid` pseudo-class is scoped behind `[data-bs-validate]`.\n// `:user-valid` is scoped behind `[data-bs-validate~=\"valid\"]` so success styling is opt-in.\n// Custom states (e.g., \"warning\") use only `.is-*` classes.\n\n// scss-docs-start form-validation-states\n$validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$validation-states: defaults(\n (\n \"valid\": \"success\",\n \"invalid\": \"danger\",\n ),\n $validation-states\n);\n// scss-docs-end form-validation-states\n\n// scss-docs-start form-validation-state-mixin\n@mixin form-validation-state($state, $theme) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n font-size: var(--font-size-sm);\n color: var(--#{$theme}-fg);\n }\n\n // More specific to override base tooltip styles\n .tooltip.#{$state}-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n margin-top: .1rem;\n color: var(--#{$theme}-contrast);\n text-align: center;\n background-color: var(--#{$theme}-bg);\n opacity: 1;\n @include border-radius(var(--tooltip-border-radius));\n }\n\n // Generic sibling feedback display — works for .form-control, .form-range,\n // and any element where feedback is a direct sibling.\n @include form-validation-state-selector($state) {\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n\n // Form control\n .form-control {\n @include form-validation-state-selector($state) {\n --control-border-color: var(--#{$theme}-border);\n\n &:focus-visible {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n --control-border-color: var(--#{$theme}-border);\n }\n }\n }\n\n // Checkbox — control-level styling (border, checked bg, focus ring).\n .check {\n @include form-validation-state-selector($state) {\n --check-border-color: var(--#{$theme}-border);\n --check-checked-bg: var(--#{$theme}-bg);\n --check-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-visible {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n }\n\n // Checkbox — label color and feedback display via .form-field:has().\n .form-field:has(.check.is-#{$state}) {\n label { color: var(--#{$theme}-fg); }\n\n .#{$state}-feedback,\n .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-field:has(.check:user-invalid) {\n label { color: var(--#{$theme}-fg); }\n\n .invalid-feedback,\n .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-field:has(.check:user-valid) {\n label { color: var(--#{$theme}-fg); }\n\n .valid-feedback,\n .valid-tooltip { display: block; }\n }\n }\n\n // Radio — control-level styling.\n .radio {\n @include form-validation-state-selector($state) {\n --radio-border-color: var(--#{$theme}-border);\n --radio-checked-bg: var(--#{$theme}-bg);\n --radio-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-visible {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n }\n\n // Radio — label color and feedback display via .form-field:has().\n .form-field:has(.radio.is-#{$state}) {\n label { color: var(--#{$theme}-fg); }\n\n .#{$state}-feedback,\n .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-field:has(.radio:user-invalid) {\n label { color: var(--#{$theme}-fg); }\n\n .invalid-feedback,\n .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-field:has(.radio:user-valid) {\n label { color: var(--#{$theme}-fg); }\n\n .valid-feedback,\n .valid-tooltip { display: block; }\n }\n }\n\n // Switch — control-level styling. The input is an invisible overlay;\n // all visuals are on the .switch wrapper.\n .switch:has(input.is-#{$state}) {\n --switch-border-color: var(--#{$theme}-border);\n --switch-checked-bg: var(--#{$theme}-bg);\n --switch-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .switch:has(input:user-invalid) {\n --switch-border-color: var(--#{$theme}-border);\n --switch-checked-bg: var(--#{$theme}-bg);\n --switch-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .switch:has(input:user-valid) {\n --switch-border-color: var(--#{$theme}-border);\n --switch-checked-bg: var(--#{$theme}-bg);\n --switch-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n }\n\n // Switch — label color and feedback display via .form-field:has().\n .form-field:has(.switch input.is-#{$state}) {\n label { color: var(--#{$theme}-fg); }\n\n .#{$state}-feedback,\n .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-field:has(.switch input:user-invalid) {\n label { color: var(--#{$theme}-fg); }\n\n .invalid-feedback,\n .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-field:has(.switch input:user-valid) {\n label { color: var(--#{$theme}-fg); }\n\n .valid-feedback,\n .valid-tooltip { display: block; }\n }\n }\n\n // Chip input — wrapper has the visible border; the .form-ghost inside\n // receives the native pseudo-class.\n .chip-input:has(.form-ghost.is-#{$state}) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .invalid-feedback,\n ~ .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .chip-input:has(.form-ghost:user-valid) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .valid-feedback,\n ~ .valid-tooltip { display: block; }\n }\n }\n\n // Form adorn — :user-invalid fires on the inner .form-ghost, so we\n // propagate it to the visible wrapper with :has().\n .form-adorn:has(.form-ghost.is-#{$state}) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .invalid-feedback,\n ~ .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-adorn:has(.form-ghost:user-valid) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .valid-feedback,\n ~ .valid-tooltip { display: block; }\n }\n }\n\n // Range — .form-range IS the <input>, so the mixin applies directly.\n .form-range {\n @include form-validation-state-selector($state) {\n &::-webkit-slider-thumb { background: var(--#{$theme}-bg); }\n &::-moz-range-thumb { background: var(--#{$theme}-bg); }\n\n &:focus-visible {\n &::-webkit-slider-thumb {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n &::-moz-range-thumb {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip { display: block; }\n }\n }\n\n // Input group — feedback lives outside the input-group in the parent\n // .form-field, so we use :has() to toggle display.\n .form-field:has(.input-group .form-control.is-#{$state}) {\n .#{$state}-feedback,\n .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-field:has(.input-group .form-control:user-invalid) {\n .invalid-feedback,\n .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-field:has(.input-group .form-control:user-valid) {\n .valid-feedback,\n .valid-tooltip { display: block; }\n }\n }\n\n .input-group {\n > .form-control:not(:focus),\n > .form-floating:not(:focus-within) {\n @include form-validation-state-selector($state) {\n @if $state == \"valid\" {\n z-index: 3;\n } @else if $state == \"invalid\" {\n z-index: 4;\n }\n }\n }\n }\n\n // OTP — validation applies to the wrapper; the visual slots inherit the state.\n .otp {\n @include form-validation-state-selector($state) {\n .otp-slot {\n --otp-slot-border-color: var(--#{$theme}-border);\n }\n\n .otp-slot-active {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n }\n}\n// scss-docs-end form-validation-state-mixin\n\n@layer components {\n // scss-docs-start form-validation-states-loop\n @each $state, $theme in $validation-states {\n @include form-validation-state($state, $theme);\n }\n // scss-docs-end form-validation-states-loop\n}\n","// scss-docs-start form-validation-state-selector\n@mixin form-validation-state-selector($state) {\n @if & {\n &.is-#{$state} {\n @content;\n }\n\n @if $state == \"invalid\" {\n @at-root [data-bs-validate] #{&}:user-invalid {\n @content;\n }\n } @else if $state == \"valid\" {\n @at-root [data-bs-validate~=\"valid\"] #{&}:user-valid {\n @content;\n }\n }\n } @else {\n .is-#{$state} {\n @content;\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] :user-invalid {\n @content;\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] :user-valid {\n @content;\n }\n }\n }\n}\n// scss-docs-end form-validation-state-selector\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"sass:string\";\n@use \"../config\" as *;\n@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/box-shadow\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function, scss/dollar-variable-default\n\n$button-tokens: () !default;\n\n// scss-docs-start btn-tokens\n$button-tokens: defaults(\n (\n --btn-min-height: var(--btn-input-min-height),\n --btn-padding-x: var(--btn-input-padding-x),\n --btn-padding-y: var(--btn-input-padding-y),\n --btn-font-size: var(--btn-input-font-size),\n --btn-font-weight: var(--btn-input-font-weight),\n --btn-line-height: var(--btn-input-line-height),\n --btn-color: var(--fg-body),\n --btn-white-space: nowrap,\n --btn-border-width: var(--border-width),\n --btn-border-color: transparent,\n --btn-border-radius: var(--radius-5),\n --btn-hover-border-color: transparent,\n --btn-disabled-opacity: .65,\n --btn-transition-timing: .15s ease-in-out,\n --btn-transition-property: \"color, background-color, border-color, box-shadow\",\n --btn-transition: var(--btn-transition-property) var(--btn-transition-timing),\n ),\n $button-tokens\n);\n// scss-docs-end btn-tokens\n\n$button-link-tokens: () !default;\n\n// scss-docs-start button-link-tokens\n$button-link-tokens: defaults(\n (\n --btn-font-weight: var(--font-weight-normal),\n --btn-color: var(--link-color),\n --btn-bg: transparent,\n --btn-border-color: transparent,\n --btn-hover-color: var(--link-hover-color),\n --btn-hover-bg: transparent,\n --btn-hover-border-color: transparent,\n --btn-active-color: var(--link-hover-color),\n --btn-active-bg: transparent,\n --btn-active-border-color: transparent,\n --btn-disabled-color: var(--fg-3),\n --btn-disabled-border-color: transparent,\n ),\n $button-link-tokens\n);\n// scss-docs-end button-link-tokens\n\n$button-styled-tokens: () !default;\n\n// scss-docs-start button-styled-tokens\n$button-styled-tokens: defaults(\n (\n --btn-gradient-start: rgb(255 255 255 / 12.5%),\n --btn-gradient-end: rgb(0 0 0 / 7.5%) ,\n --btn-border-mix-color: #000,\n --btn-border-mix-amount: 10%,\n --btn-border-hover-mix-amount: 12.5%,\n --btn-border-active-mix-amount: 20%,\n --btn-shadow: \"0 1px 2px rgb(0 0 0 / 15%), inset 0 1px 0 rgb(255 255 255 / 10%)\",\n --btn-active-shadow: inset 0 2px 4px rgb(0 0 0 / .15) ,\n ),\n $button-styled-tokens\n);\n// scss-docs-end button-styled-tokens\n\n// scss-docs-start button-sizes\n$button-sizes: () !default;\n$button-sizes: defaults(\n (\"xs\", \"sm\", \"lg\"),\n $button-sizes\n);\n// scss-docs-end button-sizes\n\n$button-variants: () !default;\n\n// scss-docs-start btn-variants\n$button-variants: defaults(\n (\n \"solid\": (\n \"base\": (\n \"bg\": \"bg\",\n \"color\": \"contrast\",\n \"border-color\": \"bg\"\n ),\n \"hover\": (\n \"bg\": \"bg\",\n \"border-color\": \"bg\",\n \"color\": \"contrast\"\n ),\n \"active\": (\n \"bg\": \"bg\",\n \"border-color\": \"bg\",\n \"color\": \"contrast\"\n )\n ),\n \"outline\": (\n \"base\": (\n \"bg\": \"transparent\",\n \"color\": \"fg\",\n \"border-color\": \"border\"\n ),\n \"hover\": (\n \"bg\": \"bg\",\n \"color\": \"contrast\",\n \"border-color\": \"bg\"\n ),\n \"active\": (\n \"bg\": \"bg\",\n \"color\": \"contrast\",\n \"border-color\": \"bg\"\n )\n ),\n \"subtle\": (\n \"base\": (\n \"bg\": \"bg-subtle\",\n \"color\": \"fg\",\n \"border-color\": \"transparent\"\n ),\n \"hover\": (\n \"bg\": (\"bg-muted\", \"bg-subtle\"),\n \"color\": \"fg-emphasis\"\n ),\n \"active\": (\n \"bg\": \"bg-subtle\",\n \"color\": \"fg-emphasis\"\n )\n ),\n \"text\": (\n \"base\": (\n \"color\": \"fg\",\n \"bg\": \"transparent\",\n \"border-color\": \"transparent\"\n ),\n \"hover\": (\n \"color\": \"fg\",\n \"bg\": \"bg-subtle\"\n ),\n \"active\": (\n \"color\": \"fg\",\n \"bg\": \"bg-subtle\"\n )\n )\n ),\n $button-variants\n);\n// scss-docs-end btn-variants\n// stylelint-enable custom-property-no-missing-var-function, scss/dollar-variable-default\n\n//\n// Base styles\n//\n\n// scss-docs-start btn-variant-selectors\n$btn-variant-selectors: (string.unquote(\".btn\"), string.unquote(\".btn-link\"), string.unquote(\".btn-icon\")) !default;\n@each $variant, $config in $button-variants {\n $btn-variant-selectors: list.append($btn-variant-selectors, string.unquote(\".btn-#{$variant}\"), comma);\n}\n// scss-docs-end btn-variant-selectors\n\n@layer components {\n #{$btn-variant-selectors} {\n @include tokens($button-tokens);\n\n display: inline-flex;\n gap: var(--btn-gap, .25rem);\n align-items: center;\n justify-content: center;\n min-height: var(--btn-min-height);\n padding: var(--btn-padding-y) var(--btn-padding-x);\n // font-family: var(--btn-font-family);\n font-size: var(--btn-font-size);\n font-weight: var(--btn-font-weight);\n line-height: var(--btn-line-height);\n color: var(--btn-color);\n text-decoration: none;\n white-space: var(--btn-white-space);\n vertical-align: middle;\n // stylelint-disable-next-line scss/at-function-named-arguments\n cursor: if(sass($enable-button-pointers): pointer; else: null);\n user-select: none;\n background-color: var(--btn-bg, var(--bg-2));\n border: var(--btn-border-width) solid var(--btn-border-color);\n @include border-radius(var(--btn-border-radius));\n @include transition(var(--btn-transition));\n\n &:hover {\n color: var(--btn-hover-color);\n background-color: var(--btn-hover-bg, var(--bg-3));\n border-color: var(--btn-hover-border-color);\n }\n\n &:focus-visible {\n @include focus-ring(true);\n --focus-ring-offset: 1px;\n }\n\n &.active,\n &.show {\n color: var(--btn-active-color);\n background-color: var(--btn-active-bg, var(--bg-3));\n border-color: var(--btn-active-border-color);\n\n &:focus-visible {\n @include focus-ring(true);\n }\n }\n\n &:disabled,\n &.disabled,\n fieldset:disabled & {\n color: var(--btn-disabled-color);\n pointer-events: none;\n background-color: var(--btn-disabled-bg, var(--bg-1));\n // stylelint-disable-next-line scss/at-function-named-arguments\n background-image: if(sass($enable-gradients): none; else: null);\n border-color: var(--btn-disabled-border-color);\n opacity: var(--btn-disabled-opacity);\n }\n }\n\n // Main button style generator mixin\n // Generate button variant classes (e.g., .btn-solid, .btn-outline, etc.)\n // scss-docs-start btn-variant-mixin\n @each $variant, $config in $button-variants {\n .btn-#{$variant} {\n @each $property, $value in map.get($button-variants, $variant, \"base\") {\n @if $value == \"transparent\" {\n --btn-#{$property}: transparent;\n } @else {\n --btn-#{$property}: var(--theme-#{$value});\n }\n }\n\n @each $property, $value in map.get($button-variants, $variant, \"active\") {\n @if $value == \"transparent\" {\n --btn-active-#{$property}: transparent;\n } @else if $value == \"bg-subtle\" {\n --btn-active-#{$property}: var(--theme-#{$value});\n } @else {\n --btn-active-#{$property}: oklch(from var(--theme-#{$value}) calc(l * .9) calc(c * 1.15) h);\n }\n }\n @each $property, $value in map.get($button-variants, $variant, \"base\") {\n @if $value == \"transparent\" {\n --btn-disabled-#{$property}: transparent;\n } @else {\n --btn-disabled-#{$property}: var(--theme-#{$value});\n }\n }\n\n &:hover {\n @each $property, $value in map.get($button-variants, $variant, \"hover\") {\n @if $value == \"transparent\" {\n --btn-hover-#{$property}: transparent;\n } @else if meta.type-of($value) == \"list\" {\n $first-value: list.nth($value, 1);\n $second-value: list.nth($value, 2);\n --btn-hover-#{$property}: color-mix(in oklch, var(--theme-#{$first-value}) 50%, var(--theme-#{$second-value}));\n } @else if $value == \"bg-subtle\" {\n --btn-hover-#{$property}: var(--theme-#{$value});\n } @else {\n --btn-hover-#{$property}: oklch(from var(--theme-#{$value}) calc(l * .95) calc(c * 1.1) h);\n }\n }\n }\n\n &:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n\n &:active,\n &.active,\n &.btn-check:has(input:checked) {\n @each $property, $value in map.get($button-variants, $variant, \"active\") {\n @if $value == \"transparent\" {\n --btn-active-#{$property}: transparent;\n } @else if $value == \"bg-subtle\" {\n --btn-active-#{$property}: var(--theme-#{$value});\n } @else {\n --btn-active-#{$property}: oklch(from var(--theme-#{$value}) calc(l * .9) calc(c * 1.15) h);\n }\n }\n }\n\n // Disabled state for toggle buttons\n &:disabled,\n &.disabled,\n &.btn-check:has(input:disabled) {\n @each $property, $value in map.get($button-variants, $variant, \"base\") {\n @if $value == \"transparent\" {\n --btn-disabled-#{$property}: transparent;\n } @else {\n --btn-disabled-#{$property}: var(--theme-#{$value});\n }\n }\n }\n }\n }\n // scss-docs-end btn-variant-mixin\n\n //\n // Link buttons\n //\n\n // Make a button look and behave like a link\n .btn-link {\n @include tokens($button-link-tokens);\n\n color: var(--theme-fg, var(--btn-color));\n text-decoration: var(--link-decoration);\n\n @if $enable-gradients {\n background-image: none;\n }\n\n &:focus-visible {\n color: var(--theme-fg, var(--btn-color));\n }\n\n &:hover {\n color: var(--theme-fg-emphasis, var(--btn-hover-color));\n }\n\n // No need for an active state here\n }\n\n //\n // Button Sizes\n //\n\n // Generate button size classes from the $button-sizes map\n // Skip \"md\" as it's the default size for .btn\n\n // scss-docs-start btn-sizes-loop\n @each $size, $_ in $button-sizes {\n .btn-#{$size},\n .btn-group-#{$size} > [class*=\"btn-\"] {\n --btn-min-height: var(--btn-input-#{$size}-min-height);\n --btn-padding-y: var(--btn-input-#{$size}-padding-y);\n --btn-padding-x: var(--btn-input-#{$size}-padding-x);\n --btn-font-size: var(--btn-input-#{$size}-font-size);\n --btn-line-height: var(--btn-input-#{$size}-line-height);\n --btn-border-radius: var(--btn-input-#{$size}-border-radius);\n }\n }\n // scss-docs-end btn-sizes-loop\n\n .btn-icon {\n align-items: center;\n justify-content: center;\n aspect-ratio: 1;\n padding: 0;\n }\n\n //\n // Toggle buttons (.btn-check)\n //\n // Checkbox and radio inputs that look like buttons. Add .btn-check to a\n // label with button classes, with the input nested inside.\n //\n // Example: <label class=\"btn-check btn-solid theme-primary\"><input type=\"checkbox\">Toggle</label>\n\n .btn-check {\n > input {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n\n &:has(input:checked) {\n color: var(--btn-active-color);\n background-color: var(--btn-active-bg, var(--bg-3));\n // stylelint-disable-next-line scss/at-function-named-arguments\n background-image: if(sass($enable-gradients): none; else: null);\n border-color: var(--btn-active-border-color);\n @include box-shadow(var(--btn-active-shadow));\n }\n\n &:has(input:focus-visible) {\n @include focus-ring(true);\n --focus-ring-offset: 1px;\n }\n\n &:has(input:disabled) {\n color: var(--btn-disabled-color);\n pointer-events: none;\n background-color: var(--btn-disabled-bg, var(--bg-1));\n // stylelint-disable-next-line scss/at-function-named-arguments\n background-image: if(sass($enable-gradients): none; else: null);\n border-color: var(--btn-disabled-border-color);\n opacity: var(--btn-disabled-opacity);\n @include box-shadow(none);\n }\n }\n\n //\n // Styled buttons\n //\n // Add visual depth with gradients and shadows. Customize via CSS variables.\n\n .btn-styled {\n @include tokens($button-styled-tokens);\n\n background-image:\n linear-gradient(\n to bottom,\n var(--btn-gradient-start),\n var(--btn-gradient-end)\n );\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-mix-amount));\n box-shadow: var(--btn-shadow);\n\n &:hover {\n background-image:\n linear-gradient(\n to bottom,\n var(--btn-gradient-start),\n var(--btn-gradient-end)\n );\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-hover-mix-amount));\n }\n\n &:active,\n &.active {\n background-image: none;\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-active-mix-amount));\n box-shadow: var(--btn-active-shadow);\n }\n\n &:disabled,\n &.disabled {\n background-image: none;\n box-shadow: none;\n }\n }\n}\n","@use \"../mixins/border-radius\" as *;\n\n@layer components {\n // Make the div behave like a button\n .btn-group,\n .btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; // match .btn alignment given font-size hack above\n\n > [class*=\"btn-\"] {\n position: relative;\n flex: 1 1 auto;\n\n &:hover {\n z-index: 1;\n }\n }\n\n > .btn-check:has(input:checked),\n > [class*=\"btn-\"]:active,\n > [class*=\"btn-\"].active {\n z-index: 2;\n }\n\n > .btn-check:has(input:focus),\n > [class*=\"btn-\"]:focus {\n z-index: 3;\n }\n }\n\n .btn-group-divider {\n > [class*=\"btn-\"] + [class*=\"btn-\"] {\n &::before {\n position: absolute;\n // top: 25%;\n // bottom: 25%;\n // left: calc(var(--btn-border-width) * -1);\n z-index: 3;\n // width: var(--btn-border-width);\n content: \"\";\n background-color: var(--btn-color);\n opacity: .25;\n }\n }\n }\n\n .btn-group:where(.btn-group-divider) {\n > [class*=\"btn-\"] + [class*=\"btn-\"] {\n &::before {\n top: 25%;\n bottom: 25%;\n left: calc(var(--btn-border-width) * -1);\n width: var(--btn-border-width);\n }\n }\n }\n\n .btn-group-vertical:where(.btn-group-divider) {\n > [class*=\"btn-\"] + [class*=\"btn-\"] {\n &::before {\n top: calc(var(--btn-border-width) * -1);\n right: var(--btn-padding-x);\n left: var(--btn-padding-x);\n height: var(--btn-border-width);\n }\n }\n }\n\n // Optional: Group multiple button groups together for a toolbar\n .btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: .5rem;\n justify-content: flex-start;\n\n .input-group {\n width: auto;\n }\n }\n\n .btn-group {\n @include border-radius(var(--btn-border-radius));\n\n // Prevent double borders when buttons are next to each other\n > [class*=\"btn-\"]:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-inline-start: calc(-1 * var(--btn-border-width));\n }\n\n // Reset rounded corners\n > [class*=\"btn-\"]:not(:last-child, :has(+ .menu)),\n > .btn-group:not(:last-child) > [class*=\"btn-\"] {\n @include border-end-radius(0);\n }\n\n // The left radius should be 0 if the button is not the first child\n > [class*=\"btn-\"]:not(:first-child),\n > .btn-group:not(:first-child) > [class*=\"btn-\"] {\n @include border-start-radius(0);\n }\n }\n\n //\n // Vertical button groups\n //\n\n .btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n > [class*=\"btn-\"],\n > .btn-group {\n width: 100%;\n }\n\n > [class*=\"btn-\"]:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-top: calc(-1 * var(--btn-border-width));\n }\n\n // Reset rounded corners\n > [class*=\"btn-\"]:not(:last-child, :has(+ .menu)),\n > .btn-group:not(:last-child) > [class*=\"btn-\"] {\n @include border-bottom-radius(0);\n }\n\n // The top radius should be 0 if the button is not the first child\n > [class*=\"btn-\"]:not(:first-child),\n > .btn-group:not(:first-child) > [class*=\"btn-\"] {\n @include border-top-radius(0);\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/mask-icon\" as *;\n@use \"../mixins/tokens\" as *;\n\n$btn-close-tokens: () !default;\n\n// scss-docs-start btn-close-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$btn-close-tokens: defaults(\n (\n --btn-close-size: 1.5rem,\n --btn-close-color: inherit,\n --btn-close-icon: #{escape-svg(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M12 0a4 4 0 0 1 4 4v8a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4zm-.646 4.646a.5.5 0 0 0-.707 0L8 7.293 5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.647a.5.5 0 1 0 .708.707L8 8.707l2.647 2.646a.5.5 0 1 0 .707-.707L8.707 8l2.646-2.646a.5.5 0 0 0 0-.708z'/></svg>\"))},\n --btn-close-opacity: .5,\n --btn-close-hover-opacity: .75,\n --btn-close-focus-opacity: .85,\n --btn-close-disabled-opacity: .25,\n ),\n $btn-close-tokens\n);\n// scss-docs-end btn-close-tokens\n\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n@layer components {\n .btn-close {\n @include tokens($btn-close-tokens);\n\n box-sizing: content-box;\n width: var(--btn-close-size);\n height: var(--btn-close-size);\n padding: 0;\n color: var(--btn-close-color);\n background-color: currentcolor;\n border: 0; // for button elements\n @include border-radius(var(--radius-5));\n opacity: var(--btn-close-opacity);\n @include mask-icon(var(--btn-close-icon));\n\n // Override <a>'s hover style\n &:hover {\n color: var(--btn-close-color);\n text-decoration: none;\n opacity: var(--btn-close-hover-opacity);\n }\n\n &:focus-visible {\n opacity: var(--btn-close-focus-opacity);\n @include focus-ring();\n }\n\n &:disabled,\n &.disabled {\n pointer-events: none;\n user-select: none;\n opacity: var(--btn-close-disabled-opacity);\n }\n }\n}\n","@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/tokens\" as *;\n\n$accordion-tokens: () !default;\n\n// scss-docs-start accordion-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$accordion-tokens: defaults(\n (\n --accordion-padding-x: 1.25rem,\n --accordion-padding-y: 1rem,\n --accordion-color: var(--fg-body),\n --accordion-bg: var(--bg-body),\n --accordion-transition-property: \"color, background-color, border-radius\",\n --accordion-transition-timing: \".15s ease-in-out\",\n --accordion-transition: var(--accordion-transition-property) var(--accordion-timing),\n --accordion-border-color: var(--border-color),\n --accordion-border-width: var(--border-width),\n --accordion-border-radius: var(--accordion-radius, var(--radius-7)),\n --accordion-btn-color: var(--fg-2),\n --accordion-btn-bg: var(--bg-body),\n --accordion-btn-icon-width: 1rem,\n --accordion-btn-icon-transform: rotate(-180deg),\n --accordion-btn-icon-transition: transform .2s ease-in-out,\n --accordion-active-color: var(--fg),\n --accordion-active-bg: var(--bg-2),\n ),\n $accordion-tokens\n);\n// scss-docs-end accordion-tokens\n\n@layer components {\n .accordion {\n @include tokens($accordion-tokens);\n }\n\n .accordion-header {\n display: flex;\n align-items: center;\n width: 100%;\n padding: var(--accordion-btn-padding-y, var(--accordion-padding-y)) var(--accordion-btn-padding-x, var(--accordion-padding-x));\n font-size: var(--accordion-font-size, var(--font-size-base));\n color: var(--accordion-btn-color);\n text-align: start;\n list-style: none; // Remove default marker\n cursor: pointer;\n background-color: var(--accordion-btn-bg);\n @include transition(var(--accordion-transition));\n\n &::-webkit-details-marker {\n display: none;\n }\n\n .accordion-icon {\n flex-shrink: 0;\n width: var(--accordion-btn-icon-width);\n height: var(--accordion-btn-icon-width);\n margin-inline-start: auto;\n color: currentcolor;\n @include transition(var(--accordion-btn-icon-transition));\n }\n\n &:hover {\n z-index: 2;\n }\n\n &:focus-visible {\n position: relative;\n z-index: 3;\n @include focus-ring(true);\n outline-offset: -1px;\n }\n }\n\n .accordion-item {\n color: var(--accordion-color);\n background-color: var(--accordion-bg);\n border: var(--accordion-border-width) solid var(--accordion-border-color);\n\n @media (prefers-reduced-motion: no-preference) {\n interpolate-size: allow-keywords;\n }\n\n &::details-content {\n block-size: 0;\n overflow-y: clip;\n @include transition(content-visibility .2s allow-discrete, block-size .2s);\n }\n\n &:first-of-type {\n @include border-top-radius(var(--accordion-border-radius));\n\n > .accordion-header {\n @include border-top-radius(calc(var(--accordion-border-radius) - var(--accordion-border-width)));\n }\n }\n\n &:not(:first-of-type) {\n border-block-start: 0;\n }\n\n // Only set a border-radius on the last item if the accordion is collapsed\n &:last-of-type {\n @include border-bottom-radius(var(--accordion-border-radius));\n\n > .accordion-header {\n @include border-bottom-radius(calc(var(--accordion-border-radius) - var(--accordion-border-width)));\n }\n\n > .accordion-body {\n @include border-bottom-radius(var(--accordion-border-radius));\n }\n }\n\n // Open state - details[open] applies these styles\n &[open] {\n\n border-color: var(--theme-border, var(--accordion-border-color));\n &::details-content {\n block-size: auto;\n }\n\n > .accordion-header {\n color: var(--theme-fg, var(--accordion-active-color));\n background-color: var(--theme-bg-subtle, var(--accordion-active-bg));\n box-shadow: inset 0 calc(-1 * var(--accordion-border-width)) 0 var(--theme-border, var(--accordion-border-color));\n\n .accordion-icon {\n transform: var(--accordion-btn-icon-transform);\n }\n }\n\n // Remove bottom radius from header when open (even on last item)\n &:last-of-type > .accordion-header {\n @include border-bottom-radius(0);\n }\n }\n }\n\n .accordion-body {\n padding: var(--accordion-body-padding-y, var(--accordion-padding-y)) var(--accordion-body-padding-x, var(--accordion-padding-x));\n }\n\n\n // Flush accordion items\n //\n // Remove borders and border-radius to keep accordion items edge-to-edge.\n\n .accordion-flush {\n > .accordion-item {\n border-inline: 0;\n @include border-radius(0);\n\n &:first-child {\n border-block-start: 0;\n }\n\n &:last-child {\n border-block-end: 0;\n }\n\n > .accordion-header,\n > .accordion-body {\n @include border-radius(0);\n }\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/tokens\" as *;\n\n$alert-tokens: () !default;\n\n// scss-docs-start alert-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$alert-tokens: defaults(\n (\n --alert-gap: var(--spacer-3),\n --alert-bg: var(--theme-bg-subtle, var(--bg-1)),\n --alert-padding-x: var(--spacer),\n --alert-padding-y: var(--spacer),\n --alert-color: var(--theme-fg, inherit),\n --alert-border-color: var(--theme-border, var(--border-color)),\n --alert-border: var(--border-width) solid var(--alert-border-color),\n --alert-border-radius: var(--radius-5),\n --alert-link-color: inherit,\n --hr-border-color: var(--theme-border, var(--border-color)),\n ),\n $alert-tokens\n);\n// scss-docs-end alert-tokens\n\n@layer components {\n .alert {\n @include tokens($alert-tokens);\n\n display: flex;\n gap: var(--alert-gap);\n align-items: start;\n padding: var(--alert-padding-y) var(--alert-padding-x);\n color: var(--alert-color);\n background-color: var(--alert-bg);\n border: var(--alert-border);\n @include border-radius(var(--alert-border-radius));\n }\n\n .alert > p {\n margin-bottom: 0;\n }\n\n .alert-heading {\n // Specified to prevent conflicts of changing $headings-color\n color: inherit;\n }\n\n // Provide class for links that match alerts\n .alert-link {\n font-weight: var(--font-weight-semibold);\n color: var(--alert-link-color);\n }\n}\n","@use \"sass:map\";\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/tokens\" as *;\n\n$avatar-tokens: () !default;\n\n// stylelint-disable custom-property-no-missing-var-function\n// scss-docs-start avatar-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$avatar-tokens: defaults(\n (\n --avatar-size: 2.5rem,\n --avatar-border-radius: 50%,\n --avatar-border-width: 2px,\n --avatar-border-color: var(--bg-body),\n --avatar-bg: var(--bg-2),\n --avatar-color: var(--fg-body),\n // --avatar-font-weight: var(--font-weight-medium), // Defaults to fallback\n --avatar-status-size: .75rem,\n --avatar-status-border-width: 2px,\n --avatar-status-border-color: var(--bg-body),\n --avatar-stack-spacing: -.3,\n --avatar-stack-transition: \"transform .2s ease-in-out\",\n ),\n $avatar-tokens\n);\n// scss-docs-end avatar-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n// scss-docs-start avatar-sizes\n$avatar-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$avatar-sizes: defaults(\n (\n \"xs\": (\n size: 1.5rem,\n status-size: .625rem,\n ),\n \"sm\": (\n size: 2rem,\n ),\n \"lg\": (\n size: 3rem,\n status-size: 1rem,\n border-width: 3px,\n ),\n \"xl\": (\n size: 4rem,\n status-size: 1.25rem,\n border-width: 4px,\n ),\n ),\n $avatar-sizes\n);\n// scss-docs-end avatar-sizes\n\n@layer components {\n .avatar {\n @include tokens($avatar-tokens);\n\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--avatar-size);\n height: var(--avatar-size);\n font-size: calc(var(--avatar-size) * .4);\n font-weight: var(--avatar-font-weight, var(--font-weight-medium));\n line-height: 1;\n color: var(--theme-contrast, var(--avatar-color));\n text-transform: uppercase;\n vertical-align: middle;\n background-color: var(--theme-bg, var(--avatar-bg));\n @include border-radius(var(--avatar-border-radius));\n\n > .avatar-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n }\n\n .avatar-subtle {\n color: var(--theme-fg, var(--avatar-color));\n background-color: var(--theme-bg-subtle, var(--avatar-bg));\n }\n\n .avatar-img {\n @include border-radius(var(--avatar-border-radius, 50%));\n }\n\n .avatar-status {\n position: absolute;\n right: calc(var(--avatar-status-border-width) * -1);\n bottom: calc(var(--avatar-status-border-width) * -1);\n width: var(--avatar-status-size);\n height: var(--avatar-status-size);\n background-color: var(--gray-400);\n border: var(--avatar-status-border-width) solid var(--avatar-status-border-color);\n @include border-radius(50%);\n\n &.status-online {\n background-color: var(--green-500);\n }\n\n &.status-offline {\n background-color: var(--gray-400);\n @include border-radius(20%);\n }\n\n &.status-busy {\n background-color: var(--red-500);\n @include border-radius(20%);\n }\n\n &.status-away {\n background-color: var(--yellow-500);\n }\n }\n\n .avatar-stack {\n display: inline-flex;\n flex-direction: row-reverse;\n\n .avatar {\n // Stack spacing is calculated as a percentage of avatar size\n margin-left: calc(var(--avatar-size) * var(--avatar-stack-spacing));\n border: var(--avatar-border-width) solid var(--avatar-border-color);\n mask-image: none;\n @include transition(var(--avatar-stack-transition));\n\n &:last-child {\n margin-left: 0;\n }\n\n &:hover {\n z-index: 1;\n transform: translateY(-2px);\n }\n }\n }\n\n @each $size, $tokens in $avatar-sizes {\n .avatar-#{$size},\n .avatar-stack-#{$size} > .avatar {\n --avatar-size: #{map.get($tokens, size)};\n\n @if map.has-key($tokens, status-size) {\n --avatar-status-size: #{map.get($tokens, status-size)};\n }\n\n @if map.has-key($tokens, border-width) {\n --avatar-border-width: #{map.get($tokens, border-width)};\n }\n }\n }\n}\n","@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/tokens\" as *;\n\n$badge-tokens: () !default;\n\n// scss-docs-start badge-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$badge-tokens: defaults(\n (\n --badge-padding-x: .625em,\n --badge-padding-y: .25em,\n --badge-font-size: clamp(12px, .75em, .75em),\n --badge-font-weight: var(--font-weight-semibold),\n --badge-color: inherit,\n --badge-bg: var(--bg-2),\n --badge-border-width: var(--border-width),\n --badge-border-color: transparent,\n --badge-border-radius: var(--radius-7),\n ),\n $badge-tokens\n);\n// scss-docs-end badge-tokens\n\n// scss-docs-start badge-variants\n$badge-variants: (\n \"subtle\": (\n \"color\": \"fg\",\n \"bg\": \"bg-subtle\",\n \"border-color\": \"transparent\"\n ),\n \"outline\": (\n \"color\": \"fg\",\n \"bg\": \"transparent\",\n \"border-color\": \"border\"\n )\n) !default;\n// scss-docs-end badge-variants\n\n@layer components {\n .badge {\n @include tokens($badge-tokens);\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 1.375rem;\n padding: var(--badge-padding-y) var(--badge-padding-x);\n font-size: var(--badge-font-size);\n font-weight: var(--badge-font-weight);\n line-height: 1;\n color: var(--theme-contrast, var(--badge-color));\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n background-color: var(--theme-bg, var(--badge-bg));\n border: var(--badge-border-width) solid var(--badge-border-color);\n @include border-radius(var(--badge-border-radius));\n // @include gradient-bg();\n\n // Empty badges collapse automatically\n &:empty {\n display: none;\n }\n }\n\n // Quick fix for badges in buttons\n .btn .badge {\n position: relative;\n top: -1px;\n }\n\n // scss-docs-start badge-variant-loop\n @each $variant, $properties in $badge-variants {\n .badge-#{$variant} {\n @each $property, $value in $properties {\n @if $value == \"transparent\" {\n --badge-#{$property}: transparent;\n } @else {\n --badge-#{$property}: var(--theme-#{$value});\n }\n }\n\n color: var(--badge-color);\n background-color: var(--badge-bg);\n border-color: var(--badge-border-color);\n }\n }\n // scss-docs-end badge-variant-loop\n}\n","@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/mask-icon\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/tokens\" as *;\n\n$breadcrumb-tokens: () !default;\n\n// scss-docs-start breadcrumb-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$breadcrumb-tokens: defaults(\n (\n --breadcrumb-margin-bottom: 1rem,\n --breadcrumb-font-size: inherit,\n --breadcrumb-bg: transparent,\n --breadcrumb-border-radius: var(--radius-5),\n --breadcrumb-divider-color: var(--fg-4),\n --breadcrumb-divider-icon: #{escape-svg(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 16'><path fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M2 2l4 6-4 6'/></svg>\"))},\n --breadcrumb-divider-width: .375rem,\n --breadcrumb-divider-height: .75rem,\n --breadcrumb-link-padding-x: .75rem,\n --breadcrumb-link-padding-y: .25rem,\n --breadcrumb-link-color: var(--fg-3),\n --breadcrumb-link-hover-color: var(--fg-2),\n --breadcrumb-link-hover-bg: var(--bg-1),\n --breadcrumb-link-active-color: var(--fg-1),\n --breadcrumb-link-border-radius: var(--radius-7),\n ),\n $breadcrumb-tokens\n);\n// scss-docs-end breadcrumb-tokens\n\n@layer components {\n .breadcrumb {\n @include tokens($breadcrumb-tokens);\n\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n padding: var(--breadcrumb-padding-y, 0) var(--breadcrumb-padding-x, 0);\n font-size: var(--breadcrumb-font-size);\n list-style: none;\n background-color: var(--breadcrumb-bg);\n @include border-radius(var(--breadcrumb-border-radius));\n }\n\n .breadcrumb-item {\n display: flex;\n }\n\n .breadcrumb-divider {\n margin-inline: calc(var(--breadcrumb-link-padding-x) / 4);\n color: var(--breadcrumb-divider-color);\n\n // Render a default chevron, painted with `currentcolor` via a mask, when the\n // divider has no explicit content. Any content (an inline SVG, a text\n // character, etc.) added to the element overrides this default.\n &:empty::before {\n display: block;\n width: var(--breadcrumb-divider-width);\n height: var(--breadcrumb-divider-height);\n content: \"\";\n background-color: currentcolor;\n @include mask-icon(var(--breadcrumb-divider-icon));\n }\n }\n\n .breadcrumb-link {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 2.25rem;\n padding: var(--breadcrumb-link-padding-y) var(--breadcrumb-link-padding-x);\n color: var(--breadcrumb-link-color);\n text-decoration: none;\n @include border-radius(var(--breadcrumb-link-border-radius));\n @include transition(.1s text-decoration-color ease-in-out);\n\n &:hover {\n z-index: 2;\n color: var(--breadcrumb-link-hover-color);\n background-color: var(--breadcrumb-link-hover-bg);\n }\n\n &.active {\n color: var(--breadcrumb-link-active-color);\n }\n }\n}\n","@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/tokens\" as *;\n\n$chip-tokens: () !default;\n\n// stylelint-disable custom-property-no-missing-var-function\n// scss-docs-start chip-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$chip-tokens: defaults(\n (\n --chip-height: 1.75rem,\n --chip-padding-x: .625rem,\n --chip-gap: .3125rem,\n --chip-border-radius: var(--radius-pill),\n --chip-img-size: 1.25rem,\n --chip-icon-size: 1rem,\n --chip-dismiss-size: 1rem,\n --chip-dismiss-opacity: .65,\n --chip-dismiss-hover-opacity: 1,\n --chip-color: var(--theme-fg, var(--fg-body)),\n --chip-bg: var(--theme-bg-subtle, var(--bg-2)),\n --chip-border-color: transparent,\n --chip-selected-color: var(--theme-contrast, var(--primary-contrast)),\n --chip-selected-bg: var(--theme-bg, var(--primary-bg)),\n --chip-selected-border-color: var(--theme-bg, var(--primary-bg)),\n ),\n $chip-tokens\n);\n// scss-docs-end chip-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer components {\n .chip {\n @include tokens($chip-tokens);\n\n display: inline-flex;\n gap: var(--chip-gap);\n align-items: center;\n height: var(--chip-height);\n padding-inline: var(--chip-padding-x);\n font-size: var(--chip-font-size, var(--font-size-sm));\n font-weight: var(--chip-font-weight, var(--font-weight-base));\n line-height: var(--chip-line-height, 1.25rem);\n color: var(--chip-color);\n text-decoration: none;\n white-space: nowrap;\n vertical-align: middle;\n cursor: pointer;\n background-color: var(--chip-bg);\n border: var(--border-width) solid var(--chip-border-color);\n @include border-radius(var(--chip-border-radius));\n\n &:hover {\n --chip-bg: var(--theme-bg-muted, var(--bg-3));\n }\n\n &:focus-visible {\n outline: 0;\n // @include focus-ring();\n }\n\n &.active {\n --chip-color: var(--chip-selected-color);\n --chip-bg: var(--chip-selected-bg);\n --chip-border-color: var(--chip-selected-border-color);\n\n &:hover {\n --chip-bg: var(--chip-selected-bg);\n opacity: .9;\n }\n }\n\n &.disabled,\n &:disabled {\n pointer-events: none;\n opacity: .65;\n }\n }\n\n .chip-img {\n width: var(--chip-img-size);\n height: var(--chip-img-size);\n @include border-radius(50%);\n\n &:first-child {\n margin-inline-start: -.375rem;\n }\n }\n\n // Chip icon (left side)\n .chip-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n margin-inline-start: calc(var(--chip-gap) * -.25);\n\n > svg {\n display: block; // Prevents baseline alignment issues\n width: var(--chip-icon-size);\n height: var(--chip-icon-size);\n }\n\n > img {\n width: var(--chip-icon-size);\n height: var(--chip-icon-size);\n object-fit: cover;\n @include border-radius(50%);\n }\n }\n\n // Dismiss button (right side)\n .chip-dismiss {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--chip-min-height);\n height: var(--chip-min-height);\n padding: 0;\n // margin-inline-start: calc(var(--chip-padding-x) * -.5);\n margin-inline-end: calc(var(--chip-padding-x) * -.25);\n color: inherit;\n cursor: pointer;\n background: transparent;\n border: 0;\n opacity: var(--chip-dismiss-opacity);\n // @include transition(opacity .15s ease-in-out);\n\n &:hover {\n opacity: var(--chip-dismiss-hover-opacity);\n }\n\n &:focus-visible {\n outline: 0;\n opacity: 1;\n @include focus-ring();\n }\n\n > svg {\n display: block; // Prevents baseline alignment issues\n width: var(--chip-dismiss-size);\n height: var(--chip-dismiss-size);\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/tokens\" as *;\n@use \"layout/breakpoints\" as *;\n\n$card-tokens: () !default;\n\n// scss-docs-start card-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$card-tokens: defaults(\n (\n --card-spacer-y: var(--spacer-5),\n --card-spacer-x: var(--spacer-5),\n --card-subtitle-color: inherit,\n --card-border-width: var(--border-width),\n --card-border-color: var(--border-color-translucent),\n --card-border-radius: var(--radius-7),\n --card-box-shadow: none,\n --card-inner-border-radius: calc(var(--radius-7) - var(--border-width)),\n --card-cap-padding-y: var(--spacer-3),\n --card-cap-padding-x: var(--spacer),\n --card-cap-bg: var(--bg-1),\n --card-cap-color: inherit,\n --card-height: auto,\n --card-color: inherit,\n --card-bg: var(--bg-body),\n --card-img-overlay-padding: var(--card-spacer-y),\n --card-group-margin: #{$grid-gutter-x * .5},\n --card-body-gap: calc(var(--card-spacer-y) * .5),\n ),\n $card-tokens\n);\n// scss-docs-end card-tokens\n\n@layer components {\n .card {\n @include tokens($card-tokens);\n\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n height: var(--card-height);\n color: var(--fg-body);\n word-wrap: break-word;\n background-color: var(--card-bg);\n // border: var(--card-border-width) solid var(--card-border-color);\n @include border-radius(var(--card-border-radius));\n @include box-shadow(var(--card-box-shadow));\n\n > hr {\n margin-inline: 0;\n }\n }\n\n .card-body {\n display: flex;\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n // as much space as possible, ensuring footers are aligned to the bottom.\n flex: 1 1 auto;\n flex-direction: column;\n gap: var(--card-body-gap);\n align-items: flex-start;\n padding: var(--card-spacer-y) var(--card-spacer-x);\n color: var(--card-color);\n border: solid var(--theme-bg, var(--card-border-color));\n border-width: 0 var(--card-border-width);\n\n > * {\n margin-block: 0;\n }\n }\n\n .card-body,\n .card-list {\n border: solid var(--theme-bg, var(--card-border-color));\n border-width: 0 var(--card-border-width);\n\n &:first-child {\n @include border-top-radius(var(--card-border-radius));\n border-top-width: var(--card-border-width);\n }\n\n &:last-child {\n @include border-bottom-radius(var(--card-border-radius));\n border-bottom-width: var(--card-border-width);\n }\n\n &:not(:first-child, :last-child) {\n border-block-end-width: var(--card-border-width);\n }\n }\n\n .card-title,\n .card-subtitle,\n .card-text {\n align-self: stretch;\n }\n\n .card-subtitle {\n margin-top: calc(var(--card-body-gap) * -.5);\n }\n\n .card-header {\n padding: var(--card-cap-padding-y) var(--card-cap-padding-x);\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\n color: var(--theme-contrast, var(--card-cap-color));\n background-color: var(--theme-bg, var(--card-cap-bg));\n border: var(--card-border-width) solid var(--theme-bg, var(--card-border-color));\n\n &:first-child {\n @include border-radius(var(--card-inner-border-radius) var(--card-inner-border-radius) 0 0);\n }\n }\n\n .card-footer {\n padding: var(--card-cap-padding-y) var(--card-cap-padding-x);\n color: var(--card-cap-color);\n background-color: var(--theme-bg, var(--card-cap-bg));\n border: var(--card-border-width) solid var(--theme-bg, var(--card-border-color));\n\n &:last-child {\n @include border-radius(0 0 var(--card-inner-border-radius) var(--card-inner-border-radius));\n }\n }\n\n .card-translucent {\n background-color: color-mix(in oklch, var(--card-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n\n .card-header,\n .card-footer {\n background-color: color-mix(in oklch, var(--card-cap-bg) 60%, transparent);\n }\n }\n\n .card-subtle {\n border-color: var(--theme-border, var(--card-border-color));\n\n .card-header {\n color: var(--theme-fg-emphasis, currentcolor);\n background-color: var(--theme-bg-subtle, var(--card-cap-bg));\n border-color: var(--theme-border, var(--card-border-color));\n }\n\n .card-footer {\n color: var(--theme-fg-emphasis, currentcolor);\n background-color: var(--theme-bg-subtle, var(--card-cap-bg));\n border-color: var(--theme-border, var(--card-border-color));\n }\n\n .card-body,\n .card-list {\n border-color: var(--theme-border, var(--card-border-color));\n }\n }\n\n //\n // Header navs\n //\n\n // Combined selector because of specificity match with `.nav` base class\n .nav.card-header-tabs {\n margin-inline: calc(-.5 * var(--card-cap-padding-x));\n margin-bottom: calc(-1 * var(--card-cap-padding-y));\n border-block-end: 0;\n\n .nav-link.active {\n background-color: var(--card-bg);\n border-block-end-color: var(--card-bg);\n }\n }\n\n // Card image\n .card-img-overlay {\n position: absolute;\n inset: 0;\n padding: var(--card-img-overlay-padding);\n @include border-radius(var(--card-inner-border-radius));\n }\n\n .card-img,\n .card-img-top,\n .card-img-bottom {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n outline: var(--card-border-width) solid var(--card-border-color);\n outline-offset: calc(var(--card-border-width) * -1);\n }\n\n .card-img,\n .card-img-top {\n @include border-top-radius(var(--card-inner-border-radius));\n }\n\n .card-img,\n .card-img-bottom {\n @include border-bottom-radius(var(--card-inner-border-radius));\n }\n\n .card-row {\n flex-direction: row;\n\n .card-body,\n .card-list {\n border-width: var(--card-border-width) 0;\n @include border-radius(0);\n\n &:first-child {\n @include border-start-radius(var(--card-inner-border-radius));\n border-inline-start-width: var(--card-border-width);\n }\n\n &:last-child {\n @include border-end-radius(var(--card-inner-border-radius));\n border-inline-end-width: var(--card-border-width);\n }\n\n &:not(:first-child, :last-child) {\n border-inline-end-width: var(--card-border-width);\n }\n }\n }\n\n .card-img-start {\n @include border-start-radius(var(--card-inner-border-radius));\n }\n\n .card-img-end {\n @include border-end-radius(var(--card-inner-border-radius));\n }\n\n //\n // Card groups\n //\n\n .card-group {\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n margin-bottom: var(--card-group-margin);\n }\n\n @include media-breakpoint-up(sm) {\n display: flex;\n flex-flow: row wrap;\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n flex: 1 0 0;\n margin-bottom: 0;\n\n + .card {\n margin-inline-start: 0;\n border-inline-start: 0;\n }\n\n // Handle rounded corners\n @if $enable-rounded {\n &:not(:last-child) {\n @include border-end-radius(0);\n\n > .card-img-top,\n > .card-header,\n > .card-body {\n border-start-end-radius: 0;\n }\n > .card-img-bottom,\n > .card-footer,\n > .card-body {\n border-end-end-radius: 0;\n }\n }\n\n &:not(:first-child) {\n @include border-start-radius(0);\n\n > .card-img-top,\n > .card-header,\n > .card-body {\n border-start-start-radius: 0;\n }\n > .card-img-bottom,\n > .card-footer,\n > .card-body {\n border-end-start-radius: 0;\n }\n }\n }\n }\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/mask-icon\" as *;\n@use \"mixins/tokens\" as *;\n\n$carousel-tokens: () !default;\n\n// stylelint-disable custom-property-no-missing-var-function\n// scss-docs-start carousel-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$carousel-tokens: defaults(\n (\n --carousel-gap: .75rem,\n --carousel-indicator-bg: var(--fg-3),\n --carousel-indicator-width: .75rem,\n --carousel-indicator-height: .75rem,\n --carousel-indicator-spacer: .25rem,\n --carousel-indicator-transition: \"opacity .6s ease, width .3s ease\",\n --carousel-indicator-progress-bg: var(--carousel-indicator-bg),\n --carousel-control-icon-width: 1rem,\n --carousel-control-prev-icon: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/></svg>\"),\n --carousel-control-next-icon: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/></svg>\"),\n --carousel-control-pause-icon: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M5.5 3.5A1.5 1.5 0 0 1 7 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5m5 0A1.5 1.5 0 0 1 12 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5'/></svg>\"),\n --carousel-control-play-icon: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='m11.596 8.697-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393z'/></svg>\"),\n // Scroll-snap engine. `gap` must carry a length unit: it feeds the\n // `.carousel-item` flex-basis `calc()`, and subtracting a unitless `0` from a\n // percentage is invalid CSS (it would drop the whole declaration and collapse\n // every slide to its content width). `peek` only feeds `padding-inline`/\n // `scroll-padding-inline`, so a bare `0` would be valid there, but we keep it\n // unit-bearing for consistency.\n --carousel-items: 1,\n --carousel-items-gap: 0px,\n --carousel-items-peek: 0px,\n --carousel-fade-duration: .6s,\n ),\n $carousel-tokens\n);\n// scss-docs-end carousel-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer components {\n .carousel {\n @include tokens($carousel-tokens);\n\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--carousel-gap);\n }\n\n // The scroll viewport\n .carousel-inner {\n display: flex;\n gap: var(--carousel-items-gap);\n width: 100%;\n padding-inline: var(--carousel-items-peek);\n overflow-x: auto;\n overscroll-behavior-x: contain;\n scroll-snap-type: x mandatory;\n scroll-padding-inline: var(--carousel-items-peek);\n scrollbar-width: none; // Hide the scrollbar without losing scrollability\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n // Smooth programmatic/keyboard scrolling, disabled under reduced-motion\n @media (prefers-reduced-motion: no-preference) {\n .carousel-inner {\n scroll-behavior: smooth;\n }\n }\n\n .carousel-item {\n // `100%` here is `.carousel-inner`'s content box, which `padding-inline`\n // has already inset by the peek on each side, so the peek must NOT be\n // subtracted again — doing so makes every slide `2 * peek` too narrow and\n // the peek lopsided. Only the inter-slide gaps need removing.\n flex: 0 0 calc((100% - (var(--carousel-items) - 1) * var(--carousel-items-gap)) / var(--carousel-items));\n min-width: 0;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n }\n\n //\n // Layout variants\n //\n\n // Center the active slide in the viewport (pairs well with `--carousel-items-peek`)\n .carousel-center {\n .carousel-item {\n scroll-snap-align: center;\n }\n }\n\n // Let each slide size itself; snap points still land on every item\n .carousel-auto {\n .carousel-item {\n flex-basis: auto;\n }\n }\n\n //\n // Alternate transitions\n //\n\n // Fade can't ride scroll-snap (it stacks slides instead of scrolling), so it\n // becomes a JavaScript-driven mode: every slide is stacked and the active one\n // is faded in via a CSS opacity transition.\n .carousel-fade {\n .carousel-inner {\n display: grid;\n overflow: hidden;\n scroll-snap-type: none;\n }\n\n .carousel-item {\n grid-area: 1 / 1;\n width: 100%;\n visibility: hidden;\n opacity: 0;\n @include transition(opacity var(--carousel-fade-duration) ease, visibility 0s linear var(--carousel-fade-duration));\n }\n\n .carousel-item.active {\n visibility: visible;\n opacity: 1;\n @include transition(opacity var(--carousel-fade-duration) ease);\n }\n }\n\n // Icons for within, rendered via CSS mask so they inherit the current text\n // color (white on the overlay controls, the button color inside `.btn-*`).\n .carousel-icon-prev,\n .carousel-icon-next,\n .carousel-icon-pause,\n .carousel-icon-play {\n display: inline-block;\n width: var(--carousel-control-icon-width);\n height: var(--carousel-control-icon-width);\n background-color: currentcolor;\n @include mask-icon($size: 100% 100%, $position: 50%);\n }\n\n .carousel-icon-prev {\n mask-image: var(--carousel-control-prev-icon);\n }\n\n .carousel-icon-next {\n mask-image: var(--carousel-control-next-icon);\n }\n\n [dir=\"rtl\"] .carousel-icon-prev,\n [dir=\"rtl\"] .carousel-icon-next {\n transform: scaleX(-1);\n }\n\n .carousel-icon-pause {\n mask-image: var(--carousel-control-pause-icon);\n }\n\n .carousel-icon-play {\n mask-image: var(--carousel-control-play-icon);\n }\n\n // Optional play/pause control\n //\n // A discoverable toggle so users can stop an autoplaying carousel, as required\n // by WCAG 2.2.2 (Pause, Stop, Hide). `.carousel-control-play-pause` is only a\n // behavior hook—JS toggles `.paused` on it and its appearance comes from the\n // wrapping button (e.g. `.btn-icon`). The button holds both glyphs and we show\n // whichever `.carousel-icon-*` matches the current state.\n .carousel-control-play-pause .carousel-icon-play {\n display: none;\n }\n\n .carousel-control-play-pause.paused {\n .carousel-icon-pause {\n display: none;\n }\n\n .carousel-icon-play {\n display: inline-block;\n }\n }\n\n .carousel-indicators {\n display: flex;\n gap: var(--carousel-indicator-spacer);\n justify-content: center;\n\n [data-bs-target] {\n flex: 0 1 auto;\n width: var(--carousel-indicator-width);\n height: var(--carousel-indicator-height);\n padding: 0;\n cursor: pointer;\n background-color: transparent;\n border: 1px solid var(--carousel-indicator-bg);\n @include border-radius(var(--carousel-indicator-width));\n @include transition(var(--carousel-indicator-transition));\n }\n\n .active {\n width: calc(var(--carousel-indicator-width) * 2.5);\n background-color: var(--carousel-indicator-bg);\n border-color: var(--carousel-indicator-bg);\n }\n }\n\n // Autoplay progress: fill the active indicator like a progress bar over the\n // current slide's interval. The JS adds `.carousel-playing` and sets\n // `--carousel-interval` (shipped as `--bs-carousel-interval`) while autoplay is\n // running. The fill restarts on its own each slide because `.active` moves to a\n // fresh indicator, so its `::after` animation begins from scratch.\n @if $enable-transitions {\n @keyframes carousel-indicator-progress {\n from { inline-size: 0; }\n to { inline-size: 100%; }\n }\n\n .carousel-playing .carousel-indicators .active {\n @media (prefers-reduced-motion: no-preference) {\n position: relative;\n overflow: hidden;\n // Empty the pill so it reads as a track that the fill grows across.\n background-color: transparent;\n\n &::after {\n position: absolute;\n inset-block: 0;\n inset-inline-start: 0;\n inline-size: 0;\n content: \"\";\n background-color: var(--carousel-indicator-progress-bg);\n animation: carousel-indicator-progress var(--carousel-interval, 5000ms) linear forwards;\n }\n }\n }\n }\n\n // Overlay layout\n //\n // Overlays the prev/next controls, play/pause button, and indicators on top of\n // the slides (the classic carousel look) instead of stacking them in the flow.\n\n .carousel-overlay {\n --carousel-indicator-bg: light-dark(var(--white), var(--black));\n\n .carousel-overlay-controls {\n position: absolute;\n inset-block-end: 1rem;\n inset-inline: 1rem;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n }\n}\n","// stylelint-disable selector-max-attribute, property-disallowed-list, selector-no-qualifying-type -- VCP uses extensive data attributes and requires direct border-radius properties for range selection\n\n@use \"functions\" as *;\n@use \"config\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/mask-icon\" as *;\n@use \"mixins/tokens\" as *;\n\n$datepicker-tokens: () !default;\n\n// scss-docs-start datepicker-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$datepicker-tokens: defaults(\n (\n --datepicker-padding: 1rem,\n --datepicker-bg: var(--bg-body),\n --datepicker-color: var(--fg-body),\n --datepicker-border-color: var(--border-color-translucent),\n --datepicker-border-width: var(--border-width),\n --datepicker-border-radius: var(--radius-7),\n --datepicker-box-shadow: var(--box-shadow),\n --datepicker-font-size: var(--font-size-sm),\n --datepicker-min-width: 280px,\n --datepicker-zindex: #{$zindex-menu},\n --datepicker-header-font-weight: 600,\n --datepicker-weekday-color: var(--fg-3),\n --datepicker-day-hover-bg: var(--bg-1),\n --datepicker-day-selected-bg: var(--primary-bg),\n --datepicker-day-selected-color: var(--primary-contrast),\n --datepicker-day-today-bg: var(--bg-2),\n --datepicker-day-today-color: var(--fg-1),\n --datepicker-day-disabled-color: var(--fg-4),\n ),\n $datepicker-tokens\n);\n// scss-docs-end datepicker-tokens\n\n@layer components {\n [data-vc=\"calendar\"] {\n @include tokens($datepicker-tokens);\n\n position: absolute;\n z-index: var(--datepicker-zindex);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n min-width: var(--datepicker-min-width);\n padding: var(--datepicker-padding);\n font-family: var(--font-sans-serif);\n font-size: var(--datepicker-font-size);\n color: var(--datepicker-color);\n color-scheme: light dark;\n background-color: var(--datepicker-bg);\n border: var(--datepicker-border-width) solid var(--datepicker-border-color);\n box-shadow: var(--datepicker-box-shadow);\n opacity: 1;\n @include border-radius(var(--datepicker-border-radius));\n\n // Respond to Bootstrap's color mode system\n &[data-bs-theme=\"light\"] {\n color-scheme: light;\n }\n\n &[data-bs-theme=\"dark\"] {\n color-scheme: dark;\n }\n\n // Catch-all for focus styles\n button:focus-visible {\n position: relative;\n z-index: 1;\n @include focus-ring();\n }\n }\n\n [data-vc-calendar-hidden] {\n pointer-events: none;\n opacity: 0;\n }\n\n // Inline calendars\n //\n // Remove popover styling for more neutral styling\n [data-vc=\"calendar\"]:not([data-vc-input]) {\n position: relative;\n width: fit-content;\n padding: 0;\n border: 0;\n box-shadow: none;\n }\n\n [data-vc-position=\"bottom\"] {\n margin-block-start: .25rem;\n }\n\n [data-vc-position=\"top\"] {\n margin-block-end: -.25rem;\n }\n\n [data-vc-arrow] {\n position: relative;\n display: block;\n width: 2rem;\n height: 2rem;\n color: var(--datepicker-color);\n pointer-events: auto;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n @include border-radius(var(--radius-5));\n\n &::before {\n position: absolute;\n inset: .25rem;\n content: \"\";\n background-color: var(--datepicker-color);\n @include mask-icon(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 16c-.3 0-.5-.1-.7-.3l-6-6c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l5.3 5.3 5.3-5.3c.4-.4 1-.4 1.4 0s.4 1 0 1.4l-6 6c-.2.2-.4.3-.7.3'/></svg>\"), $size: null);\n }\n\n &:hover {\n background-color: var(--datepicker-day-hover-bg);\n }\n }\n\n [data-vc-arrow=\"prev\"]::before {\n transform: rotate(90deg);\n }\n\n [data-vc-arrow=\"next\"]::before {\n transform: rotate(-90deg);\n }\n\n // Grid layout\n [data-vc=\"controls\"] {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 20;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: 1rem;\n padding-right: 1rem;\n padding-left: 1rem;\n pointer-events: none;\n }\n\n [data-vc=\"grid\"] {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n gap: 1.75rem;\n }\n\n [data-vc=\"column\"] {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n min-width: 240px;\n }\n\n //\n // Header\n //\n\n [data-vc=\"header\"] {\n position: relative;\n display: flex;\n align-items: center;\n margin-bottom: .75rem;\n }\n\n // Month and year\n [data-vc-header=\"content\"] {\n display: inline-flex;\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n white-space: pre-wrap;\n }\n\n [data-vc=\"month\"],\n [data-vc=\"year\"] {\n padding: .25rem .5rem;\n margin-inline: -.125rem;\n font-size: 1rem;\n font-weight: var(--datepicker-header-font-weight);\n color: var(--datepicker-color);\n // cursor: pointer;\n background-color: transparent;\n border: 0;\n @include border-radius(var(--radius-5));\n\n &:disabled {\n color: var(--datepicker-day-disabled-color);\n pointer-events: none;\n }\n\n &:hover:not(:disabled) {\n background-color: var(--datepicker-day-hover-bg);\n }\n }\n\n [data-vc=\"content\"] {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n }\n\n // Month/Year grids\n [data-vc=\"months\"],\n [data-vc=\"years\"] {\n display: grid;\n flex-grow: 1;\n grid-template-columns: repeat(var(--vc-columns, 4), minmax(0, 1fr));\n row-gap: 1rem;\n column-gap: .25rem;\n align-items: center;\n }\n\n [data-vc=\"years\"] {\n --vc-columns: 5;\n }\n\n [data-vc-months-month],\n [data-vc-years-year] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 2.5rem;\n padding: .25rem;\n font-size: .75rem;\n font-weight: 600;\n line-height: 1rem;\n color: var(--datepicker-weekday-color);\n text-align: center;\n word-break: break-all;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n @include border-radius(var(--radius-5));\n\n &:disabled {\n color: var(--datepicker-day-disabled-color);\n pointer-events: none;\n }\n\n &:hover:not(:disabled) {\n background-color: var(--datepicker-day-hover-bg);\n }\n\n &[data-vc-months-month-selected],\n &[data-vc-years-year-selected] {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n\n &:hover {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n }\n }\n }\n\n // Week days header\n [data-vc=\"week\"] {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n justify-items: center;\n margin-bottom: .5rem;\n }\n\n [data-vc-week-day] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 1.875rem;\n padding: 0;\n margin: 0;\n font-size: .75rem;\n font-weight: 600;\n line-height: 1rem;\n color: var(--datepicker-weekday-color);\n background-color: transparent;\n border: 0;\n }\n\n button[data-vc-week-day] {\n cursor: pointer;\n }\n\n // Dates grid\n [data-vc=\"dates\"] {\n pointer-events: none;\n }\n\n [data-vc-dates=\"row\"] {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n align-items: center;\n justify-items: center;\n width: 100%;\n }\n\n [data-vc-date] {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n padding-top: .125rem;\n padding-bottom: .125rem;\n pointer-events: auto;\n\n &:not(:has([data-vc-date-btn])),\n &[data-vc-date-disabled],\n &[data-vc-date-disabled] [data-vc-date-btn] {\n pointer-events: none;\n }\n }\n\n // Date button\n [data-vc-date-btn] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 1.875rem;\n height: 100%;\n min-height: 1.875rem;\n padding: 0;\n font-size: .75rem;\n font-weight: 400;\n line-height: 1rem;\n color: var(--datepicker-color);\n cursor: pointer;\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n\n &:hover {\n background-color: var(--datepicker-day-hover-bg);\n }\n }\n\n // Today\n [data-vc-date-today] [data-vc-date-btn] {\n font-weight: 600;\n color: var(--datepicker-day-today-color);\n background-color: var(--datepicker-day-today-bg);\n }\n\n // Outside month\n [data-vc-date-month=\"next\"] [data-vc-date-btn],\n [data-vc-date-month=\"prev\"] [data-vc-date-btn] {\n opacity: .5;\n }\n\n // Disabled\n [data-vc-date-disabled] [data-vc-date-btn] {\n color: var(--datepicker-day-disabled-color);\n }\n\n // Range selection styles\n [data-vc-date-hover] [data-vc-date-btn] {\n background-color: var(--datepicker-day-hover-bg);\n border-radius: 0;\n }\n\n [data-vc-date-hover=\"first\"] [data-vc-date-btn] {\n border-start-start-radius: var(--radius-5);\n border-end-start-radius: var(--radius-5);\n }\n\n [data-vc-date-hover=\"last\"] [data-vc-date-btn] {\n border-start-end-radius: var(--radius-5);\n border-end-end-radius: var(--radius-5);\n }\n\n [data-vc-date-hover=\"first-and-last\"] [data-vc-date-btn] {\n border-radius: var(--radius-5);\n }\n\n [data-vc-date-selected=\"middle\"] [data-vc-date-btn] {\n border-radius: 0;\n opacity: .8;\n }\n\n // Selected\n [data-vc-date-selected] [data-vc-date-btn] {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n\n }\n\n [data-vc-date-selected=\"first\"] [data-vc-date-btn] {\n border-top-left-radius: var(--radius-5);\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: var(--radius-5);\n }\n\n [data-vc-date-selected=\"last\"] [data-vc-date-btn] {\n border-top-left-radius: 0;\n border-top-right-radius: var(--radius-5);\n border-bottom-right-radius: var(--radius-5);\n border-bottom-left-radius: 0;\n }\n\n [data-vc-date-selected=\"first-and-last\"] [data-vc-date-btn] {\n border-radius: var(--radius-5);\n }\n}\n","@use \"sass:map\";\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/dialog-shared\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/tokens\" as *;\n\n// Native <dialog> component\n// Uses the browser's native dialog element with showModal()/show()/close() APIs\n// Leverages native [open] attribute and ::backdrop pseudo-element\n\n// stylelint-disable custom-property-no-missing-var-function\n$dialog-tokens: () !default;\n\n// scss-docs-start dialog-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$dialog-tokens: defaults(\n (\n --dialog-padding: 1rem,\n --dialog-width: 500px,\n --dialog-margin: 1.75rem,\n --dialog-color: var(--fg-body),\n --dialog-bg: var(--bg-body),\n --dialog-border-color: var(--border-color-translucent),\n --dialog-border-width: var(--border-width),\n --dialog-border-radius: var(--radius-7),\n --dialog-box-shadow: var(--box-shadow-lg),\n --dialog-transition-duration: .3s,\n --dialog-transition-timing: cubic-bezier(.22, 1, .36, 1),\n --dialog-backdrop-bg: rgb(0 0 0 / 50%),\n --dialog-backdrop-blur: 8px,\n --dialog-header-padding: 1rem,\n --dialog-header-border-color: var(--border-color),\n --dialog-header-border-width: var(--border-width),\n --dialog-footer-padding: 1rem,\n --dialog-footer-border-color: var(--border-color),\n --dialog-footer-border-width: var(--border-width),\n --dialog-footer-gap: .5rem,\n ),\n $dialog-tokens\n);\n// scss-docs-end dialog-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n// scss-docs-start dialog-sizes\n$dialog-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$dialog-sizes: defaults(\n (\n sm: 280px,\n lg: 800px,\n xl: 1140px,\n ),\n $dialog-sizes\n);\n// scss-docs-end dialog-sizes\n\n@layer components {\n // Prevent body scroll when dialog is open\n .dialog-open {\n overflow: hidden;\n }\n\n .dialog {\n @include tokens($dialog-tokens);\n\n // Override UA display:none so visibility controls the hidden state,\n // enabling reliable cross-browser exit animations after close().\n display: flex;\n flex-direction: column;\n width: var(--dialog-width);\n max-width: calc(100% - var(--dialog-margin) * 2);\n max-height: calc(100% - var(--dialog-margin) * 2);\n padding: 0;\n margin: auto;\n overflow: visible;\n color: var(--dialog-color);\n visibility: hidden;\n background-color: var(--dialog-bg);\n background-clip: padding-box;\n border: var(--dialog-border-width) solid var(--dialog-border-color);\n @include border-radius(var(--dialog-border-radius));\n @include box-shadow(var(--dialog-box-shadow));\n\n // Animated variant (default) — transitions, opacity fade, slide transforms.\n // Adding .dialog-instant skips all animations (instant show/hide).\n &:not(.dialog-instant) {\n // Exit state: faded out\n opacity: 0;\n\n // Exit transition: opacity and transform animate out, then visibility\n // flips hidden after the animation completes (via the delay).\n @include transition(\n opacity var(--dialog-transition-duration) var(--dialog-transition-timing),\n transform var(--dialog-transition-duration) var(--dialog-transition-timing),\n visibility 0s var(--dialog-transition-duration)\n );\n\n // Slide-down variant: enters from above sliding down, exits by reversing\n // back up. Base value is the entry-from / exit-to position so the\n // animation works on every open (not just the first, which is the only\n // time @starting-style applies for a persistent <dialog> element).\n &.dialog-slide-down {\n transform: translateY(-3rem);\n }\n\n // Slide-up variant: enters from below sliding up, exits by reversing\n // back down. See note above re: base value choice.\n &.dialog-slide-up {\n transform: translateY(3rem);\n }\n\n // Open state: visible and faded in.\n // Entry transition: visibility flips visible immediately (0s, no delay),\n // then opacity and transform animate in.\n // The :not(.hiding) qualifier lets the exit transition fall back to the\n // base \"exit\" state above while [open] is still present (the JS keeps\n // the dialog in the top layer during the exit so the ::backdrop and\n // the browser's modal centering remain intact).\n &[open]:not(.hiding) {\n overflow: visible;\n visibility: visible;\n opacity: 1;\n @include transition(\n opacity var(--dialog-transition-duration) var(--dialog-transition-timing),\n transform var(--dialog-transition-duration) var(--dialog-transition-timing),\n visibility 0s\n );\n transform: none;\n }\n\n // Static backdrop \"bounce\" animation (modal dialogs only). Qualified\n // with [open] (to outrank the open-state `transform: none` selector\n // which now also includes `:not(.hiding)`) and `:not(.hiding)` (so\n // a backdrop click while the dialog is mid-exit doesn't fight the\n // slide-out transform).\n &[open].dialog-static:not(.hiding) {\n transform: scale(1.02);\n }\n\n // Native backdrop styling with transitions\n &::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n @include backdrop-transitions(var(--dialog-transition-duration), var(--dialog-transition-timing));\n }\n\n // Exit: fade the native backdrop out alongside the dialog. The dialog\n // is kept in the top layer (and thus the ::backdrop is still rendered)\n // for the duration of the exit transition.\n &.hiding::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n }\n\n // Instant variant — no transitions, just snap visibility\n &.dialog-instant {\n &::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n }\n }\n\n // Open state base (always applies, regardless of animation mode).\n // Excluded while .hiding is present so the animated exit (above) can\n // fall through to the base \"exit\" state — for instant dialogs, .hiding\n // is removed synchronously after close() so this still applies normally.\n &[open]:not(.hiding) {\n overflow: visible;\n visibility: visible;\n opacity: 1;\n transform: none;\n }\n\n // Non-modal dialog positioning\n // show() doesn't use the top layer, so we need explicit positioning and z-index\n &.dialog-nonmodal {\n position: fixed;\n inset-block-start: 50%;\n inset-inline-start: 50%;\n z-index: $zindex-dialog;\n margin-inline: 0;\n transform: translate(-50%, -50%);\n }\n\n // Scrollable dialog body (header/footer stay fixed)\n &.dialog-scrollable[open] {\n max-height: calc(100% - var(--dialog-margin) * 2);\n\n .dialog-body {\n overflow-y: auto;\n }\n }\n }\n\n // Entry animation for ::backdrop via @starting-style. The backdrop only\n // exists while the dialog is in the top layer, so its starting state can't\n // be expressed on the base selector.\n // Default dialog (fade only) and the slide variants do NOT need\n // @starting-style — the base opacity: 0 (and base transform for slides)\n // serves as the entry-from state with the visibility trick.\n @starting-style {\n .dialog:not(.dialog-instant)::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n\n // Swap entry: when this dialog is opened as the target of a swap, the\n // outgoing dialog's ::backdrop is being removed synchronously in the same\n // JS tick. To avoid any flicker (either a dip from a fade-in over nothing,\n // or double-darkening from two stacked backdrops), start this backdrop\n // already-opaque so it takes over from the outgoing one seamlessly.\n .dialog.dialog-swap-in:not(.dialog-instant)::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n }\n }\n\n // Dialog sizes\n @each $size, $value in $dialog-sizes {\n .dialog-#{$size} { --dialog-width: #{$value}; }\n }\n\n // Fullscreen dialog\n .dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n\n // Responsive fullscreen dialogs\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @if $prefix != \"\" {\n @include media-breakpoint-down($breakpoint) {\n .#{css-escape-ident($breakpoint)}-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n }\n }\n\n // Dialog header\n .dialog-header {\n @include dialog-header(var(--dialog-header-padding));\n border-block-end: var(--dialog-header-border-width) solid var(--dialog-header-border-color);\n\n .btn-close {\n margin-inline-start: auto;\n }\n }\n\n // Dialog title\n .dialog-title {\n @include dialog-title();\n font-size: var(--font-size-md);\n }\n\n // Dialog body\n .dialog-body {\n position: relative;\n @include dialog-body(var(--dialog-padding));\n }\n\n // Dialog footer\n .dialog-footer {\n @include dialog-footer(var(--dialog-footer-padding), var(--dialog-footer-gap), var(--dialog-footer-border-width), var(--dialog-footer-border-color));\n }\n}\n","// Shared mixins for Dialog and Drawer sub-components.\n// Both components use identical header/footer/body/title patterns\n// with different token namespaces.\n\n@use \"transition\" as *;\n\n// Header: flex row with close button alignment\n@mixin dialog-header($padding) {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n padding: $padding;\n}\n\n// Footer: flex row with end-aligned actions\n@mixin dialog-footer($padding, $gap, $border-width, $border-color) {\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n gap: $gap;\n align-items: center;\n justify-content: flex-end;\n padding: $padding;\n border-block-start: $border-width solid $border-color;\n}\n\n// Body: flexible scrollable content area\n@mixin dialog-body($padding) {\n flex: 1 1 auto;\n padding: $padding;\n}\n\n// Title: reset margin, set line-height\n@mixin dialog-title($line-height: 1.5) {\n margin-bottom: 0;\n line-height: $line-height;\n}\n\n// Backdrop transitions for ::backdrop pseudo-element.\n// Both Dialog and Drawer use identical allow-discrete transitions\n// on display and overlay to keep ::backdrop in the top layer.\n@mixin backdrop-transitions($duration, $timing) {\n @include transition(\n background-color $duration $timing,\n backdrop-filter $duration $timing,\n display $duration allow-discrete,\n overlay $duration allow-discrete\n );\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/tokens\" as *;\n@use \"mixins/transition\" as *;\n\n// stylelint-disable scss/dollar-variable-default, custom-property-no-missing-var-function\n$menu-tokens: () !default;\n\n// scss-docs-start menu-tokens\n$menu-tokens: defaults(\n (\n --menu-zindex: #{$zindex-menu},\n --menu-gap: .125rem,\n --menu-min-width: 10rem,\n --menu-padding-x: .25rem,\n --menu-padding-y: .25rem,\n --menu-spacer: .125rem,\n --menu-font-size: var(--font-size-sm),\n --menu-color: var(--fg-body),\n --menu-bg: var(--bg-body),\n // --menu-border-color: var(--border-color-translucent),\n // --menu-border-radius: var(--radius-7),\n // --menu-border-width: var(--border-width),\n --menu-box-shadow: var(--box-shadow),\n // --menu-max-height: none,\n --menu-divider-bg: var(--border-color-translucent),\n --menu-divider-margin-y: .125rem,\n --menu-divider-margin-x: .25rem,\n --menu-item-color: var(--menu-color, var(--fg-body)),\n --menu-item-hover-color: var(--menu-color, var(--fg-body)),\n --menu-item-hover-bg: var(--bg-1),\n --menu-item-active-color: var(--primary-contrast),\n --menu-item-active-bg: var(--primary-bg),\n --menu-item-disabled-color: var(--fg-3),\n --menu-item-gap: .5rem,\n --menu-item-padding-x: .75rem,\n --menu-item-padding-y: .25rem,\n --menu-item-border-radius: var(--radius-5),\n --menu-icon-size: 1rem,\n --menu-description-font-size: var(--font-size-xs),\n --menu-check-color: currentcolor,\n --menu-header-color: var(--fg-3),\n --menu-header-padding-x: .75rem,\n --menu-header-padding-y: .25rem,\n --menu-transition-duration: .15s,\n --menu-transition-timing: cubic-bezier(.22, 1, .36, 1),\n ),\n $menu-tokens\n);\n// scss-docs-end menu-tokens\n\n// stylelint-enable custom-property-no-missing-var-function, scss/dollar-variable-default\n\n@layer components {\n .menu {\n @include tokens($menu-tokens);\n\n position: absolute;\n z-index: var(--menu-zindex);\n display: none;\n flex-direction: column;\n gap: var(--menu-gap);\n min-width: var(--menu-min-width);\n max-height: var(--menu-max-height, none);\n padding: var(--menu-padding-y) var(--menu-padding-x);\n margin: 0;\n overflow-y: var(--menu-overflow-y, initial);\n overscroll-behavior: contain;\n font-size: var(--menu-font-size);\n color: var(--menu-color);\n text-align: start;\n list-style: none;\n background-color: var(--menu-bg);\n background-clip: padding-box;\n border: var(--menu-border-width, var(--border-width)) solid var(--menu-border-color, var(--border-color-translucent));\n @include border-radius(var(--menu-border-radius, var(--radius-7)));\n @include box-shadow(var(--menu-box-shadow));\n opacity: 0;\n transform: scale(.95);\n transform-origin: top start;\n\n &[data-bs-placement^=\"top\"] {\n transform-origin: bottom start;\n }\n\n &[data-bs-placement=\"bottom-end\"] {\n transform-origin: top end;\n }\n\n &[data-bs-placement=\"top-end\"] {\n transform-origin: bottom end;\n }\n\n &[data-bs-placement^=\"left\"] {\n transform-origin: top end;\n }\n\n @include transition(\n opacity var(--menu-transition-duration) var(--menu-transition-timing),\n transform var(--menu-transition-duration) var(--menu-transition-timing),\n display var(--menu-transition-duration) allow-discrete\n );\n\n &.show {\n display: flex;\n opacity: 1;\n transform: none;\n }\n }\n\n @starting-style {\n .menu.show {\n opacity: 0;\n transform: scale(.95);\n }\n }\n\n .menu-scrollable {\n --menu-max-height: 80dvh;\n --menu-overflow-y: auto;\n }\n\n .menu-translucent {\n --menu-item-hover-bg-light: color-mix(in oklch, var(--bg-1) 90%, transparent);\n --menu-item-hover-bg-dark: color-mix(in oklch, var(--bg-1) 80%, transparent);\n\n --menu-item-active-bg-light: color-mix(in oklch, var(--primary-bg) 80%, transparent);\n --menu-item-active-bg-dark: color-mix(in oklch, var(--primary-bg) 70%, transparent);\n\n --menu-item-active-bg: light-dark(var(--menu-item-active-bg-light), var(--menu-item-active-bg-dark));\n --menu-item-hover-bg: light-dark(var(--menu-item-hover-bg-light), var(--menu-item-hover-bg-dark));\n\n background-color: color-mix(in oklch, var(--menu-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n\n .menu-divider {\n height: 0;\n margin: var(--menu-divider-margin-y) var(--menu-divider-margin-x);\n overflow: hidden;\n border-block-start: 1px solid var(--menu-divider-bg);\n opacity: 1;\n }\n\n .menu-item {\n display: flex;\n gap: var(--menu-item-gap);\n align-items: center;\n width: 100%;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n font-weight: var(--menu-item-font-weight, var(--font-weight-normal));\n color: var(--theme-fg, var(--menu-item-color));\n text-align: inherit;\n text-decoration: none;\n white-space: nowrap;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n outline: 0;\n @include border-radius(var(--menu-item-border-radius, 0));\n\n &:hover,\n &:focus {\n color: var(--theme-fg-emphasis, var(--menu-item-hover-color));\n background-color: var(--theme-bg-subtle, var(--menu-item-hover-bg));\n // @include gradient-bg(var(--theme-bg-subtle, var(--menu-item-hover-bg)));\n }\n\n &.active,\n &:active {\n color: var(--theme-contrast, var(--menu-item-active-color));\n background-color: var(--theme-bg, var(--menu-item-active-bg));\n // @include gradient-bg(var(--theme-bg, var(--menu-item-active-bg)));\n\n .menu-item-icon {\n color: inherit !important; // stylelint-disable-line declaration-no-important\n }\n }\n\n &.selected {\n font-weight: $font-weight-semibold;\n }\n\n &.disabled,\n &:disabled {\n color: var(--menu-item-disabled-color);\n pointer-events: none;\n background-color: transparent;\n // stylelint-disable-next-line scss/at-function-named-arguments\n background-image: if(sass($enable-gradients): none; else: null);\n }\n }\n\n .menu-item-icon {\n flex-shrink: 0;\n align-self: flex-start;\n width: var(--menu-icon-size);\n height: auto;\n margin-top: .125rem;\n }\n\n .menu-item-content {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-width: fit-content;\n }\n\n .menu-item-description {\n font-size: var(--menu-description-font-size);\n font-weight: var(--font-weight-normal);\n color: color-mix(in oklch, currentcolor 65%, transparent);\n }\n\n .menu-item-check {\n flex-shrink: 0;\n align-self: flex-start;\n margin-block-start: .125rem;\n margin-inline-start: auto;\n color: var(--menu-check-color);\n visibility: hidden;\n\n .selected > & {\n visibility: visible;\n }\n }\n\n .menu-header {\n display: block;\n padding: var(--menu-header-padding-y) var(--menu-header-padding-x);\n margin-bottom: 0;\n font-size: var(--font-size-sm);\n color: var(--menu-header-color);\n white-space: nowrap;\n }\n\n .menu-text {\n display: block;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n color: var(--fg-2);\n }\n\n // scss-docs-start submenu\n .submenu {\n position: relative;\n\n > .menu-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n > .menu-item::after {\n display: inline-block;\n flex-shrink: 0;\n width: .375em;\n height: .375em;\n margin-inline-start: auto;\n content: \"\";\n border-color: currentcolor;\n border-style: solid;\n border-width: 0 .125em .125em 0;\n transform: rotate(-45deg);\n\n [dir=\"rtl\"] & {\n transform: rotate(135deg);\n }\n }\n\n > .menu {\n top: 0;\n margin-top: calc(-1 * var(--menu-padding-y));\n }\n\n &:hover > .menu-item,\n &:focus-within > .menu-item {\n color: var(--menu-item-hover-color);\n background-color: var(--menu-item-hover-bg);\n }\n\n &.show > .menu-item {\n color: var(--menu-item-hover-color);\n background-color: var(--menu-item-hover-bg);\n }\n }\n // scss-docs-end submenu\n}\n","@use \"sass:map\";\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/tokens\" as *;\n\n$list-group-tokens: () !default;\n\n// scss-docs-start list-group-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$list-group-tokens: defaults(\n (\n --list-group-color: var(--fg-body),\n --list-group-bg: var(--bg-body),\n --list-group-border-color: var(--border-color),\n --list-group-border-width: var(--border-width),\n --list-group-border-radius: var(--radius-5),\n --list-group-item-padding-x: var(--spacer),\n --list-group-item-padding-y: var(--spacer-2),\n --list-group-action-color: var(--fg-2),\n --list-group-action-hover-color: var(--fg-1),\n --list-group-action-hover-bg: var(--bg-1),\n --list-group-action-active-color: var(--fg-body),\n --list-group-action-active-bg: var(--bg-2),\n --list-group-disabled-color: var(--fg-3),\n --list-group-disabled-bg: var(--bg-body),\n --list-group-active-color: var(--primary-contrast),\n --list-group-active-bg: var(--primary-bg),\n --list-group-active-border-color: var(--primary-bg),\n ),\n $list-group-tokens\n);\n// scss-docs-end list-group-tokens\n\n@layer components {\n .list-group {\n @include tokens($list-group-tokens);\n\n display: flex;\n flex-direction: column;\n\n // No need to set list-style: none; since .list-group-item is block level\n padding-inline-start: 0; // reset padding because ul and ol\n margin-bottom: 0;\n @include border-radius(var(--list-group-border-radius));\n }\n\n .list-group-numbered {\n list-style-type: none;\n counter-reset: section;\n\n > .list-group-item::before {\n // Increments only this instance of the section counter\n content: counters(section, \".\") \". \";\n counter-increment: section;\n }\n }\n\n // Individual list items\n //\n // Use on `li`s or `div`s within the `.list-group` parent.\n\n .list-group-item {\n position: relative;\n display: block;\n padding: var(--list-group-item-padding-y) var(--list-group-item-padding-x);\n color: var(--theme-fg, var(--list-group-color));\n // stylelint-disable-next-line scss/at-function-named-arguments\n text-decoration: if(sass($link-decoration == none): null);\n background-color: var(--theme-bg-subtle, var(--list-group-bg));\n border: var(--list-group-border-width) solid var(--theme-border, var(--list-group-border-color));\n\n &:first-child {\n @include border-top-radius(inherit);\n }\n\n &:last-child {\n @include border-bottom-radius(inherit);\n }\n\n &.disabled,\n &:disabled {\n color: var(--list-group-disabled-color);\n pointer-events: none;\n background-color: var(--list-group-disabled-bg);\n }\n\n // Include both here for `<a>`s and `<button>`s\n &.active {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: var(--list-group-active-color);\n background-color: var(--list-group-active-bg);\n border-color: var(--list-group-active-border-color);\n }\n\n // stylelint-disable-next-line scss/selector-no-redundant-nesting-selector\n & + .list-group-item {\n border-block-start-width: 0;\n\n &.active {\n margin-top: calc(-1 * var(--list-group-border-width));\n border-block-start-width: var(--list-group-border-width);\n }\n }\n }\n\n // Interactive list items\n //\n // Use anchor or button elements instead of `li`s or `div`s to create interactive\n // list items. Includes an extra `.active` modifier class for selected items.\n\n .list-group-item-action {\n width: 100%; // For `<button>`s (anchors become 100% by default though)\n color: var(--theme-fg, var(--list-group-action-color));\n text-align: inherit; // For `<button>`s (anchors inherit)\n text-decoration: none;\n\n &:not(.active) {\n // Hover state\n &:hover,\n &:focus {\n z-index: 1; // Place hover/focus items above their siblings for proper border styling\n color: var(--theme-fg-emphasis, var(--list-group-action-hover-color));\n text-decoration: none;\n background-color: var(--theme-bg-muted, var(--list-group-action-hover-bg));\n }\n\n &:active {\n color: var(--theme-fg-emphasis, var(--list-group-action-active-color));\n background-color: var(--theme-bg-muted, var(--list-group-action-active-bg));\n }\n }\n }\n\n // Horizontal\n //\n // Change the layout of list group items from vertical (default) to horizontal.\n\n @each $breakpoint in map.keys($breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n .#{$prefix}list-group-horizontal {\n flex-direction: row;\n\n > .list-group-item {\n &:first-child:not(:last-child) {\n @include border-bottom-start-radius(var(--list-group-border-radius));\n @include border-top-end-radius(0);\n }\n\n &:last-child:not(:first-child) {\n @include border-top-end-radius(var(--list-group-border-radius));\n @include border-bottom-start-radius(0);\n }\n\n &.active {\n margin-top: 0;\n }\n\n + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n\n &.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n }\n }\n }\n }\n\n // Flush list items\n //\n // Remove borders and border-radius to keep list group items edge-to-edge. Most\n // useful within other components (e.g., cards).\n\n .list-group-flush {\n @include border-radius(0);\n\n > .list-group-item {\n border-width: 0 0 var(--list-group-border-width);\n\n &:last-child {\n border-block-end-width: 0;\n }\n }\n }\n}\n","@use \"functions\" as *;\n@use \"config\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/gradients\" as *;\n@use \"mixins/tokens\" as *;\n@use \"mixins/transition\" as *;\n\n$nav-tokens: () !default;\n\n// scss-docs-start nav-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$nav-tokens: defaults(\n (\n --nav-gap: .125rem,\n --nav-link-gap: .5rem,\n --nav-link-align: center,\n --nav-link-justify: center,\n --nav-link-padding-x: .75rem,\n --nav-link-padding-y: .375rem,\n --nav-link-color: var(--fg-2),\n --nav-link-hover-color: var(--fg-1),\n --nav-link-hover-bg: var(--bg-1),\n --nav-link-active-color: var(--fg-body),\n --nav-link-active-bg: var(--bg-2),\n --nav-link-disabled-color: var(--fg-4),\n --nav-link-border-width: var(--border-width),\n --nav-link-transition-property: \"color, background-color, border-color\",\n --nav-link-transition-timing: .15s ease-in-out,\n --nav-link-transition: var(--nav-link-transition-property) var(--nav-link-transition-timing),\n ),\n $nav-tokens\n);\n// scss-docs-end nav-tokens\n\n$nav-tabs-tokens: () !default;\n\n// scss-docs-start nav-tabs-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$nav-tabs-tokens: defaults(\n (\n --nav-tabs-border-width: var(--border-width),\n --nav-tabs-border-color: var(--border-color),\n --nav-tabs-border-radius: var(--radius-5),\n --nav-tabs-link-hover-border-color: var(--border-subtle),\n --nav-tabs-link-active-color: var(--fg-color),\n --nav-tabs-link-active-bg: var(--bg-body),\n --nav-tabs-link-active-border-color: var(--border-color) var(--border-color) var(--bg-body),\n ),\n $nav-tabs-tokens\n);\n// scss-docs-end nav-tabs-tokens\n\n$nav-pills-tokens: () !default;\n\n// scss-docs-start nav-pills-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$nav-pills-tokens: defaults(\n (\n --nav-pills-bg: var(--bg-1),\n --nav-pills-padding: .25rem,\n --nav-pills-border-radius: var(--radius-9),\n --nav-pills-link-active-color: var(--primary-contrast),\n --nav-pills-link-active-bg: var(--primary-bg),\n --nav-pills-link-border-radius: var(--radius-9),\n ),\n $nav-pills-tokens\n);\n// scss-docs-end nav-pills-tokens\n\n$nav-underline-tokens: () !default;\n\n// scss-docs-start nav-underline-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$nav-underline-tokens: defaults(\n (\n --nav-gap: 1rem,\n --nav-link-active-bg: transparent,\n --nav-underline-border-width: .125rem,\n --nav-underline-link-active-color: var(--fg-color),\n ),\n $nav-underline-tokens\n);\n// scss-docs-end nav-underline-tokens\n\n// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s, `<ul>`s or `<ol>`s.\n\n@layer components {\n .nav {\n @include tokens($nav-tokens);\n\n display: flex;\n flex-wrap: wrap;\n gap: var(--nav-gap);\n padding-inline-start: 0;\n margin-bottom: 0;\n list-style: none;\n }\n\n .nav-item {\n display: flex;\n }\n\n .nav-link {\n display: flex;\n gap: var(--nav-link-gap);\n align-items: var(--nav-link-align);\n justify-content: var(--nav-link-justify);\n padding: var(--nav-link-padding-y) var(--nav-link-padding-x);\n font-weight: var(--nav-link-font-weight);\n color: var(--nav-link-color);\n text-decoration: none;\n white-space: nowrap;\n background: none;\n border: var(--nav-link-border-width) solid transparent;\n @include border-radius(var(--radius-5));\n @include transition(var(--nav-link-transition));\n\n &:hover,\n &:focus {\n color: var(--nav-link-hover-color);\n background-color: var(--nav-link-hover-bg);\n }\n\n &:focus-visible {\n --focus-ring-offset: 1px;\n color: var(--nav-link-hover-color);\n @include focus-ring(true);\n }\n\n &.active,\n &:active {\n color: var(--nav-link-active-color);\n background-color: var(--nav-link-active-bg);\n }\n\n // Disabled state lightens text\n &.disabled,\n &:disabled {\n color: var(--nav-link-disabled-color);\n pointer-events: none;\n cursor: default;\n }\n }\n\n //\n // Tabs\n //\n\n .nav-tabs {\n // scss-docs-start nav-tabs-css-vars\n @include tokens($nav-tabs-tokens);\n // scss-docs-end nav-tabs-css-vars\n\n box-shadow: inset 0 calc(-1 * var(--nav-tabs-border-width)) 0 var(--nav-tabs-border-color);\n\n .nav-link {\n border: var(--nav-tabs-border-width) solid transparent;\n border-bottom-color: var(--nav-tabs-border-color);\n @include border-bottom-radius(0);\n\n &:hover {\n // Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link\n isolation: isolate;\n border-color: var(--nav-tabs-link-hover-border-color);\n border-bottom-color: var(--nav-tabs-border-color);\n }\n }\n\n .nav-link.active,\n .nav-item.show .nav-link {\n color: var(--nav-tabs-link-active-color);\n background-color: var(--nav-tabs-link-active-bg);\n border-color: var(--nav-tabs-link-active-border-color);\n border-bottom-color: var(--nav-tabs-link-active-bg);\n }\n\n .menu {\n margin-top: calc(-1 * var(--nav-tabs-border-width));\n @include border-top-radius(0);\n }\n }\n\n //\n // Pills\n //\n\n .nav-pills {\n @include tokens($nav-pills-tokens);\n\n display: inline-flex;\n padding: var(--nav-pills-padding);\n background-color: var(--nav-pills-bg);\n @include border-radius(var(--nav-pills-border-radius));\n\n .nav-link {\n @include border-radius(var(--nav-pills-link-border-radius));\n }\n\n .nav-link.active,\n .show > .nav-link {\n color: var(--nav-pills-link-active-color);\n @include gradient-bg(var(--nav-pills-link-active-bg));\n }\n }\n\n .nav-pills-vertical {\n flex-direction: column;\n align-items: stretch;\n\n .nav-item,\n .nav-link {\n width: 100%;\n }\n }\n\n //\n // Underline\n //\n\n .nav-underline {\n // scss-docs-start nav-underline-css-vars\n @include tokens($nav-underline-tokens);\n // scss-docs-end nav-underline-css-vars\n\n .nav-link {\n padding-inline: 0;\n border: 0;\n border-block-end: var(--nav-underline-border-width) solid transparent;\n @include border-radius(0);\n\n &:hover,\n &:focus {\n border-block-end-color: currentcolor;\n }\n }\n\n .nav-link.active,\n .show > .nav-link {\n font-weight: $font-weight-bold;\n color: var(--nav-underline-link-active-color);\n border-block-end-color: currentcolor;\n }\n }\n\n //\n // Justified variants\n //\n\n .nav-fill {\n > .nav-link,\n .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n }\n\n .nav-justified {\n > .nav-link,\n .nav-item {\n flex-grow: 1;\n flex-basis: 0;\n text-align: center;\n }\n }\n\n .nav-fill,\n .nav-justified {\n .nav-item .nav-link {\n width: 100%; // Make sure button will grow\n }\n }\n\n // Tabbable tabs\n //\n // Hide tabbable panes to start, show them when `.active`\n\n .tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n }\n}\n","// Nav Overflow (Priority+ Pattern)\n//\n// A responsive navigation pattern that automatically moves items\n// to an overflow menu when space is limited.\n\n@layer components {\n .nav-overflow {\n flex-wrap: nowrap;\n min-width: 0; // Allow flex child to shrink below content width\n }\n\n // Pills use inline-flex by default; override so the nav fills its container\n // and the ResizeObserver can detect width changes.\n .nav-pills.nav-overflow {\n display: flex;\n }\n\n // Inside a navbar the nav is a flex child that sizes to content by default;\n // grow it so it fills remaining space and shrinks with the container.\n .navbar-nav.nav-overflow {\n flex: 1 1 0;\n }\n\n // Container item for overflow\n .nav-overflow-item {\n flex-shrink: 0;\n margin-inline-start: auto;\n }\n\n // Hide items that have been moved to overflow\n .nav-overflow [data-bs-nav-overflow=\"true\"] {\n display: none;\n }\n\n // Preserve items that should never overflow\n .nav-overflow-keep {\n flex-shrink: 0;\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/mask-icon\" as *;\n@use \"mixins/tokens\" as *;\n@use \"mixins/transition\" as *;\n\n// mdo-do: fix nav-link-height and navbar-brand-height, which we previously calculated with font-size, line-height, and block padding\n\n// stylelint-disable custom-property-no-missing-var-function\n// scss-docs-start navbar-breakpoints\n$navbar-breakpoints: $breakpoints !default;\n// scss-docs-end navbar-breakpoints\n\n$navbar-tokens: () !default;\n$navbar-dark-tokens: () !default;\n$navbar-nav-tokens: () !default;\n\n// scss-docs-start navbar-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$navbar-tokens: defaults(\n (\n --navbar-padding-x: 0,\n --navbar-padding-y: .5rem,\n --navbar-color: var(--fg-2),\n --navbar-hover-color: var(--fg-1),\n --navbar-disabled-color: var(--fg-3),\n --navbar-active-color: var(--fg-body),\n --navbar-brand-padding-y: .75rem,\n --navbar-brand-margin-end: 1rem,\n --navbar-brand-font-size: var(--font-size-md),\n --navbar-brand-font-weight: var(--font-weight-medium),\n --navbar-brand-color: var(--fg-body),\n --navbar-brand-hover-color: var(--fg-body),\n --navbar-nav-link-padding-x: .75rem,\n --navbar-toggler-width: 2rem,\n --navbar-toggler-padding-y: .25rem,\n --navbar-toggler-padding-x: .75rem,\n --navbar-toggler-font-size: var(--font-size-lg),\n --navbar-toggler-border-color: color-mix(in oklch, var(--fg-body) 15%, transparent),\n --navbar-toggler-border-radius: var(--radius-5),\n --navbar-toggler-transition: box-shadow .15s ease-in-out,\n --navbar-toggler-icon-size: 1.25rem,\n --navbar-toggler-icon: #{escape-svg(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path stroke='black' stroke-linecap='round' stroke-width='1' d='M1 3.5h14M1 8h14M1 12.5h14'/></svg>\"))},\n ),\n $navbar-tokens\n);\n// scss-docs-end navbar-tokens\n\n// scss-docs-start navbar-dark-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$navbar-dark-tokens: defaults(\n (\n --navbar-color: color-mix(in oklch, var(--white) .55, transparent),\n --navbar-hover-color: color-mix(in oklch, var(--white) .75, transparent),\n --navbar-disabled-color: color-mix(in oklch, var(--white) .25, transparent),\n --navbar-active-color: var(--white),\n --navbar-brand-color: var(--white),\n --navbar-brand-hover-color: var(--white),\n --navbar-toggler-border-color: color-mix(in oklch, var(--white) .1, transparent),\n ),\n $navbar-dark-tokens\n);\n// scss-docs-end navbar-dark-tokens\n\n// scss-docs-start navbar-nav-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$navbar-nav-tokens: defaults(\n (\n --nav-gap: .25rem,\n --nav-link-gap: .5rem,\n --nav-link-padding-x: .5rem,\n --nav-link-padding-y: .375rem,\n --nav-link-color: var(--navbar-color),\n --nav-link-border-width: var(--border-width),\n //--nav-link-border-color: var(--border-color),\n --nav-link-hover-color: var(--navbar-hover-color),\n --nav-link-hover-bg: transparent,\n --nav-link-active-color: var(--navbar-active-color),\n --nav-link-active-bg: transparent,\n --nav-link-disabled-color: var(--navbar-disabled-color),\n ),\n $navbar-nav-tokens\n);\n// scss-docs-end navbar-nav-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer components {\n // Base navbar\n .navbar {\n @include tokens($navbar-tokens);\n\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: var(--navbar-padding-y) var(--navbar-padding-x);\n @include set-container();\n color: var(--navbar-color, var(--fg-body));\n background-color: var(--navbar-bg, var(--bg-body));\n // @include gradient-bg(var(--navbar-bg, var(--bg-body)));\n\n // Container properties for nested containers\n %container-flex-properties {\n display: flex;\n flex-wrap: inherit;\n align-items: center;\n justify-content: space-between;\n }\n\n > .container,\n > .container-fluid {\n @extend %container-flex-properties;\n }\n\n @each $breakpoint, $container-max-width in $container-max-widths {\n > .#{breakpoint-prefix($breakpoint, $container-max-widths)}container {\n @extend %container-flex-properties;\n }\n }\n }\n\n // Navbar brand\n //\n // Used for brand, project, or site names.\n .navbar-brand {\n padding-top: var(--navbar-brand-padding-y);\n padding-bottom: var(--navbar-brand-padding-y);\n margin-inline-end: var(--navbar-brand-margin-end);\n font-size: var(--navbar-brand-font-size);\n font-weight: var(--navbar-brand-font-weight);\n color: var(--navbar-brand-color);\n text-decoration: none;\n white-space: nowrap;\n\n &:hover,\n &:focus {\n color: var(--navbar-brand-hover-color);\n }\n }\n\n // Navigation within navbars. Sets all nav-link CSS variables needed for\n // proper styling.\n //\n // Relies on `.nav` base class.\n .navbar-nav {\n @include tokens($navbar-nav-tokens);\n\n display: flex;\n flex-direction: column;\n gap: var(--nav-gap);\n padding-inline-start: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-link {\n &.active,\n &.show {\n color: var(--navbar-active-color);\n border: var(--nav-link-border-width) solid var(--nav-link-border-color, transparent);\n }\n }\n }\n\n // Navbar text\n //\n // For adding text or inline elements to the navbar\n .navbar-text {\n padding-top: var(--navbar-brand-padding-y);\n padding-bottom: var(--navbar-brand-padding-y);\n color: var(--navbar-color);\n\n a,\n a:hover,\n a:focus {\n color: var(--navbar-active-color);\n }\n }\n\n // Button for toggling the navbar when in its collapsed state\n .navbar-toggler {\n --btn-bg: transparent;\n --btn-hover-bg: var(--bg-2);\n }\n\n // Hamburger icon, rendered via CSS mask so it inherits the navbar color\n .navbar-toggler-icon {\n display: inline-block;\n width: var(--navbar-toggler-icon-size);\n height: var(--navbar-toggler-icon-size);\n background-color: currentcolor;\n @include mask-icon(var(--navbar-toggler-icon));\n }\n\n // scss-docs-start navbar-expand-loop\n // Generate series of responsive `.navbar-expand` classes for configuring\n // where your navbar collapses and expands. Uses container queries so the\n // navbar responds to its own width, not the viewport width.\n\n // Mixin for expanded state styles (applied to descendants)\n @mixin navbar-expanded {\n // Style the inner container since we can't style .navbar itself with container queries\n > .container,\n > .container-fluid,\n %navbar-expand-container {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n\n .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n\n .navbar-toggler {\n display: none !important; // stylelint-disable-line declaration-no-important\n }\n\n [class*=\"drawer\"] {\n // stylelint-disable declaration-no-important\n // Reset native <dialog> UA styles and below-breakpoint drawer styles.\n // Must use !important to override both UA <dialog> defaults and the\n // responsive drawer styles from media-breakpoint-down().\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n @include box-shadow(none);\n @include transition(none);\n // stylelint-enable declaration-no-important\n\n .drawer-header {\n display: none !important; // stylelint-disable-line declaration-no-important\n }\n\n .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n }\n\n // Always expanded (no responsive behavior)\n .navbar-expand {\n @include navbar-expanded();\n\n // Also set on navbar itself for non-responsive case\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n\n // Responsive navbar expand classes using container queries\n @include loop-breakpoints-down($navbar-breakpoints) using ($breakpoint, $next, $prefix) {\n @if $next {\n .#{$prefix}navbar-expand {\n @include container-breakpoint-up($next) {\n @include navbar-expanded();\n }\n }\n }\n }\n // scss-docs-end navbar-expand-loop\n\n // Prevent drawer flash on breakpoint crossing.\n // When the navbar crosses from expanded (inline) to collapsed (drawer),\n // the drawer transitions from visibility:visible to visibility:hidden.\n // Without this override, the slide transition plays — briefly showing the\n // panel sliding away. Disabling transitions when not [open] ensures only\n // intentional show/hide actions animate.\n // stylelint-disable-next-line no-duplicate-selectors\n .navbar {\n [class*=\"drawer\"]:not([open], .hiding) {\n @include transition(none !important);\n }\n }\n\n .navbar-translucent {\n position: relative;\n background-color: transparent;\n\n &::before {\n position: absolute;\n inset: 0;\n z-index: -1;\n content: \"\";\n background-color: color-mix(in oklch, var(--navbar-bg, var(--bg-body)) 80%, transparent);\n background-image: none;\n backdrop-filter: blur(5px) saturate(180%);\n }\n }\n\n .navbar[data-bs-theme=\"dark\"] {\n @include tokens($navbar-dark-tokens);\n }\n}\n","@use \"functions\" as *;\n@use \"config\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/dialog-shared\" as *;\n@use \"mixins/transition\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$drawer-tokens: () !default;\n\n// scss-docs-start drawer-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$drawer-tokens: defaults(\n (\n --drawer-inset: var(--spacer),\n --drawer-zindex: #{$zindex-drawer},\n --drawer-width: 400px,\n --drawer-height: 30vh,\n --drawer-padding-x: var(--spacer),\n --drawer-padding-y: var(--spacer),\n --drawer-color: var(--fg-body),\n --drawer-bg: var(--bg-body),\n --drawer-border-width: var(--border-width),\n --drawer-border-color: var(--border-color-translucent),\n --drawer-border-radius: var(--radius-7),\n --drawer-box-shadow: var(--box-shadow-lg),\n --drawer-transition-duration: .3s,\n --drawer-transition-timing: cubic-bezier(.22, 1, .36, 1),\n --drawer-title-line-height: 1.5,\n ),\n $drawer-tokens\n);\n// scss-docs-end drawer-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n$drawer-backdrop-tokens: () !default;\n\n// scss-docs-start drawer-backdrop-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$drawer-backdrop-tokens: defaults(\n (\n --drawer-backdrop-bg: var(--bg-body),\n --drawer-backdrop-opacity: 25%,\n --drawer-backdrop-blur: 8px,\n ),\n $drawer-backdrop-tokens\n);\n// scss-docs-end drawer-backdrop-tokens\n\n%drawer-css-vars {\n @include tokens($drawer-tokens);\n}\n\n@layer components {\n // Apply CSS vars to all drawer responsive variants\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n .#{$prefix}drawer {\n @extend %drawer-css-vars;\n }\n }\n\n // Responsive drawer styles\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n .#{$prefix}drawer {\n @include media-breakpoint-down($next) {\n // Reset native <dialog> UA defaults (fit-content sizing, inset, margins)\n // and override display:none so visibility controls the hidden state.\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n\n @include border-radius(var(--drawer-border-radius));\n @include box-shadow(var(--drawer-box-shadow));\n\n // Placement positioning and sizing — always applied regardless of animation mode.\n &:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n\n &:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n\n &:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n\n &:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n\n &:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n\n // Animated variant (default) — transitions + off-screen transforms.\n // Adding .drawer-instant skips all animations.\n &:not(.drawer-instant) {\n @include transition(transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration));\n\n // Off-screen transforms per placement\n &:where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n\n :root:dir(rtl) & {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n }\n\n &:where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n\n :root:dir(rtl) & {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n }\n\n &:where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n\n &:where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n\n &:where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n\n // Open state: slide in with transition\n &[open] {\n visibility: visible;\n @include transition(transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s);\n transform: none;\n }\n }\n\n // Open state base (always applies, regardless of animation mode)\n &[open] {\n visibility: visible;\n transform: none;\n }\n }\n\n // Above breakpoint - show content inline (for responsive drawer)\n // Above breakpoint - show content inline (for responsive drawer).\n // Must fully reset all drawer styles so the element behaves as an\n // inline flex container within its parent (e.g., a navbar).\n @if not ($prefix == \"\") {\n @include media-breakpoint-up($next) {\n // stylelint-disable declaration-no-important\n --drawer-height: auto;\n --drawer-border-width: 0;\n // Reset native <dialog> UA styles\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n @include transition(none !important);\n // stylelint-enable declaration-no-important\n\n .drawer-header {\n display: none;\n }\n\n .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n // stylelint-disable-next-line declaration-no-important\n background-color: transparent !important;\n }\n @include border-radius(0);\n @include box-shadow(none);\n }\n }\n }\n }\n\n // Native ::backdrop for modal drawer.\n // ::backdrop lives in the top layer outside the DOM tree, so it does NOT\n // inherit custom properties from the element. Tokens must be applied directly.\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n .#{$prefix}drawer::backdrop {\n @include tokens($drawer-backdrop-tokens);\n @include tokens($drawer-tokens);\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n @include backdrop-transitions(var(--drawer-transition-duration), var(--drawer-transition-timing));\n }\n }\n\n // Backdrop entry animation — ::backdrop can safely use @starting-style\n // since it only exists when the dialog is in the top layer (no responsive issue).\n @starting-style {\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n .#{$prefix}drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n }\n }\n\n // Static backdrop transition (\"bounce\")\n .drawer-static {\n transform: scale(1.02);\n }\n\n .drawer-translucent {\n background-color: color-mix(in oklch, var(--drawer-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n\n // Sheet variant: flush-to-edge panel with no inset, border-radius, or shadow.\n // Overrides tokens so placement transforms (which use calc() with --drawer-inset)\n // automatically position the drawer at the viewport edge.\n .drawer-sheet {\n --drawer-inset: 0;\n --drawer-border-radius: 0;\n --drawer-border-width: 0;\n --drawer-box-shadow: none;\n }\n\n // Header with close button\n .drawer-header {\n @include dialog-header(var(--drawer-padding-y) var(--drawer-padding-x));\n\n .btn-close {\n margin-block: calc(-.5 * var(--drawer-padding-y));\n margin-inline-start: auto;\n }\n }\n\n // Title\n .drawer-title {\n @include dialog-title(var(--drawer-title-line-height));\n }\n\n // Scrollable body\n .drawer-body {\n display: flex;\n flex-direction: column;\n gap: var(--drawer-padding-y);\n @include dialog-body(var(--drawer-padding-y) var(--drawer-padding-x));\n overflow-y: auto;\n }\n\n // Optional footer\n .drawer-footer {\n @include dialog-footer(var(--drawer-padding-y) var(--drawer-padding-x), .5rem, var(--drawer-border-width), var(--drawer-border-color));\n }\n\n .drawer-fit-content {\n inset-block-end: auto;\n }\n}\n","@use \"functions\" as *;\n@use \"mixins/lists\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/gradients\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/tokens\" as *;\n\n// mdo-do: Update pagination to support variant themes\n\n// stylelint-disable custom-property-no-missing-var-function\n$pagination-tokens: () !default;\n\n// scss-docs-start pagination-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$pagination-tokens: defaults(\n (\n --pagination-min-height: var(--btn-input-min-height),\n --pagination-padding-x: var(--btn-input-padding-x),\n --pagination-padding-y: var(--btn-input-padding-y),\n --pagination-font-size: var(--btn-input-font-size),\n --pagination-color: var(--link-color),\n --pagination-bg: var(--bg-body),\n --pagination-border-width: var(--border-width),\n --pagination-border-color: var(--border-color),\n --pagination-border-radius: var(--btn-input-border-radius),\n --pagination-hover-color: var(--link-hover-color),\n --pagination-hover-bg: var(--bg-1),\n --pagination-hover-border-color: var(--border-color),\n --pagination-focus-color: var(--link-hover-color),\n --pagination-focus-bg: var(--bg-2),\n --pagination-active-color: var(--primary-contrast),\n --pagination-active-bg: var(--primary-bg),\n --pagination-active-border-color: var(--primary-bg),\n --pagination-disabled-color: var(--fg-3),\n --pagination-disabled-bg: var(--bg-2),\n --pagination-disabled-border-color: var(--border-color),\n ),\n $pagination-tokens\n);\n// scss-docs-end pagination-tokens\n\n// scss-docs-start pagination-sizes\n$pagination-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$pagination-sizes: defaults(\n (\"sm\", \"lg\"),\n $pagination-sizes\n);\n// scss-docs-end pagination-sizes\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer components {\n .pagination {\n @include tokens($pagination-tokens);\n\n display: flex;\n @include list-unstyled();\n }\n\n .page-link {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: var(--pagination-min-height);\n padding: var(--pagination-padding-y) var(--pagination-padding-x);\n font-size: var(--pagination-font-size);\n color: var(--pagination-color);\n text-decoration: none;\n background-color: var(--pagination-bg);\n border: var(--pagination-border-width) solid var(--pagination-border-color);\n @include transition(color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out);\n\n &:hover {\n z-index: 2;\n color: var(--pagination-hover-color);\n background-color: var(--pagination-hover-bg);\n border-color: var(--pagination-hover-border-color);\n }\n\n &:focus-visible {\n z-index: 3;\n color: var(--pagination-focus-color);\n background-color: var(--pagination-focus-bg);\n @include focus-ring(true);\n }\n\n &.active,\n .active > & {\n z-index: 3;\n color: var(--pagination-active-color);\n @include gradient-bg(var(--pagination-active-bg));\n border-color: var(--pagination-active-border-color);\n }\n\n &.disabled,\n .disabled > & {\n color: var(--pagination-disabled-color);\n pointer-events: none;\n background-color: var(--pagination-disabled-bg);\n border-color: var(--pagination-disabled-border-color);\n }\n }\n\n .page-item {\n &:not(:first-child) .page-link {\n margin-inline-start: calc(-1 * var(--pagination-border-width));\n }\n\n &:first-child {\n .page-link {\n @include border-start-radius(var(--pagination-border-radius));\n }\n }\n\n &:last-child {\n .page-link {\n @include border-end-radius(var(--pagination-border-radius));\n }\n }\n }\n\n //\n // Sizing\n //\n\n // scss-docs-start pagination-sizes-loop\n @each $size, $_ in $pagination-sizes {\n .pagination-#{$size} {\n --pagination-min-height: var(--bs-btn-input-#{$size}-min-height);\n --pagination-padding-y: var(--btn-input-#{$size}-padding-y);\n --pagination-padding-x: var(--btn-input-#{$size}-padding-x);\n --pagination-font-size: var(--btn-input-#{$size}-font-size);\n --pagination-border-radius: var(--btn-input-#{$size}-border-radius);\n }\n }\n // scss-docs-end pagination-sizes-loop\n}\n","@use \"colors\" as *;\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n$placeholder-tokens: () !default;\n\n// scss-docs-start placeholder-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$placeholder-tokens: defaults(\n (\n --placeholder-opacity-max: .5,\n --placeholder-opacity-min: .2,\n ),\n $placeholder-tokens\n);\n// scss-docs-end placeholder-tokens\n\n@layer components {\n .placeholder {\n @include tokens($placeholder-tokens);\n\n display: inline-block;\n min-height: 1em;\n vertical-align: middle;\n cursor: wait;\n background-color: currentcolor;\n opacity: var(--placeholder-opacity-max);\n\n &.btn::before {\n display: inline-block;\n content: \"\";\n }\n }\n\n // Sizing\n .placeholder-xs {\n min-height: .6em;\n }\n\n .placeholder-sm {\n min-height: .8em;\n }\n\n .placeholder-lg {\n min-height: 1.2em;\n }\n\n // Animation\n .placeholder-glow {\n .placeholder {\n animation: placeholder-glow 2s ease-in-out infinite;\n }\n }\n\n @keyframes placeholder-glow {\n 50% {\n opacity: var(--placeholder-opacity-min);\n }\n }\n\n .placeholder-wave {\n mask-image: linear-gradient(130deg, $black 55%, rgb(0 0 0 / calc(1 - var(--placeholder-opacity-min))) 75%, $black 95%);\n mask-size: 200% 100%;\n animation: placeholder-wave 2s linear infinite;\n }\n\n @keyframes placeholder-wave {\n 100% {\n mask-position: -200% 0%;\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/reset-text\" as *;\n@use \"mixins/tokens\" as *;\n\n$popover-tokens: () !default;\n\n// scss-docs-start popover-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$popover-tokens: defaults(\n (\n --popover-zindex: #{$zindex-popover},\n --popover-max-width: 280px,\n --popover-font-size: var(--font-size-sm),\n --popover-bg: var(--bg-body),\n --popover-border-width: var(--border-width),\n --popover-border-color: var(--border-color-translucent),\n --popover-border-radius: var(--radius-7),\n --popover-inner-border-radius: calc(var(--radius-7) - var(--border-width)),\n --popover-box-shadow: var(--box-shadow),\n --popover-header-padding-x: var(--spacer),\n --popover-header-padding-y: var(--spacer-3),\n --popover-header-font-size: var(--font-size-sm),\n --popover-header-color: #{$headings-color},\n --popover-header-bg: var(--bg-1),\n --popover-body-padding-x: var(--spacer),\n --popover-body-padding-y: var(--spacer-3),\n --popover-body-color: var(--fg-body),\n --popover-arrow-width: 1rem,\n --popover-arrow-height: .5rem,\n --popover-arrow-border: var(--popover-border-color),\n ),\n $popover-tokens\n);\n// scss-docs-end popover-tokens\n\n@layer components {\n .popover {\n // scss-docs-start popover-css-vars\n @include tokens($popover-tokens);\n // scss-docs-end popover-css-vars\n\n z-index: var(--popover-zindex);\n display: block;\n max-width: var(--popover-max-width);\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n font-size: var(--popover-font-size);\n // Allow breaking very long words so they don't overflow the popover's bounds\n word-wrap: break-word;\n background-color: var(--popover-bg);\n background-clip: padding-box;\n border: var(--popover-border-width) solid var(--popover-border-color);\n @include border-radius(var(--popover-border-radius));\n @include box-shadow(var(--popover-box-shadow));\n\n .popover-arrow {\n display: block;\n width: var(--popover-arrow-width);\n height: var(--popover-arrow-height);\n\n &::before,\n &::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n border-width: 0;\n }\n }\n }\n\n .bs-popover-top {\n > .popover-arrow {\n bottom: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n\n &::before,\n &::after {\n border-width: var(--popover-arrow-height) calc(var(--popover-arrow-width) * .5) 0;\n }\n\n &::before {\n bottom: 0;\n border-block-start-color: var(--popover-arrow-border);\n }\n\n &::after {\n bottom: var(--popover-border-width);\n border-block-start-color: var(--popover-bg);\n }\n }\n }\n\n .bs-popover-end {\n > .popover-arrow {\n left: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n width: var(--popover-arrow-height);\n height: var(--popover-arrow-width);\n\n &::before,\n &::after {\n border-width: calc(var(--popover-arrow-width) * .5) var(--popover-arrow-height) calc(var(--popover-arrow-width) * .5) 0;\n }\n\n &::before {\n left: 0;\n border-inline-end-color: var(--popover-arrow-border);\n }\n\n &::after {\n left: var(--popover-border-width);\n border-inline-end-color: var(--popover-bg);\n }\n }\n }\n\n .bs-popover-bottom {\n > .popover-arrow {\n top: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n\n &::before,\n &::after {\n border-width: 0 calc(var(--popover-arrow-width) * .5) var(--popover-arrow-height);\n }\n\n &::before {\n top: 0;\n border-block-end-color: var(--popover-arrow-border);\n }\n\n &::after {\n top: var(--popover-border-width);\n border-block-end-color: var(--popover-bg);\n }\n }\n\n // This will remove the popover-header's border just below the arrow\n .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: var(--popover-arrow-width);\n margin-inline-start: calc(-.5 * var(--popover-arrow-width));\n content: \"\";\n border-block-end: var(--popover-border-width) solid var(--popover-header-bg);\n }\n }\n\n .bs-popover-start {\n > .popover-arrow {\n right: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n width: var(--popover-arrow-height);\n height: var(--popover-arrow-width);\n\n &::before,\n &::after {\n border-width: calc(var(--popover-arrow-width) * .5) 0 calc(var(--popover-arrow-width) * .5) var(--popover-arrow-height);\n }\n\n &::before {\n right: 0;\n border-inline-start-color: var(--popover-arrow-border);\n }\n\n &::after {\n right: var(--popover-border-width);\n border-inline-start-color: var(--popover-bg);\n }\n }\n }\n\n .bs-popover-auto {\n &[data-bs-placement^=\"top\"] {\n @extend .bs-popover-top;\n }\n &[data-bs-placement^=\"right\"] {\n @extend .bs-popover-end;\n }\n &[data-bs-placement^=\"bottom\"] {\n @extend .bs-popover-bottom;\n }\n &[data-bs-placement^=\"left\"] {\n @extend .bs-popover-start;\n }\n }\n\n // Offset the popover to account for the popover arrow\n .popover-header {\n padding: var(--popover-header-padding-y) var(--popover-header-padding-x);\n margin-bottom: 0; // Reset the default from Reboot\n font-size: var(--popover-header-font-size);\n color: var(--popover-header-color);\n background-color: var(--popover-header-bg);\n border-block-end: var(--popover-border-width) solid var(--popover-border-color);\n @include border-top-radius(var(--popover-inner-border-radius));\n\n &:empty {\n display: none;\n }\n }\n\n .popover-body {\n padding: var(--popover-body-padding-y) var(--popover-body-padding-x);\n color: var(--popover-body-color);\n }\n}\n","@mixin reset-text {\n font-family: var(--body-font-family);\n // We deliberately do NOT reset font-size or overflow-wrap / word-wrap.\n font-style: normal;\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/gradients\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/tokens\" as *;\n\n$progress-tokens: () !default;\n\n// scss-docs-start progress-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$progress-tokens: defaults(\n (\n --progress-height: 1rem,\n --progress-font-size: var(--font-size-sm),\n --progress-bg: var(--bg-2),\n --progress-border-radius: var(--radius-5),\n --progress-box-shadow: var(--box-shadow-inset),\n --progress-bar-color: var(--white),\n --progress-bar-bg: var(--primary-bg),\n --progress-bar-transition: width .6s ease,\n --progress-bar-animation: progress-bar-stripes 1s linear infinite,\n ),\n $progress-tokens\n);\n// scss-docs-end progress-tokens\n\n// Disable animation if transitions are disabled\n\n@layer components {\n // scss-docs-start progress-keyframes\n @if $enable-transitions {\n @keyframes progress-bar-stripes {\n 0% { background-position-x: var(--progress-height); }\n }\n }\n // scss-docs-end progress-keyframes\n\n .progress,\n .progress-stacked {\n @include tokens($progress-tokens);\n\n display: flex;\n height: var(--progress-height);\n overflow: hidden;\n font-size: var(--progress-font-size);\n background-color: var(--progress-bg);\n @include border-radius(var(--progress-border-radius));\n @include box-shadow(var(--progress-box-shadow));\n }\n\n .progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: var(--theme-contrast, var(--progress-bar-color));\n text-align: center;\n white-space: nowrap;\n background-color: var(--theme-bg, var(--progress-bar-bg));\n @include transition(var(--progress-bar-transition));\n }\n\n .progress-bar-striped {\n @include gradient-striped();\n background-size: var(--progress-height) var(--progress-height);\n }\n\n .progress-stacked > .progress {\n overflow: visible;\n }\n\n .progress-stacked > .progress > .progress-bar {\n width: 100%;\n }\n\n @if $enable-transitions {\n .progress-bar-animated {\n animation: var(--progress-bar-animation);\n\n @if $enable-reduced-motion {\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n }\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$spinner-border-tokens: () !default;\n\n// scss-docs-start spinner-border-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$spinner-border-tokens: defaults(\n (\n --spinner-width: 2rem,\n --spinner-height: 2rem,\n --spinner-vertical-align: -.125em,\n --spinner-border-width: .25em,\n --spinner-animation-speed: .75s,\n --spinner-animation-name: spinner-border,\n ),\n $spinner-border-tokens\n);\n// scss-docs-end spinner-border-tokens\n\n$spinner-grow-tokens: () !default;\n\n// scss-docs-start spinner-grow-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$spinner-grow-tokens: defaults(\n (\n --spinner-width: 2rem,\n --spinner-height: 2rem,\n --spinner-vertical-align: -.125em,\n --spinner-animation-speed: .75s,\n --spinner-animation-name: spinner-grow,\n ),\n $spinner-grow-tokens\n);\n// scss-docs-end spinner-grow-tokens\n\n// stylelint-enable custom-property-no-missing-var-function\n\n//\n// Rotating border\n//\n\n@layer components {\n // mdo-do: Refactor this to assume flex parent and remove `vertical-align`\n .spinner-grow,\n .spinner-border {\n display: inline-block;\n flex-shrink: 0;\n width: var(--spinner-width);\n height: var(--spinner-height);\n vertical-align: var(--spinner-vertical-align);\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n animation: var(--spinner-animation-speed) linear infinite var(--spinner-animation-name);\n }\n\n // scss-docs-start spinner-border-keyframes\n @keyframes spinner-border {\n to { transform: rotate(360deg); }\n }\n // scss-docs-end spinner-border-keyframes\n\n .spinner-border {\n @include tokens($spinner-border-tokens);\n\n border: var(--spinner-border-width) solid currentcolor;\n border-inline-end-color: transparent;\n }\n\n .spinner-border-sm {\n // scss-docs-start spinner-border-sm-css-vars\n --spinner-width: 1rem;\n --spinner-height: 1rem;\n --spinner-border-width: .2em;\n // scss-docs-end spinner-border-sm-css-vars\n }\n\n //\n // Growing circle\n //\n\n // scss-docs-start spinner-grow-keyframes\n @keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n }\n // scss-docs-end spinner-grow-keyframes\n\n .spinner-grow {\n @include tokens($spinner-grow-tokens);\n\n background-color: currentcolor;\n opacity: 0;\n }\n\n .spinner-grow-sm {\n // scss-docs-start spinner-grow-sm-css-vars\n --spinner-width: 1rem;\n --spinner-height: 1rem;\n // scss-docs-end spinner-grow-sm-css-vars\n }\n\n @if $enable-reduced-motion {\n @media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n --spinner-animation-speed: 1.5s;\n }\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/tokens\" as *;\n\n$stepper-tokens: () !default;\n\n// scss-docs-start stepper-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$stepper-tokens: defaults(\n (\n --stepper-size: 2rem,\n --stepper-gap: 1rem,\n --stepper-font-size: var(--font-size-sm),\n --stepper-text-gap: .5rem,\n --stepper-track-size: .125rem,\n --stepper-bg: var(--bg-2),\n --stepper-active-color: var(--primary-contrast),\n --stepper-active-bg: var(--primary-bg),\n ),\n $stepper-tokens\n);\n// scss-docs-end stepper-tokens\n\n// scss-docs-start stepper-horizontal-mixin\n@mixin stepper-horizontal() {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n\n .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n\n &::after {\n inset-block-start: calc((var(--stepper-size) * .5) - (var(--stepper-track-size) * .5));\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n\n &:last-child::after {\n right: 100%;\n }\n }\n}\n// scss-docs-end stepper-horizontal-mixin\n\n@layer components {\n .stepper {\n @include tokens($stepper-tokens);\n\n display: grid;\n grid-auto-rows: 1fr;\n grid-auto-flow: row;\n gap: var(--stepper-gap);\n padding-inline-start: 0;\n list-style: none;\n counter-reset: stepper;\n }\n\n .stepper-item {\n position: relative;\n display: grid;\n grid-template-rows: auto;\n grid-template-columns: var(--stepper-size) auto;\n gap: var(--stepper-text-gap);\n align-items: var(--stepper-align-items, center);\n text-decoration: none;\n\n // The counter\n &::before {\n position: relative;\n z-index: 1;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--stepper-size);\n height: var(--stepper-size);\n padding: .5rem;\n font-size: var(--stepper-font-size);\n font-weight: 600;\n line-height: 1;\n text-align: center;\n content: counter(stepper);\n counter-increment: stepper;\n background-color: var(--stepper-bg);\n @include border-radius(50%);\n }\n\n // Connecting lines\n &::after {\n position: absolute;\n inset-block-start: 50%;\n inset-block-end: 100%;\n inset-inline-start: calc((var(--stepper-size) * .5) - (var(--stepper-track-size) * .5));\n width: var(--stepper-track-size);\n height: calc(100% + var(--stepper-gap));\n content: \"\";\n background-color: var(--stepper-bg);\n }\n\n // Avoid sibling selector for easier CSS overrides\n &:last-child::after {\n display: none;\n }\n\n &.active {\n &::before,\n &::after {\n color: var(--theme-contrast, var(--stepper-active-color));\n background-color: var(--theme-bg, var(--stepper-active-bg));\n }\n }\n }\n\n // Targets the last .active element from a sequence of active elements\n .stepper-item.active:not(:has(+ .stepper-item.active))::after {\n background-color: var(--stepper-bg);\n }\n\n .stepper-horizontal {\n @include stepper-horizontal();\n }\n\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n @if $next {\n .#{$prefix}stepper-horizontal {\n @include container-breakpoint-up($next) {\n @include stepper-horizontal();\n }\n }\n }\n }\n\n // scss-docs-start stepper-overflow\n .stepper-overflow {\n container-type: inline-size;\n overflow-x: auto;\n overscroll-behavior-x: contain;\n -webkit-overflow-scrolling: touch;\n\n > .stepper {\n width: max-content;\n min-width: 100%;\n }\n }\n // scss-docs-end stepper-overflow\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/tokens\" as *;\n\n$toast-tokens: () !default;\n\n// scss-docs-start toast-tokens\n// stylelint-disable custom-property-no-missing-var-function\n// stylelint-disable-next-line scss/dollar-variable-default\n$toast-tokens: defaults(\n (\n --toast-zindex: #{$zindex-toast},\n --toast-padding-x: 1rem,\n --toast-padding-y: .75rem,\n --toast-spacing: #{$container-padding-x},\n --toast-max-width: 350px,\n --toast-font-size: var(--font-size-sm),\n --toast-color: null,\n --toast-bg: var(--bg-body),\n --toast-border-width: var(--border-width),\n --toast-border-color: var(--border-color-translucent),\n --toast-border-radius: null,\n --toast-box-shadow: var(--box-shadow),\n --toast-header-color: var(--fg-3),\n --toast-header-bg: var(--bg-1),\n --toast-header-border-color: var(--border-color-translucent),\n ),\n $toast-tokens\n);\n// stylelint-enable custom-property-no-missing-var-function\n// scss-docs-end toast-tokens\n\n@layer components {\n .toast {\n @include tokens($toast-tokens);\n\n display: flex;\n flex-direction: column;\n width: var(--toast-max-width);\n max-width: 100%;\n overflow: hidden;\n font-size: var(--toast-font-size);\n color: var(--toast-color, var(--fg-body));\n pointer-events: auto;\n background-color: var(--toast-bg);\n background-clip: padding-box;\n border: var(--toast-border-width) solid var(--theme-border, var(--toast-border-color));\n box-shadow: var(--toast-box-shadow);\n @include border-radius(var(--toast-border-radius, var(--radius-7)));\n\n &.showing {\n opacity: 0;\n }\n\n &:not(.show) {\n display: none;\n }\n }\n\n .toast-container {\n --toast-zindex: #{$zindex-toast};\n\n position: absolute;\n z-index: var(--toast-zindex);\n width: max-content;\n max-width: 100%;\n pointer-events: none;\n\n > :not(:last-child) {\n margin-bottom: var(--toast-spacing);\n }\n }\n\n .toast-header {\n display: flex;\n align-items: center;\n padding: var(--toast-padding-y) var(--toast-padding-x);\n color: var(--theme-fg-emphasis, var(--toast-header-color));\n background-color: var(--theme-bg-subtle, var(--toast-header-bg));\n // background-clip: padding-box;\n border-block-end: var(--toast-border-width, var(--border-width)) solid var(--theme-border, var(--toast-header-border-color, var(--border-color-translucent)));\n\n .btn-close {\n margin-inline-start: calc(.5 * var(--toast-padding-x));\n margin-inline-end: calc(-.25 * var(--toast-padding-x));\n color: inherit;\n }\n }\n\n .toast-translucent {\n backdrop-filter: blur(5px) saturate(180%);\n }\n\n .toast-body {\n padding: var(--toast-padding-x);\n word-wrap: break-word;\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/reset-text\" as *;\n@use \"mixins/tokens\" as *;\n\n$tooltip-tokens: () !default;\n\n// scss-docs-start tooltip-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$tooltip-tokens: defaults(\n (\n --tooltip-zindex: #{$zindex-tooltip},\n --tooltip-max-width: 200px,\n --tooltip-padding-x: var(--spacer-3),\n --tooltip-padding-y: calc(var(--spacer) * .375),\n --tooltip-font-size: var(--font-size-sm),\n --tooltip-color: var(--bg-body),\n --tooltip-bg: var(--fg-body),\n --tooltip-border-radius: var(--radius-5),\n --tooltip-opacity: .95,\n --tooltip-arrow-width: .8rem,\n --tooltip-arrow-height: .4rem,\n ),\n $tooltip-tokens\n);\n// scss-docs-end tooltip-tokens\n\n@layer components {\n .tooltip {\n @include tokens($tooltip-tokens);\n\n z-index: var(--tooltip-zindex);\n display: block;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n font-size: var(--tooltip-font-size);\n // Allow breaking very long words so they don't overflow the tooltip's bounds\n word-wrap: break-word;\n opacity: 0;\n\n &.show { opacity: var(--tooltip-opacity); }\n\n .tooltip-arrow {\n display: block;\n width: var(--tooltip-arrow-width);\n height: var(--tooltip-arrow-height);\n\n &::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n }\n\n .bs-tooltip-top .tooltip-arrow {\n bottom: calc(-1 * var(--tooltip-arrow-height));\n\n &::before {\n top: -1px;\n border-width: var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * .5) 0;\n border-block-start-color: var(--tooltip-bg);\n }\n }\n\n .bs-tooltip-end .tooltip-arrow {\n left: calc(-1 * var(--tooltip-arrow-height));\n width: var(--tooltip-arrow-height);\n height: var(--tooltip-arrow-width);\n\n &::before {\n right: -1px;\n border-width: calc(var(--tooltip-arrow-width) * .5) var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * .5) 0;\n border-inline-end-color: var(--tooltip-bg);\n }\n }\n\n .bs-tooltip-bottom .tooltip-arrow {\n top: calc(-1 * var(--tooltip-arrow-height));\n\n &::before {\n bottom: -1px;\n border-width: 0 calc(var(--tooltip-arrow-width) * .5) var(--tooltip-arrow-height);\n border-block-end-color: var(--tooltip-bg);\n }\n }\n\n .bs-tooltip-start .tooltip-arrow {\n right: calc(-1 * var(--tooltip-arrow-height));\n width: var(--tooltip-arrow-height);\n height: var(--tooltip-arrow-width);\n\n &::before {\n left: -1px;\n border-width: calc(var(--tooltip-arrow-width) * .5) 0 calc(var(--tooltip-arrow-width) * .5) var(--tooltip-arrow-height);\n border-inline-start-color: var(--tooltip-bg);\n }\n }\n\n .bs-tooltip-auto {\n &[data-bs-placement^=\"top\"] {\n @extend .bs-tooltip-top;\n }\n &[data-bs-placement^=\"right\"] {\n @extend .bs-tooltip-end;\n }\n &[data-bs-placement^=\"bottom\"] {\n @extend .bs-tooltip-bottom;\n }\n &[data-bs-placement^=\"left\"] {\n @extend .bs-tooltip-start;\n }\n }\n\n // Wrapper for the tooltip content\n .tooltip-inner {\n max-width: var(--tooltip-max-width);\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n color: var(--tooltip-color);\n text-align: center;\n background-color: var(--tooltip-bg);\n @include border-radius(var(--tooltip-border-radius));\n }\n}\n","@use \"config\" as *;\n@use \"mixins/transition\" as *;\n\n.fade {\n @include transition($transition-fade);\n\n &:not(.show) {\n opacity: 0;\n }\n}\n\n// scss-docs-start collapse-classes\n.collapse {\n &:not(.show) {\n display: none;\n }\n}\n\n.collapsing {\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n\n &.collapse-horizontal {\n width: 0;\n height: auto;\n @include transition($transition-collapse-width);\n }\n}\n// scss-docs-end collapse-classes\n","@layer helpers {\n .focus-ring:focus-visible {\n // outline: var(--focus-ring);\n outline: var(--focus-ring-width) solid var(--theme-focus-ring, var(--focus-ring-color));\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/transition\" as *;\n\n@layer helpers {\n .icon-link {\n display: inline-flex;\n gap: $icon-link-gap;\n align-items: center;\n text-decoration-color: rgba(var(--link-color-rgb), var(--link-opacity, .5));\n text-underline-offset: $icon-link-underline-offset;\n backface-visibility: hidden;\n\n > .bi {\n flex-shrink: 0;\n width: $icon-link-icon-size;\n height: $icon-link-icon-size;\n fill: currentcolor;\n @include transition($icon-link-icon-transition);\n }\n }\n\n .icon-link-hover {\n &:hover,\n &:focus-visible {\n > .bi {\n transform: var(--icon-link-transform, $icon-link-icon-transform);\n }\n }\n }\n}\n","@use \"sass:map\";\n@use \"../config\" as *;\n@use \"../layout/breakpoints\" as *;\n\n@layer helpers {\n .fixed-top {\n position: fixed;\n inset: 0 0 auto;\n z-index: $zindex-fixed;\n }\n\n .fixed-bottom {\n position: fixed;\n inset: auto 0 0;\n z-index: $zindex-fixed;\n }\n\n // Responsive sticky top and bottom\n @each $breakpoint in map.keys($breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n .#{$prefix}sticky-top {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n\n .#{$prefix}sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: $zindex-sticky;\n }\n }\n }\n}\n","@use \"../layout/breakpoints\" as *;\n\n@layer helpers {\n // scss-docs-start stacks\n .stack-container {\n @include set-container();\n }\n\n [class*=\"hstack\"],\n [class*=\"vstack\"] {\n display: flex;\n flex: var(--stack-flex, 1 1 auto);\n flex-direction: var(--stack-direction, row);\n align-items: var(--stack-align-items, center);\n align-self: var(--stack-align-self, stretch);\n }\n\n @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n .#{$prefix}vstack {\n @include container-breakpoint-up($breakpoint) {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n .#{$prefix}hstack {\n @include container-breakpoint-up($breakpoint) {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n }\n // scss-docs-end stacks\n}\n","@use \"../theme\" as *;\n\n// Generate theme modifier classes (e.g., .theme-primary, .theme-accent, etc.)\n@layer helpers {\n @include generate-theme-classes();\n}\n","@use \"sass:map\";\n\n@function theme-color-values($key) {\n $result: ();\n\n @each $color-name, $color-map in $theme-colors {\n @if map.has-key($color-map, $key) {\n $result: map.merge($result, ($color-name: map.get($color-map, $key)));\n }\n }\n\n @return $result;\n}\n\n// Themes map sub-keys\n//\n// Return var() references to root tokens instead of raw values.\n// Ex: theme-color-refs(\"bg\") => (primary: var(--primary-bg), accent: var(--accent-bg), ...)\n@function theme-color-refs($key) {\n $result: ();\n\n @each $color-name, $color-map in $theme-colors {\n @if map.has-key($color-map, $key) {\n $result: map.merge($result, ($color-name: var(--#{$color-name}-#{$key})));\n }\n }\n\n @return $result;\n}\n\n// Theme token to root tokens\n//\n// Returns the global :root token reference for a given a given token map, prefix, and key.\n// Ex: theme-token-refs($theme-bgs, \"bg\") => (body: var(--bg-body), 1: var(--bg-1), ...)\n// Skips `inherit` since it's a CSS-wide keyword that can't be stored in a custom property.\n@function theme-token-refs($map, $prefix) {\n $result: ();\n\n @each $key, $value in $map {\n @if $value != inherit {\n $result: map.merge($result, ($key: var(--#{$prefix}-#{$key})));\n }\n }\n\n @return $result;\n}\n\n// Generate opacity values using color-mix()\n@function theme-opacity-values($color-var, $opacities: $util-opacity) {\n $result: ();\n\n @each $key, $value in $opacities {\n @if $key == 100 {\n // For 100%, use direct variable reference (more efficient)\n $result: map.merge($result, ($key: var($color-var)));\n } @else {\n // For other values, use color-mix()\n $percentage: $key * 1%;\n $result: map.merge($result, ($key: color-mix(in oklch, var($color-var) $percentage, transparent)));\n }\n }\n\n @return $result;\n}\n\n// Generate theme classes dynamically based on the keys in each theme color map\n@mixin generate-theme-classes() {\n @each $color-name, $color-map in $theme-colors {\n .theme-#{$color-name} {\n @each $key, $value in $color-map {\n --theme-#{$key}: var(--#{$color-name}-#{$key});\n }\n }\n }\n}\n\n// scss-docs-start theme-colors\n$theme-colors: (\n \"primary\": (\n \"base\": var(--blue-500),\n \"fg\": light-dark(var(--blue-600), var(--blue-400)),\n \"fg-emphasis\": light-dark(var(--blue-800), var(--blue-200)),\n \"bg\": var(--blue-500),\n \"bg-subtle\": light-dark(var(--blue-100), var(--blue-900)),\n \"bg-muted\": light-dark(var(--blue-200), var(--blue-800)),\n \"border\": light-dark(var(--blue-300), var(--blue-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"accent\": (\n \"base\": var(--indigo-500),\n \"fg\": light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300))),\n \"fg-emphasis\": light-dark(var(--indigo-800), var(--indigo-300)),\n \"bg\": var(--indigo-500),\n \"bg-subtle\": light-dark(var(--indigo-100), var(--indigo-900)),\n \"bg-muted\": light-dark(var(--indigo-200), var(--indigo-800)),\n \"border\": light-dark(var(--indigo-300), var(--indigo-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"success\": (\n \"base\": var(--green-500),\n \"fg\": light-dark(var(--green-600), var(--green-400)),\n \"fg-emphasis\": light-dark(var(--green-800), var(--green-300)),\n \"bg\": var(--green-500),\n \"bg-subtle\": light-dark(var(--green-100), var(--green-900)),\n \"bg-muted\": light-dark(var(--green-200), var(--green-800)),\n \"border\": light-dark(var(--green-300), var(--green-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"danger\": (\n \"base\": var(--red-500),\n \"fg\": light-dark(var(--red-600), var(--red-400)),\n \"fg-emphasis\": light-dark(var(--red-800), var(--red-300)),\n \"bg\": var(--red-500),\n \"bg-subtle\": light-dark(var(--red-100), var(--red-900)),\n \"bg-muted\": light-dark(var(--red-200), var(--red-800)),\n \"border\": light-dark(var(--red-300), var(--red-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"warning\": (\n \"base\": var(--yellow-500),\n \"fg\": light-dark(var(--yellow-700), var(--yellow-400)),\n \"fg-emphasis\": light-dark(var(--yellow-800), var(--yellow-300)),\n \"bg\": var(--yellow-500),\n \"bg-subtle\": light-dark(var(--yellow-100), var(--yellow-900)),\n \"bg-muted\": light-dark(var(--yellow-200), var(--yellow-800)),\n \"border\": light-dark(var(--yellow-300), var(--yellow-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body))),\n \"contrast\": var(--gray-900)\n ),\n \"info\": (\n \"base\": var(--cyan-500),\n \"fg\": light-dark(var(--cyan-600), var(--cyan-400)),\n \"fg-emphasis\": light-dark(var(--cyan-800), var(--cyan-300)),\n \"bg\": var(--cyan-500),\n \"bg-subtle\": light-dark(var(--cyan-100), var(--cyan-900)),\n \"bg-muted\": light-dark(var(--cyan-200), var(--cyan-800)),\n \"border\": light-dark(var(--cyan-300), var(--cyan-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body))),\n \"contrast\": var(--gray-900)\n ),\n \"inverse\": (\n \"base\": var(--gray-900),\n \"fg\": light-dark(var(--gray-900), var(--gray-200)),\n \"fg-emphasis\": light-dark(var(--gray-975), var(--white)),\n \"bg\": light-dark(var(--gray-900), var(--gray-025)),\n \"bg-subtle\": light-dark(var(--gray-100), var(--gray-900)),\n \"bg-muted\": light-dark(var(--gray-200), var(--gray-300)),\n \"border\": light-dark(var(--gray-400), var(--gray-100)),\n \"focus-ring\": color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body)),\n \"contrast\": light-dark(var(--white), var(--gray-900))\n ),\n \"secondary\": (\n \"base\": var(--gray-200),\n \"fg\": light-dark(var(--gray-600), var(--gray-400)),\n \"fg-emphasis\": light-dark(var(--gray-800), var(--gray-200)),\n \"bg\": light-dark(var(--gray-100), var(--gray-600)),\n \"bg-subtle\": light-dark(var(--gray-050), var(--gray-800)),\n \"bg-muted\": light-dark(var(--gray-100), var(--gray-700)),\n \"border\": light-dark(var(--gray-300), var(--gray-600)),\n \"focus-ring\": color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body)),\n \"contrast\": light-dark(var(--gray-900), var(--white))\n )\n) !default;\n// scss-docs-end theme-colors\n\n// mdo-do: consider using muted, subtle, ghost or something instead of linear scale?\n$theme-bgs: (\n \"body\": light-dark(var(--white), var(--gray-975)),\n \"1\": light-dark(var(--gray-025), var(--gray-950)),\n \"2\": light-dark(var(--gray-050), var(--gray-900)),\n \"3\": light-dark(var(--gray-100), var(--gray-800)),\n \"4\": light-dark(var(--gray-200), var(--gray-700)),\n \"fg\": var(--fg-body),\n \"white\": var(--white),\n \"black\": var(--black),\n \"transparent\": transparent,\n \"inherit\": inherit,\n) !default;\n\n$theme-fgs: (\n \"body\": light-dark(var(--gray-900), var(--gray-050)),\n \"1\": light-dark(var(--gray-800), var(--gray-200)),\n \"2\": light-dark(var(--gray-700), var(--gray-300)),\n \"3\": light-dark(var(--gray-600), var(--gray-500)),\n \"4\": light-dark(var(--gray-500), var(--gray-600)),\n \"bg\": var(--bg-body),\n \"white\": var(--white),\n \"black\": var(--black),\n \"inherit\": inherit,\n) !default;\n\n$theme-borders: (\n \"bg\": var(--bg-body),\n \"body\": light-dark(var(--gray-300), var(--gray-800)),\n \"muted\": light-dark(var(--gray-200), var(--gray-800)),\n \"subtle\": light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-900)),\n \"emphasized\": light-dark(var(--gray-400), var(--gray-600)),\n \"white\": var(--white),\n \"black\": var(--black),\n) !default;\n\n$util-opacity: (\n 10: .1,\n 20: .2,\n 30: .3,\n 40: .4,\n 50: .5,\n 60: .6,\n 70: .7,\n 80: .8,\n 90: .9,\n 100: 1\n) !default;\n","@use \"../mixins/visually-hidden\" as *;\n\n@layer helpers {\n .visually-hidden,\n .visually-hidden-focusable:not(:focus, :focus-within) {\n @include visually-hidden();\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Hide content visually while keeping it accessible to assistive technologies\n//\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin visually-hidden() {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n\n // Fix for positioned table caption that could become anonymous cells\n &:not(caption) {\n position: absolute !important;\n }\n\n // Fix to prevent overflowing children to become focusable\n * {\n overflow: hidden !important;\n }\n}\n\n// Use to only display content when it's focused, or one of its child elements is focused\n// (i.e. when focus is within the element/container that the class was applied to)\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/WAI/WCAG22/Techniques/general/G1.html\n\n@mixin visually-hidden-focusable() {\n &:not(:focus, :focus-within) {\n @include visually-hidden();\n }\n}\n","@use \"../config\" as *;\n\n@layer helpers {\n .stretched-link {\n &::#{$stretched-link-pseudo-element} {\n position: absolute;\n inset: 0;\n z-index: $stretched-link-z-index;\n content: \"\";\n }\n }\n}\n","@use \"../mixins/text-truncate\" as *;\n\n@layer helpers {\n .text-truncate {\n @include text-truncate();\n }\n}\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","@layer helpers {\n .vr {\n display: inline-block;\n align-self: stretch;\n width: var(--vr-border-width, var(--border-width));\n min-height: 1em;\n background-color: var(--border-color);\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/utilities\" as *;\n@use \"../utilities\" as *;\n\n@layer utilities {\n @include generate-utilities-loop($utilities, $breakpoints);\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"../layout/breakpoints\" as bp;\n\n// Utility generator\n\n// - Utilities can use three different types of selectors:\n// - class: .class\n// - attr-starts: [class^=\"class\"]\n// - attr-includes: [class*=\"class\"]\n// - Utilities can target children via `child-selector`, wrapped in :where() for zero specificity\n// - Utilities can generate regular CSS properties and CSS custom properties\n// - Utilities can be responsive or not\n// - Utilities can have state variants (e.g., hover, focus, active)\n// - Utilities can define local CSS variables\n//\n// CSS custom properties can be generated in two ways:\n//\n// 1. Property map with null values (CSS var receives the utility value):\n// \"bg-color\": (\n// property: (\n// \"--bg\": null,\n// \"background-color\": var(--bg)\n// ),\n// class: bg,\n// values: (\n// primary: var(--blue-500),\n// )\n// )\n// Generates:\n// .bg-primary {\n// --bs-bg: var(--bs-blue-500);\n// background-color: var(--bs-bg);\n// }\n//\n// 2. Variables map (static CSS custom properties on every class):\n// \"link-underline\": (\n// property: text-decoration-color,\n// class: link-underline,\n// variables: (\n// \"link-underline-opacity\": 1\n// ),\n// values: (...)\n// )\n// Generates:\n// .link-underline {\n// --bs-link-underline-opacity: 1;\n// text-decoration-color: ...;\n// }\n\n// Helper mixin to emit CSS custom properties from a utility's `variables` key.\n// When variables is a map, the provided static values are used on each class.\n// When variables is a list or single identifier, each variable receives the current utility value.\n@mixin generate-variables($utility, $value) {\n @if map.has-key($utility, variables) {\n $variables: map.get($utility, variables);\n @if meta.type-of($variables) == \"map\" {\n @each $var-key, $var-value in $variables {\n --#{$var-key}: #{$var-value};\n }\n } @else {\n // Treat as a list (or single identifier) — each variable gets the utility value\n @each $var-name in $variables {\n --#{$var-name}: #{$value};\n }\n }\n }\n}\n\n// Helper mixin to generate CSS properties for both legacy and property map approaches\n@mixin generate-properties($utility, $property-map, $properties, $value) {\n @if $property-map != null {\n // Property-Value Mapping approach\n @each $property, $default-value in $property-map {\n // If value is a map, check if it has a key for this property.\n // Otherwise, use default-value (or $value if default-value is null).\n $actual-value: $default-value;\n @if meta.type-of($value) == \"map\" and map.has-key($value, $property) {\n $actual-value: map.get($value, $property);\n } @else if $default-value == null {\n $actual-value: $value;\n }\n @if map.get($utility, important) {\n #{$property}: $actual-value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $actual-value;\n }\n }\n } @else {\n // Legacy approach\n @each $property in $properties {\n @if map.get($utility, important) {\n #{$property}: $value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $value;\n }\n }\n }\n}\n\n@mixin generate-utility($utility, $prefix: \"\") {\n // Validate required keys\n @if not map.has-key($utility, property) {\n @error \"Utility is missing required `property` key: #{$utility}\";\n }\n @if not map.has-key($utility, values) {\n @error \"Utility is missing required `values` key: #{$utility}\";\n }\n\n // Warn on unknown keys (likely typos)\n $valid-keys: property, values, class, selector, responsive, print, dark, important, state, variables, child-selector, enabled;\n @each $key in map.keys($utility) {\n @if not list.index($valid-keys, $key) {\n @warn \"Unknown utility key `#{$key}` found. Valid keys are: #{$valid-keys}\";\n }\n }\n\n // Validate boolean keys\n @each $bool-key in (responsive, print, dark, important, enabled) {\n @if map.has-key($utility, $bool-key) {\n $val: map.get($utility, $bool-key);\n @if $val != true and $val != false {\n @error \"Utility key `#{$bool-key}` should be a boolean (true or false), got: #{$val}\";\n }\n }\n }\n\n // Determine if we're generating a class, or an attribute selector\n $selector-type: \"class\";\n @if map.has-key($utility, selector) {\n $selector-type: map.get($utility, selector);\n // Validate selector type\n $valid-selectors: \"class\", \"attr-starts\", \"attr-includes\";\n @if not list.index($valid-selectors, $selector-type) {\n @error \"Invalid `selector` value `#{$selector-type}`. Must be one of: #{$valid-selectors}\";\n }\n }\n // Then get the class name to use in a class (e.g., .class) or in an attribute selector (e.g., [class^=\"class\"])\n $selector-class: map.get($utility, class);\n\n // Attribute selectors require a `class` key\n @if $selector-type != \"class\" and not map.has-key($utility, class) {\n @error \"Utility with `selector: #{$selector-type}` requires a `class` key.\";\n }\n\n // Get the list or map of values and ensure it's a map\n $values: map.get($utility, values);\n @if meta.type-of($values) != \"map\" {\n @if meta.type-of($values) == \"list\" {\n $list: ();\n @each $value in $values {\n $list: map.merge($list, ($value: $value));\n }\n $values: $list;\n } @else {\n $values: (null: $values);\n }\n }\n\n @each $key, $value in $values {\n $properties: map.get($utility, property);\n $property-map: null;\n $custom-class: \"\";\n\n // Check if property is a map (Property-Value Mapping approach)\n @if meta.type-of($properties) == \"map\" {\n $property-map: $properties;\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n }\n } @else {\n // Legacy approach: multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if meta.type-of($properties) == \"string\" {\n $properties: list.append((), $properties);\n }\n // Use custom class if present, otherwise use the first value from the list of properties\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n } @else {\n $custom-class: list.nth($properties, 1);\n }\n @if $custom-class == null {\n $custom-class: \"\";\n }\n }\n\n // State params to generate state variants\n $state: ();\n @if map.has-key($utility, state) {\n $state: map.get($utility, state);\n }\n\n // Don't add a dash before value key if value key is null (e.g. with shadow class)\n $custom-class-modifier: \"\";\n @if $key {\n @if $custom-class == \"\" {\n $custom-class-modifier: $key;\n } @else {\n $custom-class-modifier: \"-\" + $key;\n }\n }\n\n // Build the class name fragment (without prefix or dot) for reuse in state variants\n $class-name: \"\";\n @if $selector-type == \"class\" {\n @if $custom-class != \"\" {\n $class-name: $custom-class + $custom-class-modifier;\n } @else if $selector-class != null and $selector-class != \"\" {\n $class-name: $selector-class + $custom-class-modifier;\n } @else {\n $class-name: $custom-class-modifier;\n }\n }\n\n $selector: \"\";\n @if $selector-type == \"class\" {\n $selector: \".#{$prefix + $class-name}\";\n } @else if $selector-type == \"attr-starts\" {\n $selector: \"[class^=\\\"#{$selector-class}\\\"]\";\n } @else if $selector-type == \"attr-includes\" {\n $selector: \"[class*=\\\"#{$selector-class}\\\"]\";\n }\n\n // Apply child-selector wrapping if present (wraps in :where() for zero specificity)\n $child-sel: null;\n @if map.has-key($utility, child-selector) {\n $child-sel: map.get($utility, child-selector);\n }\n\n $final-selector: $selector;\n @if $child-sel {\n $final-selector: \":where(#{$selector} #{$child-sel})\";\n }\n\n #{$final-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n\n // Generate state variants (e.g., hover:link-10 instead of link-10-hover)\n @if $state != () {\n @each $state-variant in $state {\n $state-selector: \".#{$prefix}#{$state-variant}\\\\:#{$class-name}:#{$state-variant}\";\n @if $child-sel {\n $state-selector: \":where(#{$state-selector} #{$child-sel})\";\n }\n\n #{$state-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n }\n }\n }\n}\n\n// Generates all utility classes: base, responsive, print, and dark.\n// Extracted so that tests can call this mixin directly with a custom $utilities map\n// rather than having to mirror the loop conditions inline.\n@mixin generate-utilities-loop($utilities, $breakpoints) {\n // Base + responsive (one pass per breakpoint)\n @each $breakpoint in map.keys($breakpoints) {\n @include bp.media-breakpoint-up($breakpoint, $breakpoints) {\n $prefix: bp.breakpoint-prefix($breakpoint, $breakpoints);\n\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and (map.get($utility, responsive) or $prefix == \"\") {\n @include generate-utility($utility, $prefix);\n }\n }\n }\n }\n\n // Print utilities\n @media print {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, print) == true {\n @include generate-utility($utility, \"print\\\\:\");\n }\n }\n }\n\n // Dark utilities\n @media (prefers-color-scheme: dark) {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, dark) == true {\n @include generate-utility($utility, \"dark\\\\:\");\n }\n }\n }\n}\n"]}
\ No newline at end of file
-:root{--bs-blue-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .24 240));--bs-blue-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .24 240));--bs-blue-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .24 240));--bs-blue-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .24 240));--bs-blue-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .24 240));--bs-blue-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .24 240));--bs-blue-500:oklch(60% .24 240);--bs-blue-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .24 240));--bs-blue-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .24 240));--bs-blue-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .24 240));--bs-blue-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .24 240));--bs-blue-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .24 240));--bs-blue-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .24 240));--bs-indigo-025:color-mix(in lab, var(--bs-white) 94%, oklch(56% .26 288));--bs-indigo-050:color-mix(in lab, var(--bs-white) 90%, oklch(56% .26 288));--bs-indigo-100:color-mix(in lab, var(--bs-white) 80%, oklch(56% .26 288));--bs-indigo-200:color-mix(in lab, var(--bs-white) 60%, oklch(56% .26 288));--bs-indigo-300:color-mix(in lab, var(--bs-white) 40%, oklch(56% .26 288));--bs-indigo-400:color-mix(in lab, var(--bs-white) 20%, oklch(56% .26 288));--bs-indigo-500:oklch(56% .26 288);--bs-indigo-600:color-mix(in lab, var(--bs-black) 16%, oklch(56% .26 288));--bs-indigo-700:color-mix(in lab, var(--bs-black) 32%, oklch(56% .26 288));--bs-indigo-800:color-mix(in lab, var(--bs-black) 48%, oklch(56% .26 288));--bs-indigo-900:color-mix(in lab, var(--bs-black) 64%, oklch(56% .26 288));--bs-indigo-950:color-mix(in lab, var(--bs-black) 76%, oklch(56% .26 288));--bs-indigo-975:color-mix(in lab, var(--bs-black) 88%, oklch(56% .26 288));--bs-violet-025:color-mix(in lab, var(--bs-white) 94%, oklch(56% .24 300));--bs-violet-050:color-mix(in lab, var(--bs-white) 90%, oklch(56% .24 300));--bs-violet-100:color-mix(in lab, var(--bs-white) 80%, oklch(56% .24 300));--bs-violet-200:color-mix(in lab, var(--bs-white) 60%, oklch(56% .24 300));--bs-violet-300:color-mix(in lab, var(--bs-white) 40%, oklch(56% .24 300));--bs-violet-400:color-mix(in lab, var(--bs-white) 20%, oklch(56% .24 300));--bs-violet-500:oklch(56% .24 300);--bs-violet-600:color-mix(in lab, var(--bs-black) 16%, oklch(56% .24 300));--bs-violet-700:color-mix(in lab, var(--bs-black) 32%, oklch(56% .24 300));--bs-violet-800:color-mix(in lab, var(--bs-black) 48%, oklch(56% .24 300));--bs-violet-900:color-mix(in lab, var(--bs-black) 64%, oklch(56% .24 300));--bs-violet-950:color-mix(in lab, var(--bs-black) 76%, oklch(56% .24 300));--bs-violet-975:color-mix(in lab, var(--bs-black) 88%, oklch(56% .24 300));--bs-purple-025:color-mix(in lab, var(--bs-white) 94%, oklch(56% .24 320));--bs-purple-050:color-mix(in lab, var(--bs-white) 90%, oklch(56% .24 320));--bs-purple-100:color-mix(in lab, var(--bs-white) 80%, oklch(56% .24 320));--bs-purple-200:color-mix(in lab, var(--bs-white) 60%, oklch(56% .24 320));--bs-purple-300:color-mix(in lab, var(--bs-white) 40%, oklch(56% .24 320));--bs-purple-400:color-mix(in lab, var(--bs-white) 20%, oklch(56% .24 320));--bs-purple-500:oklch(56% .24 320);--bs-purple-600:color-mix(in lab, var(--bs-black) 16%, oklch(56% .24 320));--bs-purple-700:color-mix(in lab, var(--bs-black) 32%, oklch(56% .24 320));--bs-purple-800:color-mix(in lab, var(--bs-black) 48%, oklch(56% .24 320));--bs-purple-900:color-mix(in lab, var(--bs-black) 64%, oklch(56% .24 320));--bs-purple-950:color-mix(in lab, var(--bs-black) 76%, oklch(56% .24 320));--bs-purple-975:color-mix(in lab, var(--bs-black) 88%, oklch(56% .24 320));--bs-pink-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .22 4));--bs-pink-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .22 4));--bs-pink-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .22 4));--bs-pink-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .22 4));--bs-pink-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .22 4));--bs-pink-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .22 4));--bs-pink-500:oklch(60% .22 4);--bs-pink-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .22 4));--bs-pink-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .22 4));--bs-pink-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .22 4));--bs-pink-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .22 4));--bs-pink-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .22 4));--bs-pink-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .22 4));--bs-red-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .22 20));--bs-red-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .22 20));--bs-red-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .22 20));--bs-red-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .22 20));--bs-red-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .22 20));--bs-red-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .22 20));--bs-red-500:oklch(60% .22 20);--bs-red-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .22 20));--bs-red-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .22 20));--bs-red-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .22 20));--bs-red-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .22 20));--bs-red-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .22 20));--bs-red-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .22 20));--bs-orange-025:color-mix(in lab, var(--bs-white) 94%, oklch(70% .22 52));--bs-orange-050:color-mix(in lab, var(--bs-white) 90%, oklch(70% .22 52));--bs-orange-100:color-mix(in lab, var(--bs-white) 80%, oklch(70% .22 52));--bs-orange-200:color-mix(in lab, var(--bs-white) 60%, oklch(70% .22 52));--bs-orange-300:color-mix(in lab, var(--bs-white) 40%, oklch(70% .22 52));--bs-orange-400:color-mix(in lab, var(--bs-white) 20%, oklch(70% .22 52));--bs-orange-500:oklch(70% .22 52);--bs-orange-600:color-mix(in lab, var(--bs-black) 16%, oklch(70% .22 52));--bs-orange-700:color-mix(in lab, var(--bs-black) 32%, oklch(70% .22 52));--bs-orange-800:color-mix(in lab, var(--bs-black) 48%, oklch(70% .22 52));--bs-orange-900:color-mix(in lab, var(--bs-black) 64%, oklch(70% .22 52));--bs-orange-950:color-mix(in lab, var(--bs-black) 76%, oklch(70% .22 52));--bs-orange-975:color-mix(in lab, var(--bs-black) 88%, oklch(70% .22 52));--bs-amber-025:color-mix(in lab, var(--bs-white) 94%, oklch(79% .2 78));--bs-amber-050:color-mix(in lab, var(--bs-white) 90%, oklch(79% .2 78));--bs-amber-100:color-mix(in lab, var(--bs-white) 80%, oklch(79% .2 78));--bs-amber-200:color-mix(in lab, var(--bs-white) 60%, oklch(79% .2 78));--bs-amber-300:color-mix(in lab, var(--bs-white) 40%, oklch(79% .2 78));--bs-amber-400:color-mix(in lab, var(--bs-white) 20%, oklch(79% .2 78));--bs-amber-500:oklch(79% .2 78);--bs-amber-600:color-mix(in lab, var(--bs-black) 16%, oklch(79% .2 78));--bs-amber-700:color-mix(in lab, var(--bs-black) 32%, oklch(79% .2 78));--bs-amber-800:color-mix(in lab, var(--bs-black) 48%, oklch(79% .2 78));--bs-amber-900:color-mix(in lab, var(--bs-black) 64%, oklch(79% .2 78));--bs-amber-950:color-mix(in lab, var(--bs-black) 76%, oklch(79% .2 78));--bs-amber-975:color-mix(in lab, var(--bs-black) 88%, oklch(79% .2 78));--bs-yellow-025:color-mix(in lab, var(--bs-white) 94%, oklch(88% .24 88));--bs-yellow-050:color-mix(in lab, var(--bs-white) 90%, oklch(88% .24 88));--bs-yellow-100:color-mix(in lab, var(--bs-white) 80%, oklch(88% .24 88));--bs-yellow-200:color-mix(in lab, var(--bs-white) 60%, oklch(88% .24 88));--bs-yellow-300:color-mix(in lab, var(--bs-white) 40%, oklch(88% .24 88));--bs-yellow-400:color-mix(in lab, var(--bs-white) 20%, oklch(88% .24 88));--bs-yellow-500:oklch(88% .24 88);--bs-yellow-600:color-mix(in lab, var(--bs-black) 16%, oklch(88% .24 88));--bs-yellow-700:color-mix(in lab, var(--bs-black) 32%, oklch(88% .24 88));--bs-yellow-800:color-mix(in lab, var(--bs-black) 48%, oklch(88% .24 88));--bs-yellow-900:color-mix(in lab, var(--bs-black) 64%, oklch(88% .24 88));--bs-yellow-950:color-mix(in lab, var(--bs-black) 76%, oklch(88% .24 88));--bs-yellow-975:color-mix(in lab, var(--bs-black) 88%, oklch(88% .24 88));--bs-lime-025:color-mix(in lab, var(--bs-white) 94%, oklch(65% .24 135));--bs-lime-050:color-mix(in lab, var(--bs-white) 90%, oklch(65% .24 135));--bs-lime-100:color-mix(in lab, var(--bs-white) 80%, oklch(65% .24 135));--bs-lime-200:color-mix(in lab, var(--bs-white) 60%, oklch(65% .24 135));--bs-lime-300:color-mix(in lab, var(--bs-white) 40%, oklch(65% .24 135));--bs-lime-400:color-mix(in lab, var(--bs-white) 20%, oklch(65% .24 135));--bs-lime-500:oklch(65% .24 135);--bs-lime-600:color-mix(in lab, var(--bs-black) 16%, oklch(65% .24 135));--bs-lime-700:color-mix(in lab, var(--bs-black) 32%, oklch(65% .24 135));--bs-lime-800:color-mix(in lab, var(--bs-black) 48%, oklch(65% .24 135));--bs-lime-900:color-mix(in lab, var(--bs-black) 64%, oklch(65% .24 135));--bs-lime-950:color-mix(in lab, var(--bs-black) 76%, oklch(65% .24 135));--bs-lime-975:color-mix(in lab, var(--bs-black) 88%, oklch(65% .24 135));--bs-green-025:color-mix(in lab, var(--bs-white) 94%, oklch(64% .22 160));--bs-green-050:color-mix(in lab, var(--bs-white) 90%, oklch(64% .22 160));--bs-green-100:color-mix(in lab, var(--bs-white) 80%, oklch(64% .22 160));--bs-green-200:color-mix(in lab, var(--bs-white) 60%, oklch(64% .22 160));--bs-green-300:color-mix(in lab, var(--bs-white) 40%, oklch(64% .22 160));--bs-green-400:color-mix(in lab, var(--bs-white) 20%, oklch(64% .22 160));--bs-green-500:oklch(64% .22 160);--bs-green-600:color-mix(in lab, var(--bs-black) 16%, oklch(64% .22 160));--bs-green-700:color-mix(in lab, var(--bs-black) 32%, oklch(64% .22 160));--bs-green-800:color-mix(in lab, var(--bs-black) 48%, oklch(64% .22 160));--bs-green-900:color-mix(in lab, var(--bs-black) 64%, oklch(64% .22 160));--bs-green-950:color-mix(in lab, var(--bs-black) 76%, oklch(64% .22 160));--bs-green-975:color-mix(in lab, var(--bs-black) 88%, oklch(64% .22 160));--bs-teal-025:color-mix(in lab, var(--bs-white) 94%, oklch(68% .22 190));--bs-teal-050:color-mix(in lab, var(--bs-white) 90%, oklch(68% .22 190));--bs-teal-100:color-mix(in lab, var(--bs-white) 80%, oklch(68% .22 190));--bs-teal-200:color-mix(in lab, var(--bs-white) 60%, oklch(68% .22 190));--bs-teal-300:color-mix(in lab, var(--bs-white) 40%, oklch(68% .22 190));--bs-teal-400:color-mix(in lab, var(--bs-white) 20%, oklch(68% .22 190));--bs-teal-500:oklch(68% .22 190);--bs-teal-600:color-mix(in lab, var(--bs-black) 16%, oklch(68% .22 190));--bs-teal-700:color-mix(in lab, var(--bs-black) 32%, oklch(68% .22 190));--bs-teal-800:color-mix(in lab, var(--bs-black) 48%, oklch(68% .22 190));--bs-teal-900:color-mix(in lab, var(--bs-black) 64%, oklch(68% .22 190));--bs-teal-950:color-mix(in lab, var(--bs-black) 76%, oklch(68% .22 190));--bs-teal-975:color-mix(in lab, var(--bs-black) 88%, oklch(68% .22 190));--bs-cyan-025:color-mix(in lab, var(--bs-white) 94%, oklch(69% .22 220));--bs-cyan-050:color-mix(in lab, var(--bs-white) 90%, oklch(69% .22 220));--bs-cyan-100:color-mix(in lab, var(--bs-white) 80%, oklch(69% .22 220));--bs-cyan-200:color-mix(in lab, var(--bs-white) 60%, oklch(69% .22 220));--bs-cyan-300:color-mix(in lab, var(--bs-white) 40%, oklch(69% .22 220));--bs-cyan-400:color-mix(in lab, var(--bs-white) 20%, oklch(69% .22 220));--bs-cyan-500:oklch(69% .22 220);--bs-cyan-600:color-mix(in lab, var(--bs-black) 16%, oklch(69% .22 220));--bs-cyan-700:color-mix(in lab, var(--bs-black) 32%, oklch(69% .22 220));--bs-cyan-800:color-mix(in lab, var(--bs-black) 48%, oklch(69% .22 220));--bs-cyan-900:color-mix(in lab, var(--bs-black) 64%, oklch(69% .22 220));--bs-cyan-950:color-mix(in lab, var(--bs-black) 76%, oklch(69% .22 220));--bs-cyan-975:color-mix(in lab, var(--bs-black) 88%, oklch(69% .22 220));--bs-brown-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .12 54));--bs-brown-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .12 54));--bs-brown-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .12 54));--bs-brown-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .12 54));--bs-brown-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .12 54));--bs-brown-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .12 54));--bs-brown-500:oklch(60% .12 54);--bs-brown-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .12 54));--bs-brown-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .12 54));--bs-brown-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .12 54));--bs-brown-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .12 54));--bs-brown-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .12 54));--bs-brown-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .12 54));--bs-gray-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .02 245));--bs-gray-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .02 245));--bs-gray-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .02 245));--bs-gray-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .02 245));--bs-gray-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .02 245));--bs-gray-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .02 245));--bs-gray-500:oklch(60% .02 245);--bs-gray-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .02 245));--bs-gray-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .02 245));--bs-gray-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .02 245));--bs-gray-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .02 245));--bs-gray-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .02 245));--bs-gray-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .02 245));--bs-pewter-025:color-mix(in lab, var(--bs-white) 94%, oklch(65% .01 290));--bs-pewter-050:color-mix(in lab, var(--bs-white) 90%, oklch(65% .01 290));--bs-pewter-100:color-mix(in lab, var(--bs-white) 80%, oklch(65% .01 290));--bs-pewter-200:color-mix(in lab, var(--bs-white) 60%, oklch(65% .01 290));--bs-pewter-300:color-mix(in lab, var(--bs-white) 40%, oklch(65% .01 290));--bs-pewter-400:color-mix(in lab, var(--bs-white) 20%, oklch(65% .01 290));--bs-pewter-500:oklch(65% .01 290);--bs-pewter-600:color-mix(in lab, var(--bs-black) 16%, oklch(65% .01 290));--bs-pewter-700:color-mix(in lab, var(--bs-black) 32%, oklch(65% .01 290));--bs-pewter-800:color-mix(in lab, var(--bs-black) 48%, oklch(65% .01 290));--bs-pewter-900:color-mix(in lab, var(--bs-black) 64%, oklch(65% .01 290));--bs-pewter-950:color-mix(in lab, var(--bs-black) 76%, oklch(65% .01 290));--bs-pewter-975:color-mix(in lab, var(--bs-black) 88%, oklch(65% .01 290))}@layer colors,theme,config,root;@layer reboot{*,:before,:after{box-sizing:border-box}:root{accent-color:var(--bs-primary-base)}body{font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-fg-body);text-align:var(--bs-body-text-align);background-color:var(--bs-bg-body);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0}hr{margin:var(--bs-hr-margin-y,var(--bs-spacer)) 0;border:0;border-block-start:var(--bs-border-width) solid var(--bs-hr-border-color)}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:var(--bs-spacer-2);color:var(--bs-heading-color);font-weight:500;line-height:1.2}h1,.h1{font-size:var(--bs-font-size-3xl)}h2,.h2{font-size:var(--bs-font-size-2xl)}h3,.h3{font-size:var(--bs-font-size-xl)}h4,.h4{font-size:var(--bs-font-size-lg)}h5,.h5{font-size:var(--bs-font-size-md)}h6,.h6{font-size:var(--bs-font-size-sm)}p{margin-top:0;margin-bottom:1rem}abbr[title]{cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1rem}ol,ul{padding-inline-start:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-inline-start:0;margin-bottom:.5rem}blockquote{margin:0 0 1rem}blockquote>*{margin-block:0}b,strong{font-weight:bolder}small,.small{font-size:var(--bs-small-font-size,87.5%)}mark,.mark{--bs-mark-padding:.1875em;--bs-mark-color:var(--bs-fg-body);--bs-mark-bg:var(--lightningcss-light,var(--bs-yellow-100))var(--lightningcss-dark,var(--bs-yellow-900));padding:var(--bs-mark-padding);color:var(--bs-mark-color);background-color:var(--bs-mark-bg)}sub,sup{font-size:var(--bs-sub-sup-font-size,.75em);vertical-align:baseline;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}a{color:var(--bs-theme-fg,var(--bs-link-color));-webkit-text-decoration:var(--bs-link-decoration);-webkit-text-decoration:var(--bs-link-decoration);text-decoration:var(--bs-link-decoration);text-underline-offset:.2em}a:hover{color:var(--bs-theme-fg-emphasis,var(--bs-link-hover-color));-webkit-text-decoration:var(--bs-link-hover-decoration,var(--bs-link-decoration));-webkit-text-decoration:var(--bs-link-hover-decoration,var(--bs-link-decoration));text-decoration:var(--bs-link-hover-decoration,var(--bs-link-decoration))}a:not([href],[class]),a:not([href],[class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-mono);font-size:1em}pre{font-size:var(--bs-code-font-size);color:var(--bs-code-color,inherit);margin-top:0;margin-bottom:1rem;display:block;overflow:auto}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:var(--bs-code-font-size);color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{--bs-kbd-padding-y:.125rem;--bs-kbd-padding-x:.25rem;--bs-kbd-font-size:var(--bs-font-size-xs);--bs-kbd-color:var(--bs-bg-body);--bs-kbd-bg:var(--bs-fg-2);--bs-kbd-border-radius:var(--bs-radius-5);padding:var(--bs-kbd-padding-y) var(--bs-kbd-padding-x);font-size:var(--bs-kbd-font-size);color:var(--bs-kbd-color);background-color:var(--bs-kbd-bg);border-radius:var(--bs-kbd-border-radius)}kbd kbd{font-size:1em;font-weight:inherit;padding:0}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{color:var(--bs-fg-3);text-align:start;padding-block:.5rem}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date],[type=datetime-local],[type=month],[type=week],[type=time])::-webkit-calendar-picker-indicator{display:none!important}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}textarea{resize:vertical}fieldset{border:0;min-width:0;margin:0;padding:0}legend{float:inline-start;width:100%;font-size:1.5rem;line-height:inherit;margin-bottom:.5rem;padding:0}legend+*{clear:inline-start}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit-text{padding:0}::-webkit-datetime-edit-millisecond-field{padding:0}::-webkit-datetime-edit-second-field{padding:0}::-webkit-datetime-edit-minute-field{padding:0}::-webkit-datetime-edit-hour-field{padding:0}::-webkit-datetime-edit-ampm-field{padding:0}::-webkit-datetime-edit-day-field{padding:0}::-webkit-datetime-edit-week-field{padding:0}::-webkit-datetime-edit-month-field{padding:0}::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button{cursor:pointer;filter:grayscale()}[type=tel],[type=url],[type=email],[type=number]{direction:ltr}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{cursor:pointer;display:list-item}progress{vertical-align:baseline}[hidden]{display:none!important}}@layer layout{.container,.container-fluid,.\32 xl\:container,.xl\:container,.lg\:container,.md\:container,.sm\:container{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-inline:calc(var(--bs-gutter-x) * .5);margin-inline:auto}@media (min-width:576px){.sm\:container,.container{max-width:540px}}@media (min-width:768px){.md\:container,.sm\:container,.container{max-width:720px}}@media (min-width:1024px){.lg\:container,.md\:container,.sm\:container,.container{max-width:960px}}@media (min-width:1280px){.xl\:container,.lg\:container,.md\:container,.sm\:container,.container{max-width:1200px}}@media (min-width:1536px){.\32 xl\:container,.xl\:container,.lg\:container,.md\:container,.sm\:container,.container{max-width:1440px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;margin-inline:calc(-.5 * var(--bs-gutter-x));margin-top:calc(-1 * var(--bs-gutter-y));flex-wrap:wrap;display:flex}.row>*{width:100%;max-width:100%;padding-inline:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y);flex-shrink:0}.col{flex:1 0 0}.row-cols-auto>*{flex:none;width:auto}.row-cols-1>*{flex:none;width:100%}.row-cols-2>*{flex:none;width:50%}.row-cols-3>*{flex:none;width:33.3333%}.row-cols-4>*{flex:none;width:25%}.row-cols-5>*{flex:none;width:20%}.row-cols-6>*{flex:none;width:16.6667%}.col-auto{flex:none;width:auto}.col-1{flex:none;width:8.33333%}.col-2{flex:none;width:16.6667%}.col-3{flex:none;width:25%}.col-4{flex:none;width:33.3333%}.col-5{flex:none;width:41.6667%}.col-6{flex:none;width:50%}.col-7{flex:none;width:58.3333%}.col-8{flex:none;width:66.6667%}.col-9{flex:none;width:75%}.col-10{flex:none;width:83.3333%}.col-11{flex:none;width:91.6667%}.col-12{flex:none;width:100%}.offset-1{margin-inline-start:8.33333%}.offset-2{margin-inline-start:16.6667%}.offset-3{margin-inline-start:25%}.offset-4{margin-inline-start:33.3333%}.offset-5{margin-inline-start:41.6667%}.offset-6{margin-inline-start:50%}.offset-7{margin-inline-start:58.3333%}.offset-8{margin-inline-start:66.6667%}.offset-9{margin-inline-start:75%}.offset-10{margin-inline-start:83.3333%}.offset-11{margin-inline-start:91.6667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:.25rem}.g-1,.gy-1{--bs-gutter-y:.25rem}.g-2,.gx-2{--bs-gutter-x:.5rem}.g-2,.gy-2{--bs-gutter-y:.5rem}.g-3,.gx-3{--bs-gutter-x:.75rem}.g-3,.gy-3{--bs-gutter-y:.75rem}.g-4,.gx-4{--bs-gutter-x:1rem}.g-4,.gy-4{--bs-gutter-y:1rem}.g-5,.gx-5{--bs-gutter-x:1.25rem}.g-5,.gy-5{--bs-gutter-y:1.25rem}.g-6,.gx-6{--bs-gutter-x:1.5rem}.g-6,.gy-6{--bs-gutter-y:1.5rem}.g-7,.gx-7{--bs-gutter-x:2rem}.g-7,.gy-7{--bs-gutter-y:2rem}.g-8,.gx-8{--bs-gutter-x:2.5rem}.g-8,.gy-8{--bs-gutter-y:2.5rem}.g-9,.gx-9{--bs-gutter-x:3rem}.g-9,.gy-9{--bs-gutter-y:3rem}@media (min-width:576px){.sm\:col{flex:1 0 0}.sm\:row-cols-auto>*{flex:none;width:auto}.sm\:row-cols-1>*{flex:none;width:100%}.sm\:row-cols-2>*{flex:none;width:50%}.sm\:row-cols-3>*{flex:none;width:33.3333%}.sm\:row-cols-4>*{flex:none;width:25%}.sm\:row-cols-5>*{flex:none;width:20%}.sm\:row-cols-6>*{flex:none;width:16.6667%}.sm\:col-auto{flex:none;width:auto}.sm\:col-1{flex:none;width:8.33333%}.sm\:col-2{flex:none;width:16.6667%}.sm\:col-3{flex:none;width:25%}.sm\:col-4{flex:none;width:33.3333%}.sm\:col-5{flex:none;width:41.6667%}.sm\:col-6{flex:none;width:50%}.sm\:col-7{flex:none;width:58.3333%}.sm\:col-8{flex:none;width:66.6667%}.sm\:col-9{flex:none;width:75%}.sm\:col-10{flex:none;width:83.3333%}.sm\:col-11{flex:none;width:91.6667%}.sm\:col-12{flex:none;width:100%}.sm\:offset-0{margin-inline-start:0}.sm\:offset-1{margin-inline-start:8.33333%}.sm\:offset-2{margin-inline-start:16.6667%}.sm\:offset-3{margin-inline-start:25%}.sm\:offset-4{margin-inline-start:33.3333%}.sm\:offset-5{margin-inline-start:41.6667%}.sm\:offset-6{margin-inline-start:50%}.sm\:offset-7{margin-inline-start:58.3333%}.sm\:offset-8{margin-inline-start:66.6667%}.sm\:offset-9{margin-inline-start:75%}.sm\:offset-10{margin-inline-start:83.3333%}.sm\:offset-11{margin-inline-start:91.6667%}.sm\:g-0,.sm\:gx-0{--bs-gutter-x:0}.sm\:g-0,.sm\:gy-0{--bs-gutter-y:0}.sm\:g-1,.sm\:gx-1{--bs-gutter-x:.25rem}.sm\:g-1,.sm\:gy-1{--bs-gutter-y:.25rem}.sm\:g-2,.sm\:gx-2{--bs-gutter-x:.5rem}.sm\:g-2,.sm\:gy-2{--bs-gutter-y:.5rem}.sm\:g-3,.sm\:gx-3{--bs-gutter-x:.75rem}.sm\:g-3,.sm\:gy-3{--bs-gutter-y:.75rem}.sm\:g-4,.sm\:gx-4{--bs-gutter-x:1rem}.sm\:g-4,.sm\:gy-4{--bs-gutter-y:1rem}.sm\:g-5,.sm\:gx-5{--bs-gutter-x:1.25rem}.sm\:g-5,.sm\:gy-5{--bs-gutter-y:1.25rem}.sm\:g-6,.sm\:gx-6{--bs-gutter-x:1.5rem}.sm\:g-6,.sm\:gy-6{--bs-gutter-y:1.5rem}.sm\:g-7,.sm\:gx-7{--bs-gutter-x:2rem}.sm\:g-7,.sm\:gy-7{--bs-gutter-y:2rem}.sm\:g-8,.sm\:gx-8{--bs-gutter-x:2.5rem}.sm\:g-8,.sm\:gy-8{--bs-gutter-y:2.5rem}.sm\:g-9,.sm\:gx-9{--bs-gutter-x:3rem}.sm\:g-9,.sm\:gy-9{--bs-gutter-y:3rem}}@media (min-width:768px){.md\:col{flex:1 0 0}.md\:row-cols-auto>*{flex:none;width:auto}.md\:row-cols-1>*{flex:none;width:100%}.md\:row-cols-2>*{flex:none;width:50%}.md\:row-cols-3>*{flex:none;width:33.3333%}.md\:row-cols-4>*{flex:none;width:25%}.md\:row-cols-5>*{flex:none;width:20%}.md\:row-cols-6>*{flex:none;width:16.6667%}.md\:col-auto{flex:none;width:auto}.md\:col-1{flex:none;width:8.33333%}.md\:col-2{flex:none;width:16.6667%}.md\:col-3{flex:none;width:25%}.md\:col-4{flex:none;width:33.3333%}.md\:col-5{flex:none;width:41.6667%}.md\:col-6{flex:none;width:50%}.md\:col-7{flex:none;width:58.3333%}.md\:col-8{flex:none;width:66.6667%}.md\:col-9{flex:none;width:75%}.md\:col-10{flex:none;width:83.3333%}.md\:col-11{flex:none;width:91.6667%}.md\:col-12{flex:none;width:100%}.md\:offset-0{margin-inline-start:0}.md\:offset-1{margin-inline-start:8.33333%}.md\:offset-2{margin-inline-start:16.6667%}.md\:offset-3{margin-inline-start:25%}.md\:offset-4{margin-inline-start:33.3333%}.md\:offset-5{margin-inline-start:41.6667%}.md\:offset-6{margin-inline-start:50%}.md\:offset-7{margin-inline-start:58.3333%}.md\:offset-8{margin-inline-start:66.6667%}.md\:offset-9{margin-inline-start:75%}.md\:offset-10{margin-inline-start:83.3333%}.md\:offset-11{margin-inline-start:91.6667%}.md\:g-0,.md\:gx-0{--bs-gutter-x:0}.md\:g-0,.md\:gy-0{--bs-gutter-y:0}.md\:g-1,.md\:gx-1{--bs-gutter-x:.25rem}.md\:g-1,.md\:gy-1{--bs-gutter-y:.25rem}.md\:g-2,.md\:gx-2{--bs-gutter-x:.5rem}.md\:g-2,.md\:gy-2{--bs-gutter-y:.5rem}.md\:g-3,.md\:gx-3{--bs-gutter-x:.75rem}.md\:g-3,.md\:gy-3{--bs-gutter-y:.75rem}.md\:g-4,.md\:gx-4{--bs-gutter-x:1rem}.md\:g-4,.md\:gy-4{--bs-gutter-y:1rem}.md\:g-5,.md\:gx-5{--bs-gutter-x:1.25rem}.md\:g-5,.md\:gy-5{--bs-gutter-y:1.25rem}.md\:g-6,.md\:gx-6{--bs-gutter-x:1.5rem}.md\:g-6,.md\:gy-6{--bs-gutter-y:1.5rem}.md\:g-7,.md\:gx-7{--bs-gutter-x:2rem}.md\:g-7,.md\:gy-7{--bs-gutter-y:2rem}.md\:g-8,.md\:gx-8{--bs-gutter-x:2.5rem}.md\:g-8,.md\:gy-8{--bs-gutter-y:2.5rem}.md\:g-9,.md\:gx-9{--bs-gutter-x:3rem}.md\:g-9,.md\:gy-9{--bs-gutter-y:3rem}}@media (min-width:1024px){.lg\:col{flex:1 0 0}.lg\:row-cols-auto>*{flex:none;width:auto}.lg\:row-cols-1>*{flex:none;width:100%}.lg\:row-cols-2>*{flex:none;width:50%}.lg\:row-cols-3>*{flex:none;width:33.3333%}.lg\:row-cols-4>*{flex:none;width:25%}.lg\:row-cols-5>*{flex:none;width:20%}.lg\:row-cols-6>*{flex:none;width:16.6667%}.lg\:col-auto{flex:none;width:auto}.lg\:col-1{flex:none;width:8.33333%}.lg\:col-2{flex:none;width:16.6667%}.lg\:col-3{flex:none;width:25%}.lg\:col-4{flex:none;width:33.3333%}.lg\:col-5{flex:none;width:41.6667%}.lg\:col-6{flex:none;width:50%}.lg\:col-7{flex:none;width:58.3333%}.lg\:col-8{flex:none;width:66.6667%}.lg\:col-9{flex:none;width:75%}.lg\:col-10{flex:none;width:83.3333%}.lg\:col-11{flex:none;width:91.6667%}.lg\:col-12{flex:none;width:100%}.lg\:offset-0{margin-inline-start:0}.lg\:offset-1{margin-inline-start:8.33333%}.lg\:offset-2{margin-inline-start:16.6667%}.lg\:offset-3{margin-inline-start:25%}.lg\:offset-4{margin-inline-start:33.3333%}.lg\:offset-5{margin-inline-start:41.6667%}.lg\:offset-6{margin-inline-start:50%}.lg\:offset-7{margin-inline-start:58.3333%}.lg\:offset-8{margin-inline-start:66.6667%}.lg\:offset-9{margin-inline-start:75%}.lg\:offset-10{margin-inline-start:83.3333%}.lg\:offset-11{margin-inline-start:91.6667%}.lg\:g-0,.lg\:gx-0{--bs-gutter-x:0}.lg\:g-0,.lg\:gy-0{--bs-gutter-y:0}.lg\:g-1,.lg\:gx-1{--bs-gutter-x:.25rem}.lg\:g-1,.lg\:gy-1{--bs-gutter-y:.25rem}.lg\:g-2,.lg\:gx-2{--bs-gutter-x:.5rem}.lg\:g-2,.lg\:gy-2{--bs-gutter-y:.5rem}.lg\:g-3,.lg\:gx-3{--bs-gutter-x:.75rem}.lg\:g-3,.lg\:gy-3{--bs-gutter-y:.75rem}.lg\:g-4,.lg\:gx-4{--bs-gutter-x:1rem}.lg\:g-4,.lg\:gy-4{--bs-gutter-y:1rem}.lg\:g-5,.lg\:gx-5{--bs-gutter-x:1.25rem}.lg\:g-5,.lg\:gy-5{--bs-gutter-y:1.25rem}.lg\:g-6,.lg\:gx-6{--bs-gutter-x:1.5rem}.lg\:g-6,.lg\:gy-6{--bs-gutter-y:1.5rem}.lg\:g-7,.lg\:gx-7{--bs-gutter-x:2rem}.lg\:g-7,.lg\:gy-7{--bs-gutter-y:2rem}.lg\:g-8,.lg\:gx-8{--bs-gutter-x:2.5rem}.lg\:g-8,.lg\:gy-8{--bs-gutter-y:2.5rem}.lg\:g-9,.lg\:gx-9{--bs-gutter-x:3rem}.lg\:g-9,.lg\:gy-9{--bs-gutter-y:3rem}}@media (min-width:1280px){.xl\:col{flex:1 0 0}.xl\:row-cols-auto>*{flex:none;width:auto}.xl\:row-cols-1>*{flex:none;width:100%}.xl\:row-cols-2>*{flex:none;width:50%}.xl\:row-cols-3>*{flex:none;width:33.3333%}.xl\:row-cols-4>*{flex:none;width:25%}.xl\:row-cols-5>*{flex:none;width:20%}.xl\:row-cols-6>*{flex:none;width:16.6667%}.xl\:col-auto{flex:none;width:auto}.xl\:col-1{flex:none;width:8.33333%}.xl\:col-2{flex:none;width:16.6667%}.xl\:col-3{flex:none;width:25%}.xl\:col-4{flex:none;width:33.3333%}.xl\:col-5{flex:none;width:41.6667%}.xl\:col-6{flex:none;width:50%}.xl\:col-7{flex:none;width:58.3333%}.xl\:col-8{flex:none;width:66.6667%}.xl\:col-9{flex:none;width:75%}.xl\:col-10{flex:none;width:83.3333%}.xl\:col-11{flex:none;width:91.6667%}.xl\:col-12{flex:none;width:100%}.xl\:offset-0{margin-inline-start:0}.xl\:offset-1{margin-inline-start:8.33333%}.xl\:offset-2{margin-inline-start:16.6667%}.xl\:offset-3{margin-inline-start:25%}.xl\:offset-4{margin-inline-start:33.3333%}.xl\:offset-5{margin-inline-start:41.6667%}.xl\:offset-6{margin-inline-start:50%}.xl\:offset-7{margin-inline-start:58.3333%}.xl\:offset-8{margin-inline-start:66.6667%}.xl\:offset-9{margin-inline-start:75%}.xl\:offset-10{margin-inline-start:83.3333%}.xl\:offset-11{margin-inline-start:91.6667%}.xl\:g-0,.xl\:gx-0{--bs-gutter-x:0}.xl\:g-0,.xl\:gy-0{--bs-gutter-y:0}.xl\:g-1,.xl\:gx-1{--bs-gutter-x:.25rem}.xl\:g-1,.xl\:gy-1{--bs-gutter-y:.25rem}.xl\:g-2,.xl\:gx-2{--bs-gutter-x:.5rem}.xl\:g-2,.xl\:gy-2{--bs-gutter-y:.5rem}.xl\:g-3,.xl\:gx-3{--bs-gutter-x:.75rem}.xl\:g-3,.xl\:gy-3{--bs-gutter-y:.75rem}.xl\:g-4,.xl\:gx-4{--bs-gutter-x:1rem}.xl\:g-4,.xl\:gy-4{--bs-gutter-y:1rem}.xl\:g-5,.xl\:gx-5{--bs-gutter-x:1.25rem}.xl\:g-5,.xl\:gy-5{--bs-gutter-y:1.25rem}.xl\:g-6,.xl\:gx-6{--bs-gutter-x:1.5rem}.xl\:g-6,.xl\:gy-6{--bs-gutter-y:1.5rem}.xl\:g-7,.xl\:gx-7{--bs-gutter-x:2rem}.xl\:g-7,.xl\:gy-7{--bs-gutter-y:2rem}.xl\:g-8,.xl\:gx-8{--bs-gutter-x:2.5rem}.xl\:g-8,.xl\:gy-8{--bs-gutter-y:2.5rem}.xl\:g-9,.xl\:gx-9{--bs-gutter-x:3rem}.xl\:g-9,.xl\:gy-9{--bs-gutter-y:3rem}}@media (min-width:1536px){.\32 xl\:col{flex:1 0 0}.\32 xl\:row-cols-auto>*{flex:none;width:auto}.\32 xl\:row-cols-1>*{flex:none;width:100%}.\32 xl\:row-cols-2>*{flex:none;width:50%}.\32 xl\:row-cols-3>*{flex:none;width:33.3333%}.\32 xl\:row-cols-4>*{flex:none;width:25%}.\32 xl\:row-cols-5>*{flex:none;width:20%}.\32 xl\:row-cols-6>*{flex:none;width:16.6667%}.\32 xl\:col-auto{flex:none;width:auto}.\32 xl\:col-1{flex:none;width:8.33333%}.\32 xl\:col-2{flex:none;width:16.6667%}.\32 xl\:col-3{flex:none;width:25%}.\32 xl\:col-4{flex:none;width:33.3333%}.\32 xl\:col-5{flex:none;width:41.6667%}.\32 xl\:col-6{flex:none;width:50%}.\32 xl\:col-7{flex:none;width:58.3333%}.\32 xl\:col-8{flex:none;width:66.6667%}.\32 xl\:col-9{flex:none;width:75%}.\32 xl\:col-10{flex:none;width:83.3333%}.\32 xl\:col-11{flex:none;width:91.6667%}.\32 xl\:col-12{flex:none;width:100%}.\32 xl\:offset-0{margin-inline-start:0}.\32 xl\:offset-1{margin-inline-start:8.33333%}.\32 xl\:offset-2{margin-inline-start:16.6667%}.\32 xl\:offset-3{margin-inline-start:25%}.\32 xl\:offset-4{margin-inline-start:33.3333%}.\32 xl\:offset-5{margin-inline-start:41.6667%}.\32 xl\:offset-6{margin-inline-start:50%}.\32 xl\:offset-7{margin-inline-start:58.3333%}.\32 xl\:offset-8{margin-inline-start:66.6667%}.\32 xl\:offset-9{margin-inline-start:75%}.\32 xl\:offset-10{margin-inline-start:83.3333%}.\32 xl\:offset-11{margin-inline-start:91.6667%}.\32 xl\:g-0,.\32 xl\:gx-0{--bs-gutter-x:0}.\32 xl\:g-0,.\32 xl\:gy-0{--bs-gutter-y:0}.\32 xl\:g-1,.\32 xl\:gx-1{--bs-gutter-x:.25rem}.\32 xl\:g-1,.\32 xl\:gy-1{--bs-gutter-y:.25rem}.\32 xl\:g-2,.\32 xl\:gx-2{--bs-gutter-x:.5rem}.\32 xl\:g-2,.\32 xl\:gy-2{--bs-gutter-y:.5rem}.\32 xl\:g-3,.\32 xl\:gx-3{--bs-gutter-x:.75rem}.\32 xl\:g-3,.\32 xl\:gy-3{--bs-gutter-y:.75rem}.\32 xl\:g-4,.\32 xl\:gx-4{--bs-gutter-x:1rem}.\32 xl\:g-4,.\32 xl\:gy-4{--bs-gutter-y:1rem}.\32 xl\:g-5,.\32 xl\:gx-5{--bs-gutter-x:1.25rem}.\32 xl\:g-5,.\32 xl\:gy-5{--bs-gutter-y:1.25rem}.\32 xl\:g-6,.\32 xl\:gx-6{--bs-gutter-x:1.5rem}.\32 xl\:g-6,.\32 xl\:gy-6{--bs-gutter-y:1.5rem}.\32 xl\:g-7,.\32 xl\:gx-7{--bs-gutter-x:2rem}.\32 xl\:g-7,.\32 xl\:gy-7{--bs-gutter-y:2rem}.\32 xl\:g-8,.\32 xl\:gx-8{--bs-gutter-x:2.5rem}.\32 xl\:g-8,.\32 xl\:gy-8{--bs-gutter-y:2.5rem}.\32 xl\:g-9,.\32 xl\:gx-9{--bs-gutter-x:3rem}.\32 xl\:g-9,.\32 xl\:gy-9{--bs-gutter-y:3rem}}.grid{--bs-columns:12;--bs-rows:1;--bs-gap:1.5rem;grid-template-rows:repeat(var(--bs-rows), 1fr);grid-template-columns:repeat(var(--bs-columns), 1fr);gap:var(--bs-gap);display:grid}.g-col-1{grid-column:auto/span 1}.g-col-2{grid-column:auto/span 2}.g-col-3{grid-column:auto/span 3}.g-col-4{grid-column:auto/span 4}.g-col-5{grid-column:auto/span 5}.g-col-6{grid-column:auto/span 6}.g-col-7{grid-column:auto/span 7}.g-col-8{grid-column:auto/span 8}.g-col-9{grid-column:auto/span 9}.g-col-10{grid-column:auto/span 10}.g-col-11{grid-column:auto/span 11}.g-col-12{grid-column:auto/span 12}.g-start-1{grid-column-start:1}.g-start-2{grid-column-start:2}.g-start-3{grid-column-start:3}.g-start-4{grid-column-start:4}.g-start-5{grid-column-start:5}.g-start-6{grid-column-start:6}.g-start-7{grid-column-start:7}.g-start-8{grid-column-start:8}.g-start-9{grid-column-start:9}.g-start-10{grid-column-start:10}.g-start-11{grid-column-start:11}@media (min-width:576px){.sm\:g-col-1{grid-column:auto/span 1}.sm\:g-col-2{grid-column:auto/span 2}.sm\:g-col-3{grid-column:auto/span 3}.sm\:g-col-4{grid-column:auto/span 4}.sm\:g-col-5{grid-column:auto/span 5}.sm\:g-col-6{grid-column:auto/span 6}.sm\:g-col-7{grid-column:auto/span 7}.sm\:g-col-8{grid-column:auto/span 8}.sm\:g-col-9{grid-column:auto/span 9}.sm\:g-col-10{grid-column:auto/span 10}.sm\:g-col-11{grid-column:auto/span 11}.sm\:g-col-12{grid-column:auto/span 12}.sm\:g-start-1{grid-column-start:1}.sm\:g-start-2{grid-column-start:2}.sm\:g-start-3{grid-column-start:3}.sm\:g-start-4{grid-column-start:4}.sm\:g-start-5{grid-column-start:5}.sm\:g-start-6{grid-column-start:6}.sm\:g-start-7{grid-column-start:7}.sm\:g-start-8{grid-column-start:8}.sm\:g-start-9{grid-column-start:9}.sm\:g-start-10{grid-column-start:10}.sm\:g-start-11{grid-column-start:11}}@media (min-width:768px){.md\:g-col-1{grid-column:auto/span 1}.md\:g-col-2{grid-column:auto/span 2}.md\:g-col-3{grid-column:auto/span 3}.md\:g-col-4{grid-column:auto/span 4}.md\:g-col-5{grid-column:auto/span 5}.md\:g-col-6{grid-column:auto/span 6}.md\:g-col-7{grid-column:auto/span 7}.md\:g-col-8{grid-column:auto/span 8}.md\:g-col-9{grid-column:auto/span 9}.md\:g-col-10{grid-column:auto/span 10}.md\:g-col-11{grid-column:auto/span 11}.md\:g-col-12{grid-column:auto/span 12}.md\:g-start-1{grid-column-start:1}.md\:g-start-2{grid-column-start:2}.md\:g-start-3{grid-column-start:3}.md\:g-start-4{grid-column-start:4}.md\:g-start-5{grid-column-start:5}.md\:g-start-6{grid-column-start:6}.md\:g-start-7{grid-column-start:7}.md\:g-start-8{grid-column-start:8}.md\:g-start-9{grid-column-start:9}.md\:g-start-10{grid-column-start:10}.md\:g-start-11{grid-column-start:11}}@media (min-width:1024px){.lg\:g-col-1{grid-column:auto/span 1}.lg\:g-col-2{grid-column:auto/span 2}.lg\:g-col-3{grid-column:auto/span 3}.lg\:g-col-4{grid-column:auto/span 4}.lg\:g-col-5{grid-column:auto/span 5}.lg\:g-col-6{grid-column:auto/span 6}.lg\:g-col-7{grid-column:auto/span 7}.lg\:g-col-8{grid-column:auto/span 8}.lg\:g-col-9{grid-column:auto/span 9}.lg\:g-col-10{grid-column:auto/span 10}.lg\:g-col-11{grid-column:auto/span 11}.lg\:g-col-12{grid-column:auto/span 12}.lg\:g-start-1{grid-column-start:1}.lg\:g-start-2{grid-column-start:2}.lg\:g-start-3{grid-column-start:3}.lg\:g-start-4{grid-column-start:4}.lg\:g-start-5{grid-column-start:5}.lg\:g-start-6{grid-column-start:6}.lg\:g-start-7{grid-column-start:7}.lg\:g-start-8{grid-column-start:8}.lg\:g-start-9{grid-column-start:9}.lg\:g-start-10{grid-column-start:10}.lg\:g-start-11{grid-column-start:11}}@media (min-width:1280px){.xl\:g-col-1{grid-column:auto/span 1}.xl\:g-col-2{grid-column:auto/span 2}.xl\:g-col-3{grid-column:auto/span 3}.xl\:g-col-4{grid-column:auto/span 4}.xl\:g-col-5{grid-column:auto/span 5}.xl\:g-col-6{grid-column:auto/span 6}.xl\:g-col-7{grid-column:auto/span 7}.xl\:g-col-8{grid-column:auto/span 8}.xl\:g-col-9{grid-column:auto/span 9}.xl\:g-col-10{grid-column:auto/span 10}.xl\:g-col-11{grid-column:auto/span 11}.xl\:g-col-12{grid-column:auto/span 12}.xl\:g-start-1{grid-column-start:1}.xl\:g-start-2{grid-column-start:2}.xl\:g-start-3{grid-column-start:3}.xl\:g-start-4{grid-column-start:4}.xl\:g-start-5{grid-column-start:5}.xl\:g-start-6{grid-column-start:6}.xl\:g-start-7{grid-column-start:7}.xl\:g-start-8{grid-column-start:8}.xl\:g-start-9{grid-column-start:9}.xl\:g-start-10{grid-column-start:10}.xl\:g-start-11{grid-column-start:11}}@media (min-width:1536px){.\32 xl\:g-col-1{grid-column:auto/span 1}.\32 xl\:g-col-2{grid-column:auto/span 2}.\32 xl\:g-col-3{grid-column:auto/span 3}.\32 xl\:g-col-4{grid-column:auto/span 4}.\32 xl\:g-col-5{grid-column:auto/span 5}.\32 xl\:g-col-6{grid-column:auto/span 6}.\32 xl\:g-col-7{grid-column:auto/span 7}.\32 xl\:g-col-8{grid-column:auto/span 8}.\32 xl\:g-col-9{grid-column:auto/span 9}.\32 xl\:g-col-10{grid-column:auto/span 10}.\32 xl\:g-col-11{grid-column:auto/span 11}.\32 xl\:g-col-12{grid-column:auto/span 12}.\32 xl\:g-start-1{grid-column-start:1}.\32 xl\:g-start-2{grid-column-start:2}.\32 xl\:g-start-3{grid-column-start:3}.\32 xl\:g-start-4{grid-column-start:4}.\32 xl\:g-start-5{grid-column-start:5}.\32 xl\:g-start-6{grid-column-start:6}.\32 xl\:g-start-7{grid-column-start:7}.\32 xl\:g-start-8{grid-column-start:8}.\32 xl\:g-start-9{grid-column-start:9}.\32 xl\:g-start-10{grid-column-start:10}.\32 xl\:g-start-11{grid-column-start:11}}.grid-cols-subgrid{grid-template-columns:subgrid}.grid-fill{--bs-gap:1.5rem;gap:var(--bs-gap);grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:row;display:grid}}@layer content{.list-unstyled,.list-inline{padding-inline-start:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-inline-end:var(--bs-list-inline-padding,var(--bs-spacer)/2)}.initialism{font-size:var(--bs-initialism-font-size,var(--bs-font-size-xs));text-transform:uppercase}.blockquote{--bs-blockquote-gap:calc(var(--bs-spacer) / 2);--bs-blockquote-padding-x:var(--bs-spacer);--bs-blockquote-margin-y:1rem;--bs-blockquote-font-size:var(--bs-font-size-md);--bs-blockquote-border-width:.25rem;--bs-blockquote-border-color:var(--bs-border-color);--bs-blockquote-footer-font-size:var(--bs-font-size-sm);--bs-blockquote-footer-color:var(--bs-fg-3);gap:var(--bs-blockquote-gap);margin-bottom:var(--bs-blockquote-margin-y);font-size:var(--bs-blockquote-font-size);border-inline-start:var(--bs-blockquote-border-width) solid var(--bs-blockquote-border-color);flex-direction:column;padding-inline-start:var(--bs-blockquote-padding-x);display:flex}.blockquote>*,figure.blockquote blockquote{margin-bottom:0}.blockquote-footer{font-size:var(--bs-blockquote-footer-font-size);color:var(--bs-blockquote-footer-color)}.blockquote-footer:before{content:"— "}.table{--bs-table-cell-padding-y:.5rem;--bs-table-cell-padding-x:.5rem;--bs-table-cell-vertical-align:top;--bs-table-color:var(--bs-fg-body);--bs-table-bg:var(--bs-bg-body);--bs-table-accent-bg:transparent;--bs-table-border-width:var(--bs-border-width);--bs-table-border-color:var(--bs-border-color);--bs-table-group-separator-color:currentcolor;--bs-table-striped-color:var(--bs-table-color);--bs-table-striped-bg-factor:5%;--bs-table-striped-bg:color-mix(in srgb, var(--bs-table-color) var(--bs-table-striped-bg-factor), transparent);--bs-table-active-color:var(--bs-table-color);--bs-table-active-bg-factor:10%;--bs-table-active-bg:color-mix(in srgb, var(--bs-table-color) var(--bs-table-active-bg-factor), transparent);--bs-table-hover-color:var(--bs-table-color);--bs-table-hover-bg-factor:7.5%;--bs-table-hover-bg:color-mix(in srgb, var(--bs-table-color) var(--bs-table-hover-bg-factor), transparent);--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;width:100%;margin-bottom:var(--bs-spacer);vertical-align:var(--bs-table-cell-vertical-align);border-color:var(--bs-theme-border,var(--bs-table-border-color))}.table>:not(caption)>*>*{padding:var(--bs-table-cell-padding-y) var(--bs-table-cell-padding-x);color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-theme-fg,var(--bs-table-color))));background-color:var(--bs-theme-bg-subtle,var(--bs-table-bg));border-block-end-width:var(--bs-table-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-theme-bg-subtle,var(--bs-table-accent-bg))))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-block-start:calc(var(--bs-table-border-width) * 2) solid var(--bs-table-group-separator-color)}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{--bs-table-cell-padding-y:.25rem;--bs-table-cell-padding-x:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-table-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-table-border-width)}.table-borderless>:not(caption)>*>*{border-block-end-width:0}.table-borderless>:not(:first-child){border-block-start-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*,.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-theme-fg,var(--bs-table-striped-color));--bs-table-bg-type:color-mix(in srgb, var(--bs-theme-fg,var(--bs-table-color)) var(--bs-table-striped-bg-factor), transparent)}.table-active{--bs-table-color-state:var(--bs-theme-fg,var(--bs-table-active-color));--bs-table-bg-state:color-mix(in srgb, var(--bs-theme-fg,var(--bs-table-color)) var(--bs-table-active-bg-factor), transparent)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-theme-fg,var(--bs-table-hover-color));--bs-table-bg-state:color-mix(in srgb, var(--bs-theme-fg,var(--bs-table-color)) var(--bs-table-hover-bg-factor), transparent)}.table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto;container-type:inline-size}.sm\:table-responsive{container-type:inline-size}@media not (min-width:576px){.sm\:table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}}.md\:table-responsive{container-type:inline-size}@media not (min-width:768px){.md\:table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}}.lg\:table-responsive{container-type:inline-size}@media not (min-width:1024px){.lg\:table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}}.xl\:table-responsive{container-type:inline-size}@media not (min-width:1280px){.xl\:table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}}.\32 xl\:table-responsive{container-type:inline-size}@media not (min-width:1536px){.\32 xl\:table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}}.table-stacked>thead{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.table-stacked>tbody>tr{padding-block:var(--bs-table-cell-padding-y);display:block}.table-stacked>tbody>tr+tr{border-block-start:var(--bs-table-border-width) solid var(--bs-table-border-color)}.table-stacked>tbody>tr>td{padding:calc(var(--bs-table-cell-padding-y) * .25) calc(var(--bs-table-cell-padding-x) * 2);border:0;display:block}.table-stacked>tbody>tr>td:first-child{font-weight:var(--bs-font-weight-bold)}.table-stacked>tbody>tr>td[data-cell]:not(:first-child):before{font-weight:var(--bs-font-weight-semibold);content:attr(data-cell);display:block}.table-stacked>tbody>tr>td:not(:first-child)+td:before{margin-block-start:.25rem}@container (width<576px){.sm\:table-stacked>thead{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sm\:table-stacked>tbody>tr{padding-block:var(--bs-table-cell-padding-y);display:block}.sm\:table-stacked>tbody>tr+tr{border-block-start:var(--bs-table-border-width) solid var(--bs-table-border-color)}.sm\:table-stacked>tbody>tr>td{padding:calc(var(--bs-table-cell-padding-y) * .25) calc(var(--bs-table-cell-padding-x) * 2);border:0;display:block}.sm\:table-stacked>tbody>tr>td:first-child{font-weight:var(--bs-font-weight-bold)}.sm\:table-stacked>tbody>tr>td[data-cell]:not(:first-child):before{font-weight:var(--bs-font-weight-semibold);content:attr(data-cell);display:block}.sm\:table-stacked>tbody>tr>td:not(:first-child)+td:before{margin-block-start:.25rem}}@container (width<768px){.md\:table-stacked>thead{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.md\:table-stacked>tbody>tr{padding-block:var(--bs-table-cell-padding-y);display:block}.md\:table-stacked>tbody>tr+tr{border-block-start:var(--bs-table-border-width) solid var(--bs-table-border-color)}.md\:table-stacked>tbody>tr>td{padding:calc(var(--bs-table-cell-padding-y) * .25) calc(var(--bs-table-cell-padding-x) * 2);border:0;display:block}.md\:table-stacked>tbody>tr>td:first-child{font-weight:var(--bs-font-weight-bold)}.md\:table-stacked>tbody>tr>td[data-cell]:not(:first-child):before{font-weight:var(--bs-font-weight-semibold);content:attr(data-cell);display:block}.md\:table-stacked>tbody>tr>td:not(:first-child)+td:before{margin-block-start:.25rem}}@container (width<1024px){.lg\:table-stacked>thead{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.lg\:table-stacked>tbody>tr{padding-block:var(--bs-table-cell-padding-y);display:block}.lg\:table-stacked>tbody>tr+tr{border-block-start:var(--bs-table-border-width) solid var(--bs-table-border-color)}.lg\:table-stacked>tbody>tr>td{padding:calc(var(--bs-table-cell-padding-y) * .25) calc(var(--bs-table-cell-padding-x) * 2);border:0;display:block}.lg\:table-stacked>tbody>tr>td:first-child{font-weight:var(--bs-font-weight-bold)}.lg\:table-stacked>tbody>tr>td[data-cell]:not(:first-child):before{font-weight:var(--bs-font-weight-semibold);content:attr(data-cell);display:block}.lg\:table-stacked>tbody>tr>td:not(:first-child)+td:before{margin-block-start:.25rem}}@container (width<1280px){.xl\:table-stacked>thead{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.xl\:table-stacked>tbody>tr{padding-block:var(--bs-table-cell-padding-y);display:block}.xl\:table-stacked>tbody>tr+tr{border-block-start:var(--bs-table-border-width) solid var(--bs-table-border-color)}.xl\:table-stacked>tbody>tr>td{padding:calc(var(--bs-table-cell-padding-y) * .25) calc(var(--bs-table-cell-padding-x) * 2);border:0;display:block}.xl\:table-stacked>tbody>tr>td:first-child{font-weight:var(--bs-font-weight-bold)}.xl\:table-stacked>tbody>tr>td[data-cell]:not(:first-child):before{font-weight:var(--bs-font-weight-semibold);content:attr(data-cell);display:block}.xl\:table-stacked>tbody>tr>td:not(:first-child)+td:before{margin-block-start:.25rem}}@container (width<1536px){.\32 xl\:table-stacked>thead{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.\32 xl\:table-stacked>tbody>tr{padding-block:var(--bs-table-cell-padding-y);display:block}.\32 xl\:table-stacked>tbody>tr+tr{border-block-start:var(--bs-table-border-width) solid var(--bs-table-border-color)}.\32 xl\:table-stacked>tbody>tr>td{padding:calc(var(--bs-table-cell-padding-y) * .25) calc(var(--bs-table-cell-padding-x) * 2);border:0;display:block}.\32 xl\:table-stacked>tbody>tr>td:first-child{font-weight:var(--bs-font-weight-bold)}.\32 xl\:table-stacked>tbody>tr>td[data-cell]:not(:first-child):before{font-weight:var(--bs-font-weight-semibold);content:attr(data-cell);display:block}.\32 xl\:table-stacked>tbody>tr>td:not(:first-child)+td:before{margin-block-start:.25rem}}.img-fluid{max-width:100%;height:auto}.img-thumbnail{--bs-thumbnail-padding:.25rem;--bs-thumbnail-bg:var(--bs-bg-body);--bs-thumbnail-border-width:var(--bs-border-width);--bs-thumbnail-border-color:var(--bs-border-color);--bs-thumbnail-border-radius:var(--bs-radius-5);--bs-thumbnail-box-shadow:var(--bs-box-shadow-sm);padding:var(--bs-thumbnail-padding);background-color:var(--bs-thumbnail-bg);border:var(--bs-thumbnail-border-width) solid var(--bs-thumbnail-border-color);border-radius:var(--bs-thumbnail-border-radius);box-shadow:var(--bs-thumbnail-box-shadow);max-width:100%;height:auto}.figure{--bs-figure-gap:calc(var(--bs-spacer) * .5);--bs-figure-caption-font-size:var(--bs-font-size-sm);--bs-figure-caption-color:var(--bs-fg-3);gap:var(--bs-figure-gap);flex-direction:column;display:flex}.figure-caption{font-size:var(--bs-figure-caption-font-size);color:var(--bs-figure-caption-color)}.prose{--bs-content-font-size:1rem;--bs-content-line-height:1.5;--bs-content-gap:calc(var(--bs-content-font-size) * var(--bs-content-line-height));--bs-heading-color:var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-white));gap:var(--bs-content-gap);max-width:1000px;font-size:var(--bs-content-font-size);line-height:var(--bs-content-line-height);flex-direction:column;margin-inline:auto;display:flex;position:relative}@media (min-width:1024px){.prose{--bs-content-font-size:var(--bs-font-size-md);--bs-content-line-height:1.625}}.prose :where(p,ul,ol,dl,pre,table,blockquote):not(:where(.not-prose,.not-prose *)){margin-block:0}.prose :where(ul,ol):not([class],:where(.not-prose,.not-prose *)) li:not(:last-child){margin-bottom:calc(var(--bs-content-gap) / 4)}.prose :where(li ul,li ol):not(:where(.not-prose,.not-prose *)){margin-top:calc(var(--bs-content-gap) / 4)}.prose :where(hr):not(:where(.not-prose,.not-prose *)){margin:calc(var(--bs-content-gap) * 1.5) 0;border:0;border-block-start:var(--bs-border-width) solid var(--bs-hr-border-color)}.prose :where(h1,h2,h3,h4,h5,h6):not([class],:where(.not-prose,.not-prose *)){margin-top:0;margin-bottom:calc(var(--bs-content-gap) / -2);font-weight:500;line-height:1.25}.prose :where(h1,h2,h3,h4,h5,h6):not([class],:where(.not-prose,.not-prose *)) code{color:inherit;font-weight:600}.prose :where(h1,h2):not(:first-child,:where(.not-prose,.not-prose *)){margin-top:calc(var(--bs-content-gap) * .75)}.prose :where(h3,h4,h5,h6):not(:first-child,:where(.not-prose,.not-prose *)){margin-top:calc(var(--bs-content-gap) * .5)}.prose :where(h1):not(:where(.not-prose,.not-prose *)){font-size:2.25em;line-height:1.1}.prose :where(h2):not(:where(.not-prose,.not-prose *)){font-size:1.75em}.prose :where(h3):not(:where(.not-prose,.not-prose *)){font-size:1.5em}.prose :where(h4):not(:where(.not-prose,.not-prose *)){font-size:1.25em}.prose :where(h5):not(:where(.not-prose,.not-prose *)){font-size:1.125em}.prose :where(h6):not(:where(.not-prose,.not-prose *)){font-size:1em}.prose :where(a:not([class])):not(:where(.not-prose,.not-prose *)){color:var(--bs-link-color);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--bs-link-color) 25%, transparent);text-decoration-color:color-mix(in srgb, var(--bs-link-color) 25%, transparent);text-underline-offset:4px;transition:text-decoration-color .1s ease-in-out}@media (prefers-reduced-motion:reduce){.prose :where(a:not([class])):not(:where(.not-prose,.not-prose *)){transition:none}}.prose :where(a:not([class])):not(:where(.not-prose,.not-prose *)):hover{-webkit-text-decoration-color:var(--bs-link-hover-color);text-decoration-color:var(--bs-link-hover-color)}.prose :where(img):not(:where(.not-prose,.not-prose *)){max-width:100%}.prose :where(blockquote):not(:where(.not-prose,.not-prose *)){border-inline-start:4px solid var(--bs-border-color);margin:0;padding-inline-start:calc(var(--bs-content-gap) / 2)}.prose :where(table):not(:where(.not-prose,.not-prose *)){border-spacing:0;border-collapse:collapse;width:100%}.prose :where(table:not([class])):not(:where(.not-prose,.not-prose *)) td,.prose :where(table:not([class])):not(:where(.not-prose,.not-prose *)) th{text-align:inherit;border:1px solid var(--bs-border-color);padding:6px 12px}.prose :where(dt):not(:where(.not-prose,.not-prose *)){font-weight:500}.prose :where(video,img):not(:where(.not-prose,.not-prose *)){max-width:100%}}@layer forms{.form-label,.col-form-label{font-size:var(--bs-label-font-size,inherit);font-style:var(--bs-label-font-style,inherit);font-weight:var(--bs-label-font-weight,500);color:var(--bs-label-color,var(--bs-fg-body))}.form-label{margin-bottom:var(--bs-label-margin-bottom,calc(var(--bs-spacer) / 2))}.col-form-label{--bs-label-padding-y:calc(var(--bs-btn-input-padding-y) + var(--bs-border-width));padding-block:var(--bs-label-padding-y);margin-bottom:0}.col-form-label-lg{--bs-label-padding-y:calc(var(--bs-btn-input-lg-padding-y) + var(--bs-border-width));font-size:var(--bs-btn-input-lg-font-size)}.col-form-label-sm{--bs-label-padding-y:calc(var(--bs-btn-input-sm-padding-y) + var(--bs-border-width));font-size:var(--bs-btn-input-sm-font-size)}.form-text{--bs-form-text-margin-top:.25rem;--bs-form-text-font-size:var(--bs-font-size-sm);--bs-form-text-color:var(--bs-fg-2);font-size:var(--bs-form-text-font-size);font-style:var(--bs-form-text-font-style);font-weight:var(--bs-form-text-font-weight);color:var(--bs-form-text-color)}.form-control{--bs-control-min-height:var(--bs-btn-input-min-height);--bs-control-padding-y:var(--bs-btn-input-padding-y);--bs-control-padding-x:var(--bs-btn-input-padding-x);--bs-control-font-size:var(--bs-btn-input-font-size);--bs-control-line-height:var(--bs-btn-input-line-height);--bs-control-fg:var(--bs-btn-input-fg);--bs-control-bg:var(--bs-btn-input-bg);--bs-control-border-width:var(--bs-border-width);--bs-control-border-color:var(--bs-border-color);--bs-control-border-radius:var(--bs-radius-5);--bs-control-box-shadow:var(--bs-box-shadow-inset);--bs-control-action-bg:var(--bs-bg-1);--bs-control-action-hover-bg:var(--bs-bg-2);--bs-control-transition-property:border-color, box-shadow;--bs-control-transition-timing:.15s ease-in-out;--bs-control-transition:var(--bs-control-transition-property) var(--bs-control-transition-timing);--bs-control-placeholder-color:var(--bs-fg-3);--bs-control-disabled-color:var(--bs-control-fg);--bs-control-disabled-bg:var(--bs-bg-2);--bs-control-disabled-border-color:var(--bs-control-border-color);--bs-control-select-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2300000080' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");--bs-control-select-bg-position:right .75rem center;--bs-control-select-bg-size:16px 12px;--bs-control-select-bg-dark:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff80' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");width:100%;min-height:var(--bs-control-min-height);padding:var(--bs-control-padding-y) var(--bs-control-padding-x);font-size:var(--bs-control-font-size);line-height:var(--bs-control-line-height);color:var(--bs-control-fg);appearance:none;background-color:var(--bs-control-bg);border:var(--bs-control-border-width) solid var(--bs-control-border-color);border-radius:var(--bs-control-border-radius);box-shadow:var(--bs-control-box-shadow);transition:var(--bs-control-transition);background-clip:padding-box;display:flex}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control:focus-visible{--bs-focus-ring-offset:-1px;outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-control::placeholder{color:var(--bs-control-placeholder-color);opacity:1}.form-control:disabled{color:var(--bs-control-disabled-color);background-color:var(--bs-control-disabled-bg);border-color:var(--bs-control-disabled-border-color);opacity:1}.form-control::-webkit-datetime-edit{height:1.5rem;margin-bottom:-.125rem;padding:0;display:block}.form-control::-webkit-datetime-edit-fields-wrapper{height:1.5rem}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled,[readonly]){cursor:pointer}.form-control::file-selector-button{min-height:var(--bs-control-min-height);padding:var(--bs-control-padding-y) var(--bs-control-padding-x);margin:calc(var(--bs-control-padding-y) * -1) calc(var(--bs-control-padding-x) * -1);color:var(--bs-control-fg);pointer-events:none;background-color:var(--bs-control-action-bg);border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-control-border-width);transition:var(--bs-control-transition);border-radius:0;margin-inline-end:var(--bs-control-padding-x)}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled,[readonly])::file-selector-button{background-color:var(--bs-control-action-hover-bg)}.form-control-plaintext{width:100%;padding:var(--bs-control-padding-y) 0;line-height:var(--bs-control-line-height);color:var(--bs-control-fg);border:solid #0000;border-width:var(--bs-control-border-width) 0;background-color:#0000;margin-bottom:0;display:block}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-inline:0}select.form-control,.form-control-caret{background-image:var(--bs-control-select-bg);background-repeat:no-repeat;background-position:var(--bs-control-select-bg-position);background-size:var(--bs-control-select-bg-size);padding-inline-end:calc(var(--bs-control-padding-x) * 3)}select.form-control[multiple],select.form-control[size]:not([size="1"]),.form-control-caret[multiple],.form-control-caret[size]:not([size="1"]){background-image:none;padding-inline-end:var(--bs-control-padding-x)}@media (prefers-color-scheme:dark){select.form-control,.form-control-caret{background-image:var(--bs-control-select-bg-dark)}}.form-control-sm{--bs-control-min-height:var(--bs-btn-input-sm-min-height);--bs-control-padding-y:var(--bs-btn-input-sm-padding-y);--bs-control-padding-x:var(--bs-btn-input-sm-padding-x);--bs-control-font-size:var(--bs-btn-input-sm-font-size);--bs-control-line-height:var(--bs-btn-input-sm-line-height);--bs-control-border-radius:var(--bs-btn-input-sm-border-radius)}.form-control-lg{--bs-control-min-height:var(--bs-btn-input-lg-min-height);--bs-control-padding-y:var(--bs-btn-input-lg-padding-y);--bs-control-padding-x:var(--bs-btn-input-lg-padding-x);--bs-control-font-size:var(--bs-btn-input-lg-font-size);--bs-control-line-height:var(--bs-btn-input-lg-line-height);--bs-control-border-radius:var(--bs-btn-input-lg-border-radius)}.form-control-color{width:var(--bs-control-min-height);padding:var(--bs-control-padding-y)}.form-control-color:not(:disabled,[readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border-radius:var(--bs-radius-5);border:0!important}.form-control-color::-webkit-color-swatch{border-radius:var(--bs-radius-5);border:0!important}.form-ghost{width:100%;font:inherit;color:inherit;appearance:none;background:0 0;border:0;padding:0;display:block}.form-ghost:focus{outline:0}.form-ghost::placeholder{color:var(--bs-fg-3);opacity:1}.form-ghost:disabled{color:var(--bs-fg-4);cursor:not-allowed}.check{--bs-check-size:1.25rem;--bs-check-margin-block:.125rem;--bs-check-bg:var(--bs-bg-body);--bs-check-border-color:var(--bs-border-color);--bs-check-border-radius:.375rem;--bs-check-checked-bg:var(--bs-control-checked-bg);--bs-check-checked-border-color:var(--bs-control-checked-border-color);--bs-check-indeterminate-bg:var(--bs-control-checked-bg);--bs-check-indeterminate-border-color:var(--bs-control-checked-border-color);--bs-check-active-bg:var(--bs-control-active-bg);--bs-check-active-border-color:var(--bs-control-active-border-color);--bs-check-disabled-bg:var(--bs-control-disabled-bg);--bs-check-disabled-opacity:var(--bs-control-disabled-opacity);margin-block:var(--bs-check-margin-block);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}.check :where(svg,input){width:var(--bs-check-size);height:var(--bs-check-size);flex-shrink:0;grid-row-start:1;grid-column-start:1}.check :where(input){appearance:none;background-color:var(--bs-theme-bg,var(--bs-check-bg));border:1px solid var(--bs-theme-bg,var(--bs-check-border-color));border-radius:.3em}.check :where(input:checked,input:indeterminate){background-color:var(--bs-theme-bg,var(--bs-check-checked-bg));border-color:var(--bs-theme-bg,var(--bs-check-checked-border-color))}.check :where(input:focus-visible){outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-focus-ring-offset:-1px}.check:has(input:checked) .checked,.check:has(input:indeterminate) .indeterminate{color:var(--bs-theme-contrast,var(--bs-primary-contrast));stroke:currentColor;display:block}.check:has(input:disabled){--bs-check-bg:var(--bs-check-disabled-bg)}.check:has(input:disabled)~label{color:var(--bs-fg-3);cursor:default}.check:has(input:disabled:checked){opacity:var(--bs-check-disabled-opacity)}.check :where(svg){pointer-events:none}.check :where(svg path){display:none}.check-sm{--bs-check-size:1rem}.check-lg{--bs-check-size:1.5rem;--bs-check-margin-block:0}.radio{--bs-radio-size:1.25rem;--bs-radio-margin-block:.125rem;--bs-radio-bg:var(--bs-bg-body);--bs-radio-border-color:var(--bs-border-color);--bs-radio-checked-bg:var(--bs-control-checked-bg);--bs-radio-checked-border-color:var(--bs-control-checked-border-color);--bs-radio-disabled-bg:var(--bs-control-disabled-bg);--bs-radio-disabled-opacity:var(--bs-control-disabled-opacity);width:var(--bs-radio-size);height:var(--bs-radio-size);margin-block:var(--bs-radio-margin-block);appearance:none;background-color:var(--bs-theme-bg,var(--bs-radio-bg));border:1px solid var(--bs-theme-bg,var(--bs-radio-border-color));border-radius:50%;flex-shrink:0;position:relative}.radio:checked{color:var(--bs-theme-contrast,var(--bs-primary-contrast));background-color:var(--bs-theme-bg,var(--bs-radio-checked-bg));border-color:var(--bs-theme-bg,var(--bs-radio-checked-border-color))}.radio:checked:before{content:"";background-color:currentColor;border-radius:50%;position:absolute;inset:.25rem}.radio:disabled{--bs-radio-bg:var(--bs-radio-disabled-bg)}.radio:disabled~label{color:var(--bs-secondary-fg);cursor:default}.radio:focus-visible{outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.radio-sm{--bs-radio-size:1rem}.radio-lg{--bs-radio-size:1.5rem;--bs-radio-margin-block:0}.switch{--bs-switch-height:1.25rem;--bs-switch-width:calc(var(--bs-switch-height) * 1.5);--bs-switch-padding:.0625rem;--bs-switch-margin-block:.125rem;--bs-switch-bg:var(--bs-bg-3);--bs-switch-border-width:var(--bs-border-width);--bs-switch-border-color:var(--bs-border-color);--bs-switch-indicator-bg:var(--bs-white);--bs-switch-indicator-width:calc(var(--bs-switch-height) - var(--bs-switch-padding) * 2 - var(--bs-switch-border-width) * 2);--bs-switch-indicator-height:calc(var(--bs-switch-height) - var(--bs-switch-padding) * 2 - var(--bs-switch-border-width) * 2);--bs-switch-checked-bg:var(--bs-control-checked-bg);--bs-switch-checked-border-color:var(--bs-switch-checked-bg);--bs-switch-checked-indicator-bg:var(--bs-white);--bs-switch-disabled-bg:var(--bs-control-disabled-bg);--bs-switch-disabled-indicator-bg:var(--bs-fg-3);width:var(--bs-switch-width);height:var(--bs-switch-height);padding:var(--bs-switch-padding);margin-block:var(--bs-switch-margin-block);background-color:var(--bs-switch-bg);border:var(--bs-switch-border-width) solid var(--bs-switch-border-color);border-radius:10rem;flex-shrink:0;transition:background-color .15s ease-in-out;position:relative;box-shadow:inset 0 1px 2px #0000000d}.switch:before{inset-block:var(--bs-switch-padding);width:var(--bs-switch-indicator-width);height:var(--bs-switch-indicator-height);content:"";background-color:var(--bs-theme-contrast,var(--bs-switch-indicator-bg));border-radius:10rem;transition:inset-inline-start .15s ease-in-out;position:absolute;inset-inline-start:var(--bs-switch-padding);box-shadow:0 1px 2px #0000001a}.switch input{appearance:none;background-color:#0000;outline:0;position:absolute;inset:0}.switch:focus-within{outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.switch:has(input:checked){background-color:var(--bs-theme-bg,var(--bs-switch-checked-bg));border-color:var(--bs-theme-bg,var(--bs-switch-checked-border-color))}.switch:has(input:checked):before{inset-inline-start:calc(100% - var(--bs-switch-indicator-width) - var(--bs-switch-padding))}.switch:has(input:disabled){--bs-switch-bg:var(--bs-switch-disabled-bg);--bs-switch-indicator-bg:var(--bs-switch-disabled-indicator-bg)}.switch:has(input:disabled):before{opacity:.4}.switch:has(input:disabled)~label{color:var(--bs-secondary-fg);cursor:default}.switch-sm{--bs-switch-height:1rem}.switch-lg{--bs-switch-height:1.5rem;--bs-switch-margin-block:0}.form-range{--bs-range-track-width:100%;--bs-range-track-height:.5rem;--bs-range-track-cursor:pointer;--bs-range-track-bg:var(--bs-bg-3);--bs-range-track-border-radius:1rem;--bs-range-track-box-shadow:var(--bs-box-shadow-inset);--bs-range-thumb-width:1rem;--bs-range-thumb-height:var(--bs-range-thumb-width);--bs-range-thumb-bg:var(--bs-primary-base);--bs-range-thumb-border:var(--bs-range-thumb-bg) solid var(--bs-border-color);--bs-range-thumb-border-radius:1rem;--bs-range-thumb-box-shadow:0 1px 2px #00000013, 0 2px 4px #00000013;--bs-range-thumb-active-bg:color-mix(in oklch, var(--bs-primary-base) 70%, var(--bs-bg-body));--bs-range-thumb-disabled-bg:var(--bs-fg-3);--bs-range-thumb-transition-property:background-color, border-color, box-shadow;--bs-range-thumb-transition-timing:.15s ease-in-out;--bs-range-thumb-transition:var(--bs-range-thumb-transition-property) var(--bs-range-thumb-transition-timing);width:100%;height:calc(var(--bs-range-thumb-height) + var(--bs-focus-ring-width) * 2);appearance:none;background-color:#0000;padding:0}.form-range:hover::-webkit-slider-thumb{outline:var(--bs-focus-ring-width) solid color-mix(in oklch, var(--bs-primary-focus-ring), transparent)}.form-range:hover::-moz-range-thumb{outline:var(--bs-focus-ring-width) solid color-mix(in oklch, var(--bs-primary-focus-ring), transparent)}.form-range:focus-visible{outline:0}.form-range:focus-visible::-webkit-slider-thumb{outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-focus-ring-offset:0}.form-range:focus-visible::-moz-range-thumb{outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-focus-ring-offset:0}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:var(--bs-range-thumb-width);height:var(--bs-range-thumb-height);appearance:none;background-color:var(--bs-range-thumb-bg);background-image:var(--bs-gradient);border:var(--bs-range-thumb-border);border-radius:var(--bs-range-thumb-border-radius);box-shadow:var(--bs-range-thumb-box-shadow);-webkit-transition:var(--bs-range-thumb-transition);transition:var(--bs-range-thumb-transition)}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:var(--bs-range-thumb-active-bg);background-image:var(--bs-gradient)}.form-range::-webkit-slider-thumb{margin-top:calc((var(--bs-range-track-height) - var(--bs-range-thumb-height)) * .5)}.form-range::-moz-range-thumb{width:var(--bs-range-thumb-width);height:var(--bs-range-thumb-height);appearance:none;background-color:var(--bs-range-thumb-bg);background-image:var(--bs-gradient);border:var(--bs-range-thumb-border);border-radius:var(--bs-range-thumb-border-radius);box-shadow:var(--bs-range-thumb-box-shadow);-moz-transition:var(--bs-range-thumb-transition);transition:var(--bs-range-thumb-transition)}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:var(--bs-range-thumb-active-bg);background-image:var(--bs-gradient)}.form-range::-webkit-slider-runnable-track{width:var(--bs-range-track-width);height:var(--bs-range-track-height);color:#0000;cursor:var(--bs-range-track-cursor);background-color:var(--bs-range-track-bg);border-radius:var(--bs-range-track-border-radius);box-shadow:var(--bs-range-track-box-shadow);border-color:#0000}.form-range::-moz-range-track{width:var(--bs-range-track-width);height:var(--bs-range-track-height);color:#0000;cursor:var(--bs-range-track-cursor);background-color:var(--bs-range-track-bg);border-radius:var(--bs-range-track-border-radius);box-shadow:var(--bs-range-track-box-shadow);border-color:#0000}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-range-thumb-disabled-bg)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-range-thumb-disabled-bg)}.form-floating{--bs-form-floating-height:calc(3.5rem + var(--bs-border-width) * 2);--bs-form-floating-line-height:1.25;--bs-form-floating-padding-x:var(--bs-btn-input-padding-x);--bs-form-floating-padding-y:1rem;--bs-form-floating-input-padding-t:1.625rem;--bs-form-floating-input-padding-b:.625rem;--bs-form-floating-label-height:1.5em;--bs-form-floating-label-opacity:.65;--bs-form-floating-label-transform:scale(.85) translateY(-.5rem) translateX(.15rem);--bs-form-floating-label-disabled-color:var(--bs-fg-3);--bs-form-floating-transition-property:opacity, transform;--bs-form-floating-transition-timing:.1s ease-in-out;--bs-form-floating-transition:var(--bs-form-floating-transition-property) var(--bs-form-floating-transition-timing);position:relative}.form-floating>label{z-index:2;max-width:100%;height:100%;padding:var(--bs-form-floating-padding-y) var(--bs-form-floating-padding-x);color:color-mix(in oklch, var(--bs-fg-body) var(--bs-form-floating-label-opacity), transparent);text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-input-btn-border-width) solid transparent;transform-origin:0 0;transition:var(--bs-form-floating-transition);align-items:center;display:flex;position:absolute;inset-block-start:0;inset-inline-start:0;overflow:hidden}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{height:var(--bs-form-floating-height);min-height:var(--bs-form-floating-height);padding:var(--bs-form-floating-padding-y) var(--bs-form-floating-padding-x);line-height:var(--bs-form-floating-line-height)}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:#0000}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),:-webkit-any(.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill){padding-top:var(--bs-form-floating-input-padding-t);padding-bottom:var(--bs-form-floating-input-padding-b)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),:is(.form-floating>.form-control:autofill,.form-floating>.form-control-plaintext:autofill){padding-top:var(--bs-form-floating-input-padding-t);padding-bottom:var(--bs-form-floating-input-padding-b)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label{transform:var(--bs-form-floating-label-transform)}.form-floating>.form-control:-webkit-autofill~label{transform:var(--bs-form-floating-label-transform)}.form-floating>textarea:focus~label:after,.form-floating>textarea:not(:placeholder-shown)~label:after{inset:var(--bs-form-floating-padding-y) calc(var(--bs-form-floating-padding-x) * .5);z-index:-1;height:var(--bs-form-floating-label-height);content:"";background-color:var(--bs-control-bg);border-radius:var(--bs-btn-input-border-radius);position:absolute}.form-floating>textarea:disabled~label:after{background-color:var(--bs-control-disabled-bg)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-control-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:var(--bs-form-floating-label-disabled-color)}.strength{--bs-strength-height:.375rem;--bs-strength-gap:.25rem;--bs-strength-margin-top:.25rem;--bs-strength-border-radius:var(--bs-radius-pill);--bs-strength-bg:var(--bs-bg-2);--bs-strength-color:var(--bs-bg-2);--bs-strength-weak-color:var(--bs-danger-bg);--bs-strength-fair-color:var(--bs-warning-bg);--bs-strength-good-color:var(--bs-info-bg);--bs-strength-strong-color:var(--bs-success-bg);gap:var(--bs-strength-gap);width:100%;margin-top:var(--bs-strength-margin-top);display:flex}.strength-segment{height:var(--bs-strength-height);background-color:var(--bs-strength-bg);border-radius:var(--bs-strength-border-radius);flex:1;transition:background-color .2s ease-in-out,width .3s ease-in-out}@media (prefers-reduced-motion:reduce){.strength-segment{transition:none}}.strength-segment.active{background-color:var(--bs-strength-color)}.strength[data-bs-strength=weak]{--bs-strength-color:var(--bs-strength-weak-color)}.strength[data-bs-strength=fair]{--bs-strength-color:var(--bs-strength-fair-color)}.strength[data-bs-strength=good]{--bs-strength-color:var(--bs-strength-good-color)}.strength[data-bs-strength=strong]{--bs-strength-color:var(--bs-strength-strong-color)}.strength-text{margin-top:var(--bs-strength-margin-top);font-size:var(--bs-font-size-xs);color:var(--bs-strength-color,var(--bs-fg-3));transition:color .2s ease-in-out;display:block}@media (prefers-reduced-motion:reduce){.strength-text{transition:none}}.strength-text:empty{display:none}.strength-bar{--bs-strength-height:.375rem;--bs-strength-gap:.25rem;--bs-strength-margin-top:.25rem;--bs-strength-border-radius:var(--bs-radius-pill);--bs-strength-bg:var(--bs-bg-2);--bs-strength-color:transparent;--bs-strength-weak-color:var(--bs-danger-bg);--bs-strength-fair-color:var(--bs-warning-bg);--bs-strength-good-color:var(--bs-info-bg);--bs-strength-strong-color:var(--bs-success-bg);--bs-strength-width:0%;width:100%;height:var(--bs-strength-height);margin-top:var(--bs-strength-margin-top);background-color:var(--bs-strength-bg);border-radius:var(--bs-strength-border-radius);overflow:hidden}.strength-bar:after{width:var(--bs-strength-width);content:"";background-color:var(--bs-strength-color);border-radius:var(--bs-strength-border-radius);height:100%;transition:background-color .2s ease-in-out,width .3s ease-in-out;display:block}@media (prefers-reduced-motion:reduce){.strength-bar:after{transition:none}}.strength-bar[data-bs-strength=weak]{--bs-strength-color:var(--bs-strength-weak-color);--bs-strength-width:25%}.strength-bar[data-bs-strength=fair]{--bs-strength-color:var(--bs-strength-fair-color);--bs-strength-width:50%}.strength-bar[data-bs-strength=good]{--bs-strength-color:var(--bs-strength-good-color);--bs-strength-width:75%}.strength-bar[data-bs-strength=strong]{--bs-strength-color:var(--bs-strength-strong-color);--bs-strength-width:100%}.form-adorn{--bs-form-adorn-gap:.375rem;--bs-form-adorn-icon-size:1rem;--bs-form-adorn-icon-color:var(--bs-fg-2);gap:var(--bs-form-adorn-gap);align-items:center}.form-adorn:focus-visible{outline:0}.form-adorn:focus-within{--bs-focus-ring-offset:-1px;border-color:var(--bs-focus-ring-color);outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-adorn>.form-ghost{flex:1;min-width:0}.form-adorn.form-adorn-end>.form-ghost{order:-1}.form-adorn-icon{color:var(--bs-form-adorn-icon-color);pointer-events:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.form-adorn-icon>svg{width:var(--bs-form-adorn-icon-size);height:var(--bs-form-adorn-icon-size)}.form-adorn-text{color:var(--bs-form-adorn-icon-color);pointer-events:none;-webkit-user-select:none;user-select:none;flex-shrink:0}.chip-input{--bs-chip-input-padding-y:.75rem;--bs-chip-input-padding-x:.75rem;--bs-chip-input-gap:.375rem;--bs-chip-input-ghost-min-width:5rem;--bs-control-fg:var(--bs-btn-input-fg);--bs-control-bg:var(--bs-btn-input-bg);--bs-control-border-width:var(--bs-border-width);--bs-control-border-color:var(--bs-border-color);--bs-control-border-radius:var(--bs-radius-5);gap:var(--bs-chip-input-gap);padding:var(--bs-chip-input-padding-y) var(--bs-chip-input-padding-x);color:var(--bs-control-fg);background-color:var(--bs-control-bg);border:var(--bs-control-border-width) solid var(--bs-control-border-color);border-radius:var(--bs-control-border-radius);flex-wrap:wrap;align-items:center;display:flex}.chip-input:focus-within{--bs-focus-ring-offset:-1px;border-color:var(--bs-focus-ring-color);outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.chip-input>.form-ghost{min-width:var(--bs-chip-input-ghost-min-width);flex:1 1 0;min-height:1.75rem}.chip-input.disabled,.chip-input:has(.form-ghost:disabled){cursor:not-allowed;background-color:var(--bs-bg-2);opacity:1}.chip-input.disabled:focus-within,.chip-input:has(.form-ghost:disabled):focus-within{border-color:var(--bs-control-border-color);outline:0}.chip-input.disabled>.chip,.chip-input:has(.form-ghost:disabled)>.chip{pointer-events:none;opacity:var(--bs-control-disabled-opacity)}.form-field{gap:.5rem;display:grid;position:relative}.form-field>label,.form-field>.form-label{justify-self:start;margin-bottom:0}.form-field:has(>.check,>.radio,>.switch){-moz-column-gap:.5rem;grid-template-columns:auto 1fr;align-items:start;column-gap:.5rem}.form-field:has(>.check,>.radio,>.switch)>.check,.form-field:has(>.check,>.radio,>.switch)>.radio,.form-field:has(>.check,>.radio,>.switch)>.switch{grid-column:1}.form-field:has(>.check,>.radio,>.switch)>:not(.check,.radio,.switch){grid-column:2}.form-field:has(>.check,>.radio,>.switch)>.form-label{grid-column:1/-1}.form-field-content{flex-direction:column;align-items:flex-start;display:flex}.form-field-card{padding:calc(var(--bs-spacer) * .75);cursor:pointer;border:var(--bs-border-width) solid transparent;border-radius:var(--bs-radius-7);position:relative}.form-field-card:hover{background-color:var(--bs-bg-1)}.form-field-card:has(:checked){background-color:var(--bs-bg-1);border-color:var(--bs-border-color)}.form-field-card label:before{content:"";position:absolute;inset:0}.form-group{gap:.5rem;display:grid}.form-group>label,.form-group>.form-label,.form-group>legend{justify-self:start;margin-bottom:0}}@layer components{.input-group{--bs-input-group-addon-padding-y:var(--bs-btn-input-padding-y);--bs-input-group-addon-padding-x:var(--bs-btn-input-padding-x);--bs-input-group-addon-font-size:var(--bs-btn-input-font-size);--bs-input-group-addon-line-height:var(--bs-btn-input-line-height);--bs-input-group-addon-color:var(--bs-fg-body);--bs-input-group-addon-bg:var(--bs-bg-2);--bs-input-group-addon-border-color:var(--bs-border-color);align-items:stretch;width:100%;display:flex;position:relative}.input-group>.form-control,.input-group>.form-floating{flex:auto;width:1%;min-width:0;position:relative}.input-group>.form-control:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group>.input-group-btn{z-index:2;position:relative}.input-group>.input-group-btn:focus{z-index:5}.input-group-text{padding:var(--bs-input-group-addon-padding-y) var(--bs-input-group-addon-padding-x);font-size:var(--bs-input-group-addon-font-size);line-height:var(--bs-input-group-addon-line-height);color:var(--bs-input-group-addon-color);text-align:center;white-space:nowrap;background-color:var(--bs-input-group-addon-bg);border:var(--bs-border-width) solid var(--bs-input-group-addon-border-color);border-radius:var(--bs-btn-input-border-radius);align-items:center;display:flex}.input-group-sm>.form-control,.input-group-sm>.input-group-text,.input-group-sm>.btn{min-height:var(--bs-btn-input-sm-min-height);padding:var(--bs-btn-input-sm-padding-y) var(--bs-btn-input-sm-padding-x);font-size:var(--bs-btn-input-sm-font-size);border-radius:var(--bs-btn-input-sm-border-radius)}.input-group-lg>.form-control,.input-group-lg>.input-group-text,.input-group-lg>.btn{min-height:var(--bs-btn-input-lg-min-height);padding:var(--bs-btn-input-lg-padding-y) var(--bs-btn-input-lg-padding-x);font-size:var(--bs-btn-input-lg-font-size);border-radius:var(--bs-btn-input-lg-border-radius)}.input-group>:not(:last-child,.menu-toggle-split,.menu,.input-group-ignore,.form-floating,:has(+:is(.menu,.input-group-ignore):last-child)),.input-group>.menu-toggle-split:nth-last-child(n+3),.input-group>.form-floating:not(:last-child)>.form-control,.input-group>.form-floating:not(:last-child)>.form-select{border-start-end-radius:0;border-end-end-radius:0}.input-group>:not(:first-child,.menu,.input-group-ignore){border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:calc(-1 * var(--bs-border-width))}.input-group>:first-child.input-group-ignore+:not(.menu,.input-group-ignore){border-start-start-radius:var(--bs-btn-input-border-radius);border-end-start-radius:var(--bs-btn-input-border-radius)}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-start-start-radius:0;border-end-start-radius:0}.otp{--bs-otp-size:var(--bs-btn-input-lg-min-height);--bs-otp-font-size:var(--bs-btn-input-font-size);--bs-otp-gap:.5rem;gap:var(--bs-otp-gap);display:inline-flex}.otp .form-control{width:var(--bs-otp-size);min-height:var(--bs-otp-size);font-size:var(--bs-otp-font-size);text-align:center;padding:0;font-weight:500;line-height:1}.otp .form-control::-webkit-outer-spin-button{appearance:none;margin:0}.otp .form-control::-webkit-inner-spin-button{appearance:none;margin:0}.otp .form-control[type=number]{appearance:textfield}.otp .form-control:focus,.otp .form-control:focus-visible{z-index:1}.otp.input-group{gap:0;width:auto}.otp.input-group .form-control{flex:none}.otp-separator{padding-inline:var(--bs-otp-gap);font-size:var(--bs-otp-font-size);color:var(--bs-fg-4);-webkit-user-select:none;user-select:none;align-items:center;display:flex}.combobox-toggle{width:100%;text-align:start;cursor:pointer;justify-content:space-between;align-items:center;gap:.5rem;padding-inline-end:var(--bs-control-padding-x);display:inline-flex}.combobox-toggle.show{background-color:var(--bs-bg-1)}.combobox-toggle:disabled,.combobox-toggle.disabled{cursor:not-allowed;opacity:.65}.combobox-value{text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;gap:.5rem;display:flex;overflow:hidden}.combobox-placeholder{color:color-mix(in oklch, currentcolor 65%, transparent)}.combobox-caret{flex-shrink:0;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.combobox-caret{transition:none}}.show>.combobox-caret{transform:rotate(180deg)}.combobox-toggle+.menu{--bs-menu-max-height:300px;--bs-menu-overflow-y:auto}.combobox-search{z-index:1;padding:var(--bs-menu-padding-x,.25rem);background-color:var(--bs-menu-bg,var(--bs-bg-body));position:sticky;top:0}.combobox-search-input{width:100%}.combobox-no-results{font-size:var(--bs-font-size-sm);color:var(--bs-fg-3);text-align:center;padding:1rem}.valid-feedback{width:100%;font-size:var(--bs-font-size-sm);color:var(--bs-success-fg);display:none}.tooltip.valid-tooltip{z-index:5;max-width:100%;padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-success-contrast);text-align:center;background-color:var(--bs-success-bg);opacity:1;border-radius:var(--bs-tooltip-border-radius);margin-top:.1rem;display:none;position:absolute;top:100%}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,:is([data-bs-validate~=valid] :user-valid~.valid-feedback,[data-bs-validate~=valid] :user-valid~.valid-tooltip){display:block}.form-control.is-valid{--bs-control-border-color:var(--bs-success-border)}.form-control.is-valid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-control-border-color:var(--bs-success-border)}[data-bs-validate~=valid] .form-control:user-valid{--bs-control-border-color:var(--bs-success-border)}[data-bs-validate~=valid] .form-control:user-valid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-control-border-color:var(--bs-success-border)}.check input.is-valid{--bs-check-border-color:var(--bs-success-border);--bs-check-checked-bg:var(--bs-success-bg);--bs-check-checked-border-color:var(--bs-success-bg)}.check input.is-valid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}[data-bs-validate~=valid] .check input:user-valid{--bs-check-border-color:var(--bs-success-border);--bs-check-checked-bg:var(--bs-success-bg);--bs-check-checked-border-color:var(--bs-success-bg)}[data-bs-validate~=valid] .check input:user-valid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-field:has(.check input.is-valid) label{color:var(--bs-success-fg)}.form-field:has(.check input.is-valid) .valid-feedback,.form-field:has(.check input.is-valid) .valid-tooltip{display:block}[data-bs-validate~=valid] .form-field:has(.check input:user-valid) label{color:var(--bs-success-fg)}:is([data-bs-validate~=valid] .form-field:has(.check input:user-valid) .valid-feedback,[data-bs-validate~=valid] .form-field:has(.check input:user-valid) .valid-tooltip){display:block}.radio.is-valid{--bs-radio-border-color:var(--bs-success-border);--bs-radio-checked-bg:var(--bs-success-bg);--bs-radio-checked-border-color:var(--bs-success-bg)}.radio.is-valid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}[data-bs-validate~=valid] .radio:user-valid{--bs-radio-border-color:var(--bs-success-border);--bs-radio-checked-bg:var(--bs-success-bg);--bs-radio-checked-border-color:var(--bs-success-bg)}[data-bs-validate~=valid] .radio:user-valid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-field:has(.radio.is-valid) label{color:var(--bs-success-fg)}.form-field:has(.radio.is-valid) .valid-feedback,.form-field:has(.radio.is-valid) .valid-tooltip{display:block}[data-bs-validate~=valid] .form-field:has(.radio:user-valid) label{color:var(--bs-success-fg)}:is([data-bs-validate~=valid] .form-field:has(.radio:user-valid) .valid-feedback,[data-bs-validate~=valid] .form-field:has(.radio:user-valid) .valid-tooltip){display:block}.switch:has(input.is-valid){--bs-switch-border-color:var(--bs-success-border);--bs-switch-checked-bg:var(--bs-success-bg);--bs-switch-checked-border-color:var(--bs-success-bg)}.switch:has(input.is-valid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}[data-bs-validate~=valid] .switch:has(input:user-valid){--bs-switch-border-color:var(--bs-success-border);--bs-switch-checked-bg:var(--bs-success-bg);--bs-switch-checked-border-color:var(--bs-success-bg)}[data-bs-validate~=valid] .switch:has(input:user-valid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-field:has(.switch input.is-valid) label{color:var(--bs-success-fg)}.form-field:has(.switch input.is-valid) .valid-feedback,.form-field:has(.switch input.is-valid) .valid-tooltip{display:block}[data-bs-validate~=valid] .form-field:has(.switch input:user-valid) label{color:var(--bs-success-fg)}:is([data-bs-validate~=valid] .form-field:has(.switch input:user-valid) .valid-feedback,[data-bs-validate~=valid] .form-field:has(.switch input:user-valid) .valid-tooltip){display:block}.chip-input:has(.form-ghost.is-valid){border-color:var(--bs-success-border)}.chip-input:has(.form-ghost.is-valid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset);border-color:var(--bs-success-border)}.chip-input:has(.form-ghost.is-valid)~.valid-feedback,.chip-input:has(.form-ghost.is-valid)~.valid-tooltip{display:block}[data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid){border-color:var(--bs-success-border)}[data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset);border-color:var(--bs-success-border)}:is([data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid)~.valid-feedback,[data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid)~.valid-tooltip){display:block}.form-adorn:has(.form-ghost.is-valid){border-color:var(--bs-success-border)}.form-adorn:has(.form-ghost.is-valid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset);border-color:var(--bs-success-border)}.form-adorn:has(.form-ghost.is-valid)~.valid-feedback,.form-adorn:has(.form-ghost.is-valid)~.valid-tooltip{display:block}[data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid){border-color:var(--bs-success-border)}[data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset);border-color:var(--bs-success-border)}:is([data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid)~.valid-feedback,[data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid)~.valid-tooltip){display:block}.form-range.is-valid::-webkit-slider-thumb{background:var(--bs-success-bg)}.form-range.is-valid::-moz-range-thumb{background:var(--bs-success-bg)}.form-range.is-valid:focus-visible::-webkit-slider-thumb{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-range.is-valid:focus-visible::-moz-range-thumb{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-range.is-valid~.valid-feedback,.form-range.is-valid~.valid-tooltip{display:block}[data-bs-validate~=valid] .form-range:user-valid::-webkit-slider-thumb{background:var(--bs-success-bg)}[data-bs-validate~=valid] .form-range:user-valid::-moz-range-thumb{background:var(--bs-success-bg)}[data-bs-validate~=valid] .form-range:user-valid:focus-visible::-webkit-slider-thumb{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}[data-bs-validate~=valid] .form-range:user-valid:focus-visible::-moz-range-thumb{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}:is([data-bs-validate~=valid] .form-range:user-valid~.valid-feedback,[data-bs-validate~=valid] .form-range:user-valid~.valid-tooltip),.form-field:has(.input-group .form-control.is-valid) .valid-feedback,.form-field:has(.input-group .form-control.is-valid) .valid-tooltip,:is([data-bs-validate~=valid] .form-field:has(.input-group .form-control:user-valid) .valid-feedback,[data-bs-validate~=valid] .form-field:has(.input-group .form-control:user-valid) .valid-tooltip){display:block}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,:is([data-bs-validate~=valid] .input-group>.form-control:not(:focus),.input-group>.form-floating:not(:focus-within):user-valid){z-index:3}.otp.is-valid .form-control{--bs-control-border-color:var(--bs-success-border)}.otp.is-valid .form-control:focus{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-control-border-color:var(--bs-success-border)}[data-bs-validate~=valid] .otp:user-valid .form-control{--bs-control-border-color:var(--bs-success-border)}[data-bs-validate~=valid] .otp:user-valid .form-control:focus{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-control-border-color:var(--bs-success-border)}.invalid-feedback{width:100%;font-size:var(--bs-font-size-sm);color:var(--bs-danger-fg);display:none}.tooltip.invalid-tooltip{z-index:5;max-width:100%;padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-danger-contrast);text-align:center;background-color:var(--bs-danger-bg);opacity:1;border-radius:var(--bs-tooltip-border-radius);margin-top:.1rem;display:none;position:absolute;top:100%}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,:is([data-bs-validate] :user-invalid~.invalid-feedback,[data-bs-validate] :user-invalid~.invalid-tooltip){display:block}.form-control.is-invalid{--bs-control-border-color:var(--bs-danger-border)}.form-control.is-invalid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-control-border-color:var(--bs-danger-border)}[data-bs-validate] .form-control:user-invalid{--bs-control-border-color:var(--bs-danger-border)}[data-bs-validate] .form-control:user-invalid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-control-border-color:var(--bs-danger-border)}.check input.is-invalid{--bs-check-border-color:var(--bs-danger-border);--bs-check-checked-bg:var(--bs-danger-bg);--bs-check-checked-border-color:var(--bs-danger-bg)}.check input.is-invalid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}[data-bs-validate] .check input:user-invalid{--bs-check-border-color:var(--bs-danger-border);--bs-check-checked-bg:var(--bs-danger-bg);--bs-check-checked-border-color:var(--bs-danger-bg)}[data-bs-validate] .check input:user-invalid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-field:has(.check input.is-invalid) label{color:var(--bs-danger-fg)}.form-field:has(.check input.is-invalid) .invalid-feedback,.form-field:has(.check input.is-invalid) .invalid-tooltip{display:block}[data-bs-validate] .form-field:has(.check input:user-invalid) label{color:var(--bs-danger-fg)}:is([data-bs-validate] .form-field:has(.check input:user-invalid) .invalid-feedback,[data-bs-validate] .form-field:has(.check input:user-invalid) .invalid-tooltip){display:block}.radio.is-invalid{--bs-radio-border-color:var(--bs-danger-border);--bs-radio-checked-bg:var(--bs-danger-bg);--bs-radio-checked-border-color:var(--bs-danger-bg)}.radio.is-invalid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}[data-bs-validate] .radio:user-invalid{--bs-radio-border-color:var(--bs-danger-border);--bs-radio-checked-bg:var(--bs-danger-bg);--bs-radio-checked-border-color:var(--bs-danger-bg)}[data-bs-validate] .radio:user-invalid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-field:has(.radio.is-invalid) label{color:var(--bs-danger-fg)}.form-field:has(.radio.is-invalid) .invalid-feedback,.form-field:has(.radio.is-invalid) .invalid-tooltip{display:block}[data-bs-validate] .form-field:has(.radio:user-invalid) label{color:var(--bs-danger-fg)}:is([data-bs-validate] .form-field:has(.radio:user-invalid) .invalid-feedback,[data-bs-validate] .form-field:has(.radio:user-invalid) .invalid-tooltip){display:block}.switch:has(input.is-invalid){--bs-switch-border-color:var(--bs-danger-border);--bs-switch-checked-bg:var(--bs-danger-bg);--bs-switch-checked-border-color:var(--bs-danger-bg)}.switch:has(input.is-invalid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}[data-bs-validate] .switch:has(input:user-invalid){--bs-switch-border-color:var(--bs-danger-border);--bs-switch-checked-bg:var(--bs-danger-bg);--bs-switch-checked-border-color:var(--bs-danger-bg)}[data-bs-validate] .switch:has(input:user-invalid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-field:has(.switch input.is-invalid) label{color:var(--bs-danger-fg)}.form-field:has(.switch input.is-invalid) .invalid-feedback,.form-field:has(.switch input.is-invalid) .invalid-tooltip{display:block}[data-bs-validate] .form-field:has(.switch input:user-invalid) label{color:var(--bs-danger-fg)}:is([data-bs-validate] .form-field:has(.switch input:user-invalid) .invalid-feedback,[data-bs-validate] .form-field:has(.switch input:user-invalid) .invalid-tooltip){display:block}.chip-input:has(.form-ghost.is-invalid){border-color:var(--bs-danger-border)}.chip-input:has(.form-ghost.is-invalid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset);border-color:var(--bs-danger-border)}.chip-input:has(.form-ghost.is-invalid)~.invalid-feedback,.chip-input:has(.form-ghost.is-invalid)~.invalid-tooltip{display:block}[data-bs-validate] .chip-input:has(.form-ghost:user-invalid){border-color:var(--bs-danger-border)}[data-bs-validate] .chip-input:has(.form-ghost:user-invalid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset);border-color:var(--bs-danger-border)}:is([data-bs-validate] .chip-input:has(.form-ghost:user-invalid)~.invalid-feedback,[data-bs-validate] .chip-input:has(.form-ghost:user-invalid)~.invalid-tooltip){display:block}.form-adorn:has(.form-ghost.is-invalid){border-color:var(--bs-danger-border)}.form-adorn:has(.form-ghost.is-invalid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset);border-color:var(--bs-danger-border)}.form-adorn:has(.form-ghost.is-invalid)~.invalid-feedback,.form-adorn:has(.form-ghost.is-invalid)~.invalid-tooltip{display:block}[data-bs-validate] .form-adorn:has(.form-ghost:user-invalid){border-color:var(--bs-danger-border)}[data-bs-validate] .form-adorn:has(.form-ghost:user-invalid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset);border-color:var(--bs-danger-border)}:is([data-bs-validate] .form-adorn:has(.form-ghost:user-invalid)~.invalid-feedback,[data-bs-validate] .form-adorn:has(.form-ghost:user-invalid)~.invalid-tooltip){display:block}.form-range.is-invalid::-webkit-slider-thumb{background:var(--bs-danger-bg)}.form-range.is-invalid::-moz-range-thumb{background:var(--bs-danger-bg)}.form-range.is-invalid:focus-visible::-webkit-slider-thumb{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-range.is-invalid:focus-visible::-moz-range-thumb{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-range.is-invalid~.invalid-feedback,.form-range.is-invalid~.invalid-tooltip{display:block}[data-bs-validate] .form-range:user-invalid::-webkit-slider-thumb{background:var(--bs-danger-bg)}[data-bs-validate] .form-range:user-invalid::-moz-range-thumb{background:var(--bs-danger-bg)}[data-bs-validate] .form-range:user-invalid:focus-visible::-webkit-slider-thumb{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}[data-bs-validate] .form-range:user-invalid:focus-visible::-moz-range-thumb{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}:is([data-bs-validate] .form-range:user-invalid~.invalid-feedback,[data-bs-validate] .form-range:user-invalid~.invalid-tooltip),.form-field:has(.input-group .form-control.is-invalid) .invalid-feedback,.form-field:has(.input-group .form-control.is-invalid) .invalid-tooltip,:is([data-bs-validate] .form-field:has(.input-group .form-control:user-invalid) .invalid-feedback,[data-bs-validate] .form-field:has(.input-group .form-control:user-invalid) .invalid-tooltip){display:block}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,:is([data-bs-validate] .input-group>.form-control:not(:focus),.input-group>.form-floating:not(:focus-within):user-invalid){z-index:4}.otp.is-invalid .form-control{--bs-control-border-color:var(--bs-danger-border)}.otp.is-invalid .form-control:focus{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-control-border-color:var(--bs-danger-border)}[data-bs-validate] .otp:user-invalid .form-control{--bs-control-border-color:var(--bs-danger-border)}[data-bs-validate] .otp:user-invalid .form-control:focus{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-control-border-color:var(--bs-danger-border)}.btn,.btn-link,.btn-icon,.btn-solid,.btn-outline,.btn-subtle,.btn-text{--bs-btn-min-height:var(--bs-btn-input-min-height);--bs-btn-padding-x:var(--bs-btn-input-padding-x);--bs-btn-padding-y:var(--bs-btn-input-padding-y);--bs-btn-font-size:var(--bs-btn-input-font-size);--bs-btn-font-weight:var(--bs-btn-input-font-weight);--bs-btn-line-height:var(--bs-btn-input-line-height);--bs-btn-color:var(--bs-fg-body);--bs-btn-white-space:nowrap;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-radius-5);--bs-btn-hover-border-color:transparent;--bs-btn-disabled-opacity:.65;--bs-btn-transition-timing:.15s ease-in-out;--bs-btn-transition-property:color, background-color, border-color, box-shadow;--bs-btn-transition:var(--bs-btn-transition-property) var(--bs-btn-transition-timing);gap:var(--bs-btn-gap,.25rem);min-height:var(--bs-btn-min-height);padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);white-space:var(--bs-btn-white-space);vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:var(--bs-btn-bg,var(--bs-bg-2));border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);transition:var(--bs-btn-transition);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}@media (prefers-reduced-motion:reduce){.btn,.btn-link,.btn-icon,.btn-solid,.btn-outline,.btn-subtle,.btn-text{transition:none}}.btn:hover,.btn-link:hover,.btn-icon:hover,.btn-solid:hover,.btn-outline:hover,.btn-subtle:hover,.btn-text:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg,var(--bs-bg-3));border-color:var(--bs-btn-hover-border-color)}.btn:focus-visible,.btn-link:focus-visible,.btn-icon:focus-visible,.btn-solid:focus-visible,.btn-outline:focus-visible,.btn-subtle:focus-visible,.btn-text:focus-visible{outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-focus-ring-offset:1px}.btn.active,.btn.show,.btn-link.active,.btn-link.show,.btn-icon.active,.btn-icon.show,.btn-solid.active,.btn-solid.show,.btn-outline.active,.btn-outline.show,.btn-subtle.active,.btn-subtle.show,.btn-text.active,.btn-text.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg,var(--bs-bg-3));border-color:var(--bs-btn-active-border-color)}.btn.active:focus-visible,.btn.show:focus-visible,.btn-link.active:focus-visible,.btn-link.show:focus-visible,.btn-icon.active:focus-visible,.btn-icon.show:focus-visible,.btn-solid.active:focus-visible,.btn-solid.show:focus-visible,.btn-outline.active:focus-visible,.btn-outline.show:focus-visible,.btn-subtle.active:focus-visible,.btn-subtle.show:focus-visible,.btn-text.active:focus-visible,.btn-text.show:focus-visible{outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.btn:disabled,.btn.disabled,fieldset:disabled .btn,.btn-link:disabled,.btn-link.disabled,fieldset:disabled .btn-link,.btn-icon:disabled,.btn-icon.disabled,fieldset:disabled .btn-icon,.btn-solid:disabled,.btn-solid.disabled,fieldset:disabled .btn-solid,.btn-outline:disabled,.btn-outline.disabled,fieldset:disabled .btn-outline,.btn-subtle:disabled,.btn-subtle.disabled,fieldset:disabled .btn-subtle,.btn-text:disabled,.btn-text.disabled,fieldset:disabled .btn-text{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg,var(--bs-bg-1));border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity);background-image:none}.btn-solid{--bs-btn-bg:var(--bs-theme-bg);--bs-btn-color:var(--bs-theme-contrast);--bs-btn-border-color:var(--bs-theme-bg);--bs-btn-active-bg:oklch(from var(--bs-theme-bg) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-border-color:oklch(from var(--bs-theme-bg) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-color:oklch(from var(--bs-theme-contrast) calc(l * .9) calc(c * 1.15) h);--bs-btn-disabled-bg:var(--bs-theme-bg);--bs-btn-disabled-color:var(--bs-theme-contrast);--bs-btn-disabled-border-color:var(--bs-theme-bg)}.btn-solid:hover{--bs-btn-hover-bg:oklch(from var(--bs-theme-bg) calc(l * .95) calc(c * 1.1) h);--bs-btn-hover-border-color:oklch(from var(--bs-theme-bg) calc(l * .95) calc(c * 1.1) h);--bs-btn-hover-color:oklch(from var(--bs-theme-contrast) calc(l * .95) calc(c * 1.1) h)}.btn-solid:focus-visible{outline-color:var(--bs-theme-focus-ring)}.btn-solid:active,.btn-solid.active,.btn-solid.btn-check:has(input:checked){--bs-btn-active-bg:oklch(from var(--bs-theme-bg) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-border-color:oklch(from var(--bs-theme-bg) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-color:oklch(from var(--bs-theme-contrast) calc(l * .9) calc(c * 1.15) h)}.btn-solid:disabled,.btn-solid.disabled,.btn-solid.btn-check:has(input:disabled){--bs-btn-disabled-bg:var(--bs-theme-bg);--bs-btn-disabled-color:var(--bs-theme-contrast);--bs-btn-disabled-border-color:var(--bs-theme-bg)}.btn-outline{--bs-btn-bg:transparent;--bs-btn-color:var(--bs-theme-fg);--bs-btn-border-color:var(--bs-theme-border);--bs-btn-active-bg:oklch(from var(--bs-theme-bg) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-color:oklch(from var(--bs-theme-contrast) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-border-color:oklch(from var(--bs-theme-bg) calc(l * .9) calc(c * 1.15) h);--bs-btn-disabled-bg:transparent;--bs-btn-disabled-color:var(--bs-theme-fg);--bs-btn-disabled-border-color:var(--bs-theme-border)}.btn-outline:hover{--bs-btn-hover-bg:oklch(from var(--bs-theme-bg) calc(l * .95) calc(c * 1.1) h);--bs-btn-hover-color:oklch(from var(--bs-theme-contrast) calc(l * .95) calc(c * 1.1) h);--bs-btn-hover-border-color:oklch(from var(--bs-theme-bg) calc(l * .95) calc(c * 1.1) h)}.btn-outline:focus-visible{outline-color:var(--bs-theme-focus-ring)}.btn-outline:active,.btn-outline.active,.btn-outline.btn-check:has(input:checked){--bs-btn-active-bg:oklch(from var(--bs-theme-bg) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-color:oklch(from var(--bs-theme-contrast) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-border-color:oklch(from var(--bs-theme-bg) calc(l * .9) calc(c * 1.15) h)}.btn-outline:disabled,.btn-outline.disabled,.btn-outline.btn-check:has(input:disabled){--bs-btn-disabled-bg:transparent;--bs-btn-disabled-color:var(--bs-theme-fg);--bs-btn-disabled-border-color:var(--bs-theme-border)}.btn-subtle{--bs-btn-bg:var(--bs-theme-bg-subtle);--bs-btn-color:var(--bs-theme-fg);--bs-btn-border-color:transparent;--bs-btn-active-bg:var(--bs-theme-bg-subtle);--bs-btn-active-color:oklch(from var(--bs-theme-fg-emphasis) calc(l * .9) calc(c * 1.15) h);--bs-btn-disabled-bg:var(--bs-theme-bg-subtle);--bs-btn-disabled-color:var(--bs-theme-fg);--bs-btn-disabled-border-color:transparent}.btn-subtle:hover{--bs-btn-hover-bg:color-mix(in oklch, var(--bs-theme-bg-muted) 50%, var(--bs-theme-bg-subtle));--bs-btn-hover-color:oklch(from var(--bs-theme-fg-emphasis) calc(l * .95) calc(c * 1.1) h)}.btn-subtle:focus-visible{outline-color:var(--bs-theme-focus-ring)}.btn-subtle:active,.btn-subtle.active,.btn-subtle.btn-check:has(input:checked){--bs-btn-active-bg:var(--bs-theme-bg-subtle);--bs-btn-active-color:oklch(from var(--bs-theme-fg-emphasis) calc(l * .9) calc(c * 1.15) h)}.btn-subtle:disabled,.btn-subtle.disabled,.btn-subtle.btn-check:has(input:disabled){--bs-btn-disabled-bg:var(--bs-theme-bg-subtle);--bs-btn-disabled-color:var(--bs-theme-fg);--bs-btn-disabled-border-color:transparent}.btn-text{--bs-btn-color:var(--bs-theme-fg);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-active-color:oklch(from var(--bs-theme-fg) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-bg:var(--bs-theme-bg-subtle);--bs-btn-disabled-color:var(--bs-theme-fg);--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:transparent}.btn-text:hover{--bs-btn-hover-color:oklch(from var(--bs-theme-fg) calc(l * .95) calc(c * 1.1) h);--bs-btn-hover-bg:var(--bs-theme-bg-subtle)}.btn-text:focus-visible{outline-color:var(--bs-theme-focus-ring)}.btn-text:active,.btn-text.active,.btn-text.btn-check:has(input:checked){--bs-btn-active-color:oklch(from var(--bs-theme-fg) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-bg:var(--bs-theme-bg-subtle)}.btn-text:disabled,.btn-text.disabled,.btn-text.btn-check:has(input:disabled){--bs-btn-disabled-color:var(--bs-theme-fg);--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:transparent}.btn-link{--bs-btn-font-weight:var(--bs-font-weight-normal);--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-bg:transparent;--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-bg:transparent;--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:var(--bs-fg-3);--bs-btn-disabled-border-color:transparent;color:var(--bs-theme-fg,var(--bs-btn-color));-webkit-text-decoration:var(--bs-link-decoration);-webkit-text-decoration:var(--bs-link-decoration);text-decoration:var(--bs-link-decoration);background-image:none}.btn-link:focus-visible{color:var(--bs-theme-fg,var(--bs-btn-color))}.btn-link:hover{color:var(--bs-theme-fg-emphasis,var(--bs-btn-hover-color))}.btn-xs,.btn-group-xs>[class*=btn-]{--bs-btn-min-height:var(--bs-btn-input-xs-min-height);--bs-btn-padding-y:var(--bs-btn-input-xs-padding-y);--bs-btn-padding-x:var(--bs-btn-input-xs-padding-x);--bs-btn-font-size:var(--bs-btn-input-xs-font-size);--bs-btn-line-height:var(--bs-btn-input-xs-line-height);--bs-btn-border-radius:var(--bs-btn-input-xs-border-radius)}.btn-sm,.btn-group-sm>[class*=btn-]{--bs-btn-min-height:var(--bs-btn-input-sm-min-height);--bs-btn-padding-y:var(--bs-btn-input-sm-padding-y);--bs-btn-padding-x:var(--bs-btn-input-sm-padding-x);--bs-btn-font-size:var(--bs-btn-input-sm-font-size);--bs-btn-line-height:var(--bs-btn-input-sm-line-height);--bs-btn-border-radius:var(--bs-btn-input-sm-border-radius)}.btn-lg,.btn-group-lg>[class*=btn-]{--bs-btn-min-height:var(--bs-btn-input-lg-min-height);--bs-btn-padding-y:var(--bs-btn-input-lg-padding-y);--bs-btn-padding-x:var(--bs-btn-input-lg-padding-x);--bs-btn-font-size:var(--bs-btn-input-lg-font-size);--bs-btn-line-height:var(--bs-btn-input-lg-line-height);--bs-btn-border-radius:var(--bs-btn-input-lg-border-radius)}.btn-icon{aspect-ratio:1;justify-content:center;align-items:center;padding:0}.btn-check>input{clip:rect(0, 0, 0, 0);pointer-events:none;position:absolute}.btn-check:has(input:checked){color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg,var(--bs-bg-3));border-color:var(--bs-btn-active-border-color);box-shadow:var(--bs-btn-active-shadow);background-image:none}.btn-check:has(input:focus-visible){outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-focus-ring-offset:1px}.btn-check:has(input:disabled){color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg,var(--bs-bg-1));border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity);box-shadow:none;background-image:none}.btn-styled{--bs-btn-gradient-start:#ffffff20;--bs-btn-gradient-end:#00000013;--bs-btn-border-mix-color:#000;--bs-btn-border-mix-amount:10%;--bs-btn-border-hover-mix-amount:12.5%;--bs-btn-border-active-mix-amount:20%;--bs-btn-shadow:0 1px 2px #00000026, inset 0 1px 0 #ffffff1a;--bs-btn-active-shadow:inset 0 2px 4px #00000026;background-image:linear-gradient(to bottom, var(--bs-btn-gradient-start), var(--bs-btn-gradient-end));border-color:color-mix(in lab, var(--bs-theme-bg), var(--bs-btn-border-mix-color) var(--bs-btn-border-mix-amount));box-shadow:var(--bs-btn-shadow)}.btn-styled:hover{background-image:linear-gradient(to bottom, var(--bs-btn-gradient-start), var(--bs-btn-gradient-end));border-color:color-mix(in lab, var(--bs-theme-bg), var(--bs-btn-border-mix-color) var(--bs-btn-border-hover-mix-amount))}.btn-styled:active,.btn-styled.active{border-color:color-mix(in lab, var(--bs-theme-bg), var(--bs-btn-border-mix-color) var(--bs-btn-border-active-mix-amount));box-shadow:var(--bs-btn-active-shadow);background-image:none}.btn-styled:disabled,.btn-styled.disabled{box-shadow:none;background-image:none}.btn-group,.btn-group-vertical{vertical-align:middle;display:inline-flex;position:relative}.btn-group>[class*=btn-],.btn-group-vertical>[class*=btn-]{flex:auto;position:relative}.btn-group>[class*=btn-]:hover,.btn-group-vertical>[class*=btn-]:hover{z-index:1}.btn-group>.btn-check:has(input:checked),.btn-group>[class*=btn-]:active,.btn-group>[class*=btn-].active,.btn-group-vertical>.btn-check:has(input:checked),.btn-group-vertical>[class*=btn-]:active,.btn-group-vertical>[class*=btn-].active{z-index:2}.btn-group>.btn-check:has(input:focus),.btn-group>[class*=btn-]:focus,.btn-group-vertical>.btn-check:has(input:focus),.btn-group-vertical>[class*=btn-]:focus{z-index:3}.btn-group-divider>[class*=btn-]+[class*=btn-]:before{z-index:3;content:"";background-color:var(--bs-btn-color);opacity:.25;position:absolute}.btn-group:where(.btn-group-divider)>[class*=btn-]+[class*=btn-]:before{top:25%;bottom:25%;left:calc(var(--bs-btn-border-width) * -1);width:var(--bs-btn-border-width)}.btn-group-vertical:where(.btn-group-divider)>[class*=btn-]+[class*=btn-]:before{top:calc(var(--bs-btn-border-width) * -1);right:var(--bs-btn-padding-x);left:var(--bs-btn-padding-x);height:var(--bs-btn-border-width)}.btn-toolbar{flex-wrap:wrap;justify-content:flex-start;gap:.5rem;display:flex}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-btn-border-radius)}.btn-group>[class*=btn-]:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-inline-start:calc(-1 * var(--bs-btn-border-width))}.btn-group>[class*=btn-]:not(:last-child,:has(+.menu)),.btn-group>.btn-group:not(:last-child)>[class*=btn-]{border-start-end-radius:0;border-end-end-radius:0}.btn-group>[class*=btn-]:not(:first-child),.btn-group>.btn-group:not(:first-child)>[class*=btn-]{border-start-start-radius:0;border-end-start-radius:0}.btn-group-vertical{flex-direction:column;justify-content:center;align-items:flex-start}.btn-group-vertical>[class*=btn-],.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>[class*=btn-]:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(-1 * var(--bs-btn-border-width))}.btn-group-vertical>[class*=btn-]:not(:last-child,:has(+.menu)),.btn-group-vertical>.btn-group:not(:last-child)>[class*=btn-]{border-end-end-radius:0;border-end-start-radius:0}.btn-group-vertical>[class*=btn-]:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child)>[class*=btn-]{border-start-start-radius:0;border-start-end-radius:0}.btn-close{--bs-btn-close-size:1.25rem;--bs-btn-close-color:inherit;--bs-btn-close-opacity:.5;--bs-btn-close-hover-opacity:.75;--bs-btn-close-focus-opacity:.85;--bs-btn-close-disabled-opacity:.25;box-sizing:content-box;width:var(--bs-btn-close-size);height:var(--bs-btn-close-size);color:var(--bs-btn-close-color);border-radius:var(--bs-radius-5);opacity:var(--bs-btn-close-opacity);background:0 0;border:0;padding:0}.btn-close>svg{fill:currentColor;width:100%;height:100%;display:block}.btn-close:hover{color:var(--bs-btn-close-color);opacity:var(--bs-btn-close-hover-opacity);text-decoration:none}.btn-close:focus-visible{opacity:var(--bs-btn-close-focus-opacity);outline:var(--bs-focus-ring)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.accordion{--bs-accordion-padding-x:1.25rem;--bs-accordion-padding-y:1rem;--bs-accordion-color:var(--bs-fg-body);--bs-accordion-bg:var(--bs-bg-body);--bs-accordion-transition-property:color, background-color, border-radius;--bs-accordion-transition-timing:.15s ease-in-out;--bs-accordion-transition:var(--bs-accordion-transition-property) var(--bs-accordion-timing);--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-accordion-radius,var(--bs-radius-7));--bs-accordion-btn-color:var(--bs-fg-2);--bs-accordion-btn-bg:var(--bs-bg-body);--bs-accordion-btn-icon-width:1rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform .2s ease-in-out;--bs-accordion-active-color:var(--bs-fg);--bs-accordion-active-bg:var(--bs-bg-2)}.accordion-header{width:100%;padding:var(--bs-accordion-btn-padding-y,var(--bs-accordion-padding-y)) var(--bs-accordion-btn-padding-x,var(--bs-accordion-padding-x));font-size:var(--bs-accordion-font-size,var(--bs-font-size-base));color:var(--bs-accordion-btn-color);text-align:start;cursor:pointer;background-color:var(--bs-accordion-btn-bg);transition:var(--bs-accordion-transition);align-items:center;list-style:none;display:flex}@media (prefers-reduced-motion:reduce){.accordion-header{transition:none}}.accordion-header::-webkit-details-marker{display:none}.accordion-header .accordion-icon{width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);color:currentColor;transition:var(--bs-accordion-btn-icon-transition);flex-shrink:0;margin-inline-start:auto}@media (prefers-reduced-motion:reduce){.accordion-header .accordion-icon{transition:none}}.accordion-header:hover{z-index:2}.accordion-header:focus-visible{z-index:3;outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset);outline-offset:-1px;position:relative}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-start-start-radius:var(--bs-accordion-border-radius);border-start-end-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header{border-start-start-radius:calc(var(--bs-accordion-border-radius) - var(--bs-accordion-border-width));border-start-end-radius:calc(var(--bs-accordion-border-radius) - var(--bs-accordion-border-width))}.accordion-item:not(:first-of-type){border-block-start:0}.accordion-item:last-of-type{border-end-end-radius:var(--bs-accordion-border-radius);border-end-start-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header{border-end-end-radius:calc(var(--bs-accordion-border-radius) - var(--bs-accordion-border-width));border-end-start-radius:calc(var(--bs-accordion-border-radius) - var(--bs-accordion-border-width))}.accordion-item:last-of-type>.accordion-body{border-end-end-radius:var(--bs-accordion-border-radius);border-end-start-radius:var(--bs-accordion-border-radius)}.accordion-item[open]{border-color:var(--bs-theme-border,var(--bs-accordion-border-color))}.accordion-item[open]>.accordion-header{color:var(--bs-theme-fg,var(--bs-accordion-active-color));background-color:var(--bs-theme-bg-subtle,var(--bs-accordion-active-bg));box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-theme-border,var(--bs-accordion-border-color))}.accordion-item[open]>.accordion-header .accordion-icon{transform:var(--bs-accordion-btn-icon-transform)}.accordion-item[open]:last-of-type>.accordion-header{border-end-end-radius:0;border-end-start-radius:0}.accordion-body{padding:var(--bs-accordion-body-padding-y,var(--bs-accordion-padding-y)) var(--bs-accordion-body-padding-x,var(--bs-accordion-padding-x))}.accordion-flush>.accordion-item{border-inline:0;border-radius:0}.accordion-flush>.accordion-item:first-child{border-block-start:0}.accordion-flush>.accordion-item:last-child{border-block-end:0}.accordion-flush>.accordion-item>.accordion-header,.accordion-flush>.accordion-item>.accordion-body{border-radius:0}.alert{--bs-alert-gap:var(--bs-spacer-3);--bs-alert-bg:var(--bs-theme-bg-subtle,var(--bs-bg-1));--bs-alert-padding-x:var(--bs-spacer);--bs-alert-padding-y:var(--bs-spacer);--bs-alert-color:var(--bs-theme-fg,inherit);--bs-alert-border-color:var(--bs-theme-border,var(--bs-border-color));--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-radius-5);--bs-alert-link-color:inherit;--bs-hr-border-color:var(--bs-theme-border,var(--bs-border-color));gap:var(--bs-alert-gap);padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius);align-items:start;display:flex}.alert>p{margin-bottom:0}.alert-heading{color:inherit}.alert-link{font-weight:var(--bs-font-weight-semibold);color:var(--bs-alert-link-color)}.avatar{--bs-avatar-size:2.5rem;--bs-avatar-border-radius:50%;--bs-avatar-border-width:2px;--bs-avatar-border-color:var(--bs-bg-body);--bs-avatar-bg:var(--bs-bg-2);--bs-avatar-color:var(--bs-fg-body);--bs-avatar-status-size:.75rem;--bs-avatar-status-border-width:2px;--bs-avatar-status-border-color:var(--bs-bg-body);--bs-avatar-stack-spacing:-.3;--bs-avatar-stack-transition:transform .2s ease-in-out;width:var(--bs-avatar-size);height:var(--bs-avatar-size);font-size:calc(var(--bs-avatar-size) * .4);font-weight:var(--bs-avatar-font-weight,var(--bs-font-weight-medium));color:var(--bs-theme-contrast,var(--bs-avatar-color));text-transform:uppercase;vertical-align:middle;background-color:var(--bs-theme-bg,var(--bs-avatar-bg));border-radius:var(--bs-avatar-border-radius);justify-content:center;align-items:center;line-height:1;display:inline-flex;position:relative}.avatar-subtle{color:var(--bs-theme-fg,var(--bs-avatar-color));background-color:var(--bs-theme-bg-subtle,var(--bs-avatar-bg))}.avatar-img{-o-object-fit:cover;object-fit:cover;border-radius:inherit;width:100%;height:100%}.avatar-status{right:calc(var(--bs-avatar-status-border-width) * -1);bottom:calc(var(--bs-avatar-status-border-width) * -1);width:var(--bs-avatar-status-size);height:var(--bs-avatar-status-size);background-color:var(--bs-gray-400);border:var(--bs-avatar-status-border-width) solid var(--bs-avatar-status-border-color);border-radius:50%;position:absolute}.avatar-status.status-online{background-color:var(--bs-green-500)}.avatar-status.status-offline{background-color:var(--bs-gray-400);border-radius:20%}.avatar-status.status-busy{background-color:var(--bs-red-500);border-radius:20%}.avatar-status.status-away{background-color:var(--bs-yellow-500)}.avatar-stack{flex-direction:row-reverse;display:inline-flex}.avatar-stack .avatar{margin-left:calc(var(--bs-avatar-size) * var(--bs-avatar-stack-spacing));border:var(--bs-avatar-border-width) solid var(--bs-avatar-border-color);transition:var(--bs-avatar-stack-transition);mask-image:none}@media (prefers-reduced-motion:reduce){.avatar-stack .avatar{transition:none}}.avatar-stack .avatar:last-child{margin-left:0}.avatar-stack .avatar:hover{z-index:1;transform:translateY(-2px)}.avatar-xs,.avatar-stack-xs{--bs-avatar-size:1.5rem;--bs-avatar-status-size:.625rem}.avatar-sm,.avatar-stack-sm{--bs-avatar-size:2rem}.avatar-lg,.avatar-stack-lg{--bs-avatar-size:3rem;--bs-avatar-status-size:1rem}.avatar-xl,.avatar-stack-xl{--bs-avatar-size:4rem;--bs-avatar-status-size:1.25rem}.badge{--bs-badge-padding-x:.625em;--bs-badge-padding-y:.25em;--bs-badge-font-size:clamp(12px, .75em, .75em);--bs-badge-font-weight:var(--bs-font-weight-semibold);--bs-badge-color:inherit;--bs-badge-bg:var(--bs-bg-2);--bs-badge-border-width:var(--bs-border-width);--bs-badge-border-color:transparent;--bs-badge-border-radius:var(--bs-radius-7);min-height:1.375rem;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);color:var(--bs-theme-contrast,var(--bs-badge-color));text-align:center;white-space:nowrap;vertical-align:baseline;background-color:var(--bs-theme-bg,var(--bs-badge-bg));border:var(--bs-badge-border-width) solid var(--bs-badge-border-color);border-radius:var(--bs-badge-border-radius);justify-content:center;align-items:center;line-height:1;display:inline-flex}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-subtle{--bs-badge-color:var(--bs-theme-fg);--bs-badge-bg:var(--bs-theme-bg-subtle);--bs-badge-border-color:transparent;color:var(--bs-badge-color);background-color:var(--bs-badge-bg);border-color:var(--bs-badge-border-color)}.badge-outline{--bs-badge-color:var(--bs-theme-fg);--bs-badge-bg:transparent;--bs-badge-border-color:var(--bs-theme-border);color:var(--bs-badge-color);background-color:var(--bs-badge-bg);border-color:var(--bs-badge-border-color)}.breadcrumb{--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-font-size:inherit;--bs-breadcrumb-bg:transparent;--bs-breadcrumb-border-radius:var(--bs-radius-5);--bs-breadcrumb-divider-color:var(--bs-fg-4);--bs-breadcrumb-link-padding-x:.75rem;--bs-breadcrumb-link-padding-y:.25rem;--bs-breadcrumb-link-color:var(--bs-fg-3);--bs-breadcrumb-link-hover-color:var(--bs-fg-2);--bs-breadcrumb-link-hover-bg:var(--bs-bg-1);--bs-breadcrumb-link-active-color:var(--bs-fg-1);--bs-breadcrumb-link-border-radius:var(--bs-radius-7);padding:var(--bs-breadcrumb-padding-y,0) var(--bs-breadcrumb-padding-x,0);font-size:var(--bs-breadcrumb-font-size);background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius);flex-wrap:wrap;align-items:center;list-style:none;display:flex}.breadcrumb-item{display:flex}.breadcrumb-divider{margin-inline:calc(var(--bs-breadcrumb-link-padding-x) / 4);color:var(--bs-breadcrumb-divider-color)}.breadcrumb-link{min-height:2.25rem;padding:var(--bs-breadcrumb-link-padding-y) var(--bs-breadcrumb-link-padding-x);color:var(--bs-breadcrumb-link-color);border-radius:var(--bs-breadcrumb-link-border-radius);justify-content:center;align-items:center;text-decoration:none;transition:text-decoration-color .1s ease-in-out;display:flex;position:relative}@media (prefers-reduced-motion:reduce){.breadcrumb-link{transition:none}}.breadcrumb-link:hover{z-index:2;color:var(--bs-breadcrumb-link-hover-color);background-color:var(--bs-breadcrumb-link-hover-bg)}.breadcrumb-link.active{color:var(--bs-breadcrumb-link-active-color)}.chip{--bs-chip-height:1.75rem;--bs-chip-padding-x:.625rem;--bs-chip-gap:.3125rem;--bs-chip-border-radius:var(--bs-radius-pill);--bs-chip-img-size:1.25rem;--bs-chip-icon-size:1rem;--bs-chip-dismiss-size:1rem;--bs-chip-dismiss-opacity:.65;--bs-chip-dismiss-hover-opacity:1;--bs-chip-color:var(--bs-theme-fg,var(--bs-fg-body));--bs-chip-bg:var(--bs-theme-bg-subtle,var(--bs-bg-2));--bs-chip-border-color:transparent;--bs-chip-selected-color:var(--bs-theme-contrast,var(--bs-primary-contrast));--bs-chip-selected-bg:var(--bs-theme-bg,var(--bs-primary-bg));--bs-chip-selected-border-color:var(--bs-theme-bg,var(--bs-primary-bg));gap:var(--bs-chip-gap);height:var(--bs-chip-height);padding-inline:var(--bs-chip-padding-x);font-size:var(--bs-chip-font-size,var(--bs-font-size-sm));font-weight:var(--bs-chip-font-weight,var(--bs-font-weight-base));line-height:var(--bs-chip-line-height,1.25rem);color:var(--bs-chip-color);white-space:nowrap;vertical-align:middle;cursor:pointer;background-color:var(--bs-chip-bg);border:var(--bs-border-width) solid var(--bs-chip-border-color);border-radius:var(--bs-chip-border-radius);align-items:center;text-decoration:none;display:inline-flex}.chip:hover{--bs-chip-bg:var(--bs-theme-bg-muted,var(--bs-bg-3))}.chip:focus-visible{outline:0}.chip.active{--bs-chip-color:var(--bs-chip-selected-color);--bs-chip-bg:var(--bs-chip-selected-bg);--bs-chip-border-color:var(--bs-chip-selected-border-color)}.chip.active:hover{--bs-chip-bg:var(--bs-chip-selected-bg);opacity:.9}.chip.disabled,.chip:disabled{pointer-events:none;opacity:.65}.chip-img{width:var(--bs-chip-img-size);height:var(--bs-chip-img-size);border-radius:50%}.chip-img:first-child{margin-inline-start:-.375rem}.chip-icon{flex-shrink:0;justify-content:center;align-items:center;margin-inline-start:calc(var(--bs-chip-gap) * -.25);display:flex}.chip-icon>svg{width:var(--bs-chip-icon-size);height:var(--bs-chip-icon-size);display:block}.chip-icon>img{width:var(--bs-chip-icon-size);height:var(--bs-chip-icon-size);-o-object-fit:cover;object-fit:cover;border-radius:50%}.chip-dismiss{width:var(--bs-chip-min-height);height:var(--bs-chip-min-height);color:inherit;cursor:pointer;opacity:var(--bs-chip-dismiss-opacity);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;margin-inline-end:calc(var(--bs-chip-padding-x) * -.25);padding:0;display:flex}.chip-dismiss:hover{opacity:var(--bs-chip-dismiss-hover-opacity)}.chip-dismiss:focus-visible{opacity:1;outline:0;outline:var(--bs-focus-ring)}.chip-dismiss>svg{width:var(--bs-chip-dismiss-size);height:var(--bs-chip-dismiss-size);display:block}.card{--bs-card-spacer-y:var(--bs-spacer-5);--bs-card-spacer-x:var(--bs-spacer-5);--bs-card-subtitle-color:inherit;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-radius-7);--bs-card-box-shadow:none;--bs-card-inner-border-radius:calc(var(--bs-radius-7) - var(--bs-border-width));--bs-card-cap-padding-y:var(--bs-spacer-3);--bs-card-cap-padding-x:var(--bs-spacer);--bs-card-cap-bg:var(--bs-bg-1);--bs-card-cap-color:inherit;--bs-card-height:auto;--bs-card-color:inherit;--bs-card-bg:var(--bs-bg-body);--bs-card-img-overlay-padding:var(--bs-card-spacer-y);--bs-card-group-margin:.75rem;--bs-card-body-gap:calc(var(--bs-card-spacer-y) * .5);min-width:0;height:var(--bs-card-height);color:var(--bs-fg-body);word-wrap:break-word;background-color:var(--bs-card-bg);box-shadow:var(--bs-card-box-shadow);flex-direction:column;display:flex;position:relative}.card>hr{margin-inline:0}.card-body{gap:var(--bs-card-body-gap);padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color);border:solid var(--bs-theme-bg,var(--bs-card-border-color));border-width:0 var(--bs-card-border-width);flex-direction:column;flex:auto;align-items:flex-start;display:flex}.card-body>*{margin-block:0}.card-body,.card-list{border:solid var(--bs-theme-bg,var(--bs-card-border-color));border-width:0 var(--bs-card-border-width)}.card-body:first-child,.card-list:first-child{border-top-width:var(--bs-card-border-width);border-start-start-radius:var(--bs-card-border-radius);border-start-end-radius:var(--bs-card-border-radius)}.card-body:last-child,.card-list:last-child{border-bottom-width:var(--bs-card-border-width);border-end-end-radius:var(--bs-card-border-radius);border-end-start-radius:var(--bs-card-border-radius)}.card-body:not(:first-child,:last-child),.card-list:not(:first-child,:last-child){border-block-end-width:var(--bs-card-border-width)}.card-title,.card-subtitle,.card-text{align-self:stretch}.card-subtitle{margin-top:calc(var(--bs-card-body-gap) * -.5)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-theme-contrast,var(--bs-card-cap-color));background-color:var(--bs-theme-bg,var(--bs-card-cap-bg));border:var(--bs-card-border-width) solid var(--bs-theme-bg,var(--bs-card-border-color));margin-bottom:0}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-theme-bg,var(--bs-card-cap-bg));border:var(--bs-card-border-width) solid var(--bs-theme-bg,var(--bs-card-border-color))}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-translucent{background-color:color-mix(in oklch, var(--bs-card-bg) 80%, transparent);-webkit-backdrop-filter:blur(5px)saturate(180%);backdrop-filter:blur(5px)saturate(180%)}.card-translucent .card-header,.card-translucent .card-footer{background-color:color-mix(in oklch, var(--bs-card-cap-bg) 60%, transparent)}.card-subtle{border-color:var(--bs-theme-border,var(--bs-card-border-color))}.card-subtle .card-header,.card-subtle .card-footer{color:var(--bs-theme-fg-emphasis,currentcolor);background-color:var(--bs-theme-bg-subtle,var(--bs-card-cap-bg));border-color:var(--bs-theme-border,var(--bs-card-border-color))}.card-subtle .card-body,.card-subtle .card-list{border-color:var(--bs-theme-border,var(--bs-card-border-color))}.nav.card-header-tabs{margin-inline:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));border-block-end:0}.nav.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-block-end-color:var(--bs-card-bg)}.card-img-overlay{padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius);position:absolute;inset:0}.card-img,.card-img-top,.card-img-bottom{outline:var(--bs-card-border-width) solid var(--bs-card-border-color);outline-offset:calc(var(--bs-card-border-width) * -1);width:100%}.card-img,.card-img-top{border-start-start-radius:var(--bs-card-inner-border-radius);border-start-end-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-end-end-radius:var(--bs-card-inner-border-radius);border-end-start-radius:var(--bs-card-inner-border-radius)}.card-row{flex-direction:row}.card-row .card-body,.card-row .card-list{border-width:var(--bs-card-border-width) 0;border-radius:0}.card-row .card-body:first-child,.card-row .card-list:first-child{border-inline-start-width:var(--bs-card-border-width);border-start-start-radius:var(--bs-card-inner-border-radius);border-end-start-radius:var(--bs-card-inner-border-radius)}.card-row .card-body:last-child,.card-row .card-list:last-child{border-inline-end-width:var(--bs-card-border-width);border-start-end-radius:var(--bs-card-inner-border-radius);border-end-end-radius:var(--bs-card-inner-border-radius)}.card-row .card-body:not(:first-child,:last-child),.card-row .card-list:not(:first-child,:last-child){border-inline-end-width:var(--bs-card-border-width)}.card-img-start{border-start-start-radius:var(--bs-card-inner-border-radius);border-end-start-radius:var(--bs-card-inner-border-radius)}.card-img-end{border-start-end-radius:var(--bs-card-inner-border-radius);border-end-end-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:576px){.card-group{flex-flow:wrap;display:flex}.card-group>.card{flex:1 0 0;margin-bottom:0}.card-group>.card+.card{border-inline-start:0;margin-inline-start:0}.card-group>.card:not(:last-child){border-start-end-radius:0;border-end-end-radius:0}.card-group>.card:not(:last-child)>.card-img-top,.card-group>.card:not(:last-child)>.card-header,.card-group>.card:not(:last-child)>.card-body{border-start-end-radius:0}.card-group>.card:not(:last-child)>.card-img-bottom,.card-group>.card:not(:last-child)>.card-footer,.card-group>.card:not(:last-child)>.card-body{border-end-end-radius:0}.card-group>.card:not(:first-child){border-start-start-radius:0;border-end-start-radius:0}.card-group>.card:not(:first-child)>.card-img-top,.card-group>.card:not(:first-child)>.card-header,.card-group>.card:not(:first-child)>.card-body{border-start-start-radius:0}.card-group>.card:not(:first-child)>.card-img-bottom,.card-group>.card:not(:first-child)>.card-footer,.card-group>.card:not(:first-child)>.card-body{border-end-start-radius:0}}.carousel{--bs-carousel-control-color:#fff;--bs-carousel-control-width:15%;--bs-carousel-control-opacity:.5;--bs-carousel-control-hover-opacity:.9;--bs-carousel-control-transition:opacity .15s ease;--bs-carousel-control-icon-filter:none;--bs-carousel-indicator-width:30px;--bs-carousel-indicator-height:3px;--bs-carousel-indicator-hit-area-height:10px;--bs-carousel-indicator-spacer:3px;--bs-carousel-indicator-opacity:.5;--bs-carousel-indicator-active-bg:var(--bs-white);--bs-carousel-indicator-active-opacity:1;--bs-carousel-indicator-transition:opacity .6s ease;--bs-carousel-caption-width:70%;--bs-carousel-caption-color:var(--bs-white);--bs-carousel-caption-padding-y:1.25rem;--bs-carousel-caption-spacer:1.25rem;--bs-carousel-control-icon-width:2rem;--bs-carousel-control-prev-icon-bg:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/></svg>");--bs-carousel-control-next-icon-bg:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/></svg>");--bs-carousel-transition-duration:.6s;--bs-carousel-transition:transform .6s ease-in-out;position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{width:100%;display:flow-root;position:relative;overflow:hidden}.carousel-item{float:inline-start;backface-visibility:hidden;width:100%;transition:var(--bs-carousel-transition);margin-inline-end:-100%;display:none;position:relative}@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-start),.active.carousel-item-end{transform:translate(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s var(--bs-carousel-transition-duration)}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{z-index:1;width:var(--bs-carousel-control-width);color:var(--bs-carousel-control-color);text-align:center;filter:var(--bs-carousel-control-icon-filter);opacity:var(--bs-carousel-control-opacity);transition:var(--bs-carousel-control-transition);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;inset-block:0}@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:var(--bs-carousel-control-color);opacity:var(--bs-carousel-control-hover-opacity);outline:0;text-decoration:none}.carousel-control-prev{background-image:linear-gradient(90deg,#00000040,#0000);inset-inline-start:0}.carousel-control-next{background-image:linear-gradient(270deg,#00000040,#0000);inset-inline-end:0}.carousel-control-prev-icon,.carousel-control-next-icon{width:var(--bs-carousel-control-icon-width);height:var(--bs-carousel-control-icon-width);background-position:50%;background-repeat:no-repeat;background-size:100% 100%;display:inline-block}.carousel-control-prev-icon{background-image:var(--bs-carousel-control-prev-icon-bg)}[dir=rtl] .carousel-control-prev-icon,.carousel-control-next-icon{background-image:var(--bs-carousel-control-next-icon-bg)}[dir=rtl] .carousel-control-next-icon{background-image:var(--bs-carousel-control-prev-icon-bg)}.carousel-indicators{z-index:2;margin-inline:var(--bs-carousel-control-width);justify-content:center;margin-bottom:1rem;padding:0;display:flex;position:absolute;inset:auto 0 0}.carousel-indicators [data-bs-target]{box-sizing:content-box;width:var(--bs-carousel-indicator-width);height:var(--bs-carousel-indicator-height);margin-inline:var(--bs-carousel-indicator-spacer);text-indent:-999px;cursor:pointer;background-color:var(--bs-carousel-indicator-active-bg);border:0;border-block:var(--bs-carousel-indicator-hit-area-height) solid transparent;opacity:var(--bs-carousel-indicator-opacity);transition:var(--bs-carousel-indicator-transition);background-clip:padding-box;flex:0 auto;padding:0}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:var(--bs-carousel-indicator-active-opacity)}.carousel-caption{right:calc((100% - var(--bs-carousel-caption-width)) * .5);bottom:var(--bs-carousel-caption-spacer);left:calc((100% - var(--bs-carousel-caption-width)) * .5);padding-top:var(--bs-carousel-caption-padding-y);padding-bottom:var(--bs-carousel-caption-padding-y);color:var(--bs-carousel-caption-color);text-align:center;position:absolute}.carousel-dark{--bs-carousel-indicator-active-bg:#000;--bs-carousel-caption-color:#000;--bs-carousel-control-icon-filter:invert(1) grayscale(100)}@media (prefers-color-scheme:dark){:root{--bs-carousel-indicator-active-bg:#000;--bs-carousel-caption-color:#000;--bs-carousel-control-icon-filter:invert(1) grayscale(100)}}[data-vc=calendar]{--bs-datepicker-padding:1rem;--bs-datepicker-bg:var(--bs-bg-body);--bs-datepicker-color:var(--bs-fg-body);--bs-datepicker-border-color:var(--bs-border-color-translucent);--bs-datepicker-border-width:var(--bs-border-width);--bs-datepicker-border-radius:var(--bs-radius-7);--bs-datepicker-box-shadow:var(--bs-box-shadow);--bs-datepicker-font-size:var(--bs-font-size-sm);--bs-datepicker-min-width:280px;--bs-datepicker-zindex:1000;--bs-datepicker-header-font-weight:600;--bs-datepicker-weekday-color:var(--bs-fg-3);--bs-datepicker-day-hover-bg:var(--bs-bg-1);--bs-datepicker-day-selected-bg:var(--bs-primary-bg);--bs-datepicker-day-selected-color:var(--bs-primary-contrast);--bs-datepicker-day-today-bg:var(--bs-bg-2);--bs-datepicker-day-today-color:var(--bs-fg-1);--bs-datepicker-day-disabled-color:var(--bs-fg-4);z-index:var(--bs-datepicker-zindex);box-sizing:border-box;min-width:var(--bs-datepicker-min-width);padding:var(--bs-datepicker-padding);font-family:var(--bs-font-sans-serif);font-size:var(--bs-datepicker-font-size);color:var(--bs-datepicker-color);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;background-color:var(--bs-datepicker-bg);border:var(--bs-datepicker-border-width) solid var(--bs-datepicker-border-color);box-shadow:var(--bs-datepicker-box-shadow);opacity:1;border-radius:var(--bs-datepicker-border-radius);flex-direction:column;display:flex;position:absolute}@media (prefers-color-scheme:dark){[data-vc=calendar]{--lightningcss-light: ;--lightningcss-dark:initial}}[data-vc=calendar][data-bs-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-vc=calendar][data-bs-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-vc=calendar] button:focus-visible{z-index:1;outline:var(--bs-focus-ring);position:relative}[data-vc-calendar-hidden]{pointer-events:none;opacity:0}[data-vc=calendar]:not([data-vc-input]){width:fit-content;box-shadow:none;border:0;padding:0;position:relative}[data-vc-position=bottom]{margin-block-start:.25rem}[data-vc-position=top]{margin-block-end:-.25rem}[data-vc-arrow]{width:2rem;height:2rem;color:var(--bs-datepicker-color);pointer-events:auto;cursor:pointer;border-radius:var(--bs-radius-5);background-color:#0000;border:0;display:block;position:relative}[data-vc-arrow]:before{content:"";background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%236b7280' d='M12 16c-.3 0-.5-.1-.7-.3l-6-6c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l5.3 5.3 5.3-5.3c.4-.4 1-.4 1.4 0s.4 1 0 1.4l-6 6c-.2.2-.4.3-.7.3'/></svg>");background-position:50%;background-repeat:no-repeat;position:absolute;inset:.25rem}[data-vc-arrow]:hover{background-color:var(--bs-datepicker-day-hover-bg)}[data-vc-arrow=prev]:before{transform:rotate(90deg)}[data-vc-arrow=next]:before{transform:rotate(-90deg)}[data-vc=controls]{z-index:20;pointer-events:none;justify-content:space-between;align-items:center;padding-top:1rem;padding-left:1rem;padding-right:1rem;display:flex;position:absolute;top:0;left:0;right:0}[data-vc=grid]{flex-wrap:wrap;flex-grow:1;gap:1.75rem;display:flex}[data-vc=column]{flex-direction:column;flex-grow:1;min-width:240px;display:flex}[data-vc=header]{align-items:center;margin-bottom:.75rem;display:flex;position:relative}[data-vc-header=content]{white-space:pre-wrap;flex-grow:1;justify-content:center;align-items:center;display:inline-flex}[data-vc=month],[data-vc=year]{font-size:1rem;font-weight:var(--bs-datepicker-header-font-weight);color:var(--bs-datepicker-color);border-radius:var(--bs-radius-5);background-color:#0000;border:0;margin-inline:-.125rem;padding:.25rem .5rem}[data-vc=month]:disabled,[data-vc=year]:disabled{color:var(--bs-datepicker-day-disabled-color);pointer-events:none}[data-vc=month]:hover:not(:disabled),[data-vc=year]:hover:not(:disabled){background-color:var(--bs-datepicker-day-hover-bg)}[data-vc=content]{flex-direction:column;flex-grow:1;display:flex}[data-vc=months],[data-vc=years]{grid-template-columns:repeat(var(--bs-vc-columns,4), minmax(0, 1fr));-moz-column-gap:.25rem;flex-grow:1;align-items:center;gap:1rem .25rem;display:grid}[data-vc=years]{--bs-vc-columns:5}[data-vc-months-month],[data-vc-years-year]{height:2.5rem;color:var(--bs-datepicker-weekday-color);text-align:center;word-break:break-all;cursor:pointer;border-radius:var(--bs-radius-5);background-color:#0000;border:0;justify-content:center;align-items:center;padding:.25rem;font-size:.75rem;font-weight:600;line-height:1rem;display:flex}[data-vc-months-month]:disabled,[data-vc-years-year]:disabled{color:var(--bs-datepicker-day-disabled-color);pointer-events:none}[data-vc-months-month]:hover:not(:disabled),[data-vc-years-year]:hover:not(:disabled){background-color:var(--bs-datepicker-day-hover-bg)}[data-vc-months-month][data-vc-months-month-selected],[data-vc-months-month][data-vc-years-year-selected],[data-vc-years-year][data-vc-months-month-selected],[data-vc-years-year][data-vc-years-year-selected],[data-vc-months-month][data-vc-months-month-selected]:hover,[data-vc-months-month][data-vc-years-year-selected]:hover,[data-vc-years-year][data-vc-months-month-selected]:hover,[data-vc-years-year][data-vc-years-year-selected]:hover{color:var(--bs-datepicker-day-selected-color);background-color:var(--bs-datepicker-day-selected-bg)}[data-vc=week]{grid-template-columns:repeat(7,1fr);justify-items:center;margin-bottom:.5rem;display:grid}[data-vc-week-day]{width:100%;min-width:1.875rem;color:var(--bs-datepicker-weekday-color);background-color:#0000;border:0;justify-content:center;align-items:center;margin:0;padding:0;font-size:.75rem;font-weight:600;line-height:1rem;display:flex}button[data-vc-week-day]{cursor:pointer}[data-vc=dates]{pointer-events:none}[data-vc-dates=row]{grid-template-columns:repeat(7,1fr);place-items:center;width:100%;display:grid}[data-vc-date]{pointer-events:auto;justify-content:center;align-items:center;width:100%;padding-top:.125rem;padding-bottom:.125rem;display:flex;position:relative}[data-vc-date]:not(:has([data-vc-date-btn])),[data-vc-date][data-vc-date-disabled],[data-vc-date][data-vc-date-disabled] [data-vc-date-btn]{pointer-events:none}[data-vc-date-btn]{width:100%;min-width:1.875rem;height:100%;min-height:1.875rem;color:var(--bs-datepicker-color);cursor:pointer;border-radius:var(--bs-radius-5);background-color:#0000;border:0;justify-content:center;align-items:center;padding:0;font-size:.75rem;font-weight:400;line-height:1rem;display:flex}[data-vc-date-btn]:hover{background-color:var(--bs-datepicker-day-hover-bg)}[data-vc-date-today] [data-vc-date-btn]{color:var(--bs-datepicker-day-today-color);background-color:var(--bs-datepicker-day-today-bg);font-weight:600}[data-vc-date-month=next] [data-vc-date-btn],[data-vc-date-month=prev] [data-vc-date-btn]{opacity:.5}[data-vc-date-disabled] [data-vc-date-btn]{color:var(--bs-datepicker-day-disabled-color)}[data-vc-date-hover] [data-vc-date-btn]{background-color:var(--bs-datepicker-day-hover-bg);border-radius:0}[data-vc-date-hover=first] [data-vc-date-btn]{border-start-start-radius:var(--bs-radius-5);border-end-start-radius:var(--bs-radius-5)}[data-vc-date-hover=last] [data-vc-date-btn]{border-start-end-radius:var(--bs-radius-5);border-end-end-radius:var(--bs-radius-5)}[data-vc-date-hover=first-and-last] [data-vc-date-btn]{border-radius:var(--bs-radius-5)}[data-vc-date-selected=middle] [data-vc-date-btn]{opacity:.8;border-radius:0}[data-vc-date-selected] [data-vc-date-btn]{color:var(--bs-datepicker-day-selected-color);background-color:var(--bs-datepicker-day-selected-bg)}[data-vc-date-selected=first] [data-vc-date-btn]{border-top-left-radius:var(--bs-radius-5);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--bs-radius-5)}[data-vc-date-selected=last] [data-vc-date-btn]{border-top-left-radius:0;border-top-right-radius:var(--bs-radius-5);border-bottom-right-radius:var(--bs-radius-5);border-bottom-left-radius:0}[data-vc-date-selected=first-and-last] [data-vc-date-btn]{border-radius:var(--bs-radius-5)}.dialog-open{overflow:hidden}.dialog{--bs-dialog-padding:1rem;--bs-dialog-width:500px;--bs-dialog-margin:1.75rem;--bs-dialog-color:var(--bs-fg-body);--bs-dialog-bg:var(--bs-bg-body);--bs-dialog-border-color:var(--bs-border-color-translucent);--bs-dialog-border-width:var(--bs-border-width);--bs-dialog-border-radius:var(--bs-radius-7);--bs-dialog-box-shadow:var(--bs-box-shadow-lg);--bs-dialog-transition-duration:.3s;--bs-dialog-transition-timing:cubic-bezier(.22, 1, .36, 1);--bs-dialog-backdrop-bg:#00000080;--bs-dialog-backdrop-blur:8px;--bs-dialog-header-padding:1rem;--bs-dialog-header-border-color:var(--bs-border-color);--bs-dialog-header-border-width:var(--bs-border-width);--bs-dialog-footer-padding:1rem;--bs-dialog-footer-border-color:var(--bs-border-color);--bs-dialog-footer-border-width:var(--bs-border-width);--bs-dialog-footer-gap:.5rem;width:var(--bs-dialog-width);max-width:calc(100% - var(--bs-dialog-margin) * 2);max-height:calc(100% - var(--bs-dialog-margin) * 2);color:var(--bs-dialog-color);visibility:hidden;background-color:var(--bs-dialog-bg);border:var(--bs-dialog-border-width) solid var(--bs-dialog-border-color);border-radius:var(--bs-dialog-border-radius);box-shadow:var(--bs-dialog-box-shadow);background-clip:padding-box;flex-direction:column;margin:auto;padding:0;display:flex;overflow:visible}.dialog:not(.dialog-instant){opacity:0;transition:opacity var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), transform var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), visibility 0s var(--bs-dialog-transition-duration)}@media (prefers-reduced-motion:reduce){.dialog:not(.dialog-instant){transition:none}}.dialog:not(.dialog-instant).dialog-slide-down{transform:translateY(-3rem)}.dialog:not(.dialog-instant).dialog-slide-up{transform:translateY(3rem)}.dialog:not(.dialog-instant)[open]:not(.hiding){visibility:visible;opacity:1;transition:opacity var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), transform var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), visibility 0s;overflow:visible}@media (prefers-reduced-motion:reduce){.dialog:not(.dialog-instant)[open]:not(.hiding){transition:none}}.dialog:not(.dialog-instant)[open]:not(.hiding){transform:none}.dialog:not(.dialog-instant)[open].dialog-static:not(.hiding){transform:scale(1.02)}.dialog:not(.dialog-instant)::backdrop{background-color:var(--bs-dialog-backdrop-bg);-webkit-backdrop-filter:blur(var(--bs-dialog-backdrop-blur));backdrop-filter:blur(var(--bs-dialog-backdrop-blur));transition:background-color var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), display var(--bs-dialog-transition-duration) allow-discrete, overlay var(--bs-dialog-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing);transition:background-color var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), backdrop-filter var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), display var(--bs-dialog-transition-duration) allow-discrete, overlay var(--bs-dialog-transition-duration) allow-discrete;transition:background-color var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), backdrop-filter var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), display var(--bs-dialog-transition-duration) allow-discrete, overlay var(--bs-dialog-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing)}@media (prefers-reduced-motion:reduce){.dialog:not(.dialog-instant)::backdrop{transition:none}}.dialog:not(.dialog-instant).hiding::backdrop{-webkit-backdrop-filter:blur();backdrop-filter:blur();background-color:#0000}.dialog.dialog-instant::backdrop{background-color:var(--bs-dialog-backdrop-bg);-webkit-backdrop-filter:blur(var(--bs-dialog-backdrop-blur));backdrop-filter:blur(var(--bs-dialog-backdrop-blur))}.dialog[open]:not(.hiding){visibility:visible;opacity:1;overflow:visible;transform:none}.dialog.dialog-nonmodal{z-index:1055;margin-inline:0;position:fixed;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%)}.dialog.dialog-scrollable[open]{max-height:calc(100% - var(--bs-dialog-margin) * 2)}.dialog.dialog-scrollable[open] .dialog-body{overflow-y:auto}@starting-style{.dialog:not(.dialog-instant)::backdrop{-webkit-backdrop-filter:blur();backdrop-filter:blur();background-color:#0000}.dialog.dialog-swap-in:not(.dialog-instant)::backdrop{background-color:var(--bs-dialog-backdrop-bg);-webkit-backdrop-filter:blur(var(--bs-dialog-backdrop-blur));backdrop-filter:blur(var(--bs-dialog-backdrop-blur))}}.dialog-sm{--bs-dialog-width:280px}.dialog-lg{--bs-dialog-width:800px}.dialog-xl{--bs-dialog-width:1140px}.dialog-fullscreen{--bs-dialog-width:100vw;--bs-dialog-margin:0;--bs-dialog-border-radius:0;width:100%;max-width:none;height:100%;max-height:none}@media not (min-width:576px){.sm-down\:dialog-fullscreen{--bs-dialog-width:100vw;--bs-dialog-margin:0;--bs-dialog-border-radius:0;width:100%;max-width:none;height:100%;max-height:none}}@media not (min-width:768px){.md-down\:dialog-fullscreen{--bs-dialog-width:100vw;--bs-dialog-margin:0;--bs-dialog-border-radius:0;width:100%;max-width:none;height:100%;max-height:none}}@media not (min-width:1024px){.lg-down\:dialog-fullscreen{--bs-dialog-width:100vw;--bs-dialog-margin:0;--bs-dialog-border-radius:0;width:100%;max-width:none;height:100%;max-height:none}}@media not (min-width:1280px){.xl-down\:dialog-fullscreen{--bs-dialog-width:100vw;--bs-dialog-margin:0;--bs-dialog-border-radius:0;width:100%;max-width:none;height:100%;max-height:none}}@media not (min-width:1536px){.\32 xl-down\:dialog-fullscreen{--bs-dialog-width:100vw;--bs-dialog-margin:0;--bs-dialog-border-radius:0;width:100%;max-width:none;height:100%;max-height:none}}.dialog-header{padding:var(--bs-dialog-header-padding);border-block-end:var(--bs-dialog-header-border-width) solid var(--bs-dialog-header-border-color);flex-shrink:0;align-items:center;display:flex}.dialog-header .btn-close{margin-inline-start:auto}.dialog-title{line-height:1.5;font-size:var(--bs-font-size-md);margin-bottom:0}.dialog-body{padding:var(--bs-dialog-padding);flex:auto;position:relative}.dialog-footer{gap:var(--bs-dialog-footer-gap);padding:var(--bs-dialog-footer-padding);border-block-start:var(--bs-dialog-footer-border-width) solid var(--bs-dialog-footer-border-color);flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;display:flex}.menu{--bs-menu-zindex:1000;--bs-menu-gap:.125rem;--bs-menu-min-width:10rem;--bs-menu-padding-x:.25rem;--bs-menu-padding-y:.25rem;--bs-menu-spacer:.125rem;--bs-menu-font-size:var(--bs-font-size-sm);--bs-menu-color:var(--bs-fg-body);--bs-menu-bg:var(--bs-bg-body);--bs-menu-box-shadow:var(--bs-box-shadow);--bs-menu-divider-bg:var(--bs-border-color-translucent);--bs-menu-divider-margin-y:.125rem;--bs-menu-divider-margin-x:.25rem;--bs-menu-item-color:var(--bs-menu-color,var(--bs-fg-body));--bs-menu-item-hover-color:var(--bs-menu-color,var(--bs-fg-body));--bs-menu-item-hover-bg:var(--bs-bg-1);--bs-menu-item-active-color:var(--bs-primary-contrast);--bs-menu-item-active-bg:var(--bs-primary-bg);--bs-menu-item-disabled-color:var(--bs-fg-3);--bs-menu-item-gap:.5rem;--bs-menu-item-padding-x:.75rem;--bs-menu-item-padding-y:.25rem;--bs-menu-item-border-radius:var(--bs-radius-5);--bs-menu-icon-size:1rem;--bs-menu-image-size:1.5rem;--bs-menu-description-font-size:var(--bs-font-size-xs);--bs-menu-check-color:currentcolor;--bs-menu-header-color:var(--bs-fg-3);--bs-menu-header-padding-x:.75rem;--bs-menu-header-padding-y:.25rem;--bs-menu-transition-duration:.15s;--bs-menu-transition-timing:cubic-bezier(.22, 1, .36, 1);z-index:var(--bs-menu-zindex);gap:var(--bs-menu-gap);min-width:var(--bs-menu-min-width);max-height:var(--bs-menu-max-height,none);padding:var(--bs-menu-padding-y) var(--bs-menu-padding-x);overflow-y:var(--bs-menu-overflow-y,initial);overscroll-behavior:contain;font-size:var(--bs-menu-font-size);color:var(--bs-menu-color);text-align:start;background-color:var(--bs-menu-bg);border:var(--bs-menu-border-width,var(--bs-border-width)) solid var(--bs-menu-border-color,var(--bs-border-color-translucent));border-radius:var(--bs-menu-border-radius,var(--bs-radius-7));box-shadow:var(--bs-menu-box-shadow);opacity:0;transform-origin:top start;background-clip:padding-box;flex-direction:column;margin:0;list-style:none;display:none;position:absolute;transform:scale(.95)}.menu[data-bs-placement^=top]{transform-origin:bottom start}.menu[data-bs-placement=bottom-end]{transform-origin:top end}.menu[data-bs-placement=top-end]{transform-origin:bottom end}.menu[data-bs-placement^=left]{transform-origin:top end}.menu{transition:opacity var(--bs-menu-transition-duration) var(--bs-menu-transition-timing), transform var(--bs-menu-transition-duration) var(--bs-menu-transition-timing), display var(--bs-menu-transition-duration) allow-discrete}@media (prefers-reduced-motion:reduce){.menu{transition:none}}.menu.show{opacity:1;display:flex;transform:none}@starting-style{.menu.show{opacity:0;transform:scale(.95)}}.menu-scrollable{--bs-menu-max-height:80dvh;--bs-menu-overflow-y:auto}.menu-translucent{--bs-menu-item-hover-bg-light:color-mix(in oklch, var(--bs-bg-1) 90%, transparent);--bs-menu-item-hover-bg-dark:color-mix(in oklch, var(--bs-bg-1) 80%, transparent);--bs-menu-item-active-bg-light:color-mix(in oklch, var(--bs-primary-bg) 80%, transparent);--bs-menu-item-active-bg-dark:color-mix(in oklch, var(--bs-primary-bg) 70%, transparent);--bs-menu-item-active-bg:var(--lightningcss-light,var(--bs-menu-item-active-bg-light))var(--lightningcss-dark,var(--bs-menu-item-active-bg-dark));--bs-menu-item-hover-bg:var(--lightningcss-light,var(--bs-menu-item-hover-bg-light))var(--lightningcss-dark,var(--bs-menu-item-hover-bg-dark));background-color:color-mix(in oklch, var(--bs-menu-bg) 80%, transparent);-webkit-backdrop-filter:blur(5px)saturate(180%);backdrop-filter:blur(5px)saturate(180%)}.menu-divider{height:0;margin:var(--bs-menu-divider-margin-y) var(--bs-menu-divider-margin-x);border-block-start:1px solid var(--bs-menu-divider-bg);opacity:1;overflow:hidden}.menu-item{gap:var(--bs-menu-item-gap);width:100%;padding:var(--bs-menu-item-padding-y) var(--bs-menu-item-padding-x);font-weight:var(--bs-menu-item-font-weight,var(--bs-font-weight-normal));color:var(--bs-theme-fg,var(--bs-menu-item-color));text-align:inherit;white-space:nowrap;cursor:pointer;border-radius:var(--bs-menu-item-border-radius,0);background-color:#0000;border:0;outline:0;align-items:center;text-decoration:none;display:flex}.menu-item:hover,.menu-item:focus{color:var(--bs-theme-fg-emphasis,var(--bs-menu-item-hover-color));background-color:var(--bs-theme-bg-subtle,var(--bs-menu-item-hover-bg))}.menu-item.active,.menu-item:active{color:var(--bs-theme-contrast,var(--bs-menu-item-active-color));background-color:var(--bs-theme-bg,var(--bs-menu-item-active-bg))}.menu-item.active .menu-item-icon,.menu-item:active .menu-item-icon{color:inherit!important}.menu-item.selected{font-weight:600}.menu-item.disabled,.menu-item:disabled{color:var(--bs-menu-item-disabled-color);pointer-events:none;background-color:#0000;background-image:none}.menu-item-icon{width:var(--bs-menu-icon-size);flex-shrink:0;align-self:flex-start;height:auto;margin-top:.125rem}.menu-image{width:var(--bs-menu-image-size);height:var(--bs-menu-image-size);-o-object-fit:cover;object-fit:cover;border-radius:var(--bs-radius-5)}.menu-item-content{flex-direction:column;flex:1;min-width:fit-content;display:flex}.menu-item-description{font-size:var(--bs-menu-description-font-size);font-weight:var(--bs-font-weight-normal);color:color-mix(in oklch, currentcolor 65%, transparent)}.menu-item-check{color:var(--bs-menu-check-color);visibility:hidden;flex-shrink:0;align-self:flex-start;margin-block-start:.125rem;margin-inline-start:auto}.selected>.menu-item-check{visibility:visible}.menu-header{padding:var(--bs-menu-header-padding-y) var(--bs-menu-header-padding-x);font-size:var(--bs-font-size-sm);color:var(--bs-menu-header-color);white-space:nowrap;margin-bottom:0;display:block}.menu-text{padding:var(--bs-menu-item-padding-y) var(--bs-menu-item-padding-x);color:var(--bs-fg-2);display:block}.submenu{position:relative}.submenu>.menu-item{justify-content:space-between;align-items:center;display:flex}.submenu>.menu-item:after{content:"";border:.125em solid;border-width:0 .125em .125em 0;flex-shrink:0;width:.375em;height:.375em;margin-inline-start:auto;display:inline-block;transform:rotate(-45deg)}[dir=rtl] .submenu>.menu-item:after{transform:rotate(135deg)}.submenu>.menu{margin-top:calc(-1 * var(--bs-menu-padding-y));top:0}.submenu:hover>.menu-item,.submenu:focus-within>.menu-item,.submenu.show>.menu-item{color:var(--bs-menu-item-hover-color);background-color:var(--bs-menu-item-hover-bg)}@media (max-width:575.98px){.submenu:has(.submenu-stacked){position:static}.submenu-stacked{z-index:1;gap:var(--bs-menu-gap);min-width:0;padding:var(--bs-menu-padding-y) var(--bs-menu-padding-x);background-color:var(--bs-menu-bg);box-shadow:none;border:0;border-radius:0;flex-direction:column;display:flex;position:absolute;inset:0}.submenu-back{gap:var(--bs-menu-item-gap);padding:var(--bs-menu-item-padding-y) var(--bs-menu-item-padding-x);font-weight:var(--bs-font-weight-semibold,600);color:var(--bs-menu-item-color);align-items:center;display:flex}.submenu-back:before{content:"";border:0 solid;border-width:.125em 0 0 .125em;flex-shrink:0;width:.375em;height:.375em;display:inline-block;transform:rotate(-45deg)}[dir=rtl] .submenu-back:before{border-width:0 .125em .125em 0}.submenu-dimmed{pointer-events:none;filter:blur(2px);opacity:.3}}.list-group{--bs-list-group-color:var(--bs-fg-body);--bs-list-group-bg:var(--bs-bg-body);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-radius-5);--bs-list-group-item-padding-x:var(--bs-spacer);--bs-list-group-item-padding-y:var(--bs-spacer-2);--bs-list-group-action-color:var(--bs-fg-2);--bs-list-group-action-hover-color:var(--bs-fg-1);--bs-list-group-action-hover-bg:var(--bs-bg-1);--bs-list-group-action-active-color:var(--bs-fg-body);--bs-list-group-action-active-bg:var(--bs-bg-2);--bs-list-group-disabled-color:var(--bs-fg-3);--bs-list-group-disabled-bg:var(--bs-bg-body);--bs-list-group-active-color:var(--bs-primary-contrast);--bs-list-group-active-bg:var(--bs-primary-bg);--bs-list-group-active-border-color:var(--bs-primary-bg);border-radius:var(--bs-list-group-border-radius);flex-direction:column;margin-bottom:0;padding-inline-start:0;display:flex}.list-group-numbered{counter-reset:section;list-style-type:none}.list-group-numbered>.list-group-item:before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item{padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-theme-fg,var(--bs-list-group-color));background-color:var(--bs-theme-bg-subtle,var(--bs-list-group-bg));border:var(--bs-list-group-border-width) solid var(--bs-theme-border,var(--bs-list-group-border-color));display:block;position:relative}.list-group-item:first-child{border-start-start-radius:inherit;border-start-end-radius:inherit}.list-group-item:last-child{border-end-end-radius:inherit;border-end-start-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-block-start-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-block-start-width:var(--bs-list-group-border-width)}.list-group-item-action{width:100%;color:var(--bs-theme-fg,var(--bs-list-group-action-color));text-align:inherit;text-decoration:none}.list-group-item-action:not(.active):hover,.list-group-item-action:not(.active):focus{z-index:1;color:var(--bs-theme-fg-emphasis,var(--bs-list-group-action-hover-color));background-color:var(--bs-theme-bg-muted,var(--bs-list-group-action-hover-bg));text-decoration:none}.list-group-item-action:not(.active):active{color:var(--bs-theme-fg-emphasis,var(--bs-list-group-action-active-color));background-color:var(--bs-theme-bg-muted,var(--bs-list-group-action-active-bg))}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-start-end-radius:0;border-end-start-radius:var(--bs-list-group-border-radius)}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-start-end-radius:var(--bs-list-group-border-radius);border-end-start-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-block-start-width:var(--bs-list-group-border-width);border-inline-start-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{border-inline-start-width:var(--bs-list-group-border-width);margin-inline-start:calc(-1 * var(--bs-list-group-border-width))}@media (min-width:576px){.sm\:list-group-horizontal{flex-direction:row}.sm\:list-group-horizontal>.list-group-item:first-child:not(:last-child){border-start-end-radius:0;border-end-start-radius:var(--bs-list-group-border-radius)}.sm\:list-group-horizontal>.list-group-item:last-child:not(:first-child){border-start-end-radius:var(--bs-list-group-border-radius);border-end-start-radius:0}.sm\:list-group-horizontal>.list-group-item.active{margin-top:0}.sm\:list-group-horizontal>.list-group-item+.list-group-item{border-block-start-width:var(--bs-list-group-border-width);border-inline-start-width:0}.sm\:list-group-horizontal>.list-group-item+.list-group-item.active{border-inline-start-width:var(--bs-list-group-border-width);margin-inline-start:calc(-1 * var(--bs-list-group-border-width))}}@media (min-width:768px){.md\:list-group-horizontal{flex-direction:row}.md\:list-group-horizontal>.list-group-item:first-child:not(:last-child){border-start-end-radius:0;border-end-start-radius:var(--bs-list-group-border-radius)}.md\:list-group-horizontal>.list-group-item:last-child:not(:first-child){border-start-end-radius:var(--bs-list-group-border-radius);border-end-start-radius:0}.md\:list-group-horizontal>.list-group-item.active{margin-top:0}.md\:list-group-horizontal>.list-group-item+.list-group-item{border-block-start-width:var(--bs-list-group-border-width);border-inline-start-width:0}.md\:list-group-horizontal>.list-group-item+.list-group-item.active{border-inline-start-width:var(--bs-list-group-border-width);margin-inline-start:calc(-1 * var(--bs-list-group-border-width))}}@media (min-width:1024px){.lg\:list-group-horizontal{flex-direction:row}.lg\:list-group-horizontal>.list-group-item:first-child:not(:last-child){border-start-end-radius:0;border-end-start-radius:var(--bs-list-group-border-radius)}.lg\:list-group-horizontal>.list-group-item:last-child:not(:first-child){border-start-end-radius:var(--bs-list-group-border-radius);border-end-start-radius:0}.lg\:list-group-horizontal>.list-group-item.active{margin-top:0}.lg\:list-group-horizontal>.list-group-item+.list-group-item{border-block-start-width:var(--bs-list-group-border-width);border-inline-start-width:0}.lg\:list-group-horizontal>.list-group-item+.list-group-item.active{border-inline-start-width:var(--bs-list-group-border-width);margin-inline-start:calc(-1 * var(--bs-list-group-border-width))}}@media (min-width:1280px){.xl\:list-group-horizontal{flex-direction:row}.xl\:list-group-horizontal>.list-group-item:first-child:not(:last-child){border-start-end-radius:0;border-end-start-radius:var(--bs-list-group-border-radius)}.xl\:list-group-horizontal>.list-group-item:last-child:not(:first-child){border-start-end-radius:var(--bs-list-group-border-radius);border-end-start-radius:0}.xl\:list-group-horizontal>.list-group-item.active{margin-top:0}.xl\:list-group-horizontal>.list-group-item+.list-group-item{border-block-start-width:var(--bs-list-group-border-width);border-inline-start-width:0}.xl\:list-group-horizontal>.list-group-item+.list-group-item.active{border-inline-start-width:var(--bs-list-group-border-width);margin-inline-start:calc(-1 * var(--bs-list-group-border-width))}}@media (min-width:1536px){.\32 xl\:list-group-horizontal{flex-direction:row}.\32 xl\:list-group-horizontal>.list-group-item:first-child:not(:last-child){border-start-end-radius:0;border-end-start-radius:var(--bs-list-group-border-radius)}.\32 xl\:list-group-horizontal>.list-group-item:last-child:not(:first-child){border-start-end-radius:var(--bs-list-group-border-radius);border-end-start-radius:0}.\32 xl\:list-group-horizontal>.list-group-item.active{margin-top:0}.\32 xl\:list-group-horizontal>.list-group-item+.list-group-item{border-block-start-width:var(--bs-list-group-border-width);border-inline-start-width:0}.\32 xl\:list-group-horizontal>.list-group-item+.list-group-item.active{border-inline-start-width:var(--bs-list-group-border-width);margin-inline-start:calc(-1 * var(--bs-list-group-border-width))}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-block-end-width:0}.nav{--bs-nav-gap:.125rem;--bs-nav-link-gap:.5rem;--bs-nav-link-align:center;--bs-nav-link-justify:center;--bs-nav-link-padding-x:.75rem;--bs-nav-link-padding-y:.375rem;--bs-nav-link-color:var(--bs-fg-2);--bs-nav-link-hover-color:var(--bs-fg-1);--bs-nav-link-hover-bg:var(--bs-bg-1);--bs-nav-link-active-color:var(--bs-fg-body);--bs-nav-link-active-bg:var(--bs-bg-2);--bs-nav-link-disabled-color:var(--bs-fg-4);--bs-nav-link-border-width:var(--bs-border-width);--bs-nav-link-transition-property:color, background-color, border-color;--bs-nav-link-transition-timing:.15s ease-in-out;--bs-nav-link-transition:var(--bs-nav-link-transition-property) var(--bs-nav-link-transition-timing);gap:var(--bs-nav-gap);flex-wrap:wrap;margin-bottom:0;padding-inline-start:0;list-style:none;display:flex}.nav-item{display:flex}.nav-link{gap:var(--bs-nav-link-gap);align-items:var(--bs-nav-link-align);justify-content:var(--bs-nav-link-justify);padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);white-space:nowrap;border:var(--bs-nav-link-border-width) solid transparent;border-radius:var(--bs-radius-5);transition:var(--bs-nav-link-transition);background:0 0;text-decoration:none;display:flex}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color);background-color:var(--bs-nav-link-hover-bg)}.nav-link:focus-visible{--bs-focus-ring-offset:1px;color:var(--bs-nav-link-hover-color);outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.nav-link.active,.nav-link:active{color:var(--bs-nav-link-active-color);background-color:var(--bs-nav-link-active-bg)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-radius-5);--bs-nav-tabs-link-hover-border-color:var(--bs-border-subtle);--bs-nav-tabs-link-active-color:var(--bs-fg-color);--bs-nav-tabs-link-active-bg:var(--bs-bg-body);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-bg-body);box-shadow:inset 0 calc(-1 * var(--bs-nav-tabs-border-width)) 0 var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{border:var(--bs-nav-tabs-border-width) solid transparent;border-bottom-color:var(--bs-nav-tabs-border-color);border-end-end-radius:0;border-end-start-radius:0}.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color);border-bottom-color:var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color);border-bottom-color:var(--bs-nav-tabs-link-active-bg)}.nav-tabs .menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-start-start-radius:0;border-start-end-radius:0}.nav-pills{--bs-nav-pills-bg:var(--bs-bg-1);--bs-nav-pills-padding:.25rem;--bs-nav-pills-border-radius:var(--bs-radius-9);--bs-nav-pills-link-active-color:var(--bs-primary-contrast);--bs-nav-pills-link-active-bg:var(--bs-primary-bg);--bs-nav-pills-link-border-radius:var(--bs-radius-9);padding:var(--bs-nav-pills-padding);background-color:var(--bs-nav-pills-bg);border-radius:var(--bs-nav-pills-border-radius);display:inline-flex}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-link-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg);background-image:var(--bs-gradient)}.nav-pills-vertical{flex-direction:column;align-items:stretch}.nav-pills-vertical .nav-item,.nav-pills-vertical .nav-link{width:100%}.nav-underline{--bs-nav-gap:1rem;--bs-nav-link-active-bg:transparent;--bs-nav-underline-border-width:.125rem;--bs-nav-underline-link-active-color:var(--bs-fg-color)}.nav-underline .nav-link{border:0;border-block-end:var(--bs-nav-underline-border-width) solid transparent;border-radius:0;padding-inline:0}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-block-end-color:currentColor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{color:var(--bs-nav-underline-link-active-color);border-block-end-color:currentColor;font-weight:700}.nav-fill>.nav-link,.nav-fill .nav-item{text-align:center;flex:auto}.nav-justified>.nav-link,.nav-justified .nav-item{text-align:center;flex-grow:1;flex-basis:0}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-overflow{flex-wrap:nowrap;min-width:0}.nav-pills.nav-overflow{display:flex}.navbar-nav.nav-overflow{flex:1 1 0}.nav-overflow-item{flex-shrink:0;margin-inline-start:auto}.nav-overflow [data-bs-nav-overflow=true]{display:none}.nav-overflow-keep{flex-shrink:0}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:.5rem;--bs-navbar-color:var(--bs-fg-2);--bs-navbar-hover-color:var(--bs-fg-1);--bs-navbar-disabled-color:var(--bs-fg-3);--bs-navbar-active-color:var(--bs-fg-body);--bs-navbar-brand-padding-y:.75rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:var(--bs-font-size-md);--bs-navbar-brand-font-weight:var(--bs-font-weight-medium);--bs-navbar-brand-color:var(--bs-fg-body);--bs-navbar-brand-hover-color:var(--bs-fg-body);--bs-navbar-nav-link-padding-x:.75rem;--bs-navbar-toggler-width:2rem;--bs-navbar-toggler-padding-y:.25rem;--bs-navbar-toggler-padding-x:.75rem;--bs-navbar-toggler-font-size:var(--bs-font-size-lg);--bs-navbar-toggler-border-color:color-mix(in oklch, var(--bs-fg-body) 15%, transparent);--bs-navbar-toggler-border-radius:var(--bs-radius-5);--bs-navbar-toggler-transition:box-shadow .15s ease-in-out;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x);color:var(--bs-navbar-color,var(--bs-fg-body));background-color:var(--bs-navbar-bg,var(--bs-bg-body));flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex;position:relative;container-type:inline-size}.navbar>.\32 xl\:container,.navbar>.xl\:container,.navbar>.lg\:container,.navbar>.md\:container,.navbar>.sm\:container,.navbar>.container,.navbar>.container-fluid{flex-wrap:inherit;justify-content:space-between;align-items:center;display:flex}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);font-size:var(--bs-navbar-brand-font-size);font-weight:var(--bs-navbar-brand-font-weight);color:var(--bs-navbar-brand-color);white-space:nowrap;margin-inline-end:var(--bs-navbar-brand-margin-end);text-decoration:none}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-gap:.25rem;--bs-nav-link-gap:.5rem;--bs-nav-link-padding-x:.5rem;--bs-nav-link-padding-y:.375rem;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-border-width:var(--bs-border-width);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-hover-bg:transparent;--bs-nav-link-active-color:var(--bs-navbar-active-color);--bs-nav-link-active-bg:transparent;--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);gap:var(--bs-nav-gap);flex-direction:column;margin-bottom:0;padding-inline-start:0;list-style:none;display:flex}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color);border:var(--bs-nav-link-border-width) solid var(--bs-nav-link-border-color,transparent)}.navbar-text{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-toggler{--bs-btn-bg:transparent;--bs-btn-hover-bg:var(--bs-bg-2)}.navbar-expand>.container,.navbar-expand>.container-fluid{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{--bs-nav-link-padding-x:var(--bs-navbar-nav-link-padding-x);flex-direction:row}.navbar-expand .navbar-toggler{display:none!important}.navbar-expand [class*=drawer]{z-index:auto;box-shadow:none;flex-grow:1;margin:0;padding:0;transition:none;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;display:flex!important;position:static!important;inset:auto!important;transform:none!important}.navbar-expand [class*=drawer] .drawer-header{display:none!important}.navbar-expand [class*=drawer] .drawer-body{flex-direction:row;flex-grow:1;align-items:center;padding:0;display:flex;overflow-y:visible}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}@container (width>=576px){.sm\:navbar-expand>.container,.sm\:navbar-expand>.container-fluid{flex-wrap:nowrap;justify-content:flex-start}.sm\:navbar-expand .navbar-nav{--bs-nav-link-padding-x:var(--bs-navbar-nav-link-padding-x);flex-direction:row}.sm\:navbar-expand .navbar-toggler{display:none!important}.sm\:navbar-expand [class*=drawer]{z-index:auto;box-shadow:none;flex-grow:1;margin:0;padding:0;transition:none;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;display:flex!important;position:static!important;inset:auto!important;transform:none!important}.sm\:navbar-expand [class*=drawer] .drawer-header{display:none!important}.sm\:navbar-expand [class*=drawer] .drawer-body{flex-direction:row;flex-grow:1;align-items:center;padding:0;display:flex;overflow-y:visible}}@container (width>=768px){.md\:navbar-expand>.container,.md\:navbar-expand>.container-fluid{flex-wrap:nowrap;justify-content:flex-start}.md\:navbar-expand .navbar-nav{--bs-nav-link-padding-x:var(--bs-navbar-nav-link-padding-x);flex-direction:row}.md\:navbar-expand .navbar-toggler{display:none!important}.md\:navbar-expand [class*=drawer]{z-index:auto;box-shadow:none;flex-grow:1;margin:0;padding:0;transition:none;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;display:flex!important;position:static!important;inset:auto!important;transform:none!important}.md\:navbar-expand [class*=drawer] .drawer-header{display:none!important}.md\:navbar-expand [class*=drawer] .drawer-body{flex-direction:row;flex-grow:1;align-items:center;padding:0;display:flex;overflow-y:visible}}@container (width>=1024px){.lg\:navbar-expand>.container,.lg\:navbar-expand>.container-fluid{flex-wrap:nowrap;justify-content:flex-start}.lg\:navbar-expand .navbar-nav{--bs-nav-link-padding-x:var(--bs-navbar-nav-link-padding-x);flex-direction:row}.lg\:navbar-expand .navbar-toggler{display:none!important}.lg\:navbar-expand [class*=drawer]{z-index:auto;box-shadow:none;flex-grow:1;margin:0;padding:0;transition:none;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;display:flex!important;position:static!important;inset:auto!important;transform:none!important}.lg\:navbar-expand [class*=drawer] .drawer-header{display:none!important}.lg\:navbar-expand [class*=drawer] .drawer-body{flex-direction:row;flex-grow:1;align-items:center;padding:0;display:flex;overflow-y:visible}}@container (width>=1280px){.xl\:navbar-expand>.container,.xl\:navbar-expand>.container-fluid{flex-wrap:nowrap;justify-content:flex-start}.xl\:navbar-expand .navbar-nav{--bs-nav-link-padding-x:var(--bs-navbar-nav-link-padding-x);flex-direction:row}.xl\:navbar-expand .navbar-toggler{display:none!important}.xl\:navbar-expand [class*=drawer]{z-index:auto;box-shadow:none;flex-grow:1;margin:0;padding:0;transition:none;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;display:flex!important;position:static!important;inset:auto!important;transform:none!important}.xl\:navbar-expand [class*=drawer] .drawer-header{display:none!important}.xl\:navbar-expand [class*=drawer] .drawer-body{flex-direction:row;flex-grow:1;align-items:center;padding:0;display:flex;overflow-y:visible}}@container (width>=1536px){.\32 xl\:navbar-expand>.container,.\32 xl\:navbar-expand>.container-fluid{flex-wrap:nowrap;justify-content:flex-start}.\32 xl\:navbar-expand .navbar-nav{--bs-nav-link-padding-x:var(--bs-navbar-nav-link-padding-x);flex-direction:row}.\32 xl\:navbar-expand .navbar-toggler{display:none!important}.\32 xl\:navbar-expand [class*=drawer]{z-index:auto;box-shadow:none;flex-grow:1;margin:0;padding:0;transition:none;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;display:flex!important;position:static!important;inset:auto!important;transform:none!important}.\32 xl\:navbar-expand [class*=drawer] .drawer-header{display:none!important}.\32 xl\:navbar-expand [class*=drawer] .drawer-body{flex-direction:row;flex-grow:1;align-items:center;padding:0;display:flex;overflow-y:visible}}.navbar [class*=drawer]:not([open],.hiding){transition:none!important}@media (prefers-reduced-motion:reduce){.navbar [class*=drawer]:not([open],.hiding){transition:none}}.navbar-translucent{background-color:#0000;position:relative}.navbar-translucent:before{z-index:-1;content:"";background-color:color-mix(in oklch, var(--bs-navbar-bg,var(--bs-bg-body)) 80%, transparent);-webkit-backdrop-filter:blur(5px)saturate(180%);backdrop-filter:blur(5px)saturate(180%);background-image:none;position:absolute;inset:0}.navbar[data-bs-theme=dark]{--bs-navbar-color:color-mix(in oklch, var(--bs-white) .55, transparent);--bs-navbar-hover-color:color-mix(in oklch, var(--bs-white) .75, transparent);--bs-navbar-disabled-color:color-mix(in oklch, var(--bs-white) .25, transparent);--bs-navbar-active-color:var(--bs-white);--bs-navbar-brand-color:var(--bs-white);--bs-navbar-brand-hover-color:var(--bs-white);--bs-navbar-toggler-border-color:color-mix(in oklch, var(--bs-white) .1, transparent)}@media not (min-width:576px){.sm\:drawer{z-index:var(--bs-drawer-zindex);width:auto;max-width:calc(100% - var(--bs-drawer-inset) * 2);height:auto;max-height:calc(100% - var(--bs-drawer-inset) * 2);color:var(--bs-drawer-color);visibility:hidden;background-color:var(--bs-drawer-bg);border:var(--bs-drawer-border-width) solid var(--bs-drawer-border-color);border-radius:var(--bs-drawer-border-radius);box-shadow:var(--bs-drawer-box-shadow);background-clip:padding-box;outline:0;flex-direction:column;margin:0;padding:0;display:flex;position:fixed;inset:auto}.sm\:drawer:where(.drawer-start){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-start:var(--bs-drawer-inset)}.sm\:drawer:where(.drawer-end){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-end:var(--bs-drawer-inset)}.sm\:drawer:where(.drawer-top){inset:var(--bs-drawer-inset) var(--bs-drawer-inset) auto;height:var(--bs-drawer-height)}.sm\:drawer:where(.drawer-bottom){inset:auto var(--bs-drawer-inset) var(--bs-drawer-inset);height:var(--bs-drawer-height)}.sm\:drawer:where(.drawer-fullscreen){inset:var(--bs-drawer-inset);width:auto;max-width:none;height:auto;max-height:none}.sm\:drawer:not(.drawer-instant){transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s var(--bs-drawer-transition-duration)}}@media (not (min-width:576px)) and (prefers-reduced-motion:reduce){.sm\:drawer:not(.drawer-instant){transition:none}}@media not (min-width:576px){.sm\:drawer:not(.drawer-instant):where(.drawer-start){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}:root:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .sm\:drawer:not(.drawer-instant):where(.drawer-start),.sm\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(100% + var(--bs-drawer-inset)))}:root:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .sm\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}.sm\:drawer:not(.drawer-instant):where(.drawer-top){transform:translateY(calc(-100% - var(--bs-drawer-inset)))}.sm\:drawer:not(.drawer-instant):where(.drawer-bottom),.sm\:drawer:not(.drawer-instant):where(.drawer-fullscreen){transform:translateY(calc(100% + var(--bs-drawer-inset)))}.sm\:drawer:not(.drawer-instant)[open]{visibility:visible;transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s;transform:none}}@media (not (min-width:576px)) and (prefers-reduced-motion:reduce){.sm\:drawer:not(.drawer-instant)[open]{transition:none}}@media not (min-width:576px){.sm\:drawer[open]{visibility:visible;transform:none}}@media (min-width:576px){.sm\:drawer{--bs-drawer-height:auto;--bs-drawer-border-width:0;z-index:auto;max-width:none;max-height:none;box-shadow:none;border-radius:0;flex-grow:1;margin:0;padding:0;inset:auto;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;height:auto!important;transition:none!important;display:flex!important;position:static!important;transform:none!important}}@media (min-width:576px) and (prefers-reduced-motion:reduce){.sm\:drawer{transition:none}}@media (min-width:576px){.sm\:drawer .drawer-header{display:none}.sm\:drawer .drawer-body{flex-direction:row;flex-grow:0;width:100%;padding:0;display:flex;overflow-y:visible;background-color:#0000!important}}@media not (min-width:768px){.md\:drawer{z-index:var(--bs-drawer-zindex);width:auto;max-width:calc(100% - var(--bs-drawer-inset) * 2);height:auto;max-height:calc(100% - var(--bs-drawer-inset) * 2);color:var(--bs-drawer-color);visibility:hidden;background-color:var(--bs-drawer-bg);border:var(--bs-drawer-border-width) solid var(--bs-drawer-border-color);border-radius:var(--bs-drawer-border-radius);box-shadow:var(--bs-drawer-box-shadow);background-clip:padding-box;outline:0;flex-direction:column;margin:0;padding:0;display:flex;position:fixed;inset:auto}.md\:drawer:where(.drawer-start){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-start:var(--bs-drawer-inset)}.md\:drawer:where(.drawer-end){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-end:var(--bs-drawer-inset)}.md\:drawer:where(.drawer-top){inset:var(--bs-drawer-inset) var(--bs-drawer-inset) auto;height:var(--bs-drawer-height)}.md\:drawer:where(.drawer-bottom){inset:auto var(--bs-drawer-inset) var(--bs-drawer-inset);height:var(--bs-drawer-height)}.md\:drawer:where(.drawer-fullscreen){inset:var(--bs-drawer-inset);width:auto;max-width:none;height:auto;max-height:none}.md\:drawer:not(.drawer-instant){transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s var(--bs-drawer-transition-duration)}}@media (not (min-width:768px)) and (prefers-reduced-motion:reduce){.md\:drawer:not(.drawer-instant){transition:none}}@media not (min-width:768px){.md\:drawer:not(.drawer-instant):where(.drawer-start){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}:root:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .md\:drawer:not(.drawer-instant):where(.drawer-start),.md\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(100% + var(--bs-drawer-inset)))}:root:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .md\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}.md\:drawer:not(.drawer-instant):where(.drawer-top){transform:translateY(calc(-100% - var(--bs-drawer-inset)))}.md\:drawer:not(.drawer-instant):where(.drawer-bottom),.md\:drawer:not(.drawer-instant):where(.drawer-fullscreen){transform:translateY(calc(100% + var(--bs-drawer-inset)))}.md\:drawer:not(.drawer-instant)[open]{visibility:visible;transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s;transform:none}}@media (not (min-width:768px)) and (prefers-reduced-motion:reduce){.md\:drawer:not(.drawer-instant)[open]{transition:none}}@media not (min-width:768px){.md\:drawer[open]{visibility:visible;transform:none}}@media (min-width:768px){.md\:drawer{--bs-drawer-height:auto;--bs-drawer-border-width:0;z-index:auto;max-width:none;max-height:none;box-shadow:none;border-radius:0;flex-grow:1;margin:0;padding:0;inset:auto;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;height:auto!important;transition:none!important;display:flex!important;position:static!important;transform:none!important}}@media (min-width:768px) and (prefers-reduced-motion:reduce){.md\:drawer{transition:none}}@media (min-width:768px){.md\:drawer .drawer-header{display:none}.md\:drawer .drawer-body{flex-direction:row;flex-grow:0;width:100%;padding:0;display:flex;overflow-y:visible;background-color:#0000!important}}@media not (min-width:1024px){.lg\:drawer{z-index:var(--bs-drawer-zindex);width:auto;max-width:calc(100% - var(--bs-drawer-inset) * 2);height:auto;max-height:calc(100% - var(--bs-drawer-inset) * 2);color:var(--bs-drawer-color);visibility:hidden;background-color:var(--bs-drawer-bg);border:var(--bs-drawer-border-width) solid var(--bs-drawer-border-color);border-radius:var(--bs-drawer-border-radius);box-shadow:var(--bs-drawer-box-shadow);background-clip:padding-box;outline:0;flex-direction:column;margin:0;padding:0;display:flex;position:fixed;inset:auto}.lg\:drawer:where(.drawer-start){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-start:var(--bs-drawer-inset)}.lg\:drawer:where(.drawer-end){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-end:var(--bs-drawer-inset)}.lg\:drawer:where(.drawer-top){inset:var(--bs-drawer-inset) var(--bs-drawer-inset) auto;height:var(--bs-drawer-height)}.lg\:drawer:where(.drawer-bottom){inset:auto var(--bs-drawer-inset) var(--bs-drawer-inset);height:var(--bs-drawer-height)}.lg\:drawer:where(.drawer-fullscreen){inset:var(--bs-drawer-inset);width:auto;max-width:none;height:auto;max-height:none}.lg\:drawer:not(.drawer-instant){transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s var(--bs-drawer-transition-duration)}}@media (not (min-width:1024px)) and (prefers-reduced-motion:reduce){.lg\:drawer:not(.drawer-instant){transition:none}}@media not (min-width:1024px){.lg\:drawer:not(.drawer-instant):where(.drawer-start){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}:root:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .lg\:drawer:not(.drawer-instant):where(.drawer-start),.lg\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(100% + var(--bs-drawer-inset)))}:root:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .lg\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}.lg\:drawer:not(.drawer-instant):where(.drawer-top){transform:translateY(calc(-100% - var(--bs-drawer-inset)))}.lg\:drawer:not(.drawer-instant):where(.drawer-bottom),.lg\:drawer:not(.drawer-instant):where(.drawer-fullscreen){transform:translateY(calc(100% + var(--bs-drawer-inset)))}.lg\:drawer:not(.drawer-instant)[open]{visibility:visible;transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s;transform:none}}@media (not (min-width:1024px)) and (prefers-reduced-motion:reduce){.lg\:drawer:not(.drawer-instant)[open]{transition:none}}@media not (min-width:1024px){.lg\:drawer[open]{visibility:visible;transform:none}}@media (min-width:1024px){.lg\:drawer{--bs-drawer-height:auto;--bs-drawer-border-width:0;z-index:auto;max-width:none;max-height:none;box-shadow:none;border-radius:0;flex-grow:1;margin:0;padding:0;inset:auto;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;height:auto!important;transition:none!important;display:flex!important;position:static!important;transform:none!important}}@media (min-width:1024px) and (prefers-reduced-motion:reduce){.lg\:drawer{transition:none}}@media (min-width:1024px){.lg\:drawer .drawer-header{display:none}.lg\:drawer .drawer-body{flex-direction:row;flex-grow:0;width:100%;padding:0;display:flex;overflow-y:visible;background-color:#0000!important}}@media not (min-width:1280px){.xl\:drawer{z-index:var(--bs-drawer-zindex);width:auto;max-width:calc(100% - var(--bs-drawer-inset) * 2);height:auto;max-height:calc(100% - var(--bs-drawer-inset) * 2);color:var(--bs-drawer-color);visibility:hidden;background-color:var(--bs-drawer-bg);border:var(--bs-drawer-border-width) solid var(--bs-drawer-border-color);border-radius:var(--bs-drawer-border-radius);box-shadow:var(--bs-drawer-box-shadow);background-clip:padding-box;outline:0;flex-direction:column;margin:0;padding:0;display:flex;position:fixed;inset:auto}.xl\:drawer:where(.drawer-start){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-start:var(--bs-drawer-inset)}.xl\:drawer:where(.drawer-end){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-end:var(--bs-drawer-inset)}.xl\:drawer:where(.drawer-top){inset:var(--bs-drawer-inset) var(--bs-drawer-inset) auto;height:var(--bs-drawer-height)}.xl\:drawer:where(.drawer-bottom){inset:auto var(--bs-drawer-inset) var(--bs-drawer-inset);height:var(--bs-drawer-height)}.xl\:drawer:where(.drawer-fullscreen){inset:var(--bs-drawer-inset);width:auto;max-width:none;height:auto;max-height:none}.xl\:drawer:not(.drawer-instant){transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s var(--bs-drawer-transition-duration)}}@media (not (min-width:1280px)) and (prefers-reduced-motion:reduce){.xl\:drawer:not(.drawer-instant){transition:none}}@media not (min-width:1280px){.xl\:drawer:not(.drawer-instant):where(.drawer-start){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}:root:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .xl\:drawer:not(.drawer-instant):where(.drawer-start),.xl\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(100% + var(--bs-drawer-inset)))}:root:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .xl\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}.xl\:drawer:not(.drawer-instant):where(.drawer-top){transform:translateY(calc(-100% - var(--bs-drawer-inset)))}.xl\:drawer:not(.drawer-instant):where(.drawer-bottom),.xl\:drawer:not(.drawer-instant):where(.drawer-fullscreen){transform:translateY(calc(100% + var(--bs-drawer-inset)))}.xl\:drawer:not(.drawer-instant)[open]{visibility:visible;transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s;transform:none}}@media (not (min-width:1280px)) and (prefers-reduced-motion:reduce){.xl\:drawer:not(.drawer-instant)[open]{transition:none}}@media not (min-width:1280px){.xl\:drawer[open]{visibility:visible;transform:none}}@media (min-width:1280px){.xl\:drawer{--bs-drawer-height:auto;--bs-drawer-border-width:0;z-index:auto;max-width:none;max-height:none;box-shadow:none;border-radius:0;flex-grow:1;margin:0;padding:0;inset:auto;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;height:auto!important;transition:none!important;display:flex!important;position:static!important;transform:none!important}}@media (min-width:1280px) and (prefers-reduced-motion:reduce){.xl\:drawer{transition:none}}@media (min-width:1280px){.xl\:drawer .drawer-header{display:none}.xl\:drawer .drawer-body{flex-direction:row;flex-grow:0;width:100%;padding:0;display:flex;overflow-y:visible;background-color:#0000!important}}@media not (min-width:1536px){.\32 xl\:drawer{z-index:var(--bs-drawer-zindex);width:auto;max-width:calc(100% - var(--bs-drawer-inset) * 2);height:auto;max-height:calc(100% - var(--bs-drawer-inset) * 2);color:var(--bs-drawer-color);visibility:hidden;background-color:var(--bs-drawer-bg);border:var(--bs-drawer-border-width) solid var(--bs-drawer-border-color);border-radius:var(--bs-drawer-border-radius);box-shadow:var(--bs-drawer-box-shadow);background-clip:padding-box;outline:0;flex-direction:column;margin:0;padding:0;display:flex;position:fixed;inset:auto}.\32 xl\:drawer:where(.drawer-start){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-start:var(--bs-drawer-inset)}.\32 xl\:drawer:where(.drawer-end){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-end:var(--bs-drawer-inset)}.\32 xl\:drawer:where(.drawer-top){inset:var(--bs-drawer-inset) var(--bs-drawer-inset) auto;height:var(--bs-drawer-height)}.\32 xl\:drawer:where(.drawer-bottom){inset:auto var(--bs-drawer-inset) var(--bs-drawer-inset);height:var(--bs-drawer-height)}.\32 xl\:drawer:where(.drawer-fullscreen){inset:var(--bs-drawer-inset);width:auto;max-width:none;height:auto;max-height:none}.\32 xl\:drawer:not(.drawer-instant){transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s var(--bs-drawer-transition-duration)}}@media (not (min-width:1536px)) and (prefers-reduced-motion:reduce){.\32 xl\:drawer:not(.drawer-instant){transition:none}}@media not (min-width:1536px){.\32 xl\:drawer:not(.drawer-instant):where(.drawer-start){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}:root:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .\32 xl\:drawer:not(.drawer-instant):where(.drawer-start),.\32 xl\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(100% + var(--bs-drawer-inset)))}:root:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .\32 xl\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}.\32 xl\:drawer:not(.drawer-instant):where(.drawer-top){transform:translateY(calc(-100% - var(--bs-drawer-inset)))}.\32 xl\:drawer:not(.drawer-instant):where(.drawer-bottom),.\32 xl\:drawer:not(.drawer-instant):where(.drawer-fullscreen){transform:translateY(calc(100% + var(--bs-drawer-inset)))}.\32 xl\:drawer:not(.drawer-instant)[open]{visibility:visible;transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s;transform:none}}@media (not (min-width:1536px)) and (prefers-reduced-motion:reduce){.\32 xl\:drawer:not(.drawer-instant)[open]{transition:none}}@media not (min-width:1536px){.\32 xl\:drawer[open]{visibility:visible;transform:none}}@media (min-width:1536px){.\32 xl\:drawer{--bs-drawer-height:auto;--bs-drawer-border-width:0;z-index:auto;max-width:none;max-height:none;box-shadow:none;border-radius:0;flex-grow:1;margin:0;padding:0;inset:auto;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;height:auto!important;transition:none!important;display:flex!important;position:static!important;transform:none!important}}@media (min-width:1536px) and (prefers-reduced-motion:reduce){.\32 xl\:drawer{transition:none}}@media (min-width:1536px){.\32 xl\:drawer .drawer-header{display:none}.\32 xl\:drawer .drawer-body{flex-direction:row;flex-grow:0;width:100%;padding:0;display:flex;overflow-y:visible;background-color:#0000!important}}.drawer{z-index:var(--bs-drawer-zindex);width:auto;max-width:calc(100% - var(--bs-drawer-inset) * 2);height:auto;max-height:calc(100% - var(--bs-drawer-inset) * 2);color:var(--bs-drawer-color);visibility:hidden;background-color:var(--bs-drawer-bg);border:var(--bs-drawer-border-width) solid var(--bs-drawer-border-color);border-radius:var(--bs-drawer-border-radius);box-shadow:var(--bs-drawer-box-shadow);background-clip:padding-box;outline:0;flex-direction:column;margin:0;padding:0;display:flex;position:fixed;inset:auto}.drawer:where(.drawer-start){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-start:var(--bs-drawer-inset)}.drawer:where(.drawer-end){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-end:var(--bs-drawer-inset)}.drawer:where(.drawer-top){inset:var(--bs-drawer-inset) var(--bs-drawer-inset) auto;height:var(--bs-drawer-height)}.drawer:where(.drawer-bottom){inset:auto var(--bs-drawer-inset) var(--bs-drawer-inset);height:var(--bs-drawer-height)}.drawer:where(.drawer-fullscreen){inset:var(--bs-drawer-inset);width:auto;max-width:none;height:auto;max-height:none}.drawer:not(.drawer-instant){transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s var(--bs-drawer-transition-duration)}@media (prefers-reduced-motion:reduce){.drawer:not(.drawer-instant){transition:none}}.drawer:not(.drawer-instant):where(.drawer-start){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}:root:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .drawer:not(.drawer-instant):where(.drawer-start),.drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(100% + var(--bs-drawer-inset)))}:root:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}.drawer:not(.drawer-instant):where(.drawer-top){transform:translateY(calc(-100% - var(--bs-drawer-inset)))}.drawer:not(.drawer-instant):where(.drawer-bottom),.drawer:not(.drawer-instant):where(.drawer-fullscreen){transform:translateY(calc(100% + var(--bs-drawer-inset)))}.drawer:not(.drawer-instant)[open]{visibility:visible;transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s}@media (prefers-reduced-motion:reduce){.drawer:not(.drawer-instant)[open]{transition:none}}.drawer:not(.drawer-instant)[open]{transform:none}.drawer[open]{visibility:visible;transform:none}.sm\:drawer::backdrop{--bs-drawer-backdrop-bg:var(--bs-bg-body);--bs-drawer-backdrop-opacity:25%;--bs-drawer-backdrop-blur:8px;--bs-drawer-inset:var(--bs-spacer);--bs-drawer-zindex:1045;--bs-drawer-width:400px;--bs-drawer-height:30vh;--bs-drawer-padding-x:var(--bs-spacer);--bs-drawer-padding-y:var(--bs-spacer);--bs-drawer-color:var(--bs-fg-body);--bs-drawer-bg:var(--bs-bg-body);--bs-drawer-border-width:var(--bs-border-width);--bs-drawer-border-color:var(--bs-border-color-translucent);--bs-drawer-border-radius:var(--bs-radius-7);--bs-drawer-box-shadow:var(--bs-box-shadow-lg);--bs-drawer-transition-duration:.3s;--bs-drawer-transition-timing:cubic-bezier(.22, 1, .36, 1);--bs-drawer-title-line-height:1.5;background-color:color-mix(in oklch, var(--bs-drawer-backdrop-bg) var(--bs-drawer-backdrop-opacity), transparent);-webkit-backdrop-filter:blur(var(--bs-drawer-backdrop-blur));backdrop-filter:blur(var(--bs-drawer-backdrop-blur));transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing);transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete;transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing)}@media (prefers-reduced-motion:reduce){.sm\:drawer::backdrop{transition:none}}.md\:drawer::backdrop{--bs-drawer-backdrop-bg:var(--bs-bg-body);--bs-drawer-backdrop-opacity:25%;--bs-drawer-backdrop-blur:8px;--bs-drawer-inset:var(--bs-spacer);--bs-drawer-zindex:1045;--bs-drawer-width:400px;--bs-drawer-height:30vh;--bs-drawer-padding-x:var(--bs-spacer);--bs-drawer-padding-y:var(--bs-spacer);--bs-drawer-color:var(--bs-fg-body);--bs-drawer-bg:var(--bs-bg-body);--bs-drawer-border-width:var(--bs-border-width);--bs-drawer-border-color:var(--bs-border-color-translucent);--bs-drawer-border-radius:var(--bs-radius-7);--bs-drawer-box-shadow:var(--bs-box-shadow-lg);--bs-drawer-transition-duration:.3s;--bs-drawer-transition-timing:cubic-bezier(.22, 1, .36, 1);--bs-drawer-title-line-height:1.5;background-color:color-mix(in oklch, var(--bs-drawer-backdrop-bg) var(--bs-drawer-backdrop-opacity), transparent);-webkit-backdrop-filter:blur(var(--bs-drawer-backdrop-blur));backdrop-filter:blur(var(--bs-drawer-backdrop-blur));transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing);transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete;transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing)}@media (prefers-reduced-motion:reduce){.md\:drawer::backdrop{transition:none}}.lg\:drawer::backdrop{--bs-drawer-backdrop-bg:var(--bs-bg-body);--bs-drawer-backdrop-opacity:25%;--bs-drawer-backdrop-blur:8px;--bs-drawer-inset:var(--bs-spacer);--bs-drawer-zindex:1045;--bs-drawer-width:400px;--bs-drawer-height:30vh;--bs-drawer-padding-x:var(--bs-spacer);--bs-drawer-padding-y:var(--bs-spacer);--bs-drawer-color:var(--bs-fg-body);--bs-drawer-bg:var(--bs-bg-body);--bs-drawer-border-width:var(--bs-border-width);--bs-drawer-border-color:var(--bs-border-color-translucent);--bs-drawer-border-radius:var(--bs-radius-7);--bs-drawer-box-shadow:var(--bs-box-shadow-lg);--bs-drawer-transition-duration:.3s;--bs-drawer-transition-timing:cubic-bezier(.22, 1, .36, 1);--bs-drawer-title-line-height:1.5;background-color:color-mix(in oklch, var(--bs-drawer-backdrop-bg) var(--bs-drawer-backdrop-opacity), transparent);-webkit-backdrop-filter:blur(var(--bs-drawer-backdrop-blur));backdrop-filter:blur(var(--bs-drawer-backdrop-blur));transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing);transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete;transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing)}@media (prefers-reduced-motion:reduce){.lg\:drawer::backdrop{transition:none}}.xl\:drawer::backdrop{--bs-drawer-backdrop-bg:var(--bs-bg-body);--bs-drawer-backdrop-opacity:25%;--bs-drawer-backdrop-blur:8px;--bs-drawer-inset:var(--bs-spacer);--bs-drawer-zindex:1045;--bs-drawer-width:400px;--bs-drawer-height:30vh;--bs-drawer-padding-x:var(--bs-spacer);--bs-drawer-padding-y:var(--bs-spacer);--bs-drawer-color:var(--bs-fg-body);--bs-drawer-bg:var(--bs-bg-body);--bs-drawer-border-width:var(--bs-border-width);--bs-drawer-border-color:var(--bs-border-color-translucent);--bs-drawer-border-radius:var(--bs-radius-7);--bs-drawer-box-shadow:var(--bs-box-shadow-lg);--bs-drawer-transition-duration:.3s;--bs-drawer-transition-timing:cubic-bezier(.22, 1, .36, 1);--bs-drawer-title-line-height:1.5;background-color:color-mix(in oklch, var(--bs-drawer-backdrop-bg) var(--bs-drawer-backdrop-opacity), transparent);-webkit-backdrop-filter:blur(var(--bs-drawer-backdrop-blur));backdrop-filter:blur(var(--bs-drawer-backdrop-blur));transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing);transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete;transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing)}@media (prefers-reduced-motion:reduce){.xl\:drawer::backdrop{transition:none}}.\32 xl\:drawer::backdrop{--bs-drawer-backdrop-bg:var(--bs-bg-body);--bs-drawer-backdrop-opacity:25%;--bs-drawer-backdrop-blur:8px;--bs-drawer-inset:var(--bs-spacer);--bs-drawer-zindex:1045;--bs-drawer-width:400px;--bs-drawer-height:30vh;--bs-drawer-padding-x:var(--bs-spacer);--bs-drawer-padding-y:var(--bs-spacer);--bs-drawer-color:var(--bs-fg-body);--bs-drawer-bg:var(--bs-bg-body);--bs-drawer-border-width:var(--bs-border-width);--bs-drawer-border-color:var(--bs-border-color-translucent);--bs-drawer-border-radius:var(--bs-radius-7);--bs-drawer-box-shadow:var(--bs-box-shadow-lg);--bs-drawer-transition-duration:.3s;--bs-drawer-transition-timing:cubic-bezier(.22, 1, .36, 1);--bs-drawer-title-line-height:1.5;background-color:color-mix(in oklch, var(--bs-drawer-backdrop-bg) var(--bs-drawer-backdrop-opacity), transparent);-webkit-backdrop-filter:blur(var(--bs-drawer-backdrop-blur));backdrop-filter:blur(var(--bs-drawer-backdrop-blur));transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing);transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete;transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing)}@media (prefers-reduced-motion:reduce){.\32 xl\:drawer::backdrop{transition:none}}.drawer::backdrop{--bs-drawer-backdrop-bg:var(--bs-bg-body);--bs-drawer-backdrop-opacity:25%;--bs-drawer-backdrop-blur:8px;--bs-drawer-inset:var(--bs-spacer);--bs-drawer-zindex:1045;--bs-drawer-width:400px;--bs-drawer-height:30vh;--bs-drawer-padding-x:var(--bs-spacer);--bs-drawer-padding-y:var(--bs-spacer);--bs-drawer-color:var(--bs-fg-body);--bs-drawer-bg:var(--bs-bg-body);--bs-drawer-border-width:var(--bs-border-width);--bs-drawer-border-color:var(--bs-border-color-translucent);--bs-drawer-border-radius:var(--bs-radius-7);--bs-drawer-box-shadow:var(--bs-box-shadow-lg);--bs-drawer-transition-duration:.3s;--bs-drawer-transition-timing:cubic-bezier(.22, 1, .36, 1);--bs-drawer-title-line-height:1.5;background-color:color-mix(in oklch, var(--bs-drawer-backdrop-bg) var(--bs-drawer-backdrop-opacity), transparent);-webkit-backdrop-filter:blur(var(--bs-drawer-backdrop-blur));backdrop-filter:blur(var(--bs-drawer-backdrop-blur));transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing);transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete;transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete, -webkit-backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing)}@media (prefers-reduced-motion:reduce){.drawer::backdrop{transition:none}}@starting-style{.sm\:drawer::backdrop,.md\:drawer::backdrop,.lg\:drawer::backdrop,.xl\:drawer::backdrop,.\32 xl\:drawer::backdrop,.drawer::backdrop{-webkit-backdrop-filter:blur();backdrop-filter:blur();background-color:#0000}}.drawer-static{transform:scale(1.02)}.drawer-translucent{background-color:color-mix(in oklch, var(--bs-drawer-bg) 80%, transparent);-webkit-backdrop-filter:blur(5px)saturate(180%);backdrop-filter:blur(5px)saturate(180%)}.drawer-sheet{--bs-drawer-inset:0;--bs-drawer-border-radius:0;--bs-drawer-border-width:0;--bs-drawer-box-shadow:none}.drawer-header{padding:var(--bs-drawer-padding-y) var(--bs-drawer-padding-x);flex-shrink:0;align-items:center;display:flex}.drawer-header .btn-close{padding:calc(var(--bs-drawer-padding-y) * .5) calc(var(--bs-drawer-padding-x) * .5);margin-inline-start:auto;margin-inline-end:calc(-.5 * var(--bs-drawer-padding-x));margin-top:calc(-.5 * var(--bs-drawer-padding-y));margin-bottom:calc(-.5 * var(--bs-drawer-padding-y))}.drawer-title{line-height:var(--bs-drawer-title-line-height);margin-bottom:0}.drawer-body{gap:var(--bs-drawer-padding-y);padding:var(--bs-drawer-padding-y) var(--bs-drawer-padding-x);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.drawer-footer{padding:var(--bs-drawer-padding-y) var(--bs-drawer-padding-x);border-block-start:var(--bs-drawer-border-width) solid var(--bs-drawer-border-color);flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.drawer-fit-content{inset-block-end:auto}.pagination{--bs-pagination-min-height:var(--bs-btn-input-min-height);--bs-pagination-padding-x:var(--bs-btn-input-padding-x);--bs-pagination-padding-y:var(--bs-btn-input-padding-y);--bs-pagination-font-size:var(--bs-btn-input-font-size);--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-bg-body);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-btn-input-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-bg-1);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-bg-2);--bs-pagination-active-color:var(--bs-primary-contrast);--bs-pagination-active-bg:var(--bs-primary-bg);--bs-pagination-active-border-color:var(--bs-primary-bg);--bs-pagination-disabled-color:var(--bs-fg-3);--bs-pagination-disabled-bg:var(--bs-bg-2);--bs-pagination-disabled-border-color:var(--bs-border-color);padding-inline-start:0;list-style:none;display:flex}.page-link{min-height:var(--bs-pagination-min-height);padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);justify-content:center;align-items:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;display:flex;position:relative}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus-visible{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);background-image:var(--bs-gradient);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-inline-start:calc(-1 * var(--bs-pagination-border-width))}.page-item:first-child .page-link{border-start-start-radius:var(--bs-pagination-border-radius);border-end-start-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-start-end-radius:var(--bs-pagination-border-radius);border-end-end-radius:var(--bs-pagination-border-radius)}.pagination-sm{--bs-pagination-min-height:var(--bs-btn-input-sm-min-height);--bs-pagination-padding-y:var(--bs-btn-input-sm-padding-y);--bs-pagination-padding-x:var(--bs-btn-input-sm-padding-x);--bs-pagination-font-size:var(--bs-btn-input-sm-font-size);--bs-pagination-border-radius:var(--bs-btn-input-sm-border-radius)}.pagination-lg{--bs-pagination-min-height:var(--bs-btn-input-lg-min-height);--bs-pagination-padding-y:var(--bs-btn-input-lg-padding-y);--bs-pagination-padding-x:var(--bs-btn-input-lg-padding-x);--bs-pagination-font-size:var(--bs-btn-input-lg-font-size);--bs-pagination-border-radius:var(--bs-btn-input-lg-border-radius)}.placeholder{--bs-placeholder-opacity-max:.5;--bs-placeholder-opacity-min:.2;vertical-align:middle;cursor:wait;min-height:1em;opacity:var(--bs-placeholder-opacity-max);background-color:currentColor;display:inline-block}.placeholder.btn:before{content:"";display:inline-block}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:2s ease-in-out infinite placeholder-glow}@keyframes placeholder-glow{50%{opacity:var(--bs-placeholder-opacity-min)}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg, #000 55%, rgb(0, 0, 0, calc(1 - var(--bs-placeholder-opacity-min))) 75%, #000 95%);mask-image:linear-gradient(130deg, #000 55%, rgb(0, 0, 0, calc(1 - var(--bs-placeholder-opacity-min))) 75%, #000 95%);animation:2s linear infinite placeholder-wave;mask-size:200% 100%}@keyframes placeholder-wave{to{mask-position:-200% 0}}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:280px;--bs-popover-font-size:var(--bs-font-size-sm);--bs-popover-bg:var(--bs-bg-body);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-radius-7);--bs-popover-inner-border-radius:calc(var(--bs-radius-7) - var(--bs-border-width));--bs-popover-box-shadow:var(--bs-box-shadow);--bs-popover-header-padding-x:var(--bs-spacer);--bs-popover-header-padding-y:var(--bs-spacer-3);--bs-popover-header-font-size:var(--bs-font-size-sm);--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-bg-1);--bs-popover-body-padding-x:var(--bs-spacer);--bs-popover-body-padding-y:var(--bs-spacer-3);--bs-popover-body-color:var(--bs-fg-body);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);max-width:var(--bs-popover-max-width);font-family:var(--bs-body-font-family);font-style:normal;font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);text-align:start;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius);box-shadow:var(--bs-popover-box-shadow);background-clip:padding-box;text-decoration:none;display:block}.popover .popover-arrow{width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height);display:block}.popover .popover-arrow:before,.popover .popover-arrow:after{content:"";border:0 solid #0000;display:block;position:absolute}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-bs-placement^=top]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-bs-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-bs-placement^=top]>.popover-arrow:after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-bs-placement^=top]>.popover-arrow:before{border-block-start-color:var(--bs-popover-arrow-border);bottom:0}.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-bs-placement^=top]>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-block-start-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-bs-placement^=right]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-bs-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-bs-placement^=right]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-bs-placement^=right]>.popover-arrow:before{border-inline-end-color:var(--bs-popover-arrow-border);left:0}.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-bs-placement^=right]>.popover-arrow:after{left:var(--bs-popover-border-width);border-inline-end-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-bs-placement^=bottom]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-bs-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-bs-placement^=bottom]>.popover-arrow:after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-bs-placement^=bottom]>.popover-arrow:before{border-block-end-color:var(--bs-popover-arrow-border);top:0}.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-bs-placement^=bottom]>.popover-arrow:after{top:var(--bs-popover-border-width);border-block-end-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header:before,.bs-popover-auto[data-bs-placement^=bottom] .popover-header:before{width:var(--bs-popover-arrow-width);content:"";border-block-end:var(--bs-popover-border-width) solid var(--bs-popover-header-bg);margin-inline-start:calc(-.5 * var(--bs-popover-arrow-width));display:block;position:absolute;top:0;left:50%}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-bs-placement^=left]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-bs-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-bs-placement^=left]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-bs-placement^=left]>.popover-arrow:before{border-inline-start-color:var(--bs-popover-arrow-border);right:0}.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-bs-placement^=left]>.popover-arrow:after{right:var(--bs-popover-border-width);border-inline-start-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-block-end:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-start-start-radius:var(--bs-popover-inner-border-radius);border-start-end-radius:var(--bs-popover-inner-border-radius);margin-bottom:0}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}@keyframes progress-bar-stripes{0%{background-position-x:var(--bs-progress-height)}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:var(--bs-font-size-sm);--bs-progress-bg:var(--bs-bg-2);--bs-progress-border-radius:var(--bs-radius-5);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:var(--bs-white);--bs-progress-bar-bg:var(--bs-primary-bg);--bs-progress-bar-transition:width .6s ease;--bs-progress-bar-animation:progress-bar-stripes 1s linear infinite;height:var(--bs-progress-height);font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius);box-shadow:var(--bs-progress-box-shadow);display:flex;overflow:hidden}.progress-bar{color:var(--bs-theme-contrast,var(--bs-progress-bar-color));text-align:center;white-space:nowrap;background-color:var(--bs-theme-bg,var(--bs-progress-bar-bg));transition:var(--bs-progress-bar-transition);flex-direction:column;justify-content:center;display:flex;overflow:hidden}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,#ffffff26 25%,#0000 25% 50%,#ffffff26 50% 75%,#0000 75%,#0000);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:var(--bs-progress-bar-animation)}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.spinner-grow,.spinner-border{width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);border-radius:50%;flex-shrink:0;display:inline-block}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-.125em;--bs-spinner-border-width:.25em;--bs-spinner-animation-speed:.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-inline-end-color:#0000}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-.125em;--bs-spinner-animation-speed:.75s;--bs-spinner-animation-name:spinner-grow;opacity:0;background-color:currentColor}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.stepper{--bs-stepper-size:2rem;--bs-stepper-gap:1rem;--bs-stepper-font-size:var(--bs-font-size-sm);--bs-stepper-text-gap:.5rem;--bs-stepper-track-size:.125rem;--bs-stepper-bg:var(--bs-bg-2);--bs-stepper-active-color:var(--bs-primary-contrast);--bs-stepper-active-bg:var(--bs-primary-bg);gap:var(--bs-stepper-gap);counter-reset:stepper;grid-auto-rows:1fr;grid-auto-flow:row;padding-inline-start:0;list-style:none;display:grid}.stepper-item{grid-template-rows:auto;grid-template-columns:var(--bs-stepper-size) auto;gap:var(--bs-stepper-text-gap);align-items:var(--bs-stepper-align-items,center);text-decoration:none;display:grid;position:relative}.stepper-item:before{z-index:1;width:var(--bs-stepper-size);height:var(--bs-stepper-size);font-size:var(--bs-stepper-font-size);text-align:center;content:counter(stepper);counter-increment:stepper;background-color:var(--bs-stepper-bg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:.5rem;font-weight:600;line-height:1;display:flex;position:relative}.stepper-item:after{width:var(--bs-stepper-track-size);height:calc(100% + var(--bs-stepper-gap));content:"";background-color:var(--bs-stepper-bg);position:absolute;inset-block:50% 100%;inset-inline-start:calc(var(--bs-stepper-size) * .5 - var(--bs-stepper-track-size) * .5)}.stepper-item:last-child:after{display:none}.stepper-item.active:before,.stepper-item.active:after{color:var(--bs-theme-contrast,var(--bs-stepper-active-color));background-color:var(--bs-theme-bg,var(--bs-stepper-active-bg))}.stepper-item.active:not(:has(+.stepper-item.active)):after{background-color:var(--bs-stepper-bg)}.stepper-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid}.stepper-horizontal .stepper-item{grid-template-rows:var(--bs-stepper-size) auto;text-align:center;grid-template-columns:auto;place-items:start center}.stepper-horizontal .stepper-item:after{width:calc(100% + var(--bs-stepper-gap));height:var(--bs-stepper-track-size);inset-block-start:calc(var(--bs-stepper-size) * .5 - var(--bs-stepper-track-size) * .5);inset-block-end:auto;inset-inline:50% 100%}.stepper-horizontal .stepper-item:last-child:after{right:100%}@container (width>=576px){.sm\:stepper-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid}.sm\:stepper-horizontal .stepper-item{grid-template-rows:var(--bs-stepper-size) auto;text-align:center;grid-template-columns:auto;place-items:start center}.sm\:stepper-horizontal .stepper-item:after{width:calc(100% + var(--bs-stepper-gap));height:var(--bs-stepper-track-size);inset-block-start:calc(var(--bs-stepper-size) * .5 - var(--bs-stepper-track-size) * .5);inset-block-end:auto;inset-inline:50% 100%}.sm\:stepper-horizontal .stepper-item:last-child:after{right:100%}}@container (width>=768px){.md\:stepper-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid}.md\:stepper-horizontal .stepper-item{grid-template-rows:var(--bs-stepper-size) auto;text-align:center;grid-template-columns:auto;place-items:start center}.md\:stepper-horizontal .stepper-item:after{width:calc(100% + var(--bs-stepper-gap));height:var(--bs-stepper-track-size);inset-block-start:calc(var(--bs-stepper-size) * .5 - var(--bs-stepper-track-size) * .5);inset-block-end:auto;inset-inline:50% 100%}.md\:stepper-horizontal .stepper-item:last-child:after{right:100%}}@container (width>=1024px){.lg\:stepper-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid}.lg\:stepper-horizontal .stepper-item{grid-template-rows:var(--bs-stepper-size) auto;text-align:center;grid-template-columns:auto;place-items:start center}.lg\:stepper-horizontal .stepper-item:after{width:calc(100% + var(--bs-stepper-gap));height:var(--bs-stepper-track-size);inset-block-start:calc(var(--bs-stepper-size) * .5 - var(--bs-stepper-track-size) * .5);inset-block-end:auto;inset-inline:50% 100%}.lg\:stepper-horizontal .stepper-item:last-child:after{right:100%}}@container (width>=1280px){.xl\:stepper-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid}.xl\:stepper-horizontal .stepper-item{grid-template-rows:var(--bs-stepper-size) auto;text-align:center;grid-template-columns:auto;place-items:start center}.xl\:stepper-horizontal .stepper-item:after{width:calc(100% + var(--bs-stepper-gap));height:var(--bs-stepper-track-size);inset-block-start:calc(var(--bs-stepper-size) * .5 - var(--bs-stepper-track-size) * .5);inset-block-end:auto;inset-inline:50% 100%}.xl\:stepper-horizontal .stepper-item:last-child:after{right:100%}}@container (width>=1536px){.\32 xl\:stepper-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid}.\32 xl\:stepper-horizontal .stepper-item{grid-template-rows:var(--bs-stepper-size) auto;text-align:center;grid-template-columns:auto;place-items:start center}.\32 xl\:stepper-horizontal .stepper-item:after{width:calc(100% + var(--bs-stepper-gap));height:var(--bs-stepper-track-size);inset-block-start:calc(var(--bs-stepper-size) * .5 - var(--bs-stepper-track-size) * .5);inset-block-end:auto;inset-inline:50% 100%}.\32 xl\:stepper-horizontal .stepper-item:last-child:after{right:100%}}.stepper-overflow{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;overflow-x:auto;container-type:inline-size}.stepper-overflow>.stepper{width:max-content;min-width:100%}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:1rem;--bs-toast-padding-y:.75rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:var(--bs-font-size-sm);--bs-toast-bg:var(--bs-bg-body);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-fg-3);--bs-toast-header-bg:var(--bs-bg-1);--bs-toast-header-border-color:var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color,var(--bs-fg-body));pointer-events:auto;background-color:var(--bs-toast-bg);border:var(--bs-toast-border-width) solid var(--bs-theme-border,var(--bs-toast-border-color));box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius,var(--bs-radius-7));background-clip:padding-box;flex-direction:column;display:flex;overflow:hidden}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;z-index:var(--bs-toast-zindex);pointer-events:none;width:max-content;max-width:100%;position:absolute}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-theme-fg-emphasis,var(--bs-toast-header-color));background-color:var(--bs-theme-bg-subtle,var(--bs-toast-header-bg));border-block-end:var(--bs-toast-border-width,var(--bs-border-width)) solid var(--bs-theme-border,var(--bs-toast-header-border-color,var(--bs-border-color-translucent)));align-items:center;display:flex}.toast-header .btn-close{color:inherit;margin-inline-start:calc(.5 * var(--bs-toast-padding-x));margin-inline-end:calc(-.25 * var(--bs-toast-padding-x))}.toast-translucent{-webkit-backdrop-filter:blur(5px)saturate(180%);backdrop-filter:blur(5px)saturate(180%)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:var(--bs-spacer-3);--bs-tooltip-padding-y:calc(var(--bs-spacer) * .375);--bs-tooltip-font-size:var(--bs-font-size-sm);--bs-tooltip-color:var(--bs-bg-body);--bs-tooltip-bg:var(--bs-fg-body);--bs-tooltip-border-radius:var(--bs-radius-5);--bs-tooltip-opacity:.95;--bs-tooltip-arrow-width:.8rem;--bs-tooltip-arrow-height:.4rem;z-index:var(--bs-tooltip-zindex);font-family:var(--bs-body-font-family);font-style:normal;font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);text-align:start;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0;text-decoration:none;display:block}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height);display:block}.tooltip .tooltip-arrow:before{content:"";border-style:solid;border-color:#0000;position:absolute}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-bs-placement^=top] .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow:before,.bs-tooltip-auto[data-bs-placement^=top] .tooltip-arrow:before{border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-block-start-color:var(--bs-tooltip-bg);top:-1px}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-bs-placement^=right] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow:before,.bs-tooltip-auto[data-bs-placement^=right] .tooltip-arrow:before{border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-inline-end-color:var(--bs-tooltip-bg);right:-1px}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-bs-placement^=bottom] .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow:before,.bs-tooltip-auto[data-bs-placement^=bottom] .tooltip-arrow:before{border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-block-end-color:var(--bs-tooltip-bg);bottom:-1px}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-bs-placement^=left] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow:before,.bs-tooltip-auto[data-bs-placement^=left] .tooltip-arrow:before{border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-inline-start-color:var(--bs-tooltip-bg);left:-1px}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}}@layer custom;@layer helpers{.focus-ring:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-theme-focus-ring,var(--bs-focus-ring-color))}.icon-link{-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity,.5));text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity,.5));text-underline-offset:.25em;backface-visibility:hidden;align-items:center;gap:.375rem;display:inline-flex}.icon-link>.bi{fill:currentColor;flex-shrink:0;width:1em;height:1em;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em, 0, 0))}.fixed-top{z-index:1030;position:fixed;inset:0 0 auto}.fixed-bottom{z-index:1030;position:fixed;inset:auto 0 0}.sticky-top{z-index:1020;position:sticky;top:0}.sticky-bottom{z-index:1020;position:sticky;bottom:0}@media (min-width:576px){.sm\:sticky-top{z-index:1020;position:sticky;top:0}.sm\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}@media (min-width:768px){.md\:sticky-top{z-index:1020;position:sticky;top:0}.md\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}@media (min-width:1024px){.lg\:sticky-top{z-index:1020;position:sticky;top:0}.lg\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}@media (min-width:1280px){.xl\:sticky-top{z-index:1020;position:sticky;top:0}.xl\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}@media (min-width:1536px){.\32 xl\:sticky-top{z-index:1020;position:sticky;top:0}.\32 xl\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}.stack-container{container-type:inline-size}[class*=hstack],[class*=vstack]{flex:var(--bs-stack-flex,1 1 auto);flex-direction:var(--bs-stack-direction,row);align-items:var(--bs-stack-align-items,center);align-self:var(--bs-stack-align-self,stretch);display:flex}.vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}@container (width>=576px){.sm\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.sm\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}@container (width>=768px){.md\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.md\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}@container (width>=1024px){.lg\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.lg\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}@container (width>=1280px){.xl\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.xl\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}@container (width>=1536px){.\32 xl\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.\32 xl\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}.theme-primary{--bs-theme-base:var(--bs-primary-base);--bs-theme-fg:var(--bs-primary-fg);--bs-theme-fg-emphasis:var(--bs-primary-fg-emphasis);--bs-theme-bg:var(--bs-primary-bg);--bs-theme-bg-subtle:var(--bs-primary-bg-subtle);--bs-theme-bg-muted:var(--bs-primary-bg-muted);--bs-theme-border:var(--bs-primary-border);--bs-theme-focus-ring:var(--bs-primary-focus-ring);--bs-theme-contrast:var(--bs-primary-contrast)}.theme-accent{--bs-theme-base:var(--bs-accent-base);--bs-theme-fg:var(--bs-accent-fg);--bs-theme-fg-emphasis:var(--bs-accent-fg-emphasis);--bs-theme-bg:var(--bs-accent-bg);--bs-theme-bg-subtle:var(--bs-accent-bg-subtle);--bs-theme-bg-muted:var(--bs-accent-bg-muted);--bs-theme-border:var(--bs-accent-border);--bs-theme-focus-ring:var(--bs-accent-focus-ring);--bs-theme-contrast:var(--bs-accent-contrast)}.theme-success{--bs-theme-base:var(--bs-success-base);--bs-theme-fg:var(--bs-success-fg);--bs-theme-fg-emphasis:var(--bs-success-fg-emphasis);--bs-theme-bg:var(--bs-success-bg);--bs-theme-bg-subtle:var(--bs-success-bg-subtle);--bs-theme-bg-muted:var(--bs-success-bg-muted);--bs-theme-border:var(--bs-success-border);--bs-theme-focus-ring:var(--bs-success-focus-ring);--bs-theme-contrast:var(--bs-success-contrast)}.theme-danger{--bs-theme-base:var(--bs-danger-base);--bs-theme-fg:var(--bs-danger-fg);--bs-theme-fg-emphasis:var(--bs-danger-fg-emphasis);--bs-theme-bg:var(--bs-danger-bg);--bs-theme-bg-subtle:var(--bs-danger-bg-subtle);--bs-theme-bg-muted:var(--bs-danger-bg-muted);--bs-theme-border:var(--bs-danger-border);--bs-theme-focus-ring:var(--bs-danger-focus-ring);--bs-theme-contrast:var(--bs-danger-contrast)}.theme-warning{--bs-theme-base:var(--bs-warning-base);--bs-theme-fg:var(--bs-warning-fg);--bs-theme-fg-emphasis:var(--bs-warning-fg-emphasis);--bs-theme-bg:var(--bs-warning-bg);--bs-theme-bg-subtle:var(--bs-warning-bg-subtle);--bs-theme-bg-muted:var(--bs-warning-bg-muted);--bs-theme-border:var(--bs-warning-border);--bs-theme-focus-ring:var(--bs-warning-focus-ring);--bs-theme-contrast:var(--bs-warning-contrast)}.theme-info{--bs-theme-base:var(--bs-info-base);--bs-theme-fg:var(--bs-info-fg);--bs-theme-fg-emphasis:var(--bs-info-fg-emphasis);--bs-theme-bg:var(--bs-info-bg);--bs-theme-bg-subtle:var(--bs-info-bg-subtle);--bs-theme-bg-muted:var(--bs-info-bg-muted);--bs-theme-border:var(--bs-info-border);--bs-theme-focus-ring:var(--bs-info-focus-ring);--bs-theme-contrast:var(--bs-info-contrast)}.theme-inverse{--bs-theme-base:var(--bs-inverse-base);--bs-theme-fg:var(--bs-inverse-fg);--bs-theme-fg-emphasis:var(--bs-inverse-fg-emphasis);--bs-theme-bg:var(--bs-inverse-bg);--bs-theme-bg-subtle:var(--bs-inverse-bg-subtle);--bs-theme-bg-muted:var(--bs-inverse-bg-muted);--bs-theme-border:var(--bs-inverse-border);--bs-theme-focus-ring:var(--bs-inverse-focus-ring);--bs-theme-contrast:var(--bs-inverse-contrast)}.theme-secondary{--bs-theme-base:var(--bs-secondary-base);--bs-theme-fg:var(--bs-secondary-fg);--bs-theme-fg-emphasis:var(--bs-secondary-fg-emphasis);--bs-theme-bg:var(--bs-secondary-bg);--bs-theme-bg-subtle:var(--bs-secondary-bg-subtle);--bs-theme-bg-muted:var(--bs-secondary-bg-muted);--bs-theme-border:var(--bs-secondary-border);--bs-theme-focus-ring:var(--bs-secondary-focus-ring);--bs-theme-contrast:var(--bs-secondary-contrast)}.visually-hidden,.visually-hidden-focusable:not(:focus,:focus-within){clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus,:focus-within):not(caption){position:absolute!important}.visually-hidden *,.visually-hidden-focusable:not(:focus,:focus-within) *{overflow:hidden!important}.stretched-link:after{z-index:1;content:"";position:absolute;inset:0}.text-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vr{width:var(--bs-vr-border-width,var(--bs-border-width));background-color:var(--bs-border-color);align-self:stretch;min-height:1em;display:inline-block}}@layer utilities{.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.align-text-bottom{vertical-align:text-bottom}.align-text-top{vertical-align:text-top}[class*=ratio-]{aspect-ratio:var(--bs-ratio)}.ratio-auto{--bs-ratio:auto}.ratio-1x1{--bs-ratio:1 / 1}.ratio-4x3{--bs-ratio:4 / 3}.ratio-16x9{--bs-ratio:16 / 9}.ratio-21x9{--bs-ratio:21 / 9}.float-start{float:inline-start}.float-end{float:inline-end}.float-none{float:none}.object-fit-contain{-o-object-fit:contain;object-fit:contain}.object-fit-cover{-o-object-fit:cover;object-fit:cover}.object-fit-fill{-o-object-fit:fill;object-fit:fill}.object-fit-scale{-o-object-fit:scale-down;object-fit:scale-down}.object-fit-none{-o-object-fit:none;object-fit:none}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-x-visible{overflow-x:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-y-visible{overflow-y:visible}.overflow-y-scroll{overflow-y:scroll}.contains-inline{container-type:inline-size}.contains-size{container-type:size}.d-inline{display:inline}.d-inline-block{display:inline-block}.d-block{display:block}.d-grid{display:grid}.d-inline-grid{display:inline-grid}.d-table{display:table}.d-table-row{display:table-row}.d-table-cell{display:table-cell}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.d-contents{display:contents}.d-flow-root{display:flow-root}.d-none{display:none}.shadow{box-shadow:var(--bs-box-shadow)}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)}.shadow-none{box-shadow:none}.position-static{position:static}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}.position-sticky{position:sticky}.top-0{top:0}.top-50{top:50%}.top-100{top:100%}.bottom-0{bottom:0}.bottom-50{bottom:50%}.bottom-100{bottom:100%}.start-0{inset-inline-start:0}.start-50{inset-inline-start:50%}.start-100{inset-inline-start:100%}.end-0{inset-inline-end:0}.end-50{inset-inline-end:50%}.end-100{inset-inline-end:100%}.translate-middle{transform:translate(-50%,-50%)}.translate-middle-x{transform:translate(-50%)}.translate-middle-y{transform:translateY(-50%)}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-0{border:0}.border-top{border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-top-0{border-block-start:0}.border-end{border-inline-end:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-end-0{border-inline-end:0}.border-bottom{border-block-end:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-bottom-0{border-block-end:0}.border-start{border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-start-0{border-inline-start:0}.border-y{border-block:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-y-0{border-block:0}.border-x{border-inline:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-x-0{border-inline:0}.border-primary{--bs-border-color:var(--bs-primary-bg);border-color:var(--bs-border-color)}.border-accent{--bs-border-color:var(--bs-accent-bg);border-color:var(--bs-border-color)}.border-success{--bs-border-color:var(--bs-success-bg);border-color:var(--bs-border-color)}.border-danger{--bs-border-color:var(--bs-danger-bg);border-color:var(--bs-border-color)}.border-warning{--bs-border-color:var(--bs-warning-bg);border-color:var(--bs-border-color)}.border-info{--bs-border-color:var(--bs-info-bg);border-color:var(--bs-border-color)}.border-inverse{--bs-border-color:var(--bs-inverse-bg);border-color:var(--bs-border-color)}.border-secondary{--bs-border-color:var(--bs-secondary-bg);border-color:var(--bs-border-color)}.border-bg{--bs-border-color:var(--bs-border-bg);border-color:var(--bs-border-color)}.border-body{--bs-border-color:var(--bs-border-body);border-color:var(--bs-border-color)}.border-muted{--bs-border-color:var(--bs-border-muted);border-color:var(--bs-border-color)}.border-subtle{--bs-border-color:var(--bs-border-subtle);border-color:var(--bs-border-color)}.border-emphasized{--bs-border-color:var(--bs-border-emphasized);border-color:var(--bs-border-color)}.border-white{--bs-border-color:var(--bs-border-white);border-color:var(--bs-border-color)}.border-black{--bs-border-color:var(--bs-border-black);border-color:var(--bs-border-color)}.border-subtle-primary{--bs-border-color:var(--bs-primary-border);border-color:var(--bs-border-color)}.border-subtle-accent{--bs-border-color:var(--bs-accent-border);border-color:var(--bs-border-color)}.border-subtle-success{--bs-border-color:var(--bs-success-border);border-color:var(--bs-border-color)}.border-subtle-danger{--bs-border-color:var(--bs-danger-border);border-color:var(--bs-border-color)}.border-subtle-warning{--bs-border-color:var(--bs-warning-border);border-color:var(--bs-border-color)}.border-subtle-info{--bs-border-color:var(--bs-info-border);border-color:var(--bs-border-color)}.border-subtle-inverse{--bs-border-color:var(--bs-inverse-border);border-color:var(--bs-border-color)}.border-subtle-secondary{--bs-border-color:var(--bs-secondary-border);border-color:var(--bs-border-color)}.border-1{border-width:1px}.border-2{border-width:2px}.border-3{border-width:3px}.border-4{border-width:4px}.border-5{border-width:5px}.border-10{border-color:color-mix(in oklch, var(--bs-border-color) 10%, transparent)}.border-20{border-color:color-mix(in oklch, var(--bs-border-color) 20%, transparent)}.border-30{border-color:color-mix(in oklch, var(--bs-border-color) 30%, transparent)}.border-40{border-color:color-mix(in oklch, var(--bs-border-color) 40%, transparent)}.border-50{border-color:color-mix(in oklch, var(--bs-border-color) 50%, transparent)}.border-60{border-color:color-mix(in oklch, var(--bs-border-color) 60%, transparent)}.border-70{border-color:color-mix(in oklch, var(--bs-border-color) 70%, transparent)}.border-80{border-color:color-mix(in oklch, var(--bs-border-color) 80%, transparent)}.border-90{border-color:color-mix(in oklch, var(--bs-border-color) 90%, transparent)}.border-100{border-color:var(--bs-border-color)}.w-1{width:1rem}.w-2{width:2rem}.w-3{width:3rem}.w-4{width:4rem}.w-5{width:5rem}.w-6{width:6rem}.w-7{width:7rem}.w-8{width:8rem}.w-9{width:9rem}.w-10{width:10rem}.w-11{width:11rem}.w-12{width:12rem}.w-25{width:25%}.w-50{width:50%}.w-75{width:75%}.w-100{width:100%}.w-auto{width:auto}.w-min{width:min-content}.w-max{width:max-content}.w-fit{width:fit-content}.max-w-100{max-width:100%}.min-w-0{min-width:0}.min-w-100{min-width:100%}.vw-100{width:100vw}.min-vw-100{min-width:100vw}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.h-auto{height:auto}.h-min{height:min-content}.h-max{height:max-content}.h-fit{height:fit-content}.max-h-100{max-height:100%}.min-h-0{min-height:0}.min-h-100{min-height:100%}.vh-100{height:100vh}.min-vh-100{min-height:100vh}.flex-fill{flex:auto}.flex-row{flex-direction:row}.flex-column{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-column-reverse{flex-direction:column-reverse}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.justify-content-start{justify-content:flex-start}.justify-content-end{justify-content:flex-end}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.justify-content-around{justify-content:space-around}.justify-content-evenly{justify-content:space-evenly}.justify-items-start{justify-items:start}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.justify-items-stretch{justify-items:stretch}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.align-items-start{align-items:flex-start}.align-items-end{align-items:flex-end}.align-items-center{align-items:center}.align-items-baseline{align-items:baseline}.align-items-stretch{align-items:stretch}.align-content-start{align-content:flex-start}.align-content-end{align-content:flex-end}.align-content-center{align-content:center}.align-content-between{align-content:space-between}.align-content-around{align-content:space-around}.align-content-stretch{align-content:stretch}.align-self-auto{align-self:auto}.align-self-start{align-self:flex-start}.align-self-end{align-self:flex-end}.align-self-center{align-self:center}.align-self-baseline{align-self:baseline}.align-self-stretch{align-self:stretch}.place-items-start{place-items:start}.place-items-end{place-items:end}.place-items-center{place-items:center}.place-items-stretch{place-items:stretch stretch}.grid-cols-1{grid-template-columns:1fr}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.grid-cols-6{grid-template-columns:repeat(6,1fr)}.grid-cols-fill{grid-column:1/-1}.grid-auto-flow-row{grid-auto-flow:row}.grid-auto-flow-column{grid-auto-flow:column}.grid-auto-flow-dense{grid-auto-flow:dense}.order-first{order:-1}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-last{order:6}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-3{margin:.75rem}.m-4{margin:1rem}.m-5{margin:1.25rem}.m-6{margin:1.5rem}.m-7{margin:2rem}.m-8{margin:2.5rem}.m-9{margin:3rem}.m-auto{margin:auto}.mx-0{margin-inline:0}.mx-1{margin-inline:.25rem}.mx-2{margin-inline:.5rem}.mx-3{margin-inline:.75rem}.mx-4{margin-inline:1rem}.mx-5{margin-inline:1.25rem}.mx-6{margin-inline:1.5rem}.mx-7{margin-inline:2rem}.mx-8{margin-inline:2.5rem}.mx-9{margin-inline:3rem}.mx-auto{margin-inline:auto}.my-0{margin-block:0}.my-1{margin-block:.25rem}.my-2{margin-block:.5rem}.my-3{margin-block:.75rem}.my-4{margin-block:1rem}.my-5{margin-block:1.25rem}.my-6{margin-block:1.5rem}.my-7{margin-block:2rem}.my-8{margin-block:2.5rem}.my-9{margin-block:3rem}.my-auto{margin-block:auto}.mt-0{margin-block-start:0}.mt-1{margin-block-start:.25rem}.mt-2{margin-block-start:.5rem}.mt-3{margin-block-start:.75rem}.mt-4{margin-block-start:1rem}.mt-5{margin-block-start:1.25rem}.mt-6{margin-block-start:1.5rem}.mt-7{margin-block-start:2rem}.mt-8{margin-block-start:2.5rem}.mt-9{margin-block-start:3rem}.mt-auto{margin-block-start:auto}.me-0{margin-inline-end:0}.me-1{margin-inline-end:.25rem}.me-2{margin-inline-end:.5rem}.me-3{margin-inline-end:.75rem}.me-4{margin-inline-end:1rem}.me-5{margin-inline-end:1.25rem}.me-6{margin-inline-end:1.5rem}.me-7{margin-inline-end:2rem}.me-8{margin-inline-end:2.5rem}.me-9{margin-inline-end:3rem}.me--1{margin-inline-end:-.25rem}.me--2{margin-inline-end:-.5rem}.me-auto{margin-inline-end:auto}.mb-0{margin-block-end:0}.mb-1{margin-block-end:.25rem}.mb-2{margin-block-end:.5rem}.mb-3{margin-block-end:.75rem}.mb-4{margin-block-end:1rem}.mb-5{margin-block-end:1.25rem}.mb-6{margin-block-end:1.5rem}.mb-7{margin-block-end:2rem}.mb-8{margin-block-end:2.5rem}.mb-9{margin-block-end:3rem}.mb-auto{margin-block-end:auto}.ms-0{margin-inline-start:0}.ms-1{margin-inline-start:.25rem}.ms-2{margin-inline-start:.5rem}.ms-3{margin-inline-start:.75rem}.ms-4{margin-inline-start:1rem}.ms-5{margin-inline-start:1.25rem}.ms-6{margin-inline-start:1.5rem}.ms-7{margin-inline-start:2rem}.ms-8{margin-inline-start:2.5rem}.ms-9{margin-inline-start:3rem}.ms--1{margin-inline-start:-.25rem}.ms--2{margin-inline-start:-.5rem}.ms-auto{margin-inline-start:auto}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:2rem}.p-8{padding:2.5rem}.p-9{padding:3rem}.px-0{padding-inline:0}.px-1{padding-inline:.25rem}.px-2{padding-inline:.5rem}.px-3{padding-inline:.75rem}.px-4{padding-inline:1rem}.px-5{padding-inline:1.25rem}.px-6{padding-inline:1.5rem}.px-7{padding-inline:2rem}.px-8{padding-inline:2.5rem}.px-9{padding-inline:3rem}.py-0{padding-block:0}.py-1{padding-block:.25rem}.py-2{padding-block:.5rem}.py-3{padding-block:.75rem}.py-4{padding-block:1rem}.py-5{padding-block:1.25rem}.py-6{padding-block:1.5rem}.py-7{padding-block:2rem}.py-8{padding-block:2.5rem}.py-9{padding-block:3rem}.pt-0{padding-block-start:0}.pt-1{padding-block-start:.25rem}.pt-2{padding-block-start:.5rem}.pt-3{padding-block-start:.75rem}.pt-4{padding-block-start:1rem}.pt-5{padding-block-start:1.25rem}.pt-6{padding-block-start:1.5rem}.pt-7{padding-block-start:2rem}.pt-8{padding-block-start:2.5rem}.pt-9{padding-block-start:3rem}.pe-0{padding-inline-end:0}.pe-1{padding-inline-end:.25rem}.pe-2{padding-inline-end:.5rem}.pe-3{padding-inline-end:.75rem}.pe-4{padding-inline-end:1rem}.pe-5{padding-inline-end:1.25rem}.pe-6{padding-inline-end:1.5rem}.pe-7{padding-inline-end:2rem}.pe-8{padding-inline-end:2.5rem}.pe-9{padding-inline-end:3rem}.pb-0{padding-block-end:0}.pb-1{padding-block-end:.25rem}.pb-2{padding-block-end:.5rem}.pb-3{padding-block-end:.75rem}.pb-4{padding-block-end:1rem}.pb-5{padding-block-end:1.25rem}.pb-6{padding-block-end:1.5rem}.pb-7{padding-block-end:2rem}.pb-8{padding-block-end:2.5rem}.pb-9{padding-block-end:3rem}.ps-0{padding-inline-start:0}.ps-1{padding-inline-start:.25rem}.ps-2{padding-inline-start:.5rem}.ps-3{padding-inline-start:.75rem}.ps-4{padding-inline-start:1rem}.ps-5{padding-inline-start:1.25rem}.ps-6{padding-inline-start:1.5rem}.ps-7{padding-inline-start:2rem}.ps-8{padding-inline-start:2.5rem}.ps-9{padding-inline-start:3rem}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:2rem}.gap-8{gap:2.5rem}.gap-9{gap:3rem}.row-gap-0{row-gap:0}.row-gap-1{row-gap:.25rem}.row-gap-2{row-gap:.5rem}.row-gap-3{row-gap:.75rem}.row-gap-4{row-gap:1rem}.row-gap-5{row-gap:1.25rem}.row-gap-6{row-gap:1.5rem}.row-gap-7{row-gap:2rem}.row-gap-8{row-gap:2.5rem}.row-gap-9{row-gap:3rem}.column-gap-0{-moz-column-gap:0;column-gap:0}.column-gap-1{-moz-column-gap:.25rem;column-gap:.25rem}.column-gap-2{-moz-column-gap:.5rem;column-gap:.5rem}.column-gap-3{-moz-column-gap:.75rem;column-gap:.75rem}.column-gap-4{-moz-column-gap:1rem;column-gap:1rem}.column-gap-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.column-gap-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.column-gap-7{-moz-column-gap:2rem;column-gap:2rem}.column-gap-8{-moz-column-gap:2.5rem;column-gap:2.5rem}.column-gap-9{-moz-column-gap:3rem;column-gap:3rem}:where(.space-x-0>:not(:last-child)){margin-inline-end:0}:where(.space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.space-y-0>:not(:last-child)){margin-block-end:0}:where(.space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.divide-x-0>:not(:first-child)){border-inline-start:0}:where(.divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.divide-y-0>:not(:first-child)){border-block-start:0}.font-monospace{font-family:var(--bs-font-mono)}.font-body{font-family:var(--bs-body-font-family)}.fs-xs{font-size:.75rem}.fs-sm{font-size:.875rem}.fs-md{font-size:1rem}.fs-lg{font-size:clamp(1.25rem,1rem + .625vw,1.5rem)}.fs-xl{font-size:clamp(1.5rem,1.1rem + .75vw,1.75rem)}.fs-2xl{font-size:clamp(1.75rem,1.3rem + 1vw,2rem)}.fs-3xl{font-size:clamp(2rem,1.5rem + 1.875vw,2.5rem)}.fs-4xl{font-size:clamp(2.25rem,1.75rem + 2.5vw,3rem)}.fs-5xl{font-size:clamp(3rem,2rem + 5vw,4rem)}.fs-6xl{font-size:clamp(3.75rem,2.5rem + 6.25vw,5rem)}.text-xs{font-size:.75rem;line-height:1.25}.text-sm{font-size:.875rem;line-height:1.5}.text-md{font-size:1rem;line-height:1.5}.text-lg{font-size:clamp(1.25rem,1rem + .625vw,1.5rem);line-height:1.5}.text-xl{font-size:clamp(1.5rem,1.1rem + .75vw,1.75rem);line-height:1.42857}.text-2xl{font-size:clamp(1.75rem,1.3rem + 1vw,2rem);line-height:1.33333}.text-3xl{font-size:clamp(2rem,1.5rem + 1.875vw,2.5rem);line-height:1.2}.text-4xl{font-size:clamp(2.25rem,1.75rem + 2.5vw,3rem);line-height:1.1}.text-5xl{font-size:clamp(3rem,2rem + 5vw,4rem);line-height:1.1}.text-6xl{font-size:clamp(3.75rem,2.5rem + 6.25vw,5rem);line-height:1}.fst-italic{font-style:italic}.fst-normal{font-style:normal}.fw-lighter{font-weight:lighter}.fw-light{font-weight:300}.fw-normal{font-weight:400}.fw-medium{font-weight:500}.fw-semibold{font-weight:600}.fw-bold{font-weight:700}.fw-bolder{font-weight:bolder}.lh-1{line-height:1}.lh-sm{line-height:1.25}.lh-base{line-height:1.5}.lh-lg{line-height:2}.text-start{text-align:start}.text-end{text-align:end}.text-center{text-align:center}.text-decoration-none{text-decoration:none}.text-decoration-underline{text-decoration:underline}.text-decoration-line-through{text-decoration:line-through}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-wrap{text-wrap:wrap}.text-nowrap{text-wrap:nowrap}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.text-break{word-wrap:break-word;word-break:break-word}.fg-primary{--bs-fg:var(--bs-primary-fg);color:var(--bs-fg)}.fg-accent{--bs-fg:var(--bs-accent-fg);color:var(--bs-fg)}.fg-success{--bs-fg:var(--bs-success-fg);color:var(--bs-fg)}.fg-danger{--bs-fg:var(--bs-danger-fg);color:var(--bs-fg)}.fg-warning{--bs-fg:var(--bs-warning-fg);color:var(--bs-fg)}.fg-info{--bs-fg:var(--bs-info-fg);color:var(--bs-fg)}.fg-inverse{--bs-fg:var(--bs-inverse-fg);color:var(--bs-fg)}.fg-secondary{--bs-fg:var(--bs-secondary-fg);color:var(--bs-fg)}.fg-body{--bs-fg:var(--bs-fg-body);color:var(--bs-fg)}.fg-1{--bs-fg:var(--bs-fg-1);color:var(--bs-fg)}.fg-2{--bs-fg:var(--bs-fg-2);color:var(--bs-fg)}.fg-3{--bs-fg:var(--bs-fg-3);color:var(--bs-fg)}.fg-4{--bs-fg:var(--bs-fg-4);color:var(--bs-fg)}.fg-bg{--bs-fg:var(--bs-fg-bg);color:var(--bs-fg)}.fg-white{--bs-fg:var(--bs-fg-white);color:var(--bs-fg)}.fg-black{--bs-fg:var(--bs-fg-black);color:var(--bs-fg)}.fg-emphasis-primary{--bs-fg:var(--bs-primary-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-accent{--bs-fg:var(--bs-accent-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-success{--bs-fg:var(--bs-success-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-danger{--bs-fg:var(--bs-danger-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-warning{--bs-fg:var(--bs-warning-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-info{--bs-fg:var(--bs-info-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-inverse{--bs-fg:var(--bs-inverse-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-secondary{--bs-fg:var(--bs-secondary-fg-emphasis);color:var(--bs-fg)}.fg-contrast-primary{--bs-fg:var(--bs-primary-contrast);color:var(--bs-fg)}.fg-contrast-accent{--bs-fg:var(--bs-accent-contrast);color:var(--bs-fg)}.fg-contrast-success{--bs-fg:var(--bs-success-contrast);color:var(--bs-fg)}.fg-contrast-danger{--bs-fg:var(--bs-danger-contrast);color:var(--bs-fg)}.fg-contrast-warning{--bs-fg:var(--bs-warning-contrast);color:var(--bs-fg)}.fg-contrast-info{--bs-fg:var(--bs-info-contrast);color:var(--bs-fg)}.fg-contrast-inverse{--bs-fg:var(--bs-inverse-contrast);color:var(--bs-fg)}.fg-contrast-secondary{--bs-fg:var(--bs-secondary-contrast);color:var(--bs-fg)}.fg-10{color:color-mix(in oklch, var(--bs-fg) 10%, transparent)}.fg-20{color:color-mix(in oklch, var(--bs-fg) 20%, transparent)}.fg-30{color:color-mix(in oklch, var(--bs-fg) 30%, transparent)}.fg-40{color:color-mix(in oklch, var(--bs-fg) 40%, transparent)}.fg-50{color:color-mix(in oklch, var(--bs-fg) 50%, transparent)}.fg-60{color:color-mix(in oklch, var(--bs-fg) 60%, transparent)}.fg-70{color:color-mix(in oklch, var(--bs-fg) 70%, transparent)}.fg-80{color:color-mix(in oklch, var(--bs-fg) 80%, transparent)}.fg-90{color:color-mix(in oklch, var(--bs-fg) 90%, transparent)}.fg-100{color:var(--bs-fg)}.link-10,.hover\:link-10:hover{color:color-mix(in oklch, var(--bs-link-color) 10%, transparent)}.link-20,.hover\:link-20:hover{color:color-mix(in oklch, var(--bs-link-color) 20%, transparent)}.link-30,.hover\:link-30:hover{color:color-mix(in oklch, var(--bs-link-color) 30%, transparent)}.link-40,.hover\:link-40:hover{color:color-mix(in oklch, var(--bs-link-color) 40%, transparent)}.link-50,.hover\:link-50:hover{color:color-mix(in oklch, var(--bs-link-color) 50%, transparent)}.link-60,.hover\:link-60:hover{color:color-mix(in oklch, var(--bs-link-color) 60%, transparent)}.link-70,.hover\:link-70:hover{color:color-mix(in oklch, var(--bs-link-color) 70%, transparent)}.link-80,.hover\:link-80:hover{color:color-mix(in oklch, var(--bs-link-color) 80%, transparent)}.link-90,.hover\:link-90:hover{color:color-mix(in oklch, var(--bs-link-color) 90%, transparent)}.link-100,.hover\:link-100:hover{color:var(--bs-link-color)}.underline-offset-1,.hover\:underline-offset-1:hover{text-underline-offset:.125em}.underline-offset-2,.hover\:underline-offset-2:hover{text-underline-offset:.25em}.underline-offset-3,.hover\:underline-offset-3:hover{text-underline-offset:.375em}.underline-primary{-webkit-text-decoration-color:var(--lightningcss-light,var(--bs-blue-600))var(--lightningcss-dark,var(--bs-blue-400));text-decoration-color:var(--lightningcss-light,var(--bs-blue-600))var(--lightningcss-dark,var(--bs-blue-400))}.underline-accent{-webkit-text-decoration-color:var(--lightningcss-light,var(--bs-indigo-600))var(--lightningcss-dark,color-mix(in oklch, var(--bs-indigo-400), var(--bs-indigo-300)));text-decoration-color:var(--lightningcss-light,var(--bs-indigo-600))var(--lightningcss-dark,color-mix(in oklch, var(--bs-indigo-400), var(--bs-indigo-300)))}.underline-success{-webkit-text-decoration-color:var(--lightningcss-light,var(--bs-green-600))var(--lightningcss-dark,var(--bs-green-400));text-decoration-color:var(--lightningcss-light,var(--bs-green-600))var(--lightningcss-dark,var(--bs-green-400))}.underline-danger{-webkit-text-decoration-color:var(--lightningcss-light,var(--bs-red-600))var(--lightningcss-dark,var(--bs-red-400));text-decoration-color:var(--lightningcss-light,var(--bs-red-600))var(--lightningcss-dark,var(--bs-red-400))}.underline-warning{-webkit-text-decoration-color:var(--lightningcss-light,var(--bs-yellow-700))var(--lightningcss-dark,var(--bs-yellow-400));text-decoration-color:var(--lightningcss-light,var(--bs-yellow-700))var(--lightningcss-dark,var(--bs-yellow-400))}.underline-info{-webkit-text-decoration-color:var(--lightningcss-light,var(--bs-cyan-600))var(--lightningcss-dark,var(--bs-cyan-400));text-decoration-color:var(--lightningcss-light,var(--bs-cyan-600))var(--lightningcss-dark,var(--bs-cyan-400))}.underline-inverse{-webkit-text-decoration-color:var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-gray-200));text-decoration-color:var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-gray-200))}.underline-secondary{-webkit-text-decoration-color:var(--lightningcss-light,var(--bs-gray-600))var(--lightningcss-dark,var(--bs-gray-400));text-decoration-color:var(--lightningcss-light,var(--bs-gray-600))var(--lightningcss-dark,var(--bs-gray-400))}.underline-10,.hover\:underline-10:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 10%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 10%, transparent)}.underline-20,.hover\:underline-20:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 20%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 20%, transparent)}.underline-30,.hover\:underline-30:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 30%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 30%, transparent)}.underline-40,.hover\:underline-40:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 40%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 40%, transparent)}.underline-50,.hover\:underline-50:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 50%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 50%, transparent)}.underline-60,.hover\:underline-60:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 60%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 60%, transparent)}.underline-70,.hover\:underline-70:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 70%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 70%, transparent)}.underline-80,.hover\:underline-80:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 80%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 80%, transparent)}.underline-90,.hover\:underline-90:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 90%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 90%, transparent)}.underline-100,.hover\:underline-100:hover{-webkit-text-decoration-color:var(--bs-link-color);text-decoration-color:var(--bs-link-color)}.underline-thickness-1,.hover\:underline-thickness-1:hover{text-decoration-thickness:1px}.underline-thickness-2,.hover\:underline-thickness-2:hover{text-decoration-thickness:2px}.underline-thickness-3,.hover\:underline-thickness-3:hover{text-decoration-thickness:3px}.underline-thickness-4,.hover\:underline-thickness-4:hover{text-decoration-thickness:4px}.underline-thickness-5,.hover\:underline-thickness-5:hover{text-decoration-thickness:5px}.bg-primary{--bs-bg:var(--bs-primary-bg);background-color:var(--bs-bg)}.bg-accent{--bs-bg:var(--bs-accent-bg);background-color:var(--bs-bg)}.bg-success{--bs-bg:var(--bs-success-bg);background-color:var(--bs-bg)}.bg-danger{--bs-bg:var(--bs-danger-bg);background-color:var(--bs-bg)}.bg-warning{--bs-bg:var(--bs-warning-bg);background-color:var(--bs-bg)}.bg-info{--bs-bg:var(--bs-info-bg);background-color:var(--bs-bg)}.bg-inverse{--bs-bg:var(--bs-inverse-bg);background-color:var(--bs-bg)}.bg-secondary{--bs-bg:var(--bs-secondary-bg);background-color:var(--bs-bg)}.bg-body{--bs-bg:var(--bs-bg-body);background-color:var(--bs-bg)}.bg-1{--bs-bg:var(--bs-bg-1);background-color:var(--bs-bg)}.bg-2{--bs-bg:var(--bs-bg-2);background-color:var(--bs-bg)}.bg-3{--bs-bg:var(--bs-bg-3);background-color:var(--bs-bg)}.bg-4{--bs-bg:var(--bs-bg-4);background-color:var(--bs-bg)}.bg-fg{--bs-bg:var(--bs-bg-fg);background-color:var(--bs-bg)}.bg-white{--bs-bg:var(--bs-bg-white);background-color:var(--bs-bg)}.bg-black{--bs-bg:var(--bs-bg-black);background-color:var(--bs-bg)}.bg-transparent{--bs-bg:var(--bs-bg-transparent);background-color:var(--bs-bg)}.bg-subtle-primary{--bs-bg:var(--bs-primary-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-accent{--bs-bg:var(--bs-accent-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-success{--bs-bg:var(--bs-success-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-danger{--bs-bg:var(--bs-danger-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-warning{--bs-bg:var(--bs-warning-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-info{--bs-bg:var(--bs-info-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-inverse{--bs-bg:var(--bs-inverse-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-secondary{--bs-bg:var(--bs-secondary-bg-subtle);background-color:var(--bs-bg)}.bg-muted-primary{--bs-bg:var(--bs-primary-bg-muted);background-color:var(--bs-bg)}.bg-muted-accent{--bs-bg:var(--bs-accent-bg-muted);background-color:var(--bs-bg)}.bg-muted-success{--bs-bg:var(--bs-success-bg-muted);background-color:var(--bs-bg)}.bg-muted-danger{--bs-bg:var(--bs-danger-bg-muted);background-color:var(--bs-bg)}.bg-muted-warning{--bs-bg:var(--bs-warning-bg-muted);background-color:var(--bs-bg)}.bg-muted-info{--bs-bg:var(--bs-info-bg-muted);background-color:var(--bs-bg)}.bg-muted-inverse{--bs-bg:var(--bs-inverse-bg-muted);background-color:var(--bs-bg)}.bg-muted-secondary{--bs-bg:var(--bs-secondary-bg-muted);background-color:var(--bs-bg)}.bg-10{background-color:color-mix(in oklch, var(--bs-bg) 10%, transparent)}.bg-20{background-color:color-mix(in oklch, var(--bs-bg) 20%, transparent)}.bg-30{background-color:color-mix(in oklch, var(--bs-bg) 30%, transparent)}.bg-40{background-color:color-mix(in oklch, var(--bs-bg) 40%, transparent)}.bg-50{background-color:color-mix(in oklch, var(--bs-bg) 50%, transparent)}.bg-60{background-color:color-mix(in oklch, var(--bs-bg) 60%, transparent)}.bg-70{background-color:color-mix(in oklch, var(--bs-bg) 70%, transparent)}.bg-80{background-color:color-mix(in oklch, var(--bs-bg) 80%, transparent)}.bg-90{background-color:color-mix(in oklch, var(--bs-bg) 90%, transparent)}.bg-100{background-color:var(--bs-bg)}.theme-contrast{background-color:var(--bs-theme-bg);color:var(--bs-theme-contrast)}.theme-subtle{background-color:var(--bs-theme-bg-subtle);color:var(--bs-theme-fg)}.theme-muted{background-color:var(--bs-theme-bg-muted);color:var(--bs-theme-fg-emphasis)}.theme-border{border:var(--bs-border-width) solid var(--bs-theme-border)}.bg-gradient{background-image:var(--bs-gradient)}.user-select-all{-webkit-user-select:all;user-select:all}.user-select-auto{-webkit-user-select:auto;user-select:auto}.user-select-text{-webkit-user-select:text;user-select:text}.user-select-none{-webkit-user-select:none;user-select:none}.pe-none{pointer-events:none}.pe-auto{pointer-events:auto}.rounded-0{--bs-rounded-size:0;border-radius:var(--bs-rounded-size)}.rounded-1{--bs-rounded-size:.125rem;border-radius:var(--bs-rounded-size)}.rounded-2{--bs-rounded-size:.1875rem;border-radius:var(--bs-rounded-size)}.rounded-3{--bs-rounded-size:.25rem;border-radius:var(--bs-rounded-size)}.rounded-4{--bs-rounded-size:.375rem;border-radius:var(--bs-rounded-size)}.rounded-5{--bs-rounded-size:.5rem;border-radius:var(--bs-rounded-size)}.rounded-6{--bs-rounded-size:.625rem;border-radius:var(--bs-rounded-size)}.rounded-7{--bs-rounded-size:.75rem;border-radius:var(--bs-rounded-size)}.rounded-8{--bs-rounded-size:1rem;border-radius:var(--bs-rounded-size)}.rounded-9{--bs-rounded-size:1.5rem;border-radius:var(--bs-rounded-size)}.rounded{--bs-rounded-size:.5rem;border-radius:var(--bs-rounded-size)}.rounded-circle{--bs-rounded-size:50%;border-radius:var(--bs-rounded-size)}.rounded-pill{--bs-rounded-size:var(--bs-radius-pill);border-radius:var(--bs-rounded-size)}.rounded-size-0{--bs-rounded-size:0}.rounded-size-1{--bs-rounded-size:.125rem}.rounded-size-2{--bs-rounded-size:.1875rem}.rounded-size-3{--bs-rounded-size:.25rem}.rounded-size-4{--bs-rounded-size:.375rem}.rounded-size-5{--bs-rounded-size:.5rem}.rounded-size-6{--bs-rounded-size:.625rem}.rounded-size-7{--bs-rounded-size:.75rem}.rounded-size-8{--bs-rounded-size:1rem}.rounded-size-9{--bs-rounded-size:1.5rem}.rounded-size{--bs-rounded-size:.5rem}.rounded-size-circle{--bs-rounded-size:50%}.rounded-size-pill{--bs-rounded-size:var(--bs-radius-pill)}.rounded-top-0{border-start-start-radius:0;border-start-end-radius:0}.rounded-top-1{border-start-start-radius:.125rem;border-start-end-radius:.125rem}.rounded-top-2{border-start-start-radius:.1875rem;border-start-end-radius:.1875rem}.rounded-top-3{border-start-start-radius:.25rem;border-start-end-radius:.25rem}.rounded-top-4{border-start-start-radius:.375rem;border-start-end-radius:.375rem}.rounded-top-5{border-start-start-radius:.5rem;border-start-end-radius:.5rem}.rounded-top-6{border-start-start-radius:.625rem;border-start-end-radius:.625rem}.rounded-top-7{border-start-start-radius:.75rem;border-start-end-radius:.75rem}.rounded-top-8{border-start-start-radius:1rem;border-start-end-radius:1rem}.rounded-top-9{border-start-start-radius:1.5rem;border-start-end-radius:1.5rem}.rounded-top{border-start-start-radius:var(--bs-rounded-size,var(--bs-radius-5));border-start-end-radius:var(--bs-rounded-size,var(--bs-radius-5))}.rounded-top-circle{border-start-start-radius:50%;border-start-end-radius:50%}.rounded-top-pill{border-start-start-radius:var(--bs-radius-pill);border-start-end-radius:var(--bs-radius-pill)}.rounded-end-0{border-start-end-radius:0;border-end-end-radius:0}.rounded-end-1{border-start-end-radius:.125rem;border-end-end-radius:.125rem}.rounded-end-2{border-start-end-radius:.1875rem;border-end-end-radius:.1875rem}.rounded-end-3{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-end-4{border-start-end-radius:.375rem;border-end-end-radius:.375rem}.rounded-end-5{border-start-end-radius:.5rem;border-end-end-radius:.5rem}.rounded-end-6{border-start-end-radius:.625rem;border-end-end-radius:.625rem}.rounded-end-7{border-start-end-radius:.75rem;border-end-end-radius:.75rem}.rounded-end-8{border-start-end-radius:1rem;border-end-end-radius:1rem}.rounded-end-9{border-start-end-radius:1.5rem;border-end-end-radius:1.5rem}.rounded-end{border-start-end-radius:var(--bs-rounded-size,var(--bs-radius-5));border-end-end-radius:var(--bs-rounded-size,var(--bs-radius-5))}.rounded-end-circle{border-start-end-radius:50%;border-end-end-radius:50%}.rounded-end-pill{border-start-end-radius:var(--bs-radius-pill);border-end-end-radius:var(--bs-radius-pill)}.rounded-bottom-0{border-end-end-radius:0;border-end-start-radius:0}.rounded-bottom-1{border-end-end-radius:.125rem;border-end-start-radius:.125rem}.rounded-bottom-2{border-end-end-radius:.1875rem;border-end-start-radius:.1875rem}.rounded-bottom-3{border-end-end-radius:.25rem;border-end-start-radius:.25rem}.rounded-bottom-4{border-end-end-radius:.375rem;border-end-start-radius:.375rem}.rounded-bottom-5{border-end-end-radius:.5rem;border-end-start-radius:.5rem}.rounded-bottom-6{border-end-end-radius:.625rem;border-end-start-radius:.625rem}.rounded-bottom-7{border-end-end-radius:.75rem;border-end-start-radius:.75rem}.rounded-bottom-8{border-end-end-radius:1rem;border-end-start-radius:1rem}.rounded-bottom-9{border-end-end-radius:1.5rem;border-end-start-radius:1.5rem}.rounded-bottom{border-end-end-radius:var(--bs-rounded-size,var(--bs-radius-5));border-end-start-radius:var(--bs-rounded-size,var(--bs-radius-5))}.rounded-bottom-circle{border-end-end-radius:50%;border-end-start-radius:50%}.rounded-bottom-pill{border-end-end-radius:var(--bs-radius-pill);border-end-start-radius:var(--bs-radius-pill)}.rounded-start-0{border-start-start-radius:0;border-end-start-radius:0}.rounded-start-1{border-start-start-radius:.125rem;border-end-start-radius:.125rem}.rounded-start-2{border-start-start-radius:.1875rem;border-end-start-radius:.1875rem}.rounded-start-3{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-start-4{border-start-start-radius:.375rem;border-end-start-radius:.375rem}.rounded-start-5{border-start-start-radius:.5rem;border-end-start-radius:.5rem}.rounded-start-6{border-start-start-radius:.625rem;border-end-start-radius:.625rem}.rounded-start-7{border-start-start-radius:.75rem;border-end-start-radius:.75rem}.rounded-start-8{border-start-start-radius:1rem;border-end-start-radius:1rem}.rounded-start-9{border-start-start-radius:1.5rem;border-end-start-radius:1.5rem}.rounded-start{border-start-start-radius:var(--bs-rounded-size,var(--bs-radius-5));border-end-start-radius:var(--bs-rounded-size,var(--bs-radius-5))}.rounded-start-circle{border-start-start-radius:50%;border-end-start-radius:50%}.rounded-start-pill{border-start-start-radius:var(--bs-radius-pill);border-end-start-radius:var(--bs-radius-pill)}.visible{visibility:visible}.invisible{visibility:hidden}.z-n1{z-index:-1}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}@media (min-width:576px){.sm\:float-start{float:inline-start}.sm\:float-end{float:inline-end}.sm\:float-none{float:none}.sm\:object-fit-contain{-o-object-fit:contain;object-fit:contain}.sm\:object-fit-cover{-o-object-fit:cover;object-fit:cover}.sm\:object-fit-fill{-o-object-fit:fill;object-fit:fill}.sm\:object-fit-scale{-o-object-fit:scale-down;object-fit:scale-down}.sm\:object-fit-none{-o-object-fit:none;object-fit:none}.sm\:d-inline{display:inline}.sm\:d-inline-block{display:inline-block}.sm\:d-block{display:block}.sm\:d-grid{display:grid}.sm\:d-inline-grid{display:inline-grid}.sm\:d-table{display:table}.sm\:d-table-row{display:table-row}.sm\:d-table-cell{display:table-cell}.sm\:d-flex{display:flex}.sm\:d-inline-flex{display:inline-flex}.sm\:d-contents{display:contents}.sm\:d-flow-root{display:flow-root}.sm\:d-none{display:none}.sm\:flex-fill{flex:auto}.sm\:flex-row{flex-direction:row}.sm\:flex-column{flex-direction:column}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:flex-column-reverse{flex-direction:column-reverse}.sm\:flex-grow-0{flex-grow:0}.sm\:flex-grow-1{flex-grow:1}.sm\:flex-shrink-0{flex-shrink:0}.sm\:flex-shrink-1{flex-shrink:1}.sm\:flex-wrap{flex-wrap:wrap}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:flex-wrap-reverse{flex-wrap:wrap-reverse}.sm\:justify-content-start{justify-content:flex-start}.sm\:justify-content-end{justify-content:flex-end}.sm\:justify-content-center{justify-content:center}.sm\:justify-content-between{justify-content:space-between}.sm\:justify-content-around{justify-content:space-around}.sm\:justify-content-evenly{justify-content:space-evenly}.sm\:justify-items-start{justify-items:start}.sm\:justify-items-end{justify-items:end}.sm\:justify-items-center{justify-items:center}.sm\:justify-items-stretch{justify-items:stretch}.sm\:justify-self-start{justify-self:start}.sm\:justify-self-end{justify-self:end}.sm\:justify-self-center{justify-self:center}.sm\:align-items-start{align-items:flex-start}.sm\:align-items-end{align-items:flex-end}.sm\:align-items-center{align-items:center}.sm\:align-items-baseline{align-items:baseline}.sm\:align-items-stretch{align-items:stretch}.sm\:align-content-start{align-content:flex-start}.sm\:align-content-end{align-content:flex-end}.sm\:align-content-center{align-content:center}.sm\:align-content-between{align-content:space-between}.sm\:align-content-around{align-content:space-around}.sm\:align-content-stretch{align-content:stretch}.sm\:align-self-auto{align-self:auto}.sm\:align-self-start{align-self:flex-start}.sm\:align-self-end{align-self:flex-end}.sm\:align-self-center{align-self:center}.sm\:align-self-baseline{align-self:baseline}.sm\:align-self-stretch{align-self:stretch}.sm\:place-items-start{place-items:start}.sm\:place-items-end{place-items:end}.sm\:place-items-center{place-items:center}.sm\:place-items-stretch{place-items:stretch stretch}.sm\:grid-cols-1{grid-template-columns:1fr}.sm\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.sm\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.sm\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.sm\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.sm\:grid-cols-fill{grid-column:1/-1}.sm\:grid-auto-flow-row{grid-auto-flow:row}.sm\:grid-auto-flow-column{grid-auto-flow:column}.sm\:grid-auto-flow-dense{grid-auto-flow:dense}.sm\:order-first{order:-1}.sm\:order-0{order:0}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:order-3{order:3}.sm\:order-4{order:4}.sm\:order-5{order:5}.sm\:order-last{order:6}.sm\:m-0{margin:0}.sm\:m-1{margin:.25rem}.sm\:m-2{margin:.5rem}.sm\:m-3{margin:.75rem}.sm\:m-4{margin:1rem}.sm\:m-5{margin:1.25rem}.sm\:m-6{margin:1.5rem}.sm\:m-7{margin:2rem}.sm\:m-8{margin:2.5rem}.sm\:m-9{margin:3rem}.sm\:m-auto{margin:auto}.sm\:mx-0{margin-inline:0}.sm\:mx-1{margin-inline:.25rem}.sm\:mx-2{margin-inline:.5rem}.sm\:mx-3{margin-inline:.75rem}.sm\:mx-4{margin-inline:1rem}.sm\:mx-5{margin-inline:1.25rem}.sm\:mx-6{margin-inline:1.5rem}.sm\:mx-7{margin-inline:2rem}.sm\:mx-8{margin-inline:2.5rem}.sm\:mx-9{margin-inline:3rem}.sm\:mx-auto{margin-inline:auto}.sm\:my-0{margin-block:0}.sm\:my-1{margin-block:.25rem}.sm\:my-2{margin-block:.5rem}.sm\:my-3{margin-block:.75rem}.sm\:my-4{margin-block:1rem}.sm\:my-5{margin-block:1.25rem}.sm\:my-6{margin-block:1.5rem}.sm\:my-7{margin-block:2rem}.sm\:my-8{margin-block:2.5rem}.sm\:my-9{margin-block:3rem}.sm\:my-auto{margin-block:auto}.sm\:mt-0{margin-block-start:0}.sm\:mt-1{margin-block-start:.25rem}.sm\:mt-2{margin-block-start:.5rem}.sm\:mt-3{margin-block-start:.75rem}.sm\:mt-4{margin-block-start:1rem}.sm\:mt-5{margin-block-start:1.25rem}.sm\:mt-6{margin-block-start:1.5rem}.sm\:mt-7{margin-block-start:2rem}.sm\:mt-8{margin-block-start:2.5rem}.sm\:mt-9{margin-block-start:3rem}.sm\:mt-auto{margin-block-start:auto}.sm\:me-0{margin-inline-end:0}.sm\:me-1{margin-inline-end:.25rem}.sm\:me-2{margin-inline-end:.5rem}.sm\:me-3{margin-inline-end:.75rem}.sm\:me-4{margin-inline-end:1rem}.sm\:me-5{margin-inline-end:1.25rem}.sm\:me-6{margin-inline-end:1.5rem}.sm\:me-7{margin-inline-end:2rem}.sm\:me-8{margin-inline-end:2.5rem}.sm\:me-9{margin-inline-end:3rem}.sm\:me--1{margin-inline-end:-.25rem}.sm\:me--2{margin-inline-end:-.5rem}.sm\:me-auto{margin-inline-end:auto}.sm\:mb-0{margin-block-end:0}.sm\:mb-1{margin-block-end:.25rem}.sm\:mb-2{margin-block-end:.5rem}.sm\:mb-3{margin-block-end:.75rem}.sm\:mb-4{margin-block-end:1rem}.sm\:mb-5{margin-block-end:1.25rem}.sm\:mb-6{margin-block-end:1.5rem}.sm\:mb-7{margin-block-end:2rem}.sm\:mb-8{margin-block-end:2.5rem}.sm\:mb-9{margin-block-end:3rem}.sm\:mb-auto{margin-block-end:auto}.sm\:ms-0{margin-inline-start:0}.sm\:ms-1{margin-inline-start:.25rem}.sm\:ms-2{margin-inline-start:.5rem}.sm\:ms-3{margin-inline-start:.75rem}.sm\:ms-4{margin-inline-start:1rem}.sm\:ms-5{margin-inline-start:1.25rem}.sm\:ms-6{margin-inline-start:1.5rem}.sm\:ms-7{margin-inline-start:2rem}.sm\:ms-8{margin-inline-start:2.5rem}.sm\:ms-9{margin-inline-start:3rem}.sm\:ms--1{margin-inline-start:-.25rem}.sm\:ms--2{margin-inline-start:-.5rem}.sm\:ms-auto{margin-inline-start:auto}.sm\:p-0{padding:0}.sm\:p-1{padding:.25rem}.sm\:p-2{padding:.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:p-7{padding:2rem}.sm\:p-8{padding:2.5rem}.sm\:p-9{padding:3rem}.sm\:px-0{padding-inline:0}.sm\:px-1{padding-inline:.25rem}.sm\:px-2{padding-inline:.5rem}.sm\:px-3{padding-inline:.75rem}.sm\:px-4{padding-inline:1rem}.sm\:px-5{padding-inline:1.25rem}.sm\:px-6{padding-inline:1.5rem}.sm\:px-7{padding-inline:2rem}.sm\:px-8{padding-inline:2.5rem}.sm\:px-9{padding-inline:3rem}.sm\:py-0{padding-block:0}.sm\:py-1{padding-block:.25rem}.sm\:py-2{padding-block:.5rem}.sm\:py-3{padding-block:.75rem}.sm\:py-4{padding-block:1rem}.sm\:py-5{padding-block:1.25rem}.sm\:py-6{padding-block:1.5rem}.sm\:py-7{padding-block:2rem}.sm\:py-8{padding-block:2.5rem}.sm\:py-9{padding-block:3rem}.sm\:pt-0{padding-block-start:0}.sm\:pt-1{padding-block-start:.25rem}.sm\:pt-2{padding-block-start:.5rem}.sm\:pt-3{padding-block-start:.75rem}.sm\:pt-4{padding-block-start:1rem}.sm\:pt-5{padding-block-start:1.25rem}.sm\:pt-6{padding-block-start:1.5rem}.sm\:pt-7{padding-block-start:2rem}.sm\:pt-8{padding-block-start:2.5rem}.sm\:pt-9{padding-block-start:3rem}.sm\:pe-0{padding-inline-end:0}.sm\:pe-1{padding-inline-end:.25rem}.sm\:pe-2{padding-inline-end:.5rem}.sm\:pe-3{padding-inline-end:.75rem}.sm\:pe-4{padding-inline-end:1rem}.sm\:pe-5{padding-inline-end:1.25rem}.sm\:pe-6{padding-inline-end:1.5rem}.sm\:pe-7{padding-inline-end:2rem}.sm\:pe-8{padding-inline-end:2.5rem}.sm\:pe-9{padding-inline-end:3rem}.sm\:pb-0{padding-block-end:0}.sm\:pb-1{padding-block-end:.25rem}.sm\:pb-2{padding-block-end:.5rem}.sm\:pb-3{padding-block-end:.75rem}.sm\:pb-4{padding-block-end:1rem}.sm\:pb-5{padding-block-end:1.25rem}.sm\:pb-6{padding-block-end:1.5rem}.sm\:pb-7{padding-block-end:2rem}.sm\:pb-8{padding-block-end:2.5rem}.sm\:pb-9{padding-block-end:3rem}.sm\:ps-0{padding-inline-start:0}.sm\:ps-1{padding-inline-start:.25rem}.sm\:ps-2{padding-inline-start:.5rem}.sm\:ps-3{padding-inline-start:.75rem}.sm\:ps-4{padding-inline-start:1rem}.sm\:ps-5{padding-inline-start:1.25rem}.sm\:ps-6{padding-inline-start:1.5rem}.sm\:ps-7{padding-inline-start:2rem}.sm\:ps-8{padding-inline-start:2.5rem}.sm\:ps-9{padding-inline-start:3rem}.sm\:gap-0{gap:0}.sm\:gap-1{gap:.25rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-5{gap:1.25rem}.sm\:gap-6{gap:1.5rem}.sm\:gap-7{gap:2rem}.sm\:gap-8{gap:2.5rem}.sm\:gap-9{gap:3rem}.sm\:row-gap-0{row-gap:0}.sm\:row-gap-1{row-gap:.25rem}.sm\:row-gap-2{row-gap:.5rem}.sm\:row-gap-3{row-gap:.75rem}.sm\:row-gap-4{row-gap:1rem}.sm\:row-gap-5{row-gap:1.25rem}.sm\:row-gap-6{row-gap:1.5rem}.sm\:row-gap-7{row-gap:2rem}.sm\:row-gap-8{row-gap:2.5rem}.sm\:row-gap-9{row-gap:3rem}.sm\:column-gap-0{-moz-column-gap:0;column-gap:0}.sm\:column-gap-1{-moz-column-gap:.25rem;column-gap:.25rem}.sm\:column-gap-2{-moz-column-gap:.5rem;column-gap:.5rem}.sm\:column-gap-3{-moz-column-gap:.75rem;column-gap:.75rem}.sm\:column-gap-4{-moz-column-gap:1rem;column-gap:1rem}.sm\:column-gap-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.sm\:column-gap-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.sm\:column-gap-7{-moz-column-gap:2rem;column-gap:2rem}.sm\:column-gap-8{-moz-column-gap:2.5rem;column-gap:2.5rem}.sm\:column-gap-9{-moz-column-gap:3rem;column-gap:3rem}:where(.sm\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.sm\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.sm\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.sm\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.sm\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.sm\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.sm\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.sm\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.sm\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.sm\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.sm\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.sm\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.sm\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.sm\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.sm\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.sm\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.sm\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.sm\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.sm\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.sm\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.sm\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.sm\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.sm\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.sm\:divide-y-0>:not(:first-child)){border-block-start:0}.sm\:text-start{text-align:start}.sm\:text-end{text-align:end}.sm\:text-center{text-align:center}}@media (min-width:768px){.md\:float-start{float:inline-start}.md\:float-end{float:inline-end}.md\:float-none{float:none}.md\:object-fit-contain{-o-object-fit:contain;object-fit:contain}.md\:object-fit-cover{-o-object-fit:cover;object-fit:cover}.md\:object-fit-fill{-o-object-fit:fill;object-fit:fill}.md\:object-fit-scale{-o-object-fit:scale-down;object-fit:scale-down}.md\:object-fit-none{-o-object-fit:none;object-fit:none}.md\:d-inline{display:inline}.md\:d-inline-block{display:inline-block}.md\:d-block{display:block}.md\:d-grid{display:grid}.md\:d-inline-grid{display:inline-grid}.md\:d-table{display:table}.md\:d-table-row{display:table-row}.md\:d-table-cell{display:table-cell}.md\:d-flex{display:flex}.md\:d-inline-flex{display:inline-flex}.md\:d-contents{display:contents}.md\:d-flow-root{display:flow-root}.md\:d-none{display:none}.md\:flex-fill{flex:auto}.md\:flex-row{flex-direction:row}.md\:flex-column{flex-direction:column}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:flex-column-reverse{flex-direction:column-reverse}.md\:flex-grow-0{flex-grow:0}.md\:flex-grow-1{flex-grow:1}.md\:flex-shrink-0{flex-shrink:0}.md\:flex-shrink-1{flex-shrink:1}.md\:flex-wrap{flex-wrap:wrap}.md\:flex-nowrap{flex-wrap:nowrap}.md\:flex-wrap-reverse{flex-wrap:wrap-reverse}.md\:justify-content-start{justify-content:flex-start}.md\:justify-content-end{justify-content:flex-end}.md\:justify-content-center{justify-content:center}.md\:justify-content-between{justify-content:space-between}.md\:justify-content-around{justify-content:space-around}.md\:justify-content-evenly{justify-content:space-evenly}.md\:justify-items-start{justify-items:start}.md\:justify-items-end{justify-items:end}.md\:justify-items-center{justify-items:center}.md\:justify-items-stretch{justify-items:stretch}.md\:justify-self-start{justify-self:start}.md\:justify-self-end{justify-self:end}.md\:justify-self-center{justify-self:center}.md\:align-items-start{align-items:flex-start}.md\:align-items-end{align-items:flex-end}.md\:align-items-center{align-items:center}.md\:align-items-baseline{align-items:baseline}.md\:align-items-stretch{align-items:stretch}.md\:align-content-start{align-content:flex-start}.md\:align-content-end{align-content:flex-end}.md\:align-content-center{align-content:center}.md\:align-content-between{align-content:space-between}.md\:align-content-around{align-content:space-around}.md\:align-content-stretch{align-content:stretch}.md\:align-self-auto{align-self:auto}.md\:align-self-start{align-self:flex-start}.md\:align-self-end{align-self:flex-end}.md\:align-self-center{align-self:center}.md\:align-self-baseline{align-self:baseline}.md\:align-self-stretch{align-self:stretch}.md\:place-items-start{place-items:start}.md\:place-items-end{place-items:end}.md\:place-items-center{place-items:center}.md\:place-items-stretch{place-items:stretch stretch}.md\:grid-cols-1{grid-template-columns:1fr}.md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.md\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.md\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.md\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.md\:grid-cols-fill{grid-column:1/-1}.md\:grid-auto-flow-row{grid-auto-flow:row}.md\:grid-auto-flow-column{grid-auto-flow:column}.md\:grid-auto-flow-dense{grid-auto-flow:dense}.md\:order-first{order:-1}.md\:order-0{order:0}.md\:order-1{order:1}.md\:order-2{order:2}.md\:order-3{order:3}.md\:order-4{order:4}.md\:order-5{order:5}.md\:order-last{order:6}.md\:m-0{margin:0}.md\:m-1{margin:.25rem}.md\:m-2{margin:.5rem}.md\:m-3{margin:.75rem}.md\:m-4{margin:1rem}.md\:m-5{margin:1.25rem}.md\:m-6{margin:1.5rem}.md\:m-7{margin:2rem}.md\:m-8{margin:2.5rem}.md\:m-9{margin:3rem}.md\:m-auto{margin:auto}.md\:mx-0{margin-inline:0}.md\:mx-1{margin-inline:.25rem}.md\:mx-2{margin-inline:.5rem}.md\:mx-3{margin-inline:.75rem}.md\:mx-4{margin-inline:1rem}.md\:mx-5{margin-inline:1.25rem}.md\:mx-6{margin-inline:1.5rem}.md\:mx-7{margin-inline:2rem}.md\:mx-8{margin-inline:2.5rem}.md\:mx-9{margin-inline:3rem}.md\:mx-auto{margin-inline:auto}.md\:my-0{margin-block:0}.md\:my-1{margin-block:.25rem}.md\:my-2{margin-block:.5rem}.md\:my-3{margin-block:.75rem}.md\:my-4{margin-block:1rem}.md\:my-5{margin-block:1.25rem}.md\:my-6{margin-block:1.5rem}.md\:my-7{margin-block:2rem}.md\:my-8{margin-block:2.5rem}.md\:my-9{margin-block:3rem}.md\:my-auto{margin-block:auto}.md\:mt-0{margin-block-start:0}.md\:mt-1{margin-block-start:.25rem}.md\:mt-2{margin-block-start:.5rem}.md\:mt-3{margin-block-start:.75rem}.md\:mt-4{margin-block-start:1rem}.md\:mt-5{margin-block-start:1.25rem}.md\:mt-6{margin-block-start:1.5rem}.md\:mt-7{margin-block-start:2rem}.md\:mt-8{margin-block-start:2.5rem}.md\:mt-9{margin-block-start:3rem}.md\:mt-auto{margin-block-start:auto}.md\:me-0{margin-inline-end:0}.md\:me-1{margin-inline-end:.25rem}.md\:me-2{margin-inline-end:.5rem}.md\:me-3{margin-inline-end:.75rem}.md\:me-4{margin-inline-end:1rem}.md\:me-5{margin-inline-end:1.25rem}.md\:me-6{margin-inline-end:1.5rem}.md\:me-7{margin-inline-end:2rem}.md\:me-8{margin-inline-end:2.5rem}.md\:me-9{margin-inline-end:3rem}.md\:me--1{margin-inline-end:-.25rem}.md\:me--2{margin-inline-end:-.5rem}.md\:me-auto{margin-inline-end:auto}.md\:mb-0{margin-block-end:0}.md\:mb-1{margin-block-end:.25rem}.md\:mb-2{margin-block-end:.5rem}.md\:mb-3{margin-block-end:.75rem}.md\:mb-4{margin-block-end:1rem}.md\:mb-5{margin-block-end:1.25rem}.md\:mb-6{margin-block-end:1.5rem}.md\:mb-7{margin-block-end:2rem}.md\:mb-8{margin-block-end:2.5rem}.md\:mb-9{margin-block-end:3rem}.md\:mb-auto{margin-block-end:auto}.md\:ms-0{margin-inline-start:0}.md\:ms-1{margin-inline-start:.25rem}.md\:ms-2{margin-inline-start:.5rem}.md\:ms-3{margin-inline-start:.75rem}.md\:ms-4{margin-inline-start:1rem}.md\:ms-5{margin-inline-start:1.25rem}.md\:ms-6{margin-inline-start:1.5rem}.md\:ms-7{margin-inline-start:2rem}.md\:ms-8{margin-inline-start:2.5rem}.md\:ms-9{margin-inline-start:3rem}.md\:ms--1{margin-inline-start:-.25rem}.md\:ms--2{margin-inline-start:-.5rem}.md\:ms-auto{margin-inline-start:auto}.md\:p-0{padding:0}.md\:p-1{padding:.25rem}.md\:p-2{padding:.5rem}.md\:p-3{padding:.75rem}.md\:p-4{padding:1rem}.md\:p-5{padding:1.25rem}.md\:p-6{padding:1.5rem}.md\:p-7{padding:2rem}.md\:p-8{padding:2.5rem}.md\:p-9{padding:3rem}.md\:px-0{padding-inline:0}.md\:px-1{padding-inline:.25rem}.md\:px-2{padding-inline:.5rem}.md\:px-3{padding-inline:.75rem}.md\:px-4{padding-inline:1rem}.md\:px-5{padding-inline:1.25rem}.md\:px-6{padding-inline:1.5rem}.md\:px-7{padding-inline:2rem}.md\:px-8{padding-inline:2.5rem}.md\:px-9{padding-inline:3rem}.md\:py-0{padding-block:0}.md\:py-1{padding-block:.25rem}.md\:py-2{padding-block:.5rem}.md\:py-3{padding-block:.75rem}.md\:py-4{padding-block:1rem}.md\:py-5{padding-block:1.25rem}.md\:py-6{padding-block:1.5rem}.md\:py-7{padding-block:2rem}.md\:py-8{padding-block:2.5rem}.md\:py-9{padding-block:3rem}.md\:pt-0{padding-block-start:0}.md\:pt-1{padding-block-start:.25rem}.md\:pt-2{padding-block-start:.5rem}.md\:pt-3{padding-block-start:.75rem}.md\:pt-4{padding-block-start:1rem}.md\:pt-5{padding-block-start:1.25rem}.md\:pt-6{padding-block-start:1.5rem}.md\:pt-7{padding-block-start:2rem}.md\:pt-8{padding-block-start:2.5rem}.md\:pt-9{padding-block-start:3rem}.md\:pe-0{padding-inline-end:0}.md\:pe-1{padding-inline-end:.25rem}.md\:pe-2{padding-inline-end:.5rem}.md\:pe-3{padding-inline-end:.75rem}.md\:pe-4{padding-inline-end:1rem}.md\:pe-5{padding-inline-end:1.25rem}.md\:pe-6{padding-inline-end:1.5rem}.md\:pe-7{padding-inline-end:2rem}.md\:pe-8{padding-inline-end:2.5rem}.md\:pe-9{padding-inline-end:3rem}.md\:pb-0{padding-block-end:0}.md\:pb-1{padding-block-end:.25rem}.md\:pb-2{padding-block-end:.5rem}.md\:pb-3{padding-block-end:.75rem}.md\:pb-4{padding-block-end:1rem}.md\:pb-5{padding-block-end:1.25rem}.md\:pb-6{padding-block-end:1.5rem}.md\:pb-7{padding-block-end:2rem}.md\:pb-8{padding-block-end:2.5rem}.md\:pb-9{padding-block-end:3rem}.md\:ps-0{padding-inline-start:0}.md\:ps-1{padding-inline-start:.25rem}.md\:ps-2{padding-inline-start:.5rem}.md\:ps-3{padding-inline-start:.75rem}.md\:ps-4{padding-inline-start:1rem}.md\:ps-5{padding-inline-start:1.25rem}.md\:ps-6{padding-inline-start:1.5rem}.md\:ps-7{padding-inline-start:2rem}.md\:ps-8{padding-inline-start:2.5rem}.md\:ps-9{padding-inline-start:3rem}.md\:gap-0{gap:0}.md\:gap-1{gap:.25rem}.md\:gap-2{gap:.5rem}.md\:gap-3{gap:.75rem}.md\:gap-4{gap:1rem}.md\:gap-5{gap:1.25rem}.md\:gap-6{gap:1.5rem}.md\:gap-7{gap:2rem}.md\:gap-8{gap:2.5rem}.md\:gap-9{gap:3rem}.md\:row-gap-0{row-gap:0}.md\:row-gap-1{row-gap:.25rem}.md\:row-gap-2{row-gap:.5rem}.md\:row-gap-3{row-gap:.75rem}.md\:row-gap-4{row-gap:1rem}.md\:row-gap-5{row-gap:1.25rem}.md\:row-gap-6{row-gap:1.5rem}.md\:row-gap-7{row-gap:2rem}.md\:row-gap-8{row-gap:2.5rem}.md\:row-gap-9{row-gap:3rem}.md\:column-gap-0{-moz-column-gap:0;column-gap:0}.md\:column-gap-1{-moz-column-gap:.25rem;column-gap:.25rem}.md\:column-gap-2{-moz-column-gap:.5rem;column-gap:.5rem}.md\:column-gap-3{-moz-column-gap:.75rem;column-gap:.75rem}.md\:column-gap-4{-moz-column-gap:1rem;column-gap:1rem}.md\:column-gap-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.md\:column-gap-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.md\:column-gap-7{-moz-column-gap:2rem;column-gap:2rem}.md\:column-gap-8{-moz-column-gap:2.5rem;column-gap:2.5rem}.md\:column-gap-9{-moz-column-gap:3rem;column-gap:3rem}:where(.md\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.md\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.md\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.md\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.md\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.md\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.md\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.md\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.md\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.md\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.md\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.md\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.md\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.md\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.md\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.md\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.md\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.md\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.md\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.md\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.md\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.md\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.md\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.md\:divide-y-0>:not(:first-child)){border-block-start:0}.md\:text-start{text-align:start}.md\:text-end{text-align:end}.md\:text-center{text-align:center}}@media (min-width:1024px){.lg\:float-start{float:inline-start}.lg\:float-end{float:inline-end}.lg\:float-none{float:none}.lg\:object-fit-contain{-o-object-fit:contain;object-fit:contain}.lg\:object-fit-cover{-o-object-fit:cover;object-fit:cover}.lg\:object-fit-fill{-o-object-fit:fill;object-fit:fill}.lg\:object-fit-scale{-o-object-fit:scale-down;object-fit:scale-down}.lg\:object-fit-none{-o-object-fit:none;object-fit:none}.lg\:d-inline{display:inline}.lg\:d-inline-block{display:inline-block}.lg\:d-block{display:block}.lg\:d-grid{display:grid}.lg\:d-inline-grid{display:inline-grid}.lg\:d-table{display:table}.lg\:d-table-row{display:table-row}.lg\:d-table-cell{display:table-cell}.lg\:d-flex{display:flex}.lg\:d-inline-flex{display:inline-flex}.lg\:d-contents{display:contents}.lg\:d-flow-root{display:flow-root}.lg\:d-none{display:none}.lg\:flex-fill{flex:auto}.lg\:flex-row{flex-direction:row}.lg\:flex-column{flex-direction:column}.lg\:flex-row-reverse{flex-direction:row-reverse}.lg\:flex-column-reverse{flex-direction:column-reverse}.lg\:flex-grow-0{flex-grow:0}.lg\:flex-grow-1{flex-grow:1}.lg\:flex-shrink-0{flex-shrink:0}.lg\:flex-shrink-1{flex-shrink:1}.lg\:flex-wrap{flex-wrap:wrap}.lg\:flex-nowrap{flex-wrap:nowrap}.lg\:flex-wrap-reverse{flex-wrap:wrap-reverse}.lg\:justify-content-start{justify-content:flex-start}.lg\:justify-content-end{justify-content:flex-end}.lg\:justify-content-center{justify-content:center}.lg\:justify-content-between{justify-content:space-between}.lg\:justify-content-around{justify-content:space-around}.lg\:justify-content-evenly{justify-content:space-evenly}.lg\:justify-items-start{justify-items:start}.lg\:justify-items-end{justify-items:end}.lg\:justify-items-center{justify-items:center}.lg\:justify-items-stretch{justify-items:stretch}.lg\:justify-self-start{justify-self:start}.lg\:justify-self-end{justify-self:end}.lg\:justify-self-center{justify-self:center}.lg\:align-items-start{align-items:flex-start}.lg\:align-items-end{align-items:flex-end}.lg\:align-items-center{align-items:center}.lg\:align-items-baseline{align-items:baseline}.lg\:align-items-stretch{align-items:stretch}.lg\:align-content-start{align-content:flex-start}.lg\:align-content-end{align-content:flex-end}.lg\:align-content-center{align-content:center}.lg\:align-content-between{align-content:space-between}.lg\:align-content-around{align-content:space-around}.lg\:align-content-stretch{align-content:stretch}.lg\:align-self-auto{align-self:auto}.lg\:align-self-start{align-self:flex-start}.lg\:align-self-end{align-self:flex-end}.lg\:align-self-center{align-self:center}.lg\:align-self-baseline{align-self:baseline}.lg\:align-self-stretch{align-self:stretch}.lg\:place-items-start{place-items:start}.lg\:place-items-end{place-items:end}.lg\:place-items-center{place-items:center}.lg\:place-items-stretch{place-items:stretch stretch}.lg\:grid-cols-1{grid-template-columns:1fr}.lg\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.lg\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.lg\:grid-cols-fill{grid-column:1/-1}.lg\:grid-auto-flow-row{grid-auto-flow:row}.lg\:grid-auto-flow-column{grid-auto-flow:column}.lg\:grid-auto-flow-dense{grid-auto-flow:dense}.lg\:order-first{order:-1}.lg\:order-0{order:0}.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:order-3{order:3}.lg\:order-4{order:4}.lg\:order-5{order:5}.lg\:order-last{order:6}.lg\:m-0{margin:0}.lg\:m-1{margin:.25rem}.lg\:m-2{margin:.5rem}.lg\:m-3{margin:.75rem}.lg\:m-4{margin:1rem}.lg\:m-5{margin:1.25rem}.lg\:m-6{margin:1.5rem}.lg\:m-7{margin:2rem}.lg\:m-8{margin:2.5rem}.lg\:m-9{margin:3rem}.lg\:m-auto{margin:auto}.lg\:mx-0{margin-inline:0}.lg\:mx-1{margin-inline:.25rem}.lg\:mx-2{margin-inline:.5rem}.lg\:mx-3{margin-inline:.75rem}.lg\:mx-4{margin-inline:1rem}.lg\:mx-5{margin-inline:1.25rem}.lg\:mx-6{margin-inline:1.5rem}.lg\:mx-7{margin-inline:2rem}.lg\:mx-8{margin-inline:2.5rem}.lg\:mx-9{margin-inline:3rem}.lg\:mx-auto{margin-inline:auto}.lg\:my-0{margin-block:0}.lg\:my-1{margin-block:.25rem}.lg\:my-2{margin-block:.5rem}.lg\:my-3{margin-block:.75rem}.lg\:my-4{margin-block:1rem}.lg\:my-5{margin-block:1.25rem}.lg\:my-6{margin-block:1.5rem}.lg\:my-7{margin-block:2rem}.lg\:my-8{margin-block:2.5rem}.lg\:my-9{margin-block:3rem}.lg\:my-auto{margin-block:auto}.lg\:mt-0{margin-block-start:0}.lg\:mt-1{margin-block-start:.25rem}.lg\:mt-2{margin-block-start:.5rem}.lg\:mt-3{margin-block-start:.75rem}.lg\:mt-4{margin-block-start:1rem}.lg\:mt-5{margin-block-start:1.25rem}.lg\:mt-6{margin-block-start:1.5rem}.lg\:mt-7{margin-block-start:2rem}.lg\:mt-8{margin-block-start:2.5rem}.lg\:mt-9{margin-block-start:3rem}.lg\:mt-auto{margin-block-start:auto}.lg\:me-0{margin-inline-end:0}.lg\:me-1{margin-inline-end:.25rem}.lg\:me-2{margin-inline-end:.5rem}.lg\:me-3{margin-inline-end:.75rem}.lg\:me-4{margin-inline-end:1rem}.lg\:me-5{margin-inline-end:1.25rem}.lg\:me-6{margin-inline-end:1.5rem}.lg\:me-7{margin-inline-end:2rem}.lg\:me-8{margin-inline-end:2.5rem}.lg\:me-9{margin-inline-end:3rem}.lg\:me--1{margin-inline-end:-.25rem}.lg\:me--2{margin-inline-end:-.5rem}.lg\:me-auto{margin-inline-end:auto}.lg\:mb-0{margin-block-end:0}.lg\:mb-1{margin-block-end:.25rem}.lg\:mb-2{margin-block-end:.5rem}.lg\:mb-3{margin-block-end:.75rem}.lg\:mb-4{margin-block-end:1rem}.lg\:mb-5{margin-block-end:1.25rem}.lg\:mb-6{margin-block-end:1.5rem}.lg\:mb-7{margin-block-end:2rem}.lg\:mb-8{margin-block-end:2.5rem}.lg\:mb-9{margin-block-end:3rem}.lg\:mb-auto{margin-block-end:auto}.lg\:ms-0{margin-inline-start:0}.lg\:ms-1{margin-inline-start:.25rem}.lg\:ms-2{margin-inline-start:.5rem}.lg\:ms-3{margin-inline-start:.75rem}.lg\:ms-4{margin-inline-start:1rem}.lg\:ms-5{margin-inline-start:1.25rem}.lg\:ms-6{margin-inline-start:1.5rem}.lg\:ms-7{margin-inline-start:2rem}.lg\:ms-8{margin-inline-start:2.5rem}.lg\:ms-9{margin-inline-start:3rem}.lg\:ms--1{margin-inline-start:-.25rem}.lg\:ms--2{margin-inline-start:-.5rem}.lg\:ms-auto{margin-inline-start:auto}.lg\:p-0{padding:0}.lg\:p-1{padding:.25rem}.lg\:p-2{padding:.5rem}.lg\:p-3{padding:.75rem}.lg\:p-4{padding:1rem}.lg\:p-5{padding:1.25rem}.lg\:p-6{padding:1.5rem}.lg\:p-7{padding:2rem}.lg\:p-8{padding:2.5rem}.lg\:p-9{padding:3rem}.lg\:px-0{padding-inline:0}.lg\:px-1{padding-inline:.25rem}.lg\:px-2{padding-inline:.5rem}.lg\:px-3{padding-inline:.75rem}.lg\:px-4{padding-inline:1rem}.lg\:px-5{padding-inline:1.25rem}.lg\:px-6{padding-inline:1.5rem}.lg\:px-7{padding-inline:2rem}.lg\:px-8{padding-inline:2.5rem}.lg\:px-9{padding-inline:3rem}.lg\:py-0{padding-block:0}.lg\:py-1{padding-block:.25rem}.lg\:py-2{padding-block:.5rem}.lg\:py-3{padding-block:.75rem}.lg\:py-4{padding-block:1rem}.lg\:py-5{padding-block:1.25rem}.lg\:py-6{padding-block:1.5rem}.lg\:py-7{padding-block:2rem}.lg\:py-8{padding-block:2.5rem}.lg\:py-9{padding-block:3rem}.lg\:pt-0{padding-block-start:0}.lg\:pt-1{padding-block-start:.25rem}.lg\:pt-2{padding-block-start:.5rem}.lg\:pt-3{padding-block-start:.75rem}.lg\:pt-4{padding-block-start:1rem}.lg\:pt-5{padding-block-start:1.25rem}.lg\:pt-6{padding-block-start:1.5rem}.lg\:pt-7{padding-block-start:2rem}.lg\:pt-8{padding-block-start:2.5rem}.lg\:pt-9{padding-block-start:3rem}.lg\:pe-0{padding-inline-end:0}.lg\:pe-1{padding-inline-end:.25rem}.lg\:pe-2{padding-inline-end:.5rem}.lg\:pe-3{padding-inline-end:.75rem}.lg\:pe-4{padding-inline-end:1rem}.lg\:pe-5{padding-inline-end:1.25rem}.lg\:pe-6{padding-inline-end:1.5rem}.lg\:pe-7{padding-inline-end:2rem}.lg\:pe-8{padding-inline-end:2.5rem}.lg\:pe-9{padding-inline-end:3rem}.lg\:pb-0{padding-block-end:0}.lg\:pb-1{padding-block-end:.25rem}.lg\:pb-2{padding-block-end:.5rem}.lg\:pb-3{padding-block-end:.75rem}.lg\:pb-4{padding-block-end:1rem}.lg\:pb-5{padding-block-end:1.25rem}.lg\:pb-6{padding-block-end:1.5rem}.lg\:pb-7{padding-block-end:2rem}.lg\:pb-8{padding-block-end:2.5rem}.lg\:pb-9{padding-block-end:3rem}.lg\:ps-0{padding-inline-start:0}.lg\:ps-1{padding-inline-start:.25rem}.lg\:ps-2{padding-inline-start:.5rem}.lg\:ps-3{padding-inline-start:.75rem}.lg\:ps-4{padding-inline-start:1rem}.lg\:ps-5{padding-inline-start:1.25rem}.lg\:ps-6{padding-inline-start:1.5rem}.lg\:ps-7{padding-inline-start:2rem}.lg\:ps-8{padding-inline-start:2.5rem}.lg\:ps-9{padding-inline-start:3rem}.lg\:gap-0{gap:0}.lg\:gap-1{gap:.25rem}.lg\:gap-2{gap:.5rem}.lg\:gap-3{gap:.75rem}.lg\:gap-4{gap:1rem}.lg\:gap-5{gap:1.25rem}.lg\:gap-6{gap:1.5rem}.lg\:gap-7{gap:2rem}.lg\:gap-8{gap:2.5rem}.lg\:gap-9{gap:3rem}.lg\:row-gap-0{row-gap:0}.lg\:row-gap-1{row-gap:.25rem}.lg\:row-gap-2{row-gap:.5rem}.lg\:row-gap-3{row-gap:.75rem}.lg\:row-gap-4{row-gap:1rem}.lg\:row-gap-5{row-gap:1.25rem}.lg\:row-gap-6{row-gap:1.5rem}.lg\:row-gap-7{row-gap:2rem}.lg\:row-gap-8{row-gap:2.5rem}.lg\:row-gap-9{row-gap:3rem}.lg\:column-gap-0{-moz-column-gap:0;column-gap:0}.lg\:column-gap-1{-moz-column-gap:.25rem;column-gap:.25rem}.lg\:column-gap-2{-moz-column-gap:.5rem;column-gap:.5rem}.lg\:column-gap-3{-moz-column-gap:.75rem;column-gap:.75rem}.lg\:column-gap-4{-moz-column-gap:1rem;column-gap:1rem}.lg\:column-gap-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.lg\:column-gap-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.lg\:column-gap-7{-moz-column-gap:2rem;column-gap:2rem}.lg\:column-gap-8{-moz-column-gap:2.5rem;column-gap:2.5rem}.lg\:column-gap-9{-moz-column-gap:3rem;column-gap:3rem}:where(.lg\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.lg\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.lg\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.lg\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.lg\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.lg\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.lg\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.lg\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.lg\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.lg\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.lg\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.lg\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.lg\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.lg\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.lg\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.lg\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.lg\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.lg\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.lg\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.lg\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.lg\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.lg\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.lg\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.lg\:divide-y-0>:not(:first-child)){border-block-start:0}.lg\:text-start{text-align:start}.lg\:text-end{text-align:end}.lg\:text-center{text-align:center}}@media (min-width:1280px){.xl\:float-start{float:inline-start}.xl\:float-end{float:inline-end}.xl\:float-none{float:none}.xl\:object-fit-contain{-o-object-fit:contain;object-fit:contain}.xl\:object-fit-cover{-o-object-fit:cover;object-fit:cover}.xl\:object-fit-fill{-o-object-fit:fill;object-fit:fill}.xl\:object-fit-scale{-o-object-fit:scale-down;object-fit:scale-down}.xl\:object-fit-none{-o-object-fit:none;object-fit:none}.xl\:d-inline{display:inline}.xl\:d-inline-block{display:inline-block}.xl\:d-block{display:block}.xl\:d-grid{display:grid}.xl\:d-inline-grid{display:inline-grid}.xl\:d-table{display:table}.xl\:d-table-row{display:table-row}.xl\:d-table-cell{display:table-cell}.xl\:d-flex{display:flex}.xl\:d-inline-flex{display:inline-flex}.xl\:d-contents{display:contents}.xl\:d-flow-root{display:flow-root}.xl\:d-none{display:none}.xl\:flex-fill{flex:auto}.xl\:flex-row{flex-direction:row}.xl\:flex-column{flex-direction:column}.xl\:flex-row-reverse{flex-direction:row-reverse}.xl\:flex-column-reverse{flex-direction:column-reverse}.xl\:flex-grow-0{flex-grow:0}.xl\:flex-grow-1{flex-grow:1}.xl\:flex-shrink-0{flex-shrink:0}.xl\:flex-shrink-1{flex-shrink:1}.xl\:flex-wrap{flex-wrap:wrap}.xl\:flex-nowrap{flex-wrap:nowrap}.xl\:flex-wrap-reverse{flex-wrap:wrap-reverse}.xl\:justify-content-start{justify-content:flex-start}.xl\:justify-content-end{justify-content:flex-end}.xl\:justify-content-center{justify-content:center}.xl\:justify-content-between{justify-content:space-between}.xl\:justify-content-around{justify-content:space-around}.xl\:justify-content-evenly{justify-content:space-evenly}.xl\:justify-items-start{justify-items:start}.xl\:justify-items-end{justify-items:end}.xl\:justify-items-center{justify-items:center}.xl\:justify-items-stretch{justify-items:stretch}.xl\:justify-self-start{justify-self:start}.xl\:justify-self-end{justify-self:end}.xl\:justify-self-center{justify-self:center}.xl\:align-items-start{align-items:flex-start}.xl\:align-items-end{align-items:flex-end}.xl\:align-items-center{align-items:center}.xl\:align-items-baseline{align-items:baseline}.xl\:align-items-stretch{align-items:stretch}.xl\:align-content-start{align-content:flex-start}.xl\:align-content-end{align-content:flex-end}.xl\:align-content-center{align-content:center}.xl\:align-content-between{align-content:space-between}.xl\:align-content-around{align-content:space-around}.xl\:align-content-stretch{align-content:stretch}.xl\:align-self-auto{align-self:auto}.xl\:align-self-start{align-self:flex-start}.xl\:align-self-end{align-self:flex-end}.xl\:align-self-center{align-self:center}.xl\:align-self-baseline{align-self:baseline}.xl\:align-self-stretch{align-self:stretch}.xl\:place-items-start{place-items:start}.xl\:place-items-end{place-items:end}.xl\:place-items-center{place-items:center}.xl\:place-items-stretch{place-items:stretch stretch}.xl\:grid-cols-1{grid-template-columns:1fr}.xl\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.xl\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.xl\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.xl\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.xl\:grid-cols-fill{grid-column:1/-1}.xl\:grid-auto-flow-row{grid-auto-flow:row}.xl\:grid-auto-flow-column{grid-auto-flow:column}.xl\:grid-auto-flow-dense{grid-auto-flow:dense}.xl\:order-first{order:-1}.xl\:order-0{order:0}.xl\:order-1{order:1}.xl\:order-2{order:2}.xl\:order-3{order:3}.xl\:order-4{order:4}.xl\:order-5{order:5}.xl\:order-last{order:6}.xl\:m-0{margin:0}.xl\:m-1{margin:.25rem}.xl\:m-2{margin:.5rem}.xl\:m-3{margin:.75rem}.xl\:m-4{margin:1rem}.xl\:m-5{margin:1.25rem}.xl\:m-6{margin:1.5rem}.xl\:m-7{margin:2rem}.xl\:m-8{margin:2.5rem}.xl\:m-9{margin:3rem}.xl\:m-auto{margin:auto}.xl\:mx-0{margin-inline:0}.xl\:mx-1{margin-inline:.25rem}.xl\:mx-2{margin-inline:.5rem}.xl\:mx-3{margin-inline:.75rem}.xl\:mx-4{margin-inline:1rem}.xl\:mx-5{margin-inline:1.25rem}.xl\:mx-6{margin-inline:1.5rem}.xl\:mx-7{margin-inline:2rem}.xl\:mx-8{margin-inline:2.5rem}.xl\:mx-9{margin-inline:3rem}.xl\:mx-auto{margin-inline:auto}.xl\:my-0{margin-block:0}.xl\:my-1{margin-block:.25rem}.xl\:my-2{margin-block:.5rem}.xl\:my-3{margin-block:.75rem}.xl\:my-4{margin-block:1rem}.xl\:my-5{margin-block:1.25rem}.xl\:my-6{margin-block:1.5rem}.xl\:my-7{margin-block:2rem}.xl\:my-8{margin-block:2.5rem}.xl\:my-9{margin-block:3rem}.xl\:my-auto{margin-block:auto}.xl\:mt-0{margin-block-start:0}.xl\:mt-1{margin-block-start:.25rem}.xl\:mt-2{margin-block-start:.5rem}.xl\:mt-3{margin-block-start:.75rem}.xl\:mt-4{margin-block-start:1rem}.xl\:mt-5{margin-block-start:1.25rem}.xl\:mt-6{margin-block-start:1.5rem}.xl\:mt-7{margin-block-start:2rem}.xl\:mt-8{margin-block-start:2.5rem}.xl\:mt-9{margin-block-start:3rem}.xl\:mt-auto{margin-block-start:auto}.xl\:me-0{margin-inline-end:0}.xl\:me-1{margin-inline-end:.25rem}.xl\:me-2{margin-inline-end:.5rem}.xl\:me-3{margin-inline-end:.75rem}.xl\:me-4{margin-inline-end:1rem}.xl\:me-5{margin-inline-end:1.25rem}.xl\:me-6{margin-inline-end:1.5rem}.xl\:me-7{margin-inline-end:2rem}.xl\:me-8{margin-inline-end:2.5rem}.xl\:me-9{margin-inline-end:3rem}.xl\:me--1{margin-inline-end:-.25rem}.xl\:me--2{margin-inline-end:-.5rem}.xl\:me-auto{margin-inline-end:auto}.xl\:mb-0{margin-block-end:0}.xl\:mb-1{margin-block-end:.25rem}.xl\:mb-2{margin-block-end:.5rem}.xl\:mb-3{margin-block-end:.75rem}.xl\:mb-4{margin-block-end:1rem}.xl\:mb-5{margin-block-end:1.25rem}.xl\:mb-6{margin-block-end:1.5rem}.xl\:mb-7{margin-block-end:2rem}.xl\:mb-8{margin-block-end:2.5rem}.xl\:mb-9{margin-block-end:3rem}.xl\:mb-auto{margin-block-end:auto}.xl\:ms-0{margin-inline-start:0}.xl\:ms-1{margin-inline-start:.25rem}.xl\:ms-2{margin-inline-start:.5rem}.xl\:ms-3{margin-inline-start:.75rem}.xl\:ms-4{margin-inline-start:1rem}.xl\:ms-5{margin-inline-start:1.25rem}.xl\:ms-6{margin-inline-start:1.5rem}.xl\:ms-7{margin-inline-start:2rem}.xl\:ms-8{margin-inline-start:2.5rem}.xl\:ms-9{margin-inline-start:3rem}.xl\:ms--1{margin-inline-start:-.25rem}.xl\:ms--2{margin-inline-start:-.5rem}.xl\:ms-auto{margin-inline-start:auto}.xl\:p-0{padding:0}.xl\:p-1{padding:.25rem}.xl\:p-2{padding:.5rem}.xl\:p-3{padding:.75rem}.xl\:p-4{padding:1rem}.xl\:p-5{padding:1.25rem}.xl\:p-6{padding:1.5rem}.xl\:p-7{padding:2rem}.xl\:p-8{padding:2.5rem}.xl\:p-9{padding:3rem}.xl\:px-0{padding-inline:0}.xl\:px-1{padding-inline:.25rem}.xl\:px-2{padding-inline:.5rem}.xl\:px-3{padding-inline:.75rem}.xl\:px-4{padding-inline:1rem}.xl\:px-5{padding-inline:1.25rem}.xl\:px-6{padding-inline:1.5rem}.xl\:px-7{padding-inline:2rem}.xl\:px-8{padding-inline:2.5rem}.xl\:px-9{padding-inline:3rem}.xl\:py-0{padding-block:0}.xl\:py-1{padding-block:.25rem}.xl\:py-2{padding-block:.5rem}.xl\:py-3{padding-block:.75rem}.xl\:py-4{padding-block:1rem}.xl\:py-5{padding-block:1.25rem}.xl\:py-6{padding-block:1.5rem}.xl\:py-7{padding-block:2rem}.xl\:py-8{padding-block:2.5rem}.xl\:py-9{padding-block:3rem}.xl\:pt-0{padding-block-start:0}.xl\:pt-1{padding-block-start:.25rem}.xl\:pt-2{padding-block-start:.5rem}.xl\:pt-3{padding-block-start:.75rem}.xl\:pt-4{padding-block-start:1rem}.xl\:pt-5{padding-block-start:1.25rem}.xl\:pt-6{padding-block-start:1.5rem}.xl\:pt-7{padding-block-start:2rem}.xl\:pt-8{padding-block-start:2.5rem}.xl\:pt-9{padding-block-start:3rem}.xl\:pe-0{padding-inline-end:0}.xl\:pe-1{padding-inline-end:.25rem}.xl\:pe-2{padding-inline-end:.5rem}.xl\:pe-3{padding-inline-end:.75rem}.xl\:pe-4{padding-inline-end:1rem}.xl\:pe-5{padding-inline-end:1.25rem}.xl\:pe-6{padding-inline-end:1.5rem}.xl\:pe-7{padding-inline-end:2rem}.xl\:pe-8{padding-inline-end:2.5rem}.xl\:pe-9{padding-inline-end:3rem}.xl\:pb-0{padding-block-end:0}.xl\:pb-1{padding-block-end:.25rem}.xl\:pb-2{padding-block-end:.5rem}.xl\:pb-3{padding-block-end:.75rem}.xl\:pb-4{padding-block-end:1rem}.xl\:pb-5{padding-block-end:1.25rem}.xl\:pb-6{padding-block-end:1.5rem}.xl\:pb-7{padding-block-end:2rem}.xl\:pb-8{padding-block-end:2.5rem}.xl\:pb-9{padding-block-end:3rem}.xl\:ps-0{padding-inline-start:0}.xl\:ps-1{padding-inline-start:.25rem}.xl\:ps-2{padding-inline-start:.5rem}.xl\:ps-3{padding-inline-start:.75rem}.xl\:ps-4{padding-inline-start:1rem}.xl\:ps-5{padding-inline-start:1.25rem}.xl\:ps-6{padding-inline-start:1.5rem}.xl\:ps-7{padding-inline-start:2rem}.xl\:ps-8{padding-inline-start:2.5rem}.xl\:ps-9{padding-inline-start:3rem}.xl\:gap-0{gap:0}.xl\:gap-1{gap:.25rem}.xl\:gap-2{gap:.5rem}.xl\:gap-3{gap:.75rem}.xl\:gap-4{gap:1rem}.xl\:gap-5{gap:1.25rem}.xl\:gap-6{gap:1.5rem}.xl\:gap-7{gap:2rem}.xl\:gap-8{gap:2.5rem}.xl\:gap-9{gap:3rem}.xl\:row-gap-0{row-gap:0}.xl\:row-gap-1{row-gap:.25rem}.xl\:row-gap-2{row-gap:.5rem}.xl\:row-gap-3{row-gap:.75rem}.xl\:row-gap-4{row-gap:1rem}.xl\:row-gap-5{row-gap:1.25rem}.xl\:row-gap-6{row-gap:1.5rem}.xl\:row-gap-7{row-gap:2rem}.xl\:row-gap-8{row-gap:2.5rem}.xl\:row-gap-9{row-gap:3rem}.xl\:column-gap-0{-moz-column-gap:0;column-gap:0}.xl\:column-gap-1{-moz-column-gap:.25rem;column-gap:.25rem}.xl\:column-gap-2{-moz-column-gap:.5rem;column-gap:.5rem}.xl\:column-gap-3{-moz-column-gap:.75rem;column-gap:.75rem}.xl\:column-gap-4{-moz-column-gap:1rem;column-gap:1rem}.xl\:column-gap-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.xl\:column-gap-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.xl\:column-gap-7{-moz-column-gap:2rem;column-gap:2rem}.xl\:column-gap-8{-moz-column-gap:2.5rem;column-gap:2.5rem}.xl\:column-gap-9{-moz-column-gap:3rem;column-gap:3rem}:where(.xl\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.xl\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.xl\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.xl\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.xl\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.xl\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.xl\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.xl\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.xl\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.xl\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.xl\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.xl\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.xl\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.xl\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.xl\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.xl\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.xl\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.xl\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.xl\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.xl\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.xl\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.xl\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.xl\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.xl\:divide-y-0>:not(:first-child)){border-block-start:0}.xl\:text-start{text-align:start}.xl\:text-end{text-align:end}.xl\:text-center{text-align:center}}@media (min-width:1536px){.\32 xl\:float-start{float:inline-start}.\32 xl\:float-end{float:inline-end}.\32 xl\:float-none{float:none}.\32 xl\:object-fit-contain{-o-object-fit:contain;object-fit:contain}.\32 xl\:object-fit-cover{-o-object-fit:cover;object-fit:cover}.\32 xl\:object-fit-fill{-o-object-fit:fill;object-fit:fill}.\32 xl\:object-fit-scale{-o-object-fit:scale-down;object-fit:scale-down}.\32 xl\:object-fit-none{-o-object-fit:none;object-fit:none}.\32 xl\:d-inline{display:inline}.\32 xl\:d-inline-block{display:inline-block}.\32 xl\:d-block{display:block}.\32 xl\:d-grid{display:grid}.\32 xl\:d-inline-grid{display:inline-grid}.\32 xl\:d-table{display:table}.\32 xl\:d-table-row{display:table-row}.\32 xl\:d-table-cell{display:table-cell}.\32 xl\:d-flex{display:flex}.\32 xl\:d-inline-flex{display:inline-flex}.\32 xl\:d-contents{display:contents}.\32 xl\:d-flow-root{display:flow-root}.\32 xl\:d-none{display:none}.\32 xl\:flex-fill{flex:auto}.\32 xl\:flex-row{flex-direction:row}.\32 xl\:flex-column{flex-direction:column}.\32 xl\:flex-row-reverse{flex-direction:row-reverse}.\32 xl\:flex-column-reverse{flex-direction:column-reverse}.\32 xl\:flex-grow-0{flex-grow:0}.\32 xl\:flex-grow-1{flex-grow:1}.\32 xl\:flex-shrink-0{flex-shrink:0}.\32 xl\:flex-shrink-1{flex-shrink:1}.\32 xl\:flex-wrap{flex-wrap:wrap}.\32 xl\:flex-nowrap{flex-wrap:nowrap}.\32 xl\:flex-wrap-reverse{flex-wrap:wrap-reverse}.\32 xl\:justify-content-start{justify-content:flex-start}.\32 xl\:justify-content-end{justify-content:flex-end}.\32 xl\:justify-content-center{justify-content:center}.\32 xl\:justify-content-between{justify-content:space-between}.\32 xl\:justify-content-around{justify-content:space-around}.\32 xl\:justify-content-evenly{justify-content:space-evenly}.\32 xl\:justify-items-start{justify-items:start}.\32 xl\:justify-items-end{justify-items:end}.\32 xl\:justify-items-center{justify-items:center}.\32 xl\:justify-items-stretch{justify-items:stretch}.\32 xl\:justify-self-start{justify-self:start}.\32 xl\:justify-self-end{justify-self:end}.\32 xl\:justify-self-center{justify-self:center}.\32 xl\:align-items-start{align-items:flex-start}.\32 xl\:align-items-end{align-items:flex-end}.\32 xl\:align-items-center{align-items:center}.\32 xl\:align-items-baseline{align-items:baseline}.\32 xl\:align-items-stretch{align-items:stretch}.\32 xl\:align-content-start{align-content:flex-start}.\32 xl\:align-content-end{align-content:flex-end}.\32 xl\:align-content-center{align-content:center}.\32 xl\:align-content-between{align-content:space-between}.\32 xl\:align-content-around{align-content:space-around}.\32 xl\:align-content-stretch{align-content:stretch}.\32 xl\:align-self-auto{align-self:auto}.\32 xl\:align-self-start{align-self:flex-start}.\32 xl\:align-self-end{align-self:flex-end}.\32 xl\:align-self-center{align-self:center}.\32 xl\:align-self-baseline{align-self:baseline}.\32 xl\:align-self-stretch{align-self:stretch}.\32 xl\:place-items-start{place-items:start}.\32 xl\:place-items-end{place-items:end}.\32 xl\:place-items-center{place-items:center}.\32 xl\:place-items-stretch{place-items:stretch stretch}.\32 xl\:grid-cols-1{grid-template-columns:1fr}.\32 xl\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.\32 xl\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.\32 xl\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.\32 xl\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.\32 xl\:grid-cols-fill{grid-column:1/-1}.\32 xl\:grid-auto-flow-row{grid-auto-flow:row}.\32 xl\:grid-auto-flow-column{grid-auto-flow:column}.\32 xl\:grid-auto-flow-dense{grid-auto-flow:dense}.\32 xl\:order-first{order:-1}.\32 xl\:order-0{order:0}.\32 xl\:order-1{order:1}.\32 xl\:order-2{order:2}.\32 xl\:order-3{order:3}.\32 xl\:order-4{order:4}.\32 xl\:order-5{order:5}.\32 xl\:order-last{order:6}.\32 xl\:m-0{margin:0}.\32 xl\:m-1{margin:.25rem}.\32 xl\:m-2{margin:.5rem}.\32 xl\:m-3{margin:.75rem}.\32 xl\:m-4{margin:1rem}.\32 xl\:m-5{margin:1.25rem}.\32 xl\:m-6{margin:1.5rem}.\32 xl\:m-7{margin:2rem}.\32 xl\:m-8{margin:2.5rem}.\32 xl\:m-9{margin:3rem}.\32 xl\:m-auto{margin:auto}.\32 xl\:mx-0{margin-inline:0}.\32 xl\:mx-1{margin-inline:.25rem}.\32 xl\:mx-2{margin-inline:.5rem}.\32 xl\:mx-3{margin-inline:.75rem}.\32 xl\:mx-4{margin-inline:1rem}.\32 xl\:mx-5{margin-inline:1.25rem}.\32 xl\:mx-6{margin-inline:1.5rem}.\32 xl\:mx-7{margin-inline:2rem}.\32 xl\:mx-8{margin-inline:2.5rem}.\32 xl\:mx-9{margin-inline:3rem}.\32 xl\:mx-auto{margin-inline:auto}.\32 xl\:my-0{margin-block:0}.\32 xl\:my-1{margin-block:.25rem}.\32 xl\:my-2{margin-block:.5rem}.\32 xl\:my-3{margin-block:.75rem}.\32 xl\:my-4{margin-block:1rem}.\32 xl\:my-5{margin-block:1.25rem}.\32 xl\:my-6{margin-block:1.5rem}.\32 xl\:my-7{margin-block:2rem}.\32 xl\:my-8{margin-block:2.5rem}.\32 xl\:my-9{margin-block:3rem}.\32 xl\:my-auto{margin-block:auto}.\32 xl\:mt-0{margin-block-start:0}.\32 xl\:mt-1{margin-block-start:.25rem}.\32 xl\:mt-2{margin-block-start:.5rem}.\32 xl\:mt-3{margin-block-start:.75rem}.\32 xl\:mt-4{margin-block-start:1rem}.\32 xl\:mt-5{margin-block-start:1.25rem}.\32 xl\:mt-6{margin-block-start:1.5rem}.\32 xl\:mt-7{margin-block-start:2rem}.\32 xl\:mt-8{margin-block-start:2.5rem}.\32 xl\:mt-9{margin-block-start:3rem}.\32 xl\:mt-auto{margin-block-start:auto}.\32 xl\:me-0{margin-inline-end:0}.\32 xl\:me-1{margin-inline-end:.25rem}.\32 xl\:me-2{margin-inline-end:.5rem}.\32 xl\:me-3{margin-inline-end:.75rem}.\32 xl\:me-4{margin-inline-end:1rem}.\32 xl\:me-5{margin-inline-end:1.25rem}.\32 xl\:me-6{margin-inline-end:1.5rem}.\32 xl\:me-7{margin-inline-end:2rem}.\32 xl\:me-8{margin-inline-end:2.5rem}.\32 xl\:me-9{margin-inline-end:3rem}.\32 xl\:me--1{margin-inline-end:-.25rem}.\32 xl\:me--2{margin-inline-end:-.5rem}.\32 xl\:me-auto{margin-inline-end:auto}.\32 xl\:mb-0{margin-block-end:0}.\32 xl\:mb-1{margin-block-end:.25rem}.\32 xl\:mb-2{margin-block-end:.5rem}.\32 xl\:mb-3{margin-block-end:.75rem}.\32 xl\:mb-4{margin-block-end:1rem}.\32 xl\:mb-5{margin-block-end:1.25rem}.\32 xl\:mb-6{margin-block-end:1.5rem}.\32 xl\:mb-7{margin-block-end:2rem}.\32 xl\:mb-8{margin-block-end:2.5rem}.\32 xl\:mb-9{margin-block-end:3rem}.\32 xl\:mb-auto{margin-block-end:auto}.\32 xl\:ms-0{margin-inline-start:0}.\32 xl\:ms-1{margin-inline-start:.25rem}.\32 xl\:ms-2{margin-inline-start:.5rem}.\32 xl\:ms-3{margin-inline-start:.75rem}.\32 xl\:ms-4{margin-inline-start:1rem}.\32 xl\:ms-5{margin-inline-start:1.25rem}.\32 xl\:ms-6{margin-inline-start:1.5rem}.\32 xl\:ms-7{margin-inline-start:2rem}.\32 xl\:ms-8{margin-inline-start:2.5rem}.\32 xl\:ms-9{margin-inline-start:3rem}.\32 xl\:ms--1{margin-inline-start:-.25rem}.\32 xl\:ms--2{margin-inline-start:-.5rem}.\32 xl\:ms-auto{margin-inline-start:auto}.\32 xl\:p-0{padding:0}.\32 xl\:p-1{padding:.25rem}.\32 xl\:p-2{padding:.5rem}.\32 xl\:p-3{padding:.75rem}.\32 xl\:p-4{padding:1rem}.\32 xl\:p-5{padding:1.25rem}.\32 xl\:p-6{padding:1.5rem}.\32 xl\:p-7{padding:2rem}.\32 xl\:p-8{padding:2.5rem}.\32 xl\:p-9{padding:3rem}.\32 xl\:px-0{padding-inline:0}.\32 xl\:px-1{padding-inline:.25rem}.\32 xl\:px-2{padding-inline:.5rem}.\32 xl\:px-3{padding-inline:.75rem}.\32 xl\:px-4{padding-inline:1rem}.\32 xl\:px-5{padding-inline:1.25rem}.\32 xl\:px-6{padding-inline:1.5rem}.\32 xl\:px-7{padding-inline:2rem}.\32 xl\:px-8{padding-inline:2.5rem}.\32 xl\:px-9{padding-inline:3rem}.\32 xl\:py-0{padding-block:0}.\32 xl\:py-1{padding-block:.25rem}.\32 xl\:py-2{padding-block:.5rem}.\32 xl\:py-3{padding-block:.75rem}.\32 xl\:py-4{padding-block:1rem}.\32 xl\:py-5{padding-block:1.25rem}.\32 xl\:py-6{padding-block:1.5rem}.\32 xl\:py-7{padding-block:2rem}.\32 xl\:py-8{padding-block:2.5rem}.\32 xl\:py-9{padding-block:3rem}.\32 xl\:pt-0{padding-block-start:0}.\32 xl\:pt-1{padding-block-start:.25rem}.\32 xl\:pt-2{padding-block-start:.5rem}.\32 xl\:pt-3{padding-block-start:.75rem}.\32 xl\:pt-4{padding-block-start:1rem}.\32 xl\:pt-5{padding-block-start:1.25rem}.\32 xl\:pt-6{padding-block-start:1.5rem}.\32 xl\:pt-7{padding-block-start:2rem}.\32 xl\:pt-8{padding-block-start:2.5rem}.\32 xl\:pt-9{padding-block-start:3rem}.\32 xl\:pe-0{padding-inline-end:0}.\32 xl\:pe-1{padding-inline-end:.25rem}.\32 xl\:pe-2{padding-inline-end:.5rem}.\32 xl\:pe-3{padding-inline-end:.75rem}.\32 xl\:pe-4{padding-inline-end:1rem}.\32 xl\:pe-5{padding-inline-end:1.25rem}.\32 xl\:pe-6{padding-inline-end:1.5rem}.\32 xl\:pe-7{padding-inline-end:2rem}.\32 xl\:pe-8{padding-inline-end:2.5rem}.\32 xl\:pe-9{padding-inline-end:3rem}.\32 xl\:pb-0{padding-block-end:0}.\32 xl\:pb-1{padding-block-end:.25rem}.\32 xl\:pb-2{padding-block-end:.5rem}.\32 xl\:pb-3{padding-block-end:.75rem}.\32 xl\:pb-4{padding-block-end:1rem}.\32 xl\:pb-5{padding-block-end:1.25rem}.\32 xl\:pb-6{padding-block-end:1.5rem}.\32 xl\:pb-7{padding-block-end:2rem}.\32 xl\:pb-8{padding-block-end:2.5rem}.\32 xl\:pb-9{padding-block-end:3rem}.\32 xl\:ps-0{padding-inline-start:0}.\32 xl\:ps-1{padding-inline-start:.25rem}.\32 xl\:ps-2{padding-inline-start:.5rem}.\32 xl\:ps-3{padding-inline-start:.75rem}.\32 xl\:ps-4{padding-inline-start:1rem}.\32 xl\:ps-5{padding-inline-start:1.25rem}.\32 xl\:ps-6{padding-inline-start:1.5rem}.\32 xl\:ps-7{padding-inline-start:2rem}.\32 xl\:ps-8{padding-inline-start:2.5rem}.\32 xl\:ps-9{padding-inline-start:3rem}.\32 xl\:gap-0{gap:0}.\32 xl\:gap-1{gap:.25rem}.\32 xl\:gap-2{gap:.5rem}.\32 xl\:gap-3{gap:.75rem}.\32 xl\:gap-4{gap:1rem}.\32 xl\:gap-5{gap:1.25rem}.\32 xl\:gap-6{gap:1.5rem}.\32 xl\:gap-7{gap:2rem}.\32 xl\:gap-8{gap:2.5rem}.\32 xl\:gap-9{gap:3rem}.\32 xl\:row-gap-0{row-gap:0}.\32 xl\:row-gap-1{row-gap:.25rem}.\32 xl\:row-gap-2{row-gap:.5rem}.\32 xl\:row-gap-3{row-gap:.75rem}.\32 xl\:row-gap-4{row-gap:1rem}.\32 xl\:row-gap-5{row-gap:1.25rem}.\32 xl\:row-gap-6{row-gap:1.5rem}.\32 xl\:row-gap-7{row-gap:2rem}.\32 xl\:row-gap-8{row-gap:2.5rem}.\32 xl\:row-gap-9{row-gap:3rem}.\32 xl\:column-gap-0{-moz-column-gap:0;column-gap:0}.\32 xl\:column-gap-1{-moz-column-gap:.25rem;column-gap:.25rem}.\32 xl\:column-gap-2{-moz-column-gap:.5rem;column-gap:.5rem}.\32 xl\:column-gap-3{-moz-column-gap:.75rem;column-gap:.75rem}.\32 xl\:column-gap-4{-moz-column-gap:1rem;column-gap:1rem}.\32 xl\:column-gap-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.\32 xl\:column-gap-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.\32 xl\:column-gap-7{-moz-column-gap:2rem;column-gap:2rem}.\32 xl\:column-gap-8{-moz-column-gap:2.5rem;column-gap:2.5rem}.\32 xl\:column-gap-9{-moz-column-gap:3rem;column-gap:3rem}:where(.\32 xl\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.\32 xl\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.\32 xl\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.\32 xl\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.\32 xl\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.\32 xl\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.\32 xl\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.\32 xl\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.\32 xl\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.\32 xl\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.\32 xl\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.\32 xl\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.\32 xl\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.\32 xl\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.\32 xl\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.\32 xl\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.\32 xl\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.\32 xl\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.\32 xl\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.\32 xl\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.\32 xl\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.\32 xl\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.\32 xl\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.\32 xl\:divide-y-0>:not(:first-child)){border-block-start:0}.\32 xl\:text-start{text-align:start}.\32 xl\:text-end{text-align:end}.\32 xl\:text-center{text-align:center}}}:root{--bs-black:#000;--bs-white:#fff;--bs-gradient:linear-gradient(180deg, color-mix(var(--bs-white) 15%, transparent), color-mix(var(--bs-white) 0%, transparent));--bs-font-weight-lighter:lighter;--bs-font-weight-light:300;--bs-font-weight-normal:400;--bs-font-weight-medium:500;--bs-font-weight-semibold:600;--bs-font-weight-bold:700;--bs-font-weight-bolder:bolder;--bs-body-font-family:system-ui;--bs-body-font-size:var(--bs-font-size-base);--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-heading-color:inherit;--bs-hr-border-color:var(--bs-border-color);--bs-link-color:var(--lightningcss-light,var(--bs-primary-base))var(--lightningcss-dark,var(--bs-primary-fg));--bs-link-decoration:underline;--bs-link-hover-color:color-mix(in oklch, var(--bs-link-color) 90%, #000);--bs-font-mono:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-code-font-size:95%;--bs-code-color:var(--bs-fg-2);--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:var(--lightningcss-light,color-mix(in oklch, var(--bs-gray-100), var(--bs-gray-200)))var(--lightningcss-dark,var(--bs-gray-700));--bs-border-color-translucent:color-mix(in oklch, var(--bs-fg-body) 15%, transparent);--bs-box-shadow:0 .5rem 1rem #00000026;--bs-box-shadow-sm:0 .125rem .25rem #00000013;--bs-box-shadow-lg:0 1rem 3rem #0000002d;--bs-box-shadow-inset:inset 0 1px 2px #00000013;--bs-spacer:1rem;--bs-focus-ring-width:3px;--bs-focus-ring-offset:1px;--bs-focus-ring-color:var(--bs-primary-focus-ring);--bs-focus-ring:var(--bs-focus-ring-width) solid var(--bs-focus-ring-color);--bs-control-checked-bg:var(--bs-primary-base);--bs-control-checked-border-color:var(--bs-control-checked-bg);--bs-control-active-bg:var(--bs-primary-base);--bs-control-active-border-color:var(--bs-control-active-bg);--bs-control-disabled-bg:var(--bs-bg-3);--bs-control-disabled-opacity:.65;--bs-btn-input-fg:var(--bs-fg-body);--bs-btn-input-bg:var(--bs-bg-body);--bs-btn-input-min-height:2.375rem;--bs-btn-input-padding-y:.375rem;--bs-btn-input-padding-x:.75rem;--bs-btn-input-font-size:var(--bs-font-size-base);--bs-btn-input-line-height:var(--bs-line-height-base);--bs-btn-input-border-radius:var(--bs-radius-5);--bs-btn-input-xs-min-height:1.5rem;--bs-btn-input-xs-padding-y:.125rem;--bs-btn-input-xs-padding-x:.5rem;--bs-btn-input-xs-font-size:var(--bs-font-size-xs);--bs-btn-input-xs-line-height:1.125;--bs-btn-input-xs-border-radius:var(--bs-radius-5);--bs-btn-input-sm-min-height:2rem;--bs-btn-input-sm-padding-y:.25rem;--bs-btn-input-sm-padding-x:.625rem;--bs-btn-input-sm-font-size:var(--bs-font-size-sm);--bs-btn-input-sm-line-height:var(--bs-line-height-sm);--bs-btn-input-sm-border-radius:var(--bs-radius-5);--bs-btn-input-lg-min-height:2.75rem;--bs-btn-input-lg-padding-y:.5rem;--bs-btn-input-lg-padding-x:1rem;--bs-btn-input-lg-font-size:var(--bs-font-size-md);--bs-btn-input-lg-line-height:var(--bs-line-height-md);--bs-btn-input-lg-border-radius:var(--bs-radius-7);--bs-font-size-xs:.75rem;--bs-line-height-xs:1.25;--bs-font-size-sm:.875rem;--bs-line-height-sm:1.5;--bs-font-size-md:1rem;--bs-line-height-md:1.5;--bs-font-size-lg:clamp(1.25rem, 1rem + .625vw, 1.5rem);--bs-line-height-lg:1.5;--bs-font-size-xl:clamp(1.5rem, 1.1rem + .75vw, 1.75rem);--bs-line-height-xl:1.42857;--bs-font-size-2xl:clamp(1.75rem, 1.3rem + 1vw, 2rem);--bs-line-height-2xl:1.33333;--bs-font-size-3xl:clamp(2rem, 1.5rem + 1.875vw, 2.5rem);--bs-line-height-3xl:1.2;--bs-font-size-4xl:clamp(2.25rem, 1.75rem + 2.5vw, 3rem);--bs-line-height-4xl:1.1;--bs-font-size-5xl:clamp(3rem, 2rem + 5vw, 4rem);--bs-line-height-5xl:1.1;--bs-font-size-6xl:clamp(3.75rem, 2.5rem + 6.25vw, 5rem);--bs-line-height-6xl:1;--bs-primary-base:var(--bs-blue-500);--bs-primary-fg:var(--lightningcss-light,var(--bs-blue-600))var(--lightningcss-dark,var(--bs-blue-400));--bs-primary-fg-emphasis:var(--lightningcss-light,var(--bs-blue-800))var(--lightningcss-dark,var(--bs-blue-200));--bs-primary-bg:var(--bs-blue-500);--bs-primary-bg-subtle:var(--lightningcss-light,var(--bs-blue-100))var(--lightningcss-dark,var(--bs-blue-900));--bs-primary-bg-muted:var(--lightningcss-light,var(--bs-blue-200))var(--lightningcss-dark,var(--bs-blue-800));--bs-primary-border:var(--lightningcss-light,var(--bs-blue-300))var(--lightningcss-dark,var(--bs-blue-600));--bs-primary-focus-ring:var(--lightningcss-light,color-mix(in oklch, var(--bs-blue-500) 50%, var(--bs-bg-body)))var(--lightningcss-dark,color-mix(in oklch, var(--bs-blue-500) 75%, var(--bs-bg-body)));--bs-primary-contrast:var(--bs-white);--bs-accent-base:var(--bs-indigo-500);--bs-accent-fg:var(--lightningcss-light,var(--bs-indigo-600))var(--lightningcss-dark,color-mix(in oklch, var(--bs-indigo-400), var(--bs-indigo-300)));--bs-accent-fg-emphasis:var(--lightningcss-light,var(--bs-indigo-800))var(--lightningcss-dark,var(--bs-indigo-300));--bs-accent-bg:var(--bs-indigo-500);--bs-accent-bg-subtle:var(--lightningcss-light,var(--bs-indigo-100))var(--lightningcss-dark,var(--bs-indigo-900));--bs-accent-bg-muted:var(--lightningcss-light,var(--bs-indigo-200))var(--lightningcss-dark,var(--bs-indigo-800));--bs-accent-border:var(--lightningcss-light,var(--bs-indigo-300))var(--lightningcss-dark,var(--bs-indigo-600));--bs-accent-focus-ring:var(--lightningcss-light,color-mix(in oklch, var(--bs-indigo-500) 50%, var(--bs-bg-body)))var(--lightningcss-dark,color-mix(in oklch, var(--bs-indigo-500) 75%, var(--bs-bg-body)));--bs-accent-contrast:var(--bs-white);--bs-success-base:var(--bs-green-500);--bs-success-fg:var(--lightningcss-light,var(--bs-green-600))var(--lightningcss-dark,var(--bs-green-400));--bs-success-fg-emphasis:var(--lightningcss-light,var(--bs-green-800))var(--lightningcss-dark,var(--bs-green-300));--bs-success-bg:var(--bs-green-500);--bs-success-bg-subtle:var(--lightningcss-light,var(--bs-green-100))var(--lightningcss-dark,var(--bs-green-900));--bs-success-bg-muted:var(--lightningcss-light,var(--bs-green-200))var(--lightningcss-dark,var(--bs-green-800));--bs-success-border:var(--lightningcss-light,var(--bs-green-300))var(--lightningcss-dark,var(--bs-green-600));--bs-success-focus-ring:var(--lightningcss-light,color-mix(in oklch, var(--bs-green-500) 50%, var(--bs-bg-body)))var(--lightningcss-dark,color-mix(in oklch, var(--bs-green-500) 75%, var(--bs-bg-body)));--bs-success-contrast:var(--bs-white);--bs-danger-base:var(--bs-red-500);--bs-danger-fg:var(--lightningcss-light,var(--bs-red-600))var(--lightningcss-dark,var(--bs-red-400));--bs-danger-fg-emphasis:var(--lightningcss-light,var(--bs-red-800))var(--lightningcss-dark,var(--bs-red-300));--bs-danger-bg:var(--bs-red-500);--bs-danger-bg-subtle:var(--lightningcss-light,var(--bs-red-100))var(--lightningcss-dark,var(--bs-red-900));--bs-danger-bg-muted:var(--lightningcss-light,var(--bs-red-200))var(--lightningcss-dark,var(--bs-red-800));--bs-danger-border:var(--lightningcss-light,var(--bs-red-300))var(--lightningcss-dark,var(--bs-red-600));--bs-danger-focus-ring:var(--lightningcss-light,color-mix(in oklch, var(--bs-red-500) 50%, var(--bs-bg-body)))var(--lightningcss-dark,color-mix(in oklch, var(--bs-red-500) 75%, var(--bs-bg-body)));--bs-danger-contrast:var(--bs-white);--bs-warning-base:var(--bs-yellow-500);--bs-warning-fg:var(--lightningcss-light,var(--bs-yellow-700))var(--lightningcss-dark,var(--bs-yellow-400));--bs-warning-fg-emphasis:var(--lightningcss-light,var(--bs-yellow-800))var(--lightningcss-dark,var(--bs-yellow-300));--bs-warning-bg:var(--bs-yellow-500);--bs-warning-bg-subtle:var(--lightningcss-light,var(--bs-yellow-100))var(--lightningcss-dark,var(--bs-yellow-900));--bs-warning-bg-muted:var(--lightningcss-light,var(--bs-yellow-200))var(--lightningcss-dark,var(--bs-yellow-800));--bs-warning-border:var(--lightningcss-light,var(--bs-yellow-300))var(--lightningcss-dark,var(--bs-yellow-600));--bs-warning-focus-ring:var(--lightningcss-light,color-mix(in oklch, var(--bs-yellow-500) 50%, var(--bs-bg-body)))var(--lightningcss-dark,color-mix(in oklch, var(--bs-yellow-400) 85%, var(--bs-bg-body)));--bs-warning-contrast:var(--bs-gray-900);--bs-info-base:var(--bs-cyan-500);--bs-info-fg:var(--lightningcss-light,var(--bs-cyan-600))var(--lightningcss-dark,var(--bs-cyan-400));--bs-info-fg-emphasis:var(--lightningcss-light,var(--bs-cyan-800))var(--lightningcss-dark,var(--bs-cyan-300));--bs-info-bg:var(--bs-cyan-500);--bs-info-bg-subtle:var(--lightningcss-light,var(--bs-cyan-100))var(--lightningcss-dark,var(--bs-cyan-900));--bs-info-bg-muted:var(--lightningcss-light,var(--bs-cyan-200))var(--lightningcss-dark,var(--bs-cyan-800));--bs-info-border:var(--lightningcss-light,var(--bs-cyan-300))var(--lightningcss-dark,var(--bs-cyan-600));--bs-info-focus-ring:var(--lightningcss-light,color-mix(in oklch, var(--bs-cyan-500) 50%, var(--bs-bg-body)))var(--lightningcss-dark,color-mix(in oklch, var(--bs-cyan-500) 75%, var(--bs-bg-body)));--bs-info-contrast:var(--bs-gray-900);--bs-inverse-base:var(--bs-gray-900);--bs-inverse-fg:var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-gray-200));--bs-inverse-fg-emphasis:var(--lightningcss-light,var(--bs-gray-975))var(--lightningcss-dark,var(--bs-white));--bs-inverse-bg:var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-gray-025));--bs-inverse-bg-subtle:var(--lightningcss-light,var(--bs-gray-100))var(--lightningcss-dark,var(--bs-gray-900));--bs-inverse-bg-muted:var(--lightningcss-light,var(--bs-gray-200))var(--lightningcss-dark,var(--bs-gray-300));--bs-inverse-border:var(--lightningcss-light,var(--bs-gray-400))var(--lightningcss-dark,var(--bs-gray-100));--bs-inverse-focus-ring:color-mix(in oklch, var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-gray-100)) 50%, var(--bs-bg-body));--bs-inverse-contrast:var(--lightningcss-light,var(--bs-white))var(--lightningcss-dark,var(--bs-gray-900));--bs-secondary-base:var(--bs-gray-200);--bs-secondary-fg:var(--lightningcss-light,var(--bs-gray-600))var(--lightningcss-dark,var(--bs-gray-400));--bs-secondary-fg-emphasis:var(--lightningcss-light,var(--bs-gray-800))var(--lightningcss-dark,var(--bs-gray-200));--bs-secondary-bg:var(--lightningcss-light,var(--bs-gray-100))var(--lightningcss-dark,var(--bs-gray-600));--bs-secondary-bg-subtle:var(--lightningcss-light,var(--bs-gray-050))var(--lightningcss-dark,var(--bs-gray-800));--bs-secondary-bg-muted:var(--lightningcss-light,var(--bs-gray-100))var(--lightningcss-dark,var(--bs-gray-700));--bs-secondary-border:var(--lightningcss-light,var(--bs-gray-300))var(--lightningcss-dark,var(--bs-gray-600));--bs-secondary-focus-ring:color-mix(in oklch, var(--lightningcss-light,var(--bs-gray-500))var(--lightningcss-dark,var(--bs-gray-300)) 50%, var(--bs-bg-body));--bs-secondary-contrast:var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-white));--bs-bg-body:var(--lightningcss-light,var(--bs-white))var(--lightningcss-dark,var(--bs-gray-975));--bs-bg-1:var(--lightningcss-light,var(--bs-gray-025))var(--lightningcss-dark,var(--bs-gray-950));--bs-bg-2:var(--lightningcss-light,var(--bs-gray-050))var(--lightningcss-dark,var(--bs-gray-900));--bs-bg-3:var(--lightningcss-light,var(--bs-gray-100))var(--lightningcss-dark,var(--bs-gray-800));--bs-bg-4:var(--lightningcss-light,var(--bs-gray-200))var(--lightningcss-dark,var(--bs-gray-700));--bs-bg-fg:var(--bs-fg-body);--bs-bg-white:var(--bs-white);--bs-bg-black:var(--bs-black);--bs-bg-transparent:transparent;--bs-bg-inherit:inherit;--bs-fg-body:var(--lightningcss-light,var(--bs-gray-900))var(--lightningcss-dark,var(--bs-gray-050));--bs-fg-1:var(--lightningcss-light,var(--bs-gray-800))var(--lightningcss-dark,var(--bs-gray-200));--bs-fg-2:var(--lightningcss-light,var(--bs-gray-700))var(--lightningcss-dark,var(--bs-gray-300));--bs-fg-3:var(--lightningcss-light,var(--bs-gray-600))var(--lightningcss-dark,var(--bs-gray-500));--bs-fg-4:var(--lightningcss-light,var(--bs-gray-500))var(--lightningcss-dark,var(--bs-gray-600));--bs-fg-bg:var(--bs-bg-body);--bs-fg-white:var(--bs-white);--bs-fg-black:var(--bs-black);--bs-fg-inherit:inherit;--bs-border-bg:var(--bs-bg-body);--bs-border-body:var(--lightningcss-light,var(--bs-gray-300))var(--lightningcss-dark,var(--bs-gray-800));--bs-border-muted:var(--lightningcss-light,var(--bs-gray-200))var(--lightningcss-dark,var(--bs-gray-800));--bs-border-subtle:var(--lightningcss-light,var(--bs-gray-100))var(--lightningcss-dark,var(--bs-gray-900));--bs-border-emphasized:var(--lightningcss-light,var(--bs-gray-400))var(--lightningcss-dark,var(--bs-gray-600));--bs-border-white:var(--bs-white);--bs-border-black:var(--bs-black);--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:1024px;--bs-breakpoint-xl:1280px;--bs-breakpoint-2xl:1536px;--bs-spacer-0:0;--bs-spacer-1:.25rem;--bs-spacer-2:.5rem;--bs-spacer-3:.75rem;--bs-spacer-4:1rem;--bs-spacer-5:1.25rem;--bs-spacer-6:1.5rem;--bs-spacer-7:2rem;--bs-spacer-8:2.5rem;--bs-spacer-9:3rem;--bs-radius-0:0;--bs-radius-1:.125rem;--bs-radius-2:.1875rem;--bs-radius-3:.25rem;--bs-radius-4:.375rem;--bs-radius-5:.5rem;--bs-radius-6:.625rem;--bs-radius-7:.75rem;--bs-radius-8:1rem;--bs-radius-9:1.5rem;--bs-radius-pill:50rem;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;scrollbar-gutter:stable}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}[data-bs-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-bs-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.drawer,.\32 xl\:drawer,.xl\:drawer,.lg\:drawer,.md\:drawer,.sm\:drawer{--bs-drawer-inset:var(--bs-spacer);--bs-drawer-zindex:1045;--bs-drawer-width:400px;--bs-drawer-height:30vh;--bs-drawer-padding-x:var(--bs-spacer);--bs-drawer-padding-y:var(--bs-spacer);--bs-drawer-color:var(--bs-fg-body);--bs-drawer-bg:var(--bs-bg-body);--bs-drawer-border-width:var(--bs-border-width);--bs-drawer-border-color:var(--bs-border-color-translucent);--bs-drawer-border-radius:var(--bs-radius-7);--bs-drawer-box-shadow:var(--bs-box-shadow-lg);--bs-drawer-transition-duration:.3s;--bs-drawer-transition-timing:cubic-bezier(.22, 1, .36, 1);--bs-drawer-title-line-height:1.5}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;transition:height .35s;overflow:hidden}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}
+:root{--bs-blue-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .24 240));--bs-blue-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .24 240));--bs-blue-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .24 240));--bs-blue-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .24 240));--bs-blue-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .24 240));--bs-blue-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .24 240));--bs-blue-500:oklch(60% .24 240);--bs-blue-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .24 240));--bs-blue-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .24 240));--bs-blue-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .24 240));--bs-blue-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .24 240));--bs-blue-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .24 240));--bs-blue-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .24 240));--bs-indigo-025:color-mix(in lab, var(--bs-white) 94%, oklch(56% .26 288));--bs-indigo-050:color-mix(in lab, var(--bs-white) 90%, oklch(56% .26 288));--bs-indigo-100:color-mix(in lab, var(--bs-white) 80%, oklch(56% .26 288));--bs-indigo-200:color-mix(in lab, var(--bs-white) 60%, oklch(56% .26 288));--bs-indigo-300:color-mix(in lab, var(--bs-white) 40%, oklch(56% .26 288));--bs-indigo-400:color-mix(in lab, var(--bs-white) 20%, oklch(56% .26 288));--bs-indigo-500:oklch(56% .26 288);--bs-indigo-600:color-mix(in lab, var(--bs-black) 16%, oklch(56% .26 288));--bs-indigo-700:color-mix(in lab, var(--bs-black) 32%, oklch(56% .26 288));--bs-indigo-800:color-mix(in lab, var(--bs-black) 48%, oklch(56% .26 288));--bs-indigo-900:color-mix(in lab, var(--bs-black) 64%, oklch(56% .26 288));--bs-indigo-950:color-mix(in lab, var(--bs-black) 76%, oklch(56% .26 288));--bs-indigo-975:color-mix(in lab, var(--bs-black) 88%, oklch(56% .26 288));--bs-violet-025:color-mix(in lab, var(--bs-white) 94%, oklch(56% .24 300));--bs-violet-050:color-mix(in lab, var(--bs-white) 90%, oklch(56% .24 300));--bs-violet-100:color-mix(in lab, var(--bs-white) 80%, oklch(56% .24 300));--bs-violet-200:color-mix(in lab, var(--bs-white) 60%, oklch(56% .24 300));--bs-violet-300:color-mix(in lab, var(--bs-white) 40%, oklch(56% .24 300));--bs-violet-400:color-mix(in lab, var(--bs-white) 20%, oklch(56% .24 300));--bs-violet-500:oklch(56% .24 300);--bs-violet-600:color-mix(in lab, var(--bs-black) 16%, oklch(56% .24 300));--bs-violet-700:color-mix(in lab, var(--bs-black) 32%, oklch(56% .24 300));--bs-violet-800:color-mix(in lab, var(--bs-black) 48%, oklch(56% .24 300));--bs-violet-900:color-mix(in lab, var(--bs-black) 64%, oklch(56% .24 300));--bs-violet-950:color-mix(in lab, var(--bs-black) 76%, oklch(56% .24 300));--bs-violet-975:color-mix(in lab, var(--bs-black) 88%, oklch(56% .24 300));--bs-purple-025:color-mix(in lab, var(--bs-white) 94%, oklch(56% .24 320));--bs-purple-050:color-mix(in lab, var(--bs-white) 90%, oklch(56% .24 320));--bs-purple-100:color-mix(in lab, var(--bs-white) 80%, oklch(56% .24 320));--bs-purple-200:color-mix(in lab, var(--bs-white) 60%, oklch(56% .24 320));--bs-purple-300:color-mix(in lab, var(--bs-white) 40%, oklch(56% .24 320));--bs-purple-400:color-mix(in lab, var(--bs-white) 20%, oklch(56% .24 320));--bs-purple-500:oklch(56% .24 320);--bs-purple-600:color-mix(in lab, var(--bs-black) 16%, oklch(56% .24 320));--bs-purple-700:color-mix(in lab, var(--bs-black) 32%, oklch(56% .24 320));--bs-purple-800:color-mix(in lab, var(--bs-black) 48%, oklch(56% .24 320));--bs-purple-900:color-mix(in lab, var(--bs-black) 64%, oklch(56% .24 320));--bs-purple-950:color-mix(in lab, var(--bs-black) 76%, oklch(56% .24 320));--bs-purple-975:color-mix(in lab, var(--bs-black) 88%, oklch(56% .24 320));--bs-pink-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .22 4));--bs-pink-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .22 4));--bs-pink-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .22 4));--bs-pink-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .22 4));--bs-pink-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .22 4));--bs-pink-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .22 4));--bs-pink-500:oklch(60% .22 4);--bs-pink-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .22 4));--bs-pink-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .22 4));--bs-pink-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .22 4));--bs-pink-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .22 4));--bs-pink-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .22 4));--bs-pink-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .22 4));--bs-red-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .22 20));--bs-red-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .22 20));--bs-red-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .22 20));--bs-red-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .22 20));--bs-red-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .22 20));--bs-red-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .22 20));--bs-red-500:oklch(60% .22 20);--bs-red-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .22 20));--bs-red-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .22 20));--bs-red-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .22 20));--bs-red-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .22 20));--bs-red-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .22 20));--bs-red-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .22 20));--bs-orange-025:color-mix(in lab, var(--bs-white) 94%, oklch(70% .22 52));--bs-orange-050:color-mix(in lab, var(--bs-white) 90%, oklch(70% .22 52));--bs-orange-100:color-mix(in lab, var(--bs-white) 80%, oklch(70% .22 52));--bs-orange-200:color-mix(in lab, var(--bs-white) 60%, oklch(70% .22 52));--bs-orange-300:color-mix(in lab, var(--bs-white) 40%, oklch(70% .22 52));--bs-orange-400:color-mix(in lab, var(--bs-white) 20%, oklch(70% .22 52));--bs-orange-500:oklch(70% .22 52);--bs-orange-600:color-mix(in lab, var(--bs-black) 16%, oklch(70% .22 52));--bs-orange-700:color-mix(in lab, var(--bs-black) 32%, oklch(70% .22 52));--bs-orange-800:color-mix(in lab, var(--bs-black) 48%, oklch(70% .22 52));--bs-orange-900:color-mix(in lab, var(--bs-black) 64%, oklch(70% .22 52));--bs-orange-950:color-mix(in lab, var(--bs-black) 76%, oklch(70% .22 52));--bs-orange-975:color-mix(in lab, var(--bs-black) 88%, oklch(70% .22 52));--bs-amber-025:color-mix(in lab, var(--bs-white) 94%, oklch(79% .2 78));--bs-amber-050:color-mix(in lab, var(--bs-white) 90%, oklch(79% .2 78));--bs-amber-100:color-mix(in lab, var(--bs-white) 80%, oklch(79% .2 78));--bs-amber-200:color-mix(in lab, var(--bs-white) 60%, oklch(79% .2 78));--bs-amber-300:color-mix(in lab, var(--bs-white) 40%, oklch(79% .2 78));--bs-amber-400:color-mix(in lab, var(--bs-white) 20%, oklch(79% .2 78));--bs-amber-500:oklch(79% .2 78);--bs-amber-600:color-mix(in lab, var(--bs-black) 16%, oklch(79% .2 78));--bs-amber-700:color-mix(in lab, var(--bs-black) 32%, oklch(79% .2 78));--bs-amber-800:color-mix(in lab, var(--bs-black) 48%, oklch(79% .2 78));--bs-amber-900:color-mix(in lab, var(--bs-black) 64%, oklch(79% .2 78));--bs-amber-950:color-mix(in lab, var(--bs-black) 76%, oklch(79% .2 78));--bs-amber-975:color-mix(in lab, var(--bs-black) 88%, oklch(79% .2 78));--bs-yellow-025:color-mix(in lab, var(--bs-white) 94%, oklch(88% .24 88));--bs-yellow-050:color-mix(in lab, var(--bs-white) 90%, oklch(88% .24 88));--bs-yellow-100:color-mix(in lab, var(--bs-white) 80%, oklch(88% .24 88));--bs-yellow-200:color-mix(in lab, var(--bs-white) 60%, oklch(88% .24 88));--bs-yellow-300:color-mix(in lab, var(--bs-white) 40%, oklch(88% .24 88));--bs-yellow-400:color-mix(in lab, var(--bs-white) 20%, oklch(88% .24 88));--bs-yellow-500:oklch(88% .24 88);--bs-yellow-600:color-mix(in lab, var(--bs-black) 16%, oklch(88% .24 88));--bs-yellow-700:color-mix(in lab, var(--bs-black) 32%, oklch(88% .24 88));--bs-yellow-800:color-mix(in lab, var(--bs-black) 48%, oklch(88% .24 88));--bs-yellow-900:color-mix(in lab, var(--bs-black) 64%, oklch(88% .24 88));--bs-yellow-950:color-mix(in lab, var(--bs-black) 76%, oklch(88% .24 88));--bs-yellow-975:color-mix(in lab, var(--bs-black) 88%, oklch(88% .24 88));--bs-lime-025:color-mix(in lab, var(--bs-white) 94%, oklch(65% .24 135));--bs-lime-050:color-mix(in lab, var(--bs-white) 90%, oklch(65% .24 135));--bs-lime-100:color-mix(in lab, var(--bs-white) 80%, oklch(65% .24 135));--bs-lime-200:color-mix(in lab, var(--bs-white) 60%, oklch(65% .24 135));--bs-lime-300:color-mix(in lab, var(--bs-white) 40%, oklch(65% .24 135));--bs-lime-400:color-mix(in lab, var(--bs-white) 20%, oklch(65% .24 135));--bs-lime-500:oklch(65% .24 135);--bs-lime-600:color-mix(in lab, var(--bs-black) 16%, oklch(65% .24 135));--bs-lime-700:color-mix(in lab, var(--bs-black) 32%, oklch(65% .24 135));--bs-lime-800:color-mix(in lab, var(--bs-black) 48%, oklch(65% .24 135));--bs-lime-900:color-mix(in lab, var(--bs-black) 64%, oklch(65% .24 135));--bs-lime-950:color-mix(in lab, var(--bs-black) 76%, oklch(65% .24 135));--bs-lime-975:color-mix(in lab, var(--bs-black) 88%, oklch(65% .24 135));--bs-green-025:color-mix(in lab, var(--bs-white) 94%, oklch(64% .22 160));--bs-green-050:color-mix(in lab, var(--bs-white) 90%, oklch(64% .22 160));--bs-green-100:color-mix(in lab, var(--bs-white) 80%, oklch(64% .22 160));--bs-green-200:color-mix(in lab, var(--bs-white) 60%, oklch(64% .22 160));--bs-green-300:color-mix(in lab, var(--bs-white) 40%, oklch(64% .22 160));--bs-green-400:color-mix(in lab, var(--bs-white) 20%, oklch(64% .22 160));--bs-green-500:oklch(64% .22 160);--bs-green-600:color-mix(in lab, var(--bs-black) 16%, oklch(64% .22 160));--bs-green-700:color-mix(in lab, var(--bs-black) 32%, oklch(64% .22 160));--bs-green-800:color-mix(in lab, var(--bs-black) 48%, oklch(64% .22 160));--bs-green-900:color-mix(in lab, var(--bs-black) 64%, oklch(64% .22 160));--bs-green-950:color-mix(in lab, var(--bs-black) 76%, oklch(64% .22 160));--bs-green-975:color-mix(in lab, var(--bs-black) 88%, oklch(64% .22 160));--bs-teal-025:color-mix(in lab, var(--bs-white) 94%, oklch(68% .22 190));--bs-teal-050:color-mix(in lab, var(--bs-white) 90%, oklch(68% .22 190));--bs-teal-100:color-mix(in lab, var(--bs-white) 80%, oklch(68% .22 190));--bs-teal-200:color-mix(in lab, var(--bs-white) 60%, oklch(68% .22 190));--bs-teal-300:color-mix(in lab, var(--bs-white) 40%, oklch(68% .22 190));--bs-teal-400:color-mix(in lab, var(--bs-white) 20%, oklch(68% .22 190));--bs-teal-500:oklch(68% .22 190);--bs-teal-600:color-mix(in lab, var(--bs-black) 16%, oklch(68% .22 190));--bs-teal-700:color-mix(in lab, var(--bs-black) 32%, oklch(68% .22 190));--bs-teal-800:color-mix(in lab, var(--bs-black) 48%, oklch(68% .22 190));--bs-teal-900:color-mix(in lab, var(--bs-black) 64%, oklch(68% .22 190));--bs-teal-950:color-mix(in lab, var(--bs-black) 76%, oklch(68% .22 190));--bs-teal-975:color-mix(in lab, var(--bs-black) 88%, oklch(68% .22 190));--bs-cyan-025:color-mix(in lab, var(--bs-white) 94%, oklch(69% .22 220));--bs-cyan-050:color-mix(in lab, var(--bs-white) 90%, oklch(69% .22 220));--bs-cyan-100:color-mix(in lab, var(--bs-white) 80%, oklch(69% .22 220));--bs-cyan-200:color-mix(in lab, var(--bs-white) 60%, oklch(69% .22 220));--bs-cyan-300:color-mix(in lab, var(--bs-white) 40%, oklch(69% .22 220));--bs-cyan-400:color-mix(in lab, var(--bs-white) 20%, oklch(69% .22 220));--bs-cyan-500:oklch(69% .22 220);--bs-cyan-600:color-mix(in lab, var(--bs-black) 16%, oklch(69% .22 220));--bs-cyan-700:color-mix(in lab, var(--bs-black) 32%, oklch(69% .22 220));--bs-cyan-800:color-mix(in lab, var(--bs-black) 48%, oklch(69% .22 220));--bs-cyan-900:color-mix(in lab, var(--bs-black) 64%, oklch(69% .22 220));--bs-cyan-950:color-mix(in lab, var(--bs-black) 76%, oklch(69% .22 220));--bs-cyan-975:color-mix(in lab, var(--bs-black) 88%, oklch(69% .22 220));--bs-brown-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .12 54));--bs-brown-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .12 54));--bs-brown-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .12 54));--bs-brown-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .12 54));--bs-brown-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .12 54));--bs-brown-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .12 54));--bs-brown-500:oklch(60% .12 54);--bs-brown-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .12 54));--bs-brown-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .12 54));--bs-brown-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .12 54));--bs-brown-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .12 54));--bs-brown-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .12 54));--bs-brown-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .12 54));--bs-gray-025:color-mix(in lab, var(--bs-white) 94%, oklch(60% .02 245));--bs-gray-050:color-mix(in lab, var(--bs-white) 90%, oklch(60% .02 245));--bs-gray-100:color-mix(in lab, var(--bs-white) 80%, oklch(60% .02 245));--bs-gray-200:color-mix(in lab, var(--bs-white) 60%, oklch(60% .02 245));--bs-gray-300:color-mix(in lab, var(--bs-white) 40%, oklch(60% .02 245));--bs-gray-400:color-mix(in lab, var(--bs-white) 20%, oklch(60% .02 245));--bs-gray-500:oklch(60% .02 245);--bs-gray-600:color-mix(in lab, var(--bs-black) 16%, oklch(60% .02 245));--bs-gray-700:color-mix(in lab, var(--bs-black) 32%, oklch(60% .02 245));--bs-gray-800:color-mix(in lab, var(--bs-black) 48%, oklch(60% .02 245));--bs-gray-900:color-mix(in lab, var(--bs-black) 64%, oklch(60% .02 245));--bs-gray-950:color-mix(in lab, var(--bs-black) 76%, oklch(60% .02 245));--bs-gray-975:color-mix(in lab, var(--bs-black) 88%, oklch(60% .02 245));--bs-pewter-025:color-mix(in lab, var(--bs-white) 94%, oklch(65% .01 290));--bs-pewter-050:color-mix(in lab, var(--bs-white) 90%, oklch(65% .01 290));--bs-pewter-100:color-mix(in lab, var(--bs-white) 80%, oklch(65% .01 290));--bs-pewter-200:color-mix(in lab, var(--bs-white) 60%, oklch(65% .01 290));--bs-pewter-300:color-mix(in lab, var(--bs-white) 40%, oklch(65% .01 290));--bs-pewter-400:color-mix(in lab, var(--bs-white) 20%, oklch(65% .01 290));--bs-pewter-500:oklch(65% .01 290);--bs-pewter-600:color-mix(in lab, var(--bs-black) 16%, oklch(65% .01 290));--bs-pewter-700:color-mix(in lab, var(--bs-black) 32%, oklch(65% .01 290));--bs-pewter-800:color-mix(in lab, var(--bs-black) 48%, oklch(65% .01 290));--bs-pewter-900:color-mix(in lab, var(--bs-black) 64%, oklch(65% .01 290));--bs-pewter-950:color-mix(in lab, var(--bs-black) 76%, oklch(65% .01 290));--bs-pewter-975:color-mix(in lab, var(--bs-black) 88%, oklch(65% .01 290))}@layer colors,theme,config,root;@layer reboot{*,:before,:after{box-sizing:border-box}:root{accent-color:var(--bs-primary-base)}body{font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-fg-body);text-align:var(--bs-body-text-align);background-color:var(--bs-bg-body);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0}hr{margin:var(--bs-hr-margin-y,var(--bs-spacer)) 0;border:0;border-block-start:var(--bs-border-width) solid var(--bs-hr-border-color)}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:var(--bs-spacer-2);color:var(--bs-heading-color);font-weight:500;line-height:1.2}h1,.h1{font-size:var(--bs-font-size-3xl)}h2,.h2{font-size:var(--bs-font-size-2xl)}h3,.h3{font-size:var(--bs-font-size-xl)}h4,.h4{font-size:var(--bs-font-size-lg)}h5,.h5{font-size:var(--bs-font-size-md)}h6,.h6{font-size:var(--bs-font-size-sm)}p{margin-top:0;margin-bottom:1rem}abbr[title]{cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1rem}ol,ul{padding-inline-start:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-inline-start:0;margin-bottom:.5rem}blockquote{margin:0 0 1rem}blockquote>*{margin-block:0}b,strong{font-weight:bolder}small,.small{font-size:var(--bs-small-font-size,87.5%)}mark,.mark{--bs-mark-padding:.1875em;--bs-mark-color:var(--bs-fg-body);--bs-mark-bg:light-dark(var(--bs-yellow-100),var(--bs-yellow-900));padding:var(--bs-mark-padding);color:var(--bs-mark-color);background-color:var(--bs-mark-bg)}sub,sup{font-size:var(--bs-sub-sup-font-size,.75em);vertical-align:baseline;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}a{color:var(--bs-theme-fg,var(--bs-link-color));-webkit-text-decoration:var(--bs-link-decoration);-webkit-text-decoration:var(--bs-link-decoration);text-decoration:var(--bs-link-decoration);text-underline-offset:.2em}a:hover{color:var(--bs-theme-fg-emphasis,var(--bs-link-hover-color));-webkit-text-decoration:var(--bs-link-hover-decoration,var(--bs-link-decoration));-webkit-text-decoration:var(--bs-link-hover-decoration,var(--bs-link-decoration));text-decoration:var(--bs-link-hover-decoration,var(--bs-link-decoration))}a:not([href],[class]),a:not([href],[class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-mono);font-size:1em}pre{font-size:var(--bs-code-font-size);color:var(--bs-code-color,inherit);margin-top:0;margin-bottom:1rem;display:block;overflow:auto}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:var(--bs-code-font-size);color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{--bs-kbd-padding-y:.125rem;--bs-kbd-padding-x:.25rem;--bs-kbd-font-size:var(--bs-font-size-xs);--bs-kbd-color:var(--bs-bg-body);--bs-kbd-bg:var(--bs-fg-2);--bs-kbd-border-radius:var(--bs-radius-5);padding:var(--bs-kbd-padding-y) var(--bs-kbd-padding-x);font-size:var(--bs-kbd-font-size);color:var(--bs-kbd-color);background-color:var(--bs-kbd-bg);border-radius:var(--bs-kbd-border-radius)}kbd kbd{font-size:1em;font-weight:inherit;padding:0}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{color:var(--bs-fg-3);text-align:start;padding-block:.5rem}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date],[type=datetime-local],[type=month],[type=week],[type=time])::-webkit-calendar-picker-indicator{display:none!important}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}textarea{resize:vertical}fieldset{border:0;min-width:0;margin:0;padding:0}legend{float:inline-start;width:100%;font-size:1.5rem;line-height:inherit;margin-bottom:.5rem;padding:0}legend+*{clear:inline-start}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit-text{padding:0}::-webkit-datetime-edit-millisecond-field{padding:0}::-webkit-datetime-edit-second-field{padding:0}::-webkit-datetime-edit-minute-field{padding:0}::-webkit-datetime-edit-hour-field{padding:0}::-webkit-datetime-edit-meridiem-field{padding:0}::-webkit-datetime-edit-ampm-field{padding:0}::-webkit-datetime-edit-day-field{padding:0}::-webkit-datetime-edit-week-field{padding:0}::-webkit-datetime-edit-month-field{padding:0}::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button{cursor:pointer;filter:grayscale()}[type=tel],[type=url],[type=email],[type=number]{direction:ltr}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{cursor:pointer;display:list-item}progress{vertical-align:baseline}[hidden]{display:none!important}}@layer layout{.container,.container-fluid,.\32 xl\:container,.xl\:container,.lg\:container,.md\:container,.sm\:container{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-inline:calc(var(--bs-gutter-x) * .5);margin-inline:auto}@media (width>=576px){.sm\:container,.container{max-width:540px}}@media (width>=768px){.md\:container,.sm\:container,.container{max-width:720px}}@media (width>=1024px){.lg\:container,.md\:container,.sm\:container,.container{max-width:960px}}@media (width>=1280px){.xl\:container,.lg\:container,.md\:container,.sm\:container,.container{max-width:1200px}}@media (width>=1536px){.\32 xl\:container,.xl\:container,.lg\:container,.md\:container,.sm\:container,.container{max-width:1440px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;margin-inline:calc(-.5 * var(--bs-gutter-x));margin-top:calc(-1 * var(--bs-gutter-y));flex-wrap:wrap;display:flex}.row>*{width:100%;max-width:100%;padding-inline:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y);flex-shrink:0}.col{flex:1 0 0}.row-cols-auto>*{flex:none;width:auto}.row-cols-1>*{flex:none;width:100%}.row-cols-2>*{flex:none;width:50%}.row-cols-3>*{flex:none;width:33.3333%}.row-cols-4>*{flex:none;width:25%}.row-cols-5>*{flex:none;width:20%}.row-cols-6>*{flex:none;width:16.6667%}.col-auto{flex:none;width:auto}.col-1{flex:none;width:8.33333%}.col-2{flex:none;width:16.6667%}.col-3{flex:none;width:25%}.col-4{flex:none;width:33.3333%}.col-5{flex:none;width:41.6667%}.col-6{flex:none;width:50%}.col-7{flex:none;width:58.3333%}.col-8{flex:none;width:66.6667%}.col-9{flex:none;width:75%}.col-10{flex:none;width:83.3333%}.col-11{flex:none;width:91.6667%}.col-12{flex:none;width:100%}.offset-1{margin-inline-start:8.33333%}.offset-2{margin-inline-start:16.6667%}.offset-3{margin-inline-start:25%}.offset-4{margin-inline-start:33.3333%}.offset-5{margin-inline-start:41.6667%}.offset-6{margin-inline-start:50%}.offset-7{margin-inline-start:58.3333%}.offset-8{margin-inline-start:66.6667%}.offset-9{margin-inline-start:75%}.offset-10{margin-inline-start:83.3333%}.offset-11{margin-inline-start:91.6667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:.25rem}.g-1,.gy-1{--bs-gutter-y:.25rem}.g-2,.gx-2{--bs-gutter-x:.5rem}.g-2,.gy-2{--bs-gutter-y:.5rem}.g-3,.gx-3{--bs-gutter-x:.75rem}.g-3,.gy-3{--bs-gutter-y:.75rem}.g-4,.gx-4{--bs-gutter-x:1rem}.g-4,.gy-4{--bs-gutter-y:1rem}.g-5,.gx-5{--bs-gutter-x:1.25rem}.g-5,.gy-5{--bs-gutter-y:1.25rem}.g-6,.gx-6{--bs-gutter-x:1.5rem}.g-6,.gy-6{--bs-gutter-y:1.5rem}.g-7,.gx-7{--bs-gutter-x:2rem}.g-7,.gy-7{--bs-gutter-y:2rem}.g-8,.gx-8{--bs-gutter-x:2.5rem}.g-8,.gy-8{--bs-gutter-y:2.5rem}.g-9,.gx-9{--bs-gutter-x:3rem}.g-9,.gy-9{--bs-gutter-y:3rem}@media (width>=576px){.sm\:col{flex:1 0 0}.sm\:row-cols-auto>*{flex:none;width:auto}.sm\:row-cols-1>*{flex:none;width:100%}.sm\:row-cols-2>*{flex:none;width:50%}.sm\:row-cols-3>*{flex:none;width:33.3333%}.sm\:row-cols-4>*{flex:none;width:25%}.sm\:row-cols-5>*{flex:none;width:20%}.sm\:row-cols-6>*{flex:none;width:16.6667%}.sm\:col-auto{flex:none;width:auto}.sm\:col-1{flex:none;width:8.33333%}.sm\:col-2{flex:none;width:16.6667%}.sm\:col-3{flex:none;width:25%}.sm\:col-4{flex:none;width:33.3333%}.sm\:col-5{flex:none;width:41.6667%}.sm\:col-6{flex:none;width:50%}.sm\:col-7{flex:none;width:58.3333%}.sm\:col-8{flex:none;width:66.6667%}.sm\:col-9{flex:none;width:75%}.sm\:col-10{flex:none;width:83.3333%}.sm\:col-11{flex:none;width:91.6667%}.sm\:col-12{flex:none;width:100%}.sm\:offset-0{margin-inline-start:0}.sm\:offset-1{margin-inline-start:8.33333%}.sm\:offset-2{margin-inline-start:16.6667%}.sm\:offset-3{margin-inline-start:25%}.sm\:offset-4{margin-inline-start:33.3333%}.sm\:offset-5{margin-inline-start:41.6667%}.sm\:offset-6{margin-inline-start:50%}.sm\:offset-7{margin-inline-start:58.3333%}.sm\:offset-8{margin-inline-start:66.6667%}.sm\:offset-9{margin-inline-start:75%}.sm\:offset-10{margin-inline-start:83.3333%}.sm\:offset-11{margin-inline-start:91.6667%}.sm\:g-0,.sm\:gx-0{--bs-gutter-x:0}.sm\:g-0,.sm\:gy-0{--bs-gutter-y:0}.sm\:g-1,.sm\:gx-1{--bs-gutter-x:.25rem}.sm\:g-1,.sm\:gy-1{--bs-gutter-y:.25rem}.sm\:g-2,.sm\:gx-2{--bs-gutter-x:.5rem}.sm\:g-2,.sm\:gy-2{--bs-gutter-y:.5rem}.sm\:g-3,.sm\:gx-3{--bs-gutter-x:.75rem}.sm\:g-3,.sm\:gy-3{--bs-gutter-y:.75rem}.sm\:g-4,.sm\:gx-4{--bs-gutter-x:1rem}.sm\:g-4,.sm\:gy-4{--bs-gutter-y:1rem}.sm\:g-5,.sm\:gx-5{--bs-gutter-x:1.25rem}.sm\:g-5,.sm\:gy-5{--bs-gutter-y:1.25rem}.sm\:g-6,.sm\:gx-6{--bs-gutter-x:1.5rem}.sm\:g-6,.sm\:gy-6{--bs-gutter-y:1.5rem}.sm\:g-7,.sm\:gx-7{--bs-gutter-x:2rem}.sm\:g-7,.sm\:gy-7{--bs-gutter-y:2rem}.sm\:g-8,.sm\:gx-8{--bs-gutter-x:2.5rem}.sm\:g-8,.sm\:gy-8{--bs-gutter-y:2.5rem}.sm\:g-9,.sm\:gx-9{--bs-gutter-x:3rem}.sm\:g-9,.sm\:gy-9{--bs-gutter-y:3rem}}@media (width>=768px){.md\:col{flex:1 0 0}.md\:row-cols-auto>*{flex:none;width:auto}.md\:row-cols-1>*{flex:none;width:100%}.md\:row-cols-2>*{flex:none;width:50%}.md\:row-cols-3>*{flex:none;width:33.3333%}.md\:row-cols-4>*{flex:none;width:25%}.md\:row-cols-5>*{flex:none;width:20%}.md\:row-cols-6>*{flex:none;width:16.6667%}.md\:col-auto{flex:none;width:auto}.md\:col-1{flex:none;width:8.33333%}.md\:col-2{flex:none;width:16.6667%}.md\:col-3{flex:none;width:25%}.md\:col-4{flex:none;width:33.3333%}.md\:col-5{flex:none;width:41.6667%}.md\:col-6{flex:none;width:50%}.md\:col-7{flex:none;width:58.3333%}.md\:col-8{flex:none;width:66.6667%}.md\:col-9{flex:none;width:75%}.md\:col-10{flex:none;width:83.3333%}.md\:col-11{flex:none;width:91.6667%}.md\:col-12{flex:none;width:100%}.md\:offset-0{margin-inline-start:0}.md\:offset-1{margin-inline-start:8.33333%}.md\:offset-2{margin-inline-start:16.6667%}.md\:offset-3{margin-inline-start:25%}.md\:offset-4{margin-inline-start:33.3333%}.md\:offset-5{margin-inline-start:41.6667%}.md\:offset-6{margin-inline-start:50%}.md\:offset-7{margin-inline-start:58.3333%}.md\:offset-8{margin-inline-start:66.6667%}.md\:offset-9{margin-inline-start:75%}.md\:offset-10{margin-inline-start:83.3333%}.md\:offset-11{margin-inline-start:91.6667%}.md\:g-0,.md\:gx-0{--bs-gutter-x:0}.md\:g-0,.md\:gy-0{--bs-gutter-y:0}.md\:g-1,.md\:gx-1{--bs-gutter-x:.25rem}.md\:g-1,.md\:gy-1{--bs-gutter-y:.25rem}.md\:g-2,.md\:gx-2{--bs-gutter-x:.5rem}.md\:g-2,.md\:gy-2{--bs-gutter-y:.5rem}.md\:g-3,.md\:gx-3{--bs-gutter-x:.75rem}.md\:g-3,.md\:gy-3{--bs-gutter-y:.75rem}.md\:g-4,.md\:gx-4{--bs-gutter-x:1rem}.md\:g-4,.md\:gy-4{--bs-gutter-y:1rem}.md\:g-5,.md\:gx-5{--bs-gutter-x:1.25rem}.md\:g-5,.md\:gy-5{--bs-gutter-y:1.25rem}.md\:g-6,.md\:gx-6{--bs-gutter-x:1.5rem}.md\:g-6,.md\:gy-6{--bs-gutter-y:1.5rem}.md\:g-7,.md\:gx-7{--bs-gutter-x:2rem}.md\:g-7,.md\:gy-7{--bs-gutter-y:2rem}.md\:g-8,.md\:gx-8{--bs-gutter-x:2.5rem}.md\:g-8,.md\:gy-8{--bs-gutter-y:2.5rem}.md\:g-9,.md\:gx-9{--bs-gutter-x:3rem}.md\:g-9,.md\:gy-9{--bs-gutter-y:3rem}}@media (width>=1024px){.lg\:col{flex:1 0 0}.lg\:row-cols-auto>*{flex:none;width:auto}.lg\:row-cols-1>*{flex:none;width:100%}.lg\:row-cols-2>*{flex:none;width:50%}.lg\:row-cols-3>*{flex:none;width:33.3333%}.lg\:row-cols-4>*{flex:none;width:25%}.lg\:row-cols-5>*{flex:none;width:20%}.lg\:row-cols-6>*{flex:none;width:16.6667%}.lg\:col-auto{flex:none;width:auto}.lg\:col-1{flex:none;width:8.33333%}.lg\:col-2{flex:none;width:16.6667%}.lg\:col-3{flex:none;width:25%}.lg\:col-4{flex:none;width:33.3333%}.lg\:col-5{flex:none;width:41.6667%}.lg\:col-6{flex:none;width:50%}.lg\:col-7{flex:none;width:58.3333%}.lg\:col-8{flex:none;width:66.6667%}.lg\:col-9{flex:none;width:75%}.lg\:col-10{flex:none;width:83.3333%}.lg\:col-11{flex:none;width:91.6667%}.lg\:col-12{flex:none;width:100%}.lg\:offset-0{margin-inline-start:0}.lg\:offset-1{margin-inline-start:8.33333%}.lg\:offset-2{margin-inline-start:16.6667%}.lg\:offset-3{margin-inline-start:25%}.lg\:offset-4{margin-inline-start:33.3333%}.lg\:offset-5{margin-inline-start:41.6667%}.lg\:offset-6{margin-inline-start:50%}.lg\:offset-7{margin-inline-start:58.3333%}.lg\:offset-8{margin-inline-start:66.6667%}.lg\:offset-9{margin-inline-start:75%}.lg\:offset-10{margin-inline-start:83.3333%}.lg\:offset-11{margin-inline-start:91.6667%}.lg\:g-0,.lg\:gx-0{--bs-gutter-x:0}.lg\:g-0,.lg\:gy-0{--bs-gutter-y:0}.lg\:g-1,.lg\:gx-1{--bs-gutter-x:.25rem}.lg\:g-1,.lg\:gy-1{--bs-gutter-y:.25rem}.lg\:g-2,.lg\:gx-2{--bs-gutter-x:.5rem}.lg\:g-2,.lg\:gy-2{--bs-gutter-y:.5rem}.lg\:g-3,.lg\:gx-3{--bs-gutter-x:.75rem}.lg\:g-3,.lg\:gy-3{--bs-gutter-y:.75rem}.lg\:g-4,.lg\:gx-4{--bs-gutter-x:1rem}.lg\:g-4,.lg\:gy-4{--bs-gutter-y:1rem}.lg\:g-5,.lg\:gx-5{--bs-gutter-x:1.25rem}.lg\:g-5,.lg\:gy-5{--bs-gutter-y:1.25rem}.lg\:g-6,.lg\:gx-6{--bs-gutter-x:1.5rem}.lg\:g-6,.lg\:gy-6{--bs-gutter-y:1.5rem}.lg\:g-7,.lg\:gx-7{--bs-gutter-x:2rem}.lg\:g-7,.lg\:gy-7{--bs-gutter-y:2rem}.lg\:g-8,.lg\:gx-8{--bs-gutter-x:2.5rem}.lg\:g-8,.lg\:gy-8{--bs-gutter-y:2.5rem}.lg\:g-9,.lg\:gx-9{--bs-gutter-x:3rem}.lg\:g-9,.lg\:gy-9{--bs-gutter-y:3rem}}@media (width>=1280px){.xl\:col{flex:1 0 0}.xl\:row-cols-auto>*{flex:none;width:auto}.xl\:row-cols-1>*{flex:none;width:100%}.xl\:row-cols-2>*{flex:none;width:50%}.xl\:row-cols-3>*{flex:none;width:33.3333%}.xl\:row-cols-4>*{flex:none;width:25%}.xl\:row-cols-5>*{flex:none;width:20%}.xl\:row-cols-6>*{flex:none;width:16.6667%}.xl\:col-auto{flex:none;width:auto}.xl\:col-1{flex:none;width:8.33333%}.xl\:col-2{flex:none;width:16.6667%}.xl\:col-3{flex:none;width:25%}.xl\:col-4{flex:none;width:33.3333%}.xl\:col-5{flex:none;width:41.6667%}.xl\:col-6{flex:none;width:50%}.xl\:col-7{flex:none;width:58.3333%}.xl\:col-8{flex:none;width:66.6667%}.xl\:col-9{flex:none;width:75%}.xl\:col-10{flex:none;width:83.3333%}.xl\:col-11{flex:none;width:91.6667%}.xl\:col-12{flex:none;width:100%}.xl\:offset-0{margin-inline-start:0}.xl\:offset-1{margin-inline-start:8.33333%}.xl\:offset-2{margin-inline-start:16.6667%}.xl\:offset-3{margin-inline-start:25%}.xl\:offset-4{margin-inline-start:33.3333%}.xl\:offset-5{margin-inline-start:41.6667%}.xl\:offset-6{margin-inline-start:50%}.xl\:offset-7{margin-inline-start:58.3333%}.xl\:offset-8{margin-inline-start:66.6667%}.xl\:offset-9{margin-inline-start:75%}.xl\:offset-10{margin-inline-start:83.3333%}.xl\:offset-11{margin-inline-start:91.6667%}.xl\:g-0,.xl\:gx-0{--bs-gutter-x:0}.xl\:g-0,.xl\:gy-0{--bs-gutter-y:0}.xl\:g-1,.xl\:gx-1{--bs-gutter-x:.25rem}.xl\:g-1,.xl\:gy-1{--bs-gutter-y:.25rem}.xl\:g-2,.xl\:gx-2{--bs-gutter-x:.5rem}.xl\:g-2,.xl\:gy-2{--bs-gutter-y:.5rem}.xl\:g-3,.xl\:gx-3{--bs-gutter-x:.75rem}.xl\:g-3,.xl\:gy-3{--bs-gutter-y:.75rem}.xl\:g-4,.xl\:gx-4{--bs-gutter-x:1rem}.xl\:g-4,.xl\:gy-4{--bs-gutter-y:1rem}.xl\:g-5,.xl\:gx-5{--bs-gutter-x:1.25rem}.xl\:g-5,.xl\:gy-5{--bs-gutter-y:1.25rem}.xl\:g-6,.xl\:gx-6{--bs-gutter-x:1.5rem}.xl\:g-6,.xl\:gy-6{--bs-gutter-y:1.5rem}.xl\:g-7,.xl\:gx-7{--bs-gutter-x:2rem}.xl\:g-7,.xl\:gy-7{--bs-gutter-y:2rem}.xl\:g-8,.xl\:gx-8{--bs-gutter-x:2.5rem}.xl\:g-8,.xl\:gy-8{--bs-gutter-y:2.5rem}.xl\:g-9,.xl\:gx-9{--bs-gutter-x:3rem}.xl\:g-9,.xl\:gy-9{--bs-gutter-y:3rem}}@media (width>=1536px){.\32 xl\:col{flex:1 0 0}.\32 xl\:row-cols-auto>*{flex:none;width:auto}.\32 xl\:row-cols-1>*{flex:none;width:100%}.\32 xl\:row-cols-2>*{flex:none;width:50%}.\32 xl\:row-cols-3>*{flex:none;width:33.3333%}.\32 xl\:row-cols-4>*{flex:none;width:25%}.\32 xl\:row-cols-5>*{flex:none;width:20%}.\32 xl\:row-cols-6>*{flex:none;width:16.6667%}.\32 xl\:col-auto{flex:none;width:auto}.\32 xl\:col-1{flex:none;width:8.33333%}.\32 xl\:col-2{flex:none;width:16.6667%}.\32 xl\:col-3{flex:none;width:25%}.\32 xl\:col-4{flex:none;width:33.3333%}.\32 xl\:col-5{flex:none;width:41.6667%}.\32 xl\:col-6{flex:none;width:50%}.\32 xl\:col-7{flex:none;width:58.3333%}.\32 xl\:col-8{flex:none;width:66.6667%}.\32 xl\:col-9{flex:none;width:75%}.\32 xl\:col-10{flex:none;width:83.3333%}.\32 xl\:col-11{flex:none;width:91.6667%}.\32 xl\:col-12{flex:none;width:100%}.\32 xl\:offset-0{margin-inline-start:0}.\32 xl\:offset-1{margin-inline-start:8.33333%}.\32 xl\:offset-2{margin-inline-start:16.6667%}.\32 xl\:offset-3{margin-inline-start:25%}.\32 xl\:offset-4{margin-inline-start:33.3333%}.\32 xl\:offset-5{margin-inline-start:41.6667%}.\32 xl\:offset-6{margin-inline-start:50%}.\32 xl\:offset-7{margin-inline-start:58.3333%}.\32 xl\:offset-8{margin-inline-start:66.6667%}.\32 xl\:offset-9{margin-inline-start:75%}.\32 xl\:offset-10{margin-inline-start:83.3333%}.\32 xl\:offset-11{margin-inline-start:91.6667%}.\32 xl\:g-0,.\32 xl\:gx-0{--bs-gutter-x:0}.\32 xl\:g-0,.\32 xl\:gy-0{--bs-gutter-y:0}.\32 xl\:g-1,.\32 xl\:gx-1{--bs-gutter-x:.25rem}.\32 xl\:g-1,.\32 xl\:gy-1{--bs-gutter-y:.25rem}.\32 xl\:g-2,.\32 xl\:gx-2{--bs-gutter-x:.5rem}.\32 xl\:g-2,.\32 xl\:gy-2{--bs-gutter-y:.5rem}.\32 xl\:g-3,.\32 xl\:gx-3{--bs-gutter-x:.75rem}.\32 xl\:g-3,.\32 xl\:gy-3{--bs-gutter-y:.75rem}.\32 xl\:g-4,.\32 xl\:gx-4{--bs-gutter-x:1rem}.\32 xl\:g-4,.\32 xl\:gy-4{--bs-gutter-y:1rem}.\32 xl\:g-5,.\32 xl\:gx-5{--bs-gutter-x:1.25rem}.\32 xl\:g-5,.\32 xl\:gy-5{--bs-gutter-y:1.25rem}.\32 xl\:g-6,.\32 xl\:gx-6{--bs-gutter-x:1.5rem}.\32 xl\:g-6,.\32 xl\:gy-6{--bs-gutter-y:1.5rem}.\32 xl\:g-7,.\32 xl\:gx-7{--bs-gutter-x:2rem}.\32 xl\:g-7,.\32 xl\:gy-7{--bs-gutter-y:2rem}.\32 xl\:g-8,.\32 xl\:gx-8{--bs-gutter-x:2.5rem}.\32 xl\:g-8,.\32 xl\:gy-8{--bs-gutter-y:2.5rem}.\32 xl\:g-9,.\32 xl\:gx-9{--bs-gutter-x:3rem}.\32 xl\:g-9,.\32 xl\:gy-9{--bs-gutter-y:3rem}}.grid{--bs-columns:12;--bs-rows:1;--bs-gap:1.5rem;grid-template-rows:repeat(var(--bs-rows), 1fr);grid-template-columns:repeat(var(--bs-columns), 1fr);gap:var(--bs-gap);display:grid}.g-col-1{grid-column:auto/span 1}.g-col-2{grid-column:auto/span 2}.g-col-3{grid-column:auto/span 3}.g-col-4{grid-column:auto/span 4}.g-col-5{grid-column:auto/span 5}.g-col-6{grid-column:auto/span 6}.g-col-7{grid-column:auto/span 7}.g-col-8{grid-column:auto/span 8}.g-col-9{grid-column:auto/span 9}.g-col-10{grid-column:auto/span 10}.g-col-11{grid-column:auto/span 11}.g-col-12{grid-column:auto/span 12}.g-start-1{grid-column-start:1}.g-start-2{grid-column-start:2}.g-start-3{grid-column-start:3}.g-start-4{grid-column-start:4}.g-start-5{grid-column-start:5}.g-start-6{grid-column-start:6}.g-start-7{grid-column-start:7}.g-start-8{grid-column-start:8}.g-start-9{grid-column-start:9}.g-start-10{grid-column-start:10}.g-start-11{grid-column-start:11}@media (width>=576px){.sm\:g-col-1{grid-column:auto/span 1}.sm\:g-col-2{grid-column:auto/span 2}.sm\:g-col-3{grid-column:auto/span 3}.sm\:g-col-4{grid-column:auto/span 4}.sm\:g-col-5{grid-column:auto/span 5}.sm\:g-col-6{grid-column:auto/span 6}.sm\:g-col-7{grid-column:auto/span 7}.sm\:g-col-8{grid-column:auto/span 8}.sm\:g-col-9{grid-column:auto/span 9}.sm\:g-col-10{grid-column:auto/span 10}.sm\:g-col-11{grid-column:auto/span 11}.sm\:g-col-12{grid-column:auto/span 12}.sm\:g-start-1{grid-column-start:1}.sm\:g-start-2{grid-column-start:2}.sm\:g-start-3{grid-column-start:3}.sm\:g-start-4{grid-column-start:4}.sm\:g-start-5{grid-column-start:5}.sm\:g-start-6{grid-column-start:6}.sm\:g-start-7{grid-column-start:7}.sm\:g-start-8{grid-column-start:8}.sm\:g-start-9{grid-column-start:9}.sm\:g-start-10{grid-column-start:10}.sm\:g-start-11{grid-column-start:11}}@media (width>=768px){.md\:g-col-1{grid-column:auto/span 1}.md\:g-col-2{grid-column:auto/span 2}.md\:g-col-3{grid-column:auto/span 3}.md\:g-col-4{grid-column:auto/span 4}.md\:g-col-5{grid-column:auto/span 5}.md\:g-col-6{grid-column:auto/span 6}.md\:g-col-7{grid-column:auto/span 7}.md\:g-col-8{grid-column:auto/span 8}.md\:g-col-9{grid-column:auto/span 9}.md\:g-col-10{grid-column:auto/span 10}.md\:g-col-11{grid-column:auto/span 11}.md\:g-col-12{grid-column:auto/span 12}.md\:g-start-1{grid-column-start:1}.md\:g-start-2{grid-column-start:2}.md\:g-start-3{grid-column-start:3}.md\:g-start-4{grid-column-start:4}.md\:g-start-5{grid-column-start:5}.md\:g-start-6{grid-column-start:6}.md\:g-start-7{grid-column-start:7}.md\:g-start-8{grid-column-start:8}.md\:g-start-9{grid-column-start:9}.md\:g-start-10{grid-column-start:10}.md\:g-start-11{grid-column-start:11}}@media (width>=1024px){.lg\:g-col-1{grid-column:auto/span 1}.lg\:g-col-2{grid-column:auto/span 2}.lg\:g-col-3{grid-column:auto/span 3}.lg\:g-col-4{grid-column:auto/span 4}.lg\:g-col-5{grid-column:auto/span 5}.lg\:g-col-6{grid-column:auto/span 6}.lg\:g-col-7{grid-column:auto/span 7}.lg\:g-col-8{grid-column:auto/span 8}.lg\:g-col-9{grid-column:auto/span 9}.lg\:g-col-10{grid-column:auto/span 10}.lg\:g-col-11{grid-column:auto/span 11}.lg\:g-col-12{grid-column:auto/span 12}.lg\:g-start-1{grid-column-start:1}.lg\:g-start-2{grid-column-start:2}.lg\:g-start-3{grid-column-start:3}.lg\:g-start-4{grid-column-start:4}.lg\:g-start-5{grid-column-start:5}.lg\:g-start-6{grid-column-start:6}.lg\:g-start-7{grid-column-start:7}.lg\:g-start-8{grid-column-start:8}.lg\:g-start-9{grid-column-start:9}.lg\:g-start-10{grid-column-start:10}.lg\:g-start-11{grid-column-start:11}}@media (width>=1280px){.xl\:g-col-1{grid-column:auto/span 1}.xl\:g-col-2{grid-column:auto/span 2}.xl\:g-col-3{grid-column:auto/span 3}.xl\:g-col-4{grid-column:auto/span 4}.xl\:g-col-5{grid-column:auto/span 5}.xl\:g-col-6{grid-column:auto/span 6}.xl\:g-col-7{grid-column:auto/span 7}.xl\:g-col-8{grid-column:auto/span 8}.xl\:g-col-9{grid-column:auto/span 9}.xl\:g-col-10{grid-column:auto/span 10}.xl\:g-col-11{grid-column:auto/span 11}.xl\:g-col-12{grid-column:auto/span 12}.xl\:g-start-1{grid-column-start:1}.xl\:g-start-2{grid-column-start:2}.xl\:g-start-3{grid-column-start:3}.xl\:g-start-4{grid-column-start:4}.xl\:g-start-5{grid-column-start:5}.xl\:g-start-6{grid-column-start:6}.xl\:g-start-7{grid-column-start:7}.xl\:g-start-8{grid-column-start:8}.xl\:g-start-9{grid-column-start:9}.xl\:g-start-10{grid-column-start:10}.xl\:g-start-11{grid-column-start:11}}@media (width>=1536px){.\32 xl\:g-col-1{grid-column:auto/span 1}.\32 xl\:g-col-2{grid-column:auto/span 2}.\32 xl\:g-col-3{grid-column:auto/span 3}.\32 xl\:g-col-4{grid-column:auto/span 4}.\32 xl\:g-col-5{grid-column:auto/span 5}.\32 xl\:g-col-6{grid-column:auto/span 6}.\32 xl\:g-col-7{grid-column:auto/span 7}.\32 xl\:g-col-8{grid-column:auto/span 8}.\32 xl\:g-col-9{grid-column:auto/span 9}.\32 xl\:g-col-10{grid-column:auto/span 10}.\32 xl\:g-col-11{grid-column:auto/span 11}.\32 xl\:g-col-12{grid-column:auto/span 12}.\32 xl\:g-start-1{grid-column-start:1}.\32 xl\:g-start-2{grid-column-start:2}.\32 xl\:g-start-3{grid-column-start:3}.\32 xl\:g-start-4{grid-column-start:4}.\32 xl\:g-start-5{grid-column-start:5}.\32 xl\:g-start-6{grid-column-start:6}.\32 xl\:g-start-7{grid-column-start:7}.\32 xl\:g-start-8{grid-column-start:8}.\32 xl\:g-start-9{grid-column-start:9}.\32 xl\:g-start-10{grid-column-start:10}.\32 xl\:g-start-11{grid-column-start:11}}.grid-cols-subgrid{grid-template-columns:subgrid}.grid-fill{--bs-gap:1.5rem;gap:var(--bs-gap);grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:row;display:grid}}@layer content{.list-unstyled,.list-inline{padding-inline-start:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-inline-end:var(--bs-list-inline-padding,var(--bs-spacer)/2)}.initialism{font-size:var(--bs-initialism-font-size,var(--bs-font-size-xs));text-transform:uppercase}.blockquote{--bs-blockquote-gap:calc(var(--bs-spacer) / 2);--bs-blockquote-padding-x:var(--bs-spacer);--bs-blockquote-margin-y:1rem;--bs-blockquote-font-size:var(--bs-font-size-md);--bs-blockquote-border-width:.25rem;--bs-blockquote-border-color:var(--bs-border-color);--bs-blockquote-footer-font-size:var(--bs-font-size-sm);--bs-blockquote-footer-color:var(--bs-fg-3);gap:var(--bs-blockquote-gap);margin-bottom:var(--bs-blockquote-margin-y);font-size:var(--bs-blockquote-font-size);border-inline-start:var(--bs-blockquote-border-width) solid var(--bs-blockquote-border-color);flex-direction:column;padding-inline-start:var(--bs-blockquote-padding-x);display:flex}.blockquote>*,figure.blockquote blockquote{margin-bottom:0}.blockquote-footer{font-size:var(--bs-blockquote-footer-font-size);color:var(--bs-blockquote-footer-color)}.blockquote-footer:before{content:"— "}.table{--bs-table-cell-padding-y:.5rem;--bs-table-cell-padding-x:.5rem;--bs-table-cell-vertical-align:top;--bs-table-color:var(--bs-fg-body);--bs-table-bg:var(--bs-bg-body);--bs-table-accent-bg:transparent;--bs-table-border-width:var(--bs-border-width);--bs-table-border-color:var(--bs-border-color);--bs-table-group-separator-color:currentcolor;--bs-table-striped-color:var(--bs-table-color);--bs-table-striped-bg-factor:5%;--bs-table-striped-bg:color-mix(in srgb, var(--bs-table-color) var(--bs-table-striped-bg-factor), transparent);--bs-table-active-color:var(--bs-table-color);--bs-table-active-bg-factor:10%;--bs-table-active-bg:color-mix(in srgb, var(--bs-table-color) var(--bs-table-active-bg-factor), transparent);--bs-table-hover-color:var(--bs-table-color);--bs-table-hover-bg-factor:7.5%;--bs-table-hover-bg:color-mix(in srgb, var(--bs-table-color) var(--bs-table-hover-bg-factor), transparent);--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;width:100%;margin-bottom:var(--bs-spacer);vertical-align:var(--bs-table-cell-vertical-align);border-color:var(--bs-theme-border,var(--bs-table-border-color))}.table>:not(caption)>*>*{padding:var(--bs-table-cell-padding-y) var(--bs-table-cell-padding-x);color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-theme-fg,var(--bs-table-color))));background-color:var(--bs-theme-bg-subtle,var(--bs-table-bg));border-block-end-width:var(--bs-table-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-theme-bg-subtle,var(--bs-table-accent-bg))))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-block-start:calc(var(--bs-table-border-width) * 2) solid var(--bs-table-group-separator-color)}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{--bs-table-cell-padding-y:.25rem;--bs-table-cell-padding-x:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-table-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-table-border-width)}.table-borderless>:not(caption)>*>*{border-block-end-width:0}.table-borderless>:not(:first-child){border-block-start-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*,.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-theme-fg,var(--bs-table-striped-color));--bs-table-bg-type:color-mix(in srgb, var(--bs-theme-fg,var(--bs-table-color)) var(--bs-table-striped-bg-factor), transparent)}.table-active{--bs-table-color-state:var(--bs-theme-fg,var(--bs-table-active-color));--bs-table-bg-state:color-mix(in srgb, var(--bs-theme-fg,var(--bs-table-color)) var(--bs-table-active-bg-factor), transparent)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-theme-fg,var(--bs-table-hover-color));--bs-table-bg-state:color-mix(in srgb, var(--bs-theme-fg,var(--bs-table-color)) var(--bs-table-hover-bg-factor), transparent)}.table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto;container-type:inline-size}.sm\:table-responsive{container-type:inline-size}@media (width<576px){.sm\:table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}}.md\:table-responsive{container-type:inline-size}@media (width<768px){.md\:table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}}.lg\:table-responsive{container-type:inline-size}@media (width<1024px){.lg\:table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}}.xl\:table-responsive{container-type:inline-size}@media (width<1280px){.xl\:table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}}.\32 xl\:table-responsive{container-type:inline-size}@media (width<1536px){.\32 xl\:table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}}.table-stacked>thead{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.table-stacked>tbody>tr{padding-block:var(--bs-table-cell-padding-y);display:block}.table-stacked>tbody>tr+tr{border-block-start:var(--bs-table-border-width) solid var(--bs-table-border-color)}.table-stacked>tbody>tr>td{padding:calc(var(--bs-table-cell-padding-y) * .25) calc(var(--bs-table-cell-padding-x) * 2);border:0;display:block}.table-stacked>tbody>tr>td:first-child{font-weight:var(--bs-font-weight-bold)}.table-stacked>tbody>tr>td[data-cell]:not(:first-child):before{font-weight:var(--bs-font-weight-semibold);content:attr(data-cell);display:block}.table-stacked>tbody>tr>td:not(:first-child)+td:before{margin-block-start:.25rem}@container (width<576px){.sm\:table-stacked>thead{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sm\:table-stacked>tbody>tr{padding-block:var(--bs-table-cell-padding-y);display:block}.sm\:table-stacked>tbody>tr+tr{border-block-start:var(--bs-table-border-width) solid var(--bs-table-border-color)}.sm\:table-stacked>tbody>tr>td{padding:calc(var(--bs-table-cell-padding-y) * .25) calc(var(--bs-table-cell-padding-x) * 2);border:0;display:block}.sm\:table-stacked>tbody>tr>td:first-child{font-weight:var(--bs-font-weight-bold)}.sm\:table-stacked>tbody>tr>td[data-cell]:not(:first-child):before{font-weight:var(--bs-font-weight-semibold);content:attr(data-cell);display:block}.sm\:table-stacked>tbody>tr>td:not(:first-child)+td:before{margin-block-start:.25rem}}@container (width<768px){.md\:table-stacked>thead{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.md\:table-stacked>tbody>tr{padding-block:var(--bs-table-cell-padding-y);display:block}.md\:table-stacked>tbody>tr+tr{border-block-start:var(--bs-table-border-width) solid var(--bs-table-border-color)}.md\:table-stacked>tbody>tr>td{padding:calc(var(--bs-table-cell-padding-y) * .25) calc(var(--bs-table-cell-padding-x) * 2);border:0;display:block}.md\:table-stacked>tbody>tr>td:first-child{font-weight:var(--bs-font-weight-bold)}.md\:table-stacked>tbody>tr>td[data-cell]:not(:first-child):before{font-weight:var(--bs-font-weight-semibold);content:attr(data-cell);display:block}.md\:table-stacked>tbody>tr>td:not(:first-child)+td:before{margin-block-start:.25rem}}@container (width<1024px){.lg\:table-stacked>thead{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.lg\:table-stacked>tbody>tr{padding-block:var(--bs-table-cell-padding-y);display:block}.lg\:table-stacked>tbody>tr+tr{border-block-start:var(--bs-table-border-width) solid var(--bs-table-border-color)}.lg\:table-stacked>tbody>tr>td{padding:calc(var(--bs-table-cell-padding-y) * .25) calc(var(--bs-table-cell-padding-x) * 2);border:0;display:block}.lg\:table-stacked>tbody>tr>td:first-child{font-weight:var(--bs-font-weight-bold)}.lg\:table-stacked>tbody>tr>td[data-cell]:not(:first-child):before{font-weight:var(--bs-font-weight-semibold);content:attr(data-cell);display:block}.lg\:table-stacked>tbody>tr>td:not(:first-child)+td:before{margin-block-start:.25rem}}@container (width<1280px){.xl\:table-stacked>thead{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.xl\:table-stacked>tbody>tr{padding-block:var(--bs-table-cell-padding-y);display:block}.xl\:table-stacked>tbody>tr+tr{border-block-start:var(--bs-table-border-width) solid var(--bs-table-border-color)}.xl\:table-stacked>tbody>tr>td{padding:calc(var(--bs-table-cell-padding-y) * .25) calc(var(--bs-table-cell-padding-x) * 2);border:0;display:block}.xl\:table-stacked>tbody>tr>td:first-child{font-weight:var(--bs-font-weight-bold)}.xl\:table-stacked>tbody>tr>td[data-cell]:not(:first-child):before{font-weight:var(--bs-font-weight-semibold);content:attr(data-cell);display:block}.xl\:table-stacked>tbody>tr>td:not(:first-child)+td:before{margin-block-start:.25rem}}@container (width<1536px){.\32 xl\:table-stacked>thead{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.\32 xl\:table-stacked>tbody>tr{padding-block:var(--bs-table-cell-padding-y);display:block}.\32 xl\:table-stacked>tbody>tr+tr{border-block-start:var(--bs-table-border-width) solid var(--bs-table-border-color)}.\32 xl\:table-stacked>tbody>tr>td{padding:calc(var(--bs-table-cell-padding-y) * .25) calc(var(--bs-table-cell-padding-x) * 2);border:0;display:block}.\32 xl\:table-stacked>tbody>tr>td:first-child{font-weight:var(--bs-font-weight-bold)}.\32 xl\:table-stacked>tbody>tr>td[data-cell]:not(:first-child):before{font-weight:var(--bs-font-weight-semibold);content:attr(data-cell);display:block}.\32 xl\:table-stacked>tbody>tr>td:not(:first-child)+td:before{margin-block-start:.25rem}}.img-fluid{max-width:100%;height:auto}.img-thumbnail{--bs-thumbnail-padding:.25rem;--bs-thumbnail-bg:var(--bs-bg-body);--bs-thumbnail-border-width:var(--bs-border-width);--bs-thumbnail-border-color:var(--bs-border-color);--bs-thumbnail-border-radius:var(--bs-radius-5);--bs-thumbnail-box-shadow:var(--bs-box-shadow-sm);padding:var(--bs-thumbnail-padding);background-color:var(--bs-thumbnail-bg);border:var(--bs-thumbnail-border-width) solid var(--bs-thumbnail-border-color);border-radius:var(--bs-thumbnail-border-radius);box-shadow:var(--bs-thumbnail-box-shadow);max-width:100%;height:auto}.figure{--bs-figure-gap:calc(var(--bs-spacer) * .5);--bs-figure-caption-font-size:var(--bs-font-size-sm);--bs-figure-caption-color:var(--bs-fg-3);gap:var(--bs-figure-gap);flex-direction:column;display:flex}.figure-caption{font-size:var(--bs-figure-caption-font-size);color:var(--bs-figure-caption-color)}.prose{--bs-content-font-size:1rem;--bs-content-line-height:1.5;--bs-content-gap:calc(var(--bs-content-font-size) * var(--bs-content-line-height));--bs-heading-color:light-dark(var(--bs-gray-900),var(--bs-white));gap:var(--bs-content-gap);max-width:1000px;font-size:var(--bs-content-font-size);line-height:var(--bs-content-line-height);flex-direction:column;margin-inline:auto;display:flex;position:relative}@media (width>=1024px){.prose{--bs-content-font-size:var(--bs-font-size-md);--bs-content-line-height:1.625}}.prose :where(p,ul,ol,dl,pre,table,blockquote):not(:where(.not-prose,.not-prose *)){margin-block:0}.prose :where(ul,ol):not([class],:where(.not-prose,.not-prose *)) li:not(:last-child){margin-bottom:calc(var(--bs-content-gap) / 4)}.prose :where(li ul,li ol):not(:where(.not-prose,.not-prose *)){margin-top:calc(var(--bs-content-gap) / 4)}.prose :where(hr):not(:where(.not-prose,.not-prose *)){margin:calc(var(--bs-content-gap) * 1.5) 0;border:0;border-block-start:var(--bs-border-width) solid var(--bs-hr-border-color)}.prose :where(h1,h2,h3,h4,h5,h6):not([class],:where(.not-prose,.not-prose *)){margin-top:0;margin-bottom:calc(var(--bs-content-gap) / -2);font-weight:500;line-height:1.25}.prose :where(h1,h2,h3,h4,h5,h6):not([class],:where(.not-prose,.not-prose *)) code{color:inherit;font-weight:600}.prose :where(h1,h2):not(:first-child,:where(.not-prose,.not-prose *)){margin-top:calc(var(--bs-content-gap) * .75)}.prose :where(h3,h4,h5,h6):not(:first-child,:where(.not-prose,.not-prose *)){margin-top:calc(var(--bs-content-gap) * .5)}.prose :where(h1):not(:where(.not-prose,.not-prose *)){font-size:2.25em;line-height:1.1}.prose :where(h2):not(:where(.not-prose,.not-prose *)){font-size:1.75em}.prose :where(h3):not(:where(.not-prose,.not-prose *)){font-size:1.5em}.prose :where(h4):not(:where(.not-prose,.not-prose *)){font-size:1.25em}.prose :where(h5):not(:where(.not-prose,.not-prose *)){font-size:1.125em}.prose :where(h6):not(:where(.not-prose,.not-prose *)){font-size:1em}.prose :where(a:not([class])):not(:where(.not-prose,.not-prose *)){color:var(--bs-link-color);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--bs-link-color) 25%, transparent);text-decoration-color:color-mix(in srgb, var(--bs-link-color) 25%, transparent);text-underline-offset:4px;transition:text-decoration-color .1s ease-in-out}@media (prefers-reduced-motion:reduce){.prose :where(a:not([class])):not(:where(.not-prose,.not-prose *)){transition:none}}.prose :where(a:not([class])):not(:where(.not-prose,.not-prose *)):hover{-webkit-text-decoration-color:var(--bs-link-hover-color);text-decoration-color:var(--bs-link-hover-color)}.prose :where(img):not(:where(.not-prose,.not-prose *)){max-width:100%}.prose :where(blockquote):not(:where(.not-prose,.not-prose *)){border-inline-start:4px solid var(--bs-border-color);margin:0;padding-inline-start:calc(var(--bs-content-gap) / 2)}.prose :where(table):not(:where(.not-prose,.not-prose *)){border-spacing:0;border-collapse:collapse;width:100%}.prose :where(table:not([class])):not(:where(.not-prose,.not-prose *)) td,.prose :where(table:not([class])):not(:where(.not-prose,.not-prose *)) th{text-align:inherit;border:1px solid var(--bs-border-color);padding:6px 12px}.prose :where(dt):not(:where(.not-prose,.not-prose *)){font-weight:500}.prose :where(video,img):not(:where(.not-prose,.not-prose *)){max-width:100%}}@layer forms{.form-label,.col-form-label{font-size:var(--bs-label-font-size,inherit);font-style:var(--bs-label-font-style,inherit);font-weight:var(--bs-label-font-weight,500);color:var(--bs-label-color,var(--bs-fg-body))}.form-label{margin-bottom:var(--bs-label-margin-bottom,calc(var(--bs-spacer) / 2))}.col-form-label{--bs-label-padding-y:calc(var(--bs-btn-input-padding-y) + var(--bs-border-width));padding-block:var(--bs-label-padding-y);margin-bottom:0}.col-form-label-lg{--bs-label-padding-y:calc(var(--bs-btn-input-lg-padding-y) + var(--bs-border-width));font-size:var(--bs-btn-input-lg-font-size)}.col-form-label-sm{--bs-label-padding-y:calc(var(--bs-btn-input-sm-padding-y) + var(--bs-border-width));font-size:var(--bs-btn-input-sm-font-size)}.form-text{--bs-form-text-margin-top:.25rem;--bs-form-text-font-size:var(--bs-font-size-sm);--bs-form-text-color:var(--bs-fg-2);font-size:var(--bs-form-text-font-size);font-style:var(--bs-form-text-font-style);font-weight:var(--bs-form-text-font-weight);color:var(--bs-form-text-color)}.form-control{--bs-control-min-height:var(--bs-btn-input-min-height);--bs-control-padding-y:var(--bs-btn-input-padding-y);--bs-control-padding-x:var(--bs-btn-input-padding-x);--bs-control-font-size:var(--bs-btn-input-font-size);--bs-control-line-height:var(--bs-btn-input-line-height);--bs-control-fg:var(--bs-btn-input-fg);--bs-control-bg:var(--bs-btn-input-bg);--bs-control-border-width:var(--bs-border-width);--bs-control-border-color:var(--bs-border-color);--bs-control-border-radius:var(--bs-radius-5);--bs-control-box-shadow:var(--bs-box-shadow-inset);--bs-control-action-bg:var(--bs-bg-1);--bs-control-action-hover-bg:var(--bs-bg-2);--bs-control-transition-property:border-color, box-shadow;--bs-control-transition-timing:.15s ease-in-out;--bs-control-transition:var(--bs-control-transition-property) var(--bs-control-transition-timing);--bs-control-placeholder-color:var(--bs-fg-3);--bs-control-disabled-color:var(--bs-control-fg);--bs-control-disabled-bg:var(--bs-bg-2);--bs-control-disabled-border-color:var(--bs-control-border-color);--bs-control-select-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2300000080' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");--bs-control-select-bg-position:right .75rem center;--bs-control-select-bg-size:16px 12px;--bs-control-select-bg-dark:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff80' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");width:100%;min-height:var(--bs-control-min-height);padding:var(--bs-control-padding-y) var(--bs-control-padding-x);font-size:var(--bs-control-font-size);line-height:var(--bs-control-line-height);color:var(--bs-control-fg);appearance:none;background-color:var(--bs-control-bg);border:var(--bs-control-border-width) solid var(--bs-control-border-color);border-radius:var(--bs-control-border-radius);box-shadow:var(--bs-control-box-shadow);transition:var(--bs-control-transition);background-clip:padding-box;display:flex}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control:focus-visible{--bs-focus-ring-offset:-1px;outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-control::placeholder{color:var(--bs-control-placeholder-color);opacity:1}.form-control:disabled{color:var(--bs-control-disabled-color);background-color:var(--bs-control-disabled-bg);border-color:var(--bs-control-disabled-border-color);opacity:1}.form-control::-webkit-datetime-edit{height:1.5rem;margin-bottom:-.125rem;padding:0;display:block}.form-control::-webkit-datetime-edit-fields-wrapper{height:1.5rem}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled,[readonly]){cursor:pointer}.form-control::file-selector-button{min-height:var(--bs-control-min-height);padding:var(--bs-control-padding-y) var(--bs-control-padding-x);margin:calc(var(--bs-control-padding-y) * -1) calc(var(--bs-control-padding-x) * -1);color:var(--bs-control-fg);pointer-events:none;background-color:var(--bs-control-action-bg);border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-control-border-width);transition:var(--bs-control-transition);border-radius:0;margin-inline-end:var(--bs-control-padding-x)}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled,[readonly])::file-selector-button{background-color:var(--bs-control-action-hover-bg)}.form-control-plaintext{width:100%;padding:var(--bs-control-padding-y) 0;line-height:var(--bs-control-line-height);color:var(--bs-control-fg);border:solid #0000;border-width:var(--bs-control-border-width) 0;background-color:#0000;margin-bottom:0;display:block}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-inline:0}select.form-control,.form-control-caret{background-image:var(--bs-control-select-bg);background-repeat:no-repeat;background-position:var(--bs-control-select-bg-position);background-size:var(--bs-control-select-bg-size);padding-inline-end:calc(var(--bs-control-padding-x) * 3)}select.form-control[multiple],select.form-control[size]:not([size="1"]),.form-control-caret[multiple],.form-control-caret[size]:not([size="1"]){background-image:none;padding-inline-end:var(--bs-control-padding-x)}@media (prefers-color-scheme:dark){select.form-control,.form-control-caret{background-image:var(--bs-control-select-bg-dark)}}.form-control-sm{--bs-control-min-height:var(--bs-btn-input-sm-min-height);--bs-control-padding-y:var(--bs-btn-input-sm-padding-y);--bs-control-padding-x:var(--bs-btn-input-sm-padding-x);--bs-control-font-size:var(--bs-btn-input-sm-font-size);--bs-control-line-height:var(--bs-btn-input-sm-line-height);--bs-control-border-radius:var(--bs-btn-input-sm-border-radius)}.form-control-lg{--bs-control-min-height:var(--bs-btn-input-lg-min-height);--bs-control-padding-y:var(--bs-btn-input-lg-padding-y);--bs-control-padding-x:var(--bs-btn-input-lg-padding-x);--bs-control-font-size:var(--bs-btn-input-lg-font-size);--bs-control-line-height:var(--bs-btn-input-lg-line-height);--bs-control-border-radius:var(--bs-btn-input-lg-border-radius)}.form-control-color{width:var(--bs-control-min-height);padding:var(--bs-control-padding-y)}.form-control-color:not(:disabled,[readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border-radius:var(--bs-radius-5);border:0!important}.form-control-color::-webkit-color-swatch{border-radius:var(--bs-radius-5);border:0!important}.form-ghost{width:100%;font:inherit;color:inherit;appearance:none;background:0 0;border:0;padding:0;display:block}.form-ghost:focus{outline:0}.form-ghost::placeholder{color:var(--bs-fg-3);opacity:1}.form-ghost:disabled{color:var(--bs-fg-4);cursor:not-allowed}.check{--bs-check-size:1.25rem;--bs-check-margin-block:.125rem;--bs-check-bg:var(--bs-bg-body);--bs-check-border-color:var(--bs-border-color);--bs-check-border-radius:var(--bs-radius-5);--bs-check-icon-checked:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m5.5 10 3 3 6-6'/%3e%3c/svg%3e");--bs-check-icon-indeterminate:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 10h8'/%3e%3c/svg%3e");--bs-check-checked-bg:var(--bs-control-checked-bg);--bs-check-checked-border-color:var(--bs-control-checked-border-color);--bs-check-indeterminate-bg:var(--bs-control-checked-bg);--bs-check-indeterminate-border-color:var(--bs-control-checked-border-color);--bs-check-active-bg:var(--bs-control-active-bg);--bs-check-active-border-color:var(--bs-control-active-border-color);--bs-check-disabled-bg:var(--bs-control-disabled-bg);--bs-check-disabled-opacity:var(--bs-control-disabled-opacity);width:var(--bs-check-size);height:var(--bs-check-size);margin-block:var(--bs-check-margin-block);appearance:none;background-color:var(--bs-theme-bg,var(--bs-check-bg));border:1px solid var(--bs-theme-bg,var(--bs-check-border-color));border-radius:33%;flex-shrink:0;position:relative}.check:checked,.check:indeterminate{background-color:var(--bs-theme-bg,var(--bs-check-checked-bg));border-color:var(--bs-theme-bg,var(--bs-check-checked-border-color))}.check:checked:before,.check:indeterminate:before{pointer-events:none;content:"";background-color:var(--bs-theme-contrast,var(--bs-primary-contrast));position:absolute;inset:0;mask-position:50%;mask-size:contain;mask-repeat:no-repeat}.check:checked:before{mask-image:var(--bs-check-icon-checked)}.check:indeterminate:before{mask-image:var(--bs-check-icon-indeterminate)}.check:focus-visible{outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-focus-ring-offset:-1px}.check:disabled{--bs-check-bg:var(--bs-check-disabled-bg)}.check:disabled~label{color:var(--bs-fg-3);cursor:default}.check:disabled:checked{opacity:var(--bs-check-disabled-opacity)}.check-sm{--bs-check-size:1rem}.check-sm+label{font-size:var(--bs-font-size-sm)}.check-lg{--bs-check-size:1.5rem;--bs-check-margin-block:.375rem}.check-lg+label{font-size:var(--bs-font-size-lg)}.radio{--bs-radio-size:1.25rem;--bs-radio-margin-block:.125rem;--bs-radio-bg:var(--bs-bg-body);--bs-radio-border-color:var(--bs-border-color);--bs-radio-checked-bg:var(--bs-control-checked-bg);--bs-radio-checked-border-color:var(--bs-control-checked-border-color);--bs-radio-disabled-bg:var(--bs-control-disabled-bg);--bs-radio-disabled-opacity:var(--bs-control-disabled-opacity);width:var(--bs-radio-size);height:var(--bs-radio-size);margin-block:var(--bs-radio-margin-block);appearance:none;background-color:var(--bs-theme-bg,var(--bs-radio-bg));border:1px solid var(--bs-theme-bg,var(--bs-radio-border-color));border-radius:50%;flex-shrink:0;position:relative}.radio:checked{color:var(--bs-theme-contrast,var(--bs-primary-contrast));background-color:var(--bs-theme-bg,var(--bs-radio-checked-bg));border-color:var(--bs-theme-bg,var(--bs-radio-checked-border-color))}.radio:checked:before{inset:calc(var(--bs-radio-size) * .25);content:"";background-color:currentColor;border-radius:50%;position:absolute}.radio:disabled{--bs-radio-bg:var(--bs-radio-disabled-bg)}.radio:disabled~label{color:var(--bs-secondary-fg);cursor:default}.radio:focus-visible{outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.radio-sm{--bs-radio-size:1rem}.radio-sm+label{font-size:var(--bs-font-size-sm)}.radio-lg{--bs-radio-size:1.5rem;--bs-radio-margin-block:.375rem}.radio-lg+label{font-size:var(--bs-font-size-lg)}.switch{--bs-switch-height:1.25rem;--bs-switch-width:calc(var(--bs-switch-height) * 1.75);--bs-switch-padding:.0625rem;--bs-switch-margin-block:.125rem;--bs-switch-bg:var(--bs-bg-3);--bs-switch-border-width:var(--bs-border-width);--bs-switch-border-color:var(--bs-border-color);--bs-switch-indicator-bg:var(--bs-white);--bs-switch-indicator-width:calc(var(--bs-switch-height) - var(--bs-switch-padding) * 2 - var(--bs-switch-border-width) * 2);--bs-switch-indicator-height:calc(var(--bs-switch-height) - var(--bs-switch-padding) * 2 - var(--bs-switch-border-width) * 2);--bs-switch-checked-bg:var(--bs-control-checked-bg);--bs-switch-checked-border-color:var(--bs-switch-checked-bg);--bs-switch-checked-indicator-bg:var(--bs-white);--bs-switch-disabled-bg:var(--bs-control-disabled-bg);--bs-switch-disabled-indicator-bg:var(--bs-fg-3);width:var(--bs-switch-width);height:var(--bs-switch-height);padding:var(--bs-switch-padding);margin-block:var(--bs-switch-margin-block);background-color:var(--bs-switch-bg);border:var(--bs-switch-border-width) solid var(--bs-switch-border-color);border-radius:10rem;flex-shrink:0;transition:background-color .15s ease-in-out;position:relative;box-shadow:inset 0 1px 2px #0000000d}.switch:before{inset-block:var(--bs-switch-padding);width:var(--bs-switch-indicator-width);height:var(--bs-switch-indicator-height);content:"";background-color:var(--bs-theme-contrast,var(--bs-switch-indicator-bg));border-radius:10rem;transition:inset-inline-start .15s ease-in-out;position:absolute;inset-inline-start:var(--bs-switch-padding);box-shadow:0 1px 2px #0000001a}.switch input{appearance:none;background-color:#0000;outline:0;position:absolute;inset:0}.switch:focus-within{outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.switch:has(input:checked){background-color:var(--bs-theme-bg,var(--bs-switch-checked-bg));border-color:var(--bs-theme-bg,var(--bs-switch-checked-border-color))}.switch:has(input:checked):before{inset-inline-start:calc(100% - var(--bs-switch-indicator-width) - var(--bs-switch-padding))}.switch:has(input:disabled){--bs-switch-bg:var(--bs-switch-disabled-bg);--bs-switch-indicator-bg:var(--bs-switch-disabled-indicator-bg)}.switch:has(input:disabled):before{opacity:.4}.switch:has(input:disabled)~label{color:var(--bs-secondary-fg);cursor:default}.switch-sm{--bs-switch-height:1rem}.switch-sm+label{font-size:var(--bs-font-size-sm)}.switch-lg{--bs-switch-height:1.5rem;--bs-switch-margin-block:.375rem}.switch-lg+label{font-size:var(--bs-font-size-lg)}.form-range{--bs-range-track-width:100%;--bs-range-track-height:.5rem;--bs-range-track-cursor:pointer;--bs-range-track-bg:var(--bs-bg-3);--bs-range-track-border-radius:1rem;--bs-range-track-box-shadow:var(--bs-box-shadow-inset);--bs-range-thumb-width:1rem;--bs-range-thumb-height:var(--bs-range-thumb-width);--bs-range-thumb-bg:var(--bs-primary-base);--bs-range-thumb-border:var(--bs-range-thumb-bg) solid var(--bs-border-color);--bs-range-thumb-border-radius:1rem;--bs-range-thumb-box-shadow:0 1px 2px #00000013, 0 2px 4px #00000013;--bs-range-thumb-active-bg:color-mix(in oklch, var(--bs-primary-base) 70%, var(--bs-bg-body));--bs-range-thumb-disabled-bg:var(--bs-fg-3);--bs-range-thumb-transition-property:background-color, border-color, box-shadow;--bs-range-thumb-transition-timing:.15s ease-in-out;--bs-range-thumb-transition:var(--bs-range-thumb-transition-property) var(--bs-range-thumb-transition-timing);width:100%;height:calc(var(--bs-range-thumb-height) + var(--bs-focus-ring-width) * 2);appearance:none;background-color:#0000;padding:0}.form-range:hover::-webkit-slider-thumb{outline:var(--bs-focus-ring-width) solid color-mix(in oklch, var(--bs-primary-focus-ring), transparent)}.form-range:hover::-moz-range-thumb{outline:var(--bs-focus-ring-width) solid color-mix(in oklch, var(--bs-primary-focus-ring), transparent)}.form-range:focus-visible{outline:0}.form-range:focus-visible::-webkit-slider-thumb{outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-focus-ring-offset:0}.form-range:focus-visible::-moz-range-thumb{outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-focus-ring-offset:0}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:var(--bs-range-thumb-width);height:var(--bs-range-thumb-height);appearance:none;background-color:var(--bs-range-thumb-bg);background-image:var(--bs-gradient);border:var(--bs-range-thumb-border);border-radius:var(--bs-range-thumb-border-radius);box-shadow:var(--bs-range-thumb-box-shadow);transition:var(--bs-range-thumb-transition)}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:var(--bs-range-thumb-active-bg);background-image:var(--bs-gradient)}.form-range::-webkit-slider-thumb{margin-top:calc((var(--bs-range-track-height) - var(--bs-range-thumb-height)) * .5)}.form-range::-moz-range-thumb{width:var(--bs-range-thumb-width);height:var(--bs-range-thumb-height);appearance:none;background-color:var(--bs-range-thumb-bg);background-image:var(--bs-gradient);border:var(--bs-range-thumb-border);border-radius:var(--bs-range-thumb-border-radius);box-shadow:var(--bs-range-thumb-box-shadow);transition:var(--bs-range-thumb-transition)}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:var(--bs-range-thumb-active-bg);background-image:var(--bs-gradient)}.form-range::-webkit-slider-runnable-track{width:var(--bs-range-track-width);height:var(--bs-range-track-height);color:#0000;cursor:var(--bs-range-track-cursor);background-color:var(--bs-range-track-bg);border-radius:var(--bs-range-track-border-radius);box-shadow:var(--bs-range-track-box-shadow);border-color:#0000}.form-range::-moz-range-track{width:var(--bs-range-track-width);height:var(--bs-range-track-height);color:#0000;cursor:var(--bs-range-track-cursor);background-color:var(--bs-range-track-bg);border-radius:var(--bs-range-track-border-radius);box-shadow:var(--bs-range-track-box-shadow);border-color:#0000}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-range-thumb-disabled-bg)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-range-thumb-disabled-bg)}.form-floating{--bs-form-floating-height:calc(3.5rem + var(--bs-border-width) * 2);--bs-form-floating-line-height:1.25;--bs-form-floating-padding-x:var(--bs-btn-input-padding-x);--bs-form-floating-padding-y:1rem;--bs-form-floating-input-padding-t:1.625rem;--bs-form-floating-input-padding-b:.625rem;--bs-form-floating-label-height:1.5em;--bs-form-floating-label-opacity:.65;--bs-form-floating-label-transform:scale(.85) translateY(-.5rem) translateX(.15rem);--bs-form-floating-label-disabled-color:var(--bs-fg-3);--bs-form-floating-transition-property:opacity, transform;--bs-form-floating-transition-timing:.1s ease-in-out;--bs-form-floating-transition:var(--bs-form-floating-transition-property) var(--bs-form-floating-transition-timing);position:relative}.form-floating>label{z-index:2;max-width:100%;height:100%;padding:var(--bs-form-floating-padding-y) var(--bs-form-floating-padding-x);color:color-mix(in oklch, var(--bs-fg-body) var(--bs-form-floating-label-opacity), transparent);text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-input-btn-border-width) solid transparent;transform-origin:0 0;transition:var(--bs-form-floating-transition);align-items:center;display:flex;position:absolute;inset-block-start:0;inset-inline-start:0;overflow:hidden}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{height:var(--bs-form-floating-height);min-height:var(--bs-form-floating-height);padding:var(--bs-form-floating-padding-y) var(--bs-form-floating-padding-x);line-height:var(--bs-form-floating-line-height)}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:#0000}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),:-webkit-any(.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill){padding-top:var(--bs-form-floating-input-padding-t);padding-bottom:var(--bs-form-floating-input-padding-b)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),:is(.form-floating>.form-control:autofill,.form-floating>.form-control-plaintext:autofill){padding-top:var(--bs-form-floating-input-padding-t);padding-bottom:var(--bs-form-floating-input-padding-b)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label{transform:var(--bs-form-floating-label-transform)}.form-floating>.form-control:-webkit-autofill~label{transform:var(--bs-form-floating-label-transform)}.form-floating>textarea:focus~label:after,.form-floating>textarea:not(:placeholder-shown)~label:after{inset:var(--bs-form-floating-padding-y) calc(var(--bs-form-floating-padding-x) * .5);z-index:-1;height:var(--bs-form-floating-label-height);content:"";background-color:var(--bs-control-bg);border-radius:var(--bs-btn-input-border-radius);position:absolute}.form-floating>textarea:disabled~label:after{background-color:var(--bs-control-disabled-bg)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-control-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:var(--bs-form-floating-label-disabled-color)}.strength{--bs-strength-height:.375rem;--bs-strength-gap:.25rem;--bs-strength-margin-top:.25rem;--bs-strength-border-radius:var(--bs-radius-pill);--bs-strength-bg:var(--bs-bg-2);--bs-strength-color:var(--bs-bg-2);--bs-strength-weak-color:var(--bs-danger-bg);--bs-strength-fair-color:var(--bs-warning-bg);--bs-strength-good-color:var(--bs-info-bg);--bs-strength-strong-color:var(--bs-success-bg);gap:var(--bs-strength-gap);width:100%;margin-top:var(--bs-strength-margin-top);display:flex}.strength-segment{height:var(--bs-strength-height);background-color:var(--bs-strength-bg);border-radius:var(--bs-strength-border-radius);flex:1;transition:background-color .2s ease-in-out,width .3s ease-in-out}@media (prefers-reduced-motion:reduce){.strength-segment{transition:none}}.strength-segment.active{background-color:var(--bs-strength-color)}.strength[data-bs-strength=weak]{--bs-strength-color:var(--bs-strength-weak-color)}.strength[data-bs-strength=fair]{--bs-strength-color:var(--bs-strength-fair-color)}.strength[data-bs-strength=good]{--bs-strength-color:var(--bs-strength-good-color)}.strength[data-bs-strength=strong]{--bs-strength-color:var(--bs-strength-strong-color)}.strength-text{margin-top:var(--bs-strength-margin-top);font-size:var(--bs-font-size-xs);color:var(--bs-strength-color,var(--bs-fg-3));transition:color .2s ease-in-out;display:block}@media (prefers-reduced-motion:reduce){.strength-text{transition:none}}.strength-text:empty{display:none}.strength-bar{--bs-strength-height:.375rem;--bs-strength-gap:.25rem;--bs-strength-margin-top:.25rem;--bs-strength-border-radius:var(--bs-radius-pill);--bs-strength-bg:var(--bs-bg-2);--bs-strength-color:transparent;--bs-strength-weak-color:var(--bs-danger-bg);--bs-strength-fair-color:var(--bs-warning-bg);--bs-strength-good-color:var(--bs-info-bg);--bs-strength-strong-color:var(--bs-success-bg);--bs-strength-width:0%;width:100%;height:var(--bs-strength-height);margin-top:var(--bs-strength-margin-top);background-color:var(--bs-strength-bg);border-radius:var(--bs-strength-border-radius);overflow:hidden}.strength-bar:after{width:var(--bs-strength-width);content:"";background-color:var(--bs-strength-color);border-radius:var(--bs-strength-border-radius);height:100%;transition:background-color .2s ease-in-out,width .3s ease-in-out;display:block}@media (prefers-reduced-motion:reduce){.strength-bar:after{transition:none}}.strength-bar[data-bs-strength=weak]{--bs-strength-color:var(--bs-strength-weak-color);--bs-strength-width:25%}.strength-bar[data-bs-strength=fair]{--bs-strength-color:var(--bs-strength-fair-color);--bs-strength-width:50%}.strength-bar[data-bs-strength=good]{--bs-strength-color:var(--bs-strength-good-color);--bs-strength-width:75%}.strength-bar[data-bs-strength=strong]{--bs-strength-color:var(--bs-strength-strong-color);--bs-strength-width:100%}.form-adorn{--bs-form-adorn-gap:.375rem;--bs-form-adorn-icon-size:1rem;--bs-form-adorn-icon-color:var(--bs-fg-2);gap:var(--bs-form-adorn-gap);align-items:center}.form-adorn:focus-visible{outline:0}.form-adorn:focus-within{--bs-focus-ring-offset:-1px;border-color:var(--bs-focus-ring-color);outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-adorn>.form-ghost{flex:1;min-width:0}.form-adorn.form-adorn-end>.form-ghost{order:-1}.form-adorn-icon{color:var(--bs-form-adorn-icon-color);pointer-events:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.form-adorn-icon>svg{width:var(--bs-form-adorn-icon-size);height:var(--bs-form-adorn-icon-size)}.form-adorn-text{color:var(--bs-form-adorn-icon-color);pointer-events:none;-webkit-user-select:none;user-select:none;flex-shrink:0}.chip-input{--bs-chip-input-padding-y:.75rem;--bs-chip-input-padding-x:.75rem;--bs-chip-input-gap:.375rem;--bs-chip-input-ghost-min-width:5rem;--bs-control-fg:var(--bs-btn-input-fg);--bs-control-bg:var(--bs-btn-input-bg);--bs-control-border-width:var(--bs-border-width);--bs-control-border-color:var(--bs-border-color);--bs-control-border-radius:var(--bs-radius-5);gap:var(--bs-chip-input-gap);padding:var(--bs-chip-input-padding-y) var(--bs-chip-input-padding-x);color:var(--bs-control-fg);background-color:var(--bs-control-bg);border:var(--bs-control-border-width) solid var(--bs-control-border-color);border-radius:var(--bs-control-border-radius);flex-wrap:wrap;align-items:center;display:flex}.chip-input:focus-within{--bs-focus-ring-offset:-1px;border-color:var(--bs-focus-ring-color);outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.chip-input>.form-ghost{min-width:var(--bs-chip-input-ghost-min-width);flex:1 1 0;min-height:1.75rem}.chip-input.disabled,.chip-input:has(.form-ghost:disabled){cursor:not-allowed;background-color:var(--bs-bg-2);opacity:1}.chip-input.disabled:focus-within,.chip-input:has(.form-ghost:disabled):focus-within{border-color:var(--bs-control-border-color);outline:0}.chip-input.disabled>.chip,.chip-input:has(.form-ghost:disabled)>.chip{pointer-events:none;opacity:var(--bs-control-disabled-opacity)}.form-field{gap:.5rem;display:grid;position:relative}.form-field>label,.form-field>.form-label{justify-self:start;margin-bottom:0}.form-field:has(>.check,>.radio,>.switch){grid-template-columns:auto 1fr;align-items:start;column-gap:.5rem}.form-field:has(>.check,>.radio,>.switch)>.check,.form-field:has(>.check,>.radio,>.switch)>.radio,.form-field:has(>.check,>.radio,>.switch)>.switch{grid-column:1}.form-field:has(>.check,>.radio,>.switch)>:not(.check,.radio,.switch){grid-column:2}.form-field:has(>.check,>.radio,>.switch)>.form-label{grid-column:1/-1}.form-field-content{flex-direction:column;align-items:flex-start;display:flex}.form-field-card{padding:calc(var(--bs-spacer) * .75);cursor:pointer;border:var(--bs-border-width) solid transparent;border-radius:var(--bs-radius-7);position:relative}.form-field-card:hover{background-color:var(--bs-bg-1)}.form-field-card:has(:checked){background-color:var(--bs-bg-1);border-color:var(--bs-border-color)}.form-field-card label:before{content:"";position:absolute;inset:0}.form-group{gap:.5rem;display:grid}.form-group>label,.form-group>.form-label,.form-group>legend{justify-self:start;margin-bottom:0}}@layer components{.input-group{--bs-input-group-addon-padding-y:var(--bs-btn-input-padding-y);--bs-input-group-addon-padding-x:var(--bs-btn-input-padding-x);--bs-input-group-addon-font-size:var(--bs-btn-input-font-size);--bs-input-group-addon-line-height:var(--bs-btn-input-line-height);--bs-input-group-addon-color:var(--bs-fg-body);--bs-input-group-addon-bg:var(--bs-bg-2);--bs-input-group-addon-border-color:var(--bs-border-color);align-items:stretch;width:100%;display:flex;position:relative}.input-group>.form-control,.input-group>.form-floating{flex:auto;width:1%;min-width:0;position:relative}.input-group>.form-control:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group>.input-group-btn{z-index:2;position:relative}.input-group>.input-group-btn:focus{z-index:5}.input-group-text{padding:var(--bs-input-group-addon-padding-y) var(--bs-input-group-addon-padding-x);font-size:var(--bs-input-group-addon-font-size);line-height:var(--bs-input-group-addon-line-height);color:var(--bs-input-group-addon-color);text-align:center;white-space:nowrap;background-color:var(--bs-input-group-addon-bg);border:var(--bs-border-width) solid var(--bs-input-group-addon-border-color);border-radius:var(--bs-btn-input-border-radius);align-items:center;display:flex}.input-group-sm>.form-control,.input-group-sm>.input-group-text,.input-group-sm>.btn{min-height:var(--bs-btn-input-sm-min-height);padding:var(--bs-btn-input-sm-padding-y) var(--bs-btn-input-sm-padding-x);font-size:var(--bs-btn-input-sm-font-size);border-radius:var(--bs-btn-input-sm-border-radius)}.input-group-lg>.form-control,.input-group-lg>.input-group-text,.input-group-lg>.btn{min-height:var(--bs-btn-input-lg-min-height);padding:var(--bs-btn-input-lg-padding-y) var(--bs-btn-input-lg-padding-x);font-size:var(--bs-btn-input-lg-font-size);border-radius:var(--bs-btn-input-lg-border-radius)}.input-group>:not(:last-child,.menu-toggle-split,.menu,.input-group-ignore,.form-floating,:has(+:is(.menu,.input-group-ignore):last-child)),.input-group>.menu-toggle-split:nth-last-child(n+3),.input-group>.form-floating:not(:last-child)>.form-control,.input-group>.form-floating:not(:last-child)>.form-select{border-start-end-radius:0;border-end-end-radius:0}.input-group>:not(:first-child,.menu,.input-group-ignore){border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:calc(-1 * var(--bs-border-width))}.input-group>:first-child.input-group-ignore+:not(.menu,.input-group-ignore){border-start-start-radius:var(--bs-btn-input-border-radius);border-end-start-radius:var(--bs-btn-input-border-radius)}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-start-start-radius:0;border-end-start-radius:0}.otp{--bs-otp-size:var(--bs-btn-input-lg-min-height);--bs-otp-font-size:var(--bs-btn-input-font-size);--bs-otp-gap:.5rem;--bs-otp-slot-fg:var(--bs-btn-input-fg);--bs-otp-slot-bg:var(--bs-btn-input-bg);--bs-otp-slot-border-width:var(--bs-border-width);--bs-otp-slot-border-color:var(--bs-border-color);--bs-otp-slot-border-radius:var(--bs-radius-5);display:flex;position:relative}.otp-rendered .otp-input{color:#0000;text-align:center;cursor:default;caret-color:#0000;width:100%;height:100%;box-shadow:none;background-color:#0000;border:0;outline:0;padding:0;position:absolute;inset:0}.otp-rendered .otp-input::selection{color:#0000;background-color:#0000}.otp-slots{gap:var(--bs-otp-gap);pointer-events:none;display:inline-flex}.otp-slot{width:var(--bs-otp-size);min-height:var(--bs-otp-size);font-size:var(--bs-otp-font-size);color:var(--bs-otp-slot-fg);background-color:var(--bs-otp-slot-bg);border:var(--bs-otp-slot-border-width) solid var(--bs-otp-slot-border-color);border-radius:var(--bs-otp-slot-border-radius);box-shadow:var(--bs-box-shadow-inset);justify-content:center;align-items:center;font-weight:500;line-height:1;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;display:flex}@media (prefers-reduced-motion:reduce){.otp-slot{transition:none}}.otp-slot-active{--bs-focus-ring-offset:-1px;z-index:1;outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.otp-slot-active:not(.otp-slot-filled):after{content:"";background-color:var(--bs-otp-slot-fg);width:1px;height:50%;animation:1s step-end infinite otp-caret-blink}.otp-input:disabled~.otp-slots .otp-slot{background-color:var(--bs-bg-2)}.otp-connected .otp-slots{gap:0}.otp-connected .otp-slot{border-radius:0}.otp-connected .otp-slot:not(:first-child){margin-inline-start:calc(var(--bs-otp-slot-border-width) * -1)}.otp-connected .otp-slot:first-child{border-start-start-radius:var(--bs-otp-slot-border-radius);border-end-start-radius:var(--bs-otp-slot-border-radius)}.otp-connected .otp-slot:last-child{border-start-end-radius:var(--bs-otp-slot-border-radius);border-end-end-radius:var(--bs-otp-slot-border-radius)}.otp-separator{padding-inline:var(--bs-otp-gap);font-size:var(--bs-otp-font-size);color:var(--bs-fg-4);-webkit-user-select:none;user-select:none;align-items:center;display:flex}.otp-sm{--bs-otp-size:var(--bs-btn-input-sm-min-height);--bs-otp-font-size:var(--bs-btn-input-sm-font-size)}.otp-lg{--bs-otp-size:var(--bs-btn-input-lg-min-height);--bs-otp-font-size:var(--bs-btn-input-lg-font-size)}.combobox-toggle{width:100%;text-align:start;cursor:pointer;justify-content:space-between;align-items:center;gap:.5rem;padding-inline-end:var(--bs-control-padding-x);display:inline-flex}.combobox-toggle.show{background-color:var(--bs-bg-1)}.combobox-toggle:disabled,.combobox-toggle.disabled{cursor:not-allowed;opacity:.65}.combobox-value{text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;gap:.5rem;display:flex;overflow:hidden}.combobox-placeholder{color:color-mix(in oklch, currentcolor 65%, transparent)}.combobox-caret{flex-shrink:0;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.combobox-caret{transition:none}}.show>.combobox-caret{transform:rotate(180deg)}.combobox-toggle+.menu{--bs-menu-max-height:300px;--bs-menu-overflow-y:auto}.combobox-search{z-index:1;padding:var(--bs-menu-padding-x,.25rem);background-color:var(--bs-menu-bg,var(--bs-bg-body));position:sticky;top:0}.combobox-search-input{width:100%}.combobox-no-results{font-size:var(--bs-font-size-sm);color:var(--bs-fg-3);text-align:center;padding:1rem}.valid-feedback{width:100%;font-size:var(--bs-font-size-sm);color:var(--bs-success-fg);display:none}.tooltip.valid-tooltip{z-index:5;max-width:100%;padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-success-contrast);text-align:center;background-color:var(--bs-success-bg);opacity:1;border-radius:var(--bs-tooltip-border-radius);margin-top:.1rem;display:none;position:absolute;top:100%}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,:is([data-bs-validate~=valid] :user-valid~.valid-feedback,[data-bs-validate~=valid] :user-valid~.valid-tooltip){display:block}.form-control.is-valid{--bs-control-border-color:var(--bs-success-border)}.form-control.is-valid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-control-border-color:var(--bs-success-border)}[data-bs-validate~=valid] .form-control:user-valid{--bs-control-border-color:var(--bs-success-border)}[data-bs-validate~=valid] .form-control:user-valid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-control-border-color:var(--bs-success-border)}.check.is-valid{--bs-check-border-color:var(--bs-success-border);--bs-check-checked-bg:var(--bs-success-bg);--bs-check-checked-border-color:var(--bs-success-bg)}.check.is-valid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}[data-bs-validate~=valid] .check:user-valid{--bs-check-border-color:var(--bs-success-border);--bs-check-checked-bg:var(--bs-success-bg);--bs-check-checked-border-color:var(--bs-success-bg)}[data-bs-validate~=valid] .check:user-valid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-field:has(.check.is-valid) label{color:var(--bs-success-fg)}.form-field:has(.check.is-valid) .valid-feedback,.form-field:has(.check.is-valid) .valid-tooltip{display:block}[data-bs-validate~=valid] .form-field:has(.check:user-valid) label{color:var(--bs-success-fg)}:is([data-bs-validate~=valid] .form-field:has(.check:user-valid) .valid-feedback,[data-bs-validate~=valid] .form-field:has(.check:user-valid) .valid-tooltip){display:block}.radio.is-valid{--bs-radio-border-color:var(--bs-success-border);--bs-radio-checked-bg:var(--bs-success-bg);--bs-radio-checked-border-color:var(--bs-success-bg)}.radio.is-valid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}[data-bs-validate~=valid] .radio:user-valid{--bs-radio-border-color:var(--bs-success-border);--bs-radio-checked-bg:var(--bs-success-bg);--bs-radio-checked-border-color:var(--bs-success-bg)}[data-bs-validate~=valid] .radio:user-valid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-field:has(.radio.is-valid) label{color:var(--bs-success-fg)}.form-field:has(.radio.is-valid) .valid-feedback,.form-field:has(.radio.is-valid) .valid-tooltip{display:block}[data-bs-validate~=valid] .form-field:has(.radio:user-valid) label{color:var(--bs-success-fg)}:is([data-bs-validate~=valid] .form-field:has(.radio:user-valid) .valid-feedback,[data-bs-validate~=valid] .form-field:has(.radio:user-valid) .valid-tooltip){display:block}.switch:has(input.is-valid){--bs-switch-border-color:var(--bs-success-border);--bs-switch-checked-bg:var(--bs-success-bg);--bs-switch-checked-border-color:var(--bs-success-bg)}.switch:has(input.is-valid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}[data-bs-validate~=valid] .switch:has(input:user-valid){--bs-switch-border-color:var(--bs-success-border);--bs-switch-checked-bg:var(--bs-success-bg);--bs-switch-checked-border-color:var(--bs-success-bg)}[data-bs-validate~=valid] .switch:has(input:user-valid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-field:has(.switch input.is-valid) label{color:var(--bs-success-fg)}.form-field:has(.switch input.is-valid) .valid-feedback,.form-field:has(.switch input.is-valid) .valid-tooltip{display:block}[data-bs-validate~=valid] .form-field:has(.switch input:user-valid) label{color:var(--bs-success-fg)}:is([data-bs-validate~=valid] .form-field:has(.switch input:user-valid) .valid-feedback,[data-bs-validate~=valid] .form-field:has(.switch input:user-valid) .valid-tooltip){display:block}.chip-input:has(.form-ghost.is-valid){border-color:var(--bs-success-border)}.chip-input:has(.form-ghost.is-valid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset);border-color:var(--bs-success-border)}.chip-input:has(.form-ghost.is-valid)~.valid-feedback,.chip-input:has(.form-ghost.is-valid)~.valid-tooltip{display:block}[data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid){border-color:var(--bs-success-border)}[data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset);border-color:var(--bs-success-border)}:is([data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid)~.valid-feedback,[data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid)~.valid-tooltip){display:block}.form-adorn:has(.form-ghost.is-valid){border-color:var(--bs-success-border)}.form-adorn:has(.form-ghost.is-valid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset);border-color:var(--bs-success-border)}.form-adorn:has(.form-ghost.is-valid)~.valid-feedback,.form-adorn:has(.form-ghost.is-valid)~.valid-tooltip{display:block}[data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid){border-color:var(--bs-success-border)}[data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset);border-color:var(--bs-success-border)}:is([data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid)~.valid-feedback,[data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid)~.valid-tooltip){display:block}.form-range.is-valid::-webkit-slider-thumb{background:var(--bs-success-bg)}.form-range.is-valid::-moz-range-thumb{background:var(--bs-success-bg)}.form-range.is-valid:focus-visible::-webkit-slider-thumb{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-range.is-valid:focus-visible::-moz-range-thumb{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-range.is-valid~.valid-feedback,.form-range.is-valid~.valid-tooltip{display:block}[data-bs-validate~=valid] .form-range:user-valid::-webkit-slider-thumb{background:var(--bs-success-bg)}[data-bs-validate~=valid] .form-range:user-valid::-moz-range-thumb{background:var(--bs-success-bg)}[data-bs-validate~=valid] .form-range:user-valid:focus-visible::-webkit-slider-thumb{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}[data-bs-validate~=valid] .form-range:user-valid:focus-visible::-moz-range-thumb{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}:is([data-bs-validate~=valid] .form-range:user-valid~.valid-feedback,[data-bs-validate~=valid] .form-range:user-valid~.valid-tooltip),.form-field:has(.input-group .form-control.is-valid) .valid-feedback,.form-field:has(.input-group .form-control.is-valid) .valid-tooltip,:is([data-bs-validate~=valid] .form-field:has(.input-group .form-control:user-valid) .valid-feedback,[data-bs-validate~=valid] .form-field:has(.input-group .form-control:user-valid) .valid-tooltip){display:block}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,:is([data-bs-validate~=valid] .input-group>.form-control:not(:focus),.input-group>.form-floating:not(:focus-within):user-valid){z-index:3}.otp.is-valid .otp-slot{--bs-otp-slot-border-color:var(--bs-success-border)}.otp.is-valid .otp-slot-active{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}[data-bs-validate~=valid] .otp:user-valid .otp-slot{--bs-otp-slot-border-color:var(--bs-success-border)}[data-bs-validate~=valid] .otp:user-valid .otp-slot-active{outline:var(--bs-focus-ring-width) solid var(--bs-success-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.invalid-feedback{width:100%;font-size:var(--bs-font-size-sm);color:var(--bs-danger-fg);display:none}.tooltip.invalid-tooltip{z-index:5;max-width:100%;padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-danger-contrast);text-align:center;background-color:var(--bs-danger-bg);opacity:1;border-radius:var(--bs-tooltip-border-radius);margin-top:.1rem;display:none;position:absolute;top:100%}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,:is([data-bs-validate] :user-invalid~.invalid-feedback,[data-bs-validate] :user-invalid~.invalid-tooltip){display:block}.form-control.is-invalid{--bs-control-border-color:var(--bs-danger-border)}.form-control.is-invalid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-control-border-color:var(--bs-danger-border)}[data-bs-validate] .form-control:user-invalid{--bs-control-border-color:var(--bs-danger-border)}[data-bs-validate] .form-control:user-invalid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-control-border-color:var(--bs-danger-border)}.check.is-invalid{--bs-check-border-color:var(--bs-danger-border);--bs-check-checked-bg:var(--bs-danger-bg);--bs-check-checked-border-color:var(--bs-danger-bg)}.check.is-invalid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}[data-bs-validate] .check:user-invalid{--bs-check-border-color:var(--bs-danger-border);--bs-check-checked-bg:var(--bs-danger-bg);--bs-check-checked-border-color:var(--bs-danger-bg)}[data-bs-validate] .check:user-invalid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-field:has(.check.is-invalid) label{color:var(--bs-danger-fg)}.form-field:has(.check.is-invalid) .invalid-feedback,.form-field:has(.check.is-invalid) .invalid-tooltip{display:block}[data-bs-validate] .form-field:has(.check:user-invalid) label{color:var(--bs-danger-fg)}:is([data-bs-validate] .form-field:has(.check:user-invalid) .invalid-feedback,[data-bs-validate] .form-field:has(.check:user-invalid) .invalid-tooltip){display:block}.radio.is-invalid{--bs-radio-border-color:var(--bs-danger-border);--bs-radio-checked-bg:var(--bs-danger-bg);--bs-radio-checked-border-color:var(--bs-danger-bg)}.radio.is-invalid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}[data-bs-validate] .radio:user-invalid{--bs-radio-border-color:var(--bs-danger-border);--bs-radio-checked-bg:var(--bs-danger-bg);--bs-radio-checked-border-color:var(--bs-danger-bg)}[data-bs-validate] .radio:user-invalid:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-field:has(.radio.is-invalid) label{color:var(--bs-danger-fg)}.form-field:has(.radio.is-invalid) .invalid-feedback,.form-field:has(.radio.is-invalid) .invalid-tooltip{display:block}[data-bs-validate] .form-field:has(.radio:user-invalid) label{color:var(--bs-danger-fg)}:is([data-bs-validate] .form-field:has(.radio:user-invalid) .invalid-feedback,[data-bs-validate] .form-field:has(.radio:user-invalid) .invalid-tooltip){display:block}.switch:has(input.is-invalid){--bs-switch-border-color:var(--bs-danger-border);--bs-switch-checked-bg:var(--bs-danger-bg);--bs-switch-checked-border-color:var(--bs-danger-bg)}.switch:has(input.is-invalid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}[data-bs-validate] .switch:has(input:user-invalid){--bs-switch-border-color:var(--bs-danger-border);--bs-switch-checked-bg:var(--bs-danger-bg);--bs-switch-checked-border-color:var(--bs-danger-bg)}[data-bs-validate] .switch:has(input:user-invalid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-field:has(.switch input.is-invalid) label{color:var(--bs-danger-fg)}.form-field:has(.switch input.is-invalid) .invalid-feedback,.form-field:has(.switch input.is-invalid) .invalid-tooltip{display:block}[data-bs-validate] .form-field:has(.switch input:user-invalid) label{color:var(--bs-danger-fg)}:is([data-bs-validate] .form-field:has(.switch input:user-invalid) .invalid-feedback,[data-bs-validate] .form-field:has(.switch input:user-invalid) .invalid-tooltip){display:block}.chip-input:has(.form-ghost.is-invalid){border-color:var(--bs-danger-border)}.chip-input:has(.form-ghost.is-invalid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset);border-color:var(--bs-danger-border)}.chip-input:has(.form-ghost.is-invalid)~.invalid-feedback,.chip-input:has(.form-ghost.is-invalid)~.invalid-tooltip{display:block}[data-bs-validate] .chip-input:has(.form-ghost:user-invalid){border-color:var(--bs-danger-border)}[data-bs-validate] .chip-input:has(.form-ghost:user-invalid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset);border-color:var(--bs-danger-border)}:is([data-bs-validate] .chip-input:has(.form-ghost:user-invalid)~.invalid-feedback,[data-bs-validate] .chip-input:has(.form-ghost:user-invalid)~.invalid-tooltip){display:block}.form-adorn:has(.form-ghost.is-invalid){border-color:var(--bs-danger-border)}.form-adorn:has(.form-ghost.is-invalid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset);border-color:var(--bs-danger-border)}.form-adorn:has(.form-ghost.is-invalid)~.invalid-feedback,.form-adorn:has(.form-ghost.is-invalid)~.invalid-tooltip{display:block}[data-bs-validate] .form-adorn:has(.form-ghost:user-invalid){border-color:var(--bs-danger-border)}[data-bs-validate] .form-adorn:has(.form-ghost:user-invalid):focus-within{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset);border-color:var(--bs-danger-border)}:is([data-bs-validate] .form-adorn:has(.form-ghost:user-invalid)~.invalid-feedback,[data-bs-validate] .form-adorn:has(.form-ghost:user-invalid)~.invalid-tooltip){display:block}.form-range.is-invalid::-webkit-slider-thumb{background:var(--bs-danger-bg)}.form-range.is-invalid::-moz-range-thumb{background:var(--bs-danger-bg)}.form-range.is-invalid:focus-visible::-webkit-slider-thumb{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-range.is-invalid:focus-visible::-moz-range-thumb{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.form-range.is-invalid~.invalid-feedback,.form-range.is-invalid~.invalid-tooltip{display:block}[data-bs-validate] .form-range:user-invalid::-webkit-slider-thumb{background:var(--bs-danger-bg)}[data-bs-validate] .form-range:user-invalid::-moz-range-thumb{background:var(--bs-danger-bg)}[data-bs-validate] .form-range:user-invalid:focus-visible::-webkit-slider-thumb{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}[data-bs-validate] .form-range:user-invalid:focus-visible::-moz-range-thumb{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}:is([data-bs-validate] .form-range:user-invalid~.invalid-feedback,[data-bs-validate] .form-range:user-invalid~.invalid-tooltip),.form-field:has(.input-group .form-control.is-invalid) .invalid-feedback,.form-field:has(.input-group .form-control.is-invalid) .invalid-tooltip,:is([data-bs-validate] .form-field:has(.input-group .form-control:user-invalid) .invalid-feedback,[data-bs-validate] .form-field:has(.input-group .form-control:user-invalid) .invalid-tooltip){display:block}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,:is([data-bs-validate] .input-group>.form-control:not(:focus),.input-group>.form-floating:not(:focus-within):user-invalid){z-index:4}.otp.is-invalid .otp-slot{--bs-otp-slot-border-color:var(--bs-danger-border)}.otp.is-invalid .otp-slot-active{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}[data-bs-validate] .otp:user-invalid .otp-slot{--bs-otp-slot-border-color:var(--bs-danger-border)}[data-bs-validate] .otp:user-invalid .otp-slot-active{outline:var(--bs-focus-ring-width) solid var(--bs-danger-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.btn,.btn-link,.btn-icon,.btn-solid,.btn-outline,.btn-subtle,.btn-text{--bs-btn-min-height:var(--bs-btn-input-min-height);--bs-btn-padding-x:var(--bs-btn-input-padding-x);--bs-btn-padding-y:var(--bs-btn-input-padding-y);--bs-btn-font-size:var(--bs-btn-input-font-size);--bs-btn-font-weight:var(--bs-btn-input-font-weight);--bs-btn-line-height:var(--bs-btn-input-line-height);--bs-btn-color:var(--bs-fg-body);--bs-btn-white-space:nowrap;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-radius-5);--bs-btn-hover-border-color:transparent;--bs-btn-disabled-opacity:.65;--bs-btn-transition-timing:.15s ease-in-out;--bs-btn-transition-property:color, background-color, border-color, box-shadow;--bs-btn-transition:var(--bs-btn-transition-property) var(--bs-btn-transition-timing);gap:var(--bs-btn-gap,.25rem);min-height:var(--bs-btn-min-height);padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);white-space:var(--bs-btn-white-space);vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:var(--bs-btn-bg,var(--bs-bg-2));border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);transition:var(--bs-btn-transition);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}@media (prefers-reduced-motion:reduce){.btn,.btn-link,.btn-icon,.btn-solid,.btn-outline,.btn-subtle,.btn-text{transition:none}}.btn:hover,.btn-link:hover,.btn-icon:hover,.btn-solid:hover,.btn-outline:hover,.btn-subtle:hover,.btn-text:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg,var(--bs-bg-3));border-color:var(--bs-btn-hover-border-color)}.btn:focus-visible,.btn-link:focus-visible,.btn-icon:focus-visible,.btn-solid:focus-visible,.btn-outline:focus-visible,.btn-subtle:focus-visible,.btn-text:focus-visible{outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-focus-ring-offset:1px}.btn.active,.btn.show,.btn-link.active,.btn-link.show,.btn-icon.active,.btn-icon.show,.btn-solid.active,.btn-solid.show,.btn-outline.active,.btn-outline.show,.btn-subtle.active,.btn-subtle.show,.btn-text.active,.btn-text.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg,var(--bs-bg-3));border-color:var(--bs-btn-active-border-color)}.btn.active:focus-visible,.btn.show:focus-visible,.btn-link.active:focus-visible,.btn-link.show:focus-visible,.btn-icon.active:focus-visible,.btn-icon.show:focus-visible,.btn-solid.active:focus-visible,.btn-solid.show:focus-visible,.btn-outline.active:focus-visible,.btn-outline.show:focus-visible,.btn-subtle.active:focus-visible,.btn-subtle.show:focus-visible,.btn-text.active:focus-visible,.btn-text.show:focus-visible{outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.btn:disabled,.btn.disabled,fieldset:disabled .btn,.btn-link:disabled,.btn-link.disabled,fieldset:disabled .btn-link,.btn-icon:disabled,.btn-icon.disabled,fieldset:disabled .btn-icon,.btn-solid:disabled,.btn-solid.disabled,fieldset:disabled .btn-solid,.btn-outline:disabled,.btn-outline.disabled,fieldset:disabled .btn-outline,.btn-subtle:disabled,.btn-subtle.disabled,fieldset:disabled .btn-subtle,.btn-text:disabled,.btn-text.disabled,fieldset:disabled .btn-text{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg,var(--bs-bg-1));border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity);background-image:none}.btn-solid{--bs-btn-bg:var(--bs-theme-bg);--bs-btn-color:var(--bs-theme-contrast);--bs-btn-border-color:var(--bs-theme-bg);--bs-btn-active-bg:oklch(from var(--bs-theme-bg) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-border-color:oklch(from var(--bs-theme-bg) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-color:oklch(from var(--bs-theme-contrast) calc(l * .9) calc(c * 1.15) h);--bs-btn-disabled-bg:var(--bs-theme-bg);--bs-btn-disabled-color:var(--bs-theme-contrast);--bs-btn-disabled-border-color:var(--bs-theme-bg)}.btn-solid:hover{--bs-btn-hover-bg:oklch(from var(--bs-theme-bg) calc(l * .95) calc(c * 1.1) h);--bs-btn-hover-border-color:oklch(from var(--bs-theme-bg) calc(l * .95) calc(c * 1.1) h);--bs-btn-hover-color:oklch(from var(--bs-theme-contrast) calc(l * .95) calc(c * 1.1) h)}.btn-solid:focus-visible{outline-color:var(--bs-theme-focus-ring)}.btn-solid:active,.btn-solid.active,.btn-solid.btn-check:has(input:checked){--bs-btn-active-bg:oklch(from var(--bs-theme-bg) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-border-color:oklch(from var(--bs-theme-bg) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-color:oklch(from var(--bs-theme-contrast) calc(l * .9) calc(c * 1.15) h)}.btn-solid:disabled,.btn-solid.disabled,.btn-solid.btn-check:has(input:disabled){--bs-btn-disabled-bg:var(--bs-theme-bg);--bs-btn-disabled-color:var(--bs-theme-contrast);--bs-btn-disabled-border-color:var(--bs-theme-bg)}.btn-outline{--bs-btn-bg:transparent;--bs-btn-color:var(--bs-theme-fg);--bs-btn-border-color:var(--bs-theme-border);--bs-btn-active-bg:oklch(from var(--bs-theme-bg) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-color:oklch(from var(--bs-theme-contrast) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-border-color:oklch(from var(--bs-theme-bg) calc(l * .9) calc(c * 1.15) h);--bs-btn-disabled-bg:transparent;--bs-btn-disabled-color:var(--bs-theme-fg);--bs-btn-disabled-border-color:var(--bs-theme-border)}.btn-outline:hover{--bs-btn-hover-bg:oklch(from var(--bs-theme-bg) calc(l * .95) calc(c * 1.1) h);--bs-btn-hover-color:oklch(from var(--bs-theme-contrast) calc(l * .95) calc(c * 1.1) h);--bs-btn-hover-border-color:oklch(from var(--bs-theme-bg) calc(l * .95) calc(c * 1.1) h)}.btn-outline:focus-visible{outline-color:var(--bs-theme-focus-ring)}.btn-outline:active,.btn-outline.active,.btn-outline.btn-check:has(input:checked){--bs-btn-active-bg:oklch(from var(--bs-theme-bg) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-color:oklch(from var(--bs-theme-contrast) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-border-color:oklch(from var(--bs-theme-bg) calc(l * .9) calc(c * 1.15) h)}.btn-outline:disabled,.btn-outline.disabled,.btn-outline.btn-check:has(input:disabled){--bs-btn-disabled-bg:transparent;--bs-btn-disabled-color:var(--bs-theme-fg);--bs-btn-disabled-border-color:var(--bs-theme-border)}.btn-subtle{--bs-btn-bg:var(--bs-theme-bg-subtle);--bs-btn-color:var(--bs-theme-fg);--bs-btn-border-color:transparent;--bs-btn-active-bg:var(--bs-theme-bg-subtle);--bs-btn-active-color:oklch(from var(--bs-theme-fg-emphasis) calc(l * .9) calc(c * 1.15) h);--bs-btn-disabled-bg:var(--bs-theme-bg-subtle);--bs-btn-disabled-color:var(--bs-theme-fg);--bs-btn-disabled-border-color:transparent}.btn-subtle:hover{--bs-btn-hover-bg:color-mix(in oklch, var(--bs-theme-bg-muted) 50%, var(--bs-theme-bg-subtle));--bs-btn-hover-color:oklch(from var(--bs-theme-fg-emphasis) calc(l * .95) calc(c * 1.1) h)}.btn-subtle:focus-visible{outline-color:var(--bs-theme-focus-ring)}.btn-subtle:active,.btn-subtle.active,.btn-subtle.btn-check:has(input:checked){--bs-btn-active-bg:var(--bs-theme-bg-subtle);--bs-btn-active-color:oklch(from var(--bs-theme-fg-emphasis) calc(l * .9) calc(c * 1.15) h)}.btn-subtle:disabled,.btn-subtle.disabled,.btn-subtle.btn-check:has(input:disabled){--bs-btn-disabled-bg:var(--bs-theme-bg-subtle);--bs-btn-disabled-color:var(--bs-theme-fg);--bs-btn-disabled-border-color:transparent}.btn-text{--bs-btn-color:var(--bs-theme-fg);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-active-color:oklch(from var(--bs-theme-fg) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-bg:var(--bs-theme-bg-subtle);--bs-btn-disabled-color:var(--bs-theme-fg);--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:transparent}.btn-text:hover{--bs-btn-hover-color:oklch(from var(--bs-theme-fg) calc(l * .95) calc(c * 1.1) h);--bs-btn-hover-bg:var(--bs-theme-bg-subtle)}.btn-text:focus-visible{outline-color:var(--bs-theme-focus-ring)}.btn-text:active,.btn-text.active,.btn-text.btn-check:has(input:checked){--bs-btn-active-color:oklch(from var(--bs-theme-fg) calc(l * .9) calc(c * 1.15) h);--bs-btn-active-bg:var(--bs-theme-bg-subtle)}.btn-text:disabled,.btn-text.disabled,.btn-text.btn-check:has(input:disabled){--bs-btn-disabled-color:var(--bs-theme-fg);--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:transparent}.btn-link{--bs-btn-font-weight:var(--bs-font-weight-normal);--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-bg:transparent;--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-bg:transparent;--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:var(--bs-fg-3);--bs-btn-disabled-border-color:transparent;color:var(--bs-theme-fg,var(--bs-btn-color));-webkit-text-decoration:var(--bs-link-decoration);-webkit-text-decoration:var(--bs-link-decoration);text-decoration:var(--bs-link-decoration);background-image:none}.btn-link:focus-visible{color:var(--bs-theme-fg,var(--bs-btn-color))}.btn-link:hover{color:var(--bs-theme-fg-emphasis,var(--bs-btn-hover-color))}.btn-xs,.btn-group-xs>[class*=btn-]{--bs-btn-min-height:var(--bs-btn-input-xs-min-height);--bs-btn-padding-y:var(--bs-btn-input-xs-padding-y);--bs-btn-padding-x:var(--bs-btn-input-xs-padding-x);--bs-btn-font-size:var(--bs-btn-input-xs-font-size);--bs-btn-line-height:var(--bs-btn-input-xs-line-height);--bs-btn-border-radius:var(--bs-btn-input-xs-border-radius)}.btn-sm,.btn-group-sm>[class*=btn-]{--bs-btn-min-height:var(--bs-btn-input-sm-min-height);--bs-btn-padding-y:var(--bs-btn-input-sm-padding-y);--bs-btn-padding-x:var(--bs-btn-input-sm-padding-x);--bs-btn-font-size:var(--bs-btn-input-sm-font-size);--bs-btn-line-height:var(--bs-btn-input-sm-line-height);--bs-btn-border-radius:var(--bs-btn-input-sm-border-radius)}.btn-lg,.btn-group-lg>[class*=btn-]{--bs-btn-min-height:var(--bs-btn-input-lg-min-height);--bs-btn-padding-y:var(--bs-btn-input-lg-padding-y);--bs-btn-padding-x:var(--bs-btn-input-lg-padding-x);--bs-btn-font-size:var(--bs-btn-input-lg-font-size);--bs-btn-line-height:var(--bs-btn-input-lg-line-height);--bs-btn-border-radius:var(--bs-btn-input-lg-border-radius)}.btn-icon{aspect-ratio:1;justify-content:center;align-items:center;padding:0}.btn-check>input{clip:rect(0, 0, 0, 0);pointer-events:none;position:absolute}.btn-check:has(input:checked){color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg,var(--bs-bg-3));border-color:var(--bs-btn-active-border-color);box-shadow:var(--bs-btn-active-shadow);background-image:none}.btn-check:has(input:focus-visible){outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset);--bs-focus-ring-offset:1px}.btn-check:has(input:disabled){color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg,var(--bs-bg-1));border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity);box-shadow:none;background-image:none}.btn-styled{--bs-btn-gradient-start:#ffffff20;--bs-btn-gradient-end:#00000013;--bs-btn-border-mix-color:#000;--bs-btn-border-mix-amount:10%;--bs-btn-border-hover-mix-amount:12.5%;--bs-btn-border-active-mix-amount:20%;--bs-btn-shadow:0 1px 2px #00000026, inset 0 1px 0 #ffffff1a;--bs-btn-active-shadow:inset 0 2px 4px #00000026;background-image:linear-gradient(to bottom, var(--bs-btn-gradient-start), var(--bs-btn-gradient-end));border-color:color-mix(in lab, var(--bs-theme-bg), var(--bs-btn-border-mix-color) var(--bs-btn-border-mix-amount));box-shadow:var(--bs-btn-shadow)}.btn-styled:hover{background-image:linear-gradient(to bottom, var(--bs-btn-gradient-start), var(--bs-btn-gradient-end));border-color:color-mix(in lab, var(--bs-theme-bg), var(--bs-btn-border-mix-color) var(--bs-btn-border-hover-mix-amount))}.btn-styled:active,.btn-styled.active{border-color:color-mix(in lab, var(--bs-theme-bg), var(--bs-btn-border-mix-color) var(--bs-btn-border-active-mix-amount));box-shadow:var(--bs-btn-active-shadow);background-image:none}.btn-styled:disabled,.btn-styled.disabled{box-shadow:none;background-image:none}.btn-group,.btn-group-vertical{vertical-align:middle;display:inline-flex;position:relative}.btn-group>[class*=btn-],.btn-group-vertical>[class*=btn-]{flex:auto;position:relative}.btn-group>[class*=btn-]:hover,.btn-group-vertical>[class*=btn-]:hover{z-index:1}.btn-group>.btn-check:has(input:checked),.btn-group>[class*=btn-]:active,.btn-group>[class*=btn-].active,.btn-group-vertical>.btn-check:has(input:checked),.btn-group-vertical>[class*=btn-]:active,.btn-group-vertical>[class*=btn-].active{z-index:2}.btn-group>.btn-check:has(input:focus),.btn-group>[class*=btn-]:focus,.btn-group-vertical>.btn-check:has(input:focus),.btn-group-vertical>[class*=btn-]:focus{z-index:3}.btn-group-divider>[class*=btn-]+[class*=btn-]:before{z-index:3;content:"";background-color:var(--bs-btn-color);opacity:.25;position:absolute}.btn-group:where(.btn-group-divider)>[class*=btn-]+[class*=btn-]:before{top:25%;bottom:25%;left:calc(var(--bs-btn-border-width) * -1);width:var(--bs-btn-border-width)}.btn-group-vertical:where(.btn-group-divider)>[class*=btn-]+[class*=btn-]:before{top:calc(var(--bs-btn-border-width) * -1);right:var(--bs-btn-padding-x);left:var(--bs-btn-padding-x);height:var(--bs-btn-border-width)}.btn-toolbar{flex-wrap:wrap;justify-content:flex-start;gap:.5rem;display:flex}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-btn-border-radius)}.btn-group>[class*=btn-]:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-inline-start:calc(-1 * var(--bs-btn-border-width))}.btn-group>[class*=btn-]:not(:last-child,:has(+.menu)),.btn-group>.btn-group:not(:last-child)>[class*=btn-]{border-start-end-radius:0;border-end-end-radius:0}.btn-group>[class*=btn-]:not(:first-child),.btn-group>.btn-group:not(:first-child)>[class*=btn-]{border-start-start-radius:0;border-end-start-radius:0}.btn-group-vertical{flex-direction:column;justify-content:center;align-items:flex-start}.btn-group-vertical>[class*=btn-],.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>[class*=btn-]:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(-1 * var(--bs-btn-border-width))}.btn-group-vertical>[class*=btn-]:not(:last-child,:has(+.menu)),.btn-group-vertical>.btn-group:not(:last-child)>[class*=btn-]{border-end-end-radius:0;border-end-start-radius:0}.btn-group-vertical>[class*=btn-]:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child)>[class*=btn-]{border-start-start-radius:0;border-start-end-radius:0}.btn-close{--bs-btn-close-size:1.5rem;--bs-btn-close-color:inherit;--bs-btn-close-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath d='M12 0a4 4 0 0 1 4 4v8a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4zm-.646 4.646a.5.5 0 0 0-.707 0L8 7.293 5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.647a.5.5 0 1 0 .708.707L8 8.707l2.647 2.646a.5.5 0 1 0 .707-.707L8.707 8l2.646-2.646a.5.5 0 0 0 0-.708z'/%3e%3c/svg%3e");--bs-btn-close-opacity:.5;--bs-btn-close-hover-opacity:.75;--bs-btn-close-focus-opacity:.85;--bs-btn-close-disabled-opacity:.25;box-sizing:content-box;width:var(--bs-btn-close-size);height:var(--bs-btn-close-size);color:var(--bs-btn-close-color);border-radius:var(--bs-radius-5);opacity:var(--bs-btn-close-opacity);mask-image:var(--bs-btn-close-icon);background-color:currentColor;border:0;padding:0;mask-position:50%;mask-size:contain;mask-repeat:no-repeat}.btn-close:hover{color:var(--bs-btn-close-color);opacity:var(--bs-btn-close-hover-opacity);text-decoration:none}.btn-close:focus-visible{opacity:var(--bs-btn-close-focus-opacity);outline:var(--bs-focus-ring)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.accordion{--bs-accordion-padding-x:1.25rem;--bs-accordion-padding-y:1rem;--bs-accordion-color:var(--bs-fg-body);--bs-accordion-bg:var(--bs-bg-body);--bs-accordion-transition-property:color, background-color, border-radius;--bs-accordion-transition-timing:.15s ease-in-out;--bs-accordion-transition:var(--bs-accordion-transition-property) var(--bs-accordion-timing);--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-accordion-radius,var(--bs-radius-7));--bs-accordion-btn-color:var(--bs-fg-2);--bs-accordion-btn-bg:var(--bs-bg-body);--bs-accordion-btn-icon-width:1rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform .2s ease-in-out;--bs-accordion-active-color:var(--bs-fg);--bs-accordion-active-bg:var(--bs-bg-2)}.accordion-header{width:100%;padding:var(--bs-accordion-btn-padding-y,var(--bs-accordion-padding-y)) var(--bs-accordion-btn-padding-x,var(--bs-accordion-padding-x));font-size:var(--bs-accordion-font-size,var(--bs-font-size-base));color:var(--bs-accordion-btn-color);text-align:start;cursor:pointer;background-color:var(--bs-accordion-btn-bg);transition:var(--bs-accordion-transition);align-items:center;list-style:none;display:flex}@media (prefers-reduced-motion:reduce){.accordion-header{transition:none}}.accordion-header::-webkit-details-marker{display:none}.accordion-header .accordion-icon{width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);color:currentColor;transition:var(--bs-accordion-btn-icon-transition);flex-shrink:0;margin-inline-start:auto}@media (prefers-reduced-motion:reduce){.accordion-header .accordion-icon{transition:none}}.accordion-header:hover{z-index:2}.accordion-header:focus-visible{z-index:3;outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset);outline-offset:-1px;position:relative}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}@media (prefers-reduced-motion:no-preference){.accordion-item{interpolate-size:allow-keywords}}.accordion-item::details-content{block-size:0;transition:content-visibility .2s allow-discrete, block-size .2s;overflow-y:clip}@media (prefers-reduced-motion:reduce){.accordion-item::details-content{transition:none}}.accordion-item:first-of-type{border-start-start-radius:var(--bs-accordion-border-radius);border-start-end-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header{border-start-start-radius:calc(var(--bs-accordion-border-radius) - var(--bs-accordion-border-width));border-start-end-radius:calc(var(--bs-accordion-border-radius) - var(--bs-accordion-border-width))}.accordion-item:not(:first-of-type){border-block-start:0}.accordion-item:last-of-type{border-end-end-radius:var(--bs-accordion-border-radius);border-end-start-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header{border-end-end-radius:calc(var(--bs-accordion-border-radius) - var(--bs-accordion-border-width));border-end-start-radius:calc(var(--bs-accordion-border-radius) - var(--bs-accordion-border-width))}.accordion-item:last-of-type>.accordion-body{border-end-end-radius:var(--bs-accordion-border-radius);border-end-start-radius:var(--bs-accordion-border-radius)}.accordion-item[open]{border-color:var(--bs-theme-border,var(--bs-accordion-border-color))}.accordion-item[open]::details-content{block-size:auto}.accordion-item[open]>.accordion-header{color:var(--bs-theme-fg,var(--bs-accordion-active-color));background-color:var(--bs-theme-bg-subtle,var(--bs-accordion-active-bg));box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-theme-border,var(--bs-accordion-border-color))}.accordion-item[open]>.accordion-header .accordion-icon{transform:var(--bs-accordion-btn-icon-transform)}.accordion-item[open]:last-of-type>.accordion-header{border-end-end-radius:0;border-end-start-radius:0}.accordion-body{padding:var(--bs-accordion-body-padding-y,var(--bs-accordion-padding-y)) var(--bs-accordion-body-padding-x,var(--bs-accordion-padding-x))}.accordion-flush>.accordion-item{border-inline:0;border-radius:0}.accordion-flush>.accordion-item:first-child{border-block-start:0}.accordion-flush>.accordion-item:last-child{border-block-end:0}.accordion-flush>.accordion-item>.accordion-header,.accordion-flush>.accordion-item>.accordion-body{border-radius:0}.alert{--bs-alert-gap:var(--bs-spacer-3);--bs-alert-bg:var(--bs-theme-bg-subtle,var(--bs-bg-1));--bs-alert-padding-x:var(--bs-spacer);--bs-alert-padding-y:var(--bs-spacer);--bs-alert-color:var(--bs-theme-fg,inherit);--bs-alert-border-color:var(--bs-theme-border,var(--bs-border-color));--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-radius-5);--bs-alert-link-color:inherit;--bs-hr-border-color:var(--bs-theme-border,var(--bs-border-color));gap:var(--bs-alert-gap);padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius);align-items:start;display:flex}.alert>p{margin-bottom:0}.alert-heading{color:inherit}.alert-link{font-weight:var(--bs-font-weight-semibold);color:var(--bs-alert-link-color)}.avatar{--bs-avatar-size:2.5rem;--bs-avatar-border-radius:50%;--bs-avatar-border-width:2px;--bs-avatar-border-color:var(--bs-bg-body);--bs-avatar-bg:var(--bs-bg-2);--bs-avatar-color:var(--bs-fg-body);--bs-avatar-status-size:.75rem;--bs-avatar-status-border-width:2px;--bs-avatar-status-border-color:var(--bs-bg-body);--bs-avatar-stack-spacing:-.3;--bs-avatar-stack-transition:transform .2s ease-in-out;width:var(--bs-avatar-size);height:var(--bs-avatar-size);font-size:calc(var(--bs-avatar-size) * .4);font-weight:var(--bs-avatar-font-weight,var(--bs-font-weight-medium));color:var(--bs-theme-contrast,var(--bs-avatar-color));text-transform:uppercase;vertical-align:middle;background-color:var(--bs-theme-bg,var(--bs-avatar-bg));border-radius:var(--bs-avatar-border-radius);justify-content:center;align-items:center;line-height:1;display:inline-flex;position:relative}.avatar>.avatar-img{object-fit:cover;width:100%;height:100%}.avatar-subtle{color:var(--bs-theme-fg,var(--bs-avatar-color));background-color:var(--bs-theme-bg-subtle,var(--bs-avatar-bg))}.avatar-img{border-radius:var(--bs-avatar-border-radius,50%)}.avatar-status{right:calc(var(--bs-avatar-status-border-width) * -1);bottom:calc(var(--bs-avatar-status-border-width) * -1);width:var(--bs-avatar-status-size);height:var(--bs-avatar-status-size);background-color:var(--bs-gray-400);border:var(--bs-avatar-status-border-width) solid var(--bs-avatar-status-border-color);border-radius:50%;position:absolute}.avatar-status.status-online{background-color:var(--bs-green-500)}.avatar-status.status-offline{background-color:var(--bs-gray-400);border-radius:20%}.avatar-status.status-busy{background-color:var(--bs-red-500);border-radius:20%}.avatar-status.status-away{background-color:var(--bs-yellow-500)}.avatar-stack{flex-direction:row-reverse;display:inline-flex}.avatar-stack .avatar{margin-left:calc(var(--bs-avatar-size) * var(--bs-avatar-stack-spacing));border:var(--bs-avatar-border-width) solid var(--bs-avatar-border-color);transition:var(--bs-avatar-stack-transition);mask-image:none}@media (prefers-reduced-motion:reduce){.avatar-stack .avatar{transition:none}}.avatar-stack .avatar:last-child{margin-left:0}.avatar-stack .avatar:hover{z-index:1;transform:translateY(-2px)}.avatar-xs,.avatar-stack-xs>.avatar{--bs-avatar-size:1.5rem;--bs-avatar-status-size:.625rem}.avatar-sm,.avatar-stack-sm>.avatar{--bs-avatar-size:2rem}.avatar-lg,.avatar-stack-lg>.avatar{--bs-avatar-size:3rem;--bs-avatar-status-size:1rem;--bs-avatar-border-width:3px}.avatar-xl,.avatar-stack-xl>.avatar{--bs-avatar-size:4rem;--bs-avatar-status-size:1.25rem;--bs-avatar-border-width:4px}.badge{--bs-badge-padding-x:.625em;--bs-badge-padding-y:.25em;--bs-badge-font-size:clamp(12px, .75em, .75em);--bs-badge-font-weight:var(--bs-font-weight-semibold);--bs-badge-color:inherit;--bs-badge-bg:var(--bs-bg-2);--bs-badge-border-width:var(--bs-border-width);--bs-badge-border-color:transparent;--bs-badge-border-radius:var(--bs-radius-7);min-height:1.375rem;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);color:var(--bs-theme-contrast,var(--bs-badge-color));text-align:center;white-space:nowrap;vertical-align:baseline;background-color:var(--bs-theme-bg,var(--bs-badge-bg));border:var(--bs-badge-border-width) solid var(--bs-badge-border-color);border-radius:var(--bs-badge-border-radius);justify-content:center;align-items:center;line-height:1;display:inline-flex}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-subtle{--bs-badge-color:var(--bs-theme-fg);--bs-badge-bg:var(--bs-theme-bg-subtle);--bs-badge-border-color:transparent;color:var(--bs-badge-color);background-color:var(--bs-badge-bg);border-color:var(--bs-badge-border-color)}.badge-outline{--bs-badge-color:var(--bs-theme-fg);--bs-badge-bg:transparent;--bs-badge-border-color:var(--bs-theme-border);color:var(--bs-badge-color);background-color:var(--bs-badge-bg);border-color:var(--bs-badge-border-color)}.breadcrumb{--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-font-size:inherit;--bs-breadcrumb-bg:transparent;--bs-breadcrumb-border-radius:var(--bs-radius-5);--bs-breadcrumb-divider-color:var(--bs-fg-4);--bs-breadcrumb-divider-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 16'%3e%3cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M2 2l4 6-4 6'/%3e%3c/svg%3e");--bs-breadcrumb-divider-width:.375rem;--bs-breadcrumb-divider-height:.75rem;--bs-breadcrumb-link-padding-x:.75rem;--bs-breadcrumb-link-padding-y:.25rem;--bs-breadcrumb-link-color:var(--bs-fg-3);--bs-breadcrumb-link-hover-color:var(--bs-fg-2);--bs-breadcrumb-link-hover-bg:var(--bs-bg-1);--bs-breadcrumb-link-active-color:var(--bs-fg-1);--bs-breadcrumb-link-border-radius:var(--bs-radius-7);padding:var(--bs-breadcrumb-padding-y,0) var(--bs-breadcrumb-padding-x,0);font-size:var(--bs-breadcrumb-font-size);background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius);flex-wrap:wrap;align-items:center;list-style:none;display:flex}.breadcrumb-item{display:flex}.breadcrumb-divider{margin-inline:calc(var(--bs-breadcrumb-link-padding-x) / 4);color:var(--bs-breadcrumb-divider-color)}.breadcrumb-divider:empty:before{width:var(--bs-breadcrumb-divider-width);height:var(--bs-breadcrumb-divider-height);content:"";mask-image:var(--bs-breadcrumb-divider-icon);background-color:currentColor;display:block;mask-position:50%;mask-size:contain;mask-repeat:no-repeat}.breadcrumb-link{min-height:2.25rem;padding:var(--bs-breadcrumb-link-padding-y) var(--bs-breadcrumb-link-padding-x);color:var(--bs-breadcrumb-link-color);border-radius:var(--bs-breadcrumb-link-border-radius);justify-content:center;align-items:center;text-decoration:none;transition:text-decoration-color .1s ease-in-out;display:flex;position:relative}@media (prefers-reduced-motion:reduce){.breadcrumb-link{transition:none}}.breadcrumb-link:hover{z-index:2;color:var(--bs-breadcrumb-link-hover-color);background-color:var(--bs-breadcrumb-link-hover-bg)}.breadcrumb-link.active{color:var(--bs-breadcrumb-link-active-color)}.chip{--bs-chip-height:1.75rem;--bs-chip-padding-x:.625rem;--bs-chip-gap:.3125rem;--bs-chip-border-radius:var(--bs-radius-pill);--bs-chip-img-size:1.25rem;--bs-chip-icon-size:1rem;--bs-chip-dismiss-size:1rem;--bs-chip-dismiss-opacity:.65;--bs-chip-dismiss-hover-opacity:1;--bs-chip-color:var(--bs-theme-fg,var(--bs-fg-body));--bs-chip-bg:var(--bs-theme-bg-subtle,var(--bs-bg-2));--bs-chip-border-color:transparent;--bs-chip-selected-color:var(--bs-theme-contrast,var(--bs-primary-contrast));--bs-chip-selected-bg:var(--bs-theme-bg,var(--bs-primary-bg));--bs-chip-selected-border-color:var(--bs-theme-bg,var(--bs-primary-bg));gap:var(--bs-chip-gap);height:var(--bs-chip-height);padding-inline:var(--bs-chip-padding-x);font-size:var(--bs-chip-font-size,var(--bs-font-size-sm));font-weight:var(--bs-chip-font-weight,var(--bs-font-weight-base));line-height:var(--bs-chip-line-height,1.25rem);color:var(--bs-chip-color);white-space:nowrap;vertical-align:middle;cursor:pointer;background-color:var(--bs-chip-bg);border:var(--bs-border-width) solid var(--bs-chip-border-color);border-radius:var(--bs-chip-border-radius);align-items:center;text-decoration:none;display:inline-flex}.chip:hover{--bs-chip-bg:var(--bs-theme-bg-muted,var(--bs-bg-3))}.chip:focus-visible{outline:0}.chip.active{--bs-chip-color:var(--bs-chip-selected-color);--bs-chip-bg:var(--bs-chip-selected-bg);--bs-chip-border-color:var(--bs-chip-selected-border-color)}.chip.active:hover{--bs-chip-bg:var(--bs-chip-selected-bg);opacity:.9}.chip.disabled,.chip:disabled{pointer-events:none;opacity:.65}.chip-img{width:var(--bs-chip-img-size);height:var(--bs-chip-img-size);border-radius:50%}.chip-img:first-child{margin-inline-start:-.375rem}.chip-icon{flex-shrink:0;justify-content:center;align-items:center;margin-inline-start:calc(var(--bs-chip-gap) * -.25);display:flex}.chip-icon>svg{width:var(--bs-chip-icon-size);height:var(--bs-chip-icon-size);display:block}.chip-icon>img{width:var(--bs-chip-icon-size);height:var(--bs-chip-icon-size);object-fit:cover;border-radius:50%}.chip-dismiss{width:var(--bs-chip-min-height);height:var(--bs-chip-min-height);color:inherit;cursor:pointer;opacity:var(--bs-chip-dismiss-opacity);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;margin-inline-end:calc(var(--bs-chip-padding-x) * -.25);padding:0;display:flex}.chip-dismiss:hover{opacity:var(--bs-chip-dismiss-hover-opacity)}.chip-dismiss:focus-visible{opacity:1;outline:0;outline:var(--bs-focus-ring)}.chip-dismiss>svg{width:var(--bs-chip-dismiss-size);height:var(--bs-chip-dismiss-size);display:block}.card{--bs-card-spacer-y:var(--bs-spacer-5);--bs-card-spacer-x:var(--bs-spacer-5);--bs-card-subtitle-color:inherit;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-radius-7);--bs-card-box-shadow:none;--bs-card-inner-border-radius:calc(var(--bs-radius-7) - var(--bs-border-width));--bs-card-cap-padding-y:var(--bs-spacer-3);--bs-card-cap-padding-x:var(--bs-spacer);--bs-card-cap-bg:var(--bs-bg-1);--bs-card-cap-color:inherit;--bs-card-height:auto;--bs-card-color:inherit;--bs-card-bg:var(--bs-bg-body);--bs-card-img-overlay-padding:var(--bs-card-spacer-y);--bs-card-group-margin:.75rem;--bs-card-body-gap:calc(var(--bs-card-spacer-y) * .5);min-width:0;height:var(--bs-card-height);color:var(--bs-fg-body);word-wrap:break-word;background-color:var(--bs-card-bg);border-radius:var(--bs-card-border-radius);box-shadow:var(--bs-card-box-shadow);flex-direction:column;display:flex;position:relative}.card>hr{margin-inline:0}.card-body{gap:var(--bs-card-body-gap);padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color);border:solid var(--bs-theme-bg,var(--bs-card-border-color));border-width:0 var(--bs-card-border-width);flex-direction:column;flex:auto;align-items:flex-start;display:flex}.card-body>*{margin-block:0}.card-body,.card-list{border:solid var(--bs-theme-bg,var(--bs-card-border-color));border-width:0 var(--bs-card-border-width)}.card-body:first-child,.card-list:first-child{border-top-width:var(--bs-card-border-width);border-start-start-radius:var(--bs-card-border-radius);border-start-end-radius:var(--bs-card-border-radius)}.card-body:last-child,.card-list:last-child{border-bottom-width:var(--bs-card-border-width);border-end-end-radius:var(--bs-card-border-radius);border-end-start-radius:var(--bs-card-border-radius)}.card-body:not(:first-child,:last-child),.card-list:not(:first-child,:last-child){border-block-end-width:var(--bs-card-border-width)}.card-title,.card-subtitle,.card-text{align-self:stretch}.card-subtitle{margin-top:calc(var(--bs-card-body-gap) * -.5)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-theme-contrast,var(--bs-card-cap-color));background-color:var(--bs-theme-bg,var(--bs-card-cap-bg));border:var(--bs-card-border-width) solid var(--bs-theme-bg,var(--bs-card-border-color));margin-bottom:0}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-theme-bg,var(--bs-card-cap-bg));border:var(--bs-card-border-width) solid var(--bs-theme-bg,var(--bs-card-border-color))}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-translucent{background-color:color-mix(in oklch, var(--bs-card-bg) 80%, transparent);backdrop-filter:blur(5px)saturate(180%)}.card-translucent .card-header,.card-translucent .card-footer{background-color:color-mix(in oklch, var(--bs-card-cap-bg) 60%, transparent)}.card-subtle{border-color:var(--bs-theme-border,var(--bs-card-border-color))}.card-subtle .card-header,.card-subtle .card-footer{color:var(--bs-theme-fg-emphasis,currentcolor);background-color:var(--bs-theme-bg-subtle,var(--bs-card-cap-bg));border-color:var(--bs-theme-border,var(--bs-card-border-color))}.card-subtle .card-body,.card-subtle .card-list{border-color:var(--bs-theme-border,var(--bs-card-border-color))}.nav.card-header-tabs{margin-inline:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));border-block-end:0}.nav.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-block-end-color:var(--bs-card-bg)}.card-img-overlay{padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius);position:absolute;inset:0}.card-img,.card-img-top,.card-img-bottom{outline:var(--bs-card-border-width) solid var(--bs-card-border-color);outline-offset:calc(var(--bs-card-border-width) * -1);width:100%}.card-img,.card-img-top{border-start-start-radius:var(--bs-card-inner-border-radius);border-start-end-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-end-end-radius:var(--bs-card-inner-border-radius);border-end-start-radius:var(--bs-card-inner-border-radius)}.card-row{flex-direction:row}.card-row .card-body,.card-row .card-list{border-width:var(--bs-card-border-width) 0;border-radius:0}.card-row .card-body:first-child,.card-row .card-list:first-child{border-inline-start-width:var(--bs-card-border-width);border-start-start-radius:var(--bs-card-inner-border-radius);border-end-start-radius:var(--bs-card-inner-border-radius)}.card-row .card-body:last-child,.card-row .card-list:last-child{border-inline-end-width:var(--bs-card-border-width);border-start-end-radius:var(--bs-card-inner-border-radius);border-end-end-radius:var(--bs-card-inner-border-radius)}.card-row .card-body:not(:first-child,:last-child),.card-row .card-list:not(:first-child,:last-child){border-inline-end-width:var(--bs-card-border-width)}.card-img-start{border-start-start-radius:var(--bs-card-inner-border-radius);border-end-start-radius:var(--bs-card-inner-border-radius)}.card-img-end{border-start-end-radius:var(--bs-card-inner-border-radius);border-end-end-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (width>=576px){.card-group{flex-flow:wrap;display:flex}.card-group>.card{flex:1 0 0;margin-bottom:0}.card-group>.card+.card{border-inline-start:0;margin-inline-start:0}.card-group>.card:not(:last-child){border-start-end-radius:0;border-end-end-radius:0}.card-group>.card:not(:last-child)>.card-img-top,.card-group>.card:not(:last-child)>.card-header,.card-group>.card:not(:last-child)>.card-body{border-start-end-radius:0}.card-group>.card:not(:last-child)>.card-img-bottom,.card-group>.card:not(:last-child)>.card-footer,.card-group>.card:not(:last-child)>.card-body{border-end-end-radius:0}.card-group>.card:not(:first-child){border-start-start-radius:0;border-end-start-radius:0}.card-group>.card:not(:first-child)>.card-img-top,.card-group>.card:not(:first-child)>.card-header,.card-group>.card:not(:first-child)>.card-body{border-start-start-radius:0}.card-group>.card:not(:first-child)>.card-img-bottom,.card-group>.card:not(:first-child)>.card-footer,.card-group>.card:not(:first-child)>.card-body{border-end-start-radius:0}}.carousel{--bs-carousel-gap:.75rem;--bs-carousel-indicator-bg:var(--bs-fg-3);--bs-carousel-indicator-width:.75rem;--bs-carousel-indicator-height:.75rem;--bs-carousel-indicator-spacer:.25rem;--bs-carousel-indicator-transition:opacity .6s ease, width .3s ease;--bs-carousel-indicator-progress-bg:var(--bs-carousel-indicator-bg);--bs-carousel-control-icon-width:1rem;--bs-carousel-control-prev-icon:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/></svg>");--bs-carousel-control-next-icon:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/></svg>");--bs-carousel-control-pause-icon:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M5.5 3.5A1.5 1.5 0 0 1 7 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5m5 0A1.5 1.5 0 0 1 12 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5'/></svg>");--bs-carousel-control-play-icon:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='m11.596 8.697-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393z'/></svg>");--bs-carousel-items:1;--bs-carousel-items-gap:0px;--bs-carousel-items-peek:0px;--bs-carousel-fade-duration:.6s;gap:var(--bs-carousel-gap);flex-direction:column;display:flex;position:relative}.carousel-inner{gap:var(--bs-carousel-items-gap);width:100%;padding-inline:var(--bs-carousel-items-peek);overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--bs-carousel-items-peek);scrollbar-width:none;display:flex;overflow-x:auto}.carousel-inner::-webkit-scrollbar{display:none}@media (prefers-reduced-motion:no-preference){.carousel-inner{scroll-behavior:smooth}}.carousel-item{flex:0 0 calc((100% - (var(--bs-carousel-items) - 1) * var(--bs-carousel-items-gap)) / var(--bs-carousel-items));scroll-snap-align:start;scroll-snap-stop:always;min-width:0}.carousel-center .carousel-item{scroll-snap-align:center}.carousel-auto .carousel-item{flex-basis:auto}.carousel-fade .carousel-inner{scroll-snap-type:none;display:grid;overflow:hidden}.carousel-fade .carousel-item{visibility:hidden;opacity:0;width:100%;transition:opacity var(--bs-carousel-fade-duration) ease, visibility 0s linear var(--bs-carousel-fade-duration);grid-area:1/1}@media (prefers-reduced-motion:reduce){.carousel-fade .carousel-item{transition:none}}.carousel-fade .carousel-item.active{visibility:visible;opacity:1;transition:opacity var(--bs-carousel-fade-duration) ease}@media (prefers-reduced-motion:reduce){.carousel-fade .carousel-item.active{transition:none}}.carousel-icon-prev,.carousel-icon-next,.carousel-icon-pause,.carousel-icon-play{width:var(--bs-carousel-control-icon-width);height:var(--bs-carousel-control-icon-width);background-color:currentColor;display:inline-block;mask-position:50%;mask-size:100% 100%;mask-repeat:no-repeat}.carousel-icon-prev{mask-image:var(--bs-carousel-control-prev-icon)}.carousel-icon-next{mask-image:var(--bs-carousel-control-next-icon)}[dir=rtl] .carousel-icon-prev,[dir=rtl] .carousel-icon-next{transform:scaleX(-1)}.carousel-icon-pause{mask-image:var(--bs-carousel-control-pause-icon)}.carousel-icon-play{mask-image:var(--bs-carousel-control-play-icon)}.carousel-control-play-pause .carousel-icon-play,.carousel-control-play-pause.paused .carousel-icon-pause{display:none}.carousel-control-play-pause.paused .carousel-icon-play{display:inline-block}.carousel-indicators{gap:var(--bs-carousel-indicator-spacer);justify-content:center;display:flex}.carousel-indicators [data-bs-target]{width:var(--bs-carousel-indicator-width);height:var(--bs-carousel-indicator-height);cursor:pointer;border:1px solid var(--bs-carousel-indicator-bg);border-radius:var(--bs-carousel-indicator-width);transition:var(--bs-carousel-indicator-transition);background-color:#0000;flex:0 auto;padding:0}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{width:calc(var(--bs-carousel-indicator-width) * 2.5);background-color:var(--bs-carousel-indicator-bg);border-color:var(--bs-carousel-indicator-bg)}@keyframes carousel-indicator-progress{0%{inline-size:0}to{inline-size:100%}}@media (prefers-reduced-motion:no-preference){.carousel-playing .carousel-indicators .active{background-color:#0000;position:relative;overflow:hidden}.carousel-playing .carousel-indicators .active:after{content:"";background-color:var(--bs-carousel-indicator-progress-bg);inline-size:0;animation:carousel-indicator-progress var(--bs-carousel-interval,5s) linear forwards;position:absolute;inset-block:0;inset-inline-start:0}}.carousel-overlay{--bs-carousel-indicator-bg:light-dark(var(--bs-white),var(--bs-black))}.carousel-overlay .carousel-overlay-controls{z-index:1;justify-content:space-between;align-items:center;display:flex;position:absolute;inset-block-end:1rem;inset-inline:1rem}[data-vc=calendar]{--bs-datepicker-padding:1rem;--bs-datepicker-bg:var(--bs-bg-body);--bs-datepicker-color:var(--bs-fg-body);--bs-datepicker-border-color:var(--bs-border-color-translucent);--bs-datepicker-border-width:var(--bs-border-width);--bs-datepicker-border-radius:var(--bs-radius-7);--bs-datepicker-box-shadow:var(--bs-box-shadow);--bs-datepicker-font-size:var(--bs-font-size-sm);--bs-datepicker-min-width:280px;--bs-datepicker-zindex:1000;--bs-datepicker-header-font-weight:600;--bs-datepicker-weekday-color:var(--bs-fg-3);--bs-datepicker-day-hover-bg:var(--bs-bg-1);--bs-datepicker-day-selected-bg:var(--bs-primary-bg);--bs-datepicker-day-selected-color:var(--bs-primary-contrast);--bs-datepicker-day-today-bg:var(--bs-bg-2);--bs-datepicker-day-today-color:var(--bs-fg-1);--bs-datepicker-day-disabled-color:var(--bs-fg-4);z-index:var(--bs-datepicker-zindex);box-sizing:border-box;min-width:var(--bs-datepicker-min-width);padding:var(--bs-datepicker-padding);font-family:var(--bs-font-sans-serif);font-size:var(--bs-datepicker-font-size);color:var(--bs-datepicker-color);color-scheme:light dark;background-color:var(--bs-datepicker-bg);border:var(--bs-datepicker-border-width) solid var(--bs-datepicker-border-color);box-shadow:var(--bs-datepicker-box-shadow);opacity:1;border-radius:var(--bs-datepicker-border-radius);flex-direction:column;display:flex;position:absolute}[data-vc=calendar][data-bs-theme=light]{color-scheme:light}[data-vc=calendar][data-bs-theme=dark]{color-scheme:dark}[data-vc=calendar] button:focus-visible{z-index:1;outline:var(--bs-focus-ring);position:relative}[data-vc-calendar-hidden]{pointer-events:none;opacity:0}[data-vc=calendar]:not([data-vc-input]){width:fit-content;box-shadow:none;border:0;padding:0;position:relative}[data-vc-position=bottom]{margin-block-start:.25rem}[data-vc-position=top]{margin-block-end:-.25rem}[data-vc-arrow]{width:2rem;height:2rem;color:var(--bs-datepicker-color);pointer-events:auto;cursor:pointer;border-radius:var(--bs-radius-5);background-color:#0000;border:0;display:block;position:relative}[data-vc-arrow]:before{content:"";background-color:var(--bs-datepicker-color);position:absolute;inset:.25rem;mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 16c-.3 0-.5-.1-.7-.3l-6-6c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l5.3 5.3 5.3-5.3c.4-.4 1-.4 1.4 0s.4 1 0 1.4l-6 6c-.2.2-.4.3-.7.3'/></svg>");mask-position:50%;mask-repeat:no-repeat}[data-vc-arrow]:hover{background-color:var(--bs-datepicker-day-hover-bg)}[data-vc-arrow=prev]:before{transform:rotate(90deg)}[data-vc-arrow=next]:before{transform:rotate(-90deg)}[data-vc=controls]{z-index:20;pointer-events:none;justify-content:space-between;align-items:center;padding-top:1rem;padding-left:1rem;padding-right:1rem;display:flex;position:absolute;top:0;left:0;right:0}[data-vc=grid]{flex-wrap:wrap;flex-grow:1;gap:1.75rem;display:flex}[data-vc=column]{flex-direction:column;flex-grow:1;min-width:240px;display:flex}[data-vc=header]{align-items:center;margin-bottom:.75rem;display:flex;position:relative}[data-vc-header=content]{white-space:pre-wrap;flex-grow:1;justify-content:center;align-items:center;display:inline-flex}[data-vc=month],[data-vc=year]{font-size:1rem;font-weight:var(--bs-datepicker-header-font-weight);color:var(--bs-datepicker-color);border-radius:var(--bs-radius-5);background-color:#0000;border:0;margin-inline:-.125rem;padding:.25rem .5rem}[data-vc=month]:disabled,[data-vc=year]:disabled{color:var(--bs-datepicker-day-disabled-color);pointer-events:none}[data-vc=month]:hover:not(:disabled),[data-vc=year]:hover:not(:disabled){background-color:var(--bs-datepicker-day-hover-bg)}[data-vc=content]{flex-direction:column;flex-grow:1;display:flex}[data-vc=months],[data-vc=years]{grid-template-columns:repeat(var(--bs-vc-columns,4), minmax(0, 1fr));flex-grow:1;align-items:center;gap:1rem .25rem;display:grid}[data-vc=years]{--bs-vc-columns:5}[data-vc-months-month],[data-vc-years-year]{height:2.5rem;color:var(--bs-datepicker-weekday-color);text-align:center;word-break:break-all;cursor:pointer;border-radius:var(--bs-radius-5);background-color:#0000;border:0;justify-content:center;align-items:center;padding:.25rem;font-size:.75rem;font-weight:600;line-height:1rem;display:flex}[data-vc-months-month]:disabled,[data-vc-years-year]:disabled{color:var(--bs-datepicker-day-disabled-color);pointer-events:none}[data-vc-months-month]:hover:not(:disabled),[data-vc-years-year]:hover:not(:disabled){background-color:var(--bs-datepicker-day-hover-bg)}[data-vc-months-month][data-vc-months-month-selected],[data-vc-months-month][data-vc-years-year-selected],[data-vc-years-year][data-vc-months-month-selected],[data-vc-years-year][data-vc-years-year-selected],[data-vc-months-month][data-vc-months-month-selected]:hover,[data-vc-months-month][data-vc-years-year-selected]:hover,[data-vc-years-year][data-vc-months-month-selected]:hover,[data-vc-years-year][data-vc-years-year-selected]:hover{color:var(--bs-datepicker-day-selected-color);background-color:var(--bs-datepicker-day-selected-bg)}[data-vc=week]{grid-template-columns:repeat(7,1fr);justify-items:center;margin-bottom:.5rem;display:grid}[data-vc-week-day]{width:100%;min-width:1.875rem;color:var(--bs-datepicker-weekday-color);background-color:#0000;border:0;justify-content:center;align-items:center;margin:0;padding:0;font-size:.75rem;font-weight:600;line-height:1rem;display:flex}button[data-vc-week-day]{cursor:pointer}[data-vc=dates]{pointer-events:none}[data-vc-dates=row]{grid-template-columns:repeat(7,1fr);place-items:center;width:100%;display:grid}[data-vc-date]{pointer-events:auto;justify-content:center;align-items:center;width:100%;padding-top:.125rem;padding-bottom:.125rem;display:flex;position:relative}[data-vc-date]:not(:has([data-vc-date-btn])),[data-vc-date][data-vc-date-disabled],[data-vc-date][data-vc-date-disabled] [data-vc-date-btn]{pointer-events:none}[data-vc-date-btn]{width:100%;min-width:1.875rem;height:100%;min-height:1.875rem;color:var(--bs-datepicker-color);cursor:pointer;border-radius:var(--bs-radius-5);background-color:#0000;border:0;justify-content:center;align-items:center;padding:0;font-size:.75rem;font-weight:400;line-height:1rem;display:flex}[data-vc-date-btn]:hover{background-color:var(--bs-datepicker-day-hover-bg)}[data-vc-date-today] [data-vc-date-btn]{color:var(--bs-datepicker-day-today-color);background-color:var(--bs-datepicker-day-today-bg);font-weight:600}[data-vc-date-month=next] [data-vc-date-btn],[data-vc-date-month=prev] [data-vc-date-btn]{opacity:.5}[data-vc-date-disabled] [data-vc-date-btn]{color:var(--bs-datepicker-day-disabled-color)}[data-vc-date-hover] [data-vc-date-btn]{background-color:var(--bs-datepicker-day-hover-bg);border-radius:0}[data-vc-date-hover=first] [data-vc-date-btn]{border-start-start-radius:var(--bs-radius-5);border-end-start-radius:var(--bs-radius-5)}[data-vc-date-hover=last] [data-vc-date-btn]{border-start-end-radius:var(--bs-radius-5);border-end-end-radius:var(--bs-radius-5)}[data-vc-date-hover=first-and-last] [data-vc-date-btn]{border-radius:var(--bs-radius-5)}[data-vc-date-selected=middle] [data-vc-date-btn]{opacity:.8;border-radius:0}[data-vc-date-selected] [data-vc-date-btn]{color:var(--bs-datepicker-day-selected-color);background-color:var(--bs-datepicker-day-selected-bg)}[data-vc-date-selected=first] [data-vc-date-btn]{border-top-left-radius:var(--bs-radius-5);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--bs-radius-5)}[data-vc-date-selected=last] [data-vc-date-btn]{border-top-left-radius:0;border-top-right-radius:var(--bs-radius-5);border-bottom-right-radius:var(--bs-radius-5);border-bottom-left-radius:0}[data-vc-date-selected=first-and-last] [data-vc-date-btn]{border-radius:var(--bs-radius-5)}.dialog-open{overflow:hidden}.dialog{--bs-dialog-padding:1rem;--bs-dialog-width:500px;--bs-dialog-margin:1.75rem;--bs-dialog-color:var(--bs-fg-body);--bs-dialog-bg:var(--bs-bg-body);--bs-dialog-border-color:var(--bs-border-color-translucent);--bs-dialog-border-width:var(--bs-border-width);--bs-dialog-border-radius:var(--bs-radius-7);--bs-dialog-box-shadow:var(--bs-box-shadow-lg);--bs-dialog-transition-duration:.3s;--bs-dialog-transition-timing:cubic-bezier(.22, 1, .36, 1);--bs-dialog-backdrop-bg:#00000080;--bs-dialog-backdrop-blur:8px;--bs-dialog-header-padding:1rem;--bs-dialog-header-border-color:var(--bs-border-color);--bs-dialog-header-border-width:var(--bs-border-width);--bs-dialog-footer-padding:1rem;--bs-dialog-footer-border-color:var(--bs-border-color);--bs-dialog-footer-border-width:var(--bs-border-width);--bs-dialog-footer-gap:.5rem;width:var(--bs-dialog-width);max-width:calc(100% - var(--bs-dialog-margin) * 2);max-height:calc(100% - var(--bs-dialog-margin) * 2);color:var(--bs-dialog-color);visibility:hidden;background-color:var(--bs-dialog-bg);border:var(--bs-dialog-border-width) solid var(--bs-dialog-border-color);border-radius:var(--bs-dialog-border-radius);box-shadow:var(--bs-dialog-box-shadow);background-clip:padding-box;flex-direction:column;margin:auto;padding:0;display:flex;overflow:visible}.dialog:not(.dialog-instant){opacity:0;transition:opacity var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), transform var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), visibility 0s var(--bs-dialog-transition-duration)}@media (prefers-reduced-motion:reduce){.dialog:not(.dialog-instant){transition:none}}.dialog:not(.dialog-instant).dialog-slide-down{transform:translateY(-3rem)}.dialog:not(.dialog-instant).dialog-slide-up{transform:translateY(3rem)}.dialog:not(.dialog-instant)[open]:not(.hiding){visibility:visible;opacity:1;transition:opacity var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), transform var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), visibility 0s;overflow:visible}@media (prefers-reduced-motion:reduce){.dialog:not(.dialog-instant)[open]:not(.hiding){transition:none}}.dialog:not(.dialog-instant)[open]:not(.hiding){transform:none}.dialog:not(.dialog-instant)[open].dialog-static:not(.hiding){transform:scale(1.02)}.dialog:not(.dialog-instant)::backdrop{background-color:var(--bs-dialog-backdrop-bg);backdrop-filter:blur(var(--bs-dialog-backdrop-blur));transition:background-color var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), backdrop-filter var(--bs-dialog-transition-duration) var(--bs-dialog-transition-timing), display var(--bs-dialog-transition-duration) allow-discrete, overlay var(--bs-dialog-transition-duration) allow-discrete}@media (prefers-reduced-motion:reduce){.dialog:not(.dialog-instant)::backdrop{transition:none}}.dialog:not(.dialog-instant).hiding::backdrop{backdrop-filter:blur();background-color:#0000}.dialog.dialog-instant::backdrop{background-color:var(--bs-dialog-backdrop-bg);backdrop-filter:blur(var(--bs-dialog-backdrop-blur))}.dialog[open]:not(.hiding){visibility:visible;opacity:1;overflow:visible;transform:none}.dialog.dialog-nonmodal{z-index:1055;margin-inline:0;position:fixed;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%)}.dialog.dialog-scrollable[open]{max-height:calc(100% - var(--bs-dialog-margin) * 2)}.dialog.dialog-scrollable[open] .dialog-body{overflow-y:auto}@starting-style{.dialog:not(.dialog-instant)::backdrop{backdrop-filter:blur();background-color:#0000}.dialog.dialog-swap-in:not(.dialog-instant)::backdrop{background-color:var(--bs-dialog-backdrop-bg);backdrop-filter:blur(var(--bs-dialog-backdrop-blur))}}.dialog-sm{--bs-dialog-width:280px}.dialog-lg{--bs-dialog-width:800px}.dialog-xl{--bs-dialog-width:1140px}.dialog-fullscreen{--bs-dialog-width:100vw;--bs-dialog-margin:0;--bs-dialog-border-radius:0;width:100%;max-width:none;height:100%;max-height:none}@media (width<576px){.sm-down\:dialog-fullscreen{--bs-dialog-width:100vw;--bs-dialog-margin:0;--bs-dialog-border-radius:0;width:100%;max-width:none;height:100%;max-height:none}}@media (width<768px){.md-down\:dialog-fullscreen{--bs-dialog-width:100vw;--bs-dialog-margin:0;--bs-dialog-border-radius:0;width:100%;max-width:none;height:100%;max-height:none}}@media (width<1024px){.lg-down\:dialog-fullscreen{--bs-dialog-width:100vw;--bs-dialog-margin:0;--bs-dialog-border-radius:0;width:100%;max-width:none;height:100%;max-height:none}}@media (width<1280px){.xl-down\:dialog-fullscreen{--bs-dialog-width:100vw;--bs-dialog-margin:0;--bs-dialog-border-radius:0;width:100%;max-width:none;height:100%;max-height:none}}@media (width<1536px){.\32 xl-down\:dialog-fullscreen{--bs-dialog-width:100vw;--bs-dialog-margin:0;--bs-dialog-border-radius:0;width:100%;max-width:none;height:100%;max-height:none}}.dialog-header{padding:var(--bs-dialog-header-padding);border-block-end:var(--bs-dialog-header-border-width) solid var(--bs-dialog-header-border-color);flex-shrink:0;align-items:center;display:flex}.dialog-header .btn-close{margin-inline-start:auto}.dialog-title{line-height:1.5;font-size:var(--bs-font-size-md);margin-bottom:0}.dialog-body{padding:var(--bs-dialog-padding);flex:auto;position:relative}.dialog-footer{gap:var(--bs-dialog-footer-gap);padding:var(--bs-dialog-footer-padding);border-block-start:var(--bs-dialog-footer-border-width) solid var(--bs-dialog-footer-border-color);flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;display:flex}.menu{--bs-menu-zindex:1000;--bs-menu-gap:.125rem;--bs-menu-min-width:10rem;--bs-menu-padding-x:.25rem;--bs-menu-padding-y:.25rem;--bs-menu-spacer:.125rem;--bs-menu-font-size:var(--bs-font-size-sm);--bs-menu-color:var(--bs-fg-body);--bs-menu-bg:var(--bs-bg-body);--bs-menu-box-shadow:var(--bs-box-shadow);--bs-menu-divider-bg:var(--bs-border-color-translucent);--bs-menu-divider-margin-y:.125rem;--bs-menu-divider-margin-x:.25rem;--bs-menu-item-color:var(--bs-menu-color,var(--bs-fg-body));--bs-menu-item-hover-color:var(--bs-menu-color,var(--bs-fg-body));--bs-menu-item-hover-bg:var(--bs-bg-1);--bs-menu-item-active-color:var(--bs-primary-contrast);--bs-menu-item-active-bg:var(--bs-primary-bg);--bs-menu-item-disabled-color:var(--bs-fg-3);--bs-menu-item-gap:.5rem;--bs-menu-item-padding-x:.75rem;--bs-menu-item-padding-y:.25rem;--bs-menu-item-border-radius:var(--bs-radius-5);--bs-menu-icon-size:1rem;--bs-menu-description-font-size:var(--bs-font-size-xs);--bs-menu-check-color:currentcolor;--bs-menu-header-color:var(--bs-fg-3);--bs-menu-header-padding-x:.75rem;--bs-menu-header-padding-y:.25rem;--bs-menu-transition-duration:.15s;--bs-menu-transition-timing:cubic-bezier(.22, 1, .36, 1);z-index:var(--bs-menu-zindex);gap:var(--bs-menu-gap);min-width:var(--bs-menu-min-width);max-height:var(--bs-menu-max-height,none);padding:var(--bs-menu-padding-y) var(--bs-menu-padding-x);overflow-y:var(--bs-menu-overflow-y,initial);overscroll-behavior:contain;font-size:var(--bs-menu-font-size);color:var(--bs-menu-color);text-align:start;background-color:var(--bs-menu-bg);border:var(--bs-menu-border-width,var(--bs-border-width)) solid var(--bs-menu-border-color,var(--bs-border-color-translucent));border-radius:var(--bs-menu-border-radius,var(--bs-radius-7));box-shadow:var(--bs-menu-box-shadow);opacity:0;transform-origin:top start;background-clip:padding-box;flex-direction:column;margin:0;list-style:none;display:none;position:absolute;transform:scale(.95)}.menu[data-bs-placement^=top]{transform-origin:bottom start}.menu[data-bs-placement=bottom-end]{transform-origin:top end}.menu[data-bs-placement=top-end]{transform-origin:bottom end}.menu[data-bs-placement^=left]{transform-origin:top end}.menu{transition:opacity var(--bs-menu-transition-duration) var(--bs-menu-transition-timing), transform var(--bs-menu-transition-duration) var(--bs-menu-transition-timing), display var(--bs-menu-transition-duration) allow-discrete}@media (prefers-reduced-motion:reduce){.menu{transition:none}}.menu.show{opacity:1;display:flex;transform:none}@starting-style{.menu.show{opacity:0;transform:scale(.95)}}.menu-scrollable{--bs-menu-max-height:80dvh;--bs-menu-overflow-y:auto}.menu-translucent{--bs-menu-item-hover-bg-light:color-mix(in oklch, var(--bs-bg-1) 90%, transparent);--bs-menu-item-hover-bg-dark:color-mix(in oklch, var(--bs-bg-1) 80%, transparent);--bs-menu-item-active-bg-light:color-mix(in oklch, var(--bs-primary-bg) 80%, transparent);--bs-menu-item-active-bg-dark:color-mix(in oklch, var(--bs-primary-bg) 70%, transparent);--bs-menu-item-active-bg:light-dark(var(--bs-menu-item-active-bg-light),var(--bs-menu-item-active-bg-dark));--bs-menu-item-hover-bg:light-dark(var(--bs-menu-item-hover-bg-light),var(--bs-menu-item-hover-bg-dark));background-color:color-mix(in oklch, var(--bs-menu-bg) 80%, transparent);backdrop-filter:blur(5px)saturate(180%)}.menu-divider{height:0;margin:var(--bs-menu-divider-margin-y) var(--bs-menu-divider-margin-x);border-block-start:1px solid var(--bs-menu-divider-bg);opacity:1;overflow:hidden}.menu-item{gap:var(--bs-menu-item-gap);width:100%;padding:var(--bs-menu-item-padding-y) var(--bs-menu-item-padding-x);font-weight:var(--bs-menu-item-font-weight,var(--bs-font-weight-normal));color:var(--bs-theme-fg,var(--bs-menu-item-color));text-align:inherit;white-space:nowrap;cursor:pointer;border-radius:var(--bs-menu-item-border-radius,0);background-color:#0000;border:0;outline:0;align-items:center;text-decoration:none;display:flex}.menu-item:hover,.menu-item:focus{color:var(--bs-theme-fg-emphasis,var(--bs-menu-item-hover-color));background-color:var(--bs-theme-bg-subtle,var(--bs-menu-item-hover-bg))}.menu-item.active,.menu-item:active{color:var(--bs-theme-contrast,var(--bs-menu-item-active-color));background-color:var(--bs-theme-bg,var(--bs-menu-item-active-bg))}.menu-item.active .menu-item-icon,.menu-item:active .menu-item-icon{color:inherit!important}.menu-item.selected{font-weight:600}.menu-item.disabled,.menu-item:disabled{color:var(--bs-menu-item-disabled-color);pointer-events:none;background-color:#0000;background-image:none}.menu-item-icon{width:var(--bs-menu-icon-size);flex-shrink:0;align-self:flex-start;height:auto;margin-top:.125rem}.menu-item-content{flex-direction:column;flex:1;min-width:fit-content;display:flex}.menu-item-description{font-size:var(--bs-menu-description-font-size);font-weight:var(--bs-font-weight-normal);color:color-mix(in oklch, currentcolor 65%, transparent)}.menu-item-check{color:var(--bs-menu-check-color);visibility:hidden;flex-shrink:0;align-self:flex-start;margin-block-start:.125rem;margin-inline-start:auto}.selected>.menu-item-check{visibility:visible}.menu-header{padding:var(--bs-menu-header-padding-y) var(--bs-menu-header-padding-x);font-size:var(--bs-font-size-sm);color:var(--bs-menu-header-color);white-space:nowrap;margin-bottom:0;display:block}.menu-text{padding:var(--bs-menu-item-padding-y) var(--bs-menu-item-padding-x);color:var(--bs-fg-2);display:block}.submenu{position:relative}.submenu>.menu-item{justify-content:space-between;align-items:center;display:flex}.submenu>.menu-item:after{content:"";border:.125em solid;border-width:0 .125em .125em 0;flex-shrink:0;width:.375em;height:.375em;margin-inline-start:auto;display:inline-block;transform:rotate(-45deg)}[dir=rtl] .submenu>.menu-item:after{transform:rotate(135deg)}.submenu>.menu{margin-top:calc(-1 * var(--bs-menu-padding-y));top:0}.submenu:hover>.menu-item,.submenu:focus-within>.menu-item,.submenu.show>.menu-item{color:var(--bs-menu-item-hover-color);background-color:var(--bs-menu-item-hover-bg)}.list-group{--bs-list-group-color:var(--bs-fg-body);--bs-list-group-bg:var(--bs-bg-body);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-radius-5);--bs-list-group-item-padding-x:var(--bs-spacer);--bs-list-group-item-padding-y:var(--bs-spacer-2);--bs-list-group-action-color:var(--bs-fg-2);--bs-list-group-action-hover-color:var(--bs-fg-1);--bs-list-group-action-hover-bg:var(--bs-bg-1);--bs-list-group-action-active-color:var(--bs-fg-body);--bs-list-group-action-active-bg:var(--bs-bg-2);--bs-list-group-disabled-color:var(--bs-fg-3);--bs-list-group-disabled-bg:var(--bs-bg-body);--bs-list-group-active-color:var(--bs-primary-contrast);--bs-list-group-active-bg:var(--bs-primary-bg);--bs-list-group-active-border-color:var(--bs-primary-bg);border-radius:var(--bs-list-group-border-radius);flex-direction:column;margin-bottom:0;padding-inline-start:0;display:flex}.list-group-numbered{counter-reset:section;list-style-type:none}.list-group-numbered>.list-group-item:before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item{padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-theme-fg,var(--bs-list-group-color));background-color:var(--bs-theme-bg-subtle,var(--bs-list-group-bg));border:var(--bs-list-group-border-width) solid var(--bs-theme-border,var(--bs-list-group-border-color));display:block;position:relative}.list-group-item:first-child{border-start-start-radius:inherit;border-start-end-radius:inherit}.list-group-item:last-child{border-end-end-radius:inherit;border-end-start-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-block-start-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-block-start-width:var(--bs-list-group-border-width)}.list-group-item-action{width:100%;color:var(--bs-theme-fg,var(--bs-list-group-action-color));text-align:inherit;text-decoration:none}.list-group-item-action:not(.active):hover,.list-group-item-action:not(.active):focus{z-index:1;color:var(--bs-theme-fg-emphasis,var(--bs-list-group-action-hover-color));background-color:var(--bs-theme-bg-muted,var(--bs-list-group-action-hover-bg));text-decoration:none}.list-group-item-action:not(.active):active{color:var(--bs-theme-fg-emphasis,var(--bs-list-group-action-active-color));background-color:var(--bs-theme-bg-muted,var(--bs-list-group-action-active-bg))}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-start-end-radius:0;border-end-start-radius:var(--bs-list-group-border-radius)}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-start-end-radius:var(--bs-list-group-border-radius);border-end-start-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-block-start-width:var(--bs-list-group-border-width);border-inline-start-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{border-inline-start-width:var(--bs-list-group-border-width);margin-inline-start:calc(-1 * var(--bs-list-group-border-width))}@media (width>=576px){.sm\:list-group-horizontal{flex-direction:row}.sm\:list-group-horizontal>.list-group-item:first-child:not(:last-child){border-start-end-radius:0;border-end-start-radius:var(--bs-list-group-border-radius)}.sm\:list-group-horizontal>.list-group-item:last-child:not(:first-child){border-start-end-radius:var(--bs-list-group-border-radius);border-end-start-radius:0}.sm\:list-group-horizontal>.list-group-item.active{margin-top:0}.sm\:list-group-horizontal>.list-group-item+.list-group-item{border-block-start-width:var(--bs-list-group-border-width);border-inline-start-width:0}.sm\:list-group-horizontal>.list-group-item+.list-group-item.active{border-inline-start-width:var(--bs-list-group-border-width);margin-inline-start:calc(-1 * var(--bs-list-group-border-width))}}@media (width>=768px){.md\:list-group-horizontal{flex-direction:row}.md\:list-group-horizontal>.list-group-item:first-child:not(:last-child){border-start-end-radius:0;border-end-start-radius:var(--bs-list-group-border-radius)}.md\:list-group-horizontal>.list-group-item:last-child:not(:first-child){border-start-end-radius:var(--bs-list-group-border-radius);border-end-start-radius:0}.md\:list-group-horizontal>.list-group-item.active{margin-top:0}.md\:list-group-horizontal>.list-group-item+.list-group-item{border-block-start-width:var(--bs-list-group-border-width);border-inline-start-width:0}.md\:list-group-horizontal>.list-group-item+.list-group-item.active{border-inline-start-width:var(--bs-list-group-border-width);margin-inline-start:calc(-1 * var(--bs-list-group-border-width))}}@media (width>=1024px){.lg\:list-group-horizontal{flex-direction:row}.lg\:list-group-horizontal>.list-group-item:first-child:not(:last-child){border-start-end-radius:0;border-end-start-radius:var(--bs-list-group-border-radius)}.lg\:list-group-horizontal>.list-group-item:last-child:not(:first-child){border-start-end-radius:var(--bs-list-group-border-radius);border-end-start-radius:0}.lg\:list-group-horizontal>.list-group-item.active{margin-top:0}.lg\:list-group-horizontal>.list-group-item+.list-group-item{border-block-start-width:var(--bs-list-group-border-width);border-inline-start-width:0}.lg\:list-group-horizontal>.list-group-item+.list-group-item.active{border-inline-start-width:var(--bs-list-group-border-width);margin-inline-start:calc(-1 * var(--bs-list-group-border-width))}}@media (width>=1280px){.xl\:list-group-horizontal{flex-direction:row}.xl\:list-group-horizontal>.list-group-item:first-child:not(:last-child){border-start-end-radius:0;border-end-start-radius:var(--bs-list-group-border-radius)}.xl\:list-group-horizontal>.list-group-item:last-child:not(:first-child){border-start-end-radius:var(--bs-list-group-border-radius);border-end-start-radius:0}.xl\:list-group-horizontal>.list-group-item.active{margin-top:0}.xl\:list-group-horizontal>.list-group-item+.list-group-item{border-block-start-width:var(--bs-list-group-border-width);border-inline-start-width:0}.xl\:list-group-horizontal>.list-group-item+.list-group-item.active{border-inline-start-width:var(--bs-list-group-border-width);margin-inline-start:calc(-1 * var(--bs-list-group-border-width))}}@media (width>=1536px){.\32 xl\:list-group-horizontal{flex-direction:row}.\32 xl\:list-group-horizontal>.list-group-item:first-child:not(:last-child){border-start-end-radius:0;border-end-start-radius:var(--bs-list-group-border-radius)}.\32 xl\:list-group-horizontal>.list-group-item:last-child:not(:first-child){border-start-end-radius:var(--bs-list-group-border-radius);border-end-start-radius:0}.\32 xl\:list-group-horizontal>.list-group-item.active{margin-top:0}.\32 xl\:list-group-horizontal>.list-group-item+.list-group-item{border-block-start-width:var(--bs-list-group-border-width);border-inline-start-width:0}.\32 xl\:list-group-horizontal>.list-group-item+.list-group-item.active{border-inline-start-width:var(--bs-list-group-border-width);margin-inline-start:calc(-1 * var(--bs-list-group-border-width))}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-block-end-width:0}.nav{--bs-nav-gap:.125rem;--bs-nav-link-gap:.5rem;--bs-nav-link-align:center;--bs-nav-link-justify:center;--bs-nav-link-padding-x:.75rem;--bs-nav-link-padding-y:.375rem;--bs-nav-link-color:var(--bs-fg-2);--bs-nav-link-hover-color:var(--bs-fg-1);--bs-nav-link-hover-bg:var(--bs-bg-1);--bs-nav-link-active-color:var(--bs-fg-body);--bs-nav-link-active-bg:var(--bs-bg-2);--bs-nav-link-disabled-color:var(--bs-fg-4);--bs-nav-link-border-width:var(--bs-border-width);--bs-nav-link-transition-property:color, background-color, border-color;--bs-nav-link-transition-timing:.15s ease-in-out;--bs-nav-link-transition:var(--bs-nav-link-transition-property) var(--bs-nav-link-transition-timing);gap:var(--bs-nav-gap);flex-wrap:wrap;margin-bottom:0;padding-inline-start:0;list-style:none;display:flex}.nav-item{display:flex}.nav-link{gap:var(--bs-nav-link-gap);align-items:var(--bs-nav-link-align);justify-content:var(--bs-nav-link-justify);padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);white-space:nowrap;border:var(--bs-nav-link-border-width) solid transparent;border-radius:var(--bs-radius-5);transition:var(--bs-nav-link-transition);background:0 0;text-decoration:none;display:flex}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color);background-color:var(--bs-nav-link-hover-bg)}.nav-link:focus-visible{--bs-focus-ring-offset:1px;color:var(--bs-nav-link-hover-color);outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.nav-link.active,.nav-link:active{color:var(--bs-nav-link-active-color);background-color:var(--bs-nav-link-active-bg)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-radius-5);--bs-nav-tabs-link-hover-border-color:var(--bs-border-subtle);--bs-nav-tabs-link-active-color:var(--bs-fg-color);--bs-nav-tabs-link-active-bg:var(--bs-bg-body);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-bg-body);box-shadow:inset 0 calc(-1 * var(--bs-nav-tabs-border-width)) 0 var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{border:var(--bs-nav-tabs-border-width) solid transparent;border-bottom-color:var(--bs-nav-tabs-border-color);border-end-end-radius:0;border-end-start-radius:0}.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color);border-bottom-color:var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color);border-bottom-color:var(--bs-nav-tabs-link-active-bg)}.nav-tabs .menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-start-start-radius:0;border-start-end-radius:0}.nav-pills{--bs-nav-pills-bg:var(--bs-bg-1);--bs-nav-pills-padding:.25rem;--bs-nav-pills-border-radius:var(--bs-radius-9);--bs-nav-pills-link-active-color:var(--bs-primary-contrast);--bs-nav-pills-link-active-bg:var(--bs-primary-bg);--bs-nav-pills-link-border-radius:var(--bs-radius-9);padding:var(--bs-nav-pills-padding);background-color:var(--bs-nav-pills-bg);border-radius:var(--bs-nav-pills-border-radius);display:inline-flex}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-link-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg);background-image:var(--bs-gradient)}.nav-pills-vertical{flex-direction:column;align-items:stretch}.nav-pills-vertical .nav-item,.nav-pills-vertical .nav-link{width:100%}.nav-underline{--bs-nav-gap:1rem;--bs-nav-link-active-bg:transparent;--bs-nav-underline-border-width:.125rem;--bs-nav-underline-link-active-color:var(--bs-fg-color)}.nav-underline .nav-link{border:0;border-block-end:var(--bs-nav-underline-border-width) solid transparent;border-radius:0;padding-inline:0}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-block-end-color:currentColor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{color:var(--bs-nav-underline-link-active-color);border-block-end-color:currentColor;font-weight:700}.nav-fill>.nav-link,.nav-fill .nav-item{text-align:center;flex:auto}.nav-justified>.nav-link,.nav-justified .nav-item{text-align:center;flex-grow:1;flex-basis:0}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-overflow{flex-wrap:nowrap;min-width:0}.nav-pills.nav-overflow{display:flex}.navbar-nav.nav-overflow{flex:1 1 0}.nav-overflow-item{flex-shrink:0;margin-inline-start:auto}.nav-overflow [data-bs-nav-overflow=true]{display:none}.nav-overflow-keep{flex-shrink:0}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:.5rem;--bs-navbar-color:var(--bs-fg-2);--bs-navbar-hover-color:var(--bs-fg-1);--bs-navbar-disabled-color:var(--bs-fg-3);--bs-navbar-active-color:var(--bs-fg-body);--bs-navbar-brand-padding-y:.75rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:var(--bs-font-size-md);--bs-navbar-brand-font-weight:var(--bs-font-weight-medium);--bs-navbar-brand-color:var(--bs-fg-body);--bs-navbar-brand-hover-color:var(--bs-fg-body);--bs-navbar-nav-link-padding-x:.75rem;--bs-navbar-toggler-width:2rem;--bs-navbar-toggler-padding-y:.25rem;--bs-navbar-toggler-padding-x:.75rem;--bs-navbar-toggler-font-size:var(--bs-font-size-lg);--bs-navbar-toggler-border-color:color-mix(in oklch, var(--bs-fg-body) 15%, transparent);--bs-navbar-toggler-border-radius:var(--bs-radius-5);--bs-navbar-toggler-transition:box-shadow .15s ease-in-out;--bs-navbar-toggler-icon-size:1.25rem;--bs-navbar-toggler-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath stroke='black' stroke-linecap='round' stroke-width='1' d='M1 3.5h14M1 8h14M1 12.5h14'/%3e%3c/svg%3e");padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x);color:var(--bs-navbar-color,var(--bs-fg-body));background-color:var(--bs-navbar-bg,var(--bs-bg-body));flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex;position:relative;container-type:inline-size}.navbar>.\32 xl\:container,.navbar>.xl\:container,.navbar>.lg\:container,.navbar>.md\:container,.navbar>.sm\:container,.navbar>.container,.navbar>.container-fluid{flex-wrap:inherit;justify-content:space-between;align-items:center;display:flex}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);font-size:var(--bs-navbar-brand-font-size);font-weight:var(--bs-navbar-brand-font-weight);color:var(--bs-navbar-brand-color);white-space:nowrap;margin-inline-end:var(--bs-navbar-brand-margin-end);text-decoration:none}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-gap:.25rem;--bs-nav-link-gap:.5rem;--bs-nav-link-padding-x:.5rem;--bs-nav-link-padding-y:.375rem;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-border-width:var(--bs-border-width);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-hover-bg:transparent;--bs-nav-link-active-color:var(--bs-navbar-active-color);--bs-nav-link-active-bg:transparent;--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);gap:var(--bs-nav-gap);flex-direction:column;margin-bottom:0;padding-inline-start:0;list-style:none;display:flex}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color);border:var(--bs-nav-link-border-width) solid var(--bs-nav-link-border-color,transparent)}.navbar-text{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-toggler{--bs-btn-bg:transparent;--bs-btn-hover-bg:var(--bs-bg-2)}.navbar-toggler-icon{width:var(--bs-navbar-toggler-icon-size);height:var(--bs-navbar-toggler-icon-size);mask-image:var(--bs-navbar-toggler-icon);background-color:currentColor;display:inline-block;mask-position:50%;mask-size:contain;mask-repeat:no-repeat}.navbar-expand>.container,.navbar-expand>.container-fluid{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{--bs-nav-link-padding-x:var(--bs-navbar-nav-link-padding-x);flex-direction:row}.navbar-expand .navbar-toggler{display:none!important}.navbar-expand [class*=drawer]{z-index:auto;box-shadow:none;flex-grow:1;margin:0;padding:0;transition:none;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;display:flex!important;position:static!important;inset:auto!important;transform:none!important}.navbar-expand [class*=drawer] .drawer-header{display:none!important}.navbar-expand [class*=drawer] .drawer-body{flex-direction:row;flex-grow:1;align-items:center;padding:0;display:flex;overflow-y:visible}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}@container (width>=576px){.sm\:navbar-expand>.container,.sm\:navbar-expand>.container-fluid{flex-wrap:nowrap;justify-content:flex-start}.sm\:navbar-expand .navbar-nav{--bs-nav-link-padding-x:var(--bs-navbar-nav-link-padding-x);flex-direction:row}.sm\:navbar-expand .navbar-toggler{display:none!important}.sm\:navbar-expand [class*=drawer]{z-index:auto;box-shadow:none;flex-grow:1;margin:0;padding:0;transition:none;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;display:flex!important;position:static!important;inset:auto!important;transform:none!important}.sm\:navbar-expand [class*=drawer] .drawer-header{display:none!important}.sm\:navbar-expand [class*=drawer] .drawer-body{flex-direction:row;flex-grow:1;align-items:center;padding:0;display:flex;overflow-y:visible}}@container (width>=768px){.md\:navbar-expand>.container,.md\:navbar-expand>.container-fluid{flex-wrap:nowrap;justify-content:flex-start}.md\:navbar-expand .navbar-nav{--bs-nav-link-padding-x:var(--bs-navbar-nav-link-padding-x);flex-direction:row}.md\:navbar-expand .navbar-toggler{display:none!important}.md\:navbar-expand [class*=drawer]{z-index:auto;box-shadow:none;flex-grow:1;margin:0;padding:0;transition:none;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;display:flex!important;position:static!important;inset:auto!important;transform:none!important}.md\:navbar-expand [class*=drawer] .drawer-header{display:none!important}.md\:navbar-expand [class*=drawer] .drawer-body{flex-direction:row;flex-grow:1;align-items:center;padding:0;display:flex;overflow-y:visible}}@container (width>=1024px){.lg\:navbar-expand>.container,.lg\:navbar-expand>.container-fluid{flex-wrap:nowrap;justify-content:flex-start}.lg\:navbar-expand .navbar-nav{--bs-nav-link-padding-x:var(--bs-navbar-nav-link-padding-x);flex-direction:row}.lg\:navbar-expand .navbar-toggler{display:none!important}.lg\:navbar-expand [class*=drawer]{z-index:auto;box-shadow:none;flex-grow:1;margin:0;padding:0;transition:none;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;display:flex!important;position:static!important;inset:auto!important;transform:none!important}.lg\:navbar-expand [class*=drawer] .drawer-header{display:none!important}.lg\:navbar-expand [class*=drawer] .drawer-body{flex-direction:row;flex-grow:1;align-items:center;padding:0;display:flex;overflow-y:visible}}@container (width>=1280px){.xl\:navbar-expand>.container,.xl\:navbar-expand>.container-fluid{flex-wrap:nowrap;justify-content:flex-start}.xl\:navbar-expand .navbar-nav{--bs-nav-link-padding-x:var(--bs-navbar-nav-link-padding-x);flex-direction:row}.xl\:navbar-expand .navbar-toggler{display:none!important}.xl\:navbar-expand [class*=drawer]{z-index:auto;box-shadow:none;flex-grow:1;margin:0;padding:0;transition:none;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;display:flex!important;position:static!important;inset:auto!important;transform:none!important}.xl\:navbar-expand [class*=drawer] .drawer-header{display:none!important}.xl\:navbar-expand [class*=drawer] .drawer-body{flex-direction:row;flex-grow:1;align-items:center;padding:0;display:flex;overflow-y:visible}}@container (width>=1536px){.\32 xl\:navbar-expand>.container,.\32 xl\:navbar-expand>.container-fluid{flex-wrap:nowrap;justify-content:flex-start}.\32 xl\:navbar-expand .navbar-nav{--bs-nav-link-padding-x:var(--bs-navbar-nav-link-padding-x);flex-direction:row}.\32 xl\:navbar-expand .navbar-toggler{display:none!important}.\32 xl\:navbar-expand [class*=drawer]{z-index:auto;box-shadow:none;flex-grow:1;margin:0;padding:0;transition:none;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;display:flex!important;position:static!important;inset:auto!important;transform:none!important}.\32 xl\:navbar-expand [class*=drawer] .drawer-header{display:none!important}.\32 xl\:navbar-expand [class*=drawer] .drawer-body{flex-direction:row;flex-grow:1;align-items:center;padding:0;display:flex;overflow-y:visible}}.navbar [class*=drawer]:not([open],.hiding){transition:none!important}@media (prefers-reduced-motion:reduce){.navbar [class*=drawer]:not([open],.hiding){transition:none}}.navbar-translucent{background-color:#0000;position:relative}.navbar-translucent:before{z-index:-1;content:"";background-color:color-mix(in oklch, var(--bs-navbar-bg,var(--bs-bg-body)) 80%, transparent);backdrop-filter:blur(5px)saturate(180%);background-image:none;position:absolute;inset:0}.navbar[data-bs-theme=dark]{--bs-navbar-color:color-mix(in oklch, var(--bs-white) .55, transparent);--bs-navbar-hover-color:color-mix(in oklch, var(--bs-white) .75, transparent);--bs-navbar-disabled-color:color-mix(in oklch, var(--bs-white) .25, transparent);--bs-navbar-active-color:var(--bs-white);--bs-navbar-brand-color:var(--bs-white);--bs-navbar-brand-hover-color:var(--bs-white);--bs-navbar-toggler-border-color:color-mix(in oklch, var(--bs-white) .1, transparent)}@media (width<576px){.sm\:drawer{z-index:var(--bs-drawer-zindex);width:auto;max-width:calc(100% - var(--bs-drawer-inset) * 2);height:auto;max-height:calc(100% - var(--bs-drawer-inset) * 2);color:var(--bs-drawer-color);visibility:hidden;background-color:var(--bs-drawer-bg);border:var(--bs-drawer-border-width) solid var(--bs-drawer-border-color);border-radius:var(--bs-drawer-border-radius);box-shadow:var(--bs-drawer-box-shadow);background-clip:padding-box;outline:0;flex-direction:column;margin:0;padding:0;display:flex;position:fixed;inset:auto}.sm\:drawer:where(.drawer-start){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-start:var(--bs-drawer-inset)}.sm\:drawer:where(.drawer-end){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-end:var(--bs-drawer-inset)}.sm\:drawer:where(.drawer-top){inset:var(--bs-drawer-inset) var(--bs-drawer-inset) auto;height:var(--bs-drawer-height)}.sm\:drawer:where(.drawer-bottom){inset:auto var(--bs-drawer-inset) var(--bs-drawer-inset);height:var(--bs-drawer-height)}.sm\:drawer:where(.drawer-fullscreen){inset:var(--bs-drawer-inset);width:auto;max-width:none;height:auto;max-height:none}.sm\:drawer:not(.drawer-instant){transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s var(--bs-drawer-transition-duration)}}@media (width<576px) and (prefers-reduced-motion:reduce){.sm\:drawer:not(.drawer-instant){transition:none}}@media (width<576px){.sm\:drawer:not(.drawer-instant):where(.drawer-start){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}:root:dir(rtl) .sm\:drawer:not(.drawer-instant):where(.drawer-start),.sm\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(100% + var(--bs-drawer-inset)))}:root:dir(rtl) .sm\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}.sm\:drawer:not(.drawer-instant):where(.drawer-top){transform:translateY(calc(-100% - var(--bs-drawer-inset)))}.sm\:drawer:not(.drawer-instant):where(.drawer-bottom),.sm\:drawer:not(.drawer-instant):where(.drawer-fullscreen){transform:translateY(calc(100% + var(--bs-drawer-inset)))}.sm\:drawer:not(.drawer-instant)[open]{visibility:visible;transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s;transform:none}}@media (width<576px) and (prefers-reduced-motion:reduce){.sm\:drawer:not(.drawer-instant)[open]{transition:none}}@media (width<576px){.sm\:drawer[open]{visibility:visible;transform:none}}@media (width>=576px){.sm\:drawer{--bs-drawer-height:auto;--bs-drawer-border-width:0;z-index:auto;max-width:none;max-height:none;box-shadow:none;border-radius:0;flex-grow:1;margin:0;padding:0;inset:auto;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;height:auto!important;transition:none!important;display:flex!important;position:static!important;transform:none!important}}@media (width>=576px) and (prefers-reduced-motion:reduce){.sm\:drawer{transition:none}}@media (width>=576px){.sm\:drawer .drawer-header{display:none}.sm\:drawer .drawer-body{flex-direction:row;flex-grow:0;width:100%;padding:0;display:flex;overflow-y:visible;background-color:#0000!important}}@media (width<768px){.md\:drawer{z-index:var(--bs-drawer-zindex);width:auto;max-width:calc(100% - var(--bs-drawer-inset) * 2);height:auto;max-height:calc(100% - var(--bs-drawer-inset) * 2);color:var(--bs-drawer-color);visibility:hidden;background-color:var(--bs-drawer-bg);border:var(--bs-drawer-border-width) solid var(--bs-drawer-border-color);border-radius:var(--bs-drawer-border-radius);box-shadow:var(--bs-drawer-box-shadow);background-clip:padding-box;outline:0;flex-direction:column;margin:0;padding:0;display:flex;position:fixed;inset:auto}.md\:drawer:where(.drawer-start){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-start:var(--bs-drawer-inset)}.md\:drawer:where(.drawer-end){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-end:var(--bs-drawer-inset)}.md\:drawer:where(.drawer-top){inset:var(--bs-drawer-inset) var(--bs-drawer-inset) auto;height:var(--bs-drawer-height)}.md\:drawer:where(.drawer-bottom){inset:auto var(--bs-drawer-inset) var(--bs-drawer-inset);height:var(--bs-drawer-height)}.md\:drawer:where(.drawer-fullscreen){inset:var(--bs-drawer-inset);width:auto;max-width:none;height:auto;max-height:none}.md\:drawer:not(.drawer-instant){transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s var(--bs-drawer-transition-duration)}}@media (width<768px) and (prefers-reduced-motion:reduce){.md\:drawer:not(.drawer-instant){transition:none}}@media (width<768px){.md\:drawer:not(.drawer-instant):where(.drawer-start){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}:root:dir(rtl) .md\:drawer:not(.drawer-instant):where(.drawer-start),.md\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(100% + var(--bs-drawer-inset)))}:root:dir(rtl) .md\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}.md\:drawer:not(.drawer-instant):where(.drawer-top){transform:translateY(calc(-100% - var(--bs-drawer-inset)))}.md\:drawer:not(.drawer-instant):where(.drawer-bottom),.md\:drawer:not(.drawer-instant):where(.drawer-fullscreen){transform:translateY(calc(100% + var(--bs-drawer-inset)))}.md\:drawer:not(.drawer-instant)[open]{visibility:visible;transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s;transform:none}}@media (width<768px) and (prefers-reduced-motion:reduce){.md\:drawer:not(.drawer-instant)[open]{transition:none}}@media (width<768px){.md\:drawer[open]{visibility:visible;transform:none}}@media (width>=768px){.md\:drawer{--bs-drawer-height:auto;--bs-drawer-border-width:0;z-index:auto;max-width:none;max-height:none;box-shadow:none;border-radius:0;flex-grow:1;margin:0;padding:0;inset:auto;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;height:auto!important;transition:none!important;display:flex!important;position:static!important;transform:none!important}}@media (width>=768px) and (prefers-reduced-motion:reduce){.md\:drawer{transition:none}}@media (width>=768px){.md\:drawer .drawer-header{display:none}.md\:drawer .drawer-body{flex-direction:row;flex-grow:0;width:100%;padding:0;display:flex;overflow-y:visible;background-color:#0000!important}}@media (width<1024px){.lg\:drawer{z-index:var(--bs-drawer-zindex);width:auto;max-width:calc(100% - var(--bs-drawer-inset) * 2);height:auto;max-height:calc(100% - var(--bs-drawer-inset) * 2);color:var(--bs-drawer-color);visibility:hidden;background-color:var(--bs-drawer-bg);border:var(--bs-drawer-border-width) solid var(--bs-drawer-border-color);border-radius:var(--bs-drawer-border-radius);box-shadow:var(--bs-drawer-box-shadow);background-clip:padding-box;outline:0;flex-direction:column;margin:0;padding:0;display:flex;position:fixed;inset:auto}.lg\:drawer:where(.drawer-start){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-start:var(--bs-drawer-inset)}.lg\:drawer:where(.drawer-end){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-end:var(--bs-drawer-inset)}.lg\:drawer:where(.drawer-top){inset:var(--bs-drawer-inset) var(--bs-drawer-inset) auto;height:var(--bs-drawer-height)}.lg\:drawer:where(.drawer-bottom){inset:auto var(--bs-drawer-inset) var(--bs-drawer-inset);height:var(--bs-drawer-height)}.lg\:drawer:where(.drawer-fullscreen){inset:var(--bs-drawer-inset);width:auto;max-width:none;height:auto;max-height:none}.lg\:drawer:not(.drawer-instant){transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s var(--bs-drawer-transition-duration)}}@media (width<1024px) and (prefers-reduced-motion:reduce){.lg\:drawer:not(.drawer-instant){transition:none}}@media (width<1024px){.lg\:drawer:not(.drawer-instant):where(.drawer-start){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}:root:dir(rtl) .lg\:drawer:not(.drawer-instant):where(.drawer-start),.lg\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(100% + var(--bs-drawer-inset)))}:root:dir(rtl) .lg\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}.lg\:drawer:not(.drawer-instant):where(.drawer-top){transform:translateY(calc(-100% - var(--bs-drawer-inset)))}.lg\:drawer:not(.drawer-instant):where(.drawer-bottom),.lg\:drawer:not(.drawer-instant):where(.drawer-fullscreen){transform:translateY(calc(100% + var(--bs-drawer-inset)))}.lg\:drawer:not(.drawer-instant)[open]{visibility:visible;transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s;transform:none}}@media (width<1024px) and (prefers-reduced-motion:reduce){.lg\:drawer:not(.drawer-instant)[open]{transition:none}}@media (width<1024px){.lg\:drawer[open]{visibility:visible;transform:none}}@media (width>=1024px){.lg\:drawer{--bs-drawer-height:auto;--bs-drawer-border-width:0;z-index:auto;max-width:none;max-height:none;box-shadow:none;border-radius:0;flex-grow:1;margin:0;padding:0;inset:auto;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;height:auto!important;transition:none!important;display:flex!important;position:static!important;transform:none!important}}@media (width>=1024px) and (prefers-reduced-motion:reduce){.lg\:drawer{transition:none}}@media (width>=1024px){.lg\:drawer .drawer-header{display:none}.lg\:drawer .drawer-body{flex-direction:row;flex-grow:0;width:100%;padding:0;display:flex;overflow-y:visible;background-color:#0000!important}}@media (width<1280px){.xl\:drawer{z-index:var(--bs-drawer-zindex);width:auto;max-width:calc(100% - var(--bs-drawer-inset) * 2);height:auto;max-height:calc(100% - var(--bs-drawer-inset) * 2);color:var(--bs-drawer-color);visibility:hidden;background-color:var(--bs-drawer-bg);border:var(--bs-drawer-border-width) solid var(--bs-drawer-border-color);border-radius:var(--bs-drawer-border-radius);box-shadow:var(--bs-drawer-box-shadow);background-clip:padding-box;outline:0;flex-direction:column;margin:0;padding:0;display:flex;position:fixed;inset:auto}.xl\:drawer:where(.drawer-start){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-start:var(--bs-drawer-inset)}.xl\:drawer:where(.drawer-end){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-end:var(--bs-drawer-inset)}.xl\:drawer:where(.drawer-top){inset:var(--bs-drawer-inset) var(--bs-drawer-inset) auto;height:var(--bs-drawer-height)}.xl\:drawer:where(.drawer-bottom){inset:auto var(--bs-drawer-inset) var(--bs-drawer-inset);height:var(--bs-drawer-height)}.xl\:drawer:where(.drawer-fullscreen){inset:var(--bs-drawer-inset);width:auto;max-width:none;height:auto;max-height:none}.xl\:drawer:not(.drawer-instant){transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s var(--bs-drawer-transition-duration)}}@media (width<1280px) and (prefers-reduced-motion:reduce){.xl\:drawer:not(.drawer-instant){transition:none}}@media (width<1280px){.xl\:drawer:not(.drawer-instant):where(.drawer-start){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}:root:dir(rtl) .xl\:drawer:not(.drawer-instant):where(.drawer-start),.xl\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(100% + var(--bs-drawer-inset)))}:root:dir(rtl) .xl\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}.xl\:drawer:not(.drawer-instant):where(.drawer-top){transform:translateY(calc(-100% - var(--bs-drawer-inset)))}.xl\:drawer:not(.drawer-instant):where(.drawer-bottom),.xl\:drawer:not(.drawer-instant):where(.drawer-fullscreen){transform:translateY(calc(100% + var(--bs-drawer-inset)))}.xl\:drawer:not(.drawer-instant)[open]{visibility:visible;transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s;transform:none}}@media (width<1280px) and (prefers-reduced-motion:reduce){.xl\:drawer:not(.drawer-instant)[open]{transition:none}}@media (width<1280px){.xl\:drawer[open]{visibility:visible;transform:none}}@media (width>=1280px){.xl\:drawer{--bs-drawer-height:auto;--bs-drawer-border-width:0;z-index:auto;max-width:none;max-height:none;box-shadow:none;border-radius:0;flex-grow:1;margin:0;padding:0;inset:auto;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;height:auto!important;transition:none!important;display:flex!important;position:static!important;transform:none!important}}@media (width>=1280px) and (prefers-reduced-motion:reduce){.xl\:drawer{transition:none}}@media (width>=1280px){.xl\:drawer .drawer-header{display:none}.xl\:drawer .drawer-body{flex-direction:row;flex-grow:0;width:100%;padding:0;display:flex;overflow-y:visible;background-color:#0000!important}}@media (width<1536px){.\32 xl\:drawer{z-index:var(--bs-drawer-zindex);width:auto;max-width:calc(100% - var(--bs-drawer-inset) * 2);height:auto;max-height:calc(100% - var(--bs-drawer-inset) * 2);color:var(--bs-drawer-color);visibility:hidden;background-color:var(--bs-drawer-bg);border:var(--bs-drawer-border-width) solid var(--bs-drawer-border-color);border-radius:var(--bs-drawer-border-radius);box-shadow:var(--bs-drawer-box-shadow);background-clip:padding-box;outline:0;flex-direction:column;margin:0;padding:0;display:flex;position:fixed;inset:auto}.\32 xl\:drawer:where(.drawer-start){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-start:var(--bs-drawer-inset)}.\32 xl\:drawer:where(.drawer-end){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-end:var(--bs-drawer-inset)}.\32 xl\:drawer:where(.drawer-top){inset:var(--bs-drawer-inset) var(--bs-drawer-inset) auto;height:var(--bs-drawer-height)}.\32 xl\:drawer:where(.drawer-bottom){inset:auto var(--bs-drawer-inset) var(--bs-drawer-inset);height:var(--bs-drawer-height)}.\32 xl\:drawer:where(.drawer-fullscreen){inset:var(--bs-drawer-inset);width:auto;max-width:none;height:auto;max-height:none}.\32 xl\:drawer:not(.drawer-instant){transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s var(--bs-drawer-transition-duration)}}@media (width<1536px) and (prefers-reduced-motion:reduce){.\32 xl\:drawer:not(.drawer-instant){transition:none}}@media (width<1536px){.\32 xl\:drawer:not(.drawer-instant):where(.drawer-start){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}:root:dir(rtl) .\32 xl\:drawer:not(.drawer-instant):where(.drawer-start),.\32 xl\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(100% + var(--bs-drawer-inset)))}:root:dir(rtl) .\32 xl\:drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}.\32 xl\:drawer:not(.drawer-instant):where(.drawer-top){transform:translateY(calc(-100% - var(--bs-drawer-inset)))}.\32 xl\:drawer:not(.drawer-instant):where(.drawer-bottom),.\32 xl\:drawer:not(.drawer-instant):where(.drawer-fullscreen){transform:translateY(calc(100% + var(--bs-drawer-inset)))}.\32 xl\:drawer:not(.drawer-instant)[open]{visibility:visible;transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s;transform:none}}@media (width<1536px) and (prefers-reduced-motion:reduce){.\32 xl\:drawer:not(.drawer-instant)[open]{transition:none}}@media (width<1536px){.\32 xl\:drawer[open]{visibility:visible;transform:none}}@media (width>=1536px){.\32 xl\:drawer{--bs-drawer-height:auto;--bs-drawer-border-width:0;z-index:auto;max-width:none;max-height:none;box-shadow:none;border-radius:0;flex-grow:1;margin:0;padding:0;inset:auto;visibility:visible!important;background-color:#0000!important;border:0!important;width:auto!important;height:auto!important;transition:none!important;display:flex!important;position:static!important;transform:none!important}}@media (width>=1536px) and (prefers-reduced-motion:reduce){.\32 xl\:drawer{transition:none}}@media (width>=1536px){.\32 xl\:drawer .drawer-header{display:none}.\32 xl\:drawer .drawer-body{flex-direction:row;flex-grow:0;width:100%;padding:0;display:flex;overflow-y:visible;background-color:#0000!important}}.drawer{z-index:var(--bs-drawer-zindex);width:auto;max-width:calc(100% - var(--bs-drawer-inset) * 2);height:auto;max-height:calc(100% - var(--bs-drawer-inset) * 2);color:var(--bs-drawer-color);visibility:hidden;background-color:var(--bs-drawer-bg);border:var(--bs-drawer-border-width) solid var(--bs-drawer-border-color);border-radius:var(--bs-drawer-border-radius);box-shadow:var(--bs-drawer-box-shadow);background-clip:padding-box;outline:0;flex-direction:column;margin:0;padding:0;display:flex;position:fixed;inset:auto}.drawer:where(.drawer-start){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-start:var(--bs-drawer-inset)}.drawer:where(.drawer-end){inset-block:var(--bs-drawer-inset);width:var(--bs-drawer-width);inset-inline-end:var(--bs-drawer-inset)}.drawer:where(.drawer-top){inset:var(--bs-drawer-inset) var(--bs-drawer-inset) auto;height:var(--bs-drawer-height)}.drawer:where(.drawer-bottom){inset:auto var(--bs-drawer-inset) var(--bs-drawer-inset);height:var(--bs-drawer-height)}.drawer:where(.drawer-fullscreen){inset:var(--bs-drawer-inset);width:auto;max-width:none;height:auto;max-height:none}.drawer:not(.drawer-instant){transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s var(--bs-drawer-transition-duration)}@media (prefers-reduced-motion:reduce){.drawer:not(.drawer-instant){transition:none}}.drawer:not(.drawer-instant):where(.drawer-start){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}:root:dir(rtl) .drawer:not(.drawer-instant):where(.drawer-start),.drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(100% + var(--bs-drawer-inset)))}:root:dir(rtl) .drawer:not(.drawer-instant):where(.drawer-end){transform:translateX(calc(-100% - var(--bs-drawer-inset)))}.drawer:not(.drawer-instant):where(.drawer-top){transform:translateY(calc(-100% - var(--bs-drawer-inset)))}.drawer:not(.drawer-instant):where(.drawer-bottom),.drawer:not(.drawer-instant):where(.drawer-fullscreen){transform:translateY(calc(100% + var(--bs-drawer-inset)))}.drawer:not(.drawer-instant)[open]{visibility:visible;transition:transform var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), visibility 0s}@media (prefers-reduced-motion:reduce){.drawer:not(.drawer-instant)[open]{transition:none}}.drawer:not(.drawer-instant)[open]{transform:none}.drawer[open]{visibility:visible;transform:none}.sm\:drawer::backdrop{--bs-drawer-backdrop-bg:var(--bs-bg-body);--bs-drawer-backdrop-opacity:25%;--bs-drawer-backdrop-blur:8px;--bs-drawer-inset:var(--bs-spacer);--bs-drawer-zindex:1045;--bs-drawer-width:400px;--bs-drawer-height:30vh;--bs-drawer-padding-x:var(--bs-spacer);--bs-drawer-padding-y:var(--bs-spacer);--bs-drawer-color:var(--bs-fg-body);--bs-drawer-bg:var(--bs-bg-body);--bs-drawer-border-width:var(--bs-border-width);--bs-drawer-border-color:var(--bs-border-color-translucent);--bs-drawer-border-radius:var(--bs-radius-7);--bs-drawer-box-shadow:var(--bs-box-shadow-lg);--bs-drawer-transition-duration:.3s;--bs-drawer-transition-timing:cubic-bezier(.22, 1, .36, 1);--bs-drawer-title-line-height:1.5;background-color:color-mix(in oklch, var(--bs-drawer-backdrop-bg) var(--bs-drawer-backdrop-opacity), transparent);backdrop-filter:blur(var(--bs-drawer-backdrop-blur));transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete}@media (prefers-reduced-motion:reduce){.sm\:drawer::backdrop{transition:none}}.md\:drawer::backdrop{--bs-drawer-backdrop-bg:var(--bs-bg-body);--bs-drawer-backdrop-opacity:25%;--bs-drawer-backdrop-blur:8px;--bs-drawer-inset:var(--bs-spacer);--bs-drawer-zindex:1045;--bs-drawer-width:400px;--bs-drawer-height:30vh;--bs-drawer-padding-x:var(--bs-spacer);--bs-drawer-padding-y:var(--bs-spacer);--bs-drawer-color:var(--bs-fg-body);--bs-drawer-bg:var(--bs-bg-body);--bs-drawer-border-width:var(--bs-border-width);--bs-drawer-border-color:var(--bs-border-color-translucent);--bs-drawer-border-radius:var(--bs-radius-7);--bs-drawer-box-shadow:var(--bs-box-shadow-lg);--bs-drawer-transition-duration:.3s;--bs-drawer-transition-timing:cubic-bezier(.22, 1, .36, 1);--bs-drawer-title-line-height:1.5;background-color:color-mix(in oklch, var(--bs-drawer-backdrop-bg) var(--bs-drawer-backdrop-opacity), transparent);backdrop-filter:blur(var(--bs-drawer-backdrop-blur));transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete}@media (prefers-reduced-motion:reduce){.md\:drawer::backdrop{transition:none}}.lg\:drawer::backdrop{--bs-drawer-backdrop-bg:var(--bs-bg-body);--bs-drawer-backdrop-opacity:25%;--bs-drawer-backdrop-blur:8px;--bs-drawer-inset:var(--bs-spacer);--bs-drawer-zindex:1045;--bs-drawer-width:400px;--bs-drawer-height:30vh;--bs-drawer-padding-x:var(--bs-spacer);--bs-drawer-padding-y:var(--bs-spacer);--bs-drawer-color:var(--bs-fg-body);--bs-drawer-bg:var(--bs-bg-body);--bs-drawer-border-width:var(--bs-border-width);--bs-drawer-border-color:var(--bs-border-color-translucent);--bs-drawer-border-radius:var(--bs-radius-7);--bs-drawer-box-shadow:var(--bs-box-shadow-lg);--bs-drawer-transition-duration:.3s;--bs-drawer-transition-timing:cubic-bezier(.22, 1, .36, 1);--bs-drawer-title-line-height:1.5;background-color:color-mix(in oklch, var(--bs-drawer-backdrop-bg) var(--bs-drawer-backdrop-opacity), transparent);backdrop-filter:blur(var(--bs-drawer-backdrop-blur));transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete}@media (prefers-reduced-motion:reduce){.lg\:drawer::backdrop{transition:none}}.xl\:drawer::backdrop{--bs-drawer-backdrop-bg:var(--bs-bg-body);--bs-drawer-backdrop-opacity:25%;--bs-drawer-backdrop-blur:8px;--bs-drawer-inset:var(--bs-spacer);--bs-drawer-zindex:1045;--bs-drawer-width:400px;--bs-drawer-height:30vh;--bs-drawer-padding-x:var(--bs-spacer);--bs-drawer-padding-y:var(--bs-spacer);--bs-drawer-color:var(--bs-fg-body);--bs-drawer-bg:var(--bs-bg-body);--bs-drawer-border-width:var(--bs-border-width);--bs-drawer-border-color:var(--bs-border-color-translucent);--bs-drawer-border-radius:var(--bs-radius-7);--bs-drawer-box-shadow:var(--bs-box-shadow-lg);--bs-drawer-transition-duration:.3s;--bs-drawer-transition-timing:cubic-bezier(.22, 1, .36, 1);--bs-drawer-title-line-height:1.5;background-color:color-mix(in oklch, var(--bs-drawer-backdrop-bg) var(--bs-drawer-backdrop-opacity), transparent);backdrop-filter:blur(var(--bs-drawer-backdrop-blur));transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete}@media (prefers-reduced-motion:reduce){.xl\:drawer::backdrop{transition:none}}.\32 xl\:drawer::backdrop{--bs-drawer-backdrop-bg:var(--bs-bg-body);--bs-drawer-backdrop-opacity:25%;--bs-drawer-backdrop-blur:8px;--bs-drawer-inset:var(--bs-spacer);--bs-drawer-zindex:1045;--bs-drawer-width:400px;--bs-drawer-height:30vh;--bs-drawer-padding-x:var(--bs-spacer);--bs-drawer-padding-y:var(--bs-spacer);--bs-drawer-color:var(--bs-fg-body);--bs-drawer-bg:var(--bs-bg-body);--bs-drawer-border-width:var(--bs-border-width);--bs-drawer-border-color:var(--bs-border-color-translucent);--bs-drawer-border-radius:var(--bs-radius-7);--bs-drawer-box-shadow:var(--bs-box-shadow-lg);--bs-drawer-transition-duration:.3s;--bs-drawer-transition-timing:cubic-bezier(.22, 1, .36, 1);--bs-drawer-title-line-height:1.5;background-color:color-mix(in oklch, var(--bs-drawer-backdrop-bg) var(--bs-drawer-backdrop-opacity), transparent);backdrop-filter:blur(var(--bs-drawer-backdrop-blur));transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete}@media (prefers-reduced-motion:reduce){.\32 xl\:drawer::backdrop{transition:none}}.drawer::backdrop{--bs-drawer-backdrop-bg:var(--bs-bg-body);--bs-drawer-backdrop-opacity:25%;--bs-drawer-backdrop-blur:8px;--bs-drawer-inset:var(--bs-spacer);--bs-drawer-zindex:1045;--bs-drawer-width:400px;--bs-drawer-height:30vh;--bs-drawer-padding-x:var(--bs-spacer);--bs-drawer-padding-y:var(--bs-spacer);--bs-drawer-color:var(--bs-fg-body);--bs-drawer-bg:var(--bs-bg-body);--bs-drawer-border-width:var(--bs-border-width);--bs-drawer-border-color:var(--bs-border-color-translucent);--bs-drawer-border-radius:var(--bs-radius-7);--bs-drawer-box-shadow:var(--bs-box-shadow-lg);--bs-drawer-transition-duration:.3s;--bs-drawer-transition-timing:cubic-bezier(.22, 1, .36, 1);--bs-drawer-title-line-height:1.5;background-color:color-mix(in oklch, var(--bs-drawer-backdrop-bg) var(--bs-drawer-backdrop-opacity), transparent);backdrop-filter:blur(var(--bs-drawer-backdrop-blur));transition:background-color var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), backdrop-filter var(--bs-drawer-transition-duration) var(--bs-drawer-transition-timing), display var(--bs-drawer-transition-duration) allow-discrete, overlay var(--bs-drawer-transition-duration) allow-discrete}@media (prefers-reduced-motion:reduce){.drawer::backdrop{transition:none}}@starting-style{.sm\:drawer::backdrop,.md\:drawer::backdrop,.lg\:drawer::backdrop,.xl\:drawer::backdrop,.\32 xl\:drawer::backdrop,.drawer::backdrop{backdrop-filter:blur();background-color:#0000}}.drawer-static{transform:scale(1.02)}.drawer-translucent{background-color:color-mix(in oklch, var(--bs-drawer-bg) 80%, transparent);backdrop-filter:blur(5px)saturate(180%)}.drawer-sheet{--bs-drawer-inset:0;--bs-drawer-border-radius:0;--bs-drawer-border-width:0;--bs-drawer-box-shadow:none}.drawer-header{padding:var(--bs-drawer-padding-y) var(--bs-drawer-padding-x);flex-shrink:0;align-items:center;display:flex}.drawer-header .btn-close{margin-block:calc(-.5 * var(--bs-drawer-padding-y));margin-inline-start:auto}.drawer-title{line-height:var(--bs-drawer-title-line-height);margin-bottom:0}.drawer-body{gap:var(--bs-drawer-padding-y);padding:var(--bs-drawer-padding-y) var(--bs-drawer-padding-x);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.drawer-footer{padding:var(--bs-drawer-padding-y) var(--bs-drawer-padding-x);border-block-start:var(--bs-drawer-border-width) solid var(--bs-drawer-border-color);flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.drawer-fit-content{inset-block-end:auto}.pagination{--bs-pagination-min-height:var(--bs-btn-input-min-height);--bs-pagination-padding-x:var(--bs-btn-input-padding-x);--bs-pagination-padding-y:var(--bs-btn-input-padding-y);--bs-pagination-font-size:var(--bs-btn-input-font-size);--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-bg-body);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-btn-input-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-bg-1);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-bg-2);--bs-pagination-active-color:var(--bs-primary-contrast);--bs-pagination-active-bg:var(--bs-primary-bg);--bs-pagination-active-border-color:var(--bs-primary-bg);--bs-pagination-disabled-color:var(--bs-fg-3);--bs-pagination-disabled-bg:var(--bs-bg-2);--bs-pagination-disabled-border-color:var(--bs-border-color);padding-inline-start:0;list-style:none;display:flex}.page-link{min-height:var(--bs-pagination-min-height);padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);justify-content:center;align-items:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;display:flex;position:relative}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus-visible{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:var(--bs-focus-ring);outline-offset:var(--bs-focus-ring-offset)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);background-image:var(--bs-gradient);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-inline-start:calc(-1 * var(--bs-pagination-border-width))}.page-item:first-child .page-link{border-start-start-radius:var(--bs-pagination-border-radius);border-end-start-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-start-end-radius:var(--bs-pagination-border-radius);border-end-end-radius:var(--bs-pagination-border-radius)}.pagination-sm{--bs-pagination-min-height:var(--bs-btn-input-sm-min-height);--bs-pagination-padding-y:var(--bs-btn-input-sm-padding-y);--bs-pagination-padding-x:var(--bs-btn-input-sm-padding-x);--bs-pagination-font-size:var(--bs-btn-input-sm-font-size);--bs-pagination-border-radius:var(--bs-btn-input-sm-border-radius)}.pagination-lg{--bs-pagination-min-height:var(--bs-btn-input-lg-min-height);--bs-pagination-padding-y:var(--bs-btn-input-lg-padding-y);--bs-pagination-padding-x:var(--bs-btn-input-lg-padding-x);--bs-pagination-font-size:var(--bs-btn-input-lg-font-size);--bs-pagination-border-radius:var(--bs-btn-input-lg-border-radius)}.placeholder{--bs-placeholder-opacity-max:.5;--bs-placeholder-opacity-min:.2;vertical-align:middle;cursor:wait;min-height:1em;opacity:var(--bs-placeholder-opacity-max);background-color:currentColor;display:inline-block}.placeholder.btn:before{content:"";display:inline-block}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:2s ease-in-out infinite placeholder-glow}@keyframes placeholder-glow{50%{opacity:var(--bs-placeholder-opacity-min)}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgb(0, 0, 0, calc(1 - var(--bs-placeholder-opacity-min))) 75%, #000 95%);animation:2s linear infinite placeholder-wave;mask-size:200% 100%}@keyframes placeholder-wave{to{mask-position:-200% 0}}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:280px;--bs-popover-font-size:var(--bs-font-size-sm);--bs-popover-bg:var(--bs-bg-body);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-radius-7);--bs-popover-inner-border-radius:calc(var(--bs-radius-7) - var(--bs-border-width));--bs-popover-box-shadow:var(--bs-box-shadow);--bs-popover-header-padding-x:var(--bs-spacer);--bs-popover-header-padding-y:var(--bs-spacer-3);--bs-popover-header-font-size:var(--bs-font-size-sm);--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-bg-1);--bs-popover-body-padding-x:var(--bs-spacer);--bs-popover-body-padding-y:var(--bs-spacer-3);--bs-popover-body-color:var(--bs-fg-body);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);max-width:var(--bs-popover-max-width);font-family:var(--bs-body-font-family);font-style:normal;font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);text-align:start;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius);box-shadow:var(--bs-popover-box-shadow);background-clip:padding-box;text-decoration:none;display:block}.popover .popover-arrow{width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height);display:block}.popover .popover-arrow:before,.popover .popover-arrow:after{content:"";border:0 solid #0000;display:block;position:absolute}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-bs-placement^=top]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-bs-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-bs-placement^=top]>.popover-arrow:after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-bs-placement^=top]>.popover-arrow:before{border-block-start-color:var(--bs-popover-arrow-border);bottom:0}.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-bs-placement^=top]>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-block-start-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-bs-placement^=right]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-bs-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-bs-placement^=right]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-bs-placement^=right]>.popover-arrow:before{border-inline-end-color:var(--bs-popover-arrow-border);left:0}.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-bs-placement^=right]>.popover-arrow:after{left:var(--bs-popover-border-width);border-inline-end-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-bs-placement^=bottom]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-bs-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-bs-placement^=bottom]>.popover-arrow:after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-bs-placement^=bottom]>.popover-arrow:before{border-block-end-color:var(--bs-popover-arrow-border);top:0}.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-bs-placement^=bottom]>.popover-arrow:after{top:var(--bs-popover-border-width);border-block-end-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header:before,.bs-popover-auto[data-bs-placement^=bottom] .popover-header:before{width:var(--bs-popover-arrow-width);content:"";border-block-end:var(--bs-popover-border-width) solid var(--bs-popover-header-bg);margin-inline-start:calc(-.5 * var(--bs-popover-arrow-width));display:block;position:absolute;top:0;left:50%}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-bs-placement^=left]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-bs-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-bs-placement^=left]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-bs-placement^=left]>.popover-arrow:before{border-inline-start-color:var(--bs-popover-arrow-border);right:0}.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-bs-placement^=left]>.popover-arrow:after{right:var(--bs-popover-border-width);border-inline-start-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-block-end:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-start-start-radius:var(--bs-popover-inner-border-radius);border-start-end-radius:var(--bs-popover-inner-border-radius);margin-bottom:0}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}@keyframes progress-bar-stripes{0%{background-position-x:var(--bs-progress-height)}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:var(--bs-font-size-sm);--bs-progress-bg:var(--bs-bg-2);--bs-progress-border-radius:var(--bs-radius-5);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:var(--bs-white);--bs-progress-bar-bg:var(--bs-primary-bg);--bs-progress-bar-transition:width .6s ease;--bs-progress-bar-animation:progress-bar-stripes 1s linear infinite;height:var(--bs-progress-height);font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius);box-shadow:var(--bs-progress-box-shadow);display:flex;overflow:hidden}.progress-bar{color:var(--bs-theme-contrast,var(--bs-progress-bar-color));text-align:center;white-space:nowrap;background-color:var(--bs-theme-bg,var(--bs-progress-bar-bg));transition:var(--bs-progress-bar-transition);flex-direction:column;justify-content:center;display:flex;overflow:hidden}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,#ffffff26 25%,#0000 25% 50%,#ffffff26 50% 75%,#0000 75%,#0000);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:var(--bs-progress-bar-animation)}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.spinner-grow,.spinner-border{width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);border-radius:50%;flex-shrink:0;display:inline-block}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-.125em;--bs-spinner-border-width:.25em;--bs-spinner-animation-speed:.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-inline-end-color:#0000}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-.125em;--bs-spinner-animation-speed:.75s;--bs-spinner-animation-name:spinner-grow;opacity:0;background-color:currentColor}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.stepper{--bs-stepper-size:2rem;--bs-stepper-gap:1rem;--bs-stepper-font-size:var(--bs-font-size-sm);--bs-stepper-text-gap:.5rem;--bs-stepper-track-size:.125rem;--bs-stepper-bg:var(--bs-bg-2);--bs-stepper-active-color:var(--bs-primary-contrast);--bs-stepper-active-bg:var(--bs-primary-bg);gap:var(--bs-stepper-gap);counter-reset:stepper;grid-auto-rows:1fr;grid-auto-flow:row;padding-inline-start:0;list-style:none;display:grid}.stepper-item{grid-template-rows:auto;grid-template-columns:var(--bs-stepper-size) auto;gap:var(--bs-stepper-text-gap);align-items:var(--bs-stepper-align-items,center);text-decoration:none;display:grid;position:relative}.stepper-item:before{z-index:1;width:var(--bs-stepper-size);height:var(--bs-stepper-size);font-size:var(--bs-stepper-font-size);text-align:center;content:counter(stepper);counter-increment:stepper;background-color:var(--bs-stepper-bg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:.5rem;font-weight:600;line-height:1;display:flex;position:relative}.stepper-item:after{width:var(--bs-stepper-track-size);height:calc(100% + var(--bs-stepper-gap));content:"";background-color:var(--bs-stepper-bg);position:absolute;inset-block:50% 100%;inset-inline-start:calc(var(--bs-stepper-size) * .5 - var(--bs-stepper-track-size) * .5)}.stepper-item:last-child:after{display:none}.stepper-item.active:before,.stepper-item.active:after{color:var(--bs-theme-contrast,var(--bs-stepper-active-color));background-color:var(--bs-theme-bg,var(--bs-stepper-active-bg))}.stepper-item.active:not(:has(+.stepper-item.active)):after{background-color:var(--bs-stepper-bg)}.stepper-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid}.stepper-horizontal .stepper-item{grid-template-rows:var(--bs-stepper-size) auto;text-align:center;grid-template-columns:auto;place-items:start center}.stepper-horizontal .stepper-item:after{width:calc(100% + var(--bs-stepper-gap));height:var(--bs-stepper-track-size);inset-block-start:calc(var(--bs-stepper-size) * .5 - var(--bs-stepper-track-size) * .5);inset-block-end:auto;inset-inline:50% 100%}.stepper-horizontal .stepper-item:last-child:after{right:100%}@container (width>=576px){.sm\:stepper-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid}.sm\:stepper-horizontal .stepper-item{grid-template-rows:var(--bs-stepper-size) auto;text-align:center;grid-template-columns:auto;place-items:start center}.sm\:stepper-horizontal .stepper-item:after{width:calc(100% + var(--bs-stepper-gap));height:var(--bs-stepper-track-size);inset-block-start:calc(var(--bs-stepper-size) * .5 - var(--bs-stepper-track-size) * .5);inset-block-end:auto;inset-inline:50% 100%}.sm\:stepper-horizontal .stepper-item:last-child:after{right:100%}}@container (width>=768px){.md\:stepper-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid}.md\:stepper-horizontal .stepper-item{grid-template-rows:var(--bs-stepper-size) auto;text-align:center;grid-template-columns:auto;place-items:start center}.md\:stepper-horizontal .stepper-item:after{width:calc(100% + var(--bs-stepper-gap));height:var(--bs-stepper-track-size);inset-block-start:calc(var(--bs-stepper-size) * .5 - var(--bs-stepper-track-size) * .5);inset-block-end:auto;inset-inline:50% 100%}.md\:stepper-horizontal .stepper-item:last-child:after{right:100%}}@container (width>=1024px){.lg\:stepper-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid}.lg\:stepper-horizontal .stepper-item{grid-template-rows:var(--bs-stepper-size) auto;text-align:center;grid-template-columns:auto;place-items:start center}.lg\:stepper-horizontal .stepper-item:after{width:calc(100% + var(--bs-stepper-gap));height:var(--bs-stepper-track-size);inset-block-start:calc(var(--bs-stepper-size) * .5 - var(--bs-stepper-track-size) * .5);inset-block-end:auto;inset-inline:50% 100%}.lg\:stepper-horizontal .stepper-item:last-child:after{right:100%}}@container (width>=1280px){.xl\:stepper-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid}.xl\:stepper-horizontal .stepper-item{grid-template-rows:var(--bs-stepper-size) auto;text-align:center;grid-template-columns:auto;place-items:start center}.xl\:stepper-horizontal .stepper-item:after{width:calc(100% + var(--bs-stepper-gap));height:var(--bs-stepper-track-size);inset-block-start:calc(var(--bs-stepper-size) * .5 - var(--bs-stepper-track-size) * .5);inset-block-end:auto;inset-inline:50% 100%}.xl\:stepper-horizontal .stepper-item:last-child:after{right:100%}}@container (width>=1536px){.\32 xl\:stepper-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid}.\32 xl\:stepper-horizontal .stepper-item{grid-template-rows:var(--bs-stepper-size) auto;text-align:center;grid-template-columns:auto;place-items:start center}.\32 xl\:stepper-horizontal .stepper-item:after{width:calc(100% + var(--bs-stepper-gap));height:var(--bs-stepper-track-size);inset-block-start:calc(var(--bs-stepper-size) * .5 - var(--bs-stepper-track-size) * .5);inset-block-end:auto;inset-inline:50% 100%}.\32 xl\:stepper-horizontal .stepper-item:last-child:after{right:100%}}.stepper-overflow{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;overflow-x:auto;container-type:inline-size}.stepper-overflow>.stepper{width:max-content;min-width:100%}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:1rem;--bs-toast-padding-y:.75rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:var(--bs-font-size-sm);--bs-toast-bg:var(--bs-bg-body);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-fg-3);--bs-toast-header-bg:var(--bs-bg-1);--bs-toast-header-border-color:var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color,var(--bs-fg-body));pointer-events:auto;background-color:var(--bs-toast-bg);border:var(--bs-toast-border-width) solid var(--bs-theme-border,var(--bs-toast-border-color));box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius,var(--bs-radius-7));background-clip:padding-box;flex-direction:column;display:flex;overflow:hidden}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;z-index:var(--bs-toast-zindex);pointer-events:none;width:max-content;max-width:100%;position:absolute}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-theme-fg-emphasis,var(--bs-toast-header-color));background-color:var(--bs-theme-bg-subtle,var(--bs-toast-header-bg));border-block-end:var(--bs-toast-border-width,var(--bs-border-width)) solid var(--bs-theme-border,var(--bs-toast-header-border-color,var(--bs-border-color-translucent)));align-items:center;display:flex}.toast-header .btn-close{color:inherit;margin-inline-start:calc(.5 * var(--bs-toast-padding-x));margin-inline-end:calc(-.25 * var(--bs-toast-padding-x))}.toast-translucent{backdrop-filter:blur(5px)saturate(180%)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:var(--bs-spacer-3);--bs-tooltip-padding-y:calc(var(--bs-spacer) * .375);--bs-tooltip-font-size:var(--bs-font-size-sm);--bs-tooltip-color:var(--bs-bg-body);--bs-tooltip-bg:var(--bs-fg-body);--bs-tooltip-border-radius:var(--bs-radius-5);--bs-tooltip-opacity:.95;--bs-tooltip-arrow-width:.8rem;--bs-tooltip-arrow-height:.4rem;z-index:var(--bs-tooltip-zindex);font-family:var(--bs-body-font-family);font-style:normal;font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);text-align:start;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0;text-decoration:none;display:block}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height);display:block}.tooltip .tooltip-arrow:before{content:"";border-style:solid;border-color:#0000;position:absolute}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-bs-placement^=top] .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow:before,.bs-tooltip-auto[data-bs-placement^=top] .tooltip-arrow:before{border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-block-start-color:var(--bs-tooltip-bg);top:-1px}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-bs-placement^=right] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow:before,.bs-tooltip-auto[data-bs-placement^=right] .tooltip-arrow:before{border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-inline-end-color:var(--bs-tooltip-bg);right:-1px}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-bs-placement^=bottom] .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow:before,.bs-tooltip-auto[data-bs-placement^=bottom] .tooltip-arrow:before{border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-block-end-color:var(--bs-tooltip-bg);bottom:-1px}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-bs-placement^=left] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow:before,.bs-tooltip-auto[data-bs-placement^=left] .tooltip-arrow:before{border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-inline-start-color:var(--bs-tooltip-bg);left:-1px}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}}@layer custom;@layer helpers{.focus-ring:focus-visible{outline:var(--bs-focus-ring-width) solid var(--bs-theme-focus-ring,var(--bs-focus-ring-color))}.icon-link{-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity,.5));text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity,.5));text-underline-offset:.25em;backface-visibility:hidden;align-items:center;gap:.375rem;display:inline-flex}.icon-link>.bi{fill:currentColor;flex-shrink:0;width:1em;height:1em;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em, 0, 0))}.fixed-top{z-index:1030;position:fixed;inset:0 0 auto}.fixed-bottom{z-index:1030;position:fixed;inset:auto 0 0}.sticky-top{z-index:1020;position:sticky;top:0}.sticky-bottom{z-index:1020;position:sticky;bottom:0}@media (width>=576px){.sm\:sticky-top{z-index:1020;position:sticky;top:0}.sm\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}@media (width>=768px){.md\:sticky-top{z-index:1020;position:sticky;top:0}.md\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}@media (width>=1024px){.lg\:sticky-top{z-index:1020;position:sticky;top:0}.lg\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}@media (width>=1280px){.xl\:sticky-top{z-index:1020;position:sticky;top:0}.xl\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}@media (width>=1536px){.\32 xl\:sticky-top{z-index:1020;position:sticky;top:0}.\32 xl\:sticky-bottom{z-index:1020;position:sticky;bottom:0}}.stack-container{container-type:inline-size}[class*=hstack],[class*=vstack]{flex:var(--bs-stack-flex,1 1 auto);flex-direction:var(--bs-stack-direction,row);align-items:var(--bs-stack-align-items,center);align-self:var(--bs-stack-align-self,stretch);display:flex}.vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}@container (width>=576px){.sm\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.sm\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}@container (width>=768px){.md\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.md\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}@container (width>=1024px){.lg\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.lg\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}@container (width>=1280px){.xl\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.xl\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}@container (width>=1536px){.\32 xl\:vstack{--bs-stack-direction:column;--bs-stack-align-items:stretch}.\32 xl\:hstack{--bs-stack-direction:row;--bs-stack-align-items:flex-start}}.theme-primary{--bs-theme-base:var(--bs-primary-base);--bs-theme-fg:var(--bs-primary-fg);--bs-theme-fg-emphasis:var(--bs-primary-fg-emphasis);--bs-theme-bg:var(--bs-primary-bg);--bs-theme-bg-subtle:var(--bs-primary-bg-subtle);--bs-theme-bg-muted:var(--bs-primary-bg-muted);--bs-theme-border:var(--bs-primary-border);--bs-theme-focus-ring:var(--bs-primary-focus-ring);--bs-theme-contrast:var(--bs-primary-contrast)}.theme-accent{--bs-theme-base:var(--bs-accent-base);--bs-theme-fg:var(--bs-accent-fg);--bs-theme-fg-emphasis:var(--bs-accent-fg-emphasis);--bs-theme-bg:var(--bs-accent-bg);--bs-theme-bg-subtle:var(--bs-accent-bg-subtle);--bs-theme-bg-muted:var(--bs-accent-bg-muted);--bs-theme-border:var(--bs-accent-border);--bs-theme-focus-ring:var(--bs-accent-focus-ring);--bs-theme-contrast:var(--bs-accent-contrast)}.theme-success{--bs-theme-base:var(--bs-success-base);--bs-theme-fg:var(--bs-success-fg);--bs-theme-fg-emphasis:var(--bs-success-fg-emphasis);--bs-theme-bg:var(--bs-success-bg);--bs-theme-bg-subtle:var(--bs-success-bg-subtle);--bs-theme-bg-muted:var(--bs-success-bg-muted);--bs-theme-border:var(--bs-success-border);--bs-theme-focus-ring:var(--bs-success-focus-ring);--bs-theme-contrast:var(--bs-success-contrast)}.theme-danger{--bs-theme-base:var(--bs-danger-base);--bs-theme-fg:var(--bs-danger-fg);--bs-theme-fg-emphasis:var(--bs-danger-fg-emphasis);--bs-theme-bg:var(--bs-danger-bg);--bs-theme-bg-subtle:var(--bs-danger-bg-subtle);--bs-theme-bg-muted:var(--bs-danger-bg-muted);--bs-theme-border:var(--bs-danger-border);--bs-theme-focus-ring:var(--bs-danger-focus-ring);--bs-theme-contrast:var(--bs-danger-contrast)}.theme-warning{--bs-theme-base:var(--bs-warning-base);--bs-theme-fg:var(--bs-warning-fg);--bs-theme-fg-emphasis:var(--bs-warning-fg-emphasis);--bs-theme-bg:var(--bs-warning-bg);--bs-theme-bg-subtle:var(--bs-warning-bg-subtle);--bs-theme-bg-muted:var(--bs-warning-bg-muted);--bs-theme-border:var(--bs-warning-border);--bs-theme-focus-ring:var(--bs-warning-focus-ring);--bs-theme-contrast:var(--bs-warning-contrast)}.theme-info{--bs-theme-base:var(--bs-info-base);--bs-theme-fg:var(--bs-info-fg);--bs-theme-fg-emphasis:var(--bs-info-fg-emphasis);--bs-theme-bg:var(--bs-info-bg);--bs-theme-bg-subtle:var(--bs-info-bg-subtle);--bs-theme-bg-muted:var(--bs-info-bg-muted);--bs-theme-border:var(--bs-info-border);--bs-theme-focus-ring:var(--bs-info-focus-ring);--bs-theme-contrast:var(--bs-info-contrast)}.theme-inverse{--bs-theme-base:var(--bs-inverse-base);--bs-theme-fg:var(--bs-inverse-fg);--bs-theme-fg-emphasis:var(--bs-inverse-fg-emphasis);--bs-theme-bg:var(--bs-inverse-bg);--bs-theme-bg-subtle:var(--bs-inverse-bg-subtle);--bs-theme-bg-muted:var(--bs-inverse-bg-muted);--bs-theme-border:var(--bs-inverse-border);--bs-theme-focus-ring:var(--bs-inverse-focus-ring);--bs-theme-contrast:var(--bs-inverse-contrast)}.theme-secondary{--bs-theme-base:var(--bs-secondary-base);--bs-theme-fg:var(--bs-secondary-fg);--bs-theme-fg-emphasis:var(--bs-secondary-fg-emphasis);--bs-theme-bg:var(--bs-secondary-bg);--bs-theme-bg-subtle:var(--bs-secondary-bg-subtle);--bs-theme-bg-muted:var(--bs-secondary-bg-muted);--bs-theme-border:var(--bs-secondary-border);--bs-theme-focus-ring:var(--bs-secondary-focus-ring);--bs-theme-contrast:var(--bs-secondary-contrast)}.visually-hidden,.visually-hidden-focusable:not(:focus,:focus-within){clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus,:focus-within):not(caption){position:absolute!important}.visually-hidden *,.visually-hidden-focusable:not(:focus,:focus-within) *{overflow:hidden!important}.stretched-link:after{z-index:1;content:"";position:absolute;inset:0}.text-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vr{width:var(--bs-vr-border-width,var(--bs-border-width));background-color:var(--bs-border-color);align-self:stretch;min-height:1em;display:inline-block}}@layer utilities{.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.align-text-bottom{vertical-align:text-bottom}.align-text-top{vertical-align:text-top}[class*=ratio-]{aspect-ratio:var(--bs-ratio)}.ratio-auto{--bs-ratio:auto}.ratio-1x1{--bs-ratio:1 / 1}.ratio-4x3{--bs-ratio:4 / 3}.ratio-16x9{--bs-ratio:16 / 9}.ratio-21x9{--bs-ratio:21 / 9}.float-start{float:inline-start}.float-end{float:inline-end}.float-none{float:none}.object-fit-contain{object-fit:contain}.object-fit-cover{object-fit:cover}.object-fit-fill{object-fit:fill}.object-fit-scale{object-fit:scale-down}.object-fit-none{object-fit:none}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-x-visible{overflow-x:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-y-visible{overflow-y:visible}.overflow-y-scroll{overflow-y:scroll}.contains-inline{container-type:inline-size}.contains-size{container-type:size}.d-inline{display:inline}.d-inline-block{display:inline-block}.d-block{display:block}.d-grid{display:grid}.d-inline-grid{display:inline-grid}.d-table{display:table}.d-table-row{display:table-row}.d-table-cell{display:table-cell}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.d-contents{display:contents}.d-flow-root{display:flow-root}.d-none{display:none}.shadow{box-shadow:var(--bs-box-shadow)}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)}.shadow-none{box-shadow:none}.position-static{position:static}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}.position-sticky{position:sticky}.top-0{top:0}.top-50{top:50%}.top-100{top:100%}.bottom-0{bottom:0}.bottom-50{bottom:50%}.bottom-100{bottom:100%}.start-0{inset-inline-start:0}.start-50{inset-inline-start:50%}.start-100{inset-inline-start:100%}.end-0{inset-inline-end:0}.end-50{inset-inline-end:50%}.end-100{inset-inline-end:100%}.translate-middle{transform:translate(-50%,-50%)}.translate-middle-x{transform:translate(-50%)}.translate-middle-y{transform:translateY(-50%)}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-0{border:0}.border-top{border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-top-0{border-block-start:0}.border-end{border-inline-end:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-end-0{border-inline-end:0}.border-bottom{border-block-end:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-bottom-0{border-block-end:0}.border-start{border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-start-0{border-inline-start:0}.border-y{border-block:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-y-0{border-block:0}.border-x{border-inline:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-x-0{border-inline:0}.border-primary{--bs-border-color:var(--bs-primary-bg);border-color:var(--bs-border-color)}.border-accent{--bs-border-color:var(--bs-accent-bg);border-color:var(--bs-border-color)}.border-success{--bs-border-color:var(--bs-success-bg);border-color:var(--bs-border-color)}.border-danger{--bs-border-color:var(--bs-danger-bg);border-color:var(--bs-border-color)}.border-warning{--bs-border-color:var(--bs-warning-bg);border-color:var(--bs-border-color)}.border-info{--bs-border-color:var(--bs-info-bg);border-color:var(--bs-border-color)}.border-inverse{--bs-border-color:var(--bs-inverse-bg);border-color:var(--bs-border-color)}.border-secondary{--bs-border-color:var(--bs-secondary-bg);border-color:var(--bs-border-color)}.border-bg{--bs-border-color:var(--bs-border-bg);border-color:var(--bs-border-color)}.border-body{--bs-border-color:var(--bs-border-body);border-color:var(--bs-border-color)}.border-muted{--bs-border-color:var(--bs-border-muted);border-color:var(--bs-border-color)}.border-subtle{--bs-border-color:var(--bs-border-subtle);border-color:var(--bs-border-color)}.border-emphasized{--bs-border-color:var(--bs-border-emphasized);border-color:var(--bs-border-color)}.border-white{--bs-border-color:var(--bs-border-white);border-color:var(--bs-border-color)}.border-black{--bs-border-color:var(--bs-border-black);border-color:var(--bs-border-color)}.border-subtle-primary{--bs-border-color:var(--bs-primary-border);border-color:var(--bs-border-color)}.border-subtle-accent{--bs-border-color:var(--bs-accent-border);border-color:var(--bs-border-color)}.border-subtle-success{--bs-border-color:var(--bs-success-border);border-color:var(--bs-border-color)}.border-subtle-danger{--bs-border-color:var(--bs-danger-border);border-color:var(--bs-border-color)}.border-subtle-warning{--bs-border-color:var(--bs-warning-border);border-color:var(--bs-border-color)}.border-subtle-info{--bs-border-color:var(--bs-info-border);border-color:var(--bs-border-color)}.border-subtle-inverse{--bs-border-color:var(--bs-inverse-border);border-color:var(--bs-border-color)}.border-subtle-secondary{--bs-border-color:var(--bs-secondary-border);border-color:var(--bs-border-color)}.border-1{border-width:1px}.border-2{border-width:2px}.border-3{border-width:3px}.border-4{border-width:4px}.border-5{border-width:5px}.border-10{border-color:color-mix(in oklch, var(--bs-border-color) 10%, transparent)}.border-20{border-color:color-mix(in oklch, var(--bs-border-color) 20%, transparent)}.border-30{border-color:color-mix(in oklch, var(--bs-border-color) 30%, transparent)}.border-40{border-color:color-mix(in oklch, var(--bs-border-color) 40%, transparent)}.border-50{border-color:color-mix(in oklch, var(--bs-border-color) 50%, transparent)}.border-60{border-color:color-mix(in oklch, var(--bs-border-color) 60%, transparent)}.border-70{border-color:color-mix(in oklch, var(--bs-border-color) 70%, transparent)}.border-80{border-color:color-mix(in oklch, var(--bs-border-color) 80%, transparent)}.border-90{border-color:color-mix(in oklch, var(--bs-border-color) 90%, transparent)}.border-100{border-color:var(--bs-border-color)}.w-1{width:1rem}.w-2{width:2rem}.w-3{width:3rem}.w-4{width:4rem}.w-5{width:5rem}.w-6{width:6rem}.w-7{width:7rem}.w-8{width:8rem}.w-9{width:9rem}.w-10{width:10rem}.w-11{width:11rem}.w-12{width:12rem}.w-25{width:25%}.w-50{width:50%}.w-75{width:75%}.w-100{width:100%}.w-auto{width:auto}.w-min{width:min-content}.w-max{width:max-content}.w-fit{width:fit-content}.max-w-100{max-width:100%}.min-w-0{min-width:0}.min-w-100{min-width:100%}.vw-100{width:100vw}.min-vw-100{min-width:100vw}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.h-auto{height:auto}.h-min{height:min-content}.h-max{height:max-content}.h-fit{height:fit-content}.max-h-100{max-height:100%}.min-h-0{min-height:0}.min-h-100{min-height:100%}.vh-100{height:100vh}.min-vh-100{min-height:100vh}.flex-fill{flex:auto}.flex-row{flex-direction:row}.flex-column{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-column-reverse{flex-direction:column-reverse}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.justify-content-start{justify-content:flex-start}.justify-content-end{justify-content:flex-end}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.justify-content-around{justify-content:space-around}.justify-content-evenly{justify-content:space-evenly}.justify-items-start{justify-items:start}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.justify-items-stretch{justify-items:stretch}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.align-items-start{align-items:flex-start}.align-items-end{align-items:flex-end}.align-items-center{align-items:center}.align-items-baseline{align-items:baseline}.align-items-stretch{align-items:stretch}.align-content-start{align-content:flex-start}.align-content-end{align-content:flex-end}.align-content-center{align-content:center}.align-content-between{align-content:space-between}.align-content-around{align-content:space-around}.align-content-stretch{align-content:stretch}.align-self-auto{align-self:auto}.align-self-start{align-self:flex-start}.align-self-end{align-self:flex-end}.align-self-center{align-self:center}.align-self-baseline{align-self:baseline}.align-self-stretch{align-self:stretch}.place-items-start{place-items:start}.place-items-end{place-items:end}.place-items-center{place-items:center}.place-items-stretch{place-items:stretch stretch}.grid-cols-1{grid-template-columns:1fr}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.grid-cols-6{grid-template-columns:repeat(6,1fr)}.grid-cols-fill{grid-column:1/-1}.grid-auto-flow-row{grid-auto-flow:row}.grid-auto-flow-column{grid-auto-flow:column}.grid-auto-flow-dense{grid-auto-flow:dense}.order-first{order:-1}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-last{order:6}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-3{margin:.75rem}.m-4{margin:1rem}.m-5{margin:1.25rem}.m-6{margin:1.5rem}.m-7{margin:2rem}.m-8{margin:2.5rem}.m-9{margin:3rem}.m-auto{margin:auto}.mx-0{margin-inline:0}.mx-1{margin-inline:.25rem}.mx-2{margin-inline:.5rem}.mx-3{margin-inline:.75rem}.mx-4{margin-inline:1rem}.mx-5{margin-inline:1.25rem}.mx-6{margin-inline:1.5rem}.mx-7{margin-inline:2rem}.mx-8{margin-inline:2.5rem}.mx-9{margin-inline:3rem}.mx-auto{margin-inline:auto}.my-0{margin-block:0}.my-1{margin-block:.25rem}.my-2{margin-block:.5rem}.my-3{margin-block:.75rem}.my-4{margin-block:1rem}.my-5{margin-block:1.25rem}.my-6{margin-block:1.5rem}.my-7{margin-block:2rem}.my-8{margin-block:2.5rem}.my-9{margin-block:3rem}.my-auto{margin-block:auto}.mt-0{margin-block-start:0}.mt-1{margin-block-start:.25rem}.mt-2{margin-block-start:.5rem}.mt-3{margin-block-start:.75rem}.mt-4{margin-block-start:1rem}.mt-5{margin-block-start:1.25rem}.mt-6{margin-block-start:1.5rem}.mt-7{margin-block-start:2rem}.mt-8{margin-block-start:2.5rem}.mt-9{margin-block-start:3rem}.mt-auto{margin-block-start:auto}.me-0{margin-inline-end:0}.me-1{margin-inline-end:.25rem}.me-2{margin-inline-end:.5rem}.me-3{margin-inline-end:.75rem}.me-4{margin-inline-end:1rem}.me-5{margin-inline-end:1.25rem}.me-6{margin-inline-end:1.5rem}.me-7{margin-inline-end:2rem}.me-8{margin-inline-end:2.5rem}.me-9{margin-inline-end:3rem}.me--1{margin-inline-end:-.25rem}.me--2{margin-inline-end:-.5rem}.me-auto{margin-inline-end:auto}.mb-0{margin-block-end:0}.mb-1{margin-block-end:.25rem}.mb-2{margin-block-end:.5rem}.mb-3{margin-block-end:.75rem}.mb-4{margin-block-end:1rem}.mb-5{margin-block-end:1.25rem}.mb-6{margin-block-end:1.5rem}.mb-7{margin-block-end:2rem}.mb-8{margin-block-end:2.5rem}.mb-9{margin-block-end:3rem}.mb-auto{margin-block-end:auto}.ms-0{margin-inline-start:0}.ms-1{margin-inline-start:.25rem}.ms-2{margin-inline-start:.5rem}.ms-3{margin-inline-start:.75rem}.ms-4{margin-inline-start:1rem}.ms-5{margin-inline-start:1.25rem}.ms-6{margin-inline-start:1.5rem}.ms-7{margin-inline-start:2rem}.ms-8{margin-inline-start:2.5rem}.ms-9{margin-inline-start:3rem}.ms--1{margin-inline-start:-.25rem}.ms--2{margin-inline-start:-.5rem}.ms-auto{margin-inline-start:auto}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:2rem}.p-8{padding:2.5rem}.p-9{padding:3rem}.px-0{padding-inline:0}.px-1{padding-inline:.25rem}.px-2{padding-inline:.5rem}.px-3{padding-inline:.75rem}.px-4{padding-inline:1rem}.px-5{padding-inline:1.25rem}.px-6{padding-inline:1.5rem}.px-7{padding-inline:2rem}.px-8{padding-inline:2.5rem}.px-9{padding-inline:3rem}.py-0{padding-block:0}.py-1{padding-block:.25rem}.py-2{padding-block:.5rem}.py-3{padding-block:.75rem}.py-4{padding-block:1rem}.py-5{padding-block:1.25rem}.py-6{padding-block:1.5rem}.py-7{padding-block:2rem}.py-8{padding-block:2.5rem}.py-9{padding-block:3rem}.pt-0{padding-block-start:0}.pt-1{padding-block-start:.25rem}.pt-2{padding-block-start:.5rem}.pt-3{padding-block-start:.75rem}.pt-4{padding-block-start:1rem}.pt-5{padding-block-start:1.25rem}.pt-6{padding-block-start:1.5rem}.pt-7{padding-block-start:2rem}.pt-8{padding-block-start:2.5rem}.pt-9{padding-block-start:3rem}.pe-0{padding-inline-end:0}.pe-1{padding-inline-end:.25rem}.pe-2{padding-inline-end:.5rem}.pe-3{padding-inline-end:.75rem}.pe-4{padding-inline-end:1rem}.pe-5{padding-inline-end:1.25rem}.pe-6{padding-inline-end:1.5rem}.pe-7{padding-inline-end:2rem}.pe-8{padding-inline-end:2.5rem}.pe-9{padding-inline-end:3rem}.pb-0{padding-block-end:0}.pb-1{padding-block-end:.25rem}.pb-2{padding-block-end:.5rem}.pb-3{padding-block-end:.75rem}.pb-4{padding-block-end:1rem}.pb-5{padding-block-end:1.25rem}.pb-6{padding-block-end:1.5rem}.pb-7{padding-block-end:2rem}.pb-8{padding-block-end:2.5rem}.pb-9{padding-block-end:3rem}.ps-0{padding-inline-start:0}.ps-1{padding-inline-start:.25rem}.ps-2{padding-inline-start:.5rem}.ps-3{padding-inline-start:.75rem}.ps-4{padding-inline-start:1rem}.ps-5{padding-inline-start:1.25rem}.ps-6{padding-inline-start:1.5rem}.ps-7{padding-inline-start:2rem}.ps-8{padding-inline-start:2.5rem}.ps-9{padding-inline-start:3rem}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:2rem}.gap-8{gap:2.5rem}.gap-9{gap:3rem}.row-gap-0{row-gap:0}.row-gap-1{row-gap:.25rem}.row-gap-2{row-gap:.5rem}.row-gap-3{row-gap:.75rem}.row-gap-4{row-gap:1rem}.row-gap-5{row-gap:1.25rem}.row-gap-6{row-gap:1.5rem}.row-gap-7{row-gap:2rem}.row-gap-8{row-gap:2.5rem}.row-gap-9{row-gap:3rem}.column-gap-0{column-gap:0}.column-gap-1{column-gap:.25rem}.column-gap-2{column-gap:.5rem}.column-gap-3{column-gap:.75rem}.column-gap-4{column-gap:1rem}.column-gap-5{column-gap:1.25rem}.column-gap-6{column-gap:1.5rem}.column-gap-7{column-gap:2rem}.column-gap-8{column-gap:2.5rem}.column-gap-9{column-gap:3rem}:where(.space-x-0>:not(:last-child)){margin-inline-end:0}:where(.space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.space-y-0>:not(:last-child)){margin-block-end:0}:where(.space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.divide-x-0>:not(:first-child)){border-inline-start:0}:where(.divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.divide-y-0>:not(:first-child)){border-block-start:0}.font-monospace{font-family:var(--bs-font-mono)}.font-body{font-family:var(--bs-body-font-family)}.fs-xs{font-size:.75rem}.fs-sm{font-size:.875rem}.fs-md{font-size:1rem}.fs-lg{font-size:clamp(1.25rem,1rem + .625vw,1.5rem)}.fs-xl{font-size:clamp(1.5rem,1.1rem + .75vw,1.75rem)}.fs-2xl{font-size:clamp(1.75rem,1.3rem + 1vw,2rem)}.fs-3xl{font-size:clamp(2rem,1.5rem + 1.875vw,2.5rem)}.fs-4xl{font-size:clamp(2.25rem,1.75rem + 2.5vw,3rem)}.fs-5xl{font-size:clamp(3rem,2rem + 5vw,4rem)}.fs-6xl{font-size:clamp(3.75rem,2.5rem + 6.25vw,5rem)}.text-xs{font-size:.75rem;line-height:1.25}.text-sm{font-size:.875rem;line-height:1.5}.text-md{font-size:1rem;line-height:1.5}.text-lg{font-size:clamp(1.25rem,1rem + .625vw,1.5rem);line-height:1.5}.text-xl{font-size:clamp(1.5rem,1.1rem + .75vw,1.75rem);line-height:1.42857}.text-2xl{font-size:clamp(1.75rem,1.3rem + 1vw,2rem);line-height:1.33333}.text-3xl{font-size:clamp(2rem,1.5rem + 1.875vw,2.5rem);line-height:1.2}.text-4xl{font-size:clamp(2.25rem,1.75rem + 2.5vw,3rem);line-height:1.1}.text-5xl{font-size:clamp(3rem,2rem + 5vw,4rem);line-height:1.1}.text-6xl{font-size:clamp(3.75rem,2.5rem + 6.25vw,5rem);line-height:1}.fst-italic{font-style:italic}.fst-normal{font-style:normal}.fw-lighter{font-weight:lighter}.fw-light{font-weight:300}.fw-normal{font-weight:400}.fw-medium{font-weight:500}.fw-semibold{font-weight:600}.fw-bold{font-weight:700}.fw-bolder{font-weight:bolder}.lh-1{line-height:1}.lh-sm{line-height:1.25}.lh-base{line-height:1.5}.lh-lg{line-height:2}.text-start{text-align:start}.text-end{text-align:end}.text-center{text-align:center}.text-decoration-none{text-decoration:none}.text-decoration-underline{text-decoration:underline}.text-decoration-line-through{text-decoration:line-through}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-wrap{text-wrap:wrap}.text-nowrap{text-wrap:nowrap}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.text-break{word-wrap:break-word;word-break:break-word}.fg-primary{--bs-fg:var(--bs-primary-fg);color:var(--bs-fg)}.fg-accent{--bs-fg:var(--bs-accent-fg);color:var(--bs-fg)}.fg-success{--bs-fg:var(--bs-success-fg);color:var(--bs-fg)}.fg-danger{--bs-fg:var(--bs-danger-fg);color:var(--bs-fg)}.fg-warning{--bs-fg:var(--bs-warning-fg);color:var(--bs-fg)}.fg-info{--bs-fg:var(--bs-info-fg);color:var(--bs-fg)}.fg-inverse{--bs-fg:var(--bs-inverse-fg);color:var(--bs-fg)}.fg-secondary{--bs-fg:var(--bs-secondary-fg);color:var(--bs-fg)}.fg-body{--bs-fg:var(--bs-fg-body);color:var(--bs-fg)}.fg-1{--bs-fg:var(--bs-fg-1);color:var(--bs-fg)}.fg-2{--bs-fg:var(--bs-fg-2);color:var(--bs-fg)}.fg-3{--bs-fg:var(--bs-fg-3);color:var(--bs-fg)}.fg-4{--bs-fg:var(--bs-fg-4);color:var(--bs-fg)}.fg-bg{--bs-fg:var(--bs-fg-bg);color:var(--bs-fg)}.fg-white{--bs-fg:var(--bs-fg-white);color:var(--bs-fg)}.fg-black{--bs-fg:var(--bs-fg-black);color:var(--bs-fg)}.fg-reset{--bs-fg:inherit;color:var(--bs-fg)}.fg-emphasis-primary{--bs-fg:var(--bs-primary-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-accent{--bs-fg:var(--bs-accent-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-success{--bs-fg:var(--bs-success-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-danger{--bs-fg:var(--bs-danger-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-warning{--bs-fg:var(--bs-warning-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-info{--bs-fg:var(--bs-info-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-inverse{--bs-fg:var(--bs-inverse-fg-emphasis);color:var(--bs-fg)}.fg-emphasis-secondary{--bs-fg:var(--bs-secondary-fg-emphasis);color:var(--bs-fg)}.fg-contrast-primary{--bs-fg:var(--bs-primary-contrast);color:var(--bs-fg)}.fg-contrast-accent{--bs-fg:var(--bs-accent-contrast);color:var(--bs-fg)}.fg-contrast-success{--bs-fg:var(--bs-success-contrast);color:var(--bs-fg)}.fg-contrast-danger{--bs-fg:var(--bs-danger-contrast);color:var(--bs-fg)}.fg-contrast-warning{--bs-fg:var(--bs-warning-contrast);color:var(--bs-fg)}.fg-contrast-info{--bs-fg:var(--bs-info-contrast);color:var(--bs-fg)}.fg-contrast-inverse{--bs-fg:var(--bs-inverse-contrast);color:var(--bs-fg)}.fg-contrast-secondary{--bs-fg:var(--bs-secondary-contrast);color:var(--bs-fg)}.fg-10{color:color-mix(in oklch, var(--bs-fg) 10%, transparent)}.fg-20{color:color-mix(in oklch, var(--bs-fg) 20%, transparent)}.fg-30{color:color-mix(in oklch, var(--bs-fg) 30%, transparent)}.fg-40{color:color-mix(in oklch, var(--bs-fg) 40%, transparent)}.fg-50{color:color-mix(in oklch, var(--bs-fg) 50%, transparent)}.fg-60{color:color-mix(in oklch, var(--bs-fg) 60%, transparent)}.fg-70{color:color-mix(in oklch, var(--bs-fg) 70%, transparent)}.fg-80{color:color-mix(in oklch, var(--bs-fg) 80%, transparent)}.fg-90{color:color-mix(in oklch, var(--bs-fg) 90%, transparent)}.fg-100{color:var(--bs-fg)}.link-10,.hover\:link-10:hover{color:color-mix(in oklch, var(--bs-link-color) 10%, transparent)}.link-20,.hover\:link-20:hover{color:color-mix(in oklch, var(--bs-link-color) 20%, transparent)}.link-30,.hover\:link-30:hover{color:color-mix(in oklch, var(--bs-link-color) 30%, transparent)}.link-40,.hover\:link-40:hover{color:color-mix(in oklch, var(--bs-link-color) 40%, transparent)}.link-50,.hover\:link-50:hover{color:color-mix(in oklch, var(--bs-link-color) 50%, transparent)}.link-60,.hover\:link-60:hover{color:color-mix(in oklch, var(--bs-link-color) 60%, transparent)}.link-70,.hover\:link-70:hover{color:color-mix(in oklch, var(--bs-link-color) 70%, transparent)}.link-80,.hover\:link-80:hover{color:color-mix(in oklch, var(--bs-link-color) 80%, transparent)}.link-90,.hover\:link-90:hover{color:color-mix(in oklch, var(--bs-link-color) 90%, transparent)}.link-100,.hover\:link-100:hover{color:var(--bs-link-color)}.underline-offset-1,.hover\:underline-offset-1:hover{text-underline-offset:.125em}.underline-offset-2,.hover\:underline-offset-2:hover{text-underline-offset:.25em}.underline-offset-3,.hover\:underline-offset-3:hover{text-underline-offset:.375em}.underline-primary{-webkit-text-decoration-color:light-dark(var(--bs-blue-600),var(--bs-blue-400));text-decoration-color:light-dark(var(--bs-blue-600),var(--bs-blue-400))}.underline-accent{-webkit-text-decoration-color:light-dark(var(--bs-indigo-600),color-mix(in oklch, var(--bs-indigo-400), var(--bs-indigo-300)));text-decoration-color:light-dark(var(--bs-indigo-600),color-mix(in oklch, var(--bs-indigo-400), var(--bs-indigo-300)))}.underline-success{-webkit-text-decoration-color:light-dark(var(--bs-green-600),var(--bs-green-400));text-decoration-color:light-dark(var(--bs-green-600),var(--bs-green-400))}.underline-danger{-webkit-text-decoration-color:light-dark(var(--bs-red-600),var(--bs-red-400));text-decoration-color:light-dark(var(--bs-red-600),var(--bs-red-400))}.underline-warning{-webkit-text-decoration-color:light-dark(var(--bs-yellow-700),var(--bs-yellow-400));text-decoration-color:light-dark(var(--bs-yellow-700),var(--bs-yellow-400))}.underline-info{-webkit-text-decoration-color:light-dark(var(--bs-cyan-600),var(--bs-cyan-400));text-decoration-color:light-dark(var(--bs-cyan-600),var(--bs-cyan-400))}.underline-inverse{-webkit-text-decoration-color:light-dark(var(--bs-gray-900),var(--bs-gray-200));text-decoration-color:light-dark(var(--bs-gray-900),var(--bs-gray-200))}.underline-secondary{-webkit-text-decoration-color:light-dark(var(--bs-gray-600),var(--bs-gray-400));text-decoration-color:light-dark(var(--bs-gray-600),var(--bs-gray-400))}.underline-10,.hover\:underline-10:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 10%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 10%, transparent)}.underline-20,.hover\:underline-20:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 20%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 20%, transparent)}.underline-30,.hover\:underline-30:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 30%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 30%, transparent)}.underline-40,.hover\:underline-40:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 40%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 40%, transparent)}.underline-50,.hover\:underline-50:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 50%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 50%, transparent)}.underline-60,.hover\:underline-60:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 60%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 60%, transparent)}.underline-70,.hover\:underline-70:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 70%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 70%, transparent)}.underline-80,.hover\:underline-80:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 80%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 80%, transparent)}.underline-90,.hover\:underline-90:hover{-webkit-text-decoration-color:color-mix(in oklch, var(--bs-link-color) 90%, transparent);text-decoration-color:color-mix(in oklch, var(--bs-link-color) 90%, transparent)}.underline-100,.hover\:underline-100:hover{-webkit-text-decoration-color:var(--bs-link-color);text-decoration-color:var(--bs-link-color)}.underline-thickness-1,.hover\:underline-thickness-1:hover{text-decoration-thickness:1px}.underline-thickness-2,.hover\:underline-thickness-2:hover{text-decoration-thickness:2px}.underline-thickness-3,.hover\:underline-thickness-3:hover{text-decoration-thickness:3px}.underline-thickness-4,.hover\:underline-thickness-4:hover{text-decoration-thickness:4px}.underline-thickness-5,.hover\:underline-thickness-5:hover{text-decoration-thickness:5px}.bg-primary{--bs-bg:var(--bs-primary-bg);background-color:var(--bs-bg)}.bg-accent{--bs-bg:var(--bs-accent-bg);background-color:var(--bs-bg)}.bg-success{--bs-bg:var(--bs-success-bg);background-color:var(--bs-bg)}.bg-danger{--bs-bg:var(--bs-danger-bg);background-color:var(--bs-bg)}.bg-warning{--bs-bg:var(--bs-warning-bg);background-color:var(--bs-bg)}.bg-info{--bs-bg:var(--bs-info-bg);background-color:var(--bs-bg)}.bg-inverse{--bs-bg:var(--bs-inverse-bg);background-color:var(--bs-bg)}.bg-secondary{--bs-bg:var(--bs-secondary-bg);background-color:var(--bs-bg)}.bg-body{--bs-bg:var(--bs-bg-body);background-color:var(--bs-bg)}.bg-1{--bs-bg:var(--bs-bg-1);background-color:var(--bs-bg)}.bg-2{--bs-bg:var(--bs-bg-2);background-color:var(--bs-bg)}.bg-3{--bs-bg:var(--bs-bg-3);background-color:var(--bs-bg)}.bg-4{--bs-bg:var(--bs-bg-4);background-color:var(--bs-bg)}.bg-fg{--bs-bg:var(--bs-bg-fg);background-color:var(--bs-bg)}.bg-white{--bs-bg:var(--bs-bg-white);background-color:var(--bs-bg)}.bg-black{--bs-bg:var(--bs-bg-black);background-color:var(--bs-bg)}.bg-transparent{--bs-bg:var(--bs-bg-transparent);background-color:var(--bs-bg)}.bg-subtle-primary{--bs-bg:var(--bs-primary-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-accent{--bs-bg:var(--bs-accent-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-success{--bs-bg:var(--bs-success-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-danger{--bs-bg:var(--bs-danger-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-warning{--bs-bg:var(--bs-warning-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-info{--bs-bg:var(--bs-info-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-inverse{--bs-bg:var(--bs-inverse-bg-subtle);background-color:var(--bs-bg)}.bg-subtle-secondary{--bs-bg:var(--bs-secondary-bg-subtle);background-color:var(--bs-bg)}.bg-muted-primary{--bs-bg:var(--bs-primary-bg-muted);background-color:var(--bs-bg)}.bg-muted-accent{--bs-bg:var(--bs-accent-bg-muted);background-color:var(--bs-bg)}.bg-muted-success{--bs-bg:var(--bs-success-bg-muted);background-color:var(--bs-bg)}.bg-muted-danger{--bs-bg:var(--bs-danger-bg-muted);background-color:var(--bs-bg)}.bg-muted-warning{--bs-bg:var(--bs-warning-bg-muted);background-color:var(--bs-bg)}.bg-muted-info{--bs-bg:var(--bs-info-bg-muted);background-color:var(--bs-bg)}.bg-muted-inverse{--bs-bg:var(--bs-inverse-bg-muted);background-color:var(--bs-bg)}.bg-muted-secondary{--bs-bg:var(--bs-secondary-bg-muted);background-color:var(--bs-bg)}.bg-10{background-color:color-mix(in oklch, var(--bs-bg) 10%, transparent)}.bg-20{background-color:color-mix(in oklch, var(--bs-bg) 20%, transparent)}.bg-30{background-color:color-mix(in oklch, var(--bs-bg) 30%, transparent)}.bg-40{background-color:color-mix(in oklch, var(--bs-bg) 40%, transparent)}.bg-50{background-color:color-mix(in oklch, var(--bs-bg) 50%, transparent)}.bg-60{background-color:color-mix(in oklch, var(--bs-bg) 60%, transparent)}.bg-70{background-color:color-mix(in oklch, var(--bs-bg) 70%, transparent)}.bg-80{background-color:color-mix(in oklch, var(--bs-bg) 80%, transparent)}.bg-90{background-color:color-mix(in oklch, var(--bs-bg) 90%, transparent)}.bg-100{background-color:var(--bs-bg)}.theme-contrast{background-color:var(--bs-theme-bg);color:var(--bs-theme-contrast)}.theme-subtle{background-color:var(--bs-theme-bg-subtle);color:var(--bs-theme-fg)}.theme-muted{background-color:var(--bs-theme-bg-muted);color:var(--bs-theme-fg-emphasis)}.theme-border{border:var(--bs-border-width) solid var(--bs-theme-border)}.bg-gradient{background-image:var(--bs-gradient)}.user-select-all{-webkit-user-select:all;user-select:all}.user-select-auto{-webkit-user-select:auto;user-select:auto}.user-select-text{-webkit-user-select:text;user-select:text}.user-select-none{-webkit-user-select:none;user-select:none}.pe-none{pointer-events:none}.pe-auto{pointer-events:auto}.rounded-0{--bs-rounded-size:0;border-radius:var(--bs-rounded-size)}.rounded-1{--bs-rounded-size:.125rem;border-radius:var(--bs-rounded-size)}.rounded-2{--bs-rounded-size:.1875rem;border-radius:var(--bs-rounded-size)}.rounded-3{--bs-rounded-size:.25rem;border-radius:var(--bs-rounded-size)}.rounded-4{--bs-rounded-size:.375rem;border-radius:var(--bs-rounded-size)}.rounded-5{--bs-rounded-size:.5rem;border-radius:var(--bs-rounded-size)}.rounded-6{--bs-rounded-size:.625rem;border-radius:var(--bs-rounded-size)}.rounded-7{--bs-rounded-size:.75rem;border-radius:var(--bs-rounded-size)}.rounded-8{--bs-rounded-size:1rem;border-radius:var(--bs-rounded-size)}.rounded-9{--bs-rounded-size:1.5rem;border-radius:var(--bs-rounded-size)}.rounded{--bs-rounded-size:.5rem;border-radius:var(--bs-rounded-size)}.rounded-circle{--bs-rounded-size:50%;border-radius:var(--bs-rounded-size)}.rounded-pill{--bs-rounded-size:var(--bs-radius-pill);border-radius:var(--bs-rounded-size)}.rounded-size-0{--bs-rounded-size:0}.rounded-size-1{--bs-rounded-size:.125rem}.rounded-size-2{--bs-rounded-size:.1875rem}.rounded-size-3{--bs-rounded-size:.25rem}.rounded-size-4{--bs-rounded-size:.375rem}.rounded-size-5{--bs-rounded-size:.5rem}.rounded-size-6{--bs-rounded-size:.625rem}.rounded-size-7{--bs-rounded-size:.75rem}.rounded-size-8{--bs-rounded-size:1rem}.rounded-size-9{--bs-rounded-size:1.5rem}.rounded-size{--bs-rounded-size:.5rem}.rounded-size-circle{--bs-rounded-size:50%}.rounded-size-pill{--bs-rounded-size:var(--bs-radius-pill)}.rounded-top-0{border-start-start-radius:0;border-start-end-radius:0}.rounded-top-1{border-start-start-radius:.125rem;border-start-end-radius:.125rem}.rounded-top-2{border-start-start-radius:.1875rem;border-start-end-radius:.1875rem}.rounded-top-3{border-start-start-radius:.25rem;border-start-end-radius:.25rem}.rounded-top-4{border-start-start-radius:.375rem;border-start-end-radius:.375rem}.rounded-top-5{border-start-start-radius:.5rem;border-start-end-radius:.5rem}.rounded-top-6{border-start-start-radius:.625rem;border-start-end-radius:.625rem}.rounded-top-7{border-start-start-radius:.75rem;border-start-end-radius:.75rem}.rounded-top-8{border-start-start-radius:1rem;border-start-end-radius:1rem}.rounded-top-9{border-start-start-radius:1.5rem;border-start-end-radius:1.5rem}.rounded-top{border-start-start-radius:var(--bs-rounded-size,var(--bs-radius-5));border-start-end-radius:var(--bs-rounded-size,var(--bs-radius-5))}.rounded-top-circle{border-start-start-radius:50%;border-start-end-radius:50%}.rounded-top-pill{border-start-start-radius:var(--bs-radius-pill);border-start-end-radius:var(--bs-radius-pill)}.rounded-end-0{border-start-end-radius:0;border-end-end-radius:0}.rounded-end-1{border-start-end-radius:.125rem;border-end-end-radius:.125rem}.rounded-end-2{border-start-end-radius:.1875rem;border-end-end-radius:.1875rem}.rounded-end-3{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-end-4{border-start-end-radius:.375rem;border-end-end-radius:.375rem}.rounded-end-5{border-start-end-radius:.5rem;border-end-end-radius:.5rem}.rounded-end-6{border-start-end-radius:.625rem;border-end-end-radius:.625rem}.rounded-end-7{border-start-end-radius:.75rem;border-end-end-radius:.75rem}.rounded-end-8{border-start-end-radius:1rem;border-end-end-radius:1rem}.rounded-end-9{border-start-end-radius:1.5rem;border-end-end-radius:1.5rem}.rounded-end{border-start-end-radius:var(--bs-rounded-size,var(--bs-radius-5));border-end-end-radius:var(--bs-rounded-size,var(--bs-radius-5))}.rounded-end-circle{border-start-end-radius:50%;border-end-end-radius:50%}.rounded-end-pill{border-start-end-radius:var(--bs-radius-pill);border-end-end-radius:var(--bs-radius-pill)}.rounded-bottom-0{border-end-end-radius:0;border-end-start-radius:0}.rounded-bottom-1{border-end-end-radius:.125rem;border-end-start-radius:.125rem}.rounded-bottom-2{border-end-end-radius:.1875rem;border-end-start-radius:.1875rem}.rounded-bottom-3{border-end-end-radius:.25rem;border-end-start-radius:.25rem}.rounded-bottom-4{border-end-end-radius:.375rem;border-end-start-radius:.375rem}.rounded-bottom-5{border-end-end-radius:.5rem;border-end-start-radius:.5rem}.rounded-bottom-6{border-end-end-radius:.625rem;border-end-start-radius:.625rem}.rounded-bottom-7{border-end-end-radius:.75rem;border-end-start-radius:.75rem}.rounded-bottom-8{border-end-end-radius:1rem;border-end-start-radius:1rem}.rounded-bottom-9{border-end-end-radius:1.5rem;border-end-start-radius:1.5rem}.rounded-bottom{border-end-end-radius:var(--bs-rounded-size,var(--bs-radius-5));border-end-start-radius:var(--bs-rounded-size,var(--bs-radius-5))}.rounded-bottom-circle{border-end-end-radius:50%;border-end-start-radius:50%}.rounded-bottom-pill{border-end-end-radius:var(--bs-radius-pill);border-end-start-radius:var(--bs-radius-pill)}.rounded-start-0{border-start-start-radius:0;border-end-start-radius:0}.rounded-start-1{border-start-start-radius:.125rem;border-end-start-radius:.125rem}.rounded-start-2{border-start-start-radius:.1875rem;border-end-start-radius:.1875rem}.rounded-start-3{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-start-4{border-start-start-radius:.375rem;border-end-start-radius:.375rem}.rounded-start-5{border-start-start-radius:.5rem;border-end-start-radius:.5rem}.rounded-start-6{border-start-start-radius:.625rem;border-end-start-radius:.625rem}.rounded-start-7{border-start-start-radius:.75rem;border-end-start-radius:.75rem}.rounded-start-8{border-start-start-radius:1rem;border-end-start-radius:1rem}.rounded-start-9{border-start-start-radius:1.5rem;border-end-start-radius:1.5rem}.rounded-start{border-start-start-radius:var(--bs-rounded-size,var(--bs-radius-5));border-end-start-radius:var(--bs-rounded-size,var(--bs-radius-5))}.rounded-start-circle{border-start-start-radius:50%;border-end-start-radius:50%}.rounded-start-pill{border-start-start-radius:var(--bs-radius-pill);border-end-start-radius:var(--bs-radius-pill)}.visible{visibility:visible}.invisible{visibility:hidden}.z-n1{z-index:-1}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}@media (width>=576px){.sm\:float-start{float:inline-start}.sm\:float-end{float:inline-end}.sm\:float-none{float:none}.sm\:object-fit-contain{object-fit:contain}.sm\:object-fit-cover{object-fit:cover}.sm\:object-fit-fill{object-fit:fill}.sm\:object-fit-scale{object-fit:scale-down}.sm\:object-fit-none{object-fit:none}.sm\:d-inline{display:inline}.sm\:d-inline-block{display:inline-block}.sm\:d-block{display:block}.sm\:d-grid{display:grid}.sm\:d-inline-grid{display:inline-grid}.sm\:d-table{display:table}.sm\:d-table-row{display:table-row}.sm\:d-table-cell{display:table-cell}.sm\:d-flex{display:flex}.sm\:d-inline-flex{display:inline-flex}.sm\:d-contents{display:contents}.sm\:d-flow-root{display:flow-root}.sm\:d-none{display:none}.sm\:flex-fill{flex:auto}.sm\:flex-row{flex-direction:row}.sm\:flex-column{flex-direction:column}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:flex-column-reverse{flex-direction:column-reverse}.sm\:flex-grow-0{flex-grow:0}.sm\:flex-grow-1{flex-grow:1}.sm\:flex-shrink-0{flex-shrink:0}.sm\:flex-shrink-1{flex-shrink:1}.sm\:flex-wrap{flex-wrap:wrap}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:flex-wrap-reverse{flex-wrap:wrap-reverse}.sm\:justify-content-start{justify-content:flex-start}.sm\:justify-content-end{justify-content:flex-end}.sm\:justify-content-center{justify-content:center}.sm\:justify-content-between{justify-content:space-between}.sm\:justify-content-around{justify-content:space-around}.sm\:justify-content-evenly{justify-content:space-evenly}.sm\:justify-items-start{justify-items:start}.sm\:justify-items-end{justify-items:end}.sm\:justify-items-center{justify-items:center}.sm\:justify-items-stretch{justify-items:stretch}.sm\:justify-self-start{justify-self:start}.sm\:justify-self-end{justify-self:end}.sm\:justify-self-center{justify-self:center}.sm\:align-items-start{align-items:flex-start}.sm\:align-items-end{align-items:flex-end}.sm\:align-items-center{align-items:center}.sm\:align-items-baseline{align-items:baseline}.sm\:align-items-stretch{align-items:stretch}.sm\:align-content-start{align-content:flex-start}.sm\:align-content-end{align-content:flex-end}.sm\:align-content-center{align-content:center}.sm\:align-content-between{align-content:space-between}.sm\:align-content-around{align-content:space-around}.sm\:align-content-stretch{align-content:stretch}.sm\:align-self-auto{align-self:auto}.sm\:align-self-start{align-self:flex-start}.sm\:align-self-end{align-self:flex-end}.sm\:align-self-center{align-self:center}.sm\:align-self-baseline{align-self:baseline}.sm\:align-self-stretch{align-self:stretch}.sm\:place-items-start{place-items:start}.sm\:place-items-end{place-items:end}.sm\:place-items-center{place-items:center}.sm\:place-items-stretch{place-items:stretch stretch}.sm\:grid-cols-1{grid-template-columns:1fr}.sm\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.sm\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.sm\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.sm\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.sm\:grid-cols-fill{grid-column:1/-1}.sm\:grid-auto-flow-row{grid-auto-flow:row}.sm\:grid-auto-flow-column{grid-auto-flow:column}.sm\:grid-auto-flow-dense{grid-auto-flow:dense}.sm\:order-first{order:-1}.sm\:order-0{order:0}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:order-3{order:3}.sm\:order-4{order:4}.sm\:order-5{order:5}.sm\:order-last{order:6}.sm\:m-0{margin:0}.sm\:m-1{margin:.25rem}.sm\:m-2{margin:.5rem}.sm\:m-3{margin:.75rem}.sm\:m-4{margin:1rem}.sm\:m-5{margin:1.25rem}.sm\:m-6{margin:1.5rem}.sm\:m-7{margin:2rem}.sm\:m-8{margin:2.5rem}.sm\:m-9{margin:3rem}.sm\:m-auto{margin:auto}.sm\:mx-0{margin-inline:0}.sm\:mx-1{margin-inline:.25rem}.sm\:mx-2{margin-inline:.5rem}.sm\:mx-3{margin-inline:.75rem}.sm\:mx-4{margin-inline:1rem}.sm\:mx-5{margin-inline:1.25rem}.sm\:mx-6{margin-inline:1.5rem}.sm\:mx-7{margin-inline:2rem}.sm\:mx-8{margin-inline:2.5rem}.sm\:mx-9{margin-inline:3rem}.sm\:mx-auto{margin-inline:auto}.sm\:my-0{margin-block:0}.sm\:my-1{margin-block:.25rem}.sm\:my-2{margin-block:.5rem}.sm\:my-3{margin-block:.75rem}.sm\:my-4{margin-block:1rem}.sm\:my-5{margin-block:1.25rem}.sm\:my-6{margin-block:1.5rem}.sm\:my-7{margin-block:2rem}.sm\:my-8{margin-block:2.5rem}.sm\:my-9{margin-block:3rem}.sm\:my-auto{margin-block:auto}.sm\:mt-0{margin-block-start:0}.sm\:mt-1{margin-block-start:.25rem}.sm\:mt-2{margin-block-start:.5rem}.sm\:mt-3{margin-block-start:.75rem}.sm\:mt-4{margin-block-start:1rem}.sm\:mt-5{margin-block-start:1.25rem}.sm\:mt-6{margin-block-start:1.5rem}.sm\:mt-7{margin-block-start:2rem}.sm\:mt-8{margin-block-start:2.5rem}.sm\:mt-9{margin-block-start:3rem}.sm\:mt-auto{margin-block-start:auto}.sm\:me-0{margin-inline-end:0}.sm\:me-1{margin-inline-end:.25rem}.sm\:me-2{margin-inline-end:.5rem}.sm\:me-3{margin-inline-end:.75rem}.sm\:me-4{margin-inline-end:1rem}.sm\:me-5{margin-inline-end:1.25rem}.sm\:me-6{margin-inline-end:1.5rem}.sm\:me-7{margin-inline-end:2rem}.sm\:me-8{margin-inline-end:2.5rem}.sm\:me-9{margin-inline-end:3rem}.sm\:me--1{margin-inline-end:-.25rem}.sm\:me--2{margin-inline-end:-.5rem}.sm\:me-auto{margin-inline-end:auto}.sm\:mb-0{margin-block-end:0}.sm\:mb-1{margin-block-end:.25rem}.sm\:mb-2{margin-block-end:.5rem}.sm\:mb-3{margin-block-end:.75rem}.sm\:mb-4{margin-block-end:1rem}.sm\:mb-5{margin-block-end:1.25rem}.sm\:mb-6{margin-block-end:1.5rem}.sm\:mb-7{margin-block-end:2rem}.sm\:mb-8{margin-block-end:2.5rem}.sm\:mb-9{margin-block-end:3rem}.sm\:mb-auto{margin-block-end:auto}.sm\:ms-0{margin-inline-start:0}.sm\:ms-1{margin-inline-start:.25rem}.sm\:ms-2{margin-inline-start:.5rem}.sm\:ms-3{margin-inline-start:.75rem}.sm\:ms-4{margin-inline-start:1rem}.sm\:ms-5{margin-inline-start:1.25rem}.sm\:ms-6{margin-inline-start:1.5rem}.sm\:ms-7{margin-inline-start:2rem}.sm\:ms-8{margin-inline-start:2.5rem}.sm\:ms-9{margin-inline-start:3rem}.sm\:ms--1{margin-inline-start:-.25rem}.sm\:ms--2{margin-inline-start:-.5rem}.sm\:ms-auto{margin-inline-start:auto}.sm\:p-0{padding:0}.sm\:p-1{padding:.25rem}.sm\:p-2{padding:.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:p-7{padding:2rem}.sm\:p-8{padding:2.5rem}.sm\:p-9{padding:3rem}.sm\:px-0{padding-inline:0}.sm\:px-1{padding-inline:.25rem}.sm\:px-2{padding-inline:.5rem}.sm\:px-3{padding-inline:.75rem}.sm\:px-4{padding-inline:1rem}.sm\:px-5{padding-inline:1.25rem}.sm\:px-6{padding-inline:1.5rem}.sm\:px-7{padding-inline:2rem}.sm\:px-8{padding-inline:2.5rem}.sm\:px-9{padding-inline:3rem}.sm\:py-0{padding-block:0}.sm\:py-1{padding-block:.25rem}.sm\:py-2{padding-block:.5rem}.sm\:py-3{padding-block:.75rem}.sm\:py-4{padding-block:1rem}.sm\:py-5{padding-block:1.25rem}.sm\:py-6{padding-block:1.5rem}.sm\:py-7{padding-block:2rem}.sm\:py-8{padding-block:2.5rem}.sm\:py-9{padding-block:3rem}.sm\:pt-0{padding-block-start:0}.sm\:pt-1{padding-block-start:.25rem}.sm\:pt-2{padding-block-start:.5rem}.sm\:pt-3{padding-block-start:.75rem}.sm\:pt-4{padding-block-start:1rem}.sm\:pt-5{padding-block-start:1.25rem}.sm\:pt-6{padding-block-start:1.5rem}.sm\:pt-7{padding-block-start:2rem}.sm\:pt-8{padding-block-start:2.5rem}.sm\:pt-9{padding-block-start:3rem}.sm\:pe-0{padding-inline-end:0}.sm\:pe-1{padding-inline-end:.25rem}.sm\:pe-2{padding-inline-end:.5rem}.sm\:pe-3{padding-inline-end:.75rem}.sm\:pe-4{padding-inline-end:1rem}.sm\:pe-5{padding-inline-end:1.25rem}.sm\:pe-6{padding-inline-end:1.5rem}.sm\:pe-7{padding-inline-end:2rem}.sm\:pe-8{padding-inline-end:2.5rem}.sm\:pe-9{padding-inline-end:3rem}.sm\:pb-0{padding-block-end:0}.sm\:pb-1{padding-block-end:.25rem}.sm\:pb-2{padding-block-end:.5rem}.sm\:pb-3{padding-block-end:.75rem}.sm\:pb-4{padding-block-end:1rem}.sm\:pb-5{padding-block-end:1.25rem}.sm\:pb-6{padding-block-end:1.5rem}.sm\:pb-7{padding-block-end:2rem}.sm\:pb-8{padding-block-end:2.5rem}.sm\:pb-9{padding-block-end:3rem}.sm\:ps-0{padding-inline-start:0}.sm\:ps-1{padding-inline-start:.25rem}.sm\:ps-2{padding-inline-start:.5rem}.sm\:ps-3{padding-inline-start:.75rem}.sm\:ps-4{padding-inline-start:1rem}.sm\:ps-5{padding-inline-start:1.25rem}.sm\:ps-6{padding-inline-start:1.5rem}.sm\:ps-7{padding-inline-start:2rem}.sm\:ps-8{padding-inline-start:2.5rem}.sm\:ps-9{padding-inline-start:3rem}.sm\:gap-0{gap:0}.sm\:gap-1{gap:.25rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-5{gap:1.25rem}.sm\:gap-6{gap:1.5rem}.sm\:gap-7{gap:2rem}.sm\:gap-8{gap:2.5rem}.sm\:gap-9{gap:3rem}.sm\:row-gap-0{row-gap:0}.sm\:row-gap-1{row-gap:.25rem}.sm\:row-gap-2{row-gap:.5rem}.sm\:row-gap-3{row-gap:.75rem}.sm\:row-gap-4{row-gap:1rem}.sm\:row-gap-5{row-gap:1.25rem}.sm\:row-gap-6{row-gap:1.5rem}.sm\:row-gap-7{row-gap:2rem}.sm\:row-gap-8{row-gap:2.5rem}.sm\:row-gap-9{row-gap:3rem}.sm\:column-gap-0{column-gap:0}.sm\:column-gap-1{column-gap:.25rem}.sm\:column-gap-2{column-gap:.5rem}.sm\:column-gap-3{column-gap:.75rem}.sm\:column-gap-4{column-gap:1rem}.sm\:column-gap-5{column-gap:1.25rem}.sm\:column-gap-6{column-gap:1.5rem}.sm\:column-gap-7{column-gap:2rem}.sm\:column-gap-8{column-gap:2.5rem}.sm\:column-gap-9{column-gap:3rem}:where(.sm\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.sm\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.sm\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.sm\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.sm\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.sm\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.sm\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.sm\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.sm\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.sm\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.sm\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.sm\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.sm\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.sm\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.sm\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.sm\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.sm\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.sm\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.sm\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.sm\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.sm\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.sm\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.sm\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.sm\:divide-y-0>:not(:first-child)){border-block-start:0}.sm\:text-start{text-align:start}.sm\:text-end{text-align:end}.sm\:text-center{text-align:center}}@media (width>=768px){.md\:float-start{float:inline-start}.md\:float-end{float:inline-end}.md\:float-none{float:none}.md\:object-fit-contain{object-fit:contain}.md\:object-fit-cover{object-fit:cover}.md\:object-fit-fill{object-fit:fill}.md\:object-fit-scale{object-fit:scale-down}.md\:object-fit-none{object-fit:none}.md\:d-inline{display:inline}.md\:d-inline-block{display:inline-block}.md\:d-block{display:block}.md\:d-grid{display:grid}.md\:d-inline-grid{display:inline-grid}.md\:d-table{display:table}.md\:d-table-row{display:table-row}.md\:d-table-cell{display:table-cell}.md\:d-flex{display:flex}.md\:d-inline-flex{display:inline-flex}.md\:d-contents{display:contents}.md\:d-flow-root{display:flow-root}.md\:d-none{display:none}.md\:flex-fill{flex:auto}.md\:flex-row{flex-direction:row}.md\:flex-column{flex-direction:column}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:flex-column-reverse{flex-direction:column-reverse}.md\:flex-grow-0{flex-grow:0}.md\:flex-grow-1{flex-grow:1}.md\:flex-shrink-0{flex-shrink:0}.md\:flex-shrink-1{flex-shrink:1}.md\:flex-wrap{flex-wrap:wrap}.md\:flex-nowrap{flex-wrap:nowrap}.md\:flex-wrap-reverse{flex-wrap:wrap-reverse}.md\:justify-content-start{justify-content:flex-start}.md\:justify-content-end{justify-content:flex-end}.md\:justify-content-center{justify-content:center}.md\:justify-content-between{justify-content:space-between}.md\:justify-content-around{justify-content:space-around}.md\:justify-content-evenly{justify-content:space-evenly}.md\:justify-items-start{justify-items:start}.md\:justify-items-end{justify-items:end}.md\:justify-items-center{justify-items:center}.md\:justify-items-stretch{justify-items:stretch}.md\:justify-self-start{justify-self:start}.md\:justify-self-end{justify-self:end}.md\:justify-self-center{justify-self:center}.md\:align-items-start{align-items:flex-start}.md\:align-items-end{align-items:flex-end}.md\:align-items-center{align-items:center}.md\:align-items-baseline{align-items:baseline}.md\:align-items-stretch{align-items:stretch}.md\:align-content-start{align-content:flex-start}.md\:align-content-end{align-content:flex-end}.md\:align-content-center{align-content:center}.md\:align-content-between{align-content:space-between}.md\:align-content-around{align-content:space-around}.md\:align-content-stretch{align-content:stretch}.md\:align-self-auto{align-self:auto}.md\:align-self-start{align-self:flex-start}.md\:align-self-end{align-self:flex-end}.md\:align-self-center{align-self:center}.md\:align-self-baseline{align-self:baseline}.md\:align-self-stretch{align-self:stretch}.md\:place-items-start{place-items:start}.md\:place-items-end{place-items:end}.md\:place-items-center{place-items:center}.md\:place-items-stretch{place-items:stretch stretch}.md\:grid-cols-1{grid-template-columns:1fr}.md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.md\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.md\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.md\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.md\:grid-cols-fill{grid-column:1/-1}.md\:grid-auto-flow-row{grid-auto-flow:row}.md\:grid-auto-flow-column{grid-auto-flow:column}.md\:grid-auto-flow-dense{grid-auto-flow:dense}.md\:order-first{order:-1}.md\:order-0{order:0}.md\:order-1{order:1}.md\:order-2{order:2}.md\:order-3{order:3}.md\:order-4{order:4}.md\:order-5{order:5}.md\:order-last{order:6}.md\:m-0{margin:0}.md\:m-1{margin:.25rem}.md\:m-2{margin:.5rem}.md\:m-3{margin:.75rem}.md\:m-4{margin:1rem}.md\:m-5{margin:1.25rem}.md\:m-6{margin:1.5rem}.md\:m-7{margin:2rem}.md\:m-8{margin:2.5rem}.md\:m-9{margin:3rem}.md\:m-auto{margin:auto}.md\:mx-0{margin-inline:0}.md\:mx-1{margin-inline:.25rem}.md\:mx-2{margin-inline:.5rem}.md\:mx-3{margin-inline:.75rem}.md\:mx-4{margin-inline:1rem}.md\:mx-5{margin-inline:1.25rem}.md\:mx-6{margin-inline:1.5rem}.md\:mx-7{margin-inline:2rem}.md\:mx-8{margin-inline:2.5rem}.md\:mx-9{margin-inline:3rem}.md\:mx-auto{margin-inline:auto}.md\:my-0{margin-block:0}.md\:my-1{margin-block:.25rem}.md\:my-2{margin-block:.5rem}.md\:my-3{margin-block:.75rem}.md\:my-4{margin-block:1rem}.md\:my-5{margin-block:1.25rem}.md\:my-6{margin-block:1.5rem}.md\:my-7{margin-block:2rem}.md\:my-8{margin-block:2.5rem}.md\:my-9{margin-block:3rem}.md\:my-auto{margin-block:auto}.md\:mt-0{margin-block-start:0}.md\:mt-1{margin-block-start:.25rem}.md\:mt-2{margin-block-start:.5rem}.md\:mt-3{margin-block-start:.75rem}.md\:mt-4{margin-block-start:1rem}.md\:mt-5{margin-block-start:1.25rem}.md\:mt-6{margin-block-start:1.5rem}.md\:mt-7{margin-block-start:2rem}.md\:mt-8{margin-block-start:2.5rem}.md\:mt-9{margin-block-start:3rem}.md\:mt-auto{margin-block-start:auto}.md\:me-0{margin-inline-end:0}.md\:me-1{margin-inline-end:.25rem}.md\:me-2{margin-inline-end:.5rem}.md\:me-3{margin-inline-end:.75rem}.md\:me-4{margin-inline-end:1rem}.md\:me-5{margin-inline-end:1.25rem}.md\:me-6{margin-inline-end:1.5rem}.md\:me-7{margin-inline-end:2rem}.md\:me-8{margin-inline-end:2.5rem}.md\:me-9{margin-inline-end:3rem}.md\:me--1{margin-inline-end:-.25rem}.md\:me--2{margin-inline-end:-.5rem}.md\:me-auto{margin-inline-end:auto}.md\:mb-0{margin-block-end:0}.md\:mb-1{margin-block-end:.25rem}.md\:mb-2{margin-block-end:.5rem}.md\:mb-3{margin-block-end:.75rem}.md\:mb-4{margin-block-end:1rem}.md\:mb-5{margin-block-end:1.25rem}.md\:mb-6{margin-block-end:1.5rem}.md\:mb-7{margin-block-end:2rem}.md\:mb-8{margin-block-end:2.5rem}.md\:mb-9{margin-block-end:3rem}.md\:mb-auto{margin-block-end:auto}.md\:ms-0{margin-inline-start:0}.md\:ms-1{margin-inline-start:.25rem}.md\:ms-2{margin-inline-start:.5rem}.md\:ms-3{margin-inline-start:.75rem}.md\:ms-4{margin-inline-start:1rem}.md\:ms-5{margin-inline-start:1.25rem}.md\:ms-6{margin-inline-start:1.5rem}.md\:ms-7{margin-inline-start:2rem}.md\:ms-8{margin-inline-start:2.5rem}.md\:ms-9{margin-inline-start:3rem}.md\:ms--1{margin-inline-start:-.25rem}.md\:ms--2{margin-inline-start:-.5rem}.md\:ms-auto{margin-inline-start:auto}.md\:p-0{padding:0}.md\:p-1{padding:.25rem}.md\:p-2{padding:.5rem}.md\:p-3{padding:.75rem}.md\:p-4{padding:1rem}.md\:p-5{padding:1.25rem}.md\:p-6{padding:1.5rem}.md\:p-7{padding:2rem}.md\:p-8{padding:2.5rem}.md\:p-9{padding:3rem}.md\:px-0{padding-inline:0}.md\:px-1{padding-inline:.25rem}.md\:px-2{padding-inline:.5rem}.md\:px-3{padding-inline:.75rem}.md\:px-4{padding-inline:1rem}.md\:px-5{padding-inline:1.25rem}.md\:px-6{padding-inline:1.5rem}.md\:px-7{padding-inline:2rem}.md\:px-8{padding-inline:2.5rem}.md\:px-9{padding-inline:3rem}.md\:py-0{padding-block:0}.md\:py-1{padding-block:.25rem}.md\:py-2{padding-block:.5rem}.md\:py-3{padding-block:.75rem}.md\:py-4{padding-block:1rem}.md\:py-5{padding-block:1.25rem}.md\:py-6{padding-block:1.5rem}.md\:py-7{padding-block:2rem}.md\:py-8{padding-block:2.5rem}.md\:py-9{padding-block:3rem}.md\:pt-0{padding-block-start:0}.md\:pt-1{padding-block-start:.25rem}.md\:pt-2{padding-block-start:.5rem}.md\:pt-3{padding-block-start:.75rem}.md\:pt-4{padding-block-start:1rem}.md\:pt-5{padding-block-start:1.25rem}.md\:pt-6{padding-block-start:1.5rem}.md\:pt-7{padding-block-start:2rem}.md\:pt-8{padding-block-start:2.5rem}.md\:pt-9{padding-block-start:3rem}.md\:pe-0{padding-inline-end:0}.md\:pe-1{padding-inline-end:.25rem}.md\:pe-2{padding-inline-end:.5rem}.md\:pe-3{padding-inline-end:.75rem}.md\:pe-4{padding-inline-end:1rem}.md\:pe-5{padding-inline-end:1.25rem}.md\:pe-6{padding-inline-end:1.5rem}.md\:pe-7{padding-inline-end:2rem}.md\:pe-8{padding-inline-end:2.5rem}.md\:pe-9{padding-inline-end:3rem}.md\:pb-0{padding-block-end:0}.md\:pb-1{padding-block-end:.25rem}.md\:pb-2{padding-block-end:.5rem}.md\:pb-3{padding-block-end:.75rem}.md\:pb-4{padding-block-end:1rem}.md\:pb-5{padding-block-end:1.25rem}.md\:pb-6{padding-block-end:1.5rem}.md\:pb-7{padding-block-end:2rem}.md\:pb-8{padding-block-end:2.5rem}.md\:pb-9{padding-block-end:3rem}.md\:ps-0{padding-inline-start:0}.md\:ps-1{padding-inline-start:.25rem}.md\:ps-2{padding-inline-start:.5rem}.md\:ps-3{padding-inline-start:.75rem}.md\:ps-4{padding-inline-start:1rem}.md\:ps-5{padding-inline-start:1.25rem}.md\:ps-6{padding-inline-start:1.5rem}.md\:ps-7{padding-inline-start:2rem}.md\:ps-8{padding-inline-start:2.5rem}.md\:ps-9{padding-inline-start:3rem}.md\:gap-0{gap:0}.md\:gap-1{gap:.25rem}.md\:gap-2{gap:.5rem}.md\:gap-3{gap:.75rem}.md\:gap-4{gap:1rem}.md\:gap-5{gap:1.25rem}.md\:gap-6{gap:1.5rem}.md\:gap-7{gap:2rem}.md\:gap-8{gap:2.5rem}.md\:gap-9{gap:3rem}.md\:row-gap-0{row-gap:0}.md\:row-gap-1{row-gap:.25rem}.md\:row-gap-2{row-gap:.5rem}.md\:row-gap-3{row-gap:.75rem}.md\:row-gap-4{row-gap:1rem}.md\:row-gap-5{row-gap:1.25rem}.md\:row-gap-6{row-gap:1.5rem}.md\:row-gap-7{row-gap:2rem}.md\:row-gap-8{row-gap:2.5rem}.md\:row-gap-9{row-gap:3rem}.md\:column-gap-0{column-gap:0}.md\:column-gap-1{column-gap:.25rem}.md\:column-gap-2{column-gap:.5rem}.md\:column-gap-3{column-gap:.75rem}.md\:column-gap-4{column-gap:1rem}.md\:column-gap-5{column-gap:1.25rem}.md\:column-gap-6{column-gap:1.5rem}.md\:column-gap-7{column-gap:2rem}.md\:column-gap-8{column-gap:2.5rem}.md\:column-gap-9{column-gap:3rem}:where(.md\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.md\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.md\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.md\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.md\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.md\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.md\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.md\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.md\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.md\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.md\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.md\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.md\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.md\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.md\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.md\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.md\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.md\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.md\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.md\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.md\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.md\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.md\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.md\:divide-y-0>:not(:first-child)){border-block-start:0}.md\:text-start{text-align:start}.md\:text-end{text-align:end}.md\:text-center{text-align:center}}@media (width>=1024px){.lg\:float-start{float:inline-start}.lg\:float-end{float:inline-end}.lg\:float-none{float:none}.lg\:object-fit-contain{object-fit:contain}.lg\:object-fit-cover{object-fit:cover}.lg\:object-fit-fill{object-fit:fill}.lg\:object-fit-scale{object-fit:scale-down}.lg\:object-fit-none{object-fit:none}.lg\:d-inline{display:inline}.lg\:d-inline-block{display:inline-block}.lg\:d-block{display:block}.lg\:d-grid{display:grid}.lg\:d-inline-grid{display:inline-grid}.lg\:d-table{display:table}.lg\:d-table-row{display:table-row}.lg\:d-table-cell{display:table-cell}.lg\:d-flex{display:flex}.lg\:d-inline-flex{display:inline-flex}.lg\:d-contents{display:contents}.lg\:d-flow-root{display:flow-root}.lg\:d-none{display:none}.lg\:flex-fill{flex:auto}.lg\:flex-row{flex-direction:row}.lg\:flex-column{flex-direction:column}.lg\:flex-row-reverse{flex-direction:row-reverse}.lg\:flex-column-reverse{flex-direction:column-reverse}.lg\:flex-grow-0{flex-grow:0}.lg\:flex-grow-1{flex-grow:1}.lg\:flex-shrink-0{flex-shrink:0}.lg\:flex-shrink-1{flex-shrink:1}.lg\:flex-wrap{flex-wrap:wrap}.lg\:flex-nowrap{flex-wrap:nowrap}.lg\:flex-wrap-reverse{flex-wrap:wrap-reverse}.lg\:justify-content-start{justify-content:flex-start}.lg\:justify-content-end{justify-content:flex-end}.lg\:justify-content-center{justify-content:center}.lg\:justify-content-between{justify-content:space-between}.lg\:justify-content-around{justify-content:space-around}.lg\:justify-content-evenly{justify-content:space-evenly}.lg\:justify-items-start{justify-items:start}.lg\:justify-items-end{justify-items:end}.lg\:justify-items-center{justify-items:center}.lg\:justify-items-stretch{justify-items:stretch}.lg\:justify-self-start{justify-self:start}.lg\:justify-self-end{justify-self:end}.lg\:justify-self-center{justify-self:center}.lg\:align-items-start{align-items:flex-start}.lg\:align-items-end{align-items:flex-end}.lg\:align-items-center{align-items:center}.lg\:align-items-baseline{align-items:baseline}.lg\:align-items-stretch{align-items:stretch}.lg\:align-content-start{align-content:flex-start}.lg\:align-content-end{align-content:flex-end}.lg\:align-content-center{align-content:center}.lg\:align-content-between{align-content:space-between}.lg\:align-content-around{align-content:space-around}.lg\:align-content-stretch{align-content:stretch}.lg\:align-self-auto{align-self:auto}.lg\:align-self-start{align-self:flex-start}.lg\:align-self-end{align-self:flex-end}.lg\:align-self-center{align-self:center}.lg\:align-self-baseline{align-self:baseline}.lg\:align-self-stretch{align-self:stretch}.lg\:place-items-start{place-items:start}.lg\:place-items-end{place-items:end}.lg\:place-items-center{place-items:center}.lg\:place-items-stretch{place-items:stretch stretch}.lg\:grid-cols-1{grid-template-columns:1fr}.lg\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.lg\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.lg\:grid-cols-fill{grid-column:1/-1}.lg\:grid-auto-flow-row{grid-auto-flow:row}.lg\:grid-auto-flow-column{grid-auto-flow:column}.lg\:grid-auto-flow-dense{grid-auto-flow:dense}.lg\:order-first{order:-1}.lg\:order-0{order:0}.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:order-3{order:3}.lg\:order-4{order:4}.lg\:order-5{order:5}.lg\:order-last{order:6}.lg\:m-0{margin:0}.lg\:m-1{margin:.25rem}.lg\:m-2{margin:.5rem}.lg\:m-3{margin:.75rem}.lg\:m-4{margin:1rem}.lg\:m-5{margin:1.25rem}.lg\:m-6{margin:1.5rem}.lg\:m-7{margin:2rem}.lg\:m-8{margin:2.5rem}.lg\:m-9{margin:3rem}.lg\:m-auto{margin:auto}.lg\:mx-0{margin-inline:0}.lg\:mx-1{margin-inline:.25rem}.lg\:mx-2{margin-inline:.5rem}.lg\:mx-3{margin-inline:.75rem}.lg\:mx-4{margin-inline:1rem}.lg\:mx-5{margin-inline:1.25rem}.lg\:mx-6{margin-inline:1.5rem}.lg\:mx-7{margin-inline:2rem}.lg\:mx-8{margin-inline:2.5rem}.lg\:mx-9{margin-inline:3rem}.lg\:mx-auto{margin-inline:auto}.lg\:my-0{margin-block:0}.lg\:my-1{margin-block:.25rem}.lg\:my-2{margin-block:.5rem}.lg\:my-3{margin-block:.75rem}.lg\:my-4{margin-block:1rem}.lg\:my-5{margin-block:1.25rem}.lg\:my-6{margin-block:1.5rem}.lg\:my-7{margin-block:2rem}.lg\:my-8{margin-block:2.5rem}.lg\:my-9{margin-block:3rem}.lg\:my-auto{margin-block:auto}.lg\:mt-0{margin-block-start:0}.lg\:mt-1{margin-block-start:.25rem}.lg\:mt-2{margin-block-start:.5rem}.lg\:mt-3{margin-block-start:.75rem}.lg\:mt-4{margin-block-start:1rem}.lg\:mt-5{margin-block-start:1.25rem}.lg\:mt-6{margin-block-start:1.5rem}.lg\:mt-7{margin-block-start:2rem}.lg\:mt-8{margin-block-start:2.5rem}.lg\:mt-9{margin-block-start:3rem}.lg\:mt-auto{margin-block-start:auto}.lg\:me-0{margin-inline-end:0}.lg\:me-1{margin-inline-end:.25rem}.lg\:me-2{margin-inline-end:.5rem}.lg\:me-3{margin-inline-end:.75rem}.lg\:me-4{margin-inline-end:1rem}.lg\:me-5{margin-inline-end:1.25rem}.lg\:me-6{margin-inline-end:1.5rem}.lg\:me-7{margin-inline-end:2rem}.lg\:me-8{margin-inline-end:2.5rem}.lg\:me-9{margin-inline-end:3rem}.lg\:me--1{margin-inline-end:-.25rem}.lg\:me--2{margin-inline-end:-.5rem}.lg\:me-auto{margin-inline-end:auto}.lg\:mb-0{margin-block-end:0}.lg\:mb-1{margin-block-end:.25rem}.lg\:mb-2{margin-block-end:.5rem}.lg\:mb-3{margin-block-end:.75rem}.lg\:mb-4{margin-block-end:1rem}.lg\:mb-5{margin-block-end:1.25rem}.lg\:mb-6{margin-block-end:1.5rem}.lg\:mb-7{margin-block-end:2rem}.lg\:mb-8{margin-block-end:2.5rem}.lg\:mb-9{margin-block-end:3rem}.lg\:mb-auto{margin-block-end:auto}.lg\:ms-0{margin-inline-start:0}.lg\:ms-1{margin-inline-start:.25rem}.lg\:ms-2{margin-inline-start:.5rem}.lg\:ms-3{margin-inline-start:.75rem}.lg\:ms-4{margin-inline-start:1rem}.lg\:ms-5{margin-inline-start:1.25rem}.lg\:ms-6{margin-inline-start:1.5rem}.lg\:ms-7{margin-inline-start:2rem}.lg\:ms-8{margin-inline-start:2.5rem}.lg\:ms-9{margin-inline-start:3rem}.lg\:ms--1{margin-inline-start:-.25rem}.lg\:ms--2{margin-inline-start:-.5rem}.lg\:ms-auto{margin-inline-start:auto}.lg\:p-0{padding:0}.lg\:p-1{padding:.25rem}.lg\:p-2{padding:.5rem}.lg\:p-3{padding:.75rem}.lg\:p-4{padding:1rem}.lg\:p-5{padding:1.25rem}.lg\:p-6{padding:1.5rem}.lg\:p-7{padding:2rem}.lg\:p-8{padding:2.5rem}.lg\:p-9{padding:3rem}.lg\:px-0{padding-inline:0}.lg\:px-1{padding-inline:.25rem}.lg\:px-2{padding-inline:.5rem}.lg\:px-3{padding-inline:.75rem}.lg\:px-4{padding-inline:1rem}.lg\:px-5{padding-inline:1.25rem}.lg\:px-6{padding-inline:1.5rem}.lg\:px-7{padding-inline:2rem}.lg\:px-8{padding-inline:2.5rem}.lg\:px-9{padding-inline:3rem}.lg\:py-0{padding-block:0}.lg\:py-1{padding-block:.25rem}.lg\:py-2{padding-block:.5rem}.lg\:py-3{padding-block:.75rem}.lg\:py-4{padding-block:1rem}.lg\:py-5{padding-block:1.25rem}.lg\:py-6{padding-block:1.5rem}.lg\:py-7{padding-block:2rem}.lg\:py-8{padding-block:2.5rem}.lg\:py-9{padding-block:3rem}.lg\:pt-0{padding-block-start:0}.lg\:pt-1{padding-block-start:.25rem}.lg\:pt-2{padding-block-start:.5rem}.lg\:pt-3{padding-block-start:.75rem}.lg\:pt-4{padding-block-start:1rem}.lg\:pt-5{padding-block-start:1.25rem}.lg\:pt-6{padding-block-start:1.5rem}.lg\:pt-7{padding-block-start:2rem}.lg\:pt-8{padding-block-start:2.5rem}.lg\:pt-9{padding-block-start:3rem}.lg\:pe-0{padding-inline-end:0}.lg\:pe-1{padding-inline-end:.25rem}.lg\:pe-2{padding-inline-end:.5rem}.lg\:pe-3{padding-inline-end:.75rem}.lg\:pe-4{padding-inline-end:1rem}.lg\:pe-5{padding-inline-end:1.25rem}.lg\:pe-6{padding-inline-end:1.5rem}.lg\:pe-7{padding-inline-end:2rem}.lg\:pe-8{padding-inline-end:2.5rem}.lg\:pe-9{padding-inline-end:3rem}.lg\:pb-0{padding-block-end:0}.lg\:pb-1{padding-block-end:.25rem}.lg\:pb-2{padding-block-end:.5rem}.lg\:pb-3{padding-block-end:.75rem}.lg\:pb-4{padding-block-end:1rem}.lg\:pb-5{padding-block-end:1.25rem}.lg\:pb-6{padding-block-end:1.5rem}.lg\:pb-7{padding-block-end:2rem}.lg\:pb-8{padding-block-end:2.5rem}.lg\:pb-9{padding-block-end:3rem}.lg\:ps-0{padding-inline-start:0}.lg\:ps-1{padding-inline-start:.25rem}.lg\:ps-2{padding-inline-start:.5rem}.lg\:ps-3{padding-inline-start:.75rem}.lg\:ps-4{padding-inline-start:1rem}.lg\:ps-5{padding-inline-start:1.25rem}.lg\:ps-6{padding-inline-start:1.5rem}.lg\:ps-7{padding-inline-start:2rem}.lg\:ps-8{padding-inline-start:2.5rem}.lg\:ps-9{padding-inline-start:3rem}.lg\:gap-0{gap:0}.lg\:gap-1{gap:.25rem}.lg\:gap-2{gap:.5rem}.lg\:gap-3{gap:.75rem}.lg\:gap-4{gap:1rem}.lg\:gap-5{gap:1.25rem}.lg\:gap-6{gap:1.5rem}.lg\:gap-7{gap:2rem}.lg\:gap-8{gap:2.5rem}.lg\:gap-9{gap:3rem}.lg\:row-gap-0{row-gap:0}.lg\:row-gap-1{row-gap:.25rem}.lg\:row-gap-2{row-gap:.5rem}.lg\:row-gap-3{row-gap:.75rem}.lg\:row-gap-4{row-gap:1rem}.lg\:row-gap-5{row-gap:1.25rem}.lg\:row-gap-6{row-gap:1.5rem}.lg\:row-gap-7{row-gap:2rem}.lg\:row-gap-8{row-gap:2.5rem}.lg\:row-gap-9{row-gap:3rem}.lg\:column-gap-0{column-gap:0}.lg\:column-gap-1{column-gap:.25rem}.lg\:column-gap-2{column-gap:.5rem}.lg\:column-gap-3{column-gap:.75rem}.lg\:column-gap-4{column-gap:1rem}.lg\:column-gap-5{column-gap:1.25rem}.lg\:column-gap-6{column-gap:1.5rem}.lg\:column-gap-7{column-gap:2rem}.lg\:column-gap-8{column-gap:2.5rem}.lg\:column-gap-9{column-gap:3rem}:where(.lg\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.lg\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.lg\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.lg\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.lg\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.lg\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.lg\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.lg\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.lg\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.lg\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.lg\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.lg\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.lg\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.lg\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.lg\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.lg\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.lg\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.lg\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.lg\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.lg\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.lg\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.lg\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.lg\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.lg\:divide-y-0>:not(:first-child)){border-block-start:0}.lg\:text-start{text-align:start}.lg\:text-end{text-align:end}.lg\:text-center{text-align:center}}@media (width>=1280px){.xl\:float-start{float:inline-start}.xl\:float-end{float:inline-end}.xl\:float-none{float:none}.xl\:object-fit-contain{object-fit:contain}.xl\:object-fit-cover{object-fit:cover}.xl\:object-fit-fill{object-fit:fill}.xl\:object-fit-scale{object-fit:scale-down}.xl\:object-fit-none{object-fit:none}.xl\:d-inline{display:inline}.xl\:d-inline-block{display:inline-block}.xl\:d-block{display:block}.xl\:d-grid{display:grid}.xl\:d-inline-grid{display:inline-grid}.xl\:d-table{display:table}.xl\:d-table-row{display:table-row}.xl\:d-table-cell{display:table-cell}.xl\:d-flex{display:flex}.xl\:d-inline-flex{display:inline-flex}.xl\:d-contents{display:contents}.xl\:d-flow-root{display:flow-root}.xl\:d-none{display:none}.xl\:flex-fill{flex:auto}.xl\:flex-row{flex-direction:row}.xl\:flex-column{flex-direction:column}.xl\:flex-row-reverse{flex-direction:row-reverse}.xl\:flex-column-reverse{flex-direction:column-reverse}.xl\:flex-grow-0{flex-grow:0}.xl\:flex-grow-1{flex-grow:1}.xl\:flex-shrink-0{flex-shrink:0}.xl\:flex-shrink-1{flex-shrink:1}.xl\:flex-wrap{flex-wrap:wrap}.xl\:flex-nowrap{flex-wrap:nowrap}.xl\:flex-wrap-reverse{flex-wrap:wrap-reverse}.xl\:justify-content-start{justify-content:flex-start}.xl\:justify-content-end{justify-content:flex-end}.xl\:justify-content-center{justify-content:center}.xl\:justify-content-between{justify-content:space-between}.xl\:justify-content-around{justify-content:space-around}.xl\:justify-content-evenly{justify-content:space-evenly}.xl\:justify-items-start{justify-items:start}.xl\:justify-items-end{justify-items:end}.xl\:justify-items-center{justify-items:center}.xl\:justify-items-stretch{justify-items:stretch}.xl\:justify-self-start{justify-self:start}.xl\:justify-self-end{justify-self:end}.xl\:justify-self-center{justify-self:center}.xl\:align-items-start{align-items:flex-start}.xl\:align-items-end{align-items:flex-end}.xl\:align-items-center{align-items:center}.xl\:align-items-baseline{align-items:baseline}.xl\:align-items-stretch{align-items:stretch}.xl\:align-content-start{align-content:flex-start}.xl\:align-content-end{align-content:flex-end}.xl\:align-content-center{align-content:center}.xl\:align-content-between{align-content:space-between}.xl\:align-content-around{align-content:space-around}.xl\:align-content-stretch{align-content:stretch}.xl\:align-self-auto{align-self:auto}.xl\:align-self-start{align-self:flex-start}.xl\:align-self-end{align-self:flex-end}.xl\:align-self-center{align-self:center}.xl\:align-self-baseline{align-self:baseline}.xl\:align-self-stretch{align-self:stretch}.xl\:place-items-start{place-items:start}.xl\:place-items-end{place-items:end}.xl\:place-items-center{place-items:center}.xl\:place-items-stretch{place-items:stretch stretch}.xl\:grid-cols-1{grid-template-columns:1fr}.xl\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.xl\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.xl\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.xl\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.xl\:grid-cols-fill{grid-column:1/-1}.xl\:grid-auto-flow-row{grid-auto-flow:row}.xl\:grid-auto-flow-column{grid-auto-flow:column}.xl\:grid-auto-flow-dense{grid-auto-flow:dense}.xl\:order-first{order:-1}.xl\:order-0{order:0}.xl\:order-1{order:1}.xl\:order-2{order:2}.xl\:order-3{order:3}.xl\:order-4{order:4}.xl\:order-5{order:5}.xl\:order-last{order:6}.xl\:m-0{margin:0}.xl\:m-1{margin:.25rem}.xl\:m-2{margin:.5rem}.xl\:m-3{margin:.75rem}.xl\:m-4{margin:1rem}.xl\:m-5{margin:1.25rem}.xl\:m-6{margin:1.5rem}.xl\:m-7{margin:2rem}.xl\:m-8{margin:2.5rem}.xl\:m-9{margin:3rem}.xl\:m-auto{margin:auto}.xl\:mx-0{margin-inline:0}.xl\:mx-1{margin-inline:.25rem}.xl\:mx-2{margin-inline:.5rem}.xl\:mx-3{margin-inline:.75rem}.xl\:mx-4{margin-inline:1rem}.xl\:mx-5{margin-inline:1.25rem}.xl\:mx-6{margin-inline:1.5rem}.xl\:mx-7{margin-inline:2rem}.xl\:mx-8{margin-inline:2.5rem}.xl\:mx-9{margin-inline:3rem}.xl\:mx-auto{margin-inline:auto}.xl\:my-0{margin-block:0}.xl\:my-1{margin-block:.25rem}.xl\:my-2{margin-block:.5rem}.xl\:my-3{margin-block:.75rem}.xl\:my-4{margin-block:1rem}.xl\:my-5{margin-block:1.25rem}.xl\:my-6{margin-block:1.5rem}.xl\:my-7{margin-block:2rem}.xl\:my-8{margin-block:2.5rem}.xl\:my-9{margin-block:3rem}.xl\:my-auto{margin-block:auto}.xl\:mt-0{margin-block-start:0}.xl\:mt-1{margin-block-start:.25rem}.xl\:mt-2{margin-block-start:.5rem}.xl\:mt-3{margin-block-start:.75rem}.xl\:mt-4{margin-block-start:1rem}.xl\:mt-5{margin-block-start:1.25rem}.xl\:mt-6{margin-block-start:1.5rem}.xl\:mt-7{margin-block-start:2rem}.xl\:mt-8{margin-block-start:2.5rem}.xl\:mt-9{margin-block-start:3rem}.xl\:mt-auto{margin-block-start:auto}.xl\:me-0{margin-inline-end:0}.xl\:me-1{margin-inline-end:.25rem}.xl\:me-2{margin-inline-end:.5rem}.xl\:me-3{margin-inline-end:.75rem}.xl\:me-4{margin-inline-end:1rem}.xl\:me-5{margin-inline-end:1.25rem}.xl\:me-6{margin-inline-end:1.5rem}.xl\:me-7{margin-inline-end:2rem}.xl\:me-8{margin-inline-end:2.5rem}.xl\:me-9{margin-inline-end:3rem}.xl\:me--1{margin-inline-end:-.25rem}.xl\:me--2{margin-inline-end:-.5rem}.xl\:me-auto{margin-inline-end:auto}.xl\:mb-0{margin-block-end:0}.xl\:mb-1{margin-block-end:.25rem}.xl\:mb-2{margin-block-end:.5rem}.xl\:mb-3{margin-block-end:.75rem}.xl\:mb-4{margin-block-end:1rem}.xl\:mb-5{margin-block-end:1.25rem}.xl\:mb-6{margin-block-end:1.5rem}.xl\:mb-7{margin-block-end:2rem}.xl\:mb-8{margin-block-end:2.5rem}.xl\:mb-9{margin-block-end:3rem}.xl\:mb-auto{margin-block-end:auto}.xl\:ms-0{margin-inline-start:0}.xl\:ms-1{margin-inline-start:.25rem}.xl\:ms-2{margin-inline-start:.5rem}.xl\:ms-3{margin-inline-start:.75rem}.xl\:ms-4{margin-inline-start:1rem}.xl\:ms-5{margin-inline-start:1.25rem}.xl\:ms-6{margin-inline-start:1.5rem}.xl\:ms-7{margin-inline-start:2rem}.xl\:ms-8{margin-inline-start:2.5rem}.xl\:ms-9{margin-inline-start:3rem}.xl\:ms--1{margin-inline-start:-.25rem}.xl\:ms--2{margin-inline-start:-.5rem}.xl\:ms-auto{margin-inline-start:auto}.xl\:p-0{padding:0}.xl\:p-1{padding:.25rem}.xl\:p-2{padding:.5rem}.xl\:p-3{padding:.75rem}.xl\:p-4{padding:1rem}.xl\:p-5{padding:1.25rem}.xl\:p-6{padding:1.5rem}.xl\:p-7{padding:2rem}.xl\:p-8{padding:2.5rem}.xl\:p-9{padding:3rem}.xl\:px-0{padding-inline:0}.xl\:px-1{padding-inline:.25rem}.xl\:px-2{padding-inline:.5rem}.xl\:px-3{padding-inline:.75rem}.xl\:px-4{padding-inline:1rem}.xl\:px-5{padding-inline:1.25rem}.xl\:px-6{padding-inline:1.5rem}.xl\:px-7{padding-inline:2rem}.xl\:px-8{padding-inline:2.5rem}.xl\:px-9{padding-inline:3rem}.xl\:py-0{padding-block:0}.xl\:py-1{padding-block:.25rem}.xl\:py-2{padding-block:.5rem}.xl\:py-3{padding-block:.75rem}.xl\:py-4{padding-block:1rem}.xl\:py-5{padding-block:1.25rem}.xl\:py-6{padding-block:1.5rem}.xl\:py-7{padding-block:2rem}.xl\:py-8{padding-block:2.5rem}.xl\:py-9{padding-block:3rem}.xl\:pt-0{padding-block-start:0}.xl\:pt-1{padding-block-start:.25rem}.xl\:pt-2{padding-block-start:.5rem}.xl\:pt-3{padding-block-start:.75rem}.xl\:pt-4{padding-block-start:1rem}.xl\:pt-5{padding-block-start:1.25rem}.xl\:pt-6{padding-block-start:1.5rem}.xl\:pt-7{padding-block-start:2rem}.xl\:pt-8{padding-block-start:2.5rem}.xl\:pt-9{padding-block-start:3rem}.xl\:pe-0{padding-inline-end:0}.xl\:pe-1{padding-inline-end:.25rem}.xl\:pe-2{padding-inline-end:.5rem}.xl\:pe-3{padding-inline-end:.75rem}.xl\:pe-4{padding-inline-end:1rem}.xl\:pe-5{padding-inline-end:1.25rem}.xl\:pe-6{padding-inline-end:1.5rem}.xl\:pe-7{padding-inline-end:2rem}.xl\:pe-8{padding-inline-end:2.5rem}.xl\:pe-9{padding-inline-end:3rem}.xl\:pb-0{padding-block-end:0}.xl\:pb-1{padding-block-end:.25rem}.xl\:pb-2{padding-block-end:.5rem}.xl\:pb-3{padding-block-end:.75rem}.xl\:pb-4{padding-block-end:1rem}.xl\:pb-5{padding-block-end:1.25rem}.xl\:pb-6{padding-block-end:1.5rem}.xl\:pb-7{padding-block-end:2rem}.xl\:pb-8{padding-block-end:2.5rem}.xl\:pb-9{padding-block-end:3rem}.xl\:ps-0{padding-inline-start:0}.xl\:ps-1{padding-inline-start:.25rem}.xl\:ps-2{padding-inline-start:.5rem}.xl\:ps-3{padding-inline-start:.75rem}.xl\:ps-4{padding-inline-start:1rem}.xl\:ps-5{padding-inline-start:1.25rem}.xl\:ps-6{padding-inline-start:1.5rem}.xl\:ps-7{padding-inline-start:2rem}.xl\:ps-8{padding-inline-start:2.5rem}.xl\:ps-9{padding-inline-start:3rem}.xl\:gap-0{gap:0}.xl\:gap-1{gap:.25rem}.xl\:gap-2{gap:.5rem}.xl\:gap-3{gap:.75rem}.xl\:gap-4{gap:1rem}.xl\:gap-5{gap:1.25rem}.xl\:gap-6{gap:1.5rem}.xl\:gap-7{gap:2rem}.xl\:gap-8{gap:2.5rem}.xl\:gap-9{gap:3rem}.xl\:row-gap-0{row-gap:0}.xl\:row-gap-1{row-gap:.25rem}.xl\:row-gap-2{row-gap:.5rem}.xl\:row-gap-3{row-gap:.75rem}.xl\:row-gap-4{row-gap:1rem}.xl\:row-gap-5{row-gap:1.25rem}.xl\:row-gap-6{row-gap:1.5rem}.xl\:row-gap-7{row-gap:2rem}.xl\:row-gap-8{row-gap:2.5rem}.xl\:row-gap-9{row-gap:3rem}.xl\:column-gap-0{column-gap:0}.xl\:column-gap-1{column-gap:.25rem}.xl\:column-gap-2{column-gap:.5rem}.xl\:column-gap-3{column-gap:.75rem}.xl\:column-gap-4{column-gap:1rem}.xl\:column-gap-5{column-gap:1.25rem}.xl\:column-gap-6{column-gap:1.5rem}.xl\:column-gap-7{column-gap:2rem}.xl\:column-gap-8{column-gap:2.5rem}.xl\:column-gap-9{column-gap:3rem}:where(.xl\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.xl\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.xl\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.xl\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.xl\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.xl\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.xl\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.xl\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.xl\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.xl\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.xl\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.xl\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.xl\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.xl\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.xl\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.xl\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.xl\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.xl\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.xl\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.xl\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.xl\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.xl\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.xl\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.xl\:divide-y-0>:not(:first-child)){border-block-start:0}.xl\:text-start{text-align:start}.xl\:text-end{text-align:end}.xl\:text-center{text-align:center}}@media (width>=1536px){.\32 xl\:float-start{float:inline-start}.\32 xl\:float-end{float:inline-end}.\32 xl\:float-none{float:none}.\32 xl\:object-fit-contain{object-fit:contain}.\32 xl\:object-fit-cover{object-fit:cover}.\32 xl\:object-fit-fill{object-fit:fill}.\32 xl\:object-fit-scale{object-fit:scale-down}.\32 xl\:object-fit-none{object-fit:none}.\32 xl\:d-inline{display:inline}.\32 xl\:d-inline-block{display:inline-block}.\32 xl\:d-block{display:block}.\32 xl\:d-grid{display:grid}.\32 xl\:d-inline-grid{display:inline-grid}.\32 xl\:d-table{display:table}.\32 xl\:d-table-row{display:table-row}.\32 xl\:d-table-cell{display:table-cell}.\32 xl\:d-flex{display:flex}.\32 xl\:d-inline-flex{display:inline-flex}.\32 xl\:d-contents{display:contents}.\32 xl\:d-flow-root{display:flow-root}.\32 xl\:d-none{display:none}.\32 xl\:flex-fill{flex:auto}.\32 xl\:flex-row{flex-direction:row}.\32 xl\:flex-column{flex-direction:column}.\32 xl\:flex-row-reverse{flex-direction:row-reverse}.\32 xl\:flex-column-reverse{flex-direction:column-reverse}.\32 xl\:flex-grow-0{flex-grow:0}.\32 xl\:flex-grow-1{flex-grow:1}.\32 xl\:flex-shrink-0{flex-shrink:0}.\32 xl\:flex-shrink-1{flex-shrink:1}.\32 xl\:flex-wrap{flex-wrap:wrap}.\32 xl\:flex-nowrap{flex-wrap:nowrap}.\32 xl\:flex-wrap-reverse{flex-wrap:wrap-reverse}.\32 xl\:justify-content-start{justify-content:flex-start}.\32 xl\:justify-content-end{justify-content:flex-end}.\32 xl\:justify-content-center{justify-content:center}.\32 xl\:justify-content-between{justify-content:space-between}.\32 xl\:justify-content-around{justify-content:space-around}.\32 xl\:justify-content-evenly{justify-content:space-evenly}.\32 xl\:justify-items-start{justify-items:start}.\32 xl\:justify-items-end{justify-items:end}.\32 xl\:justify-items-center{justify-items:center}.\32 xl\:justify-items-stretch{justify-items:stretch}.\32 xl\:justify-self-start{justify-self:start}.\32 xl\:justify-self-end{justify-self:end}.\32 xl\:justify-self-center{justify-self:center}.\32 xl\:align-items-start{align-items:flex-start}.\32 xl\:align-items-end{align-items:flex-end}.\32 xl\:align-items-center{align-items:center}.\32 xl\:align-items-baseline{align-items:baseline}.\32 xl\:align-items-stretch{align-items:stretch}.\32 xl\:align-content-start{align-content:flex-start}.\32 xl\:align-content-end{align-content:flex-end}.\32 xl\:align-content-center{align-content:center}.\32 xl\:align-content-between{align-content:space-between}.\32 xl\:align-content-around{align-content:space-around}.\32 xl\:align-content-stretch{align-content:stretch}.\32 xl\:align-self-auto{align-self:auto}.\32 xl\:align-self-start{align-self:flex-start}.\32 xl\:align-self-end{align-self:flex-end}.\32 xl\:align-self-center{align-self:center}.\32 xl\:align-self-baseline{align-self:baseline}.\32 xl\:align-self-stretch{align-self:stretch}.\32 xl\:place-items-start{place-items:start}.\32 xl\:place-items-end{place-items:end}.\32 xl\:place-items-center{place-items:center}.\32 xl\:place-items-stretch{place-items:stretch stretch}.\32 xl\:grid-cols-1{grid-template-columns:1fr}.\32 xl\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.\32 xl\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.\32 xl\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.\32 xl\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.\32 xl\:grid-cols-fill{grid-column:1/-1}.\32 xl\:grid-auto-flow-row{grid-auto-flow:row}.\32 xl\:grid-auto-flow-column{grid-auto-flow:column}.\32 xl\:grid-auto-flow-dense{grid-auto-flow:dense}.\32 xl\:order-first{order:-1}.\32 xl\:order-0{order:0}.\32 xl\:order-1{order:1}.\32 xl\:order-2{order:2}.\32 xl\:order-3{order:3}.\32 xl\:order-4{order:4}.\32 xl\:order-5{order:5}.\32 xl\:order-last{order:6}.\32 xl\:m-0{margin:0}.\32 xl\:m-1{margin:.25rem}.\32 xl\:m-2{margin:.5rem}.\32 xl\:m-3{margin:.75rem}.\32 xl\:m-4{margin:1rem}.\32 xl\:m-5{margin:1.25rem}.\32 xl\:m-6{margin:1.5rem}.\32 xl\:m-7{margin:2rem}.\32 xl\:m-8{margin:2.5rem}.\32 xl\:m-9{margin:3rem}.\32 xl\:m-auto{margin:auto}.\32 xl\:mx-0{margin-inline:0}.\32 xl\:mx-1{margin-inline:.25rem}.\32 xl\:mx-2{margin-inline:.5rem}.\32 xl\:mx-3{margin-inline:.75rem}.\32 xl\:mx-4{margin-inline:1rem}.\32 xl\:mx-5{margin-inline:1.25rem}.\32 xl\:mx-6{margin-inline:1.5rem}.\32 xl\:mx-7{margin-inline:2rem}.\32 xl\:mx-8{margin-inline:2.5rem}.\32 xl\:mx-9{margin-inline:3rem}.\32 xl\:mx-auto{margin-inline:auto}.\32 xl\:my-0{margin-block:0}.\32 xl\:my-1{margin-block:.25rem}.\32 xl\:my-2{margin-block:.5rem}.\32 xl\:my-3{margin-block:.75rem}.\32 xl\:my-4{margin-block:1rem}.\32 xl\:my-5{margin-block:1.25rem}.\32 xl\:my-6{margin-block:1.5rem}.\32 xl\:my-7{margin-block:2rem}.\32 xl\:my-8{margin-block:2.5rem}.\32 xl\:my-9{margin-block:3rem}.\32 xl\:my-auto{margin-block:auto}.\32 xl\:mt-0{margin-block-start:0}.\32 xl\:mt-1{margin-block-start:.25rem}.\32 xl\:mt-2{margin-block-start:.5rem}.\32 xl\:mt-3{margin-block-start:.75rem}.\32 xl\:mt-4{margin-block-start:1rem}.\32 xl\:mt-5{margin-block-start:1.25rem}.\32 xl\:mt-6{margin-block-start:1.5rem}.\32 xl\:mt-7{margin-block-start:2rem}.\32 xl\:mt-8{margin-block-start:2.5rem}.\32 xl\:mt-9{margin-block-start:3rem}.\32 xl\:mt-auto{margin-block-start:auto}.\32 xl\:me-0{margin-inline-end:0}.\32 xl\:me-1{margin-inline-end:.25rem}.\32 xl\:me-2{margin-inline-end:.5rem}.\32 xl\:me-3{margin-inline-end:.75rem}.\32 xl\:me-4{margin-inline-end:1rem}.\32 xl\:me-5{margin-inline-end:1.25rem}.\32 xl\:me-6{margin-inline-end:1.5rem}.\32 xl\:me-7{margin-inline-end:2rem}.\32 xl\:me-8{margin-inline-end:2.5rem}.\32 xl\:me-9{margin-inline-end:3rem}.\32 xl\:me--1{margin-inline-end:-.25rem}.\32 xl\:me--2{margin-inline-end:-.5rem}.\32 xl\:me-auto{margin-inline-end:auto}.\32 xl\:mb-0{margin-block-end:0}.\32 xl\:mb-1{margin-block-end:.25rem}.\32 xl\:mb-2{margin-block-end:.5rem}.\32 xl\:mb-3{margin-block-end:.75rem}.\32 xl\:mb-4{margin-block-end:1rem}.\32 xl\:mb-5{margin-block-end:1.25rem}.\32 xl\:mb-6{margin-block-end:1.5rem}.\32 xl\:mb-7{margin-block-end:2rem}.\32 xl\:mb-8{margin-block-end:2.5rem}.\32 xl\:mb-9{margin-block-end:3rem}.\32 xl\:mb-auto{margin-block-end:auto}.\32 xl\:ms-0{margin-inline-start:0}.\32 xl\:ms-1{margin-inline-start:.25rem}.\32 xl\:ms-2{margin-inline-start:.5rem}.\32 xl\:ms-3{margin-inline-start:.75rem}.\32 xl\:ms-4{margin-inline-start:1rem}.\32 xl\:ms-5{margin-inline-start:1.25rem}.\32 xl\:ms-6{margin-inline-start:1.5rem}.\32 xl\:ms-7{margin-inline-start:2rem}.\32 xl\:ms-8{margin-inline-start:2.5rem}.\32 xl\:ms-9{margin-inline-start:3rem}.\32 xl\:ms--1{margin-inline-start:-.25rem}.\32 xl\:ms--2{margin-inline-start:-.5rem}.\32 xl\:ms-auto{margin-inline-start:auto}.\32 xl\:p-0{padding:0}.\32 xl\:p-1{padding:.25rem}.\32 xl\:p-2{padding:.5rem}.\32 xl\:p-3{padding:.75rem}.\32 xl\:p-4{padding:1rem}.\32 xl\:p-5{padding:1.25rem}.\32 xl\:p-6{padding:1.5rem}.\32 xl\:p-7{padding:2rem}.\32 xl\:p-8{padding:2.5rem}.\32 xl\:p-9{padding:3rem}.\32 xl\:px-0{padding-inline:0}.\32 xl\:px-1{padding-inline:.25rem}.\32 xl\:px-2{padding-inline:.5rem}.\32 xl\:px-3{padding-inline:.75rem}.\32 xl\:px-4{padding-inline:1rem}.\32 xl\:px-5{padding-inline:1.25rem}.\32 xl\:px-6{padding-inline:1.5rem}.\32 xl\:px-7{padding-inline:2rem}.\32 xl\:px-8{padding-inline:2.5rem}.\32 xl\:px-9{padding-inline:3rem}.\32 xl\:py-0{padding-block:0}.\32 xl\:py-1{padding-block:.25rem}.\32 xl\:py-2{padding-block:.5rem}.\32 xl\:py-3{padding-block:.75rem}.\32 xl\:py-4{padding-block:1rem}.\32 xl\:py-5{padding-block:1.25rem}.\32 xl\:py-6{padding-block:1.5rem}.\32 xl\:py-7{padding-block:2rem}.\32 xl\:py-8{padding-block:2.5rem}.\32 xl\:py-9{padding-block:3rem}.\32 xl\:pt-0{padding-block-start:0}.\32 xl\:pt-1{padding-block-start:.25rem}.\32 xl\:pt-2{padding-block-start:.5rem}.\32 xl\:pt-3{padding-block-start:.75rem}.\32 xl\:pt-4{padding-block-start:1rem}.\32 xl\:pt-5{padding-block-start:1.25rem}.\32 xl\:pt-6{padding-block-start:1.5rem}.\32 xl\:pt-7{padding-block-start:2rem}.\32 xl\:pt-8{padding-block-start:2.5rem}.\32 xl\:pt-9{padding-block-start:3rem}.\32 xl\:pe-0{padding-inline-end:0}.\32 xl\:pe-1{padding-inline-end:.25rem}.\32 xl\:pe-2{padding-inline-end:.5rem}.\32 xl\:pe-3{padding-inline-end:.75rem}.\32 xl\:pe-4{padding-inline-end:1rem}.\32 xl\:pe-5{padding-inline-end:1.25rem}.\32 xl\:pe-6{padding-inline-end:1.5rem}.\32 xl\:pe-7{padding-inline-end:2rem}.\32 xl\:pe-8{padding-inline-end:2.5rem}.\32 xl\:pe-9{padding-inline-end:3rem}.\32 xl\:pb-0{padding-block-end:0}.\32 xl\:pb-1{padding-block-end:.25rem}.\32 xl\:pb-2{padding-block-end:.5rem}.\32 xl\:pb-3{padding-block-end:.75rem}.\32 xl\:pb-4{padding-block-end:1rem}.\32 xl\:pb-5{padding-block-end:1.25rem}.\32 xl\:pb-6{padding-block-end:1.5rem}.\32 xl\:pb-7{padding-block-end:2rem}.\32 xl\:pb-8{padding-block-end:2.5rem}.\32 xl\:pb-9{padding-block-end:3rem}.\32 xl\:ps-0{padding-inline-start:0}.\32 xl\:ps-1{padding-inline-start:.25rem}.\32 xl\:ps-2{padding-inline-start:.5rem}.\32 xl\:ps-3{padding-inline-start:.75rem}.\32 xl\:ps-4{padding-inline-start:1rem}.\32 xl\:ps-5{padding-inline-start:1.25rem}.\32 xl\:ps-6{padding-inline-start:1.5rem}.\32 xl\:ps-7{padding-inline-start:2rem}.\32 xl\:ps-8{padding-inline-start:2.5rem}.\32 xl\:ps-9{padding-inline-start:3rem}.\32 xl\:gap-0{gap:0}.\32 xl\:gap-1{gap:.25rem}.\32 xl\:gap-2{gap:.5rem}.\32 xl\:gap-3{gap:.75rem}.\32 xl\:gap-4{gap:1rem}.\32 xl\:gap-5{gap:1.25rem}.\32 xl\:gap-6{gap:1.5rem}.\32 xl\:gap-7{gap:2rem}.\32 xl\:gap-8{gap:2.5rem}.\32 xl\:gap-9{gap:3rem}.\32 xl\:row-gap-0{row-gap:0}.\32 xl\:row-gap-1{row-gap:.25rem}.\32 xl\:row-gap-2{row-gap:.5rem}.\32 xl\:row-gap-3{row-gap:.75rem}.\32 xl\:row-gap-4{row-gap:1rem}.\32 xl\:row-gap-5{row-gap:1.25rem}.\32 xl\:row-gap-6{row-gap:1.5rem}.\32 xl\:row-gap-7{row-gap:2rem}.\32 xl\:row-gap-8{row-gap:2.5rem}.\32 xl\:row-gap-9{row-gap:3rem}.\32 xl\:column-gap-0{column-gap:0}.\32 xl\:column-gap-1{column-gap:.25rem}.\32 xl\:column-gap-2{column-gap:.5rem}.\32 xl\:column-gap-3{column-gap:.75rem}.\32 xl\:column-gap-4{column-gap:1rem}.\32 xl\:column-gap-5{column-gap:1.25rem}.\32 xl\:column-gap-6{column-gap:1.5rem}.\32 xl\:column-gap-7{column-gap:2rem}.\32 xl\:column-gap-8{column-gap:2.5rem}.\32 xl\:column-gap-9{column-gap:3rem}:where(.\32 xl\:space-x-0>:not(:last-child)){margin-inline-end:0}:where(.\32 xl\:space-x-1>:not(:last-child)){margin-inline-end:.25rem}:where(.\32 xl\:space-x-2>:not(:last-child)){margin-inline-end:.5rem}:where(.\32 xl\:space-x-3>:not(:last-child)){margin-inline-end:.75rem}:where(.\32 xl\:space-x-4>:not(:last-child)){margin-inline-end:1rem}:where(.\32 xl\:space-x-5>:not(:last-child)){margin-inline-end:1.25rem}:where(.\32 xl\:space-x-6>:not(:last-child)){margin-inline-end:1.5rem}:where(.\32 xl\:space-x-7>:not(:last-child)){margin-inline-end:2rem}:where(.\32 xl\:space-x-8>:not(:last-child)){margin-inline-end:2.5rem}:where(.\32 xl\:space-x-9>:not(:last-child)){margin-inline-end:3rem}:where(.\32 xl\:space-y-0>:not(:last-child)){margin-block-end:0}:where(.\32 xl\:space-y-1>:not(:last-child)){margin-block-end:.25rem}:where(.\32 xl\:space-y-2>:not(:last-child)){margin-block-end:.5rem}:where(.\32 xl\:space-y-3>:not(:last-child)){margin-block-end:.75rem}:where(.\32 xl\:space-y-4>:not(:last-child)){margin-block-end:1rem}:where(.\32 xl\:space-y-5>:not(:last-child)){margin-block-end:1.25rem}:where(.\32 xl\:space-y-6>:not(:last-child)){margin-block-end:1.5rem}:where(.\32 xl\:space-y-7>:not(:last-child)){margin-block-end:2rem}:where(.\32 xl\:space-y-8>:not(:last-child)){margin-block-end:2.5rem}:where(.\32 xl\:space-y-9>:not(:last-child)){margin-block-end:3rem}:where(.\32 xl\:divide-x>:not(:first-child)){border-inline-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.\32 xl\:divide-x-0>:not(:first-child)){border-inline-start:0}:where(.\32 xl\:divide-y>:not(:first-child)){border-block-start:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}:where(.\32 xl\:divide-y-0>:not(:first-child)){border-block-start:0}.\32 xl\:text-start{text-align:start}.\32 xl\:text-end{text-align:end}.\32 xl\:text-center{text-align:center}}}:root{--bs-black:#000;--bs-white:#fff;--bs-gradient:linear-gradient(180deg, color-mix(var(--bs-white) 15%, transparent), color-mix(var(--bs-white) 0%, transparent));--bs-font-weight-lighter:lighter;--bs-font-weight-light:300;--bs-font-weight-normal:400;--bs-font-weight-medium:500;--bs-font-weight-semibold:600;--bs-font-weight-bold:700;--bs-font-weight-bolder:bolder;--bs-body-font-family:system-ui;--bs-body-font-size:var(--bs-font-size-base);--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-heading-color:inherit;--bs-hr-border-color:var(--bs-border-color);--bs-link-color:light-dark(var(--bs-primary-base),var(--bs-primary-fg));--bs-link-decoration:underline;--bs-link-hover-color:color-mix(in oklch, var(--bs-link-color) 90%, #000);--bs-font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Monaco, "Cascadia Mono", Consolas, "Liberation Mono", monospace;--bs-code-font-size:95%;--bs-code-color:var(--bs-fg-2);--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:light-dark(var(--bs-gray-200),var(--bs-gray-700));--bs-border-color-translucent:color-mix(in oklch, var(--bs-fg-body) 15%, transparent);--bs-box-shadow:0 .5rem 1rem #00000026;--bs-box-shadow-sm:0 .125rem .25rem #00000013;--bs-box-shadow-lg:0 1rem 3rem #0000002d;--bs-box-shadow-inset:inset 0 1px 2px #00000013;--bs-spacer:1rem;--bs-focus-ring-width:3px;--bs-focus-ring-offset:1px;--bs-focus-ring-color:var(--bs-primary-focus-ring);--bs-focus-ring:var(--bs-focus-ring-width) solid var(--bs-focus-ring-color);--bs-control-checked-bg:var(--bs-primary-base);--bs-control-checked-border-color:var(--bs-control-checked-bg);--bs-control-active-bg:var(--bs-primary-base);--bs-control-active-border-color:var(--bs-control-active-bg);--bs-control-disabled-bg:var(--bs-bg-3);--bs-control-disabled-opacity:.65;--bs-btn-input-fg:var(--bs-fg-body);--bs-btn-input-bg:var(--bs-bg-body);--bs-btn-input-min-height:2.375rem;--bs-btn-input-padding-y:.375rem;--bs-btn-input-padding-x:.75rem;--bs-btn-input-font-size:var(--bs-font-size-base);--bs-btn-input-line-height:var(--bs-line-height-base);--bs-btn-input-border-radius:var(--bs-radius-5);--bs-btn-input-xs-min-height:1.5rem;--bs-btn-input-xs-padding-y:.125rem;--bs-btn-input-xs-padding-x:.5rem;--bs-btn-input-xs-font-size:var(--bs-font-size-xs);--bs-btn-input-xs-line-height:1.125;--bs-btn-input-xs-border-radius:var(--bs-radius-5);--bs-btn-input-sm-min-height:2rem;--bs-btn-input-sm-padding-y:.25rem;--bs-btn-input-sm-padding-x:.625rem;--bs-btn-input-sm-font-size:var(--bs-font-size-sm);--bs-btn-input-sm-line-height:var(--bs-line-height-sm);--bs-btn-input-sm-border-radius:var(--bs-radius-5);--bs-btn-input-lg-min-height:2.75rem;--bs-btn-input-lg-padding-y:.5rem;--bs-btn-input-lg-padding-x:1rem;--bs-btn-input-lg-font-size:var(--bs-font-size-md);--bs-btn-input-lg-line-height:var(--bs-line-height-md);--bs-btn-input-lg-border-radius:var(--bs-radius-7);--bs-font-size-xs:.75rem;--bs-line-height-xs:1.25;--bs-font-size-sm:.875rem;--bs-line-height-sm:1.5;--bs-font-size-md:1rem;--bs-line-height-md:1.5;--bs-font-size-lg:clamp(1.25rem, 1rem + .625vw, 1.5rem);--bs-line-height-lg:1.5;--bs-font-size-xl:clamp(1.5rem, 1.1rem + .75vw, 1.75rem);--bs-line-height-xl:1.42857;--bs-font-size-2xl:clamp(1.75rem, 1.3rem + 1vw, 2rem);--bs-line-height-2xl:1.33333;--bs-font-size-3xl:clamp(2rem, 1.5rem + 1.875vw, 2.5rem);--bs-line-height-3xl:1.2;--bs-font-size-4xl:clamp(2.25rem, 1.75rem + 2.5vw, 3rem);--bs-line-height-4xl:1.1;--bs-font-size-5xl:clamp(3rem, 2rem + 5vw, 4rem);--bs-line-height-5xl:1.1;--bs-font-size-6xl:clamp(3.75rem, 2.5rem + 6.25vw, 5rem);--bs-line-height-6xl:1;--bs-primary-base:var(--bs-blue-500);--bs-primary-fg:light-dark(var(--bs-blue-600),var(--bs-blue-400));--bs-primary-fg-emphasis:light-dark(var(--bs-blue-800),var(--bs-blue-200));--bs-primary-bg:var(--bs-blue-500);--bs-primary-bg-subtle:light-dark(var(--bs-blue-100),var(--bs-blue-900));--bs-primary-bg-muted:light-dark(var(--bs-blue-200),var(--bs-blue-800));--bs-primary-border:light-dark(var(--bs-blue-300),var(--bs-blue-600));--bs-primary-focus-ring:light-dark(color-mix(in oklch, var(--bs-blue-500) 50%, var(--bs-bg-body)),color-mix(in oklch, var(--bs-blue-500) 75%, var(--bs-bg-body)));--bs-primary-contrast:var(--bs-white);--bs-accent-base:var(--bs-indigo-500);--bs-accent-fg:light-dark(var(--bs-indigo-600),color-mix(in oklch, var(--bs-indigo-400), var(--bs-indigo-300)));--bs-accent-fg-emphasis:light-dark(var(--bs-indigo-800),var(--bs-indigo-300));--bs-accent-bg:var(--bs-indigo-500);--bs-accent-bg-subtle:light-dark(var(--bs-indigo-100),var(--bs-indigo-900));--bs-accent-bg-muted:light-dark(var(--bs-indigo-200),var(--bs-indigo-800));--bs-accent-border:light-dark(var(--bs-indigo-300),var(--bs-indigo-600));--bs-accent-focus-ring:light-dark(color-mix(in oklch, var(--bs-indigo-500) 50%, var(--bs-bg-body)),color-mix(in oklch, var(--bs-indigo-500) 75%, var(--bs-bg-body)));--bs-accent-contrast:var(--bs-white);--bs-success-base:var(--bs-green-500);--bs-success-fg:light-dark(var(--bs-green-600),var(--bs-green-400));--bs-success-fg-emphasis:light-dark(var(--bs-green-800),var(--bs-green-300));--bs-success-bg:var(--bs-green-500);--bs-success-bg-subtle:light-dark(var(--bs-green-100),var(--bs-green-900));--bs-success-bg-muted:light-dark(var(--bs-green-200),var(--bs-green-800));--bs-success-border:light-dark(var(--bs-green-300),var(--bs-green-600));--bs-success-focus-ring:light-dark(color-mix(in oklch, var(--bs-green-500) 50%, var(--bs-bg-body)),color-mix(in oklch, var(--bs-green-500) 75%, var(--bs-bg-body)));--bs-success-contrast:var(--bs-white);--bs-danger-base:var(--bs-red-500);--bs-danger-fg:light-dark(var(--bs-red-600),var(--bs-red-400));--bs-danger-fg-emphasis:light-dark(var(--bs-red-800),var(--bs-red-300));--bs-danger-bg:var(--bs-red-500);--bs-danger-bg-subtle:light-dark(var(--bs-red-100),var(--bs-red-900));--bs-danger-bg-muted:light-dark(var(--bs-red-200),var(--bs-red-800));--bs-danger-border:light-dark(var(--bs-red-300),var(--bs-red-600));--bs-danger-focus-ring:light-dark(color-mix(in oklch, var(--bs-red-500) 50%, var(--bs-bg-body)),color-mix(in oklch, var(--bs-red-500) 75%, var(--bs-bg-body)));--bs-danger-contrast:var(--bs-white);--bs-warning-base:var(--bs-yellow-500);--bs-warning-fg:light-dark(var(--bs-yellow-700),var(--bs-yellow-400));--bs-warning-fg-emphasis:light-dark(var(--bs-yellow-800),var(--bs-yellow-300));--bs-warning-bg:var(--bs-yellow-500);--bs-warning-bg-subtle:light-dark(var(--bs-yellow-100),var(--bs-yellow-900));--bs-warning-bg-muted:light-dark(var(--bs-yellow-200),var(--bs-yellow-800));--bs-warning-border:light-dark(var(--bs-yellow-300),var(--bs-yellow-600));--bs-warning-focus-ring:light-dark(color-mix(in oklch, var(--bs-yellow-500) 50%, var(--bs-bg-body)),color-mix(in oklch, var(--bs-yellow-400) 85%, var(--bs-bg-body)));--bs-warning-contrast:var(--bs-gray-900);--bs-info-base:var(--bs-cyan-500);--bs-info-fg:light-dark(var(--bs-cyan-600),var(--bs-cyan-400));--bs-info-fg-emphasis:light-dark(var(--bs-cyan-800),var(--bs-cyan-300));--bs-info-bg:var(--bs-cyan-500);--bs-info-bg-subtle:light-dark(var(--bs-cyan-100),var(--bs-cyan-900));--bs-info-bg-muted:light-dark(var(--bs-cyan-200),var(--bs-cyan-800));--bs-info-border:light-dark(var(--bs-cyan-300),var(--bs-cyan-600));--bs-info-focus-ring:light-dark(color-mix(in oklch, var(--bs-cyan-500) 50%, var(--bs-bg-body)),color-mix(in oklch, var(--bs-cyan-500) 75%, var(--bs-bg-body)));--bs-info-contrast:var(--bs-gray-900);--bs-inverse-base:var(--bs-gray-900);--bs-inverse-fg:light-dark(var(--bs-gray-900),var(--bs-gray-200));--bs-inverse-fg-emphasis:light-dark(var(--bs-gray-975),var(--bs-white));--bs-inverse-bg:light-dark(var(--bs-gray-900),var(--bs-gray-025));--bs-inverse-bg-subtle:light-dark(var(--bs-gray-100),var(--bs-gray-900));--bs-inverse-bg-muted:light-dark(var(--bs-gray-200),var(--bs-gray-300));--bs-inverse-border:light-dark(var(--bs-gray-400),var(--bs-gray-100));--bs-inverse-focus-ring:color-mix(in oklch, light-dark(var(--bs-gray-900),var(--bs-gray-100)) 50%, var(--bs-bg-body));--bs-inverse-contrast:light-dark(var(--bs-white),var(--bs-gray-900));--bs-secondary-base:var(--bs-gray-200);--bs-secondary-fg:light-dark(var(--bs-gray-600),var(--bs-gray-400));--bs-secondary-fg-emphasis:light-dark(var(--bs-gray-800),var(--bs-gray-200));--bs-secondary-bg:light-dark(var(--bs-gray-100),var(--bs-gray-600));--bs-secondary-bg-subtle:light-dark(var(--bs-gray-050),var(--bs-gray-800));--bs-secondary-bg-muted:light-dark(var(--bs-gray-100),var(--bs-gray-700));--bs-secondary-border:light-dark(var(--bs-gray-300),var(--bs-gray-600));--bs-secondary-focus-ring:color-mix(in oklch, light-dark(var(--bs-gray-500),var(--bs-gray-300)) 50%, var(--bs-bg-body));--bs-secondary-contrast:light-dark(var(--bs-gray-900),var(--bs-white));--bs-bg-body:light-dark(var(--bs-white),var(--bs-gray-975));--bs-bg-1:light-dark(var(--bs-gray-025),var(--bs-gray-950));--bs-bg-2:light-dark(var(--bs-gray-050),var(--bs-gray-900));--bs-bg-3:light-dark(var(--bs-gray-100),var(--bs-gray-800));--bs-bg-4:light-dark(var(--bs-gray-200),var(--bs-gray-700));--bs-bg-fg:var(--bs-fg-body);--bs-bg-white:var(--bs-white);--bs-bg-black:var(--bs-black);--bs-bg-transparent:transparent;--bs-bg-inherit:inherit;--bs-fg-body:light-dark(var(--bs-gray-900),var(--bs-gray-050));--bs-fg-1:light-dark(var(--bs-gray-800),var(--bs-gray-200));--bs-fg-2:light-dark(var(--bs-gray-700),var(--bs-gray-300));--bs-fg-3:light-dark(var(--bs-gray-600),var(--bs-gray-500));--bs-fg-4:light-dark(var(--bs-gray-500),var(--bs-gray-600));--bs-fg-bg:var(--bs-bg-body);--bs-fg-white:var(--bs-white);--bs-fg-black:var(--bs-black);--bs-fg-inherit:inherit;--bs-border-bg:var(--bs-bg-body);--bs-border-body:light-dark(var(--bs-gray-300),var(--bs-gray-800));--bs-border-muted:light-dark(var(--bs-gray-200),var(--bs-gray-800));--bs-border-subtle:light-dark(color-mix(in oklch, var(--bs-gray-100), var(--bs-gray-200)),var(--bs-gray-900));--bs-border-emphasized:light-dark(var(--bs-gray-400),var(--bs-gray-600));--bs-border-white:var(--bs-white);--bs-border-black:var(--bs-black);--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:1024px;--bs-breakpoint-xl:1280px;--bs-breakpoint-2xl:1536px;--bs-spacer-0:0;--bs-spacer-1:.25rem;--bs-spacer-2:.5rem;--bs-spacer-3:.75rem;--bs-spacer-4:1rem;--bs-spacer-5:1.25rem;--bs-spacer-6:1.5rem;--bs-spacer-7:2rem;--bs-spacer-8:2.5rem;--bs-spacer-9:3rem;--bs-radius-0:0;--bs-radius-1:.125rem;--bs-radius-2:.1875rem;--bs-radius-3:.25rem;--bs-radius-4:.375rem;--bs-radius-5:.5rem;--bs-radius-6:.625rem;--bs-radius-7:.75rem;--bs-radius-8:1rem;--bs-radius-9:1.5rem;--bs-radius-pill:50rem;color-scheme:light dark;scrollbar-gutter:stable}[data-bs-theme=dark]{color-scheme:dark}[data-bs-theme=light]{color-scheme:light}@keyframes otp-caret-blink{0%,to{opacity:1}50%{opacity:0}}.drawer,.\32 xl\:drawer,.xl\:drawer,.lg\:drawer,.md\:drawer,.sm\:drawer{--bs-drawer-inset:var(--bs-spacer);--bs-drawer-zindex:1045;--bs-drawer-width:400px;--bs-drawer-height:30vh;--bs-drawer-padding-x:var(--bs-spacer);--bs-drawer-padding-y:var(--bs-spacer);--bs-drawer-color:var(--bs-fg-body);--bs-drawer-bg:var(--bs-bg-body);--bs-drawer-border-width:var(--bs-border-width);--bs-drawer-border-color:var(--bs-border-color-translucent);--bs-drawer-border-radius:var(--bs-radius-7);--bs-drawer-box-shadow:var(--bs-box-shadow-lg);--bs-drawer-transition-duration:.3s;--bs-drawer-transition-timing:cubic-bezier(.22, 1, .36, 1);--bs-drawer-title-line-height:1.5}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;transition:height .35s;overflow:hidden}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}
/*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
-{"version":3,"sourceRoot":null,"mappings":"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","sources":["bootstrap.css","../../scss/_banner.scss","../../scss/_colors.scss","../../scss/mixins/_tokens.scss","../../scss/_root.scss","../../scss/content/_reboot.scss","../../scss/_config.scss","../../scss/mixins/_border-radius.scss","../../scss/content/_type.scss","../../scss/mixins/_lists.scss","../../scss/content/_tables.scss","../../scss/layout/_breakpoints.scss","../../scss/content/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_box-shadow.scss","../../scss/content/_prose.scss","../../scss/mixins/_transition.scss","../../scss/layout/_containers.scss","../../scss/layout/_grid.scss","../../scss/mixins/_grid.scss","../../scss/forms/_labels.scss","../../scss/forms/_form-text.scss","../../scss/forms/_form-control.scss","../../scss/mixins/_focus-ring.scss","../../scss/forms/_check.scss","../../scss/forms/_radio.scss","../../scss/forms/_switch.scss","../../scss/forms/_form-range.scss","../../scss/mixins/_gradients.scss","../../scss/forms/_floating-labels.scss","../../scss/forms/_input-group.scss","../../scss/forms/_strength.scss","../../scss/forms/_otp-input.scss","../../scss/forms/_form-adorn.scss","../../scss/forms/_chip-input.scss","../../scss/forms/_combobox.scss","../../scss/forms/_form-field.scss","../../scss/forms/_validation.scss","../../scss/mixins/_form-validation.scss","../../scss/buttons/_button.scss","../../scss/buttons/_button-group.scss","../../scss/buttons/_close.scss","../../scss/_accordion.scss","../../scss/_alert.scss","../../scss/_avatar.scss","../../scss/_badge.scss","../../scss/_breadcrumb.scss","../../scss/_chip.scss","../../scss/_card.scss","../../scss/_carousel.scss","../../scss/mixins/_color-mode.scss","../../scss/_datepicker.scss","../../scss/_dialog.scss","../../scss/mixins/_dialog-shared.scss","../../scss/_menu.scss","../../scss/_list-group.scss","../../scss/_nav.scss","../../scss/_nav-overflow.scss","../../scss/_navbar.scss","../../scss/_drawer.scss","../../scss/_pagination.scss","../../scss/_placeholder.scss","../../scss/_popover.scss","../../scss/mixins/_reset-text.scss","../../scss/_progress.scss","../../scss/_spinner.scss","../../scss/_stepper.scss","../../scss/_toasts.scss","../../scss/_tooltip.scss","../../scss/_transitions.scss","../../scss/helpers/_focus-ring.scss","../../scss/helpers/_icon-link.scss","../../scss/helpers/_position.scss","../../scss/helpers/_stacks.scss","../../scss/helpers/_theme-colors.scss","../../scss/_theme.scss","../../scss/helpers/_visually-hidden.scss","../../scss/mixins/_visually-hidden.scss","../../scss/helpers/_stretched-link.scss","../../scss/helpers/_text-truncation.scss","../../scss/mixins/_text-truncate.scss","../../scss/helpers/_vr.scss","../../scss/utilities/_api.scss","../../scss/mixins/_utilities.scss"],"sourcesContent":["@charset \"UTF-8\";\n/*!\n * Bootstrap v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.24 240deg));\n --blue-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.24 240deg));\n --blue-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.24 240deg));\n --blue-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.24 240deg));\n --blue-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.24 240deg));\n --blue-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.24 240deg));\n --blue-500: oklch(60% 0.24 240deg);\n --blue-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.24 240deg));\n --blue-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.24 240deg));\n --blue-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.24 240deg));\n --blue-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.24 240deg));\n --blue-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.24 240deg));\n --blue-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.24 240deg));\n --indigo-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.26 288deg));\n --indigo-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.26 288deg));\n --indigo-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.26 288deg));\n --indigo-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.26 288deg));\n --indigo-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.26 288deg));\n --indigo-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.26 288deg));\n --indigo-500: oklch(56% 0.26 288deg);\n --indigo-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.26 288deg));\n --indigo-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.26 288deg));\n --indigo-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.26 288deg));\n --indigo-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.26 288deg));\n --indigo-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.26 288deg));\n --indigo-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.26 288deg));\n --violet-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 300deg));\n --violet-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 300deg));\n --violet-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 300deg));\n --violet-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 300deg));\n --violet-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 300deg));\n --violet-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 300deg));\n --violet-500: oklch(56% 0.24 300deg);\n --violet-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 300deg));\n --violet-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 300deg));\n --violet-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 300deg));\n --violet-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 300deg));\n --violet-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 300deg));\n --violet-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 300deg));\n --purple-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 320deg));\n --purple-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 320deg));\n --purple-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 320deg));\n --purple-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 320deg));\n --purple-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 320deg));\n --purple-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 320deg));\n --purple-500: oklch(56% 0.24 320deg);\n --purple-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 320deg));\n --purple-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 320deg));\n --purple-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 320deg));\n --purple-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 320deg));\n --purple-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 320deg));\n --purple-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 320deg));\n --pink-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 4deg));\n --pink-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 4deg));\n --pink-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 4deg));\n --pink-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 4deg));\n --pink-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 4deg));\n --pink-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 4deg));\n --pink-500: oklch(60% 0.22 4deg);\n --pink-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 4deg));\n --pink-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 4deg));\n --pink-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 4deg));\n --pink-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 4deg));\n --pink-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 4deg));\n --pink-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 4deg));\n --red-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 20deg));\n --red-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 20deg));\n --red-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 20deg));\n --red-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 20deg));\n --red-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 20deg));\n --red-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 20deg));\n --red-500: oklch(60% 0.22 20deg);\n --red-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 20deg));\n --red-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 20deg));\n --red-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 20deg));\n --red-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 20deg));\n --red-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 20deg));\n --red-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 20deg));\n --orange-025: color-mix(in lab, var(--white) 94%, oklch(70% 0.22 52deg));\n --orange-050: color-mix(in lab, var(--white) 90%, oklch(70% 0.22 52deg));\n --orange-100: color-mix(in lab, var(--white) 80%, oklch(70% 0.22 52deg));\n --orange-200: color-mix(in lab, var(--white) 60%, oklch(70% 0.22 52deg));\n --orange-300: color-mix(in lab, var(--white) 40%, oklch(70% 0.22 52deg));\n --orange-400: color-mix(in lab, var(--white) 20%, oklch(70% 0.22 52deg));\n --orange-500: oklch(70% 0.22 52deg);\n --orange-600: color-mix(in lab, var(--black) 16%, oklch(70% 0.22 52deg));\n --orange-700: color-mix(in lab, var(--black) 32%, oklch(70% 0.22 52deg));\n --orange-800: color-mix(in lab, var(--black) 48%, oklch(70% 0.22 52deg));\n --orange-900: color-mix(in lab, var(--black) 64%, oklch(70% 0.22 52deg));\n --orange-950: color-mix(in lab, var(--black) 76%, oklch(70% 0.22 52deg));\n --orange-975: color-mix(in lab, var(--black) 88%, oklch(70% 0.22 52deg));\n --amber-025: color-mix(in lab, var(--white) 94%, oklch(79% 0.2 78deg));\n --amber-050: color-mix(in lab, var(--white) 90%, oklch(79% 0.2 78deg));\n --amber-100: color-mix(in lab, var(--white) 80%, oklch(79% 0.2 78deg));\n --amber-200: color-mix(in lab, var(--white) 60%, oklch(79% 0.2 78deg));\n --amber-300: color-mix(in lab, var(--white) 40%, oklch(79% 0.2 78deg));\n --amber-400: color-mix(in lab, var(--white) 20%, oklch(79% 0.2 78deg));\n --amber-500: oklch(79% 0.2 78deg);\n --amber-600: color-mix(in lab, var(--black) 16%, oklch(79% 0.2 78deg));\n --amber-700: color-mix(in lab, var(--black) 32%, oklch(79% 0.2 78deg));\n --amber-800: color-mix(in lab, var(--black) 48%, oklch(79% 0.2 78deg));\n --amber-900: color-mix(in lab, var(--black) 64%, oklch(79% 0.2 78deg));\n --amber-950: color-mix(in lab, var(--black) 76%, oklch(79% 0.2 78deg));\n --amber-975: color-mix(in lab, var(--black) 88%, oklch(79% 0.2 78deg));\n --yellow-025: color-mix(in lab, var(--white) 94%, oklch(88% 0.24 88deg));\n --yellow-050: color-mix(in lab, var(--white) 90%, oklch(88% 0.24 88deg));\n --yellow-100: color-mix(in lab, var(--white) 80%, oklch(88% 0.24 88deg));\n --yellow-200: color-mix(in lab, var(--white) 60%, oklch(88% 0.24 88deg));\n --yellow-300: color-mix(in lab, var(--white) 40%, oklch(88% 0.24 88deg));\n --yellow-400: color-mix(in lab, var(--white) 20%, oklch(88% 0.24 88deg));\n --yellow-500: oklch(88% 0.24 88deg);\n --yellow-600: color-mix(in lab, var(--black) 16%, oklch(88% 0.24 88deg));\n --yellow-700: color-mix(in lab, var(--black) 32%, oklch(88% 0.24 88deg));\n --yellow-800: color-mix(in lab, var(--black) 48%, oklch(88% 0.24 88deg));\n --yellow-900: color-mix(in lab, var(--black) 64%, oklch(88% 0.24 88deg));\n --yellow-950: color-mix(in lab, var(--black) 76%, oklch(88% 0.24 88deg));\n --yellow-975: color-mix(in lab, var(--black) 88%, oklch(88% 0.24 88deg));\n --lime-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.24 135deg));\n --lime-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.24 135deg));\n --lime-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.24 135deg));\n --lime-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.24 135deg));\n --lime-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.24 135deg));\n --lime-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.24 135deg));\n --lime-500: oklch(65% 0.24 135deg);\n --lime-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.24 135deg));\n --lime-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.24 135deg));\n --lime-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.24 135deg));\n --lime-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.24 135deg));\n --lime-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.24 135deg));\n --lime-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.24 135deg));\n --green-025: color-mix(in lab, var(--white) 94%, oklch(64% 0.22 160deg));\n --green-050: color-mix(in lab, var(--white) 90%, oklch(64% 0.22 160deg));\n --green-100: color-mix(in lab, var(--white) 80%, oklch(64% 0.22 160deg));\n --green-200: color-mix(in lab, var(--white) 60%, oklch(64% 0.22 160deg));\n --green-300: color-mix(in lab, var(--white) 40%, oklch(64% 0.22 160deg));\n --green-400: color-mix(in lab, var(--white) 20%, oklch(64% 0.22 160deg));\n --green-500: oklch(64% 0.22 160deg);\n --green-600: color-mix(in lab, var(--black) 16%, oklch(64% 0.22 160deg));\n --green-700: color-mix(in lab, var(--black) 32%, oklch(64% 0.22 160deg));\n --green-800: color-mix(in lab, var(--black) 48%, oklch(64% 0.22 160deg));\n --green-900: color-mix(in lab, var(--black) 64%, oklch(64% 0.22 160deg));\n --green-950: color-mix(in lab, var(--black) 76%, oklch(64% 0.22 160deg));\n --green-975: color-mix(in lab, var(--black) 88%, oklch(64% 0.22 160deg));\n --teal-025: color-mix(in lab, var(--white) 94%, oklch(68% 0.22 190deg));\n --teal-050: color-mix(in lab, var(--white) 90%, oklch(68% 0.22 190deg));\n --teal-100: color-mix(in lab, var(--white) 80%, oklch(68% 0.22 190deg));\n --teal-200: color-mix(in lab, var(--white) 60%, oklch(68% 0.22 190deg));\n --teal-300: color-mix(in lab, var(--white) 40%, oklch(68% 0.22 190deg));\n --teal-400: color-mix(in lab, var(--white) 20%, oklch(68% 0.22 190deg));\n --teal-500: oklch(68% 0.22 190deg);\n --teal-600: color-mix(in lab, var(--black) 16%, oklch(68% 0.22 190deg));\n --teal-700: color-mix(in lab, var(--black) 32%, oklch(68% 0.22 190deg));\n --teal-800: color-mix(in lab, var(--black) 48%, oklch(68% 0.22 190deg));\n --teal-900: color-mix(in lab, var(--black) 64%, oklch(68% 0.22 190deg));\n --teal-950: color-mix(in lab, var(--black) 76%, oklch(68% 0.22 190deg));\n --teal-975: color-mix(in lab, var(--black) 88%, oklch(68% 0.22 190deg));\n --cyan-025: color-mix(in lab, var(--white) 94%, oklch(69% 0.22 220deg));\n --cyan-050: color-mix(in lab, var(--white) 90%, oklch(69% 0.22 220deg));\n --cyan-100: color-mix(in lab, var(--white) 80%, oklch(69% 0.22 220deg));\n --cyan-200: color-mix(in lab, var(--white) 60%, oklch(69% 0.22 220deg));\n --cyan-300: color-mix(in lab, var(--white) 40%, oklch(69% 0.22 220deg));\n --cyan-400: color-mix(in lab, var(--white) 20%, oklch(69% 0.22 220deg));\n --cyan-500: oklch(69% 0.22 220deg);\n --cyan-600: color-mix(in lab, var(--black) 16%, oklch(69% 0.22 220deg));\n --cyan-700: color-mix(in lab, var(--black) 32%, oklch(69% 0.22 220deg));\n --cyan-800: color-mix(in lab, var(--black) 48%, oklch(69% 0.22 220deg));\n --cyan-900: color-mix(in lab, var(--black) 64%, oklch(69% 0.22 220deg));\n --cyan-950: color-mix(in lab, var(--black) 76%, oklch(69% 0.22 220deg));\n --cyan-975: color-mix(in lab, var(--black) 88%, oklch(69% 0.22 220deg));\n --brown-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.12 54deg));\n --brown-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.12 54deg));\n --brown-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.12 54deg));\n --brown-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.12 54deg));\n --brown-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.12 54deg));\n --brown-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.12 54deg));\n --brown-500: oklch(60% 0.12 54deg);\n --brown-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.12 54deg));\n --brown-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.12 54deg));\n --brown-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.12 54deg));\n --brown-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.12 54deg));\n --brown-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.12 54deg));\n --brown-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.12 54deg));\n --gray-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.02 245deg));\n --gray-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.02 245deg));\n --gray-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.02 245deg));\n --gray-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.02 245deg));\n --gray-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.02 245deg));\n --gray-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.02 245deg));\n --gray-500: oklch(60% 0.02 245deg);\n --gray-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.02 245deg));\n --gray-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.02 245deg));\n --gray-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.02 245deg));\n --gray-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.02 245deg));\n --gray-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.02 245deg));\n --gray-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.02 245deg));\n --pewter-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.01 290deg));\n --pewter-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.01 290deg));\n --pewter-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.01 290deg));\n --pewter-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.01 290deg));\n --pewter-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.01 290deg));\n --pewter-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.01 290deg));\n --pewter-500: oklch(65% 0.01 290deg);\n --pewter-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.01 290deg));\n --pewter-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.01 290deg));\n --pewter-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.01 290deg));\n --pewter-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.01 290deg));\n --pewter-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.01 290deg));\n --pewter-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.01 290deg));\n}\n\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n:root {\n --black: #000;\n --white: #fff;\n --gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent));\n --font-weight-lighter: lighter;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-bolder: bolder;\n --body-font-family: system-ui;\n --body-font-size: var(--font-size-base);\n --body-font-weight: 400;\n --body-line-height: 1.5;\n --heading-color: inherit;\n --hr-border-color: var(--border-color);\n --link-color: light-dark(var(--primary-base), var(--primary-fg));\n --link-decoration: underline;\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000);\n --font-mono: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;\n --code-font-size: 95%;\n --code-color: var(--fg-2);\n --border-width: 1px;\n --border-style: solid;\n --border-color: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-700));\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent);\n --box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n --box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n --box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);\n --box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n --spacer: 1rem;\n --focus-ring-width: 3px;\n --focus-ring-offset: 1px;\n --focus-ring-color: var(--primary-focus-ring);\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color);\n --control-checked-bg: var(--primary-base);\n --control-checked-border-color: var(--control-checked-bg);\n --control-active-bg: var(--primary-base);\n --control-active-border-color: var(--control-active-bg);\n --control-disabled-bg: var(--bg-3);\n --control-disabled-opacity: 0.65;\n --btn-input-fg: var(--fg-body);\n --btn-input-bg: var(--bg-body);\n --btn-input-min-height: 2.375rem;\n --btn-input-padding-y: 0.375rem;\n --btn-input-padding-x: 0.75rem;\n --btn-input-font-size: var(--font-size-base);\n --btn-input-line-height: var(--line-height-base);\n --btn-input-border-radius: var(--radius-5);\n --btn-input-xs-min-height: 1.5rem;\n --btn-input-xs-padding-y: 0.125rem;\n --btn-input-xs-padding-x: 0.5rem;\n --btn-input-xs-font-size: var(--font-size-xs);\n --btn-input-xs-line-height: 1.125;\n --btn-input-xs-border-radius: var(--radius-5);\n --btn-input-sm-min-height: 2rem;\n --btn-input-sm-padding-y: 0.25rem;\n --btn-input-sm-padding-x: 0.625rem;\n --btn-input-sm-font-size: var(--font-size-sm);\n --btn-input-sm-line-height: var(--line-height-sm);\n --btn-input-sm-border-radius: var(--radius-5);\n --btn-input-lg-min-height: 2.75rem;\n --btn-input-lg-padding-y: 0.5rem;\n --btn-input-lg-padding-x: 1rem;\n --btn-input-lg-font-size: var(--font-size-md);\n --btn-input-lg-line-height: var(--line-height-md);\n --btn-input-lg-border-radius: var(--radius-7);\n --font-size-xs: 0.75rem;\n --line-height-xs: 1.25;\n --font-size-sm: 0.875rem;\n --line-height-sm: 1.5;\n --font-size-md: 1rem;\n --line-height-md: 1.5;\n --font-size-lg: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n --line-height-lg: 1.5;\n --font-size-xl: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n --line-height-xl: 1.4285714286;\n --font-size-2xl: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n --line-height-2xl: 1.3333333333;\n --font-size-3xl: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n --line-height-3xl: 1.2;\n --font-size-4xl: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n --line-height-4xl: 1.1;\n --font-size-5xl: clamp(3rem, 2rem + 5vw, 4rem);\n --line-height-5xl: 1.1;\n --font-size-6xl: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n --line-height-6xl: 1;\n --primary-base: var(--blue-500);\n --primary-fg: light-dark(var(--blue-600), var(--blue-400));\n --primary-fg-emphasis: light-dark(var(--blue-800), var(--blue-200));\n --primary-bg: var(--blue-500);\n --primary-bg-subtle: light-dark(var(--blue-100), var(--blue-900));\n --primary-bg-muted: light-dark(var(--blue-200), var(--blue-800));\n --primary-border: light-dark(var(--blue-300), var(--blue-600));\n --primary-focus-ring: light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body)));\n --primary-contrast: var(--white);\n --accent-base: var(--indigo-500);\n --accent-fg: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n --accent-fg-emphasis: light-dark(var(--indigo-800), var(--indigo-300));\n --accent-bg: var(--indigo-500);\n --accent-bg-subtle: light-dark(var(--indigo-100), var(--indigo-900));\n --accent-bg-muted: light-dark(var(--indigo-200), var(--indigo-800));\n --accent-border: light-dark(var(--indigo-300), var(--indigo-600));\n --accent-focus-ring: light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body)));\n --accent-contrast: var(--white);\n --success-base: var(--green-500);\n --success-fg: light-dark(var(--green-600), var(--green-400));\n --success-fg-emphasis: light-dark(var(--green-800), var(--green-300));\n --success-bg: var(--green-500);\n --success-bg-subtle: light-dark(var(--green-100), var(--green-900));\n --success-bg-muted: light-dark(var(--green-200), var(--green-800));\n --success-border: light-dark(var(--green-300), var(--green-600));\n --success-focus-ring: light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body)));\n --success-contrast: var(--white);\n --danger-base: var(--red-500);\n --danger-fg: light-dark(var(--red-600), var(--red-400));\n --danger-fg-emphasis: light-dark(var(--red-800), var(--red-300));\n --danger-bg: var(--red-500);\n --danger-bg-subtle: light-dark(var(--red-100), var(--red-900));\n --danger-bg-muted: light-dark(var(--red-200), var(--red-800));\n --danger-border: light-dark(var(--red-300), var(--red-600));\n --danger-focus-ring: light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body)));\n --danger-contrast: var(--white);\n --warning-base: var(--yellow-500);\n --warning-fg: light-dark(var(--yellow-700), var(--yellow-400));\n --warning-fg-emphasis: light-dark(var(--yellow-800), var(--yellow-300));\n --warning-bg: var(--yellow-500);\n --warning-bg-subtle: light-dark(var(--yellow-100), var(--yellow-900));\n --warning-bg-muted: light-dark(var(--yellow-200), var(--yellow-800));\n --warning-border: light-dark(var(--yellow-300), var(--yellow-600));\n --warning-focus-ring: light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body)));\n --warning-contrast: var(--gray-900);\n --info-base: var(--cyan-500);\n --info-fg: light-dark(var(--cyan-600), var(--cyan-400));\n --info-fg-emphasis: light-dark(var(--cyan-800), var(--cyan-300));\n --info-bg: var(--cyan-500);\n --info-bg-subtle: light-dark(var(--cyan-100), var(--cyan-900));\n --info-bg-muted: light-dark(var(--cyan-200), var(--cyan-800));\n --info-border: light-dark(var(--cyan-300), var(--cyan-600));\n --info-focus-ring: light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body)));\n --info-contrast: var(--gray-900);\n --inverse-base: var(--gray-900);\n --inverse-fg: light-dark(var(--gray-900), var(--gray-200));\n --inverse-fg-emphasis: light-dark(var(--gray-975), var(--white));\n --inverse-bg: light-dark(var(--gray-900), var(--gray-025));\n --inverse-bg-subtle: light-dark(var(--gray-100), var(--gray-900));\n --inverse-bg-muted: light-dark(var(--gray-200), var(--gray-300));\n --inverse-border: light-dark(var(--gray-400), var(--gray-100));\n --inverse-focus-ring: color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body));\n --inverse-contrast: light-dark(var(--white), var(--gray-900));\n --secondary-base: var(--gray-200);\n --secondary-fg: light-dark(var(--gray-600), var(--gray-400));\n --secondary-fg-emphasis: light-dark(var(--gray-800), var(--gray-200));\n --secondary-bg: light-dark(var(--gray-100), var(--gray-600));\n --secondary-bg-subtle: light-dark(var(--gray-050), var(--gray-800));\n --secondary-bg-muted: light-dark(var(--gray-100), var(--gray-700));\n --secondary-border: light-dark(var(--gray-300), var(--gray-600));\n --secondary-focus-ring: color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body));\n --secondary-contrast: light-dark(var(--gray-900), var(--white));\n --bg-body: light-dark(var(--white), var(--gray-975));\n --bg-1: light-dark(var(--gray-025), var(--gray-950));\n --bg-2: light-dark(var(--gray-050), var(--gray-900));\n --bg-3: light-dark(var(--gray-100), var(--gray-800));\n --bg-4: light-dark(var(--gray-200), var(--gray-700));\n --bg-fg: var(--fg-body);\n --bg-white: var(--white);\n --bg-black: var(--black);\n --bg-transparent: transparent;\n --bg-inherit: inherit;\n --fg-body: light-dark(var(--gray-900), var(--gray-050));\n --fg-1: light-dark(var(--gray-800), var(--gray-200));\n --fg-2: light-dark(var(--gray-700), var(--gray-300));\n --fg-3: light-dark(var(--gray-600), var(--gray-500));\n --fg-4: light-dark(var(--gray-500), var(--gray-600));\n --fg-bg: var(--bg-body);\n --fg-white: var(--white);\n --fg-black: var(--black);\n --fg-inherit: inherit;\n --border-bg: var(--bg-body);\n --border-body: light-dark(var(--gray-300), var(--gray-800));\n --border-muted: light-dark(var(--gray-200), var(--gray-800));\n --border-subtle: light-dark(var(--gray-100), var(--gray-900));\n --border-emphasized: light-dark(var(--gray-400), var(--gray-600));\n --border-white: var(--white);\n --border-black: var(--black);\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 1024px;\n --breakpoint-xl: 1280px;\n --breakpoint-2xl: 1536px;\n --spacer-0: 0;\n --spacer-1: 0.25rem;\n --spacer-2: 0.5rem;\n --spacer-3: 0.75rem;\n --spacer-4: 1rem;\n --spacer-5: 1.25rem;\n --spacer-6: 1.5rem;\n --spacer-7: 2rem;\n --spacer-8: 2.5rem;\n --spacer-9: 3rem;\n --radius-0: 0;\n --radius-1: 0.125rem;\n --radius-2: 0.1875rem;\n --radius-3: 0.25rem;\n --radius-4: 0.375rem;\n --radius-5: 0.5rem;\n --radius-6: 0.625rem;\n --radius-7: 0.75rem;\n --radius-8: 1rem;\n --radius-9: 1.5rem;\n --radius-pill: 50rem;\n color-scheme: light dark;\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=dark] {\n color-scheme: dark;\n}\n\n[data-bs-theme=light] {\n color-scheme: light;\n}\n\n@layer reboot {\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n :root {\n accent-color: var(--primary-base);\n }\n body {\n margin: 0;\n font-family: var(--body-font-family);\n font-size: var(--body-font-size);\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n color: var(--fg-body);\n text-align: var(--body-text-align);\n background-color: var(--bg-body);\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n margin: var(--hr-margin-y, var(--spacer)) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n h6,\n .h6, h5,\n .h5, h4,\n .h4, h3,\n .h3, h2,\n .h2, h1,\n .h1 {\n margin-top: 0;\n margin-bottom: var(--spacer-2);\n font-weight: 500;\n line-height: 1.2;\n color: var(--heading-color);\n }\n h1,\n .h1 {\n font-size: var(--font-size-3xl);\n }\n h2,\n .h2 {\n font-size: var(--font-size-2xl);\n }\n h3,\n .h3 {\n font-size: var(--font-size-xl);\n }\n h4,\n .h4 {\n font-size: var(--font-size-lg);\n }\n h5,\n .h5 {\n font-size: var(--font-size-md);\n }\n h6,\n .h6 {\n font-size: var(--font-size-sm);\n }\n p {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n abbr[title] {\n text-decoration: underline dotted;\n cursor: help;\n text-decoration-skip-ink: none;\n }\n address {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n }\n ol,\n ul {\n padding-inline-start: 2rem;\n }\n ol,\n ul,\n dl {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n ol ol,\n ul ul,\n ol ul,\n ul ol {\n margin-bottom: 0;\n }\n dt {\n font-weight: 700;\n }\n dd {\n margin-inline-start: 0;\n margin-bottom: 0.5rem;\n }\n blockquote {\n margin: 0 0 1rem;\n }\n blockquote > * {\n margin-block: 0;\n }\n b,\n strong {\n font-weight: bolder;\n }\n small,\n .small {\n font-size: var(--small-font-size, 87.5%);\n }\n mark,\n .mark {\n --mark-padding: 0.1875em;\n --mark-color: var(--fg-body);\n --mark-bg: light-dark(var(--yellow-100), var(--yellow-900));\n padding: var(--mark-padding);\n color: var(--mark-color);\n background-color: var(--mark-bg);\n }\n sub,\n sup {\n position: relative;\n font-size: var(--sub-sup-font-size, 0.75em);\n line-height: 0;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n a {\n color: var(--theme-fg, var(--link-color));\n text-decoration: var(--link-decoration);\n text-underline-offset: 0.2em;\n }\n a:hover {\n color: var(--theme-fg-emphasis, var(--link-hover-color));\n text-decoration: var(--link-hover-decoration, var(--link-decoration));\n }\n a:not([href], [class]), a:not([href], [class]):hover {\n color: inherit;\n text-decoration: none;\n }\n pre,\n code,\n kbd,\n samp {\n font-family: var(--font-mono);\n font-size: 1em;\n }\n pre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: var(--code-font-size);\n color: var(--code-color, inherit);\n }\n pre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n code {\n font-size: var(--code-font-size);\n color: var(--code-color);\n word-wrap: break-word;\n }\n a > code {\n color: inherit;\n }\n kbd {\n --kbd-padding-y: 0.125rem;\n --kbd-padding-x: 0.25rem;\n --kbd-font-size: var(--font-size-xs);\n --kbd-color: var(--bg-body);\n --kbd-bg: var(--fg-2);\n --kbd-border-radius: var(--radius-5);\n padding: var(--kbd-padding-y) var(--kbd-padding-x);\n font-size: var(--kbd-font-size);\n color: var(--kbd-color);\n background-color: var(--kbd-bg);\n border-radius: var(--kbd-border-radius);\n }\n kbd kbd {\n padding: 0;\n font-size: 1em;\n font-weight: inherit;\n }\n figure {\n margin: 0 0 1rem;\n }\n img,\n svg {\n vertical-align: middle;\n }\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n caption {\n padding-block: 0.5rem;\n color: var(--fg-3);\n text-align: start;\n }\n th {\n text-align: inherit;\n text-align: -webkit-match-parent;\n }\n thead,\n tbody,\n tfoot,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n label {\n display: inline-block;\n }\n button {\n border-radius: 0;\n }\n button:focus:not(:focus-visible) {\n outline: 0;\n }\n input,\n button,\n select,\n optgroup,\n textarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n [role=button] {\n cursor: pointer;\n }\n select {\n word-wrap: normal;\n }\n select:disabled {\n opacity: 1;\n }\n [list]:not([type=date], [type=datetime-local], [type=month], [type=week], [type=time])::-webkit-calendar-picker-indicator {\n display: none !important;\n }\n button,\n [type=button],\n [type=reset],\n [type=submit] {\n -webkit-appearance: button;\n }\n button:not(:disabled),\n [type=button]:not(:disabled),\n [type=reset]:not(:disabled),\n [type=submit]:not(:disabled) {\n cursor: pointer;\n }\n textarea {\n resize: vertical;\n }\n fieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n }\n legend {\n float: inline-start;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: 1.5rem;\n line-height: inherit;\n }\n legend + * {\n clear: inline-start;\n }\n ::-webkit-datetime-edit-fields-wrapper,\n ::-webkit-datetime-edit-text,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-ampm-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-week-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-year-field {\n padding: 0;\n }\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n [type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n }\n [type=search]::-webkit-search-cancel-button {\n cursor: pointer;\n filter: grayscale(1);\n }\n [type=tel],\n [type=url],\n [type=email],\n [type=number] {\n direction: ltr;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n ::file-selector-button {\n font: inherit;\n -webkit-appearance: button;\n }\n output {\n display: inline-block;\n }\n iframe {\n border: 0;\n }\n summary {\n display: list-item;\n cursor: pointer;\n }\n progress {\n vertical-align: baseline;\n }\n [hidden] {\n display: none !important;\n }\n}\n@layer content {\n .list-unstyled {\n padding-inline-start: 0;\n list-style: none;\n }\n .list-inline {\n padding-inline-start: 0;\n list-style: none;\n }\n .list-inline-item {\n display: inline-block;\n }\n .list-inline-item:not(:last-child) {\n margin-inline-end: var(--list-inline-padding, var(--spacer)/2);\n }\n .initialism {\n font-size: var(--initialism-font-size, var(--font-size-xs));\n text-transform: uppercase;\n }\n .blockquote {\n --blockquote-gap: calc(var(--spacer) / 2);\n --blockquote-padding-x: var(--spacer);\n --blockquote-margin-y: 1rem;\n --blockquote-font-size: var(--font-size-md);\n --blockquote-border-width: 0.25rem;\n --blockquote-border-color: var(--border-color);\n --blockquote-footer-font-size: var(--font-size-sm);\n --blockquote-footer-color: var(--fg-3);\n display: flex;\n flex-direction: column;\n gap: var(--blockquote-gap);\n padding-inline-start: var(--blockquote-padding-x);\n margin-bottom: var(--blockquote-margin-y);\n font-size: var(--blockquote-font-size);\n border-inline-start: var(--blockquote-border-width) solid var(--blockquote-border-color);\n }\n .blockquote > * {\n margin-bottom: 0;\n }\n figure.blockquote blockquote {\n margin-bottom: 0;\n }\n .blockquote-footer {\n font-size: var(--blockquote-footer-font-size);\n color: var(--blockquote-footer-color);\n }\n .blockquote-footer::before {\n content: \"— \";\n }\n}\n@layer content {\n .table {\n --table-cell-padding-y: 0.5rem;\n --table-cell-padding-x: 0.5rem;\n --table-cell-vertical-align: top;\n --table-color: var(--fg-body);\n --table-bg: var(--bg-body);\n --table-accent-bg: transparent;\n --table-border-width: var(--border-width);\n --table-border-color: var(--border-color);\n --table-group-separator-color: currentcolor;\n --table-striped-color: var(--table-color);\n --table-striped-bg-factor: 5%;\n --table-striped-bg: color-mix(in srgb, var(--table-color) var(--table-striped-bg-factor), transparent);\n --table-active-color: var(--table-color);\n --table-active-bg-factor: 10%;\n --table-active-bg: color-mix(in srgb, var(--table-color) var(--table-active-bg-factor), transparent);\n --table-hover-color: var(--table-color);\n --table-hover-bg-factor: 7.5%;\n --table-hover-bg: color-mix(in srgb, var(--table-color) var(--table-hover-bg-factor), transparent);\n --table-color-type: initial;\n --table-bg-type: initial;\n --table-color-state: initial;\n --table-bg-state: initial;\n width: 100%;\n margin-bottom: var(--spacer);\n vertical-align: var(--table-cell-vertical-align);\n border-color: var(--theme-border, var(--table-border-color));\n }\n .table > :not(caption) > * > * {\n padding: var(--table-cell-padding-y) var(--table-cell-padding-x);\n color: var(--table-color-state, var(--table-color-type, var(--theme-fg, var(--table-color))));\n background-color: var(--theme-bg-subtle, var(--table-bg));\n border-block-end-width: var(--table-border-width);\n box-shadow: inset 0 0 0 9999px var(--table-bg-state, var(--table-bg-type, var(--theme-bg-subtle, var(--table-accent-bg))));\n }\n .table > tbody {\n vertical-align: inherit;\n }\n .table > thead {\n vertical-align: bottom;\n }\n .table-group-divider {\n border-block-start: calc(var(--table-border-width) * 2) solid var(--table-group-separator-color);\n }\n .caption-top {\n caption-side: top;\n }\n .table-sm > :not(caption) > * > * {\n --table-cell-padding-y: .25rem;\n --table-cell-padding-x: .25rem;\n }\n .table-bordered > :not(caption) > * {\n border-width: var(--table-border-width) 0;\n }\n .table-bordered > :not(caption) > * > * {\n border-width: 0 var(--table-border-width);\n }\n .table-borderless > :not(caption) > * > * {\n border-block-end-width: 0;\n }\n .table-borderless > :not(:first-child) {\n border-block-start-width: 0;\n }\n .table-striped > tbody > tr:nth-of-type(odd) > * {\n --table-color-type: var(--theme-fg, var(--table-striped-color));\n --table-bg-type: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-striped-bg-factor), transparent);\n }\n .table-striped-columns > :not(caption) > tr > :nth-child(even) {\n --table-color-type: var(--theme-fg, var(--table-striped-color));\n --table-bg-type: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-striped-bg-factor), transparent);\n }\n .table-active {\n --table-color-state: var(--theme-fg, var(--table-active-color));\n --table-bg-state: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-active-bg-factor), transparent);\n }\n .table-hover > tbody > tr:hover > * {\n --table-color-state: var(--theme-fg, var(--table-hover-color));\n --table-bg-state: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-hover-bg-factor), transparent);\n }\n .table-responsive {\n container-type: inline-size;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .sm\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 576px) {\n .sm\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .md\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 768px) {\n .md\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .lg\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 1024px) {\n .lg\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .xl\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 1280px) {\n .xl\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .\\32 xl\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 1536px) {\n .\\32 xl\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n @container (width < 576px) {\n .sm\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .sm\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .sm\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .sm\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .sm\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .sm\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .sm\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n @container (width < 768px) {\n .md\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .md\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .md\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .md\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .md\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .md\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .md\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n @container (width < 1024px) {\n .lg\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .lg\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .lg\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .lg\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .lg\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .lg\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .lg\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n @container (width < 1280px) {\n .xl\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .xl\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .xl\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .xl\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .xl\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .xl\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .xl\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n @container (width < 1536px) {\n .\\32 xl\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .\\32 xl\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .\\32 xl\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .\\32 xl\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .\\32 xl\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .\\32 xl\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .\\32 xl\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n}\n@layer content {\n .img-fluid {\n max-width: 100%;\n height: auto;\n }\n .img-thumbnail {\n --thumbnail-padding: 0.25rem;\n --thumbnail-bg: var(--bg-body);\n --thumbnail-border-width: var(--border-width);\n --thumbnail-border-color: var(--border-color);\n --thumbnail-border-radius: var(--radius-5);\n --thumbnail-box-shadow: var(--box-shadow-sm);\n padding: var(--thumbnail-padding);\n background-color: var(--thumbnail-bg);\n border: var(--thumbnail-border-width) solid var(--thumbnail-border-color);\n border-radius: var(--thumbnail-border-radius);\n box-shadow: var(--thumbnail-box-shadow);\n max-width: 100%;\n height: auto;\n }\n .figure {\n --figure-gap: calc(var(--spacer) * 0.5);\n --figure-caption-font-size: var(--font-size-sm);\n --figure-caption-color: var(--fg-3);\n display: flex;\n flex-direction: column;\n gap: var(--figure-gap);\n }\n .figure-caption {\n font-size: var(--figure-caption-font-size);\n color: var(--figure-caption-color);\n }\n}\n@layer content {\n .prose {\n --content-font-size: 1rem;\n --content-line-height: 1.5;\n --content-gap: calc(var(--content-font-size) * var(--content-line-height));\n --heading-color: light-dark(var(--gray-900), var(--white));\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--content-gap);\n max-width: 1000px;\n margin-inline: auto;\n font-size: var(--content-font-size);\n line-height: var(--content-line-height);\n }\n @media (width >= 1024px) {\n .prose {\n --content-font-size: var(--font-size-md);\n --content-line-height: 1.625;\n }\n }\n .prose :where(p, ul, ol, dl, pre, table, blockquote):not(:where(.not-prose, .not-prose *)) {\n margin-block: 0;\n }\n .prose :where(ul, ol):not([class], :where(.not-prose, .not-prose *)) li:not(:last-child) {\n margin-bottom: calc(var(--content-gap) / 4);\n }\n .prose :where(li ul, li ol):not(:where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) / 4);\n }\n .prose :where(hr):not(:where(.not-prose, .not-prose *)) {\n margin: calc(var(--content-gap) * 1.5) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n .prose :where(h1, h2, h3, h4, h5, h6):not([class], :where(.not-prose, .not-prose *)) {\n margin-top: 0;\n margin-bottom: calc(var(--content-gap) / -2);\n font-weight: 500;\n line-height: 1.25;\n }\n .prose :where(h1, h2, h3, h4, h5, h6):not([class], :where(.not-prose, .not-prose *)) code {\n font-weight: 600;\n color: inherit;\n }\n .prose :where(h1, h2):not(:first-child, :where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) * 0.75);\n }\n .prose :where(h3, h4, h5, h6):not(:first-child, :where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) * 0.5);\n }\n .prose :where(h1):not(:where(.not-prose, .not-prose *)) {\n font-size: 2.25em;\n line-height: 1.1;\n }\n .prose :where(h2):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.75em;\n }\n .prose :where(h3):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.5em;\n }\n .prose :where(h4):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.25em;\n }\n .prose :where(h5):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.125em;\n }\n .prose :where(h6):not(:where(.not-prose, .not-prose *)) {\n font-size: 1em;\n }\n .prose :where(a:not([class])):not(:where(.not-prose, .not-prose *)) {\n color: var(--link-color);\n text-decoration: underline;\n text-decoration-color: color-mix(in srgb, var(--link-color) 25%, transparent);\n text-underline-offset: 4px;\n transition: 0.1s text-decoration-color ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .prose :where(a:not([class])):not(:where(.not-prose, .not-prose *)) {\n transition: none;\n }\n }\n .prose :where(a:not([class])):not(:where(.not-prose, .not-prose *)):hover {\n text-decoration-color: var(--link-hover-color);\n }\n .prose :where(img):not(:where(.not-prose, .not-prose *)) {\n max-width: 100%;\n }\n .prose :where(blockquote):not(:where(.not-prose, .not-prose *)) {\n padding-inline-start: calc(var(--content-gap) / 2);\n margin: 0;\n border-inline-start: 4px solid var(--border-color);\n }\n .prose :where(table):not(:where(.not-prose, .not-prose *)) {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n }\n .prose :where(table:not([class])):not(:where(.not-prose, .not-prose *)) td,\n .prose :where(table:not([class])):not(:where(.not-prose, .not-prose *)) th {\n padding: 6px 12px;\n text-align: inherit;\n border: 1px solid var(--border-color);\n }\n .prose :where(dt):not(:where(.not-prose, .not-prose *)) {\n font-weight: 500;\n }\n .prose :where(video, img):not(:where(.not-prose, .not-prose *)) {\n max-width: 100%;\n }\n}\n@layer layout {\n .container,\n .container-fluid,\n .\\32 xl\\:container,\n .xl\\:container,\n .lg\\:container,\n .md\\:container,\n .sm\\:container {\n --gutter-x: 1.5rem;\n --gutter-y: 0;\n width: 100%;\n padding-inline: calc(var(--gutter-x) * 0.5);\n margin-inline: auto;\n }\n @media (width >= 576px) {\n .sm\\:container, .container {\n max-width: 540px;\n }\n }\n @media (width >= 768px) {\n .md\\:container, .sm\\:container, .container {\n max-width: 720px;\n }\n }\n @media (width >= 1024px) {\n .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 960px;\n }\n }\n @media (width >= 1280px) {\n .xl\\:container, .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 1200px;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:container, .xl\\:container, .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 1440px;\n }\n }\n}\n@layer layout {\n .row {\n --gutter-x: 1.5rem;\n --gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-inline: calc(-0.5 * var(--gutter-x));\n margin-top: calc(-1 * var(--gutter-y));\n }\n .row > * {\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-inline: calc(var(--gutter-x) * 0.5);\n margin-top: var(--gutter-y);\n }\n .col {\n flex: 1 0 0;\n }\n .row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .offset-3 {\n margin-inline-start: 25%;\n }\n .offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .offset-6 {\n margin-inline-start: 50%;\n }\n .offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .offset-9 {\n margin-inline-start: 75%;\n }\n .offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .g-0,\n .gx-0 {\n --gutter-x: 0;\n }\n .g-0,\n .gy-0 {\n --gutter-y: 0;\n }\n .g-1,\n .gx-1 {\n --gutter-x: 0.25rem;\n }\n .g-1,\n .gy-1 {\n --gutter-y: 0.25rem;\n }\n .g-2,\n .gx-2 {\n --gutter-x: 0.5rem;\n }\n .g-2,\n .gy-2 {\n --gutter-y: 0.5rem;\n }\n .g-3,\n .gx-3 {\n --gutter-x: 0.75rem;\n }\n .g-3,\n .gy-3 {\n --gutter-y: 0.75rem;\n }\n .g-4,\n .gx-4 {\n --gutter-x: 1rem;\n }\n .g-4,\n .gy-4 {\n --gutter-y: 1rem;\n }\n .g-5,\n .gx-5 {\n --gutter-x: 1.25rem;\n }\n .g-5,\n .gy-5 {\n --gutter-y: 1.25rem;\n }\n .g-6,\n .gx-6 {\n --gutter-x: 1.5rem;\n }\n .g-6,\n .gy-6 {\n --gutter-y: 1.5rem;\n }\n .g-7,\n .gx-7 {\n --gutter-x: 2rem;\n }\n .g-7,\n .gy-7 {\n --gutter-y: 2rem;\n }\n .g-8,\n .gx-8 {\n --gutter-x: 2.5rem;\n }\n .g-8,\n .gy-8 {\n --gutter-y: 2.5rem;\n }\n .g-9,\n .gx-9 {\n --gutter-x: 3rem;\n }\n .g-9,\n .gy-9 {\n --gutter-y: 3rem;\n }\n @media (width >= 576px) {\n .sm\\:col {\n flex: 1 0 0;\n }\n .sm\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .sm\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .sm\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .sm\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .sm\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .sm\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .sm\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .sm\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .sm\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .sm\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .sm\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .sm\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .sm\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .sm\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .sm\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .sm\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .sm\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .sm\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .sm\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .sm\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .sm\\:offset-0 {\n margin-inline-start: 0;\n }\n .sm\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .sm\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .sm\\:offset-3 {\n margin-inline-start: 25%;\n }\n .sm\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .sm\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .sm\\:offset-6 {\n margin-inline-start: 50%;\n }\n .sm\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .sm\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .sm\\:offset-9 {\n margin-inline-start: 75%;\n }\n .sm\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .sm\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .sm\\:g-0,\n .sm\\:gx-0 {\n --gutter-x: 0;\n }\n .sm\\:g-0,\n .sm\\:gy-0 {\n --gutter-y: 0;\n }\n .sm\\:g-1,\n .sm\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .sm\\:g-1,\n .sm\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .sm\\:g-2,\n .sm\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .sm\\:g-2,\n .sm\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .sm\\:g-3,\n .sm\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .sm\\:g-3,\n .sm\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .sm\\:g-4,\n .sm\\:gx-4 {\n --gutter-x: 1rem;\n }\n .sm\\:g-4,\n .sm\\:gy-4 {\n --gutter-y: 1rem;\n }\n .sm\\:g-5,\n .sm\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .sm\\:g-5,\n .sm\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .sm\\:g-6,\n .sm\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .sm\\:g-6,\n .sm\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .sm\\:g-7,\n .sm\\:gx-7 {\n --gutter-x: 2rem;\n }\n .sm\\:g-7,\n .sm\\:gy-7 {\n --gutter-y: 2rem;\n }\n .sm\\:g-8,\n .sm\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .sm\\:g-8,\n .sm\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .sm\\:g-9,\n .sm\\:gx-9 {\n --gutter-x: 3rem;\n }\n .sm\\:g-9,\n .sm\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 768px) {\n .md\\:col {\n flex: 1 0 0;\n }\n .md\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .md\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .md\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .md\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .md\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .md\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .md\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .md\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .md\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .md\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .md\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .md\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .md\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .md\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .md\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .md\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .md\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .md\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .md\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .md\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .md\\:offset-0 {\n margin-inline-start: 0;\n }\n .md\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .md\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .md\\:offset-3 {\n margin-inline-start: 25%;\n }\n .md\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .md\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .md\\:offset-6 {\n margin-inline-start: 50%;\n }\n .md\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .md\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .md\\:offset-9 {\n margin-inline-start: 75%;\n }\n .md\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .md\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .md\\:g-0,\n .md\\:gx-0 {\n --gutter-x: 0;\n }\n .md\\:g-0,\n .md\\:gy-0 {\n --gutter-y: 0;\n }\n .md\\:g-1,\n .md\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .md\\:g-1,\n .md\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .md\\:g-2,\n .md\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .md\\:g-2,\n .md\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .md\\:g-3,\n .md\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .md\\:g-3,\n .md\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .md\\:g-4,\n .md\\:gx-4 {\n --gutter-x: 1rem;\n }\n .md\\:g-4,\n .md\\:gy-4 {\n --gutter-y: 1rem;\n }\n .md\\:g-5,\n .md\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .md\\:g-5,\n .md\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .md\\:g-6,\n .md\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .md\\:g-6,\n .md\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .md\\:g-7,\n .md\\:gx-7 {\n --gutter-x: 2rem;\n }\n .md\\:g-7,\n .md\\:gy-7 {\n --gutter-y: 2rem;\n }\n .md\\:g-8,\n .md\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .md\\:g-8,\n .md\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .md\\:g-9,\n .md\\:gx-9 {\n --gutter-x: 3rem;\n }\n .md\\:g-9,\n .md\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1024px) {\n .lg\\:col {\n flex: 1 0 0;\n }\n .lg\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .lg\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .lg\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .lg\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .lg\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .lg\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .lg\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .lg\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .lg\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .lg\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .lg\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .lg\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .lg\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .lg\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .lg\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .lg\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .lg\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .lg\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .lg\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .lg\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .lg\\:offset-0 {\n margin-inline-start: 0;\n }\n .lg\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .lg\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .lg\\:offset-3 {\n margin-inline-start: 25%;\n }\n .lg\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .lg\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .lg\\:offset-6 {\n margin-inline-start: 50%;\n }\n .lg\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .lg\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .lg\\:offset-9 {\n margin-inline-start: 75%;\n }\n .lg\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .lg\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .lg\\:g-0,\n .lg\\:gx-0 {\n --gutter-x: 0;\n }\n .lg\\:g-0,\n .lg\\:gy-0 {\n --gutter-y: 0;\n }\n .lg\\:g-1,\n .lg\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .lg\\:g-1,\n .lg\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .lg\\:g-2,\n .lg\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .lg\\:g-2,\n .lg\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .lg\\:g-3,\n .lg\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .lg\\:g-3,\n .lg\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .lg\\:g-4,\n .lg\\:gx-4 {\n --gutter-x: 1rem;\n }\n .lg\\:g-4,\n .lg\\:gy-4 {\n --gutter-y: 1rem;\n }\n .lg\\:g-5,\n .lg\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .lg\\:g-5,\n .lg\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .lg\\:g-6,\n .lg\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .lg\\:g-6,\n .lg\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .lg\\:g-7,\n .lg\\:gx-7 {\n --gutter-x: 2rem;\n }\n .lg\\:g-7,\n .lg\\:gy-7 {\n --gutter-y: 2rem;\n }\n .lg\\:g-8,\n .lg\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .lg\\:g-8,\n .lg\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .lg\\:g-9,\n .lg\\:gx-9 {\n --gutter-x: 3rem;\n }\n .lg\\:g-9,\n .lg\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1280px) {\n .xl\\:col {\n flex: 1 0 0;\n }\n .xl\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .xl\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .xl\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .xl\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .xl\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .xl\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .xl\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .xl\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .xl\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .xl\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .xl\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .xl\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .xl\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .xl\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .xl\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .xl\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .xl\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .xl\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .xl\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .xl\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .xl\\:offset-0 {\n margin-inline-start: 0;\n }\n .xl\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .xl\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .xl\\:offset-3 {\n margin-inline-start: 25%;\n }\n .xl\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .xl\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .xl\\:offset-6 {\n margin-inline-start: 50%;\n }\n .xl\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .xl\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .xl\\:offset-9 {\n margin-inline-start: 75%;\n }\n .xl\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .xl\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .xl\\:g-0,\n .xl\\:gx-0 {\n --gutter-x: 0;\n }\n .xl\\:g-0,\n .xl\\:gy-0 {\n --gutter-y: 0;\n }\n .xl\\:g-1,\n .xl\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .xl\\:g-1,\n .xl\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .xl\\:g-2,\n .xl\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .xl\\:g-2,\n .xl\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .xl\\:g-3,\n .xl\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .xl\\:g-3,\n .xl\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .xl\\:g-4,\n .xl\\:gx-4 {\n --gutter-x: 1rem;\n }\n .xl\\:g-4,\n .xl\\:gy-4 {\n --gutter-y: 1rem;\n }\n .xl\\:g-5,\n .xl\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .xl\\:g-5,\n .xl\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .xl\\:g-6,\n .xl\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .xl\\:g-6,\n .xl\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .xl\\:g-7,\n .xl\\:gx-7 {\n --gutter-x: 2rem;\n }\n .xl\\:g-7,\n .xl\\:gy-7 {\n --gutter-y: 2rem;\n }\n .xl\\:g-8,\n .xl\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .xl\\:g-8,\n .xl\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .xl\\:g-9,\n .xl\\:gx-9 {\n --gutter-x: 3rem;\n }\n .xl\\:g-9,\n .xl\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:col {\n flex: 1 0 0;\n }\n .\\32 xl\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .\\32 xl\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .\\32 xl\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .\\32 xl\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .\\32 xl\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .\\32 xl\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .\\32 xl\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .\\32 xl\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .\\32 xl\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .\\32 xl\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .\\32 xl\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .\\32 xl\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .\\32 xl\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .\\32 xl\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .\\32 xl\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .\\32 xl\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .\\32 xl\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .\\32 xl\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .\\32 xl\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .\\32 xl\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .\\32 xl\\:offset-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .\\32 xl\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .\\32 xl\\:offset-3 {\n margin-inline-start: 25%;\n }\n .\\32 xl\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .\\32 xl\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .\\32 xl\\:offset-6 {\n margin-inline-start: 50%;\n }\n .\\32 xl\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .\\32 xl\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .\\32 xl\\:offset-9 {\n margin-inline-start: 75%;\n }\n .\\32 xl\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .\\32 xl\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .\\32 xl\\:g-0,\n .\\32 xl\\:gx-0 {\n --gutter-x: 0;\n }\n .\\32 xl\\:g-0,\n .\\32 xl\\:gy-0 {\n --gutter-y: 0;\n }\n .\\32 xl\\:g-1,\n .\\32 xl\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .\\32 xl\\:g-1,\n .\\32 xl\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .\\32 xl\\:g-2,\n .\\32 xl\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .\\32 xl\\:g-2,\n .\\32 xl\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .\\32 xl\\:g-3,\n .\\32 xl\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .\\32 xl\\:g-3,\n .\\32 xl\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .\\32 xl\\:g-4,\n .\\32 xl\\:gx-4 {\n --gutter-x: 1rem;\n }\n .\\32 xl\\:g-4,\n .\\32 xl\\:gy-4 {\n --gutter-y: 1rem;\n }\n .\\32 xl\\:g-5,\n .\\32 xl\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .\\32 xl\\:g-5,\n .\\32 xl\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .\\32 xl\\:g-6,\n .\\32 xl\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .\\32 xl\\:g-6,\n .\\32 xl\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .\\32 xl\\:g-7,\n .\\32 xl\\:gx-7 {\n --gutter-x: 2rem;\n }\n .\\32 xl\\:g-7,\n .\\32 xl\\:gy-7 {\n --gutter-y: 2rem;\n }\n .\\32 xl\\:g-8,\n .\\32 xl\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .\\32 xl\\:g-8,\n .\\32 xl\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .\\32 xl\\:g-9,\n .\\32 xl\\:gx-9 {\n --gutter-x: 3rem;\n }\n .\\32 xl\\:g-9,\n .\\32 xl\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n .grid {\n --columns: 12;\n --rows: 1;\n --gap: 1.5rem;\n display: grid;\n grid-template-rows: repeat(var(--rows), 1fr);\n grid-template-columns: repeat(var(--columns), 1fr);\n gap: var(--gap);\n }\n .g-col-1 {\n grid-column: auto/span 1;\n }\n .g-col-2 {\n grid-column: auto/span 2;\n }\n .g-col-3 {\n grid-column: auto/span 3;\n }\n .g-col-4 {\n grid-column: auto/span 4;\n }\n .g-col-5 {\n grid-column: auto/span 5;\n }\n .g-col-6 {\n grid-column: auto/span 6;\n }\n .g-col-7 {\n grid-column: auto/span 7;\n }\n .g-col-8 {\n grid-column: auto/span 8;\n }\n .g-col-9 {\n grid-column: auto/span 9;\n }\n .g-col-10 {\n grid-column: auto/span 10;\n }\n .g-col-11 {\n grid-column: auto/span 11;\n }\n .g-col-12 {\n grid-column: auto/span 12;\n }\n .g-start-1 {\n grid-column-start: 1;\n }\n .g-start-2 {\n grid-column-start: 2;\n }\n .g-start-3 {\n grid-column-start: 3;\n }\n .g-start-4 {\n grid-column-start: 4;\n }\n .g-start-5 {\n grid-column-start: 5;\n }\n .g-start-6 {\n grid-column-start: 6;\n }\n .g-start-7 {\n grid-column-start: 7;\n }\n .g-start-8 {\n grid-column-start: 8;\n }\n .g-start-9 {\n grid-column-start: 9;\n }\n .g-start-10 {\n grid-column-start: 10;\n }\n .g-start-11 {\n grid-column-start: 11;\n }\n @media (width >= 576px) {\n .sm\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .sm\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .sm\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .sm\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .sm\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .sm\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .sm\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .sm\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .sm\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .sm\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .sm\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .sm\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .sm\\:g-start-1 {\n grid-column-start: 1;\n }\n .sm\\:g-start-2 {\n grid-column-start: 2;\n }\n .sm\\:g-start-3 {\n grid-column-start: 3;\n }\n .sm\\:g-start-4 {\n grid-column-start: 4;\n }\n .sm\\:g-start-5 {\n grid-column-start: 5;\n }\n .sm\\:g-start-6 {\n grid-column-start: 6;\n }\n .sm\\:g-start-7 {\n grid-column-start: 7;\n }\n .sm\\:g-start-8 {\n grid-column-start: 8;\n }\n .sm\\:g-start-9 {\n grid-column-start: 9;\n }\n .sm\\:g-start-10 {\n grid-column-start: 10;\n }\n .sm\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 768px) {\n .md\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .md\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .md\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .md\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .md\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .md\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .md\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .md\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .md\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .md\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .md\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .md\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .md\\:g-start-1 {\n grid-column-start: 1;\n }\n .md\\:g-start-2 {\n grid-column-start: 2;\n }\n .md\\:g-start-3 {\n grid-column-start: 3;\n }\n .md\\:g-start-4 {\n grid-column-start: 4;\n }\n .md\\:g-start-5 {\n grid-column-start: 5;\n }\n .md\\:g-start-6 {\n grid-column-start: 6;\n }\n .md\\:g-start-7 {\n grid-column-start: 7;\n }\n .md\\:g-start-8 {\n grid-column-start: 8;\n }\n .md\\:g-start-9 {\n grid-column-start: 9;\n }\n .md\\:g-start-10 {\n grid-column-start: 10;\n }\n .md\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1024px) {\n .lg\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .lg\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .lg\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .lg\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .lg\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .lg\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .lg\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .lg\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .lg\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .lg\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .lg\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .lg\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .lg\\:g-start-1 {\n grid-column-start: 1;\n }\n .lg\\:g-start-2 {\n grid-column-start: 2;\n }\n .lg\\:g-start-3 {\n grid-column-start: 3;\n }\n .lg\\:g-start-4 {\n grid-column-start: 4;\n }\n .lg\\:g-start-5 {\n grid-column-start: 5;\n }\n .lg\\:g-start-6 {\n grid-column-start: 6;\n }\n .lg\\:g-start-7 {\n grid-column-start: 7;\n }\n .lg\\:g-start-8 {\n grid-column-start: 8;\n }\n .lg\\:g-start-9 {\n grid-column-start: 9;\n }\n .lg\\:g-start-10 {\n grid-column-start: 10;\n }\n .lg\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1280px) {\n .xl\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .xl\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .xl\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .xl\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .xl\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .xl\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .xl\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .xl\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .xl\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .xl\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .xl\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .xl\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .xl\\:g-start-1 {\n grid-column-start: 1;\n }\n .xl\\:g-start-2 {\n grid-column-start: 2;\n }\n .xl\\:g-start-3 {\n grid-column-start: 3;\n }\n .xl\\:g-start-4 {\n grid-column-start: 4;\n }\n .xl\\:g-start-5 {\n grid-column-start: 5;\n }\n .xl\\:g-start-6 {\n grid-column-start: 6;\n }\n .xl\\:g-start-7 {\n grid-column-start: 7;\n }\n .xl\\:g-start-8 {\n grid-column-start: 8;\n }\n .xl\\:g-start-9 {\n grid-column-start: 9;\n }\n .xl\\:g-start-10 {\n grid-column-start: 10;\n }\n .xl\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .\\32 xl\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .\\32 xl\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .\\32 xl\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .\\32 xl\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .\\32 xl\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .\\32 xl\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .\\32 xl\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .\\32 xl\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .\\32 xl\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .\\32 xl\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .\\32 xl\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .\\32 xl\\:g-start-1 {\n grid-column-start: 1;\n }\n .\\32 xl\\:g-start-2 {\n grid-column-start: 2;\n }\n .\\32 xl\\:g-start-3 {\n grid-column-start: 3;\n }\n .\\32 xl\\:g-start-4 {\n grid-column-start: 4;\n }\n .\\32 xl\\:g-start-5 {\n grid-column-start: 5;\n }\n .\\32 xl\\:g-start-6 {\n grid-column-start: 6;\n }\n .\\32 xl\\:g-start-7 {\n grid-column-start: 7;\n }\n .\\32 xl\\:g-start-8 {\n grid-column-start: 8;\n }\n .\\32 xl\\:g-start-9 {\n grid-column-start: 9;\n }\n .\\32 xl\\:g-start-10 {\n grid-column-start: 10;\n }\n .\\32 xl\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n .grid-cols-subgrid {\n grid-template-columns: subgrid;\n }\n .grid-fill {\n --gap: 1.5rem;\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-auto-flow: row;\n gap: var(--gap);\n }\n}\n@layer forms {\n .form-label,\n .col-form-label {\n font-size: var(--label-font-size, inherit);\n font-style: var(--label-font-style, inherit);\n font-weight: var(--label-font-weight, 500);\n color: var(--label-color, var(--fg-body));\n }\n .form-label {\n margin-bottom: var(--label-margin-bottom, calc(var(--spacer) / 2));\n }\n .col-form-label {\n --label-padding-y: calc(var(--btn-input-padding-y) + var(--border-width));\n padding-block: var(--label-padding-y);\n margin-bottom: 0;\n }\n .col-form-label-lg {\n --label-padding-y: calc(var(--btn-input-lg-padding-y) + var(--border-width));\n font-size: var(--btn-input-lg-font-size);\n }\n .col-form-label-sm {\n --label-padding-y: calc(var(--btn-input-sm-padding-y) + var(--border-width));\n font-size: var(--btn-input-sm-font-size);\n }\n}\n@layer forms {\n .form-text {\n --form-text-margin-top: 0.25rem;\n --form-text-font-size: var(--font-size-sm);\n --form-text-color: var(--fg-2);\n font-size: var(--form-text-font-size);\n font-style: var(--form-text-font-style);\n font-weight: var(--form-text-font-weight);\n color: var(--form-text-color);\n }\n}\n@layer forms {\n .form-control {\n --control-min-height: var(--btn-input-min-height);\n --control-padding-y: var(--btn-input-padding-y);\n --control-padding-x: var(--btn-input-padding-x);\n --control-font-size: var(--btn-input-font-size);\n --control-line-height: var(--btn-input-line-height);\n --control-fg: var(--btn-input-fg);\n --control-bg: var(--btn-input-bg);\n --control-border-width: var(--border-width);\n --control-border-color: var(--border-color);\n --control-border-radius: var(--radius-5);\n --control-box-shadow: var(--box-shadow-inset);\n --control-action-bg: var(--bg-1);\n --control-action-hover-bg: var(--bg-2);\n --control-transition-property: border-color, box-shadow;\n --control-transition-timing: 0.15s ease-in-out;\n --control-transition: var(--control-transition-property) var(--control-transition-timing);\n --control-placeholder-color: var(--fg-3);\n --control-disabled-color: var(--control-fg);\n --control-disabled-bg: var(--bg-2);\n --control-disabled-border-color: var(--control-border-color);\n --control-select-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2300000080' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n --control-select-bg-position: right 0.75rem center;\n --control-select-bg-size: 16px 12px;\n --control-select-bg-dark: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff80' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n display: flex;\n width: 100%;\n min-height: var(--control-min-height);\n padding: var(--control-padding-y) var(--control-padding-x);\n font-size: var(--control-font-size);\n line-height: var(--control-line-height);\n color: var(--control-fg);\n appearance: none;\n background-color: var(--control-bg);\n background-clip: padding-box;\n border: var(--control-border-width) solid var(--control-border-color);\n border-radius: var(--control-border-radius);\n box-shadow: var(--control-box-shadow);\n transition: var(--control-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n }\n .form-control:focus-visible {\n --focus-ring-offset: -1px;\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-control::placeholder {\n color: var(--control-placeholder-color);\n opacity: 1;\n }\n .form-control:disabled {\n color: var(--control-disabled-color);\n background-color: var(--control-disabled-bg);\n border-color: var(--control-disabled-border-color);\n opacity: 1;\n }\n .form-control::-webkit-datetime-edit {\n display: block;\n height: 1.5rem;\n padding: 0;\n margin-bottom: -0.125rem;\n }\n .form-control::-webkit-datetime-edit-fields-wrapper {\n height: 1.5rem;\n }\n .form-control[type=file] {\n overflow: hidden;\n }\n .form-control[type=file]:not(:disabled, [readonly]) {\n cursor: pointer;\n }\n .form-control::file-selector-button {\n min-height: var(--control-min-height);\n padding: var(--control-padding-y) var(--control-padding-x);\n margin: calc(var(--control-padding-y) * -1) calc(var(--control-padding-x) * -1);\n margin-inline-end: var(--control-padding-x);\n color: var(--control-fg);\n pointer-events: none;\n background-color: var(--control-action-bg);\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: var(--control-border-width);\n border-radius: 0;\n transition: var(--control-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-control::file-selector-button {\n transition: none;\n }\n }\n .form-control:hover:not(:disabled, [readonly])::file-selector-button {\n background-color: var(--control-action-hover-bg);\n }\n .form-control-plaintext {\n display: block;\n width: 100%;\n padding: var(--control-padding-y) 0;\n margin-bottom: 0;\n line-height: var(--control-line-height);\n color: var(--control-fg);\n background-color: transparent;\n border: solid transparent;\n border-width: var(--control-border-width) 0;\n }\n .form-control-plaintext:focus {\n outline: 0;\n }\n .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-inline: 0;\n }\n select.form-control,\n .form-control-caret {\n padding-inline-end: calc(var(--control-padding-x) * 3);\n background-image: var(--control-select-bg);\n background-repeat: no-repeat;\n background-position: var(--control-select-bg-position);\n background-size: var(--control-select-bg-size);\n }\n select.form-control[multiple], select.form-control[size]:not([size=\"1\"]),\n .form-control-caret[multiple],\n .form-control-caret[size]:not([size=\"1\"]) {\n padding-inline-end: var(--control-padding-x);\n background-image: none;\n }\n @media (prefers-color-scheme: dark) {\n select.form-control,\n .form-control-caret {\n background-image: var(--control-select-bg-dark);\n }\n }\n .form-control-sm {\n --control-min-height: var(--btn-input-sm-min-height);\n --control-padding-y: var(--btn-input-sm-padding-y);\n --control-padding-x: var(--btn-input-sm-padding-x);\n --control-font-size: var(--btn-input-sm-font-size);\n --control-line-height: var(--btn-input-sm-line-height);\n --control-border-radius: var(--btn-input-sm-border-radius);\n }\n .form-control-lg {\n --control-min-height: var(--btn-input-lg-min-height);\n --control-padding-y: var(--btn-input-lg-padding-y);\n --control-padding-x: var(--btn-input-lg-padding-x);\n --control-font-size: var(--btn-input-lg-font-size);\n --control-line-height: var(--btn-input-lg-line-height);\n --control-border-radius: var(--btn-input-lg-border-radius);\n }\n .form-control-color {\n width: var(--control-min-height);\n padding: var(--control-padding-y);\n }\n .form-control-color:not(:disabled, [readonly]) {\n cursor: pointer;\n }\n .form-control-color::-moz-color-swatch {\n border: 0 !important;\n border-radius: var(--radius-5);\n }\n .form-control-color::-webkit-color-swatch {\n border: 0 !important;\n border-radius: var(--radius-5);\n }\n .form-ghost {\n display: block;\n width: 100%;\n padding: 0;\n font: inherit;\n color: inherit;\n appearance: none;\n background: transparent;\n border: 0;\n }\n .form-ghost:focus {\n outline: 0;\n }\n .form-ghost::placeholder {\n color: var(--fg-3);\n opacity: 1;\n }\n .form-ghost:disabled {\n color: var(--fg-4);\n cursor: not-allowed;\n }\n}\n@layer forms {\n .check {\n --check-size: 1.25rem;\n --check-margin-block: 0.125rem;\n --check-bg: var(--bg-body);\n --check-border-color: var(--border-color);\n --check-border-radius: 0.375rem;\n --check-checked-bg: var(--control-checked-bg);\n --check-checked-border-color: var(--control-checked-border-color);\n --check-indeterminate-bg: var(--control-checked-bg);\n --check-indeterminate-border-color: var(--control-checked-border-color);\n --check-active-bg: var(--control-active-bg);\n --check-active-border-color: var(--control-active-border-color);\n --check-disabled-bg: var(--control-disabled-bg);\n --check-disabled-opacity: var(--control-disabled-opacity);\n display: grid;\n grid-template-columns: repeat(1, minmax(0, 1fr));\n margin-block: var(--check-margin-block);\n }\n .check :where(svg, input) {\n flex-shrink: 0;\n grid-row-start: 1;\n grid-column-start: 1;\n width: var(--check-size);\n height: var(--check-size);\n }\n .check :where(input) {\n appearance: none;\n background-color: var(--theme-bg, var(--check-bg));\n border: 1px solid var(--theme-bg, var(--check-border-color));\n border-radius: 0.3em;\n }\n .check :where(input:checked, input:indeterminate) {\n background-color: var(--theme-bg, var(--check-checked-bg));\n border-color: var(--theme-bg, var(--check-checked-border-color));\n }\n .check :where(input:focus-visible) {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: -1px;\n }\n .check:has(input:checked) .checked, .check:has(input:indeterminate) .indeterminate {\n display: block;\n color: var(--theme-contrast, var(--primary-contrast));\n stroke: currentcolor;\n }\n .check:has(input:disabled) {\n --check-bg: var(--check-disabled-bg);\n }\n .check:has(input:disabled) ~ label {\n color: var(--fg-3);\n cursor: default;\n }\n .check:has(input:disabled:checked) {\n opacity: var(--check-disabled-opacity);\n }\n .check :where(svg) {\n pointer-events: none;\n }\n .check :where(svg path) {\n display: none;\n }\n .check-sm {\n --check-size: 1rem;\n }\n .check-lg {\n --check-size: 1.5rem;\n --check-margin-block: 0;\n }\n}\n@layer forms {\n .radio {\n --radio-size: 1.25rem;\n --radio-margin-block: 0.125rem;\n --radio-bg: var(--bg-body);\n --radio-border-color: var(--border-color);\n --radio-checked-bg: var(--control-checked-bg);\n --radio-checked-border-color: var(--control-checked-border-color);\n --radio-disabled-bg: var(--control-disabled-bg);\n --radio-disabled-opacity: var(--control-disabled-opacity);\n position: relative;\n flex-shrink: 0;\n width: var(--radio-size);\n height: var(--radio-size);\n margin-block: var(--radio-margin-block);\n appearance: none;\n background-color: var(--theme-bg, var(--radio-bg));\n border: 1px solid var(--theme-bg, var(--radio-border-color));\n border-radius: 50%;\n }\n .radio:checked {\n color: var(--theme-contrast, var(--primary-contrast));\n background-color: var(--theme-bg, var(--radio-checked-bg));\n border-color: var(--theme-bg, var(--radio-checked-border-color));\n }\n .radio:checked::before {\n position: absolute;\n inset: 0.25rem;\n content: \"\";\n background-color: currentcolor;\n border-radius: 50%;\n }\n .radio:disabled {\n --radio-bg: var(--radio-disabled-bg);\n }\n .radio:disabled ~ label {\n color: var(--secondary-fg);\n cursor: default;\n }\n .radio:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .radio-sm {\n --radio-size: 1rem;\n }\n .radio-lg {\n --radio-size: 1.5rem;\n --radio-margin-block: 0;\n }\n}\n@layer forms {\n .switch {\n --switch-height: 1.25rem;\n --switch-width: calc(var(--switch-height) * 1.5);\n --switch-padding: 0.0625rem;\n --switch-margin-block: 0.125rem;\n --switch-bg: var(--bg-3);\n --switch-border-width: var(--border-width);\n --switch-border-color: var(--border-color);\n --switch-indicator-bg: var(--white);\n --switch-indicator-width: calc(var(--switch-height) - var(--switch-padding) * 2 - var(--switch-border-width) * 2);\n --switch-indicator-height: calc(var(--switch-height) - var(--switch-padding) * 2 - var(--switch-border-width) * 2);\n --switch-checked-bg: var(--control-checked-bg);\n --switch-checked-border-color: var(--switch-checked-bg);\n --switch-checked-indicator-bg: var(--white);\n --switch-disabled-bg: var(--control-disabled-bg);\n --switch-disabled-indicator-bg: var(--fg-3);\n position: relative;\n flex-shrink: 0;\n width: var(--switch-width);\n height: var(--switch-height);\n padding: var(--switch-padding);\n margin-block: var(--switch-margin-block);\n background-color: var(--switch-bg);\n border: var(--switch-border-width) solid var(--switch-border-color);\n border-radius: 10rem;\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);\n transition: background-color 0.15s ease-in-out;\n }\n .switch::before {\n position: absolute;\n inset-block: var(--switch-padding);\n inset-inline-start: var(--switch-padding);\n width: var(--switch-indicator-width);\n height: var(--switch-indicator-height);\n content: \"\";\n background-color: var(--theme-contrast, var(--switch-indicator-bg));\n border-radius: 10rem;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n transition: inset-inline-start 0.15s ease-in-out;\n }\n .switch input {\n position: absolute;\n inset: 0;\n appearance: none;\n background-color: transparent;\n outline: 0;\n }\n .switch:focus-within {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .switch:has(input:checked) {\n background-color: var(--theme-bg, var(--switch-checked-bg));\n border-color: var(--theme-bg, var(--switch-checked-border-color));\n }\n .switch:has(input:checked)::before {\n inset-inline-start: calc(100% - var(--switch-indicator-width) - var(--switch-padding));\n }\n .switch:has(input:disabled) {\n --switch-bg: var(--switch-disabled-bg);\n --switch-indicator-bg: var(--switch-disabled-indicator-bg);\n }\n .switch:has(input:disabled)::before {\n opacity: 0.4;\n }\n .switch:has(input:disabled) ~ label {\n color: var(--secondary-fg);\n cursor: default;\n }\n .switch-sm {\n --switch-height: 1rem;\n }\n .switch-lg {\n --switch-height: 1.5rem;\n --switch-margin-block: 0;\n }\n}\n@layer forms {\n .form-range {\n --range-track-width: 100%;\n --range-track-height: 0.5rem;\n --range-track-cursor: pointer;\n --range-track-bg: var(--bg-3);\n --range-track-border-radius: 1rem;\n --range-track-box-shadow: var(--box-shadow-inset);\n --range-thumb-width: 1rem;\n --range-thumb-height: var(--range-thumb-width);\n --range-thumb-bg: var(--primary-base);\n --range-thumb-border: var(--range-thumb-bg) solid var(--border-color);\n --range-thumb-border-radius: 1rem;\n --range-thumb-box-shadow: 0 1px 2px rgb(0 0 0 / 7.5%), 0 2px 4px rgb(0 0 0 / 7.5%);\n --range-thumb-active-bg: color-mix(in oklch, var(--primary-base) 70%, var(--bg-body));\n --range-thumb-disabled-bg: var(--fg-3);\n --range-thumb-transition-property: background-color, border-color, box-shadow;\n --range-thumb-transition-timing: 0.15s ease-in-out;\n --range-thumb-transition: var(--range-thumb-transition-property) var(--range-thumb-transition-timing);\n width: 100%;\n height: calc(var(--range-thumb-height) + var(--focus-ring-width) * 2);\n padding: 0;\n appearance: none;\n background-color: transparent;\n }\n .form-range:hover::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid color-mix(in oklch, var(--primary-focus-ring), transparent);\n }\n .form-range:hover::-moz-range-thumb {\n outline: var(--focus-ring-width) solid color-mix(in oklch, var(--primary-focus-ring), transparent);\n }\n .form-range:focus-visible {\n outline: 0;\n }\n .form-range:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: 0;\n }\n .form-range:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: 0;\n }\n .form-range::-moz-focus-outer {\n border: 0;\n }\n .form-range::-webkit-slider-thumb {\n width: var(--range-thumb-width);\n height: var(--range-thumb-height);\n appearance: none;\n background-color: var(--range-thumb-bg);\n background-image: var(--gradient);\n border: var(--range-thumb-border);\n border-radius: var(--range-thumb-border-radius);\n box-shadow: var(--range-thumb-box-shadow);\n transition: var(--range-thumb-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-range::-webkit-slider-thumb {\n transition: none;\n }\n }\n .form-range::-webkit-slider-thumb:active {\n background-color: var(--range-thumb-active-bg);\n background-image: var(--gradient);\n }\n .form-range::-webkit-slider-thumb {\n margin-top: calc((var(--range-track-height) - var(--range-thumb-height)) * 0.5);\n }\n .form-range::-moz-range-thumb {\n width: var(--range-thumb-width);\n height: var(--range-thumb-height);\n appearance: none;\n background-color: var(--range-thumb-bg);\n background-image: var(--gradient);\n border: var(--range-thumb-border);\n border-radius: var(--range-thumb-border-radius);\n box-shadow: var(--range-thumb-box-shadow);\n transition: var(--range-thumb-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-range::-moz-range-thumb {\n transition: none;\n }\n }\n .form-range::-moz-range-thumb:active {\n background-color: var(--range-thumb-active-bg);\n background-image: var(--gradient);\n }\n .form-range::-webkit-slider-runnable-track {\n width: var(--range-track-width);\n height: var(--range-track-height);\n color: transparent;\n cursor: var(--range-track-cursor);\n background-color: var(--range-track-bg);\n border-color: transparent;\n border-radius: var(--range-track-border-radius);\n box-shadow: var(--range-track-box-shadow);\n }\n .form-range::-moz-range-track {\n width: var(--range-track-width);\n height: var(--range-track-height);\n color: transparent;\n cursor: var(--range-track-cursor);\n background-color: var(--range-track-bg);\n border-color: transparent;\n border-radius: var(--range-track-border-radius);\n box-shadow: var(--range-track-box-shadow);\n }\n .form-range:disabled {\n pointer-events: none;\n }\n .form-range:disabled::-webkit-slider-thumb {\n background-color: var(--range-thumb-disabled-bg);\n }\n .form-range:disabled::-moz-range-thumb {\n background-color: var(--range-thumb-disabled-bg);\n }\n}\n@layer forms {\n .form-floating {\n --form-floating-height: calc(3.5rem + var(--border-width) * 2);\n --form-floating-line-height: 1.25;\n --form-floating-padding-x: var(--btn-input-padding-x);\n --form-floating-padding-y: 1rem;\n --form-floating-input-padding-t: 1.625rem;\n --form-floating-input-padding-b: 0.625rem;\n --form-floating-label-height: 1.5em;\n --form-floating-label-opacity: 0.65;\n --form-floating-label-transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n --form-floating-label-disabled-color: var(--fg-3);\n --form-floating-transition-property: opacity, transform;\n --form-floating-transition-timing: 0.1s ease-in-out;\n --form-floating-transition: var(--form-floating-transition-property) var(--form-floating-transition-timing);\n position: relative;\n }\n .form-floating > label {\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n z-index: 2;\n display: flex;\n align-items: center;\n max-width: 100%;\n height: 100%;\n padding: var(--form-floating-padding-y) var(--form-floating-padding-x);\n overflow: hidden;\n color: color-mix(in oklch, var(--fg-body) var(--form-floating-label-opacity), transparent);\n text-align: start;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n border: var(--input-btn-border-width) solid transparent;\n transform-origin: 0 0;\n transition: var(--form-floating-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-floating > label {\n transition: none;\n }\n }\n .form-floating > .form-control,\n .form-floating > .form-control-plaintext {\n height: var(--form-floating-height);\n min-height: var(--form-floating-height);\n padding: var(--form-floating-padding-y) var(--form-floating-padding-x);\n line-height: var(--form-floating-line-height);\n }\n .form-floating > .form-control::placeholder,\n .form-floating > .form-control-plaintext::placeholder {\n color: transparent;\n }\n .form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown),\n .form-floating > .form-control-plaintext:focus,\n .form-floating > .form-control-plaintext:not(:placeholder-shown) {\n padding-top: var(--form-floating-input-padding-t);\n padding-bottom: var(--form-floating-input-padding-b);\n }\n .form-floating > .form-control:-webkit-autofill,\n .form-floating > .form-control-plaintext:-webkit-autofill {\n padding-top: var(--form-floating-input-padding-t);\n padding-bottom: var(--form-floating-input-padding-b);\n }\n .form-floating > .form-control:focus ~ label,\n .form-floating > .form-control:not(:placeholder-shown) ~ label,\n .form-floating > .form-control-plaintext ~ label {\n transform: var(--form-floating-label-transform);\n }\n .form-floating > .form-control:-webkit-autofill ~ label {\n transform: var(--form-floating-label-transform);\n }\n .form-floating > textarea:focus ~ label::after,\n .form-floating > textarea:not(:placeholder-shown) ~ label::after {\n position: absolute;\n inset: var(--form-floating-padding-y) calc(var(--form-floating-padding-x) * 0.5);\n z-index: -1;\n height: var(--form-floating-label-height);\n content: \"\";\n background-color: var(--control-bg);\n border-radius: var(--btn-input-border-radius);\n }\n .form-floating > textarea:disabled ~ label::after {\n background-color: var(--control-disabled-bg);\n }\n .form-floating > .form-control-plaintext ~ label {\n border-width: var(--control-border-width) 0;\n }\n .form-floating > :disabled ~ label,\n .form-floating > .form-control:disabled ~ label {\n color: var(--form-floating-label-disabled-color);\n }\n}\n@layer components {\n .input-group {\n --input-group-addon-padding-y: var(--btn-input-padding-y);\n --input-group-addon-padding-x: var(--btn-input-padding-x);\n --input-group-addon-font-size: var(--btn-input-font-size);\n --input-group-addon-line-height: var(--btn-input-line-height);\n --input-group-addon-color: var(--fg-body);\n --input-group-addon-bg: var(--bg-2);\n --input-group-addon-border-color: var(--border-color);\n position: relative;\n display: flex;\n align-items: stretch;\n width: 100%;\n }\n .input-group > .form-control,\n .input-group > .form-floating {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n }\n .input-group > .form-control:focus,\n .input-group > .form-floating:focus-within {\n z-index: 5;\n }\n .input-group > .input-group-btn {\n position: relative;\n z-index: 2;\n }\n .input-group > .input-group-btn:focus {\n z-index: 5;\n }\n .input-group-text {\n display: flex;\n align-items: center;\n padding: var(--input-group-addon-padding-y) var(--input-group-addon-padding-x);\n font-size: var(--input-group-addon-font-size);\n line-height: var(--input-group-addon-line-height);\n color: var(--input-group-addon-color);\n text-align: center;\n white-space: nowrap;\n background-color: var(--input-group-addon-bg);\n border: var(--border-width) solid var(--input-group-addon-border-color);\n border-radius: var(--btn-input-border-radius);\n }\n .input-group-sm > .form-control,\n .input-group-sm > .input-group-text,\n .input-group-sm > .btn {\n min-height: var(--btn-input-sm-min-height);\n padding: var(--btn-input-sm-padding-y) var(--btn-input-sm-padding-x);\n font-size: var(--btn-input-sm-font-size);\n border-radius: var(--btn-input-sm-border-radius);\n }\n .input-group-lg > .form-control,\n .input-group-lg > .input-group-text,\n .input-group-lg > .btn {\n min-height: var(--btn-input-lg-min-height);\n padding: var(--btn-input-lg-padding-y) var(--btn-input-lg-padding-x);\n font-size: var(--btn-input-lg-font-size);\n border-radius: var(--btn-input-lg-border-radius);\n }\n .input-group > :not(:last-child, .menu-toggle-split, .menu, .input-group-ignore, .form-floating, :has(+ :is(.menu, .input-group-ignore):last-child)),\n .input-group > .menu-toggle-split:nth-last-child(n+3),\n .input-group > .form-floating:not(:last-child) > .form-control,\n .input-group > .form-floating:not(:last-child) > .form-select {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .input-group > :not(:first-child, .menu, .input-group-ignore) {\n margin-inline-start: calc(-1 * var(--border-width));\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .input-group > :first-child:is(.input-group-ignore) + :not(.menu, .input-group-ignore) {\n border-start-start-radius: var(--btn-input-border-radius);\n border-end-start-radius: var(--btn-input-border-radius);\n }\n .input-group > .form-floating:not(:first-child) > .form-control,\n .input-group > .form-floating:not(:first-child) > .form-select {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n}\n@layer forms {\n .strength {\n --strength-height: 0.375rem;\n --strength-gap: 0.25rem;\n --strength-margin-top: 0.25rem;\n --strength-border-radius: var(--radius-pill);\n --strength-bg: var(--bg-2);\n --strength-color: var(--bg-2);\n --strength-weak-color: var(--danger-bg);\n --strength-fair-color: var(--warning-bg);\n --strength-good-color: var(--info-bg);\n --strength-strong-color: var(--success-bg);\n display: flex;\n gap: var(--strength-gap);\n width: 100%;\n margin-top: var(--strength-margin-top);\n }\n .strength-segment {\n flex: 1;\n height: var(--strength-height);\n background-color: var(--strength-bg);\n border-radius: var(--strength-border-radius);\n transition: background-color 0.2s ease-in-out, width 0.3s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .strength-segment {\n transition: none;\n }\n }\n .strength-segment.active {\n background-color: var(--strength-color);\n }\n .strength[data-bs-strength=weak] {\n --strength-color: var(--strength-weak-color);\n }\n .strength[data-bs-strength=fair] {\n --strength-color: var(--strength-fair-color);\n }\n .strength[data-bs-strength=good] {\n --strength-color: var(--strength-good-color);\n }\n .strength[data-bs-strength=strong] {\n --strength-color: var(--strength-strong-color);\n }\n .strength-text {\n display: block;\n margin-top: var(--strength-margin-top);\n font-size: var(--font-size-xs);\n color: var(--strength-color, var(--fg-3));\n transition: color 0.2s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .strength-text {\n transition: none;\n }\n }\n .strength-text:empty {\n display: none;\n }\n .strength-bar {\n --strength-height: 0.375rem;\n --strength-gap: 0.25rem;\n --strength-margin-top: 0.25rem;\n --strength-border-radius: var(--radius-pill);\n --strength-bg: var(--bg-2);\n --strength-color: var(--bg-2);\n --strength-weak-color: var(--danger-bg);\n --strength-fair-color: var(--warning-bg);\n --strength-good-color: var(--info-bg);\n --strength-strong-color: var(--success-bg);\n --strength-color: transparent;\n --strength-width: 0%;\n width: 100%;\n height: var(--strength-height);\n margin-top: var(--strength-margin-top);\n overflow: hidden;\n background-color: var(--strength-bg);\n border-radius: var(--strength-border-radius);\n }\n .strength-bar::after {\n display: block;\n width: var(--strength-width);\n height: 100%;\n content: \"\";\n background-color: var(--strength-color);\n border-radius: var(--strength-border-radius);\n transition: background-color 0.2s ease-in-out, width 0.3s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .strength-bar::after {\n transition: none;\n }\n }\n .strength-bar[data-bs-strength=weak] {\n --strength-color: var(--strength-weak-color);\n --strength-width: 25%;\n }\n .strength-bar[data-bs-strength=fair] {\n --strength-color: var(--strength-fair-color);\n --strength-width: 50%;\n }\n .strength-bar[data-bs-strength=good] {\n --strength-color: var(--strength-good-color);\n --strength-width: 75%;\n }\n .strength-bar[data-bs-strength=strong] {\n --strength-color: var(--strength-strong-color);\n --strength-width: 100%;\n }\n}\n@layer components {\n .otp {\n --otp-size: var(--btn-input-lg-min-height);\n --otp-font-size: var(--btn-input-font-size);\n --otp-gap: 0.5rem;\n display: inline-flex;\n gap: var(--otp-gap);\n }\n .otp .form-control {\n width: var(--otp-size);\n min-height: var(--otp-size);\n padding: 0;\n font-size: var(--otp-font-size);\n font-weight: 500;\n line-height: 1;\n text-align: center;\n }\n .otp .form-control::-webkit-outer-spin-button, .otp .form-control::-webkit-inner-spin-button {\n margin: 0;\n appearance: none;\n }\n .otp .form-control[type=number] {\n appearance: textfield;\n }\n .otp .form-control:focus, .otp .form-control:focus-visible {\n z-index: 1;\n }\n .otp.input-group {\n gap: 0;\n width: auto;\n }\n .otp.input-group .form-control {\n flex: 0 0 auto;\n }\n .otp-separator {\n display: flex;\n align-items: center;\n padding-inline: var(--otp-gap);\n font-size: var(--otp-font-size);\n color: var(--fg-4);\n user-select: none;\n }\n}\n@layer forms {\n .form-adorn {\n --form-adorn-gap: 0.375rem;\n --form-adorn-icon-size: 1rem;\n --form-adorn-icon-color: var(--fg-2);\n gap: var(--form-adorn-gap);\n align-items: center;\n }\n .form-adorn:focus-visible {\n outline: 0;\n }\n .form-adorn:focus-within {\n --focus-ring-offset: -1px;\n border-color: var(--focus-ring-color);\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-adorn > .form-ghost {\n flex: 1;\n min-width: 0;\n }\n .form-adorn.form-adorn-end > .form-ghost {\n order: -1;\n }\n .form-adorn-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n color: var(--form-adorn-icon-color);\n pointer-events: none;\n }\n .form-adorn-icon > svg {\n width: var(--form-adorn-icon-size);\n height: var(--form-adorn-icon-size);\n }\n .form-adorn-text {\n flex-shrink: 0;\n color: var(--form-adorn-icon-color);\n pointer-events: none;\n user-select: none;\n }\n}\n@layer forms {\n .chip-input {\n --chip-input-padding-y: 0.75rem;\n --chip-input-padding-x: 0.75rem;\n --chip-input-gap: 0.375rem;\n --chip-input-ghost-min-width: 5rem;\n --control-fg: var(--btn-input-fg);\n --control-bg: var(--btn-input-bg);\n --control-border-width: var(--border-width);\n --control-border-color: var(--border-color);\n --control-border-radius: var(--radius-5);\n display: flex;\n flex-wrap: wrap;\n gap: var(--chip-input-gap);\n align-items: center;\n padding: var(--chip-input-padding-y) var(--chip-input-padding-x);\n color: var(--control-fg);\n background-color: var(--control-bg);\n border: var(--control-border-width) solid var(--control-border-color);\n border-radius: var(--control-border-radius);\n }\n .chip-input:focus-within {\n --focus-ring-offset: -1px;\n border-color: var(--focus-ring-color);\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .chip-input > .form-ghost {\n flex: 1 1 0;\n min-width: var(--chip-input-ghost-min-width);\n min-height: 1.75rem;\n }\n .chip-input.disabled, .chip-input:has(.form-ghost:disabled) {\n cursor: not-allowed;\n background-color: var(--bg-2);\n opacity: 1;\n }\n .chip-input.disabled:focus-within, .chip-input:has(.form-ghost:disabled):focus-within {\n border-color: var(--control-border-color);\n outline: 0;\n }\n .chip-input.disabled > .chip, .chip-input:has(.form-ghost:disabled) > .chip {\n pointer-events: none;\n opacity: var(--control-disabled-opacity);\n }\n}\n@layer components {\n .combobox-toggle {\n display: inline-flex;\n gap: 0.5rem;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding-inline-end: var(--control-padding-x);\n text-align: start;\n cursor: pointer;\n }\n .combobox-toggle.show {\n background-color: var(--bg-1);\n }\n .combobox-toggle:disabled, .combobox-toggle.disabled {\n cursor: not-allowed;\n opacity: 0.65;\n }\n .combobox-value {\n display: flex;\n flex: 1;\n gap: 0.5rem;\n align-items: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .combobox-placeholder {\n color: color-mix(in oklch, currentcolor 65%, transparent);\n }\n .combobox-caret {\n flex-shrink: 0;\n transition: transform 0.2s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .combobox-caret {\n transition: none;\n }\n }\n .show > .combobox-caret {\n transform: rotate(180deg);\n }\n .combobox-toggle + .menu {\n --menu-max-height: 300px;\n --menu-overflow-y: auto;\n }\n .combobox-search {\n position: sticky;\n top: 0;\n z-index: 1;\n padding: var(--menu-padding-x, 0.25rem);\n background-color: var(--menu-bg, var(--bg-body));\n }\n .combobox-search-input {\n width: 100%;\n }\n .combobox-no-results {\n padding: 1rem;\n font-size: var(--font-size-sm);\n color: var(--fg-3);\n text-align: center;\n }\n}\n@layer forms {\n .form-field {\n position: relative;\n display: grid;\n gap: 0.5rem;\n }\n .form-field > label,\n .form-field > .form-label {\n justify-self: start;\n margin-bottom: 0;\n }\n .form-field:has(> .check, > .radio, > .switch) {\n grid-template-columns: auto 1fr;\n column-gap: 0.5rem;\n align-items: start;\n }\n .form-field:has(> .check, > .radio, > .switch) > .check,\n .form-field:has(> .check, > .radio, > .switch) > .radio,\n .form-field:has(> .check, > .radio, > .switch) > .switch {\n grid-column: 1;\n }\n .form-field:has(> .check, > .radio, > .switch) > :not(.check, .radio, .switch) {\n grid-column: 2;\n }\n .form-field:has(> .check, > .radio, > .switch) > .form-label {\n grid-column: 1/-1;\n }\n .form-field-content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n .form-field-card {\n position: relative;\n padding: calc(var(--spacer) * 0.75);\n cursor: pointer;\n border: var(--border-width) solid transparent;\n border-radius: var(--radius-7);\n }\n .form-field-card:hover {\n background-color: var(--bg-1);\n }\n .form-field-card:has(:checked) {\n background-color: var(--bg-1);\n border-color: var(--border-color);\n }\n .form-field-card label::before {\n position: absolute;\n inset: 0;\n content: \"\";\n }\n .form-group {\n display: grid;\n gap: 0.5rem;\n }\n .form-group > label,\n .form-group > .form-label,\n .form-group > legend {\n justify-self: start;\n margin-bottom: 0;\n }\n}\n@layer components {\n .valid-feedback {\n display: none;\n width: 100%;\n font-size: var(--font-size-sm);\n color: var(--success-fg);\n }\n .tooltip.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n margin-top: 0.1rem;\n color: var(--success-contrast);\n text-align: center;\n background-color: var(--success-bg);\n opacity: 1;\n border-radius: var(--tooltip-border-radius);\n }\n .is-valid ~ .valid-feedback,\n .is-valid ~ .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] :user-valid ~ .valid-feedback,\n [data-bs-validate~=valid] :user-valid ~ .valid-tooltip {\n display: block;\n }\n .form-control.is-valid {\n --control-border-color: var(--success-border);\n }\n .form-control.is-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .form-control:user-valid {\n --control-border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .form-control:user-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--success-border);\n }\n .check input.is-valid {\n --check-border-color: var(--success-border);\n --check-checked-bg: var(--success-bg);\n --check-checked-border-color: var(--success-bg);\n }\n .check input.is-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .check input:user-valid {\n --check-border-color: var(--success-border);\n --check-checked-bg: var(--success-bg);\n --check-checked-border-color: var(--success-bg);\n }\n [data-bs-validate~=valid] .check input:user-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.check input.is-valid) label {\n color: var(--success-fg);\n }\n .form-field:has(.check input.is-valid) .valid-feedback,\n .form-field:has(.check input.is-valid) .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-field:has(.check input:user-valid) label {\n color: var(--success-fg);\n }\n [data-bs-validate~=valid] .form-field:has(.check input:user-valid) .valid-feedback,\n [data-bs-validate~=valid] .form-field:has(.check input:user-valid) .valid-tooltip {\n display: block;\n }\n .radio.is-valid {\n --radio-border-color: var(--success-border);\n --radio-checked-bg: var(--success-bg);\n --radio-checked-border-color: var(--success-bg);\n }\n .radio.is-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .radio:user-valid {\n --radio-border-color: var(--success-border);\n --radio-checked-bg: var(--success-bg);\n --radio-checked-border-color: var(--success-bg);\n }\n [data-bs-validate~=valid] .radio:user-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.radio.is-valid) label {\n color: var(--success-fg);\n }\n .form-field:has(.radio.is-valid) .valid-feedback,\n .form-field:has(.radio.is-valid) .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-field:has(.radio:user-valid) label {\n color: var(--success-fg);\n }\n [data-bs-validate~=valid] .form-field:has(.radio:user-valid) .valid-feedback,\n [data-bs-validate~=valid] .form-field:has(.radio:user-valid) .valid-tooltip {\n display: block;\n }\n .switch:has(input.is-valid) {\n --switch-border-color: var(--success-border);\n --switch-checked-bg: var(--success-bg);\n --switch-checked-border-color: var(--success-bg);\n }\n .switch:has(input.is-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .switch:has(input:user-valid) {\n --switch-border-color: var(--success-border);\n --switch-checked-bg: var(--success-bg);\n --switch-checked-border-color: var(--success-bg);\n }\n [data-bs-validate~=valid] .switch:has(input:user-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.switch input.is-valid) label {\n color: var(--success-fg);\n }\n .form-field:has(.switch input.is-valid) .valid-feedback,\n .form-field:has(.switch input.is-valid) .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-field:has(.switch input:user-valid) label {\n color: var(--success-fg);\n }\n [data-bs-validate~=valid] .form-field:has(.switch input:user-valid) .valid-feedback,\n [data-bs-validate~=valid] .form-field:has(.switch input:user-valid) .valid-tooltip {\n display: block;\n }\n .chip-input:has(.form-ghost.is-valid) {\n border-color: var(--success-border);\n }\n .chip-input:has(.form-ghost.is-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--success-border);\n }\n .chip-input:has(.form-ghost.is-valid) ~ .valid-feedback,\n .chip-input:has(.form-ghost.is-valid) ~ .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid) {\n border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid) ~ .valid-feedback,\n [data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid) ~ .valid-tooltip {\n display: block;\n }\n .form-adorn:has(.form-ghost.is-valid) {\n border-color: var(--success-border);\n }\n .form-adorn:has(.form-ghost.is-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--success-border);\n }\n .form-adorn:has(.form-ghost.is-valid) ~ .valid-feedback,\n .form-adorn:has(.form-ghost.is-valid) ~ .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid) {\n border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid) ~ .valid-feedback,\n [data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid) ~ .valid-tooltip {\n display: block;\n }\n .form-range.is-valid::-webkit-slider-thumb {\n background: var(--success-bg);\n }\n .form-range.is-valid::-moz-range-thumb {\n background: var(--success-bg);\n }\n .form-range.is-valid:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-range.is-valid:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-range.is-valid ~ .valid-feedback,\n .form-range.is-valid ~ .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-range:user-valid::-webkit-slider-thumb {\n background: var(--success-bg);\n }\n [data-bs-validate~=valid] .form-range:user-valid::-moz-range-thumb {\n background: var(--success-bg);\n }\n [data-bs-validate~=valid] .form-range:user-valid:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .form-range:user-valid:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .form-range:user-valid ~ .valid-feedback,\n [data-bs-validate~=valid] .form-range:user-valid ~ .valid-tooltip {\n display: block;\n }\n .form-field:has(.input-group .form-control.is-valid) .valid-feedback,\n .form-field:has(.input-group .form-control.is-valid) .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-field:has(.input-group .form-control:user-valid) .valid-feedback,\n [data-bs-validate~=valid] .form-field:has(.input-group .form-control:user-valid) .valid-tooltip {\n display: block;\n }\n .input-group > .form-control:not(:focus).is-valid,\n .input-group > .form-floating:not(:focus-within).is-valid {\n z-index: 3;\n }\n [data-bs-validate~=valid] .input-group > .form-control:not(:focus), .input-group > .form-floating:not(:focus-within):user-valid {\n z-index: 3;\n }\n .otp.is-valid .form-control {\n --control-border-color: var(--success-border);\n }\n .otp.is-valid .form-control:focus {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .otp:user-valid .form-control {\n --control-border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .otp:user-valid .form-control:focus {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--success-border);\n }\n .invalid-feedback {\n display: none;\n width: 100%;\n font-size: var(--font-size-sm);\n color: var(--danger-fg);\n }\n .tooltip.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n margin-top: 0.1rem;\n color: var(--danger-contrast);\n text-align: center;\n background-color: var(--danger-bg);\n opacity: 1;\n border-radius: var(--tooltip-border-radius);\n }\n .is-invalid ~ .invalid-feedback,\n .is-invalid ~ .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] :user-invalid ~ .invalid-feedback,\n [data-bs-validate] :user-invalid ~ .invalid-tooltip {\n display: block;\n }\n .form-control.is-invalid {\n --control-border-color: var(--danger-border);\n }\n .form-control.is-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--danger-border);\n }\n [data-bs-validate] .form-control:user-invalid {\n --control-border-color: var(--danger-border);\n }\n [data-bs-validate] .form-control:user-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--danger-border);\n }\n .check input.is-invalid {\n --check-border-color: var(--danger-border);\n --check-checked-bg: var(--danger-bg);\n --check-checked-border-color: var(--danger-bg);\n }\n .check input.is-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .check input:user-invalid {\n --check-border-color: var(--danger-border);\n --check-checked-bg: var(--danger-bg);\n --check-checked-border-color: var(--danger-bg);\n }\n [data-bs-validate] .check input:user-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.check input.is-invalid) label {\n color: var(--danger-fg);\n }\n .form-field:has(.check input.is-invalid) .invalid-feedback,\n .form-field:has(.check input.is-invalid) .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-field:has(.check input:user-invalid) label {\n color: var(--danger-fg);\n }\n [data-bs-validate] .form-field:has(.check input:user-invalid) .invalid-feedback,\n [data-bs-validate] .form-field:has(.check input:user-invalid) .invalid-tooltip {\n display: block;\n }\n .radio.is-invalid {\n --radio-border-color: var(--danger-border);\n --radio-checked-bg: var(--danger-bg);\n --radio-checked-border-color: var(--danger-bg);\n }\n .radio.is-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .radio:user-invalid {\n --radio-border-color: var(--danger-border);\n --radio-checked-bg: var(--danger-bg);\n --radio-checked-border-color: var(--danger-bg);\n }\n [data-bs-validate] .radio:user-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.radio.is-invalid) label {\n color: var(--danger-fg);\n }\n .form-field:has(.radio.is-invalid) .invalid-feedback,\n .form-field:has(.radio.is-invalid) .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-field:has(.radio:user-invalid) label {\n color: var(--danger-fg);\n }\n [data-bs-validate] .form-field:has(.radio:user-invalid) .invalid-feedback,\n [data-bs-validate] .form-field:has(.radio:user-invalid) .invalid-tooltip {\n display: block;\n }\n .switch:has(input.is-invalid) {\n --switch-border-color: var(--danger-border);\n --switch-checked-bg: var(--danger-bg);\n --switch-checked-border-color: var(--danger-bg);\n }\n .switch:has(input.is-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .switch:has(input:user-invalid) {\n --switch-border-color: var(--danger-border);\n --switch-checked-bg: var(--danger-bg);\n --switch-checked-border-color: var(--danger-bg);\n }\n [data-bs-validate] .switch:has(input:user-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.switch input.is-invalid) label {\n color: var(--danger-fg);\n }\n .form-field:has(.switch input.is-invalid) .invalid-feedback,\n .form-field:has(.switch input.is-invalid) .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-field:has(.switch input:user-invalid) label {\n color: var(--danger-fg);\n }\n [data-bs-validate] .form-field:has(.switch input:user-invalid) .invalid-feedback,\n [data-bs-validate] .form-field:has(.switch input:user-invalid) .invalid-tooltip {\n display: block;\n }\n .chip-input:has(.form-ghost.is-invalid) {\n border-color: var(--danger-border);\n }\n .chip-input:has(.form-ghost.is-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--danger-border);\n }\n .chip-input:has(.form-ghost.is-invalid) ~ .invalid-feedback,\n .chip-input:has(.form-ghost.is-invalid) ~ .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid) {\n border-color: var(--danger-border);\n }\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--danger-border);\n }\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid) ~ .invalid-feedback,\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid) ~ .invalid-tooltip {\n display: block;\n }\n .form-adorn:has(.form-ghost.is-invalid) {\n border-color: var(--danger-border);\n }\n .form-adorn:has(.form-ghost.is-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--danger-border);\n }\n .form-adorn:has(.form-ghost.is-invalid) ~ .invalid-feedback,\n .form-adorn:has(.form-ghost.is-invalid) ~ .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid) {\n border-color: var(--danger-border);\n }\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--danger-border);\n }\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid) ~ .invalid-feedback,\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid) ~ .invalid-tooltip {\n display: block;\n }\n .form-range.is-invalid::-webkit-slider-thumb {\n background: var(--danger-bg);\n }\n .form-range.is-invalid::-moz-range-thumb {\n background: var(--danger-bg);\n }\n .form-range.is-invalid:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-range.is-invalid:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-range.is-invalid ~ .invalid-feedback,\n .form-range.is-invalid ~ .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-range:user-invalid::-webkit-slider-thumb {\n background: var(--danger-bg);\n }\n [data-bs-validate] .form-range:user-invalid::-moz-range-thumb {\n background: var(--danger-bg);\n }\n [data-bs-validate] .form-range:user-invalid:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .form-range:user-invalid:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .form-range:user-invalid ~ .invalid-feedback,\n [data-bs-validate] .form-range:user-invalid ~ .invalid-tooltip {\n display: block;\n }\n .form-field:has(.input-group .form-control.is-invalid) .invalid-feedback,\n .form-field:has(.input-group .form-control.is-invalid) .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-field:has(.input-group .form-control:user-invalid) .invalid-feedback,\n [data-bs-validate] .form-field:has(.input-group .form-control:user-invalid) .invalid-tooltip {\n display: block;\n }\n .input-group > .form-control:not(:focus).is-invalid,\n .input-group > .form-floating:not(:focus-within).is-invalid {\n z-index: 4;\n }\n [data-bs-validate] .input-group > .form-control:not(:focus), .input-group > .form-floating:not(:focus-within):user-invalid {\n z-index: 4;\n }\n .otp.is-invalid .form-control {\n --control-border-color: var(--danger-border);\n }\n .otp.is-invalid .form-control:focus {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--danger-border);\n }\n [data-bs-validate] .otp:user-invalid .form-control {\n --control-border-color: var(--danger-border);\n }\n [data-bs-validate] .otp:user-invalid .form-control:focus {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--danger-border);\n }\n}\n@layer components {\n .btn, .btn-link, .btn-icon, .btn-solid, .btn-outline, .btn-subtle, .btn-text {\n --btn-min-height: var(--btn-input-min-height);\n --btn-padding-x: var(--btn-input-padding-x);\n --btn-padding-y: var(--btn-input-padding-y);\n --btn-font-size: var(--btn-input-font-size);\n --btn-font-weight: var(--btn-input-font-weight);\n --btn-line-height: var(--btn-input-line-height);\n --btn-color: var(--fg-body);\n --btn-white-space: nowrap;\n --btn-border-width: var(--border-width);\n --btn-border-color: transparent;\n --btn-border-radius: var(--radius-5);\n --btn-hover-border-color: transparent;\n --btn-disabled-opacity: 0.65;\n --btn-transition-timing: 0.15s ease-in-out;\n --btn-transition-property: color, background-color, border-color, box-shadow;\n --btn-transition: var(--btn-transition-property) var(--btn-transition-timing);\n display: inline-flex;\n gap: var(--btn-gap, 0.25rem);\n align-items: center;\n justify-content: center;\n min-height: var(--btn-min-height);\n padding: var(--btn-padding-y) var(--btn-padding-x);\n font-size: var(--btn-font-size);\n font-weight: var(--btn-font-weight);\n line-height: var(--btn-line-height);\n color: var(--btn-color);\n text-decoration: none;\n white-space: var(--btn-white-space);\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n background-color: var(--btn-bg, var(--bg-2));\n border: var(--btn-border-width) solid var(--btn-border-color);\n border-radius: var(--btn-border-radius);\n transition: var(--btn-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .btn, .btn-link, .btn-icon, .btn-solid, .btn-outline, .btn-subtle, .btn-text {\n transition: none;\n }\n }\n .btn:hover, .btn-link:hover, .btn-icon:hover, .btn-solid:hover, .btn-outline:hover, .btn-subtle:hover, .btn-text:hover {\n color: var(--btn-hover-color);\n background-color: var(--btn-hover-bg, var(--bg-3));\n border-color: var(--btn-hover-border-color);\n }\n .btn:focus-visible, .btn-link:focus-visible, .btn-icon:focus-visible, .btn-solid:focus-visible, .btn-outline:focus-visible, .btn-subtle:focus-visible, .btn-text:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: 1px;\n }\n .btn.active, .btn.show, .btn-link.active, .btn-link.show, .btn-icon.active, .btn-icon.show, .btn-solid.active, .btn-solid.show, .btn-outline.active, .btn-outline.show, .btn-subtle.active, .btn-subtle.show, .btn-text.active, .btn-text.show {\n color: var(--btn-active-color);\n background-color: var(--btn-active-bg, var(--bg-3));\n border-color: var(--btn-active-border-color);\n }\n .btn.active:focus-visible, .btn.show:focus-visible, .btn-link.active:focus-visible, .btn-link.show:focus-visible, .btn-icon.active:focus-visible, .btn-icon.show:focus-visible, .btn-solid.active:focus-visible, .btn-solid.show:focus-visible, .btn-outline.active:focus-visible, .btn-outline.show:focus-visible, .btn-subtle.active:focus-visible, .btn-subtle.show:focus-visible, .btn-text.active:focus-visible, .btn-text.show:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .btn:disabled, .btn.disabled, fieldset:disabled .btn, .btn-link:disabled, .btn-link.disabled, fieldset:disabled .btn-link, .btn-icon:disabled, .btn-icon.disabled, fieldset:disabled .btn-icon, .btn-solid:disabled, .btn-solid.disabled, fieldset:disabled .btn-solid, .btn-outline:disabled, .btn-outline.disabled, fieldset:disabled .btn-outline, .btn-subtle:disabled, .btn-subtle.disabled, fieldset:disabled .btn-subtle, .btn-text:disabled, .btn-text.disabled, fieldset:disabled .btn-text {\n color: var(--btn-disabled-color);\n pointer-events: none;\n background-color: var(--btn-disabled-bg, var(--bg-1));\n background-image: none;\n border-color: var(--btn-disabled-border-color);\n opacity: var(--btn-disabled-opacity);\n }\n .btn-solid {\n --btn-bg: var(--theme-bg);\n --btn-color: var(--theme-contrast);\n --btn-border-color: var(--theme-bg);\n --btn-active-bg: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-border-color: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-color: oklch(from var(--theme-contrast) calc(l * .9) calc(c * 1.15) h);\n --btn-disabled-bg: var(--theme-bg);\n --btn-disabled-color: var(--theme-contrast);\n --btn-disabled-border-color: var(--theme-bg);\n }\n .btn-solid:hover {\n --btn-hover-bg: oklch(from var(--theme-bg) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-border-color: oklch(from var(--theme-bg) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-color: oklch(from var(--theme-contrast) calc(l * .95) calc(c * 1.1) h);\n }\n .btn-solid:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n .btn-solid:active, .btn-solid.active, .btn-solid.btn-check:has(input:checked) {\n --btn-active-bg: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-border-color: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-color: oklch(from var(--theme-contrast) calc(l * .9) calc(c * 1.15) h);\n }\n .btn-solid:disabled, .btn-solid.disabled, .btn-solid.btn-check:has(input:disabled) {\n --btn-disabled-bg: var(--theme-bg);\n --btn-disabled-color: var(--theme-contrast);\n --btn-disabled-border-color: var(--theme-bg);\n }\n .btn-outline {\n --btn-bg: transparent;\n --btn-color: var(--theme-fg);\n --btn-border-color: var(--theme-border);\n --btn-active-bg: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-color: oklch(from var(--theme-contrast) calc(l * .9) calc(c * 1.15) h);\n --btn-active-border-color: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-disabled-bg: transparent;\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-border-color: var(--theme-border);\n }\n .btn-outline:hover {\n --btn-hover-bg: oklch(from var(--theme-bg) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-color: oklch(from var(--theme-contrast) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-border-color: oklch(from var(--theme-bg) calc(l * .95) calc(c * 1.1) h);\n }\n .btn-outline:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n .btn-outline:active, .btn-outline.active, .btn-outline.btn-check:has(input:checked) {\n --btn-active-bg: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-color: oklch(from var(--theme-contrast) calc(l * .9) calc(c * 1.15) h);\n --btn-active-border-color: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n }\n .btn-outline:disabled, .btn-outline.disabled, .btn-outline.btn-check:has(input:disabled) {\n --btn-disabled-bg: transparent;\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-border-color: var(--theme-border);\n }\n .btn-subtle {\n --btn-bg: var(--theme-bg-subtle);\n --btn-color: var(--theme-fg);\n --btn-border-color: transparent;\n --btn-active-bg: var(--theme-bg-subtle);\n --btn-active-color: oklch(from var(--theme-fg-emphasis) calc(l * .9) calc(c * 1.15) h);\n --btn-disabled-bg: var(--theme-bg-subtle);\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-border-color: transparent;\n }\n .btn-subtle:hover {\n --btn-hover-bg: color-mix(in oklch, var(--theme-bg-muted) 50%, var(--theme-bg-subtle));\n --btn-hover-color: oklch(from var(--theme-fg-emphasis) calc(l * .95) calc(c * 1.1) h);\n }\n .btn-subtle:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n .btn-subtle:active, .btn-subtle.active, .btn-subtle.btn-check:has(input:checked) {\n --btn-active-bg: var(--theme-bg-subtle);\n --btn-active-color: oklch(from var(--theme-fg-emphasis) calc(l * .9) calc(c * 1.15) h);\n }\n .btn-subtle:disabled, .btn-subtle.disabled, .btn-subtle.btn-check:has(input:disabled) {\n --btn-disabled-bg: var(--theme-bg-subtle);\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-border-color: transparent;\n }\n .btn-text {\n --btn-color: var(--theme-fg);\n --btn-bg: transparent;\n --btn-border-color: transparent;\n --btn-active-color: oklch(from var(--theme-fg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-bg: var(--theme-bg-subtle);\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-bg: transparent;\n --btn-disabled-border-color: transparent;\n }\n .btn-text:hover {\n --btn-hover-color: oklch(from var(--theme-fg) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-bg: var(--theme-bg-subtle);\n }\n .btn-text:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n .btn-text:active, .btn-text.active, .btn-text.btn-check:has(input:checked) {\n --btn-active-color: oklch(from var(--theme-fg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-bg: var(--theme-bg-subtle);\n }\n .btn-text:disabled, .btn-text.disabled, .btn-text.btn-check:has(input:disabled) {\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-bg: transparent;\n --btn-disabled-border-color: transparent;\n }\n .btn-link {\n --btn-font-weight: var(--font-weight-normal);\n --btn-color: var(--link-color);\n --btn-bg: transparent;\n --btn-border-color: transparent;\n --btn-hover-color: var(--link-hover-color);\n --btn-hover-bg: transparent;\n --btn-hover-border-color: transparent;\n --btn-active-color: var(--link-hover-color);\n --btn-active-bg: transparent;\n --btn-active-border-color: transparent;\n --btn-disabled-color: var(--fg-3);\n --btn-disabled-border-color: transparent;\n color: var(--theme-fg, var(--btn-color));\n text-decoration: var(--link-decoration);\n background-image: none;\n }\n .btn-link:focus-visible {\n color: var(--theme-fg, var(--btn-color));\n }\n .btn-link:hover {\n color: var(--theme-fg-emphasis, var(--btn-hover-color));\n }\n .btn-xs,\n .btn-group-xs > [class*=btn-] {\n --btn-min-height: var(--btn-input-xs-min-height);\n --btn-padding-y: var(--btn-input-xs-padding-y);\n --btn-padding-x: var(--btn-input-xs-padding-x);\n --btn-font-size: var(--btn-input-xs-font-size);\n --btn-line-height: var(--btn-input-xs-line-height);\n --btn-border-radius: var(--btn-input-xs-border-radius);\n }\n .btn-sm,\n .btn-group-sm > [class*=btn-] {\n --btn-min-height: var(--btn-input-sm-min-height);\n --btn-padding-y: var(--btn-input-sm-padding-y);\n --btn-padding-x: var(--btn-input-sm-padding-x);\n --btn-font-size: var(--btn-input-sm-font-size);\n --btn-line-height: var(--btn-input-sm-line-height);\n --btn-border-radius: var(--btn-input-sm-border-radius);\n }\n .btn-lg,\n .btn-group-lg > [class*=btn-] {\n --btn-min-height: var(--btn-input-lg-min-height);\n --btn-padding-y: var(--btn-input-lg-padding-y);\n --btn-padding-x: var(--btn-input-lg-padding-x);\n --btn-font-size: var(--btn-input-lg-font-size);\n --btn-line-height: var(--btn-input-lg-line-height);\n --btn-border-radius: var(--btn-input-lg-border-radius);\n }\n .btn-icon {\n align-items: center;\n justify-content: center;\n aspect-ratio: 1;\n padding: 0;\n }\n .btn-check > input {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n .btn-check:has(input:checked) {\n color: var(--btn-active-color);\n background-color: var(--btn-active-bg, var(--bg-3));\n background-image: none;\n border-color: var(--btn-active-border-color);\n box-shadow: var(--btn-active-shadow);\n }\n .btn-check:has(input:focus-visible) {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: 1px;\n }\n .btn-check:has(input:disabled) {\n color: var(--btn-disabled-color);\n pointer-events: none;\n background-color: var(--btn-disabled-bg, var(--bg-1));\n background-image: none;\n border-color: var(--btn-disabled-border-color);\n opacity: var(--btn-disabled-opacity);\n box-shadow: none;\n }\n .btn-styled {\n --btn-gradient-start: rgba(255, 255, 255, 0.125);\n --btn-gradient-end: rgba(0, 0, 0, 0.075);\n --btn-border-mix-color: #000;\n --btn-border-mix-amount: 10%;\n --btn-border-hover-mix-amount: 12.5%;\n --btn-border-active-mix-amount: 20%;\n --btn-shadow: 0 1px 2px rgb(0 0 0 / 15%), inset 0 1px 0 rgb(255 255 255 / 10%);\n --btn-active-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n background-image: linear-gradient(to bottom, var(--btn-gradient-start), var(--btn-gradient-end));\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-mix-amount));\n box-shadow: var(--btn-shadow);\n }\n .btn-styled:hover {\n background-image: linear-gradient(to bottom, var(--btn-gradient-start), var(--btn-gradient-end));\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-hover-mix-amount));\n }\n .btn-styled:active, .btn-styled.active {\n background-image: none;\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-active-mix-amount));\n box-shadow: var(--btn-active-shadow);\n }\n .btn-styled:disabled, .btn-styled.disabled {\n background-image: none;\n box-shadow: none;\n }\n}\n@layer components {\n .btn-group,\n .btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n }\n .btn-group > [class*=btn-],\n .btn-group-vertical > [class*=btn-] {\n position: relative;\n flex: 1 1 auto;\n }\n .btn-group > [class*=btn-]:hover,\n .btn-group-vertical > [class*=btn-]:hover {\n z-index: 1;\n }\n .btn-group > .btn-check:has(input:checked),\n .btn-group > [class*=btn-]:active,\n .btn-group > [class*=btn-].active,\n .btn-group-vertical > .btn-check:has(input:checked),\n .btn-group-vertical > [class*=btn-]:active,\n .btn-group-vertical > [class*=btn-].active {\n z-index: 2;\n }\n .btn-group > .btn-check:has(input:focus),\n .btn-group > [class*=btn-]:focus,\n .btn-group-vertical > .btn-check:has(input:focus),\n .btn-group-vertical > [class*=btn-]:focus {\n z-index: 3;\n }\n .btn-group-divider > [class*=btn-] + [class*=btn-]::before {\n position: absolute;\n z-index: 3;\n content: \"\";\n background-color: var(--btn-color);\n opacity: 0.25;\n }\n .btn-group:where(.btn-group-divider) > [class*=btn-] + [class*=btn-]::before {\n top: 25%;\n bottom: 25%;\n left: calc(var(--btn-border-width) * -1);\n width: var(--btn-border-width);\n }\n .btn-group-vertical:where(.btn-group-divider) > [class*=btn-] + [class*=btn-]::before {\n top: calc(var(--btn-border-width) * -1);\n right: var(--btn-padding-x);\n left: var(--btn-padding-x);\n height: var(--btn-border-width);\n }\n .btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n justify-content: flex-start;\n }\n .btn-toolbar .input-group {\n width: auto;\n }\n .btn-group {\n border-radius: var(--btn-border-radius);\n }\n .btn-group > [class*=btn-]:not(:first-child),\n .btn-group > .btn-group:not(:first-child) {\n margin-inline-start: calc(-1 * var(--btn-border-width));\n }\n .btn-group > [class*=btn-]:not(:last-child, :has(+ .menu)),\n .btn-group > .btn-group:not(:last-child) > [class*=btn-] {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .btn-group > [class*=btn-]:not(:first-child),\n .btn-group > .btn-group:not(:first-child) > [class*=btn-] {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n }\n .btn-group-vertical > [class*=btn-],\n .btn-group-vertical > .btn-group {\n width: 100%;\n }\n .btn-group-vertical > [class*=btn-]:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: calc(-1 * var(--btn-border-width));\n }\n .btn-group-vertical > [class*=btn-]:not(:last-child, :has(+ .menu)),\n .btn-group-vertical > .btn-group:not(:last-child) > [class*=btn-] {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .btn-group-vertical > [class*=btn-]:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) > [class*=btn-] {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n}\n@layer components {\n .btn-close {\n --btn-close-size: 1.25rem;\n --btn-close-color: inherit;\n --btn-close-opacity: 0.5;\n --btn-close-hover-opacity: 0.75;\n --btn-close-focus-opacity: 0.85;\n --btn-close-disabled-opacity: 0.25;\n box-sizing: content-box;\n width: var(--btn-close-size);\n height: var(--btn-close-size);\n padding: 0;\n color: var(--btn-close-color);\n background: transparent;\n border: 0;\n border-radius: var(--radius-5);\n opacity: var(--btn-close-opacity);\n }\n .btn-close > svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: currentcolor;\n }\n .btn-close:hover {\n color: var(--btn-close-color);\n text-decoration: none;\n opacity: var(--btn-close-hover-opacity);\n }\n .btn-close:focus-visible {\n opacity: var(--btn-close-focus-opacity);\n outline: var(--focus-ring);\n }\n .btn-close:disabled, .btn-close.disabled {\n pointer-events: none;\n user-select: none;\n opacity: var(--btn-close-disabled-opacity);\n }\n}\n@layer components {\n .accordion {\n --accordion-padding-x: 1.25rem;\n --accordion-padding-y: 1rem;\n --accordion-color: var(--fg-body);\n --accordion-bg: var(--bg-body);\n --accordion-transition-property: color, background-color, border-radius;\n --accordion-transition-timing: .15s ease-in-out;\n --accordion-transition: var(--accordion-transition-property) var(--accordion-timing);\n --accordion-border-color: var(--border-color);\n --accordion-border-width: var(--border-width);\n --accordion-border-radius: var(--accordion-radius, var(--radius-7));\n --accordion-btn-color: var(--fg-2);\n --accordion-btn-bg: var(--bg-body);\n --accordion-btn-icon-width: 1rem;\n --accordion-btn-icon-transform: rotate(-180deg);\n --accordion-btn-icon-transition: transform 0.2s ease-in-out;\n --accordion-active-color: var(--fg);\n --accordion-active-bg: var(--bg-2);\n }\n .accordion-header {\n display: flex;\n align-items: center;\n width: 100%;\n padding: var(--accordion-btn-padding-y, var(--accordion-padding-y)) var(--accordion-btn-padding-x, var(--accordion-padding-x));\n font-size: var(--accordion-font-size, var(--font-size-base));\n color: var(--accordion-btn-color);\n text-align: start;\n list-style: none;\n cursor: pointer;\n background-color: var(--accordion-btn-bg);\n transition: var(--accordion-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .accordion-header {\n transition: none;\n }\n }\n .accordion-header::-webkit-details-marker {\n display: none;\n }\n .accordion-header .accordion-icon {\n flex-shrink: 0;\n width: var(--accordion-btn-icon-width);\n height: var(--accordion-btn-icon-width);\n margin-inline-start: auto;\n color: currentcolor;\n transition: var(--accordion-btn-icon-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .accordion-header .accordion-icon {\n transition: none;\n }\n }\n .accordion-header:hover {\n z-index: 2;\n }\n .accordion-header:focus-visible {\n position: relative;\n z-index: 3;\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n outline-offset: -1px;\n }\n .accordion-item {\n color: var(--accordion-color);\n background-color: var(--accordion-bg);\n border: var(--accordion-border-width) solid var(--accordion-border-color);\n }\n .accordion-item:first-of-type {\n border-start-start-radius: var(--accordion-border-radius);\n border-start-end-radius: var(--accordion-border-radius);\n }\n .accordion-item:first-of-type > .accordion-header {\n border-start-start-radius: calc(var(--accordion-border-radius) - var(--accordion-border-width));\n border-start-end-radius: calc(var(--accordion-border-radius) - var(--accordion-border-width));\n }\n .accordion-item:not(:first-of-type) {\n border-block-start: 0;\n }\n .accordion-item:last-of-type {\n border-end-start-radius: var(--accordion-border-radius);\n border-end-end-radius: var(--accordion-border-radius);\n }\n .accordion-item:last-of-type > .accordion-header {\n border-end-start-radius: calc(var(--accordion-border-radius) - var(--accordion-border-width));\n border-end-end-radius: calc(var(--accordion-border-radius) - var(--accordion-border-width));\n }\n .accordion-item:last-of-type > .accordion-body {\n border-end-start-radius: var(--accordion-border-radius);\n border-end-end-radius: var(--accordion-border-radius);\n }\n .accordion-item[open] {\n border-color: var(--theme-border, var(--accordion-border-color));\n }\n .accordion-item[open] > .accordion-header {\n color: var(--theme-fg, var(--accordion-active-color));\n background-color: var(--theme-bg-subtle, var(--accordion-active-bg));\n box-shadow: inset 0 calc(-1 * var(--accordion-border-width)) 0 var(--theme-border, var(--accordion-border-color));\n }\n .accordion-item[open] > .accordion-header .accordion-icon {\n transform: var(--accordion-btn-icon-transform);\n }\n .accordion-item[open]:last-of-type > .accordion-header {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .accordion-body {\n padding: var(--accordion-body-padding-y, var(--accordion-padding-y)) var(--accordion-body-padding-x, var(--accordion-padding-x));\n }\n .accordion-flush > .accordion-item {\n border-inline: 0;\n border-radius: 0;\n }\n .accordion-flush > .accordion-item:first-child {\n border-block-start: 0;\n }\n .accordion-flush > .accordion-item:last-child {\n border-block-end: 0;\n }\n .accordion-flush > .accordion-item > .accordion-header,\n .accordion-flush > .accordion-item > .accordion-body {\n border-radius: 0;\n }\n}\n@layer components {\n .alert {\n --alert-gap: var(--spacer-3);\n --alert-bg: var(--theme-bg-subtle, var(--bg-1));\n --alert-padding-x: var(--spacer);\n --alert-padding-y: var(--spacer);\n --alert-color: var(--theme-fg, inherit);\n --alert-border-color: var(--theme-border, var(--border-color));\n --alert-border: var(--border-width) solid var(--alert-border-color);\n --alert-border-radius: var(--radius-5);\n --alert-link-color: inherit;\n --hr-border-color: var(--theme-border, var(--border-color));\n display: flex;\n gap: var(--alert-gap);\n align-items: start;\n padding: var(--alert-padding-y) var(--alert-padding-x);\n color: var(--alert-color);\n background-color: var(--alert-bg);\n border: var(--alert-border);\n border-radius: var(--alert-border-radius);\n }\n .alert > p {\n margin-bottom: 0;\n }\n .alert-heading {\n color: inherit;\n }\n .alert-link {\n font-weight: var(--font-weight-semibold);\n color: var(--alert-link-color);\n }\n}\n@layer components {\n .avatar {\n --avatar-size: 2.5rem;\n --avatar-border-radius: 50%;\n --avatar-border-width: 2px;\n --avatar-border-color: var(--bg-body);\n --avatar-bg: var(--bg-2);\n --avatar-color: var(--fg-body);\n --avatar-status-size: 0.75rem;\n --avatar-status-border-width: 2px;\n --avatar-status-border-color: var(--bg-body);\n --avatar-stack-spacing: -0.3;\n --avatar-stack-transition: transform .2s ease-in-out;\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--avatar-size);\n height: var(--avatar-size);\n font-size: calc(var(--avatar-size) * 0.4);\n font-weight: var(--avatar-font-weight, var(--font-weight-medium));\n line-height: 1;\n color: var(--theme-contrast, var(--avatar-color));\n text-transform: uppercase;\n vertical-align: middle;\n background-color: var(--theme-bg, var(--avatar-bg));\n border-radius: var(--avatar-border-radius);\n }\n .avatar-subtle {\n color: var(--theme-fg, var(--avatar-color));\n background-color: var(--theme-bg-subtle, var(--avatar-bg));\n }\n .avatar-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: inherit;\n }\n .avatar-status {\n position: absolute;\n right: calc(var(--avatar-status-border-width) * -1);\n bottom: calc(var(--avatar-status-border-width) * -1);\n width: var(--avatar-status-size);\n height: var(--avatar-status-size);\n background-color: var(--gray-400);\n border: var(--avatar-status-border-width) solid var(--avatar-status-border-color);\n border-radius: 50%;\n }\n .avatar-status.status-online {\n background-color: var(--green-500);\n }\n .avatar-status.status-offline {\n background-color: var(--gray-400);\n border-radius: 20%;\n }\n .avatar-status.status-busy {\n background-color: var(--red-500);\n border-radius: 20%;\n }\n .avatar-status.status-away {\n background-color: var(--yellow-500);\n }\n .avatar-stack {\n display: inline-flex;\n flex-direction: row-reverse;\n }\n .avatar-stack .avatar {\n margin-left: calc(var(--avatar-size) * var(--avatar-stack-spacing));\n border: var(--avatar-border-width) solid var(--avatar-border-color);\n mask-image: none;\n transition: var(--avatar-stack-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .avatar-stack .avatar {\n transition: none;\n }\n }\n .avatar-stack .avatar:last-child {\n margin-left: 0;\n }\n .avatar-stack .avatar:hover {\n z-index: 1;\n transform: translateY(-2px);\n }\n .avatar-xs,\n .avatar-stack-xs {\n --avatar-size: 1.5rem;\n --avatar-status-size: 0.625rem;\n }\n .avatar-sm,\n .avatar-stack-sm {\n --avatar-size: 2rem;\n }\n .avatar-lg,\n .avatar-stack-lg {\n --avatar-size: 3rem;\n --avatar-status-size: 1rem;\n }\n .avatar-xl,\n .avatar-stack-xl {\n --avatar-size: 4rem;\n --avatar-status-size: 1.25rem;\n }\n}\n@layer components {\n .badge {\n --badge-padding-x: 0.625em;\n --badge-padding-y: 0.25em;\n --badge-font-size: clamp(12px, 0.75em, 0.75em);\n --badge-font-weight: var(--font-weight-semibold);\n --badge-color: inherit;\n --badge-bg: var(--bg-2);\n --badge-border-width: var(--border-width);\n --badge-border-color: transparent;\n --badge-border-radius: var(--radius-7);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 1.375rem;\n padding: var(--badge-padding-y) var(--badge-padding-x);\n font-size: var(--badge-font-size);\n font-weight: var(--badge-font-weight);\n line-height: 1;\n color: var(--theme-contrast, var(--badge-color));\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n background-color: var(--theme-bg, var(--badge-bg));\n border: var(--badge-border-width) solid var(--badge-border-color);\n border-radius: var(--badge-border-radius);\n }\n .badge:empty {\n display: none;\n }\n .btn .badge {\n position: relative;\n top: -1px;\n }\n .badge-subtle {\n --badge-color: var(--theme-fg);\n --badge-bg: var(--theme-bg-subtle);\n --badge-border-color: transparent;\n color: var(--badge-color);\n background-color: var(--badge-bg);\n border-color: var(--badge-border-color);\n }\n .badge-outline {\n --badge-color: var(--theme-fg);\n --badge-bg: transparent;\n --badge-border-color: var(--theme-border);\n color: var(--badge-color);\n background-color: var(--badge-bg);\n border-color: var(--badge-border-color);\n }\n}\n@layer components {\n .breadcrumb {\n --breadcrumb-margin-bottom: 1rem;\n --breadcrumb-font-size: inherit;\n --breadcrumb-bg: transparent;\n --breadcrumb-border-radius: var(--radius-5);\n --breadcrumb-divider-color: var(--fg-4);\n --breadcrumb-link-padding-x: 0.75rem;\n --breadcrumb-link-padding-y: 0.25rem;\n --breadcrumb-link-color: var(--fg-3);\n --breadcrumb-link-hover-color: var(--fg-2);\n --breadcrumb-link-hover-bg: var(--bg-1);\n --breadcrumb-link-active-color: var(--fg-1);\n --breadcrumb-link-border-radius: var(--radius-7);\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n padding: var(--breadcrumb-padding-y, 0) var(--breadcrumb-padding-x, 0);\n font-size: var(--breadcrumb-font-size);\n list-style: none;\n background-color: var(--breadcrumb-bg);\n border-radius: var(--breadcrumb-border-radius);\n }\n .breadcrumb-item {\n display: flex;\n }\n .breadcrumb-divider {\n margin-inline: calc(var(--breadcrumb-link-padding-x) / 4);\n color: var(--breadcrumb-divider-color);\n }\n .breadcrumb-link {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 2.25rem;\n padding: var(--breadcrumb-link-padding-y) var(--breadcrumb-link-padding-x);\n color: var(--breadcrumb-link-color);\n text-decoration: none;\n border-radius: var(--breadcrumb-link-border-radius);\n transition: 0.1s text-decoration-color ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .breadcrumb-link {\n transition: none;\n }\n }\n .breadcrumb-link:hover {\n z-index: 2;\n color: var(--breadcrumb-link-hover-color);\n background-color: var(--breadcrumb-link-hover-bg);\n }\n .breadcrumb-link.active {\n color: var(--breadcrumb-link-active-color);\n }\n}\n@layer components {\n .chip {\n --chip-height: 1.75rem;\n --chip-padding-x: 0.625rem;\n --chip-gap: 0.3125rem;\n --chip-border-radius: var(--radius-pill);\n --chip-img-size: 1.25rem;\n --chip-icon-size: 1rem;\n --chip-dismiss-size: 1rem;\n --chip-dismiss-opacity: 0.65;\n --chip-dismiss-hover-opacity: 1;\n --chip-color: var(--theme-fg, var(--fg-body));\n --chip-bg: var(--theme-bg-subtle, var(--bg-2));\n --chip-border-color: transparent;\n --chip-selected-color: var(--theme-contrast, var(--primary-contrast));\n --chip-selected-bg: var(--theme-bg, var(--primary-bg));\n --chip-selected-border-color: var(--theme-bg, var(--primary-bg));\n display: inline-flex;\n gap: var(--chip-gap);\n align-items: center;\n height: var(--chip-height);\n padding-inline: var(--chip-padding-x);\n font-size: var(--chip-font-size, var(--font-size-sm));\n font-weight: var(--chip-font-weight, var(--font-weight-base));\n line-height: var(--chip-line-height, 1.25rem);\n color: var(--chip-color);\n text-decoration: none;\n white-space: nowrap;\n vertical-align: middle;\n cursor: pointer;\n background-color: var(--chip-bg);\n border: var(--border-width) solid var(--chip-border-color);\n border-radius: var(--chip-border-radius);\n }\n .chip:hover {\n --chip-bg: var(--theme-bg-muted, var(--bg-3));\n }\n .chip:focus-visible {\n outline: 0;\n }\n .chip.active {\n --chip-color: var(--chip-selected-color);\n --chip-bg: var(--chip-selected-bg);\n --chip-border-color: var(--chip-selected-border-color);\n }\n .chip.active:hover {\n --chip-bg: var(--chip-selected-bg);\n opacity: 0.9;\n }\n .chip.disabled, .chip:disabled {\n pointer-events: none;\n opacity: 0.65;\n }\n .chip-img {\n width: var(--chip-img-size);\n height: var(--chip-img-size);\n border-radius: 50%;\n }\n .chip-img:first-child {\n margin-inline-start: -0.375rem;\n }\n .chip-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n margin-inline-start: calc(var(--chip-gap) * -0.25);\n }\n .chip-icon > svg {\n display: block;\n width: var(--chip-icon-size);\n height: var(--chip-icon-size);\n }\n .chip-icon > img {\n width: var(--chip-icon-size);\n height: var(--chip-icon-size);\n object-fit: cover;\n border-radius: 50%;\n }\n .chip-dismiss {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--chip-min-height);\n height: var(--chip-min-height);\n padding: 0;\n margin-inline-end: calc(var(--chip-padding-x) * -0.25);\n color: inherit;\n cursor: pointer;\n background: transparent;\n border: 0;\n opacity: var(--chip-dismiss-opacity);\n }\n .chip-dismiss:hover {\n opacity: var(--chip-dismiss-hover-opacity);\n }\n .chip-dismiss:focus-visible {\n outline: 0;\n opacity: 1;\n outline: var(--focus-ring);\n }\n .chip-dismiss > svg {\n display: block;\n width: var(--chip-dismiss-size);\n height: var(--chip-dismiss-size);\n }\n}\n@layer components {\n .card {\n --card-spacer-y: var(--spacer-5);\n --card-spacer-x: var(--spacer-5);\n --card-subtitle-color: inherit;\n --card-border-width: var(--border-width);\n --card-border-color: var(--border-color-translucent);\n --card-border-radius: var(--radius-7);\n --card-box-shadow: none;\n --card-inner-border-radius: calc(var(--radius-7) - var(--border-width));\n --card-cap-padding-y: var(--spacer-3);\n --card-cap-padding-x: var(--spacer);\n --card-cap-bg: var(--bg-1);\n --card-cap-color: inherit;\n --card-height: auto;\n --card-color: inherit;\n --card-bg: var(--bg-body);\n --card-img-overlay-padding: var(--card-spacer-y);\n --card-group-margin: 0.75rem;\n --card-body-gap: calc(var(--card-spacer-y) * 0.5);\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n height: var(--card-height);\n color: var(--fg-body);\n word-wrap: break-word;\n background-color: var(--card-bg);\n box-shadow: var(--card-box-shadow);\n }\n .card > hr {\n margin-inline: 0;\n }\n .card-body {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n gap: var(--card-body-gap);\n align-items: flex-start;\n padding: var(--card-spacer-y) var(--card-spacer-x);\n color: var(--card-color);\n border: solid var(--theme-bg, var(--card-border-color));\n border-width: 0 var(--card-border-width);\n }\n .card-body > * {\n margin-block: 0;\n }\n .card-body,\n .card-list {\n border: solid var(--theme-bg, var(--card-border-color));\n border-width: 0 var(--card-border-width);\n }\n .card-body:first-child,\n .card-list:first-child {\n border-start-start-radius: var(--card-border-radius);\n border-start-end-radius: var(--card-border-radius);\n border-top-width: var(--card-border-width);\n }\n .card-body:last-child,\n .card-list:last-child {\n border-end-start-radius: var(--card-border-radius);\n border-end-end-radius: var(--card-border-radius);\n border-bottom-width: var(--card-border-width);\n }\n .card-body:not(:first-child, :last-child),\n .card-list:not(:first-child, :last-child) {\n border-block-end-width: var(--card-border-width);\n }\n .card-title,\n .card-subtitle,\n .card-text {\n align-self: stretch;\n }\n .card-subtitle {\n margin-top: calc(var(--card-body-gap) * -0.5);\n }\n .card-header {\n padding: var(--card-cap-padding-y) var(--card-cap-padding-x);\n margin-bottom: 0;\n color: var(--theme-contrast, var(--card-cap-color));\n background-color: var(--theme-bg, var(--card-cap-bg));\n border: var(--card-border-width) solid var(--theme-bg, var(--card-border-color));\n }\n .card-header:first-child {\n border-radius: var(--card-inner-border-radius) var(--card-inner-border-radius) 0 0;\n }\n .card-footer {\n padding: var(--card-cap-padding-y) var(--card-cap-padding-x);\n color: var(--card-cap-color);\n background-color: var(--theme-bg, var(--card-cap-bg));\n border: var(--card-border-width) solid var(--theme-bg, var(--card-border-color));\n }\n .card-footer:last-child {\n border-radius: 0 0 var(--card-inner-border-radius) var(--card-inner-border-radius);\n }\n .card-translucent {\n background-color: color-mix(in oklch, var(--card-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n .card-translucent .card-header,\n .card-translucent .card-footer {\n background-color: color-mix(in oklch, var(--card-cap-bg) 60%, transparent);\n }\n .card-subtle {\n border-color: var(--theme-border, var(--card-border-color));\n }\n .card-subtle .card-header {\n color: var(--theme-fg-emphasis, currentcolor);\n background-color: var(--theme-bg-subtle, var(--card-cap-bg));\n border-color: var(--theme-border, var(--card-border-color));\n }\n .card-subtle .card-footer {\n color: var(--theme-fg-emphasis, currentcolor);\n background-color: var(--theme-bg-subtle, var(--card-cap-bg));\n border-color: var(--theme-border, var(--card-border-color));\n }\n .card-subtle .card-body,\n .card-subtle .card-list {\n border-color: var(--theme-border, var(--card-border-color));\n }\n .nav.card-header-tabs {\n margin-inline: calc(-0.5 * var(--card-cap-padding-x));\n margin-bottom: calc(-1 * var(--card-cap-padding-y));\n border-block-end: 0;\n }\n .nav.card-header-tabs .nav-link.active {\n background-color: var(--card-bg);\n border-block-end-color: var(--card-bg);\n }\n .card-img-overlay {\n position: absolute;\n inset: 0;\n padding: var(--card-img-overlay-padding);\n border-radius: var(--card-inner-border-radius);\n }\n .card-img,\n .card-img-top,\n .card-img-bottom {\n width: 100%;\n outline: var(--card-border-width) solid var(--card-border-color);\n outline-offset: calc(var(--card-border-width) * -1);\n }\n .card-img,\n .card-img-top {\n border-start-start-radius: var(--card-inner-border-radius);\n border-start-end-radius: var(--card-inner-border-radius);\n }\n .card-img,\n .card-img-bottom {\n border-end-start-radius: var(--card-inner-border-radius);\n border-end-end-radius: var(--card-inner-border-radius);\n }\n .card-row {\n flex-direction: row;\n }\n .card-row .card-body,\n .card-row .card-list {\n border-width: var(--card-border-width) 0;\n border-radius: 0;\n }\n .card-row .card-body:first-child,\n .card-row .card-list:first-child {\n border-start-start-radius: var(--card-inner-border-radius);\n border-end-start-radius: var(--card-inner-border-radius);\n border-inline-start-width: var(--card-border-width);\n }\n .card-row .card-body:last-child,\n .card-row .card-list:last-child {\n border-start-end-radius: var(--card-inner-border-radius);\n border-end-end-radius: var(--card-inner-border-radius);\n border-inline-end-width: var(--card-border-width);\n }\n .card-row .card-body:not(:first-child, :last-child),\n .card-row .card-list:not(:first-child, :last-child) {\n border-inline-end-width: var(--card-border-width);\n }\n .card-img-start {\n border-start-start-radius: var(--card-inner-border-radius);\n border-end-start-radius: var(--card-inner-border-radius);\n }\n .card-img-end {\n border-start-end-radius: var(--card-inner-border-radius);\n border-end-end-radius: var(--card-inner-border-radius);\n }\n .card-group > .card {\n margin-bottom: var(--card-group-margin);\n }\n @media (width >= 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-inline-start: 0;\n border-inline-start: 0;\n }\n .card-group > .card:not(:last-child) {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .card-group > .card:not(:last-child) > .card-img-top,\n .card-group > .card:not(:last-child) > .card-header,\n .card-group > .card:not(:last-child) > .card-body {\n border-start-end-radius: 0;\n }\n .card-group > .card:not(:last-child) > .card-img-bottom,\n .card-group > .card:not(:last-child) > .card-footer,\n .card-group > .card:not(:last-child) > .card-body {\n border-end-end-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .card-group > .card:not(:first-child) > .card-img-top,\n .card-group > .card:not(:first-child) > .card-header,\n .card-group > .card:not(:first-child) > .card-body {\n border-start-start-radius: 0;\n }\n .card-group > .card:not(:first-child) > .card-img-bottom,\n .card-group > .card:not(:first-child) > .card-footer,\n .card-group > .card:not(:first-child) > .card-body {\n border-end-start-radius: 0;\n }\n }\n}\n@layer components {\n .carousel {\n position: relative;\n --carousel-control-color: #fff;\n --carousel-control-width: 15%;\n --carousel-control-opacity: 0.5;\n --carousel-control-hover-opacity: 0.9;\n --carousel-control-transition: opacity 0.15s ease;\n --carousel-control-icon-filter: none;\n --carousel-indicator-width: 30px;\n --carousel-indicator-height: 3px;\n --carousel-indicator-hit-area-height: 10px;\n --carousel-indicator-spacer: 3px;\n --carousel-indicator-opacity: 0.5;\n --carousel-indicator-active-bg: var(--white);\n --carousel-indicator-active-opacity: 1;\n --carousel-indicator-transition: opacity 0.6s ease;\n --carousel-caption-width: 70%;\n --carousel-caption-color: var(--white);\n --carousel-caption-padding-y: 1.25rem;\n --carousel-caption-spacer: 1.25rem;\n --carousel-control-icon-width: 2rem;\n --carousel-control-prev-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/></svg>\");\n --carousel-control-next-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/></svg>\");\n --carousel-transition-duration: 0.6s;\n --carousel-transition: transform 0.6s ease-in-out;\n }\n .carousel.pointer-event {\n touch-action: pan-y;\n }\n .carousel-inner {\n position: relative;\n display: flow-root;\n width: 100%;\n overflow: hidden;\n }\n .carousel-item {\n position: relative;\n display: none;\n float: inline-start;\n width: 100%;\n margin-inline-end: -100%;\n backface-visibility: hidden;\n transition: var(--carousel-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n }\n .carousel-item.active,\n .carousel-item-next,\n .carousel-item-prev {\n display: block;\n }\n .carousel-item-next:not(.carousel-item-start),\n .active.carousel-item-end {\n transform: translateX(100%);\n }\n .carousel-item-prev:not(.carousel-item-end),\n .active.carousel-item-start {\n transform: translateX(-100%);\n }\n .carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n }\n .carousel-fade .carousel-item.active,\n .carousel-fade .carousel-item-next.carousel-item-start,\n .carousel-fade .carousel-item-prev.carousel-item-end {\n z-index: 1;\n opacity: 1;\n }\n .carousel-fade .active.carousel-item-start,\n .carousel-fade .active.carousel-item-end {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s var(--carousel-transition-duration);\n }\n @media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-start,\n .carousel-fade .active.carousel-item-end {\n transition: none;\n }\n }\n .carousel-control-prev,\n .carousel-control-next {\n position: absolute;\n inset-block: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--carousel-control-width);\n padding: 0;\n color: var(--carousel-control-color);\n text-align: center;\n background: none;\n filter: var(--carousel-control-icon-filter);\n border: 0;\n opacity: var(--carousel-control-opacity);\n transition: var(--carousel-control-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n }\n .carousel-control-prev:hover, .carousel-control-prev:focus,\n .carousel-control-next:hover,\n .carousel-control-next:focus {\n color: var(--carousel-control-color);\n text-decoration: none;\n outline: 0;\n opacity: var(--carousel-control-hover-opacity);\n }\n .carousel-control-prev {\n inset-inline-start: 0;\n background-image: linear-gradient(90deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.001));\n }\n .carousel-control-next {\n inset-inline-end: 0;\n background-image: linear-gradient(270deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.001));\n }\n .carousel-control-prev-icon,\n .carousel-control-next-icon {\n display: inline-block;\n width: var(--carousel-control-icon-width);\n height: var(--carousel-control-icon-width);\n background-repeat: no-repeat;\n background-position: 50%;\n background-size: 100% 100%;\n }\n .carousel-control-prev-icon {\n background-image: var(--carousel-control-prev-icon-bg);\n }\n [dir=rtl] .carousel-control-prev-icon {\n background-image: var(--carousel-control-next-icon-bg);\n }\n .carousel-control-next-icon {\n background-image: var(--carousel-control-next-icon-bg);\n }\n [dir=rtl] .carousel-control-next-icon {\n background-image: var(--carousel-control-prev-icon-bg);\n }\n .carousel-indicators {\n position: absolute;\n inset: auto 0 0;\n z-index: 2;\n display: flex;\n justify-content: center;\n padding: 0;\n margin-inline: var(--carousel-control-width);\n margin-bottom: 1rem;\n }\n .carousel-indicators [data-bs-target] {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: var(--carousel-indicator-width);\n height: var(--carousel-indicator-height);\n padding: 0;\n margin-inline: var(--carousel-indicator-spacer);\n text-indent: -999px;\n cursor: pointer;\n background-color: var(--carousel-indicator-active-bg);\n background-clip: padding-box;\n border: 0;\n border-block: var(--carousel-indicator-hit-area-height) solid transparent;\n opacity: var(--carousel-indicator-opacity);\n transition: var(--carousel-indicator-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .carousel-indicators [data-bs-target] {\n transition: none;\n }\n }\n .carousel-indicators .active {\n opacity: var(--carousel-indicator-active-opacity);\n }\n .carousel-caption {\n position: absolute;\n right: calc((100% - var(--carousel-caption-width)) * 0.5);\n bottom: var(--carousel-caption-spacer);\n left: calc((100% - var(--carousel-caption-width)) * 0.5);\n padding-top: var(--carousel-caption-padding-y);\n padding-bottom: var(--carousel-caption-padding-y);\n color: var(--carousel-caption-color);\n text-align: center;\n }\n .carousel-dark {\n --carousel-indicator-active-bg: #000;\n --carousel-caption-color: #000;\n --carousel-control-icon-filter: invert(1) grayscale(100);\n }\n @media (prefers-color-scheme: dark) {\n :root {\n --carousel-indicator-active-bg: #000;\n --carousel-caption-color: #000;\n --carousel-control-icon-filter: invert(1) grayscale(100);\n }\n }\n}\n@layer components {\n [data-vc=calendar] {\n --datepicker-padding: 1rem;\n --datepicker-bg: var(--bg-body);\n --datepicker-color: var(--fg-body);\n --datepicker-border-color: var(--border-color-translucent);\n --datepicker-border-width: var(--border-width);\n --datepicker-border-radius: var(--radius-7);\n --datepicker-box-shadow: var(--box-shadow);\n --datepicker-font-size: var(--font-size-sm);\n --datepicker-min-width: 280px;\n --datepicker-zindex: 1000;\n --datepicker-header-font-weight: 600;\n --datepicker-weekday-color: var(--fg-3);\n --datepicker-day-hover-bg: var(--bg-1);\n --datepicker-day-selected-bg: var(--primary-bg);\n --datepicker-day-selected-color: var(--primary-contrast);\n --datepicker-day-today-bg: var(--bg-2);\n --datepicker-day-today-color: var(--fg-1);\n --datepicker-day-disabled-color: var(--fg-4);\n position: absolute;\n z-index: var(--datepicker-zindex);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n min-width: var(--datepicker-min-width);\n padding: var(--datepicker-padding);\n font-family: var(--font-sans-serif);\n font-size: var(--datepicker-font-size);\n color: var(--datepicker-color);\n color-scheme: light dark;\n background-color: var(--datepicker-bg);\n border: var(--datepicker-border-width) solid var(--datepicker-border-color);\n box-shadow: var(--datepicker-box-shadow);\n opacity: 1;\n border-radius: var(--datepicker-border-radius);\n }\n [data-vc=calendar][data-bs-theme=light] {\n color-scheme: light;\n }\n [data-vc=calendar][data-bs-theme=dark] {\n color-scheme: dark;\n }\n [data-vc=calendar] button:focus-visible {\n position: relative;\n z-index: 1;\n outline: var(--focus-ring);\n }\n [data-vc-calendar-hidden] {\n pointer-events: none;\n opacity: 0;\n }\n [data-vc=calendar]:not([data-vc-input]) {\n position: relative;\n width: fit-content;\n padding: 0;\n border: 0;\n box-shadow: none;\n }\n [data-vc-position=bottom] {\n margin-block-start: 0.25rem;\n }\n [data-vc-position=top] {\n margin-block-end: -0.25rem;\n }\n [data-vc-arrow] {\n position: relative;\n display: block;\n width: 2rem;\n height: 2rem;\n color: var(--datepicker-color);\n pointer-events: auto;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n }\n [data-vc-arrow]::before {\n position: absolute;\n inset: 0.25rem;\n content: \"\";\n background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%236b7280' d='M12 16c-.3 0-.5-.1-.7-.3l-6-6c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l5.3 5.3 5.3-5.3c.4-.4 1-.4 1.4 0s.4 1 0 1.4l-6 6c-.2.2-.4.3-.7.3'/></svg>\");\n background-repeat: no-repeat;\n background-position: center;\n }\n [data-vc-arrow]:hover {\n background-color: var(--datepicker-day-hover-bg);\n }\n [data-vc-arrow=prev]::before {\n transform: rotate(90deg);\n }\n [data-vc-arrow=next]::before {\n transform: rotate(-90deg);\n }\n [data-vc=controls] {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 20;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: 1rem;\n padding-right: 1rem;\n padding-left: 1rem;\n pointer-events: none;\n }\n [data-vc=grid] {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n gap: 1.75rem;\n }\n [data-vc=column] {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n min-width: 240px;\n }\n [data-vc=header] {\n position: relative;\n display: flex;\n align-items: center;\n margin-bottom: 0.75rem;\n }\n [data-vc-header=content] {\n display: inline-flex;\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n white-space: pre-wrap;\n }\n [data-vc=month],\n [data-vc=year] {\n padding: 0.25rem 0.5rem;\n margin-inline: -0.125rem;\n font-size: 1rem;\n font-weight: var(--datepicker-header-font-weight);\n color: var(--datepicker-color);\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n }\n [data-vc=month]:disabled,\n [data-vc=year]:disabled {\n color: var(--datepicker-day-disabled-color);\n pointer-events: none;\n }\n [data-vc=month]:hover:not(:disabled),\n [data-vc=year]:hover:not(:disabled) {\n background-color: var(--datepicker-day-hover-bg);\n }\n [data-vc=content] {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n }\n [data-vc=months],\n [data-vc=years] {\n display: grid;\n flex-grow: 1;\n grid-template-columns: repeat(var(--vc-columns, 4), minmax(0, 1fr));\n row-gap: 1rem;\n column-gap: 0.25rem;\n align-items: center;\n }\n [data-vc=years] {\n --vc-columns: 5;\n }\n [data-vc-months-month],\n [data-vc-years-year] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 2.5rem;\n padding: 0.25rem;\n font-size: 0.75rem;\n font-weight: 600;\n line-height: 1rem;\n color: var(--datepicker-weekday-color);\n text-align: center;\n word-break: break-all;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n }\n [data-vc-months-month]:disabled,\n [data-vc-years-year]:disabled {\n color: var(--datepicker-day-disabled-color);\n pointer-events: none;\n }\n [data-vc-months-month]:hover:not(:disabled),\n [data-vc-years-year]:hover:not(:disabled) {\n background-color: var(--datepicker-day-hover-bg);\n }\n [data-vc-months-month][data-vc-months-month-selected], [data-vc-months-month][data-vc-years-year-selected],\n [data-vc-years-year][data-vc-months-month-selected],\n [data-vc-years-year][data-vc-years-year-selected] {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n }\n [data-vc-months-month][data-vc-months-month-selected]:hover, [data-vc-months-month][data-vc-years-year-selected]:hover,\n [data-vc-years-year][data-vc-months-month-selected]:hover,\n [data-vc-years-year][data-vc-years-year-selected]:hover {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n }\n [data-vc=week] {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n justify-items: center;\n margin-bottom: 0.5rem;\n }\n [data-vc-week-day] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 1.875rem;\n padding: 0;\n margin: 0;\n font-size: 0.75rem;\n font-weight: 600;\n line-height: 1rem;\n color: var(--datepicker-weekday-color);\n background-color: transparent;\n border: 0;\n }\n button[data-vc-week-day] {\n cursor: pointer;\n }\n [data-vc=dates] {\n pointer-events: none;\n }\n [data-vc-dates=row] {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n align-items: center;\n justify-items: center;\n width: 100%;\n }\n [data-vc-date] {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n pointer-events: auto;\n }\n [data-vc-date]:not(:has([data-vc-date-btn])), [data-vc-date][data-vc-date-disabled], [data-vc-date][data-vc-date-disabled] [data-vc-date-btn] {\n pointer-events: none;\n }\n [data-vc-date-btn] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 1.875rem;\n height: 100%;\n min-height: 1.875rem;\n padding: 0;\n font-size: 0.75rem;\n font-weight: 400;\n line-height: 1rem;\n color: var(--datepicker-color);\n cursor: pointer;\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n }\n [data-vc-date-btn]:hover {\n background-color: var(--datepicker-day-hover-bg);\n }\n [data-vc-date-today] [data-vc-date-btn] {\n font-weight: 600;\n color: var(--datepicker-day-today-color);\n background-color: var(--datepicker-day-today-bg);\n }\n [data-vc-date-month=next] [data-vc-date-btn],\n [data-vc-date-month=prev] [data-vc-date-btn] {\n opacity: 0.5;\n }\n [data-vc-date-disabled] [data-vc-date-btn] {\n color: var(--datepicker-day-disabled-color);\n }\n [data-vc-date-hover] [data-vc-date-btn] {\n background-color: var(--datepicker-day-hover-bg);\n border-radius: 0;\n }\n [data-vc-date-hover=first] [data-vc-date-btn] {\n border-start-start-radius: var(--radius-5);\n border-end-start-radius: var(--radius-5);\n }\n [data-vc-date-hover=last] [data-vc-date-btn] {\n border-start-end-radius: var(--radius-5);\n border-end-end-radius: var(--radius-5);\n }\n [data-vc-date-hover=first-and-last] [data-vc-date-btn] {\n border-radius: var(--radius-5);\n }\n [data-vc-date-selected=middle] [data-vc-date-btn] {\n border-radius: 0;\n opacity: 0.8;\n }\n [data-vc-date-selected] [data-vc-date-btn] {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n }\n [data-vc-date-selected=first] [data-vc-date-btn] {\n border-top-left-radius: var(--radius-5);\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: var(--radius-5);\n }\n [data-vc-date-selected=last] [data-vc-date-btn] {\n border-top-left-radius: 0;\n border-top-right-radius: var(--radius-5);\n border-bottom-right-radius: var(--radius-5);\n border-bottom-left-radius: 0;\n }\n [data-vc-date-selected=first-and-last] [data-vc-date-btn] {\n border-radius: var(--radius-5);\n }\n}\n@layer components {\n .dialog-open {\n overflow: hidden;\n }\n .dialog {\n --dialog-padding: 1rem;\n --dialog-width: 500px;\n --dialog-margin: 1.75rem;\n --dialog-color: var(--fg-body);\n --dialog-bg: var(--bg-body);\n --dialog-border-color: var(--border-color-translucent);\n --dialog-border-width: var(--border-width);\n --dialog-border-radius: var(--radius-7);\n --dialog-box-shadow: var(--box-shadow-lg);\n --dialog-transition-duration: 0.3s;\n --dialog-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --dialog-backdrop-bg: rgba(0, 0, 0, 0.5);\n --dialog-backdrop-blur: 8px;\n --dialog-header-padding: 1rem;\n --dialog-header-border-color: var(--border-color);\n --dialog-header-border-width: var(--border-width);\n --dialog-footer-padding: 1rem;\n --dialog-footer-border-color: var(--border-color);\n --dialog-footer-border-width: var(--border-width);\n --dialog-footer-gap: 0.5rem;\n display: flex;\n flex-direction: column;\n width: var(--dialog-width);\n max-width: calc(100% - var(--dialog-margin) * 2);\n max-height: calc(100% - var(--dialog-margin) * 2);\n padding: 0;\n margin: auto;\n overflow: visible;\n color: var(--dialog-color);\n visibility: hidden;\n background-color: var(--dialog-bg);\n background-clip: padding-box;\n border: var(--dialog-border-width) solid var(--dialog-border-color);\n border-radius: var(--dialog-border-radius);\n box-shadow: var(--dialog-box-shadow);\n }\n .dialog:not(.dialog-instant) {\n opacity: 0;\n transition: opacity var(--dialog-transition-duration) var(--dialog-transition-timing), transform var(--dialog-transition-duration) var(--dialog-transition-timing), visibility 0s var(--dialog-transition-duration);\n }\n @media (prefers-reduced-motion: reduce) {\n .dialog:not(.dialog-instant) {\n transition: none;\n }\n }\n .dialog:not(.dialog-instant).dialog-slide-down {\n transform: translateY(-3rem);\n }\n .dialog:not(.dialog-instant).dialog-slide-up {\n transform: translateY(3rem);\n }\n .dialog:not(.dialog-instant)[open]:not(.hiding) {\n overflow: visible;\n visibility: visible;\n opacity: 1;\n transition: opacity var(--dialog-transition-duration) var(--dialog-transition-timing), transform var(--dialog-transition-duration) var(--dialog-transition-timing), visibility 0s;\n }\n @media (prefers-reduced-motion: reduce) {\n .dialog:not(.dialog-instant)[open]:not(.hiding) {\n transition: none;\n }\n }\n .dialog:not(.dialog-instant)[open]:not(.hiding) {\n transform: none;\n }\n .dialog:not(.dialog-instant)[open].dialog-static:not(.hiding) {\n transform: scale(1.02);\n }\n .dialog:not(.dialog-instant)::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n transition: background-color var(--dialog-transition-duration) var(--dialog-transition-timing), backdrop-filter var(--dialog-transition-duration) var(--dialog-transition-timing), display var(--dialog-transition-duration) allow-discrete, overlay var(--dialog-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .dialog:not(.dialog-instant)::backdrop {\n transition: none;\n }\n }\n .dialog:not(.dialog-instant).hiding::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .dialog.dialog-instant::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n }\n .dialog[open]:not(.hiding) {\n overflow: visible;\n visibility: visible;\n opacity: 1;\n transform: none;\n }\n .dialog.dialog-nonmodal {\n position: fixed;\n inset-block-start: 50%;\n inset-inline-start: 50%;\n z-index: 1055;\n margin-inline: 0;\n transform: translate(-50%, -50%);\n }\n .dialog.dialog-scrollable[open] {\n max-height: calc(100% - var(--dialog-margin) * 2);\n }\n .dialog.dialog-scrollable[open] .dialog-body {\n overflow-y: auto;\n }\n @starting-style {\n .dialog:not(.dialog-instant)::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .dialog.dialog-swap-in:not(.dialog-instant)::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n }\n }\n .dialog-sm {\n --dialog-width: 280px;\n }\n .dialog-lg {\n --dialog-width: 800px;\n }\n .dialog-xl {\n --dialog-width: 1140px;\n }\n .dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n @media (width < 576px) {\n .sm-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n @media (width < 768px) {\n .md-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n @media (width < 1024px) {\n .lg-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n @media (width < 1280px) {\n .xl-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n @media (width < 1536px) {\n .\\32 xl-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n .dialog-header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n padding: var(--dialog-header-padding);\n border-block-end: var(--dialog-header-border-width) solid var(--dialog-header-border-color);\n }\n .dialog-header .btn-close {\n margin-inline-start: auto;\n }\n .dialog-title {\n margin-bottom: 0;\n line-height: 1.5;\n font-size: var(--font-size-md);\n }\n .dialog-body {\n position: relative;\n flex: 1 1 auto;\n padding: var(--dialog-padding);\n }\n .dialog-footer {\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n gap: var(--dialog-footer-gap);\n align-items: center;\n justify-content: flex-end;\n padding: var(--dialog-footer-padding);\n border-block-start: var(--dialog-footer-border-width) solid var(--dialog-footer-border-color);\n }\n}\n@layer components {\n .menu {\n --menu-zindex: 1000;\n --menu-gap: 0.125rem;\n --menu-min-width: 10rem;\n --menu-padding-x: 0.25rem;\n --menu-padding-y: 0.25rem;\n --menu-spacer: 0.125rem;\n --menu-font-size: var(--font-size-sm);\n --menu-color: var(--fg-body);\n --menu-bg: var(--bg-body);\n --menu-box-shadow: var(--box-shadow);\n --menu-divider-bg: var(--border-color-translucent);\n --menu-divider-margin-y: 0.125rem;\n --menu-divider-margin-x: 0.25rem;\n --menu-item-color: var(--menu-color, var(--fg-body));\n --menu-item-hover-color: var(--menu-color, var(--fg-body));\n --menu-item-hover-bg: var(--bg-1);\n --menu-item-active-color: var(--primary-contrast);\n --menu-item-active-bg: var(--primary-bg);\n --menu-item-disabled-color: var(--fg-3);\n --menu-item-gap: 0.5rem;\n --menu-item-padding-x: 0.75rem;\n --menu-item-padding-y: 0.25rem;\n --menu-item-border-radius: var(--radius-5);\n --menu-icon-size: 1rem;\n --menu-image-size: 1.5rem;\n --menu-description-font-size: var(--font-size-xs);\n --menu-check-color: currentcolor;\n --menu-header-color: var(--fg-3);\n --menu-header-padding-x: 0.75rem;\n --menu-header-padding-y: 0.25rem;\n --menu-transition-duration: 0.15s;\n --menu-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n position: absolute;\n z-index: var(--menu-zindex);\n display: none;\n flex-direction: column;\n gap: var(--menu-gap);\n min-width: var(--menu-min-width);\n max-height: var(--menu-max-height, none);\n padding: var(--menu-padding-y) var(--menu-padding-x);\n margin: 0;\n overflow-y: var(--menu-overflow-y, initial);\n overscroll-behavior: contain;\n font-size: var(--menu-font-size);\n color: var(--menu-color);\n text-align: start;\n list-style: none;\n background-color: var(--menu-bg);\n background-clip: padding-box;\n border: var(--menu-border-width, var(--border-width)) solid var(--menu-border-color, var(--border-color-translucent));\n border-radius: var(--menu-border-radius, var(--radius-7));\n box-shadow: var(--menu-box-shadow);\n opacity: 0;\n transform: scale(0.95);\n transform-origin: top start;\n }\n .menu[data-bs-placement^=top] {\n transform-origin: bottom start;\n }\n .menu[data-bs-placement=bottom-end] {\n transform-origin: top end;\n }\n .menu[data-bs-placement=top-end] {\n transform-origin: bottom end;\n }\n .menu[data-bs-placement^=left] {\n transform-origin: top end;\n }\n .menu {\n transition: opacity var(--menu-transition-duration) var(--menu-transition-timing), transform var(--menu-transition-duration) var(--menu-transition-timing), display var(--menu-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .menu {\n transition: none;\n }\n }\n .menu.show {\n display: flex;\n opacity: 1;\n transform: none;\n }\n @starting-style {\n .menu.show {\n opacity: 0;\n transform: scale(0.95);\n }\n }\n .menu-scrollable {\n --menu-max-height: 80dvh;\n --menu-overflow-y: auto;\n }\n .menu-translucent {\n --menu-item-hover-bg-light: color-mix(in oklch, var(--bg-1) 90%, transparent);\n --menu-item-hover-bg-dark: color-mix(in oklch, var(--bg-1) 80%, transparent);\n --menu-item-active-bg-light: color-mix(in oklch, var(--primary-bg) 80%, transparent);\n --menu-item-active-bg-dark: color-mix(in oklch, var(--primary-bg) 70%, transparent);\n --menu-item-active-bg: light-dark(var(--menu-item-active-bg-light), var(--menu-item-active-bg-dark));\n --menu-item-hover-bg: light-dark(var(--menu-item-hover-bg-light), var(--menu-item-hover-bg-dark));\n background-color: color-mix(in oklch, var(--menu-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n .menu-divider {\n height: 0;\n margin: var(--menu-divider-margin-y) var(--menu-divider-margin-x);\n overflow: hidden;\n border-block-start: 1px solid var(--menu-divider-bg);\n opacity: 1;\n }\n .menu-item {\n display: flex;\n gap: var(--menu-item-gap);\n align-items: center;\n width: 100%;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n font-weight: var(--menu-item-font-weight, var(--font-weight-normal));\n color: var(--theme-fg, var(--menu-item-color));\n text-align: inherit;\n text-decoration: none;\n white-space: nowrap;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n outline: 0;\n border-radius: var(--menu-item-border-radius, 0);\n }\n .menu-item:hover, .menu-item:focus {\n color: var(--theme-fg-emphasis, var(--menu-item-hover-color));\n background-color: var(--theme-bg-subtle, var(--menu-item-hover-bg));\n }\n .menu-item.active, .menu-item:active {\n color: var(--theme-contrast, var(--menu-item-active-color));\n background-color: var(--theme-bg, var(--menu-item-active-bg));\n }\n .menu-item.active .menu-item-icon, .menu-item:active .menu-item-icon {\n color: inherit !important;\n }\n .menu-item.selected {\n font-weight: 600;\n }\n .menu-item.disabled, .menu-item:disabled {\n color: var(--menu-item-disabled-color);\n pointer-events: none;\n background-color: transparent;\n background-image: none;\n }\n .menu-item-icon {\n flex-shrink: 0;\n align-self: flex-start;\n width: var(--menu-icon-size);\n height: auto;\n margin-top: 0.125rem;\n }\n .menu-image {\n width: var(--menu-image-size);\n height: var(--menu-image-size);\n object-fit: cover;\n border-radius: var(--radius-5);\n }\n .menu-item-content {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-width: fit-content;\n }\n .menu-item-description {\n font-size: var(--menu-description-font-size);\n font-weight: var(--font-weight-normal);\n color: color-mix(in oklch, currentcolor 65%, transparent);\n }\n .menu-item-check {\n flex-shrink: 0;\n align-self: flex-start;\n margin-block-start: 0.125rem;\n margin-inline-start: auto;\n color: var(--menu-check-color);\n visibility: hidden;\n }\n .selected > .menu-item-check {\n visibility: visible;\n }\n .menu-header {\n display: block;\n padding: var(--menu-header-padding-y) var(--menu-header-padding-x);\n margin-bottom: 0;\n font-size: var(--font-size-sm);\n color: var(--menu-header-color);\n white-space: nowrap;\n }\n .menu-text {\n display: block;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n color: var(--fg-2);\n }\n .submenu {\n position: relative;\n }\n .submenu > .menu-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .submenu > .menu-item::after {\n display: inline-block;\n flex-shrink: 0;\n width: 0.375em;\n height: 0.375em;\n margin-inline-start: auto;\n content: \"\";\n border-color: currentcolor;\n border-style: solid;\n border-width: 0 0.125em 0.125em 0;\n transform: rotate(-45deg);\n }\n [dir=rtl] .submenu > .menu-item::after {\n transform: rotate(135deg);\n }\n .submenu > .menu {\n top: 0;\n margin-top: calc(-1 * var(--menu-padding-y));\n }\n .submenu:hover > .menu-item, .submenu:focus-within > .menu-item {\n color: var(--menu-item-hover-color);\n background-color: var(--menu-item-hover-bg);\n }\n .submenu.show > .menu-item {\n color: var(--menu-item-hover-color);\n background-color: var(--menu-item-hover-bg);\n }\n @media (max-width: 575.98px) {\n .submenu:has(.submenu-stacked) {\n position: static;\n }\n .submenu-stacked {\n position: absolute;\n inset: 0;\n z-index: 1;\n display: flex;\n flex-direction: column;\n gap: var(--menu-gap);\n min-width: 0;\n padding: var(--menu-padding-y) var(--menu-padding-x);\n background-color: var(--menu-bg);\n border: 0;\n border-radius: 0;\n box-shadow: none;\n }\n .submenu-back {\n display: flex;\n gap: var(--menu-item-gap);\n align-items: center;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n font-weight: var(--font-weight-semibold, 600);\n color: var(--menu-item-color);\n }\n .submenu-back::before {\n display: inline-block;\n flex-shrink: 0;\n width: 0.375em;\n height: 0.375em;\n content: \"\";\n border-color: currentcolor;\n border-style: solid;\n border-width: 0.125em 0 0 0.125em;\n transform: rotate(-45deg);\n }\n [dir=rtl] .submenu-back::before {\n border-width: 0 0.125em 0.125em 0;\n }\n .submenu-dimmed {\n pointer-events: none;\n filter: blur(2px);\n opacity: 0.3;\n }\n }\n}\n@layer components {\n .list-group {\n --list-group-color: var(--fg-body);\n --list-group-bg: var(--bg-body);\n --list-group-border-color: var(--border-color);\n --list-group-border-width: var(--border-width);\n --list-group-border-radius: var(--radius-5);\n --list-group-item-padding-x: var(--spacer);\n --list-group-item-padding-y: var(--spacer-2);\n --list-group-action-color: var(--fg-2);\n --list-group-action-hover-color: var(--fg-1);\n --list-group-action-hover-bg: var(--bg-1);\n --list-group-action-active-color: var(--fg-body);\n --list-group-action-active-bg: var(--bg-2);\n --list-group-disabled-color: var(--fg-3);\n --list-group-disabled-bg: var(--bg-body);\n --list-group-active-color: var(--primary-contrast);\n --list-group-active-bg: var(--primary-bg);\n --list-group-active-border-color: var(--primary-bg);\n display: flex;\n flex-direction: column;\n padding-inline-start: 0;\n margin-bottom: 0;\n border-radius: var(--list-group-border-radius);\n }\n .list-group-numbered {\n list-style-type: none;\n counter-reset: section;\n }\n .list-group-numbered > .list-group-item::before {\n content: counters(section, \".\") \". \";\n counter-increment: section;\n }\n .list-group-item {\n position: relative;\n display: block;\n padding: var(--list-group-item-padding-y) var(--list-group-item-padding-x);\n color: var(--theme-fg, var(--list-group-color));\n background-color: var(--theme-bg-subtle, var(--list-group-bg));\n border: var(--list-group-border-width) solid var(--theme-border, var(--list-group-border-color));\n }\n .list-group-item:first-child {\n border-start-start-radius: inherit;\n border-start-end-radius: inherit;\n }\n .list-group-item:last-child {\n border-end-start-radius: inherit;\n border-end-end-radius: inherit;\n }\n .list-group-item.disabled, .list-group-item:disabled {\n color: var(--list-group-disabled-color);\n pointer-events: none;\n background-color: var(--list-group-disabled-bg);\n }\n .list-group-item.active {\n z-index: 2;\n color: var(--list-group-active-color);\n background-color: var(--list-group-active-bg);\n border-color: var(--list-group-active-border-color);\n }\n .list-group-item + .list-group-item {\n border-block-start-width: 0;\n }\n .list-group-item + .list-group-item.active {\n margin-top: calc(-1 * var(--list-group-border-width));\n border-block-start-width: var(--list-group-border-width);\n }\n .list-group-item-action {\n width: 100%;\n color: var(--theme-fg, var(--list-group-action-color));\n text-align: inherit;\n text-decoration: none;\n }\n .list-group-item-action:not(.active):hover, .list-group-item-action:not(.active):focus {\n z-index: 1;\n color: var(--theme-fg-emphasis, var(--list-group-action-hover-color));\n text-decoration: none;\n background-color: var(--theme-bg-muted, var(--list-group-action-hover-bg));\n }\n .list-group-item-action:not(.active):active {\n color: var(--theme-fg-emphasis, var(--list-group-action-active-color));\n background-color: var(--theme-bg-muted, var(--list-group-action-active-bg));\n }\n .list-group-horizontal {\n flex-direction: row;\n }\n .list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n @media (width >= 576px) {\n .sm\\:list-group-horizontal {\n flex-direction: row;\n }\n .sm\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .sm\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .sm\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .sm\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .sm\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n @media (width >= 768px) {\n .md\\:list-group-horizontal {\n flex-direction: row;\n }\n .md\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .md\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .md\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .md\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .md\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n @media (width >= 1024px) {\n .lg\\:list-group-horizontal {\n flex-direction: row;\n }\n .lg\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .lg\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .lg\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .lg\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .lg\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n @media (width >= 1280px) {\n .xl\\:list-group-horizontal {\n flex-direction: row;\n }\n .xl\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .xl\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .xl\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .xl\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .xl\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:list-group-horizontal {\n flex-direction: row;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n .list-group-flush {\n border-radius: 0;\n }\n .list-group-flush > .list-group-item {\n border-width: 0 0 var(--list-group-border-width);\n }\n .list-group-flush > .list-group-item:last-child {\n border-block-end-width: 0;\n }\n}\n@layer components {\n .nav {\n --nav-gap: 0.125rem;\n --nav-link-gap: 0.5rem;\n --nav-link-align: center;\n --nav-link-justify: center;\n --nav-link-padding-x: 0.75rem;\n --nav-link-padding-y: 0.375rem;\n --nav-link-color: var(--fg-2);\n --nav-link-hover-color: var(--fg-1);\n --nav-link-hover-bg: var(--bg-1);\n --nav-link-active-color: var(--fg-body);\n --nav-link-active-bg: var(--bg-2);\n --nav-link-disabled-color: var(--fg-4);\n --nav-link-border-width: var(--border-width);\n --nav-link-transition-property: color, background-color, border-color;\n --nav-link-transition-timing: 0.15s ease-in-out;\n --nav-link-transition: var(--nav-link-transition-property) var(--nav-link-transition-timing);\n display: flex;\n flex-wrap: wrap;\n gap: var(--nav-gap);\n padding-inline-start: 0;\n margin-bottom: 0;\n list-style: none;\n }\n .nav-item {\n display: flex;\n }\n .nav-link {\n display: flex;\n gap: var(--nav-link-gap);\n align-items: var(--nav-link-align);\n justify-content: var(--nav-link-justify);\n padding: var(--nav-link-padding-y) var(--nav-link-padding-x);\n font-weight: var(--nav-link-font-weight);\n color: var(--nav-link-color);\n text-decoration: none;\n white-space: nowrap;\n background: none;\n border: var(--nav-link-border-width) solid transparent;\n border-radius: var(--radius-5);\n transition: var(--nav-link-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .nav-link {\n transition: none;\n }\n }\n .nav-link:hover, .nav-link:focus {\n color: var(--nav-link-hover-color);\n background-color: var(--nav-link-hover-bg);\n }\n .nav-link:focus-visible {\n --focus-ring-offset: 1px;\n color: var(--nav-link-hover-color);\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .nav-link.active, .nav-link:active {\n color: var(--nav-link-active-color);\n background-color: var(--nav-link-active-bg);\n }\n .nav-link.disabled, .nav-link:disabled {\n color: var(--nav-link-disabled-color);\n pointer-events: none;\n cursor: default;\n }\n .nav-tabs {\n --nav-tabs-border-width: var(--border-width);\n --nav-tabs-border-color: var(--border-color);\n --nav-tabs-border-radius: var(--radius-5);\n --nav-tabs-link-hover-border-color: var(--border-subtle);\n --nav-tabs-link-active-color: var(--fg-color);\n --nav-tabs-link-active-bg: var(--bg-body);\n --nav-tabs-link-active-border-color: var(--border-color) var(--border-color) var(--bg-body);\n box-shadow: inset 0 calc(-1 * var(--nav-tabs-border-width)) 0 var(--nav-tabs-border-color);\n }\n .nav-tabs .nav-link {\n border: var(--nav-tabs-border-width) solid transparent;\n border-bottom-color: var(--nav-tabs-border-color);\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .nav-tabs .nav-link:hover {\n isolation: isolate;\n border-color: var(--nav-tabs-link-hover-border-color);\n border-bottom-color: var(--nav-tabs-border-color);\n }\n .nav-tabs .nav-link.active,\n .nav-tabs .nav-item.show .nav-link {\n color: var(--nav-tabs-link-active-color);\n background-color: var(--nav-tabs-link-active-bg);\n border-color: var(--nav-tabs-link-active-border-color);\n border-bottom-color: var(--nav-tabs-link-active-bg);\n }\n .nav-tabs .menu {\n margin-top: calc(-1 * var(--nav-tabs-border-width));\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n .nav-pills {\n --nav-pills-bg: var(--bg-1);\n --nav-pills-padding: 0.25rem;\n --nav-pills-border-radius: var(--radius-9);\n --nav-pills-link-active-color: var(--primary-contrast);\n --nav-pills-link-active-bg: var(--primary-bg);\n --nav-pills-link-border-radius: var(--radius-9);\n display: inline-flex;\n padding: var(--nav-pills-padding);\n background-color: var(--nav-pills-bg);\n border-radius: var(--nav-pills-border-radius);\n }\n .nav-pills .nav-link {\n border-radius: var(--nav-pills-link-border-radius);\n }\n .nav-pills .nav-link.active,\n .nav-pills .show > .nav-link {\n color: var(--nav-pills-link-active-color);\n background-color: var(--nav-pills-link-active-bg);\n background-image: var(--gradient);\n }\n .nav-pills-vertical {\n flex-direction: column;\n align-items: stretch;\n }\n .nav-pills-vertical .nav-item,\n .nav-pills-vertical .nav-link {\n width: 100%;\n }\n .nav-underline {\n --nav-gap: 1rem;\n --nav-link-active-bg: transparent;\n --nav-underline-border-width: 0.125rem;\n --nav-underline-link-active-color: var(--fg-color);\n }\n .nav-underline .nav-link {\n padding-inline: 0;\n border: 0;\n border-block-end: var(--nav-underline-border-width) solid transparent;\n border-radius: 0;\n }\n .nav-underline .nav-link:hover, .nav-underline .nav-link:focus {\n border-block-end-color: currentcolor;\n }\n .nav-underline .nav-link.active,\n .nav-underline .show > .nav-link {\n font-weight: 700;\n color: var(--nav-underline-link-active-color);\n border-block-end-color: currentcolor;\n }\n .nav-fill > .nav-link,\n .nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n .nav-justified > .nav-link,\n .nav-justified .nav-item {\n flex-grow: 1;\n flex-basis: 0;\n text-align: center;\n }\n .nav-fill .nav-item .nav-link,\n .nav-justified .nav-item .nav-link {\n width: 100%;\n }\n .tab-content > .tab-pane {\n display: none;\n }\n .tab-content > .active {\n display: block;\n }\n}\n@layer components {\n .nav-overflow {\n flex-wrap: nowrap;\n min-width: 0;\n }\n .nav-pills.nav-overflow {\n display: flex;\n }\n .navbar-nav.nav-overflow {\n flex: 1 1 0;\n }\n .nav-overflow-item {\n flex-shrink: 0;\n margin-inline-start: auto;\n }\n .nav-overflow [data-bs-nav-overflow=true] {\n display: none;\n }\n .nav-overflow-keep {\n flex-shrink: 0;\n }\n}\n@layer components {\n .navbar {\n --navbar-padding-x: 0;\n --navbar-padding-y: 0.5rem;\n --navbar-color: var(--fg-2);\n --navbar-hover-color: var(--fg-1);\n --navbar-disabled-color: var(--fg-3);\n --navbar-active-color: var(--fg-body);\n --navbar-brand-padding-y: 0.75rem;\n --navbar-brand-margin-end: 1rem;\n --navbar-brand-font-size: var(--font-size-md);\n --navbar-brand-font-weight: var(--font-weight-medium);\n --navbar-brand-color: var(--fg-body);\n --navbar-brand-hover-color: var(--fg-body);\n --navbar-nav-link-padding-x: 0.75rem;\n --navbar-toggler-width: 2rem;\n --navbar-toggler-padding-y: 0.25rem;\n --navbar-toggler-padding-x: 0.75rem;\n --navbar-toggler-font-size: var(--font-size-lg);\n --navbar-toggler-border-color: color-mix(in oklch, var(--fg-body) 15%, transparent);\n --navbar-toggler-border-radius: var(--radius-5);\n --navbar-toggler-transition: box-shadow 0.15s ease-in-out;\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: var(--navbar-padding-y) var(--navbar-padding-x);\n container-type: inline-size;\n color: var(--navbar-color, var(--fg-body));\n background-color: var(--navbar-bg, var(--bg-body));\n }\n .navbar > .\\32 xl\\:container, .navbar > .xl\\:container, .navbar > .lg\\:container, .navbar > .md\\:container, .navbar > .sm\\:container, .navbar > .container,\n .navbar > .container-fluid {\n display: flex;\n flex-wrap: inherit;\n align-items: center;\n justify-content: space-between;\n }\n .navbar-brand {\n padding-top: var(--navbar-brand-padding-y);\n padding-bottom: var(--navbar-brand-padding-y);\n margin-inline-end: var(--navbar-brand-margin-end);\n font-size: var(--navbar-brand-font-size);\n font-weight: var(--navbar-brand-font-weight);\n color: var(--navbar-brand-color);\n text-decoration: none;\n white-space: nowrap;\n }\n .navbar-brand:hover, .navbar-brand:focus {\n color: var(--navbar-brand-hover-color);\n }\n .navbar-nav {\n --nav-gap: 0.25rem;\n --nav-link-gap: 0.5rem;\n --nav-link-padding-x: 0.5rem;\n --nav-link-padding-y: 0.375rem;\n --nav-link-color: var(--navbar-color);\n --nav-link-border-width: var(--border-width);\n --nav-link-hover-color: var(--navbar-hover-color);\n --nav-link-hover-bg: transparent;\n --nav-link-active-color: var(--navbar-active-color);\n --nav-link-active-bg: transparent;\n --nav-link-disabled-color: var(--navbar-disabled-color);\n display: flex;\n flex-direction: column;\n gap: var(--nav-gap);\n padding-inline-start: 0;\n margin-bottom: 0;\n list-style: none;\n }\n .navbar-nav .nav-link.active, .navbar-nav .nav-link.show {\n color: var(--navbar-active-color);\n border: var(--nav-link-border-width) solid var(--nav-link-border-color, transparent);\n }\n .navbar-text {\n padding-top: var(--navbar-brand-padding-y);\n padding-bottom: var(--navbar-brand-padding-y);\n color: var(--navbar-color);\n }\n .navbar-text a,\n .navbar-text a:hover,\n .navbar-text a:focus {\n color: var(--navbar-active-color);\n }\n .navbar-toggler {\n --btn-bg: transparent;\n --btn-hover-bg: var(--bg-2);\n }\n .navbar-expand > .container,\n .navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .navbar-expand .navbar-toggler {\n display: none !important;\n }\n .navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n .navbar-expand {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n @container (width >= 576px) {\n .sm\\:navbar-expand > .container,\n .sm\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .sm\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .sm\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .sm\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .sm\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .sm\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n @container (width >= 768px) {\n .md\\:navbar-expand > .container,\n .md\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .md\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .md\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .md\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .md\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .md\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n @container (width >= 1024px) {\n .lg\\:navbar-expand > .container,\n .lg\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .lg\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .lg\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .lg\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .lg\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .lg\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n @container (width >= 1280px) {\n .xl\\:navbar-expand > .container,\n .xl\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .xl\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .xl\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .xl\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .xl\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .xl\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:navbar-expand > .container,\n .\\32 xl\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .\\32 xl\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .\\32 xl\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .\\32 xl\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .\\32 xl\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .\\32 xl\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n .navbar [class*=drawer]:not([open], .hiding) {\n transition: none !important;\n }\n @media (prefers-reduced-motion: reduce) {\n .navbar [class*=drawer]:not([open], .hiding) {\n transition: none;\n }\n }\n .navbar-translucent {\n position: relative;\n background-color: transparent;\n }\n .navbar-translucent::before {\n position: absolute;\n inset: 0;\n z-index: -1;\n content: \"\";\n background-color: color-mix(in oklch, var(--navbar-bg, var(--bg-body)) 80%, transparent);\n background-image: none;\n backdrop-filter: blur(5px) saturate(180%);\n }\n .navbar[data-bs-theme=dark] {\n --navbar-color: color-mix(in oklch, var(--white) 0.55, transparent);\n --navbar-hover-color: color-mix(in oklch, var(--white) 0.75, transparent);\n --navbar-disabled-color: color-mix(in oklch, var(--white) 0.25, transparent);\n --navbar-active-color: var(--white);\n --navbar-brand-color: var(--white);\n --navbar-brand-hover-color: var(--white);\n --navbar-toggler-border-color: color-mix(in oklch, var(--white) 0.1, transparent);\n }\n}\n.drawer, .\\32 xl\\:drawer, .xl\\:drawer, .lg\\:drawer, .md\\:drawer, .sm\\:drawer {\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n}\n\n@layer components {\n @media (width < 576px) {\n .sm\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .sm\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .sm\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .sm\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .sm\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .sm\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .sm\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 576px) and (prefers-reduced-motion: reduce) {\n .sm\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 576px) {\n .sm\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .sm\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .sm\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 576px) and (prefers-reduced-motion: reduce) {\n .sm\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 576px) {\n .sm\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 576px) {\n .sm\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 576px) and (prefers-reduced-motion: reduce) {\n .sm\\:drawer {\n transition: none;\n }\n }\n @media (width >= 576px) {\n .sm\\:drawer .drawer-header {\n display: none;\n }\n .sm\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n @media (width < 768px) {\n .md\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .md\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .md\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .md\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .md\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .md\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .md\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 768px) and (prefers-reduced-motion: reduce) {\n .md\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 768px) {\n .md\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .md\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .md\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 768px) and (prefers-reduced-motion: reduce) {\n .md\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 768px) {\n .md\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 768px) {\n .md\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 768px) and (prefers-reduced-motion: reduce) {\n .md\\:drawer {\n transition: none;\n }\n }\n @media (width >= 768px) {\n .md\\:drawer .drawer-header {\n display: none;\n }\n .md\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n @media (width < 1024px) {\n .lg\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .lg\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .lg\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .lg\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .lg\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .lg\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .lg\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 1024px) and (prefers-reduced-motion: reduce) {\n .lg\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 1024px) {\n .lg\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .lg\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .lg\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 1024px) and (prefers-reduced-motion: reduce) {\n .lg\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 1024px) {\n .lg\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 1024px) {\n .lg\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 1024px) and (prefers-reduced-motion: reduce) {\n .lg\\:drawer {\n transition: none;\n }\n }\n @media (width >= 1024px) {\n .lg\\:drawer .drawer-header {\n display: none;\n }\n .lg\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n @media (width < 1280px) {\n .xl\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .xl\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .xl\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .xl\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .xl\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .xl\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .xl\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 1280px) and (prefers-reduced-motion: reduce) {\n .xl\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 1280px) {\n .xl\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .xl\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .xl\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 1280px) and (prefers-reduced-motion: reduce) {\n .xl\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 1280px) {\n .xl\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 1280px) {\n .xl\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 1280px) and (prefers-reduced-motion: reduce) {\n .xl\\:drawer {\n transition: none;\n }\n }\n @media (width >= 1280px) {\n .xl\\:drawer .drawer-header {\n display: none;\n }\n .xl\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n @media (width < 1536px) {\n .\\32 xl\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .\\32 xl\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .\\32 xl\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .\\32 xl\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .\\32 xl\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .\\32 xl\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .\\32 xl\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 1536px) and (prefers-reduced-motion: reduce) {\n .\\32 xl\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 1536px) {\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 1536px) and (prefers-reduced-motion: reduce) {\n .\\32 xl\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 1536px) {\n .\\32 xl\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 1536px) and (prefers-reduced-motion: reduce) {\n .\\32 xl\\:drawer {\n transition: none;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:drawer .drawer-header {\n display: none;\n }\n .\\32 xl\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n .drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n @media (prefers-reduced-motion: reduce) {\n .drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n .drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n }\n @media (prefers-reduced-motion: reduce) {\n .drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n .drawer:not(.drawer-instant)[open] {\n transform: none;\n }\n .drawer[open] {\n visibility: visible;\n transform: none;\n }\n .sm\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .sm\\:drawer::backdrop {\n transition: none;\n }\n }\n .md\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .md\\:drawer::backdrop {\n transition: none;\n }\n }\n .lg\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .lg\\:drawer::backdrop {\n transition: none;\n }\n }\n .xl\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .xl\\:drawer::backdrop {\n transition: none;\n }\n }\n .\\32 xl\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .\\32 xl\\:drawer::backdrop {\n transition: none;\n }\n }\n .drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .drawer::backdrop {\n transition: none;\n }\n }\n @starting-style {\n .sm\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .md\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .lg\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .xl\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .\\32 xl\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n }\n .drawer-static {\n transform: scale(1.02);\n }\n .drawer-translucent {\n background-color: color-mix(in oklch, var(--drawer-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n .drawer-sheet {\n --drawer-inset: 0;\n --drawer-border-radius: 0;\n --drawer-border-width: 0;\n --drawer-box-shadow: none;\n }\n .drawer-header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n padding: var(--drawer-padding-y) var(--drawer-padding-x);\n }\n .drawer-header .btn-close {\n padding: calc(var(--drawer-padding-y) * 0.5) calc(var(--drawer-padding-x) * 0.5);\n margin-inline-start: auto;\n margin-inline-end: calc(-0.5 * var(--drawer-padding-x));\n margin-top: calc(-0.5 * var(--drawer-padding-y));\n margin-bottom: calc(-0.5 * var(--drawer-padding-y));\n }\n .drawer-title {\n margin-bottom: 0;\n line-height: var(--drawer-title-line-height);\n }\n .drawer-body {\n display: flex;\n flex-direction: column;\n gap: var(--drawer-padding-y);\n flex: 1 1 auto;\n padding: var(--drawer-padding-y) var(--drawer-padding-x);\n overflow-y: auto;\n }\n .drawer-footer {\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n gap: 0.5rem;\n align-items: center;\n justify-content: flex-end;\n padding: var(--drawer-padding-y) var(--drawer-padding-x);\n border-block-start: var(--drawer-border-width) solid var(--drawer-border-color);\n }\n .drawer-fit-content {\n inset-block-end: auto;\n }\n}\n@layer components {\n .pagination {\n --pagination-min-height: var(--btn-input-min-height);\n --pagination-padding-x: var(--btn-input-padding-x);\n --pagination-padding-y: var(--btn-input-padding-y);\n --pagination-font-size: var(--btn-input-font-size);\n --pagination-color: var(--link-color);\n --pagination-bg: var(--bg-body);\n --pagination-border-width: var(--border-width);\n --pagination-border-color: var(--border-color);\n --pagination-border-radius: var(--btn-input-border-radius);\n --pagination-hover-color: var(--link-hover-color);\n --pagination-hover-bg: var(--bg-1);\n --pagination-hover-border-color: var(--border-color);\n --pagination-focus-color: var(--link-hover-color);\n --pagination-focus-bg: var(--bg-2);\n --pagination-active-color: var(--primary-contrast);\n --pagination-active-bg: var(--primary-bg);\n --pagination-active-border-color: var(--primary-bg);\n --pagination-disabled-color: var(--fg-3);\n --pagination-disabled-bg: var(--bg-2);\n --pagination-disabled-border-color: var(--border-color);\n display: flex;\n padding-inline-start: 0;\n list-style: none;\n }\n .page-link {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: var(--pagination-min-height);\n padding: var(--pagination-padding-y) var(--pagination-padding-x);\n font-size: var(--pagination-font-size);\n color: var(--pagination-color);\n text-decoration: none;\n background-color: var(--pagination-bg);\n border: var(--pagination-border-width) solid var(--pagination-border-color);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .page-link {\n transition: none;\n }\n }\n .page-link:hover {\n z-index: 2;\n color: var(--pagination-hover-color);\n background-color: var(--pagination-hover-bg);\n border-color: var(--pagination-hover-border-color);\n }\n .page-link:focus-visible {\n z-index: 3;\n color: var(--pagination-focus-color);\n background-color: var(--pagination-focus-bg);\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .page-link.active, .active > .page-link {\n z-index: 3;\n color: var(--pagination-active-color);\n background-color: var(--pagination-active-bg);\n background-image: var(--gradient);\n border-color: var(--pagination-active-border-color);\n }\n .page-link.disabled, .disabled > .page-link {\n color: var(--pagination-disabled-color);\n pointer-events: none;\n background-color: var(--pagination-disabled-bg);\n border-color: var(--pagination-disabled-border-color);\n }\n .page-item:not(:first-child) .page-link {\n margin-inline-start: calc(-1 * var(--pagination-border-width));\n }\n .page-item:first-child .page-link {\n border-start-start-radius: var(--pagination-border-radius);\n border-end-start-radius: var(--pagination-border-radius);\n }\n .page-item:last-child .page-link {\n border-start-end-radius: var(--pagination-border-radius);\n border-end-end-radius: var(--pagination-border-radius);\n }\n .pagination-sm {\n --pagination-min-height: var(--bs-btn-input-sm-min-height);\n --pagination-padding-y: var(--btn-input-sm-padding-y);\n --pagination-padding-x: var(--btn-input-sm-padding-x);\n --pagination-font-size: var(--btn-input-sm-font-size);\n --pagination-border-radius: var(--btn-input-sm-border-radius);\n }\n .pagination-lg {\n --pagination-min-height: var(--bs-btn-input-lg-min-height);\n --pagination-padding-y: var(--btn-input-lg-padding-y);\n --pagination-padding-x: var(--btn-input-lg-padding-x);\n --pagination-font-size: var(--btn-input-lg-font-size);\n --pagination-border-radius: var(--btn-input-lg-border-radius);\n }\n}\n@layer components {\n .placeholder {\n --placeholder-opacity-max: 0.5;\n --placeholder-opacity-min: 0.2;\n display: inline-block;\n min-height: 1em;\n vertical-align: middle;\n cursor: wait;\n background-color: currentcolor;\n opacity: var(--placeholder-opacity-max);\n }\n .placeholder.btn::before {\n display: inline-block;\n content: \"\";\n }\n .placeholder-xs {\n min-height: 0.6em;\n }\n .placeholder-sm {\n min-height: 0.8em;\n }\n .placeholder-lg {\n min-height: 1.2em;\n }\n .placeholder-glow .placeholder {\n animation: placeholder-glow 2s ease-in-out infinite;\n }\n @keyframes placeholder-glow {\n 50% {\n opacity: var(--placeholder-opacity-min);\n }\n }\n .placeholder-wave {\n mask-image: linear-gradient(130deg, #000 55%, rgb(0, 0, 0, calc(1 - var(--placeholder-opacity-min))) 75%, #000 95%);\n mask-size: 200% 100%;\n animation: placeholder-wave 2s linear infinite;\n }\n @keyframes placeholder-wave {\n 100% {\n mask-position: -200% 0%;\n }\n }\n}\n@layer components {\n .popover {\n --popover-zindex: 1070;\n --popover-max-width: 280px;\n --popover-font-size: var(--font-size-sm);\n --popover-bg: var(--bg-body);\n --popover-border-width: var(--border-width);\n --popover-border-color: var(--border-color-translucent);\n --popover-border-radius: var(--radius-7);\n --popover-inner-border-radius: calc(var(--radius-7) - var(--border-width));\n --popover-box-shadow: var(--box-shadow);\n --popover-header-padding-x: var(--spacer);\n --popover-header-padding-y: var(--spacer-3);\n --popover-header-font-size: var(--font-size-sm);\n --popover-header-color: inherit;\n --popover-header-bg: var(--bg-1);\n --popover-body-padding-x: var(--spacer);\n --popover-body-padding-y: var(--spacer-3);\n --popover-body-color: var(--fg-body);\n --popover-arrow-width: 1rem;\n --popover-arrow-height: 0.5rem;\n --popover-arrow-border: var(--popover-border-color);\n z-index: var(--popover-zindex);\n display: block;\n max-width: var(--popover-max-width);\n font-family: var(--body-font-family);\n font-style: normal;\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: var(--popover-font-size);\n word-wrap: break-word;\n background-color: var(--popover-bg);\n background-clip: padding-box;\n border: var(--popover-border-width) solid var(--popover-border-color);\n border-radius: var(--popover-border-radius);\n box-shadow: var(--popover-box-shadow);\n }\n .popover .popover-arrow {\n display: block;\n width: var(--popover-arrow-width);\n height: var(--popover-arrow-height);\n }\n .popover .popover-arrow::before, .popover .popover-arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n border-width: 0;\n }\n .bs-popover-top > .popover-arrow, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow {\n bottom: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n }\n .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow::after {\n border-width: var(--popover-arrow-height) calc(var(--popover-arrow-width) * 0.5) 0;\n }\n .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow::before {\n bottom: 0;\n border-block-start-color: var(--popover-arrow-border);\n }\n .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow::after {\n bottom: var(--popover-border-width);\n border-block-start-color: var(--popover-bg);\n }\n .bs-popover-end > .popover-arrow, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow {\n left: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n width: var(--popover-arrow-height);\n height: var(--popover-arrow-width);\n }\n .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow::after {\n border-width: calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height) calc(var(--popover-arrow-width) * 0.5) 0;\n }\n .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow::before {\n left: 0;\n border-inline-end-color: var(--popover-arrow-border);\n }\n .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow::after {\n left: var(--popover-border-width);\n border-inline-end-color: var(--popover-bg);\n }\n .bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow {\n top: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n }\n .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow::after {\n border-width: 0 calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height);\n }\n .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow::before {\n top: 0;\n border-block-end-color: var(--popover-arrow-border);\n }\n .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow::after {\n top: var(--popover-border-width);\n border-block-end-color: var(--popover-bg);\n }\n .bs-popover-bottom .popover-header::before, .bs-popover-auto[data-bs-placement^=bottom] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: var(--popover-arrow-width);\n margin-inline-start: calc(-0.5 * var(--popover-arrow-width));\n content: \"\";\n border-block-end: var(--popover-border-width) solid var(--popover-header-bg);\n }\n .bs-popover-start > .popover-arrow, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow {\n right: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n width: var(--popover-arrow-height);\n height: var(--popover-arrow-width);\n }\n .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow::after {\n border-width: calc(var(--popover-arrow-width) * 0.5) 0 calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height);\n }\n .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow::before {\n right: 0;\n border-inline-start-color: var(--popover-arrow-border);\n }\n .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow::after {\n right: var(--popover-border-width);\n border-inline-start-color: var(--popover-bg);\n }\n .popover-header {\n padding: var(--popover-header-padding-y) var(--popover-header-padding-x);\n margin-bottom: 0;\n font-size: var(--popover-header-font-size);\n color: var(--popover-header-color);\n background-color: var(--popover-header-bg);\n border-block-end: var(--popover-border-width) solid var(--popover-border-color);\n border-start-start-radius: var(--popover-inner-border-radius);\n border-start-end-radius: var(--popover-inner-border-radius);\n }\n .popover-header:empty {\n display: none;\n }\n .popover-body {\n padding: var(--popover-body-padding-y) var(--popover-body-padding-x);\n color: var(--popover-body-color);\n }\n}\n@layer components {\n @keyframes progress-bar-stripes {\n 0% {\n background-position-x: var(--progress-height);\n }\n }\n .progress,\n .progress-stacked {\n --progress-height: 1rem;\n --progress-font-size: var(--font-size-sm);\n --progress-bg: var(--bg-2);\n --progress-border-radius: var(--radius-5);\n --progress-box-shadow: var(--box-shadow-inset);\n --progress-bar-color: var(--white);\n --progress-bar-bg: var(--primary-bg);\n --progress-bar-transition: width 0.6s ease;\n --progress-bar-animation: progress-bar-stripes 1s linear infinite;\n display: flex;\n height: var(--progress-height);\n overflow: hidden;\n font-size: var(--progress-font-size);\n background-color: var(--progress-bg);\n border-radius: var(--progress-border-radius);\n box-shadow: var(--progress-box-shadow);\n }\n .progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: var(--theme-contrast, var(--progress-bar-color));\n text-align: center;\n white-space: nowrap;\n background-color: var(--theme-bg, var(--progress-bar-bg));\n transition: var(--progress-bar-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n }\n .progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: var(--progress-height) var(--progress-height);\n }\n .progress-stacked > .progress {\n overflow: visible;\n }\n .progress-stacked > .progress > .progress-bar {\n width: 100%;\n }\n .progress-bar-animated {\n animation: var(--progress-bar-animation);\n }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n }\n}\n@layer components {\n .spinner-grow,\n .spinner-border {\n display: inline-block;\n flex-shrink: 0;\n width: var(--spinner-width);\n height: var(--spinner-height);\n vertical-align: var(--spinner-vertical-align);\n border-radius: 50%;\n animation: var(--spinner-animation-speed) linear infinite var(--spinner-animation-name);\n }\n @keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n }\n .spinner-border {\n --spinner-width: 2rem;\n --spinner-height: 2rem;\n --spinner-vertical-align: -0.125em;\n --spinner-border-width: 0.25em;\n --spinner-animation-speed: 0.75s;\n --spinner-animation-name: spinner-border;\n border: var(--spinner-border-width) solid currentcolor;\n border-inline-end-color: transparent;\n }\n .spinner-border-sm {\n --spinner-width: 1rem;\n --spinner-height: 1rem;\n --spinner-border-width: .2em;\n }\n @keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n }\n .spinner-grow {\n --spinner-width: 2rem;\n --spinner-height: 2rem;\n --spinner-vertical-align: -0.125em;\n --spinner-animation-speed: 0.75s;\n --spinner-animation-name: spinner-grow;\n background-color: currentcolor;\n opacity: 0;\n }\n .spinner-grow-sm {\n --spinner-width: 1rem;\n --spinner-height: 1rem;\n }\n @media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n --spinner-animation-speed: 1.5s;\n }\n }\n}\n@layer components {\n .stepper {\n --stepper-size: 2rem;\n --stepper-gap: 1rem;\n --stepper-font-size: var(--font-size-sm);\n --stepper-text-gap: 0.5rem;\n --stepper-track-size: 0.125rem;\n --stepper-bg: var(--bg-2);\n --stepper-active-color: var(--primary-contrast);\n --stepper-active-bg: var(--primary-bg);\n display: grid;\n grid-auto-rows: 1fr;\n grid-auto-flow: row;\n gap: var(--stepper-gap);\n padding-inline-start: 0;\n list-style: none;\n counter-reset: stepper;\n }\n .stepper-item {\n position: relative;\n display: grid;\n grid-template-rows: auto;\n grid-template-columns: var(--stepper-size) auto;\n gap: var(--stepper-text-gap);\n align-items: var(--stepper-align-items, center);\n text-decoration: none;\n }\n .stepper-item::before {\n position: relative;\n z-index: 1;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--stepper-size);\n height: var(--stepper-size);\n padding: 0.5rem;\n font-size: var(--stepper-font-size);\n font-weight: 600;\n line-height: 1;\n text-align: center;\n content: counter(stepper);\n counter-increment: stepper;\n background-color: var(--stepper-bg);\n border-radius: 50%;\n }\n .stepper-item::after {\n position: absolute;\n inset-block-start: 50%;\n inset-block-end: 100%;\n inset-inline-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n width: var(--stepper-track-size);\n height: calc(100% + var(--stepper-gap));\n content: \"\";\n background-color: var(--stepper-bg);\n }\n .stepper-item:last-child::after {\n display: none;\n }\n .stepper-item.active::before, .stepper-item.active::after {\n color: var(--theme-contrast, var(--stepper-active-color));\n background-color: var(--theme-bg, var(--stepper-active-bg));\n }\n .stepper-item.active:not(:has(+ .stepper-item.active))::after {\n background-color: var(--stepper-bg);\n }\n .stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n @container (width >= 576px) {\n .sm\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .sm\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .sm\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .sm\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n @container (width >= 768px) {\n .md\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .md\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .md\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .md\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n @container (width >= 1024px) {\n .lg\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .lg\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .lg\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .lg\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n @container (width >= 1280px) {\n .xl\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .xl\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .xl\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .xl\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .\\32 xl\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .\\32 xl\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .\\32 xl\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n .stepper-overflow {\n container-type: inline-size;\n overflow-x: auto;\n overscroll-behavior-x: contain;\n -webkit-overflow-scrolling: touch;\n }\n .stepper-overflow > .stepper {\n width: max-content;\n min-width: 100%;\n }\n}\n@layer components {\n .toast {\n --toast-zindex: 1090;\n --toast-padding-x: 1rem;\n --toast-padding-y: 0.75rem;\n --toast-spacing: 1.5rem;\n --toast-max-width: 350px;\n --toast-font-size: var(--font-size-sm);\n --toast-bg: var(--bg-body);\n --toast-border-width: var(--border-width);\n --toast-border-color: var(--border-color-translucent);\n --toast-box-shadow: var(--box-shadow);\n --toast-header-color: var(--fg-3);\n --toast-header-bg: var(--bg-1);\n --toast-header-border-color: var(--border-color-translucent);\n display: flex;\n flex-direction: column;\n width: var(--toast-max-width);\n max-width: 100%;\n overflow: hidden;\n font-size: var(--toast-font-size);\n color: var(--toast-color, var(--fg-body));\n pointer-events: auto;\n background-color: var(--toast-bg);\n background-clip: padding-box;\n border: var(--toast-border-width) solid var(--theme-border, var(--toast-border-color));\n box-shadow: var(--toast-box-shadow);\n border-radius: var(--toast-border-radius, var(--radius-7));\n }\n .toast.showing {\n opacity: 0;\n }\n .toast:not(.show) {\n display: none;\n }\n .toast-container {\n --toast-zindex: 1090;\n position: absolute;\n z-index: var(--toast-zindex);\n width: max-content;\n max-width: 100%;\n pointer-events: none;\n }\n .toast-container > :not(:last-child) {\n margin-bottom: var(--toast-spacing);\n }\n .toast-header {\n display: flex;\n align-items: center;\n padding: var(--toast-padding-y) var(--toast-padding-x);\n color: var(--theme-fg-emphasis, var(--toast-header-color));\n background-color: var(--theme-bg-subtle, var(--toast-header-bg));\n border-block-end: var(--toast-border-width, var(--border-width)) solid var(--theme-border, var(--toast-header-border-color, var(--border-color-translucent)));\n }\n .toast-header .btn-close {\n margin-inline-start: calc(0.5 * var(--toast-padding-x));\n margin-inline-end: calc(-0.25 * var(--toast-padding-x));\n color: inherit;\n }\n .toast-translucent {\n backdrop-filter: blur(5px) saturate(180%);\n }\n .toast-body {\n padding: var(--toast-padding-x);\n word-wrap: break-word;\n }\n}\n@layer components {\n .tooltip {\n --tooltip-zindex: 1080;\n --tooltip-max-width: 200px;\n --tooltip-padding-x: var(--spacer-3);\n --tooltip-padding-y: calc(var(--spacer) * 0.375);\n --tooltip-font-size: var(--font-size-sm);\n --tooltip-color: var(--bg-body);\n --tooltip-bg: var(--fg-body);\n --tooltip-border-radius: var(--radius-5);\n --tooltip-opacity: 0.95;\n --tooltip-arrow-width: 0.8rem;\n --tooltip-arrow-height: 0.4rem;\n z-index: var(--tooltip-zindex);\n display: block;\n font-family: var(--body-font-family);\n font-style: normal;\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: var(--tooltip-font-size);\n word-wrap: break-word;\n opacity: 0;\n }\n .tooltip.show {\n opacity: var(--tooltip-opacity);\n }\n .tooltip .tooltip-arrow {\n display: block;\n width: var(--tooltip-arrow-width);\n height: var(--tooltip-arrow-height);\n }\n .tooltip .tooltip-arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n .bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-bs-placement^=top] .tooltip-arrow {\n bottom: calc(-1 * var(--tooltip-arrow-height));\n }\n .bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-bs-placement^=top] .tooltip-arrow::before {\n top: -1px;\n border-width: var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * 0.5) 0;\n border-block-start-color: var(--tooltip-bg);\n }\n .bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-bs-placement^=right] .tooltip-arrow {\n left: calc(-1 * var(--tooltip-arrow-height));\n width: var(--tooltip-arrow-height);\n height: var(--tooltip-arrow-width);\n }\n .bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-bs-placement^=right] .tooltip-arrow::before {\n right: -1px;\n border-width: calc(var(--tooltip-arrow-width) * 0.5) var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * 0.5) 0;\n border-inline-end-color: var(--tooltip-bg);\n }\n .bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-bs-placement^=bottom] .tooltip-arrow {\n top: calc(-1 * var(--tooltip-arrow-height));\n }\n .bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-bs-placement^=bottom] .tooltip-arrow::before {\n bottom: -1px;\n border-width: 0 calc(var(--tooltip-arrow-width) * 0.5) var(--tooltip-arrow-height);\n border-block-end-color: var(--tooltip-bg);\n }\n .bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-bs-placement^=left] .tooltip-arrow {\n right: calc(-1 * var(--tooltip-arrow-height));\n width: var(--tooltip-arrow-height);\n height: var(--tooltip-arrow-width);\n }\n .bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-bs-placement^=left] .tooltip-arrow::before {\n left: -1px;\n border-width: calc(var(--tooltip-arrow-width) * 0.5) 0 calc(var(--tooltip-arrow-width) * 0.5) var(--tooltip-arrow-height);\n border-inline-start-color: var(--tooltip-bg);\n }\n .tooltip-inner {\n max-width: var(--tooltip-max-width);\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n color: var(--tooltip-color);\n text-align: center;\n background-color: var(--tooltip-bg);\n border-radius: var(--tooltip-border-radius);\n }\n}\n.fade {\n transition: opacity 0.15s linear;\n}\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n.collapsing.collapse-horizontal {\n width: 0;\n height: auto;\n transition: width 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing.collapse-horizontal {\n transition: none;\n }\n}\n\n@layer helpers {\n .focus-ring:focus-visible {\n outline: var(--focus-ring-width) solid var(--theme-focus-ring, var(--focus-ring-color));\n }\n}\n@layer helpers {\n .icon-link {\n display: inline-flex;\n gap: 0.375rem;\n align-items: center;\n text-decoration-color: rgba(var(--link-color-rgb), var(--link-opacity, 0.5));\n text-underline-offset: 0.25em;\n backface-visibility: hidden;\n }\n .icon-link > .bi {\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n fill: currentcolor;\n transition: 0.2s ease-in-out transform;\n }\n @media (prefers-reduced-motion: reduce) {\n .icon-link > .bi {\n transition: none;\n }\n }\n .icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi {\n transform: var(--icon-link-transform, translate3d(0.25em, 0, 0));\n }\n}\n@layer helpers {\n .fixed-top {\n position: fixed;\n inset: 0 0 auto;\n z-index: 1030;\n }\n .fixed-bottom {\n position: fixed;\n inset: auto 0 0;\n z-index: 1030;\n }\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n @media (width >= 576px) {\n .sm\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sm\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 768px) {\n .md\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .md\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1024px) {\n .lg\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .lg\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1280px) {\n .xl\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .xl\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .\\32 xl\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n}\n@layer helpers {\n .stack-container {\n container-type: inline-size;\n }\n [class*=hstack],\n [class*=vstack] {\n display: flex;\n flex: var(--stack-flex, 1 1 auto);\n flex-direction: var(--stack-direction, row);\n align-items: var(--stack-align-items, center);\n align-self: var(--stack-align-self, stretch);\n }\n .vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n .hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n @container (width >= 576px) {\n .sm\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 576px) {\n .sm\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 768px) {\n .md\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 768px) {\n .md\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1024px) {\n .lg\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1024px) {\n .lg\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1280px) {\n .xl\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1280px) {\n .xl\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n}\n@layer helpers {\n .theme-primary {\n --theme-base: var(--primary-base);\n --theme-fg: var(--primary-fg);\n --theme-fg-emphasis: var(--primary-fg-emphasis);\n --theme-bg: var(--primary-bg);\n --theme-bg-subtle: var(--primary-bg-subtle);\n --theme-bg-muted: var(--primary-bg-muted);\n --theme-border: var(--primary-border);\n --theme-focus-ring: var(--primary-focus-ring);\n --theme-contrast: var(--primary-contrast);\n }\n .theme-accent {\n --theme-base: var(--accent-base);\n --theme-fg: var(--accent-fg);\n --theme-fg-emphasis: var(--accent-fg-emphasis);\n --theme-bg: var(--accent-bg);\n --theme-bg-subtle: var(--accent-bg-subtle);\n --theme-bg-muted: var(--accent-bg-muted);\n --theme-border: var(--accent-border);\n --theme-focus-ring: var(--accent-focus-ring);\n --theme-contrast: var(--accent-contrast);\n }\n .theme-success {\n --theme-base: var(--success-base);\n --theme-fg: var(--success-fg);\n --theme-fg-emphasis: var(--success-fg-emphasis);\n --theme-bg: var(--success-bg);\n --theme-bg-subtle: var(--success-bg-subtle);\n --theme-bg-muted: var(--success-bg-muted);\n --theme-border: var(--success-border);\n --theme-focus-ring: var(--success-focus-ring);\n --theme-contrast: var(--success-contrast);\n }\n .theme-danger {\n --theme-base: var(--danger-base);\n --theme-fg: var(--danger-fg);\n --theme-fg-emphasis: var(--danger-fg-emphasis);\n --theme-bg: var(--danger-bg);\n --theme-bg-subtle: var(--danger-bg-subtle);\n --theme-bg-muted: var(--danger-bg-muted);\n --theme-border: var(--danger-border);\n --theme-focus-ring: var(--danger-focus-ring);\n --theme-contrast: var(--danger-contrast);\n }\n .theme-warning {\n --theme-base: var(--warning-base);\n --theme-fg: var(--warning-fg);\n --theme-fg-emphasis: var(--warning-fg-emphasis);\n --theme-bg: var(--warning-bg);\n --theme-bg-subtle: var(--warning-bg-subtle);\n --theme-bg-muted: var(--warning-bg-muted);\n --theme-border: var(--warning-border);\n --theme-focus-ring: var(--warning-focus-ring);\n --theme-contrast: var(--warning-contrast);\n }\n .theme-info {\n --theme-base: var(--info-base);\n --theme-fg: var(--info-fg);\n --theme-fg-emphasis: var(--info-fg-emphasis);\n --theme-bg: var(--info-bg);\n --theme-bg-subtle: var(--info-bg-subtle);\n --theme-bg-muted: var(--info-bg-muted);\n --theme-border: var(--info-border);\n --theme-focus-ring: var(--info-focus-ring);\n --theme-contrast: var(--info-contrast);\n }\n .theme-inverse {\n --theme-base: var(--inverse-base);\n --theme-fg: var(--inverse-fg);\n --theme-fg-emphasis: var(--inverse-fg-emphasis);\n --theme-bg: var(--inverse-bg);\n --theme-bg-subtle: var(--inverse-bg-subtle);\n --theme-bg-muted: var(--inverse-bg-muted);\n --theme-border: var(--inverse-border);\n --theme-focus-ring: var(--inverse-focus-ring);\n --theme-contrast: var(--inverse-contrast);\n }\n .theme-secondary {\n --theme-base: var(--secondary-base);\n --theme-fg: var(--secondary-fg);\n --theme-fg-emphasis: var(--secondary-fg-emphasis);\n --theme-bg: var(--secondary-bg);\n --theme-bg-subtle: var(--secondary-bg-subtle);\n --theme-bg-muted: var(--secondary-bg-muted);\n --theme-border: var(--secondary-border);\n --theme-focus-ring: var(--secondary-focus-ring);\n --theme-contrast: var(--secondary-contrast);\n }\n}\n@layer helpers {\n .visually-hidden,\n .visually-hidden-focusable:not(:focus, :focus-within) {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n .visually-hidden:not(caption),\n .visually-hidden-focusable:not(:focus, :focus-within):not(caption) {\n position: absolute !important;\n }\n .visually-hidden *,\n .visually-hidden-focusable:not(:focus, :focus-within) * {\n overflow: hidden !important;\n }\n}\n@layer helpers {\n .stretched-link::after {\n position: absolute;\n inset: 0;\n z-index: 1;\n content: \"\";\n }\n}\n@layer helpers {\n .text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n@layer helpers {\n .vr {\n display: inline-block;\n align-self: stretch;\n width: var(--vr-border-width, var(--border-width));\n min-height: 1em;\n background-color: var(--border-color);\n }\n}\n@layer utilities {\n .align-baseline {\n vertical-align: baseline;\n }\n .align-top {\n vertical-align: top;\n }\n .align-middle {\n vertical-align: middle;\n }\n .align-bottom {\n vertical-align: bottom;\n }\n .align-text-bottom {\n vertical-align: text-bottom;\n }\n .align-text-top {\n vertical-align: text-top;\n }\n [class*=ratio-] {\n aspect-ratio: var(--ratio);\n }\n .ratio-auto {\n --ratio: auto;\n }\n .ratio-1x1 {\n --ratio: 1 / 1;\n }\n .ratio-4x3 {\n --ratio: 4 / 3;\n }\n .ratio-16x9 {\n --ratio: 16 / 9;\n }\n .ratio-21x9 {\n --ratio: 21 / 9;\n }\n .float-start {\n float: inline-start;\n }\n .float-end {\n float: inline-end;\n }\n .float-none {\n float: none;\n }\n .object-fit-contain {\n object-fit: contain;\n }\n .object-fit-cover {\n object-fit: cover;\n }\n .object-fit-fill {\n object-fit: fill;\n }\n .object-fit-scale {\n object-fit: scale-down;\n }\n .object-fit-none {\n object-fit: none;\n }\n .opacity-0 {\n opacity: 0;\n }\n .opacity-25 {\n opacity: 0.25;\n }\n .opacity-50 {\n opacity: 0.5;\n }\n .opacity-75 {\n opacity: 0.75;\n }\n .opacity-100 {\n opacity: 1;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-visible {\n overflow: visible;\n }\n .overflow-scroll {\n overflow: scroll;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-x-visible {\n overflow-x: visible;\n }\n .overflow-x-scroll {\n overflow-x: scroll;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .overflow-y-hidden {\n overflow-y: hidden;\n }\n .overflow-y-visible {\n overflow-y: visible;\n }\n .overflow-y-scroll {\n overflow-y: scroll;\n }\n .contains-inline {\n container-type: inline-size;\n }\n .contains-size {\n container-type: size;\n }\n .d-inline {\n display: inline;\n }\n .d-inline-block {\n display: inline-block;\n }\n .d-block {\n display: block;\n }\n .d-grid {\n display: grid;\n }\n .d-inline-grid {\n display: inline-grid;\n }\n .d-table {\n display: table;\n }\n .d-table-row {\n display: table-row;\n }\n .d-table-cell {\n display: table-cell;\n }\n .d-flex {\n display: flex;\n }\n .d-inline-flex {\n display: inline-flex;\n }\n .d-contents {\n display: contents;\n }\n .d-flow-root {\n display: flow-root;\n }\n .d-none {\n display: none;\n }\n .shadow {\n box-shadow: var(--box-shadow);\n }\n .shadow-sm {\n box-shadow: var(--box-shadow-sm);\n }\n .shadow-lg {\n box-shadow: var(--box-shadow-lg);\n }\n .shadow-none {\n box-shadow: none;\n }\n .position-static {\n position: static;\n }\n .position-relative {\n position: relative;\n }\n .position-absolute {\n position: absolute;\n }\n .position-fixed {\n position: fixed;\n }\n .position-sticky {\n position: sticky;\n }\n .top-0 {\n top: 0;\n }\n .top-50 {\n top: 50%;\n }\n .top-100 {\n top: 100%;\n }\n .bottom-0 {\n bottom: 0;\n }\n .bottom-50 {\n bottom: 50%;\n }\n .bottom-100 {\n bottom: 100%;\n }\n .start-0 {\n inset-inline-start: 0;\n }\n .start-50 {\n inset-inline-start: 50%;\n }\n .start-100 {\n inset-inline-start: 100%;\n }\n .end-0 {\n inset-inline-end: 0;\n }\n .end-50 {\n inset-inline-end: 50%;\n }\n .end-100 {\n inset-inline-end: 100%;\n }\n .translate-middle {\n transform: translate(-50%, -50%);\n }\n .translate-middle-x {\n transform: translateX(-50%);\n }\n .translate-middle-y {\n transform: translateY(-50%);\n }\n .border {\n border: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-0 {\n border: 0;\n }\n .border-top {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-top-0 {\n border-block-start: 0;\n }\n .border-end {\n border-inline-end: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-end-0 {\n border-inline-end: 0;\n }\n .border-bottom {\n border-block-end: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-bottom-0 {\n border-block-end: 0;\n }\n .border-start {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-start-0 {\n border-inline-start: 0;\n }\n .border-y {\n border-block: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-y-0 {\n border-block: 0;\n }\n .border-x {\n border-inline: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-x-0 {\n border-inline: 0;\n }\n .border-primary {\n --border-color: var(--primary-bg);\n border-color: var(--border-color);\n }\n .border-accent {\n --border-color: var(--accent-bg);\n border-color: var(--border-color);\n }\n .border-success {\n --border-color: var(--success-bg);\n border-color: var(--border-color);\n }\n .border-danger {\n --border-color: var(--danger-bg);\n border-color: var(--border-color);\n }\n .border-warning {\n --border-color: var(--warning-bg);\n border-color: var(--border-color);\n }\n .border-info {\n --border-color: var(--info-bg);\n border-color: var(--border-color);\n }\n .border-inverse {\n --border-color: var(--inverse-bg);\n border-color: var(--border-color);\n }\n .border-secondary {\n --border-color: var(--secondary-bg);\n border-color: var(--border-color);\n }\n .border-bg {\n --border-color: var(--border-bg);\n border-color: var(--border-color);\n }\n .border-body {\n --border-color: var(--border-body);\n border-color: var(--border-color);\n }\n .border-muted {\n --border-color: var(--border-muted);\n border-color: var(--border-color);\n }\n .border-subtle {\n --border-color: var(--border-subtle);\n border-color: var(--border-color);\n }\n .border-emphasized {\n --border-color: var(--border-emphasized);\n border-color: var(--border-color);\n }\n .border-white {\n --border-color: var(--border-white);\n border-color: var(--border-color);\n }\n .border-black {\n --border-color: var(--border-black);\n border-color: var(--border-color);\n }\n .border-subtle-primary {\n --border-color: var(--primary-border);\n border-color: var(--border-color);\n }\n .border-subtle-accent {\n --border-color: var(--accent-border);\n border-color: var(--border-color);\n }\n .border-subtle-success {\n --border-color: var(--success-border);\n border-color: var(--border-color);\n }\n .border-subtle-danger {\n --border-color: var(--danger-border);\n border-color: var(--border-color);\n }\n .border-subtle-warning {\n --border-color: var(--warning-border);\n border-color: var(--border-color);\n }\n .border-subtle-info {\n --border-color: var(--info-border);\n border-color: var(--border-color);\n }\n .border-subtle-inverse {\n --border-color: var(--inverse-border);\n border-color: var(--border-color);\n }\n .border-subtle-secondary {\n --border-color: var(--secondary-border);\n border-color: var(--border-color);\n }\n .border-1 {\n border-width: 1px;\n }\n .border-2 {\n border-width: 2px;\n }\n .border-3 {\n border-width: 3px;\n }\n .border-4 {\n border-width: 4px;\n }\n .border-5 {\n border-width: 5px;\n }\n .border-10 {\n border-color: color-mix(in oklch, var(--border-color) 10%, transparent);\n }\n .border-20 {\n border-color: color-mix(in oklch, var(--border-color) 20%, transparent);\n }\n .border-30 {\n border-color: color-mix(in oklch, var(--border-color) 30%, transparent);\n }\n .border-40 {\n border-color: color-mix(in oklch, var(--border-color) 40%, transparent);\n }\n .border-50 {\n border-color: color-mix(in oklch, var(--border-color) 50%, transparent);\n }\n .border-60 {\n border-color: color-mix(in oklch, var(--border-color) 60%, transparent);\n }\n .border-70 {\n border-color: color-mix(in oklch, var(--border-color) 70%, transparent);\n }\n .border-80 {\n border-color: color-mix(in oklch, var(--border-color) 80%, transparent);\n }\n .border-90 {\n border-color: color-mix(in oklch, var(--border-color) 90%, transparent);\n }\n .border-100 {\n border-color: var(--border-color);\n }\n .w-1 {\n width: 1rem;\n }\n .w-2 {\n width: 2rem;\n }\n .w-3 {\n width: 3rem;\n }\n .w-4 {\n width: 4rem;\n }\n .w-5 {\n width: 5rem;\n }\n .w-6 {\n width: 6rem;\n }\n .w-7 {\n width: 7rem;\n }\n .w-8 {\n width: 8rem;\n }\n .w-9 {\n width: 9rem;\n }\n .w-10 {\n width: 10rem;\n }\n .w-11 {\n width: 11rem;\n }\n .w-12 {\n width: 12rem;\n }\n .w-25 {\n width: 25%;\n }\n .w-50 {\n width: 50%;\n }\n .w-75 {\n width: 75%;\n }\n .w-100 {\n width: 100%;\n }\n .w-auto {\n width: auto;\n }\n .w-min {\n width: min-content;\n }\n .w-max {\n width: max-content;\n }\n .w-fit {\n width: fit-content;\n }\n .max-w-100 {\n max-width: 100%;\n }\n .min-w-0 {\n min-width: 0;\n }\n .min-w-100 {\n min-width: 100%;\n }\n .vw-100 {\n width: 100vw;\n }\n .min-vw-100 {\n min-width: 100vw;\n }\n .h-25 {\n height: 25%;\n }\n .h-50 {\n height: 50%;\n }\n .h-75 {\n height: 75%;\n }\n .h-100 {\n height: 100%;\n }\n .h-auto {\n height: auto;\n }\n .h-min {\n height: min-content;\n }\n .h-max {\n height: max-content;\n }\n .h-fit {\n height: fit-content;\n }\n .max-h-100 {\n max-height: 100%;\n }\n .min-h-0 {\n min-height: 0;\n }\n .min-h-100 {\n min-height: 100%;\n }\n .vh-100 {\n height: 100vh;\n }\n .min-vh-100 {\n min-height: 100vh;\n }\n .flex-fill {\n flex: 1 1 auto;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-column {\n flex-direction: column;\n }\n .flex-row-reverse {\n flex-direction: row-reverse;\n }\n .flex-column-reverse {\n flex-direction: column-reverse;\n }\n .flex-grow-0 {\n flex-grow: 0;\n }\n .flex-grow-1 {\n flex-grow: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .flex-shrink-1 {\n flex-shrink: 1;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .flex-nowrap {\n flex-wrap: nowrap;\n }\n .flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .justify-content-start {\n justify-content: flex-start;\n }\n .justify-content-end {\n justify-content: flex-end;\n }\n .justify-content-center {\n justify-content: center;\n }\n .justify-content-between {\n justify-content: space-between;\n }\n .justify-content-around {\n justify-content: space-around;\n }\n .justify-content-evenly {\n justify-content: space-evenly;\n }\n .justify-items-start {\n justify-items: start;\n }\n .justify-items-end {\n justify-items: end;\n }\n .justify-items-center {\n justify-items: center;\n }\n .justify-items-stretch {\n justify-items: stretch;\n }\n .justify-self-start {\n justify-self: start;\n }\n .justify-self-end {\n justify-self: end;\n }\n .justify-self-center {\n justify-self: center;\n }\n .align-items-start {\n align-items: flex-start;\n }\n .align-items-end {\n align-items: flex-end;\n }\n .align-items-center {\n align-items: center;\n }\n .align-items-baseline {\n align-items: baseline;\n }\n .align-items-stretch {\n align-items: stretch;\n }\n .align-content-start {\n align-content: flex-start;\n }\n .align-content-end {\n align-content: flex-end;\n }\n .align-content-center {\n align-content: center;\n }\n .align-content-between {\n align-content: space-between;\n }\n .align-content-around {\n align-content: space-around;\n }\n .align-content-stretch {\n align-content: stretch;\n }\n .align-self-auto {\n align-self: auto;\n }\n .align-self-start {\n align-self: flex-start;\n }\n .align-self-end {\n align-self: flex-end;\n }\n .align-self-center {\n align-self: center;\n }\n .align-self-baseline {\n align-self: baseline;\n }\n .align-self-stretch {\n align-self: stretch;\n }\n .place-items-start {\n place-items: start;\n }\n .place-items-end {\n place-items: end;\n }\n .place-items-center {\n place-items: center;\n }\n .place-items-stretch {\n place-items: stretch;\n }\n .grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .grid-cols-fill {\n grid-column: 1 / -1;\n }\n .grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .order-first {\n order: -1;\n }\n .order-0 {\n order: 0;\n }\n .order-1 {\n order: 1;\n }\n .order-2 {\n order: 2;\n }\n .order-3 {\n order: 3;\n }\n .order-4 {\n order: 4;\n }\n .order-5 {\n order: 5;\n }\n .order-last {\n order: 6;\n }\n .m-0 {\n margin: 0;\n }\n .m-1 {\n margin: 0.25rem;\n }\n .m-2 {\n margin: 0.5rem;\n }\n .m-3 {\n margin: 0.75rem;\n }\n .m-4 {\n margin: 1rem;\n }\n .m-5 {\n margin: 1.25rem;\n }\n .m-6 {\n margin: 1.5rem;\n }\n .m-7 {\n margin: 2rem;\n }\n .m-8 {\n margin: 2.5rem;\n }\n .m-9 {\n margin: 3rem;\n }\n .m-auto {\n margin: auto;\n }\n .mx-0 {\n margin-inline: 0;\n }\n .mx-1 {\n margin-inline: 0.25rem;\n }\n .mx-2 {\n margin-inline: 0.5rem;\n }\n .mx-3 {\n margin-inline: 0.75rem;\n }\n .mx-4 {\n margin-inline: 1rem;\n }\n .mx-5 {\n margin-inline: 1.25rem;\n }\n .mx-6 {\n margin-inline: 1.5rem;\n }\n .mx-7 {\n margin-inline: 2rem;\n }\n .mx-8 {\n margin-inline: 2.5rem;\n }\n .mx-9 {\n margin-inline: 3rem;\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-0 {\n margin-block: 0;\n }\n .my-1 {\n margin-block: 0.25rem;\n }\n .my-2 {\n margin-block: 0.5rem;\n }\n .my-3 {\n margin-block: 0.75rem;\n }\n .my-4 {\n margin-block: 1rem;\n }\n .my-5 {\n margin-block: 1.25rem;\n }\n .my-6 {\n margin-block: 1.5rem;\n }\n .my-7 {\n margin-block: 2rem;\n }\n .my-8 {\n margin-block: 2.5rem;\n }\n .my-9 {\n margin-block: 3rem;\n }\n .my-auto {\n margin-block: auto;\n }\n .mt-0 {\n margin-block-start: 0;\n }\n .mt-1 {\n margin-block-start: 0.25rem;\n }\n .mt-2 {\n margin-block-start: 0.5rem;\n }\n .mt-3 {\n margin-block-start: 0.75rem;\n }\n .mt-4 {\n margin-block-start: 1rem;\n }\n .mt-5 {\n margin-block-start: 1.25rem;\n }\n .mt-6 {\n margin-block-start: 1.5rem;\n }\n .mt-7 {\n margin-block-start: 2rem;\n }\n .mt-8 {\n margin-block-start: 2.5rem;\n }\n .mt-9 {\n margin-block-start: 3rem;\n }\n .mt-auto {\n margin-block-start: auto;\n }\n .me-0 {\n margin-inline-end: 0;\n }\n .me-1 {\n margin-inline-end: 0.25rem;\n }\n .me-2 {\n margin-inline-end: 0.5rem;\n }\n .me-3 {\n margin-inline-end: 0.75rem;\n }\n .me-4 {\n margin-inline-end: 1rem;\n }\n .me-5 {\n margin-inline-end: 1.25rem;\n }\n .me-6 {\n margin-inline-end: 1.5rem;\n }\n .me-7 {\n margin-inline-end: 2rem;\n }\n .me-8 {\n margin-inline-end: 2.5rem;\n }\n .me-9 {\n margin-inline-end: 3rem;\n }\n .me--1 {\n margin-inline-end: -0.25rem;\n }\n .me--2 {\n margin-inline-end: -0.5rem;\n }\n .me-auto {\n margin-inline-end: auto;\n }\n .mb-0 {\n margin-block-end: 0;\n }\n .mb-1 {\n margin-block-end: 0.25rem;\n }\n .mb-2 {\n margin-block-end: 0.5rem;\n }\n .mb-3 {\n margin-block-end: 0.75rem;\n }\n .mb-4 {\n margin-block-end: 1rem;\n }\n .mb-5 {\n margin-block-end: 1.25rem;\n }\n .mb-6 {\n margin-block-end: 1.5rem;\n }\n .mb-7 {\n margin-block-end: 2rem;\n }\n .mb-8 {\n margin-block-end: 2.5rem;\n }\n .mb-9 {\n margin-block-end: 3rem;\n }\n .mb-auto {\n margin-block-end: auto;\n }\n .ms-0 {\n margin-inline-start: 0;\n }\n .ms-1 {\n margin-inline-start: 0.25rem;\n }\n .ms-2 {\n margin-inline-start: 0.5rem;\n }\n .ms-3 {\n margin-inline-start: 0.75rem;\n }\n .ms-4 {\n margin-inline-start: 1rem;\n }\n .ms-5 {\n margin-inline-start: 1.25rem;\n }\n .ms-6 {\n margin-inline-start: 1.5rem;\n }\n .ms-7 {\n margin-inline-start: 2rem;\n }\n .ms-8 {\n margin-inline-start: 2.5rem;\n }\n .ms-9 {\n margin-inline-start: 3rem;\n }\n .ms--1 {\n margin-inline-start: -0.25rem;\n }\n .ms--2 {\n margin-inline-start: -0.5rem;\n }\n .ms-auto {\n margin-inline-start: auto;\n }\n .p-0 {\n padding: 0;\n }\n .p-1 {\n padding: 0.25rem;\n }\n .p-2 {\n padding: 0.5rem;\n }\n .p-3 {\n padding: 0.75rem;\n }\n .p-4 {\n padding: 1rem;\n }\n .p-5 {\n padding: 1.25rem;\n }\n .p-6 {\n padding: 1.5rem;\n }\n .p-7 {\n padding: 2rem;\n }\n .p-8 {\n padding: 2.5rem;\n }\n .p-9 {\n padding: 3rem;\n }\n .px-0 {\n padding-inline: 0;\n }\n .px-1 {\n padding-inline: 0.25rem;\n }\n .px-2 {\n padding-inline: 0.5rem;\n }\n .px-3 {\n padding-inline: 0.75rem;\n }\n .px-4 {\n padding-inline: 1rem;\n }\n .px-5 {\n padding-inline: 1.25rem;\n }\n .px-6 {\n padding-inline: 1.5rem;\n }\n .px-7 {\n padding-inline: 2rem;\n }\n .px-8 {\n padding-inline: 2.5rem;\n }\n .px-9 {\n padding-inline: 3rem;\n }\n .py-0 {\n padding-block: 0;\n }\n .py-1 {\n padding-block: 0.25rem;\n }\n .py-2 {\n padding-block: 0.5rem;\n }\n .py-3 {\n padding-block: 0.75rem;\n }\n .py-4 {\n padding-block: 1rem;\n }\n .py-5 {\n padding-block: 1.25rem;\n }\n .py-6 {\n padding-block: 1.5rem;\n }\n .py-7 {\n padding-block: 2rem;\n }\n .py-8 {\n padding-block: 2.5rem;\n }\n .py-9 {\n padding-block: 3rem;\n }\n .pt-0 {\n padding-block-start: 0;\n }\n .pt-1 {\n padding-block-start: 0.25rem;\n }\n .pt-2 {\n padding-block-start: 0.5rem;\n }\n .pt-3 {\n padding-block-start: 0.75rem;\n }\n .pt-4 {\n padding-block-start: 1rem;\n }\n .pt-5 {\n padding-block-start: 1.25rem;\n }\n .pt-6 {\n padding-block-start: 1.5rem;\n }\n .pt-7 {\n padding-block-start: 2rem;\n }\n .pt-8 {\n padding-block-start: 2.5rem;\n }\n .pt-9 {\n padding-block-start: 3rem;\n }\n .pe-0 {\n padding-inline-end: 0;\n }\n .pe-1 {\n padding-inline-end: 0.25rem;\n }\n .pe-2 {\n padding-inline-end: 0.5rem;\n }\n .pe-3 {\n padding-inline-end: 0.75rem;\n }\n .pe-4 {\n padding-inline-end: 1rem;\n }\n .pe-5 {\n padding-inline-end: 1.25rem;\n }\n .pe-6 {\n padding-inline-end: 1.5rem;\n }\n .pe-7 {\n padding-inline-end: 2rem;\n }\n .pe-8 {\n padding-inline-end: 2.5rem;\n }\n .pe-9 {\n padding-inline-end: 3rem;\n }\n .pb-0 {\n padding-block-end: 0;\n }\n .pb-1 {\n padding-block-end: 0.25rem;\n }\n .pb-2 {\n padding-block-end: 0.5rem;\n }\n .pb-3 {\n padding-block-end: 0.75rem;\n }\n .pb-4 {\n padding-block-end: 1rem;\n }\n .pb-5 {\n padding-block-end: 1.25rem;\n }\n .pb-6 {\n padding-block-end: 1.5rem;\n }\n .pb-7 {\n padding-block-end: 2rem;\n }\n .pb-8 {\n padding-block-end: 2.5rem;\n }\n .pb-9 {\n padding-block-end: 3rem;\n }\n .ps-0 {\n padding-inline-start: 0;\n }\n .ps-1 {\n padding-inline-start: 0.25rem;\n }\n .ps-2 {\n padding-inline-start: 0.5rem;\n }\n .ps-3 {\n padding-inline-start: 0.75rem;\n }\n .ps-4 {\n padding-inline-start: 1rem;\n }\n .ps-5 {\n padding-inline-start: 1.25rem;\n }\n .ps-6 {\n padding-inline-start: 1.5rem;\n }\n .ps-7 {\n padding-inline-start: 2rem;\n }\n .ps-8 {\n padding-inline-start: 2.5rem;\n }\n .ps-9 {\n padding-inline-start: 3rem;\n }\n .gap-0 {\n gap: 0;\n }\n .gap-1 {\n gap: 0.25rem;\n }\n .gap-2 {\n gap: 0.5rem;\n }\n .gap-3 {\n gap: 0.75rem;\n }\n .gap-4 {\n gap: 1rem;\n }\n .gap-5 {\n gap: 1.25rem;\n }\n .gap-6 {\n gap: 1.5rem;\n }\n .gap-7 {\n gap: 2rem;\n }\n .gap-8 {\n gap: 2.5rem;\n }\n .gap-9 {\n gap: 3rem;\n }\n .row-gap-0 {\n row-gap: 0;\n }\n .row-gap-1 {\n row-gap: 0.25rem;\n }\n .row-gap-2 {\n row-gap: 0.5rem;\n }\n .row-gap-3 {\n row-gap: 0.75rem;\n }\n .row-gap-4 {\n row-gap: 1rem;\n }\n .row-gap-5 {\n row-gap: 1.25rem;\n }\n .row-gap-6 {\n row-gap: 1.5rem;\n }\n .row-gap-7 {\n row-gap: 2rem;\n }\n .row-gap-8 {\n row-gap: 2.5rem;\n }\n .row-gap-9 {\n row-gap: 3rem;\n }\n .column-gap-0 {\n column-gap: 0;\n }\n .column-gap-1 {\n column-gap: 0.25rem;\n }\n .column-gap-2 {\n column-gap: 0.5rem;\n }\n .column-gap-3 {\n column-gap: 0.75rem;\n }\n .column-gap-4 {\n column-gap: 1rem;\n }\n .column-gap-5 {\n column-gap: 1.25rem;\n }\n .column-gap-6 {\n column-gap: 1.5rem;\n }\n .column-gap-7 {\n column-gap: 2rem;\n }\n .column-gap-8 {\n column-gap: 2.5rem;\n }\n .column-gap-9 {\n column-gap: 3rem;\n }\n :where(.space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .font-monospace {\n font-family: var(--font-mono);\n }\n .font-body {\n font-family: var(--body-font-family);\n }\n .fs-xs {\n font-size: 0.75rem;\n }\n .fs-sm {\n font-size: 0.875rem;\n }\n .fs-md {\n font-size: 1rem;\n }\n .fs-lg {\n font-size: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n }\n .fs-xl {\n font-size: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n }\n .fs-2xl {\n font-size: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n }\n .fs-3xl {\n font-size: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n }\n .fs-4xl {\n font-size: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n }\n .fs-5xl {\n font-size: clamp(3rem, 2rem + 5vw, 4rem);\n }\n .fs-6xl {\n font-size: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n }\n .text-xs {\n font-size: 0.75rem;\n line-height: 1.25;\n }\n .text-sm {\n font-size: 0.875rem;\n line-height: 1.5;\n }\n .text-md {\n font-size: 1rem;\n line-height: 1.5;\n }\n .text-lg {\n font-size: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n line-height: 1.5;\n }\n .text-xl {\n font-size: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n line-height: 1.4285714286;\n }\n .text-2xl {\n font-size: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n line-height: 1.3333333333;\n }\n .text-3xl {\n font-size: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n line-height: 1.2;\n }\n .text-4xl {\n font-size: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n line-height: 1.1;\n }\n .text-5xl {\n font-size: clamp(3rem, 2rem + 5vw, 4rem);\n line-height: 1.1;\n }\n .text-6xl {\n font-size: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n line-height: 1;\n }\n .fst-italic {\n font-style: italic;\n }\n .fst-normal {\n font-style: normal;\n }\n .fw-lighter {\n font-weight: lighter;\n }\n .fw-light {\n font-weight: 300;\n }\n .fw-normal {\n font-weight: 400;\n }\n .fw-medium {\n font-weight: 500;\n }\n .fw-semibold {\n font-weight: 600;\n }\n .fw-bold {\n font-weight: 700;\n }\n .fw-bolder {\n font-weight: bolder;\n }\n .lh-1 {\n line-height: 1;\n }\n .lh-sm {\n line-height: 1.25;\n }\n .lh-base {\n line-height: 1.5;\n }\n .lh-lg {\n line-height: 2;\n }\n .text-start {\n text-align: start;\n }\n .text-end {\n text-align: end;\n }\n .text-center {\n text-align: center;\n }\n .text-decoration-none {\n text-decoration: none;\n }\n .text-decoration-underline {\n text-decoration: underline;\n }\n .text-decoration-line-through {\n text-decoration: line-through;\n }\n .text-lowercase {\n text-transform: lowercase;\n }\n .text-uppercase {\n text-transform: uppercase;\n }\n .text-capitalize {\n text-transform: capitalize;\n }\n .text-wrap {\n text-wrap: wrap;\n }\n .text-nowrap {\n text-wrap: nowrap;\n }\n .text-balance {\n text-wrap: balance;\n }\n .text-pretty {\n text-wrap: pretty;\n }\n .text-break {\n word-wrap: break-word;\n word-break: break-word;\n }\n .fg-primary {\n --fg: var(--primary-fg);\n color: var(--fg);\n }\n .fg-accent {\n --fg: var(--accent-fg);\n color: var(--fg);\n }\n .fg-success {\n --fg: var(--success-fg);\n color: var(--fg);\n }\n .fg-danger {\n --fg: var(--danger-fg);\n color: var(--fg);\n }\n .fg-warning {\n --fg: var(--warning-fg);\n color: var(--fg);\n }\n .fg-info {\n --fg: var(--info-fg);\n color: var(--fg);\n }\n .fg-inverse {\n --fg: var(--inverse-fg);\n color: var(--fg);\n }\n .fg-secondary {\n --fg: var(--secondary-fg);\n color: var(--fg);\n }\n .fg-body {\n --fg: var(--fg-body);\n color: var(--fg);\n }\n .fg-1 {\n --fg: var(--fg-1);\n color: var(--fg);\n }\n .fg-2 {\n --fg: var(--fg-2);\n color: var(--fg);\n }\n .fg-3 {\n --fg: var(--fg-3);\n color: var(--fg);\n }\n .fg-4 {\n --fg: var(--fg-4);\n color: var(--fg);\n }\n .fg-bg {\n --fg: var(--fg-bg);\n color: var(--fg);\n }\n .fg-white {\n --fg: var(--fg-white);\n color: var(--fg);\n }\n .fg-black {\n --fg: var(--fg-black);\n color: var(--fg);\n }\n .fg-emphasis-primary {\n --fg: var(--primary-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-accent {\n --fg: var(--accent-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-success {\n --fg: var(--success-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-danger {\n --fg: var(--danger-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-warning {\n --fg: var(--warning-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-info {\n --fg: var(--info-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-inverse {\n --fg: var(--inverse-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-secondary {\n --fg: var(--secondary-fg-emphasis);\n color: var(--fg);\n }\n .fg-contrast-primary {\n --fg: var(--primary-contrast);\n color: var(--fg);\n }\n .fg-contrast-accent {\n --fg: var(--accent-contrast);\n color: var(--fg);\n }\n .fg-contrast-success {\n --fg: var(--success-contrast);\n color: var(--fg);\n }\n .fg-contrast-danger {\n --fg: var(--danger-contrast);\n color: var(--fg);\n }\n .fg-contrast-warning {\n --fg: var(--warning-contrast);\n color: var(--fg);\n }\n .fg-contrast-info {\n --fg: var(--info-contrast);\n color: var(--fg);\n }\n .fg-contrast-inverse {\n --fg: var(--inverse-contrast);\n color: var(--fg);\n }\n .fg-contrast-secondary {\n --fg: var(--secondary-contrast);\n color: var(--fg);\n }\n .fg-10 {\n color: color-mix(in oklch, var(--fg) 10%, transparent);\n }\n .fg-20 {\n color: color-mix(in oklch, var(--fg) 20%, transparent);\n }\n .fg-30 {\n color: color-mix(in oklch, var(--fg) 30%, transparent);\n }\n .fg-40 {\n color: color-mix(in oklch, var(--fg) 40%, transparent);\n }\n .fg-50 {\n color: color-mix(in oklch, var(--fg) 50%, transparent);\n }\n .fg-60 {\n color: color-mix(in oklch, var(--fg) 60%, transparent);\n }\n .fg-70 {\n color: color-mix(in oklch, var(--fg) 70%, transparent);\n }\n .fg-80 {\n color: color-mix(in oklch, var(--fg) 80%, transparent);\n }\n .fg-90 {\n color: color-mix(in oklch, var(--fg) 90%, transparent);\n }\n .fg-100 {\n color: var(--fg);\n }\n .link-10 {\n color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .hover\\:link-10:hover {\n color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .link-20 {\n color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .hover\\:link-20:hover {\n color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .link-30 {\n color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .hover\\:link-30:hover {\n color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .link-40 {\n color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .hover\\:link-40:hover {\n color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .link-50 {\n color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .hover\\:link-50:hover {\n color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .link-60 {\n color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .hover\\:link-60:hover {\n color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .link-70 {\n color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .hover\\:link-70:hover {\n color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .link-80 {\n color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .hover\\:link-80:hover {\n color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .link-90 {\n color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .hover\\:link-90:hover {\n color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .link-100 {\n color: var(--link-color);\n }\n .hover\\:link-100:hover {\n color: var(--link-color);\n }\n .underline-offset-1 {\n text-underline-offset: 0.125em;\n }\n .hover\\:underline-offset-1:hover {\n text-underline-offset: 0.125em;\n }\n .underline-offset-2 {\n text-underline-offset: 0.25em;\n }\n .hover\\:underline-offset-2:hover {\n text-underline-offset: 0.25em;\n }\n .underline-offset-3 {\n text-underline-offset: 0.375em;\n }\n .hover\\:underline-offset-3:hover {\n text-underline-offset: 0.375em;\n }\n .underline-primary {\n text-decoration-color: light-dark(var(--blue-600), var(--blue-400));\n }\n .underline-accent {\n text-decoration-color: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n }\n .underline-success {\n text-decoration-color: light-dark(var(--green-600), var(--green-400));\n }\n .underline-danger {\n text-decoration-color: light-dark(var(--red-600), var(--red-400));\n }\n .underline-warning {\n text-decoration-color: light-dark(var(--yellow-700), var(--yellow-400));\n }\n .underline-info {\n text-decoration-color: light-dark(var(--cyan-600), var(--cyan-400));\n }\n .underline-inverse {\n text-decoration-color: light-dark(var(--gray-900), var(--gray-200));\n }\n .underline-secondary {\n text-decoration-color: light-dark(var(--gray-600), var(--gray-400));\n }\n .underline-10 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .hover\\:underline-10:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .underline-20 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .hover\\:underline-20:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .underline-30 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .hover\\:underline-30:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .underline-40 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .hover\\:underline-40:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .underline-50 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .hover\\:underline-50:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .underline-60 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .hover\\:underline-60:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .underline-70 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .hover\\:underline-70:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .underline-80 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .hover\\:underline-80:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .underline-90 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .hover\\:underline-90:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .underline-100 {\n text-decoration-color: var(--link-color);\n }\n .hover\\:underline-100:hover {\n text-decoration-color: var(--link-color);\n }\n .underline-thickness-1 {\n text-decoration-thickness: 1px;\n }\n .hover\\:underline-thickness-1:hover {\n text-decoration-thickness: 1px;\n }\n .underline-thickness-2 {\n text-decoration-thickness: 2px;\n }\n .hover\\:underline-thickness-2:hover {\n text-decoration-thickness: 2px;\n }\n .underline-thickness-3 {\n text-decoration-thickness: 3px;\n }\n .hover\\:underline-thickness-3:hover {\n text-decoration-thickness: 3px;\n }\n .underline-thickness-4 {\n text-decoration-thickness: 4px;\n }\n .hover\\:underline-thickness-4:hover {\n text-decoration-thickness: 4px;\n }\n .underline-thickness-5 {\n text-decoration-thickness: 5px;\n }\n .hover\\:underline-thickness-5:hover {\n text-decoration-thickness: 5px;\n }\n .bg-primary {\n --bg: var(--primary-bg);\n background-color: var(--bg);\n }\n .bg-accent {\n --bg: var(--accent-bg);\n background-color: var(--bg);\n }\n .bg-success {\n --bg: var(--success-bg);\n background-color: var(--bg);\n }\n .bg-danger {\n --bg: var(--danger-bg);\n background-color: var(--bg);\n }\n .bg-warning {\n --bg: var(--warning-bg);\n background-color: var(--bg);\n }\n .bg-info {\n --bg: var(--info-bg);\n background-color: var(--bg);\n }\n .bg-inverse {\n --bg: var(--inverse-bg);\n background-color: var(--bg);\n }\n .bg-secondary {\n --bg: var(--secondary-bg);\n background-color: var(--bg);\n }\n .bg-body {\n --bg: var(--bg-body);\n background-color: var(--bg);\n }\n .bg-1 {\n --bg: var(--bg-1);\n background-color: var(--bg);\n }\n .bg-2 {\n --bg: var(--bg-2);\n background-color: var(--bg);\n }\n .bg-3 {\n --bg: var(--bg-3);\n background-color: var(--bg);\n }\n .bg-4 {\n --bg: var(--bg-4);\n background-color: var(--bg);\n }\n .bg-fg {\n --bg: var(--bg-fg);\n background-color: var(--bg);\n }\n .bg-white {\n --bg: var(--bg-white);\n background-color: var(--bg);\n }\n .bg-black {\n --bg: var(--bg-black);\n background-color: var(--bg);\n }\n .bg-transparent {\n --bg: var(--bg-transparent);\n background-color: var(--bg);\n }\n .bg-subtle-primary {\n --bg: var(--primary-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-accent {\n --bg: var(--accent-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-success {\n --bg: var(--success-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-danger {\n --bg: var(--danger-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-warning {\n --bg: var(--warning-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-info {\n --bg: var(--info-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-inverse {\n --bg: var(--inverse-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-secondary {\n --bg: var(--secondary-bg-subtle);\n background-color: var(--bg);\n }\n .bg-muted-primary {\n --bg: var(--primary-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-accent {\n --bg: var(--accent-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-success {\n --bg: var(--success-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-danger {\n --bg: var(--danger-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-warning {\n --bg: var(--warning-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-info {\n --bg: var(--info-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-inverse {\n --bg: var(--inverse-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-secondary {\n --bg: var(--secondary-bg-muted);\n background-color: var(--bg);\n }\n .bg-10 {\n background-color: color-mix(in oklch, var(--bg) 10%, transparent);\n }\n .bg-20 {\n background-color: color-mix(in oklch, var(--bg) 20%, transparent);\n }\n .bg-30 {\n background-color: color-mix(in oklch, var(--bg) 30%, transparent);\n }\n .bg-40 {\n background-color: color-mix(in oklch, var(--bg) 40%, transparent);\n }\n .bg-50 {\n background-color: color-mix(in oklch, var(--bg) 50%, transparent);\n }\n .bg-60 {\n background-color: color-mix(in oklch, var(--bg) 60%, transparent);\n }\n .bg-70 {\n background-color: color-mix(in oklch, var(--bg) 70%, transparent);\n }\n .bg-80 {\n background-color: color-mix(in oklch, var(--bg) 80%, transparent);\n }\n .bg-90 {\n background-color: color-mix(in oklch, var(--bg) 90%, transparent);\n }\n .bg-100 {\n background-color: var(--bg);\n }\n .theme-contrast {\n background-color: var(--theme-bg);\n color: var(--theme-contrast);\n }\n .theme-subtle {\n background-color: var(--theme-bg-subtle);\n color: var(--theme-fg);\n }\n .theme-muted {\n background-color: var(--theme-bg-muted);\n color: var(--theme-fg-emphasis);\n }\n .theme-border {\n border: var(--border-width) solid var(--theme-border);\n }\n .bg-gradient {\n background-image: var(--gradient);\n }\n .user-select-all {\n user-select: all;\n }\n .user-select-auto {\n user-select: auto;\n }\n .user-select-text {\n user-select: text;\n }\n .user-select-none {\n user-select: none;\n }\n .pe-none {\n pointer-events: none;\n }\n .pe-auto {\n pointer-events: auto;\n }\n .rounded-0 {\n --rounded-size: 0;\n border-radius: var(--rounded-size);\n }\n .rounded-1 {\n --rounded-size: 0.125rem;\n border-radius: var(--rounded-size);\n }\n .rounded-2 {\n --rounded-size: 0.1875rem;\n border-radius: var(--rounded-size);\n }\n .rounded-3 {\n --rounded-size: 0.25rem;\n border-radius: var(--rounded-size);\n }\n .rounded-4 {\n --rounded-size: 0.375rem;\n border-radius: var(--rounded-size);\n }\n .rounded-5 {\n --rounded-size: 0.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded-6 {\n --rounded-size: 0.625rem;\n border-radius: var(--rounded-size);\n }\n .rounded-7 {\n --rounded-size: 0.75rem;\n border-radius: var(--rounded-size);\n }\n .rounded-8 {\n --rounded-size: 1rem;\n border-radius: var(--rounded-size);\n }\n .rounded-9 {\n --rounded-size: 1.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded {\n --rounded-size: 0.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded-circle {\n --rounded-size: 50%;\n border-radius: var(--rounded-size);\n }\n .rounded-pill {\n --rounded-size: var(--radius-pill);\n border-radius: var(--rounded-size);\n }\n .rounded-size-0 {\n --rounded-size: 0;\n }\n .rounded-size-1 {\n --rounded-size: 0.125rem;\n }\n .rounded-size-2 {\n --rounded-size: 0.1875rem;\n }\n .rounded-size-3 {\n --rounded-size: 0.25rem;\n }\n .rounded-size-4 {\n --rounded-size: 0.375rem;\n }\n .rounded-size-5 {\n --rounded-size: 0.5rem;\n }\n .rounded-size-6 {\n --rounded-size: 0.625rem;\n }\n .rounded-size-7 {\n --rounded-size: 0.75rem;\n }\n .rounded-size-8 {\n --rounded-size: 1rem;\n }\n .rounded-size-9 {\n --rounded-size: 1.5rem;\n }\n .rounded-size {\n --rounded-size: 0.5rem;\n }\n .rounded-size-circle {\n --rounded-size: 50%;\n }\n .rounded-size-pill {\n --rounded-size: var(--radius-pill);\n }\n .rounded-top-0 {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n .rounded-top-1 {\n border-start-start-radius: 0.125rem;\n border-start-end-radius: 0.125rem;\n }\n .rounded-top-2 {\n border-start-start-radius: 0.1875rem;\n border-start-end-radius: 0.1875rem;\n }\n .rounded-top-3 {\n border-start-start-radius: 0.25rem;\n border-start-end-radius: 0.25rem;\n }\n .rounded-top-4 {\n border-start-start-radius: 0.375rem;\n border-start-end-radius: 0.375rem;\n }\n .rounded-top-5 {\n border-start-start-radius: 0.5rem;\n border-start-end-radius: 0.5rem;\n }\n .rounded-top-6 {\n border-start-start-radius: 0.625rem;\n border-start-end-radius: 0.625rem;\n }\n .rounded-top-7 {\n border-start-start-radius: 0.75rem;\n border-start-end-radius: 0.75rem;\n }\n .rounded-top-8 {\n border-start-start-radius: 1rem;\n border-start-end-radius: 1rem;\n }\n .rounded-top-9 {\n border-start-start-radius: 1.5rem;\n border-start-end-radius: 1.5rem;\n }\n .rounded-top {\n border-start-start-radius: var(--rounded-size, var(--radius-5));\n border-start-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-top-circle {\n border-start-start-radius: 50%;\n border-start-end-radius: 50%;\n }\n .rounded-top-pill {\n border-start-start-radius: var(--radius-pill);\n border-start-end-radius: var(--radius-pill);\n }\n .rounded-end-0 {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .rounded-end-1 {\n border-start-end-radius: 0.125rem;\n border-end-end-radius: 0.125rem;\n }\n .rounded-end-2 {\n border-start-end-radius: 0.1875rem;\n border-end-end-radius: 0.1875rem;\n }\n .rounded-end-3 {\n border-start-end-radius: 0.25rem;\n border-end-end-radius: 0.25rem;\n }\n .rounded-end-4 {\n border-start-end-radius: 0.375rem;\n border-end-end-radius: 0.375rem;\n }\n .rounded-end-5 {\n border-start-end-radius: 0.5rem;\n border-end-end-radius: 0.5rem;\n }\n .rounded-end-6 {\n border-start-end-radius: 0.625rem;\n border-end-end-radius: 0.625rem;\n }\n .rounded-end-7 {\n border-start-end-radius: 0.75rem;\n border-end-end-radius: 0.75rem;\n }\n .rounded-end-8 {\n border-start-end-radius: 1rem;\n border-end-end-radius: 1rem;\n }\n .rounded-end-9 {\n border-start-end-radius: 1.5rem;\n border-end-end-radius: 1.5rem;\n }\n .rounded-end {\n border-start-end-radius: var(--rounded-size, var(--radius-5));\n border-end-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-end-circle {\n border-start-end-radius: 50%;\n border-end-end-radius: 50%;\n }\n .rounded-end-pill {\n border-start-end-radius: var(--radius-pill);\n border-end-end-radius: var(--radius-pill);\n }\n .rounded-bottom-0 {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .rounded-bottom-1 {\n border-end-start-radius: 0.125rem;\n border-end-end-radius: 0.125rem;\n }\n .rounded-bottom-2 {\n border-end-start-radius: 0.1875rem;\n border-end-end-radius: 0.1875rem;\n }\n .rounded-bottom-3 {\n border-end-start-radius: 0.25rem;\n border-end-end-radius: 0.25rem;\n }\n .rounded-bottom-4 {\n border-end-start-radius: 0.375rem;\n border-end-end-radius: 0.375rem;\n }\n .rounded-bottom-5 {\n border-end-start-radius: 0.5rem;\n border-end-end-radius: 0.5rem;\n }\n .rounded-bottom-6 {\n border-end-start-radius: 0.625rem;\n border-end-end-radius: 0.625rem;\n }\n .rounded-bottom-7 {\n border-end-start-radius: 0.75rem;\n border-end-end-radius: 0.75rem;\n }\n .rounded-bottom-8 {\n border-end-start-radius: 1rem;\n border-end-end-radius: 1rem;\n }\n .rounded-bottom-9 {\n border-end-start-radius: 1.5rem;\n border-end-end-radius: 1.5rem;\n }\n .rounded-bottom {\n border-end-start-radius: var(--rounded-size, var(--radius-5));\n border-end-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-bottom-circle {\n border-end-start-radius: 50%;\n border-end-end-radius: 50%;\n }\n .rounded-bottom-pill {\n border-end-start-radius: var(--radius-pill);\n border-end-end-radius: var(--radius-pill);\n }\n .rounded-start-0 {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .rounded-start-1 {\n border-start-start-radius: 0.125rem;\n border-end-start-radius: 0.125rem;\n }\n .rounded-start-2 {\n border-start-start-radius: 0.1875rem;\n border-end-start-radius: 0.1875rem;\n }\n .rounded-start-3 {\n border-start-start-radius: 0.25rem;\n border-end-start-radius: 0.25rem;\n }\n .rounded-start-4 {\n border-start-start-radius: 0.375rem;\n border-end-start-radius: 0.375rem;\n }\n .rounded-start-5 {\n border-start-start-radius: 0.5rem;\n border-end-start-radius: 0.5rem;\n }\n .rounded-start-6 {\n border-start-start-radius: 0.625rem;\n border-end-start-radius: 0.625rem;\n }\n .rounded-start-7 {\n border-start-start-radius: 0.75rem;\n border-end-start-radius: 0.75rem;\n }\n .rounded-start-8 {\n border-start-start-radius: 1rem;\n border-end-start-radius: 1rem;\n }\n .rounded-start-9 {\n border-start-start-radius: 1.5rem;\n border-end-start-radius: 1.5rem;\n }\n .rounded-start {\n border-start-start-radius: var(--rounded-size, var(--radius-5));\n border-end-start-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-start-circle {\n border-start-start-radius: 50%;\n border-end-start-radius: 50%;\n }\n .rounded-start-pill {\n border-start-start-radius: var(--radius-pill);\n border-end-start-radius: var(--radius-pill);\n }\n .visible {\n visibility: visible;\n }\n .invisible {\n visibility: hidden;\n }\n .z-n1 {\n z-index: -1;\n }\n .z-0 {\n z-index: 0;\n }\n .z-1 {\n z-index: 1;\n }\n .z-2 {\n z-index: 2;\n }\n .z-3 {\n z-index: 3;\n }\n @media (width >= 576px) {\n .sm\\:float-start {\n float: inline-start;\n }\n .sm\\:float-end {\n float: inline-end;\n }\n .sm\\:float-none {\n float: none;\n }\n .sm\\:object-fit-contain {\n object-fit: contain;\n }\n .sm\\:object-fit-cover {\n object-fit: cover;\n }\n .sm\\:object-fit-fill {\n object-fit: fill;\n }\n .sm\\:object-fit-scale {\n object-fit: scale-down;\n }\n .sm\\:object-fit-none {\n object-fit: none;\n }\n .sm\\:d-inline {\n display: inline;\n }\n .sm\\:d-inline-block {\n display: inline-block;\n }\n .sm\\:d-block {\n display: block;\n }\n .sm\\:d-grid {\n display: grid;\n }\n .sm\\:d-inline-grid {\n display: inline-grid;\n }\n .sm\\:d-table {\n display: table;\n }\n .sm\\:d-table-row {\n display: table-row;\n }\n .sm\\:d-table-cell {\n display: table-cell;\n }\n .sm\\:d-flex {\n display: flex;\n }\n .sm\\:d-inline-flex {\n display: inline-flex;\n }\n .sm\\:d-contents {\n display: contents;\n }\n .sm\\:d-flow-root {\n display: flow-root;\n }\n .sm\\:d-none {\n display: none;\n }\n .sm\\:flex-fill {\n flex: 1 1 auto;\n }\n .sm\\:flex-row {\n flex-direction: row;\n }\n .sm\\:flex-column {\n flex-direction: column;\n }\n .sm\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .sm\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .sm\\:flex-grow-0 {\n flex-grow: 0;\n }\n .sm\\:flex-grow-1 {\n flex-grow: 1;\n }\n .sm\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .sm\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .sm\\:flex-wrap {\n flex-wrap: wrap;\n }\n .sm\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .sm\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .sm\\:justify-content-start {\n justify-content: flex-start;\n }\n .sm\\:justify-content-end {\n justify-content: flex-end;\n }\n .sm\\:justify-content-center {\n justify-content: center;\n }\n .sm\\:justify-content-between {\n justify-content: space-between;\n }\n .sm\\:justify-content-around {\n justify-content: space-around;\n }\n .sm\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .sm\\:justify-items-start {\n justify-items: start;\n }\n .sm\\:justify-items-end {\n justify-items: end;\n }\n .sm\\:justify-items-center {\n justify-items: center;\n }\n .sm\\:justify-items-stretch {\n justify-items: stretch;\n }\n .sm\\:justify-self-start {\n justify-self: start;\n }\n .sm\\:justify-self-end {\n justify-self: end;\n }\n .sm\\:justify-self-center {\n justify-self: center;\n }\n .sm\\:align-items-start {\n align-items: flex-start;\n }\n .sm\\:align-items-end {\n align-items: flex-end;\n }\n .sm\\:align-items-center {\n align-items: center;\n }\n .sm\\:align-items-baseline {\n align-items: baseline;\n }\n .sm\\:align-items-stretch {\n align-items: stretch;\n }\n .sm\\:align-content-start {\n align-content: flex-start;\n }\n .sm\\:align-content-end {\n align-content: flex-end;\n }\n .sm\\:align-content-center {\n align-content: center;\n }\n .sm\\:align-content-between {\n align-content: space-between;\n }\n .sm\\:align-content-around {\n align-content: space-around;\n }\n .sm\\:align-content-stretch {\n align-content: stretch;\n }\n .sm\\:align-self-auto {\n align-self: auto;\n }\n .sm\\:align-self-start {\n align-self: flex-start;\n }\n .sm\\:align-self-end {\n align-self: flex-end;\n }\n .sm\\:align-self-center {\n align-self: center;\n }\n .sm\\:align-self-baseline {\n align-self: baseline;\n }\n .sm\\:align-self-stretch {\n align-self: stretch;\n }\n .sm\\:place-items-start {\n place-items: start;\n }\n .sm\\:place-items-end {\n place-items: end;\n }\n .sm\\:place-items-center {\n place-items: center;\n }\n .sm\\:place-items-stretch {\n place-items: stretch;\n }\n .sm\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .sm\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .sm\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .sm\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .sm\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .sm\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .sm\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .sm\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .sm\\:order-first {\n order: -1;\n }\n .sm\\:order-0 {\n order: 0;\n }\n .sm\\:order-1 {\n order: 1;\n }\n .sm\\:order-2 {\n order: 2;\n }\n .sm\\:order-3 {\n order: 3;\n }\n .sm\\:order-4 {\n order: 4;\n }\n .sm\\:order-5 {\n order: 5;\n }\n .sm\\:order-last {\n order: 6;\n }\n .sm\\:m-0 {\n margin: 0;\n }\n .sm\\:m-1 {\n margin: 0.25rem;\n }\n .sm\\:m-2 {\n margin: 0.5rem;\n }\n .sm\\:m-3 {\n margin: 0.75rem;\n }\n .sm\\:m-4 {\n margin: 1rem;\n }\n .sm\\:m-5 {\n margin: 1.25rem;\n }\n .sm\\:m-6 {\n margin: 1.5rem;\n }\n .sm\\:m-7 {\n margin: 2rem;\n }\n .sm\\:m-8 {\n margin: 2.5rem;\n }\n .sm\\:m-9 {\n margin: 3rem;\n }\n .sm\\:m-auto {\n margin: auto;\n }\n .sm\\:mx-0 {\n margin-inline: 0;\n }\n .sm\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .sm\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .sm\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .sm\\:mx-4 {\n margin-inline: 1rem;\n }\n .sm\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .sm\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .sm\\:mx-7 {\n margin-inline: 2rem;\n }\n .sm\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .sm\\:mx-9 {\n margin-inline: 3rem;\n }\n .sm\\:mx-auto {\n margin-inline: auto;\n }\n .sm\\:my-0 {\n margin-block: 0;\n }\n .sm\\:my-1 {\n margin-block: 0.25rem;\n }\n .sm\\:my-2 {\n margin-block: 0.5rem;\n }\n .sm\\:my-3 {\n margin-block: 0.75rem;\n }\n .sm\\:my-4 {\n margin-block: 1rem;\n }\n .sm\\:my-5 {\n margin-block: 1.25rem;\n }\n .sm\\:my-6 {\n margin-block: 1.5rem;\n }\n .sm\\:my-7 {\n margin-block: 2rem;\n }\n .sm\\:my-8 {\n margin-block: 2.5rem;\n }\n .sm\\:my-9 {\n margin-block: 3rem;\n }\n .sm\\:my-auto {\n margin-block: auto;\n }\n .sm\\:mt-0 {\n margin-block-start: 0;\n }\n .sm\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .sm\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .sm\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .sm\\:mt-4 {\n margin-block-start: 1rem;\n }\n .sm\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .sm\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .sm\\:mt-7 {\n margin-block-start: 2rem;\n }\n .sm\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .sm\\:mt-9 {\n margin-block-start: 3rem;\n }\n .sm\\:mt-auto {\n margin-block-start: auto;\n }\n .sm\\:me-0 {\n margin-inline-end: 0;\n }\n .sm\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .sm\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .sm\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .sm\\:me-4 {\n margin-inline-end: 1rem;\n }\n .sm\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .sm\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .sm\\:me-7 {\n margin-inline-end: 2rem;\n }\n .sm\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .sm\\:me-9 {\n margin-inline-end: 3rem;\n }\n .sm\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .sm\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .sm\\:me-auto {\n margin-inline-end: auto;\n }\n .sm\\:mb-0 {\n margin-block-end: 0;\n }\n .sm\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .sm\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .sm\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .sm\\:mb-4 {\n margin-block-end: 1rem;\n }\n .sm\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .sm\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .sm\\:mb-7 {\n margin-block-end: 2rem;\n }\n .sm\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .sm\\:mb-9 {\n margin-block-end: 3rem;\n }\n .sm\\:mb-auto {\n margin-block-end: auto;\n }\n .sm\\:ms-0 {\n margin-inline-start: 0;\n }\n .sm\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .sm\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .sm\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .sm\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .sm\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .sm\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .sm\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .sm\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .sm\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .sm\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .sm\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .sm\\:ms-auto {\n margin-inline-start: auto;\n }\n .sm\\:p-0 {\n padding: 0;\n }\n .sm\\:p-1 {\n padding: 0.25rem;\n }\n .sm\\:p-2 {\n padding: 0.5rem;\n }\n .sm\\:p-3 {\n padding: 0.75rem;\n }\n .sm\\:p-4 {\n padding: 1rem;\n }\n .sm\\:p-5 {\n padding: 1.25rem;\n }\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n .sm\\:p-7 {\n padding: 2rem;\n }\n .sm\\:p-8 {\n padding: 2.5rem;\n }\n .sm\\:p-9 {\n padding: 3rem;\n }\n .sm\\:px-0 {\n padding-inline: 0;\n }\n .sm\\:px-1 {\n padding-inline: 0.25rem;\n }\n .sm\\:px-2 {\n padding-inline: 0.5rem;\n }\n .sm\\:px-3 {\n padding-inline: 0.75rem;\n }\n .sm\\:px-4 {\n padding-inline: 1rem;\n }\n .sm\\:px-5 {\n padding-inline: 1.25rem;\n }\n .sm\\:px-6 {\n padding-inline: 1.5rem;\n }\n .sm\\:px-7 {\n padding-inline: 2rem;\n }\n .sm\\:px-8 {\n padding-inline: 2.5rem;\n }\n .sm\\:px-9 {\n padding-inline: 3rem;\n }\n .sm\\:py-0 {\n padding-block: 0;\n }\n .sm\\:py-1 {\n padding-block: 0.25rem;\n }\n .sm\\:py-2 {\n padding-block: 0.5rem;\n }\n .sm\\:py-3 {\n padding-block: 0.75rem;\n }\n .sm\\:py-4 {\n padding-block: 1rem;\n }\n .sm\\:py-5 {\n padding-block: 1.25rem;\n }\n .sm\\:py-6 {\n padding-block: 1.5rem;\n }\n .sm\\:py-7 {\n padding-block: 2rem;\n }\n .sm\\:py-8 {\n padding-block: 2.5rem;\n }\n .sm\\:py-9 {\n padding-block: 3rem;\n }\n .sm\\:pt-0 {\n padding-block-start: 0;\n }\n .sm\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .sm\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .sm\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .sm\\:pt-4 {\n padding-block-start: 1rem;\n }\n .sm\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .sm\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .sm\\:pt-7 {\n padding-block-start: 2rem;\n }\n .sm\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .sm\\:pt-9 {\n padding-block-start: 3rem;\n }\n .sm\\:pe-0 {\n padding-inline-end: 0;\n }\n .sm\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .sm\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .sm\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .sm\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .sm\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .sm\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .sm\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .sm\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .sm\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .sm\\:pb-0 {\n padding-block-end: 0;\n }\n .sm\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .sm\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .sm\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .sm\\:pb-4 {\n padding-block-end: 1rem;\n }\n .sm\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .sm\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .sm\\:pb-7 {\n padding-block-end: 2rem;\n }\n .sm\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .sm\\:pb-9 {\n padding-block-end: 3rem;\n }\n .sm\\:ps-0 {\n padding-inline-start: 0;\n }\n .sm\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .sm\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .sm\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .sm\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .sm\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .sm\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .sm\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .sm\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .sm\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .sm\\:gap-0 {\n gap: 0;\n }\n .sm\\:gap-1 {\n gap: 0.25rem;\n }\n .sm\\:gap-2 {\n gap: 0.5rem;\n }\n .sm\\:gap-3 {\n gap: 0.75rem;\n }\n .sm\\:gap-4 {\n gap: 1rem;\n }\n .sm\\:gap-5 {\n gap: 1.25rem;\n }\n .sm\\:gap-6 {\n gap: 1.5rem;\n }\n .sm\\:gap-7 {\n gap: 2rem;\n }\n .sm\\:gap-8 {\n gap: 2.5rem;\n }\n .sm\\:gap-9 {\n gap: 3rem;\n }\n .sm\\:row-gap-0 {\n row-gap: 0;\n }\n .sm\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .sm\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .sm\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .sm\\:row-gap-4 {\n row-gap: 1rem;\n }\n .sm\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .sm\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .sm\\:row-gap-7 {\n row-gap: 2rem;\n }\n .sm\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .sm\\:row-gap-9 {\n row-gap: 3rem;\n }\n .sm\\:column-gap-0 {\n column-gap: 0;\n }\n .sm\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .sm\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .sm\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .sm\\:column-gap-4 {\n column-gap: 1rem;\n }\n .sm\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .sm\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .sm\\:column-gap-7 {\n column-gap: 2rem;\n }\n .sm\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .sm\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.sm\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.sm\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.sm\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.sm\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.sm\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.sm\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.sm\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.sm\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.sm\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.sm\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.sm\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.sm\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.sm\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.sm\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.sm\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.sm\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.sm\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.sm\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.sm\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.sm\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.sm\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.sm\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.sm\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.sm\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .sm\\:text-start {\n text-align: start;\n }\n .sm\\:text-end {\n text-align: end;\n }\n .sm\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 768px) {\n .md\\:float-start {\n float: inline-start;\n }\n .md\\:float-end {\n float: inline-end;\n }\n .md\\:float-none {\n float: none;\n }\n .md\\:object-fit-contain {\n object-fit: contain;\n }\n .md\\:object-fit-cover {\n object-fit: cover;\n }\n .md\\:object-fit-fill {\n object-fit: fill;\n }\n .md\\:object-fit-scale {\n object-fit: scale-down;\n }\n .md\\:object-fit-none {\n object-fit: none;\n }\n .md\\:d-inline {\n display: inline;\n }\n .md\\:d-inline-block {\n display: inline-block;\n }\n .md\\:d-block {\n display: block;\n }\n .md\\:d-grid {\n display: grid;\n }\n .md\\:d-inline-grid {\n display: inline-grid;\n }\n .md\\:d-table {\n display: table;\n }\n .md\\:d-table-row {\n display: table-row;\n }\n .md\\:d-table-cell {\n display: table-cell;\n }\n .md\\:d-flex {\n display: flex;\n }\n .md\\:d-inline-flex {\n display: inline-flex;\n }\n .md\\:d-contents {\n display: contents;\n }\n .md\\:d-flow-root {\n display: flow-root;\n }\n .md\\:d-none {\n display: none;\n }\n .md\\:flex-fill {\n flex: 1 1 auto;\n }\n .md\\:flex-row {\n flex-direction: row;\n }\n .md\\:flex-column {\n flex-direction: column;\n }\n .md\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .md\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .md\\:flex-grow-0 {\n flex-grow: 0;\n }\n .md\\:flex-grow-1 {\n flex-grow: 1;\n }\n .md\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .md\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .md\\:flex-wrap {\n flex-wrap: wrap;\n }\n .md\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .md\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .md\\:justify-content-start {\n justify-content: flex-start;\n }\n .md\\:justify-content-end {\n justify-content: flex-end;\n }\n .md\\:justify-content-center {\n justify-content: center;\n }\n .md\\:justify-content-between {\n justify-content: space-between;\n }\n .md\\:justify-content-around {\n justify-content: space-around;\n }\n .md\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .md\\:justify-items-start {\n justify-items: start;\n }\n .md\\:justify-items-end {\n justify-items: end;\n }\n .md\\:justify-items-center {\n justify-items: center;\n }\n .md\\:justify-items-stretch {\n justify-items: stretch;\n }\n .md\\:justify-self-start {\n justify-self: start;\n }\n .md\\:justify-self-end {\n justify-self: end;\n }\n .md\\:justify-self-center {\n justify-self: center;\n }\n .md\\:align-items-start {\n align-items: flex-start;\n }\n .md\\:align-items-end {\n align-items: flex-end;\n }\n .md\\:align-items-center {\n align-items: center;\n }\n .md\\:align-items-baseline {\n align-items: baseline;\n }\n .md\\:align-items-stretch {\n align-items: stretch;\n }\n .md\\:align-content-start {\n align-content: flex-start;\n }\n .md\\:align-content-end {\n align-content: flex-end;\n }\n .md\\:align-content-center {\n align-content: center;\n }\n .md\\:align-content-between {\n align-content: space-between;\n }\n .md\\:align-content-around {\n align-content: space-around;\n }\n .md\\:align-content-stretch {\n align-content: stretch;\n }\n .md\\:align-self-auto {\n align-self: auto;\n }\n .md\\:align-self-start {\n align-self: flex-start;\n }\n .md\\:align-self-end {\n align-self: flex-end;\n }\n .md\\:align-self-center {\n align-self: center;\n }\n .md\\:align-self-baseline {\n align-self: baseline;\n }\n .md\\:align-self-stretch {\n align-self: stretch;\n }\n .md\\:place-items-start {\n place-items: start;\n }\n .md\\:place-items-end {\n place-items: end;\n }\n .md\\:place-items-center {\n place-items: center;\n }\n .md\\:place-items-stretch {\n place-items: stretch;\n }\n .md\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .md\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .md\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .md\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .md\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .md\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .md\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .md\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .md\\:order-first {\n order: -1;\n }\n .md\\:order-0 {\n order: 0;\n }\n .md\\:order-1 {\n order: 1;\n }\n .md\\:order-2 {\n order: 2;\n }\n .md\\:order-3 {\n order: 3;\n }\n .md\\:order-4 {\n order: 4;\n }\n .md\\:order-5 {\n order: 5;\n }\n .md\\:order-last {\n order: 6;\n }\n .md\\:m-0 {\n margin: 0;\n }\n .md\\:m-1 {\n margin: 0.25rem;\n }\n .md\\:m-2 {\n margin: 0.5rem;\n }\n .md\\:m-3 {\n margin: 0.75rem;\n }\n .md\\:m-4 {\n margin: 1rem;\n }\n .md\\:m-5 {\n margin: 1.25rem;\n }\n .md\\:m-6 {\n margin: 1.5rem;\n }\n .md\\:m-7 {\n margin: 2rem;\n }\n .md\\:m-8 {\n margin: 2.5rem;\n }\n .md\\:m-9 {\n margin: 3rem;\n }\n .md\\:m-auto {\n margin: auto;\n }\n .md\\:mx-0 {\n margin-inline: 0;\n }\n .md\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .md\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .md\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .md\\:mx-4 {\n margin-inline: 1rem;\n }\n .md\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .md\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .md\\:mx-7 {\n margin-inline: 2rem;\n }\n .md\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .md\\:mx-9 {\n margin-inline: 3rem;\n }\n .md\\:mx-auto {\n margin-inline: auto;\n }\n .md\\:my-0 {\n margin-block: 0;\n }\n .md\\:my-1 {\n margin-block: 0.25rem;\n }\n .md\\:my-2 {\n margin-block: 0.5rem;\n }\n .md\\:my-3 {\n margin-block: 0.75rem;\n }\n .md\\:my-4 {\n margin-block: 1rem;\n }\n .md\\:my-5 {\n margin-block: 1.25rem;\n }\n .md\\:my-6 {\n margin-block: 1.5rem;\n }\n .md\\:my-7 {\n margin-block: 2rem;\n }\n .md\\:my-8 {\n margin-block: 2.5rem;\n }\n .md\\:my-9 {\n margin-block: 3rem;\n }\n .md\\:my-auto {\n margin-block: auto;\n }\n .md\\:mt-0 {\n margin-block-start: 0;\n }\n .md\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .md\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .md\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .md\\:mt-4 {\n margin-block-start: 1rem;\n }\n .md\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .md\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .md\\:mt-7 {\n margin-block-start: 2rem;\n }\n .md\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .md\\:mt-9 {\n margin-block-start: 3rem;\n }\n .md\\:mt-auto {\n margin-block-start: auto;\n }\n .md\\:me-0 {\n margin-inline-end: 0;\n }\n .md\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .md\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .md\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .md\\:me-4 {\n margin-inline-end: 1rem;\n }\n .md\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .md\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .md\\:me-7 {\n margin-inline-end: 2rem;\n }\n .md\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .md\\:me-9 {\n margin-inline-end: 3rem;\n }\n .md\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .md\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .md\\:me-auto {\n margin-inline-end: auto;\n }\n .md\\:mb-0 {\n margin-block-end: 0;\n }\n .md\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .md\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .md\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .md\\:mb-4 {\n margin-block-end: 1rem;\n }\n .md\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .md\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .md\\:mb-7 {\n margin-block-end: 2rem;\n }\n .md\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .md\\:mb-9 {\n margin-block-end: 3rem;\n }\n .md\\:mb-auto {\n margin-block-end: auto;\n }\n .md\\:ms-0 {\n margin-inline-start: 0;\n }\n .md\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .md\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .md\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .md\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .md\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .md\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .md\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .md\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .md\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .md\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .md\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .md\\:ms-auto {\n margin-inline-start: auto;\n }\n .md\\:p-0 {\n padding: 0;\n }\n .md\\:p-1 {\n padding: 0.25rem;\n }\n .md\\:p-2 {\n padding: 0.5rem;\n }\n .md\\:p-3 {\n padding: 0.75rem;\n }\n .md\\:p-4 {\n padding: 1rem;\n }\n .md\\:p-5 {\n padding: 1.25rem;\n }\n .md\\:p-6 {\n padding: 1.5rem;\n }\n .md\\:p-7 {\n padding: 2rem;\n }\n .md\\:p-8 {\n padding: 2.5rem;\n }\n .md\\:p-9 {\n padding: 3rem;\n }\n .md\\:px-0 {\n padding-inline: 0;\n }\n .md\\:px-1 {\n padding-inline: 0.25rem;\n }\n .md\\:px-2 {\n padding-inline: 0.5rem;\n }\n .md\\:px-3 {\n padding-inline: 0.75rem;\n }\n .md\\:px-4 {\n padding-inline: 1rem;\n }\n .md\\:px-5 {\n padding-inline: 1.25rem;\n }\n .md\\:px-6 {\n padding-inline: 1.5rem;\n }\n .md\\:px-7 {\n padding-inline: 2rem;\n }\n .md\\:px-8 {\n padding-inline: 2.5rem;\n }\n .md\\:px-9 {\n padding-inline: 3rem;\n }\n .md\\:py-0 {\n padding-block: 0;\n }\n .md\\:py-1 {\n padding-block: 0.25rem;\n }\n .md\\:py-2 {\n padding-block: 0.5rem;\n }\n .md\\:py-3 {\n padding-block: 0.75rem;\n }\n .md\\:py-4 {\n padding-block: 1rem;\n }\n .md\\:py-5 {\n padding-block: 1.25rem;\n }\n .md\\:py-6 {\n padding-block: 1.5rem;\n }\n .md\\:py-7 {\n padding-block: 2rem;\n }\n .md\\:py-8 {\n padding-block: 2.5rem;\n }\n .md\\:py-9 {\n padding-block: 3rem;\n }\n .md\\:pt-0 {\n padding-block-start: 0;\n }\n .md\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .md\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .md\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .md\\:pt-4 {\n padding-block-start: 1rem;\n }\n .md\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .md\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .md\\:pt-7 {\n padding-block-start: 2rem;\n }\n .md\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .md\\:pt-9 {\n padding-block-start: 3rem;\n }\n .md\\:pe-0 {\n padding-inline-end: 0;\n }\n .md\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .md\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .md\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .md\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .md\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .md\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .md\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .md\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .md\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .md\\:pb-0 {\n padding-block-end: 0;\n }\n .md\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .md\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .md\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .md\\:pb-4 {\n padding-block-end: 1rem;\n }\n .md\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .md\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .md\\:pb-7 {\n padding-block-end: 2rem;\n }\n .md\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .md\\:pb-9 {\n padding-block-end: 3rem;\n }\n .md\\:ps-0 {\n padding-inline-start: 0;\n }\n .md\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .md\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .md\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .md\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .md\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .md\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .md\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .md\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .md\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .md\\:gap-0 {\n gap: 0;\n }\n .md\\:gap-1 {\n gap: 0.25rem;\n }\n .md\\:gap-2 {\n gap: 0.5rem;\n }\n .md\\:gap-3 {\n gap: 0.75rem;\n }\n .md\\:gap-4 {\n gap: 1rem;\n }\n .md\\:gap-5 {\n gap: 1.25rem;\n }\n .md\\:gap-6 {\n gap: 1.5rem;\n }\n .md\\:gap-7 {\n gap: 2rem;\n }\n .md\\:gap-8 {\n gap: 2.5rem;\n }\n .md\\:gap-9 {\n gap: 3rem;\n }\n .md\\:row-gap-0 {\n row-gap: 0;\n }\n .md\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .md\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .md\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .md\\:row-gap-4 {\n row-gap: 1rem;\n }\n .md\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .md\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .md\\:row-gap-7 {\n row-gap: 2rem;\n }\n .md\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .md\\:row-gap-9 {\n row-gap: 3rem;\n }\n .md\\:column-gap-0 {\n column-gap: 0;\n }\n .md\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .md\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .md\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .md\\:column-gap-4 {\n column-gap: 1rem;\n }\n .md\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .md\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .md\\:column-gap-7 {\n column-gap: 2rem;\n }\n .md\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .md\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.md\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.md\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.md\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.md\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.md\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.md\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.md\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.md\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.md\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.md\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.md\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.md\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.md\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.md\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.md\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.md\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.md\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.md\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.md\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.md\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.md\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.md\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.md\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.md\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .md\\:text-start {\n text-align: start;\n }\n .md\\:text-end {\n text-align: end;\n }\n .md\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1024px) {\n .lg\\:float-start {\n float: inline-start;\n }\n .lg\\:float-end {\n float: inline-end;\n }\n .lg\\:float-none {\n float: none;\n }\n .lg\\:object-fit-contain {\n object-fit: contain;\n }\n .lg\\:object-fit-cover {\n object-fit: cover;\n }\n .lg\\:object-fit-fill {\n object-fit: fill;\n }\n .lg\\:object-fit-scale {\n object-fit: scale-down;\n }\n .lg\\:object-fit-none {\n object-fit: none;\n }\n .lg\\:d-inline {\n display: inline;\n }\n .lg\\:d-inline-block {\n display: inline-block;\n }\n .lg\\:d-block {\n display: block;\n }\n .lg\\:d-grid {\n display: grid;\n }\n .lg\\:d-inline-grid {\n display: inline-grid;\n }\n .lg\\:d-table {\n display: table;\n }\n .lg\\:d-table-row {\n display: table-row;\n }\n .lg\\:d-table-cell {\n display: table-cell;\n }\n .lg\\:d-flex {\n display: flex;\n }\n .lg\\:d-inline-flex {\n display: inline-flex;\n }\n .lg\\:d-contents {\n display: contents;\n }\n .lg\\:d-flow-root {\n display: flow-root;\n }\n .lg\\:d-none {\n display: none;\n }\n .lg\\:flex-fill {\n flex: 1 1 auto;\n }\n .lg\\:flex-row {\n flex-direction: row;\n }\n .lg\\:flex-column {\n flex-direction: column;\n }\n .lg\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .lg\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .lg\\:flex-grow-0 {\n flex-grow: 0;\n }\n .lg\\:flex-grow-1 {\n flex-grow: 1;\n }\n .lg\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .lg\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .lg\\:flex-wrap {\n flex-wrap: wrap;\n }\n .lg\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .lg\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .lg\\:justify-content-start {\n justify-content: flex-start;\n }\n .lg\\:justify-content-end {\n justify-content: flex-end;\n }\n .lg\\:justify-content-center {\n justify-content: center;\n }\n .lg\\:justify-content-between {\n justify-content: space-between;\n }\n .lg\\:justify-content-around {\n justify-content: space-around;\n }\n .lg\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .lg\\:justify-items-start {\n justify-items: start;\n }\n .lg\\:justify-items-end {\n justify-items: end;\n }\n .lg\\:justify-items-center {\n justify-items: center;\n }\n .lg\\:justify-items-stretch {\n justify-items: stretch;\n }\n .lg\\:justify-self-start {\n justify-self: start;\n }\n .lg\\:justify-self-end {\n justify-self: end;\n }\n .lg\\:justify-self-center {\n justify-self: center;\n }\n .lg\\:align-items-start {\n align-items: flex-start;\n }\n .lg\\:align-items-end {\n align-items: flex-end;\n }\n .lg\\:align-items-center {\n align-items: center;\n }\n .lg\\:align-items-baseline {\n align-items: baseline;\n }\n .lg\\:align-items-stretch {\n align-items: stretch;\n }\n .lg\\:align-content-start {\n align-content: flex-start;\n }\n .lg\\:align-content-end {\n align-content: flex-end;\n }\n .lg\\:align-content-center {\n align-content: center;\n }\n .lg\\:align-content-between {\n align-content: space-between;\n }\n .lg\\:align-content-around {\n align-content: space-around;\n }\n .lg\\:align-content-stretch {\n align-content: stretch;\n }\n .lg\\:align-self-auto {\n align-self: auto;\n }\n .lg\\:align-self-start {\n align-self: flex-start;\n }\n .lg\\:align-self-end {\n align-self: flex-end;\n }\n .lg\\:align-self-center {\n align-self: center;\n }\n .lg\\:align-self-baseline {\n align-self: baseline;\n }\n .lg\\:align-self-stretch {\n align-self: stretch;\n }\n .lg\\:place-items-start {\n place-items: start;\n }\n .lg\\:place-items-end {\n place-items: end;\n }\n .lg\\:place-items-center {\n place-items: center;\n }\n .lg\\:place-items-stretch {\n place-items: stretch;\n }\n .lg\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .lg\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .lg\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .lg\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .lg\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .lg\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .lg\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .lg\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .lg\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .lg\\:order-first {\n order: -1;\n }\n .lg\\:order-0 {\n order: 0;\n }\n .lg\\:order-1 {\n order: 1;\n }\n .lg\\:order-2 {\n order: 2;\n }\n .lg\\:order-3 {\n order: 3;\n }\n .lg\\:order-4 {\n order: 4;\n }\n .lg\\:order-5 {\n order: 5;\n }\n .lg\\:order-last {\n order: 6;\n }\n .lg\\:m-0 {\n margin: 0;\n }\n .lg\\:m-1 {\n margin: 0.25rem;\n }\n .lg\\:m-2 {\n margin: 0.5rem;\n }\n .lg\\:m-3 {\n margin: 0.75rem;\n }\n .lg\\:m-4 {\n margin: 1rem;\n }\n .lg\\:m-5 {\n margin: 1.25rem;\n }\n .lg\\:m-6 {\n margin: 1.5rem;\n }\n .lg\\:m-7 {\n margin: 2rem;\n }\n .lg\\:m-8 {\n margin: 2.5rem;\n }\n .lg\\:m-9 {\n margin: 3rem;\n }\n .lg\\:m-auto {\n margin: auto;\n }\n .lg\\:mx-0 {\n margin-inline: 0;\n }\n .lg\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .lg\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .lg\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .lg\\:mx-4 {\n margin-inline: 1rem;\n }\n .lg\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .lg\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .lg\\:mx-7 {\n margin-inline: 2rem;\n }\n .lg\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .lg\\:mx-9 {\n margin-inline: 3rem;\n }\n .lg\\:mx-auto {\n margin-inline: auto;\n }\n .lg\\:my-0 {\n margin-block: 0;\n }\n .lg\\:my-1 {\n margin-block: 0.25rem;\n }\n .lg\\:my-2 {\n margin-block: 0.5rem;\n }\n .lg\\:my-3 {\n margin-block: 0.75rem;\n }\n .lg\\:my-4 {\n margin-block: 1rem;\n }\n .lg\\:my-5 {\n margin-block: 1.25rem;\n }\n .lg\\:my-6 {\n margin-block: 1.5rem;\n }\n .lg\\:my-7 {\n margin-block: 2rem;\n }\n .lg\\:my-8 {\n margin-block: 2.5rem;\n }\n .lg\\:my-9 {\n margin-block: 3rem;\n }\n .lg\\:my-auto {\n margin-block: auto;\n }\n .lg\\:mt-0 {\n margin-block-start: 0;\n }\n .lg\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .lg\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .lg\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .lg\\:mt-4 {\n margin-block-start: 1rem;\n }\n .lg\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .lg\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .lg\\:mt-7 {\n margin-block-start: 2rem;\n }\n .lg\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .lg\\:mt-9 {\n margin-block-start: 3rem;\n }\n .lg\\:mt-auto {\n margin-block-start: auto;\n }\n .lg\\:me-0 {\n margin-inline-end: 0;\n }\n .lg\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .lg\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .lg\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .lg\\:me-4 {\n margin-inline-end: 1rem;\n }\n .lg\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .lg\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .lg\\:me-7 {\n margin-inline-end: 2rem;\n }\n .lg\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .lg\\:me-9 {\n margin-inline-end: 3rem;\n }\n .lg\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .lg\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .lg\\:me-auto {\n margin-inline-end: auto;\n }\n .lg\\:mb-0 {\n margin-block-end: 0;\n }\n .lg\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .lg\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .lg\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .lg\\:mb-4 {\n margin-block-end: 1rem;\n }\n .lg\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .lg\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .lg\\:mb-7 {\n margin-block-end: 2rem;\n }\n .lg\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .lg\\:mb-9 {\n margin-block-end: 3rem;\n }\n .lg\\:mb-auto {\n margin-block-end: auto;\n }\n .lg\\:ms-0 {\n margin-inline-start: 0;\n }\n .lg\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .lg\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .lg\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .lg\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .lg\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .lg\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .lg\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .lg\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .lg\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .lg\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .lg\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .lg\\:ms-auto {\n margin-inline-start: auto;\n }\n .lg\\:p-0 {\n padding: 0;\n }\n .lg\\:p-1 {\n padding: 0.25rem;\n }\n .lg\\:p-2 {\n padding: 0.5rem;\n }\n .lg\\:p-3 {\n padding: 0.75rem;\n }\n .lg\\:p-4 {\n padding: 1rem;\n }\n .lg\\:p-5 {\n padding: 1.25rem;\n }\n .lg\\:p-6 {\n padding: 1.5rem;\n }\n .lg\\:p-7 {\n padding: 2rem;\n }\n .lg\\:p-8 {\n padding: 2.5rem;\n }\n .lg\\:p-9 {\n padding: 3rem;\n }\n .lg\\:px-0 {\n padding-inline: 0;\n }\n .lg\\:px-1 {\n padding-inline: 0.25rem;\n }\n .lg\\:px-2 {\n padding-inline: 0.5rem;\n }\n .lg\\:px-3 {\n padding-inline: 0.75rem;\n }\n .lg\\:px-4 {\n padding-inline: 1rem;\n }\n .lg\\:px-5 {\n padding-inline: 1.25rem;\n }\n .lg\\:px-6 {\n padding-inline: 1.5rem;\n }\n .lg\\:px-7 {\n padding-inline: 2rem;\n }\n .lg\\:px-8 {\n padding-inline: 2.5rem;\n }\n .lg\\:px-9 {\n padding-inline: 3rem;\n }\n .lg\\:py-0 {\n padding-block: 0;\n }\n .lg\\:py-1 {\n padding-block: 0.25rem;\n }\n .lg\\:py-2 {\n padding-block: 0.5rem;\n }\n .lg\\:py-3 {\n padding-block: 0.75rem;\n }\n .lg\\:py-4 {\n padding-block: 1rem;\n }\n .lg\\:py-5 {\n padding-block: 1.25rem;\n }\n .lg\\:py-6 {\n padding-block: 1.5rem;\n }\n .lg\\:py-7 {\n padding-block: 2rem;\n }\n .lg\\:py-8 {\n padding-block: 2.5rem;\n }\n .lg\\:py-9 {\n padding-block: 3rem;\n }\n .lg\\:pt-0 {\n padding-block-start: 0;\n }\n .lg\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .lg\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .lg\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .lg\\:pt-4 {\n padding-block-start: 1rem;\n }\n .lg\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .lg\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .lg\\:pt-7 {\n padding-block-start: 2rem;\n }\n .lg\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .lg\\:pt-9 {\n padding-block-start: 3rem;\n }\n .lg\\:pe-0 {\n padding-inline-end: 0;\n }\n .lg\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .lg\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .lg\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .lg\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .lg\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .lg\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .lg\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .lg\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .lg\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .lg\\:pb-0 {\n padding-block-end: 0;\n }\n .lg\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .lg\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .lg\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .lg\\:pb-4 {\n padding-block-end: 1rem;\n }\n .lg\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .lg\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .lg\\:pb-7 {\n padding-block-end: 2rem;\n }\n .lg\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .lg\\:pb-9 {\n padding-block-end: 3rem;\n }\n .lg\\:ps-0 {\n padding-inline-start: 0;\n }\n .lg\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .lg\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .lg\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .lg\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .lg\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .lg\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .lg\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .lg\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .lg\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .lg\\:gap-0 {\n gap: 0;\n }\n .lg\\:gap-1 {\n gap: 0.25rem;\n }\n .lg\\:gap-2 {\n gap: 0.5rem;\n }\n .lg\\:gap-3 {\n gap: 0.75rem;\n }\n .lg\\:gap-4 {\n gap: 1rem;\n }\n .lg\\:gap-5 {\n gap: 1.25rem;\n }\n .lg\\:gap-6 {\n gap: 1.5rem;\n }\n .lg\\:gap-7 {\n gap: 2rem;\n }\n .lg\\:gap-8 {\n gap: 2.5rem;\n }\n .lg\\:gap-9 {\n gap: 3rem;\n }\n .lg\\:row-gap-0 {\n row-gap: 0;\n }\n .lg\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .lg\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .lg\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .lg\\:row-gap-4 {\n row-gap: 1rem;\n }\n .lg\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .lg\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .lg\\:row-gap-7 {\n row-gap: 2rem;\n }\n .lg\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .lg\\:row-gap-9 {\n row-gap: 3rem;\n }\n .lg\\:column-gap-0 {\n column-gap: 0;\n }\n .lg\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .lg\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .lg\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .lg\\:column-gap-4 {\n column-gap: 1rem;\n }\n .lg\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .lg\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .lg\\:column-gap-7 {\n column-gap: 2rem;\n }\n .lg\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .lg\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.lg\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.lg\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.lg\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.lg\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.lg\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.lg\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.lg\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.lg\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.lg\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.lg\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.lg\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.lg\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.lg\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.lg\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.lg\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.lg\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.lg\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.lg\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.lg\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.lg\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.lg\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.lg\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.lg\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.lg\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .lg\\:text-start {\n text-align: start;\n }\n .lg\\:text-end {\n text-align: end;\n }\n .lg\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1280px) {\n .xl\\:float-start {\n float: inline-start;\n }\n .xl\\:float-end {\n float: inline-end;\n }\n .xl\\:float-none {\n float: none;\n }\n .xl\\:object-fit-contain {\n object-fit: contain;\n }\n .xl\\:object-fit-cover {\n object-fit: cover;\n }\n .xl\\:object-fit-fill {\n object-fit: fill;\n }\n .xl\\:object-fit-scale {\n object-fit: scale-down;\n }\n .xl\\:object-fit-none {\n object-fit: none;\n }\n .xl\\:d-inline {\n display: inline;\n }\n .xl\\:d-inline-block {\n display: inline-block;\n }\n .xl\\:d-block {\n display: block;\n }\n .xl\\:d-grid {\n display: grid;\n }\n .xl\\:d-inline-grid {\n display: inline-grid;\n }\n .xl\\:d-table {\n display: table;\n }\n .xl\\:d-table-row {\n display: table-row;\n }\n .xl\\:d-table-cell {\n display: table-cell;\n }\n .xl\\:d-flex {\n display: flex;\n }\n .xl\\:d-inline-flex {\n display: inline-flex;\n }\n .xl\\:d-contents {\n display: contents;\n }\n .xl\\:d-flow-root {\n display: flow-root;\n }\n .xl\\:d-none {\n display: none;\n }\n .xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .xl\\:flex-row {\n flex-direction: row;\n }\n .xl\\:flex-column {\n flex-direction: column;\n }\n .xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .xl\\:justify-content-center {\n justify-content: center;\n }\n .xl\\:justify-content-between {\n justify-content: space-between;\n }\n .xl\\:justify-content-around {\n justify-content: space-around;\n }\n .xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .xl\\:justify-items-start {\n justify-items: start;\n }\n .xl\\:justify-items-end {\n justify-items: end;\n }\n .xl\\:justify-items-center {\n justify-items: center;\n }\n .xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .xl\\:justify-self-start {\n justify-self: start;\n }\n .xl\\:justify-self-end {\n justify-self: end;\n }\n .xl\\:justify-self-center {\n justify-self: center;\n }\n .xl\\:align-items-start {\n align-items: flex-start;\n }\n .xl\\:align-items-end {\n align-items: flex-end;\n }\n .xl\\:align-items-center {\n align-items: center;\n }\n .xl\\:align-items-baseline {\n align-items: baseline;\n }\n .xl\\:align-items-stretch {\n align-items: stretch;\n }\n .xl\\:align-content-start {\n align-content: flex-start;\n }\n .xl\\:align-content-end {\n align-content: flex-end;\n }\n .xl\\:align-content-center {\n align-content: center;\n }\n .xl\\:align-content-between {\n align-content: space-between;\n }\n .xl\\:align-content-around {\n align-content: space-around;\n }\n .xl\\:align-content-stretch {\n align-content: stretch;\n }\n .xl\\:align-self-auto {\n align-self: auto;\n }\n .xl\\:align-self-start {\n align-self: flex-start;\n }\n .xl\\:align-self-end {\n align-self: flex-end;\n }\n .xl\\:align-self-center {\n align-self: center;\n }\n .xl\\:align-self-baseline {\n align-self: baseline;\n }\n .xl\\:align-self-stretch {\n align-self: stretch;\n }\n .xl\\:place-items-start {\n place-items: start;\n }\n .xl\\:place-items-end {\n place-items: end;\n }\n .xl\\:place-items-center {\n place-items: center;\n }\n .xl\\:place-items-stretch {\n place-items: stretch;\n }\n .xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .xl\\:order-first {\n order: -1;\n }\n .xl\\:order-0 {\n order: 0;\n }\n .xl\\:order-1 {\n order: 1;\n }\n .xl\\:order-2 {\n order: 2;\n }\n .xl\\:order-3 {\n order: 3;\n }\n .xl\\:order-4 {\n order: 4;\n }\n .xl\\:order-5 {\n order: 5;\n }\n .xl\\:order-last {\n order: 6;\n }\n .xl\\:m-0 {\n margin: 0;\n }\n .xl\\:m-1 {\n margin: 0.25rem;\n }\n .xl\\:m-2 {\n margin: 0.5rem;\n }\n .xl\\:m-3 {\n margin: 0.75rem;\n }\n .xl\\:m-4 {\n margin: 1rem;\n }\n .xl\\:m-5 {\n margin: 1.25rem;\n }\n .xl\\:m-6 {\n margin: 1.5rem;\n }\n .xl\\:m-7 {\n margin: 2rem;\n }\n .xl\\:m-8 {\n margin: 2.5rem;\n }\n .xl\\:m-9 {\n margin: 3rem;\n }\n .xl\\:m-auto {\n margin: auto;\n }\n .xl\\:mx-0 {\n margin-inline: 0;\n }\n .xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .xl\\:mx-auto {\n margin-inline: auto;\n }\n .xl\\:my-0 {\n margin-block: 0;\n }\n .xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .xl\\:my-4 {\n margin-block: 1rem;\n }\n .xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .xl\\:my-7 {\n margin-block: 2rem;\n }\n .xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .xl\\:my-9 {\n margin-block: 3rem;\n }\n .xl\\:my-auto {\n margin-block: auto;\n }\n .xl\\:mt-0 {\n margin-block-start: 0;\n }\n .xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .xl\\:mt-auto {\n margin-block-start: auto;\n }\n .xl\\:me-0 {\n margin-inline-end: 0;\n }\n .xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .xl\\:me-auto {\n margin-inline-end: auto;\n }\n .xl\\:mb-0 {\n margin-block-end: 0;\n }\n .xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .xl\\:mb-auto {\n margin-block-end: auto;\n }\n .xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .xl\\:p-0 {\n padding: 0;\n }\n .xl\\:p-1 {\n padding: 0.25rem;\n }\n .xl\\:p-2 {\n padding: 0.5rem;\n }\n .xl\\:p-3 {\n padding: 0.75rem;\n }\n .xl\\:p-4 {\n padding: 1rem;\n }\n .xl\\:p-5 {\n padding: 1.25rem;\n }\n .xl\\:p-6 {\n padding: 1.5rem;\n }\n .xl\\:p-7 {\n padding: 2rem;\n }\n .xl\\:p-8 {\n padding: 2.5rem;\n }\n .xl\\:p-9 {\n padding: 3rem;\n }\n .xl\\:px-0 {\n padding-inline: 0;\n }\n .xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .xl\\:px-4 {\n padding-inline: 1rem;\n }\n .xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .xl\\:px-7 {\n padding-inline: 2rem;\n }\n .xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .xl\\:px-9 {\n padding-inline: 3rem;\n }\n .xl\\:py-0 {\n padding-block: 0;\n }\n .xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .xl\\:py-4 {\n padding-block: 1rem;\n }\n .xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .xl\\:py-7 {\n padding-block: 2rem;\n }\n .xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .xl\\:py-9 {\n padding-block: 3rem;\n }\n .xl\\:pt-0 {\n padding-block-start: 0;\n }\n .xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .xl\\:pb-0 {\n padding-block-end: 0;\n }\n .xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .xl\\:gap-0 {\n gap: 0;\n }\n .xl\\:gap-1 {\n gap: 0.25rem;\n }\n .xl\\:gap-2 {\n gap: 0.5rem;\n }\n .xl\\:gap-3 {\n gap: 0.75rem;\n }\n .xl\\:gap-4 {\n gap: 1rem;\n }\n .xl\\:gap-5 {\n gap: 1.25rem;\n }\n .xl\\:gap-6 {\n gap: 1.5rem;\n }\n .xl\\:gap-7 {\n gap: 2rem;\n }\n .xl\\:gap-8 {\n gap: 2.5rem;\n }\n .xl\\:gap-9 {\n gap: 3rem;\n }\n .xl\\:row-gap-0 {\n row-gap: 0;\n }\n .xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .xl\\:column-gap-0 {\n column-gap: 0;\n }\n .xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.xl\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.xl\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.xl\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.xl\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.xl\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.xl\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.xl\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.xl\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.xl\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.xl\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.xl\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.xl\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.xl\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.xl\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.xl\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.xl\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.xl\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.xl\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.xl\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.xl\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.xl\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.xl\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.xl\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.xl\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .xl\\:text-start {\n text-align: start;\n }\n .xl\\:text-end {\n text-align: end;\n }\n .xl\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:float-start {\n float: inline-start;\n }\n .\\32 xl\\:float-end {\n float: inline-end;\n }\n .\\32 xl\\:float-none {\n float: none;\n }\n .\\32 xl\\:object-fit-contain {\n object-fit: contain;\n }\n .\\32 xl\\:object-fit-cover {\n object-fit: cover;\n }\n .\\32 xl\\:object-fit-fill {\n object-fit: fill;\n }\n .\\32 xl\\:object-fit-scale {\n object-fit: scale-down;\n }\n .\\32 xl\\:object-fit-none {\n object-fit: none;\n }\n .\\32 xl\\:d-inline {\n display: inline;\n }\n .\\32 xl\\:d-inline-block {\n display: inline-block;\n }\n .\\32 xl\\:d-block {\n display: block;\n }\n .\\32 xl\\:d-grid {\n display: grid;\n }\n .\\32 xl\\:d-inline-grid {\n display: inline-grid;\n }\n .\\32 xl\\:d-table {\n display: table;\n }\n .\\32 xl\\:d-table-row {\n display: table-row;\n }\n .\\32 xl\\:d-table-cell {\n display: table-cell;\n }\n .\\32 xl\\:d-flex {\n display: flex;\n }\n .\\32 xl\\:d-inline-flex {\n display: inline-flex;\n }\n .\\32 xl\\:d-contents {\n display: contents;\n }\n .\\32 xl\\:d-flow-root {\n display: flow-root;\n }\n .\\32 xl\\:d-none {\n display: none;\n }\n .\\32 xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .\\32 xl\\:flex-row {\n flex-direction: row;\n }\n .\\32 xl\\:flex-column {\n flex-direction: column;\n }\n .\\32 xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .\\32 xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .\\32 xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .\\32 xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .\\32 xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .\\32 xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .\\32 xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .\\32 xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .\\32 xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .\\32 xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .\\32 xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .\\32 xl\\:justify-content-center {\n justify-content: center;\n }\n .\\32 xl\\:justify-content-between {\n justify-content: space-between;\n }\n .\\32 xl\\:justify-content-around {\n justify-content: space-around;\n }\n .\\32 xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .\\32 xl\\:justify-items-start {\n justify-items: start;\n }\n .\\32 xl\\:justify-items-end {\n justify-items: end;\n }\n .\\32 xl\\:justify-items-center {\n justify-items: center;\n }\n .\\32 xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .\\32 xl\\:justify-self-start {\n justify-self: start;\n }\n .\\32 xl\\:justify-self-end {\n justify-self: end;\n }\n .\\32 xl\\:justify-self-center {\n justify-self: center;\n }\n .\\32 xl\\:align-items-start {\n align-items: flex-start;\n }\n .\\32 xl\\:align-items-end {\n align-items: flex-end;\n }\n .\\32 xl\\:align-items-center {\n align-items: center;\n }\n .\\32 xl\\:align-items-baseline {\n align-items: baseline;\n }\n .\\32 xl\\:align-items-stretch {\n align-items: stretch;\n }\n .\\32 xl\\:align-content-start {\n align-content: flex-start;\n }\n .\\32 xl\\:align-content-end {\n align-content: flex-end;\n }\n .\\32 xl\\:align-content-center {\n align-content: center;\n }\n .\\32 xl\\:align-content-between {\n align-content: space-between;\n }\n .\\32 xl\\:align-content-around {\n align-content: space-around;\n }\n .\\32 xl\\:align-content-stretch {\n align-content: stretch;\n }\n .\\32 xl\\:align-self-auto {\n align-self: auto;\n }\n .\\32 xl\\:align-self-start {\n align-self: flex-start;\n }\n .\\32 xl\\:align-self-end {\n align-self: flex-end;\n }\n .\\32 xl\\:align-self-center {\n align-self: center;\n }\n .\\32 xl\\:align-self-baseline {\n align-self: baseline;\n }\n .\\32 xl\\:align-self-stretch {\n align-self: stretch;\n }\n .\\32 xl\\:place-items-start {\n place-items: start;\n }\n .\\32 xl\\:place-items-end {\n place-items: end;\n }\n .\\32 xl\\:place-items-center {\n place-items: center;\n }\n .\\32 xl\\:place-items-stretch {\n place-items: stretch;\n }\n .\\32 xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .\\32 xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .\\32 xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .\\32 xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .\\32 xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .\\32 xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .\\32 xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .\\32 xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .\\32 xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .\\32 xl\\:order-first {\n order: -1;\n }\n .\\32 xl\\:order-0 {\n order: 0;\n }\n .\\32 xl\\:order-1 {\n order: 1;\n }\n .\\32 xl\\:order-2 {\n order: 2;\n }\n .\\32 xl\\:order-3 {\n order: 3;\n }\n .\\32 xl\\:order-4 {\n order: 4;\n }\n .\\32 xl\\:order-5 {\n order: 5;\n }\n .\\32 xl\\:order-last {\n order: 6;\n }\n .\\32 xl\\:m-0 {\n margin: 0;\n }\n .\\32 xl\\:m-1 {\n margin: 0.25rem;\n }\n .\\32 xl\\:m-2 {\n margin: 0.5rem;\n }\n .\\32 xl\\:m-3 {\n margin: 0.75rem;\n }\n .\\32 xl\\:m-4 {\n margin: 1rem;\n }\n .\\32 xl\\:m-5 {\n margin: 1.25rem;\n }\n .\\32 xl\\:m-6 {\n margin: 1.5rem;\n }\n .\\32 xl\\:m-7 {\n margin: 2rem;\n }\n .\\32 xl\\:m-8 {\n margin: 2.5rem;\n }\n .\\32 xl\\:m-9 {\n margin: 3rem;\n }\n .\\32 xl\\:m-auto {\n margin: auto;\n }\n .\\32 xl\\:mx-0 {\n margin-inline: 0;\n }\n .\\32 xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .\\32 xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .\\32 xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .\\32 xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .\\32 xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .\\32 xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .\\32 xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .\\32 xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .\\32 xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .\\32 xl\\:mx-auto {\n margin-inline: auto;\n }\n .\\32 xl\\:my-0 {\n margin-block: 0;\n }\n .\\32 xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .\\32 xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .\\32 xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .\\32 xl\\:my-4 {\n margin-block: 1rem;\n }\n .\\32 xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .\\32 xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .\\32 xl\\:my-7 {\n margin-block: 2rem;\n }\n .\\32 xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .\\32 xl\\:my-9 {\n margin-block: 3rem;\n }\n .\\32 xl\\:my-auto {\n margin-block: auto;\n }\n .\\32 xl\\:mt-0 {\n margin-block-start: 0;\n }\n .\\32 xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .\\32 xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .\\32 xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .\\32 xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .\\32 xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .\\32 xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .\\32 xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .\\32 xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .\\32 xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .\\32 xl\\:mt-auto {\n margin-block-start: auto;\n }\n .\\32 xl\\:me-0 {\n margin-inline-end: 0;\n }\n .\\32 xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .\\32 xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .\\32 xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .\\32 xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .\\32 xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .\\32 xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .\\32 xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .\\32 xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .\\32 xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .\\32 xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .\\32 xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .\\32 xl\\:me-auto {\n margin-inline-end: auto;\n }\n .\\32 xl\\:mb-0 {\n margin-block-end: 0;\n }\n .\\32 xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .\\32 xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .\\32 xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .\\32 xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .\\32 xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .\\32 xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .\\32 xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .\\32 xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .\\32 xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .\\32 xl\\:mb-auto {\n margin-block-end: auto;\n }\n .\\32 xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .\\32 xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .\\32 xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .\\32 xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .\\32 xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .\\32 xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .\\32 xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .\\32 xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .\\32 xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .\\32 xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .\\32 xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .\\32 xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .\\32 xl\\:p-0 {\n padding: 0;\n }\n .\\32 xl\\:p-1 {\n padding: 0.25rem;\n }\n .\\32 xl\\:p-2 {\n padding: 0.5rem;\n }\n .\\32 xl\\:p-3 {\n padding: 0.75rem;\n }\n .\\32 xl\\:p-4 {\n padding: 1rem;\n }\n .\\32 xl\\:p-5 {\n padding: 1.25rem;\n }\n .\\32 xl\\:p-6 {\n padding: 1.5rem;\n }\n .\\32 xl\\:p-7 {\n padding: 2rem;\n }\n .\\32 xl\\:p-8 {\n padding: 2.5rem;\n }\n .\\32 xl\\:p-9 {\n padding: 3rem;\n }\n .\\32 xl\\:px-0 {\n padding-inline: 0;\n }\n .\\32 xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .\\32 xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .\\32 xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .\\32 xl\\:px-4 {\n padding-inline: 1rem;\n }\n .\\32 xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .\\32 xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .\\32 xl\\:px-7 {\n padding-inline: 2rem;\n }\n .\\32 xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .\\32 xl\\:px-9 {\n padding-inline: 3rem;\n }\n .\\32 xl\\:py-0 {\n padding-block: 0;\n }\n .\\32 xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .\\32 xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .\\32 xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .\\32 xl\\:py-4 {\n padding-block: 1rem;\n }\n .\\32 xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .\\32 xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .\\32 xl\\:py-7 {\n padding-block: 2rem;\n }\n .\\32 xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .\\32 xl\\:py-9 {\n padding-block: 3rem;\n }\n .\\32 xl\\:pt-0 {\n padding-block-start: 0;\n }\n .\\32 xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .\\32 xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .\\32 xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .\\32 xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .\\32 xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .\\32 xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .\\32 xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .\\32 xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .\\32 xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .\\32 xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .\\32 xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .\\32 xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .\\32 xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .\\32 xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .\\32 xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .\\32 xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .\\32 xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .\\32 xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .\\32 xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .\\32 xl\\:pb-0 {\n padding-block-end: 0;\n }\n .\\32 xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .\\32 xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .\\32 xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .\\32 xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .\\32 xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .\\32 xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .\\32 xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .\\32 xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .\\32 xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .\\32 xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .\\32 xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .\\32 xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .\\32 xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .\\32 xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .\\32 xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .\\32 xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .\\32 xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .\\32 xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .\\32 xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .\\32 xl\\:gap-0 {\n gap: 0;\n }\n .\\32 xl\\:gap-1 {\n gap: 0.25rem;\n }\n .\\32 xl\\:gap-2 {\n gap: 0.5rem;\n }\n .\\32 xl\\:gap-3 {\n gap: 0.75rem;\n }\n .\\32 xl\\:gap-4 {\n gap: 1rem;\n }\n .\\32 xl\\:gap-5 {\n gap: 1.25rem;\n }\n .\\32 xl\\:gap-6 {\n gap: 1.5rem;\n }\n .\\32 xl\\:gap-7 {\n gap: 2rem;\n }\n .\\32 xl\\:gap-8 {\n gap: 2.5rem;\n }\n .\\32 xl\\:gap-9 {\n gap: 3rem;\n }\n .\\32 xl\\:row-gap-0 {\n row-gap: 0;\n }\n .\\32 xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .\\32 xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .\\32 xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .\\32 xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .\\32 xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .\\32 xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .\\32 xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .\\32 xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .\\32 xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .\\32 xl\\:column-gap-0 {\n column-gap: 0;\n }\n .\\32 xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .\\32 xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .\\32 xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .\\32 xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .\\32 xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .\\32 xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .\\32 xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .\\32 xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .\\32 xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.\\32 xl\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.\\32 xl\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.\\32 xl\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.\\32 xl\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.\\32 xl\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.\\32 xl\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.\\32 xl\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.\\32 xl\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.\\32 xl\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.\\32 xl\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.\\32 xl\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.\\32 xl\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.\\32 xl\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.\\32 xl\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.\\32 xl\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.\\32 xl\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.\\32 xl\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.\\32 xl\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.\\32 xl\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.\\32 xl\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.\\32 xl\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.\\32 xl\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.\\32 xl\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.\\32 xl\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .\\32 xl\\:text-start {\n text-align: start;\n }\n .\\32 xl\\:text-end {\n text-align: end;\n }\n .\\32 xl\\:text-center {\n text-align: center;\n }\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */\n","$file: \"\" !default;\n\n/*!\n * Bootstrap #{$file} v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n","// stylelint-disable hue-degree-notation, @stylistic/number-leading-zero\n\n@use \"sass:map\";\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n// Easily convert colors to oklch() with https://oklch.com/\n\n$white: #fff !default;\n$black: #000 !default;\n\n// scss-docs-start colors-list\n$blue: oklch(60% 0.24 240) !default;\n$indigo: oklch(56% 0.26 288) !default;\n$violet: oklch(56% 0.24 300) !default;\n$purple: oklch(56% 0.24 320) !default;\n$pink: oklch(60% 0.22 4) !default;\n$red: oklch(60% 0.22 20) !default;\n$orange: oklch(70% 0.22 52) !default;\n$amber: oklch(79% 0.2 78) !default;\n$yellow: oklch(88% 0.24 88) !default;\n$lime: oklch(65% 0.24 135) !default;\n$green: oklch(64% 0.22 160) !default;\n$teal: oklch(68% 0.22 190) !default;\n$cyan: oklch(69% 0.22 220) !default;\n$brown: oklch(60% 0.12 54) !default;\n$gray: oklch(60% 0.02 245) !default;\n$pewter: oklch(65% 0.01 290) !default;\n// scss-docs-end colors-list\n\n// scss-docs-start colors-map\n$colors: () !default;\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: defaults(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"violet\": $violet,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"amber\": $amber,\n \"yellow\": $yellow,\n \"lime\": $lime,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"brown\": $brown,\n \"gray\": $gray,\n \"pewter\": $pewter,\n ),\n $colors\n);\n// scss-docs-end colors-map\n\n// scss-docs-start color-mix-options\n$color-mix-space: lab !default;\n$tint-color: var(--white) !default;\n$shade-color: var(--black) !default;\n\n$color-tints: (\n \"025\": 94%,\n \"050\": 90%,\n \"100\": 80%,\n \"200\": 60%,\n \"300\": 40%,\n \"400\": 20%,\n) !default;\n\n$color-shades: (\n \"600\": 16%,\n \"700\": 32%,\n \"800\": 48%,\n \"900\": 64%,\n \"950\": 76%,\n \"975\": 88%,\n) !default;\n// scss-docs-end color-mix-options\n\n// scss-docs-start color-tokens\n$color-tokens: () !default;\n\n$-color-defaults: () !default;\n@each $color, $value in $colors {\n @each $stop, $percent in $color-tints {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$tint-color} #{$percent}, #{$value}));\n }\n $-color-defaults: map.set($-color-defaults, --#{$color}-500, #{$value});\n @each $stop, $percent in $color-shades {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$shade-color} #{$percent}, #{$value}));\n }\n}\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$color-tokens: defaults($-color-defaults, $color-tokens);\n// scss-docs-end color-tokens\n\n:root {\n @include tokens($color-tokens);\n}\n","// Mixin to output tokens as CSS custom properties\n\n// scss-docs-start mixin-tokens\n@mixin tokens($map) {\n @each $prop, $value in $map {\n #{$prop}: #{$value};\n }\n}\n// scss-docs-end mixin-tokens\n","@use \"sass:map\";\n@use \"colors\" as *;\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"theme\" as *;\n@use \"mixins/tokens\" as *;\n// mdo-do: do we need theme?\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n\n$root-tokens: () !default;\n\n// scss-docs-start root-tokens\n// stylelint-disable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: defaults(\n (\n --black: #{$black},\n --white: #{$white},\n\n --gradient: #{$gradient},\n\n // scss-docs-start root-font-weight-variables\n --font-weight-lighter: lighter,\n --font-weight-light: 300,\n --font-weight-normal: 400,\n --font-weight-medium: 500,\n --font-weight-semibold: 600,\n --font-weight-bold: 700,\n --font-weight-bolder: bolder,\n // scss-docs-end root-font-weight-variables\n\n // scss-docs-start root-body-variables\n --body-font-family: system-ui,\n --body-font-size: var(--font-size-base),\n --body-font-weight: #{$font-weight-base},\n --body-line-height: #{$line-height-base},\n\n --heading-color: #{$headings-color},\n\n --hr-border-color: var(--border-color),\n\n --link-color: light-dark(var(--primary-base), var(--primary-fg)),\n --link-decoration: #{$link-decoration},\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000),\n\n --font-mono: \"SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace\",\n --code-font-size: 95%,\n --code-color: var(--fg-2),\n\n // scss-docs-start root-border-var\n --border-width: #{$border-width},\n --border-style: #{$border-style},\n --border-color: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-700)),\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent),\n // scss-docs-end root-border-var\n\n // scss-docs-start root-box-shadow-variables\n --box-shadow: 0 .5rem 1rem rgb(0 0 0 / 15%),\n --box-shadow-sm: 0 .125rem .25rem rgb(0 0 0 / 7.5%),\n --box-shadow-lg: 0 1rem 3rem rgb(0 0 0 / 17.5%),\n --box-shadow-inset: inset 0 1px 2px rgb(0 0 0 / 7.5%),\n // scss-docs-end root-box-shadow-variables\n\n --spacer: 1rem,\n\n // scss-docs-start root-focus-variables\n --focus-ring-width: 3px,\n --focus-ring-offset: 1px,\n --focus-ring-color: var(--primary-focus-ring),\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color),\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-variables\n --control-checked-bg: var(--primary-base),\n --control-checked-border-color: var(--control-checked-bg),\n --control-active-bg: var(--primary-base),\n --control-active-border-color: var(--control-active-bg),\n --control-disabled-bg: var(--bg-3),\n --control-disabled-opacity: .65,\n\n --btn-input-fg: var(--fg-body),\n --btn-input-bg: var(--bg-body),\n\n --btn-input-min-height: 2.375rem,\n --btn-input-padding-y: .375rem,\n --btn-input-padding-x: .75rem,\n --btn-input-font-size: var(--font-size-base),\n --btn-input-line-height: var(--line-height-base),\n --btn-input-border-radius: var(--radius-5),\n\n --btn-input-xs-min-height: 1.5rem,\n --btn-input-xs-padding-y: .125rem,\n --btn-input-xs-padding-x: .5rem,\n --btn-input-xs-font-size: var(--font-size-xs),\n --btn-input-xs-line-height: 1.125,\n --btn-input-xs-border-radius: var(--radius-5),\n\n --btn-input-sm-min-height: 2rem,\n --btn-input-sm-padding-y: .25rem,\n --btn-input-sm-padding-x: .625rem,\n --btn-input-sm-font-size: var(--font-size-sm),\n --btn-input-sm-line-height: var(--line-height-sm),\n --btn-input-sm-border-radius: var(--radius-5),\n\n --btn-input-lg-min-height: 2.75rem,\n --btn-input-lg-padding-y: .5rem,\n --btn-input-lg-padding-x: 1rem,\n --btn-input-lg-font-size: var(--font-size-md),\n --btn-input-lg-line-height: var(--line-height-md),\n --btn-input-lg-border-radius: var(--radius-7),\n // scss-docs-end root-form-variables\n ),\n $root-tokens\n);\n// stylelint-enable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// scss-docs-end root-tokens\n\n// scss-docs-start root-font-size-loop\n// Generate font-size and line-height tokens\n@each $name, $props in $font-sizes {\n $root-tokens: map.set($root-tokens, --font-size-#{$name}, map.get($props, \"font-size\"));\n $root-tokens: map.set($root-tokens, --line-height-#{$name}, map.get($props, \"line-height\"));\n}\n// scss-docs-end root-font-size-loop\n\n// scss-docs-start root-theme-tokens\n// Generate semantic theme colors\n@each $color-name, $color-map in $theme-colors {\n @each $key, $value in $color-map {\n $root-tokens: map.set($root-tokens, --#{$color-name}-#{$key}, $value);\n }\n}\n\n// Generate background tokens\n@each $key, $value in $theme-bgs {\n $root-tokens: map.set($root-tokens, --bg-#{$key}, $value);\n}\n\n// Generate foreground tokens\n@each $key, $value in $theme-fgs {\n $root-tokens: map.set($root-tokens, --fg-#{$key}, $value);\n}\n\n// Generate border tokens\n@each $key, $value in $theme-borders {\n $root-tokens: map.set($root-tokens, --border-#{$key}, $value);\n}\n// scss-docs-end root-theme-tokens\n\n// Generate breakpoint tokens\n@each $name, $value in $breakpoints {\n $root-tokens: map.set($root-tokens, --breakpoint-#{$name}, $value);\n}\n\n// Generate spacer tokens\n// scss-docs-start root-spacer-loop\n@each $key, $value in $spacers {\n $root-tokens: map.set($root-tokens, --spacer-#{$key}, $value);\n}\n// scss-docs-end root-spacer-loop\n\n// Generate radius tokens\n// scss-docs-start root-radius-loop\n@each $key, $value in $radii {\n $root-tokens: map.set($root-tokens, --radius-#{$key}, $value);\n}\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: map.set($root-tokens, --radius-pill, 50rem);\n// scss-docs-end root-radius-loop\n\n:root {\n @include tokens($root-tokens);\n\n color-scheme: light dark;\n // Always reserve the viewport scrollbar gutter so layout doesn't shift\n // when overflow: hidden is applied (e.g. when a dialog opens on Windows).\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=\"dark\"] {\n color-scheme: dark;\n}\n\n[data-bs-theme=\"light\"] {\n color-scheme: light;\n}\n","@use \"../config\" as *;\n@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n$reboot-kbd-tokens: () !default;\n$reboot-mark-tokens: () !default;\n\n// scss-docs-start reboot-kbd-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$reboot-kbd-tokens: defaults(\n (\n --kbd-padding-y: .125rem,\n --kbd-padding-x: .25rem,\n --kbd-font-size: var(--font-size-xs),\n --kbd-color: var(--bg-body),\n --kbd-bg: var(--fg-2),\n --kbd-border-radius: var(--radius-5),\n ),\n $reboot-kbd-tokens\n);\n// scss-docs-end reboot-kbd-tokens\n\n// scss-docs-start reboot-mark-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$reboot-mark-tokens: defaults(\n (\n --mark-padding: .1875em,\n --mark-color: var(--fg-body),\n --mark-bg: light-dark(var(--yellow-100), var(--yellow-900)),\n ),\n $reboot-mark-tokens\n);\n// scss-docs-end reboot-mark-tokens\n\n@layer reboot {\n // Reboot\n //\n // Normalization of HTML elements, manually forked from Normalize.css to remove\n // styles targeting irrelevant browsers while applying new styles.\n //\n // Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n // Document\n //\n // Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n // Root\n //\n // Ability to the value of the root font sizes, affecting the value of `rem`.\n // null by default, thus nothing is generated.\n\n :root {\n // Assume browser default font-size of 16px, or a user's preference\n accent-color: var(--primary-base);\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n }\n\n // Body\n //\n // 1. Remove the margin in all browsers.\n // 2. As a best practice, apply a default `background-color`.\n // 3. Prevent adjustments of font size after orientation changes in iOS.\n // 4. Change the default tap highlight to be completely transparent in iOS.\n\n // scss-docs-start reboot-body-rules\n body {\n margin: 0; // 1\n font-family: var(--body-font-family);\n font-size: var(--body-font-size);\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n color: var(--fg-body);\n text-align: var(--body-text-align);\n background-color: var(--bg-body); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: transparent; // 4\n }\n // scss-docs-end reboot-body-rules\n\n hr {\n margin: var(--hr-margin-y, var(--spacer)) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n\n // Typography\n //\n // 1. Remove top margins from headings\n // By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n // margin for easier control within type scales as it avoids margin collapsing.\n\n %heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: var(--heading-color);\n }\n\n h1,\n .h1 {\n @extend %heading;\n font-size: var(--font-size-3xl);\n }\n\n h2,\n .h2 {\n @extend %heading;\n font-size: var(--font-size-2xl);\n }\n\n h3,\n .h3 {\n @extend %heading;\n font-size: var(--font-size-xl);\n }\n\n h4,\n .h4 {\n @extend %heading;\n font-size: var(--font-size-lg);\n }\n\n h5,\n .h5 {\n @extend %heading;\n font-size: var(--font-size-md);\n }\n\n h6,\n .h6 {\n @extend %heading;\n font-size: var(--font-size-sm);\n }\n\n // Reset margins on paragraphs\n //\n // Similarly, the top margin on `<p>`s get reset. However, we also reset the\n // bottom margin to use `rem` units instead of `em`.\n\n p {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n }\n\n // Abbreviations\n //\n // 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n // 2. Add explicit cursor to indicate changed behavior.\n // 3. Prevent the text-decoration to be skipped.\n\n abbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n }\n\n // Address\n\n address {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n }\n\n // Lists\n\n ol,\n ul {\n padding-inline-start: 2rem;\n }\n\n ol,\n ul,\n dl {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n\n ol ol,\n ul ul,\n ol ul,\n ul ol {\n margin-bottom: 0;\n }\n\n dt {\n font-weight: $dt-font-weight;\n }\n\n // 1. Undo browser default\n\n dd {\n margin-inline-start: 0; // 1\n margin-bottom: .5rem;\n }\n\n // Blockquote\n\n blockquote {\n margin: 0 0 1rem;\n > * {\n margin-block: 0;\n }\n }\n\n // Strong\n //\n // Add the correct font weight in Chrome, Edge, and Safari\n\n b,\n strong {\n font-weight: $font-weight-bolder;\n }\n\n // Small\n //\n // Add the correct font size in all browsers\n\n small,\n .small {\n font-size: var(--small-font-size, 87.5%);\n }\n\n // Mark\n\n mark,\n .mark {\n @include tokens($reboot-mark-tokens);\n padding: var(--mark-padding);\n color: var(--mark-color);\n background-color: var(--mark-bg);\n }\n\n // Sub and Sup\n //\n // Prevent `sub` and `sup` elements from affecting the line height in\n // all browsers.\n\n sub,\n sup {\n position: relative;\n font-size: var(--sub-sup-font-size, .75em);\n line-height: 0;\n vertical-align: baseline;\n }\n\n sub { bottom: -.25em; }\n sup { top: -.5em; }\n\n // Links\n\n a {\n color: var(--theme-fg, var(--link-color));\n text-decoration: var(--link-decoration);\n text-underline-offset: $link-underline-offset;\n\n &:hover {\n // --link-color: var(--link-hover-color);\n // --link-decoration: var(--link-hover-decoration, var(--link-decoration));\n color: var(--theme-fg-emphasis, var(--link-hover-color));\n text-decoration: var(--link-hover-decoration, var(--link-decoration));\n }\n }\n\n // And undo these styles for placeholder links/named anchors (without href).\n // It would be more straightforward to just use a[href] in previous block, but that\n // causes specificity issues in many other styles that are too complex to fix.\n // See https://github.com/twbs/bootstrap/issues/19402\n\n a:not([href], [class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n }\n\n // Code\n\n pre,\n code,\n kbd,\n samp {\n font-family: var(--font-mono);\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n }\n\n // 1. Remove browser default top margin\n // 2. Reset browser default of `1em` to use `rem`s\n // 3. Don't allow content to break outside\n\n pre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n font-size: var(--code-font-size);\n color: var(--code-color, inherit);\n\n // Account for some code outputs that place code tags in pre tags\n code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n }\n\n code {\n font-size: var(--code-font-size);\n color: var(--code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n }\n\n kbd {\n @include tokens($reboot-kbd-tokens);\n padding: var(--kbd-padding-y) var(--kbd-padding-x);\n font-size: var(--kbd-font-size);\n color: var(--kbd-color);\n background-color: var(--kbd-bg);\n @include border-radius(var(--kbd-border-radius));\n\n kbd {\n padding: 0;\n font-size: 1em;\n font-weight: inherit; // mdo-do: check if this is needed\n }\n }\n\n // Figures\n //\n // Apply a consistent margin strategy (matches our type styles).\n\n figure {\n margin: 0 0 1rem;\n }\n\n // Images and content\n\n img,\n svg {\n vertical-align: middle;\n }\n\n // Tables\n //\n // Prevent double borders\n\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n\n caption {\n // padding-top: $table-cell-padding-y;\n // padding-bottom: $table-cell-padding-y;\n // color: $table-caption-color;\n padding-block: .5rem;\n color: var(--fg-3);\n text-align: start;\n }\n\n // 1. Removes font-weight bold by inheriting\n // 2. Matches default `<td>` alignment by inheriting `text-align`.\n // 3. Fix alignment for Safari\n\n th {\n // font-weight: $table-th-font-weight; // 1 // mdo-do: it's null by default. maybe we remove?\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n }\n\n thead,\n tbody,\n tfoot,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n\n // Forms\n //\n // 1. Allow labels to use `margin` for spacing.\n\n label {\n display: inline-block; // 1\n }\n\n // Remove the default `border-radius` that macOS Chrome adds.\n // See https://github.com/twbs/bootstrap/issues/24093\n\n button {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n }\n\n // Explicitly remove focus outline in Chromium when it shouldn't be\n // visible (e.g. as result of mouse click or touch tap). It already\n // should be doing this automatically, but seems to currently be\n // confused and applies its very visible two-tone outline anyway.\n\n button:focus:not(:focus-visible) {\n outline: 0;\n }\n\n // 1. Remove the margin in Firefox and Safari\n\n input,\n button,\n select,\n optgroup,\n textarea {\n margin: 0; // 1\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n // Set the cursor for non-`<button>` buttons\n //\n // Details at https://github.com/twbs/bootstrap/pull/30562\n [role=\"button\"] {\n cursor: pointer;\n }\n\n select {\n // Remove the inheritance of word-wrap in Safari.\n // See https://github.com/twbs/bootstrap/issues/24990\n word-wrap: normal;\n\n // Undo the opacity change from Chrome\n &:disabled {\n opacity: 1;\n }\n }\n\n // Remove the dropdown arrow only from text type inputs built with datalists in Chrome.\n // See https://stackoverflow.com/a/54997118\n\n [list]:not([type=\"date\"], [type=\"datetime-local\"], [type=\"month\"], [type=\"week\"], [type=\"time\"])::-webkit-calendar-picker-indicator {\n display: none !important;\n }\n\n // 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n // controls in Android 4.\n // 2. Correct the inability to style clickable types in iOS and Safari.\n // 3. Opinionated: add \"hand\" cursor to non-disabled button elements.\n\n button,\n [type=\"button\"], // 1\n [type=\"reset\"],\n [type=\"submit\"] {\n -webkit-appearance: button; // 2\n\n @if $enable-button-pointers {\n &:not(:disabled) {\n cursor: pointer; // 3\n }\n }\n }\n\n // 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.\n\n textarea {\n resize: vertical; // 1\n }\n\n // 1. Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n // 2. Reset the default outline behavior of fieldsets so they don't affect page layout.\n\n fieldset {\n min-width: 0; // 1\n padding: 0; // 2\n margin: 0; // 2\n border: 0; // 2\n }\n\n // 1. By using `float: inline-start`, the legend will behave like a block element.\n // This way the border of a fieldset wraps around the legend if present.\n // 2. Fix wrapping bug.\n // See https://github.com/twbs/bootstrap/issues/29712\n\n legend {\n float: inline-start; // 1\n width: 100%;\n padding: 0;\n margin-bottom: $legend-margin-bottom;\n font-size: $legend-font-size;\n font-weight: $legend-font-weight;\n line-height: inherit;\n\n + * {\n clear: inline-start; // 2\n }\n }\n\n // Fix height of inputs with a type of datetime-local, date, month, week, or time\n // See https://github.com/twbs/bootstrap/issues/18842\n\n ::-webkit-datetime-edit-fields-wrapper,\n ::-webkit-datetime-edit-text,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-ampm-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-week-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-year-field {\n padding: 0;\n }\n\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n\n // 1. This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n // 2. Correct the outline style in Safari.\n\n [type=\"search\"] {\n -webkit-appearance: textfield; // 1\n outline-offset: -2px; // 2\n\n // 3. Better affordance and consistent appearance for search cancel button\n &::-webkit-search-cancel-button {\n cursor: pointer;\n filter: grayscale(1);\n }\n }\n\n // A few input types should stay LTR regardless of document direction\n // See https://rtlstyling.com/posts/rtl-styling#form-inputs\n\n [type=\"tel\"],\n [type=\"url\"],\n [type=\"email\"],\n [type=\"number\"] {\n direction: ltr;\n }\n\n // Remove the inner padding in Chrome and Safari on macOS.\n\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n // Remove padding around color pickers in webkit browsers\n\n ::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n\n // 1. Inherit font family and line height for file input buttons\n // 2. Correct the inability to style clickable types in iOS and Safari.\n\n ::file-selector-button {\n font: inherit; // 1\n -webkit-appearance: button; // 2\n }\n\n // Correct element displays\n\n output {\n display: inline-block;\n }\n\n // Remove border from iframe\n\n iframe {\n border: 0;\n }\n\n // Summary\n //\n // 1. Add the correct display in all browsers\n\n summary {\n display: list-item; // 1\n cursor: pointer;\n }\n\n // Progress\n //\n // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n progress {\n vertical-align: baseline;\n }\n\n // Hidden attribute\n //\n // Always hide an element with the `hidden` HTML attribute.\n\n [hidden] {\n display: none !important;\n }\n}\n","@use \"sass:map\";\n@use \"sass:meta\";\n\n// Configuration\n//\n// Variables and settings not related to theme, components, and more go here. It does include layout.\n\n// Merge overrides on top of defaults, stripping null entries.\n// Null values let users remove map keys via @use ... with().\n// Accepts a list as $defaults (converted to a map with `true` values).\n@function defaults($defaults, $overrides) {\n @if meta.type-of($defaults) == \"list\" {\n $map: ();\n @each $key in $defaults {\n $map: map.merge($map, ($key: true));\n }\n $defaults: $map;\n }\n $merged: map.merge($defaults, $overrides);\n @each $key, $value in $merged {\n @if $value == null {\n $merged: map.remove($merged, $key);\n }\n }\n @return $merged;\n}\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: true !default;\n$enable-gradients: true !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: false !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: true !default;\n$enable-button-pointers: true !default;\n// $enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n\n$enable-dark-mode: true !default;\n\n$color-mode-type: \"media-query\" !default;\n$color-contrast-dark: #000 !default;\n$color-contrast-light: #fff !default;\n$min-contrast-ratio: 4.5 !default;\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer * .75,\n 4: $spacer,\n 5: $spacer * 1.25,\n 6: $spacer * 1.5,\n 7: $spacer * 2,\n 8: $spacer * 2.5,\n 9: $spacer * 3,\n) !default;\n\n$negative-spacers: (\n \"-1\": $spacer * -.25,\n \"-2\": $spacer * -.5,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n$sizes: (\n 1: $spacer,\n 2: $spacer * 2,\n 3: $spacer * 3,\n 4: $spacer * 4,\n 5: $spacer * 5,\n 6: $spacer * 6,\n 7: $spacer * 7,\n 8: $spacer * 8,\n 9: $spacer * 9,\n 10: $spacer * 10,\n 11: $spacer * 11,\n 12: $spacer * 12,\n) !default;\n\n$radius: .5rem !default;\n$radii: (\n 0: 0,\n 1: $radius * .25,\n 2: $radius * .375,\n 3: $radius * .5,\n 4: $radius * .75,\n 5: $radius,\n 6: $radius * 1.25,\n 7: $radius * 1.5,\n 8: $radius * 2,\n 9: $radius * 3,\n) !default;\n\n// Breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start breakpoints\n$breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 1024px,\n xl: 1280px,\n 2xl: 1536px\n) !default;\n// scss-docs-end breakpoints\n\n// @include _assert-ascending($breakpoints, \"$breakpoints\");\n// @include _assert-starts-at-zero($breakpoints, \"$breakpoints\");\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-x: 1.5rem !default;\n$grid-gutter-y: 0 !default;\n$grid-row-columns: 6 !default;\n\n$gutters: $spacers !default;\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1200px,\n 2xl: 1440px\n) !default;\n// scss-docs-end container-max-widths\n\n$container-padding-x: $grid-gutter-x !default;\n\n$utilities: () !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent)) !default;\n// scss-docs-end variable-gradient\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Links\n//\n// Style anchor elements.\n\n$link-decoration: underline !default;\n$link-underline-offset: .2em !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: color-mix(in oklch, var(--gray-100), var(--gray-200)) !default;\n// scss-docs-end border-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"auto\": auto,\n \"1x1\": #{\"1 / 1\"},\n \"4x3\": #{\"4 / 3\"},\n \"16x9\": #{\"16 / 9\"},\n \"21x9\": #{\"21 / 9\"}\n) !default;\n// scss-docs-end aspect-ratios\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$font-sizes: defaults(\n (\n \"xs\": (\n \"font-size\": .75rem,\n \"line-height\": 1.25\n ),\n \"sm\": (\n \"font-size\": .875rem,\n \"line-height\": 1.5\n ),\n \"md\": (\n \"font-size\": 1rem,\n \"line-height\": 1.5\n ),\n \"lg\": (\n \"font-size\": clamp(1.25rem, 1rem + .625vw, 1.5rem),\n \"line-height\": 1.5\n ),\n \"xl\": (\n \"font-size\": clamp(1.5rem, 1.1rem + .75vw, 1.75rem),\n \"line-height\": calc(2.5 / 1.75)\n ),\n \"2xl\": (\n \"font-size\": clamp(1.75rem, 1.3rem + 1vw, 2rem),\n \"line-height\": calc(3 / 2.25)\n ),\n \"3xl\": (\n \"font-size\": clamp(2rem, 1.5rem + 1.875vw, 2.5rem),\n \"line-height\": 1.2\n ),\n \"4xl\": (\n \"font-size\": clamp(2.25rem, 1.75rem + 2.5vw, 3rem),\n \"line-height\": 1.1\n ),\n \"5xl\": (\n \"font-size\": clamp(3rem, 2rem + 5vw, 4rem),\n \"line-height\": 1.1\n ),\n \"6xl\": (\n \"font-size\": clamp(3.75rem, 2.5rem + 6.25vw, 5rem),\n \"line-height\": 1\n ),\n ),\n $font-sizes\n);\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: var(--spacer-2) !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start type-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n// scss-docs-end type-variables\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-menu: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n// $zindex-drawer-backdrop: 1040 !default;\n$zindex-drawer: 1045 !default;\n$zindex-dialog: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n","@use \"sass:list\";\n@use \"sass:math\";\n@use \"sass:meta\";\n@use \"../config\" as *;\n\n// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n $return: ();\n @each $value in $radius {\n @if meta.type-of($value) == number {\n $return: list.append($return, math.max($value, 0));\n } @else {\n $return: list.append($return, $value);\n }\n }\n @return $return;\n}\n\n// scss-docs-start border-radius-mixins\n@mixin border-radius($radius: var(--radius-5), $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: valid-radius($radius);\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n border-start-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-end-radius: valid-radius($radius);\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-start-radius: valid-radius($radius);\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n border-end-start-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-start-radius: valid-radius($radius);\n }\n}\n// scss-docs-end border-radius-mixins\n","@use \"../functions\" as *;\n@use \"../mixins/lists\" as *;\n@use \"../mixins/tokens\" as *;\n\n$blockquote-tokens: () !default;\n\n// scss-docs-start blockquote-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$blockquote-tokens: defaults(\n (\n --blockquote-gap: calc(var(--spacer) / 2),\n --blockquote-padding-x: var(--spacer),\n --blockquote-margin-y: 1rem,\n --blockquote-font-size: var(--font-size-md),\n --blockquote-border-width: .25rem,\n --blockquote-border-color: var(--border-color),\n --blockquote-footer-font-size: var(--font-size-sm),\n --blockquote-footer-color: var(--fg-3),\n ),\n $blockquote-tokens\n);\n// scss-docs-end blockquote-tokens\n\n@layer content {\n //\n // Lists\n //\n\n .list-unstyled {\n @include list-unstyled();\n }\n\n // Inline turns list items into inline-block\n .list-inline {\n @include list-unstyled();\n }\n .list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-inline-end: var(--list-inline-padding, var(--spacer) / 2);\n }\n }\n\n //\n // Misc\n //\n\n // Builds on `abbr`\n .initialism {\n font-size: var(--initialism-font-size, var(--font-size-xs));\n text-transform: uppercase;\n }\n\n // Blockquotes\n .blockquote {\n @include tokens($blockquote-tokens);\n display: flex;\n flex-direction: column;\n gap: var(--blockquote-gap);\n padding-inline-start: var(--blockquote-padding-x);\n margin-bottom: var(--blockquote-margin-y);\n font-size: var(--blockquote-font-size);\n border-inline-start: var(--blockquote-border-width) solid var(--blockquote-border-color);\n\n > * {\n margin-bottom: 0;\n }\n }\n\n // stylelint-disable-next-line selector-no-qualifying-type\n figure.blockquote {\n blockquote {\n margin-bottom: 0;\n }\n }\n\n .blockquote-footer {\n font-size: var(--blockquote-footer-font-size);\n color: var(--blockquote-footer-color);\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n padding-inline-start: 0;\n list-style: none;\n}\n","@use \"sass:map\";\n@use \"../config\" as *;\n@use \"../functions\" as *;\n@use \"../layout/breakpoints\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$table-tokens: () !default;\n\n// scss-docs-start table-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$table-tokens: defaults(\n (\n --table-cell-padding-y: .5rem,\n --table-cell-padding-x: .5rem,\n --table-cell-vertical-align: top,\n --table-color: var(--fg-body),\n --table-bg: var(--bg-body),\n --table-accent-bg: transparent,\n --table-border-width: var(--border-width),\n --table-border-color: var(--border-color),\n --table-group-separator-color: currentcolor,\n --table-striped-color: var(--table-color),\n --table-striped-bg-factor: 5%,\n --table-striped-bg: color-mix(in srgb, var(--table-color) var(--table-striped-bg-factor), transparent),\n --table-active-color: var(--table-color),\n --table-active-bg-factor: 10%,\n --table-active-bg: color-mix(in srgb, var(--table-color) var(--table-active-bg-factor), transparent),\n --table-hover-color: var(--table-color),\n --table-hover-bg-factor: 7.5%,\n --table-hover-bg: color-mix(in srgb, var(--table-color) var(--table-hover-bg-factor), transparent),\n ),\n $table-tokens\n);\n// scss-docs-end table-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n$table-striped-order: odd !default;\n$table-striped-columns-order: even !default;\n\n//\n// Basic Bootstrap table\n//\n\n@layer content {\n .table {\n @include tokens($table-tokens);\n\n // Reset needed for nesting tables\n --table-color-type: initial;\n --table-bg-type: initial;\n --table-color-state: initial;\n --table-bg-state: initial;\n // End of reset\n\n width: 100%;\n margin-bottom: var(--spacer);\n vertical-align: var(--table-cell-vertical-align);\n border-color: var(--theme-border, var(--table-border-color));\n\n // Target th & td\n // We need the child combinator to prevent styles leaking to nested tables which doesn't have a `.table` class.\n // We use the universal selectors here to simplify the selector (else we would need 6 different selectors).\n // Another advantage is that this generates less code and makes the selector less specific making it easier to override.\n // stylelint-disable-next-line selector-max-universal\n > :not(caption) > * > * {\n padding: var(--table-cell-padding-y) var(--table-cell-padding-x);\n // Following the precept of cascades: https://codepen.io/miriamsuzanne/full/vYNgodb\n color: var(--table-color-state, var(--table-color-type, var(--theme-fg, var(--table-color))));\n background-color: var(--theme-bg-subtle, var(--table-bg));\n border-block-end-width: var(--table-border-width);\n box-shadow: inset 0 0 0 9999px var(--table-bg-state, var(--table-bg-type, var(--theme-bg-subtle, var(--table-accent-bg))));\n }\n\n > tbody {\n vertical-align: inherit;\n }\n\n > thead {\n vertical-align: bottom;\n }\n }\n\n .table-group-divider {\n border-block-start: calc(var(--table-border-width) * 2) solid var(--table-group-separator-color);\n }\n\n //\n // Change placement of captions with a class\n //\n\n .caption-top {\n caption-side: top;\n }\n\n //\n // Condensed table w/ half padding\n //\n\n .table-sm {\n // stylelint-disable-next-line selector-max-universal\n > :not(caption) > * > * {\n --table-cell-padding-y: .25rem;\n --table-cell-padding-x: .25rem;\n }\n }\n\n // Border versions\n //\n // Add or remove borders all around the table and between all the columns.\n //\n // When borders are added on all sides of the cells, the corners can render odd when\n // these borders do not have the same color or if they are semi-transparent.\n // Therefore we add top and border bottoms to the `tr`s and left and right borders\n // to the `td`s or `th`s\n\n .table-bordered {\n > :not(caption) > * {\n border-width: var(--table-border-width) 0;\n\n // stylelint-disable-next-line selector-max-universal\n > * {\n border-width: 0 var(--table-border-width);\n }\n }\n }\n\n .table-borderless {\n // stylelint-disable-next-line selector-max-universal\n > :not(caption) > * > * {\n border-block-end-width: 0;\n }\n\n > :not(:first-child) {\n border-block-start-width: 0;\n }\n }\n\n // Zebra-striping\n //\n // Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n // For rows\n .table-striped {\n > tbody > tr:nth-of-type(#{$table-striped-order}) > * {\n --table-color-type: var(--theme-fg, var(--table-striped-color));\n --table-bg-type: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-striped-bg-factor), transparent);\n }\n }\n\n // For columns\n .table-striped-columns {\n > :not(caption) > tr > :nth-child(#{$table-striped-columns-order}) {\n --table-color-type: var(--theme-fg, var(--table-striped-color));\n --table-bg-type: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-striped-bg-factor), transparent);\n }\n }\n\n // Active table\n //\n // The `.table-active` class can be added to highlight rows or cells\n\n .table-active {\n --table-color-state: var(--theme-fg, var(--table-active-color));\n --table-bg-state: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-active-bg-factor), transparent);\n }\n\n // Hover effect\n //\n // Placed here since it has to come after the potential zebra striping\n\n .table-hover {\n > tbody > tr:hover > * {\n --table-color-state: var(--theme-fg, var(--table-hover-color));\n --table-bg-state: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-hover-bg-factor), transparent);\n }\n }\n\n // Responsive tables\n //\n // Generate `.table-responsive` classes that act as container query contexts\n // and enable horizontal scrolling when table content overflows.\n\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n .#{$prefix}table-responsive {\n container-type: inline-size;\n\n @include media-breakpoint-down($breakpoint) {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n }\n\n // Stacked tables\n //\n // Generate `.table-stacked` classes that convert table rows into stacked\n // blocks using container queries. Requires a `.table-responsive` ancestor\n // and `data-cell` attributes on `<td>` elements for column labels.\n\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include container-breakpoint-down($breakpoint) {\n .#{$prefix}table-stacked {\n > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n\n + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n\n > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * .25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n\n &:first-child {\n font-weight: var(--font-weight-bold);\n }\n\n // + td::before {\n // margin-block-start: .25rem;\n // }\n\n &[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n }\n\n > td:not(:first-child) + td::before {\n margin-block-start: .25rem;\n }\n }\n }\n }\n }\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:string\";\n@use \"../config\" as *;\n\n// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px)\n//\n// The map defined in the `$breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl 2xl))\n// md\n@function breakpoint-next($name, $breakpoints: $breakpoints, $breakpoint-names: map.keys($breakpoints)) {\n $n: list.index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoint-names}`\";\n }\n // Use @if/@else because list.nth would error if evaluated when $n equals list length\n @if $n < list.length($breakpoint-names) {\n @return list.nth($breakpoint-names, $n + 1);\n } @else {\n @return null;\n }\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $breakpoints) {\n $min: map.get($breakpoints, $name);\n @return if(sass($min != 0): $min; else: null);\n}\n\n// Maximum breakpoint width for range media queries.\n// Returns the breakpoint value to use as an upper bound in range queries.\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n// >> breakpoint-max(xxl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// null\n@function breakpoint-max($name, $breakpoints: $breakpoints) {\n @if $name == null {\n @return null;\n }\n $max: map.get($breakpoints, $name);\n @return if(sass($max and $max > 0): $max; else: null);\n}\n\n// Escape a name for use at the start of a CSS identifier.\n// Leading digits are hex-escaped (e.g., 2xl becomes \\32 xl).\n@function css-escape-ident($name) {\n $name-str: \"#{$name}\";\n $digits: \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\";\n $first: string.slice($name-str, 1, 1);\n\n @if list.index($digits, $first) {\n @return \"\\\\3#{$first} #{string.slice($name-str, 2)}\";\n }\n\n @return $name-str;\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name\n// with an escaped colon as a Tailwind-style prefix for responsive class names.\n// Leading digits are CSS-escaped (e.g., 2xl becomes \\32 xl) for valid identifiers.\n//\n// >> breakpoint-prefix(xs, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\" (Returns a blank string)\n// >> breakpoint-prefix(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"sm\\:\"\n// >> breakpoint-prefix(2xl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\\32 xl\\:\"\n@function breakpoint-prefix($name, $breakpoints: $breakpoints) {\n @if breakpoint-min($name, $breakpoints) == null {\n @return \"\";\n }\n\n @return \"#{css-escape-ident($name)}\\\\:\";\n}\n\n// Iterate all breakpoints and provide the current name and prefix.\n//\n// @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-up($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n @content($breakpoint, $prefix);\n }\n}\n\n// Iterate all breakpoints and provide the current name, next name, and next prefix.\n//\n// @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-down($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $next: breakpoint-next($breakpoint, $breakpoints);\n $prefix: breakpoint-prefix($next, $breakpoints);\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Backwards-compatible alias for next/down breakpoint loops.\n@mixin loop-breakpoints($breakpoints: $breakpoints) {\n @include loop-breakpoints-down($breakpoints) using ($breakpoint, $next, $prefix) {\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (width >= $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (width < $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n\n\n// Container queries\n//\n// Container queries allow elements to respond to the size of a containing element\n// rather than the viewport. These mixins mirror the media-breakpoint-* mixins above.\n//\n// scss-docs-start container-query-mixins\n\n// Set an element as a query container.\n//\n// @include set-container(); // container-type: inline-size\n// @include set-container(size); // container-type: size\n// @include set-container(inline-size, sidebar); // container: sidebar / inline-size\n//\n@mixin set-container($type: inline-size, $name: null) {\n @if $name {\n container: #{$name} / #{$type};\n } @else {\n container-type: #{$type};\n }\n}\n\n// Container query of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider within the container.\n//\n// @include container-breakpoint-up(md) { ... }\n// @include container-breakpoint-up(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-up($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower within the container.\n//\n// @include container-breakpoint-down(lg) { ... }\n// @include container-breakpoint-down(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-down($name, $container-name: null, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @if $container-name {\n @container #{$container-name} (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width < #{$max}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints within the container.\n//\n// @include container-breakpoint-between(md, xl) { ... }\n// @include container-breakpoint-between(md, xl, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-between($lower, $upper, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($lower, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($upper, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n\n// Container query between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint within the container.\n//\n// @include container-breakpoint-only(md) { ... }\n// @include container-breakpoint-only(md, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-only($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($name, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($next, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n// scss-docs-end container-query-mixins\n","@use \"../functions\" as *;\n@use \"../mixins/image\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/box-shadow\" as *;\n@use \"../mixins/tokens\" as *;\n\n$thumbnail-tokens: () !default;\n\n// scss-docs-start thumbnail-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$thumbnail-tokens: defaults(\n (\n --thumbnail-padding: .25rem,\n --thumbnail-bg: var(--bg-body),\n --thumbnail-border-width: var(--border-width),\n --thumbnail-border-color: var(--border-color),\n --thumbnail-border-radius: var(--radius-5),\n --thumbnail-box-shadow: var(--box-shadow-sm),\n ),\n $thumbnail-tokens\n);\n// scss-docs-end thumbnail-tokens\n\n$figure-tokens: () !default;\n\n// scss-docs-start figure-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$figure-tokens: defaults(\n (\n --figure-gap: calc(var(--spacer) * .5),\n --figure-caption-font-size: var(--font-size-sm),\n --figure-caption-color: var(--fg-3),\n ),\n $figure-tokens\n);\n// scss-docs-end figure-tokens\n\n@layer content {\n // Responsive images (ensure images don't scale beyond their parents)\n //\n // This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n // We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n // and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n // which weren't expecting the images within themselves to be involuntarily resized.\n // See also https://github.com/twbs/bootstrap/issues/18178\n .img-fluid {\n @include img-fluid();\n }\n\n .img-thumbnail {\n @include tokens($thumbnail-tokens);\n padding: var(--thumbnail-padding);\n background-color: var(--thumbnail-bg);\n border: var(--thumbnail-border-width) solid var(--thumbnail-border-color);\n @include border-radius(var(--thumbnail-border-radius));\n @include box-shadow(var(--thumbnail-box-shadow));\n\n // Keep them at most 100% wide\n @include img-fluid();\n }\n\n .figure {\n @include tokens($figure-tokens);\n // Ensures the caption's text aligns with the image.\n display: flex;\n flex-direction: column;\n gap: var(--figure-gap);\n }\n\n .figure-caption {\n font-size: var(--figure-caption-font-size);\n color: var(--figure-caption-color);\n }\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n","@use \"sass:list\";\n@use \"../config\" as *;\n\n@mixin box-shadow($shadow...) {\n @if $enable-shadows {\n $result: ();\n $has-single-value: false;\n $single-value: null;\n\n @each $value in $shadow {\n @if $value != null {\n @if $value == none or $value == initial or $value == inherit or $value == unset {\n $has-single-value: true;\n $single-value: $value;\n } @else {\n $result: list.append($result, $value, \"comma\");\n }\n }\n }\n\n @if $has-single-value {\n box-shadow: $single-value;\n } @else if (list.length($result) > 0) {\n box-shadow: $result;\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$prose-tokens: () !default;\n\n// scss-docs-start prose-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$prose-tokens: defaults(\n (\n --content-font-size: 1rem,\n --content-line-height: 1.5,\n --content-gap: calc(var(--content-font-size) * var(--content-line-height)),\n --heading-color: light-dark(var(--gray-900), var(--white)),\n ),\n $prose-tokens\n);\n// scss-docs-end prose-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer content {\n .prose {\n @include tokens($prose-tokens);\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--content-gap);\n max-width: 1000px;\n margin-inline: auto;\n font-size: var(--content-font-size);\n line-height: var(--content-line-height);\n\n @media (width >= 1024px) {\n --content-font-size: var(--font-size-md);\n --content-line-height: 1.625;\n // --content-gap: calc(var(--content-font-size) * var(--content-line-height));\n }\n\n :where(p, ul, ol, dl, pre, table, blockquote):not(:where(.not-prose, .not-prose *)) {\n margin-block: 0;\n }\n\n :where(ul, ol):not([class], :where(.not-prose, .not-prose *)) li:not(:last-child) {\n margin-bottom: calc(var(--content-gap) / 4);\n }\n\n :where(li ul, li ol):not(:where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) / 4);\n }\n\n :where(hr):not(:where(.not-prose, .not-prose *)) {\n margin: calc(var(--content-gap) * 1.5) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n\n :where(h1, h2, h3, h4, h5, h6):not([class], :where(.not-prose, .not-prose *)) {\n margin-top: 0;\n margin-bottom: calc(var(--content-gap) / -2);\n font-weight: 500;\n line-height: 1.25;\n\n code {\n font-weight: 600;\n color: inherit;\n }\n }\n\n :where(h1, h2):not(:first-child, :where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) * .75);\n }\n\n :where(h3, h4, h5, h6):not(:first-child, :where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) * .5);\n }\n\n :where(h1):not(:where(.not-prose, .not-prose *)) {\n font-size: 2.25em;\n line-height: 1.1;\n }\n :where(h2):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.75em;\n }\n :where(h3):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.5em;\n }\n :where(h4):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.25em;\n }\n :where(h5):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.125em;\n }\n :where(h6):not(:where(.not-prose, .not-prose *)) {\n font-size: 1em;\n }\n\n :where(a:not([class])):not(:where(.not-prose, .not-prose *)) {\n color: var(--link-color);\n text-decoration: underline;\n text-decoration-color: color-mix(in srgb, var(--link-color) 25%, transparent);\n text-underline-offset: 4px;\n @include transition(.1s text-decoration-color ease-in-out);\n\n &:hover {\n text-decoration-color: var(--link-hover-color);\n }\n }\n\n :where(img):not(:where(.not-prose, .not-prose *)) {\n max-width: 100%;\n }\n\n :where(blockquote):not(:where(.not-prose, .not-prose *)) {\n padding-inline-start: calc(var(--content-gap) / 2);\n margin: 0;\n border-inline-start: 4px solid var(--border-color);\n }\n\n :where(table):not(:where(.not-prose, .not-prose *)) {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n }\n\n :where(table:not([class])):not(:where(.not-prose, .not-prose *)) {\n td,\n th {\n padding: 6px 12px;\n text-align: inherit;\n border: 1px solid var(--border-color);\n }\n }\n\n :where(dt):not(:where(.not-prose, .not-prose *)) {\n font-weight: 500;\n }\n\n :where(video, img):not(:where(.not-prose, .not-prose *)) {\n max-width: 100%;\n }\n }\n}\n","@use \"sass:list\";\n@use \"../config\" as *;\n\n// stylelint-disable property-disallowed-list\n@mixin transition($transition...) {\n @if list.length($transition) == 0 {\n $transition: $transition-base;\n }\n\n @if list.length($transition) > 1 {\n @each $value in $transition {\n @if $value == null or $value == none {\n @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n }\n }\n }\n\n @if $enable-transitions {\n @if list.nth($transition, 1) != null {\n transition: $transition;\n }\n\n @if $enable-reduced-motion and list.nth($transition, 1) != null and list.nth($transition, 1) != none {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n }\n}\n","@use \"../config\" as *;\n@use \"breakpoints\" as *;\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n --gutter-x: #{$gutter};\n --gutter-y: 0;\n width: 100%;\n padding-inline: calc(var(--gutter-x) * .5);\n margin-inline: auto;\n}\n\n@layer layout {\n @if $enable-container-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .#{breakpoint-prefix($breakpoint, $breakpoints)}container {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n @each $name, $width in $breakpoints {\n @if ($extend-breakpoint) {\n .#{breakpoint-prefix($name, $breakpoints)}container {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/grid\" as *;\n\n// mdo-do\n// - check gap utilities as replacement for gutter classes from v5\n\n@layer layout {\n @if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n\n @include make-grid-columns();\n }\n\n @if $enable-cssgrid {\n .grid {\n --columns: #{$grid-columns};\n --rows: 1;\n --gap: #{$grid-gutter-x};\n\n display: grid;\n grid-template-rows: repeat(var(--rows), 1fr);\n grid-template-columns: repeat(var(--columns), 1fr);\n gap: var(--gap);\n\n }\n\n @include make-cssgrid();\n }\n\n // mdo-do: add to utilities?\n .grid-cols-subgrid {\n grid-template-columns: subgrid;\n }\n\n .grid-fill {\n --gap: #{$grid-gutter-x};\n\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-auto-flow: row;\n gap: var(--gap);\n }\n\n // .g-col-auto {\n // grid-column: auto;\n // }\n\n // mdo-do: add to utilities?\n // .grid-cols-3 {\n // --columns: 3;\n // }\n // .grid-cols-4 {\n // --columns: 4;\n // }\n // .grid-cols-6 {\n // --columns: 6;\n // }\n\n // .grid-full {\n // grid-column: 1 / -1;\n // }\n}\n","@use \"sass:map\";\n@use \"sass:math\";\n@use \"sass:meta\";\n@use \"../config\" as *;\n@use \"../layout/breakpoints\" as *;\n\n// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter-x: $grid-gutter-x, $gutter-y: $grid-gutter-y) {\n --gutter-x: #{$gutter-x};\n --gutter-y: #{$gutter-y};\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-inline: calc(-.5 * var(--gutter-x));\n margin-top: calc(-1 * var(--gutter-y));\n}\n\n@mixin make-col-ready() {\n // Add box sizing if only the grid is loaded\n // stylelint-disable-next-line scss/at-function-named-arguments\n box-sizing: if(sass(meta.variable-exists(include-column-box-sizing) and $include-column-box-sizing): border-box; else: null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-inline: calc(var(--gutter-x) * .5);\n margin-top: var(--gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: math.percentage(math.div($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: math.div($size, $columns);\n // stylelint-disable-next-line scss/at-function-named-arguments\n margin-inline-start: if(sass($num == 0): 0; else: math.percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// number of columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: math.percentage(math.div(1, $count));\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-x, $breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n .#{$prefix}col {\n flex: 1 0 0;\n }\n\n .#{$prefix}row-cols-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .#{$prefix}row-cols-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .#{$prefix}col-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .#{$prefix}col-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($prefix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .#{$prefix}offset-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .#{$prefix}g-#{$key},\n .#{$prefix}gx-#{$key} {\n --gutter-x: #{$value};\n }\n\n .#{$prefix}g-#{$key},\n .#{$prefix}gy-#{$key} {\n --gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .#{$prefix}g-col-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is an invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .#{$prefix}g-start-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","@use \"../functions\" as *;\n\n$form-label-tokens: () !default;\n\n// scss-docs-start form-label-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-label-tokens: defaults(\n (\n --label-margin-bottom: calc(var(--spacer) / 2),\n --label-font-size: null,\n --label-font-style: null,\n --label-font-weight: null,\n --label-color: null,\n ),\n $form-label-tokens\n);\n// scss-docs-end form-label-tokens\n\n@layer forms {\n .form-label,\n .col-form-label {\n font-size: var(--label-font-size, inherit);\n font-style: var(--label-font-style, inherit);\n font-weight: var(--label-font-weight, 500);\n color: var(--label-color, var(--fg-body));\n }\n\n .form-label {\n margin-bottom: var(--label-margin-bottom, calc(var(--spacer) / 2));\n }\n\n // For use with horizontal and inline forms, when you need the label (or legend)\n // text to align with the form controls.\n .col-form-label {\n --label-padding-y: calc(var(--btn-input-padding-y) + var(--border-width));\n padding-block: var(--label-padding-y);\n margin-bottom: 0; // Override the `<legend>` default\n }\n\n .col-form-label-lg {\n --label-padding-y: calc(var(--btn-input-lg-padding-y) + var(--border-width));\n font-size: var(--btn-input-lg-font-size);\n }\n\n .col-form-label-sm {\n --label-padding-y: calc(var(--btn-input-sm-padding-y) + var(--border-width));\n font-size: var(--btn-input-sm-font-size);\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/tokens\" as *;\n\n$form-text-tokens: () !default;\n\n// scss-docs-start form-text-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-text-tokens: defaults(\n (\n --form-text-margin-top: .25rem,\n --form-text-font-size: var(--font-size-sm),\n --form-text-font-style: null,\n --form-text-font-weight: null,\n --form-text-color: var(--fg-2),\n ),\n $form-text-tokens\n);\n// scss-docs-end form-text-tokens\n\n@layer forms {\n .form-text {\n @include tokens($form-text-tokens);\n\n // margin-top: var(--form-text-margin-top);\n font-size: var(--form-text-font-size);\n font-style: var(--form-text-font-style);\n font-weight: var(--form-text-font-weight);\n color: var(--form-text-color);\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/box-shadow\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n$form-control-tokens: () !default;\n\n// scss-docs-start form-control-tokens\n// stylelint-disable custom-property-no-missing-var-function\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-control-tokens: defaults(\n (\n --control-min-height: var(--btn-input-min-height),\n --control-padding-y: var(--btn-input-padding-y),\n --control-padding-x: var(--btn-input-padding-x),\n --control-font-size: var(--btn-input-font-size),\n --control-line-height: var(--btn-input-line-height),\n --control-fg: var(--btn-input-fg),\n --control-bg: var(--btn-input-bg),\n --control-border-width: var(--border-width),\n --control-border-color: var(--border-color),\n --control-border-radius: var(--radius-5),\n --control-box-shadow: var(--box-shadow-inset),\n --control-action-bg: var(--bg-1),\n --control-action-hover-bg: var(--bg-2),\n --control-transition-property: \"border-color, box-shadow\",\n --control-transition-timing: .15s ease-in-out,\n --control-transition: var(--control-transition-property) var(--control-transition-timing),\n --control-placeholder-color: var(--fg-3),\n --control-disabled-color: var(--control-fg),\n --control-disabled-bg: var(--bg-2),\n --control-disabled-border-color: var(--control-border-color),\n --control-select-bg: #{escape-svg(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#00000080' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>\"))},\n --control-select-bg-position: right .75rem center,\n --control-select-bg-size: 16px 12px,\n --control-select-bg-dark: #{escape-svg(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#ffffff80' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>\"))},\n ),\n $form-control-tokens\n);\n// scss-docs-end form-control-tokens\n\n// scss-docs-start form-control-sizes\n$form-control-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-control-sizes: defaults(\n (\"sm\", \"lg\"),\n $form-control-sizes\n);\n// scss-docs-end form-control-sizes\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer forms {\n .form-control {\n @include tokens($form-control-tokens);\n\n display: flex;\n width: 100%;\n min-height: var(--control-min-height);\n padding: var(--control-padding-y) var(--control-padding-x);\n font-size: var(--control-font-size);\n line-height: var(--control-line-height);\n color: var(--control-fg);\n appearance: none;\n background-color: var(--control-bg);\n background-clip: padding-box;\n border: var(--control-border-width) solid var(--control-border-color);\n @include border-radius(var(--control-border-radius), 0);\n @include box-shadow(var(--control-box-shadow));\n @include transition(var(--control-transition));\n\n // Customize the `:focus` state to imitate native WebKit styles.\n &:focus-visible {\n --focus-ring-offset: -1px;\n @include focus-ring(true);\n }\n\n // Placeholder\n &::placeholder {\n color: var(--control-placeholder-color);\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n opacity: 1;\n }\n\n // Disabled inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &:disabled {\n color: var(--control-disabled-color);\n background-color: var(--control-disabled-bg);\n border-color: var(--control-disabled-border-color);\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n }\n\n // Date and time inputs\n // &::-webkit-date-and-time-value {\n // // On Android Chrome, form-control's \"width: 100%\" makes the input width too small\n // // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109\n // //\n // // On iOS Safari, form-control's \"appearance: none\" + \"width: 100%\" makes the input width too small\n // // Tested under iOS 16.2 / Safari 16.2\n // min-width: 85px; // Seems to be a good minimum safe width\n\n // // Add some height to date inputs on iOS\n // // https://github.com/twbs/bootstrap/issues/23307\n // // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved\n // // Multiply line-height by 1em if it has no unit\n // height: 1.5em;\n\n // // Android Chrome type=\"date\" is taller than the other inputs\n // // because of \"margin: 1px 24px 1px 4px\" inside the shadow DOM\n // // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109\n // margin: 0;\n // background-color: var(--red-500);\n // }\n\n // Prevent excessive date input height in Webkit\n // https://github.com/twbs/bootstrap/issues/34433\n\n // mdo-do: need to check this stuff out across browsers\n &::-webkit-datetime-edit {\n display: block;\n height: 1.5rem;\n padding: 0;\n margin-bottom: -.125rem;\n }\n &::-webkit-datetime-edit-fields-wrapper {\n height: 1.5rem;\n }\n\n // File inputs\n &[type=\"file\"] {\n overflow: hidden; // prevent pseudo element button overlap\n\n &:not(:disabled, [readonly]) {\n cursor: pointer;\n }\n }\n &::file-selector-button {\n min-height: var(--control-min-height);\n padding: var(--control-padding-y) var(--control-padding-x);\n margin: calc(var(--control-padding-y) * -1) calc(var(--control-padding-x) * -1);\n margin-inline-end: var(--control-padding-x);\n color: var(--control-fg);\n // @include gradient-bg(var(--control-action-bg));\n pointer-events: none;\n background-color: var(--control-action-bg);\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: var(--control-border-width);\n border-radius: 0; // stylelint-disable-line property-disallowed-list\n @include transition(var(--control-transition));\n }\n\n &:hover:not(:disabled, [readonly])::file-selector-button {\n background-color: var(--control-action-hover-bg);\n }\n }\n\n // Readonly controls as plain text\n //\n // Apply class to a readonly input to make it appear like regular plain\n // text (without any border, background color, focus indicator)\n\n .form-control-plaintext {\n display: block;\n width: 100%;\n padding: var(--control-padding-y) 0;\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n line-height: var(--control-line-height);\n color: var(--control-fg);\n background-color: transparent;\n border: solid transparent;\n border-width: var(--control-border-width) 0;\n\n &:focus {\n outline: 0;\n }\n\n &.form-control-sm,\n &.form-control-lg {\n padding-inline: 0;\n }\n }\n\n // stylelint-disable selector-no-qualifying-type\n select.form-control,\n .form-control-caret {\n padding-inline-end: calc(var(--control-padding-x) * 3);\n background-image: var(--control-select-bg);\n background-repeat: no-repeat;\n background-position: var(--control-select-bg-position);\n background-size: var(--control-select-bg-size);\n\n &[multiple],\n &[size]:not([size=\"1\"]) {\n padding-inline-end: var(--control-padding-x);\n background-image: none;\n }\n }\n\n @media (prefers-color-scheme: dark) {\n select.form-control,\n .form-control-caret {\n background-image: var(--control-select-bg-dark);\n }\n }\n // stylelint-enable selector-no-qualifying-type\n\n // Form control sizing\n //\n // Build on `.form-control` with modifier classes to decrease or increase the\n // height and font-size of form controls.\n //\n // Repeated in `_input_group.scss` to avoid Sass extend issues.\n @each $size, $_ in $form-control-sizes {\n .form-control-#{$size} {\n --control-min-height: var(--btn-input-#{$size}-min-height);\n --control-padding-y: var(--btn-input-#{$size}-padding-y);\n --control-padding-x: var(--btn-input-#{$size}-padding-x);\n --control-font-size: var(--btn-input-#{$size}-font-size);\n --control-line-height: var(--btn-input-#{$size}-line-height);\n --control-border-radius: var(--btn-input-#{$size}-border-radius);\n }\n }\n\n .form-control-color {\n width: var(--control-min-height);\n padding: var(--control-padding-y);\n\n &:not(:disabled, [readonly]) {\n cursor: pointer;\n }\n\n &::-moz-color-swatch {\n border: 0 !important; // stylelint-disable-line declaration-no-important\n @include border-radius(var(--radius-5));\n }\n\n &::-webkit-color-swatch {\n border: 0 !important; // stylelint-disable-line declaration-no-important\n @include border-radius(var(--radius-5));\n }\n }\n\n // Ghost input - removes all visual styling\n // Used inside custom wrappers that handle their own styling\n .form-ghost {\n display: block;\n width: 100%;\n padding: 0;\n font: inherit;\n color: inherit;\n appearance: none;\n background: transparent;\n border: 0;\n\n &:focus {\n outline: 0;\n }\n\n &::placeholder {\n color: var(--fg-3);\n opacity: 1;\n }\n\n &:disabled {\n color: var(--fg-4);\n cursor: not-allowed;\n }\n }\n}\n","@mixin focus-ring($offset: false, $color: null) {\n @if $color != null {\n outline: var(--focus-ring-width) solid #{$color};\n } @else {\n outline: var(--focus-ring);\n }\n @if $offset {\n outline-offset: var(--focus-ring-offset);\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$check-tokens: () !default;\n\n// scss-docs-start check-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$check-tokens: defaults(\n (\n --check-size: 1.25rem,\n --check-margin-block: .125rem,\n --check-bg: var(--bg-body),\n --check-border-color: var(--border-color),\n --check-border-radius: .375rem,\n --check-checked-bg: var(--control-checked-bg),\n --check-checked-border-color: var(--control-checked-border-color),\n --check-indeterminate-bg: var(--control-checked-bg),\n --check-indeterminate-border-color: var(--control-checked-border-color),\n --check-active-bg: var(--control-active-bg),\n --check-active-border-color: var(--control-active-border-color),\n --check-disabled-bg: var(--control-disabled-bg),\n --check-disabled-opacity: var(--control-disabled-opacity),\n ),\n $check-tokens\n);\n// scss-docs-end check-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer forms {\n .check {\n @include tokens($check-tokens);\n\n display: grid;\n grid-template-columns: repeat(1, minmax(0, 1fr));\n margin-block: var(--check-margin-block);\n\n :where(svg, input) {\n flex-shrink: 0;\n grid-row-start: 1;\n grid-column-start: 1;\n width: var(--check-size);\n height: var(--check-size);\n }\n\n :where(input) {\n appearance: none;\n // later: maybe set a tertiary bg color?\n background-color: var(--theme-bg, var(--check-bg));\n border: 1px solid var(--theme-bg, var(--check-border-color));\n // stylelint-disable-next-line property-disallowed-list\n border-radius: .3em;\n }\n\n :where(input:checked, input:indeterminate) {\n background-color: var(--theme-bg, var(--check-checked-bg));\n border-color: var(--theme-bg, var(--check-checked-border-color));\n }\n\n :where(input:focus-visible) {\n @include focus-ring(true);\n --focus-ring-offset: -1px;\n }\n\n &:has(input:checked) .checked,\n &:has(input:indeterminate) .indeterminate {\n display: block;\n color: var(--theme-contrast, var(--primary-contrast));\n stroke: currentcolor;\n }\n\n &:has(input:disabled) {\n --check-bg: var(--check-disabled-bg);\n\n ~ label {\n color: var(--fg-3);\n cursor: default;\n }\n }\n &:has(input:disabled:checked) {\n opacity: var(--check-disabled-opacity);\n }\n\n :where(svg) {\n pointer-events: none;\n }\n\n :where(svg path) {\n display: none;\n }\n }\n\n .check-sm {\n --check-size: 1rem;\n }\n .check-lg {\n --check-size: 1.5rem;\n --check-margin-block: 0;\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$radio-tokens: () !default;\n\n// scss-docs-start radio-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$radio-tokens: defaults(\n (\n --radio-size: 1.25rem,\n --radio-margin-block: .125rem,\n --radio-bg: var(--bg-body),\n --radio-border-color: var(--border-color),\n --radio-checked-bg: var(--control-checked-bg),\n --radio-checked-border-color: var(--control-checked-border-color),\n --radio-disabled-bg: var(--control-disabled-bg),\n --radio-disabled-opacity: var(--control-disabled-opacity),\n ),\n $radio-tokens\n);\n// scss-docs-end radio-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer forms {\n .radio {\n @include tokens($radio-tokens);\n\n position: relative;\n flex-shrink: 0;\n width: var(--radio-size);\n height: var(--radio-size);\n margin-block: var(--radio-margin-block);\n appearance: none;\n background-color: var(--theme-bg, var(--radio-bg));\n border: 1px solid var(--theme-bg, var(--radio-border-color));\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n\n &:checked {\n color: var(--theme-contrast, var(--primary-contrast));\n background-color: var(--theme-bg, var(--radio-checked-bg));\n border-color: var(--theme-bg, var(--radio-checked-border-color));\n\n &::before {\n position: absolute;\n inset: .25rem;\n content: \"\";\n background-color: currentcolor;\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n }\n }\n\n &:disabled {\n --radio-bg: var(--radio-disabled-bg);\n\n ~ label {\n color: var(--secondary-fg);\n cursor: default;\n }\n }\n\n &:focus-visible {\n @include focus-ring(true);\n }\n }\n\n .radio-sm {\n --radio-size: 1rem;\n }\n .radio-lg {\n --radio-size: 1.5rem;\n --radio-margin-block: 0;\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$switch-tokens: () !default;\n\n// scss-docs-start switch-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$switch-tokens: defaults(\n (\n --switch-height: 1.25rem,\n --switch-width: calc(var(--switch-height) * 1.5),\n --switch-padding: .0625rem,\n --switch-margin-block: .125rem,\n --switch-bg: var(--bg-3),\n --switch-border-width: var(--border-width),\n --switch-border-color: var(--border-color),\n --switch-indicator-bg: var(--white),\n --switch-indicator-width: calc(var(--switch-height) - calc(var(--switch-padding) * 2) - var(--switch-border-width) * 2),\n --switch-indicator-height: calc(var(--switch-height) - calc(var(--switch-padding) * 2) - var(--switch-border-width) * 2),\n --switch-checked-bg: var(--control-checked-bg),\n --switch-checked-border-color: var(--switch-checked-bg),\n --switch-checked-indicator-bg: var(--white),\n --switch-disabled-bg: var(--control-disabled-bg),\n --switch-disabled-indicator-bg: var(--fg-3),\n ),\n $switch-tokens\n);\n// scss-docs-end switch-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer forms {\n .switch {\n @include tokens($switch-tokens);\n\n position: relative;\n flex-shrink: 0;\n width: var(--switch-width);\n height: var(--switch-height);\n padding: var(--switch-padding);\n margin-block: var(--switch-margin-block);\n background-color: var(--switch-bg);\n border: var(--switch-border-width) solid var(--switch-border-color);\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 10rem;\n box-shadow: inset 0 1px 2px rgb(0 0 0 / .05);\n // stylelint-disable-next-line property-disallowed-list\n transition: background-color .15s ease-in-out;\n\n &::before {\n position: absolute;\n inset-block: var(--switch-padding);\n inset-inline-start: var(--switch-padding);\n width: var(--switch-indicator-width);\n height: var(--switch-indicator-height);\n content: \"\";\n background-color: var(--theme-contrast, var(--switch-indicator-bg));\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 10rem;\n box-shadow: 0 1px 2px rgb(0 0 0 / .1);\n // stylelint-disable-next-line property-disallowed-list\n transition: inset-inline-start .15s ease-in-out;\n }\n\n input {\n position: absolute;\n inset: 0;\n appearance: none;\n background-color: transparent;\n outline: 0;\n }\n\n &:focus-within {\n @include focus-ring(true);\n }\n\n &:has(input:checked) {\n background-color: var(--theme-bg, var(--switch-checked-bg));\n border-color: var(--theme-bg, var(--switch-checked-border-color));\n\n &::before {\n inset-inline-start: calc(100% - var(--switch-indicator-width) - var(--switch-padding));\n }\n }\n\n &:has(input:disabled) {\n --switch-bg: var(--switch-disabled-bg);\n --switch-indicator-bg: var(--switch-disabled-indicator-bg);\n\n &::before { opacity: .4; }\n\n ~ label {\n color: var(--secondary-fg);\n cursor: default;\n }\n }\n }\n .switch-sm {\n --switch-height: 1rem;\n }\n .switch-lg {\n --switch-height: 1.5rem;\n --switch-margin-block: 0;\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/box-shadow\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/transition\" as *;\n@use \"../mixins/gradients\" as *;\n@use \"../mixins/tokens\" as *;\n\n$range-tokens: () !default;\n\n// scss-docs-start range-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$range-tokens: defaults(\n (\n --range-track-width: 100%,\n --range-track-height: .5rem,\n --range-track-cursor: pointer,\n --range-track-bg: var(--bg-3),\n --range-track-border-radius: 1rem,\n --range-track-box-shadow: var(--box-shadow-inset),\n --range-thumb-width: 1rem,\n --range-thumb-height: var(--range-thumb-width),\n --range-thumb-bg: var(--primary-base),\n --range-thumb-border: var(--range-thumb-bg) solid var(--border-color),\n --range-thumb-border-radius: 1rem,\n --range-thumb-box-shadow: \"0 1px 2px rgb(0 0 0 / 7.5%), 0 2px 4px rgb(0 0 0 / 7.5%)\",\n --range-thumb-active-bg: color-mix(in oklch, var(--primary-base) 70%, var(--bg-body)),\n --range-thumb-disabled-bg: var(--fg-3),\n --range-thumb-transition-property: \"background-color, border-color, box-shadow\",\n --range-thumb-transition-timing: .15s ease-in-out,\n --range-thumb-transition: var(--range-thumb-transition-property) var(--range-thumb-transition-timing),\n ),\n $range-tokens\n);\n// scss-docs-end range-tokens\n\n// scss-docs-start range-mixins\n@mixin range-thumb() {\n width: var(--range-thumb-width);\n height: var(--range-thumb-height);\n appearance: none;\n @include gradient-bg(var(--range-thumb-bg));\n border: var(--range-thumb-border);\n @include border-radius(var(--range-thumb-border-radius));\n @include box-shadow(var(--range-thumb-box-shadow));\n @include transition(var(--range-thumb-transition));\n\n &:active {\n @include gradient-bg(var(--range-thumb-active-bg));\n }\n}\n\n@mixin range-track() {\n width: var(--range-track-width);\n height: var(--range-track-height);\n color: transparent; // Why?\n cursor: var(--range-track-cursor);\n background-color: var(--range-track-bg);\n border-color: transparent; // Firefox specific?\n @include border-radius(var(--range-track-border-radius));\n @include box-shadow(var(--range-track-box-shadow));\n}\n// scss-docs-end range-mixins\n\n@layer forms {\n .form-range {\n @include tokens($range-tokens);\n\n width: 100%;\n height: calc(var(--range-thumb-height) + (var(--focus-ring-width) * 2));\n padding: 0; // Need to reset padding\n appearance: none;\n background-color: transparent;\n\n &:hover {\n &::-webkit-slider-thumb {\n @include focus-ring(false, color-mix(in oklch, var(--primary-focus-ring), transparent));\n }\n &::-moz-range-thumb {\n @include focus-ring(false, color-mix(in oklch, var(--primary-focus-ring), transparent));\n }\n }\n\n &:focus-visible {\n outline: 0;\n\n // Pseudo-elements must be split across multiple rulesets to have an effect.\n &::-webkit-slider-thumb {\n @include focus-ring(true);\n --focus-ring-offset: 0;\n }\n &::-moz-range-thumb {\n @include focus-ring(true);\n --focus-ring-offset: 0;\n }\n }\n\n &::-moz-focus-outer {\n border: 0;\n }\n\n &::-webkit-slider-thumb {\n @include range-thumb();\n margin-top: calc((var(--range-track-height) - var(--range-thumb-height)) * .5); // Webkit specific\n }\n\n &::-moz-range-thumb {\n @include range-thumb();\n }\n\n &::-webkit-slider-runnable-track {\n @include range-track();\n }\n\n &::-moz-range-track {\n @include range-track();\n }\n\n &:disabled {\n pointer-events: none;\n\n &::-webkit-slider-thumb {\n background-color: var(--range-thumb-disabled-bg);\n }\n\n &::-moz-range-thumb {\n background-color: var(--range-thumb-disabled-bg);\n }\n }\n }\n}\n","@use \"../colors\" as *;\n@use \"../config\" as *;\n\n// Gradients\n\n// scss-docs-start gradient-bg-mixin\n@mixin gradient-bg($color: null) {\n background-color: $color;\n\n @if $enable-gradients {\n background-image: var(--gradient);\n }\n}\n// scss-docs-end gradient-bg-mixin\n\n// scss-docs-start gradient-mixins\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: var(--gray-700), $end-color: var(--gray-800), $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: var(--gray-700), $end-color: var(--gray-800), $start-percent: null, $end-percent: null) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n}\n\n@mixin gradient-directional($start-color: var(--gray-700), $end-color: var(--gray-800), $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n}\n\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n}\n\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n}\n\n@mixin gradient-radial($inner-color: var(--gray-700), $outer-color: var(--gray-800)) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n}\n\n@mixin gradient-striped($color: rgb(255 255 255 / .15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n// scss-docs-end gradient-mixins\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n$form-floating-tokens: () !default;\n\n// scss-docs-start form-floating-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-floating-tokens: defaults(\n (\n --form-floating-height: calc(3.5rem + (var(--border-width) * 2)),\n --form-floating-line-height: 1.25,\n --form-floating-padding-x: var(--btn-input-padding-x),\n --form-floating-padding-y: 1rem,\n --form-floating-input-padding-t: 1.625rem,\n --form-floating-input-padding-b: .625rem,\n --form-floating-label-height: 1.5em,\n --form-floating-label-opacity: .65,\n --form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem),\n --form-floating-label-disabled-color: var(--fg-3),\n --form-floating-transition-property: \"opacity, transform\",\n --form-floating-transition-timing: .1s ease-in-out,\n --form-floating-transition: var(--form-floating-transition-property) var(--form-floating-transition-timing),\n ),\n $form-floating-tokens\n);\n// scss-docs-end form-floating-tokens\n\n@layer forms {\n .form-floating {\n @include tokens($form-floating-tokens);\n\n position: relative;\n\n > label {\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n z-index: 2;\n display: flex;\n align-items: center;\n max-width: 100%;\n height: 100%; // allow textareas\n padding: var(--form-floating-padding-y) var(--form-floating-padding-x);\n overflow: hidden;\n color: color-mix(in oklch, var(--fg-body) var(--form-floating-label-opacity), transparent);\n text-align: start;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n border: var(--input-btn-border-width) solid transparent; // Required for aligning label's text with the input as it affects inner box model\n transform-origin: 0 0;\n @include transition(var(--form-floating-transition));\n }\n\n > .form-control,\n > .form-control-plaintext {\n height: var(--form-floating-height);\n min-height: var(--form-floating-height);\n padding: var(--form-floating-padding-y) var(--form-floating-padding-x);\n line-height: var(--form-floating-line-height);\n\n &::placeholder {\n color: transparent;\n }\n\n &:focus,\n &:not(:placeholder-shown) {\n padding-top: var(--form-floating-input-padding-t);\n padding-bottom: var(--form-floating-input-padding-b);\n }\n // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped\n &:-webkit-autofill {\n padding-top: var(--form-floating-input-padding-t);\n padding-bottom: var(--form-floating-input-padding-b);\n }\n }\n\n > .form-control:focus,\n > .form-control:not(:placeholder-shown),\n > .form-control-plaintext {\n ~ label {\n transform: var(--form-floating-label-transform);\n }\n }\n\n // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped\n > .form-control:-webkit-autofill {\n ~ label {\n transform: var(--form-floating-label-transform);\n }\n }\n > textarea:focus,\n > textarea:not(:placeholder-shown) {\n ~ label::after {\n position: absolute;\n inset: var(--form-floating-padding-y) calc(var(--form-floating-padding-x) * .5);\n z-index: -1;\n height: var(--form-floating-label-height);\n content: \"\";\n background-color: var(--control-bg);\n @include border-radius(var(--btn-input-border-radius));\n }\n }\n > textarea:disabled ~ label::after {\n background-color: var(--control-disabled-bg);\n }\n\n > .form-control-plaintext {\n ~ label {\n border-width: var(--control-border-width) 0; // Required to properly position label text - as explained above\n }\n }\n\n > :disabled ~ label,\n > .form-control:disabled ~ label { // Required for `.form-control`s because of specificity\n color: var(--form-floating-label-disabled-color);\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n\n$input-group-addon-tokens: () !default;\n\n// scss-docs-start input-group-addon-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$input-group-addon-tokens: defaults(\n (\n --input-group-addon-padding-y: var(--btn-input-padding-y),\n --input-group-addon-padding-x: var(--btn-input-padding-x),\n --input-group-addon-font-size: var(--btn-input-font-size),\n --input-group-addon-line-height: var(--btn-input-line-height),\n --input-group-addon-color: var(--fg-body),\n --input-group-addon-bg: var(--bg-2),\n --input-group-addon-border-color: var(--border-color),\n ),\n $input-group-addon-tokens\n);\n// scss-docs-end input-group-addon-tokens\n\n// scss-docs-start input-group-sizes\n$input-group-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$input-group-sizes: defaults(\n (\"sm\", \"lg\"),\n $input-group-sizes\n);\n// scss-docs-end input-group-sizes\n\n@layer components {\n .input-group {\n @include tokens($input-group-addon-tokens);\n\n position: relative;\n display: flex;\n align-items: stretch;\n width: 100%;\n\n > .form-control,\n > .form-floating {\n position: relative; // For focus state's z-index\n flex: 1 1 auto;\n width: 1%;\n min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size\n }\n\n // Bring the \"active\" form control to the top of surrounding elements\n > .form-control:focus,\n > .form-floating:focus-within {\n z-index: 5;\n }\n\n // Ensure buttons are always above inputs for more visually pleasing borders.\n // This isn't needed for `.input-group-text` since it shares the same border-color\n // as our inputs.\n > .input-group-btn {\n position: relative;\n z-index: 2;\n\n &:focus {\n z-index: 5;\n }\n }\n }\n\n // Textual addons\n //\n // Serves as a catch-all element for any text or radio/checkbox input you wish\n // to prepend or append to an input.\n\n .input-group-text {\n display: flex;\n align-items: center;\n padding: var(--input-group-addon-padding-y) var(--input-group-addon-padding-x);\n font-size: var(--input-group-addon-font-size); // Match inputs\n // font-weight: $input-group-addon-font-weight;\n line-height: var(--input-group-addon-line-height);\n color: var(--input-group-addon-color);\n text-align: center;\n white-space: nowrap;\n background-color: var(--input-group-addon-bg);\n border: var(--border-width) solid var(--input-group-addon-border-color);\n @include border-radius(var(--btn-input-border-radius));\n }\n\n // Sizing\n //\n // Remix the default form control sizing classes into new ones for easier\n // manipulation.\n\n @each $size, $_ in $input-group-sizes {\n .input-group-#{$size} {\n > .form-control,\n > .input-group-text,\n > .btn {\n min-height: var(--btn-input-#{$size}-min-height);\n padding: var(--btn-input-#{$size}-padding-y) var(--btn-input-#{$size}-padding-x);\n font-size: var(--btn-input-#{$size}-font-size);\n @include border-radius(var(--btn-input-#{$size}-border-radius));\n }\n }\n }\n\n // Rounded corners\n //\n // These rulesets must come after the sizing ones to properly override sm and lg\n // border-radius values when extending. They're more specific than we'd like\n // with the `.input-group >` part, but without it, we cannot override the sizing.\n\n // stylelint-disable-next-line no-duplicate-selectors\n .input-group {\n > :not(:last-child, .menu-toggle-split, .menu, .input-group-ignore, .form-floating, :has(+ :is(.menu, .input-group-ignore):last-child)),\n > .menu-toggle-split:nth-last-child(n + 3),\n > .form-floating:not(:last-child) > .form-control,\n > .form-floating:not(:last-child) > .form-select {\n @include border-end-radius(0);\n }\n\n > :not(:first-child, .menu, .input-group-ignore) {\n margin-inline-start: calc(-1 * var(--border-width));\n @include border-start-radius(0);\n }\n\n > :first-child:is(.input-group-ignore) + :not(.menu, .input-group-ignore) {\n @include border-start-radius(var(--btn-input-border-radius));\n }\n\n > .form-floating:not(:first-child) > .form-control,\n > .form-floating:not(:first-child) > .form-select {\n @include border-start-radius(0);\n }\n }\n}\n","@use \"sass:list\";\n@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$strength-tokens: () !default;\n\n// scss-docs-start strength-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$strength-tokens: defaults(\n (\n --strength-height: .375rem,\n --strength-gap: .25rem,\n --strength-margin-top: .25rem,\n --strength-border-radius: var(--radius-pill),\n --strength-bg: var(--bg-2),\n --strength-color: var(--bg-2),\n --strength-weak-color: var(--danger-bg),\n --strength-fair-color: var(--warning-bg),\n --strength-good-color: var(--info-bg),\n --strength-strong-color: var(--success-bg),\n ),\n $strength-tokens\n);\n// scss-docs-end strength-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n// scss-docs-start strength-levels\n$strength-levels: weak, fair, good, strong !default;\n// scss-docs-end strength-levels\n\n$strength-transition: background-color .2s ease-in-out, width .3s ease-in-out !default;\n\n@layer forms {\n // Strength meter container\n .strength {\n @include tokens($strength-tokens);\n\n display: flex;\n gap: var(--strength-gap);\n width: 100%;\n margin-top: var(--strength-margin-top);\n }\n\n // Individual strength segments\n .strength-segment {\n flex: 1;\n height: var(--strength-height);\n background-color: var(--strength-bg);\n @include border-radius(var(--strength-border-radius));\n @include transition($strength-transition);\n\n // Filled state\n &.active {\n background-color: var(--strength-color);\n }\n }\n\n @each $level in $strength-levels {\n .strength[data-bs-strength=\"#{$level}\"] {\n --strength-color: var(--strength-#{$level}-color);\n }\n }\n // Optional text feedback\n .strength-text {\n display: block;\n margin-top: var(--strength-margin-top);\n font-size: var(--font-size-xs);\n color: var(--strength-color, var(--fg-3));\n @include transition(color .2s ease-in-out);\n\n // Hide when empty\n &:empty {\n display: none;\n }\n }\n\n // Alternative: Single bar variant (like a progress bar)\n .strength-bar {\n @include tokens($strength-tokens);\n\n --strength-color: transparent;\n --strength-width: 0%;\n\n width: 100%;\n height: var(--strength-height);\n margin-top: var(--strength-margin-top);\n overflow: hidden;\n background-color: var(--strength-bg);\n @include border-radius(var(--strength-border-radius));\n\n &::after {\n display: block;\n width: var(--strength-width);\n height: 100%;\n content: \"\";\n background-color: var(--strength-color);\n @include border-radius(var(--strength-border-radius));\n @include transition($strength-transition);\n }\n\n @each $level in $strength-levels {\n &[data-bs-strength=\"#{$level}\"] {\n --strength-color: var(--strength-#{$level}-color);\n --strength-width: #{list.index($strength-levels, $level) * 25%};\n }\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/tokens\" as *;\n\n$otp-tokens: () !default;\n\n// scss-docs-start otp-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$otp-tokens: defaults(\n (\n --otp-size: var(--btn-input-lg-min-height),\n --otp-font-size: var(--btn-input-font-size),\n --otp-gap: .5rem,\n ),\n $otp-tokens\n);\n// scss-docs-end otp-tokens\n\n// scss-docs-start otp-sizes\n$otp-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$otp-sizes: defaults(\n (\"sm\", \"lg\"),\n $otp-sizes\n);\n// scss-docs-end otp-sizes\n\n@layer components {\n .otp {\n @include tokens($otp-tokens);\n\n display: inline-flex;\n gap: var(--otp-gap);\n\n .form-control {\n width: var(--otp-size);\n min-height: var(--otp-size);\n padding: 0;\n font-size: var(--otp-font-size);\n font-weight: 500;\n line-height: 1;\n text-align: center;\n\n // Remove default number spinners\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n margin: 0;\n appearance: none;\n }\n\n &[type=\"number\"] {\n appearance: textfield;\n }\n\n &:focus,\n &:focus-visible {\n z-index: 1;\n }\n }\n }\n\n // When used with .input-group, disable the gap and prevent inputs from stretching\n .otp.input-group {\n gap: 0;\n width: auto; // Override input-group's width: 100%\n\n .form-control {\n flex: 0 0 auto; // Don't grow or shrink, use fixed width\n }\n }\n\n .otp-separator {\n display: flex;\n align-items: center;\n padding-inline: var(--otp-gap);\n font-size: var(--otp-font-size);\n color: var(--fg-4);\n user-select: none;\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n$form-adorn-tokens: () !default;\n\n// scss-docs-start form-adorn-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-adorn-tokens: defaults(\n (\n --form-adorn-gap: .375rem,\n --form-adorn-icon-size: 1rem,\n --form-adorn-icon-color: var(--fg-2),\n ),\n $form-adorn-tokens\n);\n// scss-docs-end form-adorn-tokens\n\n@layer forms {\n .form-adorn {\n @include tokens($form-adorn-tokens);\n\n gap: var(--form-adorn-gap);\n align-items: center;\n\n // Prevent default `.form-control` focus\n &:focus-visible {\n outline: 0;\n }\n\n &:focus-within {\n --focus-ring-offset: -1px;\n border-color: var(--focus-ring-color);\n @include focus-ring(true);\n }\n\n // Ghost input fills remaining space\n > .form-ghost {\n flex: 1;\n min-width: 0; // Prevent text overflow\n }\n\n &.form-adorn-end > .form-ghost {\n order: -1;\n }\n }\n\n .form-adorn-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n color: var(--form-adorn-icon-color);\n pointer-events: none;\n\n > svg {\n width: var(--form-adorn-icon-size);\n height: var(--form-adorn-icon-size);\n }\n }\n\n .form-adorn-text {\n flex-shrink: 0;\n color: var(--form-adorn-icon-color);\n pointer-events: none;\n user-select: none;\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n$chip-input-tokens: () !default;\n\n// scss-docs-start chip-input-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$chip-input-tokens: defaults(\n (\n --chip-input-padding-y: .75rem,\n --chip-input-padding-x: .75rem,\n --chip-input-gap: .375rem,\n --chip-input-ghost-min-width: 5rem,\n --control-fg: var(--btn-input-fg),\n --control-bg: var(--btn-input-bg),\n --control-border-width: var(--border-width),\n --control-border-color: var(--border-color),\n --control-border-radius: var(--radius-5),\n ),\n $chip-input-tokens\n);\n// scss-docs-end chip-input-tokens\n\n@layer forms {\n .chip-input {\n @include tokens($chip-input-tokens);\n\n // Flexbox wrapping layout\n display: flex;\n flex-wrap: wrap;\n gap: var(--chip-input-gap);\n align-items: center;\n padding: var(--chip-input-padding-y) var(--chip-input-padding-x);\n\n color: var(--control-fg);\n background-color: var(--control-bg);\n border: var(--control-border-width) solid var(--control-border-color);\n @include border-radius(var(--control-border-radius), 0);\n\n // Focus state when ghost input is focused\n &:focus-within {\n --focus-ring-offset: -1px;\n border-color: var(--focus-ring-color);\n @include focus-ring(true);\n }\n\n // Ghost input fills remaining space\n > .form-ghost {\n flex: 1 1 0;\n min-width: var(--chip-input-ghost-min-width);\n min-height: 1.75rem;\n }\n\n // Disabled state\n &.disabled,\n &:has(.form-ghost:disabled) {\n cursor: not-allowed;\n background-color: var(--bg-2);\n opacity: 1;\n\n &:focus-within {\n border-color: var(--control-border-color);\n outline: 0;\n }\n\n > .chip {\n pointer-events: none;\n opacity: var(--control-disabled-opacity);\n }\n }\n }\n}\n","@use \"../mixins/transition\" as *;\n\n@layer components {\n .combobox-toggle {\n display: inline-flex;\n gap: .5rem;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding-inline-end: var(--control-padding-x);\n text-align: start;\n cursor: pointer;\n\n &.show {\n background-color: var(--bg-1);\n }\n\n &:disabled,\n &.disabled {\n cursor: not-allowed;\n opacity: .65;\n }\n }\n\n .combobox-value {\n display: flex;\n flex: 1;\n gap: .5rem;\n align-items: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .combobox-placeholder {\n color: color-mix(in oklch, currentcolor 65%, transparent);\n }\n\n .combobox-caret {\n flex-shrink: 0;\n @include transition(transform .2s ease-in-out);\n\n .show > & {\n transform: rotate(180deg);\n }\n }\n\n .combobox-toggle + .menu {\n --menu-max-height: 300px;\n --menu-overflow-y: auto;\n }\n\n .combobox-search {\n position: sticky;\n top: 0;\n z-index: 1;\n padding: var(--menu-padding-x, .25rem);\n background-color: var(--menu-bg, var(--bg-body));\n }\n\n .combobox-search-input {\n width: 100%;\n }\n\n .combobox-no-results {\n padding: 1rem;\n font-size: var(--font-size-sm);\n color: var(--fg-3);\n text-align: center;\n }\n}\n","@use \"../mixins/border-radius\" as *;\n\n// scss-docs-start form-field\n@layer forms {\n .form-field {\n position: relative;\n display: grid;\n gap: .5rem;\n // width: 100%;\n\n > label,\n > .form-label {\n justify-self: start;\n margin-bottom: 0;\n }\n\n &:has(> .check, > .radio, > .switch) {\n grid-template-columns: auto 1fr;\n column-gap: .5rem;\n align-items: start;\n\n > .check,\n > .radio,\n > .switch {\n grid-column: 1;\n }\n\n > :not(.check, .radio, .switch) {\n grid-column: 2;\n }\n\n > .form-label {\n grid-column: 1 / -1;\n }\n }\n }\n\n .form-field-content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n\n .form-field-card {\n position: relative;\n padding: calc(var(--spacer) * .75);\n cursor: pointer;\n border: var(--border-width) solid transparent;\n @include border-radius(var(--radius-7));\n\n &:hover {\n background-color: var(--bg-1);\n }\n\n &:has(:checked) {\n background-color: var(--bg-1);\n border-color: var(--border-color);\n }\n\n label::before {\n position: absolute;\n inset: 0;\n content: \"\";\n }\n }\n\n .form-group {\n display: grid;\n gap: .5rem;\n\n > label,\n > .form-label,\n > legend {\n justify-self: start;\n margin-bottom: 0;\n }\n }\n}\n// scss-docs-end form-field\n","@use \"../config\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/form-validation\" as *;\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid.\n// Server-side: `.is-invalid` / `.is-valid` classes work globally.\n// Client-side: `:user-invalid` pseudo-class is scoped behind `[data-bs-validate]`.\n// `:user-valid` is scoped behind `[data-bs-validate~=\"valid\"]` so success styling is opt-in.\n// Custom states (e.g., \"warning\") use only `.is-*` classes.\n\n// scss-docs-start form-validation-states\n$validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$validation-states: defaults(\n (\n \"valid\": \"success\",\n \"invalid\": \"danger\",\n ),\n $validation-states\n);\n// scss-docs-end form-validation-states\n\n// scss-docs-start form-validation-state-mixin\n@mixin form-validation-state($state, $theme) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n font-size: var(--font-size-sm);\n color: var(--#{$theme}-fg);\n }\n\n // More specific to override base tooltip styles\n .tooltip.#{$state}-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n margin-top: .1rem;\n color: var(--#{$theme}-contrast);\n text-align: center;\n background-color: var(--#{$theme}-bg);\n opacity: 1;\n @include border-radius(var(--tooltip-border-radius));\n }\n\n // Generic sibling feedback display — works for .form-control, .form-range,\n // and any element where feedback is a direct sibling.\n @include form-validation-state-selector($state) {\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n\n // Form control\n .form-control {\n @include form-validation-state-selector($state) {\n --control-border-color: var(--#{$theme}-border);\n\n &:focus-visible {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n --control-border-color: var(--#{$theme}-border);\n }\n }\n }\n\n // Checkbox — control-level styling (border, checked bg, focus ring).\n .check input {\n @include form-validation-state-selector($state) {\n --check-border-color: var(--#{$theme}-border);\n --check-checked-bg: var(--#{$theme}-bg);\n --check-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-visible {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n }\n\n // Checkbox — label color and feedback display via .form-field:has().\n .form-field:has(.check input.is-#{$state}) {\n label { color: var(--#{$theme}-fg); }\n\n .#{$state}-feedback,\n .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-field:has(.check input:user-invalid) {\n label { color: var(--#{$theme}-fg); }\n\n .invalid-feedback,\n .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-field:has(.check input:user-valid) {\n label { color: var(--#{$theme}-fg); }\n\n .valid-feedback,\n .valid-tooltip { display: block; }\n }\n }\n\n // Radio — control-level styling.\n .radio {\n @include form-validation-state-selector($state) {\n --radio-border-color: var(--#{$theme}-border);\n --radio-checked-bg: var(--#{$theme}-bg);\n --radio-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-visible {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n }\n\n // Radio — label color and feedback display via .form-field:has().\n .form-field:has(.radio.is-#{$state}) {\n label { color: var(--#{$theme}-fg); }\n\n .#{$state}-feedback,\n .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-field:has(.radio:user-invalid) {\n label { color: var(--#{$theme}-fg); }\n\n .invalid-feedback,\n .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-field:has(.radio:user-valid) {\n label { color: var(--#{$theme}-fg); }\n\n .valid-feedback,\n .valid-tooltip { display: block; }\n }\n }\n\n // Switch — control-level styling. The input is an invisible overlay;\n // all visuals are on the .switch wrapper.\n .switch:has(input.is-#{$state}) {\n --switch-border-color: var(--#{$theme}-border);\n --switch-checked-bg: var(--#{$theme}-bg);\n --switch-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .switch:has(input:user-invalid) {\n --switch-border-color: var(--#{$theme}-border);\n --switch-checked-bg: var(--#{$theme}-bg);\n --switch-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .switch:has(input:user-valid) {\n --switch-border-color: var(--#{$theme}-border);\n --switch-checked-bg: var(--#{$theme}-bg);\n --switch-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n }\n\n // Switch — label color and feedback display via .form-field:has().\n .form-field:has(.switch input.is-#{$state}) {\n label { color: var(--#{$theme}-fg); }\n\n .#{$state}-feedback,\n .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-field:has(.switch input:user-invalid) {\n label { color: var(--#{$theme}-fg); }\n\n .invalid-feedback,\n .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-field:has(.switch input:user-valid) {\n label { color: var(--#{$theme}-fg); }\n\n .valid-feedback,\n .valid-tooltip { display: block; }\n }\n }\n\n // Chip input — wrapper has the visible border; the .form-ghost inside\n // receives the native pseudo-class.\n .chip-input:has(.form-ghost.is-#{$state}) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .invalid-feedback,\n ~ .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .chip-input:has(.form-ghost:user-valid) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .valid-feedback,\n ~ .valid-tooltip { display: block; }\n }\n }\n\n // Form adorn — :user-invalid fires on the inner .form-ghost, so we\n // propagate it to the visible wrapper with :has().\n .form-adorn:has(.form-ghost.is-#{$state}) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .invalid-feedback,\n ~ .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-adorn:has(.form-ghost:user-valid) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .valid-feedback,\n ~ .valid-tooltip { display: block; }\n }\n }\n\n // Range — .form-range IS the <input>, so the mixin applies directly.\n .form-range {\n @include form-validation-state-selector($state) {\n &::-webkit-slider-thumb { background: var(--#{$theme}-bg); }\n &::-moz-range-thumb { background: var(--#{$theme}-bg); }\n\n &:focus-visible {\n &::-webkit-slider-thumb {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n &::-moz-range-thumb {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip { display: block; }\n }\n }\n\n // Input group — feedback lives outside the input-group in the parent\n // .form-field, so we use :has() to toggle display.\n .form-field:has(.input-group .form-control.is-#{$state}) {\n .#{$state}-feedback,\n .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-field:has(.input-group .form-control:user-invalid) {\n .invalid-feedback,\n .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-field:has(.input-group .form-control:user-valid) {\n .valid-feedback,\n .valid-tooltip { display: block; }\n }\n }\n\n .input-group {\n > .form-control:not(:focus),\n > .form-floating:not(:focus-within) {\n @include form-validation-state-selector($state) {\n @if $state == \"valid\" {\n z-index: 3;\n } @else if $state == \"invalid\" {\n z-index: 4;\n }\n }\n }\n }\n\n // OTP — validation applies to the wrapper; inner .form-control inherits.\n .otp {\n @include form-validation-state-selector($state) {\n .form-control {\n --control-border-color: var(--#{$theme}-border);\n }\n\n .form-control:focus {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n --control-border-color: var(--#{$theme}-border);\n }\n }\n }\n}\n// scss-docs-end form-validation-state-mixin\n\n@layer components {\n // scss-docs-start form-validation-states-loop\n @each $state, $theme in $validation-states {\n @include form-validation-state($state, $theme);\n }\n // scss-docs-end form-validation-states-loop\n}\n","// scss-docs-start form-validation-state-selector\n@mixin form-validation-state-selector($state) {\n @if & {\n &.is-#{$state} {\n @content;\n }\n\n @if $state == \"invalid\" {\n @at-root [data-bs-validate] #{&}:user-invalid {\n @content;\n }\n } @else if $state == \"valid\" {\n @at-root [data-bs-validate~=\"valid\"] #{&}:user-valid {\n @content;\n }\n }\n } @else {\n .is-#{$state} {\n @content;\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] :user-invalid {\n @content;\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] :user-valid {\n @content;\n }\n }\n }\n}\n// scss-docs-end form-validation-state-selector\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"sass:string\";\n@use \"../config\" as *;\n@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/box-shadow\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function, scss/dollar-variable-default\n\n$button-tokens: () !default;\n\n// scss-docs-start btn-tokens\n$button-tokens: defaults(\n (\n --btn-min-height: var(--btn-input-min-height),\n --btn-padding-x: var(--btn-input-padding-x),\n --btn-padding-y: var(--btn-input-padding-y),\n --btn-font-size: var(--btn-input-font-size),\n --btn-font-weight: var(--btn-input-font-weight),\n --btn-line-height: var(--btn-input-line-height),\n --btn-color: var(--fg-body),\n --btn-white-space: nowrap,\n --btn-border-width: var(--border-width),\n --btn-border-color: transparent,\n --btn-border-radius: var(--radius-5),\n --btn-hover-border-color: transparent,\n --btn-disabled-opacity: .65,\n --btn-transition-timing: .15s ease-in-out,\n --btn-transition-property: \"color, background-color, border-color, box-shadow\",\n --btn-transition: var(--btn-transition-property) var(--btn-transition-timing),\n ),\n $button-tokens\n);\n// scss-docs-end btn-tokens\n\n$button-link-tokens: () !default;\n\n// scss-docs-start button-link-tokens\n$button-link-tokens: defaults(\n (\n --btn-font-weight: var(--font-weight-normal),\n --btn-color: var(--link-color),\n --btn-bg: transparent,\n --btn-border-color: transparent,\n --btn-hover-color: var(--link-hover-color),\n --btn-hover-bg: transparent,\n --btn-hover-border-color: transparent,\n --btn-active-color: var(--link-hover-color),\n --btn-active-bg: transparent,\n --btn-active-border-color: transparent,\n --btn-disabled-color: var(--fg-3),\n --btn-disabled-border-color: transparent,\n ),\n $button-link-tokens\n);\n// scss-docs-end button-link-tokens\n\n$button-styled-tokens: () !default;\n\n// scss-docs-start button-styled-tokens\n$button-styled-tokens: defaults(\n (\n --btn-gradient-start: rgb(255 255 255 / 12.5%),\n --btn-gradient-end: rgb(0 0 0 / 7.5%) ,\n --btn-border-mix-color: #000,\n --btn-border-mix-amount: 10%,\n --btn-border-hover-mix-amount: 12.5%,\n --btn-border-active-mix-amount: 20%,\n --btn-shadow: \"0 1px 2px rgb(0 0 0 / 15%), inset 0 1px 0 rgb(255 255 255 / 10%)\",\n --btn-active-shadow: inset 0 2px 4px rgb(0 0 0 / .15) ,\n ),\n $button-styled-tokens\n);\n// scss-docs-end button-styled-tokens\n\n// scss-docs-start button-sizes\n$button-sizes: () !default;\n$button-sizes: defaults(\n (\"xs\", \"sm\", \"lg\"),\n $button-sizes\n);\n// scss-docs-end button-sizes\n\n$button-variants: () !default;\n\n// scss-docs-start btn-variants\n$button-variants: defaults(\n (\n \"solid\": (\n \"base\": (\n \"bg\": \"bg\",\n \"color\": \"contrast\",\n \"border-color\": \"bg\"\n ),\n \"hover\": (\n \"bg\": \"bg\",\n \"border-color\": \"bg\",\n \"color\": \"contrast\"\n ),\n \"active\": (\n \"bg\": \"bg\",\n \"border-color\": \"bg\",\n \"color\": \"contrast\"\n )\n ),\n \"outline\": (\n \"base\": (\n \"bg\": \"transparent\",\n \"color\": \"fg\",\n \"border-color\": \"border\"\n ),\n \"hover\": (\n \"bg\": \"bg\",\n \"color\": \"contrast\",\n \"border-color\": \"bg\"\n ),\n \"active\": (\n \"bg\": \"bg\",\n \"color\": \"contrast\",\n \"border-color\": \"bg\"\n )\n ),\n \"subtle\": (\n \"base\": (\n \"bg\": \"bg-subtle\",\n \"color\": \"fg\",\n \"border-color\": \"transparent\"\n ),\n \"hover\": (\n \"bg\": (\"bg-muted\", \"bg-subtle\"),\n \"color\": \"fg-emphasis\"\n ),\n \"active\": (\n \"bg\": \"bg-subtle\",\n \"color\": \"fg-emphasis\"\n )\n ),\n \"text\": (\n \"base\": (\n \"color\": \"fg\",\n \"bg\": \"transparent\",\n \"border-color\": \"transparent\"\n ),\n \"hover\": (\n \"color\": \"fg\",\n \"bg\": \"bg-subtle\"\n ),\n \"active\": (\n \"color\": \"fg\",\n \"bg\": \"bg-subtle\"\n )\n )\n ),\n $button-variants\n);\n// scss-docs-end btn-variants\n// stylelint-enable custom-property-no-missing-var-function, scss/dollar-variable-default\n\n//\n// Base styles\n//\n\n// scss-docs-start btn-variant-selectors\n$btn-variant-selectors: (string.unquote(\".btn\"), string.unquote(\".btn-link\"), string.unquote(\".btn-icon\")) !default;\n@each $variant, $config in $button-variants {\n $btn-variant-selectors: list.append($btn-variant-selectors, string.unquote(\".btn-#{$variant}\"), comma);\n}\n// scss-docs-end btn-variant-selectors\n\n@layer components {\n #{$btn-variant-selectors} {\n @include tokens($button-tokens);\n\n display: inline-flex;\n gap: var(--btn-gap, .25rem);\n align-items: center;\n justify-content: center;\n min-height: var(--btn-min-height);\n padding: var(--btn-padding-y) var(--btn-padding-x);\n // font-family: var(--btn-font-family);\n font-size: var(--btn-font-size);\n font-weight: var(--btn-font-weight);\n line-height: var(--btn-line-height);\n color: var(--btn-color);\n text-decoration: none;\n white-space: var(--btn-white-space);\n vertical-align: middle;\n // stylelint-disable-next-line scss/at-function-named-arguments\n cursor: if(sass($enable-button-pointers): pointer; else: null);\n user-select: none;\n background-color: var(--btn-bg, var(--bg-2));\n border: var(--btn-border-width) solid var(--btn-border-color);\n @include border-radius(var(--btn-border-radius));\n @include transition(var(--btn-transition));\n\n &:hover {\n color: var(--btn-hover-color);\n background-color: var(--btn-hover-bg, var(--bg-3));\n border-color: var(--btn-hover-border-color);\n }\n\n &:focus-visible {\n @include focus-ring(true);\n --focus-ring-offset: 1px;\n }\n\n &.active,\n &.show {\n color: var(--btn-active-color);\n background-color: var(--btn-active-bg, var(--bg-3));\n border-color: var(--btn-active-border-color);\n\n &:focus-visible {\n @include focus-ring(true);\n }\n }\n\n &:disabled,\n &.disabled,\n fieldset:disabled & {\n color: var(--btn-disabled-color);\n pointer-events: none;\n background-color: var(--btn-disabled-bg, var(--bg-1));\n // stylelint-disable-next-line scss/at-function-named-arguments\n background-image: if(sass($enable-gradients): none; else: null);\n border-color: var(--btn-disabled-border-color);\n opacity: var(--btn-disabled-opacity);\n }\n }\n\n // Main button style generator mixin\n // Generate button variant classes (e.g., .btn-solid, .btn-outline, etc.)\n // scss-docs-start btn-variant-mixin\n @each $variant, $config in $button-variants {\n .btn-#{$variant} {\n @each $property, $value in map.get($button-variants, $variant, \"base\") {\n @if $value == \"transparent\" {\n --btn-#{$property}: transparent;\n } @else {\n --btn-#{$property}: var(--theme-#{$value});\n }\n }\n\n @each $property, $value in map.get($button-variants, $variant, \"active\") {\n @if $value == \"transparent\" {\n --btn-active-#{$property}: transparent;\n } @else if $value == \"bg-subtle\" {\n --btn-active-#{$property}: var(--theme-#{$value});\n } @else {\n --btn-active-#{$property}: oklch(from var(--theme-#{$value}) calc(l * .9) calc(c * 1.15) h);\n }\n }\n @each $property, $value in map.get($button-variants, $variant, \"base\") {\n @if $value == \"transparent\" {\n --btn-disabled-#{$property}: transparent;\n } @else {\n --btn-disabled-#{$property}: var(--theme-#{$value});\n }\n }\n\n &:hover {\n @each $property, $value in map.get($button-variants, $variant, \"hover\") {\n @if $value == \"transparent\" {\n --btn-hover-#{$property}: transparent;\n } @else if meta.type-of($value) == \"list\" {\n $first-value: list.nth($value, 1);\n $second-value: list.nth($value, 2);\n --btn-hover-#{$property}: color-mix(in oklch, var(--theme-#{$first-value}) 50%, var(--theme-#{$second-value}));\n } @else if $value == \"bg-subtle\" {\n --btn-hover-#{$property}: var(--theme-#{$value});\n } @else {\n --btn-hover-#{$property}: oklch(from var(--theme-#{$value}) calc(l * .95) calc(c * 1.1) h);\n }\n }\n }\n\n &:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n\n &:active,\n &.active,\n &.btn-check:has(input:checked) {\n @each $property, $value in map.get($button-variants, $variant, \"active\") {\n @if $value == \"transparent\" {\n --btn-active-#{$property}: transparent;\n } @else if $value == \"bg-subtle\" {\n --btn-active-#{$property}: var(--theme-#{$value});\n } @else {\n --btn-active-#{$property}: oklch(from var(--theme-#{$value}) calc(l * .9) calc(c * 1.15) h);\n }\n }\n }\n\n // Disabled state for toggle buttons\n &:disabled,\n &.disabled,\n &.btn-check:has(input:disabled) {\n @each $property, $value in map.get($button-variants, $variant, \"base\") {\n @if $value == \"transparent\" {\n --btn-disabled-#{$property}: transparent;\n } @else {\n --btn-disabled-#{$property}: var(--theme-#{$value});\n }\n }\n }\n }\n }\n // scss-docs-end btn-variant-mixin\n\n //\n // Link buttons\n //\n\n // Make a button look and behave like a link\n .btn-link {\n @include tokens($button-link-tokens);\n\n color: var(--theme-fg, var(--btn-color));\n text-decoration: var(--link-decoration);\n\n @if $enable-gradients {\n background-image: none;\n }\n\n &:focus-visible {\n color: var(--theme-fg, var(--btn-color));\n }\n\n &:hover {\n color: var(--theme-fg-emphasis, var(--btn-hover-color));\n }\n\n // No need for an active state here\n }\n\n //\n // Button Sizes\n //\n\n // Generate button size classes from the $button-sizes map\n // Skip \"md\" as it's the default size for .btn\n\n // scss-docs-start btn-sizes-loop\n @each $size, $_ in $button-sizes {\n .btn-#{$size},\n .btn-group-#{$size} > [class*=\"btn-\"] {\n --btn-min-height: var(--btn-input-#{$size}-min-height);\n --btn-padding-y: var(--btn-input-#{$size}-padding-y);\n --btn-padding-x: var(--btn-input-#{$size}-padding-x);\n --btn-font-size: var(--btn-input-#{$size}-font-size);\n --btn-line-height: var(--btn-input-#{$size}-line-height);\n --btn-border-radius: var(--btn-input-#{$size}-border-radius);\n }\n }\n // scss-docs-end btn-sizes-loop\n\n .btn-icon {\n align-items: center;\n justify-content: center;\n aspect-ratio: 1;\n padding: 0;\n }\n\n //\n // Toggle buttons (.btn-check)\n //\n // Checkbox and radio inputs that look like buttons. Add .btn-check to a\n // label with button classes, with the input nested inside.\n //\n // Example: <label class=\"btn-check btn-solid theme-primary\"><input type=\"checkbox\">Toggle</label>\n\n .btn-check {\n > input {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n\n &:has(input:checked) {\n color: var(--btn-active-color);\n background-color: var(--btn-active-bg, var(--bg-3));\n // stylelint-disable-next-line scss/at-function-named-arguments\n background-image: if(sass($enable-gradients): none; else: null);\n border-color: var(--btn-active-border-color);\n @include box-shadow(var(--btn-active-shadow));\n }\n\n &:has(input:focus-visible) {\n @include focus-ring(true);\n --focus-ring-offset: 1px;\n }\n\n &:has(input:disabled) {\n color: var(--btn-disabled-color);\n pointer-events: none;\n background-color: var(--btn-disabled-bg, var(--bg-1));\n // stylelint-disable-next-line scss/at-function-named-arguments\n background-image: if(sass($enable-gradients): none; else: null);\n border-color: var(--btn-disabled-border-color);\n opacity: var(--btn-disabled-opacity);\n @include box-shadow(none);\n }\n }\n\n //\n // Styled buttons\n //\n // Add visual depth with gradients and shadows. Customize via CSS variables.\n\n .btn-styled {\n @include tokens($button-styled-tokens);\n\n background-image:\n linear-gradient(\n to bottom,\n var(--btn-gradient-start),\n var(--btn-gradient-end)\n );\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-mix-amount));\n box-shadow: var(--btn-shadow);\n\n &:hover {\n background-image:\n linear-gradient(\n to bottom,\n var(--btn-gradient-start),\n var(--btn-gradient-end)\n );\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-hover-mix-amount));\n }\n\n &:active,\n &.active {\n background-image: none;\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-active-mix-amount));\n box-shadow: var(--btn-active-shadow);\n }\n\n &:disabled,\n &.disabled {\n background-image: none;\n box-shadow: none;\n }\n }\n}\n","@use \"../mixins/border-radius\" as *;\n\n@layer components {\n // Make the div behave like a button\n .btn-group,\n .btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; // match .btn alignment given font-size hack above\n\n > [class*=\"btn-\"] {\n position: relative;\n flex: 1 1 auto;\n\n &:hover {\n z-index: 1;\n }\n }\n\n > .btn-check:has(input:checked),\n > [class*=\"btn-\"]:active,\n > [class*=\"btn-\"].active {\n z-index: 2;\n }\n\n > .btn-check:has(input:focus),\n > [class*=\"btn-\"]:focus {\n z-index: 3;\n }\n }\n\n .btn-group-divider {\n > [class*=\"btn-\"] + [class*=\"btn-\"] {\n &::before {\n position: absolute;\n // top: 25%;\n // bottom: 25%;\n // left: calc(var(--btn-border-width) * -1);\n z-index: 3;\n // width: var(--btn-border-width);\n content: \"\";\n background-color: var(--btn-color);\n opacity: .25;\n }\n }\n }\n\n .btn-group:where(.btn-group-divider) {\n > [class*=\"btn-\"] + [class*=\"btn-\"] {\n &::before {\n top: 25%;\n bottom: 25%;\n left: calc(var(--btn-border-width) * -1);\n width: var(--btn-border-width);\n }\n }\n }\n\n .btn-group-vertical:where(.btn-group-divider) {\n > [class*=\"btn-\"] + [class*=\"btn-\"] {\n &::before {\n top: calc(var(--btn-border-width) * -1);\n right: var(--btn-padding-x);\n left: var(--btn-padding-x);\n height: var(--btn-border-width);\n }\n }\n }\n\n // Optional: Group multiple button groups together for a toolbar\n .btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: .5rem;\n justify-content: flex-start;\n\n .input-group {\n width: auto;\n }\n }\n\n .btn-group {\n @include border-radius(var(--btn-border-radius));\n\n // Prevent double borders when buttons are next to each other\n > [class*=\"btn-\"]:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-inline-start: calc(-1 * var(--btn-border-width));\n }\n\n // Reset rounded corners\n > [class*=\"btn-\"]:not(:last-child, :has(+ .menu)),\n > .btn-group:not(:last-child) > [class*=\"btn-\"] {\n @include border-end-radius(0);\n }\n\n // The left radius should be 0 if the button is not the first child\n > [class*=\"btn-\"]:not(:first-child),\n > .btn-group:not(:first-child) > [class*=\"btn-\"] {\n @include border-start-radius(0);\n }\n }\n\n //\n // Vertical button groups\n //\n\n .btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n > [class*=\"btn-\"],\n > .btn-group {\n width: 100%;\n }\n\n > [class*=\"btn-\"]:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-top: calc(-1 * var(--btn-border-width));\n }\n\n // Reset rounded corners\n > [class*=\"btn-\"]:not(:last-child, :has(+ .menu)),\n > .btn-group:not(:last-child) > [class*=\"btn-\"] {\n @include border-bottom-radius(0);\n }\n\n // The top radius should be 0 if the button is not the first child\n > [class*=\"btn-\"]:not(:first-child),\n > .btn-group:not(:first-child) > [class*=\"btn-\"] {\n @include border-top-radius(0);\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n$btn-close-tokens: () !default;\n\n// scss-docs-start btn-close-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$btn-close-tokens: defaults(\n (\n --btn-close-size: 1.25rem,\n --btn-close-color: inherit,\n --btn-close-opacity: .5,\n --btn-close-hover-opacity: .75,\n --btn-close-focus-opacity: .85,\n --btn-close-disabled-opacity: .25,\n ),\n $btn-close-tokens\n);\n// scss-docs-end btn-close-tokens\n\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n@layer components {\n .btn-close {\n @include tokens($btn-close-tokens);\n\n box-sizing: content-box;\n width: var(--btn-close-size);\n height: var(--btn-close-size);\n padding: 0;\n color: var(--btn-close-color);\n background: transparent; // for button elements\n border: 0; // for button elements\n @include border-radius(var(--radius-5));\n opacity: var(--btn-close-opacity);\n\n > svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: currentcolor;\n }\n\n // Override <a>'s hover style\n &:hover {\n color: var(--btn-close-color);\n text-decoration: none;\n opacity: var(--btn-close-hover-opacity);\n }\n\n &:focus-visible {\n opacity: var(--btn-close-focus-opacity);\n @include focus-ring();\n }\n\n &:disabled,\n &.disabled {\n pointer-events: none;\n user-select: none;\n opacity: var(--btn-close-disabled-opacity);\n }\n }\n}\n","@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/tokens\" as *;\n\n$accordion-tokens: () !default;\n\n// scss-docs-start accordion-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$accordion-tokens: defaults(\n (\n --accordion-padding-x: 1.25rem,\n --accordion-padding-y: 1rem,\n --accordion-color: var(--fg-body),\n --accordion-bg: var(--bg-body),\n --accordion-transition-property: \"color, background-color, border-radius\",\n --accordion-transition-timing: \".15s ease-in-out\",\n --accordion-transition: var(--accordion-transition-property) var(--accordion-timing),\n --accordion-border-color: var(--border-color),\n --accordion-border-width: var(--border-width),\n --accordion-border-radius: var(--accordion-radius, var(--radius-7)),\n --accordion-btn-color: var(--fg-2),\n --accordion-btn-bg: var(--bg-body),\n --accordion-btn-icon-width: 1rem,\n --accordion-btn-icon-transform: rotate(-180deg),\n --accordion-btn-icon-transition: transform .2s ease-in-out,\n --accordion-active-color: var(--fg),\n --accordion-active-bg: var(--bg-2),\n ),\n $accordion-tokens\n);\n// scss-docs-end accordion-tokens\n\n@layer components {\n .accordion {\n @include tokens($accordion-tokens);\n }\n\n .accordion-header {\n display: flex;\n align-items: center;\n width: 100%;\n padding: var(--accordion-btn-padding-y, var(--accordion-padding-y)) var(--accordion-btn-padding-x, var(--accordion-padding-x));\n font-size: var(--accordion-font-size, var(--font-size-base));\n color: var(--accordion-btn-color);\n text-align: start;\n list-style: none; // Remove default marker\n cursor: pointer;\n background-color: var(--accordion-btn-bg);\n @include transition(var(--accordion-transition));\n\n &::-webkit-details-marker {\n display: none;\n }\n\n .accordion-icon {\n flex-shrink: 0;\n width: var(--accordion-btn-icon-width);\n height: var(--accordion-btn-icon-width);\n margin-inline-start: auto;\n color: currentcolor;\n @include transition(var(--accordion-btn-icon-transition));\n }\n\n &:hover {\n z-index: 2;\n }\n\n &:focus-visible {\n position: relative;\n z-index: 3;\n @include focus-ring(true);\n outline-offset: -1px;\n }\n }\n\n .accordion-item {\n color: var(--accordion-color);\n background-color: var(--accordion-bg);\n border: var(--accordion-border-width) solid var(--accordion-border-color);\n\n &:first-of-type {\n @include border-top-radius(var(--accordion-border-radius));\n\n > .accordion-header {\n @include border-top-radius(calc(var(--accordion-border-radius) - var(--accordion-border-width)));\n }\n }\n\n &:not(:first-of-type) {\n border-block-start: 0;\n }\n\n // Only set a border-radius on the last item if the accordion is collapsed\n &:last-of-type {\n @include border-bottom-radius(var(--accordion-border-radius));\n\n > .accordion-header {\n @include border-bottom-radius(calc(var(--accordion-border-radius) - var(--accordion-border-width)));\n }\n\n > .accordion-body {\n @include border-bottom-radius(var(--accordion-border-radius));\n }\n }\n\n // Open state - details[open] applies these styles\n &[open] {\n border-color: var(--theme-border, var(--accordion-border-color));\n\n > .accordion-header {\n color: var(--theme-fg, var(--accordion-active-color));\n background-color: var(--theme-bg-subtle, var(--accordion-active-bg));\n box-shadow: inset 0 calc(-1 * var(--accordion-border-width)) 0 var(--theme-border, var(--accordion-border-color));\n\n .accordion-icon {\n transform: var(--accordion-btn-icon-transform);\n }\n }\n\n // Remove bottom radius from header when open (even on last item)\n &:last-of-type > .accordion-header {\n @include border-bottom-radius(0);\n }\n }\n }\n\n .accordion-body {\n padding: var(--accordion-body-padding-y, var(--accordion-padding-y)) var(--accordion-body-padding-x, var(--accordion-padding-x));\n }\n\n\n // Flush accordion items\n //\n // Remove borders and border-radius to keep accordion items edge-to-edge.\n\n .accordion-flush {\n > .accordion-item {\n border-inline: 0;\n @include border-radius(0);\n\n &:first-child {\n border-block-start: 0;\n }\n\n &:last-child {\n border-block-end: 0;\n }\n\n > .accordion-header,\n > .accordion-body {\n @include border-radius(0);\n }\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/tokens\" as *;\n\n$alert-tokens: () !default;\n\n// scss-docs-start alert-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$alert-tokens: defaults(\n (\n --alert-gap: var(--spacer-3),\n --alert-bg: var(--theme-bg-subtle, var(--bg-1)),\n --alert-padding-x: var(--spacer),\n --alert-padding-y: var(--spacer),\n --alert-color: var(--theme-fg, inherit),\n --alert-border-color: var(--theme-border, var(--border-color)),\n --alert-border: var(--border-width) solid var(--alert-border-color),\n --alert-border-radius: var(--radius-5),\n --alert-link-color: inherit,\n --hr-border-color: var(--theme-border, var(--border-color)),\n ),\n $alert-tokens\n);\n// scss-docs-end alert-tokens\n\n@layer components {\n .alert {\n @include tokens($alert-tokens);\n\n display: flex;\n gap: var(--alert-gap);\n align-items: start;\n padding: var(--alert-padding-y) var(--alert-padding-x);\n color: var(--alert-color);\n background-color: var(--alert-bg);\n border: var(--alert-border);\n @include border-radius(var(--alert-border-radius));\n }\n\n .alert > p {\n margin-bottom: 0;\n }\n\n .alert-heading {\n // Specified to prevent conflicts of changing $headings-color\n color: inherit;\n }\n\n // Provide class for links that match alerts\n .alert-link {\n font-weight: var(--font-weight-semibold);\n color: var(--alert-link-color);\n }\n}\n","@use \"sass:map\";\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/tokens\" as *;\n\n$avatar-tokens: () !default;\n\n// stylelint-disable custom-property-no-missing-var-function\n// scss-docs-start avatar-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$avatar-tokens: defaults(\n (\n --avatar-size: 2.5rem,\n --avatar-border-radius: 50%,\n --avatar-border-width: 2px,\n --avatar-border-color: var(--bg-body),\n --avatar-bg: var(--bg-2),\n --avatar-color: var(--fg-body),\n // --avatar-font-weight: var(--font-weight-medium), // Defaults to fallback\n --avatar-status-size: .75rem,\n --avatar-status-border-width: 2px,\n --avatar-status-border-color: var(--bg-body),\n --avatar-stack-spacing: -.3,\n --avatar-stack-transition: \"transform .2s ease-in-out\",\n ),\n $avatar-tokens\n);\n// scss-docs-end avatar-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n// scss-docs-start avatar-sizes\n$avatar-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$avatar-sizes: defaults(\n (\n \"xs\": (\n size: 1.5rem,\n status-size: .625rem,\n ),\n \"sm\": (\n size: 2rem,\n ),\n \"lg\": (\n size: 3rem,\n status-size: 1rem,\n ),\n \"xl\": (\n size: 4rem,\n status-size: 1.25rem,\n ),\n ),\n $avatar-sizes\n);\n// scss-docs-end avatar-sizes\n\n@layer components {\n .avatar {\n @include tokens($avatar-tokens);\n\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--avatar-size);\n height: var(--avatar-size);\n font-size: calc(var(--avatar-size) * .4);\n font-weight: var(--avatar-font-weight, var(--font-weight-medium));\n line-height: 1;\n color: var(--theme-contrast, var(--avatar-color));\n text-transform: uppercase;\n vertical-align: middle;\n background-color: var(--theme-bg, var(--avatar-bg));\n @include border-radius(var(--avatar-border-radius));\n }\n\n .avatar-subtle {\n color: var(--theme-fg, var(--avatar-color));\n background-color: var(--theme-bg-subtle, var(--avatar-bg));\n }\n\n .avatar-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n @include border-radius(inherit);\n }\n\n .avatar-status {\n position: absolute;\n right: calc(var(--avatar-status-border-width) * -1);\n bottom: calc(var(--avatar-status-border-width) * -1);\n width: var(--avatar-status-size);\n height: var(--avatar-status-size);\n background-color: var(--gray-400);\n border: var(--avatar-status-border-width) solid var(--avatar-status-border-color);\n @include border-radius(50%);\n\n &.status-online {\n background-color: var(--green-500);\n }\n\n &.status-offline {\n background-color: var(--gray-400);\n @include border-radius(20%);\n }\n\n &.status-busy {\n background-color: var(--red-500);\n @include border-radius(20%);\n }\n\n &.status-away {\n background-color: var(--yellow-500);\n }\n }\n\n .avatar-stack {\n display: inline-flex;\n flex-direction: row-reverse;\n\n .avatar {\n // Stack spacing is calculated as a percentage of avatar size\n margin-left: calc(var(--avatar-size) * var(--avatar-stack-spacing));\n border: var(--avatar-border-width) solid var(--avatar-border-color);\n mask-image: none;\n @include transition(var(--avatar-stack-transition));\n\n &:last-child {\n margin-left: 0;\n }\n\n &:hover {\n z-index: 1;\n transform: translateY(-2px);\n }\n }\n }\n\n @each $size, $tokens in $avatar-sizes {\n .avatar-#{$size},\n .avatar-stack-#{$size} {\n --avatar-size: #{map.get($tokens, size)};\n\n @if map.has-key($tokens, status-size) {\n --avatar-status-size: #{map.get($tokens, status-size)};\n }\n }\n }\n}\n","@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/tokens\" as *;\n\n$badge-tokens: () !default;\n\n// scss-docs-start badge-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$badge-tokens: defaults(\n (\n --badge-padding-x: .625em,\n --badge-padding-y: .25em,\n --badge-font-size: clamp(12px, .75em, .75em),\n --badge-font-weight: var(--font-weight-semibold),\n --badge-color: inherit,\n --badge-bg: var(--bg-2),\n --badge-border-width: var(--border-width),\n --badge-border-color: transparent,\n --badge-border-radius: var(--radius-7),\n ),\n $badge-tokens\n);\n// scss-docs-end badge-tokens\n\n// scss-docs-start badge-variants\n$badge-variants: (\n \"subtle\": (\n \"color\": \"fg\",\n \"bg\": \"bg-subtle\",\n \"border-color\": \"transparent\"\n ),\n \"outline\": (\n \"color\": \"fg\",\n \"bg\": \"transparent\",\n \"border-color\": \"border\"\n )\n) !default;\n// scss-docs-end badge-variants\n\n@layer components {\n .badge {\n @include tokens($badge-tokens);\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 1.375rem;\n padding: var(--badge-padding-y) var(--badge-padding-x);\n font-size: var(--badge-font-size);\n font-weight: var(--badge-font-weight);\n line-height: 1;\n color: var(--theme-contrast, var(--badge-color));\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n background-color: var(--theme-bg, var(--badge-bg));\n border: var(--badge-border-width) solid var(--badge-border-color);\n @include border-radius(var(--badge-border-radius));\n // @include gradient-bg();\n\n // Empty badges collapse automatically\n &:empty {\n display: none;\n }\n }\n\n // Quick fix for badges in buttons\n .btn .badge {\n position: relative;\n top: -1px;\n }\n\n // scss-docs-start badge-variant-loop\n @each $variant, $properties in $badge-variants {\n .badge-#{$variant} {\n @each $property, $value in $properties {\n @if $value == \"transparent\" {\n --badge-#{$property}: transparent;\n } @else {\n --badge-#{$property}: var(--theme-#{$value});\n }\n }\n\n color: var(--badge-color);\n background-color: var(--badge-bg);\n border-color: var(--badge-border-color);\n }\n }\n // scss-docs-end badge-variant-loop\n}\n","@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/tokens\" as *;\n\n$breadcrumb-tokens: () !default;\n\n// scss-docs-start breadcrumb-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$breadcrumb-tokens: defaults(\n (\n --breadcrumb-margin-bottom: 1rem,\n --breadcrumb-font-size: inherit,\n --breadcrumb-bg: transparent,\n --breadcrumb-border-radius: var(--radius-5),\n --breadcrumb-divider-color: var(--fg-4),\n --breadcrumb-link-padding-x: .75rem,\n --breadcrumb-link-padding-y: .25rem,\n --breadcrumb-link-color: var(--fg-3),\n --breadcrumb-link-hover-color: var(--fg-2),\n --breadcrumb-link-hover-bg: var(--bg-1),\n --breadcrumb-link-active-color: var(--fg-1),\n --breadcrumb-link-border-radius: var(--radius-7),\n ),\n $breadcrumb-tokens\n);\n// scss-docs-end breadcrumb-tokens\n\n@layer components {\n .breadcrumb {\n @include tokens($breadcrumb-tokens);\n\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n padding: var(--breadcrumb-padding-y, 0) var(--breadcrumb-padding-x, 0);\n font-size: var(--breadcrumb-font-size);\n list-style: none;\n background-color: var(--breadcrumb-bg);\n @include border-radius(var(--breadcrumb-border-radius));\n }\n\n .breadcrumb-item {\n display: flex;\n }\n\n .breadcrumb-divider {\n margin-inline: calc(var(--breadcrumb-link-padding-x) / 4);\n color: var(--breadcrumb-divider-color);\n }\n\n .breadcrumb-link {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 2.25rem;\n padding: var(--breadcrumb-link-padding-y) var(--breadcrumb-link-padding-x);\n color: var(--breadcrumb-link-color);\n text-decoration: none;\n @include border-radius(var(--breadcrumb-link-border-radius));\n @include transition(.1s text-decoration-color ease-in-out);\n\n &:hover {\n z-index: 2;\n color: var(--breadcrumb-link-hover-color);\n background-color: var(--breadcrumb-link-hover-bg);\n }\n\n &.active {\n color: var(--breadcrumb-link-active-color);\n }\n }\n}\n","@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/tokens\" as *;\n\n$chip-tokens: () !default;\n\n// stylelint-disable custom-property-no-missing-var-function\n// scss-docs-start chip-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$chip-tokens: defaults(\n (\n --chip-height: 1.75rem,\n --chip-padding-x: .625rem,\n --chip-gap: .3125rem,\n --chip-border-radius: var(--radius-pill),\n --chip-img-size: 1.25rem,\n --chip-icon-size: 1rem,\n --chip-dismiss-size: 1rem,\n --chip-dismiss-opacity: .65,\n --chip-dismiss-hover-opacity: 1,\n --chip-color: var(--theme-fg, var(--fg-body)),\n --chip-bg: var(--theme-bg-subtle, var(--bg-2)),\n --chip-border-color: transparent,\n --chip-selected-color: var(--theme-contrast, var(--primary-contrast)),\n --chip-selected-bg: var(--theme-bg, var(--primary-bg)),\n --chip-selected-border-color: var(--theme-bg, var(--primary-bg)),\n ),\n $chip-tokens\n);\n// scss-docs-end chip-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer components {\n .chip {\n @include tokens($chip-tokens);\n\n display: inline-flex;\n gap: var(--chip-gap);\n align-items: center;\n height: var(--chip-height);\n padding-inline: var(--chip-padding-x);\n font-size: var(--chip-font-size, var(--font-size-sm));\n font-weight: var(--chip-font-weight, var(--font-weight-base));\n line-height: var(--chip-line-height, 1.25rem);\n color: var(--chip-color);\n text-decoration: none;\n white-space: nowrap;\n vertical-align: middle;\n cursor: pointer;\n background-color: var(--chip-bg);\n border: var(--border-width) solid var(--chip-border-color);\n @include border-radius(var(--chip-border-radius));\n\n &:hover {\n --chip-bg: var(--theme-bg-muted, var(--bg-3));\n }\n\n &:focus-visible {\n outline: 0;\n // @include focus-ring();\n }\n\n &.active {\n --chip-color: var(--chip-selected-color);\n --chip-bg: var(--chip-selected-bg);\n --chip-border-color: var(--chip-selected-border-color);\n\n &:hover {\n --chip-bg: var(--chip-selected-bg);\n opacity: .9;\n }\n }\n\n &.disabled,\n &:disabled {\n pointer-events: none;\n opacity: .65;\n }\n }\n\n .chip-img {\n width: var(--chip-img-size);\n height: var(--chip-img-size);\n @include border-radius(50%);\n\n &:first-child {\n margin-inline-start: -.375rem;\n }\n }\n\n // Chip icon (left side)\n .chip-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n margin-inline-start: calc(var(--chip-gap) * -.25);\n\n > svg {\n display: block; // Prevents baseline alignment issues\n width: var(--chip-icon-size);\n height: var(--chip-icon-size);\n }\n\n > img {\n width: var(--chip-icon-size);\n height: var(--chip-icon-size);\n object-fit: cover;\n @include border-radius(50%);\n }\n }\n\n // Dismiss button (right side)\n .chip-dismiss {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--chip-min-height);\n height: var(--chip-min-height);\n padding: 0;\n // margin-inline-start: calc(var(--chip-padding-x) * -.5);\n margin-inline-end: calc(var(--chip-padding-x) * -.25);\n color: inherit;\n cursor: pointer;\n background: transparent;\n border: 0;\n opacity: var(--chip-dismiss-opacity);\n // @include transition(opacity .15s ease-in-out);\n\n &:hover {\n opacity: var(--chip-dismiss-hover-opacity);\n }\n\n &:focus-visible {\n outline: 0;\n opacity: 1;\n @include focus-ring();\n }\n\n > svg {\n display: block; // Prevents baseline alignment issues\n width: var(--chip-dismiss-size);\n height: var(--chip-dismiss-size);\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/tokens\" as *;\n@use \"layout/breakpoints\" as *;\n\n$card-tokens: () !default;\n\n// scss-docs-start card-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$card-tokens: defaults(\n (\n --card-spacer-y: var(--spacer-5),\n --card-spacer-x: var(--spacer-5),\n --card-subtitle-color: inherit,\n --card-border-width: var(--border-width),\n --card-border-color: var(--border-color-translucent),\n --card-border-radius: var(--radius-7),\n --card-box-shadow: none,\n --card-inner-border-radius: calc(var(--radius-7) - var(--border-width)),\n --card-cap-padding-y: var(--spacer-3),\n --card-cap-padding-x: var(--spacer),\n --card-cap-bg: var(--bg-1),\n --card-cap-color: inherit,\n --card-height: auto,\n --card-color: inherit,\n --card-bg: var(--bg-body),\n --card-img-overlay-padding: var(--card-spacer-y),\n --card-group-margin: #{$grid-gutter-x * .5},\n --card-body-gap: calc(var(--card-spacer-y) * .5),\n ),\n $card-tokens\n);\n// scss-docs-end card-tokens\n\n@layer components {\n .card {\n @include tokens($card-tokens);\n\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n height: var(--card-height);\n color: var(--fg-body);\n word-wrap: break-word;\n background-color: var(--card-bg);\n // border: var(--card-border-width) solid var(--card-border-color);\n // @include border-radius(var(--card-border-radius));\n @include box-shadow(var(--card-box-shadow));\n\n > hr {\n margin-inline: 0;\n }\n }\n\n .card-body {\n display: flex;\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n // as much space as possible, ensuring footers are aligned to the bottom.\n flex: 1 1 auto;\n flex-direction: column;\n gap: var(--card-body-gap);\n align-items: flex-start;\n padding: var(--card-spacer-y) var(--card-spacer-x);\n color: var(--card-color);\n border: solid var(--theme-bg, var(--card-border-color));\n border-width: 0 var(--card-border-width);\n\n > * {\n margin-block: 0;\n }\n }\n\n .card-body,\n .card-list {\n border: solid var(--theme-bg, var(--card-border-color));\n border-width: 0 var(--card-border-width);\n\n &:first-child {\n @include border-top-radius(var(--card-border-radius));\n border-top-width: var(--card-border-width);\n }\n\n &:last-child {\n @include border-bottom-radius(var(--card-border-radius));\n border-bottom-width: var(--card-border-width);\n }\n\n &:not(:first-child, :last-child) {\n border-block-end-width: var(--card-border-width);\n }\n }\n\n .card-title,\n .card-subtitle,\n .card-text {\n align-self: stretch;\n }\n\n .card-subtitle {\n margin-top: calc(var(--card-body-gap) * -.5);\n }\n\n .card-header {\n padding: var(--card-cap-padding-y) var(--card-cap-padding-x);\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\n color: var(--theme-contrast, var(--card-cap-color));\n background-color: var(--theme-bg, var(--card-cap-bg));\n border: var(--card-border-width) solid var(--theme-bg, var(--card-border-color));\n\n &:first-child {\n @include border-radius(var(--card-inner-border-radius) var(--card-inner-border-radius) 0 0);\n }\n }\n\n .card-footer {\n padding: var(--card-cap-padding-y) var(--card-cap-padding-x);\n color: var(--card-cap-color);\n background-color: var(--theme-bg, var(--card-cap-bg));\n border: var(--card-border-width) solid var(--theme-bg, var(--card-border-color));\n\n &:last-child {\n @include border-radius(0 0 var(--card-inner-border-radius) var(--card-inner-border-radius));\n }\n }\n\n .card-translucent {\n background-color: color-mix(in oklch, var(--card-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n\n .card-header,\n .card-footer {\n background-color: color-mix(in oklch, var(--card-cap-bg) 60%, transparent);\n }\n }\n\n .card-subtle {\n border-color: var(--theme-border, var(--card-border-color));\n\n .card-header {\n color: var(--theme-fg-emphasis, currentcolor);\n background-color: var(--theme-bg-subtle, var(--card-cap-bg));\n border-color: var(--theme-border, var(--card-border-color));\n }\n\n .card-footer {\n color: var(--theme-fg-emphasis, currentcolor);\n background-color: var(--theme-bg-subtle, var(--card-cap-bg));\n border-color: var(--theme-border, var(--card-border-color));\n }\n\n .card-body,\n .card-list {\n border-color: var(--theme-border, var(--card-border-color));\n }\n }\n\n //\n // Header navs\n //\n\n // Combined selector because of specificity match with `.nav` base class\n .nav.card-header-tabs {\n margin-inline: calc(-.5 * var(--card-cap-padding-x));\n margin-bottom: calc(-1 * var(--card-cap-padding-y));\n border-block-end: 0;\n\n .nav-link.active {\n background-color: var(--card-bg);\n border-block-end-color: var(--card-bg);\n }\n }\n\n // Card image\n .card-img-overlay {\n position: absolute;\n inset: 0;\n padding: var(--card-img-overlay-padding);\n @include border-radius(var(--card-inner-border-radius));\n }\n\n .card-img,\n .card-img-top,\n .card-img-bottom {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n outline: var(--card-border-width) solid var(--card-border-color);\n outline-offset: calc(var(--card-border-width) * -1);\n }\n\n .card-img,\n .card-img-top {\n @include border-top-radius(var(--card-inner-border-radius));\n }\n\n .card-img,\n .card-img-bottom {\n @include border-bottom-radius(var(--card-inner-border-radius));\n }\n\n .card-row {\n flex-direction: row;\n\n .card-body,\n .card-list {\n border-width: var(--card-border-width) 0;\n @include border-radius(0);\n\n &:first-child {\n @include border-start-radius(var(--card-inner-border-radius));\n border-inline-start-width: var(--card-border-width);\n }\n\n &:last-child {\n @include border-end-radius(var(--card-inner-border-radius));\n border-inline-end-width: var(--card-border-width);\n }\n\n &:not(:first-child, :last-child) {\n border-inline-end-width: var(--card-border-width);\n }\n }\n }\n\n .card-img-start {\n @include border-start-radius(var(--card-inner-border-radius));\n }\n\n .card-img-end {\n @include border-end-radius(var(--card-inner-border-radius));\n }\n\n //\n // Card groups\n //\n\n .card-group {\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n margin-bottom: var(--card-group-margin);\n }\n\n @include media-breakpoint-up(sm) {\n display: flex;\n flex-flow: row wrap;\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n flex: 1 0 0;\n margin-bottom: 0;\n\n + .card {\n margin-inline-start: 0;\n border-inline-start: 0;\n }\n\n // Handle rounded corners\n @if $enable-rounded {\n &:not(:last-child) {\n @include border-end-radius(0);\n\n > .card-img-top,\n > .card-header,\n > .card-body {\n border-start-end-radius: 0;\n }\n > .card-img-bottom,\n > .card-footer,\n > .card-body {\n border-end-end-radius: 0;\n }\n }\n\n &:not(:first-child) {\n @include border-start-radius(0);\n\n > .card-img-top,\n > .card-header,\n > .card-body {\n border-start-start-radius: 0;\n }\n > .card-img-bottom,\n > .card-footer,\n > .card-body {\n border-end-start-radius: 0;\n }\n }\n }\n }\n }\n }\n}\n","@use \"config\" as *;\n@use \"colors\" as *;\n@use \"functions\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/color-mode\" as *;\n@use \"mixins/tokens\" as *;\n\n$carousel-tokens: () !default;\n\n// scss-docs-start carousel-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$carousel-tokens: defaults(\n (\n --carousel-control-color: #{$white},\n --carousel-control-width: 15%,\n --carousel-control-opacity: .5,\n --carousel-control-hover-opacity: .9,\n --carousel-control-transition: opacity .15s ease,\n --carousel-control-icon-filter: none,\n --carousel-indicator-width: 30px,\n --carousel-indicator-height: 3px,\n --carousel-indicator-hit-area-height: 10px,\n --carousel-indicator-spacer: 3px,\n --carousel-indicator-opacity: .5,\n --carousel-indicator-active-bg: var(--white),\n --carousel-indicator-active-opacity: 1,\n --carousel-indicator-transition: opacity .6s ease,\n --carousel-caption-width: 70%,\n --carousel-caption-color: var(--white),\n --carousel-caption-padding-y: 1.25rem,\n --carousel-caption-spacer: 1.25rem,\n --carousel-control-icon-width: 2rem,\n --carousel-control-prev-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/></svg>\"),\n --carousel-control-next-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/></svg>\"),\n --carousel-transition-duration: .6s,\n --carousel-transition: transform .6s ease-in-out,\n ),\n $carousel-tokens\n);\n// scss-docs-end carousel-tokens\n\n$carousel-dark-tokens: () !default;\n\n// scss-docs-start carousel-dark-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$carousel-dark-tokens: defaults(\n (\n --carousel-indicator-active-bg: #{$black},\n --carousel-caption-color: #{$black},\n --carousel-control-icon-filter: invert(1) grayscale(100),\n ),\n $carousel-dark-tokens\n);\n// scss-docs-end carousel-dark-tokens\n\n// Notes on the classes:\n//\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\n// even when their scroll action started on a carousel, but for compatibility (with Firefox)\n// we're preventing all actions instead\n// 2. The .carousel-item-start and .carousel-item-end is used to indicate where\n// the active slide is heading.\n// 3. .active.carousel-item is the current slide.\n// 4. .active.carousel-item-start and .active.carousel-item-end is the current\n// slide in its in-transition state. Only one of these occurs at a time.\n// 5. .carousel-item-next.carousel-item-start and .carousel-item-prev.carousel-item-end\n// is the upcoming slide in transition.\n\n@layer components {\n .carousel {\n position: relative;\n @include tokens($carousel-tokens);\n }\n\n .carousel.pointer-event {\n touch-action: pan-y;\n }\n\n .carousel-inner {\n position: relative;\n display: flow-root;\n width: 100%;\n overflow: hidden;\n }\n\n .carousel-item {\n position: relative;\n display: none;\n float: inline-start;\n width: 100%;\n margin-inline-end: -100%;\n backface-visibility: hidden;\n @include transition(var(--carousel-transition));\n }\n\n .carousel-item.active,\n .carousel-item-next,\n .carousel-item-prev {\n display: block;\n }\n\n .carousel-item-next:not(.carousel-item-start),\n .active.carousel-item-end {\n transform: translateX(100%);\n }\n\n .carousel-item-prev:not(.carousel-item-end),\n .active.carousel-item-start {\n transform: translateX(-100%);\n }\n\n //\n // Alternate transitions\n //\n\n .carousel-fade {\n .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n }\n\n .carousel-item.active,\n .carousel-item-next.carousel-item-start,\n .carousel-item-prev.carousel-item-end {\n z-index: 1;\n opacity: 1;\n }\n\n .active.carousel-item-start,\n .active.carousel-item-end {\n z-index: 0;\n opacity: 0;\n @include transition(opacity 0s var(--carousel-transition-duration));\n }\n }\n\n //\n // Left/right controls for nav\n //\n\n .carousel-control-prev,\n .carousel-control-next {\n position: absolute;\n inset-block: 0;\n z-index: 1;\n // Use flex for alignment (1-3)\n display: flex; // 1. allow flex styles\n align-items: center; // 2. vertically center contents\n justify-content: center; // 3. horizontally center contents\n width: var(--carousel-control-width);\n padding: 0;\n color: var(--carousel-control-color);\n text-align: center;\n background: none;\n filter: var(--carousel-control-icon-filter);\n border: 0;\n opacity: var(--carousel-control-opacity);\n @include transition(var(--carousel-control-transition));\n\n // Hover/focus state\n &:hover,\n &:focus {\n color: var(--carousel-control-color);\n text-decoration: none;\n outline: 0;\n opacity: var(--carousel-control-hover-opacity);\n }\n }\n .carousel-control-prev {\n inset-inline-start: 0;\n // stylelint-disable-next-line scss/at-function-named-arguments, @stylistic/function-whitespace-after\n background-image: if(sass($enable-gradients): linear-gradient(90deg, rgb(0 0 0 / .25), rgb(0 0 0 / .001)); else: null);\n }\n .carousel-control-next {\n inset-inline-end: 0;\n // stylelint-disable-next-line scss/at-function-named-arguments, @stylistic/function-whitespace-after\n background-image: if(sass($enable-gradients): linear-gradient(270deg, rgb(0 0 0 / .25), rgb(0 0 0 / .001)); else: null);\n }\n\n // Icons for within\n .carousel-control-prev-icon,\n .carousel-control-next-icon {\n display: inline-block;\n width: var(--carousel-control-icon-width);\n height: var(--carousel-control-icon-width);\n background-repeat: no-repeat;\n background-position: 50%;\n background-size: 100% 100%;\n }\n\n .carousel-control-prev-icon {\n background-image: var(--carousel-control-prev-icon-bg);\n }\n\n [dir=\"rtl\"] .carousel-control-prev-icon {\n background-image: var(--carousel-control-next-icon-bg);\n }\n\n .carousel-control-next-icon {\n background-image: var(--carousel-control-next-icon-bg);\n }\n\n [dir=\"rtl\"] .carousel-control-next-icon {\n background-image: var(--carousel-control-prev-icon-bg);\n }\n\n // Optional indicator pips/controls\n //\n // Add a container (such as a list) with the following class and add an item (ideally a focusable control,\n // like a button) with data-bs-target for each slide your carousel holds.\n\n .carousel-indicators {\n position: absolute;\n inset: auto 0 0;\n z-index: 2;\n display: flex;\n justify-content: center;\n padding: 0;\n // Use the .carousel-control's width as margin so we don't overlay those\n margin-inline: var(--carousel-control-width);\n margin-bottom: 1rem;\n\n [data-bs-target] {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: var(--carousel-indicator-width);\n height: var(--carousel-indicator-height);\n padding: 0;\n margin-inline: var(--carousel-indicator-spacer);\n text-indent: -999px;\n cursor: pointer;\n background-color: var(--carousel-indicator-active-bg);\n background-clip: padding-box;\n border: 0;\n // Use transparent borders to increase the hit area by 10px on top and bottom.\n border-block: var(--carousel-indicator-hit-area-height) solid transparent;\n opacity: var(--carousel-indicator-opacity);\n @include transition(var(--carousel-indicator-transition));\n }\n\n .active {\n opacity: var(--carousel-indicator-active-opacity);\n }\n }\n\n // Optional captions\n //\n //\n\n .carousel-caption {\n position: absolute;\n right: calc((100% - var(--carousel-caption-width)) * .5);\n bottom: var(--carousel-caption-spacer);\n left: calc((100% - var(--carousel-caption-width)) * .5);\n padding-top: var(--carousel-caption-padding-y);\n padding-bottom: var(--carousel-caption-padding-y);\n color: var(--carousel-caption-color);\n text-align: center;\n }\n\n // Dark mode carousel\n\n @mixin carousel-dark() {\n @include tokens($carousel-dark-tokens);\n }\n\n .carousel-dark {\n @include carousel-dark();\n }\n\n @if $enable-dark-mode {\n @include color-mode(dark, true) {\n @include carousel-dark();\n }\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start color-mode-mixin\n@mixin color-mode($mode: light, $root: false) {\n @if $color-mode-type == \"media-query\" {\n @if $root == true {\n @media (prefers-color-scheme: $mode) {\n :root {\n @content;\n }\n }\n } @else {\n @media (prefers-color-scheme: $mode) {\n @content;\n }\n }\n } @else {\n [data-bs-theme=\"#{$mode}\"] {\n @content;\n }\n }\n}\n// scss-docs-end color-mode-mixin\n","// stylelint-disable selector-max-attribute, property-disallowed-list, selector-no-qualifying-type -- VCP uses extensive data attributes and requires direct border-radius properties for range selection\n\n@use \"functions\" as *;\n@use \"config\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/tokens\" as *;\n\n$datepicker-tokens: () !default;\n\n// scss-docs-start datepicker-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$datepicker-tokens: defaults(\n (\n --datepicker-padding: 1rem,\n --datepicker-bg: var(--bg-body),\n --datepicker-color: var(--fg-body),\n --datepicker-border-color: var(--border-color-translucent),\n --datepicker-border-width: var(--border-width),\n --datepicker-border-radius: var(--radius-7),\n --datepicker-box-shadow: var(--box-shadow),\n --datepicker-font-size: var(--font-size-sm),\n --datepicker-min-width: 280px,\n --datepicker-zindex: #{$zindex-menu},\n --datepicker-header-font-weight: 600,\n --datepicker-weekday-color: var(--fg-3),\n --datepicker-day-hover-bg: var(--bg-1),\n --datepicker-day-selected-bg: var(--primary-bg),\n --datepicker-day-selected-color: var(--primary-contrast),\n --datepicker-day-today-bg: var(--bg-2),\n --datepicker-day-today-color: var(--fg-1),\n --datepicker-day-disabled-color: var(--fg-4),\n ),\n $datepicker-tokens\n);\n// scss-docs-end datepicker-tokens\n\n@layer components {\n [data-vc=\"calendar\"] {\n @include tokens($datepicker-tokens);\n\n position: absolute;\n z-index: var(--datepicker-zindex);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n min-width: var(--datepicker-min-width);\n padding: var(--datepicker-padding);\n font-family: var(--font-sans-serif);\n font-size: var(--datepicker-font-size);\n color: var(--datepicker-color);\n color-scheme: light dark;\n background-color: var(--datepicker-bg);\n border: var(--datepicker-border-width) solid var(--datepicker-border-color);\n box-shadow: var(--datepicker-box-shadow);\n opacity: 1;\n @include border-radius(var(--datepicker-border-radius));\n\n // Respond to Bootstrap's color mode system\n &[data-bs-theme=\"light\"] {\n color-scheme: light;\n }\n\n &[data-bs-theme=\"dark\"] {\n color-scheme: dark;\n }\n\n // Catch-all for focus styles\n button:focus-visible {\n position: relative;\n z-index: 1;\n @include focus-ring();\n }\n }\n\n [data-vc-calendar-hidden] {\n pointer-events: none;\n opacity: 0;\n }\n\n // Inline calendars\n //\n // Remove popover styling for more neutral styling\n [data-vc=\"calendar\"]:not([data-vc-input]) {\n position: relative;\n width: fit-content;\n padding: 0;\n border: 0;\n box-shadow: none;\n }\n\n [data-vc-position=\"bottom\"] {\n margin-block-start: .25rem;\n }\n\n [data-vc-position=\"top\"] {\n margin-block-end: -.25rem;\n }\n\n [data-vc-arrow] {\n position: relative;\n display: block;\n width: 2rem;\n height: 2rem;\n color: var(--datepicker-color);\n pointer-events: auto;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n @include border-radius(var(--radius-5));\n\n &::before {\n position: absolute;\n inset: .25rem;\n content: \"\";\n background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%236b7280' d='M12 16c-.3 0-.5-.1-.7-.3l-6-6c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l5.3 5.3 5.3-5.3c.4-.4 1-.4 1.4 0s.4 1 0 1.4l-6 6c-.2.2-.4.3-.7.3'/></svg>\");\n background-repeat: no-repeat;\n background-position: center;\n }\n\n &:hover {\n background-color: var(--datepicker-day-hover-bg);\n }\n }\n\n [data-vc-arrow=\"prev\"]::before {\n transform: rotate(90deg);\n }\n\n [data-vc-arrow=\"next\"]::before {\n transform: rotate(-90deg);\n }\n\n // Grid layout\n [data-vc=\"controls\"] {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 20;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: 1rem;\n padding-right: 1rem;\n padding-left: 1rem;\n pointer-events: none;\n }\n\n [data-vc=\"grid\"] {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n gap: 1.75rem;\n }\n\n [data-vc=\"column\"] {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n min-width: 240px;\n }\n\n //\n // Header\n //\n\n [data-vc=\"header\"] {\n position: relative;\n display: flex;\n align-items: center;\n margin-bottom: .75rem;\n }\n\n // Month and year\n [data-vc-header=\"content\"] {\n display: inline-flex;\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n white-space: pre-wrap;\n }\n\n [data-vc=\"month\"],\n [data-vc=\"year\"] {\n padding: .25rem .5rem;\n margin-inline: -.125rem;\n font-size: 1rem;\n font-weight: var(--datepicker-header-font-weight);\n color: var(--datepicker-color);\n // cursor: pointer;\n background-color: transparent;\n border: 0;\n @include border-radius(var(--radius-5));\n\n &:disabled {\n color: var(--datepicker-day-disabled-color);\n pointer-events: none;\n }\n\n &:hover:not(:disabled) {\n background-color: var(--datepicker-day-hover-bg);\n }\n }\n\n [data-vc=\"content\"] {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n }\n\n // Month/Year grids\n [data-vc=\"months\"],\n [data-vc=\"years\"] {\n display: grid;\n flex-grow: 1;\n grid-template-columns: repeat(var(--vc-columns, 4), minmax(0, 1fr));\n row-gap: 1rem;\n column-gap: .25rem;\n align-items: center;\n }\n\n [data-vc=\"years\"] {\n --vc-columns: 5;\n }\n\n [data-vc-months-month],\n [data-vc-years-year] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 2.5rem;\n padding: .25rem;\n font-size: .75rem;\n font-weight: 600;\n line-height: 1rem;\n color: var(--datepicker-weekday-color);\n text-align: center;\n word-break: break-all;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n @include border-radius(var(--radius-5));\n\n &:disabled {\n color: var(--datepicker-day-disabled-color);\n pointer-events: none;\n }\n\n &:hover:not(:disabled) {\n background-color: var(--datepicker-day-hover-bg);\n }\n\n &[data-vc-months-month-selected],\n &[data-vc-years-year-selected] {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n\n &:hover {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n }\n }\n }\n\n // Week days header\n [data-vc=\"week\"] {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n justify-items: center;\n margin-bottom: .5rem;\n }\n\n [data-vc-week-day] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 1.875rem;\n padding: 0;\n margin: 0;\n font-size: .75rem;\n font-weight: 600;\n line-height: 1rem;\n color: var(--datepicker-weekday-color);\n background-color: transparent;\n border: 0;\n }\n\n button[data-vc-week-day] {\n cursor: pointer;\n }\n\n // Dates grid\n [data-vc=\"dates\"] {\n pointer-events: none;\n }\n\n [data-vc-dates=\"row\"] {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n align-items: center;\n justify-items: center;\n width: 100%;\n }\n\n [data-vc-date] {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n padding-top: .125rem;\n padding-bottom: .125rem;\n pointer-events: auto;\n\n &:not(:has([data-vc-date-btn])),\n &[data-vc-date-disabled],\n &[data-vc-date-disabled] [data-vc-date-btn] {\n pointer-events: none;\n }\n }\n\n // Date button\n [data-vc-date-btn] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 1.875rem;\n height: 100%;\n min-height: 1.875rem;\n padding: 0;\n font-size: .75rem;\n font-weight: 400;\n line-height: 1rem;\n color: var(--datepicker-color);\n cursor: pointer;\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n\n &:hover {\n background-color: var(--datepicker-day-hover-bg);\n }\n }\n\n // Today\n [data-vc-date-today] [data-vc-date-btn] {\n font-weight: 600;\n color: var(--datepicker-day-today-color);\n background-color: var(--datepicker-day-today-bg);\n }\n\n // Outside month\n [data-vc-date-month=\"next\"] [data-vc-date-btn],\n [data-vc-date-month=\"prev\"] [data-vc-date-btn] {\n opacity: .5;\n }\n\n // Disabled\n [data-vc-date-disabled] [data-vc-date-btn] {\n color: var(--datepicker-day-disabled-color);\n }\n\n // Range selection styles\n [data-vc-date-hover] [data-vc-date-btn] {\n background-color: var(--datepicker-day-hover-bg);\n border-radius: 0;\n }\n\n [data-vc-date-hover=\"first\"] [data-vc-date-btn] {\n border-start-start-radius: var(--radius-5);\n border-end-start-radius: var(--radius-5);\n }\n\n [data-vc-date-hover=\"last\"] [data-vc-date-btn] {\n border-start-end-radius: var(--radius-5);\n border-end-end-radius: var(--radius-5);\n }\n\n [data-vc-date-hover=\"first-and-last\"] [data-vc-date-btn] {\n border-radius: var(--radius-5);\n }\n\n [data-vc-date-selected=\"middle\"] [data-vc-date-btn] {\n border-radius: 0;\n opacity: .8;\n }\n\n // Selected\n [data-vc-date-selected] [data-vc-date-btn] {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n\n }\n\n [data-vc-date-selected=\"first\"] [data-vc-date-btn] {\n border-top-left-radius: var(--radius-5);\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: var(--radius-5);\n }\n\n [data-vc-date-selected=\"last\"] [data-vc-date-btn] {\n border-top-left-radius: 0;\n border-top-right-radius: var(--radius-5);\n border-bottom-right-radius: var(--radius-5);\n border-bottom-left-radius: 0;\n }\n\n [data-vc-date-selected=\"first-and-last\"] [data-vc-date-btn] {\n border-radius: var(--radius-5);\n }\n}\n","@use \"sass:map\";\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/dialog-shared\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/tokens\" as *;\n\n// Native <dialog> component\n// Uses the browser's native dialog element with showModal()/show()/close() APIs\n// Leverages native [open] attribute and ::backdrop pseudo-element\n\n// stylelint-disable custom-property-no-missing-var-function\n$dialog-tokens: () !default;\n\n// scss-docs-start dialog-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$dialog-tokens: defaults(\n (\n --dialog-padding: 1rem,\n --dialog-width: 500px,\n --dialog-margin: 1.75rem,\n --dialog-color: var(--fg-body),\n --dialog-bg: var(--bg-body),\n --dialog-border-color: var(--border-color-translucent),\n --dialog-border-width: var(--border-width),\n --dialog-border-radius: var(--radius-7),\n --dialog-box-shadow: var(--box-shadow-lg),\n --dialog-transition-duration: .3s,\n --dialog-transition-timing: cubic-bezier(.22, 1, .36, 1),\n --dialog-backdrop-bg: rgb(0 0 0 / 50%),\n --dialog-backdrop-blur: 8px,\n --dialog-header-padding: 1rem,\n --dialog-header-border-color: var(--border-color),\n --dialog-header-border-width: var(--border-width),\n --dialog-footer-padding: 1rem,\n --dialog-footer-border-color: var(--border-color),\n --dialog-footer-border-width: var(--border-width),\n --dialog-footer-gap: .5rem,\n ),\n $dialog-tokens\n);\n// scss-docs-end dialog-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n// scss-docs-start dialog-sizes\n$dialog-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$dialog-sizes: defaults(\n (\n sm: 280px,\n lg: 800px,\n xl: 1140px,\n ),\n $dialog-sizes\n);\n// scss-docs-end dialog-sizes\n\n@layer components {\n // Prevent body scroll when dialog is open\n .dialog-open {\n overflow: hidden;\n }\n\n .dialog {\n @include tokens($dialog-tokens);\n\n // Override UA display:none so visibility controls the hidden state,\n // enabling reliable cross-browser exit animations after close().\n display: flex;\n flex-direction: column;\n width: var(--dialog-width);\n max-width: calc(100% - var(--dialog-margin) * 2);\n max-height: calc(100% - var(--dialog-margin) * 2);\n padding: 0;\n margin: auto;\n overflow: visible;\n color: var(--dialog-color);\n visibility: hidden;\n background-color: var(--dialog-bg);\n background-clip: padding-box;\n border: var(--dialog-border-width) solid var(--dialog-border-color);\n @include border-radius(var(--dialog-border-radius));\n @include box-shadow(var(--dialog-box-shadow));\n\n // Animated variant (default) — transitions, opacity fade, slide transforms.\n // Adding .dialog-instant skips all animations (instant show/hide).\n &:not(.dialog-instant) {\n // Exit state: faded out\n opacity: 0;\n\n // Exit transition: opacity and transform animate out, then visibility\n // flips hidden after the animation completes (via the delay).\n @include transition(\n opacity var(--dialog-transition-duration) var(--dialog-transition-timing),\n transform var(--dialog-transition-duration) var(--dialog-transition-timing),\n visibility 0s var(--dialog-transition-duration)\n );\n\n // Slide-down variant: enters from above sliding down, exits by reversing\n // back up. Base value is the entry-from / exit-to position so the\n // animation works on every open (not just the first, which is the only\n // time @starting-style applies for a persistent <dialog> element).\n &.dialog-slide-down {\n transform: translateY(-3rem);\n }\n\n // Slide-up variant: enters from below sliding up, exits by reversing\n // back down. See note above re: base value choice.\n &.dialog-slide-up {\n transform: translateY(3rem);\n }\n\n // Open state: visible and faded in.\n // Entry transition: visibility flips visible immediately (0s, no delay),\n // then opacity and transform animate in.\n // The :not(.hiding) qualifier lets the exit transition fall back to the\n // base \"exit\" state above while [open] is still present (the JS keeps\n // the dialog in the top layer during the exit so the ::backdrop and\n // the browser's modal centering remain intact).\n &[open]:not(.hiding) {\n overflow: visible;\n visibility: visible;\n opacity: 1;\n @include transition(\n opacity var(--dialog-transition-duration) var(--dialog-transition-timing),\n transform var(--dialog-transition-duration) var(--dialog-transition-timing),\n visibility 0s\n );\n transform: none;\n }\n\n // Static backdrop \"bounce\" animation (modal dialogs only). Qualified\n // with [open] (to outrank the open-state `transform: none` selector\n // which now also includes `:not(.hiding)`) and `:not(.hiding)` (so\n // a backdrop click while the dialog is mid-exit doesn't fight the\n // slide-out transform).\n &[open].dialog-static:not(.hiding) {\n transform: scale(1.02);\n }\n\n // Native backdrop styling with transitions\n &::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n @include backdrop-transitions(var(--dialog-transition-duration), var(--dialog-transition-timing));\n }\n\n // Exit: fade the native backdrop out alongside the dialog. The dialog\n // is kept in the top layer (and thus the ::backdrop is still rendered)\n // for the duration of the exit transition.\n &.hiding::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n }\n\n // Instant variant — no transitions, just snap visibility\n &.dialog-instant {\n &::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n }\n }\n\n // Open state base (always applies, regardless of animation mode).\n // Excluded while .hiding is present so the animated exit (above) can\n // fall through to the base \"exit\" state — for instant dialogs, .hiding\n // is removed synchronously after close() so this still applies normally.\n &[open]:not(.hiding) {\n overflow: visible;\n visibility: visible;\n opacity: 1;\n transform: none;\n }\n\n // Non-modal dialog positioning\n // show() doesn't use the top layer, so we need explicit positioning and z-index\n &.dialog-nonmodal {\n position: fixed;\n inset-block-start: 50%;\n inset-inline-start: 50%;\n z-index: $zindex-dialog;\n margin-inline: 0;\n transform: translate(-50%, -50%);\n }\n\n // Scrollable dialog body (header/footer stay fixed)\n &.dialog-scrollable[open] {\n max-height: calc(100% - var(--dialog-margin) * 2);\n\n .dialog-body {\n overflow-y: auto;\n }\n }\n }\n\n // Entry animation for ::backdrop via @starting-style. The backdrop only\n // exists while the dialog is in the top layer, so its starting state can't\n // be expressed on the base selector.\n // Default dialog (fade only) and the slide variants do NOT need\n // @starting-style — the base opacity: 0 (and base transform for slides)\n // serves as the entry-from state with the visibility trick.\n @starting-style {\n .dialog:not(.dialog-instant)::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n\n // Swap entry: when this dialog is opened as the target of a swap, the\n // outgoing dialog's ::backdrop is being removed synchronously in the same\n // JS tick. To avoid any flicker (either a dip from a fade-in over nothing,\n // or double-darkening from two stacked backdrops), start this backdrop\n // already-opaque so it takes over from the outgoing one seamlessly.\n .dialog.dialog-swap-in:not(.dialog-instant)::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n }\n }\n\n // Dialog sizes\n @each $size, $value in $dialog-sizes {\n .dialog-#{$size} { --dialog-width: #{$value}; }\n }\n\n // Fullscreen dialog\n .dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n\n // Responsive fullscreen dialogs\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @if $prefix != \"\" {\n @include media-breakpoint-down($breakpoint) {\n .#{css-escape-ident($breakpoint)}-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n }\n }\n\n // Dialog header\n .dialog-header {\n @include dialog-header(var(--dialog-header-padding));\n border-block-end: var(--dialog-header-border-width) solid var(--dialog-header-border-color);\n\n .btn-close {\n margin-inline-start: auto;\n }\n }\n\n // Dialog title\n .dialog-title {\n @include dialog-title();\n font-size: var(--font-size-md);\n }\n\n // Dialog body\n .dialog-body {\n position: relative;\n @include dialog-body(var(--dialog-padding));\n }\n\n // Dialog footer\n .dialog-footer {\n @include dialog-footer(var(--dialog-footer-padding), var(--dialog-footer-gap), var(--dialog-footer-border-width), var(--dialog-footer-border-color));\n }\n}\n","// Shared mixins for Dialog and Drawer sub-components.\n// Both components use identical header/footer/body/title patterns\n// with different token namespaces.\n\n@use \"transition\" as *;\n\n// Header: flex row with close button alignment\n@mixin dialog-header($padding) {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n padding: $padding;\n}\n\n// Footer: flex row with end-aligned actions\n@mixin dialog-footer($padding, $gap, $border-width, $border-color) {\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n gap: $gap;\n align-items: center;\n justify-content: flex-end;\n padding: $padding;\n border-block-start: $border-width solid $border-color;\n}\n\n// Body: flexible scrollable content area\n@mixin dialog-body($padding) {\n flex: 1 1 auto;\n padding: $padding;\n}\n\n// Title: reset margin, set line-height\n@mixin dialog-title($line-height: 1.5) {\n margin-bottom: 0;\n line-height: $line-height;\n}\n\n// Backdrop transitions for ::backdrop pseudo-element.\n// Both Dialog and Drawer use identical allow-discrete transitions\n// on display and overlay to keep ::backdrop in the top layer.\n@mixin backdrop-transitions($duration, $timing) {\n @include transition(\n background-color $duration $timing,\n backdrop-filter $duration $timing,\n display $duration allow-discrete,\n overlay $duration allow-discrete\n );\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/tokens\" as *;\n@use \"mixins/transition\" as *;\n\n// stylelint-disable scss/dollar-variable-default, custom-property-no-missing-var-function\n$menu-tokens: () !default;\n\n// scss-docs-start menu-tokens\n$menu-tokens: defaults(\n (\n --menu-zindex: #{$zindex-menu},\n --menu-gap: .125rem,\n --menu-min-width: 10rem,\n --menu-padding-x: .25rem,\n --menu-padding-y: .25rem,\n --menu-spacer: .125rem,\n --menu-font-size: var(--font-size-sm),\n --menu-color: var(--fg-body),\n --menu-bg: var(--bg-body),\n // --menu-border-color: var(--border-color-translucent),\n // --menu-border-radius: var(--radius-7),\n // --menu-border-width: var(--border-width),\n --menu-box-shadow: var(--box-shadow),\n // --menu-max-height: none,\n --menu-divider-bg: var(--border-color-translucent),\n --menu-divider-margin-y: .125rem,\n --menu-divider-margin-x: .25rem,\n --menu-item-color: var(--menu-color, var(--fg-body)),\n --menu-item-hover-color: var(--menu-color, var(--fg-body)),\n --menu-item-hover-bg: var(--bg-1),\n --menu-item-active-color: var(--primary-contrast),\n --menu-item-active-bg: var(--primary-bg),\n --menu-item-disabled-color: var(--fg-3),\n --menu-item-gap: .5rem,\n --menu-item-padding-x: .75rem,\n --menu-item-padding-y: .25rem,\n --menu-item-border-radius: var(--radius-5),\n --menu-icon-size: 1rem,\n --menu-image-size: 1.5rem,\n --menu-description-font-size: var(--font-size-xs),\n --menu-check-color: currentcolor,\n --menu-header-color: var(--fg-3),\n --menu-header-padding-x: .75rem,\n --menu-header-padding-y: .25rem,\n --menu-transition-duration: .15s,\n --menu-transition-timing: cubic-bezier(.22, 1, .36, 1),\n ),\n $menu-tokens\n);\n// scss-docs-end menu-tokens\n\n// stylelint-enable custom-property-no-missing-var-function, scss/dollar-variable-default\n\n@layer components {\n .menu {\n @include tokens($menu-tokens);\n\n position: absolute;\n z-index: var(--menu-zindex);\n display: none;\n flex-direction: column;\n gap: var(--menu-gap);\n min-width: var(--menu-min-width);\n max-height: var(--menu-max-height, none);\n padding: var(--menu-padding-y) var(--menu-padding-x);\n margin: 0;\n overflow-y: var(--menu-overflow-y, initial);\n overscroll-behavior: contain;\n font-size: var(--menu-font-size);\n color: var(--menu-color);\n text-align: start;\n list-style: none;\n background-color: var(--menu-bg);\n background-clip: padding-box;\n border: var(--menu-border-width, var(--border-width)) solid var(--menu-border-color, var(--border-color-translucent));\n @include border-radius(var(--menu-border-radius, var(--radius-7)));\n @include box-shadow(var(--menu-box-shadow));\n opacity: 0;\n transform: scale(.95);\n transform-origin: top start;\n\n &[data-bs-placement^=\"top\"] {\n transform-origin: bottom start;\n }\n\n &[data-bs-placement=\"bottom-end\"] {\n transform-origin: top end;\n }\n\n &[data-bs-placement=\"top-end\"] {\n transform-origin: bottom end;\n }\n\n &[data-bs-placement^=\"left\"] {\n transform-origin: top end;\n }\n\n @include transition(\n opacity var(--menu-transition-duration) var(--menu-transition-timing),\n transform var(--menu-transition-duration) var(--menu-transition-timing),\n display var(--menu-transition-duration) allow-discrete\n );\n\n &.show {\n display: flex;\n opacity: 1;\n transform: none;\n }\n }\n\n @starting-style {\n .menu.show {\n opacity: 0;\n transform: scale(.95);\n }\n }\n\n .menu-scrollable {\n --menu-max-height: 80dvh;\n --menu-overflow-y: auto;\n }\n\n .menu-translucent {\n --menu-item-hover-bg-light: color-mix(in oklch, var(--bg-1) 90%, transparent);\n --menu-item-hover-bg-dark: color-mix(in oklch, var(--bg-1) 80%, transparent);\n\n --menu-item-active-bg-light: color-mix(in oklch, var(--primary-bg) 80%, transparent);\n --menu-item-active-bg-dark: color-mix(in oklch, var(--primary-bg) 70%, transparent);\n\n --menu-item-active-bg: light-dark(var(--menu-item-active-bg-light), var(--menu-item-active-bg-dark));\n --menu-item-hover-bg: light-dark(var(--menu-item-hover-bg-light), var(--menu-item-hover-bg-dark));\n\n background-color: color-mix(in oklch, var(--menu-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n\n .menu-divider {\n height: 0;\n margin: var(--menu-divider-margin-y) var(--menu-divider-margin-x);\n overflow: hidden;\n border-block-start: 1px solid var(--menu-divider-bg);\n opacity: 1;\n }\n\n .menu-item {\n display: flex;\n gap: var(--menu-item-gap);\n align-items: center;\n width: 100%;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n font-weight: var(--menu-item-font-weight, var(--font-weight-normal));\n color: var(--theme-fg, var(--menu-item-color));\n text-align: inherit;\n text-decoration: none;\n white-space: nowrap;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n outline: 0;\n @include border-radius(var(--menu-item-border-radius, 0));\n\n &:hover,\n &:focus {\n color: var(--theme-fg-emphasis, var(--menu-item-hover-color));\n background-color: var(--theme-bg-subtle, var(--menu-item-hover-bg));\n // @include gradient-bg(var(--theme-bg-subtle, var(--menu-item-hover-bg)));\n }\n\n &.active,\n &:active {\n color: var(--theme-contrast, var(--menu-item-active-color));\n background-color: var(--theme-bg, var(--menu-item-active-bg));\n // @include gradient-bg(var(--theme-bg, var(--menu-item-active-bg)));\n\n .menu-item-icon {\n color: inherit !important; // stylelint-disable-line declaration-no-important\n }\n }\n\n &.selected {\n font-weight: $font-weight-semibold;\n }\n\n &.disabled,\n &:disabled {\n color: var(--menu-item-disabled-color);\n pointer-events: none;\n background-color: transparent;\n // stylelint-disable-next-line scss/at-function-named-arguments\n background-image: if(sass($enable-gradients): none; else: null);\n }\n }\n\n .menu-item-icon {\n flex-shrink: 0;\n align-self: flex-start;\n width: var(--menu-icon-size);\n height: auto;\n margin-top: .125rem;\n }\n\n .menu-image {\n width: var(--menu-image-size);\n height: var(--menu-image-size);\n object-fit: cover;\n @include border-radius(var(--radius-5));\n }\n\n .menu-item-content {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-width: fit-content;\n }\n\n .menu-item-description {\n font-size: var(--menu-description-font-size);\n font-weight: var(--font-weight-normal);\n color: color-mix(in oklch, currentcolor 65%, transparent);\n }\n\n .menu-item-check {\n flex-shrink: 0;\n align-self: flex-start;\n margin-block-start: .125rem;\n margin-inline-start: auto;\n color: var(--menu-check-color);\n visibility: hidden;\n\n .selected > & {\n visibility: visible;\n }\n }\n\n .menu-header {\n display: block;\n padding: var(--menu-header-padding-y) var(--menu-header-padding-x);\n margin-bottom: 0;\n font-size: var(--font-size-sm);\n color: var(--menu-header-color);\n white-space: nowrap;\n }\n\n .menu-text {\n display: block;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n color: var(--fg-2);\n }\n\n // scss-docs-start submenu\n .submenu {\n position: relative;\n\n > .menu-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n > .menu-item::after {\n display: inline-block;\n flex-shrink: 0;\n width: .375em;\n height: .375em;\n margin-inline-start: auto;\n content: \"\";\n border-color: currentcolor;\n border-style: solid;\n border-width: 0 .125em .125em 0;\n transform: rotate(-45deg);\n\n [dir=\"rtl\"] & {\n transform: rotate(135deg);\n }\n }\n\n > .menu {\n top: 0;\n margin-top: calc(-1 * var(--menu-padding-y));\n }\n\n &:hover > .menu-item,\n &:focus-within > .menu-item {\n color: var(--menu-item-hover-color);\n background-color: var(--menu-item-hover-bg);\n }\n\n &.show > .menu-item {\n color: var(--menu-item-hover-color);\n background-color: var(--menu-item-hover-bg);\n }\n }\n\n // Mobile stacking: submenu covers the parent menu in-place\n @media (max-width: 575.98px) {\n .submenu:has(.submenu-stacked) {\n position: static;\n }\n\n .submenu-stacked {\n position: absolute;\n inset: 0;\n z-index: 1;\n display: flex;\n flex-direction: column;\n gap: var(--menu-gap);\n min-width: 0;\n padding: var(--menu-padding-y) var(--menu-padding-x);\n background-color: var(--menu-bg);\n border: 0;\n @include border-radius(0);\n box-shadow: none;\n }\n\n .submenu-back {\n display: flex;\n gap: var(--menu-item-gap);\n align-items: center;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n font-weight: var(--font-weight-semibold, 600);\n color: var(--menu-item-color);\n\n &::before {\n display: inline-block;\n flex-shrink: 0;\n width: .375em;\n height: .375em;\n content: \"\";\n border-color: currentcolor;\n border-style: solid;\n border-width: .125em 0 0 .125em;\n transform: rotate(-45deg);\n\n [dir=\"rtl\"] & {\n border-width: 0 .125em .125em 0;\n }\n }\n }\n\n .submenu-dimmed {\n pointer-events: none;\n filter: blur(2px);\n opacity: .3;\n }\n }\n // scss-docs-end submenu\n}\n","@use \"sass:map\";\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/tokens\" as *;\n\n$list-group-tokens: () !default;\n\n// scss-docs-start list-group-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$list-group-tokens: defaults(\n (\n --list-group-color: var(--fg-body),\n --list-group-bg: var(--bg-body),\n --list-group-border-color: var(--border-color),\n --list-group-border-width: var(--border-width),\n --list-group-border-radius: var(--radius-5),\n --list-group-item-padding-x: var(--spacer),\n --list-group-item-padding-y: var(--spacer-2),\n --list-group-action-color: var(--fg-2),\n --list-group-action-hover-color: var(--fg-1),\n --list-group-action-hover-bg: var(--bg-1),\n --list-group-action-active-color: var(--fg-body),\n --list-group-action-active-bg: var(--bg-2),\n --list-group-disabled-color: var(--fg-3),\n --list-group-disabled-bg: var(--bg-body),\n --list-group-active-color: var(--primary-contrast),\n --list-group-active-bg: var(--primary-bg),\n --list-group-active-border-color: var(--primary-bg),\n ),\n $list-group-tokens\n);\n// scss-docs-end list-group-tokens\n\n@layer components {\n .list-group {\n @include tokens($list-group-tokens);\n\n display: flex;\n flex-direction: column;\n\n // No need to set list-style: none; since .list-group-item is block level\n padding-inline-start: 0; // reset padding because ul and ol\n margin-bottom: 0;\n @include border-radius(var(--list-group-border-radius));\n }\n\n .list-group-numbered {\n list-style-type: none;\n counter-reset: section;\n\n > .list-group-item::before {\n // Increments only this instance of the section counter\n content: counters(section, \".\") \". \";\n counter-increment: section;\n }\n }\n\n // Individual list items\n //\n // Use on `li`s or `div`s within the `.list-group` parent.\n\n .list-group-item {\n position: relative;\n display: block;\n padding: var(--list-group-item-padding-y) var(--list-group-item-padding-x);\n color: var(--theme-fg, var(--list-group-color));\n // stylelint-disable-next-line scss/at-function-named-arguments\n text-decoration: if(sass($link-decoration == none): null);\n background-color: var(--theme-bg-subtle, var(--list-group-bg));\n border: var(--list-group-border-width) solid var(--theme-border, var(--list-group-border-color));\n\n &:first-child {\n @include border-top-radius(inherit);\n }\n\n &:last-child {\n @include border-bottom-radius(inherit);\n }\n\n &.disabled,\n &:disabled {\n color: var(--list-group-disabled-color);\n pointer-events: none;\n background-color: var(--list-group-disabled-bg);\n }\n\n // Include both here for `<a>`s and `<button>`s\n &.active {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: var(--list-group-active-color);\n background-color: var(--list-group-active-bg);\n border-color: var(--list-group-active-border-color);\n }\n\n // stylelint-disable-next-line scss/selector-no-redundant-nesting-selector\n & + .list-group-item {\n border-block-start-width: 0;\n\n &.active {\n margin-top: calc(-1 * var(--list-group-border-width));\n border-block-start-width: var(--list-group-border-width);\n }\n }\n }\n\n // Interactive list items\n //\n // Use anchor or button elements instead of `li`s or `div`s to create interactive\n // list items. Includes an extra `.active` modifier class for selected items.\n\n .list-group-item-action {\n width: 100%; // For `<button>`s (anchors become 100% by default though)\n color: var(--theme-fg, var(--list-group-action-color));\n text-align: inherit; // For `<button>`s (anchors inherit)\n text-decoration: none;\n\n &:not(.active) {\n // Hover state\n &:hover,\n &:focus {\n z-index: 1; // Place hover/focus items above their siblings for proper border styling\n color: var(--theme-fg-emphasis, var(--list-group-action-hover-color));\n text-decoration: none;\n background-color: var(--theme-bg-muted, var(--list-group-action-hover-bg));\n }\n\n &:active {\n color: var(--theme-fg-emphasis, var(--list-group-action-active-color));\n background-color: var(--theme-bg-muted, var(--list-group-action-active-bg));\n }\n }\n }\n\n // Horizontal\n //\n // Change the layout of list group items from vertical (default) to horizontal.\n\n @each $breakpoint in map.keys($breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n .#{$prefix}list-group-horizontal {\n flex-direction: row;\n\n > .list-group-item {\n &:first-child:not(:last-child) {\n @include border-bottom-start-radius(var(--list-group-border-radius));\n @include border-top-end-radius(0);\n }\n\n &:last-child:not(:first-child) {\n @include border-top-end-radius(var(--list-group-border-radius));\n @include border-bottom-start-radius(0);\n }\n\n &.active {\n margin-top: 0;\n }\n\n + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n\n &.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n }\n }\n }\n }\n\n // Flush list items\n //\n // Remove borders and border-radius to keep list group items edge-to-edge. Most\n // useful within other components (e.g., cards).\n\n .list-group-flush {\n @include border-radius(0);\n\n > .list-group-item {\n border-width: 0 0 var(--list-group-border-width);\n\n &:last-child {\n border-block-end-width: 0;\n }\n }\n }\n}\n","@use \"functions\" as *;\n@use \"config\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/gradients\" as *;\n@use \"mixins/tokens\" as *;\n@use \"mixins/transition\" as *;\n\n$nav-tokens: () !default;\n\n// scss-docs-start nav-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$nav-tokens: defaults(\n (\n --nav-gap: .125rem,\n --nav-link-gap: .5rem,\n --nav-link-align: center,\n --nav-link-justify: center,\n --nav-link-padding-x: .75rem,\n --nav-link-padding-y: .375rem,\n --nav-link-color: var(--fg-2),\n --nav-link-hover-color: var(--fg-1),\n --nav-link-hover-bg: var(--bg-1),\n --nav-link-active-color: var(--fg-body),\n --nav-link-active-bg: var(--bg-2),\n --nav-link-disabled-color: var(--fg-4),\n --nav-link-border-width: var(--border-width),\n --nav-link-transition-property: \"color, background-color, border-color\",\n --nav-link-transition-timing: .15s ease-in-out,\n --nav-link-transition: var(--nav-link-transition-property) var(--nav-link-transition-timing),\n ),\n $nav-tokens\n);\n// scss-docs-end nav-tokens\n\n$nav-tabs-tokens: () !default;\n\n// scss-docs-start nav-tabs-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$nav-tabs-tokens: defaults(\n (\n --nav-tabs-border-width: var(--border-width),\n --nav-tabs-border-color: var(--border-color),\n --nav-tabs-border-radius: var(--radius-5),\n --nav-tabs-link-hover-border-color: var(--border-subtle),\n --nav-tabs-link-active-color: var(--fg-color),\n --nav-tabs-link-active-bg: var(--bg-body),\n --nav-tabs-link-active-border-color: var(--border-color) var(--border-color) var(--bg-body),\n ),\n $nav-tabs-tokens\n);\n// scss-docs-end nav-tabs-tokens\n\n$nav-pills-tokens: () !default;\n\n// scss-docs-start nav-pills-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$nav-pills-tokens: defaults(\n (\n --nav-pills-bg: var(--bg-1),\n --nav-pills-padding: .25rem,\n --nav-pills-border-radius: var(--radius-9),\n --nav-pills-link-active-color: var(--primary-contrast),\n --nav-pills-link-active-bg: var(--primary-bg),\n --nav-pills-link-border-radius: var(--radius-9),\n ),\n $nav-pills-tokens\n);\n// scss-docs-end nav-pills-tokens\n\n$nav-underline-tokens: () !default;\n\n// scss-docs-start nav-underline-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$nav-underline-tokens: defaults(\n (\n --nav-gap: 1rem,\n --nav-link-active-bg: transparent,\n --nav-underline-border-width: .125rem,\n --nav-underline-link-active-color: var(--fg-color),\n ),\n $nav-underline-tokens\n);\n// scss-docs-end nav-underline-tokens\n\n// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s, `<ul>`s or `<ol>`s.\n\n@layer components {\n .nav {\n @include tokens($nav-tokens);\n\n display: flex;\n flex-wrap: wrap;\n gap: var(--nav-gap);\n padding-inline-start: 0;\n margin-bottom: 0;\n list-style: none;\n }\n\n .nav-item {\n display: flex;\n }\n\n .nav-link {\n display: flex;\n gap: var(--nav-link-gap);\n align-items: var(--nav-link-align);\n justify-content: var(--nav-link-justify);\n padding: var(--nav-link-padding-y) var(--nav-link-padding-x);\n font-weight: var(--nav-link-font-weight);\n color: var(--nav-link-color);\n text-decoration: none;\n white-space: nowrap;\n background: none;\n border: var(--nav-link-border-width) solid transparent;\n @include border-radius(var(--radius-5));\n @include transition(var(--nav-link-transition));\n\n &:hover,\n &:focus {\n color: var(--nav-link-hover-color);\n background-color: var(--nav-link-hover-bg);\n }\n\n &:focus-visible {\n --focus-ring-offset: 1px;\n color: var(--nav-link-hover-color);\n @include focus-ring(true);\n }\n\n &.active,\n &:active {\n color: var(--nav-link-active-color);\n background-color: var(--nav-link-active-bg);\n }\n\n // Disabled state lightens text\n &.disabled,\n &:disabled {\n color: var(--nav-link-disabled-color);\n pointer-events: none;\n cursor: default;\n }\n }\n\n //\n // Tabs\n //\n\n .nav-tabs {\n // scss-docs-start nav-tabs-css-vars\n @include tokens($nav-tabs-tokens);\n // scss-docs-end nav-tabs-css-vars\n\n box-shadow: inset 0 calc(-1 * var(--nav-tabs-border-width)) 0 var(--nav-tabs-border-color);\n\n .nav-link {\n border: var(--nav-tabs-border-width) solid transparent;\n border-bottom-color: var(--nav-tabs-border-color);\n @include border-bottom-radius(0);\n\n &:hover {\n // Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link\n isolation: isolate;\n border-color: var(--nav-tabs-link-hover-border-color);\n border-bottom-color: var(--nav-tabs-border-color);\n }\n }\n\n .nav-link.active,\n .nav-item.show .nav-link {\n color: var(--nav-tabs-link-active-color);\n background-color: var(--nav-tabs-link-active-bg);\n border-color: var(--nav-tabs-link-active-border-color);\n border-bottom-color: var(--nav-tabs-link-active-bg);\n }\n\n .menu {\n margin-top: calc(-1 * var(--nav-tabs-border-width));\n @include border-top-radius(0);\n }\n }\n\n //\n // Pills\n //\n\n .nav-pills {\n @include tokens($nav-pills-tokens);\n\n display: inline-flex;\n padding: var(--nav-pills-padding);\n background-color: var(--nav-pills-bg);\n @include border-radius(var(--nav-pills-border-radius));\n\n .nav-link {\n @include border-radius(var(--nav-pills-link-border-radius));\n }\n\n .nav-link.active,\n .show > .nav-link {\n color: var(--nav-pills-link-active-color);\n @include gradient-bg(var(--nav-pills-link-active-bg));\n }\n }\n\n .nav-pills-vertical {\n flex-direction: column;\n align-items: stretch;\n\n .nav-item,\n .nav-link {\n width: 100%;\n }\n }\n\n //\n // Underline\n //\n\n .nav-underline {\n // scss-docs-start nav-underline-css-vars\n @include tokens($nav-underline-tokens);\n // scss-docs-end nav-underline-css-vars\n\n .nav-link {\n padding-inline: 0;\n border: 0;\n border-block-end: var(--nav-underline-border-width) solid transparent;\n @include border-radius(0);\n\n &:hover,\n &:focus {\n border-block-end-color: currentcolor;\n }\n }\n\n .nav-link.active,\n .show > .nav-link {\n font-weight: $font-weight-bold;\n color: var(--nav-underline-link-active-color);\n border-block-end-color: currentcolor;\n }\n }\n\n //\n // Justified variants\n //\n\n .nav-fill {\n > .nav-link,\n .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n }\n\n .nav-justified {\n > .nav-link,\n .nav-item {\n flex-grow: 1;\n flex-basis: 0;\n text-align: center;\n }\n }\n\n .nav-fill,\n .nav-justified {\n .nav-item .nav-link {\n width: 100%; // Make sure button will grow\n }\n }\n\n // Tabbable tabs\n //\n // Hide tabbable panes to start, show them when `.active`\n\n .tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n }\n}\n","// Nav Overflow (Priority+ Pattern)\n//\n// A responsive navigation pattern that automatically moves items\n// to an overflow menu when space is limited.\n\n@layer components {\n .nav-overflow {\n flex-wrap: nowrap;\n min-width: 0; // Allow flex child to shrink below content width\n }\n\n // Pills use inline-flex by default; override so the nav fills its container\n // and the ResizeObserver can detect width changes.\n .nav-pills.nav-overflow {\n display: flex;\n }\n\n // Inside a navbar the nav is a flex child that sizes to content by default;\n // grow it so it fills remaining space and shrinks with the container.\n .navbar-nav.nav-overflow {\n flex: 1 1 0;\n }\n\n // Container item for overflow\n .nav-overflow-item {\n flex-shrink: 0;\n margin-inline-start: auto;\n }\n\n // Hide items that have been moved to overflow\n .nav-overflow [data-bs-nav-overflow=\"true\"] {\n display: none;\n }\n\n // Preserve items that should never overflow\n .nav-overflow-keep {\n flex-shrink: 0;\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/tokens\" as *;\n@use \"mixins/transition\" as *;\n\n// mdo-do: fix nav-link-height and navbar-brand-height, which we previously calculated with font-size, line-height, and block padding\n\n// stylelint-disable custom-property-no-missing-var-function\n// scss-docs-start navbar-breakpoints\n$navbar-breakpoints: $breakpoints !default;\n// scss-docs-end navbar-breakpoints\n\n$navbar-tokens: () !default;\n$navbar-dark-tokens: () !default;\n$navbar-nav-tokens: () !default;\n\n// scss-docs-start navbar-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$navbar-tokens: defaults(\n (\n --navbar-padding-x: 0,\n --navbar-padding-y: .5rem,\n --navbar-color: var(--fg-2),\n --navbar-hover-color: var(--fg-1),\n --navbar-disabled-color: var(--fg-3),\n --navbar-active-color: var(--fg-body),\n --navbar-brand-padding-y: .75rem,\n --navbar-brand-margin-end: 1rem,\n --navbar-brand-font-size: var(--font-size-md),\n --navbar-brand-font-weight: var(--font-weight-medium),\n --navbar-brand-color: var(--fg-body),\n --navbar-brand-hover-color: var(--fg-body),\n --navbar-nav-link-padding-x: .75rem,\n --navbar-toggler-width: 2rem,\n --navbar-toggler-padding-y: .25rem,\n --navbar-toggler-padding-x: .75rem,\n --navbar-toggler-font-size: var(--font-size-lg),\n --navbar-toggler-border-color: color-mix(in oklch, var(--fg-body) 15%, transparent),\n --navbar-toggler-border-radius: var(--radius-5),\n --navbar-toggler-transition: box-shadow .15s ease-in-out,\n ),\n $navbar-tokens\n);\n// scss-docs-end navbar-tokens\n\n// scss-docs-start navbar-dark-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$navbar-dark-tokens: defaults(\n (\n --navbar-color: color-mix(in oklch, var(--white) .55, transparent),\n --navbar-hover-color: color-mix(in oklch, var(--white) .75, transparent),\n --navbar-disabled-color: color-mix(in oklch, var(--white) .25, transparent),\n --navbar-active-color: var(--white),\n --navbar-brand-color: var(--white),\n --navbar-brand-hover-color: var(--white),\n --navbar-toggler-border-color: color-mix(in oklch, var(--white) .1, transparent),\n ),\n $navbar-dark-tokens\n);\n// scss-docs-end navbar-dark-tokens\n\n// scss-docs-start navbar-nav-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$navbar-nav-tokens: defaults(\n (\n --nav-gap: .25rem,\n --nav-link-gap: .5rem,\n --nav-link-padding-x: .5rem,\n --nav-link-padding-y: .375rem,\n --nav-link-color: var(--navbar-color),\n --nav-link-border-width: var(--border-width),\n //--nav-link-border-color: var(--border-color),\n --nav-link-hover-color: var(--navbar-hover-color),\n --nav-link-hover-bg: transparent,\n --nav-link-active-color: var(--navbar-active-color),\n --nav-link-active-bg: transparent,\n --nav-link-disabled-color: var(--navbar-disabled-color),\n ),\n $navbar-nav-tokens\n);\n// scss-docs-end navbar-nav-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer components {\n // Base navbar\n .navbar {\n @include tokens($navbar-tokens);\n\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: var(--navbar-padding-y) var(--navbar-padding-x);\n @include set-container();\n color: var(--navbar-color, var(--fg-body));\n background-color: var(--navbar-bg, var(--bg-body));\n // @include gradient-bg(var(--navbar-bg, var(--bg-body)));\n\n // Container properties for nested containers\n %container-flex-properties {\n display: flex;\n flex-wrap: inherit;\n align-items: center;\n justify-content: space-between;\n }\n\n > .container,\n > .container-fluid {\n @extend %container-flex-properties;\n }\n\n @each $breakpoint, $container-max-width in $container-max-widths {\n > .#{breakpoint-prefix($breakpoint, $container-max-widths)}container {\n @extend %container-flex-properties;\n }\n }\n }\n\n // Navbar brand\n //\n // Used for brand, project, or site names.\n .navbar-brand {\n padding-top: var(--navbar-brand-padding-y);\n padding-bottom: var(--navbar-brand-padding-y);\n margin-inline-end: var(--navbar-brand-margin-end);\n font-size: var(--navbar-brand-font-size);\n font-weight: var(--navbar-brand-font-weight);\n color: var(--navbar-brand-color);\n text-decoration: none;\n white-space: nowrap;\n\n &:hover,\n &:focus {\n color: var(--navbar-brand-hover-color);\n }\n }\n\n // Navigation within navbars. Sets all nav-link CSS variables needed for\n // proper styling.\n //\n // Relies on `.nav` base class.\n .navbar-nav {\n @include tokens($navbar-nav-tokens);\n\n display: flex;\n flex-direction: column;\n gap: var(--nav-gap);\n padding-inline-start: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-link {\n &.active,\n &.show {\n color: var(--navbar-active-color);\n border: var(--nav-link-border-width) solid var(--nav-link-border-color, transparent);\n }\n }\n }\n\n // Navbar text\n //\n // For adding text or inline elements to the navbar\n .navbar-text {\n padding-top: var(--navbar-brand-padding-y);\n padding-bottom: var(--navbar-brand-padding-y);\n color: var(--navbar-color);\n\n a,\n a:hover,\n a:focus {\n color: var(--navbar-active-color);\n }\n }\n\n // Button for toggling the navbar when in its collapsed state\n .navbar-toggler {\n --btn-bg: transparent;\n --btn-hover-bg: var(--bg-2);\n }\n\n // scss-docs-start navbar-expand-loop\n // Generate series of responsive `.navbar-expand` classes for configuring\n // where your navbar collapses and expands. Uses container queries so the\n // navbar responds to its own width, not the viewport width.\n\n // Mixin for expanded state styles (applied to descendants)\n @mixin navbar-expanded {\n // Style the inner container since we can't style .navbar itself with container queries\n > .container,\n > .container-fluid,\n %navbar-expand-container {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n\n .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n\n .navbar-toggler {\n display: none !important; // stylelint-disable-line declaration-no-important\n }\n\n [class*=\"drawer\"] {\n // stylelint-disable declaration-no-important\n // Reset native <dialog> UA styles and below-breakpoint drawer styles.\n // Must use !important to override both UA <dialog> defaults and the\n // responsive drawer styles from media-breakpoint-down().\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n @include box-shadow(none);\n @include transition(none);\n // stylelint-enable declaration-no-important\n\n .drawer-header {\n display: none !important; // stylelint-disable-line declaration-no-important\n }\n\n .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n }\n\n // Always expanded (no responsive behavior)\n .navbar-expand {\n @include navbar-expanded();\n\n // Also set on navbar itself for non-responsive case\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n\n // Responsive navbar expand classes using container queries\n @include loop-breakpoints-down($navbar-breakpoints) using ($breakpoint, $next, $prefix) {\n @if $next {\n .#{$prefix}navbar-expand {\n @include container-breakpoint-up($next) {\n @include navbar-expanded();\n }\n }\n }\n }\n // scss-docs-end navbar-expand-loop\n\n // Prevent drawer flash on breakpoint crossing.\n // When the navbar crosses from expanded (inline) to collapsed (drawer),\n // the drawer transitions from visibility:visible to visibility:hidden.\n // Without this override, the slide transition plays — briefly showing the\n // panel sliding away. Disabling transitions when not [open] ensures only\n // intentional show/hide actions animate.\n // stylelint-disable-next-line no-duplicate-selectors\n .navbar {\n [class*=\"drawer\"]:not([open], .hiding) {\n @include transition(none !important);\n }\n }\n\n .navbar-translucent {\n position: relative;\n background-color: transparent;\n\n &::before {\n position: absolute;\n inset: 0;\n z-index: -1;\n content: \"\";\n background-color: color-mix(in oklch, var(--navbar-bg, var(--bg-body)) 80%, transparent);\n background-image: none;\n backdrop-filter: blur(5px) saturate(180%);\n }\n }\n\n .navbar[data-bs-theme=\"dark\"] {\n @include tokens($navbar-dark-tokens);\n }\n}\n","@use \"functions\" as *;\n@use \"config\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/dialog-shared\" as *;\n@use \"mixins/transition\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$drawer-tokens: () !default;\n\n// scss-docs-start drawer-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$drawer-tokens: defaults(\n (\n --drawer-inset: var(--spacer),\n --drawer-zindex: #{$zindex-drawer},\n --drawer-width: 400px,\n --drawer-height: 30vh,\n --drawer-padding-x: var(--spacer),\n --drawer-padding-y: var(--spacer),\n --drawer-color: var(--fg-body),\n --drawer-bg: var(--bg-body),\n --drawer-border-width: var(--border-width),\n --drawer-border-color: var(--border-color-translucent),\n --drawer-border-radius: var(--radius-7),\n --drawer-box-shadow: var(--box-shadow-lg),\n --drawer-transition-duration: .3s,\n --drawer-transition-timing: cubic-bezier(.22, 1, .36, 1),\n --drawer-title-line-height: 1.5,\n ),\n $drawer-tokens\n);\n// scss-docs-end drawer-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n$drawer-backdrop-tokens: () !default;\n\n// scss-docs-start drawer-backdrop-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$drawer-backdrop-tokens: defaults(\n (\n --drawer-backdrop-bg: var(--bg-body),\n --drawer-backdrop-opacity: 25%,\n --drawer-backdrop-blur: 8px,\n ),\n $drawer-backdrop-tokens\n);\n// scss-docs-end drawer-backdrop-tokens\n\n%drawer-css-vars {\n @include tokens($drawer-tokens);\n}\n\n@layer components {\n // Apply CSS vars to all drawer responsive variants\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n .#{$prefix}drawer {\n @extend %drawer-css-vars;\n }\n }\n\n // Responsive drawer styles\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n .#{$prefix}drawer {\n @include media-breakpoint-down($next) {\n // Reset native <dialog> UA defaults (fit-content sizing, inset, margins)\n // and override display:none so visibility controls the hidden state.\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n\n @include border-radius(var(--drawer-border-radius));\n @include box-shadow(var(--drawer-box-shadow));\n\n // Placement positioning and sizing — always applied regardless of animation mode.\n &:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n\n &:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n\n &:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n\n &:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n\n &:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n\n // Animated variant (default) — transitions + off-screen transforms.\n // Adding .drawer-instant skips all animations.\n &:not(.drawer-instant) {\n @include transition(transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration));\n\n // Off-screen transforms per placement\n &:where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n\n :root:dir(rtl) & {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n }\n\n &:where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n\n :root:dir(rtl) & {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n }\n\n &:where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n\n &:where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n\n &:where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n\n // Open state: slide in with transition\n &[open] {\n visibility: visible;\n @include transition(transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s);\n transform: none;\n }\n }\n\n // Open state base (always applies, regardless of animation mode)\n &[open] {\n visibility: visible;\n transform: none;\n }\n }\n\n // Above breakpoint - show content inline (for responsive drawer)\n // Above breakpoint - show content inline (for responsive drawer).\n // Must fully reset all drawer styles so the element behaves as an\n // inline flex container within its parent (e.g., a navbar).\n @if not ($prefix == \"\") {\n @include media-breakpoint-up($next) {\n // stylelint-disable declaration-no-important\n --drawer-height: auto;\n --drawer-border-width: 0;\n // Reset native <dialog> UA styles\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n @include transition(none !important);\n // stylelint-enable declaration-no-important\n\n .drawer-header {\n display: none;\n }\n\n .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n // stylelint-disable-next-line declaration-no-important\n background-color: transparent !important;\n }\n @include border-radius(0);\n @include box-shadow(none);\n }\n }\n }\n }\n\n // Native ::backdrop for modal drawer.\n // ::backdrop lives in the top layer outside the DOM tree, so it does NOT\n // inherit custom properties from the element. Tokens must be applied directly.\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n .#{$prefix}drawer::backdrop {\n @include tokens($drawer-backdrop-tokens);\n @include tokens($drawer-tokens);\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n @include backdrop-transitions(var(--drawer-transition-duration), var(--drawer-transition-timing));\n }\n }\n\n // Backdrop entry animation — ::backdrop can safely use @starting-style\n // since it only exists when the dialog is in the top layer (no responsive issue).\n @starting-style {\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n .#{$prefix}drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n }\n }\n\n // Static backdrop transition (\"bounce\")\n .drawer-static {\n transform: scale(1.02);\n }\n\n .drawer-translucent {\n background-color: color-mix(in oklch, var(--drawer-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n\n // Sheet variant: flush-to-edge panel with no inset, border-radius, or shadow.\n // Overrides tokens so placement transforms (which use calc() with --drawer-inset)\n // automatically position the drawer at the viewport edge.\n .drawer-sheet {\n --drawer-inset: 0;\n --drawer-border-radius: 0;\n --drawer-border-width: 0;\n --drawer-box-shadow: none;\n }\n\n // Header with close button\n .drawer-header {\n @include dialog-header(var(--drawer-padding-y) var(--drawer-padding-x));\n\n .btn-close {\n padding: calc(var(--drawer-padding-y) * .5) calc(var(--drawer-padding-x) * .5);\n margin-inline-start: auto;\n margin-inline-end: calc(-.5 * var(--drawer-padding-x));\n margin-top: calc(-.5 * var(--drawer-padding-y));\n margin-bottom: calc(-.5 * var(--drawer-padding-y));\n }\n }\n\n // Title\n .drawer-title {\n @include dialog-title(var(--drawer-title-line-height));\n }\n\n // Scrollable body\n .drawer-body {\n display: flex;\n flex-direction: column;\n gap: var(--drawer-padding-y);\n @include dialog-body(var(--drawer-padding-y) var(--drawer-padding-x));\n overflow-y: auto;\n }\n\n // Optional footer\n .drawer-footer {\n @include dialog-footer(var(--drawer-padding-y) var(--drawer-padding-x), .5rem, var(--drawer-border-width), var(--drawer-border-color));\n }\n\n .drawer-fit-content {\n inset-block-end: auto;\n }\n}\n","@use \"functions\" as *;\n@use \"mixins/lists\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/gradients\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/tokens\" as *;\n\n// mdo-do: Update pagination to support variant themes\n\n// stylelint-disable custom-property-no-missing-var-function\n$pagination-tokens: () !default;\n\n// scss-docs-start pagination-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$pagination-tokens: defaults(\n (\n --pagination-min-height: var(--btn-input-min-height),\n --pagination-padding-x: var(--btn-input-padding-x),\n --pagination-padding-y: var(--btn-input-padding-y),\n --pagination-font-size: var(--btn-input-font-size),\n --pagination-color: var(--link-color),\n --pagination-bg: var(--bg-body),\n --pagination-border-width: var(--border-width),\n --pagination-border-color: var(--border-color),\n --pagination-border-radius: var(--btn-input-border-radius),\n --pagination-hover-color: var(--link-hover-color),\n --pagination-hover-bg: var(--bg-1),\n --pagination-hover-border-color: var(--border-color),\n --pagination-focus-color: var(--link-hover-color),\n --pagination-focus-bg: var(--bg-2),\n --pagination-active-color: var(--primary-contrast),\n --pagination-active-bg: var(--primary-bg),\n --pagination-active-border-color: var(--primary-bg),\n --pagination-disabled-color: var(--fg-3),\n --pagination-disabled-bg: var(--bg-2),\n --pagination-disabled-border-color: var(--border-color),\n ),\n $pagination-tokens\n);\n// scss-docs-end pagination-tokens\n\n// scss-docs-start pagination-sizes\n$pagination-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$pagination-sizes: defaults(\n (\"sm\", \"lg\"),\n $pagination-sizes\n);\n// scss-docs-end pagination-sizes\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer components {\n .pagination {\n @include tokens($pagination-tokens);\n\n display: flex;\n @include list-unstyled();\n }\n\n .page-link {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: var(--pagination-min-height);\n padding: var(--pagination-padding-y) var(--pagination-padding-x);\n font-size: var(--pagination-font-size);\n color: var(--pagination-color);\n text-decoration: none;\n background-color: var(--pagination-bg);\n border: var(--pagination-border-width) solid var(--pagination-border-color);\n @include transition(color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out);\n\n &:hover {\n z-index: 2;\n color: var(--pagination-hover-color);\n background-color: var(--pagination-hover-bg);\n border-color: var(--pagination-hover-border-color);\n }\n\n &:focus-visible {\n z-index: 3;\n color: var(--pagination-focus-color);\n background-color: var(--pagination-focus-bg);\n @include focus-ring(true);\n }\n\n &.active,\n .active > & {\n z-index: 3;\n color: var(--pagination-active-color);\n @include gradient-bg(var(--pagination-active-bg));\n border-color: var(--pagination-active-border-color);\n }\n\n &.disabled,\n .disabled > & {\n color: var(--pagination-disabled-color);\n pointer-events: none;\n background-color: var(--pagination-disabled-bg);\n border-color: var(--pagination-disabled-border-color);\n }\n }\n\n .page-item {\n &:not(:first-child) .page-link {\n margin-inline-start: calc(-1 * var(--pagination-border-width));\n }\n\n &:first-child {\n .page-link {\n @include border-start-radius(var(--pagination-border-radius));\n }\n }\n\n &:last-child {\n .page-link {\n @include border-end-radius(var(--pagination-border-radius));\n }\n }\n }\n\n //\n // Sizing\n //\n\n // scss-docs-start pagination-sizes-loop\n @each $size, $_ in $pagination-sizes {\n .pagination-#{$size} {\n --pagination-min-height: var(--bs-btn-input-#{$size}-min-height);\n --pagination-padding-y: var(--btn-input-#{$size}-padding-y);\n --pagination-padding-x: var(--btn-input-#{$size}-padding-x);\n --pagination-font-size: var(--btn-input-#{$size}-font-size);\n --pagination-border-radius: var(--btn-input-#{$size}-border-radius);\n }\n }\n // scss-docs-end pagination-sizes-loop\n}\n","@use \"colors\" as *;\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n$placeholder-tokens: () !default;\n\n// scss-docs-start placeholder-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$placeholder-tokens: defaults(\n (\n --placeholder-opacity-max: .5,\n --placeholder-opacity-min: .2,\n ),\n $placeholder-tokens\n);\n// scss-docs-end placeholder-tokens\n\n@layer components {\n .placeholder {\n @include tokens($placeholder-tokens);\n\n display: inline-block;\n min-height: 1em;\n vertical-align: middle;\n cursor: wait;\n background-color: currentcolor;\n opacity: var(--placeholder-opacity-max);\n\n &.btn::before {\n display: inline-block;\n content: \"\";\n }\n }\n\n // Sizing\n .placeholder-xs {\n min-height: .6em;\n }\n\n .placeholder-sm {\n min-height: .8em;\n }\n\n .placeholder-lg {\n min-height: 1.2em;\n }\n\n // Animation\n .placeholder-glow {\n .placeholder {\n animation: placeholder-glow 2s ease-in-out infinite;\n }\n }\n\n @keyframes placeholder-glow {\n 50% {\n opacity: var(--placeholder-opacity-min);\n }\n }\n\n .placeholder-wave {\n mask-image: linear-gradient(130deg, $black 55%, rgb(0 0 0 / calc(1 - var(--placeholder-opacity-min))) 75%, $black 95%);\n mask-size: 200% 100%;\n animation: placeholder-wave 2s linear infinite;\n }\n\n @keyframes placeholder-wave {\n 100% {\n mask-position: -200% 0%;\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/reset-text\" as *;\n@use \"mixins/tokens\" as *;\n\n$popover-tokens: () !default;\n\n// scss-docs-start popover-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$popover-tokens: defaults(\n (\n --popover-zindex: #{$zindex-popover},\n --popover-max-width: 280px,\n --popover-font-size: var(--font-size-sm),\n --popover-bg: var(--bg-body),\n --popover-border-width: var(--border-width),\n --popover-border-color: var(--border-color-translucent),\n --popover-border-radius: var(--radius-7),\n --popover-inner-border-radius: calc(var(--radius-7) - var(--border-width)),\n --popover-box-shadow: var(--box-shadow),\n --popover-header-padding-x: var(--spacer),\n --popover-header-padding-y: var(--spacer-3),\n --popover-header-font-size: var(--font-size-sm),\n --popover-header-color: #{$headings-color},\n --popover-header-bg: var(--bg-1),\n --popover-body-padding-x: var(--spacer),\n --popover-body-padding-y: var(--spacer-3),\n --popover-body-color: var(--fg-body),\n --popover-arrow-width: 1rem,\n --popover-arrow-height: .5rem,\n --popover-arrow-border: var(--popover-border-color),\n ),\n $popover-tokens\n);\n// scss-docs-end popover-tokens\n\n@layer components {\n .popover {\n // scss-docs-start popover-css-vars\n @include tokens($popover-tokens);\n // scss-docs-end popover-css-vars\n\n z-index: var(--popover-zindex);\n display: block;\n max-width: var(--popover-max-width);\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n font-size: var(--popover-font-size);\n // Allow breaking very long words so they don't overflow the popover's bounds\n word-wrap: break-word;\n background-color: var(--popover-bg);\n background-clip: padding-box;\n border: var(--popover-border-width) solid var(--popover-border-color);\n @include border-radius(var(--popover-border-radius));\n @include box-shadow(var(--popover-box-shadow));\n\n .popover-arrow {\n display: block;\n width: var(--popover-arrow-width);\n height: var(--popover-arrow-height);\n\n &::before,\n &::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n border-width: 0;\n }\n }\n }\n\n .bs-popover-top {\n > .popover-arrow {\n bottom: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n\n &::before,\n &::after {\n border-width: var(--popover-arrow-height) calc(var(--popover-arrow-width) * .5) 0;\n }\n\n &::before {\n bottom: 0;\n border-block-start-color: var(--popover-arrow-border);\n }\n\n &::after {\n bottom: var(--popover-border-width);\n border-block-start-color: var(--popover-bg);\n }\n }\n }\n\n .bs-popover-end {\n > .popover-arrow {\n left: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n width: var(--popover-arrow-height);\n height: var(--popover-arrow-width);\n\n &::before,\n &::after {\n border-width: calc(var(--popover-arrow-width) * .5) var(--popover-arrow-height) calc(var(--popover-arrow-width) * .5) 0;\n }\n\n &::before {\n left: 0;\n border-inline-end-color: var(--popover-arrow-border);\n }\n\n &::after {\n left: var(--popover-border-width);\n border-inline-end-color: var(--popover-bg);\n }\n }\n }\n\n .bs-popover-bottom {\n > .popover-arrow {\n top: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n\n &::before,\n &::after {\n border-width: 0 calc(var(--popover-arrow-width) * .5) var(--popover-arrow-height);\n }\n\n &::before {\n top: 0;\n border-block-end-color: var(--popover-arrow-border);\n }\n\n &::after {\n top: var(--popover-border-width);\n border-block-end-color: var(--popover-bg);\n }\n }\n\n // This will remove the popover-header's border just below the arrow\n .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: var(--popover-arrow-width);\n margin-inline-start: calc(-.5 * var(--popover-arrow-width));\n content: \"\";\n border-block-end: var(--popover-border-width) solid var(--popover-header-bg);\n }\n }\n\n .bs-popover-start {\n > .popover-arrow {\n right: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n width: var(--popover-arrow-height);\n height: var(--popover-arrow-width);\n\n &::before,\n &::after {\n border-width: calc(var(--popover-arrow-width) * .5) 0 calc(var(--popover-arrow-width) * .5) var(--popover-arrow-height);\n }\n\n &::before {\n right: 0;\n border-inline-start-color: var(--popover-arrow-border);\n }\n\n &::after {\n right: var(--popover-border-width);\n border-inline-start-color: var(--popover-bg);\n }\n }\n }\n\n .bs-popover-auto {\n &[data-bs-placement^=\"top\"] {\n @extend .bs-popover-top;\n }\n &[data-bs-placement^=\"right\"] {\n @extend .bs-popover-end;\n }\n &[data-bs-placement^=\"bottom\"] {\n @extend .bs-popover-bottom;\n }\n &[data-bs-placement^=\"left\"] {\n @extend .bs-popover-start;\n }\n }\n\n // Offset the popover to account for the popover arrow\n .popover-header {\n padding: var(--popover-header-padding-y) var(--popover-header-padding-x);\n margin-bottom: 0; // Reset the default from Reboot\n font-size: var(--popover-header-font-size);\n color: var(--popover-header-color);\n background-color: var(--popover-header-bg);\n border-block-end: var(--popover-border-width) solid var(--popover-border-color);\n @include border-top-radius(var(--popover-inner-border-radius));\n\n &:empty {\n display: none;\n }\n }\n\n .popover-body {\n padding: var(--popover-body-padding-y) var(--popover-body-padding-x);\n color: var(--popover-body-color);\n }\n}\n","@mixin reset-text {\n font-family: var(--body-font-family);\n // We deliberately do NOT reset font-size or overflow-wrap / word-wrap.\n font-style: normal;\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/gradients\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/tokens\" as *;\n\n$progress-tokens: () !default;\n\n// scss-docs-start progress-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$progress-tokens: defaults(\n (\n --progress-height: 1rem,\n --progress-font-size: var(--font-size-sm),\n --progress-bg: var(--bg-2),\n --progress-border-radius: var(--radius-5),\n --progress-box-shadow: var(--box-shadow-inset),\n --progress-bar-color: var(--white),\n --progress-bar-bg: var(--primary-bg),\n --progress-bar-transition: width .6s ease,\n --progress-bar-animation: progress-bar-stripes 1s linear infinite,\n ),\n $progress-tokens\n);\n// scss-docs-end progress-tokens\n\n// Disable animation if transitions are disabled\n\n@layer components {\n // scss-docs-start progress-keyframes\n @if $enable-transitions {\n @keyframes progress-bar-stripes {\n 0% { background-position-x: var(--progress-height); }\n }\n }\n // scss-docs-end progress-keyframes\n\n .progress,\n .progress-stacked {\n @include tokens($progress-tokens);\n\n display: flex;\n height: var(--progress-height);\n overflow: hidden;\n font-size: var(--progress-font-size);\n background-color: var(--progress-bg);\n @include border-radius(var(--progress-border-radius));\n @include box-shadow(var(--progress-box-shadow));\n }\n\n .progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: var(--theme-contrast, var(--progress-bar-color));\n text-align: center;\n white-space: nowrap;\n background-color: var(--theme-bg, var(--progress-bar-bg));\n @include transition(var(--progress-bar-transition));\n }\n\n .progress-bar-striped {\n @include gradient-striped();\n background-size: var(--progress-height) var(--progress-height);\n }\n\n .progress-stacked > .progress {\n overflow: visible;\n }\n\n .progress-stacked > .progress > .progress-bar {\n width: 100%;\n }\n\n @if $enable-transitions {\n .progress-bar-animated {\n animation: var(--progress-bar-animation);\n\n @if $enable-reduced-motion {\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n }\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$spinner-border-tokens: () !default;\n\n// scss-docs-start spinner-border-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$spinner-border-tokens: defaults(\n (\n --spinner-width: 2rem,\n --spinner-height: 2rem,\n --spinner-vertical-align: -.125em,\n --spinner-border-width: .25em,\n --spinner-animation-speed: .75s,\n --spinner-animation-name: spinner-border,\n ),\n $spinner-border-tokens\n);\n// scss-docs-end spinner-border-tokens\n\n$spinner-grow-tokens: () !default;\n\n// scss-docs-start spinner-grow-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$spinner-grow-tokens: defaults(\n (\n --spinner-width: 2rem,\n --spinner-height: 2rem,\n --spinner-vertical-align: -.125em,\n --spinner-animation-speed: .75s,\n --spinner-animation-name: spinner-grow,\n ),\n $spinner-grow-tokens\n);\n// scss-docs-end spinner-grow-tokens\n\n// stylelint-enable custom-property-no-missing-var-function\n\n//\n// Rotating border\n//\n\n@layer components {\n // mdo-do: Refactor this to assume flex parent and remove `vertical-align`\n .spinner-grow,\n .spinner-border {\n display: inline-block;\n flex-shrink: 0;\n width: var(--spinner-width);\n height: var(--spinner-height);\n vertical-align: var(--spinner-vertical-align);\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n animation: var(--spinner-animation-speed) linear infinite var(--spinner-animation-name);\n }\n\n // scss-docs-start spinner-border-keyframes\n @keyframes spinner-border {\n to { transform: rotate(360deg); }\n }\n // scss-docs-end spinner-border-keyframes\n\n .spinner-border {\n @include tokens($spinner-border-tokens);\n\n border: var(--spinner-border-width) solid currentcolor;\n border-inline-end-color: transparent;\n }\n\n .spinner-border-sm {\n // scss-docs-start spinner-border-sm-css-vars\n --spinner-width: 1rem;\n --spinner-height: 1rem;\n --spinner-border-width: .2em;\n // scss-docs-end spinner-border-sm-css-vars\n }\n\n //\n // Growing circle\n //\n\n // scss-docs-start spinner-grow-keyframes\n @keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n }\n // scss-docs-end spinner-grow-keyframes\n\n .spinner-grow {\n @include tokens($spinner-grow-tokens);\n\n background-color: currentcolor;\n opacity: 0;\n }\n\n .spinner-grow-sm {\n // scss-docs-start spinner-grow-sm-css-vars\n --spinner-width: 1rem;\n --spinner-height: 1rem;\n // scss-docs-end spinner-grow-sm-css-vars\n }\n\n @if $enable-reduced-motion {\n @media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n --spinner-animation-speed: 1.5s;\n }\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/tokens\" as *;\n\n$stepper-tokens: () !default;\n\n// scss-docs-start stepper-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$stepper-tokens: defaults(\n (\n --stepper-size: 2rem,\n --stepper-gap: 1rem,\n --stepper-font-size: var(--font-size-sm),\n --stepper-text-gap: .5rem,\n --stepper-track-size: .125rem,\n --stepper-bg: var(--bg-2),\n --stepper-active-color: var(--primary-contrast),\n --stepper-active-bg: var(--primary-bg),\n ),\n $stepper-tokens\n);\n// scss-docs-end stepper-tokens\n\n// scss-docs-start stepper-horizontal-mixin\n@mixin stepper-horizontal() {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n\n .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n\n &::after {\n inset-block-start: calc((var(--stepper-size) * .5) - (var(--stepper-track-size) * .5));\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n\n &:last-child::after {\n right: 100%;\n }\n }\n}\n// scss-docs-end stepper-horizontal-mixin\n\n@layer components {\n .stepper {\n @include tokens($stepper-tokens);\n\n display: grid;\n grid-auto-rows: 1fr;\n grid-auto-flow: row;\n gap: var(--stepper-gap);\n padding-inline-start: 0;\n list-style: none;\n counter-reset: stepper;\n }\n\n .stepper-item {\n position: relative;\n display: grid;\n grid-template-rows: auto;\n grid-template-columns: var(--stepper-size) auto;\n gap: var(--stepper-text-gap);\n align-items: var(--stepper-align-items, center);\n text-decoration: none;\n\n // The counter\n &::before {\n position: relative;\n z-index: 1;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--stepper-size);\n height: var(--stepper-size);\n padding: .5rem;\n font-size: var(--stepper-font-size);\n font-weight: 600;\n line-height: 1;\n text-align: center;\n content: counter(stepper);\n counter-increment: stepper;\n background-color: var(--stepper-bg);\n @include border-radius(50%);\n }\n\n // Connecting lines\n &::after {\n position: absolute;\n inset-block-start: 50%;\n inset-block-end: 100%;\n inset-inline-start: calc((var(--stepper-size) * .5) - (var(--stepper-track-size) * .5));\n width: var(--stepper-track-size);\n height: calc(100% + var(--stepper-gap));\n content: \"\";\n background-color: var(--stepper-bg);\n }\n\n // Avoid sibling selector for easier CSS overrides\n &:last-child::after {\n display: none;\n }\n\n &.active {\n &::before,\n &::after {\n color: var(--theme-contrast, var(--stepper-active-color));\n background-color: var(--theme-bg, var(--stepper-active-bg));\n }\n }\n }\n\n // Targets the last .active element from a sequence of active elements\n .stepper-item.active:not(:has(+ .stepper-item.active))::after {\n background-color: var(--stepper-bg);\n }\n\n .stepper-horizontal {\n @include stepper-horizontal();\n }\n\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n @if $next {\n .#{$prefix}stepper-horizontal {\n @include container-breakpoint-up($next) {\n @include stepper-horizontal();\n }\n }\n }\n }\n\n // scss-docs-start stepper-overflow\n .stepper-overflow {\n container-type: inline-size;\n overflow-x: auto;\n overscroll-behavior-x: contain;\n -webkit-overflow-scrolling: touch;\n\n > .stepper {\n width: max-content;\n min-width: 100%;\n }\n }\n // scss-docs-end stepper-overflow\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/tokens\" as *;\n\n$toast-tokens: () !default;\n\n// scss-docs-start toast-tokens\n// stylelint-disable custom-property-no-missing-var-function\n// stylelint-disable-next-line scss/dollar-variable-default\n$toast-tokens: defaults(\n (\n --toast-zindex: #{$zindex-toast},\n --toast-padding-x: 1rem,\n --toast-padding-y: .75rem,\n --toast-spacing: #{$container-padding-x},\n --toast-max-width: 350px,\n --toast-font-size: var(--font-size-sm),\n --toast-color: null,\n --toast-bg: var(--bg-body),\n --toast-border-width: var(--border-width),\n --toast-border-color: var(--border-color-translucent),\n --toast-border-radius: null,\n --toast-box-shadow: var(--box-shadow),\n --toast-header-color: var(--fg-3),\n --toast-header-bg: var(--bg-1),\n --toast-header-border-color: var(--border-color-translucent),\n ),\n $toast-tokens\n);\n// stylelint-enable custom-property-no-missing-var-function\n// scss-docs-end toast-tokens\n\n@layer components {\n .toast {\n @include tokens($toast-tokens);\n\n display: flex;\n flex-direction: column;\n width: var(--toast-max-width);\n max-width: 100%;\n overflow: hidden;\n font-size: var(--toast-font-size);\n color: var(--toast-color, var(--fg-body));\n pointer-events: auto;\n background-color: var(--toast-bg);\n background-clip: padding-box;\n border: var(--toast-border-width) solid var(--theme-border, var(--toast-border-color));\n box-shadow: var(--toast-box-shadow);\n @include border-radius(var(--toast-border-radius, var(--radius-7)));\n\n &.showing {\n opacity: 0;\n }\n\n &:not(.show) {\n display: none;\n }\n }\n\n .toast-container {\n --toast-zindex: #{$zindex-toast};\n\n position: absolute;\n z-index: var(--toast-zindex);\n width: max-content;\n max-width: 100%;\n pointer-events: none;\n\n > :not(:last-child) {\n margin-bottom: var(--toast-spacing);\n }\n }\n\n .toast-header {\n display: flex;\n align-items: center;\n padding: var(--toast-padding-y) var(--toast-padding-x);\n color: var(--theme-fg-emphasis, var(--toast-header-color));\n background-color: var(--theme-bg-subtle, var(--toast-header-bg));\n // background-clip: padding-box;\n border-block-end: var(--toast-border-width, var(--border-width)) solid var(--theme-border, var(--toast-header-border-color, var(--border-color-translucent)));\n\n .btn-close {\n margin-inline-start: calc(.5 * var(--toast-padding-x));\n margin-inline-end: calc(-.25 * var(--toast-padding-x));\n color: inherit;\n }\n }\n\n .toast-translucent {\n backdrop-filter: blur(5px) saturate(180%);\n }\n\n .toast-body {\n padding: var(--toast-padding-x);\n word-wrap: break-word;\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/reset-text\" as *;\n@use \"mixins/tokens\" as *;\n\n$tooltip-tokens: () !default;\n\n// scss-docs-start tooltip-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$tooltip-tokens: defaults(\n (\n --tooltip-zindex: #{$zindex-tooltip},\n --tooltip-max-width: 200px,\n --tooltip-padding-x: var(--spacer-3),\n --tooltip-padding-y: calc(var(--spacer) * .375),\n --tooltip-font-size: var(--font-size-sm),\n --tooltip-color: var(--bg-body),\n --tooltip-bg: var(--fg-body),\n --tooltip-border-radius: var(--radius-5),\n --tooltip-opacity: .95,\n --tooltip-arrow-width: .8rem,\n --tooltip-arrow-height: .4rem,\n ),\n $tooltip-tokens\n);\n// scss-docs-end tooltip-tokens\n\n@layer components {\n .tooltip {\n @include tokens($tooltip-tokens);\n\n z-index: var(--tooltip-zindex);\n display: block;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n font-size: var(--tooltip-font-size);\n // Allow breaking very long words so they don't overflow the tooltip's bounds\n word-wrap: break-word;\n opacity: 0;\n\n &.show { opacity: var(--tooltip-opacity); }\n\n .tooltip-arrow {\n display: block;\n width: var(--tooltip-arrow-width);\n height: var(--tooltip-arrow-height);\n\n &::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n }\n\n .bs-tooltip-top .tooltip-arrow {\n bottom: calc(-1 * var(--tooltip-arrow-height));\n\n &::before {\n top: -1px;\n border-width: var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * .5) 0;\n border-block-start-color: var(--tooltip-bg);\n }\n }\n\n .bs-tooltip-end .tooltip-arrow {\n left: calc(-1 * var(--tooltip-arrow-height));\n width: var(--tooltip-arrow-height);\n height: var(--tooltip-arrow-width);\n\n &::before {\n right: -1px;\n border-width: calc(var(--tooltip-arrow-width) * .5) var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * .5) 0;\n border-inline-end-color: var(--tooltip-bg);\n }\n }\n\n .bs-tooltip-bottom .tooltip-arrow {\n top: calc(-1 * var(--tooltip-arrow-height));\n\n &::before {\n bottom: -1px;\n border-width: 0 calc(var(--tooltip-arrow-width) * .5) var(--tooltip-arrow-height);\n border-block-end-color: var(--tooltip-bg);\n }\n }\n\n .bs-tooltip-start .tooltip-arrow {\n right: calc(-1 * var(--tooltip-arrow-height));\n width: var(--tooltip-arrow-height);\n height: var(--tooltip-arrow-width);\n\n &::before {\n left: -1px;\n border-width: calc(var(--tooltip-arrow-width) * .5) 0 calc(var(--tooltip-arrow-width) * .5) var(--tooltip-arrow-height);\n border-inline-start-color: var(--tooltip-bg);\n }\n }\n\n .bs-tooltip-auto {\n &[data-bs-placement^=\"top\"] {\n @extend .bs-tooltip-top;\n }\n &[data-bs-placement^=\"right\"] {\n @extend .bs-tooltip-end;\n }\n &[data-bs-placement^=\"bottom\"] {\n @extend .bs-tooltip-bottom;\n }\n &[data-bs-placement^=\"left\"] {\n @extend .bs-tooltip-start;\n }\n }\n\n // Wrapper for the tooltip content\n .tooltip-inner {\n max-width: var(--tooltip-max-width);\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n color: var(--tooltip-color);\n text-align: center;\n background-color: var(--tooltip-bg);\n @include border-radius(var(--tooltip-border-radius));\n }\n}\n","@use \"config\" as *;\n@use \"mixins/transition\" as *;\n\n.fade {\n @include transition($transition-fade);\n\n &:not(.show) {\n opacity: 0;\n }\n}\n\n// scss-docs-start collapse-classes\n.collapse {\n &:not(.show) {\n display: none;\n }\n}\n\n.collapsing {\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n\n &.collapse-horizontal {\n width: 0;\n height: auto;\n @include transition($transition-collapse-width);\n }\n}\n// scss-docs-end collapse-classes\n","@layer helpers {\n .focus-ring:focus-visible {\n // outline: var(--focus-ring);\n outline: var(--focus-ring-width) solid var(--theme-focus-ring, var(--focus-ring-color));\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/transition\" as *;\n\n@layer helpers {\n .icon-link {\n display: inline-flex;\n gap: $icon-link-gap;\n align-items: center;\n text-decoration-color: rgba(var(--link-color-rgb), var(--link-opacity, .5));\n text-underline-offset: $icon-link-underline-offset;\n backface-visibility: hidden;\n\n > .bi {\n flex-shrink: 0;\n width: $icon-link-icon-size;\n height: $icon-link-icon-size;\n fill: currentcolor;\n @include transition($icon-link-icon-transition);\n }\n }\n\n .icon-link-hover {\n &:hover,\n &:focus-visible {\n > .bi {\n transform: var(--icon-link-transform, $icon-link-icon-transform);\n }\n }\n }\n}\n","@use \"sass:map\";\n@use \"../config\" as *;\n@use \"../layout/breakpoints\" as *;\n\n@layer helpers {\n .fixed-top {\n position: fixed;\n inset: 0 0 auto;\n z-index: $zindex-fixed;\n }\n\n .fixed-bottom {\n position: fixed;\n inset: auto 0 0;\n z-index: $zindex-fixed;\n }\n\n // Responsive sticky top and bottom\n @each $breakpoint in map.keys($breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n .#{$prefix}sticky-top {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n\n .#{$prefix}sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: $zindex-sticky;\n }\n }\n }\n}\n","@use \"../layout/breakpoints\" as *;\n\n@layer helpers {\n // scss-docs-start stacks\n .stack-container {\n @include set-container();\n }\n\n [class*=\"hstack\"],\n [class*=\"vstack\"] {\n display: flex;\n flex: var(--stack-flex, 1 1 auto);\n flex-direction: var(--stack-direction, row);\n align-items: var(--stack-align-items, center);\n align-self: var(--stack-align-self, stretch);\n }\n\n @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n .#{$prefix}vstack {\n @include container-breakpoint-up($breakpoint) {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n .#{$prefix}hstack {\n @include container-breakpoint-up($breakpoint) {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n }\n // scss-docs-end stacks\n}\n","@use \"../theme\" as *;\n\n// Generate theme modifier classes (e.g., .theme-primary, .theme-accent, etc.)\n@layer helpers {\n @include generate-theme-classes();\n}\n","@use \"sass:map\";\n\n@function theme-color-values($key) {\n $result: ();\n\n @each $color-name, $color-map in $theme-colors {\n @if map.has-key($color-map, $key) {\n $result: map.merge($result, ($color-name: map.get($color-map, $key)));\n }\n }\n\n @return $result;\n}\n\n// Themes map sub-keys\n//\n// Return var() references to root tokens instead of raw values.\n// Ex: theme-color-refs(\"bg\") => (primary: var(--primary-bg), accent: var(--accent-bg), ...)\n@function theme-color-refs($key) {\n $result: ();\n\n @each $color-name, $color-map in $theme-colors {\n @if map.has-key($color-map, $key) {\n $result: map.merge($result, ($color-name: var(--#{$color-name}-#{$key})));\n }\n }\n\n @return $result;\n}\n\n// Theme token to root tokens\n//\n// Returns the global :root token reference for a given a given token map, prefix, and key.\n// Ex: theme-token-refs($theme-bgs, \"bg\") => (body: var(--bg-body), 1: var(--bg-1), ...)\n// Skips `inherit` since it's a CSS-wide keyword that can't be stored in a custom property.\n@function theme-token-refs($map, $prefix) {\n $result: ();\n\n @each $key, $value in $map {\n @if $value != inherit {\n $result: map.merge($result, ($key: var(--#{$prefix}-#{$key})));\n }\n }\n\n @return $result;\n}\n\n// Generate opacity values using color-mix()\n@function theme-opacity-values($color-var, $opacities: $util-opacity) {\n $result: ();\n\n @each $key, $value in $opacities {\n @if $key == 100 {\n // For 100%, use direct variable reference (more efficient)\n $result: map.merge($result, ($key: var($color-var)));\n } @else {\n // For other values, use color-mix()\n $percentage: $key * 1%;\n $result: map.merge($result, ($key: color-mix(in oklch, var($color-var) $percentage, transparent)));\n }\n }\n\n @return $result;\n}\n\n// Generate theme classes dynamically based on the keys in each theme color map\n@mixin generate-theme-classes() {\n @each $color-name, $color-map in $theme-colors {\n .theme-#{$color-name} {\n @each $key, $value in $color-map {\n --theme-#{$key}: var(--#{$color-name}-#{$key});\n }\n }\n }\n}\n\n// scss-docs-start theme-colors\n$theme-colors: (\n \"primary\": (\n \"base\": var(--blue-500),\n \"fg\": light-dark(var(--blue-600), var(--blue-400)),\n \"fg-emphasis\": light-dark(var(--blue-800), var(--blue-200)),\n \"bg\": var(--blue-500),\n \"bg-subtle\": light-dark(var(--blue-100), var(--blue-900)),\n \"bg-muted\": light-dark(var(--blue-200), var(--blue-800)),\n \"border\": light-dark(var(--blue-300), var(--blue-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"accent\": (\n \"base\": var(--indigo-500),\n \"fg\": light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300))),\n \"fg-emphasis\": light-dark(var(--indigo-800), var(--indigo-300)),\n \"bg\": var(--indigo-500),\n \"bg-subtle\": light-dark(var(--indigo-100), var(--indigo-900)),\n \"bg-muted\": light-dark(var(--indigo-200), var(--indigo-800)),\n \"border\": light-dark(var(--indigo-300), var(--indigo-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"success\": (\n \"base\": var(--green-500),\n \"fg\": light-dark(var(--green-600), var(--green-400)),\n \"fg-emphasis\": light-dark(var(--green-800), var(--green-300)),\n \"bg\": var(--green-500),\n \"bg-subtle\": light-dark(var(--green-100), var(--green-900)),\n \"bg-muted\": light-dark(var(--green-200), var(--green-800)),\n \"border\": light-dark(var(--green-300), var(--green-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"danger\": (\n \"base\": var(--red-500),\n \"fg\": light-dark(var(--red-600), var(--red-400)),\n \"fg-emphasis\": light-dark(var(--red-800), var(--red-300)),\n \"bg\": var(--red-500),\n \"bg-subtle\": light-dark(var(--red-100), var(--red-900)),\n \"bg-muted\": light-dark(var(--red-200), var(--red-800)),\n \"border\": light-dark(var(--red-300), var(--red-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"warning\": (\n \"base\": var(--yellow-500),\n \"fg\": light-dark(var(--yellow-700), var(--yellow-400)),\n \"fg-emphasis\": light-dark(var(--yellow-800), var(--yellow-300)),\n \"bg\": var(--yellow-500),\n \"bg-subtle\": light-dark(var(--yellow-100), var(--yellow-900)),\n \"bg-muted\": light-dark(var(--yellow-200), var(--yellow-800)),\n \"border\": light-dark(var(--yellow-300), var(--yellow-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body))),\n \"contrast\": var(--gray-900)\n ),\n \"info\": (\n \"base\": var(--cyan-500),\n \"fg\": light-dark(var(--cyan-600), var(--cyan-400)),\n \"fg-emphasis\": light-dark(var(--cyan-800), var(--cyan-300)),\n \"bg\": var(--cyan-500),\n \"bg-subtle\": light-dark(var(--cyan-100), var(--cyan-900)),\n \"bg-muted\": light-dark(var(--cyan-200), var(--cyan-800)),\n \"border\": light-dark(var(--cyan-300), var(--cyan-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body))),\n \"contrast\": var(--gray-900)\n ),\n \"inverse\": (\n \"base\": var(--gray-900),\n \"fg\": light-dark(var(--gray-900), var(--gray-200)),\n \"fg-emphasis\": light-dark(var(--gray-975), var(--white)),\n \"bg\": light-dark(var(--gray-900), var(--gray-025)),\n \"bg-subtle\": light-dark(var(--gray-100), var(--gray-900)),\n \"bg-muted\": light-dark(var(--gray-200), var(--gray-300)),\n \"border\": light-dark(var(--gray-400), var(--gray-100)),\n \"focus-ring\": color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body)),\n \"contrast\": light-dark(var(--white), var(--gray-900))\n ),\n \"secondary\": (\n \"base\": var(--gray-200),\n \"fg\": light-dark(var(--gray-600), var(--gray-400)),\n \"fg-emphasis\": light-dark(var(--gray-800), var(--gray-200)),\n \"bg\": light-dark(var(--gray-100), var(--gray-600)),\n \"bg-subtle\": light-dark(var(--gray-050), var(--gray-800)),\n \"bg-muted\": light-dark(var(--gray-100), var(--gray-700)),\n \"border\": light-dark(var(--gray-300), var(--gray-600)),\n \"focus-ring\": color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body)),\n \"contrast\": light-dark(var(--gray-900), var(--white))\n )\n) !default;\n// scss-docs-end theme-colors\n\n// mdo-do: consider using muted, subtle, ghost or something instead of linear scale?\n$theme-bgs: (\n \"body\": light-dark(var(--white), var(--gray-975)),\n \"1\": light-dark(var(--gray-025), var(--gray-950)),\n \"2\": light-dark(var(--gray-050), var(--gray-900)),\n \"3\": light-dark(var(--gray-100), var(--gray-800)),\n \"4\": light-dark(var(--gray-200), var(--gray-700)),\n \"fg\": var(--fg-body),\n \"white\": var(--white),\n \"black\": var(--black),\n \"transparent\": transparent,\n \"inherit\": inherit,\n) !default;\n\n$theme-fgs: (\n \"body\": light-dark(var(--gray-900), var(--gray-050)),\n \"1\": light-dark(var(--gray-800), var(--gray-200)),\n \"2\": light-dark(var(--gray-700), var(--gray-300)),\n \"3\": light-dark(var(--gray-600), var(--gray-500)),\n \"4\": light-dark(var(--gray-500), var(--gray-600)),\n \"bg\": var(--bg-body),\n \"white\": var(--white),\n \"black\": var(--black),\n \"inherit\": inherit,\n) !default;\n\n$theme-borders: (\n \"bg\": var(--bg-body),\n \"body\": light-dark(var(--gray-300), var(--gray-800)),\n \"muted\": light-dark(var(--gray-200), var(--gray-800)),\n \"subtle\": light-dark(var(--gray-100), var(--gray-900)),\n \"emphasized\": light-dark(var(--gray-400), var(--gray-600)),\n \"white\": var(--white),\n \"black\": var(--black),\n) !default;\n\n$util-opacity: (\n 10: .1,\n 20: .2,\n 30: .3,\n 40: .4,\n 50: .5,\n 60: .6,\n 70: .7,\n 80: .8,\n 90: .9,\n 100: 1\n) !default;\n","@use \"../mixins/visually-hidden\" as *;\n\n@layer helpers {\n .visually-hidden,\n .visually-hidden-focusable:not(:focus, :focus-within) {\n @include visually-hidden();\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Hide content visually while keeping it accessible to assistive technologies\n//\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin visually-hidden() {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n\n // Fix for positioned table caption that could become anonymous cells\n &:not(caption) {\n position: absolute !important;\n }\n\n // Fix to prevent overflowing children to become focusable\n * {\n overflow: hidden !important;\n }\n}\n\n// Use to only display content when it's focused, or one of its child elements is focused\n// (i.e. when focus is within the element/container that the class was applied to)\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/WAI/WCAG22/Techniques/general/G1.html\n\n@mixin visually-hidden-focusable() {\n &:not(:focus, :focus-within) {\n @include visually-hidden();\n }\n}\n","@use \"../config\" as *;\n\n@layer helpers {\n .stretched-link {\n &::#{$stretched-link-pseudo-element} {\n position: absolute;\n inset: 0;\n z-index: $stretched-link-z-index;\n content: \"\";\n }\n }\n}\n","@use \"../mixins/text-truncate\" as *;\n\n@layer helpers {\n .text-truncate {\n @include text-truncate();\n }\n}\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","@layer helpers {\n .vr {\n display: inline-block;\n align-self: stretch;\n width: var(--vr-border-width, var(--border-width));\n min-height: 1em;\n background-color: var(--border-color);\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/utilities\" as *;\n@use \"../utilities\" as *;\n\n@layer utilities {\n @include generate-utilities-loop($utilities, $breakpoints);\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"../layout/breakpoints\" as bp;\n\n// Utility generator\n\n// - Utilities can use three different types of selectors:\n// - class: .class\n// - attr-starts: [class^=\"class\"]\n// - attr-includes: [class*=\"class\"]\n// - Utilities can target children via `child-selector`, wrapped in :where() for zero specificity\n// - Utilities can generate regular CSS properties and CSS custom properties\n// - Utilities can be responsive or not\n// - Utilities can have state variants (e.g., hover, focus, active)\n// - Utilities can define local CSS variables\n//\n// CSS custom properties can be generated in two ways:\n//\n// 1. Property map with null values (CSS var receives the utility value):\n// \"bg-color\": (\n// property: (\n// \"--bg\": null,\n// \"background-color\": var(--bg)\n// ),\n// class: bg,\n// values: (\n// primary: var(--blue-500),\n// )\n// )\n// Generates:\n// .bg-primary {\n// --bs-bg: var(--bs-blue-500);\n// background-color: var(--bs-bg);\n// }\n//\n// 2. Variables map (static CSS custom properties on every class):\n// \"link-underline\": (\n// property: text-decoration-color,\n// class: link-underline,\n// variables: (\n// \"link-underline-opacity\": 1\n// ),\n// values: (...)\n// )\n// Generates:\n// .link-underline {\n// --bs-link-underline-opacity: 1;\n// text-decoration-color: ...;\n// }\n\n// Helper mixin to emit CSS custom properties from a utility's `variables` key.\n// When variables is a map, the provided static values are used on each class.\n// When variables is a list or single identifier, each variable receives the current utility value.\n@mixin generate-variables($utility, $value) {\n @if map.has-key($utility, variables) {\n $variables: map.get($utility, variables);\n @if meta.type-of($variables) == \"map\" {\n @each $var-key, $var-value in $variables {\n --#{$var-key}: #{$var-value};\n }\n } @else {\n // Treat as a list (or single identifier) — each variable gets the utility value\n @each $var-name in $variables {\n --#{$var-name}: #{$value};\n }\n }\n }\n}\n\n// Helper mixin to generate CSS properties for both legacy and property map approaches\n@mixin generate-properties($utility, $property-map, $properties, $value) {\n @if $property-map != null {\n // Property-Value Mapping approach\n @each $property, $default-value in $property-map {\n // If value is a map, check if it has a key for this property.\n // Otherwise, use default-value (or $value if default-value is null).\n $actual-value: $default-value;\n @if meta.type-of($value) == \"map\" and map.has-key($value, $property) {\n $actual-value: map.get($value, $property);\n } @else if $default-value == null {\n $actual-value: $value;\n }\n @if map.get($utility, important) {\n #{$property}: $actual-value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $actual-value;\n }\n }\n } @else {\n // Legacy approach\n @each $property in $properties {\n @if map.get($utility, important) {\n #{$property}: $value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $value;\n }\n }\n }\n}\n\n@mixin generate-utility($utility, $prefix: \"\") {\n // Validate required keys\n @if not map.has-key($utility, property) {\n @error \"Utility is missing required `property` key: #{$utility}\";\n }\n @if not map.has-key($utility, values) {\n @error \"Utility is missing required `values` key: #{$utility}\";\n }\n\n // Warn on unknown keys (likely typos)\n $valid-keys: property, values, class, selector, responsive, print, dark, important, state, variables, child-selector, enabled;\n @each $key in map.keys($utility) {\n @if not list.index($valid-keys, $key) {\n @warn \"Unknown utility key `#{$key}` found. Valid keys are: #{$valid-keys}\";\n }\n }\n\n // Validate boolean keys\n @each $bool-key in (responsive, print, dark, important, enabled) {\n @if map.has-key($utility, $bool-key) {\n $val: map.get($utility, $bool-key);\n @if $val != true and $val != false {\n @error \"Utility key `#{$bool-key}` should be a boolean (true or false), got: #{$val}\";\n }\n }\n }\n\n // Determine if we're generating a class, or an attribute selector\n $selector-type: \"class\";\n @if map.has-key($utility, selector) {\n $selector-type: map.get($utility, selector);\n // Validate selector type\n $valid-selectors: \"class\", \"attr-starts\", \"attr-includes\";\n @if not list.index($valid-selectors, $selector-type) {\n @error \"Invalid `selector` value `#{$selector-type}`. Must be one of: #{$valid-selectors}\";\n }\n }\n // Then get the class name to use in a class (e.g., .class) or in an attribute selector (e.g., [class^=\"class\"])\n $selector-class: map.get($utility, class);\n\n // Attribute selectors require a `class` key\n @if $selector-type != \"class\" and not map.has-key($utility, class) {\n @error \"Utility with `selector: #{$selector-type}` requires a `class` key.\";\n }\n\n // Get the list or map of values and ensure it's a map\n $values: map.get($utility, values);\n @if meta.type-of($values) != \"map\" {\n @if meta.type-of($values) == \"list\" {\n $list: ();\n @each $value in $values {\n $list: map.merge($list, ($value: $value));\n }\n $values: $list;\n } @else {\n $values: (null: $values);\n }\n }\n\n @each $key, $value in $values {\n $properties: map.get($utility, property);\n $property-map: null;\n $custom-class: \"\";\n\n // Check if property is a map (Property-Value Mapping approach)\n @if meta.type-of($properties) == \"map\" {\n $property-map: $properties;\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n }\n } @else {\n // Legacy approach: multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if meta.type-of($properties) == \"string\" {\n $properties: list.append((), $properties);\n }\n // Use custom class if present, otherwise use the first value from the list of properties\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n } @else {\n $custom-class: list.nth($properties, 1);\n }\n @if $custom-class == null {\n $custom-class: \"\";\n }\n }\n\n // State params to generate state variants\n $state: ();\n @if map.has-key($utility, state) {\n $state: map.get($utility, state);\n }\n\n // Don't add a dash before value key if value key is null (e.g. with shadow class)\n $custom-class-modifier: \"\";\n @if $key {\n @if $custom-class == \"\" {\n $custom-class-modifier: $key;\n } @else {\n $custom-class-modifier: \"-\" + $key;\n }\n }\n\n // Build the class name fragment (without prefix or dot) for reuse in state variants\n $class-name: \"\";\n @if $selector-type == \"class\" {\n @if $custom-class != \"\" {\n $class-name: $custom-class + $custom-class-modifier;\n } @else if $selector-class != null and $selector-class != \"\" {\n $class-name: $selector-class + $custom-class-modifier;\n } @else {\n $class-name: $custom-class-modifier;\n }\n }\n\n $selector: \"\";\n @if $selector-type == \"class\" {\n $selector: \".#{$prefix + $class-name}\";\n } @else if $selector-type == \"attr-starts\" {\n $selector: \"[class^=\\\"#{$selector-class}\\\"]\";\n } @else if $selector-type == \"attr-includes\" {\n $selector: \"[class*=\\\"#{$selector-class}\\\"]\";\n }\n\n // Apply child-selector wrapping if present (wraps in :where() for zero specificity)\n $child-sel: null;\n @if map.has-key($utility, child-selector) {\n $child-sel: map.get($utility, child-selector);\n }\n\n $final-selector: $selector;\n @if $child-sel {\n $final-selector: \":where(#{$selector} #{$child-sel})\";\n }\n\n #{$final-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n\n // Generate state variants (e.g., hover:link-10 instead of link-10-hover)\n @if $state != () {\n @each $state-variant in $state {\n $state-selector: \".#{$prefix}#{$state-variant}\\\\:#{$class-name}:#{$state-variant}\";\n @if $child-sel {\n $state-selector: \":where(#{$state-selector} #{$child-sel})\";\n }\n\n #{$state-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n }\n }\n }\n}\n\n// Generates all utility classes: base, responsive, print, and dark.\n// Extracted so that tests can call this mixin directly with a custom $utilities map\n// rather than having to mirror the loop conditions inline.\n@mixin generate-utilities-loop($utilities, $breakpoints) {\n // Base + responsive (one pass per breakpoint)\n @each $breakpoint in map.keys($breakpoints) {\n @include bp.media-breakpoint-up($breakpoint, $breakpoints) {\n $prefix: bp.breakpoint-prefix($breakpoint, $breakpoints);\n\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and (map.get($utility, responsive) or $prefix == \"\") {\n @include generate-utility($utility, $prefix);\n }\n }\n }\n }\n\n // Print utilities\n @media print {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, print) == true {\n @include generate-utility($utility, \"print\\\\:\");\n }\n }\n }\n\n // Dark utilities\n @media (prefers-color-scheme: dark) {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, dark) == true {\n @include generate-utility($utility, \"dark\\\\:\");\n }\n }\n }\n}\n"],"names":[]}
\ No newline at end of file
+{"version":3,"sourceRoot":null,"mappings":"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","sources":["bootstrap.css","../../scss/_banner.scss","../../scss/_colors.scss","../../scss/mixins/_tokens.scss","../../scss/_root.scss","../../scss/content/_reboot.scss","../../scss/_config.scss","../../scss/mixins/_border-radius.scss","../../scss/content/_type.scss","../../scss/mixins/_lists.scss","../../scss/content/_tables.scss","../../scss/layout/_breakpoints.scss","../../scss/content/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_box-shadow.scss","../../scss/content/_prose.scss","../../scss/mixins/_transition.scss","../../scss/layout/_containers.scss","../../scss/layout/_grid.scss","../../scss/mixins/_grid.scss","../../scss/forms/_labels.scss","../../scss/forms/_form-text.scss","../../scss/forms/_form-control.scss","../../scss/mixins/_focus-ring.scss","../../scss/forms/_check.scss","../../scss/mixins/_mask-icon.scss","../../scss/forms/_radio.scss","../../scss/forms/_switch.scss","../../scss/forms/_form-range.scss","../../scss/mixins/_gradients.scss","../../scss/forms/_floating-labels.scss","../../scss/forms/_input-group.scss","../../scss/forms/_strength.scss","../../scss/forms/_otp-input.scss","../../scss/forms/_form-adorn.scss","../../scss/forms/_chip-input.scss","../../scss/forms/_combobox.scss","../../scss/forms/_form-field.scss","../../scss/forms/_validation.scss","../../scss/mixins/_form-validation.scss","../../scss/buttons/_button.scss","../../scss/buttons/_button-group.scss","../../scss/buttons/_close.scss","../../scss/_accordion.scss","../../scss/_alert.scss","../../scss/_avatar.scss","../../scss/_badge.scss","../../scss/_breadcrumb.scss","../../scss/_chip.scss","../../scss/_card.scss","../../scss/_carousel.scss","../../scss/_datepicker.scss","../../scss/_dialog.scss","../../scss/mixins/_dialog-shared.scss","../../scss/_menu.scss","../../scss/_list-group.scss","../../scss/_nav.scss","../../scss/_nav-overflow.scss","../../scss/_navbar.scss","../../scss/_drawer.scss","../../scss/_pagination.scss","../../scss/_placeholder.scss","../../scss/_popover.scss","../../scss/mixins/_reset-text.scss","../../scss/_progress.scss","../../scss/_spinner.scss","../../scss/_stepper.scss","../../scss/_toasts.scss","../../scss/_tooltip.scss","../../scss/_transitions.scss","../../scss/helpers/_focus-ring.scss","../../scss/helpers/_icon-link.scss","../../scss/helpers/_position.scss","../../scss/helpers/_stacks.scss","../../scss/helpers/_theme-colors.scss","../../scss/_theme.scss","../../scss/helpers/_visually-hidden.scss","../../scss/mixins/_visually-hidden.scss","../../scss/helpers/_stretched-link.scss","../../scss/helpers/_text-truncation.scss","../../scss/mixins/_text-truncate.scss","../../scss/helpers/_vr.scss","../../scss/utilities/_api.scss","../../scss/mixins/_utilities.scss"],"sourcesContent":["@charset \"UTF-8\";\n/*!\n * Bootstrap v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.24 240deg));\n --blue-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.24 240deg));\n --blue-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.24 240deg));\n --blue-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.24 240deg));\n --blue-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.24 240deg));\n --blue-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.24 240deg));\n --blue-500: oklch(60% 0.24 240deg);\n --blue-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.24 240deg));\n --blue-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.24 240deg));\n --blue-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.24 240deg));\n --blue-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.24 240deg));\n --blue-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.24 240deg));\n --blue-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.24 240deg));\n --indigo-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.26 288deg));\n --indigo-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.26 288deg));\n --indigo-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.26 288deg));\n --indigo-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.26 288deg));\n --indigo-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.26 288deg));\n --indigo-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.26 288deg));\n --indigo-500: oklch(56% 0.26 288deg);\n --indigo-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.26 288deg));\n --indigo-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.26 288deg));\n --indigo-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.26 288deg));\n --indigo-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.26 288deg));\n --indigo-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.26 288deg));\n --indigo-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.26 288deg));\n --violet-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 300deg));\n --violet-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 300deg));\n --violet-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 300deg));\n --violet-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 300deg));\n --violet-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 300deg));\n --violet-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 300deg));\n --violet-500: oklch(56% 0.24 300deg);\n --violet-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 300deg));\n --violet-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 300deg));\n --violet-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 300deg));\n --violet-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 300deg));\n --violet-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 300deg));\n --violet-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 300deg));\n --purple-025: color-mix(in lab, var(--white) 94%, oklch(56% 0.24 320deg));\n --purple-050: color-mix(in lab, var(--white) 90%, oklch(56% 0.24 320deg));\n --purple-100: color-mix(in lab, var(--white) 80%, oklch(56% 0.24 320deg));\n --purple-200: color-mix(in lab, var(--white) 60%, oklch(56% 0.24 320deg));\n --purple-300: color-mix(in lab, var(--white) 40%, oklch(56% 0.24 320deg));\n --purple-400: color-mix(in lab, var(--white) 20%, oklch(56% 0.24 320deg));\n --purple-500: oklch(56% 0.24 320deg);\n --purple-600: color-mix(in lab, var(--black) 16%, oklch(56% 0.24 320deg));\n --purple-700: color-mix(in lab, var(--black) 32%, oklch(56% 0.24 320deg));\n --purple-800: color-mix(in lab, var(--black) 48%, oklch(56% 0.24 320deg));\n --purple-900: color-mix(in lab, var(--black) 64%, oklch(56% 0.24 320deg));\n --purple-950: color-mix(in lab, var(--black) 76%, oklch(56% 0.24 320deg));\n --purple-975: color-mix(in lab, var(--black) 88%, oklch(56% 0.24 320deg));\n --pink-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 4deg));\n --pink-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 4deg));\n --pink-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 4deg));\n --pink-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 4deg));\n --pink-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 4deg));\n --pink-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 4deg));\n --pink-500: oklch(60% 0.22 4deg);\n --pink-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 4deg));\n --pink-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 4deg));\n --pink-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 4deg));\n --pink-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 4deg));\n --pink-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 4deg));\n --pink-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 4deg));\n --red-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.22 20deg));\n --red-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.22 20deg));\n --red-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.22 20deg));\n --red-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.22 20deg));\n --red-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.22 20deg));\n --red-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.22 20deg));\n --red-500: oklch(60% 0.22 20deg);\n --red-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.22 20deg));\n --red-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.22 20deg));\n --red-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.22 20deg));\n --red-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.22 20deg));\n --red-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.22 20deg));\n --red-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.22 20deg));\n --orange-025: color-mix(in lab, var(--white) 94%, oklch(70% 0.22 52deg));\n --orange-050: color-mix(in lab, var(--white) 90%, oklch(70% 0.22 52deg));\n --orange-100: color-mix(in lab, var(--white) 80%, oklch(70% 0.22 52deg));\n --orange-200: color-mix(in lab, var(--white) 60%, oklch(70% 0.22 52deg));\n --orange-300: color-mix(in lab, var(--white) 40%, oklch(70% 0.22 52deg));\n --orange-400: color-mix(in lab, var(--white) 20%, oklch(70% 0.22 52deg));\n --orange-500: oklch(70% 0.22 52deg);\n --orange-600: color-mix(in lab, var(--black) 16%, oklch(70% 0.22 52deg));\n --orange-700: color-mix(in lab, var(--black) 32%, oklch(70% 0.22 52deg));\n --orange-800: color-mix(in lab, var(--black) 48%, oklch(70% 0.22 52deg));\n --orange-900: color-mix(in lab, var(--black) 64%, oklch(70% 0.22 52deg));\n --orange-950: color-mix(in lab, var(--black) 76%, oklch(70% 0.22 52deg));\n --orange-975: color-mix(in lab, var(--black) 88%, oklch(70% 0.22 52deg));\n --amber-025: color-mix(in lab, var(--white) 94%, oklch(79% 0.2 78deg));\n --amber-050: color-mix(in lab, var(--white) 90%, oklch(79% 0.2 78deg));\n --amber-100: color-mix(in lab, var(--white) 80%, oklch(79% 0.2 78deg));\n --amber-200: color-mix(in lab, var(--white) 60%, oklch(79% 0.2 78deg));\n --amber-300: color-mix(in lab, var(--white) 40%, oklch(79% 0.2 78deg));\n --amber-400: color-mix(in lab, var(--white) 20%, oklch(79% 0.2 78deg));\n --amber-500: oklch(79% 0.2 78deg);\n --amber-600: color-mix(in lab, var(--black) 16%, oklch(79% 0.2 78deg));\n --amber-700: color-mix(in lab, var(--black) 32%, oklch(79% 0.2 78deg));\n --amber-800: color-mix(in lab, var(--black) 48%, oklch(79% 0.2 78deg));\n --amber-900: color-mix(in lab, var(--black) 64%, oklch(79% 0.2 78deg));\n --amber-950: color-mix(in lab, var(--black) 76%, oklch(79% 0.2 78deg));\n --amber-975: color-mix(in lab, var(--black) 88%, oklch(79% 0.2 78deg));\n --yellow-025: color-mix(in lab, var(--white) 94%, oklch(88% 0.24 88deg));\n --yellow-050: color-mix(in lab, var(--white) 90%, oklch(88% 0.24 88deg));\n --yellow-100: color-mix(in lab, var(--white) 80%, oklch(88% 0.24 88deg));\n --yellow-200: color-mix(in lab, var(--white) 60%, oklch(88% 0.24 88deg));\n --yellow-300: color-mix(in lab, var(--white) 40%, oklch(88% 0.24 88deg));\n --yellow-400: color-mix(in lab, var(--white) 20%, oklch(88% 0.24 88deg));\n --yellow-500: oklch(88% 0.24 88deg);\n --yellow-600: color-mix(in lab, var(--black) 16%, oklch(88% 0.24 88deg));\n --yellow-700: color-mix(in lab, var(--black) 32%, oklch(88% 0.24 88deg));\n --yellow-800: color-mix(in lab, var(--black) 48%, oklch(88% 0.24 88deg));\n --yellow-900: color-mix(in lab, var(--black) 64%, oklch(88% 0.24 88deg));\n --yellow-950: color-mix(in lab, var(--black) 76%, oklch(88% 0.24 88deg));\n --yellow-975: color-mix(in lab, var(--black) 88%, oklch(88% 0.24 88deg));\n --lime-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.24 135deg));\n --lime-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.24 135deg));\n --lime-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.24 135deg));\n --lime-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.24 135deg));\n --lime-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.24 135deg));\n --lime-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.24 135deg));\n --lime-500: oklch(65% 0.24 135deg);\n --lime-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.24 135deg));\n --lime-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.24 135deg));\n --lime-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.24 135deg));\n --lime-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.24 135deg));\n --lime-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.24 135deg));\n --lime-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.24 135deg));\n --green-025: color-mix(in lab, var(--white) 94%, oklch(64% 0.22 160deg));\n --green-050: color-mix(in lab, var(--white) 90%, oklch(64% 0.22 160deg));\n --green-100: color-mix(in lab, var(--white) 80%, oklch(64% 0.22 160deg));\n --green-200: color-mix(in lab, var(--white) 60%, oklch(64% 0.22 160deg));\n --green-300: color-mix(in lab, var(--white) 40%, oklch(64% 0.22 160deg));\n --green-400: color-mix(in lab, var(--white) 20%, oklch(64% 0.22 160deg));\n --green-500: oklch(64% 0.22 160deg);\n --green-600: color-mix(in lab, var(--black) 16%, oklch(64% 0.22 160deg));\n --green-700: color-mix(in lab, var(--black) 32%, oklch(64% 0.22 160deg));\n --green-800: color-mix(in lab, var(--black) 48%, oklch(64% 0.22 160deg));\n --green-900: color-mix(in lab, var(--black) 64%, oklch(64% 0.22 160deg));\n --green-950: color-mix(in lab, var(--black) 76%, oklch(64% 0.22 160deg));\n --green-975: color-mix(in lab, var(--black) 88%, oklch(64% 0.22 160deg));\n --teal-025: color-mix(in lab, var(--white) 94%, oklch(68% 0.22 190deg));\n --teal-050: color-mix(in lab, var(--white) 90%, oklch(68% 0.22 190deg));\n --teal-100: color-mix(in lab, var(--white) 80%, oklch(68% 0.22 190deg));\n --teal-200: color-mix(in lab, var(--white) 60%, oklch(68% 0.22 190deg));\n --teal-300: color-mix(in lab, var(--white) 40%, oklch(68% 0.22 190deg));\n --teal-400: color-mix(in lab, var(--white) 20%, oklch(68% 0.22 190deg));\n --teal-500: oklch(68% 0.22 190deg);\n --teal-600: color-mix(in lab, var(--black) 16%, oklch(68% 0.22 190deg));\n --teal-700: color-mix(in lab, var(--black) 32%, oklch(68% 0.22 190deg));\n --teal-800: color-mix(in lab, var(--black) 48%, oklch(68% 0.22 190deg));\n --teal-900: color-mix(in lab, var(--black) 64%, oklch(68% 0.22 190deg));\n --teal-950: color-mix(in lab, var(--black) 76%, oklch(68% 0.22 190deg));\n --teal-975: color-mix(in lab, var(--black) 88%, oklch(68% 0.22 190deg));\n --cyan-025: color-mix(in lab, var(--white) 94%, oklch(69% 0.22 220deg));\n --cyan-050: color-mix(in lab, var(--white) 90%, oklch(69% 0.22 220deg));\n --cyan-100: color-mix(in lab, var(--white) 80%, oklch(69% 0.22 220deg));\n --cyan-200: color-mix(in lab, var(--white) 60%, oklch(69% 0.22 220deg));\n --cyan-300: color-mix(in lab, var(--white) 40%, oklch(69% 0.22 220deg));\n --cyan-400: color-mix(in lab, var(--white) 20%, oklch(69% 0.22 220deg));\n --cyan-500: oklch(69% 0.22 220deg);\n --cyan-600: color-mix(in lab, var(--black) 16%, oklch(69% 0.22 220deg));\n --cyan-700: color-mix(in lab, var(--black) 32%, oklch(69% 0.22 220deg));\n --cyan-800: color-mix(in lab, var(--black) 48%, oklch(69% 0.22 220deg));\n --cyan-900: color-mix(in lab, var(--black) 64%, oklch(69% 0.22 220deg));\n --cyan-950: color-mix(in lab, var(--black) 76%, oklch(69% 0.22 220deg));\n --cyan-975: color-mix(in lab, var(--black) 88%, oklch(69% 0.22 220deg));\n --brown-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.12 54deg));\n --brown-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.12 54deg));\n --brown-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.12 54deg));\n --brown-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.12 54deg));\n --brown-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.12 54deg));\n --brown-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.12 54deg));\n --brown-500: oklch(60% 0.12 54deg);\n --brown-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.12 54deg));\n --brown-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.12 54deg));\n --brown-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.12 54deg));\n --brown-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.12 54deg));\n --brown-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.12 54deg));\n --brown-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.12 54deg));\n --gray-025: color-mix(in lab, var(--white) 94%, oklch(60% 0.02 245deg));\n --gray-050: color-mix(in lab, var(--white) 90%, oklch(60% 0.02 245deg));\n --gray-100: color-mix(in lab, var(--white) 80%, oklch(60% 0.02 245deg));\n --gray-200: color-mix(in lab, var(--white) 60%, oklch(60% 0.02 245deg));\n --gray-300: color-mix(in lab, var(--white) 40%, oklch(60% 0.02 245deg));\n --gray-400: color-mix(in lab, var(--white) 20%, oklch(60% 0.02 245deg));\n --gray-500: oklch(60% 0.02 245deg);\n --gray-600: color-mix(in lab, var(--black) 16%, oklch(60% 0.02 245deg));\n --gray-700: color-mix(in lab, var(--black) 32%, oklch(60% 0.02 245deg));\n --gray-800: color-mix(in lab, var(--black) 48%, oklch(60% 0.02 245deg));\n --gray-900: color-mix(in lab, var(--black) 64%, oklch(60% 0.02 245deg));\n --gray-950: color-mix(in lab, var(--black) 76%, oklch(60% 0.02 245deg));\n --gray-975: color-mix(in lab, var(--black) 88%, oklch(60% 0.02 245deg));\n --pewter-025: color-mix(in lab, var(--white) 94%, oklch(65% 0.01 290deg));\n --pewter-050: color-mix(in lab, var(--white) 90%, oklch(65% 0.01 290deg));\n --pewter-100: color-mix(in lab, var(--white) 80%, oklch(65% 0.01 290deg));\n --pewter-200: color-mix(in lab, var(--white) 60%, oklch(65% 0.01 290deg));\n --pewter-300: color-mix(in lab, var(--white) 40%, oklch(65% 0.01 290deg));\n --pewter-400: color-mix(in lab, var(--white) 20%, oklch(65% 0.01 290deg));\n --pewter-500: oklch(65% 0.01 290deg);\n --pewter-600: color-mix(in lab, var(--black) 16%, oklch(65% 0.01 290deg));\n --pewter-700: color-mix(in lab, var(--black) 32%, oklch(65% 0.01 290deg));\n --pewter-800: color-mix(in lab, var(--black) 48%, oklch(65% 0.01 290deg));\n --pewter-900: color-mix(in lab, var(--black) 64%, oklch(65% 0.01 290deg));\n --pewter-950: color-mix(in lab, var(--black) 76%, oklch(65% 0.01 290deg));\n --pewter-975: color-mix(in lab, var(--black) 88%, oklch(65% 0.01 290deg));\n}\n\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n:root {\n --black: #000;\n --white: #fff;\n --gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent));\n --font-weight-lighter: lighter;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-bolder: bolder;\n --body-font-family: system-ui;\n --body-font-size: var(--font-size-base);\n --body-font-weight: 400;\n --body-line-height: 1.5;\n --heading-color: inherit;\n --hr-border-color: var(--border-color);\n --link-color: light-dark(var(--primary-base), var(--primary-fg));\n --link-decoration: underline;\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000);\n --font-mono: ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Monaco, 'Cascadia Mono', Consolas, 'Liberation Mono', monospace;;\n --code-font-size: 95%;\n --code-color: var(--fg-2);\n --border-width: 1px;\n --border-style: solid;\n --border-color: light-dark(var(--gray-200), var(--gray-700));\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent);\n --box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n --box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n --box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);\n --box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n --spacer: 1rem;\n --focus-ring-width: 3px;\n --focus-ring-offset: 1px;\n --focus-ring-color: var(--primary-focus-ring);\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color);\n --control-checked-bg: var(--primary-base);\n --control-checked-border-color: var(--control-checked-bg);\n --control-active-bg: var(--primary-base);\n --control-active-border-color: var(--control-active-bg);\n --control-disabled-bg: var(--bg-3);\n --control-disabled-opacity: 0.65;\n --btn-input-fg: var(--fg-body);\n --btn-input-bg: var(--bg-body);\n --btn-input-min-height: 2.375rem;\n --btn-input-padding-y: 0.375rem;\n --btn-input-padding-x: 0.75rem;\n --btn-input-font-size: var(--font-size-base);\n --btn-input-line-height: var(--line-height-base);\n --btn-input-border-radius: var(--radius-5);\n --btn-input-xs-min-height: 1.5rem;\n --btn-input-xs-padding-y: 0.125rem;\n --btn-input-xs-padding-x: 0.5rem;\n --btn-input-xs-font-size: var(--font-size-xs);\n --btn-input-xs-line-height: 1.125;\n --btn-input-xs-border-radius: var(--radius-5);\n --btn-input-sm-min-height: 2rem;\n --btn-input-sm-padding-y: 0.25rem;\n --btn-input-sm-padding-x: 0.625rem;\n --btn-input-sm-font-size: var(--font-size-sm);\n --btn-input-sm-line-height: var(--line-height-sm);\n --btn-input-sm-border-radius: var(--radius-5);\n --btn-input-lg-min-height: 2.75rem;\n --btn-input-lg-padding-y: 0.5rem;\n --btn-input-lg-padding-x: 1rem;\n --btn-input-lg-font-size: var(--font-size-md);\n --btn-input-lg-line-height: var(--line-height-md);\n --btn-input-lg-border-radius: var(--radius-7);\n --font-size-xs: 0.75rem;\n --line-height-xs: 1.25;\n --font-size-sm: 0.875rem;\n --line-height-sm: 1.5;\n --font-size-md: 1rem;\n --line-height-md: 1.5;\n --font-size-lg: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n --line-height-lg: 1.5;\n --font-size-xl: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n --line-height-xl: 1.4285714286;\n --font-size-2xl: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n --line-height-2xl: 1.3333333333;\n --font-size-3xl: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n --line-height-3xl: 1.2;\n --font-size-4xl: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n --line-height-4xl: 1.1;\n --font-size-5xl: clamp(3rem, 2rem + 5vw, 4rem);\n --line-height-5xl: 1.1;\n --font-size-6xl: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n --line-height-6xl: 1;\n --primary-base: var(--blue-500);\n --primary-fg: light-dark(var(--blue-600), var(--blue-400));\n --primary-fg-emphasis: light-dark(var(--blue-800), var(--blue-200));\n --primary-bg: var(--blue-500);\n --primary-bg-subtle: light-dark(var(--blue-100), var(--blue-900));\n --primary-bg-muted: light-dark(var(--blue-200), var(--blue-800));\n --primary-border: light-dark(var(--blue-300), var(--blue-600));\n --primary-focus-ring: light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body)));\n --primary-contrast: var(--white);\n --accent-base: var(--indigo-500);\n --accent-fg: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n --accent-fg-emphasis: light-dark(var(--indigo-800), var(--indigo-300));\n --accent-bg: var(--indigo-500);\n --accent-bg-subtle: light-dark(var(--indigo-100), var(--indigo-900));\n --accent-bg-muted: light-dark(var(--indigo-200), var(--indigo-800));\n --accent-border: light-dark(var(--indigo-300), var(--indigo-600));\n --accent-focus-ring: light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body)));\n --accent-contrast: var(--white);\n --success-base: var(--green-500);\n --success-fg: light-dark(var(--green-600), var(--green-400));\n --success-fg-emphasis: light-dark(var(--green-800), var(--green-300));\n --success-bg: var(--green-500);\n --success-bg-subtle: light-dark(var(--green-100), var(--green-900));\n --success-bg-muted: light-dark(var(--green-200), var(--green-800));\n --success-border: light-dark(var(--green-300), var(--green-600));\n --success-focus-ring: light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body)));\n --success-contrast: var(--white);\n --danger-base: var(--red-500);\n --danger-fg: light-dark(var(--red-600), var(--red-400));\n --danger-fg-emphasis: light-dark(var(--red-800), var(--red-300));\n --danger-bg: var(--red-500);\n --danger-bg-subtle: light-dark(var(--red-100), var(--red-900));\n --danger-bg-muted: light-dark(var(--red-200), var(--red-800));\n --danger-border: light-dark(var(--red-300), var(--red-600));\n --danger-focus-ring: light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body)));\n --danger-contrast: var(--white);\n --warning-base: var(--yellow-500);\n --warning-fg: light-dark(var(--yellow-700), var(--yellow-400));\n --warning-fg-emphasis: light-dark(var(--yellow-800), var(--yellow-300));\n --warning-bg: var(--yellow-500);\n --warning-bg-subtle: light-dark(var(--yellow-100), var(--yellow-900));\n --warning-bg-muted: light-dark(var(--yellow-200), var(--yellow-800));\n --warning-border: light-dark(var(--yellow-300), var(--yellow-600));\n --warning-focus-ring: light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body)));\n --warning-contrast: var(--gray-900);\n --info-base: var(--cyan-500);\n --info-fg: light-dark(var(--cyan-600), var(--cyan-400));\n --info-fg-emphasis: light-dark(var(--cyan-800), var(--cyan-300));\n --info-bg: var(--cyan-500);\n --info-bg-subtle: light-dark(var(--cyan-100), var(--cyan-900));\n --info-bg-muted: light-dark(var(--cyan-200), var(--cyan-800));\n --info-border: light-dark(var(--cyan-300), var(--cyan-600));\n --info-focus-ring: light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body)));\n --info-contrast: var(--gray-900);\n --inverse-base: var(--gray-900);\n --inverse-fg: light-dark(var(--gray-900), var(--gray-200));\n --inverse-fg-emphasis: light-dark(var(--gray-975), var(--white));\n --inverse-bg: light-dark(var(--gray-900), var(--gray-025));\n --inverse-bg-subtle: light-dark(var(--gray-100), var(--gray-900));\n --inverse-bg-muted: light-dark(var(--gray-200), var(--gray-300));\n --inverse-border: light-dark(var(--gray-400), var(--gray-100));\n --inverse-focus-ring: color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body));\n --inverse-contrast: light-dark(var(--white), var(--gray-900));\n --secondary-base: var(--gray-200);\n --secondary-fg: light-dark(var(--gray-600), var(--gray-400));\n --secondary-fg-emphasis: light-dark(var(--gray-800), var(--gray-200));\n --secondary-bg: light-dark(var(--gray-100), var(--gray-600));\n --secondary-bg-subtle: light-dark(var(--gray-050), var(--gray-800));\n --secondary-bg-muted: light-dark(var(--gray-100), var(--gray-700));\n --secondary-border: light-dark(var(--gray-300), var(--gray-600));\n --secondary-focus-ring: color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body));\n --secondary-contrast: light-dark(var(--gray-900), var(--white));\n --bg-body: light-dark(var(--white), var(--gray-975));\n --bg-1: light-dark(var(--gray-025), var(--gray-950));\n --bg-2: light-dark(var(--gray-050), var(--gray-900));\n --bg-3: light-dark(var(--gray-100), var(--gray-800));\n --bg-4: light-dark(var(--gray-200), var(--gray-700));\n --bg-fg: var(--fg-body);\n --bg-white: var(--white);\n --bg-black: var(--black);\n --bg-transparent: transparent;\n --bg-inherit: inherit;\n --fg-body: light-dark(var(--gray-900), var(--gray-050));\n --fg-1: light-dark(var(--gray-800), var(--gray-200));\n --fg-2: light-dark(var(--gray-700), var(--gray-300));\n --fg-3: light-dark(var(--gray-600), var(--gray-500));\n --fg-4: light-dark(var(--gray-500), var(--gray-600));\n --fg-bg: var(--bg-body);\n --fg-white: var(--white);\n --fg-black: var(--black);\n --fg-inherit: inherit;\n --border-bg: var(--bg-body);\n --border-body: light-dark(var(--gray-300), var(--gray-800));\n --border-muted: light-dark(var(--gray-200), var(--gray-800));\n --border-subtle: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-900));\n --border-emphasized: light-dark(var(--gray-400), var(--gray-600));\n --border-white: var(--white);\n --border-black: var(--black);\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 1024px;\n --breakpoint-xl: 1280px;\n --breakpoint-2xl: 1536px;\n --spacer-0: 0;\n --spacer-1: 0.25rem;\n --spacer-2: 0.5rem;\n --spacer-3: 0.75rem;\n --spacer-4: 1rem;\n --spacer-5: 1.25rem;\n --spacer-6: 1.5rem;\n --spacer-7: 2rem;\n --spacer-8: 2.5rem;\n --spacer-9: 3rem;\n --radius-0: 0;\n --radius-1: 0.125rem;\n --radius-2: 0.1875rem;\n --radius-3: 0.25rem;\n --radius-4: 0.375rem;\n --radius-5: 0.5rem;\n --radius-6: 0.625rem;\n --radius-7: 0.75rem;\n --radius-8: 1rem;\n --radius-9: 1.5rem;\n --radius-pill: 50rem;\n color-scheme: light dark;\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=dark] {\n color-scheme: dark;\n}\n\n[data-bs-theme=light] {\n color-scheme: light;\n}\n\n@layer reboot {\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n :root {\n accent-color: var(--primary-base);\n }\n body {\n margin: 0;\n font-family: var(--body-font-family);\n font-size: var(--body-font-size);\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n color: var(--fg-body);\n text-align: var(--body-text-align);\n background-color: var(--bg-body);\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n margin: var(--hr-margin-y, var(--spacer)) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n h6,\n .h6, h5,\n .h5, h4,\n .h4, h3,\n .h3, h2,\n .h2, h1,\n .h1 {\n margin-top: 0;\n margin-bottom: var(--spacer-2);\n font-weight: 500;\n line-height: 1.2;\n color: var(--heading-color);\n }\n h1,\n .h1 {\n font-size: var(--font-size-3xl);\n }\n h2,\n .h2 {\n font-size: var(--font-size-2xl);\n }\n h3,\n .h3 {\n font-size: var(--font-size-xl);\n }\n h4,\n .h4 {\n font-size: var(--font-size-lg);\n }\n h5,\n .h5 {\n font-size: var(--font-size-md);\n }\n h6,\n .h6 {\n font-size: var(--font-size-sm);\n }\n p {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n abbr[title] {\n text-decoration: underline dotted;\n cursor: help;\n text-decoration-skip-ink: none;\n }\n address {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n }\n ol,\n ul {\n padding-inline-start: 2rem;\n }\n ol,\n ul,\n dl {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n ol ol,\n ul ul,\n ol ul,\n ul ol {\n margin-bottom: 0;\n }\n dt {\n font-weight: 700;\n }\n dd {\n margin-inline-start: 0;\n margin-bottom: 0.5rem;\n }\n blockquote {\n margin: 0 0 1rem;\n }\n blockquote > * {\n margin-block: 0;\n }\n b,\n strong {\n font-weight: bolder;\n }\n small,\n .small {\n font-size: var(--small-font-size, 87.5%);\n }\n mark,\n .mark {\n --mark-padding: 0.1875em;\n --mark-color: var(--fg-body);\n --mark-bg: light-dark(var(--yellow-100), var(--yellow-900));\n padding: var(--mark-padding);\n color: var(--mark-color);\n background-color: var(--mark-bg);\n }\n sub,\n sup {\n position: relative;\n font-size: var(--sub-sup-font-size, 0.75em);\n line-height: 0;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n a {\n color: var(--theme-fg, var(--link-color));\n text-decoration: var(--link-decoration);\n text-underline-offset: 0.2em;\n }\n a:hover {\n color: var(--theme-fg-emphasis, var(--link-hover-color));\n text-decoration: var(--link-hover-decoration, var(--link-decoration));\n }\n a:not([href], [class]), a:not([href], [class]):hover {\n color: inherit;\n text-decoration: none;\n }\n pre,\n code,\n kbd,\n samp {\n font-family: var(--font-mono);\n font-size: 1em;\n }\n pre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: var(--code-font-size);\n color: var(--code-color, inherit);\n }\n pre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n code {\n font-size: var(--code-font-size);\n color: var(--code-color);\n word-wrap: break-word;\n }\n a > code {\n color: inherit;\n }\n kbd {\n --kbd-padding-y: 0.125rem;\n --kbd-padding-x: 0.25rem;\n --kbd-font-size: var(--font-size-xs);\n --kbd-color: var(--bg-body);\n --kbd-bg: var(--fg-2);\n --kbd-border-radius: var(--radius-5);\n padding: var(--kbd-padding-y) var(--kbd-padding-x);\n font-size: var(--kbd-font-size);\n color: var(--kbd-color);\n background-color: var(--kbd-bg);\n border-radius: var(--kbd-border-radius);\n }\n kbd kbd {\n padding: 0;\n font-size: 1em;\n font-weight: inherit;\n }\n figure {\n margin: 0 0 1rem;\n }\n img,\n svg {\n vertical-align: middle;\n }\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n caption {\n padding-block: 0.5rem;\n color: var(--fg-3);\n text-align: start;\n }\n th {\n text-align: inherit;\n text-align: -webkit-match-parent;\n }\n thead,\n tbody,\n tfoot,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n label {\n display: inline-block;\n }\n button {\n border-radius: 0;\n }\n button:focus:not(:focus-visible) {\n outline: 0;\n }\n input,\n button,\n select,\n optgroup,\n textarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n [role=button] {\n cursor: pointer;\n }\n select {\n word-wrap: normal;\n }\n select:disabled {\n opacity: 1;\n }\n [list]:not([type=date], [type=datetime-local], [type=month], [type=week], [type=time])::-webkit-calendar-picker-indicator {\n display: none !important;\n }\n button,\n [type=button],\n [type=reset],\n [type=submit] {\n -webkit-appearance: button;\n }\n button:not(:disabled),\n [type=button]:not(:disabled),\n [type=reset]:not(:disabled),\n [type=submit]:not(:disabled) {\n cursor: pointer;\n }\n textarea {\n resize: vertical;\n }\n fieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n }\n legend {\n float: inline-start;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: 1.5rem;\n line-height: inherit;\n }\n legend + * {\n clear: inline-start;\n }\n ::-webkit-datetime-edit-fields-wrapper,\n ::-webkit-datetime-edit-text,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-meridiem-field,\n ::-webkit-datetime-edit-ampm-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-week-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-year-field {\n padding: 0;\n }\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n [type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n }\n [type=search]::-webkit-search-cancel-button {\n cursor: pointer;\n filter: grayscale(1);\n }\n [type=tel],\n [type=url],\n [type=email],\n [type=number] {\n direction: ltr;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n ::file-selector-button {\n font: inherit;\n -webkit-appearance: button;\n }\n output {\n display: inline-block;\n }\n iframe {\n border: 0;\n }\n summary {\n display: list-item;\n cursor: pointer;\n }\n progress {\n vertical-align: baseline;\n }\n [hidden] {\n display: none !important;\n }\n}\n@layer content {\n .list-unstyled {\n padding-inline-start: 0;\n list-style: none;\n }\n .list-inline {\n padding-inline-start: 0;\n list-style: none;\n }\n .list-inline-item {\n display: inline-block;\n }\n .list-inline-item:not(:last-child) {\n margin-inline-end: var(--list-inline-padding, var(--spacer)/2);\n }\n .initialism {\n font-size: var(--initialism-font-size, var(--font-size-xs));\n text-transform: uppercase;\n }\n .blockquote {\n --blockquote-gap: calc(var(--spacer) / 2);\n --blockquote-padding-x: var(--spacer);\n --blockquote-margin-y: 1rem;\n --blockquote-font-size: var(--font-size-md);\n --blockquote-border-width: 0.25rem;\n --blockquote-border-color: var(--border-color);\n --blockquote-footer-font-size: var(--font-size-sm);\n --blockquote-footer-color: var(--fg-3);\n display: flex;\n flex-direction: column;\n gap: var(--blockquote-gap);\n padding-inline-start: var(--blockquote-padding-x);\n margin-bottom: var(--blockquote-margin-y);\n font-size: var(--blockquote-font-size);\n border-inline-start: var(--blockquote-border-width) solid var(--blockquote-border-color);\n }\n .blockquote > * {\n margin-bottom: 0;\n }\n figure.blockquote blockquote {\n margin-bottom: 0;\n }\n .blockquote-footer {\n font-size: var(--blockquote-footer-font-size);\n color: var(--blockquote-footer-color);\n }\n .blockquote-footer::before {\n content: \"— \";\n }\n}\n@layer content {\n .table {\n --table-cell-padding-y: 0.5rem;\n --table-cell-padding-x: 0.5rem;\n --table-cell-vertical-align: top;\n --table-color: var(--fg-body);\n --table-bg: var(--bg-body);\n --table-accent-bg: transparent;\n --table-border-width: var(--border-width);\n --table-border-color: var(--border-color);\n --table-group-separator-color: currentcolor;\n --table-striped-color: var(--table-color);\n --table-striped-bg-factor: 5%;\n --table-striped-bg: color-mix(in srgb, var(--table-color) var(--table-striped-bg-factor), transparent);\n --table-active-color: var(--table-color);\n --table-active-bg-factor: 10%;\n --table-active-bg: color-mix(in srgb, var(--table-color) var(--table-active-bg-factor), transparent);\n --table-hover-color: var(--table-color);\n --table-hover-bg-factor: 7.5%;\n --table-hover-bg: color-mix(in srgb, var(--table-color) var(--table-hover-bg-factor), transparent);\n --table-color-type: initial;\n --table-bg-type: initial;\n --table-color-state: initial;\n --table-bg-state: initial;\n width: 100%;\n margin-bottom: var(--spacer);\n vertical-align: var(--table-cell-vertical-align);\n border-color: var(--theme-border, var(--table-border-color));\n }\n .table > :not(caption) > * > * {\n padding: var(--table-cell-padding-y) var(--table-cell-padding-x);\n color: var(--table-color-state, var(--table-color-type, var(--theme-fg, var(--table-color))));\n background-color: var(--theme-bg-subtle, var(--table-bg));\n border-block-end-width: var(--table-border-width);\n box-shadow: inset 0 0 0 9999px var(--table-bg-state, var(--table-bg-type, var(--theme-bg-subtle, var(--table-accent-bg))));\n }\n .table > tbody {\n vertical-align: inherit;\n }\n .table > thead {\n vertical-align: bottom;\n }\n .table-group-divider {\n border-block-start: calc(var(--table-border-width) * 2) solid var(--table-group-separator-color);\n }\n .caption-top {\n caption-side: top;\n }\n .table-sm > :not(caption) > * > * {\n --table-cell-padding-y: .25rem;\n --table-cell-padding-x: .25rem;\n }\n .table-bordered > :not(caption) > * {\n border-width: var(--table-border-width) 0;\n }\n .table-bordered > :not(caption) > * > * {\n border-width: 0 var(--table-border-width);\n }\n .table-borderless > :not(caption) > * > * {\n border-block-end-width: 0;\n }\n .table-borderless > :not(:first-child) {\n border-block-start-width: 0;\n }\n .table-striped > tbody > tr:nth-of-type(odd) > * {\n --table-color-type: var(--theme-fg, var(--table-striped-color));\n --table-bg-type: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-striped-bg-factor), transparent);\n }\n .table-striped-columns > :not(caption) > tr > :nth-child(even) {\n --table-color-type: var(--theme-fg, var(--table-striped-color));\n --table-bg-type: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-striped-bg-factor), transparent);\n }\n .table-active {\n --table-color-state: var(--theme-fg, var(--table-active-color));\n --table-bg-state: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-active-bg-factor), transparent);\n }\n .table-hover > tbody > tr:hover > * {\n --table-color-state: var(--theme-fg, var(--table-hover-color));\n --table-bg-state: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-hover-bg-factor), transparent);\n }\n .table-responsive {\n container-type: inline-size;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .sm\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 576px) {\n .sm\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .md\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 768px) {\n .md\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .lg\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 1024px) {\n .lg\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .xl\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 1280px) {\n .xl\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .\\32 xl\\:table-responsive {\n container-type: inline-size;\n }\n @media (width < 1536px) {\n .\\32 xl\\:table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n .table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n @container (width < 576px) {\n .sm\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .sm\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .sm\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .sm\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .sm\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .sm\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .sm\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n @container (width < 768px) {\n .md\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .md\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .md\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .md\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .md\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .md\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .md\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n @container (width < 1024px) {\n .lg\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .lg\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .lg\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .lg\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .lg\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .lg\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .lg\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n @container (width < 1280px) {\n .xl\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .xl\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .xl\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .xl\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .xl\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .xl\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .xl\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n @container (width < 1536px) {\n .\\32 xl\\:table-stacked > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n .\\32 xl\\:table-stacked > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n }\n .\\32 xl\\:table-stacked > tbody > tr + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n .\\32 xl\\:table-stacked > tbody > tr > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * 0.25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n }\n .\\32 xl\\:table-stacked > tbody > tr > td:first-child {\n font-weight: var(--font-weight-bold);\n }\n .\\32 xl\\:table-stacked > tbody > tr > td[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n .\\32 xl\\:table-stacked > tbody > tr > td:not(:first-child) + td::before {\n margin-block-start: 0.25rem;\n }\n }\n}\n@layer content {\n .img-fluid {\n max-width: 100%;\n height: auto;\n }\n .img-thumbnail {\n --thumbnail-padding: 0.25rem;\n --thumbnail-bg: var(--bg-body);\n --thumbnail-border-width: var(--border-width);\n --thumbnail-border-color: var(--border-color);\n --thumbnail-border-radius: var(--radius-5);\n --thumbnail-box-shadow: var(--box-shadow-sm);\n padding: var(--thumbnail-padding);\n background-color: var(--thumbnail-bg);\n border: var(--thumbnail-border-width) solid var(--thumbnail-border-color);\n border-radius: var(--thumbnail-border-radius);\n box-shadow: var(--thumbnail-box-shadow);\n max-width: 100%;\n height: auto;\n }\n .figure {\n --figure-gap: calc(var(--spacer) * 0.5);\n --figure-caption-font-size: var(--font-size-sm);\n --figure-caption-color: var(--fg-3);\n display: flex;\n flex-direction: column;\n gap: var(--figure-gap);\n }\n .figure-caption {\n font-size: var(--figure-caption-font-size);\n color: var(--figure-caption-color);\n }\n}\n@layer content {\n .prose {\n --content-font-size: 1rem;\n --content-line-height: 1.5;\n --content-gap: calc(var(--content-font-size) * var(--content-line-height));\n --heading-color: light-dark(var(--gray-900), var(--white));\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--content-gap);\n max-width: 1000px;\n margin-inline: auto;\n font-size: var(--content-font-size);\n line-height: var(--content-line-height);\n }\n @media (width >= 1024px) {\n .prose {\n --content-font-size: var(--font-size-md);\n --content-line-height: 1.625;\n }\n }\n .prose :where(p, ul, ol, dl, pre, table, blockquote):not(:where(.not-prose, .not-prose *)) {\n margin-block: 0;\n }\n .prose :where(ul, ol):not([class], :where(.not-prose, .not-prose *)) li:not(:last-child) {\n margin-bottom: calc(var(--content-gap) / 4);\n }\n .prose :where(li ul, li ol):not(:where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) / 4);\n }\n .prose :where(hr):not(:where(.not-prose, .not-prose *)) {\n margin: calc(var(--content-gap) * 1.5) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n .prose :where(h1, h2, h3, h4, h5, h6):not([class], :where(.not-prose, .not-prose *)) {\n margin-top: 0;\n margin-bottom: calc(var(--content-gap) / -2);\n font-weight: 500;\n line-height: 1.25;\n }\n .prose :where(h1, h2, h3, h4, h5, h6):not([class], :where(.not-prose, .not-prose *)) code {\n font-weight: 600;\n color: inherit;\n }\n .prose :where(h1, h2):not(:first-child, :where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) * 0.75);\n }\n .prose :where(h3, h4, h5, h6):not(:first-child, :where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) * 0.5);\n }\n .prose :where(h1):not(:where(.not-prose, .not-prose *)) {\n font-size: 2.25em;\n line-height: 1.1;\n }\n .prose :where(h2):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.75em;\n }\n .prose :where(h3):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.5em;\n }\n .prose :where(h4):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.25em;\n }\n .prose :where(h5):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.125em;\n }\n .prose :where(h6):not(:where(.not-prose, .not-prose *)) {\n font-size: 1em;\n }\n .prose :where(a:not([class])):not(:where(.not-prose, .not-prose *)) {\n color: var(--link-color);\n text-decoration: underline;\n text-decoration-color: color-mix(in srgb, var(--link-color) 25%, transparent);\n text-underline-offset: 4px;\n transition: 0.1s text-decoration-color ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .prose :where(a:not([class])):not(:where(.not-prose, .not-prose *)) {\n transition: none;\n }\n }\n .prose :where(a:not([class])):not(:where(.not-prose, .not-prose *)):hover {\n text-decoration-color: var(--link-hover-color);\n }\n .prose :where(img):not(:where(.not-prose, .not-prose *)) {\n max-width: 100%;\n }\n .prose :where(blockquote):not(:where(.not-prose, .not-prose *)) {\n padding-inline-start: calc(var(--content-gap) / 2);\n margin: 0;\n border-inline-start: 4px solid var(--border-color);\n }\n .prose :where(table):not(:where(.not-prose, .not-prose *)) {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n }\n .prose :where(table:not([class])):not(:where(.not-prose, .not-prose *)) td,\n .prose :where(table:not([class])):not(:where(.not-prose, .not-prose *)) th {\n padding: 6px 12px;\n text-align: inherit;\n border: 1px solid var(--border-color);\n }\n .prose :where(dt):not(:where(.not-prose, .not-prose *)) {\n font-weight: 500;\n }\n .prose :where(video, img):not(:where(.not-prose, .not-prose *)) {\n max-width: 100%;\n }\n}\n@layer layout {\n .container,\n .container-fluid,\n .\\32 xl\\:container,\n .xl\\:container,\n .lg\\:container,\n .md\\:container,\n .sm\\:container {\n --gutter-x: 1.5rem;\n --gutter-y: 0;\n width: 100%;\n padding-inline: calc(var(--gutter-x) * 0.5);\n margin-inline: auto;\n }\n @media (width >= 576px) {\n .sm\\:container, .container {\n max-width: 540px;\n }\n }\n @media (width >= 768px) {\n .md\\:container, .sm\\:container, .container {\n max-width: 720px;\n }\n }\n @media (width >= 1024px) {\n .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 960px;\n }\n }\n @media (width >= 1280px) {\n .xl\\:container, .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 1200px;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:container, .xl\\:container, .lg\\:container, .md\\:container, .sm\\:container, .container {\n max-width: 1440px;\n }\n }\n}\n@layer layout {\n .row {\n --gutter-x: 1.5rem;\n --gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-inline: calc(-0.5 * var(--gutter-x));\n margin-top: calc(-1 * var(--gutter-y));\n }\n .row > * {\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-inline: calc(var(--gutter-x) * 0.5);\n margin-top: var(--gutter-y);\n }\n .col {\n flex: 1 0 0;\n }\n .row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .offset-3 {\n margin-inline-start: 25%;\n }\n .offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .offset-6 {\n margin-inline-start: 50%;\n }\n .offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .offset-9 {\n margin-inline-start: 75%;\n }\n .offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .g-0,\n .gx-0 {\n --gutter-x: 0;\n }\n .g-0,\n .gy-0 {\n --gutter-y: 0;\n }\n .g-1,\n .gx-1 {\n --gutter-x: 0.25rem;\n }\n .g-1,\n .gy-1 {\n --gutter-y: 0.25rem;\n }\n .g-2,\n .gx-2 {\n --gutter-x: 0.5rem;\n }\n .g-2,\n .gy-2 {\n --gutter-y: 0.5rem;\n }\n .g-3,\n .gx-3 {\n --gutter-x: 0.75rem;\n }\n .g-3,\n .gy-3 {\n --gutter-y: 0.75rem;\n }\n .g-4,\n .gx-4 {\n --gutter-x: 1rem;\n }\n .g-4,\n .gy-4 {\n --gutter-y: 1rem;\n }\n .g-5,\n .gx-5 {\n --gutter-x: 1.25rem;\n }\n .g-5,\n .gy-5 {\n --gutter-y: 1.25rem;\n }\n .g-6,\n .gx-6 {\n --gutter-x: 1.5rem;\n }\n .g-6,\n .gy-6 {\n --gutter-y: 1.5rem;\n }\n .g-7,\n .gx-7 {\n --gutter-x: 2rem;\n }\n .g-7,\n .gy-7 {\n --gutter-y: 2rem;\n }\n .g-8,\n .gx-8 {\n --gutter-x: 2.5rem;\n }\n .g-8,\n .gy-8 {\n --gutter-y: 2.5rem;\n }\n .g-9,\n .gx-9 {\n --gutter-x: 3rem;\n }\n .g-9,\n .gy-9 {\n --gutter-y: 3rem;\n }\n @media (width >= 576px) {\n .sm\\:col {\n flex: 1 0 0;\n }\n .sm\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .sm\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .sm\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .sm\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .sm\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .sm\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .sm\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .sm\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .sm\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .sm\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .sm\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .sm\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .sm\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .sm\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .sm\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .sm\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .sm\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .sm\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .sm\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .sm\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .sm\\:offset-0 {\n margin-inline-start: 0;\n }\n .sm\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .sm\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .sm\\:offset-3 {\n margin-inline-start: 25%;\n }\n .sm\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .sm\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .sm\\:offset-6 {\n margin-inline-start: 50%;\n }\n .sm\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .sm\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .sm\\:offset-9 {\n margin-inline-start: 75%;\n }\n .sm\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .sm\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .sm\\:g-0,\n .sm\\:gx-0 {\n --gutter-x: 0;\n }\n .sm\\:g-0,\n .sm\\:gy-0 {\n --gutter-y: 0;\n }\n .sm\\:g-1,\n .sm\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .sm\\:g-1,\n .sm\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .sm\\:g-2,\n .sm\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .sm\\:g-2,\n .sm\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .sm\\:g-3,\n .sm\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .sm\\:g-3,\n .sm\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .sm\\:g-4,\n .sm\\:gx-4 {\n --gutter-x: 1rem;\n }\n .sm\\:g-4,\n .sm\\:gy-4 {\n --gutter-y: 1rem;\n }\n .sm\\:g-5,\n .sm\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .sm\\:g-5,\n .sm\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .sm\\:g-6,\n .sm\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .sm\\:g-6,\n .sm\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .sm\\:g-7,\n .sm\\:gx-7 {\n --gutter-x: 2rem;\n }\n .sm\\:g-7,\n .sm\\:gy-7 {\n --gutter-y: 2rem;\n }\n .sm\\:g-8,\n .sm\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .sm\\:g-8,\n .sm\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .sm\\:g-9,\n .sm\\:gx-9 {\n --gutter-x: 3rem;\n }\n .sm\\:g-9,\n .sm\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 768px) {\n .md\\:col {\n flex: 1 0 0;\n }\n .md\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .md\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .md\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .md\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .md\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .md\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .md\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .md\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .md\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .md\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .md\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .md\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .md\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .md\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .md\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .md\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .md\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .md\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .md\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .md\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .md\\:offset-0 {\n margin-inline-start: 0;\n }\n .md\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .md\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .md\\:offset-3 {\n margin-inline-start: 25%;\n }\n .md\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .md\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .md\\:offset-6 {\n margin-inline-start: 50%;\n }\n .md\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .md\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .md\\:offset-9 {\n margin-inline-start: 75%;\n }\n .md\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .md\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .md\\:g-0,\n .md\\:gx-0 {\n --gutter-x: 0;\n }\n .md\\:g-0,\n .md\\:gy-0 {\n --gutter-y: 0;\n }\n .md\\:g-1,\n .md\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .md\\:g-1,\n .md\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .md\\:g-2,\n .md\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .md\\:g-2,\n .md\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .md\\:g-3,\n .md\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .md\\:g-3,\n .md\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .md\\:g-4,\n .md\\:gx-4 {\n --gutter-x: 1rem;\n }\n .md\\:g-4,\n .md\\:gy-4 {\n --gutter-y: 1rem;\n }\n .md\\:g-5,\n .md\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .md\\:g-5,\n .md\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .md\\:g-6,\n .md\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .md\\:g-6,\n .md\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .md\\:g-7,\n .md\\:gx-7 {\n --gutter-x: 2rem;\n }\n .md\\:g-7,\n .md\\:gy-7 {\n --gutter-y: 2rem;\n }\n .md\\:g-8,\n .md\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .md\\:g-8,\n .md\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .md\\:g-9,\n .md\\:gx-9 {\n --gutter-x: 3rem;\n }\n .md\\:g-9,\n .md\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1024px) {\n .lg\\:col {\n flex: 1 0 0;\n }\n .lg\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .lg\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .lg\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .lg\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .lg\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .lg\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .lg\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .lg\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .lg\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .lg\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .lg\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .lg\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .lg\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .lg\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .lg\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .lg\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .lg\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .lg\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .lg\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .lg\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .lg\\:offset-0 {\n margin-inline-start: 0;\n }\n .lg\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .lg\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .lg\\:offset-3 {\n margin-inline-start: 25%;\n }\n .lg\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .lg\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .lg\\:offset-6 {\n margin-inline-start: 50%;\n }\n .lg\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .lg\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .lg\\:offset-9 {\n margin-inline-start: 75%;\n }\n .lg\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .lg\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .lg\\:g-0,\n .lg\\:gx-0 {\n --gutter-x: 0;\n }\n .lg\\:g-0,\n .lg\\:gy-0 {\n --gutter-y: 0;\n }\n .lg\\:g-1,\n .lg\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .lg\\:g-1,\n .lg\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .lg\\:g-2,\n .lg\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .lg\\:g-2,\n .lg\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .lg\\:g-3,\n .lg\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .lg\\:g-3,\n .lg\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .lg\\:g-4,\n .lg\\:gx-4 {\n --gutter-x: 1rem;\n }\n .lg\\:g-4,\n .lg\\:gy-4 {\n --gutter-y: 1rem;\n }\n .lg\\:g-5,\n .lg\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .lg\\:g-5,\n .lg\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .lg\\:g-6,\n .lg\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .lg\\:g-6,\n .lg\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .lg\\:g-7,\n .lg\\:gx-7 {\n --gutter-x: 2rem;\n }\n .lg\\:g-7,\n .lg\\:gy-7 {\n --gutter-y: 2rem;\n }\n .lg\\:g-8,\n .lg\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .lg\\:g-8,\n .lg\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .lg\\:g-9,\n .lg\\:gx-9 {\n --gutter-x: 3rem;\n }\n .lg\\:g-9,\n .lg\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1280px) {\n .xl\\:col {\n flex: 1 0 0;\n }\n .xl\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .xl\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .xl\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .xl\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .xl\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .xl\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .xl\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .xl\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .xl\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .xl\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .xl\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .xl\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .xl\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .xl\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .xl\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .xl\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .xl\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .xl\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .xl\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .xl\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .xl\\:offset-0 {\n margin-inline-start: 0;\n }\n .xl\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .xl\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .xl\\:offset-3 {\n margin-inline-start: 25%;\n }\n .xl\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .xl\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .xl\\:offset-6 {\n margin-inline-start: 50%;\n }\n .xl\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .xl\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .xl\\:offset-9 {\n margin-inline-start: 75%;\n }\n .xl\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .xl\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .xl\\:g-0,\n .xl\\:gx-0 {\n --gutter-x: 0;\n }\n .xl\\:g-0,\n .xl\\:gy-0 {\n --gutter-y: 0;\n }\n .xl\\:g-1,\n .xl\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .xl\\:g-1,\n .xl\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .xl\\:g-2,\n .xl\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .xl\\:g-2,\n .xl\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .xl\\:g-3,\n .xl\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .xl\\:g-3,\n .xl\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .xl\\:g-4,\n .xl\\:gx-4 {\n --gutter-x: 1rem;\n }\n .xl\\:g-4,\n .xl\\:gy-4 {\n --gutter-y: 1rem;\n }\n .xl\\:g-5,\n .xl\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .xl\\:g-5,\n .xl\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .xl\\:g-6,\n .xl\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .xl\\:g-6,\n .xl\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .xl\\:g-7,\n .xl\\:gx-7 {\n --gutter-x: 2rem;\n }\n .xl\\:g-7,\n .xl\\:gy-7 {\n --gutter-y: 2rem;\n }\n .xl\\:g-8,\n .xl\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .xl\\:g-8,\n .xl\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .xl\\:g-9,\n .xl\\:gx-9 {\n --gutter-x: 3rem;\n }\n .xl\\:g-9,\n .xl\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:col {\n flex: 1 0 0;\n }\n .\\32 xl\\:row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .\\32 xl\\:row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .\\32 xl\\:row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .\\32 xl\\:row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .\\32 xl\\:row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .\\32 xl\\:row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .\\32 xl\\:row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .\\32 xl\\:col-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .\\32 xl\\:col-1 {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n .\\32 xl\\:col-2 {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n .\\32 xl\\:col-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .\\32 xl\\:col-4 {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .\\32 xl\\:col-5 {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n .\\32 xl\\:col-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .\\32 xl\\:col-7 {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n .\\32 xl\\:col-8 {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n .\\32 xl\\:col-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .\\32 xl\\:col-10 {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n .\\32 xl\\:col-11 {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n .\\32 xl\\:col-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .\\32 xl\\:offset-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:offset-1 {\n margin-inline-start: 8.3333333333%;\n }\n .\\32 xl\\:offset-2 {\n margin-inline-start: 16.6666666667%;\n }\n .\\32 xl\\:offset-3 {\n margin-inline-start: 25%;\n }\n .\\32 xl\\:offset-4 {\n margin-inline-start: 33.3333333333%;\n }\n .\\32 xl\\:offset-5 {\n margin-inline-start: 41.6666666667%;\n }\n .\\32 xl\\:offset-6 {\n margin-inline-start: 50%;\n }\n .\\32 xl\\:offset-7 {\n margin-inline-start: 58.3333333333%;\n }\n .\\32 xl\\:offset-8 {\n margin-inline-start: 66.6666666667%;\n }\n .\\32 xl\\:offset-9 {\n margin-inline-start: 75%;\n }\n .\\32 xl\\:offset-10 {\n margin-inline-start: 83.3333333333%;\n }\n .\\32 xl\\:offset-11 {\n margin-inline-start: 91.6666666667%;\n }\n .\\32 xl\\:g-0,\n .\\32 xl\\:gx-0 {\n --gutter-x: 0;\n }\n .\\32 xl\\:g-0,\n .\\32 xl\\:gy-0 {\n --gutter-y: 0;\n }\n .\\32 xl\\:g-1,\n .\\32 xl\\:gx-1 {\n --gutter-x: 0.25rem;\n }\n .\\32 xl\\:g-1,\n .\\32 xl\\:gy-1 {\n --gutter-y: 0.25rem;\n }\n .\\32 xl\\:g-2,\n .\\32 xl\\:gx-2 {\n --gutter-x: 0.5rem;\n }\n .\\32 xl\\:g-2,\n .\\32 xl\\:gy-2 {\n --gutter-y: 0.5rem;\n }\n .\\32 xl\\:g-3,\n .\\32 xl\\:gx-3 {\n --gutter-x: 0.75rem;\n }\n .\\32 xl\\:g-3,\n .\\32 xl\\:gy-3 {\n --gutter-y: 0.75rem;\n }\n .\\32 xl\\:g-4,\n .\\32 xl\\:gx-4 {\n --gutter-x: 1rem;\n }\n .\\32 xl\\:g-4,\n .\\32 xl\\:gy-4 {\n --gutter-y: 1rem;\n }\n .\\32 xl\\:g-5,\n .\\32 xl\\:gx-5 {\n --gutter-x: 1.25rem;\n }\n .\\32 xl\\:g-5,\n .\\32 xl\\:gy-5 {\n --gutter-y: 1.25rem;\n }\n .\\32 xl\\:g-6,\n .\\32 xl\\:gx-6 {\n --gutter-x: 1.5rem;\n }\n .\\32 xl\\:g-6,\n .\\32 xl\\:gy-6 {\n --gutter-y: 1.5rem;\n }\n .\\32 xl\\:g-7,\n .\\32 xl\\:gx-7 {\n --gutter-x: 2rem;\n }\n .\\32 xl\\:g-7,\n .\\32 xl\\:gy-7 {\n --gutter-y: 2rem;\n }\n .\\32 xl\\:g-8,\n .\\32 xl\\:gx-8 {\n --gutter-x: 2.5rem;\n }\n .\\32 xl\\:g-8,\n .\\32 xl\\:gy-8 {\n --gutter-y: 2.5rem;\n }\n .\\32 xl\\:g-9,\n .\\32 xl\\:gx-9 {\n --gutter-x: 3rem;\n }\n .\\32 xl\\:g-9,\n .\\32 xl\\:gy-9 {\n --gutter-y: 3rem;\n }\n }\n .grid {\n --columns: 12;\n --rows: 1;\n --gap: 1.5rem;\n display: grid;\n grid-template-rows: repeat(var(--rows), 1fr);\n grid-template-columns: repeat(var(--columns), 1fr);\n gap: var(--gap);\n }\n .g-col-1 {\n grid-column: auto/span 1;\n }\n .g-col-2 {\n grid-column: auto/span 2;\n }\n .g-col-3 {\n grid-column: auto/span 3;\n }\n .g-col-4 {\n grid-column: auto/span 4;\n }\n .g-col-5 {\n grid-column: auto/span 5;\n }\n .g-col-6 {\n grid-column: auto/span 6;\n }\n .g-col-7 {\n grid-column: auto/span 7;\n }\n .g-col-8 {\n grid-column: auto/span 8;\n }\n .g-col-9 {\n grid-column: auto/span 9;\n }\n .g-col-10 {\n grid-column: auto/span 10;\n }\n .g-col-11 {\n grid-column: auto/span 11;\n }\n .g-col-12 {\n grid-column: auto/span 12;\n }\n .g-start-1 {\n grid-column-start: 1;\n }\n .g-start-2 {\n grid-column-start: 2;\n }\n .g-start-3 {\n grid-column-start: 3;\n }\n .g-start-4 {\n grid-column-start: 4;\n }\n .g-start-5 {\n grid-column-start: 5;\n }\n .g-start-6 {\n grid-column-start: 6;\n }\n .g-start-7 {\n grid-column-start: 7;\n }\n .g-start-8 {\n grid-column-start: 8;\n }\n .g-start-9 {\n grid-column-start: 9;\n }\n .g-start-10 {\n grid-column-start: 10;\n }\n .g-start-11 {\n grid-column-start: 11;\n }\n @media (width >= 576px) {\n .sm\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .sm\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .sm\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .sm\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .sm\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .sm\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .sm\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .sm\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .sm\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .sm\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .sm\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .sm\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .sm\\:g-start-1 {\n grid-column-start: 1;\n }\n .sm\\:g-start-2 {\n grid-column-start: 2;\n }\n .sm\\:g-start-3 {\n grid-column-start: 3;\n }\n .sm\\:g-start-4 {\n grid-column-start: 4;\n }\n .sm\\:g-start-5 {\n grid-column-start: 5;\n }\n .sm\\:g-start-6 {\n grid-column-start: 6;\n }\n .sm\\:g-start-7 {\n grid-column-start: 7;\n }\n .sm\\:g-start-8 {\n grid-column-start: 8;\n }\n .sm\\:g-start-9 {\n grid-column-start: 9;\n }\n .sm\\:g-start-10 {\n grid-column-start: 10;\n }\n .sm\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 768px) {\n .md\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .md\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .md\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .md\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .md\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .md\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .md\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .md\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .md\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .md\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .md\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .md\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .md\\:g-start-1 {\n grid-column-start: 1;\n }\n .md\\:g-start-2 {\n grid-column-start: 2;\n }\n .md\\:g-start-3 {\n grid-column-start: 3;\n }\n .md\\:g-start-4 {\n grid-column-start: 4;\n }\n .md\\:g-start-5 {\n grid-column-start: 5;\n }\n .md\\:g-start-6 {\n grid-column-start: 6;\n }\n .md\\:g-start-7 {\n grid-column-start: 7;\n }\n .md\\:g-start-8 {\n grid-column-start: 8;\n }\n .md\\:g-start-9 {\n grid-column-start: 9;\n }\n .md\\:g-start-10 {\n grid-column-start: 10;\n }\n .md\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1024px) {\n .lg\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .lg\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .lg\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .lg\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .lg\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .lg\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .lg\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .lg\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .lg\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .lg\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .lg\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .lg\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .lg\\:g-start-1 {\n grid-column-start: 1;\n }\n .lg\\:g-start-2 {\n grid-column-start: 2;\n }\n .lg\\:g-start-3 {\n grid-column-start: 3;\n }\n .lg\\:g-start-4 {\n grid-column-start: 4;\n }\n .lg\\:g-start-5 {\n grid-column-start: 5;\n }\n .lg\\:g-start-6 {\n grid-column-start: 6;\n }\n .lg\\:g-start-7 {\n grid-column-start: 7;\n }\n .lg\\:g-start-8 {\n grid-column-start: 8;\n }\n .lg\\:g-start-9 {\n grid-column-start: 9;\n }\n .lg\\:g-start-10 {\n grid-column-start: 10;\n }\n .lg\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1280px) {\n .xl\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .xl\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .xl\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .xl\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .xl\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .xl\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .xl\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .xl\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .xl\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .xl\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .xl\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .xl\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .xl\\:g-start-1 {\n grid-column-start: 1;\n }\n .xl\\:g-start-2 {\n grid-column-start: 2;\n }\n .xl\\:g-start-3 {\n grid-column-start: 3;\n }\n .xl\\:g-start-4 {\n grid-column-start: 4;\n }\n .xl\\:g-start-5 {\n grid-column-start: 5;\n }\n .xl\\:g-start-6 {\n grid-column-start: 6;\n }\n .xl\\:g-start-7 {\n grid-column-start: 7;\n }\n .xl\\:g-start-8 {\n grid-column-start: 8;\n }\n .xl\\:g-start-9 {\n grid-column-start: 9;\n }\n .xl\\:g-start-10 {\n grid-column-start: 10;\n }\n .xl\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:g-col-1 {\n grid-column: auto/span 1;\n }\n .\\32 xl\\:g-col-2 {\n grid-column: auto/span 2;\n }\n .\\32 xl\\:g-col-3 {\n grid-column: auto/span 3;\n }\n .\\32 xl\\:g-col-4 {\n grid-column: auto/span 4;\n }\n .\\32 xl\\:g-col-5 {\n grid-column: auto/span 5;\n }\n .\\32 xl\\:g-col-6 {\n grid-column: auto/span 6;\n }\n .\\32 xl\\:g-col-7 {\n grid-column: auto/span 7;\n }\n .\\32 xl\\:g-col-8 {\n grid-column: auto/span 8;\n }\n .\\32 xl\\:g-col-9 {\n grid-column: auto/span 9;\n }\n .\\32 xl\\:g-col-10 {\n grid-column: auto/span 10;\n }\n .\\32 xl\\:g-col-11 {\n grid-column: auto/span 11;\n }\n .\\32 xl\\:g-col-12 {\n grid-column: auto/span 12;\n }\n .\\32 xl\\:g-start-1 {\n grid-column-start: 1;\n }\n .\\32 xl\\:g-start-2 {\n grid-column-start: 2;\n }\n .\\32 xl\\:g-start-3 {\n grid-column-start: 3;\n }\n .\\32 xl\\:g-start-4 {\n grid-column-start: 4;\n }\n .\\32 xl\\:g-start-5 {\n grid-column-start: 5;\n }\n .\\32 xl\\:g-start-6 {\n grid-column-start: 6;\n }\n .\\32 xl\\:g-start-7 {\n grid-column-start: 7;\n }\n .\\32 xl\\:g-start-8 {\n grid-column-start: 8;\n }\n .\\32 xl\\:g-start-9 {\n grid-column-start: 9;\n }\n .\\32 xl\\:g-start-10 {\n grid-column-start: 10;\n }\n .\\32 xl\\:g-start-11 {\n grid-column-start: 11;\n }\n }\n .grid-cols-subgrid {\n grid-template-columns: subgrid;\n }\n .grid-fill {\n --gap: 1.5rem;\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-auto-flow: row;\n gap: var(--gap);\n }\n}\n@layer forms {\n .form-label,\n .col-form-label {\n font-size: var(--label-font-size, inherit);\n font-style: var(--label-font-style, inherit);\n font-weight: var(--label-font-weight, 500);\n color: var(--label-color, var(--fg-body));\n }\n .form-label {\n margin-bottom: var(--label-margin-bottom, calc(var(--spacer) / 2));\n }\n .col-form-label {\n --label-padding-y: calc(var(--btn-input-padding-y) + var(--border-width));\n padding-block: var(--label-padding-y);\n margin-bottom: 0;\n }\n .col-form-label-lg {\n --label-padding-y: calc(var(--btn-input-lg-padding-y) + var(--border-width));\n font-size: var(--btn-input-lg-font-size);\n }\n .col-form-label-sm {\n --label-padding-y: calc(var(--btn-input-sm-padding-y) + var(--border-width));\n font-size: var(--btn-input-sm-font-size);\n }\n}\n@layer forms {\n .form-text {\n --form-text-margin-top: 0.25rem;\n --form-text-font-size: var(--font-size-sm);\n --form-text-color: var(--fg-2);\n font-size: var(--form-text-font-size);\n font-style: var(--form-text-font-style);\n font-weight: var(--form-text-font-weight);\n color: var(--form-text-color);\n }\n}\n@layer forms {\n .form-control {\n --control-min-height: var(--btn-input-min-height);\n --control-padding-y: var(--btn-input-padding-y);\n --control-padding-x: var(--btn-input-padding-x);\n --control-font-size: var(--btn-input-font-size);\n --control-line-height: var(--btn-input-line-height);\n --control-fg: var(--btn-input-fg);\n --control-bg: var(--btn-input-bg);\n --control-border-width: var(--border-width);\n --control-border-color: var(--border-color);\n --control-border-radius: var(--radius-5);\n --control-box-shadow: var(--box-shadow-inset);\n --control-action-bg: var(--bg-1);\n --control-action-hover-bg: var(--bg-2);\n --control-transition-property: border-color, box-shadow;\n --control-transition-timing: 0.15s ease-in-out;\n --control-transition: var(--control-transition-property) var(--control-transition-timing);\n --control-placeholder-color: var(--fg-3);\n --control-disabled-color: var(--control-fg);\n --control-disabled-bg: var(--bg-2);\n --control-disabled-border-color: var(--control-border-color);\n --control-select-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2300000080' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n --control-select-bg-position: right 0.75rem center;\n --control-select-bg-size: 16px 12px;\n --control-select-bg-dark: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff80' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n display: flex;\n width: 100%;\n min-height: var(--control-min-height);\n padding: var(--control-padding-y) var(--control-padding-x);\n font-size: var(--control-font-size);\n line-height: var(--control-line-height);\n color: var(--control-fg);\n appearance: none;\n background-color: var(--control-bg);\n background-clip: padding-box;\n border: var(--control-border-width) solid var(--control-border-color);\n border-radius: var(--control-border-radius);\n box-shadow: var(--control-box-shadow);\n transition: var(--control-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n }\n .form-control:focus-visible {\n --focus-ring-offset: -1px;\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-control::placeholder {\n color: var(--control-placeholder-color);\n opacity: 1;\n }\n .form-control:disabled {\n color: var(--control-disabled-color);\n background-color: var(--control-disabled-bg);\n border-color: var(--control-disabled-border-color);\n opacity: 1;\n }\n .form-control::-webkit-datetime-edit {\n display: block;\n height: 1.5rem;\n padding: 0;\n margin-bottom: -0.125rem;\n }\n .form-control::-webkit-datetime-edit-fields-wrapper {\n height: 1.5rem;\n }\n .form-control[type=file] {\n overflow: hidden;\n }\n .form-control[type=file]:not(:disabled, [readonly]) {\n cursor: pointer;\n }\n .form-control::file-selector-button {\n min-height: var(--control-min-height);\n padding: var(--control-padding-y) var(--control-padding-x);\n margin: calc(var(--control-padding-y) * -1) calc(var(--control-padding-x) * -1);\n margin-inline-end: var(--control-padding-x);\n color: var(--control-fg);\n pointer-events: none;\n background-color: var(--control-action-bg);\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: var(--control-border-width);\n border-radius: 0;\n transition: var(--control-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-control::file-selector-button {\n transition: none;\n }\n }\n .form-control:hover:not(:disabled, [readonly])::file-selector-button {\n background-color: var(--control-action-hover-bg);\n }\n .form-control-plaintext {\n display: block;\n width: 100%;\n padding: var(--control-padding-y) 0;\n margin-bottom: 0;\n line-height: var(--control-line-height);\n color: var(--control-fg);\n background-color: transparent;\n border: solid transparent;\n border-width: var(--control-border-width) 0;\n }\n .form-control-plaintext:focus {\n outline: 0;\n }\n .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-inline: 0;\n }\n select.form-control,\n .form-control-caret {\n padding-inline-end: calc(var(--control-padding-x) * 3);\n background-image: var(--control-select-bg);\n background-repeat: no-repeat;\n background-position: var(--control-select-bg-position);\n background-size: var(--control-select-bg-size);\n }\n select.form-control[multiple], select.form-control[size]:not([size=\"1\"]),\n .form-control-caret[multiple],\n .form-control-caret[size]:not([size=\"1\"]) {\n padding-inline-end: var(--control-padding-x);\n background-image: none;\n }\n @media (prefers-color-scheme: dark) {\n select.form-control,\n .form-control-caret {\n background-image: var(--control-select-bg-dark);\n }\n }\n .form-control-sm {\n --control-min-height: var(--btn-input-sm-min-height);\n --control-padding-y: var(--btn-input-sm-padding-y);\n --control-padding-x: var(--btn-input-sm-padding-x);\n --control-font-size: var(--btn-input-sm-font-size);\n --control-line-height: var(--btn-input-sm-line-height);\n --control-border-radius: var(--btn-input-sm-border-radius);\n }\n .form-control-lg {\n --control-min-height: var(--btn-input-lg-min-height);\n --control-padding-y: var(--btn-input-lg-padding-y);\n --control-padding-x: var(--btn-input-lg-padding-x);\n --control-font-size: var(--btn-input-lg-font-size);\n --control-line-height: var(--btn-input-lg-line-height);\n --control-border-radius: var(--btn-input-lg-border-radius);\n }\n .form-control-color {\n width: var(--control-min-height);\n padding: var(--control-padding-y);\n }\n .form-control-color:not(:disabled, [readonly]) {\n cursor: pointer;\n }\n .form-control-color::-moz-color-swatch {\n border: 0 !important;\n border-radius: var(--radius-5);\n }\n .form-control-color::-webkit-color-swatch {\n border: 0 !important;\n border-radius: var(--radius-5);\n }\n .form-ghost {\n display: block;\n width: 100%;\n padding: 0;\n font: inherit;\n color: inherit;\n appearance: none;\n background: transparent;\n border: 0;\n }\n .form-ghost:focus {\n outline: 0;\n }\n .form-ghost::placeholder {\n color: var(--fg-3);\n opacity: 1;\n }\n .form-ghost:disabled {\n color: var(--fg-4);\n cursor: not-allowed;\n }\n}\n@layer forms {\n .check {\n --check-size: 1.25rem;\n --check-margin-block: 0.125rem;\n --check-bg: var(--bg-body);\n --check-border-color: var(--border-color);\n --check-border-radius: var(--radius-5);\n --check-icon-checked: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m5.5 10 3 3 6-6'/%3e%3c/svg%3e\");\n --check-icon-indeterminate: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 10h8'/%3e%3c/svg%3e\");\n --check-checked-bg: var(--control-checked-bg);\n --check-checked-border-color: var(--control-checked-border-color);\n --check-indeterminate-bg: var(--control-checked-bg);\n --check-indeterminate-border-color: var(--control-checked-border-color);\n --check-active-bg: var(--control-active-bg);\n --check-active-border-color: var(--control-active-border-color);\n --check-disabled-bg: var(--control-disabled-bg);\n --check-disabled-opacity: var(--control-disabled-opacity);\n position: relative;\n flex-shrink: 0;\n width: var(--check-size);\n height: var(--check-size);\n margin-block: var(--check-margin-block);\n appearance: none;\n background-color: var(--theme-bg, var(--check-bg));\n border: 1px solid var(--theme-bg, var(--check-border-color));\n border-radius: 33%;\n }\n .check:checked, .check:indeterminate {\n background-color: var(--theme-bg, var(--check-checked-bg));\n border-color: var(--theme-bg, var(--check-checked-border-color));\n }\n .check:checked::before, .check:indeterminate::before {\n position: absolute;\n inset: 0;\n pointer-events: none;\n content: \"\";\n background-color: var(--theme-contrast, var(--primary-contrast));\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: contain;\n }\n .check:checked::before {\n mask-image: var(--check-icon-checked);\n }\n .check:indeterminate::before {\n mask-image: var(--check-icon-indeterminate);\n }\n .check:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: -1px;\n }\n .check:disabled {\n --check-bg: var(--check-disabled-bg);\n }\n .check:disabled ~ label {\n color: var(--fg-3);\n cursor: default;\n }\n .check:disabled:checked {\n opacity: var(--check-disabled-opacity);\n }\n .check-sm {\n --check-size: 1rem;\n }\n .check-sm + label {\n font-size: var(--font-size-sm);\n }\n .check-lg {\n --check-size: 1.5rem;\n --check-margin-block: .375rem;\n }\n .check-lg + label {\n font-size: var(--font-size-lg);\n }\n}\n@layer forms {\n .radio {\n --radio-size: 1.25rem;\n --radio-margin-block: 0.125rem;\n --radio-bg: var(--bg-body);\n --radio-border-color: var(--border-color);\n --radio-checked-bg: var(--control-checked-bg);\n --radio-checked-border-color: var(--control-checked-border-color);\n --radio-disabled-bg: var(--control-disabled-bg);\n --radio-disabled-opacity: var(--control-disabled-opacity);\n position: relative;\n flex-shrink: 0;\n width: var(--radio-size);\n height: var(--radio-size);\n margin-block: var(--radio-margin-block);\n appearance: none;\n background-color: var(--theme-bg, var(--radio-bg));\n border: 1px solid var(--theme-bg, var(--radio-border-color));\n border-radius: 50%;\n }\n .radio:checked {\n color: var(--theme-contrast, var(--primary-contrast));\n background-color: var(--theme-bg, var(--radio-checked-bg));\n border-color: var(--theme-bg, var(--radio-checked-border-color));\n }\n .radio:checked::before {\n position: absolute;\n inset: calc(var(--radio-size) * 0.25);\n content: \"\";\n background-color: currentcolor;\n border-radius: 50%;\n }\n .radio:disabled {\n --radio-bg: var(--radio-disabled-bg);\n }\n .radio:disabled ~ label {\n color: var(--secondary-fg);\n cursor: default;\n }\n .radio:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .radio-sm {\n --radio-size: 1rem;\n }\n .radio-sm + label {\n font-size: var(--font-size-sm);\n }\n .radio-lg {\n --radio-size: 1.5rem;\n --radio-margin-block: .375rem;\n }\n .radio-lg + label {\n font-size: var(--font-size-lg);\n }\n}\n@layer forms {\n .switch {\n --switch-height: 1.25rem;\n --switch-width: calc(var(--switch-height) * 1.75);\n --switch-padding: 0.0625rem;\n --switch-margin-block: 0.125rem;\n --switch-bg: var(--bg-3);\n --switch-border-width: var(--border-width);\n --switch-border-color: var(--border-color);\n --switch-indicator-bg: var(--white);\n --switch-indicator-width: calc(var(--switch-height) - var(--switch-padding) * 2 - var(--switch-border-width) * 2);\n --switch-indicator-height: calc(var(--switch-height) - var(--switch-padding) * 2 - var(--switch-border-width) * 2);\n --switch-checked-bg: var(--control-checked-bg);\n --switch-checked-border-color: var(--switch-checked-bg);\n --switch-checked-indicator-bg: var(--white);\n --switch-disabled-bg: var(--control-disabled-bg);\n --switch-disabled-indicator-bg: var(--fg-3);\n position: relative;\n flex-shrink: 0;\n width: var(--switch-width);\n height: var(--switch-height);\n padding: var(--switch-padding);\n margin-block: var(--switch-margin-block);\n background-color: var(--switch-bg);\n border: var(--switch-border-width) solid var(--switch-border-color);\n border-radius: 10rem;\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);\n transition: background-color 0.15s ease-in-out;\n }\n .switch::before {\n position: absolute;\n inset-block: var(--switch-padding);\n inset-inline-start: var(--switch-padding);\n width: var(--switch-indicator-width);\n height: var(--switch-indicator-height);\n content: \"\";\n background-color: var(--theme-contrast, var(--switch-indicator-bg));\n border-radius: 10rem;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n transition: inset-inline-start 0.15s ease-in-out;\n }\n .switch input {\n position: absolute;\n inset: 0;\n appearance: none;\n background-color: transparent;\n outline: 0;\n }\n .switch:focus-within {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .switch:has(input:checked) {\n background-color: var(--theme-bg, var(--switch-checked-bg));\n border-color: var(--theme-bg, var(--switch-checked-border-color));\n }\n .switch:has(input:checked)::before {\n inset-inline-start: calc(100% - var(--switch-indicator-width) - var(--switch-padding));\n }\n .switch:has(input:disabled) {\n --switch-bg: var(--switch-disabled-bg);\n --switch-indicator-bg: var(--switch-disabled-indicator-bg);\n }\n .switch:has(input:disabled)::before {\n opacity: 0.4;\n }\n .switch:has(input:disabled) ~ label {\n color: var(--secondary-fg);\n cursor: default;\n }\n .switch-sm {\n --switch-height: 1rem;\n }\n .switch-sm + label {\n font-size: var(--font-size-sm);\n }\n .switch-lg {\n --switch-height: 1.5rem;\n --switch-margin-block: .375rem;\n }\n .switch-lg + label {\n font-size: var(--font-size-lg);\n }\n}\n@layer forms {\n .form-range {\n --range-track-width: 100%;\n --range-track-height: 0.5rem;\n --range-track-cursor: pointer;\n --range-track-bg: var(--bg-3);\n --range-track-border-radius: 1rem;\n --range-track-box-shadow: var(--box-shadow-inset);\n --range-thumb-width: 1rem;\n --range-thumb-height: var(--range-thumb-width);\n --range-thumb-bg: var(--primary-base);\n --range-thumb-border: var(--range-thumb-bg) solid var(--border-color);\n --range-thumb-border-radius: 1rem;\n --range-thumb-box-shadow: 0 1px 2px rgb(0 0 0 / 7.5%), 0 2px 4px rgb(0 0 0 / 7.5%);\n --range-thumb-active-bg: color-mix(in oklch, var(--primary-base) 70%, var(--bg-body));\n --range-thumb-disabled-bg: var(--fg-3);\n --range-thumb-transition-property: background-color, border-color, box-shadow;\n --range-thumb-transition-timing: 0.15s ease-in-out;\n --range-thumb-transition: var(--range-thumb-transition-property) var(--range-thumb-transition-timing);\n width: 100%;\n height: calc(var(--range-thumb-height) + var(--focus-ring-width) * 2);\n padding: 0;\n appearance: none;\n background-color: transparent;\n }\n .form-range:hover::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid color-mix(in oklch, var(--primary-focus-ring), transparent);\n }\n .form-range:hover::-moz-range-thumb {\n outline: var(--focus-ring-width) solid color-mix(in oklch, var(--primary-focus-ring), transparent);\n }\n .form-range:focus-visible {\n outline: 0;\n }\n .form-range:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: 0;\n }\n .form-range:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: 0;\n }\n .form-range::-moz-focus-outer {\n border: 0;\n }\n .form-range::-webkit-slider-thumb {\n width: var(--range-thumb-width);\n height: var(--range-thumb-height);\n appearance: none;\n background-color: var(--range-thumb-bg);\n background-image: var(--gradient);\n border: var(--range-thumb-border);\n border-radius: var(--range-thumb-border-radius);\n box-shadow: var(--range-thumb-box-shadow);\n transition: var(--range-thumb-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-range::-webkit-slider-thumb {\n transition: none;\n }\n }\n .form-range::-webkit-slider-thumb:active {\n background-color: var(--range-thumb-active-bg);\n background-image: var(--gradient);\n }\n .form-range::-webkit-slider-thumb {\n margin-top: calc((var(--range-track-height) - var(--range-thumb-height)) * 0.5);\n }\n .form-range::-moz-range-thumb {\n width: var(--range-thumb-width);\n height: var(--range-thumb-height);\n appearance: none;\n background-color: var(--range-thumb-bg);\n background-image: var(--gradient);\n border: var(--range-thumb-border);\n border-radius: var(--range-thumb-border-radius);\n box-shadow: var(--range-thumb-box-shadow);\n transition: var(--range-thumb-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-range::-moz-range-thumb {\n transition: none;\n }\n }\n .form-range::-moz-range-thumb:active {\n background-color: var(--range-thumb-active-bg);\n background-image: var(--gradient);\n }\n .form-range::-webkit-slider-runnable-track {\n width: var(--range-track-width);\n height: var(--range-track-height);\n color: transparent;\n cursor: var(--range-track-cursor);\n background-color: var(--range-track-bg);\n border-color: transparent;\n border-radius: var(--range-track-border-radius);\n box-shadow: var(--range-track-box-shadow);\n }\n .form-range::-moz-range-track {\n width: var(--range-track-width);\n height: var(--range-track-height);\n color: transparent;\n cursor: var(--range-track-cursor);\n background-color: var(--range-track-bg);\n border-color: transparent;\n border-radius: var(--range-track-border-radius);\n box-shadow: var(--range-track-box-shadow);\n }\n .form-range:disabled {\n pointer-events: none;\n }\n .form-range:disabled::-webkit-slider-thumb {\n background-color: var(--range-thumb-disabled-bg);\n }\n .form-range:disabled::-moz-range-thumb {\n background-color: var(--range-thumb-disabled-bg);\n }\n}\n@layer forms {\n .form-floating {\n --form-floating-height: calc(3.5rem + var(--border-width) * 2);\n --form-floating-line-height: 1.25;\n --form-floating-padding-x: var(--btn-input-padding-x);\n --form-floating-padding-y: 1rem;\n --form-floating-input-padding-t: 1.625rem;\n --form-floating-input-padding-b: 0.625rem;\n --form-floating-label-height: 1.5em;\n --form-floating-label-opacity: 0.65;\n --form-floating-label-transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n --form-floating-label-disabled-color: var(--fg-3);\n --form-floating-transition-property: opacity, transform;\n --form-floating-transition-timing: 0.1s ease-in-out;\n --form-floating-transition: var(--form-floating-transition-property) var(--form-floating-transition-timing);\n position: relative;\n }\n .form-floating > label {\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n z-index: 2;\n display: flex;\n align-items: center;\n max-width: 100%;\n height: 100%;\n padding: var(--form-floating-padding-y) var(--form-floating-padding-x);\n overflow: hidden;\n color: color-mix(in oklch, var(--fg-body) var(--form-floating-label-opacity), transparent);\n text-align: start;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n border: var(--input-btn-border-width) solid transparent;\n transform-origin: 0 0;\n transition: var(--form-floating-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .form-floating > label {\n transition: none;\n }\n }\n .form-floating > .form-control,\n .form-floating > .form-control-plaintext {\n height: var(--form-floating-height);\n min-height: var(--form-floating-height);\n padding: var(--form-floating-padding-y) var(--form-floating-padding-x);\n line-height: var(--form-floating-line-height);\n }\n .form-floating > .form-control::placeholder,\n .form-floating > .form-control-plaintext::placeholder {\n color: transparent;\n }\n .form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown),\n .form-floating > .form-control-plaintext:focus,\n .form-floating > .form-control-plaintext:not(:placeholder-shown) {\n padding-top: var(--form-floating-input-padding-t);\n padding-bottom: var(--form-floating-input-padding-b);\n }\n .form-floating > .form-control:-webkit-autofill,\n .form-floating > .form-control-plaintext:-webkit-autofill {\n padding-top: var(--form-floating-input-padding-t);\n padding-bottom: var(--form-floating-input-padding-b);\n }\n .form-floating > .form-control:focus ~ label,\n .form-floating > .form-control:not(:placeholder-shown) ~ label,\n .form-floating > .form-control-plaintext ~ label {\n transform: var(--form-floating-label-transform);\n }\n .form-floating > .form-control:-webkit-autofill ~ label {\n transform: var(--form-floating-label-transform);\n }\n .form-floating > textarea:focus ~ label::after,\n .form-floating > textarea:not(:placeholder-shown) ~ label::after {\n position: absolute;\n inset: var(--form-floating-padding-y) calc(var(--form-floating-padding-x) * 0.5);\n z-index: -1;\n height: var(--form-floating-label-height);\n content: \"\";\n background-color: var(--control-bg);\n border-radius: var(--btn-input-border-radius);\n }\n .form-floating > textarea:disabled ~ label::after {\n background-color: var(--control-disabled-bg);\n }\n .form-floating > .form-control-plaintext ~ label {\n border-width: var(--control-border-width) 0;\n }\n .form-floating > :disabled ~ label,\n .form-floating > .form-control:disabled ~ label {\n color: var(--form-floating-label-disabled-color);\n }\n}\n@layer components {\n .input-group {\n --input-group-addon-padding-y: var(--btn-input-padding-y);\n --input-group-addon-padding-x: var(--btn-input-padding-x);\n --input-group-addon-font-size: var(--btn-input-font-size);\n --input-group-addon-line-height: var(--btn-input-line-height);\n --input-group-addon-color: var(--fg-body);\n --input-group-addon-bg: var(--bg-2);\n --input-group-addon-border-color: var(--border-color);\n position: relative;\n display: flex;\n align-items: stretch;\n width: 100%;\n }\n .input-group > .form-control,\n .input-group > .form-floating {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n }\n .input-group > .form-control:focus,\n .input-group > .form-floating:focus-within {\n z-index: 5;\n }\n .input-group > .input-group-btn {\n position: relative;\n z-index: 2;\n }\n .input-group > .input-group-btn:focus {\n z-index: 5;\n }\n .input-group-text {\n display: flex;\n align-items: center;\n padding: var(--input-group-addon-padding-y) var(--input-group-addon-padding-x);\n font-size: var(--input-group-addon-font-size);\n line-height: var(--input-group-addon-line-height);\n color: var(--input-group-addon-color);\n text-align: center;\n white-space: nowrap;\n background-color: var(--input-group-addon-bg);\n border: var(--border-width) solid var(--input-group-addon-border-color);\n border-radius: var(--btn-input-border-radius);\n }\n .input-group-sm > .form-control,\n .input-group-sm > .input-group-text,\n .input-group-sm > .btn {\n min-height: var(--btn-input-sm-min-height);\n padding: var(--btn-input-sm-padding-y) var(--btn-input-sm-padding-x);\n font-size: var(--btn-input-sm-font-size);\n border-radius: var(--btn-input-sm-border-radius);\n }\n .input-group-lg > .form-control,\n .input-group-lg > .input-group-text,\n .input-group-lg > .btn {\n min-height: var(--btn-input-lg-min-height);\n padding: var(--btn-input-lg-padding-y) var(--btn-input-lg-padding-x);\n font-size: var(--btn-input-lg-font-size);\n border-radius: var(--btn-input-lg-border-radius);\n }\n .input-group > :not(:last-child, .menu-toggle-split, .menu, .input-group-ignore, .form-floating, :has(+ :is(.menu, .input-group-ignore):last-child)),\n .input-group > .menu-toggle-split:nth-last-child(n+3),\n .input-group > .form-floating:not(:last-child) > .form-control,\n .input-group > .form-floating:not(:last-child) > .form-select {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .input-group > :not(:first-child, .menu, .input-group-ignore) {\n margin-inline-start: calc(-1 * var(--border-width));\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .input-group > :first-child:is(.input-group-ignore) + :not(.menu, .input-group-ignore) {\n border-start-start-radius: var(--btn-input-border-radius);\n border-end-start-radius: var(--btn-input-border-radius);\n }\n .input-group > .form-floating:not(:first-child) > .form-control,\n .input-group > .form-floating:not(:first-child) > .form-select {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n}\n@layer forms {\n .strength {\n --strength-height: 0.375rem;\n --strength-gap: 0.25rem;\n --strength-margin-top: 0.25rem;\n --strength-border-radius: var(--radius-pill);\n --strength-bg: var(--bg-2);\n --strength-color: var(--bg-2);\n --strength-weak-color: var(--danger-bg);\n --strength-fair-color: var(--warning-bg);\n --strength-good-color: var(--info-bg);\n --strength-strong-color: var(--success-bg);\n display: flex;\n gap: var(--strength-gap);\n width: 100%;\n margin-top: var(--strength-margin-top);\n }\n .strength-segment {\n flex: 1;\n height: var(--strength-height);\n background-color: var(--strength-bg);\n border-radius: var(--strength-border-radius);\n transition: background-color 0.2s ease-in-out, width 0.3s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .strength-segment {\n transition: none;\n }\n }\n .strength-segment.active {\n background-color: var(--strength-color);\n }\n .strength[data-bs-strength=weak] {\n --strength-color: var(--strength-weak-color);\n }\n .strength[data-bs-strength=fair] {\n --strength-color: var(--strength-fair-color);\n }\n .strength[data-bs-strength=good] {\n --strength-color: var(--strength-good-color);\n }\n .strength[data-bs-strength=strong] {\n --strength-color: var(--strength-strong-color);\n }\n .strength-text {\n display: block;\n margin-top: var(--strength-margin-top);\n font-size: var(--font-size-xs);\n color: var(--strength-color, var(--fg-3));\n transition: color 0.2s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .strength-text {\n transition: none;\n }\n }\n .strength-text:empty {\n display: none;\n }\n .strength-bar {\n --strength-height: 0.375rem;\n --strength-gap: 0.25rem;\n --strength-margin-top: 0.25rem;\n --strength-border-radius: var(--radius-pill);\n --strength-bg: var(--bg-2);\n --strength-color: var(--bg-2);\n --strength-weak-color: var(--danger-bg);\n --strength-fair-color: var(--warning-bg);\n --strength-good-color: var(--info-bg);\n --strength-strong-color: var(--success-bg);\n --strength-color: transparent;\n --strength-width: 0%;\n width: 100%;\n height: var(--strength-height);\n margin-top: var(--strength-margin-top);\n overflow: hidden;\n background-color: var(--strength-bg);\n border-radius: var(--strength-border-radius);\n }\n .strength-bar::after {\n display: block;\n width: var(--strength-width);\n height: 100%;\n content: \"\";\n background-color: var(--strength-color);\n border-radius: var(--strength-border-radius);\n transition: background-color 0.2s ease-in-out, width 0.3s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .strength-bar::after {\n transition: none;\n }\n }\n .strength-bar[data-bs-strength=weak] {\n --strength-color: var(--strength-weak-color);\n --strength-width: 25%;\n }\n .strength-bar[data-bs-strength=fair] {\n --strength-color: var(--strength-fair-color);\n --strength-width: 50%;\n }\n .strength-bar[data-bs-strength=good] {\n --strength-color: var(--strength-good-color);\n --strength-width: 75%;\n }\n .strength-bar[data-bs-strength=strong] {\n --strength-color: var(--strength-strong-color);\n --strength-width: 100%;\n }\n}\n@layer components {\n .otp {\n --otp-size: var(--btn-input-lg-min-height);\n --otp-font-size: var(--btn-input-font-size);\n --otp-gap: 0.5rem;\n --otp-slot-fg: var(--btn-input-fg);\n --otp-slot-bg: var(--btn-input-bg);\n --otp-slot-border-width: var(--border-width);\n --otp-slot-border-color: var(--border-color);\n --otp-slot-border-radius: var(--radius-5);\n position: relative;\n display: flex;\n }\n .otp-rendered .otp-input {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n color: transparent;\n text-align: center;\n cursor: default;\n caret-color: transparent;\n background-color: transparent;\n border: 0;\n outline: 0;\n box-shadow: none;\n }\n .otp-rendered .otp-input::selection {\n color: transparent;\n background-color: transparent;\n }\n .otp-slots {\n display: inline-flex;\n gap: var(--otp-gap);\n pointer-events: none;\n }\n .otp-slot {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--otp-size);\n min-height: var(--otp-size);\n font-size: var(--otp-font-size);\n font-weight: 500;\n line-height: 1;\n color: var(--otp-slot-fg);\n background-color: var(--otp-slot-bg);\n border: var(--otp-slot-border-width) solid var(--otp-slot-border-color);\n border-radius: var(--otp-slot-border-radius);\n box-shadow: var(--box-shadow-inset);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .otp-slot {\n transition: none;\n }\n }\n .otp-slot-active {\n --focus-ring-offset: -1px;\n z-index: 1;\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .otp-slot-active:not(.otp-slot-filled)::after {\n width: 1px;\n height: 50%;\n content: \"\";\n background-color: var(--otp-slot-fg);\n animation: otp-caret-blink 1s step-end infinite;\n }\n .otp-input:disabled ~ .otp-slots .otp-slot {\n background-color: var(--bg-2);\n }\n .otp-connected .otp-slots {\n gap: 0;\n }\n .otp-connected .otp-slot {\n border-radius: 0;\n }\n .otp-connected .otp-slot:not(:first-child) {\n margin-inline-start: calc(var(--otp-slot-border-width) * -1);\n }\n .otp-connected .otp-slot:first-child {\n border-start-start-radius: var(--otp-slot-border-radius);\n border-end-start-radius: var(--otp-slot-border-radius);\n }\n .otp-connected .otp-slot:last-child {\n border-start-end-radius: var(--otp-slot-border-radius);\n border-end-end-radius: var(--otp-slot-border-radius);\n }\n .otp-separator {\n display: flex;\n align-items: center;\n padding-inline: var(--otp-gap);\n font-size: var(--otp-font-size);\n color: var(--fg-4);\n user-select: none;\n }\n .otp-sm {\n --otp-size: var(--btn-input-sm-min-height);\n --otp-font-size: var(--btn-input-sm-font-size);\n }\n .otp-lg {\n --otp-size: var(--btn-input-lg-min-height);\n --otp-font-size: var(--btn-input-lg-font-size);\n }\n}\n@keyframes otp-caret-blink {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0;\n }\n}\n@layer forms {\n .form-adorn {\n --form-adorn-gap: 0.375rem;\n --form-adorn-icon-size: 1rem;\n --form-adorn-icon-color: var(--fg-2);\n gap: var(--form-adorn-gap);\n align-items: center;\n }\n .form-adorn:focus-visible {\n outline: 0;\n }\n .form-adorn:focus-within {\n --focus-ring-offset: -1px;\n border-color: var(--focus-ring-color);\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-adorn > .form-ghost {\n flex: 1;\n min-width: 0;\n }\n .form-adorn.form-adorn-end > .form-ghost {\n order: -1;\n }\n .form-adorn-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n color: var(--form-adorn-icon-color);\n pointer-events: none;\n }\n .form-adorn-icon > svg {\n width: var(--form-adorn-icon-size);\n height: var(--form-adorn-icon-size);\n }\n .form-adorn-text {\n flex-shrink: 0;\n color: var(--form-adorn-icon-color);\n pointer-events: none;\n user-select: none;\n }\n}\n@layer forms {\n .chip-input {\n --chip-input-padding-y: 0.75rem;\n --chip-input-padding-x: 0.75rem;\n --chip-input-gap: 0.375rem;\n --chip-input-ghost-min-width: 5rem;\n --control-fg: var(--btn-input-fg);\n --control-bg: var(--btn-input-bg);\n --control-border-width: var(--border-width);\n --control-border-color: var(--border-color);\n --control-border-radius: var(--radius-5);\n display: flex;\n flex-wrap: wrap;\n gap: var(--chip-input-gap);\n align-items: center;\n padding: var(--chip-input-padding-y) var(--chip-input-padding-x);\n color: var(--control-fg);\n background-color: var(--control-bg);\n border: var(--control-border-width) solid var(--control-border-color);\n border-radius: var(--control-border-radius);\n }\n .chip-input:focus-within {\n --focus-ring-offset: -1px;\n border-color: var(--focus-ring-color);\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .chip-input > .form-ghost {\n flex: 1 1 0;\n min-width: var(--chip-input-ghost-min-width);\n min-height: 1.75rem;\n }\n .chip-input.disabled, .chip-input:has(.form-ghost:disabled) {\n cursor: not-allowed;\n background-color: var(--bg-2);\n opacity: 1;\n }\n .chip-input.disabled:focus-within, .chip-input:has(.form-ghost:disabled):focus-within {\n border-color: var(--control-border-color);\n outline: 0;\n }\n .chip-input.disabled > .chip, .chip-input:has(.form-ghost:disabled) > .chip {\n pointer-events: none;\n opacity: var(--control-disabled-opacity);\n }\n}\n@layer components {\n .combobox-toggle {\n display: inline-flex;\n gap: 0.5rem;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding-inline-end: var(--control-padding-x);\n text-align: start;\n cursor: pointer;\n }\n .combobox-toggle.show {\n background-color: var(--bg-1);\n }\n .combobox-toggle:disabled, .combobox-toggle.disabled {\n cursor: not-allowed;\n opacity: 0.65;\n }\n .combobox-value {\n display: flex;\n flex: 1;\n gap: 0.5rem;\n align-items: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .combobox-placeholder {\n color: color-mix(in oklch, currentcolor 65%, transparent);\n }\n .combobox-caret {\n flex-shrink: 0;\n transition: transform 0.2s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .combobox-caret {\n transition: none;\n }\n }\n .show > .combobox-caret {\n transform: rotate(180deg);\n }\n .combobox-toggle + .menu {\n --menu-max-height: 300px;\n --menu-overflow-y: auto;\n }\n .combobox-search {\n position: sticky;\n top: 0;\n z-index: 1;\n padding: var(--menu-padding-x, 0.25rem);\n background-color: var(--menu-bg, var(--bg-body));\n }\n .combobox-search-input {\n width: 100%;\n }\n .combobox-no-results {\n padding: 1rem;\n font-size: var(--font-size-sm);\n color: var(--fg-3);\n text-align: center;\n }\n}\n@layer forms {\n .form-field {\n position: relative;\n display: grid;\n gap: 0.5rem;\n }\n .form-field > label,\n .form-field > .form-label {\n justify-self: start;\n margin-bottom: 0;\n }\n .form-field:has(> .check, > .radio, > .switch) {\n grid-template-columns: auto 1fr;\n column-gap: 0.5rem;\n align-items: start;\n }\n .form-field:has(> .check, > .radio, > .switch) > .check,\n .form-field:has(> .check, > .radio, > .switch) > .radio,\n .form-field:has(> .check, > .radio, > .switch) > .switch {\n grid-column: 1;\n }\n .form-field:has(> .check, > .radio, > .switch) > :not(.check, .radio, .switch) {\n grid-column: 2;\n }\n .form-field:has(> .check, > .radio, > .switch) > .form-label {\n grid-column: 1/-1;\n }\n .form-field-content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n .form-field-card {\n position: relative;\n padding: calc(var(--spacer) * 0.75);\n cursor: pointer;\n border: var(--border-width) solid transparent;\n border-radius: var(--radius-7);\n }\n .form-field-card:hover {\n background-color: var(--bg-1);\n }\n .form-field-card:has(:checked) {\n background-color: var(--bg-1);\n border-color: var(--border-color);\n }\n .form-field-card label::before {\n position: absolute;\n inset: 0;\n content: \"\";\n }\n .form-group {\n display: grid;\n gap: 0.5rem;\n }\n .form-group > label,\n .form-group > .form-label,\n .form-group > legend {\n justify-self: start;\n margin-bottom: 0;\n }\n}\n@layer components {\n .valid-feedback {\n display: none;\n width: 100%;\n font-size: var(--font-size-sm);\n color: var(--success-fg);\n }\n .tooltip.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n margin-top: 0.1rem;\n color: var(--success-contrast);\n text-align: center;\n background-color: var(--success-bg);\n opacity: 1;\n border-radius: var(--tooltip-border-radius);\n }\n .is-valid ~ .valid-feedback,\n .is-valid ~ .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] :user-valid ~ .valid-feedback,\n [data-bs-validate~=valid] :user-valid ~ .valid-tooltip {\n display: block;\n }\n .form-control.is-valid {\n --control-border-color: var(--success-border);\n }\n .form-control.is-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .form-control:user-valid {\n --control-border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .form-control:user-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--success-border);\n }\n .check.is-valid {\n --check-border-color: var(--success-border);\n --check-checked-bg: var(--success-bg);\n --check-checked-border-color: var(--success-bg);\n }\n .check.is-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .check:user-valid {\n --check-border-color: var(--success-border);\n --check-checked-bg: var(--success-bg);\n --check-checked-border-color: var(--success-bg);\n }\n [data-bs-validate~=valid] .check:user-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.check.is-valid) label {\n color: var(--success-fg);\n }\n .form-field:has(.check.is-valid) .valid-feedback,\n .form-field:has(.check.is-valid) .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-field:has(.check:user-valid) label {\n color: var(--success-fg);\n }\n [data-bs-validate~=valid] .form-field:has(.check:user-valid) .valid-feedback,\n [data-bs-validate~=valid] .form-field:has(.check:user-valid) .valid-tooltip {\n display: block;\n }\n .radio.is-valid {\n --radio-border-color: var(--success-border);\n --radio-checked-bg: var(--success-bg);\n --radio-checked-border-color: var(--success-bg);\n }\n .radio.is-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .radio:user-valid {\n --radio-border-color: var(--success-border);\n --radio-checked-bg: var(--success-bg);\n --radio-checked-border-color: var(--success-bg);\n }\n [data-bs-validate~=valid] .radio:user-valid:focus-visible {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.radio.is-valid) label {\n color: var(--success-fg);\n }\n .form-field:has(.radio.is-valid) .valid-feedback,\n .form-field:has(.radio.is-valid) .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-field:has(.radio:user-valid) label {\n color: var(--success-fg);\n }\n [data-bs-validate~=valid] .form-field:has(.radio:user-valid) .valid-feedback,\n [data-bs-validate~=valid] .form-field:has(.radio:user-valid) .valid-tooltip {\n display: block;\n }\n .switch:has(input.is-valid) {\n --switch-border-color: var(--success-border);\n --switch-checked-bg: var(--success-bg);\n --switch-checked-border-color: var(--success-bg);\n }\n .switch:has(input.is-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .switch:has(input:user-valid) {\n --switch-border-color: var(--success-border);\n --switch-checked-bg: var(--success-bg);\n --switch-checked-border-color: var(--success-bg);\n }\n [data-bs-validate~=valid] .switch:has(input:user-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.switch input.is-valid) label {\n color: var(--success-fg);\n }\n .form-field:has(.switch input.is-valid) .valid-feedback,\n .form-field:has(.switch input.is-valid) .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-field:has(.switch input:user-valid) label {\n color: var(--success-fg);\n }\n [data-bs-validate~=valid] .form-field:has(.switch input:user-valid) .valid-feedback,\n [data-bs-validate~=valid] .form-field:has(.switch input:user-valid) .valid-tooltip {\n display: block;\n }\n .chip-input:has(.form-ghost.is-valid) {\n border-color: var(--success-border);\n }\n .chip-input:has(.form-ghost.is-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--success-border);\n }\n .chip-input:has(.form-ghost.is-valid) ~ .valid-feedback,\n .chip-input:has(.form-ghost.is-valid) ~ .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid) {\n border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid) ~ .valid-feedback,\n [data-bs-validate~=valid] .chip-input:has(.form-ghost:user-valid) ~ .valid-tooltip {\n display: block;\n }\n .form-adorn:has(.form-ghost.is-valid) {\n border-color: var(--success-border);\n }\n .form-adorn:has(.form-ghost.is-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--success-border);\n }\n .form-adorn:has(.form-ghost.is-valid) ~ .valid-feedback,\n .form-adorn:has(.form-ghost.is-valid) ~ .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid) {\n border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid):focus-within {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid) ~ .valid-feedback,\n [data-bs-validate~=valid] .form-adorn:has(.form-ghost:user-valid) ~ .valid-tooltip {\n display: block;\n }\n .form-range.is-valid::-webkit-slider-thumb {\n background: var(--success-bg);\n }\n .form-range.is-valid::-moz-range-thumb {\n background: var(--success-bg);\n }\n .form-range.is-valid:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-range.is-valid:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-range.is-valid ~ .valid-feedback,\n .form-range.is-valid ~ .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-range:user-valid::-webkit-slider-thumb {\n background: var(--success-bg);\n }\n [data-bs-validate~=valid] .form-range:user-valid::-moz-range-thumb {\n background: var(--success-bg);\n }\n [data-bs-validate~=valid] .form-range:user-valid:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .form-range:user-valid:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .form-range:user-valid ~ .valid-feedback,\n [data-bs-validate~=valid] .form-range:user-valid ~ .valid-tooltip {\n display: block;\n }\n .form-field:has(.input-group .form-control.is-valid) .valid-feedback,\n .form-field:has(.input-group .form-control.is-valid) .valid-tooltip {\n display: block;\n }\n [data-bs-validate~=valid] .form-field:has(.input-group .form-control:user-valid) .valid-feedback,\n [data-bs-validate~=valid] .form-field:has(.input-group .form-control:user-valid) .valid-tooltip {\n display: block;\n }\n .input-group > .form-control:not(:focus).is-valid,\n .input-group > .form-floating:not(:focus-within).is-valid {\n z-index: 3;\n }\n [data-bs-validate~=valid] .input-group > .form-control:not(:focus), .input-group > .form-floating:not(:focus-within):user-valid {\n z-index: 3;\n }\n .otp.is-valid .otp-slot {\n --otp-slot-border-color: var(--success-border);\n }\n .otp.is-valid .otp-slot-active {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate~=valid] .otp:user-valid .otp-slot {\n --otp-slot-border-color: var(--success-border);\n }\n [data-bs-validate~=valid] .otp:user-valid .otp-slot-active {\n outline: var(--focus-ring-width) solid var(--success-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .invalid-feedback {\n display: none;\n width: 100%;\n font-size: var(--font-size-sm);\n color: var(--danger-fg);\n }\n .tooltip.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n margin-top: 0.1rem;\n color: var(--danger-contrast);\n text-align: center;\n background-color: var(--danger-bg);\n opacity: 1;\n border-radius: var(--tooltip-border-radius);\n }\n .is-invalid ~ .invalid-feedback,\n .is-invalid ~ .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] :user-invalid ~ .invalid-feedback,\n [data-bs-validate] :user-invalid ~ .invalid-tooltip {\n display: block;\n }\n .form-control.is-invalid {\n --control-border-color: var(--danger-border);\n }\n .form-control.is-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--danger-border);\n }\n [data-bs-validate] .form-control:user-invalid {\n --control-border-color: var(--danger-border);\n }\n [data-bs-validate] .form-control:user-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n --control-border-color: var(--danger-border);\n }\n .check.is-invalid {\n --check-border-color: var(--danger-border);\n --check-checked-bg: var(--danger-bg);\n --check-checked-border-color: var(--danger-bg);\n }\n .check.is-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .check:user-invalid {\n --check-border-color: var(--danger-border);\n --check-checked-bg: var(--danger-bg);\n --check-checked-border-color: var(--danger-bg);\n }\n [data-bs-validate] .check:user-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.check.is-invalid) label {\n color: var(--danger-fg);\n }\n .form-field:has(.check.is-invalid) .invalid-feedback,\n .form-field:has(.check.is-invalid) .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-field:has(.check:user-invalid) label {\n color: var(--danger-fg);\n }\n [data-bs-validate] .form-field:has(.check:user-invalid) .invalid-feedback,\n [data-bs-validate] .form-field:has(.check:user-invalid) .invalid-tooltip {\n display: block;\n }\n .radio.is-invalid {\n --radio-border-color: var(--danger-border);\n --radio-checked-bg: var(--danger-bg);\n --radio-checked-border-color: var(--danger-bg);\n }\n .radio.is-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .radio:user-invalid {\n --radio-border-color: var(--danger-border);\n --radio-checked-bg: var(--danger-bg);\n --radio-checked-border-color: var(--danger-bg);\n }\n [data-bs-validate] .radio:user-invalid:focus-visible {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.radio.is-invalid) label {\n color: var(--danger-fg);\n }\n .form-field:has(.radio.is-invalid) .invalid-feedback,\n .form-field:has(.radio.is-invalid) .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-field:has(.radio:user-invalid) label {\n color: var(--danger-fg);\n }\n [data-bs-validate] .form-field:has(.radio:user-invalid) .invalid-feedback,\n [data-bs-validate] .form-field:has(.radio:user-invalid) .invalid-tooltip {\n display: block;\n }\n .switch:has(input.is-invalid) {\n --switch-border-color: var(--danger-border);\n --switch-checked-bg: var(--danger-bg);\n --switch-checked-border-color: var(--danger-bg);\n }\n .switch:has(input.is-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .switch:has(input:user-invalid) {\n --switch-border-color: var(--danger-border);\n --switch-checked-bg: var(--danger-bg);\n --switch-checked-border-color: var(--danger-bg);\n }\n [data-bs-validate] .switch:has(input:user-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-field:has(.switch input.is-invalid) label {\n color: var(--danger-fg);\n }\n .form-field:has(.switch input.is-invalid) .invalid-feedback,\n .form-field:has(.switch input.is-invalid) .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-field:has(.switch input:user-invalid) label {\n color: var(--danger-fg);\n }\n [data-bs-validate] .form-field:has(.switch input:user-invalid) .invalid-feedback,\n [data-bs-validate] .form-field:has(.switch input:user-invalid) .invalid-tooltip {\n display: block;\n }\n .chip-input:has(.form-ghost.is-invalid) {\n border-color: var(--danger-border);\n }\n .chip-input:has(.form-ghost.is-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--danger-border);\n }\n .chip-input:has(.form-ghost.is-invalid) ~ .invalid-feedback,\n .chip-input:has(.form-ghost.is-invalid) ~ .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid) {\n border-color: var(--danger-border);\n }\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--danger-border);\n }\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid) ~ .invalid-feedback,\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid) ~ .invalid-tooltip {\n display: block;\n }\n .form-adorn:has(.form-ghost.is-invalid) {\n border-color: var(--danger-border);\n }\n .form-adorn:has(.form-ghost.is-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--danger-border);\n }\n .form-adorn:has(.form-ghost.is-invalid) ~ .invalid-feedback,\n .form-adorn:has(.form-ghost.is-invalid) ~ .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid) {\n border-color: var(--danger-border);\n }\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid):focus-within {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n border-color: var(--danger-border);\n }\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid) ~ .invalid-feedback,\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid) ~ .invalid-tooltip {\n display: block;\n }\n .form-range.is-invalid::-webkit-slider-thumb {\n background: var(--danger-bg);\n }\n .form-range.is-invalid::-moz-range-thumb {\n background: var(--danger-bg);\n }\n .form-range.is-invalid:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-range.is-invalid:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .form-range.is-invalid ~ .invalid-feedback,\n .form-range.is-invalid ~ .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-range:user-invalid::-webkit-slider-thumb {\n background: var(--danger-bg);\n }\n [data-bs-validate] .form-range:user-invalid::-moz-range-thumb {\n background: var(--danger-bg);\n }\n [data-bs-validate] .form-range:user-invalid:focus-visible::-webkit-slider-thumb {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .form-range:user-invalid:focus-visible::-moz-range-thumb {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .form-range:user-invalid ~ .invalid-feedback,\n [data-bs-validate] .form-range:user-invalid ~ .invalid-tooltip {\n display: block;\n }\n .form-field:has(.input-group .form-control.is-invalid) .invalid-feedback,\n .form-field:has(.input-group .form-control.is-invalid) .invalid-tooltip {\n display: block;\n }\n [data-bs-validate] .form-field:has(.input-group .form-control:user-invalid) .invalid-feedback,\n [data-bs-validate] .form-field:has(.input-group .form-control:user-invalid) .invalid-tooltip {\n display: block;\n }\n .input-group > .form-control:not(:focus).is-invalid,\n .input-group > .form-floating:not(:focus-within).is-invalid {\n z-index: 4;\n }\n [data-bs-validate] .input-group > .form-control:not(:focus), .input-group > .form-floating:not(:focus-within):user-invalid {\n z-index: 4;\n }\n .otp.is-invalid .otp-slot {\n --otp-slot-border-color: var(--danger-border);\n }\n .otp.is-invalid .otp-slot-active {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n [data-bs-validate] .otp:user-invalid .otp-slot {\n --otp-slot-border-color: var(--danger-border);\n }\n [data-bs-validate] .otp:user-invalid .otp-slot-active {\n outline: var(--focus-ring-width) solid var(--danger-focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n}\n@layer components {\n .btn, .btn-link, .btn-icon, .btn-solid, .btn-outline, .btn-subtle, .btn-text {\n --btn-min-height: var(--btn-input-min-height);\n --btn-padding-x: var(--btn-input-padding-x);\n --btn-padding-y: var(--btn-input-padding-y);\n --btn-font-size: var(--btn-input-font-size);\n --btn-font-weight: var(--btn-input-font-weight);\n --btn-line-height: var(--btn-input-line-height);\n --btn-color: var(--fg-body);\n --btn-white-space: nowrap;\n --btn-border-width: var(--border-width);\n --btn-border-color: transparent;\n --btn-border-radius: var(--radius-5);\n --btn-hover-border-color: transparent;\n --btn-disabled-opacity: 0.65;\n --btn-transition-timing: 0.15s ease-in-out;\n --btn-transition-property: color, background-color, border-color, box-shadow;\n --btn-transition: var(--btn-transition-property) var(--btn-transition-timing);\n display: inline-flex;\n gap: var(--btn-gap, 0.25rem);\n align-items: center;\n justify-content: center;\n min-height: var(--btn-min-height);\n padding: var(--btn-padding-y) var(--btn-padding-x);\n font-size: var(--btn-font-size);\n font-weight: var(--btn-font-weight);\n line-height: var(--btn-line-height);\n color: var(--btn-color);\n text-decoration: none;\n white-space: var(--btn-white-space);\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n background-color: var(--btn-bg, var(--bg-2));\n border: var(--btn-border-width) solid var(--btn-border-color);\n border-radius: var(--btn-border-radius);\n transition: var(--btn-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .btn, .btn-link, .btn-icon, .btn-solid, .btn-outline, .btn-subtle, .btn-text {\n transition: none;\n }\n }\n .btn:hover, .btn-link:hover, .btn-icon:hover, .btn-solid:hover, .btn-outline:hover, .btn-subtle:hover, .btn-text:hover {\n color: var(--btn-hover-color);\n background-color: var(--btn-hover-bg, var(--bg-3));\n border-color: var(--btn-hover-border-color);\n }\n .btn:focus-visible, .btn-link:focus-visible, .btn-icon:focus-visible, .btn-solid:focus-visible, .btn-outline:focus-visible, .btn-subtle:focus-visible, .btn-text:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: 1px;\n }\n .btn.active, .btn.show, .btn-link.active, .btn-link.show, .btn-icon.active, .btn-icon.show, .btn-solid.active, .btn-solid.show, .btn-outline.active, .btn-outline.show, .btn-subtle.active, .btn-subtle.show, .btn-text.active, .btn-text.show {\n color: var(--btn-active-color);\n background-color: var(--btn-active-bg, var(--bg-3));\n border-color: var(--btn-active-border-color);\n }\n .btn.active:focus-visible, .btn.show:focus-visible, .btn-link.active:focus-visible, .btn-link.show:focus-visible, .btn-icon.active:focus-visible, .btn-icon.show:focus-visible, .btn-solid.active:focus-visible, .btn-solid.show:focus-visible, .btn-outline.active:focus-visible, .btn-outline.show:focus-visible, .btn-subtle.active:focus-visible, .btn-subtle.show:focus-visible, .btn-text.active:focus-visible, .btn-text.show:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .btn:disabled, .btn.disabled, fieldset:disabled .btn, .btn-link:disabled, .btn-link.disabled, fieldset:disabled .btn-link, .btn-icon:disabled, .btn-icon.disabled, fieldset:disabled .btn-icon, .btn-solid:disabled, .btn-solid.disabled, fieldset:disabled .btn-solid, .btn-outline:disabled, .btn-outline.disabled, fieldset:disabled .btn-outline, .btn-subtle:disabled, .btn-subtle.disabled, fieldset:disabled .btn-subtle, .btn-text:disabled, .btn-text.disabled, fieldset:disabled .btn-text {\n color: var(--btn-disabled-color);\n pointer-events: none;\n background-color: var(--btn-disabled-bg, var(--bg-1));\n background-image: none;\n border-color: var(--btn-disabled-border-color);\n opacity: var(--btn-disabled-opacity);\n }\n .btn-solid {\n --btn-bg: var(--theme-bg);\n --btn-color: var(--theme-contrast);\n --btn-border-color: var(--theme-bg);\n --btn-active-bg: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-border-color: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-color: oklch(from var(--theme-contrast) calc(l * .9) calc(c * 1.15) h);\n --btn-disabled-bg: var(--theme-bg);\n --btn-disabled-color: var(--theme-contrast);\n --btn-disabled-border-color: var(--theme-bg);\n }\n .btn-solid:hover {\n --btn-hover-bg: oklch(from var(--theme-bg) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-border-color: oklch(from var(--theme-bg) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-color: oklch(from var(--theme-contrast) calc(l * .95) calc(c * 1.1) h);\n }\n .btn-solid:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n .btn-solid:active, .btn-solid.active, .btn-solid.btn-check:has(input:checked) {\n --btn-active-bg: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-border-color: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-color: oklch(from var(--theme-contrast) calc(l * .9) calc(c * 1.15) h);\n }\n .btn-solid:disabled, .btn-solid.disabled, .btn-solid.btn-check:has(input:disabled) {\n --btn-disabled-bg: var(--theme-bg);\n --btn-disabled-color: var(--theme-contrast);\n --btn-disabled-border-color: var(--theme-bg);\n }\n .btn-outline {\n --btn-bg: transparent;\n --btn-color: var(--theme-fg);\n --btn-border-color: var(--theme-border);\n --btn-active-bg: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-color: oklch(from var(--theme-contrast) calc(l * .9) calc(c * 1.15) h);\n --btn-active-border-color: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-disabled-bg: transparent;\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-border-color: var(--theme-border);\n }\n .btn-outline:hover {\n --btn-hover-bg: oklch(from var(--theme-bg) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-color: oklch(from var(--theme-contrast) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-border-color: oklch(from var(--theme-bg) calc(l * .95) calc(c * 1.1) h);\n }\n .btn-outline:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n .btn-outline:active, .btn-outline.active, .btn-outline.btn-check:has(input:checked) {\n --btn-active-bg: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-color: oklch(from var(--theme-contrast) calc(l * .9) calc(c * 1.15) h);\n --btn-active-border-color: oklch(from var(--theme-bg) calc(l * .9) calc(c * 1.15) h);\n }\n .btn-outline:disabled, .btn-outline.disabled, .btn-outline.btn-check:has(input:disabled) {\n --btn-disabled-bg: transparent;\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-border-color: var(--theme-border);\n }\n .btn-subtle {\n --btn-bg: var(--theme-bg-subtle);\n --btn-color: var(--theme-fg);\n --btn-border-color: transparent;\n --btn-active-bg: var(--theme-bg-subtle);\n --btn-active-color: oklch(from var(--theme-fg-emphasis) calc(l * .9) calc(c * 1.15) h);\n --btn-disabled-bg: var(--theme-bg-subtle);\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-border-color: transparent;\n }\n .btn-subtle:hover {\n --btn-hover-bg: color-mix(in oklch, var(--theme-bg-muted) 50%, var(--theme-bg-subtle));\n --btn-hover-color: oklch(from var(--theme-fg-emphasis) calc(l * .95) calc(c * 1.1) h);\n }\n .btn-subtle:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n .btn-subtle:active, .btn-subtle.active, .btn-subtle.btn-check:has(input:checked) {\n --btn-active-bg: var(--theme-bg-subtle);\n --btn-active-color: oklch(from var(--theme-fg-emphasis) calc(l * .9) calc(c * 1.15) h);\n }\n .btn-subtle:disabled, .btn-subtle.disabled, .btn-subtle.btn-check:has(input:disabled) {\n --btn-disabled-bg: var(--theme-bg-subtle);\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-border-color: transparent;\n }\n .btn-text {\n --btn-color: var(--theme-fg);\n --btn-bg: transparent;\n --btn-border-color: transparent;\n --btn-active-color: oklch(from var(--theme-fg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-bg: var(--theme-bg-subtle);\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-bg: transparent;\n --btn-disabled-border-color: transparent;\n }\n .btn-text:hover {\n --btn-hover-color: oklch(from var(--theme-fg) calc(l * .95) calc(c * 1.1) h);\n --btn-hover-bg: var(--theme-bg-subtle);\n }\n .btn-text:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n .btn-text:active, .btn-text.active, .btn-text.btn-check:has(input:checked) {\n --btn-active-color: oklch(from var(--theme-fg) calc(l * .9) calc(c * 1.15) h);\n --btn-active-bg: var(--theme-bg-subtle);\n }\n .btn-text:disabled, .btn-text.disabled, .btn-text.btn-check:has(input:disabled) {\n --btn-disabled-color: var(--theme-fg);\n --btn-disabled-bg: transparent;\n --btn-disabled-border-color: transparent;\n }\n .btn-link {\n --btn-font-weight: var(--font-weight-normal);\n --btn-color: var(--link-color);\n --btn-bg: transparent;\n --btn-border-color: transparent;\n --btn-hover-color: var(--link-hover-color);\n --btn-hover-bg: transparent;\n --btn-hover-border-color: transparent;\n --btn-active-color: var(--link-hover-color);\n --btn-active-bg: transparent;\n --btn-active-border-color: transparent;\n --btn-disabled-color: var(--fg-3);\n --btn-disabled-border-color: transparent;\n color: var(--theme-fg, var(--btn-color));\n text-decoration: var(--link-decoration);\n background-image: none;\n }\n .btn-link:focus-visible {\n color: var(--theme-fg, var(--btn-color));\n }\n .btn-link:hover {\n color: var(--theme-fg-emphasis, var(--btn-hover-color));\n }\n .btn-xs,\n .btn-group-xs > [class*=btn-] {\n --btn-min-height: var(--btn-input-xs-min-height);\n --btn-padding-y: var(--btn-input-xs-padding-y);\n --btn-padding-x: var(--btn-input-xs-padding-x);\n --btn-font-size: var(--btn-input-xs-font-size);\n --btn-line-height: var(--btn-input-xs-line-height);\n --btn-border-radius: var(--btn-input-xs-border-radius);\n }\n .btn-sm,\n .btn-group-sm > [class*=btn-] {\n --btn-min-height: var(--btn-input-sm-min-height);\n --btn-padding-y: var(--btn-input-sm-padding-y);\n --btn-padding-x: var(--btn-input-sm-padding-x);\n --btn-font-size: var(--btn-input-sm-font-size);\n --btn-line-height: var(--btn-input-sm-line-height);\n --btn-border-radius: var(--btn-input-sm-border-radius);\n }\n .btn-lg,\n .btn-group-lg > [class*=btn-] {\n --btn-min-height: var(--btn-input-lg-min-height);\n --btn-padding-y: var(--btn-input-lg-padding-y);\n --btn-padding-x: var(--btn-input-lg-padding-x);\n --btn-font-size: var(--btn-input-lg-font-size);\n --btn-line-height: var(--btn-input-lg-line-height);\n --btn-border-radius: var(--btn-input-lg-border-radius);\n }\n .btn-icon {\n align-items: center;\n justify-content: center;\n aspect-ratio: 1;\n padding: 0;\n }\n .btn-check > input {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n .btn-check:has(input:checked) {\n color: var(--btn-active-color);\n background-color: var(--btn-active-bg, var(--bg-3));\n background-image: none;\n border-color: var(--btn-active-border-color);\n box-shadow: var(--btn-active-shadow);\n }\n .btn-check:has(input:focus-visible) {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n --focus-ring-offset: 1px;\n }\n .btn-check:has(input:disabled) {\n color: var(--btn-disabled-color);\n pointer-events: none;\n background-color: var(--btn-disabled-bg, var(--bg-1));\n background-image: none;\n border-color: var(--btn-disabled-border-color);\n opacity: var(--btn-disabled-opacity);\n box-shadow: none;\n }\n .btn-styled {\n --btn-gradient-start: rgba(255, 255, 255, 0.125);\n --btn-gradient-end: rgba(0, 0, 0, 0.075);\n --btn-border-mix-color: #000;\n --btn-border-mix-amount: 10%;\n --btn-border-hover-mix-amount: 12.5%;\n --btn-border-active-mix-amount: 20%;\n --btn-shadow: 0 1px 2px rgb(0 0 0 / 15%), inset 0 1px 0 rgb(255 255 255 / 10%);\n --btn-active-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n background-image: linear-gradient(to bottom, var(--btn-gradient-start), var(--btn-gradient-end));\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-mix-amount));\n box-shadow: var(--btn-shadow);\n }\n .btn-styled:hover {\n background-image: linear-gradient(to bottom, var(--btn-gradient-start), var(--btn-gradient-end));\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-hover-mix-amount));\n }\n .btn-styled:active, .btn-styled.active {\n background-image: none;\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-active-mix-amount));\n box-shadow: var(--btn-active-shadow);\n }\n .btn-styled:disabled, .btn-styled.disabled {\n background-image: none;\n box-shadow: none;\n }\n}\n@layer components {\n .btn-group,\n .btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n }\n .btn-group > [class*=btn-],\n .btn-group-vertical > [class*=btn-] {\n position: relative;\n flex: 1 1 auto;\n }\n .btn-group > [class*=btn-]:hover,\n .btn-group-vertical > [class*=btn-]:hover {\n z-index: 1;\n }\n .btn-group > .btn-check:has(input:checked),\n .btn-group > [class*=btn-]:active,\n .btn-group > [class*=btn-].active,\n .btn-group-vertical > .btn-check:has(input:checked),\n .btn-group-vertical > [class*=btn-]:active,\n .btn-group-vertical > [class*=btn-].active {\n z-index: 2;\n }\n .btn-group > .btn-check:has(input:focus),\n .btn-group > [class*=btn-]:focus,\n .btn-group-vertical > .btn-check:has(input:focus),\n .btn-group-vertical > [class*=btn-]:focus {\n z-index: 3;\n }\n .btn-group-divider > [class*=btn-] + [class*=btn-]::before {\n position: absolute;\n z-index: 3;\n content: \"\";\n background-color: var(--btn-color);\n opacity: 0.25;\n }\n .btn-group:where(.btn-group-divider) > [class*=btn-] + [class*=btn-]::before {\n top: 25%;\n bottom: 25%;\n left: calc(var(--btn-border-width) * -1);\n width: var(--btn-border-width);\n }\n .btn-group-vertical:where(.btn-group-divider) > [class*=btn-] + [class*=btn-]::before {\n top: calc(var(--btn-border-width) * -1);\n right: var(--btn-padding-x);\n left: var(--btn-padding-x);\n height: var(--btn-border-width);\n }\n .btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n justify-content: flex-start;\n }\n .btn-toolbar .input-group {\n width: auto;\n }\n .btn-group {\n border-radius: var(--btn-border-radius);\n }\n .btn-group > [class*=btn-]:not(:first-child),\n .btn-group > .btn-group:not(:first-child) {\n margin-inline-start: calc(-1 * var(--btn-border-width));\n }\n .btn-group > [class*=btn-]:not(:last-child, :has(+ .menu)),\n .btn-group > .btn-group:not(:last-child) > [class*=btn-] {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .btn-group > [class*=btn-]:not(:first-child),\n .btn-group > .btn-group:not(:first-child) > [class*=btn-] {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n }\n .btn-group-vertical > [class*=btn-],\n .btn-group-vertical > .btn-group {\n width: 100%;\n }\n .btn-group-vertical > [class*=btn-]:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: calc(-1 * var(--btn-border-width));\n }\n .btn-group-vertical > [class*=btn-]:not(:last-child, :has(+ .menu)),\n .btn-group-vertical > .btn-group:not(:last-child) > [class*=btn-] {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .btn-group-vertical > [class*=btn-]:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) > [class*=btn-] {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n}\n@layer components {\n .btn-close {\n --btn-close-size: 1.5rem;\n --btn-close-color: inherit;\n --btn-close-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath d='M12 0a4 4 0 0 1 4 4v8a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4zm-.646 4.646a.5.5 0 0 0-.707 0L8 7.293 5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.647a.5.5 0 1 0 .708.707L8 8.707l2.647 2.646a.5.5 0 1 0 .707-.707L8.707 8l2.646-2.646a.5.5 0 0 0 0-.708z'/%3e%3c/svg%3e\");\n --btn-close-opacity: 0.5;\n --btn-close-hover-opacity: 0.75;\n --btn-close-focus-opacity: 0.85;\n --btn-close-disabled-opacity: 0.25;\n box-sizing: content-box;\n width: var(--btn-close-size);\n height: var(--btn-close-size);\n padding: 0;\n color: var(--btn-close-color);\n background-color: currentcolor;\n border: 0;\n border-radius: var(--radius-5);\n opacity: var(--btn-close-opacity);\n mask-image: var(--btn-close-icon);\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: contain;\n }\n .btn-close:hover {\n color: var(--btn-close-color);\n text-decoration: none;\n opacity: var(--btn-close-hover-opacity);\n }\n .btn-close:focus-visible {\n opacity: var(--btn-close-focus-opacity);\n outline: var(--focus-ring);\n }\n .btn-close:disabled, .btn-close.disabled {\n pointer-events: none;\n user-select: none;\n opacity: var(--btn-close-disabled-opacity);\n }\n}\n@layer components {\n .accordion {\n --accordion-padding-x: 1.25rem;\n --accordion-padding-y: 1rem;\n --accordion-color: var(--fg-body);\n --accordion-bg: var(--bg-body);\n --accordion-transition-property: color, background-color, border-radius;\n --accordion-transition-timing: .15s ease-in-out;\n --accordion-transition: var(--accordion-transition-property) var(--accordion-timing);\n --accordion-border-color: var(--border-color);\n --accordion-border-width: var(--border-width);\n --accordion-border-radius: var(--accordion-radius, var(--radius-7));\n --accordion-btn-color: var(--fg-2);\n --accordion-btn-bg: var(--bg-body);\n --accordion-btn-icon-width: 1rem;\n --accordion-btn-icon-transform: rotate(-180deg);\n --accordion-btn-icon-transition: transform 0.2s ease-in-out;\n --accordion-active-color: var(--fg);\n --accordion-active-bg: var(--bg-2);\n }\n .accordion-header {\n display: flex;\n align-items: center;\n width: 100%;\n padding: var(--accordion-btn-padding-y, var(--accordion-padding-y)) var(--accordion-btn-padding-x, var(--accordion-padding-x));\n font-size: var(--accordion-font-size, var(--font-size-base));\n color: var(--accordion-btn-color);\n text-align: start;\n list-style: none;\n cursor: pointer;\n background-color: var(--accordion-btn-bg);\n transition: var(--accordion-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .accordion-header {\n transition: none;\n }\n }\n .accordion-header::-webkit-details-marker {\n display: none;\n }\n .accordion-header .accordion-icon {\n flex-shrink: 0;\n width: var(--accordion-btn-icon-width);\n height: var(--accordion-btn-icon-width);\n margin-inline-start: auto;\n color: currentcolor;\n transition: var(--accordion-btn-icon-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .accordion-header .accordion-icon {\n transition: none;\n }\n }\n .accordion-header:hover {\n z-index: 2;\n }\n .accordion-header:focus-visible {\n position: relative;\n z-index: 3;\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n outline-offset: -1px;\n }\n .accordion-item {\n color: var(--accordion-color);\n background-color: var(--accordion-bg);\n border: var(--accordion-border-width) solid var(--accordion-border-color);\n }\n @media (prefers-reduced-motion: no-preference) {\n .accordion-item {\n interpolate-size: allow-keywords;\n }\n }\n .accordion-item::details-content {\n block-size: 0;\n overflow-y: clip;\n transition: content-visibility 0.2s allow-discrete, block-size 0.2s;\n }\n @media (prefers-reduced-motion: reduce) {\n .accordion-item::details-content {\n transition: none;\n }\n }\n .accordion-item:first-of-type {\n border-start-start-radius: var(--accordion-border-radius);\n border-start-end-radius: var(--accordion-border-radius);\n }\n .accordion-item:first-of-type > .accordion-header {\n border-start-start-radius: calc(var(--accordion-border-radius) - var(--accordion-border-width));\n border-start-end-radius: calc(var(--accordion-border-radius) - var(--accordion-border-width));\n }\n .accordion-item:not(:first-of-type) {\n border-block-start: 0;\n }\n .accordion-item:last-of-type {\n border-end-start-radius: var(--accordion-border-radius);\n border-end-end-radius: var(--accordion-border-radius);\n }\n .accordion-item:last-of-type > .accordion-header {\n border-end-start-radius: calc(var(--accordion-border-radius) - var(--accordion-border-width));\n border-end-end-radius: calc(var(--accordion-border-radius) - var(--accordion-border-width));\n }\n .accordion-item:last-of-type > .accordion-body {\n border-end-start-radius: var(--accordion-border-radius);\n border-end-end-radius: var(--accordion-border-radius);\n }\n .accordion-item[open] {\n border-color: var(--theme-border, var(--accordion-border-color));\n }\n .accordion-item[open]::details-content {\n block-size: auto;\n }\n .accordion-item[open] > .accordion-header {\n color: var(--theme-fg, var(--accordion-active-color));\n background-color: var(--theme-bg-subtle, var(--accordion-active-bg));\n box-shadow: inset 0 calc(-1 * var(--accordion-border-width)) 0 var(--theme-border, var(--accordion-border-color));\n }\n .accordion-item[open] > .accordion-header .accordion-icon {\n transform: var(--accordion-btn-icon-transform);\n }\n .accordion-item[open]:last-of-type > .accordion-header {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .accordion-body {\n padding: var(--accordion-body-padding-y, var(--accordion-padding-y)) var(--accordion-body-padding-x, var(--accordion-padding-x));\n }\n .accordion-flush > .accordion-item {\n border-inline: 0;\n border-radius: 0;\n }\n .accordion-flush > .accordion-item:first-child {\n border-block-start: 0;\n }\n .accordion-flush > .accordion-item:last-child {\n border-block-end: 0;\n }\n .accordion-flush > .accordion-item > .accordion-header,\n .accordion-flush > .accordion-item > .accordion-body {\n border-radius: 0;\n }\n}\n@layer components {\n .alert {\n --alert-gap: var(--spacer-3);\n --alert-bg: var(--theme-bg-subtle, var(--bg-1));\n --alert-padding-x: var(--spacer);\n --alert-padding-y: var(--spacer);\n --alert-color: var(--theme-fg, inherit);\n --alert-border-color: var(--theme-border, var(--border-color));\n --alert-border: var(--border-width) solid var(--alert-border-color);\n --alert-border-radius: var(--radius-5);\n --alert-link-color: inherit;\n --hr-border-color: var(--theme-border, var(--border-color));\n display: flex;\n gap: var(--alert-gap);\n align-items: start;\n padding: var(--alert-padding-y) var(--alert-padding-x);\n color: var(--alert-color);\n background-color: var(--alert-bg);\n border: var(--alert-border);\n border-radius: var(--alert-border-radius);\n }\n .alert > p {\n margin-bottom: 0;\n }\n .alert-heading {\n color: inherit;\n }\n .alert-link {\n font-weight: var(--font-weight-semibold);\n color: var(--alert-link-color);\n }\n}\n@layer components {\n .avatar {\n --avatar-size: 2.5rem;\n --avatar-border-radius: 50%;\n --avatar-border-width: 2px;\n --avatar-border-color: var(--bg-body);\n --avatar-bg: var(--bg-2);\n --avatar-color: var(--fg-body);\n --avatar-status-size: 0.75rem;\n --avatar-status-border-width: 2px;\n --avatar-status-border-color: var(--bg-body);\n --avatar-stack-spacing: -0.3;\n --avatar-stack-transition: transform .2s ease-in-out;\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--avatar-size);\n height: var(--avatar-size);\n font-size: calc(var(--avatar-size) * 0.4);\n font-weight: var(--avatar-font-weight, var(--font-weight-medium));\n line-height: 1;\n color: var(--theme-contrast, var(--avatar-color));\n text-transform: uppercase;\n vertical-align: middle;\n background-color: var(--theme-bg, var(--avatar-bg));\n border-radius: var(--avatar-border-radius);\n }\n .avatar > .avatar-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .avatar-subtle {\n color: var(--theme-fg, var(--avatar-color));\n background-color: var(--theme-bg-subtle, var(--avatar-bg));\n }\n .avatar-img {\n border-radius: var(--avatar-border-radius, 50%);\n }\n .avatar-status {\n position: absolute;\n right: calc(var(--avatar-status-border-width) * -1);\n bottom: calc(var(--avatar-status-border-width) * -1);\n width: var(--avatar-status-size);\n height: var(--avatar-status-size);\n background-color: var(--gray-400);\n border: var(--avatar-status-border-width) solid var(--avatar-status-border-color);\n border-radius: 50%;\n }\n .avatar-status.status-online {\n background-color: var(--green-500);\n }\n .avatar-status.status-offline {\n background-color: var(--gray-400);\n border-radius: 20%;\n }\n .avatar-status.status-busy {\n background-color: var(--red-500);\n border-radius: 20%;\n }\n .avatar-status.status-away {\n background-color: var(--yellow-500);\n }\n .avatar-stack {\n display: inline-flex;\n flex-direction: row-reverse;\n }\n .avatar-stack .avatar {\n margin-left: calc(var(--avatar-size) * var(--avatar-stack-spacing));\n border: var(--avatar-border-width) solid var(--avatar-border-color);\n mask-image: none;\n transition: var(--avatar-stack-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .avatar-stack .avatar {\n transition: none;\n }\n }\n .avatar-stack .avatar:last-child {\n margin-left: 0;\n }\n .avatar-stack .avatar:hover {\n z-index: 1;\n transform: translateY(-2px);\n }\n .avatar-xs,\n .avatar-stack-xs > .avatar {\n --avatar-size: 1.5rem;\n --avatar-status-size: 0.625rem;\n }\n .avatar-sm,\n .avatar-stack-sm > .avatar {\n --avatar-size: 2rem;\n }\n .avatar-lg,\n .avatar-stack-lg > .avatar {\n --avatar-size: 3rem;\n --avatar-status-size: 1rem;\n --avatar-border-width: 3px;\n }\n .avatar-xl,\n .avatar-stack-xl > .avatar {\n --avatar-size: 4rem;\n --avatar-status-size: 1.25rem;\n --avatar-border-width: 4px;\n }\n}\n@layer components {\n .badge {\n --badge-padding-x: 0.625em;\n --badge-padding-y: 0.25em;\n --badge-font-size: clamp(12px, 0.75em, 0.75em);\n --badge-font-weight: var(--font-weight-semibold);\n --badge-color: inherit;\n --badge-bg: var(--bg-2);\n --badge-border-width: var(--border-width);\n --badge-border-color: transparent;\n --badge-border-radius: var(--radius-7);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 1.375rem;\n padding: var(--badge-padding-y) var(--badge-padding-x);\n font-size: var(--badge-font-size);\n font-weight: var(--badge-font-weight);\n line-height: 1;\n color: var(--theme-contrast, var(--badge-color));\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n background-color: var(--theme-bg, var(--badge-bg));\n border: var(--badge-border-width) solid var(--badge-border-color);\n border-radius: var(--badge-border-radius);\n }\n .badge:empty {\n display: none;\n }\n .btn .badge {\n position: relative;\n top: -1px;\n }\n .badge-subtle {\n --badge-color: var(--theme-fg);\n --badge-bg: var(--theme-bg-subtle);\n --badge-border-color: transparent;\n color: var(--badge-color);\n background-color: var(--badge-bg);\n border-color: var(--badge-border-color);\n }\n .badge-outline {\n --badge-color: var(--theme-fg);\n --badge-bg: transparent;\n --badge-border-color: var(--theme-border);\n color: var(--badge-color);\n background-color: var(--badge-bg);\n border-color: var(--badge-border-color);\n }\n}\n@layer components {\n .breadcrumb {\n --breadcrumb-margin-bottom: 1rem;\n --breadcrumb-font-size: inherit;\n --breadcrumb-bg: transparent;\n --breadcrumb-border-radius: var(--radius-5);\n --breadcrumb-divider-color: var(--fg-4);\n --breadcrumb-divider-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 16'%3e%3cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M2 2l4 6-4 6'/%3e%3c/svg%3e\");\n --breadcrumb-divider-width: 0.375rem;\n --breadcrumb-divider-height: 0.75rem;\n --breadcrumb-link-padding-x: 0.75rem;\n --breadcrumb-link-padding-y: 0.25rem;\n --breadcrumb-link-color: var(--fg-3);\n --breadcrumb-link-hover-color: var(--fg-2);\n --breadcrumb-link-hover-bg: var(--bg-1);\n --breadcrumb-link-active-color: var(--fg-1);\n --breadcrumb-link-border-radius: var(--radius-7);\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n padding: var(--breadcrumb-padding-y, 0) var(--breadcrumb-padding-x, 0);\n font-size: var(--breadcrumb-font-size);\n list-style: none;\n background-color: var(--breadcrumb-bg);\n border-radius: var(--breadcrumb-border-radius);\n }\n .breadcrumb-item {\n display: flex;\n }\n .breadcrumb-divider {\n margin-inline: calc(var(--breadcrumb-link-padding-x) / 4);\n color: var(--breadcrumb-divider-color);\n }\n .breadcrumb-divider:empty::before {\n display: block;\n width: var(--breadcrumb-divider-width);\n height: var(--breadcrumb-divider-height);\n content: \"\";\n background-color: currentcolor;\n mask-image: var(--breadcrumb-divider-icon);\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: contain;\n }\n .breadcrumb-link {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 2.25rem;\n padding: var(--breadcrumb-link-padding-y) var(--breadcrumb-link-padding-x);\n color: var(--breadcrumb-link-color);\n text-decoration: none;\n border-radius: var(--breadcrumb-link-border-radius);\n transition: 0.1s text-decoration-color ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .breadcrumb-link {\n transition: none;\n }\n }\n .breadcrumb-link:hover {\n z-index: 2;\n color: var(--breadcrumb-link-hover-color);\n background-color: var(--breadcrumb-link-hover-bg);\n }\n .breadcrumb-link.active {\n color: var(--breadcrumb-link-active-color);\n }\n}\n@layer components {\n .chip {\n --chip-height: 1.75rem;\n --chip-padding-x: 0.625rem;\n --chip-gap: 0.3125rem;\n --chip-border-radius: var(--radius-pill);\n --chip-img-size: 1.25rem;\n --chip-icon-size: 1rem;\n --chip-dismiss-size: 1rem;\n --chip-dismiss-opacity: 0.65;\n --chip-dismiss-hover-opacity: 1;\n --chip-color: var(--theme-fg, var(--fg-body));\n --chip-bg: var(--theme-bg-subtle, var(--bg-2));\n --chip-border-color: transparent;\n --chip-selected-color: var(--theme-contrast, var(--primary-contrast));\n --chip-selected-bg: var(--theme-bg, var(--primary-bg));\n --chip-selected-border-color: var(--theme-bg, var(--primary-bg));\n display: inline-flex;\n gap: var(--chip-gap);\n align-items: center;\n height: var(--chip-height);\n padding-inline: var(--chip-padding-x);\n font-size: var(--chip-font-size, var(--font-size-sm));\n font-weight: var(--chip-font-weight, var(--font-weight-base));\n line-height: var(--chip-line-height, 1.25rem);\n color: var(--chip-color);\n text-decoration: none;\n white-space: nowrap;\n vertical-align: middle;\n cursor: pointer;\n background-color: var(--chip-bg);\n border: var(--border-width) solid var(--chip-border-color);\n border-radius: var(--chip-border-radius);\n }\n .chip:hover {\n --chip-bg: var(--theme-bg-muted, var(--bg-3));\n }\n .chip:focus-visible {\n outline: 0;\n }\n .chip.active {\n --chip-color: var(--chip-selected-color);\n --chip-bg: var(--chip-selected-bg);\n --chip-border-color: var(--chip-selected-border-color);\n }\n .chip.active:hover {\n --chip-bg: var(--chip-selected-bg);\n opacity: 0.9;\n }\n .chip.disabled, .chip:disabled {\n pointer-events: none;\n opacity: 0.65;\n }\n .chip-img {\n width: var(--chip-img-size);\n height: var(--chip-img-size);\n border-radius: 50%;\n }\n .chip-img:first-child {\n margin-inline-start: -0.375rem;\n }\n .chip-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n margin-inline-start: calc(var(--chip-gap) * -0.25);\n }\n .chip-icon > svg {\n display: block;\n width: var(--chip-icon-size);\n height: var(--chip-icon-size);\n }\n .chip-icon > img {\n width: var(--chip-icon-size);\n height: var(--chip-icon-size);\n object-fit: cover;\n border-radius: 50%;\n }\n .chip-dismiss {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--chip-min-height);\n height: var(--chip-min-height);\n padding: 0;\n margin-inline-end: calc(var(--chip-padding-x) * -0.25);\n color: inherit;\n cursor: pointer;\n background: transparent;\n border: 0;\n opacity: var(--chip-dismiss-opacity);\n }\n .chip-dismiss:hover {\n opacity: var(--chip-dismiss-hover-opacity);\n }\n .chip-dismiss:focus-visible {\n outline: 0;\n opacity: 1;\n outline: var(--focus-ring);\n }\n .chip-dismiss > svg {\n display: block;\n width: var(--chip-dismiss-size);\n height: var(--chip-dismiss-size);\n }\n}\n@layer components {\n .card {\n --card-spacer-y: var(--spacer-5);\n --card-spacer-x: var(--spacer-5);\n --card-subtitle-color: inherit;\n --card-border-width: var(--border-width);\n --card-border-color: var(--border-color-translucent);\n --card-border-radius: var(--radius-7);\n --card-box-shadow: none;\n --card-inner-border-radius: calc(var(--radius-7) - var(--border-width));\n --card-cap-padding-y: var(--spacer-3);\n --card-cap-padding-x: var(--spacer);\n --card-cap-bg: var(--bg-1);\n --card-cap-color: inherit;\n --card-height: auto;\n --card-color: inherit;\n --card-bg: var(--bg-body);\n --card-img-overlay-padding: var(--card-spacer-y);\n --card-group-margin: 0.75rem;\n --card-body-gap: calc(var(--card-spacer-y) * 0.5);\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n height: var(--card-height);\n color: var(--fg-body);\n word-wrap: break-word;\n background-color: var(--card-bg);\n border-radius: var(--card-border-radius);\n box-shadow: var(--card-box-shadow);\n }\n .card > hr {\n margin-inline: 0;\n }\n .card-body {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n gap: var(--card-body-gap);\n align-items: flex-start;\n padding: var(--card-spacer-y) var(--card-spacer-x);\n color: var(--card-color);\n border: solid var(--theme-bg, var(--card-border-color));\n border-width: 0 var(--card-border-width);\n }\n .card-body > * {\n margin-block: 0;\n }\n .card-body,\n .card-list {\n border: solid var(--theme-bg, var(--card-border-color));\n border-width: 0 var(--card-border-width);\n }\n .card-body:first-child,\n .card-list:first-child {\n border-start-start-radius: var(--card-border-radius);\n border-start-end-radius: var(--card-border-radius);\n border-top-width: var(--card-border-width);\n }\n .card-body:last-child,\n .card-list:last-child {\n border-end-start-radius: var(--card-border-radius);\n border-end-end-radius: var(--card-border-radius);\n border-bottom-width: var(--card-border-width);\n }\n .card-body:not(:first-child, :last-child),\n .card-list:not(:first-child, :last-child) {\n border-block-end-width: var(--card-border-width);\n }\n .card-title,\n .card-subtitle,\n .card-text {\n align-self: stretch;\n }\n .card-subtitle {\n margin-top: calc(var(--card-body-gap) * -0.5);\n }\n .card-header {\n padding: var(--card-cap-padding-y) var(--card-cap-padding-x);\n margin-bottom: 0;\n color: var(--theme-contrast, var(--card-cap-color));\n background-color: var(--theme-bg, var(--card-cap-bg));\n border: var(--card-border-width) solid var(--theme-bg, var(--card-border-color));\n }\n .card-header:first-child {\n border-radius: var(--card-inner-border-radius) var(--card-inner-border-radius) 0 0;\n }\n .card-footer {\n padding: var(--card-cap-padding-y) var(--card-cap-padding-x);\n color: var(--card-cap-color);\n background-color: var(--theme-bg, var(--card-cap-bg));\n border: var(--card-border-width) solid var(--theme-bg, var(--card-border-color));\n }\n .card-footer:last-child {\n border-radius: 0 0 var(--card-inner-border-radius) var(--card-inner-border-radius);\n }\n .card-translucent {\n background-color: color-mix(in oklch, var(--card-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n .card-translucent .card-header,\n .card-translucent .card-footer {\n background-color: color-mix(in oklch, var(--card-cap-bg) 60%, transparent);\n }\n .card-subtle {\n border-color: var(--theme-border, var(--card-border-color));\n }\n .card-subtle .card-header {\n color: var(--theme-fg-emphasis, currentcolor);\n background-color: var(--theme-bg-subtle, var(--card-cap-bg));\n border-color: var(--theme-border, var(--card-border-color));\n }\n .card-subtle .card-footer {\n color: var(--theme-fg-emphasis, currentcolor);\n background-color: var(--theme-bg-subtle, var(--card-cap-bg));\n border-color: var(--theme-border, var(--card-border-color));\n }\n .card-subtle .card-body,\n .card-subtle .card-list {\n border-color: var(--theme-border, var(--card-border-color));\n }\n .nav.card-header-tabs {\n margin-inline: calc(-0.5 * var(--card-cap-padding-x));\n margin-bottom: calc(-1 * var(--card-cap-padding-y));\n border-block-end: 0;\n }\n .nav.card-header-tabs .nav-link.active {\n background-color: var(--card-bg);\n border-block-end-color: var(--card-bg);\n }\n .card-img-overlay {\n position: absolute;\n inset: 0;\n padding: var(--card-img-overlay-padding);\n border-radius: var(--card-inner-border-radius);\n }\n .card-img,\n .card-img-top,\n .card-img-bottom {\n width: 100%;\n outline: var(--card-border-width) solid var(--card-border-color);\n outline-offset: calc(var(--card-border-width) * -1);\n }\n .card-img,\n .card-img-top {\n border-start-start-radius: var(--card-inner-border-radius);\n border-start-end-radius: var(--card-inner-border-radius);\n }\n .card-img,\n .card-img-bottom {\n border-end-start-radius: var(--card-inner-border-radius);\n border-end-end-radius: var(--card-inner-border-radius);\n }\n .card-row {\n flex-direction: row;\n }\n .card-row .card-body,\n .card-row .card-list {\n border-width: var(--card-border-width) 0;\n border-radius: 0;\n }\n .card-row .card-body:first-child,\n .card-row .card-list:first-child {\n border-start-start-radius: var(--card-inner-border-radius);\n border-end-start-radius: var(--card-inner-border-radius);\n border-inline-start-width: var(--card-border-width);\n }\n .card-row .card-body:last-child,\n .card-row .card-list:last-child {\n border-start-end-radius: var(--card-inner-border-radius);\n border-end-end-radius: var(--card-inner-border-radius);\n border-inline-end-width: var(--card-border-width);\n }\n .card-row .card-body:not(:first-child, :last-child),\n .card-row .card-list:not(:first-child, :last-child) {\n border-inline-end-width: var(--card-border-width);\n }\n .card-img-start {\n border-start-start-radius: var(--card-inner-border-radius);\n border-end-start-radius: var(--card-inner-border-radius);\n }\n .card-img-end {\n border-start-end-radius: var(--card-inner-border-radius);\n border-end-end-radius: var(--card-inner-border-radius);\n }\n .card-group > .card {\n margin-bottom: var(--card-group-margin);\n }\n @media (width >= 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-inline-start: 0;\n border-inline-start: 0;\n }\n .card-group > .card:not(:last-child) {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .card-group > .card:not(:last-child) > .card-img-top,\n .card-group > .card:not(:last-child) > .card-header,\n .card-group > .card:not(:last-child) > .card-body {\n border-start-end-radius: 0;\n }\n .card-group > .card:not(:last-child) > .card-img-bottom,\n .card-group > .card:not(:last-child) > .card-footer,\n .card-group > .card:not(:last-child) > .card-body {\n border-end-end-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .card-group > .card:not(:first-child) > .card-img-top,\n .card-group > .card:not(:first-child) > .card-header,\n .card-group > .card:not(:first-child) > .card-body {\n border-start-start-radius: 0;\n }\n .card-group > .card:not(:first-child) > .card-img-bottom,\n .card-group > .card:not(:first-child) > .card-footer,\n .card-group > .card:not(:first-child) > .card-body {\n border-end-start-radius: 0;\n }\n }\n}\n@layer components {\n .carousel {\n --carousel-gap: 0.75rem;\n --carousel-indicator-bg: var(--fg-3);\n --carousel-indicator-width: 0.75rem;\n --carousel-indicator-height: 0.75rem;\n --carousel-indicator-spacer: 0.25rem;\n --carousel-indicator-transition: opacity .6s ease, width .3s ease;\n --carousel-indicator-progress-bg: var(--carousel-indicator-bg);\n --carousel-control-icon-width: 1rem;\n --carousel-control-prev-icon: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/></svg>\");\n --carousel-control-next-icon: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/></svg>\");\n --carousel-control-pause-icon: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M5.5 3.5A1.5 1.5 0 0 1 7 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5m5 0A1.5 1.5 0 0 1 12 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5'/></svg>\");\n --carousel-control-play-icon: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='m11.596 8.697-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393z'/></svg>\");\n --carousel-items: 1;\n --carousel-items-gap: 0px;\n --carousel-items-peek: 0px;\n --carousel-fade-duration: 0.6s;\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--carousel-gap);\n }\n .carousel-inner {\n display: flex;\n gap: var(--carousel-items-gap);\n width: 100%;\n padding-inline: var(--carousel-items-peek);\n overflow-x: auto;\n overscroll-behavior-x: contain;\n scroll-snap-type: x mandatory;\n scroll-padding-inline: var(--carousel-items-peek);\n scrollbar-width: none;\n }\n .carousel-inner::-webkit-scrollbar {\n display: none;\n }\n @media (prefers-reduced-motion: no-preference) {\n .carousel-inner {\n scroll-behavior: smooth;\n }\n }\n .carousel-item {\n flex: 0 0 calc((100% - (var(--carousel-items) - 1) * var(--carousel-items-gap)) / var(--carousel-items));\n min-width: 0;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n }\n .carousel-center .carousel-item {\n scroll-snap-align: center;\n }\n .carousel-auto .carousel-item {\n flex-basis: auto;\n }\n .carousel-fade .carousel-inner {\n display: grid;\n overflow: hidden;\n scroll-snap-type: none;\n }\n .carousel-fade .carousel-item {\n grid-area: 1/1;\n width: 100%;\n visibility: hidden;\n opacity: 0;\n transition: opacity var(--carousel-fade-duration) ease, visibility 0s linear var(--carousel-fade-duration);\n }\n @media (prefers-reduced-motion: reduce) {\n .carousel-fade .carousel-item {\n transition: none;\n }\n }\n .carousel-fade .carousel-item.active {\n visibility: visible;\n opacity: 1;\n transition: opacity var(--carousel-fade-duration) ease;\n }\n @media (prefers-reduced-motion: reduce) {\n .carousel-fade .carousel-item.active {\n transition: none;\n }\n }\n .carousel-icon-prev,\n .carousel-icon-next,\n .carousel-icon-pause,\n .carousel-icon-play {\n display: inline-block;\n width: var(--carousel-control-icon-width);\n height: var(--carousel-control-icon-width);\n background-color: currentcolor;\n mask-repeat: no-repeat;\n mask-position: 50%;\n mask-size: 100% 100%;\n }\n .carousel-icon-prev {\n mask-image: var(--carousel-control-prev-icon);\n }\n .carousel-icon-next {\n mask-image: var(--carousel-control-next-icon);\n }\n [dir=rtl] .carousel-icon-prev,\n [dir=rtl] .carousel-icon-next {\n transform: scaleX(-1);\n }\n .carousel-icon-pause {\n mask-image: var(--carousel-control-pause-icon);\n }\n .carousel-icon-play {\n mask-image: var(--carousel-control-play-icon);\n }\n .carousel-control-play-pause .carousel-icon-play {\n display: none;\n }\n .carousel-control-play-pause.paused .carousel-icon-pause {\n display: none;\n }\n .carousel-control-play-pause.paused .carousel-icon-play {\n display: inline-block;\n }\n .carousel-indicators {\n display: flex;\n gap: var(--carousel-indicator-spacer);\n justify-content: center;\n }\n .carousel-indicators [data-bs-target] {\n flex: 0 1 auto;\n width: var(--carousel-indicator-width);\n height: var(--carousel-indicator-height);\n padding: 0;\n cursor: pointer;\n background-color: transparent;\n border: 1px solid var(--carousel-indicator-bg);\n border-radius: var(--carousel-indicator-width);\n transition: var(--carousel-indicator-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .carousel-indicators [data-bs-target] {\n transition: none;\n }\n }\n .carousel-indicators .active {\n width: calc(var(--carousel-indicator-width) * 2.5);\n background-color: var(--carousel-indicator-bg);\n border-color: var(--carousel-indicator-bg);\n }\n @keyframes carousel-indicator-progress {\n from {\n inline-size: 0;\n }\n to {\n inline-size: 100%;\n }\n }\n @media (prefers-reduced-motion: no-preference) {\n .carousel-playing .carousel-indicators .active {\n position: relative;\n overflow: hidden;\n background-color: transparent;\n }\n .carousel-playing .carousel-indicators .active::after {\n position: absolute;\n inset-block: 0;\n inset-inline-start: 0;\n inline-size: 0;\n content: \"\";\n background-color: var(--carousel-indicator-progress-bg);\n animation: carousel-indicator-progress var(--carousel-interval, 5000ms) linear forwards;\n }\n }\n .carousel-overlay {\n --carousel-indicator-bg: light-dark(var(--white), var(--black));\n }\n .carousel-overlay .carousel-overlay-controls {\n position: absolute;\n inset-block-end: 1rem;\n inset-inline: 1rem;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n}\n@layer components {\n [data-vc=calendar] {\n --datepicker-padding: 1rem;\n --datepicker-bg: var(--bg-body);\n --datepicker-color: var(--fg-body);\n --datepicker-border-color: var(--border-color-translucent);\n --datepicker-border-width: var(--border-width);\n --datepicker-border-radius: var(--radius-7);\n --datepicker-box-shadow: var(--box-shadow);\n --datepicker-font-size: var(--font-size-sm);\n --datepicker-min-width: 280px;\n --datepicker-zindex: 1000;\n --datepicker-header-font-weight: 600;\n --datepicker-weekday-color: var(--fg-3);\n --datepicker-day-hover-bg: var(--bg-1);\n --datepicker-day-selected-bg: var(--primary-bg);\n --datepicker-day-selected-color: var(--primary-contrast);\n --datepicker-day-today-bg: var(--bg-2);\n --datepicker-day-today-color: var(--fg-1);\n --datepicker-day-disabled-color: var(--fg-4);\n position: absolute;\n z-index: var(--datepicker-zindex);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n min-width: var(--datepicker-min-width);\n padding: var(--datepicker-padding);\n font-family: var(--font-sans-serif);\n font-size: var(--datepicker-font-size);\n color: var(--datepicker-color);\n color-scheme: light dark;\n background-color: var(--datepicker-bg);\n border: var(--datepicker-border-width) solid var(--datepicker-border-color);\n box-shadow: var(--datepicker-box-shadow);\n opacity: 1;\n border-radius: var(--datepicker-border-radius);\n }\n [data-vc=calendar][data-bs-theme=light] {\n color-scheme: light;\n }\n [data-vc=calendar][data-bs-theme=dark] {\n color-scheme: dark;\n }\n [data-vc=calendar] button:focus-visible {\n position: relative;\n z-index: 1;\n outline: var(--focus-ring);\n }\n [data-vc-calendar-hidden] {\n pointer-events: none;\n opacity: 0;\n }\n [data-vc=calendar]:not([data-vc-input]) {\n position: relative;\n width: fit-content;\n padding: 0;\n border: 0;\n box-shadow: none;\n }\n [data-vc-position=bottom] {\n margin-block-start: 0.25rem;\n }\n [data-vc-position=top] {\n margin-block-end: -0.25rem;\n }\n [data-vc-arrow] {\n position: relative;\n display: block;\n width: 2rem;\n height: 2rem;\n color: var(--datepicker-color);\n pointer-events: auto;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n }\n [data-vc-arrow]::before {\n position: absolute;\n inset: 0.25rem;\n content: \"\";\n background-color: var(--datepicker-color);\n mask-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 16c-.3 0-.5-.1-.7-.3l-6-6c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l5.3 5.3 5.3-5.3c.4-.4 1-.4 1.4 0s.4 1 0 1.4l-6 6c-.2.2-.4.3-.7.3'/></svg>\");\n mask-repeat: no-repeat;\n mask-position: center;\n }\n [data-vc-arrow]:hover {\n background-color: var(--datepicker-day-hover-bg);\n }\n [data-vc-arrow=prev]::before {\n transform: rotate(90deg);\n }\n [data-vc-arrow=next]::before {\n transform: rotate(-90deg);\n }\n [data-vc=controls] {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 20;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: 1rem;\n padding-right: 1rem;\n padding-left: 1rem;\n pointer-events: none;\n }\n [data-vc=grid] {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n gap: 1.75rem;\n }\n [data-vc=column] {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n min-width: 240px;\n }\n [data-vc=header] {\n position: relative;\n display: flex;\n align-items: center;\n margin-bottom: 0.75rem;\n }\n [data-vc-header=content] {\n display: inline-flex;\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n white-space: pre-wrap;\n }\n [data-vc=month],\n [data-vc=year] {\n padding: 0.25rem 0.5rem;\n margin-inline: -0.125rem;\n font-size: 1rem;\n font-weight: var(--datepicker-header-font-weight);\n color: var(--datepicker-color);\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n }\n [data-vc=month]:disabled,\n [data-vc=year]:disabled {\n color: var(--datepicker-day-disabled-color);\n pointer-events: none;\n }\n [data-vc=month]:hover:not(:disabled),\n [data-vc=year]:hover:not(:disabled) {\n background-color: var(--datepicker-day-hover-bg);\n }\n [data-vc=content] {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n }\n [data-vc=months],\n [data-vc=years] {\n display: grid;\n flex-grow: 1;\n grid-template-columns: repeat(var(--vc-columns, 4), minmax(0, 1fr));\n row-gap: 1rem;\n column-gap: 0.25rem;\n align-items: center;\n }\n [data-vc=years] {\n --vc-columns: 5;\n }\n [data-vc-months-month],\n [data-vc-years-year] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 2.5rem;\n padding: 0.25rem;\n font-size: 0.75rem;\n font-weight: 600;\n line-height: 1rem;\n color: var(--datepicker-weekday-color);\n text-align: center;\n word-break: break-all;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n }\n [data-vc-months-month]:disabled,\n [data-vc-years-year]:disabled {\n color: var(--datepicker-day-disabled-color);\n pointer-events: none;\n }\n [data-vc-months-month]:hover:not(:disabled),\n [data-vc-years-year]:hover:not(:disabled) {\n background-color: var(--datepicker-day-hover-bg);\n }\n [data-vc-months-month][data-vc-months-month-selected], [data-vc-months-month][data-vc-years-year-selected],\n [data-vc-years-year][data-vc-months-month-selected],\n [data-vc-years-year][data-vc-years-year-selected] {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n }\n [data-vc-months-month][data-vc-months-month-selected]:hover, [data-vc-months-month][data-vc-years-year-selected]:hover,\n [data-vc-years-year][data-vc-months-month-selected]:hover,\n [data-vc-years-year][data-vc-years-year-selected]:hover {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n }\n [data-vc=week] {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n justify-items: center;\n margin-bottom: 0.5rem;\n }\n [data-vc-week-day] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 1.875rem;\n padding: 0;\n margin: 0;\n font-size: 0.75rem;\n font-weight: 600;\n line-height: 1rem;\n color: var(--datepicker-weekday-color);\n background-color: transparent;\n border: 0;\n }\n button[data-vc-week-day] {\n cursor: pointer;\n }\n [data-vc=dates] {\n pointer-events: none;\n }\n [data-vc-dates=row] {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n align-items: center;\n justify-items: center;\n width: 100%;\n }\n [data-vc-date] {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n pointer-events: auto;\n }\n [data-vc-date]:not(:has([data-vc-date-btn])), [data-vc-date][data-vc-date-disabled], [data-vc-date][data-vc-date-disabled] [data-vc-date-btn] {\n pointer-events: none;\n }\n [data-vc-date-btn] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 1.875rem;\n height: 100%;\n min-height: 1.875rem;\n padding: 0;\n font-size: 0.75rem;\n font-weight: 400;\n line-height: 1rem;\n color: var(--datepicker-color);\n cursor: pointer;\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n }\n [data-vc-date-btn]:hover {\n background-color: var(--datepicker-day-hover-bg);\n }\n [data-vc-date-today] [data-vc-date-btn] {\n font-weight: 600;\n color: var(--datepicker-day-today-color);\n background-color: var(--datepicker-day-today-bg);\n }\n [data-vc-date-month=next] [data-vc-date-btn],\n [data-vc-date-month=prev] [data-vc-date-btn] {\n opacity: 0.5;\n }\n [data-vc-date-disabled] [data-vc-date-btn] {\n color: var(--datepicker-day-disabled-color);\n }\n [data-vc-date-hover] [data-vc-date-btn] {\n background-color: var(--datepicker-day-hover-bg);\n border-radius: 0;\n }\n [data-vc-date-hover=first] [data-vc-date-btn] {\n border-start-start-radius: var(--radius-5);\n border-end-start-radius: var(--radius-5);\n }\n [data-vc-date-hover=last] [data-vc-date-btn] {\n border-start-end-radius: var(--radius-5);\n border-end-end-radius: var(--radius-5);\n }\n [data-vc-date-hover=first-and-last] [data-vc-date-btn] {\n border-radius: var(--radius-5);\n }\n [data-vc-date-selected=middle] [data-vc-date-btn] {\n border-radius: 0;\n opacity: 0.8;\n }\n [data-vc-date-selected] [data-vc-date-btn] {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n }\n [data-vc-date-selected=first] [data-vc-date-btn] {\n border-top-left-radius: var(--radius-5);\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: var(--radius-5);\n }\n [data-vc-date-selected=last] [data-vc-date-btn] {\n border-top-left-radius: 0;\n border-top-right-radius: var(--radius-5);\n border-bottom-right-radius: var(--radius-5);\n border-bottom-left-radius: 0;\n }\n [data-vc-date-selected=first-and-last] [data-vc-date-btn] {\n border-radius: var(--radius-5);\n }\n}\n@layer components {\n .dialog-open {\n overflow: hidden;\n }\n .dialog {\n --dialog-padding: 1rem;\n --dialog-width: 500px;\n --dialog-margin: 1.75rem;\n --dialog-color: var(--fg-body);\n --dialog-bg: var(--bg-body);\n --dialog-border-color: var(--border-color-translucent);\n --dialog-border-width: var(--border-width);\n --dialog-border-radius: var(--radius-7);\n --dialog-box-shadow: var(--box-shadow-lg);\n --dialog-transition-duration: 0.3s;\n --dialog-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --dialog-backdrop-bg: rgba(0, 0, 0, 0.5);\n --dialog-backdrop-blur: 8px;\n --dialog-header-padding: 1rem;\n --dialog-header-border-color: var(--border-color);\n --dialog-header-border-width: var(--border-width);\n --dialog-footer-padding: 1rem;\n --dialog-footer-border-color: var(--border-color);\n --dialog-footer-border-width: var(--border-width);\n --dialog-footer-gap: 0.5rem;\n display: flex;\n flex-direction: column;\n width: var(--dialog-width);\n max-width: calc(100% - var(--dialog-margin) * 2);\n max-height: calc(100% - var(--dialog-margin) * 2);\n padding: 0;\n margin: auto;\n overflow: visible;\n color: var(--dialog-color);\n visibility: hidden;\n background-color: var(--dialog-bg);\n background-clip: padding-box;\n border: var(--dialog-border-width) solid var(--dialog-border-color);\n border-radius: var(--dialog-border-radius);\n box-shadow: var(--dialog-box-shadow);\n }\n .dialog:not(.dialog-instant) {\n opacity: 0;\n transition: opacity var(--dialog-transition-duration) var(--dialog-transition-timing), transform var(--dialog-transition-duration) var(--dialog-transition-timing), visibility 0s var(--dialog-transition-duration);\n }\n @media (prefers-reduced-motion: reduce) {\n .dialog:not(.dialog-instant) {\n transition: none;\n }\n }\n .dialog:not(.dialog-instant).dialog-slide-down {\n transform: translateY(-3rem);\n }\n .dialog:not(.dialog-instant).dialog-slide-up {\n transform: translateY(3rem);\n }\n .dialog:not(.dialog-instant)[open]:not(.hiding) {\n overflow: visible;\n visibility: visible;\n opacity: 1;\n transition: opacity var(--dialog-transition-duration) var(--dialog-transition-timing), transform var(--dialog-transition-duration) var(--dialog-transition-timing), visibility 0s;\n }\n @media (prefers-reduced-motion: reduce) {\n .dialog:not(.dialog-instant)[open]:not(.hiding) {\n transition: none;\n }\n }\n .dialog:not(.dialog-instant)[open]:not(.hiding) {\n transform: none;\n }\n .dialog:not(.dialog-instant)[open].dialog-static:not(.hiding) {\n transform: scale(1.02);\n }\n .dialog:not(.dialog-instant)::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n transition: background-color var(--dialog-transition-duration) var(--dialog-transition-timing), backdrop-filter var(--dialog-transition-duration) var(--dialog-transition-timing), display var(--dialog-transition-duration) allow-discrete, overlay var(--dialog-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .dialog:not(.dialog-instant)::backdrop {\n transition: none;\n }\n }\n .dialog:not(.dialog-instant).hiding::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .dialog.dialog-instant::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n }\n .dialog[open]:not(.hiding) {\n overflow: visible;\n visibility: visible;\n opacity: 1;\n transform: none;\n }\n .dialog.dialog-nonmodal {\n position: fixed;\n inset-block-start: 50%;\n inset-inline-start: 50%;\n z-index: 1055;\n margin-inline: 0;\n transform: translate(-50%, -50%);\n }\n .dialog.dialog-scrollable[open] {\n max-height: calc(100% - var(--dialog-margin) * 2);\n }\n .dialog.dialog-scrollable[open] .dialog-body {\n overflow-y: auto;\n }\n @starting-style {\n .dialog:not(.dialog-instant)::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .dialog.dialog-swap-in:not(.dialog-instant)::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n }\n }\n .dialog-sm {\n --dialog-width: 280px;\n }\n .dialog-lg {\n --dialog-width: 800px;\n }\n .dialog-xl {\n --dialog-width: 1140px;\n }\n .dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n @media (width < 576px) {\n .sm-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n @media (width < 768px) {\n .md-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n @media (width < 1024px) {\n .lg-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n @media (width < 1280px) {\n .xl-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n @media (width < 1536px) {\n .\\32 xl-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n .dialog-header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n padding: var(--dialog-header-padding);\n border-block-end: var(--dialog-header-border-width) solid var(--dialog-header-border-color);\n }\n .dialog-header .btn-close {\n margin-inline-start: auto;\n }\n .dialog-title {\n margin-bottom: 0;\n line-height: 1.5;\n font-size: var(--font-size-md);\n }\n .dialog-body {\n position: relative;\n flex: 1 1 auto;\n padding: var(--dialog-padding);\n }\n .dialog-footer {\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n gap: var(--dialog-footer-gap);\n align-items: center;\n justify-content: flex-end;\n padding: var(--dialog-footer-padding);\n border-block-start: var(--dialog-footer-border-width) solid var(--dialog-footer-border-color);\n }\n}\n@layer components {\n .menu {\n --menu-zindex: 1000;\n --menu-gap: 0.125rem;\n --menu-min-width: 10rem;\n --menu-padding-x: 0.25rem;\n --menu-padding-y: 0.25rem;\n --menu-spacer: 0.125rem;\n --menu-font-size: var(--font-size-sm);\n --menu-color: var(--fg-body);\n --menu-bg: var(--bg-body);\n --menu-box-shadow: var(--box-shadow);\n --menu-divider-bg: var(--border-color-translucent);\n --menu-divider-margin-y: 0.125rem;\n --menu-divider-margin-x: 0.25rem;\n --menu-item-color: var(--menu-color, var(--fg-body));\n --menu-item-hover-color: var(--menu-color, var(--fg-body));\n --menu-item-hover-bg: var(--bg-1);\n --menu-item-active-color: var(--primary-contrast);\n --menu-item-active-bg: var(--primary-bg);\n --menu-item-disabled-color: var(--fg-3);\n --menu-item-gap: 0.5rem;\n --menu-item-padding-x: 0.75rem;\n --menu-item-padding-y: 0.25rem;\n --menu-item-border-radius: var(--radius-5);\n --menu-icon-size: 1rem;\n --menu-description-font-size: var(--font-size-xs);\n --menu-check-color: currentcolor;\n --menu-header-color: var(--fg-3);\n --menu-header-padding-x: 0.75rem;\n --menu-header-padding-y: 0.25rem;\n --menu-transition-duration: 0.15s;\n --menu-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n position: absolute;\n z-index: var(--menu-zindex);\n display: none;\n flex-direction: column;\n gap: var(--menu-gap);\n min-width: var(--menu-min-width);\n max-height: var(--menu-max-height, none);\n padding: var(--menu-padding-y) var(--menu-padding-x);\n margin: 0;\n overflow-y: var(--menu-overflow-y, initial);\n overscroll-behavior: contain;\n font-size: var(--menu-font-size);\n color: var(--menu-color);\n text-align: start;\n list-style: none;\n background-color: var(--menu-bg);\n background-clip: padding-box;\n border: var(--menu-border-width, var(--border-width)) solid var(--menu-border-color, var(--border-color-translucent));\n border-radius: var(--menu-border-radius, var(--radius-7));\n box-shadow: var(--menu-box-shadow);\n opacity: 0;\n transform: scale(0.95);\n transform-origin: top start;\n }\n .menu[data-bs-placement^=top] {\n transform-origin: bottom start;\n }\n .menu[data-bs-placement=bottom-end] {\n transform-origin: top end;\n }\n .menu[data-bs-placement=top-end] {\n transform-origin: bottom end;\n }\n .menu[data-bs-placement^=left] {\n transform-origin: top end;\n }\n .menu {\n transition: opacity var(--menu-transition-duration) var(--menu-transition-timing), transform var(--menu-transition-duration) var(--menu-transition-timing), display var(--menu-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .menu {\n transition: none;\n }\n }\n .menu.show {\n display: flex;\n opacity: 1;\n transform: none;\n }\n @starting-style {\n .menu.show {\n opacity: 0;\n transform: scale(0.95);\n }\n }\n .menu-scrollable {\n --menu-max-height: 80dvh;\n --menu-overflow-y: auto;\n }\n .menu-translucent {\n --menu-item-hover-bg-light: color-mix(in oklch, var(--bg-1) 90%, transparent);\n --menu-item-hover-bg-dark: color-mix(in oklch, var(--bg-1) 80%, transparent);\n --menu-item-active-bg-light: color-mix(in oklch, var(--primary-bg) 80%, transparent);\n --menu-item-active-bg-dark: color-mix(in oklch, var(--primary-bg) 70%, transparent);\n --menu-item-active-bg: light-dark(var(--menu-item-active-bg-light), var(--menu-item-active-bg-dark));\n --menu-item-hover-bg: light-dark(var(--menu-item-hover-bg-light), var(--menu-item-hover-bg-dark));\n background-color: color-mix(in oklch, var(--menu-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n .menu-divider {\n height: 0;\n margin: var(--menu-divider-margin-y) var(--menu-divider-margin-x);\n overflow: hidden;\n border-block-start: 1px solid var(--menu-divider-bg);\n opacity: 1;\n }\n .menu-item {\n display: flex;\n gap: var(--menu-item-gap);\n align-items: center;\n width: 100%;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n font-weight: var(--menu-item-font-weight, var(--font-weight-normal));\n color: var(--theme-fg, var(--menu-item-color));\n text-align: inherit;\n text-decoration: none;\n white-space: nowrap;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n outline: 0;\n border-radius: var(--menu-item-border-radius, 0);\n }\n .menu-item:hover, .menu-item:focus {\n color: var(--theme-fg-emphasis, var(--menu-item-hover-color));\n background-color: var(--theme-bg-subtle, var(--menu-item-hover-bg));\n }\n .menu-item.active, .menu-item:active {\n color: var(--theme-contrast, var(--menu-item-active-color));\n background-color: var(--theme-bg, var(--menu-item-active-bg));\n }\n .menu-item.active .menu-item-icon, .menu-item:active .menu-item-icon {\n color: inherit !important;\n }\n .menu-item.selected {\n font-weight: 600;\n }\n .menu-item.disabled, .menu-item:disabled {\n color: var(--menu-item-disabled-color);\n pointer-events: none;\n background-color: transparent;\n background-image: none;\n }\n .menu-item-icon {\n flex-shrink: 0;\n align-self: flex-start;\n width: var(--menu-icon-size);\n height: auto;\n margin-top: 0.125rem;\n }\n .menu-item-content {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-width: fit-content;\n }\n .menu-item-description {\n font-size: var(--menu-description-font-size);\n font-weight: var(--font-weight-normal);\n color: color-mix(in oklch, currentcolor 65%, transparent);\n }\n .menu-item-check {\n flex-shrink: 0;\n align-self: flex-start;\n margin-block-start: 0.125rem;\n margin-inline-start: auto;\n color: var(--menu-check-color);\n visibility: hidden;\n }\n .selected > .menu-item-check {\n visibility: visible;\n }\n .menu-header {\n display: block;\n padding: var(--menu-header-padding-y) var(--menu-header-padding-x);\n margin-bottom: 0;\n font-size: var(--font-size-sm);\n color: var(--menu-header-color);\n white-space: nowrap;\n }\n .menu-text {\n display: block;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n color: var(--fg-2);\n }\n .submenu {\n position: relative;\n }\n .submenu > .menu-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .submenu > .menu-item::after {\n display: inline-block;\n flex-shrink: 0;\n width: 0.375em;\n height: 0.375em;\n margin-inline-start: auto;\n content: \"\";\n border-color: currentcolor;\n border-style: solid;\n border-width: 0 0.125em 0.125em 0;\n transform: rotate(-45deg);\n }\n [dir=rtl] .submenu > .menu-item::after {\n transform: rotate(135deg);\n }\n .submenu > .menu {\n top: 0;\n margin-top: calc(-1 * var(--menu-padding-y));\n }\n .submenu:hover > .menu-item, .submenu:focus-within > .menu-item {\n color: var(--menu-item-hover-color);\n background-color: var(--menu-item-hover-bg);\n }\n .submenu.show > .menu-item {\n color: var(--menu-item-hover-color);\n background-color: var(--menu-item-hover-bg);\n }\n}\n@layer components {\n .list-group {\n --list-group-color: var(--fg-body);\n --list-group-bg: var(--bg-body);\n --list-group-border-color: var(--border-color);\n --list-group-border-width: var(--border-width);\n --list-group-border-radius: var(--radius-5);\n --list-group-item-padding-x: var(--spacer);\n --list-group-item-padding-y: var(--spacer-2);\n --list-group-action-color: var(--fg-2);\n --list-group-action-hover-color: var(--fg-1);\n --list-group-action-hover-bg: var(--bg-1);\n --list-group-action-active-color: var(--fg-body);\n --list-group-action-active-bg: var(--bg-2);\n --list-group-disabled-color: var(--fg-3);\n --list-group-disabled-bg: var(--bg-body);\n --list-group-active-color: var(--primary-contrast);\n --list-group-active-bg: var(--primary-bg);\n --list-group-active-border-color: var(--primary-bg);\n display: flex;\n flex-direction: column;\n padding-inline-start: 0;\n margin-bottom: 0;\n border-radius: var(--list-group-border-radius);\n }\n .list-group-numbered {\n list-style-type: none;\n counter-reset: section;\n }\n .list-group-numbered > .list-group-item::before {\n content: counters(section, \".\") \". \";\n counter-increment: section;\n }\n .list-group-item {\n position: relative;\n display: block;\n padding: var(--list-group-item-padding-y) var(--list-group-item-padding-x);\n color: var(--theme-fg, var(--list-group-color));\n background-color: var(--theme-bg-subtle, var(--list-group-bg));\n border: var(--list-group-border-width) solid var(--theme-border, var(--list-group-border-color));\n }\n .list-group-item:first-child {\n border-start-start-radius: inherit;\n border-start-end-radius: inherit;\n }\n .list-group-item:last-child {\n border-end-start-radius: inherit;\n border-end-end-radius: inherit;\n }\n .list-group-item.disabled, .list-group-item:disabled {\n color: var(--list-group-disabled-color);\n pointer-events: none;\n background-color: var(--list-group-disabled-bg);\n }\n .list-group-item.active {\n z-index: 2;\n color: var(--list-group-active-color);\n background-color: var(--list-group-active-bg);\n border-color: var(--list-group-active-border-color);\n }\n .list-group-item + .list-group-item {\n border-block-start-width: 0;\n }\n .list-group-item + .list-group-item.active {\n margin-top: calc(-1 * var(--list-group-border-width));\n border-block-start-width: var(--list-group-border-width);\n }\n .list-group-item-action {\n width: 100%;\n color: var(--theme-fg, var(--list-group-action-color));\n text-align: inherit;\n text-decoration: none;\n }\n .list-group-item-action:not(.active):hover, .list-group-item-action:not(.active):focus {\n z-index: 1;\n color: var(--theme-fg-emphasis, var(--list-group-action-hover-color));\n text-decoration: none;\n background-color: var(--theme-bg-muted, var(--list-group-action-hover-bg));\n }\n .list-group-item-action:not(.active):active {\n color: var(--theme-fg-emphasis, var(--list-group-action-active-color));\n background-color: var(--theme-bg-muted, var(--list-group-action-active-bg));\n }\n .list-group-horizontal {\n flex-direction: row;\n }\n .list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n @media (width >= 576px) {\n .sm\\:list-group-horizontal {\n flex-direction: row;\n }\n .sm\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .sm\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .sm\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .sm\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .sm\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n @media (width >= 768px) {\n .md\\:list-group-horizontal {\n flex-direction: row;\n }\n .md\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .md\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .md\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .md\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .md\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n @media (width >= 1024px) {\n .lg\\:list-group-horizontal {\n flex-direction: row;\n }\n .lg\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .lg\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .lg\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .lg\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .lg\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n @media (width >= 1280px) {\n .xl\\:list-group-horizontal {\n flex-direction: row;\n }\n .xl\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .xl\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .xl\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .xl\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .xl\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:list-group-horizontal {\n flex-direction: row;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-end-start-radius: var(--list-group-border-radius);\n border-start-end-radius: 0;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-start-end-radius: var(--list-group-border-radius);\n border-end-start-radius: 0;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n }\n .\\32 xl\\:list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n .list-group-flush {\n border-radius: 0;\n }\n .list-group-flush > .list-group-item {\n border-width: 0 0 var(--list-group-border-width);\n }\n .list-group-flush > .list-group-item:last-child {\n border-block-end-width: 0;\n }\n}\n@layer components {\n .nav {\n --nav-gap: 0.125rem;\n --nav-link-gap: 0.5rem;\n --nav-link-align: center;\n --nav-link-justify: center;\n --nav-link-padding-x: 0.75rem;\n --nav-link-padding-y: 0.375rem;\n --nav-link-color: var(--fg-2);\n --nav-link-hover-color: var(--fg-1);\n --nav-link-hover-bg: var(--bg-1);\n --nav-link-active-color: var(--fg-body);\n --nav-link-active-bg: var(--bg-2);\n --nav-link-disabled-color: var(--fg-4);\n --nav-link-border-width: var(--border-width);\n --nav-link-transition-property: color, background-color, border-color;\n --nav-link-transition-timing: 0.15s ease-in-out;\n --nav-link-transition: var(--nav-link-transition-property) var(--nav-link-transition-timing);\n display: flex;\n flex-wrap: wrap;\n gap: var(--nav-gap);\n padding-inline-start: 0;\n margin-bottom: 0;\n list-style: none;\n }\n .nav-item {\n display: flex;\n }\n .nav-link {\n display: flex;\n gap: var(--nav-link-gap);\n align-items: var(--nav-link-align);\n justify-content: var(--nav-link-justify);\n padding: var(--nav-link-padding-y) var(--nav-link-padding-x);\n font-weight: var(--nav-link-font-weight);\n color: var(--nav-link-color);\n text-decoration: none;\n white-space: nowrap;\n background: none;\n border: var(--nav-link-border-width) solid transparent;\n border-radius: var(--radius-5);\n transition: var(--nav-link-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .nav-link {\n transition: none;\n }\n }\n .nav-link:hover, .nav-link:focus {\n color: var(--nav-link-hover-color);\n background-color: var(--nav-link-hover-bg);\n }\n .nav-link:focus-visible {\n --focus-ring-offset: 1px;\n color: var(--nav-link-hover-color);\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .nav-link.active, .nav-link:active {\n color: var(--nav-link-active-color);\n background-color: var(--nav-link-active-bg);\n }\n .nav-link.disabled, .nav-link:disabled {\n color: var(--nav-link-disabled-color);\n pointer-events: none;\n cursor: default;\n }\n .nav-tabs {\n --nav-tabs-border-width: var(--border-width);\n --nav-tabs-border-color: var(--border-color);\n --nav-tabs-border-radius: var(--radius-5);\n --nav-tabs-link-hover-border-color: var(--border-subtle);\n --nav-tabs-link-active-color: var(--fg-color);\n --nav-tabs-link-active-bg: var(--bg-body);\n --nav-tabs-link-active-border-color: var(--border-color) var(--border-color) var(--bg-body);\n box-shadow: inset 0 calc(-1 * var(--nav-tabs-border-width)) 0 var(--nav-tabs-border-color);\n }\n .nav-tabs .nav-link {\n border: var(--nav-tabs-border-width) solid transparent;\n border-bottom-color: var(--nav-tabs-border-color);\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .nav-tabs .nav-link:hover {\n isolation: isolate;\n border-color: var(--nav-tabs-link-hover-border-color);\n border-bottom-color: var(--nav-tabs-border-color);\n }\n .nav-tabs .nav-link.active,\n .nav-tabs .nav-item.show .nav-link {\n color: var(--nav-tabs-link-active-color);\n background-color: var(--nav-tabs-link-active-bg);\n border-color: var(--nav-tabs-link-active-border-color);\n border-bottom-color: var(--nav-tabs-link-active-bg);\n }\n .nav-tabs .menu {\n margin-top: calc(-1 * var(--nav-tabs-border-width));\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n .nav-pills {\n --nav-pills-bg: var(--bg-1);\n --nav-pills-padding: 0.25rem;\n --nav-pills-border-radius: var(--radius-9);\n --nav-pills-link-active-color: var(--primary-contrast);\n --nav-pills-link-active-bg: var(--primary-bg);\n --nav-pills-link-border-radius: var(--radius-9);\n display: inline-flex;\n padding: var(--nav-pills-padding);\n background-color: var(--nav-pills-bg);\n border-radius: var(--nav-pills-border-radius);\n }\n .nav-pills .nav-link {\n border-radius: var(--nav-pills-link-border-radius);\n }\n .nav-pills .nav-link.active,\n .nav-pills .show > .nav-link {\n color: var(--nav-pills-link-active-color);\n background-color: var(--nav-pills-link-active-bg);\n background-image: var(--gradient);\n }\n .nav-pills-vertical {\n flex-direction: column;\n align-items: stretch;\n }\n .nav-pills-vertical .nav-item,\n .nav-pills-vertical .nav-link {\n width: 100%;\n }\n .nav-underline {\n --nav-gap: 1rem;\n --nav-link-active-bg: transparent;\n --nav-underline-border-width: 0.125rem;\n --nav-underline-link-active-color: var(--fg-color);\n }\n .nav-underline .nav-link {\n padding-inline: 0;\n border: 0;\n border-block-end: var(--nav-underline-border-width) solid transparent;\n border-radius: 0;\n }\n .nav-underline .nav-link:hover, .nav-underline .nav-link:focus {\n border-block-end-color: currentcolor;\n }\n .nav-underline .nav-link.active,\n .nav-underline .show > .nav-link {\n font-weight: 700;\n color: var(--nav-underline-link-active-color);\n border-block-end-color: currentcolor;\n }\n .nav-fill > .nav-link,\n .nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n .nav-justified > .nav-link,\n .nav-justified .nav-item {\n flex-grow: 1;\n flex-basis: 0;\n text-align: center;\n }\n .nav-fill .nav-item .nav-link,\n .nav-justified .nav-item .nav-link {\n width: 100%;\n }\n .tab-content > .tab-pane {\n display: none;\n }\n .tab-content > .active {\n display: block;\n }\n}\n@layer components {\n .nav-overflow {\n flex-wrap: nowrap;\n min-width: 0;\n }\n .nav-pills.nav-overflow {\n display: flex;\n }\n .navbar-nav.nav-overflow {\n flex: 1 1 0;\n }\n .nav-overflow-item {\n flex-shrink: 0;\n margin-inline-start: auto;\n }\n .nav-overflow [data-bs-nav-overflow=true] {\n display: none;\n }\n .nav-overflow-keep {\n flex-shrink: 0;\n }\n}\n@layer components {\n .navbar {\n --navbar-padding-x: 0;\n --navbar-padding-y: 0.5rem;\n --navbar-color: var(--fg-2);\n --navbar-hover-color: var(--fg-1);\n --navbar-disabled-color: var(--fg-3);\n --navbar-active-color: var(--fg-body);\n --navbar-brand-padding-y: 0.75rem;\n --navbar-brand-margin-end: 1rem;\n --navbar-brand-font-size: var(--font-size-md);\n --navbar-brand-font-weight: var(--font-weight-medium);\n --navbar-brand-color: var(--fg-body);\n --navbar-brand-hover-color: var(--fg-body);\n --navbar-nav-link-padding-x: 0.75rem;\n --navbar-toggler-width: 2rem;\n --navbar-toggler-padding-y: 0.25rem;\n --navbar-toggler-padding-x: 0.75rem;\n --navbar-toggler-font-size: var(--font-size-lg);\n --navbar-toggler-border-color: color-mix(in oklch, var(--fg-body) 15%, transparent);\n --navbar-toggler-border-radius: var(--radius-5);\n --navbar-toggler-transition: box-shadow 0.15s ease-in-out;\n --navbar-toggler-icon-size: 1.25rem;\n --navbar-toggler-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath stroke='black' stroke-linecap='round' stroke-width='1' d='M1 3.5h14M1 8h14M1 12.5h14'/%3e%3c/svg%3e\");\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: var(--navbar-padding-y) var(--navbar-padding-x);\n container-type: inline-size;\n color: var(--navbar-color, var(--fg-body));\n background-color: var(--navbar-bg, var(--bg-body));\n }\n .navbar > .\\32 xl\\:container, .navbar > .xl\\:container, .navbar > .lg\\:container, .navbar > .md\\:container, .navbar > .sm\\:container, .navbar > .container,\n .navbar > .container-fluid {\n display: flex;\n flex-wrap: inherit;\n align-items: center;\n justify-content: space-between;\n }\n .navbar-brand {\n padding-top: var(--navbar-brand-padding-y);\n padding-bottom: var(--navbar-brand-padding-y);\n margin-inline-end: var(--navbar-brand-margin-end);\n font-size: var(--navbar-brand-font-size);\n font-weight: var(--navbar-brand-font-weight);\n color: var(--navbar-brand-color);\n text-decoration: none;\n white-space: nowrap;\n }\n .navbar-brand:hover, .navbar-brand:focus {\n color: var(--navbar-brand-hover-color);\n }\n .navbar-nav {\n --nav-gap: 0.25rem;\n --nav-link-gap: 0.5rem;\n --nav-link-padding-x: 0.5rem;\n --nav-link-padding-y: 0.375rem;\n --nav-link-color: var(--navbar-color);\n --nav-link-border-width: var(--border-width);\n --nav-link-hover-color: var(--navbar-hover-color);\n --nav-link-hover-bg: transparent;\n --nav-link-active-color: var(--navbar-active-color);\n --nav-link-active-bg: transparent;\n --nav-link-disabled-color: var(--navbar-disabled-color);\n display: flex;\n flex-direction: column;\n gap: var(--nav-gap);\n padding-inline-start: 0;\n margin-bottom: 0;\n list-style: none;\n }\n .navbar-nav .nav-link.active, .navbar-nav .nav-link.show {\n color: var(--navbar-active-color);\n border: var(--nav-link-border-width) solid var(--nav-link-border-color, transparent);\n }\n .navbar-text {\n padding-top: var(--navbar-brand-padding-y);\n padding-bottom: var(--navbar-brand-padding-y);\n color: var(--navbar-color);\n }\n .navbar-text a,\n .navbar-text a:hover,\n .navbar-text a:focus {\n color: var(--navbar-active-color);\n }\n .navbar-toggler {\n --btn-bg: transparent;\n --btn-hover-bg: var(--bg-2);\n }\n .navbar-toggler-icon {\n display: inline-block;\n width: var(--navbar-toggler-icon-size);\n height: var(--navbar-toggler-icon-size);\n background-color: currentcolor;\n mask-image: var(--navbar-toggler-icon);\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: contain;\n }\n .navbar-expand > .container,\n .navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .navbar-expand .navbar-toggler {\n display: none !important;\n }\n .navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n .navbar-expand {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n @container (width >= 576px) {\n .sm\\:navbar-expand > .container,\n .sm\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .sm\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .sm\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .sm\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .sm\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .sm\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n @container (width >= 768px) {\n .md\\:navbar-expand > .container,\n .md\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .md\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .md\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .md\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .md\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .md\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n @container (width >= 1024px) {\n .lg\\:navbar-expand > .container,\n .lg\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .lg\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .lg\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .lg\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .lg\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .lg\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n @container (width >= 1280px) {\n .xl\\:navbar-expand > .container,\n .xl\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .xl\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .xl\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .xl\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .xl\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .xl\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:navbar-expand > .container,\n .\\32 xl\\:navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .\\32 xl\\:navbar-expand .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n .\\32 xl\\:navbar-expand .navbar-toggler {\n display: none !important;\n }\n .\\32 xl\\:navbar-expand [class*=drawer] {\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n box-shadow: none;\n transition: none;\n }\n .\\32 xl\\:navbar-expand [class*=drawer] .drawer-header {\n display: none !important;\n }\n .\\32 xl\\:navbar-expand [class*=drawer] .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n .navbar [class*=drawer]:not([open], .hiding) {\n transition: none !important;\n }\n @media (prefers-reduced-motion: reduce) {\n .navbar [class*=drawer]:not([open], .hiding) {\n transition: none;\n }\n }\n .navbar-translucent {\n position: relative;\n background-color: transparent;\n }\n .navbar-translucent::before {\n position: absolute;\n inset: 0;\n z-index: -1;\n content: \"\";\n background-color: color-mix(in oklch, var(--navbar-bg, var(--bg-body)) 80%, transparent);\n background-image: none;\n backdrop-filter: blur(5px) saturate(180%);\n }\n .navbar[data-bs-theme=dark] {\n --navbar-color: color-mix(in oklch, var(--white) 0.55, transparent);\n --navbar-hover-color: color-mix(in oklch, var(--white) 0.75, transparent);\n --navbar-disabled-color: color-mix(in oklch, var(--white) 0.25, transparent);\n --navbar-active-color: var(--white);\n --navbar-brand-color: var(--white);\n --navbar-brand-hover-color: var(--white);\n --navbar-toggler-border-color: color-mix(in oklch, var(--white) 0.1, transparent);\n }\n}\n.drawer, .\\32 xl\\:drawer, .xl\\:drawer, .lg\\:drawer, .md\\:drawer, .sm\\:drawer {\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n}\n\n@layer components {\n @media (width < 576px) {\n .sm\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .sm\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .sm\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .sm\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .sm\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .sm\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .sm\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 576px) and (prefers-reduced-motion: reduce) {\n .sm\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 576px) {\n .sm\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .sm\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .sm\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .sm\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 576px) and (prefers-reduced-motion: reduce) {\n .sm\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 576px) {\n .sm\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 576px) {\n .sm\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 576px) and (prefers-reduced-motion: reduce) {\n .sm\\:drawer {\n transition: none;\n }\n }\n @media (width >= 576px) {\n .sm\\:drawer .drawer-header {\n display: none;\n }\n .sm\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n @media (width < 768px) {\n .md\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .md\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .md\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .md\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .md\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .md\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .md\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 768px) and (prefers-reduced-motion: reduce) {\n .md\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 768px) {\n .md\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .md\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .md\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .md\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 768px) and (prefers-reduced-motion: reduce) {\n .md\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 768px) {\n .md\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 768px) {\n .md\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 768px) and (prefers-reduced-motion: reduce) {\n .md\\:drawer {\n transition: none;\n }\n }\n @media (width >= 768px) {\n .md\\:drawer .drawer-header {\n display: none;\n }\n .md\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n @media (width < 1024px) {\n .lg\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .lg\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .lg\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .lg\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .lg\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .lg\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .lg\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 1024px) and (prefers-reduced-motion: reduce) {\n .lg\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 1024px) {\n .lg\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .lg\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .lg\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .lg\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 1024px) and (prefers-reduced-motion: reduce) {\n .lg\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 1024px) {\n .lg\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 1024px) {\n .lg\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 1024px) and (prefers-reduced-motion: reduce) {\n .lg\\:drawer {\n transition: none;\n }\n }\n @media (width >= 1024px) {\n .lg\\:drawer .drawer-header {\n display: none;\n }\n .lg\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n @media (width < 1280px) {\n .xl\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .xl\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .xl\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .xl\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .xl\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .xl\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .xl\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 1280px) and (prefers-reduced-motion: reduce) {\n .xl\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 1280px) {\n .xl\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .xl\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .xl\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .xl\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 1280px) and (prefers-reduced-motion: reduce) {\n .xl\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 1280px) {\n .xl\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 1280px) {\n .xl\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 1280px) and (prefers-reduced-motion: reduce) {\n .xl\\:drawer {\n transition: none;\n }\n }\n @media (width >= 1280px) {\n .xl\\:drawer .drawer-header {\n display: none;\n }\n .xl\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n @media (width < 1536px) {\n .\\32 xl\\:drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .\\32 xl\\:drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .\\32 xl\\:drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .\\32 xl\\:drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .\\32 xl\\:drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .\\32 xl\\:drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .\\32 xl\\:drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n }\n @media (width < 1536px) and (prefers-reduced-motion: reduce) {\n .\\32 xl\\:drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n @media (width < 1536px) {\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .\\32 xl\\:drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n transform: none;\n }\n }\n @media (width < 1536px) and (prefers-reduced-motion: reduce) {\n .\\32 xl\\:drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n @media (width < 1536px) {\n .\\32 xl\\:drawer[open] {\n visibility: visible;\n transform: none;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:drawer {\n --drawer-height: auto;\n --drawer-border-width: 0;\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none !important;\n border-radius: 0;\n box-shadow: none;\n }\n }\n @media (width >= 1536px) and (prefers-reduced-motion: reduce) {\n .\\32 xl\\:drawer {\n transition: none;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:drawer .drawer-header {\n display: none;\n }\n .\\32 xl\\:drawer .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n }\n .drawer {\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n border-radius: var(--drawer-border-radius);\n box-shadow: var(--drawer-box-shadow);\n }\n .drawer:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .drawer:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n .drawer:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n .drawer:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n .drawer:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n .drawer:not(.drawer-instant) {\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration);\n }\n @media (prefers-reduced-motion: reduce) {\n .drawer:not(.drawer-instant) {\n transition: none;\n }\n }\n .drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n :root:dir(rtl) .drawer:not(.drawer-instant):where(.drawer-start) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n :root:dir(rtl) .drawer:not(.drawer-instant):where(.drawer-end) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant):where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant):where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant):where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n .drawer:not(.drawer-instant)[open] {\n visibility: visible;\n transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s;\n }\n @media (prefers-reduced-motion: reduce) {\n .drawer:not(.drawer-instant)[open] {\n transition: none;\n }\n }\n .drawer:not(.drawer-instant)[open] {\n transform: none;\n }\n .drawer[open] {\n visibility: visible;\n transform: none;\n }\n .sm\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .sm\\:drawer::backdrop {\n transition: none;\n }\n }\n .md\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .md\\:drawer::backdrop {\n transition: none;\n }\n }\n .lg\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .lg\\:drawer::backdrop {\n transition: none;\n }\n }\n .xl\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .xl\\:drawer::backdrop {\n transition: none;\n }\n }\n .\\32 xl\\:drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .\\32 xl\\:drawer::backdrop {\n transition: none;\n }\n }\n .drawer::backdrop {\n --drawer-backdrop-bg: var(--bg-body);\n --drawer-backdrop-opacity: 25%;\n --drawer-backdrop-blur: 8px;\n --drawer-inset: var(--spacer);\n --drawer-zindex: 1045;\n --drawer-width: 400px;\n --drawer-height: 30vh;\n --drawer-padding-x: var(--spacer);\n --drawer-padding-y: var(--spacer);\n --drawer-color: var(--fg-body);\n --drawer-bg: var(--bg-body);\n --drawer-border-width: var(--border-width);\n --drawer-border-color: var(--border-color-translucent);\n --drawer-border-radius: var(--radius-7);\n --drawer-box-shadow: var(--box-shadow-lg);\n --drawer-transition-duration: 0.3s;\n --drawer-transition-timing: cubic-bezier(0.22, 1, 0.36, 1);\n --drawer-title-line-height: 1.5;\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n transition: background-color var(--drawer-transition-duration) var(--drawer-transition-timing), backdrop-filter var(--drawer-transition-duration) var(--drawer-transition-timing), display var(--drawer-transition-duration) allow-discrete, overlay var(--drawer-transition-duration) allow-discrete;\n }\n @media (prefers-reduced-motion: reduce) {\n .drawer::backdrop {\n transition: none;\n }\n }\n @starting-style {\n .sm\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .md\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .lg\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .xl\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .\\32 xl\\:drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n .drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n }\n .drawer-static {\n transform: scale(1.02);\n }\n .drawer-translucent {\n background-color: color-mix(in oklch, var(--drawer-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n .drawer-sheet {\n --drawer-inset: 0;\n --drawer-border-radius: 0;\n --drawer-border-width: 0;\n --drawer-box-shadow: none;\n }\n .drawer-header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n padding: var(--drawer-padding-y) var(--drawer-padding-x);\n }\n .drawer-header .btn-close {\n margin-block: calc(-0.5 * var(--drawer-padding-y));\n margin-inline-start: auto;\n }\n .drawer-title {\n margin-bottom: 0;\n line-height: var(--drawer-title-line-height);\n }\n .drawer-body {\n display: flex;\n flex-direction: column;\n gap: var(--drawer-padding-y);\n flex: 1 1 auto;\n padding: var(--drawer-padding-y) var(--drawer-padding-x);\n overflow-y: auto;\n }\n .drawer-footer {\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n gap: 0.5rem;\n align-items: center;\n justify-content: flex-end;\n padding: var(--drawer-padding-y) var(--drawer-padding-x);\n border-block-start: var(--drawer-border-width) solid var(--drawer-border-color);\n }\n .drawer-fit-content {\n inset-block-end: auto;\n }\n}\n@layer components {\n .pagination {\n --pagination-min-height: var(--btn-input-min-height);\n --pagination-padding-x: var(--btn-input-padding-x);\n --pagination-padding-y: var(--btn-input-padding-y);\n --pagination-font-size: var(--btn-input-font-size);\n --pagination-color: var(--link-color);\n --pagination-bg: var(--bg-body);\n --pagination-border-width: var(--border-width);\n --pagination-border-color: var(--border-color);\n --pagination-border-radius: var(--btn-input-border-radius);\n --pagination-hover-color: var(--link-hover-color);\n --pagination-hover-bg: var(--bg-1);\n --pagination-hover-border-color: var(--border-color);\n --pagination-focus-color: var(--link-hover-color);\n --pagination-focus-bg: var(--bg-2);\n --pagination-active-color: var(--primary-contrast);\n --pagination-active-bg: var(--primary-bg);\n --pagination-active-border-color: var(--primary-bg);\n --pagination-disabled-color: var(--fg-3);\n --pagination-disabled-bg: var(--bg-2);\n --pagination-disabled-border-color: var(--border-color);\n display: flex;\n padding-inline-start: 0;\n list-style: none;\n }\n .page-link {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: var(--pagination-min-height);\n padding: var(--pagination-padding-y) var(--pagination-padding-x);\n font-size: var(--pagination-font-size);\n color: var(--pagination-color);\n text-decoration: none;\n background-color: var(--pagination-bg);\n border: var(--pagination-border-width) solid var(--pagination-border-color);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n @media (prefers-reduced-motion: reduce) {\n .page-link {\n transition: none;\n }\n }\n .page-link:hover {\n z-index: 2;\n color: var(--pagination-hover-color);\n background-color: var(--pagination-hover-bg);\n border-color: var(--pagination-hover-border-color);\n }\n .page-link:focus-visible {\n z-index: 3;\n color: var(--pagination-focus-color);\n background-color: var(--pagination-focus-bg);\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n }\n .page-link.active, .active > .page-link {\n z-index: 3;\n color: var(--pagination-active-color);\n background-color: var(--pagination-active-bg);\n background-image: var(--gradient);\n border-color: var(--pagination-active-border-color);\n }\n .page-link.disabled, .disabled > .page-link {\n color: var(--pagination-disabled-color);\n pointer-events: none;\n background-color: var(--pagination-disabled-bg);\n border-color: var(--pagination-disabled-border-color);\n }\n .page-item:not(:first-child) .page-link {\n margin-inline-start: calc(-1 * var(--pagination-border-width));\n }\n .page-item:first-child .page-link {\n border-start-start-radius: var(--pagination-border-radius);\n border-end-start-radius: var(--pagination-border-radius);\n }\n .page-item:last-child .page-link {\n border-start-end-radius: var(--pagination-border-radius);\n border-end-end-radius: var(--pagination-border-radius);\n }\n .pagination-sm {\n --pagination-min-height: var(--bs-btn-input-sm-min-height);\n --pagination-padding-y: var(--btn-input-sm-padding-y);\n --pagination-padding-x: var(--btn-input-sm-padding-x);\n --pagination-font-size: var(--btn-input-sm-font-size);\n --pagination-border-radius: var(--btn-input-sm-border-radius);\n }\n .pagination-lg {\n --pagination-min-height: var(--bs-btn-input-lg-min-height);\n --pagination-padding-y: var(--btn-input-lg-padding-y);\n --pagination-padding-x: var(--btn-input-lg-padding-x);\n --pagination-font-size: var(--btn-input-lg-font-size);\n --pagination-border-radius: var(--btn-input-lg-border-radius);\n }\n}\n@layer components {\n .placeholder {\n --placeholder-opacity-max: 0.5;\n --placeholder-opacity-min: 0.2;\n display: inline-block;\n min-height: 1em;\n vertical-align: middle;\n cursor: wait;\n background-color: currentcolor;\n opacity: var(--placeholder-opacity-max);\n }\n .placeholder.btn::before {\n display: inline-block;\n content: \"\";\n }\n .placeholder-xs {\n min-height: 0.6em;\n }\n .placeholder-sm {\n min-height: 0.8em;\n }\n .placeholder-lg {\n min-height: 1.2em;\n }\n .placeholder-glow .placeholder {\n animation: placeholder-glow 2s ease-in-out infinite;\n }\n @keyframes placeholder-glow {\n 50% {\n opacity: var(--placeholder-opacity-min);\n }\n }\n .placeholder-wave {\n mask-image: linear-gradient(130deg, #000 55%, rgb(0, 0, 0, calc(1 - var(--placeholder-opacity-min))) 75%, #000 95%);\n mask-size: 200% 100%;\n animation: placeholder-wave 2s linear infinite;\n }\n @keyframes placeholder-wave {\n 100% {\n mask-position: -200% 0%;\n }\n }\n}\n@layer components {\n .popover {\n --popover-zindex: 1070;\n --popover-max-width: 280px;\n --popover-font-size: var(--font-size-sm);\n --popover-bg: var(--bg-body);\n --popover-border-width: var(--border-width);\n --popover-border-color: var(--border-color-translucent);\n --popover-border-radius: var(--radius-7);\n --popover-inner-border-radius: calc(var(--radius-7) - var(--border-width));\n --popover-box-shadow: var(--box-shadow);\n --popover-header-padding-x: var(--spacer);\n --popover-header-padding-y: var(--spacer-3);\n --popover-header-font-size: var(--font-size-sm);\n --popover-header-color: inherit;\n --popover-header-bg: var(--bg-1);\n --popover-body-padding-x: var(--spacer);\n --popover-body-padding-y: var(--spacer-3);\n --popover-body-color: var(--fg-body);\n --popover-arrow-width: 1rem;\n --popover-arrow-height: 0.5rem;\n --popover-arrow-border: var(--popover-border-color);\n z-index: var(--popover-zindex);\n display: block;\n max-width: var(--popover-max-width);\n font-family: var(--body-font-family);\n font-style: normal;\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: var(--popover-font-size);\n word-wrap: break-word;\n background-color: var(--popover-bg);\n background-clip: padding-box;\n border: var(--popover-border-width) solid var(--popover-border-color);\n border-radius: var(--popover-border-radius);\n box-shadow: var(--popover-box-shadow);\n }\n .popover .popover-arrow {\n display: block;\n width: var(--popover-arrow-width);\n height: var(--popover-arrow-height);\n }\n .popover .popover-arrow::before, .popover .popover-arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n border-width: 0;\n }\n .bs-popover-top > .popover-arrow, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow {\n bottom: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n }\n .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow::after {\n border-width: var(--popover-arrow-height) calc(var(--popover-arrow-width) * 0.5) 0;\n }\n .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow::before {\n bottom: 0;\n border-block-start-color: var(--popover-arrow-border);\n }\n .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=top] > .popover-arrow::after {\n bottom: var(--popover-border-width);\n border-block-start-color: var(--popover-bg);\n }\n .bs-popover-end > .popover-arrow, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow {\n left: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n width: var(--popover-arrow-height);\n height: var(--popover-arrow-width);\n }\n .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow::after {\n border-width: calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height) calc(var(--popover-arrow-width) * 0.5) 0;\n }\n .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow::before {\n left: 0;\n border-inline-end-color: var(--popover-arrow-border);\n }\n .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=right] > .popover-arrow::after {\n left: var(--popover-border-width);\n border-inline-end-color: var(--popover-bg);\n }\n .bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow {\n top: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n }\n .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow::after {\n border-width: 0 calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height);\n }\n .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow::before {\n top: 0;\n border-block-end-color: var(--popover-arrow-border);\n }\n .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=bottom] > .popover-arrow::after {\n top: var(--popover-border-width);\n border-block-end-color: var(--popover-bg);\n }\n .bs-popover-bottom .popover-header::before, .bs-popover-auto[data-bs-placement^=bottom] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: var(--popover-arrow-width);\n margin-inline-start: calc(-0.5 * var(--popover-arrow-width));\n content: \"\";\n border-block-end: var(--popover-border-width) solid var(--popover-header-bg);\n }\n .bs-popover-start > .popover-arrow, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow {\n right: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n width: var(--popover-arrow-height);\n height: var(--popover-arrow-width);\n }\n .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow::after {\n border-width: calc(var(--popover-arrow-width) * 0.5) 0 calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height);\n }\n .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow::before {\n right: 0;\n border-inline-start-color: var(--popover-arrow-border);\n }\n .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-bs-placement^=left] > .popover-arrow::after {\n right: var(--popover-border-width);\n border-inline-start-color: var(--popover-bg);\n }\n .popover-header {\n padding: var(--popover-header-padding-y) var(--popover-header-padding-x);\n margin-bottom: 0;\n font-size: var(--popover-header-font-size);\n color: var(--popover-header-color);\n background-color: var(--popover-header-bg);\n border-block-end: var(--popover-border-width) solid var(--popover-border-color);\n border-start-start-radius: var(--popover-inner-border-radius);\n border-start-end-radius: var(--popover-inner-border-radius);\n }\n .popover-header:empty {\n display: none;\n }\n .popover-body {\n padding: var(--popover-body-padding-y) var(--popover-body-padding-x);\n color: var(--popover-body-color);\n }\n}\n@layer components {\n @keyframes progress-bar-stripes {\n 0% {\n background-position-x: var(--progress-height);\n }\n }\n .progress,\n .progress-stacked {\n --progress-height: 1rem;\n --progress-font-size: var(--font-size-sm);\n --progress-bg: var(--bg-2);\n --progress-border-radius: var(--radius-5);\n --progress-box-shadow: var(--box-shadow-inset);\n --progress-bar-color: var(--white);\n --progress-bar-bg: var(--primary-bg);\n --progress-bar-transition: width 0.6s ease;\n --progress-bar-animation: progress-bar-stripes 1s linear infinite;\n display: flex;\n height: var(--progress-height);\n overflow: hidden;\n font-size: var(--progress-font-size);\n background-color: var(--progress-bg);\n border-radius: var(--progress-border-radius);\n box-shadow: var(--progress-box-shadow);\n }\n .progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: var(--theme-contrast, var(--progress-bar-color));\n text-align: center;\n white-space: nowrap;\n background-color: var(--theme-bg, var(--progress-bar-bg));\n transition: var(--progress-bar-transition);\n }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n }\n .progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: var(--progress-height) var(--progress-height);\n }\n .progress-stacked > .progress {\n overflow: visible;\n }\n .progress-stacked > .progress > .progress-bar {\n width: 100%;\n }\n .progress-bar-animated {\n animation: var(--progress-bar-animation);\n }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n }\n}\n@layer components {\n .spinner-grow,\n .spinner-border {\n display: inline-block;\n flex-shrink: 0;\n width: var(--spinner-width);\n height: var(--spinner-height);\n vertical-align: var(--spinner-vertical-align);\n border-radius: 50%;\n animation: var(--spinner-animation-speed) linear infinite var(--spinner-animation-name);\n }\n @keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n }\n .spinner-border {\n --spinner-width: 2rem;\n --spinner-height: 2rem;\n --spinner-vertical-align: -0.125em;\n --spinner-border-width: 0.25em;\n --spinner-animation-speed: 0.75s;\n --spinner-animation-name: spinner-border;\n border: var(--spinner-border-width) solid currentcolor;\n border-inline-end-color: transparent;\n }\n .spinner-border-sm {\n --spinner-width: 1rem;\n --spinner-height: 1rem;\n --spinner-border-width: .2em;\n }\n @keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n }\n .spinner-grow {\n --spinner-width: 2rem;\n --spinner-height: 2rem;\n --spinner-vertical-align: -0.125em;\n --spinner-animation-speed: 0.75s;\n --spinner-animation-name: spinner-grow;\n background-color: currentcolor;\n opacity: 0;\n }\n .spinner-grow-sm {\n --spinner-width: 1rem;\n --spinner-height: 1rem;\n }\n @media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n --spinner-animation-speed: 1.5s;\n }\n }\n}\n@layer components {\n .stepper {\n --stepper-size: 2rem;\n --stepper-gap: 1rem;\n --stepper-font-size: var(--font-size-sm);\n --stepper-text-gap: 0.5rem;\n --stepper-track-size: 0.125rem;\n --stepper-bg: var(--bg-2);\n --stepper-active-color: var(--primary-contrast);\n --stepper-active-bg: var(--primary-bg);\n display: grid;\n grid-auto-rows: 1fr;\n grid-auto-flow: row;\n gap: var(--stepper-gap);\n padding-inline-start: 0;\n list-style: none;\n counter-reset: stepper;\n }\n .stepper-item {\n position: relative;\n display: grid;\n grid-template-rows: auto;\n grid-template-columns: var(--stepper-size) auto;\n gap: var(--stepper-text-gap);\n align-items: var(--stepper-align-items, center);\n text-decoration: none;\n }\n .stepper-item::before {\n position: relative;\n z-index: 1;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--stepper-size);\n height: var(--stepper-size);\n padding: 0.5rem;\n font-size: var(--stepper-font-size);\n font-weight: 600;\n line-height: 1;\n text-align: center;\n content: counter(stepper);\n counter-increment: stepper;\n background-color: var(--stepper-bg);\n border-radius: 50%;\n }\n .stepper-item::after {\n position: absolute;\n inset-block-start: 50%;\n inset-block-end: 100%;\n inset-inline-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n width: var(--stepper-track-size);\n height: calc(100% + var(--stepper-gap));\n content: \"\";\n background-color: var(--stepper-bg);\n }\n .stepper-item:last-child::after {\n display: none;\n }\n .stepper-item.active::before, .stepper-item.active::after {\n color: var(--theme-contrast, var(--stepper-active-color));\n background-color: var(--theme-bg, var(--stepper-active-bg));\n }\n .stepper-item.active:not(:has(+ .stepper-item.active))::after {\n background-color: var(--stepper-bg);\n }\n .stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n @container (width >= 576px) {\n .sm\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .sm\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .sm\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .sm\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n @container (width >= 768px) {\n .md\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .md\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .md\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .md\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n @container (width >= 1024px) {\n .lg\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .lg\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .lg\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .lg\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n @container (width >= 1280px) {\n .xl\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .xl\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .xl\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .xl\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:stepper-horizontal {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n }\n .\\32 xl\\:stepper-horizontal .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n }\n .\\32 xl\\:stepper-horizontal .stepper-item::after {\n inset-block-start: calc(var(--stepper-size) * 0.5 - var(--stepper-track-size) * 0.5);\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n .\\32 xl\\:stepper-horizontal .stepper-item:last-child::after {\n right: 100%;\n }\n }\n .stepper-overflow {\n container-type: inline-size;\n overflow-x: auto;\n overscroll-behavior-x: contain;\n -webkit-overflow-scrolling: touch;\n }\n .stepper-overflow > .stepper {\n width: max-content;\n min-width: 100%;\n }\n}\n@layer components {\n .toast {\n --toast-zindex: 1090;\n --toast-padding-x: 1rem;\n --toast-padding-y: 0.75rem;\n --toast-spacing: 1.5rem;\n --toast-max-width: 350px;\n --toast-font-size: var(--font-size-sm);\n --toast-bg: var(--bg-body);\n --toast-border-width: var(--border-width);\n --toast-border-color: var(--border-color-translucent);\n --toast-box-shadow: var(--box-shadow);\n --toast-header-color: var(--fg-3);\n --toast-header-bg: var(--bg-1);\n --toast-header-border-color: var(--border-color-translucent);\n display: flex;\n flex-direction: column;\n width: var(--toast-max-width);\n max-width: 100%;\n overflow: hidden;\n font-size: var(--toast-font-size);\n color: var(--toast-color, var(--fg-body));\n pointer-events: auto;\n background-color: var(--toast-bg);\n background-clip: padding-box;\n border: var(--toast-border-width) solid var(--theme-border, var(--toast-border-color));\n box-shadow: var(--toast-box-shadow);\n border-radius: var(--toast-border-radius, var(--radius-7));\n }\n .toast.showing {\n opacity: 0;\n }\n .toast:not(.show) {\n display: none;\n }\n .toast-container {\n --toast-zindex: 1090;\n position: absolute;\n z-index: var(--toast-zindex);\n width: max-content;\n max-width: 100%;\n pointer-events: none;\n }\n .toast-container > :not(:last-child) {\n margin-bottom: var(--toast-spacing);\n }\n .toast-header {\n display: flex;\n align-items: center;\n padding: var(--toast-padding-y) var(--toast-padding-x);\n color: var(--theme-fg-emphasis, var(--toast-header-color));\n background-color: var(--theme-bg-subtle, var(--toast-header-bg));\n border-block-end: var(--toast-border-width, var(--border-width)) solid var(--theme-border, var(--toast-header-border-color, var(--border-color-translucent)));\n }\n .toast-header .btn-close {\n margin-inline-start: calc(0.5 * var(--toast-padding-x));\n margin-inline-end: calc(-0.25 * var(--toast-padding-x));\n color: inherit;\n }\n .toast-translucent {\n backdrop-filter: blur(5px) saturate(180%);\n }\n .toast-body {\n padding: var(--toast-padding-x);\n word-wrap: break-word;\n }\n}\n@layer components {\n .tooltip {\n --tooltip-zindex: 1080;\n --tooltip-max-width: 200px;\n --tooltip-padding-x: var(--spacer-3);\n --tooltip-padding-y: calc(var(--spacer) * 0.375);\n --tooltip-font-size: var(--font-size-sm);\n --tooltip-color: var(--bg-body);\n --tooltip-bg: var(--fg-body);\n --tooltip-border-radius: var(--radius-5);\n --tooltip-opacity: 0.95;\n --tooltip-arrow-width: 0.8rem;\n --tooltip-arrow-height: 0.4rem;\n z-index: var(--tooltip-zindex);\n display: block;\n font-family: var(--body-font-family);\n font-style: normal;\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: var(--tooltip-font-size);\n word-wrap: break-word;\n opacity: 0;\n }\n .tooltip.show {\n opacity: var(--tooltip-opacity);\n }\n .tooltip .tooltip-arrow {\n display: block;\n width: var(--tooltip-arrow-width);\n height: var(--tooltip-arrow-height);\n }\n .tooltip .tooltip-arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n .bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-bs-placement^=top] .tooltip-arrow {\n bottom: calc(-1 * var(--tooltip-arrow-height));\n }\n .bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-bs-placement^=top] .tooltip-arrow::before {\n top: -1px;\n border-width: var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * 0.5) 0;\n border-block-start-color: var(--tooltip-bg);\n }\n .bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-bs-placement^=right] .tooltip-arrow {\n left: calc(-1 * var(--tooltip-arrow-height));\n width: var(--tooltip-arrow-height);\n height: var(--tooltip-arrow-width);\n }\n .bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-bs-placement^=right] .tooltip-arrow::before {\n right: -1px;\n border-width: calc(var(--tooltip-arrow-width) * 0.5) var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * 0.5) 0;\n border-inline-end-color: var(--tooltip-bg);\n }\n .bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-bs-placement^=bottom] .tooltip-arrow {\n top: calc(-1 * var(--tooltip-arrow-height));\n }\n .bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-bs-placement^=bottom] .tooltip-arrow::before {\n bottom: -1px;\n border-width: 0 calc(var(--tooltip-arrow-width) * 0.5) var(--tooltip-arrow-height);\n border-block-end-color: var(--tooltip-bg);\n }\n .bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-bs-placement^=left] .tooltip-arrow {\n right: calc(-1 * var(--tooltip-arrow-height));\n width: var(--tooltip-arrow-height);\n height: var(--tooltip-arrow-width);\n }\n .bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-bs-placement^=left] .tooltip-arrow::before {\n left: -1px;\n border-width: calc(var(--tooltip-arrow-width) * 0.5) 0 calc(var(--tooltip-arrow-width) * 0.5) var(--tooltip-arrow-height);\n border-inline-start-color: var(--tooltip-bg);\n }\n .tooltip-inner {\n max-width: var(--tooltip-max-width);\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n color: var(--tooltip-color);\n text-align: center;\n background-color: var(--tooltip-bg);\n border-radius: var(--tooltip-border-radius);\n }\n}\n.fade {\n transition: opacity 0.15s linear;\n}\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n.collapsing.collapse-horizontal {\n width: 0;\n height: auto;\n transition: width 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing.collapse-horizontal {\n transition: none;\n }\n}\n\n@layer helpers {\n .focus-ring:focus-visible {\n outline: var(--focus-ring-width) solid var(--theme-focus-ring, var(--focus-ring-color));\n }\n}\n@layer helpers {\n .icon-link {\n display: inline-flex;\n gap: 0.375rem;\n align-items: center;\n text-decoration-color: rgba(var(--link-color-rgb), var(--link-opacity, 0.5));\n text-underline-offset: 0.25em;\n backface-visibility: hidden;\n }\n .icon-link > .bi {\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n fill: currentcolor;\n transition: 0.2s ease-in-out transform;\n }\n @media (prefers-reduced-motion: reduce) {\n .icon-link > .bi {\n transition: none;\n }\n }\n .icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi {\n transform: var(--icon-link-transform, translate3d(0.25em, 0, 0));\n }\n}\n@layer helpers {\n .fixed-top {\n position: fixed;\n inset: 0 0 auto;\n z-index: 1030;\n }\n .fixed-bottom {\n position: fixed;\n inset: auto 0 0;\n z-index: 1030;\n }\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n @media (width >= 576px) {\n .sm\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sm\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 768px) {\n .md\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .md\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1024px) {\n .lg\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .lg\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1280px) {\n .xl\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .xl\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .\\32 xl\\:sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n }\n}\n@layer helpers {\n .stack-container {\n container-type: inline-size;\n }\n [class*=hstack],\n [class*=vstack] {\n display: flex;\n flex: var(--stack-flex, 1 1 auto);\n flex-direction: var(--stack-direction, row);\n align-items: var(--stack-align-items, center);\n align-self: var(--stack-align-self, stretch);\n }\n .vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n .hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n @container (width >= 576px) {\n .sm\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 576px) {\n .sm\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 768px) {\n .md\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 768px) {\n .md\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1024px) {\n .lg\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1024px) {\n .lg\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1280px) {\n .xl\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1280px) {\n .xl\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:vstack {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n @container (width >= 1536px) {\n .\\32 xl\\:hstack {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n}\n@layer helpers {\n .theme-primary {\n --theme-base: var(--primary-base);\n --theme-fg: var(--primary-fg);\n --theme-fg-emphasis: var(--primary-fg-emphasis);\n --theme-bg: var(--primary-bg);\n --theme-bg-subtle: var(--primary-bg-subtle);\n --theme-bg-muted: var(--primary-bg-muted);\n --theme-border: var(--primary-border);\n --theme-focus-ring: var(--primary-focus-ring);\n --theme-contrast: var(--primary-contrast);\n }\n .theme-accent {\n --theme-base: var(--accent-base);\n --theme-fg: var(--accent-fg);\n --theme-fg-emphasis: var(--accent-fg-emphasis);\n --theme-bg: var(--accent-bg);\n --theme-bg-subtle: var(--accent-bg-subtle);\n --theme-bg-muted: var(--accent-bg-muted);\n --theme-border: var(--accent-border);\n --theme-focus-ring: var(--accent-focus-ring);\n --theme-contrast: var(--accent-contrast);\n }\n .theme-success {\n --theme-base: var(--success-base);\n --theme-fg: var(--success-fg);\n --theme-fg-emphasis: var(--success-fg-emphasis);\n --theme-bg: var(--success-bg);\n --theme-bg-subtle: var(--success-bg-subtle);\n --theme-bg-muted: var(--success-bg-muted);\n --theme-border: var(--success-border);\n --theme-focus-ring: var(--success-focus-ring);\n --theme-contrast: var(--success-contrast);\n }\n .theme-danger {\n --theme-base: var(--danger-base);\n --theme-fg: var(--danger-fg);\n --theme-fg-emphasis: var(--danger-fg-emphasis);\n --theme-bg: var(--danger-bg);\n --theme-bg-subtle: var(--danger-bg-subtle);\n --theme-bg-muted: var(--danger-bg-muted);\n --theme-border: var(--danger-border);\n --theme-focus-ring: var(--danger-focus-ring);\n --theme-contrast: var(--danger-contrast);\n }\n .theme-warning {\n --theme-base: var(--warning-base);\n --theme-fg: var(--warning-fg);\n --theme-fg-emphasis: var(--warning-fg-emphasis);\n --theme-bg: var(--warning-bg);\n --theme-bg-subtle: var(--warning-bg-subtle);\n --theme-bg-muted: var(--warning-bg-muted);\n --theme-border: var(--warning-border);\n --theme-focus-ring: var(--warning-focus-ring);\n --theme-contrast: var(--warning-contrast);\n }\n .theme-info {\n --theme-base: var(--info-base);\n --theme-fg: var(--info-fg);\n --theme-fg-emphasis: var(--info-fg-emphasis);\n --theme-bg: var(--info-bg);\n --theme-bg-subtle: var(--info-bg-subtle);\n --theme-bg-muted: var(--info-bg-muted);\n --theme-border: var(--info-border);\n --theme-focus-ring: var(--info-focus-ring);\n --theme-contrast: var(--info-contrast);\n }\n .theme-inverse {\n --theme-base: var(--inverse-base);\n --theme-fg: var(--inverse-fg);\n --theme-fg-emphasis: var(--inverse-fg-emphasis);\n --theme-bg: var(--inverse-bg);\n --theme-bg-subtle: var(--inverse-bg-subtle);\n --theme-bg-muted: var(--inverse-bg-muted);\n --theme-border: var(--inverse-border);\n --theme-focus-ring: var(--inverse-focus-ring);\n --theme-contrast: var(--inverse-contrast);\n }\n .theme-secondary {\n --theme-base: var(--secondary-base);\n --theme-fg: var(--secondary-fg);\n --theme-fg-emphasis: var(--secondary-fg-emphasis);\n --theme-bg: var(--secondary-bg);\n --theme-bg-subtle: var(--secondary-bg-subtle);\n --theme-bg-muted: var(--secondary-bg-muted);\n --theme-border: var(--secondary-border);\n --theme-focus-ring: var(--secondary-focus-ring);\n --theme-contrast: var(--secondary-contrast);\n }\n}\n@layer helpers {\n .visually-hidden,\n .visually-hidden-focusable:not(:focus, :focus-within) {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n .visually-hidden:not(caption),\n .visually-hidden-focusable:not(:focus, :focus-within):not(caption) {\n position: absolute !important;\n }\n .visually-hidden *,\n .visually-hidden-focusable:not(:focus, :focus-within) * {\n overflow: hidden !important;\n }\n}\n@layer helpers {\n .stretched-link::after {\n position: absolute;\n inset: 0;\n z-index: 1;\n content: \"\";\n }\n}\n@layer helpers {\n .text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n@layer helpers {\n .vr {\n display: inline-block;\n align-self: stretch;\n width: var(--vr-border-width, var(--border-width));\n min-height: 1em;\n background-color: var(--border-color);\n }\n}\n@layer utilities {\n .align-baseline {\n vertical-align: baseline;\n }\n .align-top {\n vertical-align: top;\n }\n .align-middle {\n vertical-align: middle;\n }\n .align-bottom {\n vertical-align: bottom;\n }\n .align-text-bottom {\n vertical-align: text-bottom;\n }\n .align-text-top {\n vertical-align: text-top;\n }\n [class*=ratio-] {\n aspect-ratio: var(--ratio);\n }\n .ratio-auto {\n --ratio: auto;\n }\n .ratio-1x1 {\n --ratio: 1 / 1;\n }\n .ratio-4x3 {\n --ratio: 4 / 3;\n }\n .ratio-16x9 {\n --ratio: 16 / 9;\n }\n .ratio-21x9 {\n --ratio: 21 / 9;\n }\n .float-start {\n float: inline-start;\n }\n .float-end {\n float: inline-end;\n }\n .float-none {\n float: none;\n }\n .object-fit-contain {\n object-fit: contain;\n }\n .object-fit-cover {\n object-fit: cover;\n }\n .object-fit-fill {\n object-fit: fill;\n }\n .object-fit-scale {\n object-fit: scale-down;\n }\n .object-fit-none {\n object-fit: none;\n }\n .opacity-0 {\n opacity: 0;\n }\n .opacity-25 {\n opacity: 0.25;\n }\n .opacity-50 {\n opacity: 0.5;\n }\n .opacity-75 {\n opacity: 0.75;\n }\n .opacity-100 {\n opacity: 1;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-visible {\n overflow: visible;\n }\n .overflow-scroll {\n overflow: scroll;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-x-visible {\n overflow-x: visible;\n }\n .overflow-x-scroll {\n overflow-x: scroll;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .overflow-y-hidden {\n overflow-y: hidden;\n }\n .overflow-y-visible {\n overflow-y: visible;\n }\n .overflow-y-scroll {\n overflow-y: scroll;\n }\n .contains-inline {\n container-type: inline-size;\n }\n .contains-size {\n container-type: size;\n }\n .d-inline {\n display: inline;\n }\n .d-inline-block {\n display: inline-block;\n }\n .d-block {\n display: block;\n }\n .d-grid {\n display: grid;\n }\n .d-inline-grid {\n display: inline-grid;\n }\n .d-table {\n display: table;\n }\n .d-table-row {\n display: table-row;\n }\n .d-table-cell {\n display: table-cell;\n }\n .d-flex {\n display: flex;\n }\n .d-inline-flex {\n display: inline-flex;\n }\n .d-contents {\n display: contents;\n }\n .d-flow-root {\n display: flow-root;\n }\n .d-none {\n display: none;\n }\n .shadow {\n box-shadow: var(--box-shadow);\n }\n .shadow-sm {\n box-shadow: var(--box-shadow-sm);\n }\n .shadow-lg {\n box-shadow: var(--box-shadow-lg);\n }\n .shadow-none {\n box-shadow: none;\n }\n .position-static {\n position: static;\n }\n .position-relative {\n position: relative;\n }\n .position-absolute {\n position: absolute;\n }\n .position-fixed {\n position: fixed;\n }\n .position-sticky {\n position: sticky;\n }\n .top-0 {\n top: 0;\n }\n .top-50 {\n top: 50%;\n }\n .top-100 {\n top: 100%;\n }\n .bottom-0 {\n bottom: 0;\n }\n .bottom-50 {\n bottom: 50%;\n }\n .bottom-100 {\n bottom: 100%;\n }\n .start-0 {\n inset-inline-start: 0;\n }\n .start-50 {\n inset-inline-start: 50%;\n }\n .start-100 {\n inset-inline-start: 100%;\n }\n .end-0 {\n inset-inline-end: 0;\n }\n .end-50 {\n inset-inline-end: 50%;\n }\n .end-100 {\n inset-inline-end: 100%;\n }\n .translate-middle {\n transform: translate(-50%, -50%);\n }\n .translate-middle-x {\n transform: translateX(-50%);\n }\n .translate-middle-y {\n transform: translateY(-50%);\n }\n .border {\n border: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-0 {\n border: 0;\n }\n .border-top {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-top-0 {\n border-block-start: 0;\n }\n .border-end {\n border-inline-end: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-end-0 {\n border-inline-end: 0;\n }\n .border-bottom {\n border-block-end: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-bottom-0 {\n border-block-end: 0;\n }\n .border-start {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-start-0 {\n border-inline-start: 0;\n }\n .border-y {\n border-block: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-y-0 {\n border-block: 0;\n }\n .border-x {\n border-inline: var(--border-width) var(--border-style) var(--border-color);\n }\n .border-x-0 {\n border-inline: 0;\n }\n .border-primary {\n --border-color: var(--primary-bg);\n border-color: var(--border-color);\n }\n .border-accent {\n --border-color: var(--accent-bg);\n border-color: var(--border-color);\n }\n .border-success {\n --border-color: var(--success-bg);\n border-color: var(--border-color);\n }\n .border-danger {\n --border-color: var(--danger-bg);\n border-color: var(--border-color);\n }\n .border-warning {\n --border-color: var(--warning-bg);\n border-color: var(--border-color);\n }\n .border-info {\n --border-color: var(--info-bg);\n border-color: var(--border-color);\n }\n .border-inverse {\n --border-color: var(--inverse-bg);\n border-color: var(--border-color);\n }\n .border-secondary {\n --border-color: var(--secondary-bg);\n border-color: var(--border-color);\n }\n .border-bg {\n --border-color: var(--border-bg);\n border-color: var(--border-color);\n }\n .border-body {\n --border-color: var(--border-body);\n border-color: var(--border-color);\n }\n .border-muted {\n --border-color: var(--border-muted);\n border-color: var(--border-color);\n }\n .border-subtle {\n --border-color: var(--border-subtle);\n border-color: var(--border-color);\n }\n .border-emphasized {\n --border-color: var(--border-emphasized);\n border-color: var(--border-color);\n }\n .border-white {\n --border-color: var(--border-white);\n border-color: var(--border-color);\n }\n .border-black {\n --border-color: var(--border-black);\n border-color: var(--border-color);\n }\n .border-subtle-primary {\n --border-color: var(--primary-border);\n border-color: var(--border-color);\n }\n .border-subtle-accent {\n --border-color: var(--accent-border);\n border-color: var(--border-color);\n }\n .border-subtle-success {\n --border-color: var(--success-border);\n border-color: var(--border-color);\n }\n .border-subtle-danger {\n --border-color: var(--danger-border);\n border-color: var(--border-color);\n }\n .border-subtle-warning {\n --border-color: var(--warning-border);\n border-color: var(--border-color);\n }\n .border-subtle-info {\n --border-color: var(--info-border);\n border-color: var(--border-color);\n }\n .border-subtle-inverse {\n --border-color: var(--inverse-border);\n border-color: var(--border-color);\n }\n .border-subtle-secondary {\n --border-color: var(--secondary-border);\n border-color: var(--border-color);\n }\n .border-1 {\n border-width: 1px;\n }\n .border-2 {\n border-width: 2px;\n }\n .border-3 {\n border-width: 3px;\n }\n .border-4 {\n border-width: 4px;\n }\n .border-5 {\n border-width: 5px;\n }\n .border-10 {\n border-color: color-mix(in oklch, var(--border-color) 10%, transparent);\n }\n .border-20 {\n border-color: color-mix(in oklch, var(--border-color) 20%, transparent);\n }\n .border-30 {\n border-color: color-mix(in oklch, var(--border-color) 30%, transparent);\n }\n .border-40 {\n border-color: color-mix(in oklch, var(--border-color) 40%, transparent);\n }\n .border-50 {\n border-color: color-mix(in oklch, var(--border-color) 50%, transparent);\n }\n .border-60 {\n border-color: color-mix(in oklch, var(--border-color) 60%, transparent);\n }\n .border-70 {\n border-color: color-mix(in oklch, var(--border-color) 70%, transparent);\n }\n .border-80 {\n border-color: color-mix(in oklch, var(--border-color) 80%, transparent);\n }\n .border-90 {\n border-color: color-mix(in oklch, var(--border-color) 90%, transparent);\n }\n .border-100 {\n border-color: var(--border-color);\n }\n .w-1 {\n width: 1rem;\n }\n .w-2 {\n width: 2rem;\n }\n .w-3 {\n width: 3rem;\n }\n .w-4 {\n width: 4rem;\n }\n .w-5 {\n width: 5rem;\n }\n .w-6 {\n width: 6rem;\n }\n .w-7 {\n width: 7rem;\n }\n .w-8 {\n width: 8rem;\n }\n .w-9 {\n width: 9rem;\n }\n .w-10 {\n width: 10rem;\n }\n .w-11 {\n width: 11rem;\n }\n .w-12 {\n width: 12rem;\n }\n .w-25 {\n width: 25%;\n }\n .w-50 {\n width: 50%;\n }\n .w-75 {\n width: 75%;\n }\n .w-100 {\n width: 100%;\n }\n .w-auto {\n width: auto;\n }\n .w-min {\n width: min-content;\n }\n .w-max {\n width: max-content;\n }\n .w-fit {\n width: fit-content;\n }\n .max-w-100 {\n max-width: 100%;\n }\n .min-w-0 {\n min-width: 0;\n }\n .min-w-100 {\n min-width: 100%;\n }\n .vw-100 {\n width: 100vw;\n }\n .min-vw-100 {\n min-width: 100vw;\n }\n .h-25 {\n height: 25%;\n }\n .h-50 {\n height: 50%;\n }\n .h-75 {\n height: 75%;\n }\n .h-100 {\n height: 100%;\n }\n .h-auto {\n height: auto;\n }\n .h-min {\n height: min-content;\n }\n .h-max {\n height: max-content;\n }\n .h-fit {\n height: fit-content;\n }\n .max-h-100 {\n max-height: 100%;\n }\n .min-h-0 {\n min-height: 0;\n }\n .min-h-100 {\n min-height: 100%;\n }\n .vh-100 {\n height: 100vh;\n }\n .min-vh-100 {\n min-height: 100vh;\n }\n .flex-fill {\n flex: 1 1 auto;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-column {\n flex-direction: column;\n }\n .flex-row-reverse {\n flex-direction: row-reverse;\n }\n .flex-column-reverse {\n flex-direction: column-reverse;\n }\n .flex-grow-0 {\n flex-grow: 0;\n }\n .flex-grow-1 {\n flex-grow: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .flex-shrink-1 {\n flex-shrink: 1;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .flex-nowrap {\n flex-wrap: nowrap;\n }\n .flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .justify-content-start {\n justify-content: flex-start;\n }\n .justify-content-end {\n justify-content: flex-end;\n }\n .justify-content-center {\n justify-content: center;\n }\n .justify-content-between {\n justify-content: space-between;\n }\n .justify-content-around {\n justify-content: space-around;\n }\n .justify-content-evenly {\n justify-content: space-evenly;\n }\n .justify-items-start {\n justify-items: start;\n }\n .justify-items-end {\n justify-items: end;\n }\n .justify-items-center {\n justify-items: center;\n }\n .justify-items-stretch {\n justify-items: stretch;\n }\n .justify-self-start {\n justify-self: start;\n }\n .justify-self-end {\n justify-self: end;\n }\n .justify-self-center {\n justify-self: center;\n }\n .align-items-start {\n align-items: flex-start;\n }\n .align-items-end {\n align-items: flex-end;\n }\n .align-items-center {\n align-items: center;\n }\n .align-items-baseline {\n align-items: baseline;\n }\n .align-items-stretch {\n align-items: stretch;\n }\n .align-content-start {\n align-content: flex-start;\n }\n .align-content-end {\n align-content: flex-end;\n }\n .align-content-center {\n align-content: center;\n }\n .align-content-between {\n align-content: space-between;\n }\n .align-content-around {\n align-content: space-around;\n }\n .align-content-stretch {\n align-content: stretch;\n }\n .align-self-auto {\n align-self: auto;\n }\n .align-self-start {\n align-self: flex-start;\n }\n .align-self-end {\n align-self: flex-end;\n }\n .align-self-center {\n align-self: center;\n }\n .align-self-baseline {\n align-self: baseline;\n }\n .align-self-stretch {\n align-self: stretch;\n }\n .place-items-start {\n place-items: start;\n }\n .place-items-end {\n place-items: end;\n }\n .place-items-center {\n place-items: center;\n }\n .place-items-stretch {\n place-items: stretch;\n }\n .grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .grid-cols-fill {\n grid-column: 1 / -1;\n }\n .grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .order-first {\n order: -1;\n }\n .order-0 {\n order: 0;\n }\n .order-1 {\n order: 1;\n }\n .order-2 {\n order: 2;\n }\n .order-3 {\n order: 3;\n }\n .order-4 {\n order: 4;\n }\n .order-5 {\n order: 5;\n }\n .order-last {\n order: 6;\n }\n .m-0 {\n margin: 0;\n }\n .m-1 {\n margin: 0.25rem;\n }\n .m-2 {\n margin: 0.5rem;\n }\n .m-3 {\n margin: 0.75rem;\n }\n .m-4 {\n margin: 1rem;\n }\n .m-5 {\n margin: 1.25rem;\n }\n .m-6 {\n margin: 1.5rem;\n }\n .m-7 {\n margin: 2rem;\n }\n .m-8 {\n margin: 2.5rem;\n }\n .m-9 {\n margin: 3rem;\n }\n .m-auto {\n margin: auto;\n }\n .mx-0 {\n margin-inline: 0;\n }\n .mx-1 {\n margin-inline: 0.25rem;\n }\n .mx-2 {\n margin-inline: 0.5rem;\n }\n .mx-3 {\n margin-inline: 0.75rem;\n }\n .mx-4 {\n margin-inline: 1rem;\n }\n .mx-5 {\n margin-inline: 1.25rem;\n }\n .mx-6 {\n margin-inline: 1.5rem;\n }\n .mx-7 {\n margin-inline: 2rem;\n }\n .mx-8 {\n margin-inline: 2.5rem;\n }\n .mx-9 {\n margin-inline: 3rem;\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-0 {\n margin-block: 0;\n }\n .my-1 {\n margin-block: 0.25rem;\n }\n .my-2 {\n margin-block: 0.5rem;\n }\n .my-3 {\n margin-block: 0.75rem;\n }\n .my-4 {\n margin-block: 1rem;\n }\n .my-5 {\n margin-block: 1.25rem;\n }\n .my-6 {\n margin-block: 1.5rem;\n }\n .my-7 {\n margin-block: 2rem;\n }\n .my-8 {\n margin-block: 2.5rem;\n }\n .my-9 {\n margin-block: 3rem;\n }\n .my-auto {\n margin-block: auto;\n }\n .mt-0 {\n margin-block-start: 0;\n }\n .mt-1 {\n margin-block-start: 0.25rem;\n }\n .mt-2 {\n margin-block-start: 0.5rem;\n }\n .mt-3 {\n margin-block-start: 0.75rem;\n }\n .mt-4 {\n margin-block-start: 1rem;\n }\n .mt-5 {\n margin-block-start: 1.25rem;\n }\n .mt-6 {\n margin-block-start: 1.5rem;\n }\n .mt-7 {\n margin-block-start: 2rem;\n }\n .mt-8 {\n margin-block-start: 2.5rem;\n }\n .mt-9 {\n margin-block-start: 3rem;\n }\n .mt-auto {\n margin-block-start: auto;\n }\n .me-0 {\n margin-inline-end: 0;\n }\n .me-1 {\n margin-inline-end: 0.25rem;\n }\n .me-2 {\n margin-inline-end: 0.5rem;\n }\n .me-3 {\n margin-inline-end: 0.75rem;\n }\n .me-4 {\n margin-inline-end: 1rem;\n }\n .me-5 {\n margin-inline-end: 1.25rem;\n }\n .me-6 {\n margin-inline-end: 1.5rem;\n }\n .me-7 {\n margin-inline-end: 2rem;\n }\n .me-8 {\n margin-inline-end: 2.5rem;\n }\n .me-9 {\n margin-inline-end: 3rem;\n }\n .me--1 {\n margin-inline-end: -0.25rem;\n }\n .me--2 {\n margin-inline-end: -0.5rem;\n }\n .me-auto {\n margin-inline-end: auto;\n }\n .mb-0 {\n margin-block-end: 0;\n }\n .mb-1 {\n margin-block-end: 0.25rem;\n }\n .mb-2 {\n margin-block-end: 0.5rem;\n }\n .mb-3 {\n margin-block-end: 0.75rem;\n }\n .mb-4 {\n margin-block-end: 1rem;\n }\n .mb-5 {\n margin-block-end: 1.25rem;\n }\n .mb-6 {\n margin-block-end: 1.5rem;\n }\n .mb-7 {\n margin-block-end: 2rem;\n }\n .mb-8 {\n margin-block-end: 2.5rem;\n }\n .mb-9 {\n margin-block-end: 3rem;\n }\n .mb-auto {\n margin-block-end: auto;\n }\n .ms-0 {\n margin-inline-start: 0;\n }\n .ms-1 {\n margin-inline-start: 0.25rem;\n }\n .ms-2 {\n margin-inline-start: 0.5rem;\n }\n .ms-3 {\n margin-inline-start: 0.75rem;\n }\n .ms-4 {\n margin-inline-start: 1rem;\n }\n .ms-5 {\n margin-inline-start: 1.25rem;\n }\n .ms-6 {\n margin-inline-start: 1.5rem;\n }\n .ms-7 {\n margin-inline-start: 2rem;\n }\n .ms-8 {\n margin-inline-start: 2.5rem;\n }\n .ms-9 {\n margin-inline-start: 3rem;\n }\n .ms--1 {\n margin-inline-start: -0.25rem;\n }\n .ms--2 {\n margin-inline-start: -0.5rem;\n }\n .ms-auto {\n margin-inline-start: auto;\n }\n .p-0 {\n padding: 0;\n }\n .p-1 {\n padding: 0.25rem;\n }\n .p-2 {\n padding: 0.5rem;\n }\n .p-3 {\n padding: 0.75rem;\n }\n .p-4 {\n padding: 1rem;\n }\n .p-5 {\n padding: 1.25rem;\n }\n .p-6 {\n padding: 1.5rem;\n }\n .p-7 {\n padding: 2rem;\n }\n .p-8 {\n padding: 2.5rem;\n }\n .p-9 {\n padding: 3rem;\n }\n .px-0 {\n padding-inline: 0;\n }\n .px-1 {\n padding-inline: 0.25rem;\n }\n .px-2 {\n padding-inline: 0.5rem;\n }\n .px-3 {\n padding-inline: 0.75rem;\n }\n .px-4 {\n padding-inline: 1rem;\n }\n .px-5 {\n padding-inline: 1.25rem;\n }\n .px-6 {\n padding-inline: 1.5rem;\n }\n .px-7 {\n padding-inline: 2rem;\n }\n .px-8 {\n padding-inline: 2.5rem;\n }\n .px-9 {\n padding-inline: 3rem;\n }\n .py-0 {\n padding-block: 0;\n }\n .py-1 {\n padding-block: 0.25rem;\n }\n .py-2 {\n padding-block: 0.5rem;\n }\n .py-3 {\n padding-block: 0.75rem;\n }\n .py-4 {\n padding-block: 1rem;\n }\n .py-5 {\n padding-block: 1.25rem;\n }\n .py-6 {\n padding-block: 1.5rem;\n }\n .py-7 {\n padding-block: 2rem;\n }\n .py-8 {\n padding-block: 2.5rem;\n }\n .py-9 {\n padding-block: 3rem;\n }\n .pt-0 {\n padding-block-start: 0;\n }\n .pt-1 {\n padding-block-start: 0.25rem;\n }\n .pt-2 {\n padding-block-start: 0.5rem;\n }\n .pt-3 {\n padding-block-start: 0.75rem;\n }\n .pt-4 {\n padding-block-start: 1rem;\n }\n .pt-5 {\n padding-block-start: 1.25rem;\n }\n .pt-6 {\n padding-block-start: 1.5rem;\n }\n .pt-7 {\n padding-block-start: 2rem;\n }\n .pt-8 {\n padding-block-start: 2.5rem;\n }\n .pt-9 {\n padding-block-start: 3rem;\n }\n .pe-0 {\n padding-inline-end: 0;\n }\n .pe-1 {\n padding-inline-end: 0.25rem;\n }\n .pe-2 {\n padding-inline-end: 0.5rem;\n }\n .pe-3 {\n padding-inline-end: 0.75rem;\n }\n .pe-4 {\n padding-inline-end: 1rem;\n }\n .pe-5 {\n padding-inline-end: 1.25rem;\n }\n .pe-6 {\n padding-inline-end: 1.5rem;\n }\n .pe-7 {\n padding-inline-end: 2rem;\n }\n .pe-8 {\n padding-inline-end: 2.5rem;\n }\n .pe-9 {\n padding-inline-end: 3rem;\n }\n .pb-0 {\n padding-block-end: 0;\n }\n .pb-1 {\n padding-block-end: 0.25rem;\n }\n .pb-2 {\n padding-block-end: 0.5rem;\n }\n .pb-3 {\n padding-block-end: 0.75rem;\n }\n .pb-4 {\n padding-block-end: 1rem;\n }\n .pb-5 {\n padding-block-end: 1.25rem;\n }\n .pb-6 {\n padding-block-end: 1.5rem;\n }\n .pb-7 {\n padding-block-end: 2rem;\n }\n .pb-8 {\n padding-block-end: 2.5rem;\n }\n .pb-9 {\n padding-block-end: 3rem;\n }\n .ps-0 {\n padding-inline-start: 0;\n }\n .ps-1 {\n padding-inline-start: 0.25rem;\n }\n .ps-2 {\n padding-inline-start: 0.5rem;\n }\n .ps-3 {\n padding-inline-start: 0.75rem;\n }\n .ps-4 {\n padding-inline-start: 1rem;\n }\n .ps-5 {\n padding-inline-start: 1.25rem;\n }\n .ps-6 {\n padding-inline-start: 1.5rem;\n }\n .ps-7 {\n padding-inline-start: 2rem;\n }\n .ps-8 {\n padding-inline-start: 2.5rem;\n }\n .ps-9 {\n padding-inline-start: 3rem;\n }\n .gap-0 {\n gap: 0;\n }\n .gap-1 {\n gap: 0.25rem;\n }\n .gap-2 {\n gap: 0.5rem;\n }\n .gap-3 {\n gap: 0.75rem;\n }\n .gap-4 {\n gap: 1rem;\n }\n .gap-5 {\n gap: 1.25rem;\n }\n .gap-6 {\n gap: 1.5rem;\n }\n .gap-7 {\n gap: 2rem;\n }\n .gap-8 {\n gap: 2.5rem;\n }\n .gap-9 {\n gap: 3rem;\n }\n .row-gap-0 {\n row-gap: 0;\n }\n .row-gap-1 {\n row-gap: 0.25rem;\n }\n .row-gap-2 {\n row-gap: 0.5rem;\n }\n .row-gap-3 {\n row-gap: 0.75rem;\n }\n .row-gap-4 {\n row-gap: 1rem;\n }\n .row-gap-5 {\n row-gap: 1.25rem;\n }\n .row-gap-6 {\n row-gap: 1.5rem;\n }\n .row-gap-7 {\n row-gap: 2rem;\n }\n .row-gap-8 {\n row-gap: 2.5rem;\n }\n .row-gap-9 {\n row-gap: 3rem;\n }\n .column-gap-0 {\n column-gap: 0;\n }\n .column-gap-1 {\n column-gap: 0.25rem;\n }\n .column-gap-2 {\n column-gap: 0.5rem;\n }\n .column-gap-3 {\n column-gap: 0.75rem;\n }\n .column-gap-4 {\n column-gap: 1rem;\n }\n .column-gap-5 {\n column-gap: 1.25rem;\n }\n .column-gap-6 {\n column-gap: 1.5rem;\n }\n .column-gap-7 {\n column-gap: 2rem;\n }\n .column-gap-8 {\n column-gap: 2.5rem;\n }\n .column-gap-9 {\n column-gap: 3rem;\n }\n :where(.space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .font-monospace {\n font-family: var(--font-mono);\n }\n .font-body {\n font-family: var(--body-font-family);\n }\n .fs-xs {\n font-size: 0.75rem;\n }\n .fs-sm {\n font-size: 0.875rem;\n }\n .fs-md {\n font-size: 1rem;\n }\n .fs-lg {\n font-size: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n }\n .fs-xl {\n font-size: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n }\n .fs-2xl {\n font-size: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n }\n .fs-3xl {\n font-size: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n }\n .fs-4xl {\n font-size: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n }\n .fs-5xl {\n font-size: clamp(3rem, 2rem + 5vw, 4rem);\n }\n .fs-6xl {\n font-size: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n }\n .text-xs {\n font-size: 0.75rem;\n line-height: 1.25;\n }\n .text-sm {\n font-size: 0.875rem;\n line-height: 1.5;\n }\n .text-md {\n font-size: 1rem;\n line-height: 1.5;\n }\n .text-lg {\n font-size: clamp(1.25rem, 1rem + 0.625vw, 1.5rem);\n line-height: 1.5;\n }\n .text-xl {\n font-size: clamp(1.5rem, 1.1rem + 0.75vw, 1.75rem);\n line-height: 1.4285714286;\n }\n .text-2xl {\n font-size: clamp(1.75rem, 1.3rem + 1vw, 2rem);\n line-height: 1.3333333333;\n }\n .text-3xl {\n font-size: clamp(2rem, 1.5rem + 1.875vw, 2.5rem);\n line-height: 1.2;\n }\n .text-4xl {\n font-size: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);\n line-height: 1.1;\n }\n .text-5xl {\n font-size: clamp(3rem, 2rem + 5vw, 4rem);\n line-height: 1.1;\n }\n .text-6xl {\n font-size: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);\n line-height: 1;\n }\n .fst-italic {\n font-style: italic;\n }\n .fst-normal {\n font-style: normal;\n }\n .fw-lighter {\n font-weight: lighter;\n }\n .fw-light {\n font-weight: 300;\n }\n .fw-normal {\n font-weight: 400;\n }\n .fw-medium {\n font-weight: 500;\n }\n .fw-semibold {\n font-weight: 600;\n }\n .fw-bold {\n font-weight: 700;\n }\n .fw-bolder {\n font-weight: bolder;\n }\n .lh-1 {\n line-height: 1;\n }\n .lh-sm {\n line-height: 1.25;\n }\n .lh-base {\n line-height: 1.5;\n }\n .lh-lg {\n line-height: 2;\n }\n .text-start {\n text-align: start;\n }\n .text-end {\n text-align: end;\n }\n .text-center {\n text-align: center;\n }\n .text-decoration-none {\n text-decoration: none;\n }\n .text-decoration-underline {\n text-decoration: underline;\n }\n .text-decoration-line-through {\n text-decoration: line-through;\n }\n .text-lowercase {\n text-transform: lowercase;\n }\n .text-uppercase {\n text-transform: uppercase;\n }\n .text-capitalize {\n text-transform: capitalize;\n }\n .text-wrap {\n text-wrap: wrap;\n }\n .text-nowrap {\n text-wrap: nowrap;\n }\n .text-balance {\n text-wrap: balance;\n }\n .text-pretty {\n text-wrap: pretty;\n }\n .text-break {\n word-wrap: break-word;\n word-break: break-word;\n }\n .fg-primary {\n --fg: var(--primary-fg);\n color: var(--fg);\n }\n .fg-accent {\n --fg: var(--accent-fg);\n color: var(--fg);\n }\n .fg-success {\n --fg: var(--success-fg);\n color: var(--fg);\n }\n .fg-danger {\n --fg: var(--danger-fg);\n color: var(--fg);\n }\n .fg-warning {\n --fg: var(--warning-fg);\n color: var(--fg);\n }\n .fg-info {\n --fg: var(--info-fg);\n color: var(--fg);\n }\n .fg-inverse {\n --fg: var(--inverse-fg);\n color: var(--fg);\n }\n .fg-secondary {\n --fg: var(--secondary-fg);\n color: var(--fg);\n }\n .fg-body {\n --fg: var(--fg-body);\n color: var(--fg);\n }\n .fg-1 {\n --fg: var(--fg-1);\n color: var(--fg);\n }\n .fg-2 {\n --fg: var(--fg-2);\n color: var(--fg);\n }\n .fg-3 {\n --fg: var(--fg-3);\n color: var(--fg);\n }\n .fg-4 {\n --fg: var(--fg-4);\n color: var(--fg);\n }\n .fg-bg {\n --fg: var(--fg-bg);\n color: var(--fg);\n }\n .fg-white {\n --fg: var(--fg-white);\n color: var(--fg);\n }\n .fg-black {\n --fg: var(--fg-black);\n color: var(--fg);\n }\n .fg-reset {\n --fg: inherit;\n color: var(--fg);\n }\n .fg-emphasis-primary {\n --fg: var(--primary-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-accent {\n --fg: var(--accent-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-success {\n --fg: var(--success-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-danger {\n --fg: var(--danger-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-warning {\n --fg: var(--warning-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-info {\n --fg: var(--info-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-inverse {\n --fg: var(--inverse-fg-emphasis);\n color: var(--fg);\n }\n .fg-emphasis-secondary {\n --fg: var(--secondary-fg-emphasis);\n color: var(--fg);\n }\n .fg-contrast-primary {\n --fg: var(--primary-contrast);\n color: var(--fg);\n }\n .fg-contrast-accent {\n --fg: var(--accent-contrast);\n color: var(--fg);\n }\n .fg-contrast-success {\n --fg: var(--success-contrast);\n color: var(--fg);\n }\n .fg-contrast-danger {\n --fg: var(--danger-contrast);\n color: var(--fg);\n }\n .fg-contrast-warning {\n --fg: var(--warning-contrast);\n color: var(--fg);\n }\n .fg-contrast-info {\n --fg: var(--info-contrast);\n color: var(--fg);\n }\n .fg-contrast-inverse {\n --fg: var(--inverse-contrast);\n color: var(--fg);\n }\n .fg-contrast-secondary {\n --fg: var(--secondary-contrast);\n color: var(--fg);\n }\n .fg-10 {\n color: color-mix(in oklch, var(--fg) 10%, transparent);\n }\n .fg-20 {\n color: color-mix(in oklch, var(--fg) 20%, transparent);\n }\n .fg-30 {\n color: color-mix(in oklch, var(--fg) 30%, transparent);\n }\n .fg-40 {\n color: color-mix(in oklch, var(--fg) 40%, transparent);\n }\n .fg-50 {\n color: color-mix(in oklch, var(--fg) 50%, transparent);\n }\n .fg-60 {\n color: color-mix(in oklch, var(--fg) 60%, transparent);\n }\n .fg-70 {\n color: color-mix(in oklch, var(--fg) 70%, transparent);\n }\n .fg-80 {\n color: color-mix(in oklch, var(--fg) 80%, transparent);\n }\n .fg-90 {\n color: color-mix(in oklch, var(--fg) 90%, transparent);\n }\n .fg-100 {\n color: var(--fg);\n }\n .link-10 {\n color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .hover\\:link-10:hover {\n color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .link-20 {\n color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .hover\\:link-20:hover {\n color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .link-30 {\n color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .hover\\:link-30:hover {\n color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .link-40 {\n color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .hover\\:link-40:hover {\n color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .link-50 {\n color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .hover\\:link-50:hover {\n color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .link-60 {\n color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .hover\\:link-60:hover {\n color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .link-70 {\n color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .hover\\:link-70:hover {\n color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .link-80 {\n color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .hover\\:link-80:hover {\n color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .link-90 {\n color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .hover\\:link-90:hover {\n color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .link-100 {\n color: var(--link-color);\n }\n .hover\\:link-100:hover {\n color: var(--link-color);\n }\n .underline-offset-1 {\n text-underline-offset: 0.125em;\n }\n .hover\\:underline-offset-1:hover {\n text-underline-offset: 0.125em;\n }\n .underline-offset-2 {\n text-underline-offset: 0.25em;\n }\n .hover\\:underline-offset-2:hover {\n text-underline-offset: 0.25em;\n }\n .underline-offset-3 {\n text-underline-offset: 0.375em;\n }\n .hover\\:underline-offset-3:hover {\n text-underline-offset: 0.375em;\n }\n .underline-primary {\n text-decoration-color: light-dark(var(--blue-600), var(--blue-400));\n }\n .underline-accent {\n text-decoration-color: light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300)));\n }\n .underline-success {\n text-decoration-color: light-dark(var(--green-600), var(--green-400));\n }\n .underline-danger {\n text-decoration-color: light-dark(var(--red-600), var(--red-400));\n }\n .underline-warning {\n text-decoration-color: light-dark(var(--yellow-700), var(--yellow-400));\n }\n .underline-info {\n text-decoration-color: light-dark(var(--cyan-600), var(--cyan-400));\n }\n .underline-inverse {\n text-decoration-color: light-dark(var(--gray-900), var(--gray-200));\n }\n .underline-secondary {\n text-decoration-color: light-dark(var(--gray-600), var(--gray-400));\n }\n .underline-10 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .hover\\:underline-10:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 10%, transparent);\n }\n .underline-20 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .hover\\:underline-20:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 20%, transparent);\n }\n .underline-30 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .hover\\:underline-30:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 30%, transparent);\n }\n .underline-40 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .hover\\:underline-40:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 40%, transparent);\n }\n .underline-50 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .hover\\:underline-50:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 50%, transparent);\n }\n .underline-60 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .hover\\:underline-60:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 60%, transparent);\n }\n .underline-70 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .hover\\:underline-70:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 70%, transparent);\n }\n .underline-80 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .hover\\:underline-80:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 80%, transparent);\n }\n .underline-90 {\n text-decoration-color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .hover\\:underline-90:hover {\n text-decoration-color: color-mix(in oklch, var(--link-color) 90%, transparent);\n }\n .underline-100 {\n text-decoration-color: var(--link-color);\n }\n .hover\\:underline-100:hover {\n text-decoration-color: var(--link-color);\n }\n .underline-thickness-1 {\n text-decoration-thickness: 1px;\n }\n .hover\\:underline-thickness-1:hover {\n text-decoration-thickness: 1px;\n }\n .underline-thickness-2 {\n text-decoration-thickness: 2px;\n }\n .hover\\:underline-thickness-2:hover {\n text-decoration-thickness: 2px;\n }\n .underline-thickness-3 {\n text-decoration-thickness: 3px;\n }\n .hover\\:underline-thickness-3:hover {\n text-decoration-thickness: 3px;\n }\n .underline-thickness-4 {\n text-decoration-thickness: 4px;\n }\n .hover\\:underline-thickness-4:hover {\n text-decoration-thickness: 4px;\n }\n .underline-thickness-5 {\n text-decoration-thickness: 5px;\n }\n .hover\\:underline-thickness-5:hover {\n text-decoration-thickness: 5px;\n }\n .bg-primary {\n --bg: var(--primary-bg);\n background-color: var(--bg);\n }\n .bg-accent {\n --bg: var(--accent-bg);\n background-color: var(--bg);\n }\n .bg-success {\n --bg: var(--success-bg);\n background-color: var(--bg);\n }\n .bg-danger {\n --bg: var(--danger-bg);\n background-color: var(--bg);\n }\n .bg-warning {\n --bg: var(--warning-bg);\n background-color: var(--bg);\n }\n .bg-info {\n --bg: var(--info-bg);\n background-color: var(--bg);\n }\n .bg-inverse {\n --bg: var(--inverse-bg);\n background-color: var(--bg);\n }\n .bg-secondary {\n --bg: var(--secondary-bg);\n background-color: var(--bg);\n }\n .bg-body {\n --bg: var(--bg-body);\n background-color: var(--bg);\n }\n .bg-1 {\n --bg: var(--bg-1);\n background-color: var(--bg);\n }\n .bg-2 {\n --bg: var(--bg-2);\n background-color: var(--bg);\n }\n .bg-3 {\n --bg: var(--bg-3);\n background-color: var(--bg);\n }\n .bg-4 {\n --bg: var(--bg-4);\n background-color: var(--bg);\n }\n .bg-fg {\n --bg: var(--bg-fg);\n background-color: var(--bg);\n }\n .bg-white {\n --bg: var(--bg-white);\n background-color: var(--bg);\n }\n .bg-black {\n --bg: var(--bg-black);\n background-color: var(--bg);\n }\n .bg-transparent {\n --bg: var(--bg-transparent);\n background-color: var(--bg);\n }\n .bg-subtle-primary {\n --bg: var(--primary-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-accent {\n --bg: var(--accent-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-success {\n --bg: var(--success-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-danger {\n --bg: var(--danger-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-warning {\n --bg: var(--warning-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-info {\n --bg: var(--info-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-inverse {\n --bg: var(--inverse-bg-subtle);\n background-color: var(--bg);\n }\n .bg-subtle-secondary {\n --bg: var(--secondary-bg-subtle);\n background-color: var(--bg);\n }\n .bg-muted-primary {\n --bg: var(--primary-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-accent {\n --bg: var(--accent-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-success {\n --bg: var(--success-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-danger {\n --bg: var(--danger-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-warning {\n --bg: var(--warning-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-info {\n --bg: var(--info-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-inverse {\n --bg: var(--inverse-bg-muted);\n background-color: var(--bg);\n }\n .bg-muted-secondary {\n --bg: var(--secondary-bg-muted);\n background-color: var(--bg);\n }\n .bg-10 {\n background-color: color-mix(in oklch, var(--bg) 10%, transparent);\n }\n .bg-20 {\n background-color: color-mix(in oklch, var(--bg) 20%, transparent);\n }\n .bg-30 {\n background-color: color-mix(in oklch, var(--bg) 30%, transparent);\n }\n .bg-40 {\n background-color: color-mix(in oklch, var(--bg) 40%, transparent);\n }\n .bg-50 {\n background-color: color-mix(in oklch, var(--bg) 50%, transparent);\n }\n .bg-60 {\n background-color: color-mix(in oklch, var(--bg) 60%, transparent);\n }\n .bg-70 {\n background-color: color-mix(in oklch, var(--bg) 70%, transparent);\n }\n .bg-80 {\n background-color: color-mix(in oklch, var(--bg) 80%, transparent);\n }\n .bg-90 {\n background-color: color-mix(in oklch, var(--bg) 90%, transparent);\n }\n .bg-100 {\n background-color: var(--bg);\n }\n .theme-contrast {\n background-color: var(--theme-bg);\n color: var(--theme-contrast);\n }\n .theme-subtle {\n background-color: var(--theme-bg-subtle);\n color: var(--theme-fg);\n }\n .theme-muted {\n background-color: var(--theme-bg-muted);\n color: var(--theme-fg-emphasis);\n }\n .theme-border {\n border: var(--border-width) solid var(--theme-border);\n }\n .bg-gradient {\n background-image: var(--gradient);\n }\n .user-select-all {\n user-select: all;\n }\n .user-select-auto {\n user-select: auto;\n }\n .user-select-text {\n user-select: text;\n }\n .user-select-none {\n user-select: none;\n }\n .pe-none {\n pointer-events: none;\n }\n .pe-auto {\n pointer-events: auto;\n }\n .rounded-0 {\n --rounded-size: 0;\n border-radius: var(--rounded-size);\n }\n .rounded-1 {\n --rounded-size: 0.125rem;\n border-radius: var(--rounded-size);\n }\n .rounded-2 {\n --rounded-size: 0.1875rem;\n border-radius: var(--rounded-size);\n }\n .rounded-3 {\n --rounded-size: 0.25rem;\n border-radius: var(--rounded-size);\n }\n .rounded-4 {\n --rounded-size: 0.375rem;\n border-radius: var(--rounded-size);\n }\n .rounded-5 {\n --rounded-size: 0.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded-6 {\n --rounded-size: 0.625rem;\n border-radius: var(--rounded-size);\n }\n .rounded-7 {\n --rounded-size: 0.75rem;\n border-radius: var(--rounded-size);\n }\n .rounded-8 {\n --rounded-size: 1rem;\n border-radius: var(--rounded-size);\n }\n .rounded-9 {\n --rounded-size: 1.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded {\n --rounded-size: 0.5rem;\n border-radius: var(--rounded-size);\n }\n .rounded-circle {\n --rounded-size: 50%;\n border-radius: var(--rounded-size);\n }\n .rounded-pill {\n --rounded-size: var(--radius-pill);\n border-radius: var(--rounded-size);\n }\n .rounded-size-0 {\n --rounded-size: 0;\n }\n .rounded-size-1 {\n --rounded-size: 0.125rem;\n }\n .rounded-size-2 {\n --rounded-size: 0.1875rem;\n }\n .rounded-size-3 {\n --rounded-size: 0.25rem;\n }\n .rounded-size-4 {\n --rounded-size: 0.375rem;\n }\n .rounded-size-5 {\n --rounded-size: 0.5rem;\n }\n .rounded-size-6 {\n --rounded-size: 0.625rem;\n }\n .rounded-size-7 {\n --rounded-size: 0.75rem;\n }\n .rounded-size-8 {\n --rounded-size: 1rem;\n }\n .rounded-size-9 {\n --rounded-size: 1.5rem;\n }\n .rounded-size {\n --rounded-size: 0.5rem;\n }\n .rounded-size-circle {\n --rounded-size: 50%;\n }\n .rounded-size-pill {\n --rounded-size: var(--radius-pill);\n }\n .rounded-top-0 {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n }\n .rounded-top-1 {\n border-start-start-radius: 0.125rem;\n border-start-end-radius: 0.125rem;\n }\n .rounded-top-2 {\n border-start-start-radius: 0.1875rem;\n border-start-end-radius: 0.1875rem;\n }\n .rounded-top-3 {\n border-start-start-radius: 0.25rem;\n border-start-end-radius: 0.25rem;\n }\n .rounded-top-4 {\n border-start-start-radius: 0.375rem;\n border-start-end-radius: 0.375rem;\n }\n .rounded-top-5 {\n border-start-start-radius: 0.5rem;\n border-start-end-radius: 0.5rem;\n }\n .rounded-top-6 {\n border-start-start-radius: 0.625rem;\n border-start-end-radius: 0.625rem;\n }\n .rounded-top-7 {\n border-start-start-radius: 0.75rem;\n border-start-end-radius: 0.75rem;\n }\n .rounded-top-8 {\n border-start-start-radius: 1rem;\n border-start-end-radius: 1rem;\n }\n .rounded-top-9 {\n border-start-start-radius: 1.5rem;\n border-start-end-radius: 1.5rem;\n }\n .rounded-top {\n border-start-start-radius: var(--rounded-size, var(--radius-5));\n border-start-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-top-circle {\n border-start-start-radius: 50%;\n border-start-end-radius: 50%;\n }\n .rounded-top-pill {\n border-start-start-radius: var(--radius-pill);\n border-start-end-radius: var(--radius-pill);\n }\n .rounded-end-0 {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n .rounded-end-1 {\n border-start-end-radius: 0.125rem;\n border-end-end-radius: 0.125rem;\n }\n .rounded-end-2 {\n border-start-end-radius: 0.1875rem;\n border-end-end-radius: 0.1875rem;\n }\n .rounded-end-3 {\n border-start-end-radius: 0.25rem;\n border-end-end-radius: 0.25rem;\n }\n .rounded-end-4 {\n border-start-end-radius: 0.375rem;\n border-end-end-radius: 0.375rem;\n }\n .rounded-end-5 {\n border-start-end-radius: 0.5rem;\n border-end-end-radius: 0.5rem;\n }\n .rounded-end-6 {\n border-start-end-radius: 0.625rem;\n border-end-end-radius: 0.625rem;\n }\n .rounded-end-7 {\n border-start-end-radius: 0.75rem;\n border-end-end-radius: 0.75rem;\n }\n .rounded-end-8 {\n border-start-end-radius: 1rem;\n border-end-end-radius: 1rem;\n }\n .rounded-end-9 {\n border-start-end-radius: 1.5rem;\n border-end-end-radius: 1.5rem;\n }\n .rounded-end {\n border-start-end-radius: var(--rounded-size, var(--radius-5));\n border-end-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-end-circle {\n border-start-end-radius: 50%;\n border-end-end-radius: 50%;\n }\n .rounded-end-pill {\n border-start-end-radius: var(--radius-pill);\n border-end-end-radius: var(--radius-pill);\n }\n .rounded-bottom-0 {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n .rounded-bottom-1 {\n border-end-start-radius: 0.125rem;\n border-end-end-radius: 0.125rem;\n }\n .rounded-bottom-2 {\n border-end-start-radius: 0.1875rem;\n border-end-end-radius: 0.1875rem;\n }\n .rounded-bottom-3 {\n border-end-start-radius: 0.25rem;\n border-end-end-radius: 0.25rem;\n }\n .rounded-bottom-4 {\n border-end-start-radius: 0.375rem;\n border-end-end-radius: 0.375rem;\n }\n .rounded-bottom-5 {\n border-end-start-radius: 0.5rem;\n border-end-end-radius: 0.5rem;\n }\n .rounded-bottom-6 {\n border-end-start-radius: 0.625rem;\n border-end-end-radius: 0.625rem;\n }\n .rounded-bottom-7 {\n border-end-start-radius: 0.75rem;\n border-end-end-radius: 0.75rem;\n }\n .rounded-bottom-8 {\n border-end-start-radius: 1rem;\n border-end-end-radius: 1rem;\n }\n .rounded-bottom-9 {\n border-end-start-radius: 1.5rem;\n border-end-end-radius: 1.5rem;\n }\n .rounded-bottom {\n border-end-start-radius: var(--rounded-size, var(--radius-5));\n border-end-end-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-bottom-circle {\n border-end-start-radius: 50%;\n border-end-end-radius: 50%;\n }\n .rounded-bottom-pill {\n border-end-start-radius: var(--radius-pill);\n border-end-end-radius: var(--radius-pill);\n }\n .rounded-start-0 {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n .rounded-start-1 {\n border-start-start-radius: 0.125rem;\n border-end-start-radius: 0.125rem;\n }\n .rounded-start-2 {\n border-start-start-radius: 0.1875rem;\n border-end-start-radius: 0.1875rem;\n }\n .rounded-start-3 {\n border-start-start-radius: 0.25rem;\n border-end-start-radius: 0.25rem;\n }\n .rounded-start-4 {\n border-start-start-radius: 0.375rem;\n border-end-start-radius: 0.375rem;\n }\n .rounded-start-5 {\n border-start-start-radius: 0.5rem;\n border-end-start-radius: 0.5rem;\n }\n .rounded-start-6 {\n border-start-start-radius: 0.625rem;\n border-end-start-radius: 0.625rem;\n }\n .rounded-start-7 {\n border-start-start-radius: 0.75rem;\n border-end-start-radius: 0.75rem;\n }\n .rounded-start-8 {\n border-start-start-radius: 1rem;\n border-end-start-radius: 1rem;\n }\n .rounded-start-9 {\n border-start-start-radius: 1.5rem;\n border-end-start-radius: 1.5rem;\n }\n .rounded-start {\n border-start-start-radius: var(--rounded-size, var(--radius-5));\n border-end-start-radius: var(--rounded-size, var(--radius-5));\n }\n .rounded-start-circle {\n border-start-start-radius: 50%;\n border-end-start-radius: 50%;\n }\n .rounded-start-pill {\n border-start-start-radius: var(--radius-pill);\n border-end-start-radius: var(--radius-pill);\n }\n .visible {\n visibility: visible;\n }\n .invisible {\n visibility: hidden;\n }\n .z-n1 {\n z-index: -1;\n }\n .z-0 {\n z-index: 0;\n }\n .z-1 {\n z-index: 1;\n }\n .z-2 {\n z-index: 2;\n }\n .z-3 {\n z-index: 3;\n }\n @media (width >= 576px) {\n .sm\\:float-start {\n float: inline-start;\n }\n .sm\\:float-end {\n float: inline-end;\n }\n .sm\\:float-none {\n float: none;\n }\n .sm\\:object-fit-contain {\n object-fit: contain;\n }\n .sm\\:object-fit-cover {\n object-fit: cover;\n }\n .sm\\:object-fit-fill {\n object-fit: fill;\n }\n .sm\\:object-fit-scale {\n object-fit: scale-down;\n }\n .sm\\:object-fit-none {\n object-fit: none;\n }\n .sm\\:d-inline {\n display: inline;\n }\n .sm\\:d-inline-block {\n display: inline-block;\n }\n .sm\\:d-block {\n display: block;\n }\n .sm\\:d-grid {\n display: grid;\n }\n .sm\\:d-inline-grid {\n display: inline-grid;\n }\n .sm\\:d-table {\n display: table;\n }\n .sm\\:d-table-row {\n display: table-row;\n }\n .sm\\:d-table-cell {\n display: table-cell;\n }\n .sm\\:d-flex {\n display: flex;\n }\n .sm\\:d-inline-flex {\n display: inline-flex;\n }\n .sm\\:d-contents {\n display: contents;\n }\n .sm\\:d-flow-root {\n display: flow-root;\n }\n .sm\\:d-none {\n display: none;\n }\n .sm\\:flex-fill {\n flex: 1 1 auto;\n }\n .sm\\:flex-row {\n flex-direction: row;\n }\n .sm\\:flex-column {\n flex-direction: column;\n }\n .sm\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .sm\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .sm\\:flex-grow-0 {\n flex-grow: 0;\n }\n .sm\\:flex-grow-1 {\n flex-grow: 1;\n }\n .sm\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .sm\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .sm\\:flex-wrap {\n flex-wrap: wrap;\n }\n .sm\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .sm\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .sm\\:justify-content-start {\n justify-content: flex-start;\n }\n .sm\\:justify-content-end {\n justify-content: flex-end;\n }\n .sm\\:justify-content-center {\n justify-content: center;\n }\n .sm\\:justify-content-between {\n justify-content: space-between;\n }\n .sm\\:justify-content-around {\n justify-content: space-around;\n }\n .sm\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .sm\\:justify-items-start {\n justify-items: start;\n }\n .sm\\:justify-items-end {\n justify-items: end;\n }\n .sm\\:justify-items-center {\n justify-items: center;\n }\n .sm\\:justify-items-stretch {\n justify-items: stretch;\n }\n .sm\\:justify-self-start {\n justify-self: start;\n }\n .sm\\:justify-self-end {\n justify-self: end;\n }\n .sm\\:justify-self-center {\n justify-self: center;\n }\n .sm\\:align-items-start {\n align-items: flex-start;\n }\n .sm\\:align-items-end {\n align-items: flex-end;\n }\n .sm\\:align-items-center {\n align-items: center;\n }\n .sm\\:align-items-baseline {\n align-items: baseline;\n }\n .sm\\:align-items-stretch {\n align-items: stretch;\n }\n .sm\\:align-content-start {\n align-content: flex-start;\n }\n .sm\\:align-content-end {\n align-content: flex-end;\n }\n .sm\\:align-content-center {\n align-content: center;\n }\n .sm\\:align-content-between {\n align-content: space-between;\n }\n .sm\\:align-content-around {\n align-content: space-around;\n }\n .sm\\:align-content-stretch {\n align-content: stretch;\n }\n .sm\\:align-self-auto {\n align-self: auto;\n }\n .sm\\:align-self-start {\n align-self: flex-start;\n }\n .sm\\:align-self-end {\n align-self: flex-end;\n }\n .sm\\:align-self-center {\n align-self: center;\n }\n .sm\\:align-self-baseline {\n align-self: baseline;\n }\n .sm\\:align-self-stretch {\n align-self: stretch;\n }\n .sm\\:place-items-start {\n place-items: start;\n }\n .sm\\:place-items-end {\n place-items: end;\n }\n .sm\\:place-items-center {\n place-items: center;\n }\n .sm\\:place-items-stretch {\n place-items: stretch;\n }\n .sm\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .sm\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .sm\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .sm\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .sm\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .sm\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .sm\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .sm\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .sm\\:order-first {\n order: -1;\n }\n .sm\\:order-0 {\n order: 0;\n }\n .sm\\:order-1 {\n order: 1;\n }\n .sm\\:order-2 {\n order: 2;\n }\n .sm\\:order-3 {\n order: 3;\n }\n .sm\\:order-4 {\n order: 4;\n }\n .sm\\:order-5 {\n order: 5;\n }\n .sm\\:order-last {\n order: 6;\n }\n .sm\\:m-0 {\n margin: 0;\n }\n .sm\\:m-1 {\n margin: 0.25rem;\n }\n .sm\\:m-2 {\n margin: 0.5rem;\n }\n .sm\\:m-3 {\n margin: 0.75rem;\n }\n .sm\\:m-4 {\n margin: 1rem;\n }\n .sm\\:m-5 {\n margin: 1.25rem;\n }\n .sm\\:m-6 {\n margin: 1.5rem;\n }\n .sm\\:m-7 {\n margin: 2rem;\n }\n .sm\\:m-8 {\n margin: 2.5rem;\n }\n .sm\\:m-9 {\n margin: 3rem;\n }\n .sm\\:m-auto {\n margin: auto;\n }\n .sm\\:mx-0 {\n margin-inline: 0;\n }\n .sm\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .sm\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .sm\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .sm\\:mx-4 {\n margin-inline: 1rem;\n }\n .sm\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .sm\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .sm\\:mx-7 {\n margin-inline: 2rem;\n }\n .sm\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .sm\\:mx-9 {\n margin-inline: 3rem;\n }\n .sm\\:mx-auto {\n margin-inline: auto;\n }\n .sm\\:my-0 {\n margin-block: 0;\n }\n .sm\\:my-1 {\n margin-block: 0.25rem;\n }\n .sm\\:my-2 {\n margin-block: 0.5rem;\n }\n .sm\\:my-3 {\n margin-block: 0.75rem;\n }\n .sm\\:my-4 {\n margin-block: 1rem;\n }\n .sm\\:my-5 {\n margin-block: 1.25rem;\n }\n .sm\\:my-6 {\n margin-block: 1.5rem;\n }\n .sm\\:my-7 {\n margin-block: 2rem;\n }\n .sm\\:my-8 {\n margin-block: 2.5rem;\n }\n .sm\\:my-9 {\n margin-block: 3rem;\n }\n .sm\\:my-auto {\n margin-block: auto;\n }\n .sm\\:mt-0 {\n margin-block-start: 0;\n }\n .sm\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .sm\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .sm\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .sm\\:mt-4 {\n margin-block-start: 1rem;\n }\n .sm\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .sm\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .sm\\:mt-7 {\n margin-block-start: 2rem;\n }\n .sm\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .sm\\:mt-9 {\n margin-block-start: 3rem;\n }\n .sm\\:mt-auto {\n margin-block-start: auto;\n }\n .sm\\:me-0 {\n margin-inline-end: 0;\n }\n .sm\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .sm\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .sm\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .sm\\:me-4 {\n margin-inline-end: 1rem;\n }\n .sm\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .sm\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .sm\\:me-7 {\n margin-inline-end: 2rem;\n }\n .sm\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .sm\\:me-9 {\n margin-inline-end: 3rem;\n }\n .sm\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .sm\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .sm\\:me-auto {\n margin-inline-end: auto;\n }\n .sm\\:mb-0 {\n margin-block-end: 0;\n }\n .sm\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .sm\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .sm\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .sm\\:mb-4 {\n margin-block-end: 1rem;\n }\n .sm\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .sm\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .sm\\:mb-7 {\n margin-block-end: 2rem;\n }\n .sm\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .sm\\:mb-9 {\n margin-block-end: 3rem;\n }\n .sm\\:mb-auto {\n margin-block-end: auto;\n }\n .sm\\:ms-0 {\n margin-inline-start: 0;\n }\n .sm\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .sm\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .sm\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .sm\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .sm\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .sm\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .sm\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .sm\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .sm\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .sm\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .sm\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .sm\\:ms-auto {\n margin-inline-start: auto;\n }\n .sm\\:p-0 {\n padding: 0;\n }\n .sm\\:p-1 {\n padding: 0.25rem;\n }\n .sm\\:p-2 {\n padding: 0.5rem;\n }\n .sm\\:p-3 {\n padding: 0.75rem;\n }\n .sm\\:p-4 {\n padding: 1rem;\n }\n .sm\\:p-5 {\n padding: 1.25rem;\n }\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n .sm\\:p-7 {\n padding: 2rem;\n }\n .sm\\:p-8 {\n padding: 2.5rem;\n }\n .sm\\:p-9 {\n padding: 3rem;\n }\n .sm\\:px-0 {\n padding-inline: 0;\n }\n .sm\\:px-1 {\n padding-inline: 0.25rem;\n }\n .sm\\:px-2 {\n padding-inline: 0.5rem;\n }\n .sm\\:px-3 {\n padding-inline: 0.75rem;\n }\n .sm\\:px-4 {\n padding-inline: 1rem;\n }\n .sm\\:px-5 {\n padding-inline: 1.25rem;\n }\n .sm\\:px-6 {\n padding-inline: 1.5rem;\n }\n .sm\\:px-7 {\n padding-inline: 2rem;\n }\n .sm\\:px-8 {\n padding-inline: 2.5rem;\n }\n .sm\\:px-9 {\n padding-inline: 3rem;\n }\n .sm\\:py-0 {\n padding-block: 0;\n }\n .sm\\:py-1 {\n padding-block: 0.25rem;\n }\n .sm\\:py-2 {\n padding-block: 0.5rem;\n }\n .sm\\:py-3 {\n padding-block: 0.75rem;\n }\n .sm\\:py-4 {\n padding-block: 1rem;\n }\n .sm\\:py-5 {\n padding-block: 1.25rem;\n }\n .sm\\:py-6 {\n padding-block: 1.5rem;\n }\n .sm\\:py-7 {\n padding-block: 2rem;\n }\n .sm\\:py-8 {\n padding-block: 2.5rem;\n }\n .sm\\:py-9 {\n padding-block: 3rem;\n }\n .sm\\:pt-0 {\n padding-block-start: 0;\n }\n .sm\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .sm\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .sm\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .sm\\:pt-4 {\n padding-block-start: 1rem;\n }\n .sm\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .sm\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .sm\\:pt-7 {\n padding-block-start: 2rem;\n }\n .sm\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .sm\\:pt-9 {\n padding-block-start: 3rem;\n }\n .sm\\:pe-0 {\n padding-inline-end: 0;\n }\n .sm\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .sm\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .sm\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .sm\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .sm\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .sm\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .sm\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .sm\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .sm\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .sm\\:pb-0 {\n padding-block-end: 0;\n }\n .sm\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .sm\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .sm\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .sm\\:pb-4 {\n padding-block-end: 1rem;\n }\n .sm\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .sm\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .sm\\:pb-7 {\n padding-block-end: 2rem;\n }\n .sm\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .sm\\:pb-9 {\n padding-block-end: 3rem;\n }\n .sm\\:ps-0 {\n padding-inline-start: 0;\n }\n .sm\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .sm\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .sm\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .sm\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .sm\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .sm\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .sm\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .sm\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .sm\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .sm\\:gap-0 {\n gap: 0;\n }\n .sm\\:gap-1 {\n gap: 0.25rem;\n }\n .sm\\:gap-2 {\n gap: 0.5rem;\n }\n .sm\\:gap-3 {\n gap: 0.75rem;\n }\n .sm\\:gap-4 {\n gap: 1rem;\n }\n .sm\\:gap-5 {\n gap: 1.25rem;\n }\n .sm\\:gap-6 {\n gap: 1.5rem;\n }\n .sm\\:gap-7 {\n gap: 2rem;\n }\n .sm\\:gap-8 {\n gap: 2.5rem;\n }\n .sm\\:gap-9 {\n gap: 3rem;\n }\n .sm\\:row-gap-0 {\n row-gap: 0;\n }\n .sm\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .sm\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .sm\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .sm\\:row-gap-4 {\n row-gap: 1rem;\n }\n .sm\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .sm\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .sm\\:row-gap-7 {\n row-gap: 2rem;\n }\n .sm\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .sm\\:row-gap-9 {\n row-gap: 3rem;\n }\n .sm\\:column-gap-0 {\n column-gap: 0;\n }\n .sm\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .sm\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .sm\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .sm\\:column-gap-4 {\n column-gap: 1rem;\n }\n .sm\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .sm\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .sm\\:column-gap-7 {\n column-gap: 2rem;\n }\n .sm\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .sm\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.sm\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.sm\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.sm\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.sm\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.sm\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.sm\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.sm\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.sm\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.sm\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.sm\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.sm\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.sm\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.sm\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.sm\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.sm\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.sm\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.sm\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.sm\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.sm\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.sm\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.sm\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.sm\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.sm\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.sm\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .sm\\:text-start {\n text-align: start;\n }\n .sm\\:text-end {\n text-align: end;\n }\n .sm\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 768px) {\n .md\\:float-start {\n float: inline-start;\n }\n .md\\:float-end {\n float: inline-end;\n }\n .md\\:float-none {\n float: none;\n }\n .md\\:object-fit-contain {\n object-fit: contain;\n }\n .md\\:object-fit-cover {\n object-fit: cover;\n }\n .md\\:object-fit-fill {\n object-fit: fill;\n }\n .md\\:object-fit-scale {\n object-fit: scale-down;\n }\n .md\\:object-fit-none {\n object-fit: none;\n }\n .md\\:d-inline {\n display: inline;\n }\n .md\\:d-inline-block {\n display: inline-block;\n }\n .md\\:d-block {\n display: block;\n }\n .md\\:d-grid {\n display: grid;\n }\n .md\\:d-inline-grid {\n display: inline-grid;\n }\n .md\\:d-table {\n display: table;\n }\n .md\\:d-table-row {\n display: table-row;\n }\n .md\\:d-table-cell {\n display: table-cell;\n }\n .md\\:d-flex {\n display: flex;\n }\n .md\\:d-inline-flex {\n display: inline-flex;\n }\n .md\\:d-contents {\n display: contents;\n }\n .md\\:d-flow-root {\n display: flow-root;\n }\n .md\\:d-none {\n display: none;\n }\n .md\\:flex-fill {\n flex: 1 1 auto;\n }\n .md\\:flex-row {\n flex-direction: row;\n }\n .md\\:flex-column {\n flex-direction: column;\n }\n .md\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .md\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .md\\:flex-grow-0 {\n flex-grow: 0;\n }\n .md\\:flex-grow-1 {\n flex-grow: 1;\n }\n .md\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .md\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .md\\:flex-wrap {\n flex-wrap: wrap;\n }\n .md\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .md\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .md\\:justify-content-start {\n justify-content: flex-start;\n }\n .md\\:justify-content-end {\n justify-content: flex-end;\n }\n .md\\:justify-content-center {\n justify-content: center;\n }\n .md\\:justify-content-between {\n justify-content: space-between;\n }\n .md\\:justify-content-around {\n justify-content: space-around;\n }\n .md\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .md\\:justify-items-start {\n justify-items: start;\n }\n .md\\:justify-items-end {\n justify-items: end;\n }\n .md\\:justify-items-center {\n justify-items: center;\n }\n .md\\:justify-items-stretch {\n justify-items: stretch;\n }\n .md\\:justify-self-start {\n justify-self: start;\n }\n .md\\:justify-self-end {\n justify-self: end;\n }\n .md\\:justify-self-center {\n justify-self: center;\n }\n .md\\:align-items-start {\n align-items: flex-start;\n }\n .md\\:align-items-end {\n align-items: flex-end;\n }\n .md\\:align-items-center {\n align-items: center;\n }\n .md\\:align-items-baseline {\n align-items: baseline;\n }\n .md\\:align-items-stretch {\n align-items: stretch;\n }\n .md\\:align-content-start {\n align-content: flex-start;\n }\n .md\\:align-content-end {\n align-content: flex-end;\n }\n .md\\:align-content-center {\n align-content: center;\n }\n .md\\:align-content-between {\n align-content: space-between;\n }\n .md\\:align-content-around {\n align-content: space-around;\n }\n .md\\:align-content-stretch {\n align-content: stretch;\n }\n .md\\:align-self-auto {\n align-self: auto;\n }\n .md\\:align-self-start {\n align-self: flex-start;\n }\n .md\\:align-self-end {\n align-self: flex-end;\n }\n .md\\:align-self-center {\n align-self: center;\n }\n .md\\:align-self-baseline {\n align-self: baseline;\n }\n .md\\:align-self-stretch {\n align-self: stretch;\n }\n .md\\:place-items-start {\n place-items: start;\n }\n .md\\:place-items-end {\n place-items: end;\n }\n .md\\:place-items-center {\n place-items: center;\n }\n .md\\:place-items-stretch {\n place-items: stretch;\n }\n .md\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .md\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .md\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .md\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .md\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .md\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .md\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .md\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .md\\:order-first {\n order: -1;\n }\n .md\\:order-0 {\n order: 0;\n }\n .md\\:order-1 {\n order: 1;\n }\n .md\\:order-2 {\n order: 2;\n }\n .md\\:order-3 {\n order: 3;\n }\n .md\\:order-4 {\n order: 4;\n }\n .md\\:order-5 {\n order: 5;\n }\n .md\\:order-last {\n order: 6;\n }\n .md\\:m-0 {\n margin: 0;\n }\n .md\\:m-1 {\n margin: 0.25rem;\n }\n .md\\:m-2 {\n margin: 0.5rem;\n }\n .md\\:m-3 {\n margin: 0.75rem;\n }\n .md\\:m-4 {\n margin: 1rem;\n }\n .md\\:m-5 {\n margin: 1.25rem;\n }\n .md\\:m-6 {\n margin: 1.5rem;\n }\n .md\\:m-7 {\n margin: 2rem;\n }\n .md\\:m-8 {\n margin: 2.5rem;\n }\n .md\\:m-9 {\n margin: 3rem;\n }\n .md\\:m-auto {\n margin: auto;\n }\n .md\\:mx-0 {\n margin-inline: 0;\n }\n .md\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .md\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .md\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .md\\:mx-4 {\n margin-inline: 1rem;\n }\n .md\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .md\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .md\\:mx-7 {\n margin-inline: 2rem;\n }\n .md\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .md\\:mx-9 {\n margin-inline: 3rem;\n }\n .md\\:mx-auto {\n margin-inline: auto;\n }\n .md\\:my-0 {\n margin-block: 0;\n }\n .md\\:my-1 {\n margin-block: 0.25rem;\n }\n .md\\:my-2 {\n margin-block: 0.5rem;\n }\n .md\\:my-3 {\n margin-block: 0.75rem;\n }\n .md\\:my-4 {\n margin-block: 1rem;\n }\n .md\\:my-5 {\n margin-block: 1.25rem;\n }\n .md\\:my-6 {\n margin-block: 1.5rem;\n }\n .md\\:my-7 {\n margin-block: 2rem;\n }\n .md\\:my-8 {\n margin-block: 2.5rem;\n }\n .md\\:my-9 {\n margin-block: 3rem;\n }\n .md\\:my-auto {\n margin-block: auto;\n }\n .md\\:mt-0 {\n margin-block-start: 0;\n }\n .md\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .md\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .md\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .md\\:mt-4 {\n margin-block-start: 1rem;\n }\n .md\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .md\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .md\\:mt-7 {\n margin-block-start: 2rem;\n }\n .md\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .md\\:mt-9 {\n margin-block-start: 3rem;\n }\n .md\\:mt-auto {\n margin-block-start: auto;\n }\n .md\\:me-0 {\n margin-inline-end: 0;\n }\n .md\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .md\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .md\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .md\\:me-4 {\n margin-inline-end: 1rem;\n }\n .md\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .md\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .md\\:me-7 {\n margin-inline-end: 2rem;\n }\n .md\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .md\\:me-9 {\n margin-inline-end: 3rem;\n }\n .md\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .md\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .md\\:me-auto {\n margin-inline-end: auto;\n }\n .md\\:mb-0 {\n margin-block-end: 0;\n }\n .md\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .md\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .md\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .md\\:mb-4 {\n margin-block-end: 1rem;\n }\n .md\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .md\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .md\\:mb-7 {\n margin-block-end: 2rem;\n }\n .md\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .md\\:mb-9 {\n margin-block-end: 3rem;\n }\n .md\\:mb-auto {\n margin-block-end: auto;\n }\n .md\\:ms-0 {\n margin-inline-start: 0;\n }\n .md\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .md\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .md\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .md\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .md\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .md\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .md\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .md\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .md\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .md\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .md\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .md\\:ms-auto {\n margin-inline-start: auto;\n }\n .md\\:p-0 {\n padding: 0;\n }\n .md\\:p-1 {\n padding: 0.25rem;\n }\n .md\\:p-2 {\n padding: 0.5rem;\n }\n .md\\:p-3 {\n padding: 0.75rem;\n }\n .md\\:p-4 {\n padding: 1rem;\n }\n .md\\:p-5 {\n padding: 1.25rem;\n }\n .md\\:p-6 {\n padding: 1.5rem;\n }\n .md\\:p-7 {\n padding: 2rem;\n }\n .md\\:p-8 {\n padding: 2.5rem;\n }\n .md\\:p-9 {\n padding: 3rem;\n }\n .md\\:px-0 {\n padding-inline: 0;\n }\n .md\\:px-1 {\n padding-inline: 0.25rem;\n }\n .md\\:px-2 {\n padding-inline: 0.5rem;\n }\n .md\\:px-3 {\n padding-inline: 0.75rem;\n }\n .md\\:px-4 {\n padding-inline: 1rem;\n }\n .md\\:px-5 {\n padding-inline: 1.25rem;\n }\n .md\\:px-6 {\n padding-inline: 1.5rem;\n }\n .md\\:px-7 {\n padding-inline: 2rem;\n }\n .md\\:px-8 {\n padding-inline: 2.5rem;\n }\n .md\\:px-9 {\n padding-inline: 3rem;\n }\n .md\\:py-0 {\n padding-block: 0;\n }\n .md\\:py-1 {\n padding-block: 0.25rem;\n }\n .md\\:py-2 {\n padding-block: 0.5rem;\n }\n .md\\:py-3 {\n padding-block: 0.75rem;\n }\n .md\\:py-4 {\n padding-block: 1rem;\n }\n .md\\:py-5 {\n padding-block: 1.25rem;\n }\n .md\\:py-6 {\n padding-block: 1.5rem;\n }\n .md\\:py-7 {\n padding-block: 2rem;\n }\n .md\\:py-8 {\n padding-block: 2.5rem;\n }\n .md\\:py-9 {\n padding-block: 3rem;\n }\n .md\\:pt-0 {\n padding-block-start: 0;\n }\n .md\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .md\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .md\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .md\\:pt-4 {\n padding-block-start: 1rem;\n }\n .md\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .md\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .md\\:pt-7 {\n padding-block-start: 2rem;\n }\n .md\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .md\\:pt-9 {\n padding-block-start: 3rem;\n }\n .md\\:pe-0 {\n padding-inline-end: 0;\n }\n .md\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .md\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .md\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .md\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .md\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .md\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .md\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .md\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .md\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .md\\:pb-0 {\n padding-block-end: 0;\n }\n .md\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .md\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .md\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .md\\:pb-4 {\n padding-block-end: 1rem;\n }\n .md\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .md\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .md\\:pb-7 {\n padding-block-end: 2rem;\n }\n .md\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .md\\:pb-9 {\n padding-block-end: 3rem;\n }\n .md\\:ps-0 {\n padding-inline-start: 0;\n }\n .md\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .md\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .md\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .md\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .md\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .md\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .md\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .md\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .md\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .md\\:gap-0 {\n gap: 0;\n }\n .md\\:gap-1 {\n gap: 0.25rem;\n }\n .md\\:gap-2 {\n gap: 0.5rem;\n }\n .md\\:gap-3 {\n gap: 0.75rem;\n }\n .md\\:gap-4 {\n gap: 1rem;\n }\n .md\\:gap-5 {\n gap: 1.25rem;\n }\n .md\\:gap-6 {\n gap: 1.5rem;\n }\n .md\\:gap-7 {\n gap: 2rem;\n }\n .md\\:gap-8 {\n gap: 2.5rem;\n }\n .md\\:gap-9 {\n gap: 3rem;\n }\n .md\\:row-gap-0 {\n row-gap: 0;\n }\n .md\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .md\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .md\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .md\\:row-gap-4 {\n row-gap: 1rem;\n }\n .md\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .md\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .md\\:row-gap-7 {\n row-gap: 2rem;\n }\n .md\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .md\\:row-gap-9 {\n row-gap: 3rem;\n }\n .md\\:column-gap-0 {\n column-gap: 0;\n }\n .md\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .md\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .md\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .md\\:column-gap-4 {\n column-gap: 1rem;\n }\n .md\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .md\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .md\\:column-gap-7 {\n column-gap: 2rem;\n }\n .md\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .md\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.md\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.md\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.md\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.md\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.md\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.md\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.md\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.md\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.md\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.md\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.md\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.md\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.md\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.md\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.md\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.md\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.md\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.md\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.md\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.md\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.md\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.md\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.md\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.md\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .md\\:text-start {\n text-align: start;\n }\n .md\\:text-end {\n text-align: end;\n }\n .md\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1024px) {\n .lg\\:float-start {\n float: inline-start;\n }\n .lg\\:float-end {\n float: inline-end;\n }\n .lg\\:float-none {\n float: none;\n }\n .lg\\:object-fit-contain {\n object-fit: contain;\n }\n .lg\\:object-fit-cover {\n object-fit: cover;\n }\n .lg\\:object-fit-fill {\n object-fit: fill;\n }\n .lg\\:object-fit-scale {\n object-fit: scale-down;\n }\n .lg\\:object-fit-none {\n object-fit: none;\n }\n .lg\\:d-inline {\n display: inline;\n }\n .lg\\:d-inline-block {\n display: inline-block;\n }\n .lg\\:d-block {\n display: block;\n }\n .lg\\:d-grid {\n display: grid;\n }\n .lg\\:d-inline-grid {\n display: inline-grid;\n }\n .lg\\:d-table {\n display: table;\n }\n .lg\\:d-table-row {\n display: table-row;\n }\n .lg\\:d-table-cell {\n display: table-cell;\n }\n .lg\\:d-flex {\n display: flex;\n }\n .lg\\:d-inline-flex {\n display: inline-flex;\n }\n .lg\\:d-contents {\n display: contents;\n }\n .lg\\:d-flow-root {\n display: flow-root;\n }\n .lg\\:d-none {\n display: none;\n }\n .lg\\:flex-fill {\n flex: 1 1 auto;\n }\n .lg\\:flex-row {\n flex-direction: row;\n }\n .lg\\:flex-column {\n flex-direction: column;\n }\n .lg\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .lg\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .lg\\:flex-grow-0 {\n flex-grow: 0;\n }\n .lg\\:flex-grow-1 {\n flex-grow: 1;\n }\n .lg\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .lg\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .lg\\:flex-wrap {\n flex-wrap: wrap;\n }\n .lg\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .lg\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .lg\\:justify-content-start {\n justify-content: flex-start;\n }\n .lg\\:justify-content-end {\n justify-content: flex-end;\n }\n .lg\\:justify-content-center {\n justify-content: center;\n }\n .lg\\:justify-content-between {\n justify-content: space-between;\n }\n .lg\\:justify-content-around {\n justify-content: space-around;\n }\n .lg\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .lg\\:justify-items-start {\n justify-items: start;\n }\n .lg\\:justify-items-end {\n justify-items: end;\n }\n .lg\\:justify-items-center {\n justify-items: center;\n }\n .lg\\:justify-items-stretch {\n justify-items: stretch;\n }\n .lg\\:justify-self-start {\n justify-self: start;\n }\n .lg\\:justify-self-end {\n justify-self: end;\n }\n .lg\\:justify-self-center {\n justify-self: center;\n }\n .lg\\:align-items-start {\n align-items: flex-start;\n }\n .lg\\:align-items-end {\n align-items: flex-end;\n }\n .lg\\:align-items-center {\n align-items: center;\n }\n .lg\\:align-items-baseline {\n align-items: baseline;\n }\n .lg\\:align-items-stretch {\n align-items: stretch;\n }\n .lg\\:align-content-start {\n align-content: flex-start;\n }\n .lg\\:align-content-end {\n align-content: flex-end;\n }\n .lg\\:align-content-center {\n align-content: center;\n }\n .lg\\:align-content-between {\n align-content: space-between;\n }\n .lg\\:align-content-around {\n align-content: space-around;\n }\n .lg\\:align-content-stretch {\n align-content: stretch;\n }\n .lg\\:align-self-auto {\n align-self: auto;\n }\n .lg\\:align-self-start {\n align-self: flex-start;\n }\n .lg\\:align-self-end {\n align-self: flex-end;\n }\n .lg\\:align-self-center {\n align-self: center;\n }\n .lg\\:align-self-baseline {\n align-self: baseline;\n }\n .lg\\:align-self-stretch {\n align-self: stretch;\n }\n .lg\\:place-items-start {\n place-items: start;\n }\n .lg\\:place-items-end {\n place-items: end;\n }\n .lg\\:place-items-center {\n place-items: center;\n }\n .lg\\:place-items-stretch {\n place-items: stretch;\n }\n .lg\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .lg\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .lg\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .lg\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .lg\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .lg\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .lg\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .lg\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .lg\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .lg\\:order-first {\n order: -1;\n }\n .lg\\:order-0 {\n order: 0;\n }\n .lg\\:order-1 {\n order: 1;\n }\n .lg\\:order-2 {\n order: 2;\n }\n .lg\\:order-3 {\n order: 3;\n }\n .lg\\:order-4 {\n order: 4;\n }\n .lg\\:order-5 {\n order: 5;\n }\n .lg\\:order-last {\n order: 6;\n }\n .lg\\:m-0 {\n margin: 0;\n }\n .lg\\:m-1 {\n margin: 0.25rem;\n }\n .lg\\:m-2 {\n margin: 0.5rem;\n }\n .lg\\:m-3 {\n margin: 0.75rem;\n }\n .lg\\:m-4 {\n margin: 1rem;\n }\n .lg\\:m-5 {\n margin: 1.25rem;\n }\n .lg\\:m-6 {\n margin: 1.5rem;\n }\n .lg\\:m-7 {\n margin: 2rem;\n }\n .lg\\:m-8 {\n margin: 2.5rem;\n }\n .lg\\:m-9 {\n margin: 3rem;\n }\n .lg\\:m-auto {\n margin: auto;\n }\n .lg\\:mx-0 {\n margin-inline: 0;\n }\n .lg\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .lg\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .lg\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .lg\\:mx-4 {\n margin-inline: 1rem;\n }\n .lg\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .lg\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .lg\\:mx-7 {\n margin-inline: 2rem;\n }\n .lg\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .lg\\:mx-9 {\n margin-inline: 3rem;\n }\n .lg\\:mx-auto {\n margin-inline: auto;\n }\n .lg\\:my-0 {\n margin-block: 0;\n }\n .lg\\:my-1 {\n margin-block: 0.25rem;\n }\n .lg\\:my-2 {\n margin-block: 0.5rem;\n }\n .lg\\:my-3 {\n margin-block: 0.75rem;\n }\n .lg\\:my-4 {\n margin-block: 1rem;\n }\n .lg\\:my-5 {\n margin-block: 1.25rem;\n }\n .lg\\:my-6 {\n margin-block: 1.5rem;\n }\n .lg\\:my-7 {\n margin-block: 2rem;\n }\n .lg\\:my-8 {\n margin-block: 2.5rem;\n }\n .lg\\:my-9 {\n margin-block: 3rem;\n }\n .lg\\:my-auto {\n margin-block: auto;\n }\n .lg\\:mt-0 {\n margin-block-start: 0;\n }\n .lg\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .lg\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .lg\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .lg\\:mt-4 {\n margin-block-start: 1rem;\n }\n .lg\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .lg\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .lg\\:mt-7 {\n margin-block-start: 2rem;\n }\n .lg\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .lg\\:mt-9 {\n margin-block-start: 3rem;\n }\n .lg\\:mt-auto {\n margin-block-start: auto;\n }\n .lg\\:me-0 {\n margin-inline-end: 0;\n }\n .lg\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .lg\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .lg\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .lg\\:me-4 {\n margin-inline-end: 1rem;\n }\n .lg\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .lg\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .lg\\:me-7 {\n margin-inline-end: 2rem;\n }\n .lg\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .lg\\:me-9 {\n margin-inline-end: 3rem;\n }\n .lg\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .lg\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .lg\\:me-auto {\n margin-inline-end: auto;\n }\n .lg\\:mb-0 {\n margin-block-end: 0;\n }\n .lg\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .lg\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .lg\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .lg\\:mb-4 {\n margin-block-end: 1rem;\n }\n .lg\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .lg\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .lg\\:mb-7 {\n margin-block-end: 2rem;\n }\n .lg\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .lg\\:mb-9 {\n margin-block-end: 3rem;\n }\n .lg\\:mb-auto {\n margin-block-end: auto;\n }\n .lg\\:ms-0 {\n margin-inline-start: 0;\n }\n .lg\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .lg\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .lg\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .lg\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .lg\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .lg\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .lg\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .lg\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .lg\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .lg\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .lg\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .lg\\:ms-auto {\n margin-inline-start: auto;\n }\n .lg\\:p-0 {\n padding: 0;\n }\n .lg\\:p-1 {\n padding: 0.25rem;\n }\n .lg\\:p-2 {\n padding: 0.5rem;\n }\n .lg\\:p-3 {\n padding: 0.75rem;\n }\n .lg\\:p-4 {\n padding: 1rem;\n }\n .lg\\:p-5 {\n padding: 1.25rem;\n }\n .lg\\:p-6 {\n padding: 1.5rem;\n }\n .lg\\:p-7 {\n padding: 2rem;\n }\n .lg\\:p-8 {\n padding: 2.5rem;\n }\n .lg\\:p-9 {\n padding: 3rem;\n }\n .lg\\:px-0 {\n padding-inline: 0;\n }\n .lg\\:px-1 {\n padding-inline: 0.25rem;\n }\n .lg\\:px-2 {\n padding-inline: 0.5rem;\n }\n .lg\\:px-3 {\n padding-inline: 0.75rem;\n }\n .lg\\:px-4 {\n padding-inline: 1rem;\n }\n .lg\\:px-5 {\n padding-inline: 1.25rem;\n }\n .lg\\:px-6 {\n padding-inline: 1.5rem;\n }\n .lg\\:px-7 {\n padding-inline: 2rem;\n }\n .lg\\:px-8 {\n padding-inline: 2.5rem;\n }\n .lg\\:px-9 {\n padding-inline: 3rem;\n }\n .lg\\:py-0 {\n padding-block: 0;\n }\n .lg\\:py-1 {\n padding-block: 0.25rem;\n }\n .lg\\:py-2 {\n padding-block: 0.5rem;\n }\n .lg\\:py-3 {\n padding-block: 0.75rem;\n }\n .lg\\:py-4 {\n padding-block: 1rem;\n }\n .lg\\:py-5 {\n padding-block: 1.25rem;\n }\n .lg\\:py-6 {\n padding-block: 1.5rem;\n }\n .lg\\:py-7 {\n padding-block: 2rem;\n }\n .lg\\:py-8 {\n padding-block: 2.5rem;\n }\n .lg\\:py-9 {\n padding-block: 3rem;\n }\n .lg\\:pt-0 {\n padding-block-start: 0;\n }\n .lg\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .lg\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .lg\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .lg\\:pt-4 {\n padding-block-start: 1rem;\n }\n .lg\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .lg\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .lg\\:pt-7 {\n padding-block-start: 2rem;\n }\n .lg\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .lg\\:pt-9 {\n padding-block-start: 3rem;\n }\n .lg\\:pe-0 {\n padding-inline-end: 0;\n }\n .lg\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .lg\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .lg\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .lg\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .lg\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .lg\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .lg\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .lg\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .lg\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .lg\\:pb-0 {\n padding-block-end: 0;\n }\n .lg\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .lg\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .lg\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .lg\\:pb-4 {\n padding-block-end: 1rem;\n }\n .lg\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .lg\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .lg\\:pb-7 {\n padding-block-end: 2rem;\n }\n .lg\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .lg\\:pb-9 {\n padding-block-end: 3rem;\n }\n .lg\\:ps-0 {\n padding-inline-start: 0;\n }\n .lg\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .lg\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .lg\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .lg\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .lg\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .lg\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .lg\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .lg\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .lg\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .lg\\:gap-0 {\n gap: 0;\n }\n .lg\\:gap-1 {\n gap: 0.25rem;\n }\n .lg\\:gap-2 {\n gap: 0.5rem;\n }\n .lg\\:gap-3 {\n gap: 0.75rem;\n }\n .lg\\:gap-4 {\n gap: 1rem;\n }\n .lg\\:gap-5 {\n gap: 1.25rem;\n }\n .lg\\:gap-6 {\n gap: 1.5rem;\n }\n .lg\\:gap-7 {\n gap: 2rem;\n }\n .lg\\:gap-8 {\n gap: 2.5rem;\n }\n .lg\\:gap-9 {\n gap: 3rem;\n }\n .lg\\:row-gap-0 {\n row-gap: 0;\n }\n .lg\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .lg\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .lg\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .lg\\:row-gap-4 {\n row-gap: 1rem;\n }\n .lg\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .lg\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .lg\\:row-gap-7 {\n row-gap: 2rem;\n }\n .lg\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .lg\\:row-gap-9 {\n row-gap: 3rem;\n }\n .lg\\:column-gap-0 {\n column-gap: 0;\n }\n .lg\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .lg\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .lg\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .lg\\:column-gap-4 {\n column-gap: 1rem;\n }\n .lg\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .lg\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .lg\\:column-gap-7 {\n column-gap: 2rem;\n }\n .lg\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .lg\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.lg\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.lg\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.lg\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.lg\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.lg\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.lg\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.lg\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.lg\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.lg\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.lg\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.lg\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.lg\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.lg\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.lg\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.lg\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.lg\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.lg\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.lg\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.lg\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.lg\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.lg\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.lg\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.lg\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.lg\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .lg\\:text-start {\n text-align: start;\n }\n .lg\\:text-end {\n text-align: end;\n }\n .lg\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1280px) {\n .xl\\:float-start {\n float: inline-start;\n }\n .xl\\:float-end {\n float: inline-end;\n }\n .xl\\:float-none {\n float: none;\n }\n .xl\\:object-fit-contain {\n object-fit: contain;\n }\n .xl\\:object-fit-cover {\n object-fit: cover;\n }\n .xl\\:object-fit-fill {\n object-fit: fill;\n }\n .xl\\:object-fit-scale {\n object-fit: scale-down;\n }\n .xl\\:object-fit-none {\n object-fit: none;\n }\n .xl\\:d-inline {\n display: inline;\n }\n .xl\\:d-inline-block {\n display: inline-block;\n }\n .xl\\:d-block {\n display: block;\n }\n .xl\\:d-grid {\n display: grid;\n }\n .xl\\:d-inline-grid {\n display: inline-grid;\n }\n .xl\\:d-table {\n display: table;\n }\n .xl\\:d-table-row {\n display: table-row;\n }\n .xl\\:d-table-cell {\n display: table-cell;\n }\n .xl\\:d-flex {\n display: flex;\n }\n .xl\\:d-inline-flex {\n display: inline-flex;\n }\n .xl\\:d-contents {\n display: contents;\n }\n .xl\\:d-flow-root {\n display: flow-root;\n }\n .xl\\:d-none {\n display: none;\n }\n .xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .xl\\:flex-row {\n flex-direction: row;\n }\n .xl\\:flex-column {\n flex-direction: column;\n }\n .xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .xl\\:justify-content-center {\n justify-content: center;\n }\n .xl\\:justify-content-between {\n justify-content: space-between;\n }\n .xl\\:justify-content-around {\n justify-content: space-around;\n }\n .xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .xl\\:justify-items-start {\n justify-items: start;\n }\n .xl\\:justify-items-end {\n justify-items: end;\n }\n .xl\\:justify-items-center {\n justify-items: center;\n }\n .xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .xl\\:justify-self-start {\n justify-self: start;\n }\n .xl\\:justify-self-end {\n justify-self: end;\n }\n .xl\\:justify-self-center {\n justify-self: center;\n }\n .xl\\:align-items-start {\n align-items: flex-start;\n }\n .xl\\:align-items-end {\n align-items: flex-end;\n }\n .xl\\:align-items-center {\n align-items: center;\n }\n .xl\\:align-items-baseline {\n align-items: baseline;\n }\n .xl\\:align-items-stretch {\n align-items: stretch;\n }\n .xl\\:align-content-start {\n align-content: flex-start;\n }\n .xl\\:align-content-end {\n align-content: flex-end;\n }\n .xl\\:align-content-center {\n align-content: center;\n }\n .xl\\:align-content-between {\n align-content: space-between;\n }\n .xl\\:align-content-around {\n align-content: space-around;\n }\n .xl\\:align-content-stretch {\n align-content: stretch;\n }\n .xl\\:align-self-auto {\n align-self: auto;\n }\n .xl\\:align-self-start {\n align-self: flex-start;\n }\n .xl\\:align-self-end {\n align-self: flex-end;\n }\n .xl\\:align-self-center {\n align-self: center;\n }\n .xl\\:align-self-baseline {\n align-self: baseline;\n }\n .xl\\:align-self-stretch {\n align-self: stretch;\n }\n .xl\\:place-items-start {\n place-items: start;\n }\n .xl\\:place-items-end {\n place-items: end;\n }\n .xl\\:place-items-center {\n place-items: center;\n }\n .xl\\:place-items-stretch {\n place-items: stretch;\n }\n .xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .xl\\:order-first {\n order: -1;\n }\n .xl\\:order-0 {\n order: 0;\n }\n .xl\\:order-1 {\n order: 1;\n }\n .xl\\:order-2 {\n order: 2;\n }\n .xl\\:order-3 {\n order: 3;\n }\n .xl\\:order-4 {\n order: 4;\n }\n .xl\\:order-5 {\n order: 5;\n }\n .xl\\:order-last {\n order: 6;\n }\n .xl\\:m-0 {\n margin: 0;\n }\n .xl\\:m-1 {\n margin: 0.25rem;\n }\n .xl\\:m-2 {\n margin: 0.5rem;\n }\n .xl\\:m-3 {\n margin: 0.75rem;\n }\n .xl\\:m-4 {\n margin: 1rem;\n }\n .xl\\:m-5 {\n margin: 1.25rem;\n }\n .xl\\:m-6 {\n margin: 1.5rem;\n }\n .xl\\:m-7 {\n margin: 2rem;\n }\n .xl\\:m-8 {\n margin: 2.5rem;\n }\n .xl\\:m-9 {\n margin: 3rem;\n }\n .xl\\:m-auto {\n margin: auto;\n }\n .xl\\:mx-0 {\n margin-inline: 0;\n }\n .xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .xl\\:mx-auto {\n margin-inline: auto;\n }\n .xl\\:my-0 {\n margin-block: 0;\n }\n .xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .xl\\:my-4 {\n margin-block: 1rem;\n }\n .xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .xl\\:my-7 {\n margin-block: 2rem;\n }\n .xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .xl\\:my-9 {\n margin-block: 3rem;\n }\n .xl\\:my-auto {\n margin-block: auto;\n }\n .xl\\:mt-0 {\n margin-block-start: 0;\n }\n .xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .xl\\:mt-auto {\n margin-block-start: auto;\n }\n .xl\\:me-0 {\n margin-inline-end: 0;\n }\n .xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .xl\\:me-auto {\n margin-inline-end: auto;\n }\n .xl\\:mb-0 {\n margin-block-end: 0;\n }\n .xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .xl\\:mb-auto {\n margin-block-end: auto;\n }\n .xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .xl\\:p-0 {\n padding: 0;\n }\n .xl\\:p-1 {\n padding: 0.25rem;\n }\n .xl\\:p-2 {\n padding: 0.5rem;\n }\n .xl\\:p-3 {\n padding: 0.75rem;\n }\n .xl\\:p-4 {\n padding: 1rem;\n }\n .xl\\:p-5 {\n padding: 1.25rem;\n }\n .xl\\:p-6 {\n padding: 1.5rem;\n }\n .xl\\:p-7 {\n padding: 2rem;\n }\n .xl\\:p-8 {\n padding: 2.5rem;\n }\n .xl\\:p-9 {\n padding: 3rem;\n }\n .xl\\:px-0 {\n padding-inline: 0;\n }\n .xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .xl\\:px-4 {\n padding-inline: 1rem;\n }\n .xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .xl\\:px-7 {\n padding-inline: 2rem;\n }\n .xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .xl\\:px-9 {\n padding-inline: 3rem;\n }\n .xl\\:py-0 {\n padding-block: 0;\n }\n .xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .xl\\:py-4 {\n padding-block: 1rem;\n }\n .xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .xl\\:py-7 {\n padding-block: 2rem;\n }\n .xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .xl\\:py-9 {\n padding-block: 3rem;\n }\n .xl\\:pt-0 {\n padding-block-start: 0;\n }\n .xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .xl\\:pb-0 {\n padding-block-end: 0;\n }\n .xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .xl\\:gap-0 {\n gap: 0;\n }\n .xl\\:gap-1 {\n gap: 0.25rem;\n }\n .xl\\:gap-2 {\n gap: 0.5rem;\n }\n .xl\\:gap-3 {\n gap: 0.75rem;\n }\n .xl\\:gap-4 {\n gap: 1rem;\n }\n .xl\\:gap-5 {\n gap: 1.25rem;\n }\n .xl\\:gap-6 {\n gap: 1.5rem;\n }\n .xl\\:gap-7 {\n gap: 2rem;\n }\n .xl\\:gap-8 {\n gap: 2.5rem;\n }\n .xl\\:gap-9 {\n gap: 3rem;\n }\n .xl\\:row-gap-0 {\n row-gap: 0;\n }\n .xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .xl\\:column-gap-0 {\n column-gap: 0;\n }\n .xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.xl\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.xl\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.xl\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.xl\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.xl\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.xl\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.xl\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.xl\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.xl\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.xl\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.xl\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.xl\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.xl\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.xl\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.xl\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.xl\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.xl\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.xl\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.xl\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.xl\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.xl\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.xl\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.xl\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.xl\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .xl\\:text-start {\n text-align: start;\n }\n .xl\\:text-end {\n text-align: end;\n }\n .xl\\:text-center {\n text-align: center;\n }\n }\n @media (width >= 1536px) {\n .\\32 xl\\:float-start {\n float: inline-start;\n }\n .\\32 xl\\:float-end {\n float: inline-end;\n }\n .\\32 xl\\:float-none {\n float: none;\n }\n .\\32 xl\\:object-fit-contain {\n object-fit: contain;\n }\n .\\32 xl\\:object-fit-cover {\n object-fit: cover;\n }\n .\\32 xl\\:object-fit-fill {\n object-fit: fill;\n }\n .\\32 xl\\:object-fit-scale {\n object-fit: scale-down;\n }\n .\\32 xl\\:object-fit-none {\n object-fit: none;\n }\n .\\32 xl\\:d-inline {\n display: inline;\n }\n .\\32 xl\\:d-inline-block {\n display: inline-block;\n }\n .\\32 xl\\:d-block {\n display: block;\n }\n .\\32 xl\\:d-grid {\n display: grid;\n }\n .\\32 xl\\:d-inline-grid {\n display: inline-grid;\n }\n .\\32 xl\\:d-table {\n display: table;\n }\n .\\32 xl\\:d-table-row {\n display: table-row;\n }\n .\\32 xl\\:d-table-cell {\n display: table-cell;\n }\n .\\32 xl\\:d-flex {\n display: flex;\n }\n .\\32 xl\\:d-inline-flex {\n display: inline-flex;\n }\n .\\32 xl\\:d-contents {\n display: contents;\n }\n .\\32 xl\\:d-flow-root {\n display: flow-root;\n }\n .\\32 xl\\:d-none {\n display: none;\n }\n .\\32 xl\\:flex-fill {\n flex: 1 1 auto;\n }\n .\\32 xl\\:flex-row {\n flex-direction: row;\n }\n .\\32 xl\\:flex-column {\n flex-direction: column;\n }\n .\\32 xl\\:flex-row-reverse {\n flex-direction: row-reverse;\n }\n .\\32 xl\\:flex-column-reverse {\n flex-direction: column-reverse;\n }\n .\\32 xl\\:flex-grow-0 {\n flex-grow: 0;\n }\n .\\32 xl\\:flex-grow-1 {\n flex-grow: 1;\n }\n .\\32 xl\\:flex-shrink-0 {\n flex-shrink: 0;\n }\n .\\32 xl\\:flex-shrink-1 {\n flex-shrink: 1;\n }\n .\\32 xl\\:flex-wrap {\n flex-wrap: wrap;\n }\n .\\32 xl\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .\\32 xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n .\\32 xl\\:justify-content-start {\n justify-content: flex-start;\n }\n .\\32 xl\\:justify-content-end {\n justify-content: flex-end;\n }\n .\\32 xl\\:justify-content-center {\n justify-content: center;\n }\n .\\32 xl\\:justify-content-between {\n justify-content: space-between;\n }\n .\\32 xl\\:justify-content-around {\n justify-content: space-around;\n }\n .\\32 xl\\:justify-content-evenly {\n justify-content: space-evenly;\n }\n .\\32 xl\\:justify-items-start {\n justify-items: start;\n }\n .\\32 xl\\:justify-items-end {\n justify-items: end;\n }\n .\\32 xl\\:justify-items-center {\n justify-items: center;\n }\n .\\32 xl\\:justify-items-stretch {\n justify-items: stretch;\n }\n .\\32 xl\\:justify-self-start {\n justify-self: start;\n }\n .\\32 xl\\:justify-self-end {\n justify-self: end;\n }\n .\\32 xl\\:justify-self-center {\n justify-self: center;\n }\n .\\32 xl\\:align-items-start {\n align-items: flex-start;\n }\n .\\32 xl\\:align-items-end {\n align-items: flex-end;\n }\n .\\32 xl\\:align-items-center {\n align-items: center;\n }\n .\\32 xl\\:align-items-baseline {\n align-items: baseline;\n }\n .\\32 xl\\:align-items-stretch {\n align-items: stretch;\n }\n .\\32 xl\\:align-content-start {\n align-content: flex-start;\n }\n .\\32 xl\\:align-content-end {\n align-content: flex-end;\n }\n .\\32 xl\\:align-content-center {\n align-content: center;\n }\n .\\32 xl\\:align-content-between {\n align-content: space-between;\n }\n .\\32 xl\\:align-content-around {\n align-content: space-around;\n }\n .\\32 xl\\:align-content-stretch {\n align-content: stretch;\n }\n .\\32 xl\\:align-self-auto {\n align-self: auto;\n }\n .\\32 xl\\:align-self-start {\n align-self: flex-start;\n }\n .\\32 xl\\:align-self-end {\n align-self: flex-end;\n }\n .\\32 xl\\:align-self-center {\n align-self: center;\n }\n .\\32 xl\\:align-self-baseline {\n align-self: baseline;\n }\n .\\32 xl\\:align-self-stretch {\n align-self: stretch;\n }\n .\\32 xl\\:place-items-start {\n place-items: start;\n }\n .\\32 xl\\:place-items-end {\n place-items: end;\n }\n .\\32 xl\\:place-items-center {\n place-items: center;\n }\n .\\32 xl\\:place-items-stretch {\n place-items: stretch;\n }\n .\\32 xl\\:grid-cols-1 {\n grid-template-columns: 1fr;\n }\n .\\32 xl\\:grid-cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n .\\32 xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n .\\32 xl\\:grid-cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n .\\32 xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n .\\32 xl\\:grid-cols-fill {\n grid-column: 1 / -1;\n }\n .\\32 xl\\:grid-auto-flow-row {\n grid-auto-flow: row;\n }\n .\\32 xl\\:grid-auto-flow-column {\n grid-auto-flow: column;\n }\n .\\32 xl\\:grid-auto-flow-dense {\n grid-auto-flow: dense;\n }\n .\\32 xl\\:order-first {\n order: -1;\n }\n .\\32 xl\\:order-0 {\n order: 0;\n }\n .\\32 xl\\:order-1 {\n order: 1;\n }\n .\\32 xl\\:order-2 {\n order: 2;\n }\n .\\32 xl\\:order-3 {\n order: 3;\n }\n .\\32 xl\\:order-4 {\n order: 4;\n }\n .\\32 xl\\:order-5 {\n order: 5;\n }\n .\\32 xl\\:order-last {\n order: 6;\n }\n .\\32 xl\\:m-0 {\n margin: 0;\n }\n .\\32 xl\\:m-1 {\n margin: 0.25rem;\n }\n .\\32 xl\\:m-2 {\n margin: 0.5rem;\n }\n .\\32 xl\\:m-3 {\n margin: 0.75rem;\n }\n .\\32 xl\\:m-4 {\n margin: 1rem;\n }\n .\\32 xl\\:m-5 {\n margin: 1.25rem;\n }\n .\\32 xl\\:m-6 {\n margin: 1.5rem;\n }\n .\\32 xl\\:m-7 {\n margin: 2rem;\n }\n .\\32 xl\\:m-8 {\n margin: 2.5rem;\n }\n .\\32 xl\\:m-9 {\n margin: 3rem;\n }\n .\\32 xl\\:m-auto {\n margin: auto;\n }\n .\\32 xl\\:mx-0 {\n margin-inline: 0;\n }\n .\\32 xl\\:mx-1 {\n margin-inline: 0.25rem;\n }\n .\\32 xl\\:mx-2 {\n margin-inline: 0.5rem;\n }\n .\\32 xl\\:mx-3 {\n margin-inline: 0.75rem;\n }\n .\\32 xl\\:mx-4 {\n margin-inline: 1rem;\n }\n .\\32 xl\\:mx-5 {\n margin-inline: 1.25rem;\n }\n .\\32 xl\\:mx-6 {\n margin-inline: 1.5rem;\n }\n .\\32 xl\\:mx-7 {\n margin-inline: 2rem;\n }\n .\\32 xl\\:mx-8 {\n margin-inline: 2.5rem;\n }\n .\\32 xl\\:mx-9 {\n margin-inline: 3rem;\n }\n .\\32 xl\\:mx-auto {\n margin-inline: auto;\n }\n .\\32 xl\\:my-0 {\n margin-block: 0;\n }\n .\\32 xl\\:my-1 {\n margin-block: 0.25rem;\n }\n .\\32 xl\\:my-2 {\n margin-block: 0.5rem;\n }\n .\\32 xl\\:my-3 {\n margin-block: 0.75rem;\n }\n .\\32 xl\\:my-4 {\n margin-block: 1rem;\n }\n .\\32 xl\\:my-5 {\n margin-block: 1.25rem;\n }\n .\\32 xl\\:my-6 {\n margin-block: 1.5rem;\n }\n .\\32 xl\\:my-7 {\n margin-block: 2rem;\n }\n .\\32 xl\\:my-8 {\n margin-block: 2.5rem;\n }\n .\\32 xl\\:my-9 {\n margin-block: 3rem;\n }\n .\\32 xl\\:my-auto {\n margin-block: auto;\n }\n .\\32 xl\\:mt-0 {\n margin-block-start: 0;\n }\n .\\32 xl\\:mt-1 {\n margin-block-start: 0.25rem;\n }\n .\\32 xl\\:mt-2 {\n margin-block-start: 0.5rem;\n }\n .\\32 xl\\:mt-3 {\n margin-block-start: 0.75rem;\n }\n .\\32 xl\\:mt-4 {\n margin-block-start: 1rem;\n }\n .\\32 xl\\:mt-5 {\n margin-block-start: 1.25rem;\n }\n .\\32 xl\\:mt-6 {\n margin-block-start: 1.5rem;\n }\n .\\32 xl\\:mt-7 {\n margin-block-start: 2rem;\n }\n .\\32 xl\\:mt-8 {\n margin-block-start: 2.5rem;\n }\n .\\32 xl\\:mt-9 {\n margin-block-start: 3rem;\n }\n .\\32 xl\\:mt-auto {\n margin-block-start: auto;\n }\n .\\32 xl\\:me-0 {\n margin-inline-end: 0;\n }\n .\\32 xl\\:me-1 {\n margin-inline-end: 0.25rem;\n }\n .\\32 xl\\:me-2 {\n margin-inline-end: 0.5rem;\n }\n .\\32 xl\\:me-3 {\n margin-inline-end: 0.75rem;\n }\n .\\32 xl\\:me-4 {\n margin-inline-end: 1rem;\n }\n .\\32 xl\\:me-5 {\n margin-inline-end: 1.25rem;\n }\n .\\32 xl\\:me-6 {\n margin-inline-end: 1.5rem;\n }\n .\\32 xl\\:me-7 {\n margin-inline-end: 2rem;\n }\n .\\32 xl\\:me-8 {\n margin-inline-end: 2.5rem;\n }\n .\\32 xl\\:me-9 {\n margin-inline-end: 3rem;\n }\n .\\32 xl\\:me--1 {\n margin-inline-end: -0.25rem;\n }\n .\\32 xl\\:me--2 {\n margin-inline-end: -0.5rem;\n }\n .\\32 xl\\:me-auto {\n margin-inline-end: auto;\n }\n .\\32 xl\\:mb-0 {\n margin-block-end: 0;\n }\n .\\32 xl\\:mb-1 {\n margin-block-end: 0.25rem;\n }\n .\\32 xl\\:mb-2 {\n margin-block-end: 0.5rem;\n }\n .\\32 xl\\:mb-3 {\n margin-block-end: 0.75rem;\n }\n .\\32 xl\\:mb-4 {\n margin-block-end: 1rem;\n }\n .\\32 xl\\:mb-5 {\n margin-block-end: 1.25rem;\n }\n .\\32 xl\\:mb-6 {\n margin-block-end: 1.5rem;\n }\n .\\32 xl\\:mb-7 {\n margin-block-end: 2rem;\n }\n .\\32 xl\\:mb-8 {\n margin-block-end: 2.5rem;\n }\n .\\32 xl\\:mb-9 {\n margin-block-end: 3rem;\n }\n .\\32 xl\\:mb-auto {\n margin-block-end: auto;\n }\n .\\32 xl\\:ms-0 {\n margin-inline-start: 0;\n }\n .\\32 xl\\:ms-1 {\n margin-inline-start: 0.25rem;\n }\n .\\32 xl\\:ms-2 {\n margin-inline-start: 0.5rem;\n }\n .\\32 xl\\:ms-3 {\n margin-inline-start: 0.75rem;\n }\n .\\32 xl\\:ms-4 {\n margin-inline-start: 1rem;\n }\n .\\32 xl\\:ms-5 {\n margin-inline-start: 1.25rem;\n }\n .\\32 xl\\:ms-6 {\n margin-inline-start: 1.5rem;\n }\n .\\32 xl\\:ms-7 {\n margin-inline-start: 2rem;\n }\n .\\32 xl\\:ms-8 {\n margin-inline-start: 2.5rem;\n }\n .\\32 xl\\:ms-9 {\n margin-inline-start: 3rem;\n }\n .\\32 xl\\:ms--1 {\n margin-inline-start: -0.25rem;\n }\n .\\32 xl\\:ms--2 {\n margin-inline-start: -0.5rem;\n }\n .\\32 xl\\:ms-auto {\n margin-inline-start: auto;\n }\n .\\32 xl\\:p-0 {\n padding: 0;\n }\n .\\32 xl\\:p-1 {\n padding: 0.25rem;\n }\n .\\32 xl\\:p-2 {\n padding: 0.5rem;\n }\n .\\32 xl\\:p-3 {\n padding: 0.75rem;\n }\n .\\32 xl\\:p-4 {\n padding: 1rem;\n }\n .\\32 xl\\:p-5 {\n padding: 1.25rem;\n }\n .\\32 xl\\:p-6 {\n padding: 1.5rem;\n }\n .\\32 xl\\:p-7 {\n padding: 2rem;\n }\n .\\32 xl\\:p-8 {\n padding: 2.5rem;\n }\n .\\32 xl\\:p-9 {\n padding: 3rem;\n }\n .\\32 xl\\:px-0 {\n padding-inline: 0;\n }\n .\\32 xl\\:px-1 {\n padding-inline: 0.25rem;\n }\n .\\32 xl\\:px-2 {\n padding-inline: 0.5rem;\n }\n .\\32 xl\\:px-3 {\n padding-inline: 0.75rem;\n }\n .\\32 xl\\:px-4 {\n padding-inline: 1rem;\n }\n .\\32 xl\\:px-5 {\n padding-inline: 1.25rem;\n }\n .\\32 xl\\:px-6 {\n padding-inline: 1.5rem;\n }\n .\\32 xl\\:px-7 {\n padding-inline: 2rem;\n }\n .\\32 xl\\:px-8 {\n padding-inline: 2.5rem;\n }\n .\\32 xl\\:px-9 {\n padding-inline: 3rem;\n }\n .\\32 xl\\:py-0 {\n padding-block: 0;\n }\n .\\32 xl\\:py-1 {\n padding-block: 0.25rem;\n }\n .\\32 xl\\:py-2 {\n padding-block: 0.5rem;\n }\n .\\32 xl\\:py-3 {\n padding-block: 0.75rem;\n }\n .\\32 xl\\:py-4 {\n padding-block: 1rem;\n }\n .\\32 xl\\:py-5 {\n padding-block: 1.25rem;\n }\n .\\32 xl\\:py-6 {\n padding-block: 1.5rem;\n }\n .\\32 xl\\:py-7 {\n padding-block: 2rem;\n }\n .\\32 xl\\:py-8 {\n padding-block: 2.5rem;\n }\n .\\32 xl\\:py-9 {\n padding-block: 3rem;\n }\n .\\32 xl\\:pt-0 {\n padding-block-start: 0;\n }\n .\\32 xl\\:pt-1 {\n padding-block-start: 0.25rem;\n }\n .\\32 xl\\:pt-2 {\n padding-block-start: 0.5rem;\n }\n .\\32 xl\\:pt-3 {\n padding-block-start: 0.75rem;\n }\n .\\32 xl\\:pt-4 {\n padding-block-start: 1rem;\n }\n .\\32 xl\\:pt-5 {\n padding-block-start: 1.25rem;\n }\n .\\32 xl\\:pt-6 {\n padding-block-start: 1.5rem;\n }\n .\\32 xl\\:pt-7 {\n padding-block-start: 2rem;\n }\n .\\32 xl\\:pt-8 {\n padding-block-start: 2.5rem;\n }\n .\\32 xl\\:pt-9 {\n padding-block-start: 3rem;\n }\n .\\32 xl\\:pe-0 {\n padding-inline-end: 0;\n }\n .\\32 xl\\:pe-1 {\n padding-inline-end: 0.25rem;\n }\n .\\32 xl\\:pe-2 {\n padding-inline-end: 0.5rem;\n }\n .\\32 xl\\:pe-3 {\n padding-inline-end: 0.75rem;\n }\n .\\32 xl\\:pe-4 {\n padding-inline-end: 1rem;\n }\n .\\32 xl\\:pe-5 {\n padding-inline-end: 1.25rem;\n }\n .\\32 xl\\:pe-6 {\n padding-inline-end: 1.5rem;\n }\n .\\32 xl\\:pe-7 {\n padding-inline-end: 2rem;\n }\n .\\32 xl\\:pe-8 {\n padding-inline-end: 2.5rem;\n }\n .\\32 xl\\:pe-9 {\n padding-inline-end: 3rem;\n }\n .\\32 xl\\:pb-0 {\n padding-block-end: 0;\n }\n .\\32 xl\\:pb-1 {\n padding-block-end: 0.25rem;\n }\n .\\32 xl\\:pb-2 {\n padding-block-end: 0.5rem;\n }\n .\\32 xl\\:pb-3 {\n padding-block-end: 0.75rem;\n }\n .\\32 xl\\:pb-4 {\n padding-block-end: 1rem;\n }\n .\\32 xl\\:pb-5 {\n padding-block-end: 1.25rem;\n }\n .\\32 xl\\:pb-6 {\n padding-block-end: 1.5rem;\n }\n .\\32 xl\\:pb-7 {\n padding-block-end: 2rem;\n }\n .\\32 xl\\:pb-8 {\n padding-block-end: 2.5rem;\n }\n .\\32 xl\\:pb-9 {\n padding-block-end: 3rem;\n }\n .\\32 xl\\:ps-0 {\n padding-inline-start: 0;\n }\n .\\32 xl\\:ps-1 {\n padding-inline-start: 0.25rem;\n }\n .\\32 xl\\:ps-2 {\n padding-inline-start: 0.5rem;\n }\n .\\32 xl\\:ps-3 {\n padding-inline-start: 0.75rem;\n }\n .\\32 xl\\:ps-4 {\n padding-inline-start: 1rem;\n }\n .\\32 xl\\:ps-5 {\n padding-inline-start: 1.25rem;\n }\n .\\32 xl\\:ps-6 {\n padding-inline-start: 1.5rem;\n }\n .\\32 xl\\:ps-7 {\n padding-inline-start: 2rem;\n }\n .\\32 xl\\:ps-8 {\n padding-inline-start: 2.5rem;\n }\n .\\32 xl\\:ps-9 {\n padding-inline-start: 3rem;\n }\n .\\32 xl\\:gap-0 {\n gap: 0;\n }\n .\\32 xl\\:gap-1 {\n gap: 0.25rem;\n }\n .\\32 xl\\:gap-2 {\n gap: 0.5rem;\n }\n .\\32 xl\\:gap-3 {\n gap: 0.75rem;\n }\n .\\32 xl\\:gap-4 {\n gap: 1rem;\n }\n .\\32 xl\\:gap-5 {\n gap: 1.25rem;\n }\n .\\32 xl\\:gap-6 {\n gap: 1.5rem;\n }\n .\\32 xl\\:gap-7 {\n gap: 2rem;\n }\n .\\32 xl\\:gap-8 {\n gap: 2.5rem;\n }\n .\\32 xl\\:gap-9 {\n gap: 3rem;\n }\n .\\32 xl\\:row-gap-0 {\n row-gap: 0;\n }\n .\\32 xl\\:row-gap-1 {\n row-gap: 0.25rem;\n }\n .\\32 xl\\:row-gap-2 {\n row-gap: 0.5rem;\n }\n .\\32 xl\\:row-gap-3 {\n row-gap: 0.75rem;\n }\n .\\32 xl\\:row-gap-4 {\n row-gap: 1rem;\n }\n .\\32 xl\\:row-gap-5 {\n row-gap: 1.25rem;\n }\n .\\32 xl\\:row-gap-6 {\n row-gap: 1.5rem;\n }\n .\\32 xl\\:row-gap-7 {\n row-gap: 2rem;\n }\n .\\32 xl\\:row-gap-8 {\n row-gap: 2.5rem;\n }\n .\\32 xl\\:row-gap-9 {\n row-gap: 3rem;\n }\n .\\32 xl\\:column-gap-0 {\n column-gap: 0;\n }\n .\\32 xl\\:column-gap-1 {\n column-gap: 0.25rem;\n }\n .\\32 xl\\:column-gap-2 {\n column-gap: 0.5rem;\n }\n .\\32 xl\\:column-gap-3 {\n column-gap: 0.75rem;\n }\n .\\32 xl\\:column-gap-4 {\n column-gap: 1rem;\n }\n .\\32 xl\\:column-gap-5 {\n column-gap: 1.25rem;\n }\n .\\32 xl\\:column-gap-6 {\n column-gap: 1.5rem;\n }\n .\\32 xl\\:column-gap-7 {\n column-gap: 2rem;\n }\n .\\32 xl\\:column-gap-8 {\n column-gap: 2.5rem;\n }\n .\\32 xl\\:column-gap-9 {\n column-gap: 3rem;\n }\n :where(.\\32 xl\\:space-x-0 > :not(:last-child)) {\n margin-inline-end: 0;\n }\n :where(.\\32 xl\\:space-x-1 > :not(:last-child)) {\n margin-inline-end: 0.25rem;\n }\n :where(.\\32 xl\\:space-x-2 > :not(:last-child)) {\n margin-inline-end: 0.5rem;\n }\n :where(.\\32 xl\\:space-x-3 > :not(:last-child)) {\n margin-inline-end: 0.75rem;\n }\n :where(.\\32 xl\\:space-x-4 > :not(:last-child)) {\n margin-inline-end: 1rem;\n }\n :where(.\\32 xl\\:space-x-5 > :not(:last-child)) {\n margin-inline-end: 1.25rem;\n }\n :where(.\\32 xl\\:space-x-6 > :not(:last-child)) {\n margin-inline-end: 1.5rem;\n }\n :where(.\\32 xl\\:space-x-7 > :not(:last-child)) {\n margin-inline-end: 2rem;\n }\n :where(.\\32 xl\\:space-x-8 > :not(:last-child)) {\n margin-inline-end: 2.5rem;\n }\n :where(.\\32 xl\\:space-x-9 > :not(:last-child)) {\n margin-inline-end: 3rem;\n }\n :where(.\\32 xl\\:space-y-0 > :not(:last-child)) {\n margin-block-end: 0;\n }\n :where(.\\32 xl\\:space-y-1 > :not(:last-child)) {\n margin-block-end: 0.25rem;\n }\n :where(.\\32 xl\\:space-y-2 > :not(:last-child)) {\n margin-block-end: 0.5rem;\n }\n :where(.\\32 xl\\:space-y-3 > :not(:last-child)) {\n margin-block-end: 0.75rem;\n }\n :where(.\\32 xl\\:space-y-4 > :not(:last-child)) {\n margin-block-end: 1rem;\n }\n :where(.\\32 xl\\:space-y-5 > :not(:last-child)) {\n margin-block-end: 1.25rem;\n }\n :where(.\\32 xl\\:space-y-6 > :not(:last-child)) {\n margin-block-end: 1.5rem;\n }\n :where(.\\32 xl\\:space-y-7 > :not(:last-child)) {\n margin-block-end: 2rem;\n }\n :where(.\\32 xl\\:space-y-8 > :not(:last-child)) {\n margin-block-end: 2.5rem;\n }\n :where(.\\32 xl\\:space-y-9 > :not(:last-child)) {\n margin-block-end: 3rem;\n }\n :where(.\\32 xl\\:divide-x > :not(:first-child)) {\n border-inline-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.\\32 xl\\:divide-x-0 > :not(:first-child)) {\n border-inline-start: 0;\n }\n :where(.\\32 xl\\:divide-y > :not(:first-child)) {\n border-block-start: var(--border-width) var(--border-style) var(--border-color);\n }\n :where(.\\32 xl\\:divide-y-0 > :not(:first-child)) {\n border-block-start: 0;\n }\n .\\32 xl\\:text-start {\n text-align: start;\n }\n .\\32 xl\\:text-end {\n text-align: end;\n }\n .\\32 xl\\:text-center {\n text-align: center;\n }\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */\n","$file: \"\" !default;\n\n/*!\n * Bootstrap #{$file} v6.0.0-dev (https://getbootstrap.com/)\n * Copyright 2011-2026 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n","// stylelint-disable hue-degree-notation, @stylistic/number-leading-zero\n\n@use \"sass:map\";\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n// Easily convert colors to oklch() with https://oklch.com/\n\n$white: #fff !default;\n$black: #000 !default;\n\n// scss-docs-start colors-list\n$blue: oklch(60% 0.24 240) !default;\n$indigo: oklch(56% 0.26 288) !default;\n$violet: oklch(56% 0.24 300) !default;\n$purple: oklch(56% 0.24 320) !default;\n$pink: oklch(60% 0.22 4) !default;\n$red: oklch(60% 0.22 20) !default;\n$orange: oklch(70% 0.22 52) !default;\n$amber: oklch(79% 0.2 78) !default;\n$yellow: oklch(88% 0.24 88) !default;\n$lime: oklch(65% 0.24 135) !default;\n$green: oklch(64% 0.22 160) !default;\n$teal: oklch(68% 0.22 190) !default;\n$cyan: oklch(69% 0.22 220) !default;\n$brown: oklch(60% 0.12 54) !default;\n$gray: oklch(60% 0.02 245) !default;\n$pewter: oklch(65% 0.01 290) !default;\n// scss-docs-end colors-list\n\n// scss-docs-start colors-map\n$colors: () !default;\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: defaults(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"violet\": $violet,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"amber\": $amber,\n \"yellow\": $yellow,\n \"lime\": $lime,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"brown\": $brown,\n \"gray\": $gray,\n \"pewter\": $pewter,\n ),\n $colors\n);\n// scss-docs-end colors-map\n\n// scss-docs-start color-mix-options\n$color-mix-space: lab !default;\n$tint-color: var(--white) !default;\n$shade-color: var(--black) !default;\n\n$color-tints: (\n \"025\": 94%,\n \"050\": 90%,\n \"100\": 80%,\n \"200\": 60%,\n \"300\": 40%,\n \"400\": 20%,\n) !default;\n\n$color-shades: (\n \"600\": 16%,\n \"700\": 32%,\n \"800\": 48%,\n \"900\": 64%,\n \"950\": 76%,\n \"975\": 88%,\n) !default;\n// scss-docs-end color-mix-options\n\n// scss-docs-start color-tokens\n$color-tokens: () !default;\n\n$-color-defaults: () !default;\n@each $color, $value in $colors {\n @each $stop, $percent in $color-tints {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$tint-color} #{$percent}, #{$value}));\n }\n $-color-defaults: map.set($-color-defaults, --#{$color}-500, #{$value});\n @each $stop, $percent in $color-shades {\n $-color-defaults: map.set($-color-defaults, --#{$color}-#{$stop}, color-mix(in #{$color-mix-space}, #{$shade-color} #{$percent}, #{$value}));\n }\n}\n\n// stylelint-disable-next-line scss/dollar-variable-default\n$color-tokens: defaults($-color-defaults, $color-tokens);\n// scss-docs-end color-tokens\n\n:root {\n @include tokens($color-tokens);\n}\n","// Mixin to output tokens as CSS custom properties\n\n// scss-docs-start mixin-tokens\n@mixin tokens($map) {\n @each $prop, $value in $map {\n #{$prop}: #{$value};\n }\n}\n// scss-docs-end mixin-tokens\n","@use \"sass:map\";\n@use \"colors\" as *;\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"theme\" as *;\n@use \"mixins/tokens\" as *;\n// mdo-do: do we need theme?\n@layer colors, theme, config, root, reboot, layout, content, forms, components, custom, helpers, utilities;\n\n$root-tokens: () !default;\n\n// scss-docs-start root-tokens\n// stylelint-disable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: defaults(\n (\n --black: #{$black},\n --white: #{$white},\n\n --gradient: #{$gradient},\n\n // scss-docs-start root-font-weight-variables\n --font-weight-lighter: lighter,\n --font-weight-light: 300,\n --font-weight-normal: 400,\n --font-weight-medium: 500,\n --font-weight-semibold: 600,\n --font-weight-bold: 700,\n --font-weight-bolder: bolder,\n // scss-docs-end root-font-weight-variables\n\n // scss-docs-start root-body-variables\n --body-font-family: system-ui,\n --body-font-size: var(--font-size-base),\n --body-font-weight: #{$font-weight-base},\n --body-line-height: #{$line-height-base},\n\n --heading-color: #{$headings-color},\n\n --hr-border-color: var(--border-color),\n\n --link-color: light-dark(var(--primary-base), var(--primary-fg)),\n --link-decoration: #{$link-decoration},\n --link-hover-color: color-mix(in oklch, var(--link-color) 90%, #000),\n\n --font-mono: \"ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Monaco, 'Cascadia Mono', Consolas, 'Liberation Mono', monospace;\",\n --code-font-size: 95%,\n --code-color: var(--fg-2),\n\n // scss-docs-start root-border-var\n --border-width: #{$border-width},\n --border-style: #{$border-style},\n --border-color: light-dark(var(--gray-200), var(--gray-700)),\n --border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent),\n // scss-docs-end root-border-var\n\n // scss-docs-start root-box-shadow-variables\n --box-shadow: 0 .5rem 1rem rgb(0 0 0 / 15%),\n --box-shadow-sm: 0 .125rem .25rem rgb(0 0 0 / 7.5%),\n --box-shadow-lg: 0 1rem 3rem rgb(0 0 0 / 17.5%),\n --box-shadow-inset: inset 0 1px 2px rgb(0 0 0 / 7.5%),\n // scss-docs-end root-box-shadow-variables\n\n --spacer: 1rem,\n\n // scss-docs-start root-focus-variables\n --focus-ring-width: 3px,\n --focus-ring-offset: 1px,\n --focus-ring-color: var(--primary-focus-ring),\n --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color),\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-variables\n --control-checked-bg: var(--primary-base),\n --control-checked-border-color: var(--control-checked-bg),\n --control-active-bg: var(--primary-base),\n --control-active-border-color: var(--control-active-bg),\n --control-disabled-bg: var(--bg-3),\n --control-disabled-opacity: .65,\n\n --btn-input-fg: var(--fg-body),\n --btn-input-bg: var(--bg-body),\n\n --btn-input-min-height: 2.375rem,\n --btn-input-padding-y: .375rem,\n --btn-input-padding-x: .75rem,\n --btn-input-font-size: var(--font-size-base),\n --btn-input-line-height: var(--line-height-base),\n --btn-input-border-radius: var(--radius-5),\n\n --btn-input-xs-min-height: 1.5rem,\n --btn-input-xs-padding-y: .125rem,\n --btn-input-xs-padding-x: .5rem,\n --btn-input-xs-font-size: var(--font-size-xs),\n --btn-input-xs-line-height: 1.125,\n --btn-input-xs-border-radius: var(--radius-5),\n\n --btn-input-sm-min-height: 2rem,\n --btn-input-sm-padding-y: .25rem,\n --btn-input-sm-padding-x: .625rem,\n --btn-input-sm-font-size: var(--font-size-sm),\n --btn-input-sm-line-height: var(--line-height-sm),\n --btn-input-sm-border-radius: var(--radius-5),\n\n --btn-input-lg-min-height: 2.75rem,\n --btn-input-lg-padding-y: .5rem,\n --btn-input-lg-padding-x: 1rem,\n --btn-input-lg-font-size: var(--font-size-md),\n --btn-input-lg-line-height: var(--line-height-md),\n --btn-input-lg-border-radius: var(--radius-7),\n // scss-docs-end root-form-variables\n ),\n $root-tokens\n);\n// stylelint-enable @stylistic/value-list-max-empty-lines, @stylistic/function-max-empty-lines\n// scss-docs-end root-tokens\n\n// scss-docs-start root-font-size-loop\n// Generate font-size and line-height tokens\n@each $name, $props in $font-sizes {\n $root-tokens: map.set($root-tokens, --font-size-#{$name}, map.get($props, \"font-size\"));\n $root-tokens: map.set($root-tokens, --line-height-#{$name}, map.get($props, \"line-height\"));\n}\n// scss-docs-end root-font-size-loop\n\n// scss-docs-start root-theme-tokens\n// Generate semantic theme colors\n@each $color-name, $color-map in $theme-colors {\n @each $key, $value in $color-map {\n $root-tokens: map.set($root-tokens, --#{$color-name}-#{$key}, $value);\n }\n}\n\n// Generate background tokens\n@each $key, $value in $theme-bgs {\n $root-tokens: map.set($root-tokens, --bg-#{$key}, $value);\n}\n\n// Generate foreground tokens\n@each $key, $value in $theme-fgs {\n $root-tokens: map.set($root-tokens, --fg-#{$key}, $value);\n}\n\n// Generate border tokens\n@each $key, $value in $theme-borders {\n $root-tokens: map.set($root-tokens, --border-#{$key}, $value);\n}\n// scss-docs-end root-theme-tokens\n\n// Generate breakpoint tokens\n@each $name, $value in $breakpoints {\n $root-tokens: map.set($root-tokens, --breakpoint-#{$name}, $value);\n}\n\n// Generate spacer tokens\n// scss-docs-start root-spacer-loop\n@each $key, $value in $spacers {\n $root-tokens: map.set($root-tokens, --spacer-#{$key}, $value);\n}\n// scss-docs-end root-spacer-loop\n\n// Generate radius tokens\n// scss-docs-start root-radius-loop\n@each $key, $value in $radii {\n $root-tokens: map.set($root-tokens, --radius-#{$key}, $value);\n}\n// stylelint-disable-next-line scss/dollar-variable-default\n$root-tokens: map.set($root-tokens, --radius-pill, 50rem);\n// scss-docs-end root-radius-loop\n\n:root {\n @include tokens($root-tokens);\n\n color-scheme: light dark;\n // Always reserve the viewport scrollbar gutter so layout doesn't shift\n // when overflow: hidden is applied (e.g. when a dialog opens on Windows).\n scrollbar-gutter: stable;\n}\n\n[data-bs-theme=\"dark\"] {\n color-scheme: dark;\n}\n\n[data-bs-theme=\"light\"] {\n color-scheme: light;\n}\n","@use \"../config\" as *;\n@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n$reboot-kbd-tokens: () !default;\n$reboot-mark-tokens: () !default;\n\n// scss-docs-start reboot-kbd-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$reboot-kbd-tokens: defaults(\n (\n --kbd-padding-y: .125rem,\n --kbd-padding-x: .25rem,\n --kbd-font-size: var(--font-size-xs),\n --kbd-color: var(--bg-body),\n --kbd-bg: var(--fg-2),\n --kbd-border-radius: var(--radius-5),\n ),\n $reboot-kbd-tokens\n);\n// scss-docs-end reboot-kbd-tokens\n\n// scss-docs-start reboot-mark-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$reboot-mark-tokens: defaults(\n (\n --mark-padding: .1875em,\n --mark-color: var(--fg-body),\n --mark-bg: light-dark(var(--yellow-100), var(--yellow-900)),\n ),\n $reboot-mark-tokens\n);\n// scss-docs-end reboot-mark-tokens\n\n@layer reboot {\n // Reboot\n //\n // Normalization of HTML elements, manually forked from Normalize.css to remove\n // styles targeting irrelevant browsers while applying new styles.\n //\n // Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n // Document\n //\n // Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n // Root\n //\n // Ability to the value of the root font sizes, affecting the value of `rem`.\n // null by default, thus nothing is generated.\n\n :root {\n // Assume browser default font-size of 16px, or a user's preference\n accent-color: var(--primary-base);\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n }\n\n // Body\n //\n // 1. Remove the margin in all browsers.\n // 2. As a best practice, apply a default `background-color`.\n // 3. Prevent adjustments of font size after orientation changes in iOS.\n // 4. Change the default tap highlight to be completely transparent in iOS.\n\n // scss-docs-start reboot-body-rules\n body {\n margin: 0; // 1\n font-family: var(--body-font-family);\n font-size: var(--body-font-size);\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n color: var(--fg-body);\n text-align: var(--body-text-align);\n background-color: var(--bg-body); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: transparent; // 4\n }\n // scss-docs-end reboot-body-rules\n\n hr {\n margin: var(--hr-margin-y, var(--spacer)) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n\n // Typography\n //\n // 1. Remove top margins from headings\n // By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n // margin for easier control within type scales as it avoids margin collapsing.\n\n %heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: var(--heading-color);\n }\n\n h1,\n .h1 {\n @extend %heading;\n font-size: var(--font-size-3xl);\n }\n\n h2,\n .h2 {\n @extend %heading;\n font-size: var(--font-size-2xl);\n }\n\n h3,\n .h3 {\n @extend %heading;\n font-size: var(--font-size-xl);\n }\n\n h4,\n .h4 {\n @extend %heading;\n font-size: var(--font-size-lg);\n }\n\n h5,\n .h5 {\n @extend %heading;\n font-size: var(--font-size-md);\n }\n\n h6,\n .h6 {\n @extend %heading;\n font-size: var(--font-size-sm);\n }\n\n // Reset margins on paragraphs\n //\n // Similarly, the top margin on `<p>`s get reset. However, we also reset the\n // bottom margin to use `rem` units instead of `em`.\n\n p {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n }\n\n // Abbreviations\n //\n // 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n // 2. Add explicit cursor to indicate changed behavior.\n // 3. Prevent the text-decoration to be skipped.\n\n abbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n }\n\n // Address\n\n address {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n }\n\n // Lists\n\n ol,\n ul {\n padding-inline-start: 2rem;\n }\n\n ol,\n ul,\n dl {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n\n ol ol,\n ul ul,\n ol ul,\n ul ol {\n margin-bottom: 0;\n }\n\n dt {\n font-weight: $dt-font-weight;\n }\n\n // 1. Undo browser default\n\n dd {\n margin-inline-start: 0; // 1\n margin-bottom: .5rem;\n }\n\n // Blockquote\n\n blockquote {\n margin: 0 0 1rem;\n > * {\n margin-block: 0;\n }\n }\n\n // Strong\n //\n // Add the correct font weight in Chrome, Edge, and Safari\n\n b,\n strong {\n font-weight: $font-weight-bolder;\n }\n\n // Small\n //\n // Add the correct font size in all browsers\n\n small,\n .small {\n font-size: var(--small-font-size, 87.5%);\n }\n\n // Mark\n\n mark,\n .mark {\n @include tokens($reboot-mark-tokens);\n padding: var(--mark-padding);\n color: var(--mark-color);\n background-color: var(--mark-bg);\n }\n\n // Sub and Sup\n //\n // Prevent `sub` and `sup` elements from affecting the line height in\n // all browsers.\n\n sub,\n sup {\n position: relative;\n font-size: var(--sub-sup-font-size, .75em);\n line-height: 0;\n vertical-align: baseline;\n }\n\n sub { bottom: -.25em; }\n sup { top: -.5em; }\n\n // Links\n\n a {\n color: var(--theme-fg, var(--link-color));\n text-decoration: var(--link-decoration);\n text-underline-offset: $link-underline-offset;\n\n &:hover {\n // --link-color: var(--link-hover-color);\n // --link-decoration: var(--link-hover-decoration, var(--link-decoration));\n color: var(--theme-fg-emphasis, var(--link-hover-color));\n text-decoration: var(--link-hover-decoration, var(--link-decoration));\n }\n }\n\n // And undo these styles for placeholder links/named anchors (without href).\n // It would be more straightforward to just use a[href] in previous block, but that\n // causes specificity issues in many other styles that are too complex to fix.\n // See https://github.com/twbs/bootstrap/issues/19402\n\n a:not([href], [class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n }\n\n // Code\n\n pre,\n code,\n kbd,\n samp {\n font-family: var(--font-mono);\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n }\n\n // 1. Remove browser default top margin\n // 2. Reset browser default of `1em` to use `rem`s\n // 3. Don't allow content to break outside\n\n pre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n font-size: var(--code-font-size);\n color: var(--code-color, inherit);\n\n // Account for some code outputs that place code tags in pre tags\n code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n }\n\n code {\n font-size: var(--code-font-size);\n color: var(--code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n }\n\n kbd {\n @include tokens($reboot-kbd-tokens);\n padding: var(--kbd-padding-y) var(--kbd-padding-x);\n font-size: var(--kbd-font-size);\n color: var(--kbd-color);\n background-color: var(--kbd-bg);\n @include border-radius(var(--kbd-border-radius));\n\n kbd {\n padding: 0;\n font-size: 1em;\n font-weight: inherit; // mdo-do: check if this is needed\n }\n }\n\n // Figures\n //\n // Apply a consistent margin strategy (matches our type styles).\n\n figure {\n margin: 0 0 1rem;\n }\n\n // Images and content\n\n img,\n svg {\n vertical-align: middle;\n }\n\n // Tables\n //\n // Prevent double borders\n\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n\n caption {\n // padding-top: $table-cell-padding-y;\n // padding-bottom: $table-cell-padding-y;\n // color: $table-caption-color;\n padding-block: .5rem;\n color: var(--fg-3);\n text-align: start;\n }\n\n // 1. Removes font-weight bold by inheriting\n // 2. Matches default `<td>` alignment by inheriting `text-align`.\n // 3. Fix alignment for Safari\n\n th {\n // font-weight: $table-th-font-weight; // 1 // mdo-do: it's null by default. maybe we remove?\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n }\n\n thead,\n tbody,\n tfoot,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n\n // Forms\n //\n // 1. Allow labels to use `margin` for spacing.\n\n label {\n display: inline-block; // 1\n }\n\n // Remove the default `border-radius` that macOS Chrome adds.\n // See https://github.com/twbs/bootstrap/issues/24093\n\n button {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n }\n\n // Explicitly remove focus outline in Chromium when it shouldn't be\n // visible (e.g. as result of mouse click or touch tap). It already\n // should be doing this automatically, but seems to currently be\n // confused and applies its very visible two-tone outline anyway.\n\n button:focus:not(:focus-visible) {\n outline: 0;\n }\n\n // 1. Remove the margin in Firefox and Safari\n\n input,\n button,\n select,\n optgroup,\n textarea {\n margin: 0; // 1\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n // Set the cursor for non-`<button>` buttons\n //\n // Details at https://github.com/twbs/bootstrap/pull/30562\n [role=\"button\"] {\n cursor: pointer;\n }\n\n select {\n // Remove the inheritance of word-wrap in Safari.\n // See https://github.com/twbs/bootstrap/issues/24990\n word-wrap: normal;\n\n // Undo the opacity change from Chrome\n &:disabled {\n opacity: 1;\n }\n }\n\n // Remove the dropdown arrow only from text type inputs built with datalists in Chrome.\n // See https://stackoverflow.com/a/54997118\n\n [list]:not([type=\"date\"], [type=\"datetime-local\"], [type=\"month\"], [type=\"week\"], [type=\"time\"])::-webkit-calendar-picker-indicator {\n display: none !important;\n }\n\n // 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n // controls in Android 4.\n // 2. Correct the inability to style clickable types in iOS and Safari.\n // 3. Opinionated: add \"hand\" cursor to non-disabled button elements.\n\n button,\n [type=\"button\"], // 1\n [type=\"reset\"],\n [type=\"submit\"] {\n -webkit-appearance: button; // 2\n\n @if $enable-button-pointers {\n &:not(:disabled) {\n cursor: pointer; // 3\n }\n }\n }\n\n // 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.\n\n textarea {\n resize: vertical; // 1\n }\n\n // 1. Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n // 2. Reset the default outline behavior of fieldsets so they don't affect page layout.\n\n fieldset {\n min-width: 0; // 1\n padding: 0; // 2\n margin: 0; // 2\n border: 0; // 2\n }\n\n // 1. By using `float: inline-start`, the legend will behave like a block element.\n // This way the border of a fieldset wraps around the legend if present.\n // 2. Fix wrapping bug.\n // See https://github.com/twbs/bootstrap/issues/29712\n\n legend {\n float: inline-start; // 1\n width: 100%;\n padding: 0;\n margin-bottom: $legend-margin-bottom;\n font-size: $legend-font-size;\n font-weight: $legend-font-weight;\n line-height: inherit;\n\n + * {\n clear: inline-start; // 2\n }\n }\n\n // Fix height of inputs with a type of datetime-local, date, month, week, or time\n // See https://github.com/twbs/bootstrap/issues/18842\n\n ::-webkit-datetime-edit-fields-wrapper,\n ::-webkit-datetime-edit-text,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-meridiem-field, // WebKit\n ::-webkit-datetime-edit-ampm-field, // Chromium\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-week-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-year-field {\n padding: 0;\n }\n\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n\n // 1. This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n // 2. Correct the outline style in Safari.\n\n [type=\"search\"] {\n -webkit-appearance: textfield; // 1\n outline-offset: -2px; // 2\n\n // 3. Better affordance and consistent appearance for search cancel button\n &::-webkit-search-cancel-button {\n cursor: pointer;\n filter: grayscale(1);\n }\n }\n\n // A few input types should stay LTR regardless of document direction\n // See https://rtlstyling.com/posts/rtl-styling#form-inputs\n\n [type=\"tel\"],\n [type=\"url\"],\n [type=\"email\"],\n [type=\"number\"] {\n direction: ltr;\n }\n\n // Remove the inner padding in Chrome and Safari on macOS.\n\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n // Remove padding around color pickers in webkit browsers\n\n ::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n\n // 1. Inherit font family and line height for file input buttons\n // 2. Correct the inability to style clickable types in iOS and Safari.\n\n ::file-selector-button {\n font: inherit; // 1\n -webkit-appearance: button; // 2\n }\n\n // Correct element displays\n\n output {\n display: inline-block;\n }\n\n // Remove border from iframe\n\n iframe {\n border: 0;\n }\n\n // Summary\n //\n // 1. Add the correct display in all browsers\n\n summary {\n display: list-item; // 1\n cursor: pointer;\n }\n\n // Progress\n //\n // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n progress {\n vertical-align: baseline;\n }\n\n // Hidden attribute\n //\n // Always hide an element with the `hidden` HTML attribute.\n\n [hidden] {\n display: none !important;\n }\n}\n","@use \"sass:map\";\n@use \"sass:meta\";\n\n// Configuration\n//\n// Variables and settings not related to theme, components, and more go here. It does include layout.\n\n// Merge overrides on top of defaults, stripping null entries.\n// Null values let users remove map keys via @use ... with().\n// Accepts a list as $defaults (converted to a map with `true` values).\n@function defaults($defaults, $overrides) {\n @if meta.type-of($defaults) == \"list\" {\n $map: ();\n @each $key in $defaults {\n $map: map.merge($map, ($key: true));\n }\n $defaults: $map;\n }\n $merged: map.merge($defaults, $overrides);\n @each $key, $value in $merged {\n @if $value == null {\n $merged: map.remove($merged, $key);\n }\n }\n @return $merged;\n}\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: true !default;\n$enable-gradients: true !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: false !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: true !default;\n$enable-button-pointers: true !default;\n// $enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n\n$color-mode-type: \"media-query\" !default;\n$color-contrast-dark: #000 !default;\n$color-contrast-light: #fff !default;\n$min-contrast-ratio: 4.5 !default;\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer * .75,\n 4: $spacer,\n 5: $spacer * 1.25,\n 6: $spacer * 1.5,\n 7: $spacer * 2,\n 8: $spacer * 2.5,\n 9: $spacer * 3,\n) !default;\n\n$negative-spacers: (\n \"-1\": $spacer * -.25,\n \"-2\": $spacer * -.5,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n$sizes: (\n 1: $spacer,\n 2: $spacer * 2,\n 3: $spacer * 3,\n 4: $spacer * 4,\n 5: $spacer * 5,\n 6: $spacer * 6,\n 7: $spacer * 7,\n 8: $spacer * 8,\n 9: $spacer * 9,\n 10: $spacer * 10,\n 11: $spacer * 11,\n 12: $spacer * 12,\n) !default;\n\n$radius: .5rem !default;\n$radii: (\n 0: 0,\n 1: $radius * .25,\n 2: $radius * .375,\n 3: $radius * .5,\n 4: $radius * .75,\n 5: $radius,\n 6: $radius * 1.25,\n 7: $radius * 1.5,\n 8: $radius * 2,\n 9: $radius * 3,\n) !default;\n\n// Breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start breakpoints\n$breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 1024px,\n xl: 1280px,\n 2xl: 1536px\n) !default;\n// scss-docs-end breakpoints\n\n// @include _assert-ascending($breakpoints, \"$breakpoints\");\n// @include _assert-starts-at-zero($breakpoints, \"$breakpoints\");\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-x: 1.5rem !default;\n$grid-gutter-y: 0 !default;\n$grid-row-columns: 6 !default;\n\n$gutters: $spacers !default;\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1200px,\n 2xl: 1440px\n) !default;\n// scss-docs-end container-max-widths\n\n$container-padding-x: $grid-gutter-x !default;\n\n$utilities: () !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, color-mix(var(--white) 15%, transparent), color-mix(var(--white) 0%, transparent)) !default;\n// scss-docs-end variable-gradient\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Links\n//\n// Style anchor elements.\n\n$link-decoration: underline !default;\n$link-underline-offset: .2em !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: color-mix(in oklch, var(--gray-100), var(--gray-200)) !default;\n// scss-docs-end border-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"auto\": auto,\n \"1x1\": #{\"1 / 1\"},\n \"4x3\": #{\"4 / 3\"},\n \"16x9\": #{\"16 / 9\"},\n \"21x9\": #{\"21 / 9\"}\n) !default;\n// scss-docs-end aspect-ratios\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$font-sizes: defaults(\n (\n \"xs\": (\n \"font-size\": .75rem,\n \"line-height\": 1.25\n ),\n \"sm\": (\n \"font-size\": .875rem,\n \"line-height\": 1.5\n ),\n \"md\": (\n \"font-size\": 1rem,\n \"line-height\": 1.5\n ),\n \"lg\": (\n \"font-size\": clamp(1.25rem, 1rem + .625vw, 1.5rem),\n \"line-height\": 1.5\n ),\n \"xl\": (\n \"font-size\": clamp(1.5rem, 1.1rem + .75vw, 1.75rem),\n \"line-height\": calc(2.5 / 1.75)\n ),\n \"2xl\": (\n \"font-size\": clamp(1.75rem, 1.3rem + 1vw, 2rem),\n \"line-height\": calc(3 / 2.25)\n ),\n \"3xl\": (\n \"font-size\": clamp(2rem, 1.5rem + 1.875vw, 2.5rem),\n \"line-height\": 1.2\n ),\n \"4xl\": (\n \"font-size\": clamp(2.25rem, 1.75rem + 2.5vw, 3rem),\n \"line-height\": 1.1\n ),\n \"5xl\": (\n \"font-size\": clamp(3rem, 2rem + 5vw, 4rem),\n \"line-height\": 1.1\n ),\n \"6xl\": (\n \"font-size\": clamp(3.75rem, 2.5rem + 6.25vw, 5rem),\n \"line-height\": 1\n ),\n ),\n $font-sizes\n);\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: var(--spacer-2) !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start type-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n// scss-docs-end type-variables\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-menu: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n// $zindex-drawer-backdrop: 1040 !default;\n$zindex-drawer: 1045 !default;\n$zindex-dialog: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n","@use \"sass:list\";\n@use \"sass:math\";\n@use \"sass:meta\";\n@use \"../config\" as *;\n\n// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n $return: ();\n @each $value in $radius {\n @if meta.type-of($value) == number {\n $return: list.append($return, math.max($value, 0));\n } @else {\n $return: list.append($return, $value);\n }\n }\n @return $return;\n}\n\n// scss-docs-start border-radius-mixins\n@mixin border-radius($radius: var(--radius-5), $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: valid-radius($radius);\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n border-start-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-end-radius: valid-radius($radius);\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-start-radius: valid-radius($radius);\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n border-end-start-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-start-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-start-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-end-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-end-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-start-radius($radius: var(--radius-5)) {\n @if $enable-rounded {\n border-end-start-radius: valid-radius($radius);\n }\n}\n// scss-docs-end border-radius-mixins\n","@use \"../functions\" as *;\n@use \"../mixins/lists\" as *;\n@use \"../mixins/tokens\" as *;\n\n$blockquote-tokens: () !default;\n\n// scss-docs-start blockquote-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$blockquote-tokens: defaults(\n (\n --blockquote-gap: calc(var(--spacer) / 2),\n --blockquote-padding-x: var(--spacer),\n --blockquote-margin-y: 1rem,\n --blockquote-font-size: var(--font-size-md),\n --blockquote-border-width: .25rem,\n --blockquote-border-color: var(--border-color),\n --blockquote-footer-font-size: var(--font-size-sm),\n --blockquote-footer-color: var(--fg-3),\n ),\n $blockquote-tokens\n);\n// scss-docs-end blockquote-tokens\n\n@layer content {\n //\n // Lists\n //\n\n .list-unstyled {\n @include list-unstyled();\n }\n\n // Inline turns list items into inline-block\n .list-inline {\n @include list-unstyled();\n }\n .list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-inline-end: var(--list-inline-padding, var(--spacer) / 2);\n }\n }\n\n //\n // Misc\n //\n\n // Builds on `abbr`\n .initialism {\n font-size: var(--initialism-font-size, var(--font-size-xs));\n text-transform: uppercase;\n }\n\n // Blockquotes\n .blockquote {\n @include tokens($blockquote-tokens);\n display: flex;\n flex-direction: column;\n gap: var(--blockquote-gap);\n padding-inline-start: var(--blockquote-padding-x);\n margin-bottom: var(--blockquote-margin-y);\n font-size: var(--blockquote-font-size);\n border-inline-start: var(--blockquote-border-width) solid var(--blockquote-border-color);\n\n > * {\n margin-bottom: 0;\n }\n }\n\n // stylelint-disable-next-line selector-no-qualifying-type\n figure.blockquote {\n blockquote {\n margin-bottom: 0;\n }\n }\n\n .blockquote-footer {\n font-size: var(--blockquote-footer-font-size);\n color: var(--blockquote-footer-color);\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n padding-inline-start: 0;\n list-style: none;\n}\n","@use \"sass:map\";\n@use \"../config\" as *;\n@use \"../functions\" as *;\n@use \"../layout/breakpoints\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$table-tokens: () !default;\n\n// scss-docs-start table-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$table-tokens: defaults(\n (\n --table-cell-padding-y: .5rem,\n --table-cell-padding-x: .5rem,\n --table-cell-vertical-align: top,\n --table-color: var(--fg-body),\n --table-bg: var(--bg-body),\n --table-accent-bg: transparent,\n --table-border-width: var(--border-width),\n --table-border-color: var(--border-color),\n --table-group-separator-color: currentcolor,\n --table-striped-color: var(--table-color),\n --table-striped-bg-factor: 5%,\n --table-striped-bg: color-mix(in srgb, var(--table-color) var(--table-striped-bg-factor), transparent),\n --table-active-color: var(--table-color),\n --table-active-bg-factor: 10%,\n --table-active-bg: color-mix(in srgb, var(--table-color) var(--table-active-bg-factor), transparent),\n --table-hover-color: var(--table-color),\n --table-hover-bg-factor: 7.5%,\n --table-hover-bg: color-mix(in srgb, var(--table-color) var(--table-hover-bg-factor), transparent),\n ),\n $table-tokens\n);\n// scss-docs-end table-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n$table-striped-order: odd !default;\n$table-striped-columns-order: even !default;\n\n//\n// Basic Bootstrap table\n//\n\n@layer content {\n .table {\n @include tokens($table-tokens);\n\n // Reset needed for nesting tables\n --table-color-type: initial;\n --table-bg-type: initial;\n --table-color-state: initial;\n --table-bg-state: initial;\n // End of reset\n\n width: 100%;\n margin-bottom: var(--spacer);\n vertical-align: var(--table-cell-vertical-align);\n border-color: var(--theme-border, var(--table-border-color));\n\n // Target th & td\n // We need the child combinator to prevent styles leaking to nested tables which doesn't have a `.table` class.\n // We use the universal selectors here to simplify the selector (else we would need 6 different selectors).\n // Another advantage is that this generates less code and makes the selector less specific making it easier to override.\n // stylelint-disable-next-line selector-max-universal\n > :not(caption) > * > * {\n padding: var(--table-cell-padding-y) var(--table-cell-padding-x);\n // Following the precept of cascades: https://codepen.io/miriamsuzanne/full/vYNgodb\n color: var(--table-color-state, var(--table-color-type, var(--theme-fg, var(--table-color))));\n background-color: var(--theme-bg-subtle, var(--table-bg));\n border-block-end-width: var(--table-border-width);\n box-shadow: inset 0 0 0 9999px var(--table-bg-state, var(--table-bg-type, var(--theme-bg-subtle, var(--table-accent-bg))));\n }\n\n > tbody {\n vertical-align: inherit;\n }\n\n > thead {\n vertical-align: bottom;\n }\n }\n\n .table-group-divider {\n border-block-start: calc(var(--table-border-width) * 2) solid var(--table-group-separator-color);\n }\n\n //\n // Change placement of captions with a class\n //\n\n .caption-top {\n caption-side: top;\n }\n\n //\n // Condensed table w/ half padding\n //\n\n .table-sm {\n // stylelint-disable-next-line selector-max-universal\n > :not(caption) > * > * {\n --table-cell-padding-y: .25rem;\n --table-cell-padding-x: .25rem;\n }\n }\n\n // Border versions\n //\n // Add or remove borders all around the table and between all the columns.\n //\n // When borders are added on all sides of the cells, the corners can render odd when\n // these borders do not have the same color or if they are semi-transparent.\n // Therefore we add top and border bottoms to the `tr`s and left and right borders\n // to the `td`s or `th`s\n\n .table-bordered {\n > :not(caption) > * {\n border-width: var(--table-border-width) 0;\n\n // stylelint-disable-next-line selector-max-universal\n > * {\n border-width: 0 var(--table-border-width);\n }\n }\n }\n\n .table-borderless {\n // stylelint-disable-next-line selector-max-universal\n > :not(caption) > * > * {\n border-block-end-width: 0;\n }\n\n > :not(:first-child) {\n border-block-start-width: 0;\n }\n }\n\n // Zebra-striping\n //\n // Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n // For rows\n .table-striped {\n > tbody > tr:nth-of-type(#{$table-striped-order}) > * {\n --table-color-type: var(--theme-fg, var(--table-striped-color));\n --table-bg-type: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-striped-bg-factor), transparent);\n }\n }\n\n // For columns\n .table-striped-columns {\n > :not(caption) > tr > :nth-child(#{$table-striped-columns-order}) {\n --table-color-type: var(--theme-fg, var(--table-striped-color));\n --table-bg-type: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-striped-bg-factor), transparent);\n }\n }\n\n // Active table\n //\n // The `.table-active` class can be added to highlight rows or cells\n\n .table-active {\n --table-color-state: var(--theme-fg, var(--table-active-color));\n --table-bg-state: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-active-bg-factor), transparent);\n }\n\n // Hover effect\n //\n // Placed here since it has to come after the potential zebra striping\n\n .table-hover {\n > tbody > tr:hover > * {\n --table-color-state: var(--theme-fg, var(--table-hover-color));\n --table-bg-state: color-mix(in srgb, var(--theme-fg, var(--table-color)) var(--table-hover-bg-factor), transparent);\n }\n }\n\n // Responsive tables\n //\n // Generate `.table-responsive` classes that act as container query contexts\n // and enable horizontal scrolling when table content overflows.\n\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n .#{$prefix}table-responsive {\n container-type: inline-size;\n\n @include media-breakpoint-down($breakpoint) {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n }\n\n // Stacked tables\n //\n // Generate `.table-stacked` classes that convert table rows into stacked\n // blocks using container queries. Requires a `.table-responsive` ancestor\n // and `data-cell` attributes on `<td>` elements for column labels.\n\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include container-breakpoint-down($breakpoint) {\n .#{$prefix}table-stacked {\n > thead {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n > tbody > tr {\n display: block;\n padding-block: var(--table-cell-padding-y);\n\n + tr {\n border-block-start: var(--table-border-width) solid var(--table-border-color);\n }\n\n > td {\n display: block;\n padding: calc(var(--table-cell-padding-y) * .25) calc(var(--table-cell-padding-x) * 2);\n border: 0;\n\n &:first-child {\n font-weight: var(--font-weight-bold);\n }\n\n // + td::before {\n // margin-block-start: .25rem;\n // }\n\n &[data-cell]:not(:first-child)::before {\n display: block;\n font-weight: var(--font-weight-semibold);\n content: attr(data-cell);\n }\n }\n\n > td:not(:first-child) + td::before {\n margin-block-start: .25rem;\n }\n }\n }\n }\n }\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:string\";\n@use \"../config\" as *;\n\n// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px)\n//\n// The map defined in the `$breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl 2xl))\n// md\n@function breakpoint-next($name, $breakpoints: $breakpoints, $breakpoint-names: map.keys($breakpoints)) {\n $n: list.index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoint-names}`\";\n }\n // Use @if/@else because list.nth would error if evaluated when $n equals list length\n @if $n < list.length($breakpoint-names) {\n @return list.nth($breakpoint-names, $n + 1);\n } @else {\n @return null;\n }\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $breakpoints) {\n $min: map.get($breakpoints, $name);\n @return if(sass($min != 0): $min; else: null);\n}\n\n// Maximum breakpoint width for range media queries.\n// Returns the breakpoint value to use as an upper bound in range queries.\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// 576px\n// >> breakpoint-max(xxl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// null\n@function breakpoint-max($name, $breakpoints: $breakpoints) {\n @if $name == null {\n @return null;\n }\n $max: map.get($breakpoints, $name);\n @return if(sass($max and $max > 0): $max; else: null);\n}\n\n// Escape a name for use at the start of a CSS identifier.\n// Leading digits are hex-escaped (e.g., 2xl becomes \\32 xl).\n@function css-escape-ident($name) {\n $name-str: \"#{$name}\";\n $digits: \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\";\n $first: string.slice($name-str, 1, 1);\n\n @if list.index($digits, $first) {\n @return \"\\\\3#{$first} #{string.slice($name-str, 2)}\";\n }\n\n @return $name-str;\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name\n// with an escaped colon as a Tailwind-style prefix for responsive class names.\n// Leading digits are CSS-escaped (e.g., 2xl becomes \\32 xl) for valid identifiers.\n//\n// >> breakpoint-prefix(xs, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\" (Returns a blank string)\n// >> breakpoint-prefix(sm, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"sm\\:\"\n// >> breakpoint-prefix(2xl, (xs: 0, sm: 576px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px))\n// \"\\32 xl\\:\"\n@function breakpoint-prefix($name, $breakpoints: $breakpoints) {\n @if breakpoint-min($name, $breakpoints) == null {\n @return \"\";\n }\n\n @return \"#{css-escape-ident($name)}\\\\:\";\n}\n\n// Iterate all breakpoints and provide the current name and prefix.\n//\n// @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-up($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n @content($breakpoint, $prefix);\n }\n}\n\n// Iterate all breakpoints and provide the current name, next name, and next prefix.\n//\n// @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n// // ...\n// }\n@mixin loop-breakpoints-down($breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $next: breakpoint-next($breakpoint, $breakpoints);\n $prefix: breakpoint-prefix($next, $breakpoints);\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Backwards-compatible alias for next/down breakpoint loops.\n@mixin loop-breakpoints($breakpoints: $breakpoints) {\n @include loop-breakpoints-down($breakpoints) using ($breakpoint, $next, $prefix) {\n @content($breakpoint, $next, $prefix);\n }\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (width >= $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (width < $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @media (width >= $min) and (width < $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n\n\n// Container queries\n//\n// Container queries allow elements to respond to the size of a containing element\n// rather than the viewport. These mixins mirror the media-breakpoint-* mixins above.\n//\n// scss-docs-start container-query-mixins\n\n// Set an element as a query container.\n//\n// @include set-container(); // container-type: inline-size\n// @include set-container(size); // container-type: size\n// @include set-container(inline-size, sidebar); // container: sidebar / inline-size\n//\n@mixin set-container($type: inline-size, $name: null) {\n @if $name {\n container: #{$name} / #{$type};\n } @else {\n container-type: #{$type};\n }\n}\n\n// Container query of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider within the container.\n//\n// @include container-breakpoint-up(md) { ... }\n// @include container-breakpoint-up(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-up($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower within the container.\n//\n// @include container-breakpoint-down(lg) { ... }\n// @include container-breakpoint-down(lg, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-down($name, $container-name: null, $breakpoints: $breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @if $container-name {\n @container #{$container-name} (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width < #{$max}) {\n @content;\n }\n }\n } @else {\n @content;\n }\n}\n\n// Container query that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints within the container.\n//\n// @include container-breakpoint-between(md, xl) { ... }\n// @include container-breakpoint-between(md, xl, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-between($lower, $upper, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($lower, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($upper, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n\n// Container query between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint within the container.\n//\n// @include container-breakpoint-only(md) { ... }\n// @include container-breakpoint-only(md, sidebar) { ... } // Query named container\n//\n@mixin container-breakpoint-only($name, $container-name: null, $breakpoints: $breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @if $container-name {\n @container #{$container-name} (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n } @else {\n @container (width >= #{$min}) and (width < #{$max}) {\n @content;\n }\n }\n } @else if $max == null {\n @include container-breakpoint-up($name, $container-name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include container-breakpoint-down($next, $container-name, $breakpoints) {\n @content;\n }\n }\n}\n// scss-docs-end container-query-mixins\n","@use \"../functions\" as *;\n@use \"../mixins/image\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/box-shadow\" as *;\n@use \"../mixins/tokens\" as *;\n\n$thumbnail-tokens: () !default;\n\n// scss-docs-start thumbnail-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$thumbnail-tokens: defaults(\n (\n --thumbnail-padding: .25rem,\n --thumbnail-bg: var(--bg-body),\n --thumbnail-border-width: var(--border-width),\n --thumbnail-border-color: var(--border-color),\n --thumbnail-border-radius: var(--radius-5),\n --thumbnail-box-shadow: var(--box-shadow-sm),\n ),\n $thumbnail-tokens\n);\n// scss-docs-end thumbnail-tokens\n\n$figure-tokens: () !default;\n\n// scss-docs-start figure-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$figure-tokens: defaults(\n (\n --figure-gap: calc(var(--spacer) * .5),\n --figure-caption-font-size: var(--font-size-sm),\n --figure-caption-color: var(--fg-3),\n ),\n $figure-tokens\n);\n// scss-docs-end figure-tokens\n\n@layer content {\n // Responsive images (ensure images don't scale beyond their parents)\n //\n // This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n // We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n // and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n // which weren't expecting the images within themselves to be involuntarily resized.\n // See also https://github.com/twbs/bootstrap/issues/18178\n .img-fluid {\n @include img-fluid();\n }\n\n .img-thumbnail {\n @include tokens($thumbnail-tokens);\n padding: var(--thumbnail-padding);\n background-color: var(--thumbnail-bg);\n border: var(--thumbnail-border-width) solid var(--thumbnail-border-color);\n @include border-radius(var(--thumbnail-border-radius));\n @include box-shadow(var(--thumbnail-box-shadow));\n\n // Keep them at most 100% wide\n @include img-fluid();\n }\n\n .figure {\n @include tokens($figure-tokens);\n // Ensures the caption's text aligns with the image.\n display: flex;\n flex-direction: column;\n gap: var(--figure-gap);\n }\n\n .figure-caption {\n font-size: var(--figure-caption-font-size);\n color: var(--figure-caption-color);\n }\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n","@use \"sass:list\";\n@use \"../config\" as *;\n\n@mixin box-shadow($shadow...) {\n @if $enable-shadows {\n $result: ();\n $has-single-value: false;\n $single-value: null;\n\n @each $value in $shadow {\n @if $value != null {\n @if $value == none or $value == initial or $value == inherit or $value == unset {\n $has-single-value: true;\n $single-value: $value;\n } @else {\n $result: list.append($result, $value, \"comma\");\n }\n }\n }\n\n @if $has-single-value {\n box-shadow: $single-value;\n } @else if (list.length($result) > 0) {\n box-shadow: $result;\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$prose-tokens: () !default;\n\n// scss-docs-start prose-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$prose-tokens: defaults(\n (\n --content-font-size: 1rem,\n --content-line-height: 1.5,\n --content-gap: calc(var(--content-font-size) * var(--content-line-height)),\n --heading-color: light-dark(var(--gray-900), var(--white)),\n ),\n $prose-tokens\n);\n// scss-docs-end prose-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer content {\n .prose {\n @include tokens($prose-tokens);\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--content-gap);\n max-width: 1000px;\n margin-inline: auto;\n font-size: var(--content-font-size);\n line-height: var(--content-line-height);\n\n @media (width >= 1024px) {\n --content-font-size: var(--font-size-md);\n --content-line-height: 1.625;\n // --content-gap: calc(var(--content-font-size) * var(--content-line-height));\n }\n\n :where(p, ul, ol, dl, pre, table, blockquote):not(:where(.not-prose, .not-prose *)) {\n margin-block: 0;\n }\n\n :where(ul, ol):not([class], :where(.not-prose, .not-prose *)) li:not(:last-child) {\n margin-bottom: calc(var(--content-gap) / 4);\n }\n\n :where(li ul, li ol):not(:where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) / 4);\n }\n\n :where(hr):not(:where(.not-prose, .not-prose *)) {\n margin: calc(var(--content-gap) * 1.5) 0;\n border: 0;\n border-block-start: var(--border-width) solid var(--hr-border-color);\n }\n\n :where(h1, h2, h3, h4, h5, h6):not([class], :where(.not-prose, .not-prose *)) {\n margin-top: 0;\n margin-bottom: calc(var(--content-gap) / -2);\n font-weight: 500;\n line-height: 1.25;\n\n code {\n font-weight: 600;\n color: inherit;\n }\n }\n\n :where(h1, h2):not(:first-child, :where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) * .75);\n }\n\n :where(h3, h4, h5, h6):not(:first-child, :where(.not-prose, .not-prose *)) {\n margin-top: calc(var(--content-gap) * .5);\n }\n\n :where(h1):not(:where(.not-prose, .not-prose *)) {\n font-size: 2.25em;\n line-height: 1.1;\n }\n :where(h2):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.75em;\n }\n :where(h3):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.5em;\n }\n :where(h4):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.25em;\n }\n :where(h5):not(:where(.not-prose, .not-prose *)) {\n font-size: 1.125em;\n }\n :where(h6):not(:where(.not-prose, .not-prose *)) {\n font-size: 1em;\n }\n\n :where(a:not([class])):not(:where(.not-prose, .not-prose *)) {\n color: var(--link-color);\n text-decoration: underline;\n text-decoration-color: color-mix(in srgb, var(--link-color) 25%, transparent);\n text-underline-offset: 4px;\n @include transition(.1s text-decoration-color ease-in-out);\n\n &:hover {\n text-decoration-color: var(--link-hover-color);\n }\n }\n\n :where(img):not(:where(.not-prose, .not-prose *)) {\n max-width: 100%;\n }\n\n :where(blockquote):not(:where(.not-prose, .not-prose *)) {\n padding-inline-start: calc(var(--content-gap) / 2);\n margin: 0;\n border-inline-start: 4px solid var(--border-color);\n }\n\n :where(table):not(:where(.not-prose, .not-prose *)) {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n }\n\n :where(table:not([class])):not(:where(.not-prose, .not-prose *)) {\n td,\n th {\n padding: 6px 12px;\n text-align: inherit;\n border: 1px solid var(--border-color);\n }\n }\n\n :where(dt):not(:where(.not-prose, .not-prose *)) {\n font-weight: 500;\n }\n\n :where(video, img):not(:where(.not-prose, .not-prose *)) {\n max-width: 100%;\n }\n }\n}\n","@use \"sass:list\";\n@use \"../config\" as *;\n\n// stylelint-disable property-disallowed-list\n@mixin transition($transition...) {\n @if list.length($transition) == 0 {\n $transition: $transition-base;\n }\n\n @if list.length($transition) > 1 {\n @each $value in $transition {\n @if $value == null or $value == none {\n @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n }\n }\n }\n\n @if $enable-transitions {\n @if list.nth($transition, 1) != null {\n transition: $transition;\n }\n\n @if $enable-reduced-motion and list.nth($transition, 1) != null and list.nth($transition, 1) != none {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n }\n}\n","@use \"../config\" as *;\n@use \"breakpoints\" as *;\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n --gutter-x: #{$gutter};\n --gutter-y: 0;\n width: 100%;\n padding-inline: calc(var(--gutter-x) * .5);\n margin-inline: auto;\n}\n\n@layer layout {\n @if $enable-container-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .#{breakpoint-prefix($breakpoint, $breakpoints)}container {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n @each $name, $width in $breakpoints {\n @if ($extend-breakpoint) {\n .#{breakpoint-prefix($name, $breakpoints)}container {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/grid\" as *;\n\n// mdo-do\n// - check gap utilities as replacement for gutter classes from v5\n\n@layer layout {\n @if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n\n @include make-grid-columns();\n }\n\n @if $enable-cssgrid {\n .grid {\n --columns: #{$grid-columns};\n --rows: 1;\n --gap: #{$grid-gutter-x};\n\n display: grid;\n grid-template-rows: repeat(var(--rows), 1fr);\n grid-template-columns: repeat(var(--columns), 1fr);\n gap: var(--gap);\n\n }\n\n @include make-cssgrid();\n }\n\n // mdo-do: add to utilities?\n .grid-cols-subgrid {\n grid-template-columns: subgrid;\n }\n\n .grid-fill {\n --gap: #{$grid-gutter-x};\n\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-auto-flow: row;\n gap: var(--gap);\n }\n\n // .g-col-auto {\n // grid-column: auto;\n // }\n\n // mdo-do: add to utilities?\n // .grid-cols-3 {\n // --columns: 3;\n // }\n // .grid-cols-4 {\n // --columns: 4;\n // }\n // .grid-cols-6 {\n // --columns: 6;\n // }\n\n // .grid-full {\n // grid-column: 1 / -1;\n // }\n}\n","@use \"sass:map\";\n@use \"sass:math\";\n@use \"sass:meta\";\n@use \"../config\" as *;\n@use \"../layout/breakpoints\" as *;\n\n// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter-x: $grid-gutter-x, $gutter-y: $grid-gutter-y) {\n --gutter-x: #{$gutter-x};\n --gutter-y: #{$gutter-y};\n display: flex;\n flex-wrap: wrap;\n // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n margin-inline: calc(-.5 * var(--gutter-x));\n margin-top: calc(-1 * var(--gutter-y));\n}\n\n@mixin make-col-ready() {\n // Add box sizing if only the grid is loaded\n // stylelint-disable-next-line scss/at-function-named-arguments\n box-sizing: if(sass(meta.variable-exists(include-column-box-sizing) and $include-column-box-sizing): border-box; else: null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-inline: calc(var(--gutter-x) * .5);\n margin-top: var(--gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n @if $size {\n flex: 0 0 auto;\n width: math.percentage(math.div($size, $columns));\n\n } @else {\n flex: 1 1 0;\n max-width: 100%;\n }\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: math.div($size, $columns);\n // stylelint-disable-next-line scss/at-function-named-arguments\n margin-inline-start: if(sass($num == 0): 0; else: math.percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// number of columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: math.percentage(math.div(1, $count));\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-x, $breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n .#{$prefix}col {\n flex: 1 0 0;\n }\n\n .#{$prefix}row-cols-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .#{$prefix}row-cols-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .#{$prefix}col-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .#{$prefix}col-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($prefix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .#{$prefix}offset-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .#{$prefix}g-#{$key},\n .#{$prefix}gx-#{$key} {\n --gutter-x: #{$value};\n }\n\n .#{$prefix}g-#{$key},\n .#{$prefix}gy-#{$key} {\n --gutter-y: #{$value};\n }\n }\n }\n }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $breakpoints) {\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .#{$prefix}g-col-#{$i} {\n grid-column: auto / span $i;\n }\n }\n\n // Start with `1` because `0` is an invalid value.\n // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n @for $i from 1 through ($columns - 1) {\n .#{$prefix}g-start-#{$i} {\n grid-column-start: $i;\n }\n }\n }\n }\n }\n}\n","@use \"../functions\" as *;\n\n$form-label-tokens: () !default;\n\n// scss-docs-start form-label-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-label-tokens: defaults(\n (\n --label-margin-bottom: calc(var(--spacer) / 2),\n --label-font-size: null,\n --label-font-style: null,\n --label-font-weight: null,\n --label-color: null,\n ),\n $form-label-tokens\n);\n// scss-docs-end form-label-tokens\n\n@layer forms {\n .form-label,\n .col-form-label {\n font-size: var(--label-font-size, inherit);\n font-style: var(--label-font-style, inherit);\n font-weight: var(--label-font-weight, 500);\n color: var(--label-color, var(--fg-body));\n }\n\n .form-label {\n margin-bottom: var(--label-margin-bottom, calc(var(--spacer) / 2));\n }\n\n // For use with horizontal and inline forms, when you need the label (or legend)\n // text to align with the form controls.\n .col-form-label {\n --label-padding-y: calc(var(--btn-input-padding-y) + var(--border-width));\n padding-block: var(--label-padding-y);\n margin-bottom: 0; // Override the `<legend>` default\n }\n\n .col-form-label-lg {\n --label-padding-y: calc(var(--btn-input-lg-padding-y) + var(--border-width));\n font-size: var(--btn-input-lg-font-size);\n }\n\n .col-form-label-sm {\n --label-padding-y: calc(var(--btn-input-sm-padding-y) + var(--border-width));\n font-size: var(--btn-input-sm-font-size);\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/tokens\" as *;\n\n$form-text-tokens: () !default;\n\n// scss-docs-start form-text-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-text-tokens: defaults(\n (\n --form-text-margin-top: .25rem,\n --form-text-font-size: var(--font-size-sm),\n --form-text-font-style: null,\n --form-text-font-weight: null,\n --form-text-color: var(--fg-2),\n ),\n $form-text-tokens\n);\n// scss-docs-end form-text-tokens\n\n@layer forms {\n .form-text {\n @include tokens($form-text-tokens);\n\n // margin-top: var(--form-text-margin-top);\n font-size: var(--form-text-font-size);\n font-style: var(--form-text-font-style);\n font-weight: var(--form-text-font-weight);\n color: var(--form-text-color);\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/box-shadow\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n$form-control-tokens: () !default;\n\n// scss-docs-start form-control-tokens\n// stylelint-disable custom-property-no-missing-var-function\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-control-tokens: defaults(\n (\n --control-min-height: var(--btn-input-min-height),\n --control-padding-y: var(--btn-input-padding-y),\n --control-padding-x: var(--btn-input-padding-x),\n --control-font-size: var(--btn-input-font-size),\n --control-line-height: var(--btn-input-line-height),\n --control-fg: var(--btn-input-fg),\n --control-bg: var(--btn-input-bg),\n --control-border-width: var(--border-width),\n --control-border-color: var(--border-color),\n --control-border-radius: var(--radius-5),\n --control-box-shadow: var(--box-shadow-inset),\n --control-action-bg: var(--bg-1),\n --control-action-hover-bg: var(--bg-2),\n --control-transition-property: \"border-color, box-shadow\",\n --control-transition-timing: .15s ease-in-out,\n --control-transition: var(--control-transition-property) var(--control-transition-timing),\n --control-placeholder-color: var(--fg-3),\n --control-disabled-color: var(--control-fg),\n --control-disabled-bg: var(--bg-2),\n --control-disabled-border-color: var(--control-border-color),\n --control-select-bg: #{escape-svg(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#00000080' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>\"))},\n --control-select-bg-position: right .75rem center,\n --control-select-bg-size: 16px 12px,\n --control-select-bg-dark: #{escape-svg(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#ffffff80' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>\"))},\n ),\n $form-control-tokens\n);\n// scss-docs-end form-control-tokens\n\n// scss-docs-start form-control-sizes\n$form-control-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-control-sizes: defaults(\n (\"sm\", \"lg\"),\n $form-control-sizes\n);\n// scss-docs-end form-control-sizes\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer forms {\n .form-control {\n @include tokens($form-control-tokens);\n\n display: flex;\n width: 100%;\n min-height: var(--control-min-height);\n padding: var(--control-padding-y) var(--control-padding-x);\n font-size: var(--control-font-size);\n line-height: var(--control-line-height);\n color: var(--control-fg);\n appearance: none;\n background-color: var(--control-bg);\n background-clip: padding-box;\n border: var(--control-border-width) solid var(--control-border-color);\n @include border-radius(var(--control-border-radius), 0);\n @include box-shadow(var(--control-box-shadow));\n @include transition(var(--control-transition));\n\n // Customize the `:focus` state to imitate native WebKit styles.\n &:focus-visible {\n --focus-ring-offset: -1px;\n @include focus-ring(true);\n }\n\n // Placeholder\n &::placeholder {\n color: var(--control-placeholder-color);\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n opacity: 1;\n }\n\n // Disabled inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &:disabled {\n color: var(--control-disabled-color);\n background-color: var(--control-disabled-bg);\n border-color: var(--control-disabled-border-color);\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n }\n\n // Date and time inputs\n // &::-webkit-date-and-time-value {\n // // On Android Chrome, form-control's \"width: 100%\" makes the input width too small\n // // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109\n // //\n // // On iOS Safari, form-control's \"appearance: none\" + \"width: 100%\" makes the input width too small\n // // Tested under iOS 16.2 / Safari 16.2\n // min-width: 85px; // Seems to be a good minimum safe width\n\n // // Add some height to date inputs on iOS\n // // https://github.com/twbs/bootstrap/issues/23307\n // // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved\n // // Multiply line-height by 1em if it has no unit\n // height: 1.5em;\n\n // // Android Chrome type=\"date\" is taller than the other inputs\n // // because of \"margin: 1px 24px 1px 4px\" inside the shadow DOM\n // // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109\n // margin: 0;\n // background-color: var(--red-500);\n // }\n\n // Prevent excessive date input height in Webkit\n // https://github.com/twbs/bootstrap/issues/34433\n\n // mdo-do: need to check this stuff out across browsers\n &::-webkit-datetime-edit {\n display: block;\n height: 1.5rem;\n padding: 0;\n margin-bottom: -.125rem;\n }\n &::-webkit-datetime-edit-fields-wrapper {\n height: 1.5rem;\n }\n\n // File inputs\n &[type=\"file\"] {\n overflow: hidden; // prevent pseudo element button overlap\n\n &:not(:disabled, [readonly]) {\n cursor: pointer;\n }\n }\n &::file-selector-button {\n min-height: var(--control-min-height);\n padding: var(--control-padding-y) var(--control-padding-x);\n margin: calc(var(--control-padding-y) * -1) calc(var(--control-padding-x) * -1);\n margin-inline-end: var(--control-padding-x);\n color: var(--control-fg);\n // @include gradient-bg(var(--control-action-bg));\n pointer-events: none;\n background-color: var(--control-action-bg);\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: var(--control-border-width);\n border-radius: 0; // stylelint-disable-line property-disallowed-list\n @include transition(var(--control-transition));\n }\n\n &:hover:not(:disabled, [readonly])::file-selector-button {\n background-color: var(--control-action-hover-bg);\n }\n }\n\n // Readonly controls as plain text\n //\n // Apply class to a readonly input to make it appear like regular plain\n // text (without any border, background color, focus indicator)\n\n .form-control-plaintext {\n display: block;\n width: 100%;\n padding: var(--control-padding-y) 0;\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n line-height: var(--control-line-height);\n color: var(--control-fg);\n background-color: transparent;\n border: solid transparent;\n border-width: var(--control-border-width) 0;\n\n &:focus {\n outline: 0;\n }\n\n &.form-control-sm,\n &.form-control-lg {\n padding-inline: 0;\n }\n }\n\n // stylelint-disable selector-no-qualifying-type\n select.form-control,\n .form-control-caret {\n padding-inline-end: calc(var(--control-padding-x) * 3);\n background-image: var(--control-select-bg);\n background-repeat: no-repeat;\n background-position: var(--control-select-bg-position);\n background-size: var(--control-select-bg-size);\n\n &[multiple],\n &[size]:not([size=\"1\"]) {\n padding-inline-end: var(--control-padding-x);\n background-image: none;\n }\n }\n\n @media (prefers-color-scheme: dark) {\n select.form-control,\n .form-control-caret {\n background-image: var(--control-select-bg-dark);\n }\n }\n // stylelint-enable selector-no-qualifying-type\n\n // Form control sizing\n //\n // Build on `.form-control` with modifier classes to decrease or increase the\n // height and font-size of form controls.\n //\n // Repeated in `_input_group.scss` to avoid Sass extend issues.\n @each $size, $_ in $form-control-sizes {\n .form-control-#{$size} {\n --control-min-height: var(--btn-input-#{$size}-min-height);\n --control-padding-y: var(--btn-input-#{$size}-padding-y);\n --control-padding-x: var(--btn-input-#{$size}-padding-x);\n --control-font-size: var(--btn-input-#{$size}-font-size);\n --control-line-height: var(--btn-input-#{$size}-line-height);\n --control-border-radius: var(--btn-input-#{$size}-border-radius);\n }\n }\n\n .form-control-color {\n width: var(--control-min-height);\n padding: var(--control-padding-y);\n\n &:not(:disabled, [readonly]) {\n cursor: pointer;\n }\n\n &::-moz-color-swatch {\n border: 0 !important; // stylelint-disable-line declaration-no-important\n @include border-radius(var(--radius-5));\n }\n\n &::-webkit-color-swatch {\n border: 0 !important; // stylelint-disable-line declaration-no-important\n @include border-radius(var(--radius-5));\n }\n }\n\n // Ghost input - removes all visual styling\n // Used inside custom wrappers that handle their own styling\n .form-ghost {\n display: block;\n width: 100%;\n padding: 0;\n font: inherit;\n color: inherit;\n appearance: none;\n background: transparent;\n border: 0;\n\n &:focus {\n outline: 0;\n }\n\n &::placeholder {\n color: var(--fg-3);\n opacity: 1;\n }\n\n &:disabled {\n color: var(--fg-4);\n cursor: not-allowed;\n }\n }\n}\n","@mixin focus-ring($offset: false, $color: null) {\n @if $color != null {\n outline: var(--focus-ring-width) solid #{$color};\n } @else {\n outline: var(--focus-ring);\n }\n @if $offset {\n outline-offset: var(--focus-ring-offset);\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/mask-icon\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$check-tokens: () !default;\n\n// scss-docs-start check-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$check-tokens: defaults(\n (\n --check-size: 1.25rem,\n --check-margin-block: .125rem,\n --check-bg: var(--bg-body),\n --check-border-color: var(--border-color),\n --check-border-radius: var(--radius-5),\n --check-icon-checked: #{escape-svg(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m5.5 10 3 3 6-6'/></svg>\"))},\n --check-icon-indeterminate: #{escape-svg(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 10h8'/></svg>\"))},\n --check-checked-bg: var(--control-checked-bg),\n --check-checked-border-color: var(--control-checked-border-color),\n --check-indeterminate-bg: var(--control-checked-bg),\n --check-indeterminate-border-color: var(--control-checked-border-color),\n --check-active-bg: var(--control-active-bg),\n --check-active-border-color: var(--control-active-border-color),\n --check-disabled-bg: var(--control-disabled-bg),\n --check-disabled-opacity: var(--control-disabled-opacity),\n ),\n $check-tokens\n);\n// scss-docs-end check-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer forms {\n // The class lives on the `<input>` itself; `appearance: none` controls render\n // pseudo-elements, so the mark is drawn directly on the input — no wrapper.\n .check {\n @include tokens($check-tokens);\n\n position: relative;\n flex-shrink: 0;\n width: var(--check-size);\n height: var(--check-size);\n margin-block: var(--check-margin-block);\n appearance: none;\n // later: maybe set a tertiary bg color?\n background-color: var(--theme-bg, var(--check-bg));\n border: 1px solid var(--theme-bg, var(--check-border-color));\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 33%;\n\n &:checked,\n &:indeterminate {\n background-color: var(--theme-bg, var(--check-checked-bg));\n border-color: var(--theme-bg, var(--check-checked-border-color));\n\n // Check/indeterminate mark, overlaid on the input and rendered via a CSS\n // mask so it inherits the contrast color without an inline SVG.\n &::before {\n position: absolute;\n inset: 0;\n pointer-events: none;\n content: \"\";\n background-color: var(--theme-contrast, var(--primary-contrast));\n @include mask-icon();\n }\n }\n\n &:checked::before { mask-image: var(--check-icon-checked); }\n &:indeterminate::before { mask-image: var(--check-icon-indeterminate); }\n\n &:focus-visible {\n @include focus-ring(true);\n --focus-ring-offset: -1px;\n }\n\n &:disabled {\n --check-bg: var(--check-disabled-bg);\n\n ~ label {\n color: var(--fg-3);\n cursor: default;\n }\n }\n &:disabled:checked {\n opacity: var(--check-disabled-opacity);\n }\n }\n\n .check-sm {\n --check-size: 1rem;\n\n + label {\n font-size: var(--font-size-sm);\n }\n }\n .check-lg {\n --check-size: 1.5rem;\n --check-margin-block: .375rem;\n\n + label {\n font-size: var(--font-size-lg);\n }\n }\n}\n","// Mask icon\n//\n// Renders an SVG icon via a CSS mask so the shape is painted with the\n// element's `background-color` and therefore inherits theme/dark-mode color.\n// Set `background-color` on the element itself; pass `null` for `$icon` when\n// the mask image is applied conditionally (e.g. per state or direction).\n\n// scss-docs-start mask-icon-mixin\n@mixin mask-icon($icon: null, $size: contain, $position: center) {\n @if $icon != null {\n mask-image: $icon;\n }\n mask-repeat: no-repeat;\n @if $position != null {\n mask-position: $position;\n }\n @if $size != null {\n mask-size: $size;\n }\n}\n// scss-docs-end mask-icon-mixin\n","@use \"../functions\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$radio-tokens: () !default;\n\n// scss-docs-start radio-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$radio-tokens: defaults(\n (\n --radio-size: 1.25rem,\n --radio-margin-block: .125rem,\n --radio-bg: var(--bg-body),\n --radio-border-color: var(--border-color),\n --radio-checked-bg: var(--control-checked-bg),\n --radio-checked-border-color: var(--control-checked-border-color),\n --radio-disabled-bg: var(--control-disabled-bg),\n --radio-disabled-opacity: var(--control-disabled-opacity),\n ),\n $radio-tokens\n);\n// scss-docs-end radio-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer forms {\n .radio {\n @include tokens($radio-tokens);\n\n position: relative;\n flex-shrink: 0;\n width: var(--radio-size);\n height: var(--radio-size);\n margin-block: var(--radio-margin-block);\n appearance: none;\n background-color: var(--theme-bg, var(--radio-bg));\n border: 1px solid var(--theme-bg, var(--radio-border-color));\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n\n &:checked {\n color: var(--theme-contrast, var(--primary-contrast));\n background-color: var(--theme-bg, var(--radio-checked-bg));\n border-color: var(--theme-bg, var(--radio-checked-border-color));\n\n &::before {\n position: absolute;\n inset: calc(var(--radio-size) * .25);\n content: \"\";\n background-color: currentcolor;\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n }\n }\n\n &:disabled {\n --radio-bg: var(--radio-disabled-bg);\n\n ~ label {\n color: var(--secondary-fg);\n cursor: default;\n }\n }\n\n &:focus-visible {\n @include focus-ring(true);\n }\n }\n\n .radio-sm {\n --radio-size: 1rem;\n\n + label {\n font-size: var(--font-size-sm);\n }\n }\n .radio-lg {\n --radio-size: 1.5rem;\n --radio-margin-block: .375rem;\n\n + label {\n font-size: var(--font-size-lg);\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$switch-tokens: () !default;\n\n// scss-docs-start switch-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$switch-tokens: defaults(\n (\n --switch-height: 1.25rem,\n --switch-width: calc(var(--switch-height) * 1.75),\n --switch-padding: .0625rem,\n --switch-margin-block: .125rem,\n --switch-bg: var(--bg-3),\n --switch-border-width: var(--border-width),\n --switch-border-color: var(--border-color),\n --switch-indicator-bg: var(--white),\n --switch-indicator-width: calc(var(--switch-height) - calc(var(--switch-padding) * 2) - var(--switch-border-width) * 2),\n --switch-indicator-height: calc(var(--switch-height) - calc(var(--switch-padding) * 2) - var(--switch-border-width) * 2),\n --switch-checked-bg: var(--control-checked-bg),\n --switch-checked-border-color: var(--switch-checked-bg),\n --switch-checked-indicator-bg: var(--white),\n --switch-disabled-bg: var(--control-disabled-bg),\n --switch-disabled-indicator-bg: var(--fg-3),\n ),\n $switch-tokens\n);\n// scss-docs-end switch-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer forms {\n .switch {\n @include tokens($switch-tokens);\n\n position: relative;\n flex-shrink: 0;\n width: var(--switch-width);\n height: var(--switch-height);\n padding: var(--switch-padding);\n margin-block: var(--switch-margin-block);\n background-color: var(--switch-bg);\n border: var(--switch-border-width) solid var(--switch-border-color);\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 10rem;\n box-shadow: inset 0 1px 2px rgb(0 0 0 / .05);\n // stylelint-disable-next-line property-disallowed-list\n transition: background-color .15s ease-in-out;\n\n &::before {\n position: absolute;\n inset-block: var(--switch-padding);\n inset-inline-start: var(--switch-padding);\n width: var(--switch-indicator-width);\n height: var(--switch-indicator-height);\n content: \"\";\n background-color: var(--theme-contrast, var(--switch-indicator-bg));\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 10rem;\n box-shadow: 0 1px 2px rgb(0 0 0 / .1);\n // stylelint-disable-next-line property-disallowed-list\n transition: inset-inline-start .15s ease-in-out;\n }\n\n input {\n position: absolute;\n inset: 0;\n appearance: none;\n background-color: transparent;\n outline: 0;\n }\n\n &:focus-within {\n @include focus-ring(true);\n }\n\n &:has(input:checked) {\n background-color: var(--theme-bg, var(--switch-checked-bg));\n border-color: var(--theme-bg, var(--switch-checked-border-color));\n\n &::before {\n inset-inline-start: calc(100% - var(--switch-indicator-width) - var(--switch-padding));\n }\n }\n\n &:has(input:disabled) {\n --switch-bg: var(--switch-disabled-bg);\n --switch-indicator-bg: var(--switch-disabled-indicator-bg);\n\n &::before { opacity: .4; }\n\n ~ label {\n color: var(--secondary-fg);\n cursor: default;\n }\n }\n }\n .switch-sm {\n --switch-height: 1rem;\n\n + label {\n font-size: var(--font-size-sm);\n }\n }\n .switch-lg {\n --switch-height: 1.5rem;\n --switch-margin-block: .375rem;\n\n + label {\n font-size: var(--font-size-lg);\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/box-shadow\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/transition\" as *;\n@use \"../mixins/gradients\" as *;\n@use \"../mixins/tokens\" as *;\n\n$range-tokens: () !default;\n\n// scss-docs-start range-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$range-tokens: defaults(\n (\n --range-track-width: 100%,\n --range-track-height: .5rem,\n --range-track-cursor: pointer,\n --range-track-bg: var(--bg-3),\n --range-track-border-radius: 1rem,\n --range-track-box-shadow: var(--box-shadow-inset),\n --range-thumb-width: 1rem,\n --range-thumb-height: var(--range-thumb-width),\n --range-thumb-bg: var(--primary-base),\n --range-thumb-border: var(--range-thumb-bg) solid var(--border-color),\n --range-thumb-border-radius: 1rem,\n --range-thumb-box-shadow: \"0 1px 2px rgb(0 0 0 / 7.5%), 0 2px 4px rgb(0 0 0 / 7.5%)\",\n --range-thumb-active-bg: color-mix(in oklch, var(--primary-base) 70%, var(--bg-body)),\n --range-thumb-disabled-bg: var(--fg-3),\n --range-thumb-transition-property: \"background-color, border-color, box-shadow\",\n --range-thumb-transition-timing: .15s ease-in-out,\n --range-thumb-transition: var(--range-thumb-transition-property) var(--range-thumb-transition-timing),\n ),\n $range-tokens\n);\n// scss-docs-end range-tokens\n\n// scss-docs-start range-mixins\n@mixin range-thumb() {\n width: var(--range-thumb-width);\n height: var(--range-thumb-height);\n appearance: none;\n @include gradient-bg(var(--range-thumb-bg));\n border: var(--range-thumb-border);\n @include border-radius(var(--range-thumb-border-radius));\n @include box-shadow(var(--range-thumb-box-shadow));\n @include transition(var(--range-thumb-transition));\n\n &:active {\n @include gradient-bg(var(--range-thumb-active-bg));\n }\n}\n\n@mixin range-track() {\n width: var(--range-track-width);\n height: var(--range-track-height);\n color: transparent; // Why?\n cursor: var(--range-track-cursor);\n background-color: var(--range-track-bg);\n border-color: transparent; // Firefox specific?\n @include border-radius(var(--range-track-border-radius));\n @include box-shadow(var(--range-track-box-shadow));\n}\n// scss-docs-end range-mixins\n\n@layer forms {\n .form-range {\n @include tokens($range-tokens);\n\n width: 100%;\n height: calc(var(--range-thumb-height) + (var(--focus-ring-width) * 2));\n padding: 0; // Need to reset padding\n appearance: none;\n background-color: transparent;\n\n &:hover {\n &::-webkit-slider-thumb {\n @include focus-ring(false, color-mix(in oklch, var(--primary-focus-ring), transparent));\n }\n &::-moz-range-thumb {\n @include focus-ring(false, color-mix(in oklch, var(--primary-focus-ring), transparent));\n }\n }\n\n &:focus-visible {\n outline: 0;\n\n // Pseudo-elements must be split across multiple rulesets to have an effect.\n &::-webkit-slider-thumb {\n @include focus-ring(true);\n --focus-ring-offset: 0;\n }\n &::-moz-range-thumb {\n @include focus-ring(true);\n --focus-ring-offset: 0;\n }\n }\n\n &::-moz-focus-outer {\n border: 0;\n }\n\n &::-webkit-slider-thumb {\n @include range-thumb();\n margin-top: calc((var(--range-track-height) - var(--range-thumb-height)) * .5); // Webkit specific\n }\n\n &::-moz-range-thumb {\n @include range-thumb();\n }\n\n &::-webkit-slider-runnable-track {\n @include range-track();\n }\n\n &::-moz-range-track {\n @include range-track();\n }\n\n &:disabled {\n pointer-events: none;\n\n &::-webkit-slider-thumb {\n background-color: var(--range-thumb-disabled-bg);\n }\n\n &::-moz-range-thumb {\n background-color: var(--range-thumb-disabled-bg);\n }\n }\n }\n}\n","@use \"../colors\" as *;\n@use \"../config\" as *;\n\n// Gradients\n\n// scss-docs-start gradient-bg-mixin\n@mixin gradient-bg($color: null) {\n background-color: $color;\n\n @if $enable-gradients {\n background-image: var(--gradient);\n }\n}\n// scss-docs-end gradient-bg-mixin\n\n// scss-docs-start gradient-mixins\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: var(--gray-700), $end-color: var(--gray-800), $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: var(--gray-700), $end-color: var(--gray-800), $start-percent: null, $end-percent: null) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n}\n\n@mixin gradient-directional($start-color: var(--gray-700), $end-color: var(--gray-800), $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n}\n\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n}\n\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n}\n\n@mixin gradient-radial($inner-color: var(--gray-700), $outer-color: var(--gray-800)) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n}\n\n@mixin gradient-striped($color: rgb(255 255 255 / .15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n// scss-docs-end gradient-mixins\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n$form-floating-tokens: () !default;\n\n// scss-docs-start form-floating-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-floating-tokens: defaults(\n (\n --form-floating-height: calc(3.5rem + (var(--border-width) * 2)),\n --form-floating-line-height: 1.25,\n --form-floating-padding-x: var(--btn-input-padding-x),\n --form-floating-padding-y: 1rem,\n --form-floating-input-padding-t: 1.625rem,\n --form-floating-input-padding-b: .625rem,\n --form-floating-label-height: 1.5em,\n --form-floating-label-opacity: .65,\n --form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem),\n --form-floating-label-disabled-color: var(--fg-3),\n --form-floating-transition-property: \"opacity, transform\",\n --form-floating-transition-timing: .1s ease-in-out,\n --form-floating-transition: var(--form-floating-transition-property) var(--form-floating-transition-timing),\n ),\n $form-floating-tokens\n);\n// scss-docs-end form-floating-tokens\n\n@layer forms {\n .form-floating {\n @include tokens($form-floating-tokens);\n\n position: relative;\n\n > label {\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n z-index: 2;\n display: flex;\n align-items: center;\n max-width: 100%;\n height: 100%; // allow textareas\n padding: var(--form-floating-padding-y) var(--form-floating-padding-x);\n overflow: hidden;\n color: color-mix(in oklch, var(--fg-body) var(--form-floating-label-opacity), transparent);\n text-align: start;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n border: var(--input-btn-border-width) solid transparent; // Required for aligning label's text with the input as it affects inner box model\n transform-origin: 0 0;\n @include transition(var(--form-floating-transition));\n }\n\n > .form-control,\n > .form-control-plaintext {\n height: var(--form-floating-height);\n min-height: var(--form-floating-height);\n padding: var(--form-floating-padding-y) var(--form-floating-padding-x);\n line-height: var(--form-floating-line-height);\n\n &::placeholder {\n color: transparent;\n }\n\n &:focus,\n &:not(:placeholder-shown) {\n padding-top: var(--form-floating-input-padding-t);\n padding-bottom: var(--form-floating-input-padding-b);\n }\n // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped\n &:-webkit-autofill {\n padding-top: var(--form-floating-input-padding-t);\n padding-bottom: var(--form-floating-input-padding-b);\n }\n }\n\n > .form-control:focus,\n > .form-control:not(:placeholder-shown),\n > .form-control-plaintext {\n ~ label {\n transform: var(--form-floating-label-transform);\n }\n }\n\n // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped\n > .form-control:-webkit-autofill {\n ~ label {\n transform: var(--form-floating-label-transform);\n }\n }\n > textarea:focus,\n > textarea:not(:placeholder-shown) {\n ~ label::after {\n position: absolute;\n inset: var(--form-floating-padding-y) calc(var(--form-floating-padding-x) * .5);\n z-index: -1;\n height: var(--form-floating-label-height);\n content: \"\";\n background-color: var(--control-bg);\n @include border-radius(var(--btn-input-border-radius));\n }\n }\n > textarea:disabled ~ label::after {\n background-color: var(--control-disabled-bg);\n }\n\n > .form-control-plaintext {\n ~ label {\n border-width: var(--control-border-width) 0; // Required to properly position label text - as explained above\n }\n }\n\n > :disabled ~ label,\n > .form-control:disabled ~ label { // Required for `.form-control`s because of specificity\n color: var(--form-floating-label-disabled-color);\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n\n$input-group-addon-tokens: () !default;\n\n// scss-docs-start input-group-addon-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$input-group-addon-tokens: defaults(\n (\n --input-group-addon-padding-y: var(--btn-input-padding-y),\n --input-group-addon-padding-x: var(--btn-input-padding-x),\n --input-group-addon-font-size: var(--btn-input-font-size),\n --input-group-addon-line-height: var(--btn-input-line-height),\n --input-group-addon-color: var(--fg-body),\n --input-group-addon-bg: var(--bg-2),\n --input-group-addon-border-color: var(--border-color),\n ),\n $input-group-addon-tokens\n);\n// scss-docs-end input-group-addon-tokens\n\n// scss-docs-start input-group-sizes\n$input-group-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$input-group-sizes: defaults(\n (\"sm\", \"lg\"),\n $input-group-sizes\n);\n// scss-docs-end input-group-sizes\n\n@layer components {\n .input-group {\n @include tokens($input-group-addon-tokens);\n\n position: relative;\n display: flex;\n align-items: stretch;\n width: 100%;\n\n > .form-control,\n > .form-floating {\n position: relative; // For focus state's z-index\n flex: 1 1 auto;\n width: 1%;\n min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size\n }\n\n // Bring the \"active\" form control to the top of surrounding elements\n > .form-control:focus,\n > .form-floating:focus-within {\n z-index: 5;\n }\n\n // Ensure buttons are always above inputs for more visually pleasing borders.\n // This isn't needed for `.input-group-text` since it shares the same border-color\n // as our inputs.\n > .input-group-btn {\n position: relative;\n z-index: 2;\n\n &:focus {\n z-index: 5;\n }\n }\n }\n\n // Textual addons\n //\n // Serves as a catch-all element for any text or radio/checkbox input you wish\n // to prepend or append to an input.\n\n .input-group-text {\n display: flex;\n align-items: center;\n padding: var(--input-group-addon-padding-y) var(--input-group-addon-padding-x);\n font-size: var(--input-group-addon-font-size); // Match inputs\n // font-weight: $input-group-addon-font-weight;\n line-height: var(--input-group-addon-line-height);\n color: var(--input-group-addon-color);\n text-align: center;\n white-space: nowrap;\n background-color: var(--input-group-addon-bg);\n border: var(--border-width) solid var(--input-group-addon-border-color);\n @include border-radius(var(--btn-input-border-radius));\n }\n\n // Sizing\n //\n // Remix the default form control sizing classes into new ones for easier\n // manipulation.\n\n @each $size, $_ in $input-group-sizes {\n .input-group-#{$size} {\n > .form-control,\n > .input-group-text,\n > .btn {\n min-height: var(--btn-input-#{$size}-min-height);\n padding: var(--btn-input-#{$size}-padding-y) var(--btn-input-#{$size}-padding-x);\n font-size: var(--btn-input-#{$size}-font-size);\n @include border-radius(var(--btn-input-#{$size}-border-radius));\n }\n }\n }\n\n // Rounded corners\n //\n // These rulesets must come after the sizing ones to properly override sm and lg\n // border-radius values when extending. They're more specific than we'd like\n // with the `.input-group >` part, but without it, we cannot override the sizing.\n\n // stylelint-disable-next-line no-duplicate-selectors\n .input-group {\n > :not(:last-child, .menu-toggle-split, .menu, .input-group-ignore, .form-floating, :has(+ :is(.menu, .input-group-ignore):last-child)),\n > .menu-toggle-split:nth-last-child(n + 3),\n > .form-floating:not(:last-child) > .form-control,\n > .form-floating:not(:last-child) > .form-select {\n @include border-end-radius(0);\n }\n\n > :not(:first-child, .menu, .input-group-ignore) {\n margin-inline-start: calc(-1 * var(--border-width));\n @include border-start-radius(0);\n }\n\n > :first-child:is(.input-group-ignore) + :not(.menu, .input-group-ignore) {\n @include border-start-radius(var(--btn-input-border-radius));\n }\n\n > .form-floating:not(:first-child) > .form-control,\n > .form-floating:not(:first-child) > .form-select {\n @include border-start-radius(0);\n }\n }\n}\n","@use \"sass:list\";\n@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$strength-tokens: () !default;\n\n// scss-docs-start strength-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$strength-tokens: defaults(\n (\n --strength-height: .375rem,\n --strength-gap: .25rem,\n --strength-margin-top: .25rem,\n --strength-border-radius: var(--radius-pill),\n --strength-bg: var(--bg-2),\n --strength-color: var(--bg-2),\n --strength-weak-color: var(--danger-bg),\n --strength-fair-color: var(--warning-bg),\n --strength-good-color: var(--info-bg),\n --strength-strong-color: var(--success-bg),\n ),\n $strength-tokens\n);\n// scss-docs-end strength-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n// scss-docs-start strength-levels\n$strength-levels: weak, fair, good, strong !default;\n// scss-docs-end strength-levels\n\n$strength-transition: background-color .2s ease-in-out, width .3s ease-in-out !default;\n\n@layer forms {\n // Strength meter container\n .strength {\n @include tokens($strength-tokens);\n\n display: flex;\n gap: var(--strength-gap);\n width: 100%;\n margin-top: var(--strength-margin-top);\n }\n\n // Individual strength segments\n .strength-segment {\n flex: 1;\n height: var(--strength-height);\n background-color: var(--strength-bg);\n @include border-radius(var(--strength-border-radius));\n @include transition($strength-transition);\n\n // Filled state\n &.active {\n background-color: var(--strength-color);\n }\n }\n\n @each $level in $strength-levels {\n .strength[data-bs-strength=\"#{$level}\"] {\n --strength-color: var(--strength-#{$level}-color);\n }\n }\n // Optional text feedback\n .strength-text {\n display: block;\n margin-top: var(--strength-margin-top);\n font-size: var(--font-size-xs);\n color: var(--strength-color, var(--fg-3));\n @include transition(color .2s ease-in-out);\n\n // Hide when empty\n &:empty {\n display: none;\n }\n }\n\n // Alternative: Single bar variant (like a progress bar)\n .strength-bar {\n @include tokens($strength-tokens);\n\n --strength-color: transparent;\n --strength-width: 0%;\n\n width: 100%;\n height: var(--strength-height);\n margin-top: var(--strength-margin-top);\n overflow: hidden;\n background-color: var(--strength-bg);\n @include border-radius(var(--strength-border-radius));\n\n &::after {\n display: block;\n width: var(--strength-width);\n height: 100%;\n content: \"\";\n background-color: var(--strength-color);\n @include border-radius(var(--strength-border-radius));\n @include transition($strength-transition);\n }\n\n @each $level in $strength-levels {\n &[data-bs-strength=\"#{$level}\"] {\n --strength-color: var(--strength-#{$level}-color);\n --strength-width: #{list.index($strength-levels, $level) * 25%};\n }\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/box-shadow\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n$otp-tokens: () !default;\n\n// scss-docs-start otp-tokens\n// stylelint-disable custom-property-no-missing-var-function\n// stylelint-disable-next-line scss/dollar-variable-default\n$otp-tokens: defaults(\n (\n --otp-size: var(--btn-input-lg-min-height),\n --otp-font-size: var(--btn-input-font-size),\n --otp-gap: .5rem,\n --otp-slot-fg: var(--btn-input-fg),\n --otp-slot-bg: var(--btn-input-bg),\n --otp-slot-border-width: var(--border-width),\n --otp-slot-border-color: var(--border-color),\n --otp-slot-border-radius: var(--radius-5),\n ),\n $otp-tokens\n);\n// scss-docs-end otp-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n// scss-docs-start otp-sizes\n$otp-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$otp-sizes: defaults(\n (\"sm\", \"lg\"),\n $otp-sizes\n);\n// scss-docs-end otp-sizes\n\n@layer components {\n .otp {\n @include tokens($otp-tokens);\n\n position: relative;\n display: flex;\n }\n\n // A single real input backs the whole control. Once the JS renders the\n // visual slots (`.otp-rendered`), the input becomes a transparent overlay\n // that captures all interaction while the slots display the value.\n .otp-rendered .otp-input {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n color: transparent;\n text-align: center;\n cursor: default;\n caret-color: transparent;\n background-color: transparent;\n border: 0;\n outline: 0;\n box-shadow: none;\n\n // Never reveal the underlying characters, even on selection\n &::selection {\n color: transparent;\n background-color: transparent;\n }\n }\n\n .otp-slots {\n display: inline-flex;\n gap: var(--otp-gap);\n pointer-events: none; // let clicks fall through to the input overlay\n }\n\n .otp-slot {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--otp-size);\n min-height: var(--otp-size);\n font-size: var(--otp-font-size);\n font-weight: 500;\n line-height: 1;\n color: var(--otp-slot-fg);\n background-color: var(--otp-slot-bg);\n border: var(--otp-slot-border-width) solid var(--otp-slot-border-color);\n @include border-radius(var(--otp-slot-border-radius));\n @include box-shadow(var(--box-shadow-inset));\n @include transition(border-color .15s ease-in-out, box-shadow .15s ease-in-out);\n }\n\n // The slot at the caret gets the focus ring; empty active slots show a\n // blinking caret so the entry point is obvious.\n .otp-slot-active {\n --focus-ring-offset: -1px;\n z-index: 1;\n @include focus-ring(true);\n\n &:not(.otp-slot-filled)::after {\n width: 1px;\n height: 50%;\n content: \"\";\n background-color: var(--otp-slot-fg);\n animation: otp-caret-blink 1s step-end infinite;\n }\n }\n\n // Disabled state mirrors disabled form controls\n .otp-input:disabled ~ .otp-slots .otp-slot {\n background-color: var(--bg-2);\n }\n\n // Connected slots share borders for a single cohesive field\n .otp-connected .otp-slots {\n gap: 0;\n }\n .otp-connected .otp-slot {\n border-radius: 0; // stylelint-disable-line property-disallowed-list\n\n &:not(:first-child) {\n margin-inline-start: calc(var(--otp-slot-border-width) * -1);\n }\n &:first-child {\n @include border-start-radius(var(--otp-slot-border-radius));\n }\n &:last-child {\n @include border-end-radius(var(--otp-slot-border-radius));\n }\n }\n\n .otp-separator {\n display: flex;\n align-items: center;\n padding-inline: var(--otp-gap);\n font-size: var(--otp-font-size);\n color: var(--fg-4);\n user-select: none;\n }\n\n // OTP input sizing — keep in sync with `$form-control-sizes`.\n @each $size, $_ in $otp-sizes {\n .otp-#{$size} {\n --otp-size: var(--btn-input-#{$size}-min-height);\n --otp-font-size: var(--btn-input-#{$size}-font-size);\n }\n }\n}\n\n@keyframes otp-caret-blink {\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0;\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n$form-adorn-tokens: () !default;\n\n// scss-docs-start form-adorn-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-adorn-tokens: defaults(\n (\n --form-adorn-gap: .375rem,\n --form-adorn-icon-size: 1rem,\n --form-adorn-icon-color: var(--fg-2),\n ),\n $form-adorn-tokens\n);\n// scss-docs-end form-adorn-tokens\n\n@layer forms {\n .form-adorn {\n @include tokens($form-adorn-tokens);\n\n gap: var(--form-adorn-gap);\n align-items: center;\n\n // Prevent default `.form-control` focus\n &:focus-visible {\n outline: 0;\n }\n\n &:focus-within {\n --focus-ring-offset: -1px;\n border-color: var(--focus-ring-color);\n @include focus-ring(true);\n }\n\n // Ghost input fills remaining space\n > .form-ghost {\n flex: 1;\n min-width: 0; // Prevent text overflow\n }\n\n &.form-adorn-end > .form-ghost {\n order: -1;\n }\n }\n\n .form-adorn-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n color: var(--form-adorn-icon-color);\n pointer-events: none;\n\n > svg {\n width: var(--form-adorn-icon-size);\n height: var(--form-adorn-icon-size);\n }\n }\n\n .form-adorn-text {\n flex-shrink: 0;\n color: var(--form-adorn-icon-color);\n pointer-events: none;\n user-select: none;\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n\n$chip-input-tokens: () !default;\n\n// scss-docs-start chip-input-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$chip-input-tokens: defaults(\n (\n --chip-input-padding-y: .75rem,\n --chip-input-padding-x: .75rem,\n --chip-input-gap: .375rem,\n --chip-input-ghost-min-width: 5rem,\n --control-fg: var(--btn-input-fg),\n --control-bg: var(--btn-input-bg),\n --control-border-width: var(--border-width),\n --control-border-color: var(--border-color),\n --control-border-radius: var(--radius-5),\n ),\n $chip-input-tokens\n);\n// scss-docs-end chip-input-tokens\n\n@layer forms {\n .chip-input {\n @include tokens($chip-input-tokens);\n\n // Flexbox wrapping layout\n display: flex;\n flex-wrap: wrap;\n gap: var(--chip-input-gap);\n align-items: center;\n padding: var(--chip-input-padding-y) var(--chip-input-padding-x);\n\n color: var(--control-fg);\n background-color: var(--control-bg);\n border: var(--control-border-width) solid var(--control-border-color);\n @include border-radius(var(--control-border-radius), 0);\n\n // Focus state when ghost input is focused\n &:focus-within {\n --focus-ring-offset: -1px;\n border-color: var(--focus-ring-color);\n @include focus-ring(true);\n }\n\n // Ghost input fills remaining space\n > .form-ghost {\n flex: 1 1 0;\n min-width: var(--chip-input-ghost-min-width);\n min-height: 1.75rem;\n }\n\n // Disabled state\n &.disabled,\n &:has(.form-ghost:disabled) {\n cursor: not-allowed;\n background-color: var(--bg-2);\n opacity: 1;\n\n &:focus-within {\n border-color: var(--control-border-color);\n outline: 0;\n }\n\n > .chip {\n pointer-events: none;\n opacity: var(--control-disabled-opacity);\n }\n }\n }\n}\n","@use \"../mixins/transition\" as *;\n\n@layer components {\n .combobox-toggle {\n display: inline-flex;\n gap: .5rem;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding-inline-end: var(--control-padding-x);\n text-align: start;\n cursor: pointer;\n\n &.show {\n background-color: var(--bg-1);\n }\n\n &:disabled,\n &.disabled {\n cursor: not-allowed;\n opacity: .65;\n }\n }\n\n .combobox-value {\n display: flex;\n flex: 1;\n gap: .5rem;\n align-items: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .combobox-placeholder {\n color: color-mix(in oklch, currentcolor 65%, transparent);\n }\n\n .combobox-caret {\n flex-shrink: 0;\n @include transition(transform .2s ease-in-out);\n\n .show > & {\n transform: rotate(180deg);\n }\n }\n\n .combobox-toggle + .menu {\n --menu-max-height: 300px;\n --menu-overflow-y: auto;\n }\n\n .combobox-search {\n position: sticky;\n top: 0;\n z-index: 1;\n padding: var(--menu-padding-x, .25rem);\n background-color: var(--menu-bg, var(--bg-body));\n }\n\n .combobox-search-input {\n width: 100%;\n }\n\n .combobox-no-results {\n padding: 1rem;\n font-size: var(--font-size-sm);\n color: var(--fg-3);\n text-align: center;\n }\n}\n","@use \"../mixins/border-radius\" as *;\n\n// scss-docs-start form-field\n@layer forms {\n .form-field {\n position: relative;\n display: grid;\n gap: .5rem;\n // width: 100%;\n\n > label,\n > .form-label {\n justify-self: start;\n margin-bottom: 0;\n }\n\n &:has(> .check, > .radio, > .switch) {\n grid-template-columns: auto 1fr;\n column-gap: .5rem;\n align-items: start;\n\n > .check,\n > .radio,\n > .switch {\n grid-column: 1;\n }\n\n > :not(.check, .radio, .switch) {\n grid-column: 2;\n }\n\n > .form-label {\n grid-column: 1 / -1;\n }\n }\n }\n\n .form-field-content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n\n .form-field-card {\n position: relative;\n padding: calc(var(--spacer) * .75);\n cursor: pointer;\n border: var(--border-width) solid transparent;\n @include border-radius(var(--radius-7));\n\n &:hover {\n background-color: var(--bg-1);\n }\n\n &:has(:checked) {\n background-color: var(--bg-1);\n border-color: var(--border-color);\n }\n\n label::before {\n position: absolute;\n inset: 0;\n content: \"\";\n }\n }\n\n .form-group {\n display: grid;\n gap: .5rem;\n\n > label,\n > .form-label,\n > legend {\n justify-self: start;\n margin-bottom: 0;\n }\n }\n}\n// scss-docs-end form-field\n","@use \"../config\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/form-validation\" as *;\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid.\n// Server-side: `.is-invalid` / `.is-valid` classes work globally.\n// Client-side: `:user-invalid` pseudo-class is scoped behind `[data-bs-validate]`.\n// `:user-valid` is scoped behind `[data-bs-validate~=\"valid\"]` so success styling is opt-in.\n// Custom states (e.g., \"warning\") use only `.is-*` classes.\n\n// scss-docs-start form-validation-states\n$validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$validation-states: defaults(\n (\n \"valid\": \"success\",\n \"invalid\": \"danger\",\n ),\n $validation-states\n);\n// scss-docs-end form-validation-states\n\n// scss-docs-start form-validation-state-mixin\n@mixin form-validation-state($state, $theme) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n font-size: var(--font-size-sm);\n color: var(--#{$theme}-fg);\n }\n\n // More specific to override base tooltip styles\n .tooltip.#{$state}-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n margin-top: .1rem;\n color: var(--#{$theme}-contrast);\n text-align: center;\n background-color: var(--#{$theme}-bg);\n opacity: 1;\n @include border-radius(var(--tooltip-border-radius));\n }\n\n // Generic sibling feedback display — works for .form-control, .form-range,\n // and any element where feedback is a direct sibling.\n @include form-validation-state-selector($state) {\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n\n // Form control\n .form-control {\n @include form-validation-state-selector($state) {\n --control-border-color: var(--#{$theme}-border);\n\n &:focus-visible {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n --control-border-color: var(--#{$theme}-border);\n }\n }\n }\n\n // Checkbox — control-level styling (border, checked bg, focus ring).\n .check {\n @include form-validation-state-selector($state) {\n --check-border-color: var(--#{$theme}-border);\n --check-checked-bg: var(--#{$theme}-bg);\n --check-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-visible {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n }\n\n // Checkbox — label color and feedback display via .form-field:has().\n .form-field:has(.check.is-#{$state}) {\n label { color: var(--#{$theme}-fg); }\n\n .#{$state}-feedback,\n .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-field:has(.check:user-invalid) {\n label { color: var(--#{$theme}-fg); }\n\n .invalid-feedback,\n .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-field:has(.check:user-valid) {\n label { color: var(--#{$theme}-fg); }\n\n .valid-feedback,\n .valid-tooltip { display: block; }\n }\n }\n\n // Radio — control-level styling.\n .radio {\n @include form-validation-state-selector($state) {\n --radio-border-color: var(--#{$theme}-border);\n --radio-checked-bg: var(--#{$theme}-bg);\n --radio-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-visible {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n }\n\n // Radio — label color and feedback display via .form-field:has().\n .form-field:has(.radio.is-#{$state}) {\n label { color: var(--#{$theme}-fg); }\n\n .#{$state}-feedback,\n .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-field:has(.radio:user-invalid) {\n label { color: var(--#{$theme}-fg); }\n\n .invalid-feedback,\n .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-field:has(.radio:user-valid) {\n label { color: var(--#{$theme}-fg); }\n\n .valid-feedback,\n .valid-tooltip { display: block; }\n }\n }\n\n // Switch — control-level styling. The input is an invisible overlay;\n // all visuals are on the .switch wrapper.\n .switch:has(input.is-#{$state}) {\n --switch-border-color: var(--#{$theme}-border);\n --switch-checked-bg: var(--#{$theme}-bg);\n --switch-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .switch:has(input:user-invalid) {\n --switch-border-color: var(--#{$theme}-border);\n --switch-checked-bg: var(--#{$theme}-bg);\n --switch-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .switch:has(input:user-valid) {\n --switch-border-color: var(--#{$theme}-border);\n --switch-checked-bg: var(--#{$theme}-bg);\n --switch-checked-border-color: var(--#{$theme}-bg);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n }\n\n // Switch — label color and feedback display via .form-field:has().\n .form-field:has(.switch input.is-#{$state}) {\n label { color: var(--#{$theme}-fg); }\n\n .#{$state}-feedback,\n .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-field:has(.switch input:user-invalid) {\n label { color: var(--#{$theme}-fg); }\n\n .invalid-feedback,\n .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-field:has(.switch input:user-valid) {\n label { color: var(--#{$theme}-fg); }\n\n .valid-feedback,\n .valid-tooltip { display: block; }\n }\n }\n\n // Chip input — wrapper has the visible border; the .form-ghost inside\n // receives the native pseudo-class.\n .chip-input:has(.form-ghost.is-#{$state}) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .chip-input:has(.form-ghost:user-invalid) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .invalid-feedback,\n ~ .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .chip-input:has(.form-ghost:user-valid) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .valid-feedback,\n ~ .valid-tooltip { display: block; }\n }\n }\n\n // Form adorn — :user-invalid fires on the inner .form-ghost, so we\n // propagate it to the visible wrapper with :has().\n .form-adorn:has(.form-ghost.is-#{$state}) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-adorn:has(.form-ghost:user-invalid) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .invalid-feedback,\n ~ .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-adorn:has(.form-ghost:user-valid) {\n border-color: var(--#{$theme}-border);\n\n &:focus-within {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n border-color: var(--#{$theme}-border);\n }\n\n ~ .valid-feedback,\n ~ .valid-tooltip { display: block; }\n }\n }\n\n // Range — .form-range IS the <input>, so the mixin applies directly.\n .form-range {\n @include form-validation-state-selector($state) {\n &::-webkit-slider-thumb { background: var(--#{$theme}-bg); }\n &::-moz-range-thumb { background: var(--#{$theme}-bg); }\n\n &:focus-visible {\n &::-webkit-slider-thumb {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n &::-moz-range-thumb {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip { display: block; }\n }\n }\n\n // Input group — feedback lives outside the input-group in the parent\n // .form-field, so we use :has() to toggle display.\n .form-field:has(.input-group .form-control.is-#{$state}) {\n .#{$state}-feedback,\n .#{$state}-tooltip { display: block; }\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] .form-field:has(.input-group .form-control:user-invalid) {\n .invalid-feedback,\n .invalid-tooltip { display: block; }\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] .form-field:has(.input-group .form-control:user-valid) {\n .valid-feedback,\n .valid-tooltip { display: block; }\n }\n }\n\n .input-group {\n > .form-control:not(:focus),\n > .form-floating:not(:focus-within) {\n @include form-validation-state-selector($state) {\n @if $state == \"valid\" {\n z-index: 3;\n } @else if $state == \"invalid\" {\n z-index: 4;\n }\n }\n }\n }\n\n // OTP — validation applies to the wrapper; the visual slots inherit the state.\n .otp {\n @include form-validation-state-selector($state) {\n .otp-slot {\n --otp-slot-border-color: var(--#{$theme}-border);\n }\n\n .otp-slot-active {\n @include focus-ring(true, $color: var(--#{$theme}-focus-ring));\n }\n }\n }\n}\n// scss-docs-end form-validation-state-mixin\n\n@layer components {\n // scss-docs-start form-validation-states-loop\n @each $state, $theme in $validation-states {\n @include form-validation-state($state, $theme);\n }\n // scss-docs-end form-validation-states-loop\n}\n","// scss-docs-start form-validation-state-selector\n@mixin form-validation-state-selector($state) {\n @if & {\n &.is-#{$state} {\n @content;\n }\n\n @if $state == \"invalid\" {\n @at-root [data-bs-validate] #{&}:user-invalid {\n @content;\n }\n } @else if $state == \"valid\" {\n @at-root [data-bs-validate~=\"valid\"] #{&}:user-valid {\n @content;\n }\n }\n } @else {\n .is-#{$state} {\n @content;\n }\n\n @if $state == \"invalid\" {\n [data-bs-validate] :user-invalid {\n @content;\n }\n } @else if $state == \"valid\" {\n [data-bs-validate~=\"valid\"] :user-valid {\n @content;\n }\n }\n }\n}\n// scss-docs-end form-validation-state-selector\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"sass:string\";\n@use \"../config\" as *;\n@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/box-shadow\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../mixins/transition\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function, scss/dollar-variable-default\n\n$button-tokens: () !default;\n\n// scss-docs-start btn-tokens\n$button-tokens: defaults(\n (\n --btn-min-height: var(--btn-input-min-height),\n --btn-padding-x: var(--btn-input-padding-x),\n --btn-padding-y: var(--btn-input-padding-y),\n --btn-font-size: var(--btn-input-font-size),\n --btn-font-weight: var(--btn-input-font-weight),\n --btn-line-height: var(--btn-input-line-height),\n --btn-color: var(--fg-body),\n --btn-white-space: nowrap,\n --btn-border-width: var(--border-width),\n --btn-border-color: transparent,\n --btn-border-radius: var(--radius-5),\n --btn-hover-border-color: transparent,\n --btn-disabled-opacity: .65,\n --btn-transition-timing: .15s ease-in-out,\n --btn-transition-property: \"color, background-color, border-color, box-shadow\",\n --btn-transition: var(--btn-transition-property) var(--btn-transition-timing),\n ),\n $button-tokens\n);\n// scss-docs-end btn-tokens\n\n$button-link-tokens: () !default;\n\n// scss-docs-start button-link-tokens\n$button-link-tokens: defaults(\n (\n --btn-font-weight: var(--font-weight-normal),\n --btn-color: var(--link-color),\n --btn-bg: transparent,\n --btn-border-color: transparent,\n --btn-hover-color: var(--link-hover-color),\n --btn-hover-bg: transparent,\n --btn-hover-border-color: transparent,\n --btn-active-color: var(--link-hover-color),\n --btn-active-bg: transparent,\n --btn-active-border-color: transparent,\n --btn-disabled-color: var(--fg-3),\n --btn-disabled-border-color: transparent,\n ),\n $button-link-tokens\n);\n// scss-docs-end button-link-tokens\n\n$button-styled-tokens: () !default;\n\n// scss-docs-start button-styled-tokens\n$button-styled-tokens: defaults(\n (\n --btn-gradient-start: rgb(255 255 255 / 12.5%),\n --btn-gradient-end: rgb(0 0 0 / 7.5%) ,\n --btn-border-mix-color: #000,\n --btn-border-mix-amount: 10%,\n --btn-border-hover-mix-amount: 12.5%,\n --btn-border-active-mix-amount: 20%,\n --btn-shadow: \"0 1px 2px rgb(0 0 0 / 15%), inset 0 1px 0 rgb(255 255 255 / 10%)\",\n --btn-active-shadow: inset 0 2px 4px rgb(0 0 0 / .15) ,\n ),\n $button-styled-tokens\n);\n// scss-docs-end button-styled-tokens\n\n// scss-docs-start button-sizes\n$button-sizes: () !default;\n$button-sizes: defaults(\n (\"xs\", \"sm\", \"lg\"),\n $button-sizes\n);\n// scss-docs-end button-sizes\n\n$button-variants: () !default;\n\n// scss-docs-start btn-variants\n$button-variants: defaults(\n (\n \"solid\": (\n \"base\": (\n \"bg\": \"bg\",\n \"color\": \"contrast\",\n \"border-color\": \"bg\"\n ),\n \"hover\": (\n \"bg\": \"bg\",\n \"border-color\": \"bg\",\n \"color\": \"contrast\"\n ),\n \"active\": (\n \"bg\": \"bg\",\n \"border-color\": \"bg\",\n \"color\": \"contrast\"\n )\n ),\n \"outline\": (\n \"base\": (\n \"bg\": \"transparent\",\n \"color\": \"fg\",\n \"border-color\": \"border\"\n ),\n \"hover\": (\n \"bg\": \"bg\",\n \"color\": \"contrast\",\n \"border-color\": \"bg\"\n ),\n \"active\": (\n \"bg\": \"bg\",\n \"color\": \"contrast\",\n \"border-color\": \"bg\"\n )\n ),\n \"subtle\": (\n \"base\": (\n \"bg\": \"bg-subtle\",\n \"color\": \"fg\",\n \"border-color\": \"transparent\"\n ),\n \"hover\": (\n \"bg\": (\"bg-muted\", \"bg-subtle\"),\n \"color\": \"fg-emphasis\"\n ),\n \"active\": (\n \"bg\": \"bg-subtle\",\n \"color\": \"fg-emphasis\"\n )\n ),\n \"text\": (\n \"base\": (\n \"color\": \"fg\",\n \"bg\": \"transparent\",\n \"border-color\": \"transparent\"\n ),\n \"hover\": (\n \"color\": \"fg\",\n \"bg\": \"bg-subtle\"\n ),\n \"active\": (\n \"color\": \"fg\",\n \"bg\": \"bg-subtle\"\n )\n )\n ),\n $button-variants\n);\n// scss-docs-end btn-variants\n// stylelint-enable custom-property-no-missing-var-function, scss/dollar-variable-default\n\n//\n// Base styles\n//\n\n// scss-docs-start btn-variant-selectors\n$btn-variant-selectors: (string.unquote(\".btn\"), string.unquote(\".btn-link\"), string.unquote(\".btn-icon\")) !default;\n@each $variant, $config in $button-variants {\n $btn-variant-selectors: list.append($btn-variant-selectors, string.unquote(\".btn-#{$variant}\"), comma);\n}\n// scss-docs-end btn-variant-selectors\n\n@layer components {\n #{$btn-variant-selectors} {\n @include tokens($button-tokens);\n\n display: inline-flex;\n gap: var(--btn-gap, .25rem);\n align-items: center;\n justify-content: center;\n min-height: var(--btn-min-height);\n padding: var(--btn-padding-y) var(--btn-padding-x);\n // font-family: var(--btn-font-family);\n font-size: var(--btn-font-size);\n font-weight: var(--btn-font-weight);\n line-height: var(--btn-line-height);\n color: var(--btn-color);\n text-decoration: none;\n white-space: var(--btn-white-space);\n vertical-align: middle;\n // stylelint-disable-next-line scss/at-function-named-arguments\n cursor: if(sass($enable-button-pointers): pointer; else: null);\n user-select: none;\n background-color: var(--btn-bg, var(--bg-2));\n border: var(--btn-border-width) solid var(--btn-border-color);\n @include border-radius(var(--btn-border-radius));\n @include transition(var(--btn-transition));\n\n &:hover {\n color: var(--btn-hover-color);\n background-color: var(--btn-hover-bg, var(--bg-3));\n border-color: var(--btn-hover-border-color);\n }\n\n &:focus-visible {\n @include focus-ring(true);\n --focus-ring-offset: 1px;\n }\n\n &.active,\n &.show {\n color: var(--btn-active-color);\n background-color: var(--btn-active-bg, var(--bg-3));\n border-color: var(--btn-active-border-color);\n\n &:focus-visible {\n @include focus-ring(true);\n }\n }\n\n &:disabled,\n &.disabled,\n fieldset:disabled & {\n color: var(--btn-disabled-color);\n pointer-events: none;\n background-color: var(--btn-disabled-bg, var(--bg-1));\n // stylelint-disable-next-line scss/at-function-named-arguments\n background-image: if(sass($enable-gradients): none; else: null);\n border-color: var(--btn-disabled-border-color);\n opacity: var(--btn-disabled-opacity);\n }\n }\n\n // Main button style generator mixin\n // Generate button variant classes (e.g., .btn-solid, .btn-outline, etc.)\n // scss-docs-start btn-variant-mixin\n @each $variant, $config in $button-variants {\n .btn-#{$variant} {\n @each $property, $value in map.get($button-variants, $variant, \"base\") {\n @if $value == \"transparent\" {\n --btn-#{$property}: transparent;\n } @else {\n --btn-#{$property}: var(--theme-#{$value});\n }\n }\n\n @each $property, $value in map.get($button-variants, $variant, \"active\") {\n @if $value == \"transparent\" {\n --btn-active-#{$property}: transparent;\n } @else if $value == \"bg-subtle\" {\n --btn-active-#{$property}: var(--theme-#{$value});\n } @else {\n --btn-active-#{$property}: oklch(from var(--theme-#{$value}) calc(l * .9) calc(c * 1.15) h);\n }\n }\n @each $property, $value in map.get($button-variants, $variant, \"base\") {\n @if $value == \"transparent\" {\n --btn-disabled-#{$property}: transparent;\n } @else {\n --btn-disabled-#{$property}: var(--theme-#{$value});\n }\n }\n\n &:hover {\n @each $property, $value in map.get($button-variants, $variant, \"hover\") {\n @if $value == \"transparent\" {\n --btn-hover-#{$property}: transparent;\n } @else if meta.type-of($value) == \"list\" {\n $first-value: list.nth($value, 1);\n $second-value: list.nth($value, 2);\n --btn-hover-#{$property}: color-mix(in oklch, var(--theme-#{$first-value}) 50%, var(--theme-#{$second-value}));\n } @else if $value == \"bg-subtle\" {\n --btn-hover-#{$property}: var(--theme-#{$value});\n } @else {\n --btn-hover-#{$property}: oklch(from var(--theme-#{$value}) calc(l * .95) calc(c * 1.1) h);\n }\n }\n }\n\n &:focus-visible {\n outline-color: var(--theme-focus-ring);\n }\n\n &:active,\n &.active,\n &.btn-check:has(input:checked) {\n @each $property, $value in map.get($button-variants, $variant, \"active\") {\n @if $value == \"transparent\" {\n --btn-active-#{$property}: transparent;\n } @else if $value == \"bg-subtle\" {\n --btn-active-#{$property}: var(--theme-#{$value});\n } @else {\n --btn-active-#{$property}: oklch(from var(--theme-#{$value}) calc(l * .9) calc(c * 1.15) h);\n }\n }\n }\n\n // Disabled state for toggle buttons\n &:disabled,\n &.disabled,\n &.btn-check:has(input:disabled) {\n @each $property, $value in map.get($button-variants, $variant, \"base\") {\n @if $value == \"transparent\" {\n --btn-disabled-#{$property}: transparent;\n } @else {\n --btn-disabled-#{$property}: var(--theme-#{$value});\n }\n }\n }\n }\n }\n // scss-docs-end btn-variant-mixin\n\n //\n // Link buttons\n //\n\n // Make a button look and behave like a link\n .btn-link {\n @include tokens($button-link-tokens);\n\n color: var(--theme-fg, var(--btn-color));\n text-decoration: var(--link-decoration);\n\n @if $enable-gradients {\n background-image: none;\n }\n\n &:focus-visible {\n color: var(--theme-fg, var(--btn-color));\n }\n\n &:hover {\n color: var(--theme-fg-emphasis, var(--btn-hover-color));\n }\n\n // No need for an active state here\n }\n\n //\n // Button Sizes\n //\n\n // Generate button size classes from the $button-sizes map\n // Skip \"md\" as it's the default size for .btn\n\n // scss-docs-start btn-sizes-loop\n @each $size, $_ in $button-sizes {\n .btn-#{$size},\n .btn-group-#{$size} > [class*=\"btn-\"] {\n --btn-min-height: var(--btn-input-#{$size}-min-height);\n --btn-padding-y: var(--btn-input-#{$size}-padding-y);\n --btn-padding-x: var(--btn-input-#{$size}-padding-x);\n --btn-font-size: var(--btn-input-#{$size}-font-size);\n --btn-line-height: var(--btn-input-#{$size}-line-height);\n --btn-border-radius: var(--btn-input-#{$size}-border-radius);\n }\n }\n // scss-docs-end btn-sizes-loop\n\n .btn-icon {\n align-items: center;\n justify-content: center;\n aspect-ratio: 1;\n padding: 0;\n }\n\n //\n // Toggle buttons (.btn-check)\n //\n // Checkbox and radio inputs that look like buttons. Add .btn-check to a\n // label with button classes, with the input nested inside.\n //\n // Example: <label class=\"btn-check btn-solid theme-primary\"><input type=\"checkbox\">Toggle</label>\n\n .btn-check {\n > input {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n\n &:has(input:checked) {\n color: var(--btn-active-color);\n background-color: var(--btn-active-bg, var(--bg-3));\n // stylelint-disable-next-line scss/at-function-named-arguments\n background-image: if(sass($enable-gradients): none; else: null);\n border-color: var(--btn-active-border-color);\n @include box-shadow(var(--btn-active-shadow));\n }\n\n &:has(input:focus-visible) {\n @include focus-ring(true);\n --focus-ring-offset: 1px;\n }\n\n &:has(input:disabled) {\n color: var(--btn-disabled-color);\n pointer-events: none;\n background-color: var(--btn-disabled-bg, var(--bg-1));\n // stylelint-disable-next-line scss/at-function-named-arguments\n background-image: if(sass($enable-gradients): none; else: null);\n border-color: var(--btn-disabled-border-color);\n opacity: var(--btn-disabled-opacity);\n @include box-shadow(none);\n }\n }\n\n //\n // Styled buttons\n //\n // Add visual depth with gradients and shadows. Customize via CSS variables.\n\n .btn-styled {\n @include tokens($button-styled-tokens);\n\n background-image:\n linear-gradient(\n to bottom,\n var(--btn-gradient-start),\n var(--btn-gradient-end)\n );\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-mix-amount));\n box-shadow: var(--btn-shadow);\n\n &:hover {\n background-image:\n linear-gradient(\n to bottom,\n var(--btn-gradient-start),\n var(--btn-gradient-end)\n );\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-hover-mix-amount));\n }\n\n &:active,\n &.active {\n background-image: none;\n border-color: color-mix(in lab, var(--theme-bg), var(--btn-border-mix-color) var(--btn-border-active-mix-amount));\n box-shadow: var(--btn-active-shadow);\n }\n\n &:disabled,\n &.disabled {\n background-image: none;\n box-shadow: none;\n }\n }\n}\n","@use \"../mixins/border-radius\" as *;\n\n@layer components {\n // Make the div behave like a button\n .btn-group,\n .btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; // match .btn alignment given font-size hack above\n\n > [class*=\"btn-\"] {\n position: relative;\n flex: 1 1 auto;\n\n &:hover {\n z-index: 1;\n }\n }\n\n > .btn-check:has(input:checked),\n > [class*=\"btn-\"]:active,\n > [class*=\"btn-\"].active {\n z-index: 2;\n }\n\n > .btn-check:has(input:focus),\n > [class*=\"btn-\"]:focus {\n z-index: 3;\n }\n }\n\n .btn-group-divider {\n > [class*=\"btn-\"] + [class*=\"btn-\"] {\n &::before {\n position: absolute;\n // top: 25%;\n // bottom: 25%;\n // left: calc(var(--btn-border-width) * -1);\n z-index: 3;\n // width: var(--btn-border-width);\n content: \"\";\n background-color: var(--btn-color);\n opacity: .25;\n }\n }\n }\n\n .btn-group:where(.btn-group-divider) {\n > [class*=\"btn-\"] + [class*=\"btn-\"] {\n &::before {\n top: 25%;\n bottom: 25%;\n left: calc(var(--btn-border-width) * -1);\n width: var(--btn-border-width);\n }\n }\n }\n\n .btn-group-vertical:where(.btn-group-divider) {\n > [class*=\"btn-\"] + [class*=\"btn-\"] {\n &::before {\n top: calc(var(--btn-border-width) * -1);\n right: var(--btn-padding-x);\n left: var(--btn-padding-x);\n height: var(--btn-border-width);\n }\n }\n }\n\n // Optional: Group multiple button groups together for a toolbar\n .btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: .5rem;\n justify-content: flex-start;\n\n .input-group {\n width: auto;\n }\n }\n\n .btn-group {\n @include border-radius(var(--btn-border-radius));\n\n // Prevent double borders when buttons are next to each other\n > [class*=\"btn-\"]:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-inline-start: calc(-1 * var(--btn-border-width));\n }\n\n // Reset rounded corners\n > [class*=\"btn-\"]:not(:last-child, :has(+ .menu)),\n > .btn-group:not(:last-child) > [class*=\"btn-\"] {\n @include border-end-radius(0);\n }\n\n // The left radius should be 0 if the button is not the first child\n > [class*=\"btn-\"]:not(:first-child),\n > .btn-group:not(:first-child) > [class*=\"btn-\"] {\n @include border-start-radius(0);\n }\n }\n\n //\n // Vertical button groups\n //\n\n .btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n > [class*=\"btn-\"],\n > .btn-group {\n width: 100%;\n }\n\n > [class*=\"btn-\"]:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-top: calc(-1 * var(--btn-border-width));\n }\n\n // Reset rounded corners\n > [class*=\"btn-\"]:not(:last-child, :has(+ .menu)),\n > .btn-group:not(:last-child) > [class*=\"btn-\"] {\n @include border-bottom-radius(0);\n }\n\n // The top radius should be 0 if the button is not the first child\n > [class*=\"btn-\"]:not(:first-child),\n > .btn-group:not(:first-child) > [class*=\"btn-\"] {\n @include border-top-radius(0);\n }\n }\n}\n","@use \"../functions\" as *;\n@use \"../mixins/border-radius\" as *;\n@use \"../mixins/focus-ring\" as *;\n@use \"../mixins/mask-icon\" as *;\n@use \"../mixins/tokens\" as *;\n\n$btn-close-tokens: () !default;\n\n// scss-docs-start btn-close-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$btn-close-tokens: defaults(\n (\n --btn-close-size: 1.5rem,\n --btn-close-color: inherit,\n --btn-close-icon: #{escape-svg(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M12 0a4 4 0 0 1 4 4v8a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4zm-.646 4.646a.5.5 0 0 0-.707 0L8 7.293 5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.647a.5.5 0 1 0 .708.707L8 8.707l2.647 2.646a.5.5 0 1 0 .707-.707L8.707 8l2.646-2.646a.5.5 0 0 0 0-.708z'/></svg>\"))},\n --btn-close-opacity: .5,\n --btn-close-hover-opacity: .75,\n --btn-close-focus-opacity: .85,\n --btn-close-disabled-opacity: .25,\n ),\n $btn-close-tokens\n);\n// scss-docs-end btn-close-tokens\n\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n@layer components {\n .btn-close {\n @include tokens($btn-close-tokens);\n\n box-sizing: content-box;\n width: var(--btn-close-size);\n height: var(--btn-close-size);\n padding: 0;\n color: var(--btn-close-color);\n background-color: currentcolor;\n border: 0; // for button elements\n @include border-radius(var(--radius-5));\n opacity: var(--btn-close-opacity);\n @include mask-icon(var(--btn-close-icon));\n\n // Override <a>'s hover style\n &:hover {\n color: var(--btn-close-color);\n text-decoration: none;\n opacity: var(--btn-close-hover-opacity);\n }\n\n &:focus-visible {\n opacity: var(--btn-close-focus-opacity);\n @include focus-ring();\n }\n\n &:disabled,\n &.disabled {\n pointer-events: none;\n user-select: none;\n opacity: var(--btn-close-disabled-opacity);\n }\n }\n}\n","@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/tokens\" as *;\n\n$accordion-tokens: () !default;\n\n// scss-docs-start accordion-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$accordion-tokens: defaults(\n (\n --accordion-padding-x: 1.25rem,\n --accordion-padding-y: 1rem,\n --accordion-color: var(--fg-body),\n --accordion-bg: var(--bg-body),\n --accordion-transition-property: \"color, background-color, border-radius\",\n --accordion-transition-timing: \".15s ease-in-out\",\n --accordion-transition: var(--accordion-transition-property) var(--accordion-timing),\n --accordion-border-color: var(--border-color),\n --accordion-border-width: var(--border-width),\n --accordion-border-radius: var(--accordion-radius, var(--radius-7)),\n --accordion-btn-color: var(--fg-2),\n --accordion-btn-bg: var(--bg-body),\n --accordion-btn-icon-width: 1rem,\n --accordion-btn-icon-transform: rotate(-180deg),\n --accordion-btn-icon-transition: transform .2s ease-in-out,\n --accordion-active-color: var(--fg),\n --accordion-active-bg: var(--bg-2),\n ),\n $accordion-tokens\n);\n// scss-docs-end accordion-tokens\n\n@layer components {\n .accordion {\n @include tokens($accordion-tokens);\n }\n\n .accordion-header {\n display: flex;\n align-items: center;\n width: 100%;\n padding: var(--accordion-btn-padding-y, var(--accordion-padding-y)) var(--accordion-btn-padding-x, var(--accordion-padding-x));\n font-size: var(--accordion-font-size, var(--font-size-base));\n color: var(--accordion-btn-color);\n text-align: start;\n list-style: none; // Remove default marker\n cursor: pointer;\n background-color: var(--accordion-btn-bg);\n @include transition(var(--accordion-transition));\n\n &::-webkit-details-marker {\n display: none;\n }\n\n .accordion-icon {\n flex-shrink: 0;\n width: var(--accordion-btn-icon-width);\n height: var(--accordion-btn-icon-width);\n margin-inline-start: auto;\n color: currentcolor;\n @include transition(var(--accordion-btn-icon-transition));\n }\n\n &:hover {\n z-index: 2;\n }\n\n &:focus-visible {\n position: relative;\n z-index: 3;\n @include focus-ring(true);\n outline-offset: -1px;\n }\n }\n\n .accordion-item {\n color: var(--accordion-color);\n background-color: var(--accordion-bg);\n border: var(--accordion-border-width) solid var(--accordion-border-color);\n\n @media (prefers-reduced-motion: no-preference) {\n interpolate-size: allow-keywords;\n }\n\n &::details-content {\n block-size: 0;\n overflow-y: clip;\n @include transition(content-visibility .2s allow-discrete, block-size .2s);\n }\n\n &:first-of-type {\n @include border-top-radius(var(--accordion-border-radius));\n\n > .accordion-header {\n @include border-top-radius(calc(var(--accordion-border-radius) - var(--accordion-border-width)));\n }\n }\n\n &:not(:first-of-type) {\n border-block-start: 0;\n }\n\n // Only set a border-radius on the last item if the accordion is collapsed\n &:last-of-type {\n @include border-bottom-radius(var(--accordion-border-radius));\n\n > .accordion-header {\n @include border-bottom-radius(calc(var(--accordion-border-radius) - var(--accordion-border-width)));\n }\n\n > .accordion-body {\n @include border-bottom-radius(var(--accordion-border-radius));\n }\n }\n\n // Open state - details[open] applies these styles\n &[open] {\n\n border-color: var(--theme-border, var(--accordion-border-color));\n &::details-content {\n block-size: auto;\n }\n\n > .accordion-header {\n color: var(--theme-fg, var(--accordion-active-color));\n background-color: var(--theme-bg-subtle, var(--accordion-active-bg));\n box-shadow: inset 0 calc(-1 * var(--accordion-border-width)) 0 var(--theme-border, var(--accordion-border-color));\n\n .accordion-icon {\n transform: var(--accordion-btn-icon-transform);\n }\n }\n\n // Remove bottom radius from header when open (even on last item)\n &:last-of-type > .accordion-header {\n @include border-bottom-radius(0);\n }\n }\n }\n\n .accordion-body {\n padding: var(--accordion-body-padding-y, var(--accordion-padding-y)) var(--accordion-body-padding-x, var(--accordion-padding-x));\n }\n\n\n // Flush accordion items\n //\n // Remove borders and border-radius to keep accordion items edge-to-edge.\n\n .accordion-flush {\n > .accordion-item {\n border-inline: 0;\n @include border-radius(0);\n\n &:first-child {\n border-block-start: 0;\n }\n\n &:last-child {\n border-block-end: 0;\n }\n\n > .accordion-header,\n > .accordion-body {\n @include border-radius(0);\n }\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/tokens\" as *;\n\n$alert-tokens: () !default;\n\n// scss-docs-start alert-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$alert-tokens: defaults(\n (\n --alert-gap: var(--spacer-3),\n --alert-bg: var(--theme-bg-subtle, var(--bg-1)),\n --alert-padding-x: var(--spacer),\n --alert-padding-y: var(--spacer),\n --alert-color: var(--theme-fg, inherit),\n --alert-border-color: var(--theme-border, var(--border-color)),\n --alert-border: var(--border-width) solid var(--alert-border-color),\n --alert-border-radius: var(--radius-5),\n --alert-link-color: inherit,\n --hr-border-color: var(--theme-border, var(--border-color)),\n ),\n $alert-tokens\n);\n// scss-docs-end alert-tokens\n\n@layer components {\n .alert {\n @include tokens($alert-tokens);\n\n display: flex;\n gap: var(--alert-gap);\n align-items: start;\n padding: var(--alert-padding-y) var(--alert-padding-x);\n color: var(--alert-color);\n background-color: var(--alert-bg);\n border: var(--alert-border);\n @include border-radius(var(--alert-border-radius));\n }\n\n .alert > p {\n margin-bottom: 0;\n }\n\n .alert-heading {\n // Specified to prevent conflicts of changing $headings-color\n color: inherit;\n }\n\n // Provide class for links that match alerts\n .alert-link {\n font-weight: var(--font-weight-semibold);\n color: var(--alert-link-color);\n }\n}\n","@use \"sass:map\";\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/tokens\" as *;\n\n$avatar-tokens: () !default;\n\n// stylelint-disable custom-property-no-missing-var-function\n// scss-docs-start avatar-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$avatar-tokens: defaults(\n (\n --avatar-size: 2.5rem,\n --avatar-border-radius: 50%,\n --avatar-border-width: 2px,\n --avatar-border-color: var(--bg-body),\n --avatar-bg: var(--bg-2),\n --avatar-color: var(--fg-body),\n // --avatar-font-weight: var(--font-weight-medium), // Defaults to fallback\n --avatar-status-size: .75rem,\n --avatar-status-border-width: 2px,\n --avatar-status-border-color: var(--bg-body),\n --avatar-stack-spacing: -.3,\n --avatar-stack-transition: \"transform .2s ease-in-out\",\n ),\n $avatar-tokens\n);\n// scss-docs-end avatar-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n// scss-docs-start avatar-sizes\n$avatar-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$avatar-sizes: defaults(\n (\n \"xs\": (\n size: 1.5rem,\n status-size: .625rem,\n ),\n \"sm\": (\n size: 2rem,\n ),\n \"lg\": (\n size: 3rem,\n status-size: 1rem,\n border-width: 3px,\n ),\n \"xl\": (\n size: 4rem,\n status-size: 1.25rem,\n border-width: 4px,\n ),\n ),\n $avatar-sizes\n);\n// scss-docs-end avatar-sizes\n\n@layer components {\n .avatar {\n @include tokens($avatar-tokens);\n\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--avatar-size);\n height: var(--avatar-size);\n font-size: calc(var(--avatar-size) * .4);\n font-weight: var(--avatar-font-weight, var(--font-weight-medium));\n line-height: 1;\n color: var(--theme-contrast, var(--avatar-color));\n text-transform: uppercase;\n vertical-align: middle;\n background-color: var(--theme-bg, var(--avatar-bg));\n @include border-radius(var(--avatar-border-radius));\n\n > .avatar-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n }\n\n .avatar-subtle {\n color: var(--theme-fg, var(--avatar-color));\n background-color: var(--theme-bg-subtle, var(--avatar-bg));\n }\n\n .avatar-img {\n @include border-radius(var(--avatar-border-radius, 50%));\n }\n\n .avatar-status {\n position: absolute;\n right: calc(var(--avatar-status-border-width) * -1);\n bottom: calc(var(--avatar-status-border-width) * -1);\n width: var(--avatar-status-size);\n height: var(--avatar-status-size);\n background-color: var(--gray-400);\n border: var(--avatar-status-border-width) solid var(--avatar-status-border-color);\n @include border-radius(50%);\n\n &.status-online {\n background-color: var(--green-500);\n }\n\n &.status-offline {\n background-color: var(--gray-400);\n @include border-radius(20%);\n }\n\n &.status-busy {\n background-color: var(--red-500);\n @include border-radius(20%);\n }\n\n &.status-away {\n background-color: var(--yellow-500);\n }\n }\n\n .avatar-stack {\n display: inline-flex;\n flex-direction: row-reverse;\n\n .avatar {\n // Stack spacing is calculated as a percentage of avatar size\n margin-left: calc(var(--avatar-size) * var(--avatar-stack-spacing));\n border: var(--avatar-border-width) solid var(--avatar-border-color);\n mask-image: none;\n @include transition(var(--avatar-stack-transition));\n\n &:last-child {\n margin-left: 0;\n }\n\n &:hover {\n z-index: 1;\n transform: translateY(-2px);\n }\n }\n }\n\n @each $size, $tokens in $avatar-sizes {\n .avatar-#{$size},\n .avatar-stack-#{$size} > .avatar {\n --avatar-size: #{map.get($tokens, size)};\n\n @if map.has-key($tokens, status-size) {\n --avatar-status-size: #{map.get($tokens, status-size)};\n }\n\n @if map.has-key($tokens, border-width) {\n --avatar-border-width: #{map.get($tokens, border-width)};\n }\n }\n }\n}\n","@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/tokens\" as *;\n\n$badge-tokens: () !default;\n\n// scss-docs-start badge-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$badge-tokens: defaults(\n (\n --badge-padding-x: .625em,\n --badge-padding-y: .25em,\n --badge-font-size: clamp(12px, .75em, .75em),\n --badge-font-weight: var(--font-weight-semibold),\n --badge-color: inherit,\n --badge-bg: var(--bg-2),\n --badge-border-width: var(--border-width),\n --badge-border-color: transparent,\n --badge-border-radius: var(--radius-7),\n ),\n $badge-tokens\n);\n// scss-docs-end badge-tokens\n\n// scss-docs-start badge-variants\n$badge-variants: (\n \"subtle\": (\n \"color\": \"fg\",\n \"bg\": \"bg-subtle\",\n \"border-color\": \"transparent\"\n ),\n \"outline\": (\n \"color\": \"fg\",\n \"bg\": \"transparent\",\n \"border-color\": \"border\"\n )\n) !default;\n// scss-docs-end badge-variants\n\n@layer components {\n .badge {\n @include tokens($badge-tokens);\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 1.375rem;\n padding: var(--badge-padding-y) var(--badge-padding-x);\n font-size: var(--badge-font-size);\n font-weight: var(--badge-font-weight);\n line-height: 1;\n color: var(--theme-contrast, var(--badge-color));\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n background-color: var(--theme-bg, var(--badge-bg));\n border: var(--badge-border-width) solid var(--badge-border-color);\n @include border-radius(var(--badge-border-radius));\n // @include gradient-bg();\n\n // Empty badges collapse automatically\n &:empty {\n display: none;\n }\n }\n\n // Quick fix for badges in buttons\n .btn .badge {\n position: relative;\n top: -1px;\n }\n\n // scss-docs-start badge-variant-loop\n @each $variant, $properties in $badge-variants {\n .badge-#{$variant} {\n @each $property, $value in $properties {\n @if $value == \"transparent\" {\n --badge-#{$property}: transparent;\n } @else {\n --badge-#{$property}: var(--theme-#{$value});\n }\n }\n\n color: var(--badge-color);\n background-color: var(--badge-bg);\n border-color: var(--badge-border-color);\n }\n }\n // scss-docs-end badge-variant-loop\n}\n","@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/mask-icon\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/tokens\" as *;\n\n$breadcrumb-tokens: () !default;\n\n// scss-docs-start breadcrumb-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$breadcrumb-tokens: defaults(\n (\n --breadcrumb-margin-bottom: 1rem,\n --breadcrumb-font-size: inherit,\n --breadcrumb-bg: transparent,\n --breadcrumb-border-radius: var(--radius-5),\n --breadcrumb-divider-color: var(--fg-4),\n --breadcrumb-divider-icon: #{escape-svg(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 16'><path fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M2 2l4 6-4 6'/></svg>\"))},\n --breadcrumb-divider-width: .375rem,\n --breadcrumb-divider-height: .75rem,\n --breadcrumb-link-padding-x: .75rem,\n --breadcrumb-link-padding-y: .25rem,\n --breadcrumb-link-color: var(--fg-3),\n --breadcrumb-link-hover-color: var(--fg-2),\n --breadcrumb-link-hover-bg: var(--bg-1),\n --breadcrumb-link-active-color: var(--fg-1),\n --breadcrumb-link-border-radius: var(--radius-7),\n ),\n $breadcrumb-tokens\n);\n// scss-docs-end breadcrumb-tokens\n\n@layer components {\n .breadcrumb {\n @include tokens($breadcrumb-tokens);\n\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n padding: var(--breadcrumb-padding-y, 0) var(--breadcrumb-padding-x, 0);\n font-size: var(--breadcrumb-font-size);\n list-style: none;\n background-color: var(--breadcrumb-bg);\n @include border-radius(var(--breadcrumb-border-radius));\n }\n\n .breadcrumb-item {\n display: flex;\n }\n\n .breadcrumb-divider {\n margin-inline: calc(var(--breadcrumb-link-padding-x) / 4);\n color: var(--breadcrumb-divider-color);\n\n // Render a default chevron, painted with `currentcolor` via a mask, when the\n // divider has no explicit content. Any content (an inline SVG, a text\n // character, etc.) added to the element overrides this default.\n &:empty::before {\n display: block;\n width: var(--breadcrumb-divider-width);\n height: var(--breadcrumb-divider-height);\n content: \"\";\n background-color: currentcolor;\n @include mask-icon(var(--breadcrumb-divider-icon));\n }\n }\n\n .breadcrumb-link {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 2.25rem;\n padding: var(--breadcrumb-link-padding-y) var(--breadcrumb-link-padding-x);\n color: var(--breadcrumb-link-color);\n text-decoration: none;\n @include border-radius(var(--breadcrumb-link-border-radius));\n @include transition(.1s text-decoration-color ease-in-out);\n\n &:hover {\n z-index: 2;\n color: var(--breadcrumb-link-hover-color);\n background-color: var(--breadcrumb-link-hover-bg);\n }\n\n &.active {\n color: var(--breadcrumb-link-active-color);\n }\n }\n}\n","@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/tokens\" as *;\n\n$chip-tokens: () !default;\n\n// stylelint-disable custom-property-no-missing-var-function\n// scss-docs-start chip-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$chip-tokens: defaults(\n (\n --chip-height: 1.75rem,\n --chip-padding-x: .625rem,\n --chip-gap: .3125rem,\n --chip-border-radius: var(--radius-pill),\n --chip-img-size: 1.25rem,\n --chip-icon-size: 1rem,\n --chip-dismiss-size: 1rem,\n --chip-dismiss-opacity: .65,\n --chip-dismiss-hover-opacity: 1,\n --chip-color: var(--theme-fg, var(--fg-body)),\n --chip-bg: var(--theme-bg-subtle, var(--bg-2)),\n --chip-border-color: transparent,\n --chip-selected-color: var(--theme-contrast, var(--primary-contrast)),\n --chip-selected-bg: var(--theme-bg, var(--primary-bg)),\n --chip-selected-border-color: var(--theme-bg, var(--primary-bg)),\n ),\n $chip-tokens\n);\n// scss-docs-end chip-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer components {\n .chip {\n @include tokens($chip-tokens);\n\n display: inline-flex;\n gap: var(--chip-gap);\n align-items: center;\n height: var(--chip-height);\n padding-inline: var(--chip-padding-x);\n font-size: var(--chip-font-size, var(--font-size-sm));\n font-weight: var(--chip-font-weight, var(--font-weight-base));\n line-height: var(--chip-line-height, 1.25rem);\n color: var(--chip-color);\n text-decoration: none;\n white-space: nowrap;\n vertical-align: middle;\n cursor: pointer;\n background-color: var(--chip-bg);\n border: var(--border-width) solid var(--chip-border-color);\n @include border-radius(var(--chip-border-radius));\n\n &:hover {\n --chip-bg: var(--theme-bg-muted, var(--bg-3));\n }\n\n &:focus-visible {\n outline: 0;\n // @include focus-ring();\n }\n\n &.active {\n --chip-color: var(--chip-selected-color);\n --chip-bg: var(--chip-selected-bg);\n --chip-border-color: var(--chip-selected-border-color);\n\n &:hover {\n --chip-bg: var(--chip-selected-bg);\n opacity: .9;\n }\n }\n\n &.disabled,\n &:disabled {\n pointer-events: none;\n opacity: .65;\n }\n }\n\n .chip-img {\n width: var(--chip-img-size);\n height: var(--chip-img-size);\n @include border-radius(50%);\n\n &:first-child {\n margin-inline-start: -.375rem;\n }\n }\n\n // Chip icon (left side)\n .chip-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n margin-inline-start: calc(var(--chip-gap) * -.25);\n\n > svg {\n display: block; // Prevents baseline alignment issues\n width: var(--chip-icon-size);\n height: var(--chip-icon-size);\n }\n\n > img {\n width: var(--chip-icon-size);\n height: var(--chip-icon-size);\n object-fit: cover;\n @include border-radius(50%);\n }\n }\n\n // Dismiss button (right side)\n .chip-dismiss {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--chip-min-height);\n height: var(--chip-min-height);\n padding: 0;\n // margin-inline-start: calc(var(--chip-padding-x) * -.5);\n margin-inline-end: calc(var(--chip-padding-x) * -.25);\n color: inherit;\n cursor: pointer;\n background: transparent;\n border: 0;\n opacity: var(--chip-dismiss-opacity);\n // @include transition(opacity .15s ease-in-out);\n\n &:hover {\n opacity: var(--chip-dismiss-hover-opacity);\n }\n\n &:focus-visible {\n outline: 0;\n opacity: 1;\n @include focus-ring();\n }\n\n > svg {\n display: block; // Prevents baseline alignment issues\n width: var(--chip-dismiss-size);\n height: var(--chip-dismiss-size);\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/tokens\" as *;\n@use \"layout/breakpoints\" as *;\n\n$card-tokens: () !default;\n\n// scss-docs-start card-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$card-tokens: defaults(\n (\n --card-spacer-y: var(--spacer-5),\n --card-spacer-x: var(--spacer-5),\n --card-subtitle-color: inherit,\n --card-border-width: var(--border-width),\n --card-border-color: var(--border-color-translucent),\n --card-border-radius: var(--radius-7),\n --card-box-shadow: none,\n --card-inner-border-radius: calc(var(--radius-7) - var(--border-width)),\n --card-cap-padding-y: var(--spacer-3),\n --card-cap-padding-x: var(--spacer),\n --card-cap-bg: var(--bg-1),\n --card-cap-color: inherit,\n --card-height: auto,\n --card-color: inherit,\n --card-bg: var(--bg-body),\n --card-img-overlay-padding: var(--card-spacer-y),\n --card-group-margin: #{$grid-gutter-x * .5},\n --card-body-gap: calc(var(--card-spacer-y) * .5),\n ),\n $card-tokens\n);\n// scss-docs-end card-tokens\n\n@layer components {\n .card {\n @include tokens($card-tokens);\n\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n height: var(--card-height);\n color: var(--fg-body);\n word-wrap: break-word;\n background-color: var(--card-bg);\n // border: var(--card-border-width) solid var(--card-border-color);\n @include border-radius(var(--card-border-radius));\n @include box-shadow(var(--card-box-shadow));\n\n > hr {\n margin-inline: 0;\n }\n }\n\n .card-body {\n display: flex;\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n // as much space as possible, ensuring footers are aligned to the bottom.\n flex: 1 1 auto;\n flex-direction: column;\n gap: var(--card-body-gap);\n align-items: flex-start;\n padding: var(--card-spacer-y) var(--card-spacer-x);\n color: var(--card-color);\n border: solid var(--theme-bg, var(--card-border-color));\n border-width: 0 var(--card-border-width);\n\n > * {\n margin-block: 0;\n }\n }\n\n .card-body,\n .card-list {\n border: solid var(--theme-bg, var(--card-border-color));\n border-width: 0 var(--card-border-width);\n\n &:first-child {\n @include border-top-radius(var(--card-border-radius));\n border-top-width: var(--card-border-width);\n }\n\n &:last-child {\n @include border-bottom-radius(var(--card-border-radius));\n border-bottom-width: var(--card-border-width);\n }\n\n &:not(:first-child, :last-child) {\n border-block-end-width: var(--card-border-width);\n }\n }\n\n .card-title,\n .card-subtitle,\n .card-text {\n align-self: stretch;\n }\n\n .card-subtitle {\n margin-top: calc(var(--card-body-gap) * -.5);\n }\n\n .card-header {\n padding: var(--card-cap-padding-y) var(--card-cap-padding-x);\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\n color: var(--theme-contrast, var(--card-cap-color));\n background-color: var(--theme-bg, var(--card-cap-bg));\n border: var(--card-border-width) solid var(--theme-bg, var(--card-border-color));\n\n &:first-child {\n @include border-radius(var(--card-inner-border-radius) var(--card-inner-border-radius) 0 0);\n }\n }\n\n .card-footer {\n padding: var(--card-cap-padding-y) var(--card-cap-padding-x);\n color: var(--card-cap-color);\n background-color: var(--theme-bg, var(--card-cap-bg));\n border: var(--card-border-width) solid var(--theme-bg, var(--card-border-color));\n\n &:last-child {\n @include border-radius(0 0 var(--card-inner-border-radius) var(--card-inner-border-radius));\n }\n }\n\n .card-translucent {\n background-color: color-mix(in oklch, var(--card-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n\n .card-header,\n .card-footer {\n background-color: color-mix(in oklch, var(--card-cap-bg) 60%, transparent);\n }\n }\n\n .card-subtle {\n border-color: var(--theme-border, var(--card-border-color));\n\n .card-header {\n color: var(--theme-fg-emphasis, currentcolor);\n background-color: var(--theme-bg-subtle, var(--card-cap-bg));\n border-color: var(--theme-border, var(--card-border-color));\n }\n\n .card-footer {\n color: var(--theme-fg-emphasis, currentcolor);\n background-color: var(--theme-bg-subtle, var(--card-cap-bg));\n border-color: var(--theme-border, var(--card-border-color));\n }\n\n .card-body,\n .card-list {\n border-color: var(--theme-border, var(--card-border-color));\n }\n }\n\n //\n // Header navs\n //\n\n // Combined selector because of specificity match with `.nav` base class\n .nav.card-header-tabs {\n margin-inline: calc(-.5 * var(--card-cap-padding-x));\n margin-bottom: calc(-1 * var(--card-cap-padding-y));\n border-block-end: 0;\n\n .nav-link.active {\n background-color: var(--card-bg);\n border-block-end-color: var(--card-bg);\n }\n }\n\n // Card image\n .card-img-overlay {\n position: absolute;\n inset: 0;\n padding: var(--card-img-overlay-padding);\n @include border-radius(var(--card-inner-border-radius));\n }\n\n .card-img,\n .card-img-top,\n .card-img-bottom {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n outline: var(--card-border-width) solid var(--card-border-color);\n outline-offset: calc(var(--card-border-width) * -1);\n }\n\n .card-img,\n .card-img-top {\n @include border-top-radius(var(--card-inner-border-radius));\n }\n\n .card-img,\n .card-img-bottom {\n @include border-bottom-radius(var(--card-inner-border-radius));\n }\n\n .card-row {\n flex-direction: row;\n\n .card-body,\n .card-list {\n border-width: var(--card-border-width) 0;\n @include border-radius(0);\n\n &:first-child {\n @include border-start-radius(var(--card-inner-border-radius));\n border-inline-start-width: var(--card-border-width);\n }\n\n &:last-child {\n @include border-end-radius(var(--card-inner-border-radius));\n border-inline-end-width: var(--card-border-width);\n }\n\n &:not(:first-child, :last-child) {\n border-inline-end-width: var(--card-border-width);\n }\n }\n }\n\n .card-img-start {\n @include border-start-radius(var(--card-inner-border-radius));\n }\n\n .card-img-end {\n @include border-end-radius(var(--card-inner-border-radius));\n }\n\n //\n // Card groups\n //\n\n .card-group {\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n margin-bottom: var(--card-group-margin);\n }\n\n @include media-breakpoint-up(sm) {\n display: flex;\n flex-flow: row wrap;\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n flex: 1 0 0;\n margin-bottom: 0;\n\n + .card {\n margin-inline-start: 0;\n border-inline-start: 0;\n }\n\n // Handle rounded corners\n @if $enable-rounded {\n &:not(:last-child) {\n @include border-end-radius(0);\n\n > .card-img-top,\n > .card-header,\n > .card-body {\n border-start-end-radius: 0;\n }\n > .card-img-bottom,\n > .card-footer,\n > .card-body {\n border-end-end-radius: 0;\n }\n }\n\n &:not(:first-child) {\n @include border-start-radius(0);\n\n > .card-img-top,\n > .card-header,\n > .card-body {\n border-start-start-radius: 0;\n }\n > .card-img-bottom,\n > .card-footer,\n > .card-body {\n border-end-start-radius: 0;\n }\n }\n }\n }\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/mask-icon\" as *;\n@use \"mixins/tokens\" as *;\n\n$carousel-tokens: () !default;\n\n// stylelint-disable custom-property-no-missing-var-function\n// scss-docs-start carousel-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$carousel-tokens: defaults(\n (\n --carousel-gap: .75rem,\n --carousel-indicator-bg: var(--fg-3),\n --carousel-indicator-width: .75rem,\n --carousel-indicator-height: .75rem,\n --carousel-indicator-spacer: .25rem,\n --carousel-indicator-transition: \"opacity .6s ease, width .3s ease\",\n --carousel-indicator-progress-bg: var(--carousel-indicator-bg),\n --carousel-control-icon-width: 1rem,\n --carousel-control-prev-icon: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/></svg>\"),\n --carousel-control-next-icon: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/></svg>\"),\n --carousel-control-pause-icon: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M5.5 3.5A1.5 1.5 0 0 1 7 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5m5 0A1.5 1.5 0 0 1 12 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5'/></svg>\"),\n --carousel-control-play-icon: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='m11.596 8.697-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393z'/></svg>\"),\n // Scroll-snap engine. `gap` must carry a length unit: it feeds the\n // `.carousel-item` flex-basis `calc()`, and subtracting a unitless `0` from a\n // percentage is invalid CSS (it would drop the whole declaration and collapse\n // every slide to its content width). `peek` only feeds `padding-inline`/\n // `scroll-padding-inline`, so a bare `0` would be valid there, but we keep it\n // unit-bearing for consistency.\n --carousel-items: 1,\n --carousel-items-gap: 0px,\n --carousel-items-peek: 0px,\n --carousel-fade-duration: .6s,\n ),\n $carousel-tokens\n);\n// scss-docs-end carousel-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer components {\n .carousel {\n @include tokens($carousel-tokens);\n\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--carousel-gap);\n }\n\n // The scroll viewport\n .carousel-inner {\n display: flex;\n gap: var(--carousel-items-gap);\n width: 100%;\n padding-inline: var(--carousel-items-peek);\n overflow-x: auto;\n overscroll-behavior-x: contain;\n scroll-snap-type: x mandatory;\n scroll-padding-inline: var(--carousel-items-peek);\n scrollbar-width: none; // Hide the scrollbar without losing scrollability\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n // Smooth programmatic/keyboard scrolling, disabled under reduced-motion\n @media (prefers-reduced-motion: no-preference) {\n .carousel-inner {\n scroll-behavior: smooth;\n }\n }\n\n .carousel-item {\n // `100%` here is `.carousel-inner`'s content box, which `padding-inline`\n // has already inset by the peek on each side, so the peek must NOT be\n // subtracted again — doing so makes every slide `2 * peek` too narrow and\n // the peek lopsided. Only the inter-slide gaps need removing.\n flex: 0 0 calc((100% - (var(--carousel-items) - 1) * var(--carousel-items-gap)) / var(--carousel-items));\n min-width: 0;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n }\n\n //\n // Layout variants\n //\n\n // Center the active slide in the viewport (pairs well with `--carousel-items-peek`)\n .carousel-center {\n .carousel-item {\n scroll-snap-align: center;\n }\n }\n\n // Let each slide size itself; snap points still land on every item\n .carousel-auto {\n .carousel-item {\n flex-basis: auto;\n }\n }\n\n //\n // Alternate transitions\n //\n\n // Fade can't ride scroll-snap (it stacks slides instead of scrolling), so it\n // becomes a JavaScript-driven mode: every slide is stacked and the active one\n // is faded in via a CSS opacity transition.\n .carousel-fade {\n .carousel-inner {\n display: grid;\n overflow: hidden;\n scroll-snap-type: none;\n }\n\n .carousel-item {\n grid-area: 1 / 1;\n width: 100%;\n visibility: hidden;\n opacity: 0;\n @include transition(opacity var(--carousel-fade-duration) ease, visibility 0s linear var(--carousel-fade-duration));\n }\n\n .carousel-item.active {\n visibility: visible;\n opacity: 1;\n @include transition(opacity var(--carousel-fade-duration) ease);\n }\n }\n\n // Icons for within, rendered via CSS mask so they inherit the current text\n // color (white on the overlay controls, the button color inside `.btn-*`).\n .carousel-icon-prev,\n .carousel-icon-next,\n .carousel-icon-pause,\n .carousel-icon-play {\n display: inline-block;\n width: var(--carousel-control-icon-width);\n height: var(--carousel-control-icon-width);\n background-color: currentcolor;\n @include mask-icon($size: 100% 100%, $position: 50%);\n }\n\n .carousel-icon-prev {\n mask-image: var(--carousel-control-prev-icon);\n }\n\n .carousel-icon-next {\n mask-image: var(--carousel-control-next-icon);\n }\n\n [dir=\"rtl\"] .carousel-icon-prev,\n [dir=\"rtl\"] .carousel-icon-next {\n transform: scaleX(-1);\n }\n\n .carousel-icon-pause {\n mask-image: var(--carousel-control-pause-icon);\n }\n\n .carousel-icon-play {\n mask-image: var(--carousel-control-play-icon);\n }\n\n // Optional play/pause control\n //\n // A discoverable toggle so users can stop an autoplaying carousel, as required\n // by WCAG 2.2.2 (Pause, Stop, Hide). `.carousel-control-play-pause` is only a\n // behavior hook—JS toggles `.paused` on it and its appearance comes from the\n // wrapping button (e.g. `.btn-icon`). The button holds both glyphs and we show\n // whichever `.carousel-icon-*` matches the current state.\n .carousel-control-play-pause .carousel-icon-play {\n display: none;\n }\n\n .carousel-control-play-pause.paused {\n .carousel-icon-pause {\n display: none;\n }\n\n .carousel-icon-play {\n display: inline-block;\n }\n }\n\n .carousel-indicators {\n display: flex;\n gap: var(--carousel-indicator-spacer);\n justify-content: center;\n\n [data-bs-target] {\n flex: 0 1 auto;\n width: var(--carousel-indicator-width);\n height: var(--carousel-indicator-height);\n padding: 0;\n cursor: pointer;\n background-color: transparent;\n border: 1px solid var(--carousel-indicator-bg);\n @include border-radius(var(--carousel-indicator-width));\n @include transition(var(--carousel-indicator-transition));\n }\n\n .active {\n width: calc(var(--carousel-indicator-width) * 2.5);\n background-color: var(--carousel-indicator-bg);\n border-color: var(--carousel-indicator-bg);\n }\n }\n\n // Autoplay progress: fill the active indicator like a progress bar over the\n // current slide's interval. The JS adds `.carousel-playing` and sets\n // `--carousel-interval` (shipped as `--bs-carousel-interval`) while autoplay is\n // running. The fill restarts on its own each slide because `.active` moves to a\n // fresh indicator, so its `::after` animation begins from scratch.\n @if $enable-transitions {\n @keyframes carousel-indicator-progress {\n from { inline-size: 0; }\n to { inline-size: 100%; }\n }\n\n .carousel-playing .carousel-indicators .active {\n @media (prefers-reduced-motion: no-preference) {\n position: relative;\n overflow: hidden;\n // Empty the pill so it reads as a track that the fill grows across.\n background-color: transparent;\n\n &::after {\n position: absolute;\n inset-block: 0;\n inset-inline-start: 0;\n inline-size: 0;\n content: \"\";\n background-color: var(--carousel-indicator-progress-bg);\n animation: carousel-indicator-progress var(--carousel-interval, 5000ms) linear forwards;\n }\n }\n }\n }\n\n // Overlay layout\n //\n // Overlays the prev/next controls, play/pause button, and indicators on top of\n // the slides (the classic carousel look) instead of stacking them in the flow.\n\n .carousel-overlay {\n --carousel-indicator-bg: light-dark(var(--white), var(--black));\n\n .carousel-overlay-controls {\n position: absolute;\n inset-block-end: 1rem;\n inset-inline: 1rem;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n }\n}\n","// stylelint-disable selector-max-attribute, property-disallowed-list, selector-no-qualifying-type -- VCP uses extensive data attributes and requires direct border-radius properties for range selection\n\n@use \"functions\" as *;\n@use \"config\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/mask-icon\" as *;\n@use \"mixins/tokens\" as *;\n\n$datepicker-tokens: () !default;\n\n// scss-docs-start datepicker-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$datepicker-tokens: defaults(\n (\n --datepicker-padding: 1rem,\n --datepicker-bg: var(--bg-body),\n --datepicker-color: var(--fg-body),\n --datepicker-border-color: var(--border-color-translucent),\n --datepicker-border-width: var(--border-width),\n --datepicker-border-radius: var(--radius-7),\n --datepicker-box-shadow: var(--box-shadow),\n --datepicker-font-size: var(--font-size-sm),\n --datepicker-min-width: 280px,\n --datepicker-zindex: #{$zindex-menu},\n --datepicker-header-font-weight: 600,\n --datepicker-weekday-color: var(--fg-3),\n --datepicker-day-hover-bg: var(--bg-1),\n --datepicker-day-selected-bg: var(--primary-bg),\n --datepicker-day-selected-color: var(--primary-contrast),\n --datepicker-day-today-bg: var(--bg-2),\n --datepicker-day-today-color: var(--fg-1),\n --datepicker-day-disabled-color: var(--fg-4),\n ),\n $datepicker-tokens\n);\n// scss-docs-end datepicker-tokens\n\n@layer components {\n [data-vc=\"calendar\"] {\n @include tokens($datepicker-tokens);\n\n position: absolute;\n z-index: var(--datepicker-zindex);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n min-width: var(--datepicker-min-width);\n padding: var(--datepicker-padding);\n font-family: var(--font-sans-serif);\n font-size: var(--datepicker-font-size);\n color: var(--datepicker-color);\n color-scheme: light dark;\n background-color: var(--datepicker-bg);\n border: var(--datepicker-border-width) solid var(--datepicker-border-color);\n box-shadow: var(--datepicker-box-shadow);\n opacity: 1;\n @include border-radius(var(--datepicker-border-radius));\n\n // Respond to Bootstrap's color mode system\n &[data-bs-theme=\"light\"] {\n color-scheme: light;\n }\n\n &[data-bs-theme=\"dark\"] {\n color-scheme: dark;\n }\n\n // Catch-all for focus styles\n button:focus-visible {\n position: relative;\n z-index: 1;\n @include focus-ring();\n }\n }\n\n [data-vc-calendar-hidden] {\n pointer-events: none;\n opacity: 0;\n }\n\n // Inline calendars\n //\n // Remove popover styling for more neutral styling\n [data-vc=\"calendar\"]:not([data-vc-input]) {\n position: relative;\n width: fit-content;\n padding: 0;\n border: 0;\n box-shadow: none;\n }\n\n [data-vc-position=\"bottom\"] {\n margin-block-start: .25rem;\n }\n\n [data-vc-position=\"top\"] {\n margin-block-end: -.25rem;\n }\n\n [data-vc-arrow] {\n position: relative;\n display: block;\n width: 2rem;\n height: 2rem;\n color: var(--datepicker-color);\n pointer-events: auto;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n @include border-radius(var(--radius-5));\n\n &::before {\n position: absolute;\n inset: .25rem;\n content: \"\";\n background-color: var(--datepicker-color);\n @include mask-icon(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 16c-.3 0-.5-.1-.7-.3l-6-6c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l5.3 5.3 5.3-5.3c.4-.4 1-.4 1.4 0s.4 1 0 1.4l-6 6c-.2.2-.4.3-.7.3'/></svg>\"), $size: null);\n }\n\n &:hover {\n background-color: var(--datepicker-day-hover-bg);\n }\n }\n\n [data-vc-arrow=\"prev\"]::before {\n transform: rotate(90deg);\n }\n\n [data-vc-arrow=\"next\"]::before {\n transform: rotate(-90deg);\n }\n\n // Grid layout\n [data-vc=\"controls\"] {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 20;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: 1rem;\n padding-right: 1rem;\n padding-left: 1rem;\n pointer-events: none;\n }\n\n [data-vc=\"grid\"] {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n gap: 1.75rem;\n }\n\n [data-vc=\"column\"] {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n min-width: 240px;\n }\n\n //\n // Header\n //\n\n [data-vc=\"header\"] {\n position: relative;\n display: flex;\n align-items: center;\n margin-bottom: .75rem;\n }\n\n // Month and year\n [data-vc-header=\"content\"] {\n display: inline-flex;\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n white-space: pre-wrap;\n }\n\n [data-vc=\"month\"],\n [data-vc=\"year\"] {\n padding: .25rem .5rem;\n margin-inline: -.125rem;\n font-size: 1rem;\n font-weight: var(--datepicker-header-font-weight);\n color: var(--datepicker-color);\n // cursor: pointer;\n background-color: transparent;\n border: 0;\n @include border-radius(var(--radius-5));\n\n &:disabled {\n color: var(--datepicker-day-disabled-color);\n pointer-events: none;\n }\n\n &:hover:not(:disabled) {\n background-color: var(--datepicker-day-hover-bg);\n }\n }\n\n [data-vc=\"content\"] {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n }\n\n // Month/Year grids\n [data-vc=\"months\"],\n [data-vc=\"years\"] {\n display: grid;\n flex-grow: 1;\n grid-template-columns: repeat(var(--vc-columns, 4), minmax(0, 1fr));\n row-gap: 1rem;\n column-gap: .25rem;\n align-items: center;\n }\n\n [data-vc=\"years\"] {\n --vc-columns: 5;\n }\n\n [data-vc-months-month],\n [data-vc-years-year] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 2.5rem;\n padding: .25rem;\n font-size: .75rem;\n font-weight: 600;\n line-height: 1rem;\n color: var(--datepicker-weekday-color);\n text-align: center;\n word-break: break-all;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n @include border-radius(var(--radius-5));\n\n &:disabled {\n color: var(--datepicker-day-disabled-color);\n pointer-events: none;\n }\n\n &:hover:not(:disabled) {\n background-color: var(--datepicker-day-hover-bg);\n }\n\n &[data-vc-months-month-selected],\n &[data-vc-years-year-selected] {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n\n &:hover {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n }\n }\n }\n\n // Week days header\n [data-vc=\"week\"] {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n justify-items: center;\n margin-bottom: .5rem;\n }\n\n [data-vc-week-day] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 1.875rem;\n padding: 0;\n margin: 0;\n font-size: .75rem;\n font-weight: 600;\n line-height: 1rem;\n color: var(--datepicker-weekday-color);\n background-color: transparent;\n border: 0;\n }\n\n button[data-vc-week-day] {\n cursor: pointer;\n }\n\n // Dates grid\n [data-vc=\"dates\"] {\n pointer-events: none;\n }\n\n [data-vc-dates=\"row\"] {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n align-items: center;\n justify-items: center;\n width: 100%;\n }\n\n [data-vc-date] {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n padding-top: .125rem;\n padding-bottom: .125rem;\n pointer-events: auto;\n\n &:not(:has([data-vc-date-btn])),\n &[data-vc-date-disabled],\n &[data-vc-date-disabled] [data-vc-date-btn] {\n pointer-events: none;\n }\n }\n\n // Date button\n [data-vc-date-btn] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 1.875rem;\n height: 100%;\n min-height: 1.875rem;\n padding: 0;\n font-size: .75rem;\n font-weight: 400;\n line-height: 1rem;\n color: var(--datepicker-color);\n cursor: pointer;\n background-color: transparent;\n border: 0;\n border-radius: var(--radius-5);\n\n &:hover {\n background-color: var(--datepicker-day-hover-bg);\n }\n }\n\n // Today\n [data-vc-date-today] [data-vc-date-btn] {\n font-weight: 600;\n color: var(--datepicker-day-today-color);\n background-color: var(--datepicker-day-today-bg);\n }\n\n // Outside month\n [data-vc-date-month=\"next\"] [data-vc-date-btn],\n [data-vc-date-month=\"prev\"] [data-vc-date-btn] {\n opacity: .5;\n }\n\n // Disabled\n [data-vc-date-disabled] [data-vc-date-btn] {\n color: var(--datepicker-day-disabled-color);\n }\n\n // Range selection styles\n [data-vc-date-hover] [data-vc-date-btn] {\n background-color: var(--datepicker-day-hover-bg);\n border-radius: 0;\n }\n\n [data-vc-date-hover=\"first\"] [data-vc-date-btn] {\n border-start-start-radius: var(--radius-5);\n border-end-start-radius: var(--radius-5);\n }\n\n [data-vc-date-hover=\"last\"] [data-vc-date-btn] {\n border-start-end-radius: var(--radius-5);\n border-end-end-radius: var(--radius-5);\n }\n\n [data-vc-date-hover=\"first-and-last\"] [data-vc-date-btn] {\n border-radius: var(--radius-5);\n }\n\n [data-vc-date-selected=\"middle\"] [data-vc-date-btn] {\n border-radius: 0;\n opacity: .8;\n }\n\n // Selected\n [data-vc-date-selected] [data-vc-date-btn] {\n color: var(--datepicker-day-selected-color);\n background-color: var(--datepicker-day-selected-bg);\n\n }\n\n [data-vc-date-selected=\"first\"] [data-vc-date-btn] {\n border-top-left-radius: var(--radius-5);\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: var(--radius-5);\n }\n\n [data-vc-date-selected=\"last\"] [data-vc-date-btn] {\n border-top-left-radius: 0;\n border-top-right-radius: var(--radius-5);\n border-bottom-right-radius: var(--radius-5);\n border-bottom-left-radius: 0;\n }\n\n [data-vc-date-selected=\"first-and-last\"] [data-vc-date-btn] {\n border-radius: var(--radius-5);\n }\n}\n","@use \"sass:map\";\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/dialog-shared\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/tokens\" as *;\n\n// Native <dialog> component\n// Uses the browser's native dialog element with showModal()/show()/close() APIs\n// Leverages native [open] attribute and ::backdrop pseudo-element\n\n// stylelint-disable custom-property-no-missing-var-function\n$dialog-tokens: () !default;\n\n// scss-docs-start dialog-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$dialog-tokens: defaults(\n (\n --dialog-padding: 1rem,\n --dialog-width: 500px,\n --dialog-margin: 1.75rem,\n --dialog-color: var(--fg-body),\n --dialog-bg: var(--bg-body),\n --dialog-border-color: var(--border-color-translucent),\n --dialog-border-width: var(--border-width),\n --dialog-border-radius: var(--radius-7),\n --dialog-box-shadow: var(--box-shadow-lg),\n --dialog-transition-duration: .3s,\n --dialog-transition-timing: cubic-bezier(.22, 1, .36, 1),\n --dialog-backdrop-bg: rgb(0 0 0 / 50%),\n --dialog-backdrop-blur: 8px,\n --dialog-header-padding: 1rem,\n --dialog-header-border-color: var(--border-color),\n --dialog-header-border-width: var(--border-width),\n --dialog-footer-padding: 1rem,\n --dialog-footer-border-color: var(--border-color),\n --dialog-footer-border-width: var(--border-width),\n --dialog-footer-gap: .5rem,\n ),\n $dialog-tokens\n);\n// scss-docs-end dialog-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n// scss-docs-start dialog-sizes\n$dialog-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$dialog-sizes: defaults(\n (\n sm: 280px,\n lg: 800px,\n xl: 1140px,\n ),\n $dialog-sizes\n);\n// scss-docs-end dialog-sizes\n\n@layer components {\n // Prevent body scroll when dialog is open\n .dialog-open {\n overflow: hidden;\n }\n\n .dialog {\n @include tokens($dialog-tokens);\n\n // Override UA display:none so visibility controls the hidden state,\n // enabling reliable cross-browser exit animations after close().\n display: flex;\n flex-direction: column;\n width: var(--dialog-width);\n max-width: calc(100% - var(--dialog-margin) * 2);\n max-height: calc(100% - var(--dialog-margin) * 2);\n padding: 0;\n margin: auto;\n overflow: visible;\n color: var(--dialog-color);\n visibility: hidden;\n background-color: var(--dialog-bg);\n background-clip: padding-box;\n border: var(--dialog-border-width) solid var(--dialog-border-color);\n @include border-radius(var(--dialog-border-radius));\n @include box-shadow(var(--dialog-box-shadow));\n\n // Animated variant (default) — transitions, opacity fade, slide transforms.\n // Adding .dialog-instant skips all animations (instant show/hide).\n &:not(.dialog-instant) {\n // Exit state: faded out\n opacity: 0;\n\n // Exit transition: opacity and transform animate out, then visibility\n // flips hidden after the animation completes (via the delay).\n @include transition(\n opacity var(--dialog-transition-duration) var(--dialog-transition-timing),\n transform var(--dialog-transition-duration) var(--dialog-transition-timing),\n visibility 0s var(--dialog-transition-duration)\n );\n\n // Slide-down variant: enters from above sliding down, exits by reversing\n // back up. Base value is the entry-from / exit-to position so the\n // animation works on every open (not just the first, which is the only\n // time @starting-style applies for a persistent <dialog> element).\n &.dialog-slide-down {\n transform: translateY(-3rem);\n }\n\n // Slide-up variant: enters from below sliding up, exits by reversing\n // back down. See note above re: base value choice.\n &.dialog-slide-up {\n transform: translateY(3rem);\n }\n\n // Open state: visible and faded in.\n // Entry transition: visibility flips visible immediately (0s, no delay),\n // then opacity and transform animate in.\n // The :not(.hiding) qualifier lets the exit transition fall back to the\n // base \"exit\" state above while [open] is still present (the JS keeps\n // the dialog in the top layer during the exit so the ::backdrop and\n // the browser's modal centering remain intact).\n &[open]:not(.hiding) {\n overflow: visible;\n visibility: visible;\n opacity: 1;\n @include transition(\n opacity var(--dialog-transition-duration) var(--dialog-transition-timing),\n transform var(--dialog-transition-duration) var(--dialog-transition-timing),\n visibility 0s\n );\n transform: none;\n }\n\n // Static backdrop \"bounce\" animation (modal dialogs only). Qualified\n // with [open] (to outrank the open-state `transform: none` selector\n // which now also includes `:not(.hiding)`) and `:not(.hiding)` (so\n // a backdrop click while the dialog is mid-exit doesn't fight the\n // slide-out transform).\n &[open].dialog-static:not(.hiding) {\n transform: scale(1.02);\n }\n\n // Native backdrop styling with transitions\n &::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n @include backdrop-transitions(var(--dialog-transition-duration), var(--dialog-transition-timing));\n }\n\n // Exit: fade the native backdrop out alongside the dialog. The dialog\n // is kept in the top layer (and thus the ::backdrop is still rendered)\n // for the duration of the exit transition.\n &.hiding::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n }\n\n // Instant variant — no transitions, just snap visibility\n &.dialog-instant {\n &::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n }\n }\n\n // Open state base (always applies, regardless of animation mode).\n // Excluded while .hiding is present so the animated exit (above) can\n // fall through to the base \"exit\" state — for instant dialogs, .hiding\n // is removed synchronously after close() so this still applies normally.\n &[open]:not(.hiding) {\n overflow: visible;\n visibility: visible;\n opacity: 1;\n transform: none;\n }\n\n // Non-modal dialog positioning\n // show() doesn't use the top layer, so we need explicit positioning and z-index\n &.dialog-nonmodal {\n position: fixed;\n inset-block-start: 50%;\n inset-inline-start: 50%;\n z-index: $zindex-dialog;\n margin-inline: 0;\n transform: translate(-50%, -50%);\n }\n\n // Scrollable dialog body (header/footer stay fixed)\n &.dialog-scrollable[open] {\n max-height: calc(100% - var(--dialog-margin) * 2);\n\n .dialog-body {\n overflow-y: auto;\n }\n }\n }\n\n // Entry animation for ::backdrop via @starting-style. The backdrop only\n // exists while the dialog is in the top layer, so its starting state can't\n // be expressed on the base selector.\n // Default dialog (fade only) and the slide variants do NOT need\n // @starting-style — the base opacity: 0 (and base transform for slides)\n // serves as the entry-from state with the visibility trick.\n @starting-style {\n .dialog:not(.dialog-instant)::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n\n // Swap entry: when this dialog is opened as the target of a swap, the\n // outgoing dialog's ::backdrop is being removed synchronously in the same\n // JS tick. To avoid any flicker (either a dip from a fade-in over nothing,\n // or double-darkening from two stacked backdrops), start this backdrop\n // already-opaque so it takes over from the outgoing one seamlessly.\n .dialog.dialog-swap-in:not(.dialog-instant)::backdrop {\n background-color: var(--dialog-backdrop-bg);\n backdrop-filter: blur(var(--dialog-backdrop-blur));\n }\n }\n\n // Dialog sizes\n @each $size, $value in $dialog-sizes {\n .dialog-#{$size} { --dialog-width: #{$value}; }\n }\n\n // Fullscreen dialog\n .dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n\n // Responsive fullscreen dialogs\n @each $breakpoint in map.keys($breakpoints) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n @if $prefix != \"\" {\n @include media-breakpoint-down($breakpoint) {\n .#{css-escape-ident($breakpoint)}-down\\:dialog-fullscreen {\n --dialog-width: 100vw;\n --dialog-margin: 0;\n --dialog-border-radius: 0;\n\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none;\n }\n }\n }\n }\n\n // Dialog header\n .dialog-header {\n @include dialog-header(var(--dialog-header-padding));\n border-block-end: var(--dialog-header-border-width) solid var(--dialog-header-border-color);\n\n .btn-close {\n margin-inline-start: auto;\n }\n }\n\n // Dialog title\n .dialog-title {\n @include dialog-title();\n font-size: var(--font-size-md);\n }\n\n // Dialog body\n .dialog-body {\n position: relative;\n @include dialog-body(var(--dialog-padding));\n }\n\n // Dialog footer\n .dialog-footer {\n @include dialog-footer(var(--dialog-footer-padding), var(--dialog-footer-gap), var(--dialog-footer-border-width), var(--dialog-footer-border-color));\n }\n}\n","// Shared mixins for Dialog and Drawer sub-components.\n// Both components use identical header/footer/body/title patterns\n// with different token namespaces.\n\n@use \"transition\" as *;\n\n// Header: flex row with close button alignment\n@mixin dialog-header($padding) {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n padding: $padding;\n}\n\n// Footer: flex row with end-aligned actions\n@mixin dialog-footer($padding, $gap, $border-width, $border-color) {\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n gap: $gap;\n align-items: center;\n justify-content: flex-end;\n padding: $padding;\n border-block-start: $border-width solid $border-color;\n}\n\n// Body: flexible scrollable content area\n@mixin dialog-body($padding) {\n flex: 1 1 auto;\n padding: $padding;\n}\n\n// Title: reset margin, set line-height\n@mixin dialog-title($line-height: 1.5) {\n margin-bottom: 0;\n line-height: $line-height;\n}\n\n// Backdrop transitions for ::backdrop pseudo-element.\n// Both Dialog and Drawer use identical allow-discrete transitions\n// on display and overlay to keep ::backdrop in the top layer.\n@mixin backdrop-transitions($duration, $timing) {\n @include transition(\n background-color $duration $timing,\n backdrop-filter $duration $timing,\n display $duration allow-discrete,\n overlay $duration allow-discrete\n );\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/tokens\" as *;\n@use \"mixins/transition\" as *;\n\n// stylelint-disable scss/dollar-variable-default, custom-property-no-missing-var-function\n$menu-tokens: () !default;\n\n// scss-docs-start menu-tokens\n$menu-tokens: defaults(\n (\n --menu-zindex: #{$zindex-menu},\n --menu-gap: .125rem,\n --menu-min-width: 10rem,\n --menu-padding-x: .25rem,\n --menu-padding-y: .25rem,\n --menu-spacer: .125rem,\n --menu-font-size: var(--font-size-sm),\n --menu-color: var(--fg-body),\n --menu-bg: var(--bg-body),\n // --menu-border-color: var(--border-color-translucent),\n // --menu-border-radius: var(--radius-7),\n // --menu-border-width: var(--border-width),\n --menu-box-shadow: var(--box-shadow),\n // --menu-max-height: none,\n --menu-divider-bg: var(--border-color-translucent),\n --menu-divider-margin-y: .125rem,\n --menu-divider-margin-x: .25rem,\n --menu-item-color: var(--menu-color, var(--fg-body)),\n --menu-item-hover-color: var(--menu-color, var(--fg-body)),\n --menu-item-hover-bg: var(--bg-1),\n --menu-item-active-color: var(--primary-contrast),\n --menu-item-active-bg: var(--primary-bg),\n --menu-item-disabled-color: var(--fg-3),\n --menu-item-gap: .5rem,\n --menu-item-padding-x: .75rem,\n --menu-item-padding-y: .25rem,\n --menu-item-border-radius: var(--radius-5),\n --menu-icon-size: 1rem,\n --menu-description-font-size: var(--font-size-xs),\n --menu-check-color: currentcolor,\n --menu-header-color: var(--fg-3),\n --menu-header-padding-x: .75rem,\n --menu-header-padding-y: .25rem,\n --menu-transition-duration: .15s,\n --menu-transition-timing: cubic-bezier(.22, 1, .36, 1),\n ),\n $menu-tokens\n);\n// scss-docs-end menu-tokens\n\n// stylelint-enable custom-property-no-missing-var-function, scss/dollar-variable-default\n\n@layer components {\n .menu {\n @include tokens($menu-tokens);\n\n position: absolute;\n z-index: var(--menu-zindex);\n display: none;\n flex-direction: column;\n gap: var(--menu-gap);\n min-width: var(--menu-min-width);\n max-height: var(--menu-max-height, none);\n padding: var(--menu-padding-y) var(--menu-padding-x);\n margin: 0;\n overflow-y: var(--menu-overflow-y, initial);\n overscroll-behavior: contain;\n font-size: var(--menu-font-size);\n color: var(--menu-color);\n text-align: start;\n list-style: none;\n background-color: var(--menu-bg);\n background-clip: padding-box;\n border: var(--menu-border-width, var(--border-width)) solid var(--menu-border-color, var(--border-color-translucent));\n @include border-radius(var(--menu-border-radius, var(--radius-7)));\n @include box-shadow(var(--menu-box-shadow));\n opacity: 0;\n transform: scale(.95);\n transform-origin: top start;\n\n &[data-bs-placement^=\"top\"] {\n transform-origin: bottom start;\n }\n\n &[data-bs-placement=\"bottom-end\"] {\n transform-origin: top end;\n }\n\n &[data-bs-placement=\"top-end\"] {\n transform-origin: bottom end;\n }\n\n &[data-bs-placement^=\"left\"] {\n transform-origin: top end;\n }\n\n @include transition(\n opacity var(--menu-transition-duration) var(--menu-transition-timing),\n transform var(--menu-transition-duration) var(--menu-transition-timing),\n display var(--menu-transition-duration) allow-discrete\n );\n\n &.show {\n display: flex;\n opacity: 1;\n transform: none;\n }\n }\n\n @starting-style {\n .menu.show {\n opacity: 0;\n transform: scale(.95);\n }\n }\n\n .menu-scrollable {\n --menu-max-height: 80dvh;\n --menu-overflow-y: auto;\n }\n\n .menu-translucent {\n --menu-item-hover-bg-light: color-mix(in oklch, var(--bg-1) 90%, transparent);\n --menu-item-hover-bg-dark: color-mix(in oklch, var(--bg-1) 80%, transparent);\n\n --menu-item-active-bg-light: color-mix(in oklch, var(--primary-bg) 80%, transparent);\n --menu-item-active-bg-dark: color-mix(in oklch, var(--primary-bg) 70%, transparent);\n\n --menu-item-active-bg: light-dark(var(--menu-item-active-bg-light), var(--menu-item-active-bg-dark));\n --menu-item-hover-bg: light-dark(var(--menu-item-hover-bg-light), var(--menu-item-hover-bg-dark));\n\n background-color: color-mix(in oklch, var(--menu-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n\n .menu-divider {\n height: 0;\n margin: var(--menu-divider-margin-y) var(--menu-divider-margin-x);\n overflow: hidden;\n border-block-start: 1px solid var(--menu-divider-bg);\n opacity: 1;\n }\n\n .menu-item {\n display: flex;\n gap: var(--menu-item-gap);\n align-items: center;\n width: 100%;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n font-weight: var(--menu-item-font-weight, var(--font-weight-normal));\n color: var(--theme-fg, var(--menu-item-color));\n text-align: inherit;\n text-decoration: none;\n white-space: nowrap;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n outline: 0;\n @include border-radius(var(--menu-item-border-radius, 0));\n\n &:hover,\n &:focus {\n color: var(--theme-fg-emphasis, var(--menu-item-hover-color));\n background-color: var(--theme-bg-subtle, var(--menu-item-hover-bg));\n // @include gradient-bg(var(--theme-bg-subtle, var(--menu-item-hover-bg)));\n }\n\n &.active,\n &:active {\n color: var(--theme-contrast, var(--menu-item-active-color));\n background-color: var(--theme-bg, var(--menu-item-active-bg));\n // @include gradient-bg(var(--theme-bg, var(--menu-item-active-bg)));\n\n .menu-item-icon {\n color: inherit !important; // stylelint-disable-line declaration-no-important\n }\n }\n\n &.selected {\n font-weight: $font-weight-semibold;\n }\n\n &.disabled,\n &:disabled {\n color: var(--menu-item-disabled-color);\n pointer-events: none;\n background-color: transparent;\n // stylelint-disable-next-line scss/at-function-named-arguments\n background-image: if(sass($enable-gradients): none; else: null);\n }\n }\n\n .menu-item-icon {\n flex-shrink: 0;\n align-self: flex-start;\n width: var(--menu-icon-size);\n height: auto;\n margin-top: .125rem;\n }\n\n .menu-item-content {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-width: fit-content;\n }\n\n .menu-item-description {\n font-size: var(--menu-description-font-size);\n font-weight: var(--font-weight-normal);\n color: color-mix(in oklch, currentcolor 65%, transparent);\n }\n\n .menu-item-check {\n flex-shrink: 0;\n align-self: flex-start;\n margin-block-start: .125rem;\n margin-inline-start: auto;\n color: var(--menu-check-color);\n visibility: hidden;\n\n .selected > & {\n visibility: visible;\n }\n }\n\n .menu-header {\n display: block;\n padding: var(--menu-header-padding-y) var(--menu-header-padding-x);\n margin-bottom: 0;\n font-size: var(--font-size-sm);\n color: var(--menu-header-color);\n white-space: nowrap;\n }\n\n .menu-text {\n display: block;\n padding: var(--menu-item-padding-y) var(--menu-item-padding-x);\n color: var(--fg-2);\n }\n\n // scss-docs-start submenu\n .submenu {\n position: relative;\n\n > .menu-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n > .menu-item::after {\n display: inline-block;\n flex-shrink: 0;\n width: .375em;\n height: .375em;\n margin-inline-start: auto;\n content: \"\";\n border-color: currentcolor;\n border-style: solid;\n border-width: 0 .125em .125em 0;\n transform: rotate(-45deg);\n\n [dir=\"rtl\"] & {\n transform: rotate(135deg);\n }\n }\n\n > .menu {\n top: 0;\n margin-top: calc(-1 * var(--menu-padding-y));\n }\n\n &:hover > .menu-item,\n &:focus-within > .menu-item {\n color: var(--menu-item-hover-color);\n background-color: var(--menu-item-hover-bg);\n }\n\n &.show > .menu-item {\n color: var(--menu-item-hover-color);\n background-color: var(--menu-item-hover-bg);\n }\n }\n // scss-docs-end submenu\n}\n","@use \"sass:map\";\n@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/tokens\" as *;\n\n$list-group-tokens: () !default;\n\n// scss-docs-start list-group-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$list-group-tokens: defaults(\n (\n --list-group-color: var(--fg-body),\n --list-group-bg: var(--bg-body),\n --list-group-border-color: var(--border-color),\n --list-group-border-width: var(--border-width),\n --list-group-border-radius: var(--radius-5),\n --list-group-item-padding-x: var(--spacer),\n --list-group-item-padding-y: var(--spacer-2),\n --list-group-action-color: var(--fg-2),\n --list-group-action-hover-color: var(--fg-1),\n --list-group-action-hover-bg: var(--bg-1),\n --list-group-action-active-color: var(--fg-body),\n --list-group-action-active-bg: var(--bg-2),\n --list-group-disabled-color: var(--fg-3),\n --list-group-disabled-bg: var(--bg-body),\n --list-group-active-color: var(--primary-contrast),\n --list-group-active-bg: var(--primary-bg),\n --list-group-active-border-color: var(--primary-bg),\n ),\n $list-group-tokens\n);\n// scss-docs-end list-group-tokens\n\n@layer components {\n .list-group {\n @include tokens($list-group-tokens);\n\n display: flex;\n flex-direction: column;\n\n // No need to set list-style: none; since .list-group-item is block level\n padding-inline-start: 0; // reset padding because ul and ol\n margin-bottom: 0;\n @include border-radius(var(--list-group-border-radius));\n }\n\n .list-group-numbered {\n list-style-type: none;\n counter-reset: section;\n\n > .list-group-item::before {\n // Increments only this instance of the section counter\n content: counters(section, \".\") \". \";\n counter-increment: section;\n }\n }\n\n // Individual list items\n //\n // Use on `li`s or `div`s within the `.list-group` parent.\n\n .list-group-item {\n position: relative;\n display: block;\n padding: var(--list-group-item-padding-y) var(--list-group-item-padding-x);\n color: var(--theme-fg, var(--list-group-color));\n // stylelint-disable-next-line scss/at-function-named-arguments\n text-decoration: if(sass($link-decoration == none): null);\n background-color: var(--theme-bg-subtle, var(--list-group-bg));\n border: var(--list-group-border-width) solid var(--theme-border, var(--list-group-border-color));\n\n &:first-child {\n @include border-top-radius(inherit);\n }\n\n &:last-child {\n @include border-bottom-radius(inherit);\n }\n\n &.disabled,\n &:disabled {\n color: var(--list-group-disabled-color);\n pointer-events: none;\n background-color: var(--list-group-disabled-bg);\n }\n\n // Include both here for `<a>`s and `<button>`s\n &.active {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: var(--list-group-active-color);\n background-color: var(--list-group-active-bg);\n border-color: var(--list-group-active-border-color);\n }\n\n // stylelint-disable-next-line scss/selector-no-redundant-nesting-selector\n & + .list-group-item {\n border-block-start-width: 0;\n\n &.active {\n margin-top: calc(-1 * var(--list-group-border-width));\n border-block-start-width: var(--list-group-border-width);\n }\n }\n }\n\n // Interactive list items\n //\n // Use anchor or button elements instead of `li`s or `div`s to create interactive\n // list items. Includes an extra `.active` modifier class for selected items.\n\n .list-group-item-action {\n width: 100%; // For `<button>`s (anchors become 100% by default though)\n color: var(--theme-fg, var(--list-group-action-color));\n text-align: inherit; // For `<button>`s (anchors inherit)\n text-decoration: none;\n\n &:not(.active) {\n // Hover state\n &:hover,\n &:focus {\n z-index: 1; // Place hover/focus items above their siblings for proper border styling\n color: var(--theme-fg-emphasis, var(--list-group-action-hover-color));\n text-decoration: none;\n background-color: var(--theme-bg-muted, var(--list-group-action-hover-bg));\n }\n\n &:active {\n color: var(--theme-fg-emphasis, var(--list-group-action-active-color));\n background-color: var(--theme-bg-muted, var(--list-group-action-active-bg));\n }\n }\n }\n\n // Horizontal\n //\n // Change the layout of list group items from vertical (default) to horizontal.\n\n @each $breakpoint in map.keys($breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n .#{$prefix}list-group-horizontal {\n flex-direction: row;\n\n > .list-group-item {\n &:first-child:not(:last-child) {\n @include border-bottom-start-radius(var(--list-group-border-radius));\n @include border-top-end-radius(0);\n }\n\n &:last-child:not(:first-child) {\n @include border-top-end-radius(var(--list-group-border-radius));\n @include border-bottom-start-radius(0);\n }\n\n &.active {\n margin-top: 0;\n }\n\n + .list-group-item {\n border-block-start-width: var(--list-group-border-width);\n border-inline-start-width: 0;\n\n &.active {\n margin-inline-start: calc(-1 * var(--list-group-border-width));\n border-inline-start-width: var(--list-group-border-width);\n }\n }\n }\n }\n }\n }\n\n // Flush list items\n //\n // Remove borders and border-radius to keep list group items edge-to-edge. Most\n // useful within other components (e.g., cards).\n\n .list-group-flush {\n @include border-radius(0);\n\n > .list-group-item {\n border-width: 0 0 var(--list-group-border-width);\n\n &:last-child {\n border-block-end-width: 0;\n }\n }\n }\n}\n","@use \"functions\" as *;\n@use \"config\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/gradients\" as *;\n@use \"mixins/tokens\" as *;\n@use \"mixins/transition\" as *;\n\n$nav-tokens: () !default;\n\n// scss-docs-start nav-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$nav-tokens: defaults(\n (\n --nav-gap: .125rem,\n --nav-link-gap: .5rem,\n --nav-link-align: center,\n --nav-link-justify: center,\n --nav-link-padding-x: .75rem,\n --nav-link-padding-y: .375rem,\n --nav-link-color: var(--fg-2),\n --nav-link-hover-color: var(--fg-1),\n --nav-link-hover-bg: var(--bg-1),\n --nav-link-active-color: var(--fg-body),\n --nav-link-active-bg: var(--bg-2),\n --nav-link-disabled-color: var(--fg-4),\n --nav-link-border-width: var(--border-width),\n --nav-link-transition-property: \"color, background-color, border-color\",\n --nav-link-transition-timing: .15s ease-in-out,\n --nav-link-transition: var(--nav-link-transition-property) var(--nav-link-transition-timing),\n ),\n $nav-tokens\n);\n// scss-docs-end nav-tokens\n\n$nav-tabs-tokens: () !default;\n\n// scss-docs-start nav-tabs-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$nav-tabs-tokens: defaults(\n (\n --nav-tabs-border-width: var(--border-width),\n --nav-tabs-border-color: var(--border-color),\n --nav-tabs-border-radius: var(--radius-5),\n --nav-tabs-link-hover-border-color: var(--border-subtle),\n --nav-tabs-link-active-color: var(--fg-color),\n --nav-tabs-link-active-bg: var(--bg-body),\n --nav-tabs-link-active-border-color: var(--border-color) var(--border-color) var(--bg-body),\n ),\n $nav-tabs-tokens\n);\n// scss-docs-end nav-tabs-tokens\n\n$nav-pills-tokens: () !default;\n\n// scss-docs-start nav-pills-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$nav-pills-tokens: defaults(\n (\n --nav-pills-bg: var(--bg-1),\n --nav-pills-padding: .25rem,\n --nav-pills-border-radius: var(--radius-9),\n --nav-pills-link-active-color: var(--primary-contrast),\n --nav-pills-link-active-bg: var(--primary-bg),\n --nav-pills-link-border-radius: var(--radius-9),\n ),\n $nav-pills-tokens\n);\n// scss-docs-end nav-pills-tokens\n\n$nav-underline-tokens: () !default;\n\n// scss-docs-start nav-underline-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$nav-underline-tokens: defaults(\n (\n --nav-gap: 1rem,\n --nav-link-active-bg: transparent,\n --nav-underline-border-width: .125rem,\n --nav-underline-link-active-color: var(--fg-color),\n ),\n $nav-underline-tokens\n);\n// scss-docs-end nav-underline-tokens\n\n// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s, `<ul>`s or `<ol>`s.\n\n@layer components {\n .nav {\n @include tokens($nav-tokens);\n\n display: flex;\n flex-wrap: wrap;\n gap: var(--nav-gap);\n padding-inline-start: 0;\n margin-bottom: 0;\n list-style: none;\n }\n\n .nav-item {\n display: flex;\n }\n\n .nav-link {\n display: flex;\n gap: var(--nav-link-gap);\n align-items: var(--nav-link-align);\n justify-content: var(--nav-link-justify);\n padding: var(--nav-link-padding-y) var(--nav-link-padding-x);\n font-weight: var(--nav-link-font-weight);\n color: var(--nav-link-color);\n text-decoration: none;\n white-space: nowrap;\n background: none;\n border: var(--nav-link-border-width) solid transparent;\n @include border-radius(var(--radius-5));\n @include transition(var(--nav-link-transition));\n\n &:hover,\n &:focus {\n color: var(--nav-link-hover-color);\n background-color: var(--nav-link-hover-bg);\n }\n\n &:focus-visible {\n --focus-ring-offset: 1px;\n color: var(--nav-link-hover-color);\n @include focus-ring(true);\n }\n\n &.active,\n &:active {\n color: var(--nav-link-active-color);\n background-color: var(--nav-link-active-bg);\n }\n\n // Disabled state lightens text\n &.disabled,\n &:disabled {\n color: var(--nav-link-disabled-color);\n pointer-events: none;\n cursor: default;\n }\n }\n\n //\n // Tabs\n //\n\n .nav-tabs {\n // scss-docs-start nav-tabs-css-vars\n @include tokens($nav-tabs-tokens);\n // scss-docs-end nav-tabs-css-vars\n\n box-shadow: inset 0 calc(-1 * var(--nav-tabs-border-width)) 0 var(--nav-tabs-border-color);\n\n .nav-link {\n border: var(--nav-tabs-border-width) solid transparent;\n border-bottom-color: var(--nav-tabs-border-color);\n @include border-bottom-radius(0);\n\n &:hover {\n // Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link\n isolation: isolate;\n border-color: var(--nav-tabs-link-hover-border-color);\n border-bottom-color: var(--nav-tabs-border-color);\n }\n }\n\n .nav-link.active,\n .nav-item.show .nav-link {\n color: var(--nav-tabs-link-active-color);\n background-color: var(--nav-tabs-link-active-bg);\n border-color: var(--nav-tabs-link-active-border-color);\n border-bottom-color: var(--nav-tabs-link-active-bg);\n }\n\n .menu {\n margin-top: calc(-1 * var(--nav-tabs-border-width));\n @include border-top-radius(0);\n }\n }\n\n //\n // Pills\n //\n\n .nav-pills {\n @include tokens($nav-pills-tokens);\n\n display: inline-flex;\n padding: var(--nav-pills-padding);\n background-color: var(--nav-pills-bg);\n @include border-radius(var(--nav-pills-border-radius));\n\n .nav-link {\n @include border-radius(var(--nav-pills-link-border-radius));\n }\n\n .nav-link.active,\n .show > .nav-link {\n color: var(--nav-pills-link-active-color);\n @include gradient-bg(var(--nav-pills-link-active-bg));\n }\n }\n\n .nav-pills-vertical {\n flex-direction: column;\n align-items: stretch;\n\n .nav-item,\n .nav-link {\n width: 100%;\n }\n }\n\n //\n // Underline\n //\n\n .nav-underline {\n // scss-docs-start nav-underline-css-vars\n @include tokens($nav-underline-tokens);\n // scss-docs-end nav-underline-css-vars\n\n .nav-link {\n padding-inline: 0;\n border: 0;\n border-block-end: var(--nav-underline-border-width) solid transparent;\n @include border-radius(0);\n\n &:hover,\n &:focus {\n border-block-end-color: currentcolor;\n }\n }\n\n .nav-link.active,\n .show > .nav-link {\n font-weight: $font-weight-bold;\n color: var(--nav-underline-link-active-color);\n border-block-end-color: currentcolor;\n }\n }\n\n //\n // Justified variants\n //\n\n .nav-fill {\n > .nav-link,\n .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n }\n\n .nav-justified {\n > .nav-link,\n .nav-item {\n flex-grow: 1;\n flex-basis: 0;\n text-align: center;\n }\n }\n\n .nav-fill,\n .nav-justified {\n .nav-item .nav-link {\n width: 100%; // Make sure button will grow\n }\n }\n\n // Tabbable tabs\n //\n // Hide tabbable panes to start, show them when `.active`\n\n .tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n }\n}\n","// Nav Overflow (Priority+ Pattern)\n//\n// A responsive navigation pattern that automatically moves items\n// to an overflow menu when space is limited.\n\n@layer components {\n .nav-overflow {\n flex-wrap: nowrap;\n min-width: 0; // Allow flex child to shrink below content width\n }\n\n // Pills use inline-flex by default; override so the nav fills its container\n // and the ResizeObserver can detect width changes.\n .nav-pills.nav-overflow {\n display: flex;\n }\n\n // Inside a navbar the nav is a flex child that sizes to content by default;\n // grow it so it fills remaining space and shrinks with the container.\n .navbar-nav.nav-overflow {\n flex: 1 1 0;\n }\n\n // Container item for overflow\n .nav-overflow-item {\n flex-shrink: 0;\n margin-inline-start: auto;\n }\n\n // Hide items that have been moved to overflow\n .nav-overflow [data-bs-nav-overflow=\"true\"] {\n display: none;\n }\n\n // Preserve items that should never overflow\n .nav-overflow-keep {\n flex-shrink: 0;\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/mask-icon\" as *;\n@use \"mixins/tokens\" as *;\n@use \"mixins/transition\" as *;\n\n// mdo-do: fix nav-link-height and navbar-brand-height, which we previously calculated with font-size, line-height, and block padding\n\n// stylelint-disable custom-property-no-missing-var-function\n// scss-docs-start navbar-breakpoints\n$navbar-breakpoints: $breakpoints !default;\n// scss-docs-end navbar-breakpoints\n\n$navbar-tokens: () !default;\n$navbar-dark-tokens: () !default;\n$navbar-nav-tokens: () !default;\n\n// scss-docs-start navbar-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$navbar-tokens: defaults(\n (\n --navbar-padding-x: 0,\n --navbar-padding-y: .5rem,\n --navbar-color: var(--fg-2),\n --navbar-hover-color: var(--fg-1),\n --navbar-disabled-color: var(--fg-3),\n --navbar-active-color: var(--fg-body),\n --navbar-brand-padding-y: .75rem,\n --navbar-brand-margin-end: 1rem,\n --navbar-brand-font-size: var(--font-size-md),\n --navbar-brand-font-weight: var(--font-weight-medium),\n --navbar-brand-color: var(--fg-body),\n --navbar-brand-hover-color: var(--fg-body),\n --navbar-nav-link-padding-x: .75rem,\n --navbar-toggler-width: 2rem,\n --navbar-toggler-padding-y: .25rem,\n --navbar-toggler-padding-x: .75rem,\n --navbar-toggler-font-size: var(--font-size-lg),\n --navbar-toggler-border-color: color-mix(in oklch, var(--fg-body) 15%, transparent),\n --navbar-toggler-border-radius: var(--radius-5),\n --navbar-toggler-transition: box-shadow .15s ease-in-out,\n --navbar-toggler-icon-size: 1.25rem,\n --navbar-toggler-icon: #{escape-svg(url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path stroke='black' stroke-linecap='round' stroke-width='1' d='M1 3.5h14M1 8h14M1 12.5h14'/></svg>\"))},\n ),\n $navbar-tokens\n);\n// scss-docs-end navbar-tokens\n\n// scss-docs-start navbar-dark-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$navbar-dark-tokens: defaults(\n (\n --navbar-color: color-mix(in oklch, var(--white) .55, transparent),\n --navbar-hover-color: color-mix(in oklch, var(--white) .75, transparent),\n --navbar-disabled-color: color-mix(in oklch, var(--white) .25, transparent),\n --navbar-active-color: var(--white),\n --navbar-brand-color: var(--white),\n --navbar-brand-hover-color: var(--white),\n --navbar-toggler-border-color: color-mix(in oklch, var(--white) .1, transparent),\n ),\n $navbar-dark-tokens\n);\n// scss-docs-end navbar-dark-tokens\n\n// scss-docs-start navbar-nav-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$navbar-nav-tokens: defaults(\n (\n --nav-gap: .25rem,\n --nav-link-gap: .5rem,\n --nav-link-padding-x: .5rem,\n --nav-link-padding-y: .375rem,\n --nav-link-color: var(--navbar-color),\n --nav-link-border-width: var(--border-width),\n //--nav-link-border-color: var(--border-color),\n --nav-link-hover-color: var(--navbar-hover-color),\n --nav-link-hover-bg: transparent,\n --nav-link-active-color: var(--navbar-active-color),\n --nav-link-active-bg: transparent,\n --nav-link-disabled-color: var(--navbar-disabled-color),\n ),\n $navbar-nav-tokens\n);\n// scss-docs-end navbar-nav-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer components {\n // Base navbar\n .navbar {\n @include tokens($navbar-tokens);\n\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: var(--navbar-padding-y) var(--navbar-padding-x);\n @include set-container();\n color: var(--navbar-color, var(--fg-body));\n background-color: var(--navbar-bg, var(--bg-body));\n // @include gradient-bg(var(--navbar-bg, var(--bg-body)));\n\n // Container properties for nested containers\n %container-flex-properties {\n display: flex;\n flex-wrap: inherit;\n align-items: center;\n justify-content: space-between;\n }\n\n > .container,\n > .container-fluid {\n @extend %container-flex-properties;\n }\n\n @each $breakpoint, $container-max-width in $container-max-widths {\n > .#{breakpoint-prefix($breakpoint, $container-max-widths)}container {\n @extend %container-flex-properties;\n }\n }\n }\n\n // Navbar brand\n //\n // Used for brand, project, or site names.\n .navbar-brand {\n padding-top: var(--navbar-brand-padding-y);\n padding-bottom: var(--navbar-brand-padding-y);\n margin-inline-end: var(--navbar-brand-margin-end);\n font-size: var(--navbar-brand-font-size);\n font-weight: var(--navbar-brand-font-weight);\n color: var(--navbar-brand-color);\n text-decoration: none;\n white-space: nowrap;\n\n &:hover,\n &:focus {\n color: var(--navbar-brand-hover-color);\n }\n }\n\n // Navigation within navbars. Sets all nav-link CSS variables needed for\n // proper styling.\n //\n // Relies on `.nav` base class.\n .navbar-nav {\n @include tokens($navbar-nav-tokens);\n\n display: flex;\n flex-direction: column;\n gap: var(--nav-gap);\n padding-inline-start: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-link {\n &.active,\n &.show {\n color: var(--navbar-active-color);\n border: var(--nav-link-border-width) solid var(--nav-link-border-color, transparent);\n }\n }\n }\n\n // Navbar text\n //\n // For adding text or inline elements to the navbar\n .navbar-text {\n padding-top: var(--navbar-brand-padding-y);\n padding-bottom: var(--navbar-brand-padding-y);\n color: var(--navbar-color);\n\n a,\n a:hover,\n a:focus {\n color: var(--navbar-active-color);\n }\n }\n\n // Button for toggling the navbar when in its collapsed state\n .navbar-toggler {\n --btn-bg: transparent;\n --btn-hover-bg: var(--bg-2);\n }\n\n // Hamburger icon, rendered via CSS mask so it inherits the navbar color\n .navbar-toggler-icon {\n display: inline-block;\n width: var(--navbar-toggler-icon-size);\n height: var(--navbar-toggler-icon-size);\n background-color: currentcolor;\n @include mask-icon(var(--navbar-toggler-icon));\n }\n\n // scss-docs-start navbar-expand-loop\n // Generate series of responsive `.navbar-expand` classes for configuring\n // where your navbar collapses and expands. Uses container queries so the\n // navbar responds to its own width, not the viewport width.\n\n // Mixin for expanded state styles (applied to descendants)\n @mixin navbar-expanded {\n // Style the inner container since we can't style .navbar itself with container queries\n > .container,\n > .container-fluid,\n %navbar-expand-container {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n\n .navbar-nav {\n --nav-link-padding-x: var(--navbar-nav-link-padding-x);\n flex-direction: row;\n }\n\n .navbar-toggler {\n display: none !important; // stylelint-disable-line declaration-no-important\n }\n\n [class*=\"drawer\"] {\n // stylelint-disable declaration-no-important\n // Reset native <dialog> UA styles and below-breakpoint drawer styles.\n // Must use !important to override both UA <dialog> defaults and the\n // responsive drawer styles from media-breakpoint-down().\n position: static !important;\n inset: auto !important;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none !important;\n height: auto !important;\n max-height: none !important;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n @include box-shadow(none);\n @include transition(none);\n // stylelint-enable declaration-no-important\n\n .drawer-header {\n display: none !important; // stylelint-disable-line declaration-no-important\n }\n\n .drawer-body {\n display: flex;\n flex-grow: 1;\n flex-direction: row;\n align-items: center;\n padding: 0;\n overflow-y: visible;\n }\n }\n }\n\n // Always expanded (no responsive behavior)\n .navbar-expand {\n @include navbar-expanded();\n\n // Also set on navbar itself for non-responsive case\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n\n // Responsive navbar expand classes using container queries\n @include loop-breakpoints-down($navbar-breakpoints) using ($breakpoint, $next, $prefix) {\n @if $next {\n .#{$prefix}navbar-expand {\n @include container-breakpoint-up($next) {\n @include navbar-expanded();\n }\n }\n }\n }\n // scss-docs-end navbar-expand-loop\n\n // Prevent drawer flash on breakpoint crossing.\n // When the navbar crosses from expanded (inline) to collapsed (drawer),\n // the drawer transitions from visibility:visible to visibility:hidden.\n // Without this override, the slide transition plays — briefly showing the\n // panel sliding away. Disabling transitions when not [open] ensures only\n // intentional show/hide actions animate.\n // stylelint-disable-next-line no-duplicate-selectors\n .navbar {\n [class*=\"drawer\"]:not([open], .hiding) {\n @include transition(none !important);\n }\n }\n\n .navbar-translucent {\n position: relative;\n background-color: transparent;\n\n &::before {\n position: absolute;\n inset: 0;\n z-index: -1;\n content: \"\";\n background-color: color-mix(in oklch, var(--navbar-bg, var(--bg-body)) 80%, transparent);\n background-image: none;\n backdrop-filter: blur(5px) saturate(180%);\n }\n }\n\n .navbar[data-bs-theme=\"dark\"] {\n @include tokens($navbar-dark-tokens);\n }\n}\n","@use \"functions\" as *;\n@use \"config\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/dialog-shared\" as *;\n@use \"mixins/transition\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$drawer-tokens: () !default;\n\n// scss-docs-start drawer-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$drawer-tokens: defaults(\n (\n --drawer-inset: var(--spacer),\n --drawer-zindex: #{$zindex-drawer},\n --drawer-width: 400px,\n --drawer-height: 30vh,\n --drawer-padding-x: var(--spacer),\n --drawer-padding-y: var(--spacer),\n --drawer-color: var(--fg-body),\n --drawer-bg: var(--bg-body),\n --drawer-border-width: var(--border-width),\n --drawer-border-color: var(--border-color-translucent),\n --drawer-border-radius: var(--radius-7),\n --drawer-box-shadow: var(--box-shadow-lg),\n --drawer-transition-duration: .3s,\n --drawer-transition-timing: cubic-bezier(.22, 1, .36, 1),\n --drawer-title-line-height: 1.5,\n ),\n $drawer-tokens\n);\n// scss-docs-end drawer-tokens\n// stylelint-enable custom-property-no-missing-var-function\n\n$drawer-backdrop-tokens: () !default;\n\n// scss-docs-start drawer-backdrop-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$drawer-backdrop-tokens: defaults(\n (\n --drawer-backdrop-bg: var(--bg-body),\n --drawer-backdrop-opacity: 25%,\n --drawer-backdrop-blur: 8px,\n ),\n $drawer-backdrop-tokens\n);\n// scss-docs-end drawer-backdrop-tokens\n\n%drawer-css-vars {\n @include tokens($drawer-tokens);\n}\n\n@layer components {\n // Apply CSS vars to all drawer responsive variants\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n .#{$prefix}drawer {\n @extend %drawer-css-vars;\n }\n }\n\n // Responsive drawer styles\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n .#{$prefix}drawer {\n @include media-breakpoint-down($next) {\n // Reset native <dialog> UA defaults (fit-content sizing, inset, margins)\n // and override display:none so visibility controls the hidden state.\n position: fixed;\n inset: auto;\n z-index: var(--drawer-zindex);\n display: flex;\n flex-direction: column;\n width: auto;\n max-width: calc(100% - var(--drawer-inset) * 2);\n height: auto;\n max-height: calc(100% - var(--drawer-inset) * 2);\n padding: 0;\n margin: 0;\n color: var(--drawer-color);\n visibility: hidden;\n background-color: var(--drawer-bg);\n background-clip: padding-box;\n border: var(--drawer-border-width) solid var(--drawer-border-color);\n outline: 0;\n\n @include border-radius(var(--drawer-border-radius));\n @include box-shadow(var(--drawer-box-shadow));\n\n // Placement positioning and sizing — always applied regardless of animation mode.\n &:where(.drawer-start) {\n inset-block: var(--drawer-inset);\n inset-inline-start: var(--drawer-inset);\n width: var(--drawer-width);\n }\n\n &:where(.drawer-end) {\n inset-block: var(--drawer-inset);\n inset-inline-end: var(--drawer-inset);\n width: var(--drawer-width);\n }\n\n &:where(.drawer-top) {\n inset: var(--drawer-inset) var(--drawer-inset) auto;\n height: var(--drawer-height);\n }\n\n &:where(.drawer-bottom) {\n inset: auto var(--drawer-inset) var(--drawer-inset);\n height: var(--drawer-height);\n }\n\n &:where(.drawer-fullscreen) {\n inset: var(--drawer-inset);\n width: auto;\n max-width: none;\n height: auto;\n max-height: none;\n }\n\n // Animated variant (default) — transitions + off-screen transforms.\n // Adding .drawer-instant skips all animations.\n &:not(.drawer-instant) {\n @include transition(transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s var(--drawer-transition-duration));\n\n // Off-screen transforms per placement\n &:where(.drawer-start) {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n\n :root:dir(rtl) & {\n transform: translateX(calc(100% + var(--drawer-inset)));\n }\n }\n\n &:where(.drawer-end) {\n transform: translateX(calc(100% + var(--drawer-inset)));\n\n :root:dir(rtl) & {\n transform: translateX(calc(-100% - var(--drawer-inset)));\n }\n }\n\n &:where(.drawer-top) {\n transform: translateY(calc(-100% - var(--drawer-inset)));\n }\n\n &:where(.drawer-bottom) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n\n &:where(.drawer-fullscreen) {\n transform: translateY(calc(100% + var(--drawer-inset)));\n }\n\n // Open state: slide in with transition\n &[open] {\n visibility: visible;\n @include transition(transform var(--drawer-transition-duration) var(--drawer-transition-timing), visibility 0s);\n transform: none;\n }\n }\n\n // Open state base (always applies, regardless of animation mode)\n &[open] {\n visibility: visible;\n transform: none;\n }\n }\n\n // Above breakpoint - show content inline (for responsive drawer)\n // Above breakpoint - show content inline (for responsive drawer).\n // Must fully reset all drawer styles so the element behaves as an\n // inline flex container within its parent (e.g., a navbar).\n @if not ($prefix == \"\") {\n @include media-breakpoint-up($next) {\n // stylelint-disable declaration-no-important\n --drawer-height: auto;\n --drawer-border-width: 0;\n // Reset native <dialog> UA styles\n position: static !important;\n inset: auto;\n z-index: auto;\n display: flex !important;\n flex-grow: 1;\n width: auto !important;\n max-width: none;\n height: auto !important;\n max-height: none;\n padding: 0;\n margin: 0;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n @include transition(none !important);\n // stylelint-enable declaration-no-important\n\n .drawer-header {\n display: none;\n }\n\n .drawer-body {\n display: flex;\n flex-grow: 0;\n flex-direction: row;\n width: 100%;\n padding: 0;\n overflow-y: visible;\n // stylelint-disable-next-line declaration-no-important\n background-color: transparent !important;\n }\n @include border-radius(0);\n @include box-shadow(none);\n }\n }\n }\n }\n\n // Native ::backdrop for modal drawer.\n // ::backdrop lives in the top layer outside the DOM tree, so it does NOT\n // inherit custom properties from the element. Tokens must be applied directly.\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n .#{$prefix}drawer::backdrop {\n @include tokens($drawer-backdrop-tokens);\n @include tokens($drawer-tokens);\n background-color: color-mix(in oklch, var(--drawer-backdrop-bg) var(--drawer-backdrop-opacity), transparent);\n backdrop-filter: blur(var(--drawer-backdrop-blur));\n @include backdrop-transitions(var(--drawer-transition-duration), var(--drawer-transition-timing));\n }\n }\n\n // Backdrop entry animation — ::backdrop can safely use @starting-style\n // since it only exists when the dialog is in the top layer (no responsive issue).\n @starting-style {\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n .#{$prefix}drawer::backdrop {\n background-color: transparent;\n backdrop-filter: blur(0);\n }\n }\n }\n\n // Static backdrop transition (\"bounce\")\n .drawer-static {\n transform: scale(1.02);\n }\n\n .drawer-translucent {\n background-color: color-mix(in oklch, var(--drawer-bg) 80%, transparent);\n backdrop-filter: blur(5px) saturate(180%);\n }\n\n // Sheet variant: flush-to-edge panel with no inset, border-radius, or shadow.\n // Overrides tokens so placement transforms (which use calc() with --drawer-inset)\n // automatically position the drawer at the viewport edge.\n .drawer-sheet {\n --drawer-inset: 0;\n --drawer-border-radius: 0;\n --drawer-border-width: 0;\n --drawer-box-shadow: none;\n }\n\n // Header with close button\n .drawer-header {\n @include dialog-header(var(--drawer-padding-y) var(--drawer-padding-x));\n\n .btn-close {\n margin-block: calc(-.5 * var(--drawer-padding-y));\n margin-inline-start: auto;\n }\n }\n\n // Title\n .drawer-title {\n @include dialog-title(var(--drawer-title-line-height));\n }\n\n // Scrollable body\n .drawer-body {\n display: flex;\n flex-direction: column;\n gap: var(--drawer-padding-y);\n @include dialog-body(var(--drawer-padding-y) var(--drawer-padding-x));\n overflow-y: auto;\n }\n\n // Optional footer\n .drawer-footer {\n @include dialog-footer(var(--drawer-padding-y) var(--drawer-padding-x), .5rem, var(--drawer-border-width), var(--drawer-border-color));\n }\n\n .drawer-fit-content {\n inset-block-end: auto;\n }\n}\n","@use \"functions\" as *;\n@use \"mixins/lists\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/focus-ring\" as *;\n@use \"mixins/gradients\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/tokens\" as *;\n\n// mdo-do: Update pagination to support variant themes\n\n// stylelint-disable custom-property-no-missing-var-function\n$pagination-tokens: () !default;\n\n// scss-docs-start pagination-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$pagination-tokens: defaults(\n (\n --pagination-min-height: var(--btn-input-min-height),\n --pagination-padding-x: var(--btn-input-padding-x),\n --pagination-padding-y: var(--btn-input-padding-y),\n --pagination-font-size: var(--btn-input-font-size),\n --pagination-color: var(--link-color),\n --pagination-bg: var(--bg-body),\n --pagination-border-width: var(--border-width),\n --pagination-border-color: var(--border-color),\n --pagination-border-radius: var(--btn-input-border-radius),\n --pagination-hover-color: var(--link-hover-color),\n --pagination-hover-bg: var(--bg-1),\n --pagination-hover-border-color: var(--border-color),\n --pagination-focus-color: var(--link-hover-color),\n --pagination-focus-bg: var(--bg-2),\n --pagination-active-color: var(--primary-contrast),\n --pagination-active-bg: var(--primary-bg),\n --pagination-active-border-color: var(--primary-bg),\n --pagination-disabled-color: var(--fg-3),\n --pagination-disabled-bg: var(--bg-2),\n --pagination-disabled-border-color: var(--border-color),\n ),\n $pagination-tokens\n);\n// scss-docs-end pagination-tokens\n\n// scss-docs-start pagination-sizes\n$pagination-sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$pagination-sizes: defaults(\n (\"sm\", \"lg\"),\n $pagination-sizes\n);\n// scss-docs-end pagination-sizes\n// stylelint-enable custom-property-no-missing-var-function\n\n@layer components {\n .pagination {\n @include tokens($pagination-tokens);\n\n display: flex;\n @include list-unstyled();\n }\n\n .page-link {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: var(--pagination-min-height);\n padding: var(--pagination-padding-y) var(--pagination-padding-x);\n font-size: var(--pagination-font-size);\n color: var(--pagination-color);\n text-decoration: none;\n background-color: var(--pagination-bg);\n border: var(--pagination-border-width) solid var(--pagination-border-color);\n @include transition(color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out);\n\n &:hover {\n z-index: 2;\n color: var(--pagination-hover-color);\n background-color: var(--pagination-hover-bg);\n border-color: var(--pagination-hover-border-color);\n }\n\n &:focus-visible {\n z-index: 3;\n color: var(--pagination-focus-color);\n background-color: var(--pagination-focus-bg);\n @include focus-ring(true);\n }\n\n &.active,\n .active > & {\n z-index: 3;\n color: var(--pagination-active-color);\n @include gradient-bg(var(--pagination-active-bg));\n border-color: var(--pagination-active-border-color);\n }\n\n &.disabled,\n .disabled > & {\n color: var(--pagination-disabled-color);\n pointer-events: none;\n background-color: var(--pagination-disabled-bg);\n border-color: var(--pagination-disabled-border-color);\n }\n }\n\n .page-item {\n &:not(:first-child) .page-link {\n margin-inline-start: calc(-1 * var(--pagination-border-width));\n }\n\n &:first-child {\n .page-link {\n @include border-start-radius(var(--pagination-border-radius));\n }\n }\n\n &:last-child {\n .page-link {\n @include border-end-radius(var(--pagination-border-radius));\n }\n }\n }\n\n //\n // Sizing\n //\n\n // scss-docs-start pagination-sizes-loop\n @each $size, $_ in $pagination-sizes {\n .pagination-#{$size} {\n --pagination-min-height: var(--bs-btn-input-#{$size}-min-height);\n --pagination-padding-y: var(--btn-input-#{$size}-padding-y);\n --pagination-padding-x: var(--btn-input-#{$size}-padding-x);\n --pagination-font-size: var(--btn-input-#{$size}-font-size);\n --pagination-border-radius: var(--btn-input-#{$size}-border-radius);\n }\n }\n // scss-docs-end pagination-sizes-loop\n}\n","@use \"colors\" as *;\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n$placeholder-tokens: () !default;\n\n// scss-docs-start placeholder-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$placeholder-tokens: defaults(\n (\n --placeholder-opacity-max: .5,\n --placeholder-opacity-min: .2,\n ),\n $placeholder-tokens\n);\n// scss-docs-end placeholder-tokens\n\n@layer components {\n .placeholder {\n @include tokens($placeholder-tokens);\n\n display: inline-block;\n min-height: 1em;\n vertical-align: middle;\n cursor: wait;\n background-color: currentcolor;\n opacity: var(--placeholder-opacity-max);\n\n &.btn::before {\n display: inline-block;\n content: \"\";\n }\n }\n\n // Sizing\n .placeholder-xs {\n min-height: .6em;\n }\n\n .placeholder-sm {\n min-height: .8em;\n }\n\n .placeholder-lg {\n min-height: 1.2em;\n }\n\n // Animation\n .placeholder-glow {\n .placeholder {\n animation: placeholder-glow 2s ease-in-out infinite;\n }\n }\n\n @keyframes placeholder-glow {\n 50% {\n opacity: var(--placeholder-opacity-min);\n }\n }\n\n .placeholder-wave {\n mask-image: linear-gradient(130deg, $black 55%, rgb(0 0 0 / calc(1 - var(--placeholder-opacity-min))) 75%, $black 95%);\n mask-size: 200% 100%;\n animation: placeholder-wave 2s linear infinite;\n }\n\n @keyframes placeholder-wave {\n 100% {\n mask-position: -200% 0%;\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/reset-text\" as *;\n@use \"mixins/tokens\" as *;\n\n$popover-tokens: () !default;\n\n// scss-docs-start popover-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$popover-tokens: defaults(\n (\n --popover-zindex: #{$zindex-popover},\n --popover-max-width: 280px,\n --popover-font-size: var(--font-size-sm),\n --popover-bg: var(--bg-body),\n --popover-border-width: var(--border-width),\n --popover-border-color: var(--border-color-translucent),\n --popover-border-radius: var(--radius-7),\n --popover-inner-border-radius: calc(var(--radius-7) - var(--border-width)),\n --popover-box-shadow: var(--box-shadow),\n --popover-header-padding-x: var(--spacer),\n --popover-header-padding-y: var(--spacer-3),\n --popover-header-font-size: var(--font-size-sm),\n --popover-header-color: #{$headings-color},\n --popover-header-bg: var(--bg-1),\n --popover-body-padding-x: var(--spacer),\n --popover-body-padding-y: var(--spacer-3),\n --popover-body-color: var(--fg-body),\n --popover-arrow-width: 1rem,\n --popover-arrow-height: .5rem,\n --popover-arrow-border: var(--popover-border-color),\n ),\n $popover-tokens\n);\n// scss-docs-end popover-tokens\n\n@layer components {\n .popover {\n // scss-docs-start popover-css-vars\n @include tokens($popover-tokens);\n // scss-docs-end popover-css-vars\n\n z-index: var(--popover-zindex);\n display: block;\n max-width: var(--popover-max-width);\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n font-size: var(--popover-font-size);\n // Allow breaking very long words so they don't overflow the popover's bounds\n word-wrap: break-word;\n background-color: var(--popover-bg);\n background-clip: padding-box;\n border: var(--popover-border-width) solid var(--popover-border-color);\n @include border-radius(var(--popover-border-radius));\n @include box-shadow(var(--popover-box-shadow));\n\n .popover-arrow {\n display: block;\n width: var(--popover-arrow-width);\n height: var(--popover-arrow-height);\n\n &::before,\n &::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n border-width: 0;\n }\n }\n }\n\n .bs-popover-top {\n > .popover-arrow {\n bottom: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n\n &::before,\n &::after {\n border-width: var(--popover-arrow-height) calc(var(--popover-arrow-width) * .5) 0;\n }\n\n &::before {\n bottom: 0;\n border-block-start-color: var(--popover-arrow-border);\n }\n\n &::after {\n bottom: var(--popover-border-width);\n border-block-start-color: var(--popover-bg);\n }\n }\n }\n\n .bs-popover-end {\n > .popover-arrow {\n left: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n width: var(--popover-arrow-height);\n height: var(--popover-arrow-width);\n\n &::before,\n &::after {\n border-width: calc(var(--popover-arrow-width) * .5) var(--popover-arrow-height) calc(var(--popover-arrow-width) * .5) 0;\n }\n\n &::before {\n left: 0;\n border-inline-end-color: var(--popover-arrow-border);\n }\n\n &::after {\n left: var(--popover-border-width);\n border-inline-end-color: var(--popover-bg);\n }\n }\n }\n\n .bs-popover-bottom {\n > .popover-arrow {\n top: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n\n &::before,\n &::after {\n border-width: 0 calc(var(--popover-arrow-width) * .5) var(--popover-arrow-height);\n }\n\n &::before {\n top: 0;\n border-block-end-color: var(--popover-arrow-border);\n }\n\n &::after {\n top: var(--popover-border-width);\n border-block-end-color: var(--popover-bg);\n }\n }\n\n // This will remove the popover-header's border just below the arrow\n .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: var(--popover-arrow-width);\n margin-inline-start: calc(-.5 * var(--popover-arrow-width));\n content: \"\";\n border-block-end: var(--popover-border-width) solid var(--popover-header-bg);\n }\n }\n\n .bs-popover-start {\n > .popover-arrow {\n right: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));\n width: var(--popover-arrow-height);\n height: var(--popover-arrow-width);\n\n &::before,\n &::after {\n border-width: calc(var(--popover-arrow-width) * .5) 0 calc(var(--popover-arrow-width) * .5) var(--popover-arrow-height);\n }\n\n &::before {\n right: 0;\n border-inline-start-color: var(--popover-arrow-border);\n }\n\n &::after {\n right: var(--popover-border-width);\n border-inline-start-color: var(--popover-bg);\n }\n }\n }\n\n .bs-popover-auto {\n &[data-bs-placement^=\"top\"] {\n @extend .bs-popover-top;\n }\n &[data-bs-placement^=\"right\"] {\n @extend .bs-popover-end;\n }\n &[data-bs-placement^=\"bottom\"] {\n @extend .bs-popover-bottom;\n }\n &[data-bs-placement^=\"left\"] {\n @extend .bs-popover-start;\n }\n }\n\n // Offset the popover to account for the popover arrow\n .popover-header {\n padding: var(--popover-header-padding-y) var(--popover-header-padding-x);\n margin-bottom: 0; // Reset the default from Reboot\n font-size: var(--popover-header-font-size);\n color: var(--popover-header-color);\n background-color: var(--popover-header-bg);\n border-block-end: var(--popover-border-width) solid var(--popover-border-color);\n @include border-top-radius(var(--popover-inner-border-radius));\n\n &:empty {\n display: none;\n }\n }\n\n .popover-body {\n padding: var(--popover-body-padding-y) var(--popover-body-padding-x);\n color: var(--popover-body-color);\n }\n}\n","@mixin reset-text {\n font-family: var(--body-font-family);\n // We deliberately do NOT reset font-size or overflow-wrap / word-wrap.\n font-style: normal;\n font-weight: var(--body-font-weight);\n line-height: var(--body-line-height);\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/transition\" as *;\n@use \"mixins/gradients\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/box-shadow\" as *;\n@use \"mixins/tokens\" as *;\n\n$progress-tokens: () !default;\n\n// scss-docs-start progress-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$progress-tokens: defaults(\n (\n --progress-height: 1rem,\n --progress-font-size: var(--font-size-sm),\n --progress-bg: var(--bg-2),\n --progress-border-radius: var(--radius-5),\n --progress-box-shadow: var(--box-shadow-inset),\n --progress-bar-color: var(--white),\n --progress-bar-bg: var(--primary-bg),\n --progress-bar-transition: width .6s ease,\n --progress-bar-animation: progress-bar-stripes 1s linear infinite,\n ),\n $progress-tokens\n);\n// scss-docs-end progress-tokens\n\n// Disable animation if transitions are disabled\n\n@layer components {\n // scss-docs-start progress-keyframes\n @if $enable-transitions {\n @keyframes progress-bar-stripes {\n 0% { background-position-x: var(--progress-height); }\n }\n }\n // scss-docs-end progress-keyframes\n\n .progress,\n .progress-stacked {\n @include tokens($progress-tokens);\n\n display: flex;\n height: var(--progress-height);\n overflow: hidden;\n font-size: var(--progress-font-size);\n background-color: var(--progress-bg);\n @include border-radius(var(--progress-border-radius));\n @include box-shadow(var(--progress-box-shadow));\n }\n\n .progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: var(--theme-contrast, var(--progress-bar-color));\n text-align: center;\n white-space: nowrap;\n background-color: var(--theme-bg, var(--progress-bar-bg));\n @include transition(var(--progress-bar-transition));\n }\n\n .progress-bar-striped {\n @include gradient-striped();\n background-size: var(--progress-height) var(--progress-height);\n }\n\n .progress-stacked > .progress {\n overflow: visible;\n }\n\n .progress-stacked > .progress > .progress-bar {\n width: 100%;\n }\n\n @if $enable-transitions {\n .progress-bar-animated {\n animation: var(--progress-bar-animation);\n\n @if $enable-reduced-motion {\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n }\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/tokens\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n$spinner-border-tokens: () !default;\n\n// scss-docs-start spinner-border-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$spinner-border-tokens: defaults(\n (\n --spinner-width: 2rem,\n --spinner-height: 2rem,\n --spinner-vertical-align: -.125em,\n --spinner-border-width: .25em,\n --spinner-animation-speed: .75s,\n --spinner-animation-name: spinner-border,\n ),\n $spinner-border-tokens\n);\n// scss-docs-end spinner-border-tokens\n\n$spinner-grow-tokens: () !default;\n\n// scss-docs-start spinner-grow-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$spinner-grow-tokens: defaults(\n (\n --spinner-width: 2rem,\n --spinner-height: 2rem,\n --spinner-vertical-align: -.125em,\n --spinner-animation-speed: .75s,\n --spinner-animation-name: spinner-grow,\n ),\n $spinner-grow-tokens\n);\n// scss-docs-end spinner-grow-tokens\n\n// stylelint-enable custom-property-no-missing-var-function\n\n//\n// Rotating border\n//\n\n@layer components {\n // mdo-do: Refactor this to assume flex parent and remove `vertical-align`\n .spinner-grow,\n .spinner-border {\n display: inline-block;\n flex-shrink: 0;\n width: var(--spinner-width);\n height: var(--spinner-height);\n vertical-align: var(--spinner-vertical-align);\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n animation: var(--spinner-animation-speed) linear infinite var(--spinner-animation-name);\n }\n\n // scss-docs-start spinner-border-keyframes\n @keyframes spinner-border {\n to { transform: rotate(360deg); }\n }\n // scss-docs-end spinner-border-keyframes\n\n .spinner-border {\n @include tokens($spinner-border-tokens);\n\n border: var(--spinner-border-width) solid currentcolor;\n border-inline-end-color: transparent;\n }\n\n .spinner-border-sm {\n // scss-docs-start spinner-border-sm-css-vars\n --spinner-width: 1rem;\n --spinner-height: 1rem;\n --spinner-border-width: .2em;\n // scss-docs-end spinner-border-sm-css-vars\n }\n\n //\n // Growing circle\n //\n\n // scss-docs-start spinner-grow-keyframes\n @keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n }\n // scss-docs-end spinner-grow-keyframes\n\n .spinner-grow {\n @include tokens($spinner-grow-tokens);\n\n background-color: currentcolor;\n opacity: 0;\n }\n\n .spinner-grow-sm {\n // scss-docs-start spinner-grow-sm-css-vars\n --spinner-width: 1rem;\n --spinner-height: 1rem;\n // scss-docs-end spinner-grow-sm-css-vars\n }\n\n @if $enable-reduced-motion {\n @media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n --spinner-animation-speed: 1.5s;\n }\n }\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"layout/breakpoints\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/tokens\" as *;\n\n$stepper-tokens: () !default;\n\n// scss-docs-start stepper-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$stepper-tokens: defaults(\n (\n --stepper-size: 2rem,\n --stepper-gap: 1rem,\n --stepper-font-size: var(--font-size-sm),\n --stepper-text-gap: .5rem,\n --stepper-track-size: .125rem,\n --stepper-bg: var(--bg-2),\n --stepper-active-color: var(--primary-contrast),\n --stepper-active-bg: var(--primary-bg),\n ),\n $stepper-tokens\n);\n// scss-docs-end stepper-tokens\n\n// scss-docs-start stepper-horizontal-mixin\n@mixin stepper-horizontal() {\n display: inline-grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n\n .stepper-item {\n grid-template-rows: var(--stepper-size) auto;\n grid-template-columns: auto;\n align-items: start;\n justify-items: center;\n text-align: center;\n\n &::after {\n inset-block-start: calc((var(--stepper-size) * .5) - (var(--stepper-track-size) * .5));\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: 100%;\n width: calc(100% + var(--stepper-gap));\n height: var(--stepper-track-size);\n }\n\n &:last-child::after {\n right: 100%;\n }\n }\n}\n// scss-docs-end stepper-horizontal-mixin\n\n@layer components {\n .stepper {\n @include tokens($stepper-tokens);\n\n display: grid;\n grid-auto-rows: 1fr;\n grid-auto-flow: row;\n gap: var(--stepper-gap);\n padding-inline-start: 0;\n list-style: none;\n counter-reset: stepper;\n }\n\n .stepper-item {\n position: relative;\n display: grid;\n grid-template-rows: auto;\n grid-template-columns: var(--stepper-size) auto;\n gap: var(--stepper-text-gap);\n align-items: var(--stepper-align-items, center);\n text-decoration: none;\n\n // The counter\n &::before {\n position: relative;\n z-index: 1;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--stepper-size);\n height: var(--stepper-size);\n padding: .5rem;\n font-size: var(--stepper-font-size);\n font-weight: 600;\n line-height: 1;\n text-align: center;\n content: counter(stepper);\n counter-increment: stepper;\n background-color: var(--stepper-bg);\n @include border-radius(50%);\n }\n\n // Connecting lines\n &::after {\n position: absolute;\n inset-block-start: 50%;\n inset-block-end: 100%;\n inset-inline-start: calc((var(--stepper-size) * .5) - (var(--stepper-track-size) * .5));\n width: var(--stepper-track-size);\n height: calc(100% + var(--stepper-gap));\n content: \"\";\n background-color: var(--stepper-bg);\n }\n\n // Avoid sibling selector for easier CSS overrides\n &:last-child::after {\n display: none;\n }\n\n &.active {\n &::before,\n &::after {\n color: var(--theme-contrast, var(--stepper-active-color));\n background-color: var(--theme-bg, var(--stepper-active-bg));\n }\n }\n }\n\n // Targets the last .active element from a sequence of active elements\n .stepper-item.active:not(:has(+ .stepper-item.active))::after {\n background-color: var(--stepper-bg);\n }\n\n .stepper-horizontal {\n @include stepper-horizontal();\n }\n\n @include loop-breakpoints-down() using ($breakpoint, $next, $prefix) {\n @if $next {\n .#{$prefix}stepper-horizontal {\n @include container-breakpoint-up($next) {\n @include stepper-horizontal();\n }\n }\n }\n }\n\n // scss-docs-start stepper-overflow\n .stepper-overflow {\n container-type: inline-size;\n overflow-x: auto;\n overscroll-behavior-x: contain;\n -webkit-overflow-scrolling: touch;\n\n > .stepper {\n width: max-content;\n min-width: 100%;\n }\n }\n // scss-docs-end stepper-overflow\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/tokens\" as *;\n\n$toast-tokens: () !default;\n\n// scss-docs-start toast-tokens\n// stylelint-disable custom-property-no-missing-var-function\n// stylelint-disable-next-line scss/dollar-variable-default\n$toast-tokens: defaults(\n (\n --toast-zindex: #{$zindex-toast},\n --toast-padding-x: 1rem,\n --toast-padding-y: .75rem,\n --toast-spacing: #{$container-padding-x},\n --toast-max-width: 350px,\n --toast-font-size: var(--font-size-sm),\n --toast-color: null,\n --toast-bg: var(--bg-body),\n --toast-border-width: var(--border-width),\n --toast-border-color: var(--border-color-translucent),\n --toast-border-radius: null,\n --toast-box-shadow: var(--box-shadow),\n --toast-header-color: var(--fg-3),\n --toast-header-bg: var(--bg-1),\n --toast-header-border-color: var(--border-color-translucent),\n ),\n $toast-tokens\n);\n// stylelint-enable custom-property-no-missing-var-function\n// scss-docs-end toast-tokens\n\n@layer components {\n .toast {\n @include tokens($toast-tokens);\n\n display: flex;\n flex-direction: column;\n width: var(--toast-max-width);\n max-width: 100%;\n overflow: hidden;\n font-size: var(--toast-font-size);\n color: var(--toast-color, var(--fg-body));\n pointer-events: auto;\n background-color: var(--toast-bg);\n background-clip: padding-box;\n border: var(--toast-border-width) solid var(--theme-border, var(--toast-border-color));\n box-shadow: var(--toast-box-shadow);\n @include border-radius(var(--toast-border-radius, var(--radius-7)));\n\n &.showing {\n opacity: 0;\n }\n\n &:not(.show) {\n display: none;\n }\n }\n\n .toast-container {\n --toast-zindex: #{$zindex-toast};\n\n position: absolute;\n z-index: var(--toast-zindex);\n width: max-content;\n max-width: 100%;\n pointer-events: none;\n\n > :not(:last-child) {\n margin-bottom: var(--toast-spacing);\n }\n }\n\n .toast-header {\n display: flex;\n align-items: center;\n padding: var(--toast-padding-y) var(--toast-padding-x);\n color: var(--theme-fg-emphasis, var(--toast-header-color));\n background-color: var(--theme-bg-subtle, var(--toast-header-bg));\n // background-clip: padding-box;\n border-block-end: var(--toast-border-width, var(--border-width)) solid var(--theme-border, var(--toast-header-border-color, var(--border-color-translucent)));\n\n .btn-close {\n margin-inline-start: calc(.5 * var(--toast-padding-x));\n margin-inline-end: calc(-.25 * var(--toast-padding-x));\n color: inherit;\n }\n }\n\n .toast-translucent {\n backdrop-filter: blur(5px) saturate(180%);\n }\n\n .toast-body {\n padding: var(--toast-padding-x);\n word-wrap: break-word;\n }\n}\n","@use \"config\" as *;\n@use \"functions\" as *;\n@use \"mixins/border-radius\" as *;\n@use \"mixins/reset-text\" as *;\n@use \"mixins/tokens\" as *;\n\n$tooltip-tokens: () !default;\n\n// scss-docs-start tooltip-tokens\n// stylelint-disable-next-line scss/dollar-variable-default\n$tooltip-tokens: defaults(\n (\n --tooltip-zindex: #{$zindex-tooltip},\n --tooltip-max-width: 200px,\n --tooltip-padding-x: var(--spacer-3),\n --tooltip-padding-y: calc(var(--spacer) * .375),\n --tooltip-font-size: var(--font-size-sm),\n --tooltip-color: var(--bg-body),\n --tooltip-bg: var(--fg-body),\n --tooltip-border-radius: var(--radius-5),\n --tooltip-opacity: .95,\n --tooltip-arrow-width: .8rem,\n --tooltip-arrow-height: .4rem,\n ),\n $tooltip-tokens\n);\n// scss-docs-end tooltip-tokens\n\n@layer components {\n .tooltip {\n @include tokens($tooltip-tokens);\n\n z-index: var(--tooltip-zindex);\n display: block;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n font-size: var(--tooltip-font-size);\n // Allow breaking very long words so they don't overflow the tooltip's bounds\n word-wrap: break-word;\n opacity: 0;\n\n &.show { opacity: var(--tooltip-opacity); }\n\n .tooltip-arrow {\n display: block;\n width: var(--tooltip-arrow-width);\n height: var(--tooltip-arrow-height);\n\n &::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n }\n\n .bs-tooltip-top .tooltip-arrow {\n bottom: calc(-1 * var(--tooltip-arrow-height));\n\n &::before {\n top: -1px;\n border-width: var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * .5) 0;\n border-block-start-color: var(--tooltip-bg);\n }\n }\n\n .bs-tooltip-end .tooltip-arrow {\n left: calc(-1 * var(--tooltip-arrow-height));\n width: var(--tooltip-arrow-height);\n height: var(--tooltip-arrow-width);\n\n &::before {\n right: -1px;\n border-width: calc(var(--tooltip-arrow-width) * .5) var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * .5) 0;\n border-inline-end-color: var(--tooltip-bg);\n }\n }\n\n .bs-tooltip-bottom .tooltip-arrow {\n top: calc(-1 * var(--tooltip-arrow-height));\n\n &::before {\n bottom: -1px;\n border-width: 0 calc(var(--tooltip-arrow-width) * .5) var(--tooltip-arrow-height);\n border-block-end-color: var(--tooltip-bg);\n }\n }\n\n .bs-tooltip-start .tooltip-arrow {\n right: calc(-1 * var(--tooltip-arrow-height));\n width: var(--tooltip-arrow-height);\n height: var(--tooltip-arrow-width);\n\n &::before {\n left: -1px;\n border-width: calc(var(--tooltip-arrow-width) * .5) 0 calc(var(--tooltip-arrow-width) * .5) var(--tooltip-arrow-height);\n border-inline-start-color: var(--tooltip-bg);\n }\n }\n\n .bs-tooltip-auto {\n &[data-bs-placement^=\"top\"] {\n @extend .bs-tooltip-top;\n }\n &[data-bs-placement^=\"right\"] {\n @extend .bs-tooltip-end;\n }\n &[data-bs-placement^=\"bottom\"] {\n @extend .bs-tooltip-bottom;\n }\n &[data-bs-placement^=\"left\"] {\n @extend .bs-tooltip-start;\n }\n }\n\n // Wrapper for the tooltip content\n .tooltip-inner {\n max-width: var(--tooltip-max-width);\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n color: var(--tooltip-color);\n text-align: center;\n background-color: var(--tooltip-bg);\n @include border-radius(var(--tooltip-border-radius));\n }\n}\n","@use \"config\" as *;\n@use \"mixins/transition\" as *;\n\n.fade {\n @include transition($transition-fade);\n\n &:not(.show) {\n opacity: 0;\n }\n}\n\n// scss-docs-start collapse-classes\n.collapse {\n &:not(.show) {\n display: none;\n }\n}\n\n.collapsing {\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n\n &.collapse-horizontal {\n width: 0;\n height: auto;\n @include transition($transition-collapse-width);\n }\n}\n// scss-docs-end collapse-classes\n","@layer helpers {\n .focus-ring:focus-visible {\n // outline: var(--focus-ring);\n outline: var(--focus-ring-width) solid var(--theme-focus-ring, var(--focus-ring-color));\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/transition\" as *;\n\n@layer helpers {\n .icon-link {\n display: inline-flex;\n gap: $icon-link-gap;\n align-items: center;\n text-decoration-color: rgba(var(--link-color-rgb), var(--link-opacity, .5));\n text-underline-offset: $icon-link-underline-offset;\n backface-visibility: hidden;\n\n > .bi {\n flex-shrink: 0;\n width: $icon-link-icon-size;\n height: $icon-link-icon-size;\n fill: currentcolor;\n @include transition($icon-link-icon-transition);\n }\n }\n\n .icon-link-hover {\n &:hover,\n &:focus-visible {\n > .bi {\n transform: var(--icon-link-transform, $icon-link-icon-transform);\n }\n }\n }\n}\n","@use \"sass:map\";\n@use \"../config\" as *;\n@use \"../layout/breakpoints\" as *;\n\n@layer helpers {\n .fixed-top {\n position: fixed;\n inset: 0 0 auto;\n z-index: $zindex-fixed;\n }\n\n .fixed-bottom {\n position: fixed;\n inset: auto 0 0;\n z-index: $zindex-fixed;\n }\n\n // Responsive sticky top and bottom\n @each $breakpoint in map.keys($breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $prefix: breakpoint-prefix($breakpoint, $breakpoints);\n\n .#{$prefix}sticky-top {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n\n .#{$prefix}sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: $zindex-sticky;\n }\n }\n }\n}\n","@use \"../layout/breakpoints\" as *;\n\n@layer helpers {\n // scss-docs-start stacks\n .stack-container {\n @include set-container();\n }\n\n [class*=\"hstack\"],\n [class*=\"vstack\"] {\n display: flex;\n flex: var(--stack-flex, 1 1 auto);\n flex-direction: var(--stack-direction, row);\n align-items: var(--stack-align-items, center);\n align-self: var(--stack-align-self, stretch);\n }\n\n @include loop-breakpoints-up() using ($breakpoint, $prefix) {\n .#{$prefix}vstack {\n @include container-breakpoint-up($breakpoint) {\n --stack-direction: column;\n --stack-align-items: stretch;\n }\n }\n .#{$prefix}hstack {\n @include container-breakpoint-up($breakpoint) {\n --stack-direction: row;\n --stack-align-items: flex-start;\n }\n }\n }\n // scss-docs-end stacks\n}\n","@use \"../theme\" as *;\n\n// Generate theme modifier classes (e.g., .theme-primary, .theme-accent, etc.)\n@layer helpers {\n @include generate-theme-classes();\n}\n","@use \"sass:map\";\n\n@function theme-color-values($key) {\n $result: ();\n\n @each $color-name, $color-map in $theme-colors {\n @if map.has-key($color-map, $key) {\n $result: map.merge($result, ($color-name: map.get($color-map, $key)));\n }\n }\n\n @return $result;\n}\n\n// Themes map sub-keys\n//\n// Return var() references to root tokens instead of raw values.\n// Ex: theme-color-refs(\"bg\") => (primary: var(--primary-bg), accent: var(--accent-bg), ...)\n@function theme-color-refs($key) {\n $result: ();\n\n @each $color-name, $color-map in $theme-colors {\n @if map.has-key($color-map, $key) {\n $result: map.merge($result, ($color-name: var(--#{$color-name}-#{$key})));\n }\n }\n\n @return $result;\n}\n\n// Theme token to root tokens\n//\n// Returns the global :root token reference for a given a given token map, prefix, and key.\n// Ex: theme-token-refs($theme-bgs, \"bg\") => (body: var(--bg-body), 1: var(--bg-1), ...)\n// Skips `inherit` since it's a CSS-wide keyword that can't be stored in a custom property.\n@function theme-token-refs($map, $prefix) {\n $result: ();\n\n @each $key, $value in $map {\n @if $value != inherit {\n $result: map.merge($result, ($key: var(--#{$prefix}-#{$key})));\n }\n }\n\n @return $result;\n}\n\n// Generate opacity values using color-mix()\n@function theme-opacity-values($color-var, $opacities: $util-opacity) {\n $result: ();\n\n @each $key, $value in $opacities {\n @if $key == 100 {\n // For 100%, use direct variable reference (more efficient)\n $result: map.merge($result, ($key: var($color-var)));\n } @else {\n // For other values, use color-mix()\n $percentage: $key * 1%;\n $result: map.merge($result, ($key: color-mix(in oklch, var($color-var) $percentage, transparent)));\n }\n }\n\n @return $result;\n}\n\n// Generate theme classes dynamically based on the keys in each theme color map\n@mixin generate-theme-classes() {\n @each $color-name, $color-map in $theme-colors {\n .theme-#{$color-name} {\n @each $key, $value in $color-map {\n --theme-#{$key}: var(--#{$color-name}-#{$key});\n }\n }\n }\n}\n\n// scss-docs-start theme-colors\n$theme-colors: (\n \"primary\": (\n \"base\": var(--blue-500),\n \"fg\": light-dark(var(--blue-600), var(--blue-400)),\n \"fg-emphasis\": light-dark(var(--blue-800), var(--blue-200)),\n \"bg\": var(--blue-500),\n \"bg-subtle\": light-dark(var(--blue-100), var(--blue-900)),\n \"bg-muted\": light-dark(var(--blue-200), var(--blue-800)),\n \"border\": light-dark(var(--blue-300), var(--blue-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--blue-500) 50%, var(--bg-body)), color-mix(in oklch, var(--blue-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"accent\": (\n \"base\": var(--indigo-500),\n \"fg\": light-dark(var(--indigo-600), color-mix(in oklch, var(--indigo-400), var(--indigo-300))),\n \"fg-emphasis\": light-dark(var(--indigo-800), var(--indigo-300)),\n \"bg\": var(--indigo-500),\n \"bg-subtle\": light-dark(var(--indigo-100), var(--indigo-900)),\n \"bg-muted\": light-dark(var(--indigo-200), var(--indigo-800)),\n \"border\": light-dark(var(--indigo-300), var(--indigo-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--indigo-500) 50%, var(--bg-body)), color-mix(in oklch, var(--indigo-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"success\": (\n \"base\": var(--green-500),\n \"fg\": light-dark(var(--green-600), var(--green-400)),\n \"fg-emphasis\": light-dark(var(--green-800), var(--green-300)),\n \"bg\": var(--green-500),\n \"bg-subtle\": light-dark(var(--green-100), var(--green-900)),\n \"bg-muted\": light-dark(var(--green-200), var(--green-800)),\n \"border\": light-dark(var(--green-300), var(--green-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--green-500) 50%, var(--bg-body)), color-mix(in oklch, var(--green-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"danger\": (\n \"base\": var(--red-500),\n \"fg\": light-dark(var(--red-600), var(--red-400)),\n \"fg-emphasis\": light-dark(var(--red-800), var(--red-300)),\n \"bg\": var(--red-500),\n \"bg-subtle\": light-dark(var(--red-100), var(--red-900)),\n \"bg-muted\": light-dark(var(--red-200), var(--red-800)),\n \"border\": light-dark(var(--red-300), var(--red-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--red-500) 50%, var(--bg-body)), color-mix(in oklch, var(--red-500) 75%, var(--bg-body))),\n \"contrast\": var(--white)\n ),\n \"warning\": (\n \"base\": var(--yellow-500),\n \"fg\": light-dark(var(--yellow-700), var(--yellow-400)),\n \"fg-emphasis\": light-dark(var(--yellow-800), var(--yellow-300)),\n \"bg\": var(--yellow-500),\n \"bg-subtle\": light-dark(var(--yellow-100), var(--yellow-900)),\n \"bg-muted\": light-dark(var(--yellow-200), var(--yellow-800)),\n \"border\": light-dark(var(--yellow-300), var(--yellow-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--yellow-500) 50%, var(--bg-body)), color-mix(in oklch, var(--yellow-400) 85%, var(--bg-body))),\n \"contrast\": var(--gray-900)\n ),\n \"info\": (\n \"base\": var(--cyan-500),\n \"fg\": light-dark(var(--cyan-600), var(--cyan-400)),\n \"fg-emphasis\": light-dark(var(--cyan-800), var(--cyan-300)),\n \"bg\": var(--cyan-500),\n \"bg-subtle\": light-dark(var(--cyan-100), var(--cyan-900)),\n \"bg-muted\": light-dark(var(--cyan-200), var(--cyan-800)),\n \"border\": light-dark(var(--cyan-300), var(--cyan-600)),\n \"focus-ring\": light-dark(color-mix(in oklch, var(--cyan-500) 50%, var(--bg-body)), color-mix(in oklch, var(--cyan-500) 75%, var(--bg-body))),\n \"contrast\": var(--gray-900)\n ),\n \"inverse\": (\n \"base\": var(--gray-900),\n \"fg\": light-dark(var(--gray-900), var(--gray-200)),\n \"fg-emphasis\": light-dark(var(--gray-975), var(--white)),\n \"bg\": light-dark(var(--gray-900), var(--gray-025)),\n \"bg-subtle\": light-dark(var(--gray-100), var(--gray-900)),\n \"bg-muted\": light-dark(var(--gray-200), var(--gray-300)),\n \"border\": light-dark(var(--gray-400), var(--gray-100)),\n \"focus-ring\": color-mix(in oklch, light-dark(var(--gray-900), var(--gray-100)) 50%, var(--bg-body)),\n \"contrast\": light-dark(var(--white), var(--gray-900))\n ),\n \"secondary\": (\n \"base\": var(--gray-200),\n \"fg\": light-dark(var(--gray-600), var(--gray-400)),\n \"fg-emphasis\": light-dark(var(--gray-800), var(--gray-200)),\n \"bg\": light-dark(var(--gray-100), var(--gray-600)),\n \"bg-subtle\": light-dark(var(--gray-050), var(--gray-800)),\n \"bg-muted\": light-dark(var(--gray-100), var(--gray-700)),\n \"border\": light-dark(var(--gray-300), var(--gray-600)),\n \"focus-ring\": color-mix(in oklch, light-dark(var(--gray-500), var(--gray-300)) 50%, var(--bg-body)),\n \"contrast\": light-dark(var(--gray-900), var(--white))\n )\n) !default;\n// scss-docs-end theme-colors\n\n// mdo-do: consider using muted, subtle, ghost or something instead of linear scale?\n$theme-bgs: (\n \"body\": light-dark(var(--white), var(--gray-975)),\n \"1\": light-dark(var(--gray-025), var(--gray-950)),\n \"2\": light-dark(var(--gray-050), var(--gray-900)),\n \"3\": light-dark(var(--gray-100), var(--gray-800)),\n \"4\": light-dark(var(--gray-200), var(--gray-700)),\n \"fg\": var(--fg-body),\n \"white\": var(--white),\n \"black\": var(--black),\n \"transparent\": transparent,\n \"inherit\": inherit,\n) !default;\n\n$theme-fgs: (\n \"body\": light-dark(var(--gray-900), var(--gray-050)),\n \"1\": light-dark(var(--gray-800), var(--gray-200)),\n \"2\": light-dark(var(--gray-700), var(--gray-300)),\n \"3\": light-dark(var(--gray-600), var(--gray-500)),\n \"4\": light-dark(var(--gray-500), var(--gray-600)),\n \"bg\": var(--bg-body),\n \"white\": var(--white),\n \"black\": var(--black),\n \"inherit\": inherit,\n) !default;\n\n$theme-borders: (\n \"bg\": var(--bg-body),\n \"body\": light-dark(var(--gray-300), var(--gray-800)),\n \"muted\": light-dark(var(--gray-200), var(--gray-800)),\n \"subtle\": light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-900)),\n \"emphasized\": light-dark(var(--gray-400), var(--gray-600)),\n \"white\": var(--white),\n \"black\": var(--black),\n) !default;\n\n$util-opacity: (\n 10: .1,\n 20: .2,\n 30: .3,\n 40: .4,\n 50: .5,\n 60: .6,\n 70: .7,\n 80: .8,\n 90: .9,\n 100: 1\n) !default;\n","@use \"../mixins/visually-hidden\" as *;\n\n@layer helpers {\n .visually-hidden,\n .visually-hidden-focusable:not(:focus, :focus-within) {\n @include visually-hidden();\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Hide content visually while keeping it accessible to assistive technologies\n//\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin visually-hidden() {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n\n // Fix for positioned table caption that could become anonymous cells\n &:not(caption) {\n position: absolute !important;\n }\n\n // Fix to prevent overflowing children to become focusable\n * {\n overflow: hidden !important;\n }\n}\n\n// Use to only display content when it's focused, or one of its child elements is focused\n// (i.e. when focus is within the element/container that the class was applied to)\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/WAI/WCAG22/Techniques/general/G1.html\n\n@mixin visually-hidden-focusable() {\n &:not(:focus, :focus-within) {\n @include visually-hidden();\n }\n}\n","@use \"../config\" as *;\n\n@layer helpers {\n .stretched-link {\n &::#{$stretched-link-pseudo-element} {\n position: absolute;\n inset: 0;\n z-index: $stretched-link-z-index;\n content: \"\";\n }\n }\n}\n","@use \"../mixins/text-truncate\" as *;\n\n@layer helpers {\n .text-truncate {\n @include text-truncate();\n }\n}\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","@layer helpers {\n .vr {\n display: inline-block;\n align-self: stretch;\n width: var(--vr-border-width, var(--border-width));\n min-height: 1em;\n background-color: var(--border-color);\n }\n}\n","@use \"../config\" as *;\n@use \"../mixins/utilities\" as *;\n@use \"../utilities\" as *;\n\n@layer utilities {\n @include generate-utilities-loop($utilities, $breakpoints);\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"../layout/breakpoints\" as bp;\n\n// Utility generator\n\n// - Utilities can use three different types of selectors:\n// - class: .class\n// - attr-starts: [class^=\"class\"]\n// - attr-includes: [class*=\"class\"]\n// - Utilities can target children via `child-selector`, wrapped in :where() for zero specificity\n// - Utilities can generate regular CSS properties and CSS custom properties\n// - Utilities can be responsive or not\n// - Utilities can have state variants (e.g., hover, focus, active)\n// - Utilities can define local CSS variables\n//\n// CSS custom properties can be generated in two ways:\n//\n// 1. Property map with null values (CSS var receives the utility value):\n// \"bg-color\": (\n// property: (\n// \"--bg\": null,\n// \"background-color\": var(--bg)\n// ),\n// class: bg,\n// values: (\n// primary: var(--blue-500),\n// )\n// )\n// Generates:\n// .bg-primary {\n// --bs-bg: var(--bs-blue-500);\n// background-color: var(--bs-bg);\n// }\n//\n// 2. Variables map (static CSS custom properties on every class):\n// \"link-underline\": (\n// property: text-decoration-color,\n// class: link-underline,\n// variables: (\n// \"link-underline-opacity\": 1\n// ),\n// values: (...)\n// )\n// Generates:\n// .link-underline {\n// --bs-link-underline-opacity: 1;\n// text-decoration-color: ...;\n// }\n\n// Helper mixin to emit CSS custom properties from a utility's `variables` key.\n// When variables is a map, the provided static values are used on each class.\n// When variables is a list or single identifier, each variable receives the current utility value.\n@mixin generate-variables($utility, $value) {\n @if map.has-key($utility, variables) {\n $variables: map.get($utility, variables);\n @if meta.type-of($variables) == \"map\" {\n @each $var-key, $var-value in $variables {\n --#{$var-key}: #{$var-value};\n }\n } @else {\n // Treat as a list (or single identifier) — each variable gets the utility value\n @each $var-name in $variables {\n --#{$var-name}: #{$value};\n }\n }\n }\n}\n\n// Helper mixin to generate CSS properties for both legacy and property map approaches\n@mixin generate-properties($utility, $property-map, $properties, $value) {\n @if $property-map != null {\n // Property-Value Mapping approach\n @each $property, $default-value in $property-map {\n // If value is a map, check if it has a key for this property.\n // Otherwise, use default-value (or $value if default-value is null).\n $actual-value: $default-value;\n @if meta.type-of($value) == \"map\" and map.has-key($value, $property) {\n $actual-value: map.get($value, $property);\n } @else if $default-value == null {\n $actual-value: $value;\n }\n @if map.get($utility, important) {\n #{$property}: $actual-value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $actual-value;\n }\n }\n } @else {\n // Legacy approach\n @each $property in $properties {\n @if map.get($utility, important) {\n #{$property}: $value !important; // stylelint-disable-line declaration-no-important\n } @else {\n #{$property}: $value;\n }\n }\n }\n}\n\n@mixin generate-utility($utility, $prefix: \"\") {\n // Validate required keys\n @if not map.has-key($utility, property) {\n @error \"Utility is missing required `property` key: #{$utility}\";\n }\n @if not map.has-key($utility, values) {\n @error \"Utility is missing required `values` key: #{$utility}\";\n }\n\n // Warn on unknown keys (likely typos)\n $valid-keys: property, values, class, selector, responsive, print, dark, important, state, variables, child-selector, enabled;\n @each $key in map.keys($utility) {\n @if not list.index($valid-keys, $key) {\n @warn \"Unknown utility key `#{$key}` found. Valid keys are: #{$valid-keys}\";\n }\n }\n\n // Validate boolean keys\n @each $bool-key in (responsive, print, dark, important, enabled) {\n @if map.has-key($utility, $bool-key) {\n $val: map.get($utility, $bool-key);\n @if $val != true and $val != false {\n @error \"Utility key `#{$bool-key}` should be a boolean (true or false), got: #{$val}\";\n }\n }\n }\n\n // Determine if we're generating a class, or an attribute selector\n $selector-type: \"class\";\n @if map.has-key($utility, selector) {\n $selector-type: map.get($utility, selector);\n // Validate selector type\n $valid-selectors: \"class\", \"attr-starts\", \"attr-includes\";\n @if not list.index($valid-selectors, $selector-type) {\n @error \"Invalid `selector` value `#{$selector-type}`. Must be one of: #{$valid-selectors}\";\n }\n }\n // Then get the class name to use in a class (e.g., .class) or in an attribute selector (e.g., [class^=\"class\"])\n $selector-class: map.get($utility, class);\n\n // Attribute selectors require a `class` key\n @if $selector-type != \"class\" and not map.has-key($utility, class) {\n @error \"Utility with `selector: #{$selector-type}` requires a `class` key.\";\n }\n\n // Get the list or map of values and ensure it's a map\n $values: map.get($utility, values);\n @if meta.type-of($values) != \"map\" {\n @if meta.type-of($values) == \"list\" {\n $list: ();\n @each $value in $values {\n $list: map.merge($list, ($value: $value));\n }\n $values: $list;\n } @else {\n $values: (null: $values);\n }\n }\n\n @each $key, $value in $values {\n $properties: map.get($utility, property);\n $property-map: null;\n $custom-class: \"\";\n\n // Check if property is a map (Property-Value Mapping approach)\n @if meta.type-of($properties) == \"map\" {\n $property-map: $properties;\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n }\n } @else {\n // Legacy approach: multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if meta.type-of($properties) == \"string\" {\n $properties: list.append((), $properties);\n }\n // Use custom class if present, otherwise use the first value from the list of properties\n @if map.has-key($utility, class) {\n $custom-class: map.get($utility, class);\n } @else {\n $custom-class: list.nth($properties, 1);\n }\n @if $custom-class == null {\n $custom-class: \"\";\n }\n }\n\n // State params to generate state variants\n $state: ();\n @if map.has-key($utility, state) {\n $state: map.get($utility, state);\n }\n\n // Don't add a dash before value key if value key is null (e.g. with shadow class)\n $custom-class-modifier: \"\";\n @if $key {\n @if $custom-class == \"\" {\n $custom-class-modifier: $key;\n } @else {\n $custom-class-modifier: \"-\" + $key;\n }\n }\n\n // Build the class name fragment (without prefix or dot) for reuse in state variants\n $class-name: \"\";\n @if $selector-type == \"class\" {\n @if $custom-class != \"\" {\n $class-name: $custom-class + $custom-class-modifier;\n } @else if $selector-class != null and $selector-class != \"\" {\n $class-name: $selector-class + $custom-class-modifier;\n } @else {\n $class-name: $custom-class-modifier;\n }\n }\n\n $selector: \"\";\n @if $selector-type == \"class\" {\n $selector: \".#{$prefix + $class-name}\";\n } @else if $selector-type == \"attr-starts\" {\n $selector: \"[class^=\\\"#{$selector-class}\\\"]\";\n } @else if $selector-type == \"attr-includes\" {\n $selector: \"[class*=\\\"#{$selector-class}\\\"]\";\n }\n\n // Apply child-selector wrapping if present (wraps in :where() for zero specificity)\n $child-sel: null;\n @if map.has-key($utility, child-selector) {\n $child-sel: map.get($utility, child-selector);\n }\n\n $final-selector: $selector;\n @if $child-sel {\n $final-selector: \":where(#{$selector} #{$child-sel})\";\n }\n\n #{$final-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n\n // Generate state variants (e.g., hover:link-10 instead of link-10-hover)\n @if $state != () {\n @each $state-variant in $state {\n $state-selector: \".#{$prefix}#{$state-variant}\\\\:#{$class-name}:#{$state-variant}\";\n @if $child-sel {\n $state-selector: \":where(#{$state-selector} #{$child-sel})\";\n }\n\n #{$state-selector} {\n @include generate-variables($utility, $value);\n @include generate-properties($utility, $property-map, $properties, $value);\n }\n }\n }\n }\n}\n\n// Generates all utility classes: base, responsive, print, and dark.\n// Extracted so that tests can call this mixin directly with a custom $utilities map\n// rather than having to mirror the loop conditions inline.\n@mixin generate-utilities-loop($utilities, $breakpoints) {\n // Base + responsive (one pass per breakpoint)\n @each $breakpoint in map.keys($breakpoints) {\n @include bp.media-breakpoint-up($breakpoint, $breakpoints) {\n $prefix: bp.breakpoint-prefix($breakpoint, $breakpoints);\n\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and (map.get($utility, responsive) or $prefix == \"\") {\n @include generate-utility($utility, $prefix);\n }\n }\n }\n }\n\n // Print utilities\n @media print {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, print) == true {\n @include generate-utility($utility, \"print\\\\:\");\n }\n }\n }\n\n // Dark utilities\n @media (prefers-color-scheme: dark) {\n @each $key, $utility in $utilities {\n @if meta.type-of($utility) == \"map\" and map.get($utility, enabled) != false and map.get($utility, dark) == true {\n @include generate-utility($utility, \"dark\\\\:\");\n }\n }\n }\n}\n"],"names":[]}
\ No newline at end of file
return false;
}
const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible';
- // Handle `details` element as its content may falsie appear visible when it is closed
+ // Handle `details` element as its content may falsely appear visible when it is closed
const closedDetails = element.closest('details:not([open])');
if (!closedDetails) {
return elementIsVisible;
const EVENT_KEY$h = `.${DATA_KEY$g}`;
const EVENT_CLOSE = `close${EVENT_KEY$h}`;
const EVENT_CLOSED = `closed${EVENT_KEY$h}`;
-const CLASS_NAME_FADE$3 = 'fade';
+const CLASS_NAME_FADE$4 = 'fade';
const CLASS_NAME_SHOW$6 = 'show';
/**
return;
}
this._element.classList.remove(CLASS_NAME_SHOW$6);
- const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$3);
+ const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$4);
this._queueCallback(() => this._destroyElement(), this._element, isAnimated);
}
data.toggle();
});
-/**
- * --------------------------------------------------------------------------
- * Bootstrap util/swipe.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-
-/**
- * Constants
- */
-
-const NAME$i = 'swipe';
-const EVENT_KEY$f = '.bs.swipe';
-const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$f}`;
-const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$f}`;
-const EVENT_TOUCHEND = `touchend${EVENT_KEY$f}`;
-const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$f}`;
-const EVENT_POINTERUP = `pointerup${EVENT_KEY$f}`;
-const POINTER_TYPE_TOUCH = 'touch';
-const POINTER_TYPE_PEN = 'pen';
-const CLASS_NAME_POINTER_EVENT = 'pointer-event';
-const SWIPE_THRESHOLD = 40;
-const Default$h = {
- endCallback: null,
- leftCallback: null,
- rightCallback: null,
- upCallback: null,
- downCallback: null
-};
-const DefaultType$h = {
- endCallback: '(function|null)',
- leftCallback: '(function|null)',
- rightCallback: '(function|null)',
- upCallback: '(function|null)',
- downCallback: '(function|null)'
-};
-
-/**
- * Class definition
- */
-
-class Swipe extends Config {
- constructor(element, config) {
- super();
- this._element = element;
- if (!element || !Swipe.isSupported()) {
- return;
- }
- this._config = this._getConfig(config);
- this._deltaX = 0;
- this._deltaY = 0;
- this._supportPointerEvents = Boolean(window.PointerEvent);
- this._initEvents();
- }
-
- // Getters
- static get Default() {
- return Default$h;
- }
- static get DefaultType() {
- return DefaultType$h;
- }
- static get NAME() {
- return NAME$i;
- }
-
- // Public
- dispose() {
- EventHandler.off(this._element, EVENT_KEY$f);
- }
-
- // Private
- _start(event) {
- if (!this._supportPointerEvents) {
- this._deltaX = event.touches[0].clientX;
- this._deltaY = event.touches[0].clientY;
- return;
- }
- if (this._eventIsPointerPenTouch(event)) {
- this._deltaX = event.clientX;
- this._deltaY = event.clientY;
- }
- }
- _end(event) {
- if (this._eventIsPointerPenTouch(event)) {
- this._deltaX = event.clientX - this._deltaX;
- this._deltaY = event.clientY - this._deltaY;
- }
- this._handleSwipe();
- execute(this._config.endCallback);
- }
- _move(event) {
- if (event.touches && event.touches.length > 1) {
- this._deltaX = 0;
- this._deltaY = 0;
- return;
- }
- this._deltaX = event.touches[0].clientX - this._deltaX;
- this._deltaY = event.touches[0].clientY - this._deltaY;
- }
- _handleSwipe() {
- const absDeltaX = Math.abs(this._deltaX);
- const absDeltaY = Math.abs(this._deltaY);
-
- // Determine primary axis: whichever has greater movement wins
- if (absDeltaY > absDeltaX && absDeltaY > SWIPE_THRESHOLD) {
- // Vertical swipe
- const direction = this._deltaY > 0 ? 'down' : 'up';
- this._deltaX = 0;
- this._deltaY = 0;
- execute(direction === 'down' ? this._config.downCallback : this._config.upCallback);
- return;
- }
- if (absDeltaX > SWIPE_THRESHOLD) {
- // Horizontal swipe
- const direction = absDeltaX / this._deltaX;
- this._deltaX = 0;
- this._deltaY = 0;
- if (!direction) {
- return;
- }
- execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);
- return;
- }
- this._deltaX = 0;
- this._deltaY = 0;
- }
- _initEvents() {
- if (this._supportPointerEvents) {
- EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));
- EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));
- this._element.classList.add(CLASS_NAME_POINTER_EVENT);
- } else {
- EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));
- EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));
- EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));
- }
- }
- _eventIsPointerPenTouch(event) {
- return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);
- }
-
- // Static
- static isSupported() {
- return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
- }
-}
-
/**
* --------------------------------------------------------------------------
* Bootstrap carousel.js
* Constants
*/
-const NAME$h = 'carousel';
+const NAME$i = 'carousel';
const DATA_KEY$e = 'bs.carousel';
-const EVENT_KEY$e = `.${DATA_KEY$e}`;
+const EVENT_KEY$f = `.${DATA_KEY$e}`;
const DATA_API_KEY$a = '.data-api';
const ARROW_LEFT_KEY$2 = 'ArrowLeft';
const ARROW_RIGHT_KEY$2 = 'ArrowRight';
-const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
-
-const ORDER_NEXT = 'next';
-const ORDER_PREV = 'prev';
const DIRECTION_LEFT = 'left';
const DIRECTION_RIGHT = 'right';
-const EVENT_SLIDE = `slide${EVENT_KEY$e}`;
-const EVENT_SLID = `slid${EVENT_KEY$e}`;
-const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$e}`;
-const EVENT_MOUSEENTER$2 = `mouseenter${EVENT_KEY$e}`;
-const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$e}`;
-const EVENT_DRAG_START = `dragstart${EVENT_KEY$e}`;
-const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$e}${DATA_API_KEY$a}`;
-const EVENT_CLICK_DATA_API$7 = `click${EVENT_KEY$e}${DATA_API_KEY$a}`;
+const EVENT_SLIDE = `slide${EVENT_KEY$f}`;
+const EVENT_SLID = `slid${EVENT_KEY$f}`;
+const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$f}`;
+const EVENT_MOUSEENTER$2 = `mouseenter${EVENT_KEY$f}`;
+const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$f}`;
+const EVENT_POINTERDOWN$1 = `pointerdown${EVENT_KEY$f}`;
+const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$f}${DATA_API_KEY$a}`;
+const EVENT_CLICK_DATA_API$7 = `click${EVENT_KEY$f}${DATA_API_KEY$a}`;
const CLASS_NAME_CAROUSEL = 'carousel';
const CLASS_NAME_ACTIVE$3 = 'active';
-const CLASS_NAME_SLIDE = 'slide';
-const CLASS_NAME_END = 'carousel-item-end';
-const CLASS_NAME_START = 'carousel-item-start';
-const CLASS_NAME_NEXT = 'carousel-item-next';
-const CLASS_NAME_PREV = 'carousel-item-prev';
+const CLASS_NAME_FADE$3 = 'carousel-fade';
+const CLASS_NAME_CENTER = 'carousel-center';
+const CLASS_NAME_AUTO = 'carousel-auto';
+const CLASS_NAME_CLONE = 'carousel-item-clone';
+const CLASS_NAME_PAUSED = 'paused';
+// Added to the root while the autoplay timer is running, so CSS can fill the
+// active indicator like a progress bar over the current slide's interval.
+const CLASS_NAME_PLAYING = 'carousel-playing';
+
+// Shipped (`--bs-`-prefixed) custom property the indicator fill animation reads
+// for its duration. The build prefixes every custom property, so the bare
+// `--carousel-interval` used in the SCSS source becomes this at runtime.
+const PROPERTY_INTERVAL = '--bs-carousel-interval';
+
+// How many frames the scroll-settle watcher waits when no movement is ever
+// detected (clamped programmatic scroll, or `scrollBy` stubbed in tests) before
+// it gives up and restores snapping anyway.
+const SCROLL_SETTLE_MAX_FRAMES = 10;
+
+// How far below the most-visible slide a slide's IntersectionRatio can be while
+// still counting as the active (left-most) slide. After a programmatic scroll
+// the viewport rests a sub-pixel past the snap offset, leaving the intended
+// slide a hair less visible than its fully-in neighbors; the tolerance prevents
+// that rounding from skipping the active index forward.
+const ACTIVE_RATIO_TOLERANCE = 0.05;
const SELECTOR_ACTIVE = '.active';
-const SELECTOR_ITEM = '.carousel-item';
+// Exclude transient loop clones so index math, indicators, and active-slide
+// detection only ever see the real slides.
+const SELECTOR_ITEM = `.carousel-item:not(.${CLASS_NAME_CLONE})`;
const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;
-const SELECTOR_ITEM_IMG = '.carousel-item img';
+const SELECTOR_INNER$1 = '.carousel-inner';
const SELECTOR_INDICATORS = '.carousel-indicators';
+const SELECTOR_PLAY_PAUSE = '.carousel-control-play-pause';
const SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';
-const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
+const SELECTOR_DATA_SLIDE_PREV = '[data-bs-slide="prev"]';
+const SELECTOR_DATA_SLIDE_NEXT = '[data-bs-slide="next"]';
+const SELECTOR_DATA_AUTOPLAY = '[data-bs-autoplay="true"]';
const KEY_TO_DIRECTION = {
[ARROW_LEFT_KEY$2]: DIRECTION_RIGHT,
[ARROW_RIGHT_KEY$2]: DIRECTION_LEFT
};
-const Default$g = {
+const ENDS_STOP = 'stop';
+const ENDS_WRAP = 'wrap';
+const ENDS_LOOP = 'loop';
+const Default$h = {
+ autoplay: false,
+ ends: ENDS_LOOP,
interval: 5000,
keyboard: true,
- pause: 'hover',
- ride: false,
- touch: true,
- wrap: true
+ pause: 'hover'
};
-const DefaultType$g = {
+const DefaultType$h = {
+ autoplay: 'boolean',
+ ends: 'string',
interval: 'number',
keyboard: 'boolean',
- pause: '(string|boolean)',
- ride: '(boolean|string)',
- touch: 'boolean',
- wrap: 'boolean'
+ pause: '(string|boolean)'
};
/**
class Carousel extends BaseComponent {
constructor(element, config) {
super(element, config);
- this._interval = null;
- this._activeElement = null;
- this._isSliding = false;
- this.touchTimeout = null;
- this._swipeHelper = null;
+
+ // The scroll viewport. The browser owns sliding, dragging, momentum, and
+ // keyboard scrolling; this controller only layers on autoplay, the
+ // prev/next/indicator controls, and active-slide syncing.
+ this._viewport = SelectorEngine.findOne(SELECTOR_INNER$1, this._element) || this._element;
this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
+ this._playPauseElement = SelectorEngine.findOne(SELECTOR_PLAY_PAUSE, this._element);
+ // Prev/next controls scoped to the carousel root (covers inline and stacked
+ // layouts). External controls placed outside `.carousel` aren't managed.
+ this._prevControls = SelectorEngine.find(SELECTOR_DATA_SLIDE_PREV, this._element);
+ this._nextControls = SelectorEngine.find(SELECTOR_DATA_SLIDE_NEXT, this._element);
+ this._interval = null;
+ this._observer = null;
+ this._snapRestoreFrame = null;
+ // True while a seamless loop transition is animating, so the
+ // IntersectionObserver and re-entrant navigation don't interfere.
+ this._looping = false;
+ this._visibility = new Map();
+ // Runtime autoplay intent. Starts from the `autoplay` option, but is turned
+ // off once the user takes control (clicks a control, uses the keyboard,
+ // swipes/drags, or presses pause) so we don't move content out from under
+ // them (WCAG 2.2.2 Pause, Stop, Hide).
+ this._playing = this._config.autoplay;
+ this._activeIndex = this._initialActiveIndex();
this._addEventListeners();
- if (this._config.ride === CLASS_NAME_CAROUSEL) {
+ this._observeItems();
+ this._refreshActiveState();
+ if (this._playing) {
this.cycle();
}
+ this._updatePlayPauseControl();
}
// Getters
static get Default() {
- return Default$g;
+ return Default$h;
}
static get DefaultType() {
- return DefaultType$g;
+ return DefaultType$h;
}
static get NAME() {
- return NAME$h;
+ return NAME$i;
}
// Public
next() {
- this._slide(ORDER_NEXT);
+ this.to(this._navIndex() + 1);
}
nextWhenVisible() {
- // Don't call next when the page isn't visible
- // or the carousel or its parent isn't visible
+ // Don't advance when the page or the carousel isn't visible
if (document.visibilityState === 'visible' && isVisible(this._element)) {
this.next();
}
}
prev() {
- this._slide(ORDER_PREV);
+ this.to(this._navIndex() - 1);
}
pause() {
- if (this._isSliding) {
- triggerTransitionEnd(this._element);
- }
this._clearInterval();
+ // Freeze the indicator progress fill; it resets to empty until cycling
+ // resumes and `_scheduleAutoplay` restarts it from scratch.
+ this._element.classList.remove(CLASS_NAME_PLAYING);
}
cycle() {
this._clearInterval();
- this._updateInterval();
- this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);
+ this._scheduleAutoplay();
+ this._element.classList.add(CLASS_NAME_PLAYING);
}
- _maybeEnableCycle() {
- if (!this._config.ride) {
- return;
- }
- if (this._isSliding) {
- EventHandler.one(this._element, EVENT_SLID, () => this.cycle());
+ to(index) {
+ // Ignore navigation while a seamless loop transition is animating
+ if (this._looping) {
return;
}
- this.cycle();
- }
- to(index) {
const items = this._getItems();
- if (index > items.length - 1 || index < 0) {
+ const rawIndex = Number.parseInt(index, 10);
+
+ // Seamless loop: continue forward/backward into a transient clone instead of
+ // the visible `wrap` jump. Only the simple single-slide scroll layout
+ // qualifies, and reduced motion falls back to the plain wrap below.
+ if (this._config.ends === ENDS_LOOP && !this._prefersReducedMotion() && this._canLoop()) {
+ if (rawIndex > items.length - 1) {
+ this._loopTransition(true);
+ return;
+ }
+ if (rawIndex < 0) {
+ this._loopTransition(false);
+ return;
+ }
+ }
+ const targetIndex = this._normalizeIndex(rawIndex, items.length);
+ // Measure "current" from the live scroll position: `_activeIndex` updates
+ // asynchronously, so an indicator/control used mid-scroll must compare
+ // against where the viewport actually rests (`_navIndex` returns the tracked
+ // active index for fade/non-scrollable layouts).
+ const currentIndex = this._navIndex();
+ if (targetIndex === null || targetIndex === currentIndex) {
return;
}
- if (this._isSliding) {
- EventHandler.one(this._element, EVENT_SLID, () => this.to(index));
+ const slideEvent = EventHandler.trigger(this._element, EVENT_SLIDE, {
+ relatedTarget: items[targetIndex],
+ direction: this._direction(currentIndex, targetIndex),
+ from: currentIndex,
+ to: targetIndex
+ });
+ if (slideEvent.defaultPrevented) {
return;
}
- const activeIndex = this._getItemIndex(this._getActive());
- if (activeIndex === index) {
+ if (this._isFade()) {
+ this._fadeTo(targetIndex);
return;
}
- const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;
- this._slide(order, items[index]);
+
+ // Scroll mode: the IntersectionObserver fires `slid` and syncs state once
+ // the new slide settles into view.
+ this._scrollToIndex(targetIndex);
}
dispose() {
- if (this._swipeHelper) {
- this._swipeHelper.dispose();
+ // Stop autoplay first: otherwise a pending timer would fire after the
+ // instance is torn down and throw on the now-null `_element`.
+ this._clearInterval();
+ if (this._observer) {
+ this._observer.disconnect();
}
+ if (this._snapRestoreFrame !== null) {
+ cancelAnimationFrame(this._snapRestoreFrame);
+ }
+
+ // Tidy up any in-flight loop transition: drop a stray clone and restore
+ // native snapping, so the viewport isn't left mid-animation.
+ for (const clone of SelectorEngine.find(`.${CLASS_NAME_CLONE}`, this._viewport)) {
+ clone.remove();
+ }
+ this._viewport.style.scrollSnapType = '';
+
+ // The pointerdown listener lives on the viewport (`.carousel-inner`), which
+ // `super.dispose()` doesn't clean up—it only drops listeners on `_element`.
+ EventHandler.off(this._viewport, EVENT_KEY$f);
super.dispose();
}
// Private
+ // Normalize an unknown `ends` value so navigation and end-control logic can't
+ // disagree about whether the carousel wraps.
_configAfterMerge(config) {
- config.defaultInterval = config.interval;
+ if (![ENDS_STOP, ENDS_WRAP, ENDS_LOOP].includes(config.ends)) {
+ config.ends = Default$h.ends;
+ }
return config;
}
+ _initialActiveIndex() {
+ const active = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
+ const index = active ? this._getItems().indexOf(active) : 0;
+ return Math.max(index, 0);
+ }
_addEventListeners() {
if (this._config.keyboard) {
EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event));
EventHandler.on(this._element, EVENT_MOUSEENTER$2, () => this.pause());
EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());
}
- if (this._config.touch && Swipe.isSupported()) {
- this._addTouchEventListeners();
- }
- }
- _addTouchEventListeners() {
- for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {
- EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault());
- }
- const endCallBack = () => {
- if (this._config.pause !== 'hover') {
- return;
- }
- // If it's a touch-enabled device, mouseenter/leave are fired as
- // part of the mouse compatibility events on first tap - the carousel
- // would stop cycling until user tapped out of it;
- // here, we listen for touchend, explicitly pause the carousel
- // (as if it's the second time we tap on it, mouseenter compat event
- // is NOT fired) and after a timeout (to allow for mouse compatibility
- // events to fire) we explicitly restart cycling
-
- this.pause();
- if (this.touchTimeout) {
- clearTimeout(this.touchTimeout);
- }
- this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);
- };
- const swipeConfig = {
- leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),
- rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),
- endCallback: endCallBack
- };
- this._swipeHelper = new Swipe(this._element, swipeConfig);
+ // Dragging, swiping, or tapping the track is an explicit interaction
+ EventHandler.on(this._viewport, EVENT_POINTERDOWN$1, () => this._pauseFromInteraction());
}
_keydown(event) {
if (/input|textarea/i.test(event.target.tagName)) {
const direction = KEY_TO_DIRECTION[event.key];
if (direction) {
event.preventDefault();
- this._slide(this._directionToOrder(direction));
+ this._pauseFromInteraction();
+ if (direction === DIRECTION_RIGHT) {
+ this.prev();
+ } else {
+ this.next();
+ }
}
}
- _getItemIndex(element) {
- return this._getItems().indexOf(element);
- }
- _setActiveIndicatorElement(index) {
- if (!this._indicatorsElement) {
+ _observeItems() {
+ // Fade mode stacks slides instead of scrolling, so there's nothing to observe
+ if (this._isFade() || typeof IntersectionObserver === 'undefined') {
return;
}
- const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
- activeIndicator.classList.remove(CLASS_NAME_ACTIVE$3);
- activeIndicator.removeAttribute('aria-current');
- const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement);
- if (newActiveIndicator) {
- newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$3);
- newActiveIndicator.setAttribute('aria-current', 'true');
+ this._observer = new IntersectionObserver(entries => this._handleIntersection(entries), {
+ root: this._viewport,
+ threshold: [0, 0.25, 0.5, 0.75, 1]
+ });
+ for (const item of this._getItems()) {
+ this._observer.observe(item);
}
}
- _updateInterval() {
- const element = this._activeElement || this._getActive();
- if (!element) {
+ _handleIntersection(entries) {
+ // A loop transition deliberately scrolls onto a transient clone; ignore the
+ // visibility churn so it doesn't move the active index mid-animation.
+ if (this._looping) {
return;
}
- const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);
- this._config.interval = elementInterval || this._config.defaultInterval;
+ for (const entry of entries) {
+ this._visibility.set(entry.target, entry.isIntersecting ? entry.intersectionRatio : 0);
+ }
+ const items = this._getItems();
+ const ratios = items.map(item => this._visibility.get(item) ?? 0);
+ const maxRatio = Math.max(...ratios);
+
+ // Pick the left-most slide that's *near* fully visible rather than the strict
+ // global maximum. After a programmatic scroll the viewport rests ~1px past
+ // the target snap offset, so the intended left-most slide reports a ratio a
+ // hair below the deeper, fully-visible ones (e.g. 0.997 vs 1.0). A strict max
+ // would skip past it and inflate the active index by one, which breaks
+ // multi-item next/prev. The tolerance keeps the intended slide active while
+ // peeking slivers (well below the max) are still ignored.
+ let bestIndex = this._activeIndex;
+ if (maxRatio > 0) {
+ bestIndex = ratios.findIndex(ratio => ratio >= maxRatio - ACTIVE_RATIO_TOLERANCE);
+ }
+ this._setActive(bestIndex);
+ // Keep the end controls in sync with the scroll position even when the
+ // active index doesn't change (e.g. the final stretch of a multi-item
+ // scroll, where the left-most slide is already the last reachable one).
+ this._updateEndControls();
+ }
+
+ // The index a `next()`/`prev()` step is measured from. Scroll layouts read it
+ // from the live scroll position instead of `this._activeIndex`, because the
+ // IntersectionObserver updates that asynchronously: after one step the index
+ // can still be stale, so the next step would compute the same target and
+ // silently no-op (the "the button does nothing / can't reach the end slide"
+ // symptom). Fade and non-scrollable layouts have no scroll position to read,
+ // so they keep using the tracked active index (also what the unit tests rely
+ // on when there's no real layout).
+ _navIndex() {
+ if (this._isFade() || this._viewport.scrollWidth - this._viewport.clientWidth <= 0) {
+ return this._activeIndex;
+ }
+ let index = this._activeIndex;
+ let smallestDelta = Number.POSITIVE_INFINITY;
+ for (const [itemIndex, item] of this._getItems().entries()) {
+ // The slide currently resting at the active position has ~zero delta.
+ const delta = Math.abs(this._scrollDelta(item));
+ if (delta < smallestDelta) {
+ smallestDelta = delta;
+ index = itemIndex;
+ }
+ }
+ return index;
}
- _slide(order, element = null) {
- if (this._isSliding) {
+ _scrollToIndex(index) {
+ const item = this._getItems()[index];
+ if (!item) {
+ return;
+ }
+ const left = this._scrollDelta(item);
+ if (Math.abs(left) < 1) {
return;
}
- const activeElement = this._getActive();
- const isNext = order === ORDER_NEXT;
- const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);
- if (nextElement === activeElement) {
+
+ // `scroll-snap-stop: always` keeps user wheel/touch flings to a single slide,
+ // but it also clamps *programmatic* scrolls to one snap point — which would
+ // break multi-slide jumps from an indicator click, `to()`, or wrapping from
+ // the last slide back to the first. Disable snapping for the duration of the
+ // programmatic scroll, then restore it once the scroll settles so the slide
+ // still rests precisely (honouring peek/gap).
+ const targetLeft = this._viewport.scrollLeft + left;
+ this._viewport.style.scrollSnapType = 'none';
+ this._viewport.scrollBy({
+ left,
+ top: 0,
+ // `'instant'` (not `'auto'`) for reduced motion: the viewport sets
+ // `scroll-behavior: smooth` in CSS, and `'auto'` defers to it, so it would
+ // still animate. `'instant'` forces an immediate, motion-free jump.
+ behavior: this._prefersReducedMotion() ? 'instant' : 'smooth'
+ });
+ this._restoreSnapWhenSettled(targetLeft, index);
+ }
+
+ // Horizontal distance to scroll the viewport so `element` rests where the
+ // active slide should sit. Scroll the viewport itself rather than calling
+ // `element.scrollIntoView()`: the latter scrolls *every* scrollable ancestor
+ // (including the page), so an autoplaying carousel below the fold would yank
+ // the whole page to itself on each tick. Using bounding rects keeps it
+ // direction-agnostic (works in RTL).
+ _scrollDelta(element) {
+ const viewportRect = this._viewport.getBoundingClientRect();
+ const rect = element.getBoundingClientRect();
+ if (this._element.classList.contains(CLASS_NAME_CENTER)) {
+ return rect.left + rect.width / 2 - (viewportRect.left + viewportRect.width / 2);
+ }
+
+ // Start alignment: rest the slide at the scroll-padding (peek) offset, which
+ // is exactly where scroll-snap will settle. Aligning flush to the edge
+ // instead would make the browser re-snap by `peek` once snapping is restored,
+ // producing a visible secondary nudge after the programmatic scroll.
+ const padStart = Number.parseFloat(getComputedStyle(this._viewport).scrollPaddingInlineStart) || 0;
+ return isRTL$1() ? rect.right - (viewportRect.right - padStart) : rect.left - (viewportRect.left + padStart);
+ }
+
+ // Seamless loop: continue past an end into a one-off clone of the destination
+ // slide, then teleport to the real slide so there's no visible backward jump.
+ _loopTransition(isNext) {
+ const items = this._getItems();
+ const last = items.length - 1;
+ const fromIndex = this._activeIndex;
+ const toIndex = isNext ? 0 : last;
+ const direction = this._loopDirection(isNext);
+ const slideEvent = EventHandler.trigger(this._element, EVENT_SLIDE, {
+ relatedTarget: items[toIndex],
+ direction,
+ from: fromIndex,
+ to: toIndex
+ });
+ if (slideEvent.defaultPrevented) {
return;
}
- const nextElementIndex = this._getItemIndex(nextElement);
- const triggerEvent = eventName => {
- return EventHandler.trigger(this._element, eventName, {
- relatedTarget: nextElement,
- direction: this._orderToDirection(order),
- from: this._getItemIndex(activeElement),
- to: nextElementIndex
+ this._looping = true;
+ const clone = (isNext ? items[0] : items[last]).cloneNode(true);
+ clone.classList.add(CLASS_NAME_CLONE);
+ clone.classList.remove(CLASS_NAME_ACTIVE$3);
+ clone.removeAttribute('id');
+ // Also strip ids from the cloned subtree to avoid duplicate ids while the
+ // clone is on screen.
+ for (const node of SelectorEngine.find('[id]', clone)) {
+ node.removeAttribute('id');
+ }
+ clone.setAttribute('aria-hidden', 'true');
+ clone.inert = true;
+ this._viewport.style.scrollSnapType = 'none';
+ if (isNext) {
+ this._viewport.append(clone);
+ } else {
+ this._viewport.prepend(clone);
+ // Prepending shifts the real slides to the right; instantly re-align the
+ // current slide so the insertion doesn't flash before we animate.
+ this._jumpScroll(this._scrollDelta(items[fromIndex]));
+ }
+ this._viewport.scrollBy({
+ left: this._scrollDelta(clone),
+ top: 0,
+ behavior: 'smooth'
+ });
+ this._afterScrollSettles(() => {
+ // Teleport to the real destination without animation. JS runs to
+ // completion before the browser paints, so removing the clone and the
+ // compensating scroll land in a single frame (no visible flash).
+ clone.remove();
+ this._jumpScroll(this._scrollDelta(items[toIndex]));
+ this._activeIndex = toIndex;
+ this._refreshActiveState();
+ EventHandler.trigger(this._element, EVENT_SLID, {
+ relatedTarget: items[toIndex],
+ direction,
+ from: fromIndex,
+ to: toIndex
});
+ this._viewport.style.scrollSnapType = '';
+ this._looping = false;
+ });
+ }
+ _loopDirection(isNext) {
+ if (isRTL$1()) {
+ return isNext ? DIRECTION_RIGHT : DIRECTION_LEFT;
+ }
+ return isNext ? DIRECTION_LEFT : DIRECTION_RIGHT;
+ }
+
+ // Instant (non-animated) scroll with snapping suspended, used to teleport the
+ // viewport during a loop transition. `behavior: 'instant'` is required because
+ // the viewport sets `scroll-behavior: smooth` in CSS, and `'auto'` would defer
+ // to it and animate the teleport (a visible backward slide).
+ _jumpScroll(delta) {
+ this._viewport.style.scrollSnapType = 'none';
+ this._viewport.scrollBy({
+ left: delta,
+ top: 0,
+ behavior: 'instant'
+ });
+ }
+
+ // Re-enable scroll snapping once the viewport reaches `targetLeft` (or stops
+ // moving). Passing the target matters: restoring `mandatory` snapping re-snaps
+ // to the *nearest* snap point, so if we restored mid-animation the viewport
+ // could jump back to the slide we came from — most visible stepping to the
+ // first/last slide, where it looks like the control "doesn't work".
+ _restoreSnapWhenSettled(targetLeft, index) {
+ this._afterScrollSettles(() => {
+ this._viewport.style.scrollSnapType = '';
+ // Without IntersectionObserver nothing else fires `slid`/updates the active
+ // slide after a programmatic scroll, so do it here. With the observer
+ // present this is a no-op (it already moved the active index to `index`).
+ if (!this._observer && index !== undefined) {
+ this._setActive(index);
+ }
+
+ // The IntersectionObserver doesn't fire once the viewport has stopped, so
+ // refresh the end controls here to catch the final ~1px settle landing
+ // exactly on the scroll extent (e.g. disabling `next` at the last view).
+ this._updateEndControls();
+ }, targetLeft);
+ }
+
+ // Invoke `callback` once the viewport stops moving. We watch the scroll
+ // position across frames instead of relying on the `scrollend` event, which
+ // isn't available across our supported browsers yet.
+ //
+ // Crucially, we only start counting "stable" frames once the scroll has
+ // actually moved. A smooth `scrollBy` doesn't update `scrollLeft` for the first
+ // frame or two, so naively treating those initial unchanged frames as
+ // "settled" would re-enable `mandatory` snapping mid-animation — which cancels
+ // the in-flight programmatic scroll and lands on the wrong slide (most visible
+ // in multi-item layouts). If the scroll never moves (delta clamped at an end,
+ // or `scrollBy` stubbed out in unit tests), we fall back to a short frame cap.
+ //
+ // When `targetLeft` is known we also finish the moment we arrive there, so the
+ // snap is restored exactly on the destination snap point and can't re-snap the
+ // viewport backwards (the failure mode where stepping to the first/last slide
+ // appears to do nothing).
+ _afterScrollSettles(callback, targetLeft) {
+ if (typeof requestAnimationFrame === 'undefined') {
+ callback();
+ return;
+ }
+ if (this._snapRestoreFrame !== null) {
+ cancelAnimationFrame(this._snapRestoreFrame);
+ }
+ const startLeft = this._viewport.scrollLeft;
+ let lastLeft = startLeft;
+ let stableFrames = 0;
+ let waited = 0;
+ let hasMoved = false;
+ const tick = () => {
+ const currentLeft = this._viewport.scrollLeft;
+ const reachedTarget = targetLeft !== undefined && Math.abs(currentLeft - targetLeft) <= 1;
+ if (Math.abs(currentLeft - startLeft) > 1) {
+ hasMoved = true;
+ }
+
+ // Only accrue stable frames after movement begins, so the pre-animation
+ // and ease-in frames don't prematurely count as settled.
+ if (hasMoved) {
+ stableFrames = Math.abs(currentLeft - lastLeft) < 1 ? stableFrames + 1 : 0;
+ }
+ lastLeft = currentLeft;
+ waited += 1;
+ if (reachedTarget || hasMoved && stableFrames >= 3 || !hasMoved && waited >= SCROLL_SETTLE_MAX_FRAMES) {
+ this._snapRestoreFrame = null;
+ callback();
+ return;
+ }
+ this._snapRestoreFrame = requestAnimationFrame(tick);
};
- const slideEvent = triggerEvent(EVENT_SLIDE);
- if (slideEvent.defaultPrevented) {
+ this._snapRestoreFrame = requestAnimationFrame(tick);
+ }
+
+ // Fade mode just swaps the active class; the CSS opacity transition on
+ // `.carousel-item` performs the crossfade over `--carousel-fade-duration` (and
+ // collapses to an instant swap under reduced motion, via the `transition`
+ // mixin). It deliberately avoids the View Transition API: a view transition
+ // crossfades a page snapshot over its own (shorter) duration while this CSS
+ // fade also runs underneath, so the two animations overlap and visibly stutter.
+ _fadeTo(index) {
+ this._setActive(index);
+ }
+ _setActive(index) {
+ const items = this._getItems();
+ if (index === this._activeIndex || !items[index]) {
+ return;
+ }
+ const from = this._activeIndex;
+ this._activeIndex = index;
+ this._refreshActiveState();
+ EventHandler.trigger(this._element, EVENT_SLID, {
+ relatedTarget: items[index],
+ direction: this._direction(from, index),
+ from,
+ to: index
+ });
+ }
+ _refreshActiveState() {
+ const items = this._getItems();
+ for (const [index, item] of items.entries()) {
+ item.classList.toggle(CLASS_NAME_ACTIVE$3, index === this._activeIndex);
+ }
+ this._setActiveIndicatorElement(this._activeIndex);
+ this._updateEndControls();
+ }
+ _updateEndControls() {
+ // Only `ends: 'stop'` has real ends; under `wrap`/`loop` you can always
+ // advance, so disabling end controls would be meaningless. When stopping,
+ // disable the prev control at the start of the scroll range and the next
+ // control at the end so there are no dead end-buttons.
+ if (this._config.ends !== ENDS_STOP) {
+ return;
+ }
+ const viewport = this._viewport;
+ const maxScroll = viewport.scrollWidth - viewport.clientWidth;
+ let atStart;
+ let atEnd;
+ if (maxScroll > 0) {
+ // Scrollable: measure the real scroll extent so this works for multi-item,
+ // peek, and variable-width layouts where the last slide can never become
+ // the left-most (active) one. `Math.abs` keeps it correct in RTL, where
+ // `scrollLeft` runs from 0 down to negative.
+ const progress = Math.abs(viewport.scrollLeft);
+ atStart = progress <= 1;
+ atEnd = progress >= maxScroll - 1;
+ } else {
+ // Not scrollable (or no layout yet, e.g. in unit tests): fall back to the
+ // active index for the single-slide case.
+ const last = this._getItems().length - 1;
+ atStart = this._activeIndex <= 0;
+ atEnd = this._activeIndex >= last;
+ }
+ this._setControlsDisabled(this._prevControls, atStart);
+ this._setControlsDisabled(this._nextControls, atEnd);
+ }
+ _setControlsDisabled(controls, disabled) {
+ for (const control of controls) {
+ // a11y: if we're about to disable the focused control, move focus to the
+ // opposite (still-enabled) control so focus isn't lost.
+ if (disabled && control === document.activeElement) {
+ const opposite = controls === this._prevControls ? this._nextControls : this._prevControls;
+ const fallback = opposite[0] ?? this._viewport;
+ // `preventScroll` so moving focus doesn't yank the page/viewport to the
+ // newly-focused control mid-navigation.
+ fallback.focus({
+ preventScroll: true
+ });
+ }
+ control.disabled = disabled;
+ }
+ }
+ _setActiveIndicatorElement(index) {
+ if (!this._indicatorsElement) {
return;
}
- if (!activeElement || !nextElement) {
- // Some weirdness is happening, so we bail
+ const active = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
+ if (active) {
+ active.classList.remove(CLASS_NAME_ACTIVE$3);
+ active.removeAttribute('aria-current');
+ }
+ const newActive = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement);
+ if (newActive) {
+ newActive.classList.add(CLASS_NAME_ACTIVE$3);
+ newActive.setAttribute('aria-current', 'true');
+ }
+ }
+ _normalizeIndex(index, length) {
+ if (Number.isNaN(index) || length === 0) {
+ return null;
+ }
+ if (index < 0) {
+ return this._wrapsAround() ? length - 1 : null;
+ }
+ if (index > length - 1) {
+ return this._wrapsAround() ? 0 : null;
+ }
+ return index;
+ }
+
+ // Whether navigating past an end wraps to the other end. `loop` continues
+ // seamlessly where it can (see `_canLoop`) and otherwise behaves like `wrap`.
+ _wrapsAround() {
+ return this._config.ends === ENDS_WRAP || this._config.ends === ENDS_LOOP;
+ }
+
+ // Seamless looping is only supported for the simple single-slide scroll
+ // layout. Multi-item, peek, center, and variable-width layouts fall back to
+ // the plain `wrap` jump.
+ _canLoop() {
+ if (this._isFade() || this._getItems().length < 2) {
+ return false;
+ }
+ const styles = getComputedStyle(this._element);
+ const num = name => Number.parseFloat(styles.getPropertyValue(name)) || 0;
+
+ // These are the shipped, `--bs-`-prefixed custom properties (the build
+ // prefixes every custom property), not the bare names used in the SCSS source.
+ return (num('--bs-carousel-items') || 1) === 1 && num('--bs-carousel-items-peek') === 0 && !this._element.classList.contains(CLASS_NAME_CENTER) && !this._element.classList.contains(CLASS_NAME_AUTO);
+ }
+ _direction(from, to) {
+ const isNext = to > from;
+ if (isRTL$1()) {
+ return isNext ? DIRECTION_RIGHT : DIRECTION_LEFT;
+ }
+ return isNext ? DIRECTION_LEFT : DIRECTION_RIGHT;
+ }
+ _scheduleAutoplay(index = this._activeIndex) {
+ const interval = this._itemInterval(index);
+ // Expose the wait so the active indicator's CSS fill matches it.
+ this._element.style.setProperty(PROPERTY_INTERVAL, `${interval}ms`);
+ this._interval = setTimeout(() => {
+ // Capture the slide the advance lands on *before* navigating: the active
+ // index only updates once the scroll settles (asynchronously), so reading
+ // it after `nextWhenVisible()` would schedule the next wait from the slide
+ // we're leaving — making per-item `data-bs-interval`s lag by one slide.
+ const upcoming = this._upcomingIndex();
+ this.nextWhenVisible();
+
+ // Nothing comes after the last slide when `ends: 'stop'`; stop cycling
+ // instead of re-arming a timer that can never advance.
+ if (upcoming === null) {
+ this.pause();
+ return;
+ }
+ this._scheduleAutoplay(upcoming);
+ }, interval);
+ }
+
+ // The slide the next autoplay tick will rest on, derived from the live scroll
+ // position (which still reflects the current slide when the timer fires).
+ // Returns `null` when there's nowhere left to advance (`ends: stop` at the end).
+ _upcomingIndex() {
+ return this._normalizeIndex(this._navIndex() + 1, this._getItems().length);
+ }
+ _itemInterval(index = this._activeIndex) {
+ const item = this._getItems()[index];
+ const interval = item ? Number.parseInt(item.getAttribute('data-bs-interval'), 10) : Number.NaN;
+ return Number.isNaN(interval) ? this._config.interval : interval;
+ }
+ _maybeEnableCycle() {
+ if (!this._playing) {
return;
}
- const isCycling = Boolean(this._interval);
+ this.cycle();
+ }
+
+ // Turn autoplay off for good once the user interacts with the carousel
+ _pauseFromInteraction() {
+ this._playing = false;
this.pause();
- this._isSliding = true;
- this._setActiveIndicatorElement(nextElementIndex);
- this._activeElement = nextElement;
- const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;
- const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;
- nextElement.classList.add(orderClassName);
- reflow(nextElement);
- activeElement.classList.add(directionalClassName);
- nextElement.classList.add(directionalClassName);
- const completeCallBack = () => {
- nextElement.classList.remove(directionalClassName, orderClassName);
- nextElement.classList.add(CLASS_NAME_ACTIVE$3);
- activeElement.classList.remove(CLASS_NAME_ACTIVE$3, orderClassName, directionalClassName);
- this._isSliding = false;
- triggerEvent(EVENT_SLID);
- };
- this._queueCallback(completeCallBack, activeElement, this._isAnimated());
- if (isCycling) {
- this.cycle();
+ this._updatePlayPauseControl();
+ }
+ _togglePlayPause() {
+ if (this._playing) {
+ this._pauseFromInteraction();
+ return;
}
+ this._playing = true;
+ this.cycle();
+ this._updatePlayPauseControl();
}
- _isAnimated() {
- return this._element.classList.contains(CLASS_NAME_SLIDE);
+ _updatePlayPauseControl() {
+ if (!this._playPauseElement) {
+ return;
+ }
+ this._playPauseElement.classList.toggle(CLASS_NAME_PAUSED, !this._playing);
+ const label = this._playPauseElement.getAttribute(this._playing ? 'data-bs-pause-label' : 'data-bs-play-label');
+ if (label) {
+ this._playPauseElement.setAttribute('aria-label', label);
+ }
+ }
+ _isFade() {
+ return this._element.classList.contains(CLASS_NAME_FADE$3);
}
- _getActive() {
- return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
+ _prefersReducedMotion() {
+ return typeof window !== 'undefined' && typeof window.matchMedia === 'function' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
}
_getItems() {
return SelectorEngine.find(SELECTOR_ITEM, this._element);
}
_clearInterval() {
if (this._interval) {
- clearInterval(this._interval);
+ clearTimeout(this._interval);
this._interval = null;
}
}
- _directionToOrder(direction) {
- if (isRTL$1()) {
- return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;
- }
- return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;
- }
- _orderToDirection(order) {
- if (isRTL$1()) {
- return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;
- }
- return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;
- }
}
/**
}
event.preventDefault();
const carousel = Carousel.getOrCreateInstance(target);
+
+ // Manually cycling the carousel is an explicit interaction, so stop autoplay
+ carousel._pauseFromInteraction();
const slideIndex = this.getAttribute('data-bs-slide-to');
if (slideIndex) {
carousel.to(slideIndex);
- carousel._maybeEnableCycle();
return;
}
if (Manipulator.getDataAttribute(this, 'slide') === 'next') {
carousel.next();
- carousel._maybeEnableCycle();
return;
}
carousel.prev();
- carousel._maybeEnableCycle();
+});
+EventHandler.on(document, EVENT_CLICK_DATA_API$7, SELECTOR_PLAY_PAUSE, function (event) {
+ const target = SelectorEngine.getElementFromSelector(this);
+ if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
+ return;
+ }
+ event.preventDefault();
+ Carousel.getOrCreateInstance(target)._togglePlayPause();
});
EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {
- const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);
+ const carousels = SelectorEngine.find(SELECTOR_DATA_AUTOPLAY);
for (const carousel of carousels) {
Carousel.getOrCreateInstance(carousel);
}
* Constants
*/
-const NAME$g = 'collapse';
+const NAME$h = 'collapse';
const DATA_KEY$d = 'bs.collapse';
-const EVENT_KEY$d = `.${DATA_KEY$d}`;
+const EVENT_KEY$e = `.${DATA_KEY$d}`;
const DATA_API_KEY$9 = '.data-api';
-const EVENT_SHOW$7 = `show${EVENT_KEY$d}`;
-const EVENT_SHOWN$6 = `shown${EVENT_KEY$d}`;
-const EVENT_HIDE$6 = `hide${EVENT_KEY$d}`;
-const EVENT_HIDDEN$8 = `hidden${EVENT_KEY$d}`;
-const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$d}${DATA_API_KEY$9}`;
+const EVENT_SHOW$7 = `show${EVENT_KEY$e}`;
+const EVENT_SHOWN$6 = `shown${EVENT_KEY$e}`;
+const EVENT_HIDE$6 = `hide${EVENT_KEY$e}`;
+const EVENT_HIDDEN$8 = `hidden${EVENT_KEY$e}`;
+const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$e}${DATA_API_KEY$9}`;
const CLASS_NAME_SHOW$5 = 'show';
const CLASS_NAME_COLLAPSE = 'collapse';
const CLASS_NAME_COLLAPSING = 'collapsing';
const HEIGHT = 'height';
const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';
const SELECTOR_DATA_TOGGLE$9 = '[data-bs-toggle="collapse"]';
-const Default$f = {
+const Default$g = {
parent: null,
toggle: true
};
-const DefaultType$f = {
+const DefaultType$g = {
parent: '(null|element)',
toggle: 'boolean'
};
// Getters
static get Default() {
- return Default$f;
+ return Default$g;
}
static get DefaultType() {
- return DefaultType$f;
+ return DefaultType$g;
}
static get NAME() {
- return NAME$g;
+ return NAME$h;
}
// Public
* Constants
*/
-const NAME$f = 'menu';
+const NAME$g = 'menu';
const DATA_KEY$c = 'bs.menu';
-const EVENT_KEY$c = `.${DATA_KEY$c}`;
+const EVENT_KEY$d = `.${DATA_KEY$c}`;
const DATA_API_KEY$8 = '.data-api';
const ESCAPE_KEY$1 = 'Escape';
const TAB_KEY$1 = 'Tab';
const SPACE_KEY$1 = ' ';
const RIGHT_MOUSE_BUTTON = 2;
const SUBMENU_CLOSE_DELAY = 100;
-const EVENT_HIDE$5 = `hide${EVENT_KEY$c}`;
-const EVENT_HIDDEN$7 = `hidden${EVENT_KEY$c}`;
-const EVENT_SHOW$6 = `show${EVENT_KEY$c}`;
-const EVENT_SHOWN$5 = `shown${EVENT_KEY$c}`;
-const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$c}${DATA_API_KEY$8}`;
-const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$c}${DATA_API_KEY$8}`;
-const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$c}${DATA_API_KEY$8}`;
+const EVENT_HIDE$5 = `hide${EVENT_KEY$d}`;
+const EVENT_HIDDEN$7 = `hidden${EVENT_KEY$d}`;
+const EVENT_SHOW$6 = `show${EVENT_KEY$d}`;
+const EVENT_SHOWN$5 = `shown${EVENT_KEY$d}`;
+const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$d}${DATA_API_KEY$8}`;
+const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$d}${DATA_API_KEY$8}`;
+const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$d}${DATA_API_KEY$8}`;
const CLASS_NAME_SHOW$4 = 'show';
const SELECTOR_DATA_TOGGLE$8 = '[data-bs-toggle="menu"]:not(.disabled):not(:disabled)';
const SELECTOR_MENU$2 = '.menu';
return placement.replace(/^start(?=-|$)/, 'left').replace(/^end(?=-|$)/, 'right');
};
const triangleSign = (p1, p2, p3) => (p1.x - p3.x) * (p2.y - p3.y) - (p2.x - p3.x) * (p1.y - p3.y);
-const Default$e = {
+const Default$f = {
autoClose: true,
boundary: 'clippingParents',
container: false,
submenuTrigger: 'both',
submenuDelay: SUBMENU_CLOSE_DELAY
};
-const DefaultType$e = {
+const DefaultType$f = {
autoClose: '(boolean|string)',
boundary: '(string|element)',
container: '(string|element|boolean)',
*/
class Menu extends BaseComponent {
- static _openInstances = (() => new Set())();
+ static _openInstances = new Set();
constructor(element, config) {
if (typeof computePosition === 'undefined') {
throw new TypeError('Bootstrap\'s menus require Floating UI (https://floating-ui.com)');
// Getters
static get Default() {
- return Default$e;
+ return Default$f;
}
static get DefaultType() {
- return DefaultType$e;
+ return DefaultType$f;
}
static get NAME() {
- return NAME$f;
+ return NAME$g;
}
// Public
_getConfig(config) {
config = super._getConfig(config);
if (typeof config.reference === 'object' && !isElement$1(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {
- throw new TypeError(`${NAME$f.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
+ throw new TypeError(`${NAME$g.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
}
return config;
}
* Constants
*/
-const NAME$e = 'combobox';
+const NAME$f = 'combobox';
const DATA_KEY$b = 'bs.combobox';
-const EVENT_KEY$b = `.${DATA_KEY$b}`;
+const EVENT_KEY$c = `.${DATA_KEY$b}`;
const DATA_API_KEY$7 = '.data-api';
const ESCAPE_KEY = 'Escape';
const TAB_KEY = 'Tab';
const END_KEY$1 = 'End';
const ENTER_KEY = 'Enter';
const SPACE_KEY = ' ';
-const EVENT_CHANGE$2 = `change${EVENT_KEY$b}`;
-const EVENT_SHOW$5 = `show${EVENT_KEY$b}`;
-const EVENT_SHOWN$4 = `shown${EVENT_KEY$b}`;
-const EVENT_HIDE$4 = `hide${EVENT_KEY$b}`;
-const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$b}`;
-const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$b}${DATA_API_KEY$7}`;
+const EVENT_CHANGE$2 = `change${EVENT_KEY$c}`;
+const EVENT_SHOW$5 = `show${EVENT_KEY$c}`;
+const EVENT_SHOWN$4 = `shown${EVENT_KEY$c}`;
+const EVENT_HIDE$4 = `hide${EVENT_KEY$c}`;
+const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$c}`;
+const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$c}${DATA_API_KEY$7}`;
const CLASS_NAME_SHOW$3 = 'show';
const CLASS_NAME_SELECTED = 'selected';
const CLASS_NAME_PLACEHOLDER = 'combobox-placeholder';
const SELECTOR_VALUE = '.combobox-value';
const SELECTOR_SEARCH_INPUT = '.combobox-search-input';
const SELECTOR_NO_RESULTS = '.combobox-no-results';
-const Default$d = {
+const Default$e = {
boundary: 'clippingParents',
multiple: false,
name: null,
search: false,
searchNormalize: false
};
-const DefaultType$d = {
+const DefaultType$e = {
boundary: '(string|element)',
multiple: 'boolean',
name: '(string|null)',
// Getters
static get Default() {
- return Default$d;
+ return Default$e;
}
static get DefaultType() {
- return DefaultType$d;
+ return DefaultType$e;
}
static get NAME() {
- return NAME$e;
+ return NAME$f;
}
// Public
this._hiddenInput.remove();
this._hiddenInput = null;
}
- EventHandler.off(this._menu, EVENT_KEY$b);
- EventHandler.off(this._toggle, EVENT_KEY$b);
+ EventHandler.off(this._menu, EVENT_KEY$c);
+ EventHandler.off(this._toggle, EVENT_KEY$c);
super.dispose();
}
* Constants
*/
-const NAME$d = 'datepicker';
+const NAME$e = 'datepicker';
const DATA_KEY$a = 'bs.datepicker';
-const EVENT_KEY$a = `.${DATA_KEY$a}`;
+const EVENT_KEY$b = `.${DATA_KEY$a}`;
const DATA_API_KEY$6 = '.data-api';
-const EVENT_CHANGE$1 = `change${EVENT_KEY$a}`;
-const EVENT_SHOW$4 = `show${EVENT_KEY$a}`;
-const EVENT_SHOWN$3 = `shown${EVENT_KEY$a}`;
-const EVENT_HIDE$3 = `hide${EVENT_KEY$a}`;
-const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$a}`;
-const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;
-const EVENT_FOCUSIN_DATA_API = `focusin${EVENT_KEY$a}${DATA_API_KEY$6}`;
+const EVENT_CHANGE$1 = `change${EVENT_KEY$b}`;
+const EVENT_SHOW$4 = `show${EVENT_KEY$b}`;
+const EVENT_SHOWN$3 = `shown${EVENT_KEY$b}`;
+const EVENT_HIDE$3 = `hide${EVENT_KEY$b}`;
+const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$b}`;
+const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$b}${DATA_API_KEY$6}`;
+const EVENT_FOCUSIN_DATA_API = `focusin${EVENT_KEY$b}${DATA_API_KEY$6}`;
const SELECTOR_DATA_TOGGLE$6 = '[data-bs-toggle="datepicker"]';
const HIDE_DELAY = 100; // ms delay before hiding after selection
-const Default$c = {
+const Default$d = {
datepickerTheme: null,
// 'light', 'dark', 'auto' - explicit theme for datepicker popover only
dateMin: null,
// 'left', 'center', 'right', 'auto'
vcpOptions: {} // Pass-through for any VCP option
};
-const DefaultType$c = {
+const DefaultType$d = {
datepickerTheme: '(null|string)',
dateMin: '(null|string|number|object)',
dateMax: '(null|string|number|object)',
// Getters
static get Default() {
- return Default$c;
+ return Default$d;
}
static get DefaultType() {
- return DefaultType$c;
+ return DefaultType$d;
}
static get NAME() {
- return NAME$d;
+ return NAME$e;
}
// Public
});
// Auto-initialize inline datepickers on DOMContentLoaded
-EventHandler.on(document, `DOMContentLoaded${EVENT_KEY$a}${DATA_API_KEY$6}`, () => {
+EventHandler.on(document, `DOMContentLoaded${EVENT_KEY$b}${DATA_API_KEY$6}`, () => {
for (const element of document.querySelectorAll(`${SELECTOR_DATA_TOGGLE$6}[data-bs-inline="true"]`)) {
Datepicker.getOrCreateInstance(element);
}
* Constants
*/
-const NAME$c = 'dialog';
+const NAME$d = 'dialog';
const DATA_KEY$9 = 'bs.dialog';
-const EVENT_KEY$9 = `.${DATA_KEY$9}`;
+const EVENT_KEY$a = `.${DATA_KEY$9}`;
const DATA_API_KEY$5 = '.data-api';
-const EVENT_SHOW$3 = `show${EVENT_KEY$9}`;
-const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$9}`;
-const EVENT_CANCEL = `cancel${EVENT_KEY$9}`;
-const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$9}${DATA_API_KEY$5}`;
+const EVENT_SHOW$3 = `show${EVENT_KEY$a}`;
+const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$a}`;
+const EVENT_CANCEL = `cancel${EVENT_KEY$a}`;
+const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$a}${DATA_API_KEY$5}`;
const CLASS_NAME_NONMODAL = 'dialog-nonmodal';
const CLASS_NAME_INSTANT = 'dialog-instant';
const CLASS_NAME_SWAP_IN = 'dialog-swap-in';
const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="dialog"]';
-const Default$b = {
+const Default$c = {
backdrop: true,
keyboard: true,
modal: true
};
-const DefaultType$b = {
+const DefaultType$c = {
backdrop: '(boolean|string)',
keyboard: 'boolean',
modal: 'boolean'
class Dialog extends DialogBase {
// Getters
static get Default() {
- return Default$b;
+ return Default$c;
}
static get DefaultType() {
- return DefaultType$b;
+ return DefaultType$c;
}
static get NAME() {
- return NAME$c;
+ return NAME$d;
}
// Public
const newDialog = Dialog.getOrCreateInstance(target, config);
target.classList.add(CLASS_NAME_SWAP_IN);
newDialog.show(this);
- EventHandler.one(target, `shown${EVENT_KEY$9}`, () => {
+ EventHandler.one(target, `shown${EVENT_KEY$a}`, () => {
target.classList.remove(CLASS_NAME_SWAP_IN);
});
const currentInstance = Dialog.getInstance(currentDialog);
* Constants
*/
-const NAME$b = 'navoverflow';
+const NAME$c = 'navoverflow';
const DATA_KEY$8 = 'bs.navoverflow';
-const EVENT_KEY$8 = `.${DATA_KEY$8}`;
-const EVENT_UPDATE = `update${EVENT_KEY$8}`;
-const EVENT_OVERFLOW = `overflow${EVENT_KEY$8}`;
+const EVENT_KEY$9 = `.${DATA_KEY$8}`;
+const EVENT_UPDATE = `update${EVENT_KEY$9}`;
+const EVENT_OVERFLOW = `overflow${EVENT_KEY$9}`;
const CLASS_NAME_OVERFLOW = 'nav-overflow';
const CLASS_NAME_OVERFLOW_MENU = 'nav-overflow-menu';
const CLASS_NAME_HIDDEN = 'd-none';
const SELECTOR_OVERFLOW_MENU = '.nav-overflow-menu';
const SELECTOR_CUSTOM_ICON = '[data-bs-overflow-icon]';
const CLASS_NAME_KEEP = 'nav-overflow-keep';
-const Default$a = {
+const Default$b = {
collapseBelow: 0,
iconPlacement: 'start',
menuPlacement: 'bottom-end',
moreIcon: '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3"/></svg>',
threshold: 0 // Minimum items to keep visible before showing overflow
};
-const DefaultType$a = {
+const DefaultType$b = {
collapseBelow: '(number|string)',
iconPlacement: 'string',
menuPlacement: 'string',
// Getters
static get Default() {
- return Default$a;
+ return Default$b;
}
static get DefaultType() {
- return DefaultType$a;
+ return DefaultType$b;
}
static get NAME() {
- return NAME$b;
+ return NAME$c;
}
// Public
}
});
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap util/swipe.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+
+/**
+ * Constants
+ */
+
+const NAME$b = 'swipe';
+const EVENT_KEY$8 = '.bs.swipe';
+const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$8}`;
+const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$8}`;
+const EVENT_TOUCHEND = `touchend${EVENT_KEY$8}`;
+const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$8}`;
+const EVENT_POINTERUP = `pointerup${EVENT_KEY$8}`;
+const POINTER_TYPE_TOUCH = 'touch';
+const POINTER_TYPE_PEN = 'pen';
+const CLASS_NAME_POINTER_EVENT = 'pointer-event';
+const SWIPE_THRESHOLD = 40;
+const Default$a = {
+ endCallback: null,
+ leftCallback: null,
+ rightCallback: null,
+ upCallback: null,
+ downCallback: null
+};
+const DefaultType$a = {
+ endCallback: '(function|null)',
+ leftCallback: '(function|null)',
+ rightCallback: '(function|null)',
+ upCallback: '(function|null)',
+ downCallback: '(function|null)'
+};
+
+/**
+ * Class definition
+ */
+
+class Swipe extends Config {
+ constructor(element, config) {
+ super();
+ this._element = element;
+ if (!element || !Swipe.isSupported()) {
+ return;
+ }
+ this._config = this._getConfig(config);
+ this._deltaX = 0;
+ this._deltaY = 0;
+ this._supportPointerEvents = Boolean(window.PointerEvent);
+ this._initEvents();
+ }
+
+ // Getters
+ static get Default() {
+ return Default$a;
+ }
+ static get DefaultType() {
+ return DefaultType$a;
+ }
+ static get NAME() {
+ return NAME$b;
+ }
+
+ // Public
+ dispose() {
+ EventHandler.off(this._element, EVENT_KEY$8);
+ }
+
+ // Private
+ _start(event) {
+ if (!this._supportPointerEvents) {
+ this._deltaX = event.touches[0].clientX;
+ this._deltaY = event.touches[0].clientY;
+ return;
+ }
+ if (this._eventIsPointerPenTouch(event)) {
+ this._deltaX = event.clientX;
+ this._deltaY = event.clientY;
+ }
+ }
+ _end(event) {
+ if (this._eventIsPointerPenTouch(event)) {
+ this._deltaX = event.clientX - this._deltaX;
+ this._deltaY = event.clientY - this._deltaY;
+ }
+ this._handleSwipe();
+ execute(this._config.endCallback);
+ }
+ _move(event) {
+ if (event.touches && event.touches.length > 1) {
+ this._deltaX = 0;
+ this._deltaY = 0;
+ return;
+ }
+ this._deltaX = event.touches[0].clientX - this._deltaX;
+ this._deltaY = event.touches[0].clientY - this._deltaY;
+ }
+ _handleSwipe() {
+ const absDeltaX = Math.abs(this._deltaX);
+ const absDeltaY = Math.abs(this._deltaY);
+
+ // Determine primary axis: whichever has greater movement wins
+ if (absDeltaY > absDeltaX && absDeltaY > SWIPE_THRESHOLD) {
+ // Vertical swipe
+ const direction = this._deltaY > 0 ? 'down' : 'up';
+ this._deltaX = 0;
+ this._deltaY = 0;
+ execute(direction === 'down' ? this._config.downCallback : this._config.upCallback);
+ return;
+ }
+ if (absDeltaX > SWIPE_THRESHOLD) {
+ // Horizontal swipe
+ const direction = absDeltaX / this._deltaX;
+ this._deltaX = 0;
+ this._deltaY = 0;
+ if (!direction) {
+ return;
+ }
+ execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);
+ return;
+ }
+ this._deltaX = 0;
+ this._deltaY = 0;
+ }
+ _initEvents() {
+ if (this._supportPointerEvents) {
+ EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));
+ EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));
+ this._element.classList.add(CLASS_NAME_POINTER_EVENT);
+ } else {
+ EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));
+ EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));
+ EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));
+ }
+ }
+ _eventIsPointerPenTouch(event) {
+ return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);
+ }
+
+ // Static
+ static isSupported() {
+ return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
+ }
+}
+
/**
* --------------------------------------------------------------------------
* Bootstrap drawer.js
*/
const NAME$8 = 'otpInput';
-const DATA_KEY$5 = 'bs.otp-input';
+const DATA_KEY$5 = 'bs.otpInput';
const EVENT_KEY$5 = `.${DATA_KEY$5}`;
const DATA_API_KEY$2 = '.data-api';
const EVENT_COMPLETE = `complete${EVENT_KEY$5}`;
const EVENT_INPUT = `input${EVENT_KEY$5}`;
+const EVENT_DOMCONTENT_LOADED = `DOMContentLoaded${EVENT_KEY$5}${DATA_API_KEY$2}`;
const SELECTOR_DATA_OTP = '[data-bs-otp]';
const SELECTOR_INPUT = 'input';
+
+// Events that should refresh the active-slot highlight as the caret moves
+const SYNC_EVENTS = ['blur', 'keyup', 'click', 'select'];
+const CLASS_NAME_INPUT = 'otp-input';
+const CLASS_NAME_RENDERED = 'otp-rendered';
+const CLASS_NAME_SLOTS = 'otp-slots';
+const CLASS_NAME_SLOT = 'otp-slot';
+const CLASS_NAME_SLOT_FILLED = 'otp-slot-filled';
+const CLASS_NAME_SLOT_ACTIVE = 'otp-slot-active';
+const CLASS_NAME_SEPARATOR = 'otp-separator';
+const MASK_CHARACTER = '•';
+
+// Per-type input mode, validation pattern, and a filter that strips disallowed characters
+const TYPES = {
+ numeric: {
+ inputmode: 'numeric',
+ pattern: '[0-9]*',
+ filter: /[^0-9]/g
+ },
+ alphanumeric: {
+ inputmode: 'text',
+ pattern: '[A-Za-z0-9]*',
+ filter: /[^A-Za-z0-9]/g
+ },
+ alpha: {
+ inputmode: 'text',
+ pattern: '[A-Za-z]*',
+ filter: /[^A-Za-z]/g
+ }
+};
const Default$7 = {
- length: 6,
- mask: false
+ groups: null,
+ length: null,
+ mask: false,
+ separator: '·',
+ type: 'numeric'
};
const DefaultType$7 = {
- length: 'number',
- mask: 'boolean'
+ groups: '(array|null)',
+ length: '(number|null)',
+ mask: 'boolean',
+ separator: 'string',
+ type: 'string'
};
/**
class OtpInput extends BaseComponent {
constructor(element, config) {
super(element, config);
- this._inputs = SelectorEngine.find(SELECTOR_INPUT, this._element);
- this._setupInputs();
+ this._input = SelectorEngine.findOne(SELECTOR_INPUT, this._element);
+ if (!this._input) {
+ return;
+ }
+ this._type = TYPES[this._config.type] || TYPES.numeric;
+ this._length = this._resolveLength();
+ this._slots = [];
+ this._setupInput();
+ this._renderSlots();
this._addEventListeners();
+ this._render();
}
// Getters
// Public
getValue() {
- return this._inputs.map(input => input.value).join('');
+ return this._input.value;
}
setValue(value) {
- const chars = [...String(value)];
- for (const [index, input] of this._inputs.entries()) {
- input.value = chars[index] || '';
- }
+ this._input.value = this._sanitize(String(value));
+ this._render();
this._checkComplete();
}
clear() {
- for (const input of this._inputs) {
- input.value = '';
- }
- this._inputs[0]?.focus();
+ this._input.value = '';
+ this._render();
+ this._input.focus();
}
focus() {
- // Focus first empty input, or last input if all filled
- const emptyInput = this._inputs.find(input => !input.value);
- if (emptyInput) {
- emptyInput.focus();
- } else {
- this._inputs.at(-1)?.focus();
+ this._input.focus();
+ // Place the caret after the last entered character
+ const end = this._input.value.length;
+ this._input.setSelectionRange(end, end);
+ this._render();
+ }
+ dispose() {
+ EventHandler.off(this._input, 'input', this._onInput);
+ EventHandler.off(this._input, 'focus', this._onFocus);
+ for (const type of SYNC_EVENTS) {
+ EventHandler.off(this._input, type, this._onSync);
}
+ this._slotsContainer?.remove();
+ this._element.classList.remove(CLASS_NAME_RENDERED);
+ super.dispose();
}
// Private
- _setupInputs() {
- for (const input of this._inputs) {
- // Set attributes for proper OTP handling
- input.setAttribute('maxlength', '1');
- input.setAttribute('inputmode', 'numeric');
- input.setAttribute('pattern', '\\d*');
-
- // First input gets autocomplete for browser OTP autofill
- if (input === this._inputs[0]) {
- input.setAttribute('autocomplete', 'one-time-code');
- } else {
- input.setAttribute('autocomplete', 'off');
- }
-
- // Mask input if configured
- if (this._config.mask) {
- input.setAttribute('type', 'password');
- }
+ _resolveLength() {
+ if (this._config.length) {
+ return this._config.length;
}
+ const maxLength = Number.parseInt(this._input.getAttribute('maxlength'), 10);
+ return Number.isNaN(maxLength) || maxLength < 1 ? 6 : maxLength;
}
- _addEventListeners() {
- for (const [index, input] of this._inputs.entries()) {
- EventHandler.on(input, 'input', event => this._handleInput(event, index));
- EventHandler.on(input, 'keydown', event => this._handleKeydown(event, index));
- EventHandler.on(input, 'paste', event => this._handlePaste(event));
- EventHandler.on(input, 'focus', event => this._handleFocus(event));
+ _setupInput() {
+ const input = this._input;
+
+ // A single text field backs the whole control so screen readers, password
+ // managers, and SMS autofill treat it like any other input.
+ if (input.type === 'number' || input.type === 'password') {
+ input.type = 'text';
+ }
+ input.classList.add(CLASS_NAME_INPUT);
+ input.setAttribute('maxlength', String(this._length));
+ input.setAttribute('inputmode', this._type.inputmode);
+ input.setAttribute('pattern', this._type.pattern);
+ if (!input.getAttribute('autocomplete')) {
+ input.setAttribute('autocomplete', 'one-time-code');
}
- }
- _handleInput(event, index) {
- const input = event.target;
- // Only allow digits
- if (!/^\d*$/.test(input.value)) {
- input.value = input.value.replace(/\D/g, '');
+ // Filter any pre-filled value through the configured type
+ if (input.value) {
+ input.value = this._sanitize(input.value);
}
+ }
+ _renderSlots() {
+ const container = document.createElement('div');
+ container.className = CLASS_NAME_SLOTS;
+ container.setAttribute('aria-hidden', 'true');
const {
- value
- } = input;
-
- // Handle multi-character input (some browsers/autofill)
- if (value.length > 1) {
- // Distribute characters across inputs
- const chars = [...value];
- input.value = chars[0] || '';
- for (let i = 1; i < chars.length && index + i < this._inputs.length; i++) {
- this._inputs[index + i].value = chars[i];
+ groups
+ } = this._config;
+ let groupIndex = 0;
+ let inGroup = 0;
+ for (let i = 0; i < this._length; i++) {
+ const slot = document.createElement('div');
+ slot.className = CLASS_NAME_SLOT;
+ container.append(slot);
+ this._slots.push(slot);
+
+ // Insert a visual separator between configured groups
+ if (Array.isArray(groups) && groups.length > 0) {
+ inGroup++;
+ if (inGroup === groups[groupIndex] && i < this._length - 1) {
+ const separator = document.createElement('div');
+ separator.className = CLASS_NAME_SEPARATOR;
+ separator.textContent = this._config.separator;
+ container.append(separator);
+ groupIndex = Math.min(groupIndex + 1, groups.length - 1);
+ inGroup = 0;
+ }
}
-
- // Focus appropriate input
- const nextIndex = Math.min(index + chars.length, this._inputs.length - 1);
- this._inputs[nextIndex].focus();
- } else if (value && index < this._inputs.length - 1) {
- // Auto-advance to next input
- this._inputs[index + 1].focus();
}
+ this._slotsContainer = container;
+ this._element.append(container);
+ this._element.classList.add(CLASS_NAME_RENDERED);
+ }
+ _addEventListeners() {
+ // Listeners are attached with bare event names (not namespaced) because
+ // `input` is not in EventHandler's native-events list; we keep references
+ // so they can be removed on dispose.
+ this._onInput = () => this._handleInput();
+ this._onFocus = () => this.focus();
+ this._onSync = () => this._render();
+ EventHandler.on(this._input, 'input', this._onInput);
+ EventHandler.on(this._input, 'focus', this._onFocus);
+
+ // Keep the active-slot highlight in sync with the caret
+ for (const type of SYNC_EVENTS) {
+ EventHandler.on(this._input, type, this._onSync);
+ }
+ }
+ _handleInput() {
+ const sanitized = this._sanitize(this._input.value);
+ if (sanitized !== this._input.value) {
+ this._input.value = sanitized;
+ }
+ this._render();
EventHandler.trigger(this._element, EVENT_INPUT, {
- value: this.getValue(),
- index
+ value: this._input.value
});
this._checkComplete();
}
- _handleKeydown(event, index) {
- const {
- key
- } = event;
- switch (key) {
- case 'Backspace':
- {
- if (!this._inputs[index].value && index > 0) {
- // Move to previous input and clear it
- event.preventDefault();
- this._inputs[index - 1].value = '';
- this._inputs[index - 1].focus();
- }
- break;
- }
- case 'Delete':
- {
- // Clear current and shift remaining values left
- event.preventDefault();
- for (let i = index; i < this._inputs.length - 1; i++) {
- this._inputs[i].value = this._inputs[i + 1].value;
- }
- this._inputs.at(-1).value = '';
- break;
- }
- case 'ArrowLeft':
- {
- if (index > 0) {
- event.preventDefault();
- this._inputs[index - 1].focus();
- }
- break;
- }
- case 'ArrowRight':
- {
- if (index < this._inputs.length - 1) {
- event.preventDefault();
- this._inputs[index + 1].focus();
- }
- break;
- }
-
- // No default
- }
+ _sanitize(value) {
+ return value.replace(this._type.filter, '').slice(0, this._length);
}
- _handlePaste(event) {
- event.preventDefault();
- const pastedData = (event.clipboardData || window.clipboardData).getData('text');
- const digits = pastedData.replace(/\D/g, '').slice(0, this._inputs.length);
- if (digits) {
- this.setValue(digits);
-
- // Focus last filled input or last input
- const lastIndex = Math.min(digits.length, this._inputs.length) - 1;
- this._inputs[lastIndex].focus();
+ _render() {
+ const {
+ value
+ } = this._input;
+ const isFocused = document.activeElement === this._input;
+ // The active slot follows the caret, clamped to the last slot when the value is full
+ const caret = Math.min(this._input.selectionStart ?? value.length, this._length - 1);
+ for (const [index, slot] of this._slots.entries()) {
+ const char = value[index] ?? '';
+ slot.textContent = char && this._config.mask ? MASK_CHARACTER : char;
+ slot.classList.toggle(CLASS_NAME_SLOT_FILLED, Boolean(char));
+ slot.classList.toggle(CLASS_NAME_SLOT_ACTIVE, isFocused && index === caret);
}
}
- _handleFocus(event) {
- // Select the content on focus for easy replacement
- event.target.select();
- }
_checkComplete() {
- const value = this.getValue();
- const isComplete = value.length === this._inputs.length && this._inputs.every(input => input.value !== '');
- if (isComplete) {
+ const {
+ value
+ } = this._input;
+ if (value.length === this._length) {
EventHandler.trigger(this._element, EVENT_COMPLETE, {
value
});
* Data API implementation
*/
-EventHandler.on(document, `DOMContentLoaded${EVENT_KEY$5}${DATA_API_KEY$2}`, () => {
+EventHandler.on(document, EVENT_DOMCONTENT_LOADED, () => {
for (const element of SelectorEngine.find(SELECTOR_DATA_OTP)) {
OtpInput.getOrCreateInstance(element);
}
-{"version":3,"file":"bootstrap.bundle.js","sources":["../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/dom/manipulator.js","../../js/src/util/index.js","../../js/src/util/config.js","../../js/src/base-component.js","../../js/src/dom/selector-engine.js","../../js/src/util/component-functions.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/util/swipe.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../js/src/util/floating-ui.js","../../js/src/menu.js","../../js/src/combobox.js","../../node_modules/vanilla-calendar-pro/index.mjs","../../js/src/datepicker.js","../../js/src/dialog-base.js","../../js/src/dialog.js","../../js/src/nav-overflow.js","../../js/src/drawer.js","../../js/src/strength.js","../../js/src/otp-input.js","../../js/src/chips.js","../../js/src/util/sanitizer.js","../../js/src/util/template-factory.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/src/toggler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${[...instanceMap.keys()][0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n getAny(element) {\n if (elementMap.has(element)) {\n return elementMap.get(element).values().next().value || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, { delegateTarget: element })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n hydrateObj(event, { delegateTarget: target })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events)\n .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'\n const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n let typeEvent = getTypeEvent(originalTypeEvent)\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n callable = wrapFunction(callable)\n }\n\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler, callable) :\n bootstrapHandler(element, callable)\n\n fn.delegationSelector = isDelegated ? handler : null\n fn.callable = callable\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false)\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getElementEvents(element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const evt = hydrateObj(new Event(event, { bubbles: true, cancelable: true }), args)\n element.dispatchEvent(evt)\n return evt\n }\n}\n\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value\n } catch {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value\n }\n })\n }\n }\n\n return obj\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n if (value === Number(value).toString()) {\n return Number(value)\n }\n\n if (value === '' || value === 'null') {\n return null\n }\n\n if (typeof value !== 'string') {\n return value\n }\n\n try {\n return JSON.parse(decodeURIComponent(value))\n } catch {\n return value\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'))\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1)\n attributes[pureKey] = normalizeData(element.dataset[key])\n }\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n if (isElement(object)) {\n return object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.harrytheo.com/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport { isElement, toType } from './index.js'\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {}\n }\n\n static get DefaultType() {\n return {}\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n return config\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n }\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property]\n const valueType = isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n }\n }\n}\n\nexport default Config\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '6.0.0-alpha1'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n // Private\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible, parseSelector } from '../util/index.js'\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`\n }\n\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null\n }\n\n return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null\n}\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [...Element.prototype.querySelectorAll.call(element, selector)]\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [...element.children].filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n let ancestor = element.parentNode.closest(selector)\n\n while (ancestor) {\n parents.push(ancestor)\n ancestor = ancestor.parentNode.closest(selector)\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n },\n\n getSelectorFromElement(element) {\n const selector = getSelector(element)\n\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null\n }\n\n return null\n },\n\n getElementFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.findOne(selector) : null\n },\n\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.find(selector) : []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport { isDisabled } from './index.js'\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`\n const name = component.NAME\n\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`)\n const instance = component.getOrCreateInstance(target)\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]()\n })\n}\n\nconst eventActionOnPlugin = (Plugin, onEvent, stringSelector, method, callback = null) => {\n eventAction(`${onEvent}.${Plugin.NAME}`, stringSelector, data => {\n const instances = data.targets.filter(Boolean).map(element => Plugin.getOrCreateInstance(element))\n if (typeof callback === 'function') {\n callback({ ...data, instances })\n }\n\n for (const instance of instances) {\n instance[method]()\n }\n })\n}\n\nconst eventAction = (onEvent, stringSelector, callback) => {\n const selector = `${stringSelector}:not(.disabled):not(:disabled)`\n EventHandler.on(document, onEvent, selector, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n const selector = SelectorEngine.getSelectorFromElement(this)\n const targets = selector ? SelectorEngine.find(selector) : [this]\n\n callback({ targets, event })\n })\n}\n\nexport {\n enableDismissTrigger,\n eventActionOnPlugin\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE)\n\n if (closeEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE)\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated)\n }\n\n // Private\n _destroyElement() {\n this._element.remove()\n EventHandler.trigger(this._element, EVENT_CLOSED)\n this.dispose()\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close')\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'button'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {\n event.preventDefault()\n\n const button = event.target.closest(SELECTOR_DATA_TOGGLE)\n const data = Button.getOrCreateInstance(button)\n\n data.toggle()\n})\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport Config from './config.js'\nimport { execute } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'swipe'\nconst EVENT_KEY = '.bs.swipe'\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null,\n upCallback: null,\n downCallback: null\n}\n\nconst DefaultType = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)',\n upCallback: '(function|null)',\n downCallback: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super()\n this._element = element\n\n if (!element || !Swipe.isSupported()) {\n return\n }\n\n this._config = this._getConfig(config)\n this._deltaX = 0\n this._deltaY = 0\n this._supportPointerEvents = Boolean(window.PointerEvent)\n this._initEvents()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX\n this._deltaY = event.touches[0].clientY\n\n return\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX\n this._deltaY = event.clientY\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX\n this._deltaY = event.clientY - this._deltaY\n }\n\n this._handleSwipe()\n execute(this._config.endCallback)\n }\n\n _move(event) {\n if (event.touches && event.touches.length > 1) {\n this._deltaX = 0\n this._deltaY = 0\n return\n }\n\n this._deltaX = event.touches[0].clientX - this._deltaX\n this._deltaY = event.touches[0].clientY - this._deltaY\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX)\n const absDeltaY = Math.abs(this._deltaY)\n\n // Determine primary axis: whichever has greater movement wins\n if (absDeltaY > absDeltaX && absDeltaY > SWIPE_THRESHOLD) {\n // Vertical swipe\n const direction = this._deltaY > 0 ? 'down' : 'up'\n this._deltaX = 0\n this._deltaY = 0\n execute(direction === 'down' ? this._config.downCallback : this._config.upCallback)\n return\n }\n\n if (absDeltaX > SWIPE_THRESHOLD) {\n // Horizontal swipe\n const direction = absDeltaX / this._deltaX\n this._deltaX = 0\n this._deltaY = 0\n\n if (!direction) {\n return\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback)\n return\n }\n\n this._deltaX = 0\n this._deltaY = 0\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event))\n }\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n }\n}\n\nexport default Swipe\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getNextActiveElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd\n} from './util/index.js'\nimport Swipe from './util/swipe.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next'\nconst ORDER_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_END = 'carousel-item-end'\nconst CLASS_NAME_START = 'carousel-item-start'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n}\n\nconst DefaultType = {\n interval: 'number',\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._interval = null\n this._activeElement = null\n this._isSliding = false\n this.touchTimeout = null\n this._swipeHelper = null\n\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._addEventListeners()\n\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT)\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (document.visibilityState === 'visible' && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n this._slide(ORDER_PREV)\n }\n\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element)\n }\n\n this._clearInterval()\n }\n\n cycle() {\n this._clearInterval()\n this._updateInterval()\n\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval)\n }\n\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle())\n return\n }\n\n this.cycle()\n }\n\n to(index) {\n const items = this._getItems()\n if (index > items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index))\n return\n }\n\n const activeIndex = this._getItemIndex(this._getActive())\n if (activeIndex === index) {\n return\n }\n\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV\n\n this._slide(order, items[index])\n }\n\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause())\n EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle())\n }\n\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault())\n }\n\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return\n }\n\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n }\n\n this._swipeHelper = new Swipe(this._element, swipeConfig)\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n const direction = KEY_TO_DIRECTION[event.key]\n if (direction) {\n event.preventDefault()\n this._slide(this._directionToOrder(direction))\n }\n }\n\n _getItemIndex(element) {\n return this._getItems().indexOf(element)\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return\n }\n\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE)\n activeIndicator.removeAttribute('aria-current')\n\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement)\n\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE)\n newActiveIndicator.setAttribute('aria-current', 'true')\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._getActive()\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n this._config.interval = elementInterval || this._config.defaultInterval\n }\n\n _slide(order, element = null) {\n if (this._isSliding) {\n return\n }\n\n const activeElement = this._getActive()\n const isNext = order === ORDER_NEXT\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap)\n\n if (nextElement === activeElement) {\n return\n }\n\n const nextElementIndex = this._getItemIndex(nextElement)\n\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n })\n }\n\n const slideEvent = triggerEvent(EVENT_SLIDE)\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n const isCycling = Boolean(this._interval)\n this.pause()\n\n this._isSliding = true\n\n this._setActiveIndicatorElement(nextElementIndex)\n this._activeElement = nextElement\n\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n this._isSliding = false\n\n triggerEvent(EVENT_SLID)\n }\n\n this._queueCallback(completeCallBack, activeElement, this._isAnimated())\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE)\n }\n\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element)\n }\n\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n }\n\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n const carousel = Carousel.getOrCreateInstance(target)\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n carousel.to(slideIndex)\n carousel._maybeEnableCycle()\n return\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next()\n carousel._maybeEnableCycle()\n return\n }\n\n carousel.prev()\n carousel._maybeEnableCycle()\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel)\n }\n})\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getElement,\n reflow\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\nconst Default = {\n parent: null,\n toggle: true\n}\n\nconst DefaultType = {\n parent: '(null|element)',\n toggle: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._triggerArray = []\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElement => foundElement === this._element)\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem)\n }\n }\n\n this._initializeChildren()\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown())\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return\n }\n\n let activeChildren = []\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\n .filter(element => element !== this._element)\n .map(element => Collapse.getOrCreateInstance(element, { toggle: false }))\n }\n\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide()\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n this._addAriaAndCollapsedClass(this._triggerArray, true)\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n this._element.style[dimension] = ''\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n this._queueCallback(complete, this._element, true)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger)\n\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false)\n }\n }\n\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n this._queueCallback(complete, this._element, true)\n }\n\n // Private\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle) // Coerce string values\n config.parent = getElement(config.parent)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE)\n\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element)\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected))\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element))\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return\n }\n\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen)\n element.setAttribute('aria-expanded', isOpen)\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {\n event.preventDefault()\n }\n\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, { toggle: false }).toggle()\n }\n})\n\nexport default Collapse\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n const firstChar = placement[0];\n return firstChar === 't' || firstChar === 'b' ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.includes('start') ? placement.replace('start', 'end') : placement.replace('end', 'start');\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n const side = getSide(placement);\n return oppositeSideMap[side] + placement.slice(side.length);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n// Maximum number of resets that can occur before bailing to avoid infinite reset loops.\nconst MAX_RESET_COUNT = 50;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const platformWithDetectOverflow = platform.detectOverflow ? platform : {\n ...platform,\n detectOverflow\n };\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let resetCount = 0;\n const middlewareData = {};\n for (let i = 0; i < middleware.length; i++) {\n const currentMiddleware = middleware[i];\n if (!currentMiddleware) {\n continue;\n }\n const {\n name,\n fn\n } = currentMiddleware;\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform: platformWithDetectOverflow,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData[name] = {\n ...middlewareData[name],\n ...data\n };\n if (reset && resetCount < MAX_RESET_COUNT) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects,\n platform\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await platform.detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await platform.detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n platform\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && display !== 'inline' && display !== 'contents';\n}\nfunction isTableElement(element) {\n return /^(table|td|th)$/.test(getNodeName(element));\n}\nfunction isTopLayer(element) {\n try {\n if (element.matches(':popover-open')) {\n return true;\n }\n } catch (_e) {\n // no-op\n }\n try {\n return element.matches(':modal');\n } catch (_e) {\n return false;\n }\n}\nconst willChangeRe = /transform|translate|scale|rotate|perspective|filter/;\nconst containRe = /paint|layout|strict|content/;\nconst isNotNone = value => !!value && value !== 'none';\nlet isWebKitValue;\nfunction isContainingBlock(elementOrCss) {\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return isNotNone(css.transform) || isNotNone(css.translate) || isNotNone(css.scale) || isNotNone(css.rotate) || isNotNone(css.perspective) || !isWebKit() && (isNotNone(css.backdropFilter) || isNotNone(css.filter)) || willChangeRe.test(css.willChange || '') || containRe.test(css.contain || '');\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (isWebKitValue == null) {\n isWebKitValue = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('-webkit-backdrop-filter', 'none');\n }\n return isWebKitValue;\n}\nfunction isLastTraversableNode(node) {\n return /^(html|body|#document)$/.test(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n } else {\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n }\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && (currentContainingBlockComputedStyle.position === 'absolute' || currentContainingBlockComputedStyle.position === 'fixed') || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);\n let top = firstRect.top;\n let right = firstRect.right;\n let bottom = firstRect.bottom;\n let left = firstRect.left;\n for (let i = 1; i < clippingAncestors.length; i++) {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);\n top = max(rect.top, top);\n right = min(rect.right, right);\n bottom = min(rect.bottom, bottom);\n left = max(rect.left, left);\n }\n return {\n width: right - left,\n height: bottom - top,\n x: left,\n y: top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...(floating ? getOverflowAncestors(floating) : [])] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver && floating) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n if (floating) {\n resizeObserver.observe(floating);\n }\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/floating-ui.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isRTL } from './index.js'\n\n/**\n * Breakpoints for responsive placement (matches SCSS $breakpoints)\n */\nexport const BREAKPOINTS = {\n sm: 576,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536\n}\n\n/**\n * Default placement with RTL support\n */\nexport const getDefaultPlacement = (fallback = 'bottom') => {\n if (fallback.includes('-start') || fallback.includes('-end')) {\n const [side, alignment] = fallback.split('-')\n const flippedAlignment = alignment === 'start' ? 'end' : 'start'\n return isRTL() ? `${side}-${flippedAlignment}` : fallback\n }\n\n return fallback\n}\n\n/**\n * Parse a placement string that may contain responsive prefixes\n * Example: \"bottom-start md:top-end lg:right\" returns { xs: 'bottom-start', md: 'top-end', lg: 'right' }\n *\n * @param {string} placementString - The placement string to parse\n * @param {string} defaultPlacement - The default placement to use for xs/base\n * @returns {object|null} - Object with breakpoint keys and placement values, or null if not responsive\n */\nexport const parseResponsivePlacement = (placementString, defaultPlacement = 'bottom') => {\n // Check if placement contains responsive prefixes (e.g., \"bottom-start md:top-end\")\n if (!placementString || !placementString.includes(':')) {\n return null\n }\n\n // Parse the placement string into breakpoint-keyed object\n const parts = placementString.split(/\\s+/)\n const placements = { xs: defaultPlacement } // Default fallback\n\n for (const part of parts) {\n if (part.includes(':')) {\n // Responsive placement like \"md:top-end\"\n const [breakpoint, placement] = part.split(':')\n if (BREAKPOINTS[breakpoint] !== undefined) {\n placements[breakpoint] = placement\n }\n } else {\n // Base placement (no prefix = xs/default)\n placements.xs = part\n }\n }\n\n return placements\n}\n\n/**\n * Get the active placement for the current viewport width\n *\n * @param {object} responsivePlacements - Object with breakpoint keys and placement values\n * @param {string} defaultPlacement - Fallback placement\n * @returns {string} - The active placement for current viewport\n */\nexport const getResponsivePlacement = (responsivePlacements, defaultPlacement = 'bottom') => {\n if (!responsivePlacements) {\n return defaultPlacement\n }\n\n // Get current viewport width\n const viewportWidth = window.innerWidth\n\n // Find the largest breakpoint that matches\n let activePlacement = responsivePlacements.xs || defaultPlacement\n\n // Check breakpoints in order (sm, md, lg, xl, 2xl)\n const breakpointOrder = ['sm', 'md', 'lg', 'xl', '2xl']\n\n for (const breakpoint of breakpointOrder) {\n const minWidth = BREAKPOINTS[breakpoint]\n if (viewportWidth >= minWidth && responsivePlacements[breakpoint]) {\n activePlacement = responsivePlacements[breakpoint]\n }\n }\n\n return activePlacement\n}\n\n/**\n * Create media query listeners for responsive placement changes\n *\n * @param {Function} callback - Callback to run when breakpoint changes\n * @returns {Array} - Array of { mql, handler } objects for cleanup\n */\nexport const createBreakpointListeners = callback => {\n const listeners = []\n\n for (const breakpoint of Object.keys(BREAKPOINTS)) {\n const minWidth = BREAKPOINTS[breakpoint]\n const mql = window.matchMedia(`(min-width: ${minWidth}px)`)\n\n mql.addEventListener('change', callback)\n listeners.push({ mql, handler: callback })\n }\n\n return listeners\n}\n\n/**\n * Clean up media query listeners\n *\n * @param {Array} listeners - Array of { mql, handler } objects\n */\nexport const disposeBreakpointListeners = listeners => {\n for (const { mql, handler } of listeners) {\n mql.removeEventListener('change', handler)\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap menu.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n computePosition,\n flip,\n shift,\n offset,\n autoUpdate\n} from '@floating-ui/dom'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n execute,\n getElement,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop\n} from './util/index.js'\nimport {\n parseResponsivePlacement,\n getResponsivePlacement,\n createBreakpointListeners,\n disposeBreakpointListeners\n} from './util/floating-ui.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'menu'\nconst DATA_KEY = 'bs.menu'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\nconst ENTER_KEY = 'Enter'\nconst SPACE_KEY = ' '\nconst RIGHT_MOUSE_BUTTON = 2\n\nconst SUBMENU_CLOSE_DELAY = 100\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"menu\"]:not(.disabled):not(:disabled)'\n\nconst SELECTOR_MENU = '.menu'\nconst SELECTOR_SUBMENU = '.submenu'\nconst SELECTOR_SUBMENU_TOGGLE = '.submenu > .menu-item'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.menu-item:not(.disabled):not(:disabled)'\n\nconst DEFAULT_PLACEMENT = 'bottom-start'\nconst SUBMENU_PLACEMENT = 'end-start'\n\nconst resolveLogicalPlacement = placement => {\n if (isRTL()) {\n return placement.replace(/^start(?=-|$)/, 'right').replace(/^end(?=-|$)/, 'left')\n }\n\n return placement.replace(/^start(?=-|$)/, 'left').replace(/^end(?=-|$)/, 'right')\n}\n\nconst triangleSign = (p1, p2, p3) =>\n ((p1.x - p3.x) * (p2.y - p3.y)) - ((p2.x - p3.x) * (p1.y - p3.y))\n\nconst Default = {\n autoClose: true,\n boundary: 'clippingParents',\n container: false,\n display: 'dynamic',\n offset: [0, 2],\n floatingConfig: null,\n menu: null,\n placement: DEFAULT_PLACEMENT,\n reference: 'toggle',\n strategy: 'absolute',\n submenuTrigger: 'both',\n submenuDelay: SUBMENU_CLOSE_DELAY\n}\n\nconst DefaultType = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n display: 'string',\n offset: '(array|string|function)',\n floatingConfig: '(null|object|function)',\n menu: '(null|element)',\n placement: 'string',\n reference: '(string|element|object)',\n strategy: 'string',\n submenuTrigger: 'string',\n submenuDelay: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass Menu extends BaseComponent {\n static _openInstances = new Set()\n\n constructor(element, config) {\n if (typeof computePosition === 'undefined') {\n throw new TypeError('Bootstrap\\'s menus require Floating UI (https://floating-ui.com)')\n }\n\n super(element, config)\n\n this._floatingCleanup = null\n this._mediaQueryListeners = []\n this._responsivePlacements = null\n this._parent = this._element.parentNode\n this._isSubmenu = this._parent.classList?.contains('submenu')\n this._openSubmenus = new Map()\n this._submenuCloseTimeouts = new Map()\n this._hoverIntentData = null\n\n this._menu = this._config.menu || this._findMenu()\n\n this._menuOriginalParent = this._menu?.parentNode\n\n this._parseResponsivePlacements()\n this._setupSubmenuListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._moveMenuToContainer()\n this._createFloating()\n\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of document.body.children) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n this._element.focus({ focusVisible: false })\n this._element.setAttribute('aria-expanded', 'true')\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.add(CLASS_NAME_SHOW)\n }\n\n Menu._openInstances.add(this)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n this._disposeMediaQueryListeners()\n this._closeAllSubmenus()\n this._clearAllSubmenuTimeouts()\n Menu._openInstances.delete(this)\n super.dispose()\n }\n\n update() {\n if (this._floatingCleanup) {\n this._updateFloatingPosition()\n }\n }\n\n // Private\n _findMenu() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.prev(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.findOne(SELECTOR_MENU, this._parent)\n }\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._closeAllSubmenus()\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.remove(CLASS_NAME_SHOW)\n }\n\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'placement')\n Manipulator.removeDataAttribute(this._menu, 'display')\n Menu._openInstances.delete(this)\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = super._getConfig(config)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createFloating() {\n if (this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'display', 'static')\n return\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n this._updateFloatingPosition(referenceElement)\n\n this._floatingCleanup = autoUpdate(\n referenceElement,\n this._menu,\n () => this._updateFloatingPosition(referenceElement)\n )\n }\n\n async _updateFloatingPosition(referenceElement = null) {\n if (!this._menu) {\n return\n }\n\n if (!referenceElement) {\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n } else {\n referenceElement = this._element\n }\n }\n\n const placement = this._getPlacement()\n const middleware = this._getFloatingMiddleware()\n const floatingConfig = this._getFloatingConfig(placement, middleware)\n\n await this._applyFloatingPosition(\n referenceElement,\n this._menu,\n floatingConfig.placement,\n floatingConfig.middleware,\n floatingConfig.strategy\n )\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement() {\n const placement = this._responsivePlacements ?\n getResponsivePlacement(this._responsivePlacements, DEFAULT_PLACEMENT) :\n this._config.placement\n\n return resolveLogicalPlacement(placement)\n }\n\n _parseResponsivePlacements() {\n this._responsivePlacements = parseResponsivePlacement(this._config.placement, DEFAULT_PLACEMENT)\n\n if (this._responsivePlacements) {\n this._setupMediaQueryListeners()\n }\n }\n\n _setupMediaQueryListeners() {\n this._disposeMediaQueryListeners()\n this._mediaQueryListeners = createBreakpointListeners(() => {\n if (this._isShown()) {\n this._updateFloatingPosition()\n }\n })\n }\n\n _disposeMediaQueryListeners() {\n disposeBreakpointListeners(this._mediaQueryListeners)\n this._mediaQueryListeners = []\n }\n\n _getOffset() {\n const { offset: offsetConfig } = this._config\n\n if (typeof offsetConfig === 'string') {\n return offsetConfig.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offsetConfig === 'function') {\n return ({ placement, rects }) => {\n const result = offsetConfig({ placement, reference: rects.reference, floating: rects.floating }, this._element)\n return result\n }\n }\n\n return offsetConfig\n }\n\n _getFloatingMiddleware() {\n const offsetValue = this._getOffset()\n\n const middleware = [\n offset(\n typeof offsetValue === 'function' ?\n offsetValue :\n { mainAxis: offsetValue[1] || 0, crossAxis: offsetValue[0] || 0 }\n ),\n flip({\n fallbackPlacements: this._getFallbackPlacements()\n }),\n shift({\n boundary: this._config.boundary === 'clippingParents' ? 'clippingAncestors' : this._config.boundary\n })\n ]\n\n return middleware\n }\n\n _getFallbackPlacements() {\n const placement = this._getPlacement()\n\n const fallbackMap = {\n bottom: ['top', 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\n 'bottom-start': ['top-start', 'bottom-end', 'top-end'],\n 'bottom-end': ['top-end', 'bottom-start', 'top-start'],\n top: ['bottom', 'top-start', 'top-end', 'bottom-start', 'bottom-end'],\n 'top-start': ['bottom-start', 'top-end', 'bottom-end'],\n 'top-end': ['bottom-end', 'top-start', 'bottom-start'],\n right: ['left', 'right-start', 'right-end', 'left-start', 'left-end'],\n 'right-start': ['left-start', 'right-end', 'left-end', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'right-start', 'left-start', 'top-end', 'bottom-end'],\n left: ['right', 'left-start', 'left-end', 'right-start', 'right-end'],\n 'left-start': ['right-start', 'left-end', 'right-end', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'left-start', 'right-start', 'top-end', 'bottom-end']\n }\n\n return fallbackMap[placement] || ['top', 'bottom', 'right', 'left']\n }\n\n _getFloatingConfig(placement, middleware) {\n const defaultConfig = {\n placement,\n middleware,\n strategy: this._config.strategy\n }\n\n return {\n ...defaultConfig,\n ...execute(this._config.floatingConfig, [undefined, defaultConfig])\n }\n }\n\n _disposeFloating() {\n if (this._floatingCleanup) {\n this._floatingCleanup()\n this._floatingCleanup = null\n }\n }\n\n _getContainer() {\n const { container } = this._config\n if (container === false) {\n return null\n }\n\n return container === true ? document.body : getElement(container)\n }\n\n _moveMenuToContainer() {\n const container = this._getContainer()\n if (!container || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== container) {\n container.append(this._menu)\n }\n }\n\n _restoreMenuToOriginalParent() {\n if (!this._menuOriginalParent || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== this._menuOriginalParent) {\n this._menuOriginalParent.append(this._menu)\n }\n }\n\n async _applyFloatingPosition(reference, floating, placement, middleware, strategy = 'absolute') {\n if (!floating.isConnected) {\n return null\n }\n\n const { x, y, placement: finalPlacement } = await computePosition(\n reference,\n floating,\n { placement, middleware, strategy }\n )\n\n if (!floating.isConnected) {\n return null\n }\n\n Object.assign(floating.style, {\n position: strategy,\n left: `${x}px`,\n top: `${y}px`,\n margin: '0'\n })\n\n Manipulator.setDataAttribute(floating, 'placement', finalPlacement)\n return finalPlacement\n }\n\n // -------------------------------------------------------------------------\n // Submenu handling\n // -------------------------------------------------------------------------\n\n _setupSubmenuListeners() {\n if (this._config.submenuTrigger === 'hover' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'mouseenter', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerEnter(event)\n })\n\n EventHandler.on(this._menu, 'mouseleave', SELECTOR_SUBMENU, event => {\n this._onSubmenuLeave(event)\n })\n\n EventHandler.on(this._menu, 'mousemove', event => {\n this._trackMousePosition(event)\n })\n }\n\n if (this._config.submenuTrigger === 'click' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'click', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerClick(event)\n })\n }\n }\n\n _onSubmenuTriggerEnter(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n this._cancelSubmenuCloseTimeout(submenu)\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n\n _onSubmenuLeave(event) {\n const submenuWrapper = event.target.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu || !this._openSubmenus.has(submenu)) {\n return\n }\n\n if (this._isMovingTowardSubmenu(event, submenu)) {\n return\n }\n\n this._scheduleSubmenuClose(submenu, submenuWrapper)\n }\n\n _onSubmenuTriggerClick(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n if (this._openSubmenus.has(submenu)) {\n this._closeSubmenu(submenu, submenuWrapper)\n } else {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n }\n\n _openSubmenu(trigger, submenu, submenuWrapper) {\n if (this._openSubmenus.has(submenu)) {\n return\n }\n\n trigger.setAttribute('aria-expanded', 'true')\n trigger.setAttribute('aria-haspopup', 'true')\n\n submenu.classList.add(CLASS_NAME_SHOW)\n submenuWrapper.classList.add(CLASS_NAME_SHOW)\n\n const cleanup = this._createSubmenuFloating(trigger, submenu, submenuWrapper)\n this._openSubmenus.set(submenu, cleanup)\n\n EventHandler.on(submenu, 'mouseenter', () => {\n this._cancelSubmenuCloseTimeout(submenu)\n })\n }\n\n _closeSubmenu(submenu, submenuWrapper) {\n if (!this._openSubmenus.has(submenu)) {\n return\n }\n\n const nestedSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, submenu)\n for (const nested of nestedSubmenus) {\n const nestedWrapper = nested.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(nested, nestedWrapper)\n }\n\n const trigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, submenuWrapper)\n\n const cleanup = this._openSubmenus.get(submenu)\n if (cleanup) {\n cleanup()\n }\n\n this._openSubmenus.delete(submenu)\n EventHandler.off(submenu, 'mouseenter')\n\n if (trigger) {\n trigger.setAttribute('aria-expanded', 'false')\n }\n\n submenu.classList.remove(CLASS_NAME_SHOW)\n submenuWrapper.classList.remove(CLASS_NAME_SHOW)\n\n submenu.style.position = ''\n submenu.style.left = ''\n submenu.style.top = ''\n submenu.style.margin = ''\n }\n\n _closeAllSubmenus() {\n for (const [submenu] of this._openSubmenus) {\n const submenuWrapper = submenu.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(submenu, submenuWrapper)\n }\n }\n\n _closeSiblingSubmenus(currentSubmenuWrapper) {\n const parent = currentSubmenuWrapper.parentNode\n const siblingSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} > ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, parent)\n\n for (const siblingMenu of siblingSubmenus) {\n const siblingWrapper = siblingMenu.closest(SELECTOR_SUBMENU)\n if (siblingWrapper !== currentSubmenuWrapper) {\n this._closeSubmenu(siblingMenu, siblingWrapper)\n }\n }\n }\n\n _createSubmenuFloating(trigger, submenu, submenuWrapper) {\n const referenceElement = submenuWrapper\n const placement = resolveLogicalPlacement(SUBMENU_PLACEMENT)\n const middleware = [\n offset({ mainAxis: 0, crossAxis: -4 }),\n flip({\n fallbackPlacements: [\n resolveLogicalPlacement('start-start'),\n resolveLogicalPlacement('end-end'),\n resolveLogicalPlacement('start-end')\n ]\n }),\n shift({ padding: 8 })\n ]\n\n const updatePosition = () => this._applyFloatingPosition(referenceElement, submenu, placement, middleware)\n\n updatePosition()\n return autoUpdate(referenceElement, submenu, updatePosition)\n }\n\n _scheduleSubmenuClose(submenu, submenuWrapper) {\n this._cancelSubmenuCloseTimeout(submenu)\n\n const timeoutId = setTimeout(() => {\n this._closeSubmenu(submenu, submenuWrapper)\n this._submenuCloseTimeouts.delete(submenu)\n }, this._config.submenuDelay)\n\n this._submenuCloseTimeouts.set(submenu, timeoutId)\n }\n\n _cancelSubmenuCloseTimeout(submenu) {\n const timeoutId = this._submenuCloseTimeouts.get(submenu)\n if (timeoutId) {\n clearTimeout(timeoutId)\n this._submenuCloseTimeouts.delete(submenu)\n }\n }\n\n _clearAllSubmenuTimeouts() {\n for (const timeoutId of this._submenuCloseTimeouts.values()) {\n clearTimeout(timeoutId)\n }\n\n this._submenuCloseTimeouts.clear()\n }\n\n // -------------------------------------------------------------------------\n // Hover intent / Safe triangle\n // -------------------------------------------------------------------------\n\n _trackMousePosition(event) {\n this._hoverIntentData = {\n x: event.clientX,\n y: event.clientY,\n timestamp: Date.now()\n }\n }\n\n _isMovingTowardSubmenu(event, submenu) {\n if (!this._hoverIntentData) {\n return false\n }\n\n const submenuRect = submenu.getBoundingClientRect()\n const currentPos = { x: event.clientX, y: event.clientY }\n const lastPos = { x: this._hoverIntentData.x, y: this._hoverIntentData.y }\n\n const isRtl = isRTL()\n const targetX = isRtl ? submenuRect.right : submenuRect.left\n const topCorner = { x: targetX, y: submenuRect.top }\n const bottomCorner = { x: targetX, y: submenuRect.bottom }\n\n return this._pointInTriangle(currentPos, lastPos, topCorner, bottomCorner)\n }\n\n _pointInTriangle(point, v1, v2, v3) {\n const d1 = triangleSign(point, v1, v2)\n const d2 = triangleSign(point, v2, v3)\n const d3 = triangleSign(point, v3, v1)\n\n const hasNeg = (d1 < 0) || (d2 < 0) || (d3 < 0)\n const hasPos = (d1 > 0) || (d2 > 0) || (d3 > 0)\n\n return !(hasNeg && hasPos)\n }\n\n // -------------------------------------------------------------------------\n // Keyboard navigation\n // -------------------------------------------------------------------------\n\n _selectMenuItem({ key, target }) {\n const currentMenu = target.closest(SELECTOR_MENU) || this._menu\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (!items.length) {\n return\n }\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n _handleSubmenuKeydown(event) {\n const { key, target } = event\n const isRtl = isRTL()\n\n const enterKey = isRtl ? ARROW_LEFT_KEY : ARROW_RIGHT_KEY\n const exitKey = isRtl ? ARROW_RIGHT_KEY : ARROW_LEFT_KEY\n\n const submenuWrapper = target.closest(SELECTOR_SUBMENU)\n const isSubmenuTrigger = submenuWrapper && target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === enterKey && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === exitKey) {\n const currentMenu = target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper) {\n event.preventDefault()\n event.stopPropagation()\n\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n this._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return true\n }\n }\n\n if (key === HOME_KEY || key === END_KEY) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = target.closest(SELECTOR_MENU)\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (items.length) {\n const targetItem = key === HOME_KEY ? items[0] : items.at(-1)\n targetItem.focus()\n }\n\n return true\n }\n\n return false\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n for (const instance of Menu._openInstances) {\n if (instance._config.autoClose === false) {\n continue\n }\n\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(instance._menu)\n if (\n composedPath.includes(instance._element) ||\n (instance._config.autoClose === 'inside' && !isMenuTarget) ||\n (instance._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n if (instance._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n const relatedTarget = { relatedTarget: instance._element }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n instance._completeHide(relatedTarget)\n }\n }\n\n static dataApiKeydownHandler(event) {\n const isInput = /input|textarea/i.test(event.target.tagName)\n const isEscapeEvent = event.key === ESCAPE_KEY\n const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)\n const isLeftOrRightEvent = [ARROW_LEFT_KEY, ARROW_RIGHT_KEY].includes(event.key)\n const isHomeOrEndEvent = [HOME_KEY, END_KEY].includes(event.key)\n const isEnterOrSpaceEvent = [ENTER_KEY, SPACE_KEY].includes(event.key)\n\n const isSubmenuTrigger = event.target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if (!isUpOrDownEvent && !isEscapeEvent && !isLeftOrRightEvent && !isHomeOrEndEvent &&\n !(isEnterOrSpaceEvent && isSubmenuTrigger)) {\n return\n }\n\n if (isInput && !isEscapeEvent) {\n return\n }\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\n this :\n (SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.next(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\n\n if (!getToggleButton) {\n return\n }\n\n const instance = Menu.getOrCreateInstance(getToggleButton)\n\n if ((isLeftOrRightEvent || isHomeOrEndEvent || (isEnterOrSpaceEvent && isSubmenuTrigger)) && instance._handleSubmenuKeydown(event)) {\n return\n }\n\n if (isUpOrDownEvent) {\n event.preventDefault()\n event.stopPropagation()\n instance.show()\n instance._selectMenuItem(event)\n return\n }\n\n if (isEscapeEvent && instance._isShown()) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = event.target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper && instance._openSubmenus.size > 0) {\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n instance._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return\n }\n\n instance.hide()\n getToggleButton.focus()\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Menu.getOrCreateInstance(this).toggle()\n})\n\nexport default Menu\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap combobox.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Menu from './menu.js'\nimport { getNextActiveElement, isDisabled, isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'combobox'\nconst DATA_KEY = 'bs.combobox'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\nconst ENTER_KEY = 'Enter'\nconst SPACE_KEY = ' '\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SELECTED = 'selected'\nconst CLASS_NAME_PLACEHOLDER = 'combobox-placeholder'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"combobox\"]'\nconst SELECTOR_MENU = '.menu'\nconst SELECTOR_MENU_ITEM = '.menu-item[data-bs-value]'\nconst SELECTOR_VISIBLE_ITEMS = '.menu-item[data-bs-value]:not(.disabled):not(:disabled)'\nconst SELECTOR_VALUE = '.combobox-value'\nconst SELECTOR_SEARCH_INPUT = '.combobox-search-input'\nconst SELECTOR_NO_RESULTS = '.combobox-no-results'\n\nconst Default = {\n boundary: 'clippingParents',\n multiple: false,\n name: null,\n offset: [0, 2],\n placeholder: '',\n placement: 'bottom-start',\n search: false,\n searchNormalize: false\n}\n\nconst DefaultType = {\n boundary: '(string|element)',\n multiple: 'boolean',\n name: '(string|null)',\n offset: '(array|string|function)',\n placeholder: 'string',\n placement: 'string',\n search: 'boolean',\n searchNormalize: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Combobox extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._toggle = this._element\n this._menu = SelectorEngine.next(this._toggle, SELECTOR_MENU)[0]\n this._valueDisplay = SelectorEngine.findOne(SELECTOR_VALUE, this._toggle)\n this._searchInput = SelectorEngine.findOne(SELECTOR_SEARCH_INPUT, this._menu)\n this._noResults = SelectorEngine.findOne(SELECTOR_NO_RESULTS, this._menu)\n this._hiddenInput = null\n this._menuInstance = null\n\n this._createHiddenInput()\n this._createMenuInstance()\n this._syncInitialSelection()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._toggle) || this._isShown()) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._toggle, EVENT_SHOW)\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._menuInstance.show()\n\n if (this._searchInput) {\n this._searchInput.value = ''\n this._filterItems('')\n requestAnimationFrame(() => this._searchInput.focus())\n }\n\n EventHandler.trigger(this._toggle, EVENT_SHOWN)\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._toggle, EVENT_HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._menuInstance.hide()\n EventHandler.trigger(this._toggle, EVENT_HIDDEN)\n }\n\n dispose() {\n if (this._menuInstance) {\n this._menuInstance.dispose()\n this._menuInstance = null\n }\n\n if (this._hiddenInput) {\n this._hiddenInput.remove()\n this._hiddenInput = null\n }\n\n EventHandler.off(this._menu, EVENT_KEY)\n EventHandler.off(this._toggle, EVENT_KEY)\n\n super.dispose()\n }\n\n // Private\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _createHiddenInput() {\n const { name } = this._config\n if (!name) {\n return\n }\n\n this._hiddenInput = document.createElement('input')\n this._hiddenInput.type = 'hidden'\n this._hiddenInput.name = name\n this._hiddenInput.value = ''\n this._toggle.parentNode.insertBefore(this._hiddenInput, this._toggle)\n }\n\n _createMenuInstance() {\n this._menuInstance = new Menu(this._toggle, {\n menu: this._menu,\n autoClose: this._config.multiple ? 'outside' : true,\n boundary: this._config.boundary,\n offset: this._config.offset,\n placement: this._config.placement\n })\n }\n\n _syncInitialSelection() {\n const selectedItems = this._getSelectedItems()\n if (selectedItems.length > 0) {\n this._updateToggleText()\n this._updateHiddenInput()\n } else {\n this._showPlaceholder()\n }\n }\n\n _addEventListeners() {\n EventHandler.on(this._menu, 'click', SELECTOR_MENU_ITEM, event => {\n const item = event.target.closest(SELECTOR_MENU_ITEM)\n if (!item || isDisabled(item)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n this._selectItem(item)\n })\n\n EventHandler.on(this._toggle, 'keydown', event => {\n this._handleToggleKeydown(event)\n })\n\n EventHandler.on(this._menu, 'keydown', event => {\n this._handleMenuKeydown(event)\n })\n\n if (this._searchInput) {\n EventHandler.on(this._searchInput, 'input', () => {\n this._filterItems(this._searchInput.value)\n })\n\n EventHandler.on(this._searchInput, 'keydown', event => {\n if (event.key === ARROW_DOWN_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n items[0].focus()\n }\n }\n\n if (event.key === ESCAPE_KEY) {\n this.hide()\n this._toggle.focus()\n }\n })\n }\n }\n\n _selectItem(item) {\n if (this._config.multiple) {\n item.classList.toggle(CLASS_NAME_SELECTED)\n item.setAttribute('aria-selected', item.classList.contains(CLASS_NAME_SELECTED))\n } else {\n const previouslySelected = SelectorEngine.find(`.${CLASS_NAME_SELECTED}`, this._menu)\n for (const prev of previouslySelected) {\n prev.classList.remove(CLASS_NAME_SELECTED)\n prev.setAttribute('aria-selected', 'false')\n }\n\n item.classList.add(CLASS_NAME_SELECTED)\n item.setAttribute('aria-selected', 'true')\n }\n\n this._updateToggleText()\n this._updateHiddenInput()\n\n const value = this._config.multiple ?\n this._getSelectedItems().map(el => el.dataset.bsValue) :\n item.dataset.bsValue\n\n EventHandler.trigger(this._toggle, EVENT_CHANGE, {\n value,\n item\n })\n\n if (!this._config.multiple) {\n this.hide()\n this._toggle.focus()\n }\n }\n\n _updateToggleText() {\n const selectedItems = this._getSelectedItems()\n\n if (selectedItems.length === 0) {\n this._showPlaceholder()\n return\n }\n\n this._valueDisplay.classList.remove(CLASS_NAME_PLACEHOLDER)\n\n if (this._config.multiple && selectedItems.length > 1) {\n this._valueDisplay.textContent = `${selectedItems.length} selected`\n } else {\n const item = selectedItems[0]\n const label = SelectorEngine.findOne('.menu-item-content > span:first-child', item)\n this._valueDisplay.textContent = label ? label.textContent : item.textContent.trim()\n }\n }\n\n _showPlaceholder() {\n const { placeholder } = this._config\n if (placeholder) {\n this._valueDisplay.textContent = placeholder\n this._valueDisplay.classList.add(CLASS_NAME_PLACEHOLDER)\n }\n }\n\n _updateHiddenInput() {\n if (!this._hiddenInput) {\n return\n }\n\n const selectedItems = this._getSelectedItems()\n const values = selectedItems.map(el => el.dataset.bsValue)\n this._hiddenInput.value = this._config.multiple ? values.join(',') : (values[0] || '')\n }\n\n _getSelectedItems() {\n return SelectorEngine.find(`.${CLASS_NAME_SELECTED}`, this._menu)\n }\n\n _getVisibleItems() {\n return SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu)\n .filter(item => isVisible(item))\n }\n\n _filterItems(query) {\n const normalizedQuery = this._normalizeText(query.toLowerCase().trim())\n const items = SelectorEngine.find(SELECTOR_MENU_ITEM, this._menu)\n let visibleCount = 0\n\n for (const item of items) {\n const text = this._normalizeText(item.textContent.toLowerCase().trim())\n const matches = !normalizedQuery || text.includes(normalizedQuery)\n item.style.display = matches ? '' : 'none'\n if (matches) {\n visibleCount++\n }\n }\n\n if (this._noResults) {\n this._noResults.classList.toggle('d-none', visibleCount > 0)\n }\n }\n\n _normalizeText(text) {\n if (this._config.searchNormalize) {\n return text.normalize('NFD').replace(/[\\u0300-\\u036F]/g, '')\n }\n\n return text\n }\n\n _handleToggleKeydown(event) {\n const { key } = event\n\n if (key === ARROW_DOWN_KEY || key === ARROW_UP_KEY) {\n event.preventDefault()\n if (!this._isShown()) {\n this.show()\n }\n\n const items = this._getVisibleItems()\n if (items.length > 0) {\n const target = key === ARROW_DOWN_KEY ? items[0] : items.at(-1)\n target.focus()\n }\n\n return\n }\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && !this._isShown()) {\n event.preventDefault()\n this.show()\n }\n }\n\n _handleMenuKeydown(event) {\n const { key, target } = event\n\n if (key === ESCAPE_KEY) {\n event.preventDefault()\n event.stopPropagation()\n this.hide()\n this._toggle.focus()\n return\n }\n\n if (key === TAB_KEY) {\n this.hide()\n return\n }\n\n const isInput = target.matches('input')\n\n if (key === ARROW_DOWN_KEY || key === ARROW_UP_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n return\n }\n\n if (key === HOME_KEY || key === END_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n const targetItem = key === HOME_KEY ? items[0] : items.at(-1)\n targetItem.focus()\n }\n\n return\n }\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && !isInput) {\n event.preventDefault()\n const item = target.closest(SELECTOR_MENU_ITEM)\n if (item && !isDisabled(item)) {\n this._selectItem(item)\n }\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Combobox.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Combobox.getOrCreateInstance(this).toggle()\n})\n\nEventHandler.on(document, 'DOMContentLoaded', () => {\n for (const toggle of SelectorEngine.find(SELECTOR_DATA_TOGGLE)) {\n Combobox.getOrCreateInstance(toggle)\n }\n})\n\nexport default Combobox\n","/*! name: vanilla-calendar-pro v3.1.0 | url: https://github.com/uvarov-frontend/vanilla-calendar-pro */\nvar __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,n)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,__spreadValues=(e,t)=>{for(var n in t||(t={}))__hasOwnProp.call(t,n)&&__defNormalProp(e,n,t[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(t))__propIsEnum.call(t,n)&&__defNormalProp(e,n,t[n]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t)),__publicField=(e,t,n)=>(__defNormalProp(e,\"symbol\"!=typeof t?t+\"\":t,n),n);const errorMessages={notFoundSelector:e=>`${e} is not found, check the first argument passed to new Calendar.`,notInit:'The calendar has not been initialized, please initialize it using the \"init()\" method first.',notLocale:\"You specified an incorrect language label or did not specify the required number of values for «locale.weekdays» or «locale.months».\",incorrectTime:\"The value of the time property can be: false, 12 or 24.\",incorrectMonthsCount:\"For the «multiple» calendar type, the «displayMonthsCount» parameter can have a value from 2 to 12, and for all others it cannot be greater than 1.\"},setContext=(e,t,n)=>{e.context[t]=n},destroy=e=>{var t,n,a,o,l;if(!e.context.isInit)throw new Error(errorMessages.notInit);e.inputMode?(null==(t=e.context.mainElement.parentElement)||t.removeChild(e.context.mainElement),null==(a=null==(n=e.context.inputElement)?void 0:n.replaceWith)||a.call(n,e.context.originalElement),setContext(e,\"inputElement\",void 0)):null==(l=(o=e.context.mainElement).replaceWith)||l.call(o,e.context.originalElement),setContext(e,\"mainElement\",e.context.originalElement),e.onDestroy&&e.onDestroy(e)},skipOpenOnFocus=new WeakSet,shouldSkipOpenOnFocus=e=>skipOpenOnFocus.has(e),setSkipOpenOnFocus=e=>{skipOpenOnFocus.add(e)},clearSkipOpenOnFocus=e=>{skipOpenOnFocus.delete(e)},PREV_TABINDEX_ATTR=\"data-vc-prev-tabindex\",isFocusable=e=>e.tabIndex>=0&&!e.hasAttribute(\"disabled\")&&\"true\"!==e.getAttribute(\"aria-disabled\"),storePrevTabIndex=e=>{if(e.hasAttribute(PREV_TABINDEX_ATTR))return;const t=e.getAttribute(\"tabindex\");e.setAttribute(PREV_TABINDEX_ATTR,null!=t?t:\"\")},restorePrevTabIndex=e=>{if(!e.hasAttribute(PREV_TABINDEX_ATTR))return;const t=e.getAttribute(PREV_TABINDEX_ATTR);\"\"===t||null===t?e.removeAttribute(\"tabindex\"):e.setAttribute(\"tabindex\",t),e.removeAttribute(PREV_TABINDEX_ATTR)},disableTabbing=e=>{isFocusable(e)&&(storePrevTabIndex(e),e.tabIndex=-1);const t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>isFocusable(e)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;t.nextNode();){const e=t.currentNode;storePrevTabIndex(e),e.tabIndex=-1}},restoreTabbing=e=>{restorePrevTabIndex(e),e.querySelectorAll(`[${PREV_TABINDEX_ATTR}]`).forEach(restorePrevTabIndex)},hide=e=>{if(e.context.isShowInInputMode&&e.context.currentType){if(e.context.mainElement.dataset.vcCalendarHidden=\"\",setContext(e,\"isShowInInputMode\",!1),e.inputMode&&disableTabbing(e.context.mainElement),e.context.cleanupHandlers[0]&&(e.context.cleanupHandlers.forEach((e=>e())),setContext(e,\"cleanupHandlers\",[])),e.inputMode&&e.context.inputElement&&e.context.mainElement.contains(document.activeElement)){(\"function\"==typeof e.openOnFocus||!0===e.openOnFocus)&&setSkipOpenOnFocus(e),e.context.inputElement.focus()}e.onHide&&e.onHide(e)}};function getOffset(e){if(!e||!e.getBoundingClientRect)return{top:0,bottom:0,left:0,right:0};const t=e.getBoundingClientRect(),n=document.documentElement;return{bottom:t.bottom,right:t.right,top:t.top+window.scrollY-n.clientTop,left:t.left+window.scrollX-n.clientLeft}}function getViewportDimensions(){return{vw:Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),vh:Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)}}function getWindowScrollPosition(){return{left:window.scrollX||document.documentElement.scrollLeft||0,top:window.scrollY||document.documentElement.scrollTop||0}}function calculateAvailableSpace(e){const{top:t,left:n}=getWindowScrollPosition(),{top:a,left:o}=getOffset(e),{vh:l,vw:s}=getViewportDimensions(),i=a-t,r=o-n;return{top:i,bottom:l-(i+e.clientHeight),left:r,right:s-(r+e.clientWidth)}}function getAvailablePosition(e,t,n=5){const a={top:!0,bottom:!0,left:!0,right:!0},o=[];if(!t||!e)return{canShow:a,parentPositions:o};const{bottom:l,top:s}=calculateAvailableSpace(e),{top:i,left:r}=getOffset(e),{height:c,width:d}=t.getBoundingClientRect(),{vh:u,vw:m}=getViewportDimensions(),p=m/2,h=u/2;return[{condition:i<h,position:\"top\"},{condition:i>h,position:\"bottom\"},{condition:r<p,position:\"left\"},{condition:r>p,position:\"right\"}].forEach((({condition:e,position:t})=>{e&&o.push(t)})),Object.assign(a,{top:c<=s-n,bottom:c<=l-n,left:d<=r,right:d<=m-r}),{canShow:a,parentPositions:o}}const handleDay=(e,t,n,a)=>{var o;const l=a.querySelector(`[data-vc-date=\"${t}\"]`),s=null==l?void 0:l.querySelector(\"[data-vc-date-btn]\");if(!l||!s)return;if((null==n?void 0:n.modifier)&&s.classList.add(...n.modifier.trim().split(\" \")),!(null==n?void 0:n.html))return;const i=document.createElement(\"div\");i.className=e.styles.datePopup,i.dataset.vcDatePopup=\"\",i.innerHTML=e.sanitizerHTML(n.html),s.ariaExpanded=\"true\",s.ariaLabel=`${s.ariaLabel}, ${null==(o=null==i?void 0:i.textContent)?void 0:o.replace(/^\\s+|\\s+(?=\\s)|\\s+$/g,\"\").replace(/ /g,\" \")}`,l.appendChild(i),requestAnimationFrame((()=>{if(!i)return;const{canShow:e}=getAvailablePosition(l,i),t=e.bottom?l.offsetHeight:-i.offsetHeight,n=e.left&&!e.right?l.offsetWidth-i.offsetWidth/2:!e.left&&e.right?i.offsetWidth/2:0;Object.assign(i.style,{left:`${n}px`,top:`${t}px`})}))},createDatePopup=(e,t)=>{var n;e.popups&&(null==(n=Object.entries(e.popups))||n.forEach((([n,a])=>handleDay(e,n,a,t))))},getDate=e=>new Date(`${e}T00:00:00`),getDateString=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,\"0\")}-${String(e.getDate()).padStart(2,\"0\")}`,parseDates=e=>e.reduce(((e,t)=>{if(t instanceof Date||\"number\"==typeof t){const n=t instanceof Date?t:new Date(t);e.push(n.toISOString().substring(0,10))}else t.match(/^(\\d{4}-\\d{2}-\\d{2})$/g)?e.push(t):t.replace(/(\\d{4}-\\d{2}-\\d{2}).*?(\\d{4}-\\d{2}-\\d{2})/g,((t,n,a)=>{const o=getDate(n),l=getDate(a),s=new Date(o.getTime());for(;s<=l;s.setDate(s.getDate()+1))e.push(getDateString(s));return t}));return e}),[]),updateAttribute=(e,t,n,a=\"\")=>{t?e.setAttribute(n,a):e.getAttribute(n)===a&&e.removeAttribute(n)},setDateModifier=(e,t,n,a,o,l,s)=>{var i,r,c,d;const u=getDate(e.context.displayDateMin)>getDate(l)||getDate(e.context.displayDateMax)<getDate(l)||(null==(i=e.context.disableDates)?void 0:i.includes(l))||!e.selectionMonthsMode&&\"current\"!==s||!e.selectionYearsMode&&getDate(l).getFullYear()!==t;updateAttribute(n,u,\"data-vc-date-disabled\"),a&&updateAttribute(a,u,\"aria-disabled\",\"true\"),a&&updateAttribute(a,u,\"tabindex\",\"-1\"),updateAttribute(n,!e.disableToday&&e.context.dateToday===l,\"data-vc-date-today\"),updateAttribute(n,!e.disableToday&&e.context.dateToday===l,\"aria-current\",\"date\"),updateAttribute(n,null==(r=e.selectedWeekends)?void 0:r.includes(o),\"data-vc-date-weekend\");const m=(null==(c=e.selectedHolidays)?void 0:c[0])?parseDates(e.selectedHolidays):[];if(updateAttribute(n,m.includes(l),\"data-vc-date-holiday\"),(null==(d=e.context.selectedDates)?void 0:d.includes(l))?(n.setAttribute(\"data-vc-date-selected\",\"\"),a&&a.setAttribute(\"aria-selected\",\"true\"),e.context.selectedDates.length>1&&\"multiple-ranged\"===e.selectionDatesMode&&(e.context.selectedDates[0]===l&&e.context.selectedDates[e.context.selectedDates.length-1]===l?n.setAttribute(\"data-vc-date-selected\",\"first-and-last\"):e.context.selectedDates[0]===l?n.setAttribute(\"data-vc-date-selected\",\"first\"):e.context.selectedDates[e.context.selectedDates.length-1]===l&&n.setAttribute(\"data-vc-date-selected\",\"last\"),e.context.selectedDates[0]!==l&&e.context.selectedDates[e.context.selectedDates.length-1]!==l&&n.setAttribute(\"data-vc-date-selected\",\"middle\"))):n.hasAttribute(\"data-vc-date-selected\")&&(n.removeAttribute(\"data-vc-date-selected\"),a&&a.removeAttribute(\"aria-selected\")),!e.context.disableDates.includes(l)&&e.enableEdgeDatesOnly&&e.context.selectedDates.length>1&&\"multiple-ranged\"===e.selectionDatesMode){const t=getDate(e.context.selectedDates[0]),a=getDate(e.context.selectedDates[e.context.selectedDates.length-1]),o=getDate(l);updateAttribute(n,o>t&&o<a,\"data-vc-date-selected\",\"middle\")}},getLocaleString=(e,t,n)=>new Date(`${e}T00:00:00.000Z`).toLocaleString(t,n),getWeekNumber=(e,t)=>{const n=getDate(e),a=(n.getDay()-t+7)%7;n.setDate(n.getDate()+4-a);const o=new Date(n.getFullYear(),0,1),l=Math.ceil(((+n-+o)/864e5+1)/7);return{year:n.getFullYear(),week:l}},addWeekNumberForDate=(e,t,n)=>{const a=getWeekNumber(n,e.firstWeekday);a&&(t.dataset.vcDateWeekNumber=String(a.week))},setDaysAsDisabled=(e,t,n)=>{var a,o,l,s,i;const r=null==(a=e.disableWeekdays)?void 0:a.includes(n),c=e.disableAllDates&&!!(null==(o=e.context.enableDates)?void 0:o[0]);!r&&!c||(null==(l=e.context.enableDates)?void 0:l.includes(t))||(null==(s=e.context.disableDates)?void 0:s.includes(t))||(e.context.disableDates.push(t),null==(i=e.context.disableDates)||i.sort(((e,t)=>+new Date(e)-+new Date(t))))},createDate=(e,t,n,a,o,l)=>{const s=getDate(o).getDay(),i=\"string\"==typeof e.locale&&e.locale.length?e.locale:\"en\",r=document.createElement(\"div\");let c;r.className=e.styles.date,r.dataset.vcDate=o,r.dataset.vcDateMonth=l,r.dataset.vcDateWeekDay=String(s),r.role=\"gridcell\",(\"current\"===l||e.displayDatesOutside)&&(c=document.createElement(\"button\"),c.className=e.styles.dateBtn,c.type=\"button\",c.ariaLabel=getLocaleString(o,i,{dateStyle:\"long\",timeZone:\"UTC\"}),c.dataset.vcDateBtn=\"\",c.innerText=String(a),r.appendChild(c)),e.enableWeekNumbers&&addWeekNumberForDate(e,r,o),setDaysAsDisabled(e,o,s),setDateModifier(e,t,r,c,s,o,l),n.addDate(r),e.onCreateDateEls&&e.onCreateDateEls(e,r)},createDatesFromCurrentMonth=(e,t,n,a,o)=>{for(let l=1;l<=n;l++){const n=new Date(a,o,l);createDate(e,a,t,l,getDateString(n),\"current\")}},createDatesFromNextMonth=(e,t,n,a,o)=>{const l=o+1===12?a+1:a,s=o+1===12?\"01\":o+2<10?`0${o+2}`:o+2;for(let o=1;o<=n;o++){const n=o<10?`0${o}`:String(o);createDate(e,a,t,o,`${l}-${s}-${n}`,\"next\")}},createDatesFromPrevMonth=(e,t,n,a,o)=>{let l=new Date(n,a,0).getDate()-(o-1);const s=0===a?n-1:n,i=0===a?12:a<10?`0${a}`:a;for(let a=o;a>0;a--,l++){createDate(e,n,t,l,`${s}-${i}-${l}`,\"prev\")}},createWeekNumbers=(e,t,n,a,o)=>{if(!e.enableWeekNumbers)return;a.textContent=\"\";const l=document.createElement(\"b\");l.className=e.styles.weekNumbersTitle,l.innerText=\"#\",l.dataset.vcWeekNumbers=\"title\",a.appendChild(l);const s=document.createElement(\"div\");s.className=e.styles.weekNumbersContent,s.dataset.vcWeekNumbers=\"content\",a.appendChild(s);const i=document.createElement(\"button\");i.type=\"button\",i.className=e.styles.weekNumber;const r=o.querySelectorAll(\"[data-vc-date]\"),c=Math.ceil((t+n)/7);for(let t=0;t<c;t++){const n=r[0===t?6:7*t].dataset.vcDate,a=getWeekNumber(n,e.firstWeekday);if(!a)return;const o=i.cloneNode(!0);o.innerText=String(a.week),o.dataset.vcWeekNumber=String(a.week),o.dataset.vcWeekYear=String(a.year),o.role=\"rowheader\",o.ariaLabel=`${a.week}`,s.appendChild(o)}},createDates=e=>{const t=new Date(e.context.selectedYear,e.context.selectedMonth,1),n=e.context.mainElement.querySelectorAll('[data-vc=\"dates\"]'),a=e.context.mainElement.querySelectorAll('[data-vc-week=\"numbers\"]');n.forEach(((n,o)=>{e.selectionDatesMode||(n.dataset.vcDatesDisabled=\"\"),n.textContent=\"\";const l=new Date(t);l.setMonth(l.getMonth()+o);const s=l.getMonth(),i=l.getFullYear(),r=(new Date(i,s,1).getDay()-e.firstWeekday+7)%7,c=new Date(i,s+1,0).getDate(),d=r+c,u=Math.ceil(d/7),m=7*u-d,p=[];for(let t=0;t<u;t++){const t=document.createElement(\"div\");t.className=e.styles.datesRow,t.setAttribute(\"data-vc-dates\",\"row\"),t.setAttribute(\"role\",\"row\"),p.push(t)}let h=0,v=0;const g={addDate:e=>{p[h].appendChild(e),v++,v>=7&&(h++,v=0)}};createDatesFromPrevMonth(e,g,i,s,r),createDatesFromCurrentMonth(e,g,c,i,s),createDatesFromNextMonth(e,g,m,i,s);for(const e of p)n.appendChild(e);createDatePopup(e,n),createWeekNumbers(e,r,c,a[o],n)}))},layoutDefault=e=>`\\n <div class=\"${e.styles.header}\" data-vc=\"header\" role=\"toolbar\" aria-label=\"${e.labels.navigation}\">\\n <#ArrowPrev [month] />\\n <div class=\"${e.styles.headerContent}\" data-vc-header=\"content\">\\n <#Month />\\n <#Year />\\n </div>\\n <#ArrowNext [month] />\\n </div>\\n <div class=\"${e.styles.wrapper}\" data-vc=\"wrapper\">\\n <#WeekNumbers />\\n <div class=\"${e.styles.content}\" data-vc=\"content\" role=\"grid\">\\n <#Week />\\n <#Dates />\\n <#DateRangeTooltip />\\n </div>\\n </div>\\n <#ControlTime />\\n`,layoutMonths=e=>`\\n <div class=\"${e.styles.header}\" data-vc=\"header\" role=\"toolbar\" aria-label=\"${e.labels.navigation}\">\\n <div class=\"${e.styles.headerContent}\" data-vc-header=\"content\">\\n <#Month />\\n <#Year />\\n </div>\\n </div>\\n <div class=\"${e.styles.wrapper}\" data-vc=\"wrapper\">\\n <div class=\"${e.styles.content}\" data-vc=\"content\">\\n <#Months />\\n </div>\\n </div>\\n`,layoutMultiple=e=>`\\n <div class=\"${e.styles.controls}\" data-vc=\"controls\" role=\"toolbar\" aria-label=\"${e.labels.navigation}\">\\n <#ArrowPrev [month] />\\n <#ArrowNext [month] />\\n </div>\\n <div class=\"${e.styles.grid}\" data-vc=\"grid\">\\n <#Multiple>\\n <div class=\"${e.styles.column}\" data-vc=\"column\" role=\"region\">\\n <div class=\"${e.styles.header}\" data-vc=\"header\">\\n <div class=\"${e.styles.headerContent}\" data-vc-header=\"content\">\\n <#Month />\\n <#Year />\\n </div>\\n </div>\\n <div class=\"${e.styles.wrapper}\" data-vc=\"wrapper\">\\n <#WeekNumbers />\\n <div class=\"${e.styles.content}\" data-vc=\"content\" role=\"grid\">\\n <#Week />\\n <#Dates />\\n </div>\\n </div>\\n </div>\\n <#/Multiple>\\n <#DateRangeTooltip />\\n </div>\\n <#ControlTime />\\n`,layoutYears=e=>`\\n <div class=\"${e.styles.header}\" data-vc=\"header\" role=\"toolbar\" aria-label=\"${e.labels.navigation}\">\\n <#ArrowPrev [year] />\\n <div class=\"${e.styles.headerContent}\" data-vc-header=\"content\">\\n <#Month />\\n <#Year />\\n </div>\\n <#ArrowNext [year] />\\n </div>\\n <div class=\"${e.styles.wrapper}\" data-vc=\"wrapper\">\\n <div class=\"${e.styles.content}\" data-vc=\"content\">\\n <#Years />\\n </div>\\n </div>\\n`,ArrowNext=(e,t)=>`<button type=\"button\" class=\"${e.styles.arrowNext}\" data-vc-arrow=\"next\" aria-label=\"${e.labels.arrowNext[t]}\"></button>`,ArrowPrev=(e,t)=>`<button type=\"button\" class=\"${e.styles.arrowPrev}\" data-vc-arrow=\"prev\" aria-label=\"${e.labels.arrowPrev[t]}\"></button>`,ControlTime=e=>e.selectionTimeMode?`<div class=\"${e.styles.time}\" data-vc=\"time\" role=\"group\" aria-label=\"${e.labels.selectingTime}\"></div>`:\"\",DateRangeTooltip=e=>e.onCreateDateRangeTooltip?`<div class=\"${e.styles.dateRangeTooltip}\" data-vc-date-range-tooltip=\"hidden\"></div>`:\"\",Dates=e=>`<div class=\"${e.styles.dates}\" data-vc=\"dates\" aria-live=\"assertive\" aria-label=\"${e.labels.dates}\" ${\"multiple\"===e.type?\"aria-multiselectable\":\"\"}></div>`,Month=e=>`<button type=\"button\" class=\"${e.styles.month}\" data-vc=\"month\"></button>`,Months=e=>`<div class=\"${e.styles.months}\" data-vc=\"months\" role=\"grid\" aria-live=\"assertive\" aria-label=\"${e.labels.months}\"></div>`,Week=e=>`<div class=\"${e.styles.week}\" data-vc=\"week\" role=\"row\" aria-label=\"${e.labels.week}\"></div>`,WeekNumbers=e=>e.enableWeekNumbers?`<div class=\"${e.styles.weekNumbers}\" data-vc-week=\"numbers\" role=\"row\" aria-label=\"${e.labels.weekNumber}\"></div>`:\"\",Year=e=>`<button type=\"button\" class=\"${e.styles.year}\" data-vc=\"year\"></button>`,Years=e=>`<div class=\"${e.styles.years}\" data-vc=\"years\" role=\"grid\" aria-live=\"assertive\" aria-label=\"${e.labels.years}\"></div>`,components={ArrowNext:ArrowNext,ArrowPrev:ArrowPrev,ControlTime:ControlTime,Dates:Dates,DateRangeTooltip:DateRangeTooltip,Month:Month,Months:Months,Week:Week,WeekNumbers:WeekNumbers,Year:Year,Years:Years},getComponent=e=>components[e],parseLayout=(e,t)=>t.replace(/[\\n\\t]/g,\"\").replace(/<#(?!\\/?Multiple)(.*?)>/g,((t,n)=>{const a=(n.match(/\\[(.*?)\\]/)||[])[1],o=n.replace(/[/\\s\\n\\t]|\\[(.*?)\\]/g,\"\"),l=getComponent(o),s=l?l(e,null!=a?a:null):\"\";return e.sanitizerHTML(s)})).replace(/[\\n\\t]/g,\"\"),parseMultipleLayout=(e,t)=>t.replace(new RegExp(\"<#Multiple>(.*?)<#\\\\/Multiple>\",\"gs\"),((t,n)=>{const a=Array(e.context.displayMonthsCount).fill(n).join(\"\");return e.sanitizerHTML(a)})).replace(/[\\n\\t]/g,\"\"),createLayouts=(e,t)=>{const n={default:layoutDefault,month:layoutMonths,year:layoutYears,multiple:layoutMultiple};if(Object.keys(n).forEach((t=>{const a=t;e.layouts[a].length||(e.layouts[a]=n[a](e))})),e.context.mainElement.className=e.styles.calendar,e.context.mainElement.dataset.vc=\"calendar\",e.context.mainElement.dataset.vcType=e.context.currentType,e.context.mainElement.role=\"application\",e.context.mainElement.tabIndex=0,e.context.mainElement.ariaLabel=e.labels.application,\"multiple\"!==e.context.currentType){if(\"multiple\"===e.type&&t){const n=e.context.mainElement.querySelector('[data-vc=\"controls\"]'),a=e.context.mainElement.querySelector('[data-vc=\"grid\"]'),o=t.closest('[data-vc=\"column\"]');return n&&n.remove(),a&&(a.dataset.vcGrid=\"hidden\"),o&&(o.dataset.vcColumn=e.context.currentType),void(o&&(o.innerHTML=e.sanitizerHTML(parseLayout(e,e.layouts[e.context.currentType]))))}e.context.mainElement.innerHTML=e.sanitizerHTML(parseLayout(e,e.layouts[e.context.currentType]))}else e.context.mainElement.innerHTML=e.sanitizerHTML(parseMultipleLayout(e,parseLayout(e,e.layouts[e.context.currentType])))},setVisibilityArrows=(e,t,n,a)=>{e.style.visibility=n?\"hidden\":\"\",t.style.visibility=a?\"hidden\":\"\"},handleDefaultType=(e,t,n)=>{const a=getDate(getDateString(new Date(e.context.selectedYear,e.context.selectedMonth,1))),o=new Date(a.getTime()),l=new Date(a.getTime());o.setMonth(o.getMonth()-e.monthsToSwitch),l.setMonth(l.getMonth()+e.monthsToSwitch);const s=getDate(e.context.dateMin),i=getDate(e.context.dateMax);e.selectionYearsMode||(s.setFullYear(a.getFullYear()),i.setFullYear(a.getFullYear()));const r=!e.selectionMonthsMode||o.getFullYear()<s.getFullYear()||o.getFullYear()===s.getFullYear()&&o.getMonth()<s.getMonth(),c=!e.selectionMonthsMode||l.getFullYear()>i.getFullYear()||l.getFullYear()===i.getFullYear()&&l.getMonth()>i.getMonth()-(e.context.displayMonthsCount-1);setVisibilityArrows(t,n,r,c)},handleYearType=(e,t,n)=>{const a=getDate(e.context.dateMin),o=getDate(e.context.dateMax),l=!!(a.getFullYear()&&e.context.displayYear-7<=a.getFullYear()),s=!!(o.getFullYear()&&e.context.displayYear+7>=o.getFullYear());setVisibilityArrows(t,n,l,s)},visibilityArrows=e=>{if(\"month\"===e.context.currentType)return;const t=e.context.mainElement.querySelector('[data-vc-arrow=\"prev\"]'),n=e.context.mainElement.querySelector('[data-vc-arrow=\"next\"]');if(!t||!n)return;({default:()=>handleDefaultType(e,t,n),year:()=>handleYearType(e,t,n)})[\"multiple\"===e.context.currentType?\"default\":e.context.currentType]()},visibilityHandler=(e,t,n,a,o)=>{const l=new Date(a.setFullYear(e.context.selectedYear,e.context.selectedMonth+n)).getFullYear(),s=new Date(a.setMonth(e.context.selectedMonth+n)).getMonth(),i=e.context.locale.months.long[s],r=t.closest('[data-vc=\"column\"]');r&&(r.ariaLabel=`${i} ${l}`);const c={month:{id:s,label:i},year:{id:l,label:l}};t.innerText=String(c[o].label),t.dataset[`vc${o.charAt(0).toUpperCase()+o.slice(1)}`]=String(c[o].id),t.ariaLabel=`${e.labels[o]} ${c[o].label}`;const d={month:e.selectionMonthsMode,year:e.selectionYearsMode},u=!1===d[o]||\"only-arrows\"===d[o];u&&(t.tabIndex=-1),t.disabled=u},visibilityTitle=e=>{const t=e.context.mainElement.querySelectorAll('[data-vc=\"month\"]'),n=e.context.mainElement.querySelectorAll('[data-vc=\"year\"]'),a=new Date(e.context.selectedYear,e.context.selectedMonth,1);[t,n].forEach((t=>null==t?void 0:t.forEach(((t,n)=>visibilityHandler(e,t,n,a,t.dataset.vc)))))},setYearModifier=(e,t,n,a,o)=>{var l;const s={month:\"[data-vc-months-month]\",year:\"[data-vc-years-year]\"},i={month:{selected:\"data-vc-months-month-selected\",aria:\"aria-selected\",value:\"vcMonthsMonth\",selectedProperty:\"selectedMonth\"},year:{selected:\"data-vc-years-year-selected\",aria:\"aria-selected\",value:\"vcYearsYear\",selectedProperty:\"selectedYear\"}};o&&(null==(l=e.context.mainElement.querySelectorAll(s[n]))||l.forEach((e=>{e.removeAttribute(i[n].selected),e.removeAttribute(i[n].aria)})),setContext(e,i[n].selectedProperty,Number(t.dataset[i[n].value])),visibilityTitle(e),\"year\"===n&&visibilityArrows(e)),a&&(t.setAttribute(i[n].selected,\"\"),t.setAttribute(i[n].aria,\"true\"))},getColumnID=(e,t)=>{var n;if(\"multiple\"!==e.type)return{currentValue:null,columnID:0};const a=e.context.mainElement.querySelectorAll('[data-vc=\"column\"]'),o=Array.from(a).findIndex((e=>e.closest(`[data-vc-column=\"${t}\"]`)));return{currentValue:o>=0?Number(null==(n=a[o].querySelector(`[data-vc=\"${t}\"]`))?void 0:n.getAttribute(`data-vc-${t}`)):null,columnID:Math.max(o,0)}},createMonthEl=(e,t,n,a,o,l,s)=>{const i=t.cloneNode(!1);return i.className=e.styles.monthsMonth,i.innerText=a,i.ariaLabel=o,i.role=\"gridcell\",i.dataset.vcMonthsMonth=`${s}`,l&&(i.ariaDisabled=\"true\"),l&&(i.tabIndex=-1),i.disabled=l,setYearModifier(e,i,\"month\",n===s,!1),i},createMonths=(e,t)=>{var n,a;const o=null==(n=null==t?void 0:t.closest('[data-vc=\"header\"]'))?void 0:n.querySelector('[data-vc=\"year\"]'),l=o?Number(o.dataset.vcYear):e.context.selectedYear,s=(null==t?void 0:t.dataset.vcMonth)?Number(t.dataset.vcMonth):e.context.selectedMonth;setContext(e,\"currentType\",\"month\"),createLayouts(e,t),visibilityTitle(e);const i=e.context.mainElement.querySelector('[data-vc=\"months\"]');if(!e.selectionMonthsMode||!i)return;const r=e.monthsToSwitch>1?e.context.locale.months.long.map(((t,n)=>s-e.monthsToSwitch*n)).concat(e.context.locale.months.long.map(((t,n)=>s+e.monthsToSwitch*n))).filter((e=>e>=0&&e<=12)):Array.from(Array(12).keys()),c=document.createElement(\"button\");c.type=\"button\";for(let t=0;t<12;t++){const n=getDate(e.context.dateMin),a=getDate(e.context.dateMax),o=e.context.displayMonthsCount-1,{columnID:d}=getColumnID(e,\"month\"),u=l<=n.getFullYear()&&t<n.getMonth()+d||l>=a.getFullYear()&&t>a.getMonth()-o+d||l>a.getFullYear()||t!==s&&!r.includes(t),m=createMonthEl(e,c,s,e.context.locale.months.short[t],e.context.locale.months.long[t],u,t);i.appendChild(m),e.onCreateMonthEls&&e.onCreateMonthEls(e,m)}null==(a=e.context.mainElement.querySelector(\"[data-vc-months-month]:not([disabled])\"))||a.focus()},TimeInput=(e,t,n,a,o)=>`\\n <label class=\"${t}\" data-vc-time-input=\"${e}\">\\n <input type=\"text\" name=\"${e}\" maxlength=\"2\" aria-label=\"${n[`input${e.charAt(0).toUpperCase()+e.slice(1)}`]}\" value=\"${a}\" ${o?\"disabled\":\"\"}>\\n </label>\\n`,TimeRange=(e,t,n,a,o,l,s)=>`\\n <label class=\"${t}\" data-vc-time-range=\"${e}\">\\n <input type=\"range\" name=\"${e}\" min=\"${a}\" max=\"${o}\" step=\"${l}\" aria-label=\"${n[`range${e.charAt(0).toUpperCase()+e.slice(1)}`]}\" value=\"${s}\">\\n </label>\\n`,handleActions=(e,t,n,a)=>{({hour:()=>setContext(e,\"selectedHours\",n),minute:()=>setContext(e,\"selectedMinutes\",n)})[a](),setContext(e,\"selectedTime\",`${e.context.selectedHours}:${e.context.selectedMinutes}${e.context.selectedKeeping?` ${e.context.selectedKeeping}`:\"\"}`),e.onChangeTime&&e.onChangeTime(e,t,!1),e.inputMode&&e.context.inputElement&&e.context.mainElement&&e.onChangeToInput&&e.onChangeToInput(e,t)},transformTime24=(e,t)=>{var n;return(null==(n={0:{AM:\"00\",PM:\"12\"},1:{AM:\"01\",PM:\"13\"},2:{AM:\"02\",PM:\"14\"},3:{AM:\"03\",PM:\"15\"},4:{AM:\"04\",PM:\"16\"},5:{AM:\"05\",PM:\"17\"},6:{AM:\"06\",PM:\"18\"},7:{AM:\"07\",PM:\"19\"},8:{AM:\"08\",PM:\"20\"},9:{AM:\"09\",PM:\"21\"},10:{AM:\"10\",PM:\"22\"},11:{AM:\"11\",PM:\"23\"},12:{AM:\"00\",PM:\"12\"}}[Number(e)])?void 0:n[t])||String(e)},handleClickKeepingTime=(e,t,n,a,o)=>{const l=l=>{const s=\"AM\"===e.context.selectedKeeping?\"PM\":\"AM\",i=transformTime24(e.context.selectedHours,s);Number(i)<=a&&Number(i)>=o?(setContext(e,\"selectedKeeping\",s),n.value=i,handleActions(e,l,e.context.selectedHours,\"hour\"),t.ariaLabel=`${e.labels.btnKeeping} ${e.context.selectedKeeping}`,t.innerText=e.context.selectedKeeping):e.onChangeTime&&e.onChangeTime(e,l,!0)};return t.addEventListener(\"click\",l),()=>{t.removeEventListener(\"click\",l)}},transformTime12=e=>({0:\"12\",13:\"01\",14:\"02\",15:\"03\",16:\"04\",17:\"05\",18:\"06\",19:\"07\",20:\"08\",21:\"09\",22:\"10\",23:\"11\"}[Number(e)]||String(e)),updateInputAndRange=(e,t,n,a)=>{e.value=n,t.value=a},updateKeepingTime$1=(e,t,n)=>{t&&n&&(setContext(e,\"selectedKeeping\",n),t.innerText=n)},handleInput$1=(e,t,n,a,o,l,s)=>{const i={hour:(i,r,c)=>{if(!e.selectionTimeMode)return;({12:()=>{if(!e.context.selectedKeeping)return;const d=Number(transformTime24(r,e.context.selectedKeeping));if(!(d<=l&&d>=s))return updateInputAndRange(n,t,e.context.selectedHours,e.context.selectedHours),void(e.onChangeTime&&e.onChangeTime(e,c,!0));updateInputAndRange(n,t,transformTime12(r),transformTime24(r,e.context.selectedKeeping)),i>12&&updateKeepingTime$1(e,a,\"PM\"),handleActions(e,c,transformTime12(r),o)},24:()=>{if(!(i<=l&&i>=s))return updateInputAndRange(n,t,e.context.selectedHours,e.context.selectedHours),void(e.onChangeTime&&e.onChangeTime(e,c,!0));updateInputAndRange(n,t,r,r),handleActions(e,c,r,o)}})[e.selectionTimeMode]()},minute:(a,i,r)=>{if(!(a<=l&&a>=s))return n.value=e.context.selectedMinutes,void(e.onChangeTime&&e.onChangeTime(e,r,!0));n.value=i,t.value=i,handleActions(e,r,i,o)}},r=e=>{const t=Number(n.value),a=n.value.padStart(2,\"0\");i[o]&&i[o](t,a,e)};return n.addEventListener(\"change\",r),()=>{n.removeEventListener(\"change\",r)}},updateInputAndTime=(e,t,n,a,o)=>{t.value=o,handleActions(e,n,o,a)},updateKeepingTime=(e,t,n)=>{t&&(setContext(e,\"selectedKeeping\",n),t.innerText=n)},handleRange=(e,t,n,a,o)=>{const l=l=>{const s=Number(t.value),i=t.value.padStart(2,\"0\"),r=\"hour\"===o,c=24===e.selectionTimeMode,d=s>0&&s<12;r&&!c&&updateKeepingTime(e,a,0===s||d?\"AM\":\"PM\"),updateInputAndTime(e,n,l,o,!r||c||d?i:transformTime12(t.value))};return t.addEventListener(\"input\",l),()=>{t.removeEventListener(\"input\",l)}},handleMouseOver=e=>e.setAttribute(\"data-vc-input-focus\",\"\"),handleMouseOut=e=>e.removeAttribute(\"data-vc-input-focus\"),handleTime=(e,t)=>{const n=t.querySelector('[data-vc-time-range=\"hour\"] input[name=\"hour\"]'),a=t.querySelector('[data-vc-time-range=\"minute\"] input[name=\"minute\"]'),o=t.querySelector('[data-vc-time-input=\"hour\"] input[name=\"hour\"]'),l=t.querySelector('[data-vc-time-input=\"minute\"] input[name=\"minute\"]'),s=t.querySelector('[data-vc-time=\"keeping\"]');if(!(n&&a&&o&&l))return;const i=e=>{e.target===n&&handleMouseOver(o),e.target===a&&handleMouseOver(l)},r=e=>{e.target===n&&handleMouseOut(o),e.target===a&&handleMouseOut(l)};return t.addEventListener(\"mouseover\",i),t.addEventListener(\"mouseout\",r),handleInput$1(e,n,o,s,\"hour\",e.timeMaxHour,e.timeMinHour),handleInput$1(e,a,l,s,\"minute\",e.timeMaxMinute,e.timeMinMinute),handleRange(e,n,o,s,\"hour\"),handleRange(e,a,l,s,\"minute\"),s&&handleClickKeepingTime(e,s,n,e.timeMaxHour,e.timeMinHour),()=>{t.removeEventListener(\"mouseover\",i),t.removeEventListener(\"mouseout\",r)}},createTime=e=>{const t=e.context.mainElement.querySelector('[data-vc=\"time\"]');if(!e.selectionTimeMode||!t)return;const[n,a]=[e.timeMinHour,e.timeMaxHour],[o,l]=[e.timeMinMinute,e.timeMaxMinute],s=e.context.selectedKeeping?transformTime24(e.context.selectedHours,e.context.selectedKeeping):e.context.selectedHours,i=\"range\"===e.timeControls;var r;t.innerHTML=e.sanitizerHTML(`\\n <div class=\"${e.styles.timeContent}\" data-vc-time=\"content\">\\n ${TimeInput(\"hour\",e.styles.timeHour,e.labels,e.context.selectedHours,i)}\\n ${TimeInput(\"minute\",e.styles.timeMinute,e.labels,e.context.selectedMinutes,i)}\\n ${12===e.selectionTimeMode?(r=e.context.selectedKeeping,`<button type=\"button\" class=\"${e.styles.timeKeeping}\" aria-label=\"${e.labels.btnKeeping} ${r}\" data-vc-time=\"keeping\" ${i?\"disabled\":\"\"}>${r}</button>`):\"\"}\\n </div>\\n <div class=\"${e.styles.timeRanges}\" data-vc-time=\"ranges\">\\n ${TimeRange(\"hour\",e.styles.timeRange,e.labels,n,a,e.timeStepHour,s)}\\n ${TimeRange(\"minute\",e.styles.timeRange,e.labels,o,l,e.timeStepMinute,e.context.selectedMinutes)}\\n </div>\\n `),handleTime(e,t)},createWeek=e=>{const t=e.selectedWeekends?[...e.selectedWeekends]:[],n=[...e.context.locale.weekdays.long].reduce(((n,a,o)=>[...n,{id:o,titleShort:e.context.locale.weekdays.short[o],titleLong:a,isWeekend:t.includes(o)}]),[]),a=[...n.slice(e.firstWeekday),...n.slice(0,e.firstWeekday)];e.context.mainElement.querySelectorAll('[data-vc=\"week\"]').forEach((t=>{const n=e.onClickWeekDay?document.createElement(\"button\"):document.createElement(\"b\");e.onClickWeekDay&&(n.type=\"button\"),a.forEach((a=>{const o=n.cloneNode(!0);o.innerText=a.titleShort,o.className=e.styles.weekDay,o.role=\"columnheader\",o.ariaLabel=a.titleLong,o.dataset.vcWeekDay=String(a.id),a.isWeekend&&(o.dataset.vcWeekDayOff=\"\"),t.appendChild(o)}))}))},createYearEl=(e,t,n,a,o)=>{const l=t.cloneNode(!1);return l.className=e.styles.yearsYear,l.innerText=String(o),l.ariaLabel=String(o),l.role=\"gridcell\",l.dataset.vcYearsYear=`${o}`,a&&(l.ariaDisabled=\"true\"),a&&(l.tabIndex=-1),l.disabled=a,setYearModifier(e,l,\"year\",n===o,!1),l},createYears=(e,t)=>{var n;const a=(null==t?void 0:t.dataset.vcYear)?Number(t.dataset.vcYear):e.context.selectedYear;setContext(e,\"currentType\",\"year\"),createLayouts(e,t),visibilityTitle(e),visibilityArrows(e);const o=e.context.mainElement.querySelector('[data-vc=\"years\"]');if(!e.selectionYearsMode||!o)return;const l=\"multiple\"!==e.type||e.context.selectedYear===a?0:1,s=document.createElement(\"button\");s.type=\"button\";for(let t=e.context.displayYear-7;t<e.context.displayYear+8;t++){const n=t<getDate(e.context.dateMin).getFullYear()+l||t>getDate(e.context.dateMax).getFullYear(),i=createYearEl(e,s,a,n,t);o.appendChild(i),e.onCreateYearEls&&e.onCreateYearEls(e,i)}null==(n=e.context.mainElement.querySelector(\"[data-vc-years-year]:not([disabled])\"))||n.focus()},trackChangesHTMLElement=(e,t,n)=>{new MutationObserver((e=>{for(let a=0;a<e.length;a++){if(e[a].attributeName===t){n();break}}})).observe(e,{attributes:!0})},haveListener={value:!1,set:()=>haveListener.value=!0,check:()=>haveListener.value},setTheme=(e,t)=>e.dataset.vcTheme=t,trackChangesThemeInSystemSettings=(e,t)=>{if(setTheme(e.context.mainElement,t.matches?\"dark\":\"light\"),\"system\"!==e.selectedTheme||haveListener.check())return;const n=e=>{const t=document.querySelectorAll('[data-vc=\"calendar\"]');null==t||t.forEach((t=>setTheme(t,e.matches?\"dark\":\"light\")))};t.addEventListener?t.addEventListener(\"change\",n):t.addListener(n),haveListener.set()},detectTheme=(e,t)=>{const n=e.themeAttrDetect.length?document.querySelector(e.themeAttrDetect):null,a=e.themeAttrDetect.replace(/^.*\\[(.+)\\]/g,((e,t)=>t));if(!n||\"system\"===n.getAttribute(a))return void trackChangesThemeInSystemSettings(e,t);const o=n.getAttribute(a);o?(setTheme(e.context.mainElement,o),trackChangesHTMLElement(n,a,(()=>{const t=n.getAttribute(a);t&&setTheme(e.context.mainElement,t)}))):trackChangesThemeInSystemSettings(e,t)},handleTheme=e=>{\"not all\"!==window.matchMedia(\"(prefers-color-scheme)\").media?\"system\"===e.selectedTheme?detectTheme(e,window.matchMedia(\"(prefers-color-scheme: dark)\")):setTheme(e.context.mainElement,e.selectedTheme):setTheme(e.context.mainElement,\"light\")},capitalizeFirstLetter=e=>e.charAt(0).toUpperCase()+e.slice(1).replace(/\\./,\"\"),getLocaleWeekday=(e,t,n)=>{const a=new Date(`1978-01-0${t+1}T00:00:00.000Z`),o=a.toLocaleString(n,{weekday:\"short\",timeZone:\"UTC\"}),l=a.toLocaleString(n,{weekday:\"long\",timeZone:\"UTC\"});e.context.locale.weekdays.short.push(capitalizeFirstLetter(o)),e.context.locale.weekdays.long.push(capitalizeFirstLetter(l))},getLocaleMonth=(e,t,n)=>{const a=new Date(`1978-${String(t+1).padStart(2,\"0\")}-01T00:00:00.000Z`),o=a.toLocaleString(n,{month:\"short\",timeZone:\"UTC\"}),l=a.toLocaleString(n,{month:\"long\",timeZone:\"UTC\"});e.context.locale.months.short.push(capitalizeFirstLetter(o)),e.context.locale.months.long.push(capitalizeFirstLetter(l))},getLocale=e=>{var t,n,a,o,l,s,i,r;if(!(e.context.locale.weekdays.short[6]&&e.context.locale.weekdays.long[6]&&e.context.locale.months.short[11]&&e.context.locale.months.long[11]))if(\"string\"==typeof e.locale){if(\"string\"==typeof e.locale&&!e.locale.length)throw new Error(errorMessages.notLocale);Array.from({length:7},((t,n)=>getLocaleWeekday(e,n,e.locale))),Array.from({length:12},((t,n)=>getLocaleMonth(e,n,e.locale)))}else{if(!((null==(n=null==(t=e.locale)?void 0:t.weekdays)?void 0:n.short[6])&&(null==(o=null==(a=e.locale)?void 0:a.weekdays)?void 0:o.long[6])&&(null==(s=null==(l=e.locale)?void 0:l.months)?void 0:s.short[11])&&(null==(r=null==(i=e.locale)?void 0:i.months)?void 0:r.long[11])))throw new Error(errorMessages.notLocale);setContext(e,\"locale\",__spreadValues({},e.locale))}},create=e=>{const t={default:()=>{createWeek(e),createDates(e)},multiple:()=>{createWeek(e),createDates(e)},month:()=>createMonths(e),year:()=>createYears(e)};handleTheme(e),getLocale(e),createLayouts(e),visibilityTitle(e),visibilityArrows(e),createTime(e),t[e.context.currentType]()},handleArrowKeys=e=>{const t=t=>{var n;const a=t.target;if(![\"ArrowUp\",\"ArrowDown\",\"ArrowLeft\",\"ArrowRight\"].includes(t.key)||\"button\"!==a.localName)return;const o=Array.from(e.context.mainElement.querySelectorAll('[data-vc=\"calendar\"] button')),l=o.indexOf(a);if(-1===l)return;const s=(i=o[l]).hasAttribute(\"data-vc-date-btn\")?7:i.hasAttribute(\"data-vc-months-month\")?4:i.hasAttribute(\"data-vc-years-year\")?5:1;var i;const r=(0,{ArrowUp:()=>Math.max(0,l-s),ArrowDown:()=>Math.min(o.length-1,l+s),ArrowLeft:()=>Math.max(0,l-1),ArrowRight:()=>Math.min(o.length-1,l+1)}[t.key])();null==(n=o[r])||n.focus()};return e.context.mainElement.addEventListener(\"keydown\",t),()=>e.context.mainElement.removeEventListener(\"keydown\",t)},handleMonth=(e,t)=>{const n=getDate(getDateString(new Date(e.context.selectedYear,e.context.selectedMonth,1)));({prev:()=>n.setMonth(n.getMonth()-e.monthsToSwitch),next:()=>n.setMonth(n.getMonth()+e.monthsToSwitch)})[t](),setContext(e,\"selectedMonth\",n.getMonth()),setContext(e,\"selectedYear\",n.getFullYear()),visibilityTitle(e),visibilityArrows(e),createDates(e)},handleClickArrow=(e,t)=>{const n=t.target.closest(\"[data-vc-arrow]\");if(n){if([\"default\",\"multiple\"].includes(e.context.currentType))handleMonth(e,n.dataset.vcArrow);else if(\"year\"===e.context.currentType&&void 0!==e.context.displayYear){const a={prev:-15,next:15}[n.dataset.vcArrow];setContext(e,\"displayYear\",e.context.displayYear+a),createYears(e,t.target)}e.onClickArrow&&e.onClickArrow(e,t)}},resolveToggle=(e,t)=>void 0===t||(\"function\"==typeof t?t(e):t),canToggleSelection=e=>resolveToggle(e,e.enableDateToggle),handleSelectDate=(e,t,n)=>{const a=t.dataset.vcDate,o=t.closest(\"[data-vc-date][data-vc-date-selected]\"),l=canToggleSelection(e);if(o&&!l)return;const s=o?e.context.selectedDates.filter((e=>e!==a)):n?[...e.context.selectedDates,a]:[a];setContext(e,\"selectedDates\",s)},createDateRangeTooltip=(e,t,n)=>{if(!t)return;if(!n)return t.dataset.vcDateRangeTooltip=\"hidden\",void(t.textContent=\"\");const a=e.context.mainElement.getBoundingClientRect(),o=n.getBoundingClientRect();t.style.left=o.left-a.left+o.width/2+\"px\",t.style.top=o.bottom-a.top-o.height+\"px\",t.dataset.vcDateRangeTooltip=\"visible\",t.innerHTML=e.sanitizerHTML(e.onCreateDateRangeTooltip(e,n,t,o,a))},state={self:null,lastDateEl:null,isHovering:!1,rangeMin:void 0,rangeMax:void 0,tooltipEl:null,timeoutId:null},addHoverEffect=(e,t,n)=>{var a,o,l;if(!(null==(o=null==(a=state.self)?void 0:a.context)?void 0:o.selectedDates[0]))return;const s=getDateString(e);(null==(l=state.self.context.disableDates)?void 0:l.includes(s))||(state.self.context.mainElement.querySelectorAll(`[data-vc-date=\"${s}\"]`).forEach((e=>e.dataset.vcDateHover=\"\")),t.forEach((e=>e.dataset.vcDateHover=\"first\")),n.forEach((e=>{\"first\"===e.dataset.vcDateHover?e.dataset.vcDateHover=\"first-and-last\":e.dataset.vcDateHover=\"last\"})))},removeHoverEffect=()=>{var e,t;if(!(null==(t=null==(e=state.self)?void 0:e.context)?void 0:t.mainElement))return;state.self.context.mainElement.querySelectorAll(\"[data-vc-date-hover]\").forEach((e=>e.removeAttribute(\"data-vc-date-hover\")))},handleHoverDatesEvent=e=>{var t,n;if(!e||!(null==(n=null==(t=state.self)?void 0:t.context)?void 0:n.selectedDates[0]))return;if(!e.closest('[data-vc=\"dates\"]'))return state.lastDateEl=null,createDateRangeTooltip(state.self,state.tooltipEl,null),void removeHoverEffect();const a=e.closest(\"[data-vc-date]\");if(!a||state.lastDateEl===a)return;state.lastDateEl=a,createDateRangeTooltip(state.self,state.tooltipEl,a),removeHoverEffect();const o=a.dataset.vcDate,l=getDate(state.self.context.selectedDates[0]),s=getDate(o),i=state.self.context.mainElement.querySelectorAll(`[data-vc-date=\"${state.self.context.selectedDates[0]}\"]`),r=state.self.context.mainElement.querySelectorAll(`[data-vc-date=\"${o}\"]`),[c,d]=l<s?[i,r]:[r,i],[u,m]=l<s?[l,s]:[s,l];for(let e=new Date(u);e<=m;e.setDate(e.getDate()+1))addHoverEffect(e,c,d)},handleHoverSelectedDatesRangeEvent=e=>{const t=null==e?void 0:e.closest(\"[data-vc-date-selected]\");if(!t&&state.lastDateEl)return state.lastDateEl=null,void createDateRangeTooltip(state.self,state.tooltipEl,null);t&&state.lastDateEl!==t&&(state.lastDateEl=t,createDateRangeTooltip(state.self,state.tooltipEl,t))},optimizedHoverHandler=e=>t=>{const n=t.target;state.isHovering||(state.isHovering=!0,requestAnimationFrame((()=>{e(n),state.isHovering=!1})))},optimizedHandleHoverDatesEvent=optimizedHoverHandler(handleHoverDatesEvent),optimizedHandleHoverSelectedDatesRangeEvent=optimizedHoverHandler(handleHoverSelectedDatesRangeEvent),handleCancelSelectionDates=e=>{state.self&&\"Escape\"===e.key&&(state.lastDateEl=null,setContext(state.self,\"selectedDates\",[]),state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverDatesEvent),state.self.context.mainElement.removeEventListener(\"keydown\",handleCancelSelectionDates),createDateRangeTooltip(state.self,state.tooltipEl,null),removeHoverEffect())},handleMouseLeave=()=>{null!==state.timeoutId&&clearTimeout(state.timeoutId),state.timeoutId=setTimeout((()=>{state.lastDateEl=null,createDateRangeTooltip(state.self,state.tooltipEl,null),removeHoverEffect()}),50)},updateDisabledDates=()=>{var e,t,n,a;if(!(null==(n=null==(t=null==(e=state.self)?void 0:e.context)?void 0:t.selectedDates)?void 0:n[0])||!(null==(a=state.self.context.disableDates)?void 0:a[0]))return;const o=getDate(state.self.context.selectedDates[0]),[l,s]=state.self.context.disableDates.map((e=>getDate(e))).reduce((([e,t],n)=>[o>=n?n:e,o<n&&null===t?n:t]),[null,null]);l&&setContext(state.self,\"displayDateMin\",getDateString(new Date(l.setDate(l.getDate()+1)))),s&&setContext(state.self,\"displayDateMax\",getDateString(new Date(s.setDate(s.getDate()-1))));state.self.disableDatesPast&&!state.self.disableAllDates&&getDate(state.self.context.displayDateMin)<getDate(state.self.context.dateToday)&&setContext(state.self,\"displayDateMin\",state.self.context.dateToday)},handleSelectDateRange=(e,t)=>{state.self=e,state.lastDateEl=t,removeHoverEffect(),e.disableDatesGaps&&(state.rangeMin=state.rangeMin?state.rangeMin:e.context.displayDateMin,state.rangeMax=state.rangeMax?state.rangeMax:e.context.displayDateMax),e.onCreateDateRangeTooltip&&(state.tooltipEl=e.context.mainElement.querySelector(\"[data-vc-date-range-tooltip]\"));const n=null==t?void 0:t.dataset.vcDate;if(n){const t=1===e.context.selectedDates.length&&e.context.selectedDates[0].includes(n),a=t&&!canToggleSelection(e)?[n,n]:t&&canToggleSelection(e)?[]:e.context.selectedDates.length>1?[n]:[...e.context.selectedDates,n];setContext(e,\"selectedDates\",a),e.context.selectedDates.length>1&&e.context.selectedDates.sort(((e,t)=>+new Date(e)-+new Date(t)))}({set:()=>(e.disableDatesGaps&&updateDisabledDates(),createDateRangeTooltip(state.self,state.tooltipEl,t),state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave),state.self.context.mainElement.removeEventListener(\"keydown\",handleCancelSelectionDates),state.self.context.mainElement.addEventListener(\"mousemove\",optimizedHandleHoverDatesEvent),state.self.context.mainElement.addEventListener(\"mouseleave\",handleMouseLeave),state.self.context.mainElement.addEventListener(\"keydown\",handleCancelSelectionDates),()=>{state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverDatesEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave),state.self.context.mainElement.removeEventListener(\"keydown\",handleCancelSelectionDates)}),reset:()=>{const[n,a]=[e.context.selectedDates[0],e.context.selectedDates[e.context.selectedDates.length-1]],o=e.context.selectedDates[0]!==e.context.selectedDates[e.context.selectedDates.length-1],l=parseDates([`${n}:${a}`]).filter((t=>!e.context.disableDates.includes(t))),s=o?e.enableEdgeDatesOnly?[n,a]:l:[e.context.selectedDates[0],e.context.selectedDates[0]];if(setContext(e,\"selectedDates\",s),e.disableDatesGaps&&(setContext(e,\"displayDateMin\",state.rangeMin),setContext(e,\"displayDateMax\",state.rangeMax)),state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverDatesEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave),state.self.context.mainElement.removeEventListener(\"keydown\",handleCancelSelectionDates),e.onCreateDateRangeTooltip)return e.context.selectedDates[0]||(state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave),createDateRangeTooltip(state.self,state.tooltipEl,null)),e.context.selectedDates[0]&&(state.self.context.mainElement.addEventListener(\"mousemove\",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.addEventListener(\"mouseleave\",handleMouseLeave),createDateRangeTooltip(state.self,state.tooltipEl,t)),()=>{state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave)}}})[1===e.context.selectedDates.length?\"set\":\"reset\"]()},updateDateModifier=e=>{e.context.mainElement.querySelectorAll(\"[data-vc-date]\").forEach((t=>{const n=t.querySelector(\"[data-vc-date-btn]\"),a=t.dataset.vcDate,o=getDate(a).getDay();setDateModifier(e,e.context.selectedYear,t,n,o,a,\"current\")}))},handleClickDate=(e,t)=>{var n;const a=t.target,o=a.closest(\"[data-vc-date-btn]\");if(!e.selectionDatesMode||![\"single\",\"multiple\",\"multiple-ranged\"].includes(e.selectionDatesMode)||!o)return;const l=o.closest(\"[data-vc-date]\");({single:()=>handleSelectDate(e,l,!1),multiple:()=>handleSelectDate(e,l,!0),\"multiple-ranged\":()=>handleSelectDateRange(e,l)})[e.selectionDatesMode](),null==(n=e.context.selectedDates)||n.sort(((e,t)=>+new Date(e)-+new Date(t))),e.onClickDate&&e.onClickDate(e,t),e.inputMode&&e.context.inputElement&&e.context.mainElement&&e.onChangeToInput&&e.onChangeToInput(e,t);const s=a.closest('[data-vc-date-month=\"prev\"]'),i=a.closest('[data-vc-date-month=\"next\"]');({prev:()=>e.enableMonthChangeOnDayClick?handleMonth(e,\"prev\"):updateDateModifier(e),next:()=>e.enableMonthChangeOnDayClick?handleMonth(e,\"next\"):updateDateModifier(e),current:()=>updateDateModifier(e)})[s?\"prev\":i?\"next\":\"current\"]()},typeClick=[\"month\",\"year\"],getValue=(e,t,n)=>{const{currentValue:a,columnID:o}=getColumnID(e,t);return\"month\"===e.context.currentType&&o>=0?n-o:\"year\"===e.context.currentType&&e.context.selectedYear!==a?n-1:n},handleMultipleYearSelection=(e,t)=>{const n=getValue(e,\"year\",Number(t.dataset.vcYearsYear)),a=getDate(e.context.dateMin),o=getDate(e.context.dateMax),l=e.context.displayMonthsCount-1,{columnID:s}=getColumnID(e,\"year\"),i=e.context.selectedMonth<a.getMonth()&&n<=a.getFullYear(),r=e.context.selectedMonth>o.getMonth()-l+s&&n>=o.getFullYear(),c=n<a.getFullYear(),d=n>o.getFullYear(),u=i||c?a.getFullYear():r||d?o.getFullYear():n,m=i||c?a.getMonth():r||d?o.getMonth()-l+s:e.context.selectedMonth;setContext(e,\"selectedYear\",u),setContext(e,\"selectedMonth\",m)},handleMultipleMonthSelection=(e,t)=>{const n=t.closest('[data-vc-column=\"month\"]').querySelector('[data-vc=\"year\"]'),a=getValue(e,\"month\",Number(t.dataset.vcMonthsMonth)),o=Number(n.dataset.vcYear),l=getDate(e.context.dateMin),s=getDate(e.context.dateMax),i=a<l.getMonth()&&o<=l.getFullYear(),r=a>s.getMonth()&&o>=s.getFullYear();setContext(e,\"selectedYear\",o),setContext(e,\"selectedMonth\",i?l.getMonth():r?s.getMonth():a)},handleItemClick=(e,t,n,a)=>{var o;({year:()=>{if(\"multiple\"===e.type)return handleMultipleYearSelection(e,a);setContext(e,\"selectedYear\",Number(a.dataset.vcYearsYear))},month:()=>{if(\"multiple\"===e.type)return handleMultipleMonthSelection(e,a);setContext(e,\"selectedMonth\",Number(a.dataset.vcMonthsMonth))}})[n]();({year:()=>{var n;return null==(n=e.onClickYear)?void 0:n.call(e,e,t)},month:()=>{var n;return null==(n=e.onClickMonth)?void 0:n.call(e,e,t)}})[n](),e.context.currentType!==e.type?(setContext(e,\"currentType\",e.type),create(e),null==(o=e.context.mainElement.querySelector(`[data-vc=\"${n}\"]`))||o.focus()):setYearModifier(e,a,n,!0,!0)},handleClickType=(e,t,n)=>{var a;const o=t.target,l=o.closest(`[data-vc=\"${n}\"]`),s={year:()=>createYears(e,o),month:()=>createMonths(e,o)};if(l&&e.onClickTitle&&e.onClickTitle(e,t),l&&e.context.currentType!==n)return s[n]();const i=o.closest(`[data-vc-${n}s-${n}]`);if(i)return handleItemClick(e,t,n,i);const r=o.closest('[data-vc=\"grid\"]'),c=o.closest('[data-vc=\"column\"]');(e.context.currentType===n&&l||\"multiple\"===e.type&&e.context.currentType===n&&r&&!c)&&(setContext(e,\"currentType\",e.type),create(e),null==(a=e.context.mainElement.querySelector(`[data-vc=\"${n}\"]`))||a.focus())},handleClickMonthOrYear=(e,t)=>{const n={month:e.selectionMonthsMode,year:e.selectionYearsMode};typeClick.forEach((a=>{n[a]&&t.target&&handleClickType(e,t,a)}))},handleClickWeekNumber=(e,t)=>{if(!e.enableWeekNumbers||!e.onClickWeekNumber)return;const n=t.target.closest(\"[data-vc-week-number]\"),a=e.context.mainElement.querySelectorAll(\"[data-vc-date-week-number]\");if(!n||!a[0])return;const o=Number(n.innerText),l=Number(n.dataset.vcWeekYear),s=Array.from(a).filter((e=>Number(e.dataset.vcDateWeekNumber)===o));e.onClickWeekNumber(e,o,l,s,t)},handleClickWeekDay=(e,t)=>{if(!e.onClickWeekDay)return;const n=t.target.closest(\"[data-vc-week-day]\"),a=t.target.closest('[data-vc=\"column\"]'),o=a?a.querySelectorAll(\"[data-vc-date-week-day]\"):e.context.mainElement.querySelectorAll(\"[data-vc-date-week-day]\");if(!n||!o[0])return;const l=Number(n.dataset.vcWeekDay),s=Array.from(o).filter((e=>Number(e.dataset.vcDateWeekDay)===l));e.onClickWeekDay(e,l,s,t)},handleClick=e=>{const t=t=>{handleClickArrow(e,t),handleClickWeekDay(e,t),handleClickWeekNumber(e,t),handleClickDate(e,t),handleClickMonthOrYear(e,t)};return e.context.mainElement.addEventListener(\"click\",t),()=>e.context.mainElement.removeEventListener(\"click\",t)},initMonthsCount=e=>{if(\"multiple\"===e.type&&(e.displayMonthsCount<=1||e.displayMonthsCount>12))throw new Error(errorMessages.incorrectMonthsCount);if(\"multiple\"!==e.type&&e.displayMonthsCount>1)throw new Error(errorMessages.incorrectMonthsCount);setContext(e,\"displayMonthsCount\",e.displayMonthsCount?e.displayMonthsCount:\"multiple\"===e.type?2:1)},getLocalDate=()=>{const e=new Date;return new Date(e.getTime()-6e4*e.getTimezoneOffset()).toISOString().substring(0,10)},resolveDate=(e,t)=>\"today\"===e?getLocalDate():e instanceof Date||\"number\"==typeof e||\"string\"==typeof e?parseDates([e])[0]:t,initRange=e=>{var t,n,a;const o=resolveDate(e.dateMin,e.dateMin),l=resolveDate(e.dateMax,e.dateMax),s=resolveDate(e.displayDateMin,o),i=resolveDate(e.displayDateMax,l);setContext(e,\"dateToday\",resolveDate(e.dateToday,e.dateToday)),setContext(e,\"displayDateMin\",s?getDate(o)>=getDate(s)?o:s:o),setContext(e,\"displayDateMax\",i?getDate(l)<=getDate(i)?l:i:l);const r=e.disableDatesPast&&!e.disableAllDates&&getDate(s)<getDate(e.context.dateToday);setContext(e,\"displayDateMin\",r||e.disableAllDates?e.context.dateToday:s),setContext(e,\"displayDateMax\",e.disableAllDates?e.context.dateToday:i),setContext(e,\"disableDates\",e.disableDates[0]&&!e.disableAllDates?parseDates(e.disableDates):e.disableAllDates?[e.context.displayDateMin]:[]),e.context.disableDates.length>1&&e.context.disableDates.sort(((e,t)=>+new Date(e)-+new Date(t))),setContext(e,\"enableDates\",e.enableDates[0]?parseDates(e.enableDates):[]),(null==(t=e.context.enableDates)?void 0:t[0])&&(null==(n=e.context.disableDates)?void 0:n[0])&&setContext(e,\"disableDates\",e.context.disableDates.filter((t=>!e.context.enableDates.includes(t)))),e.context.enableDates.length>1&&e.context.enableDates.sort(((e,t)=>+new Date(e)-+new Date(t))),(null==(a=e.context.enableDates)?void 0:a[0])&&e.disableAllDates&&(setContext(e,\"displayDateMin\",e.context.enableDates[0]),setContext(e,\"displayDateMax\",e.context.enableDates[e.context.enableDates.length-1])),setContext(e,\"dateMin\",e.displayDisabledDates?o:e.context.displayDateMin),setContext(e,\"dateMax\",e.displayDisabledDates?l:e.context.displayDateMax)},initSelectedDates=e=>{var t;setContext(e,\"selectedDates\",(null==(t=e.selectedDates)?void 0:t[0])?parseDates(e.selectedDates):[])},displayClosestValidDate=e=>{const t=t=>{const n=new Date(t);setInitialContext(e,n.getMonth(),n.getFullYear())};if(e.displayDateMin&&\"today\"!==e.displayDateMin&&(n=e.displayDateMin,a=new Date,new Date(n).getTime()>a.getTime())){const n=e.selectedDates.length&&e.selectedDates[0]?parseDates(e.selectedDates)[0]:e.displayDateMin;return t(getDate(resolveDate(n,e.displayDateMin))),!0}var n,a;if(e.displayDateMax&&\"today\"!==e.displayDateMax&&((e,t)=>new Date(e).getTime()<t.getTime())(e.displayDateMax,new Date)){const n=e.selectedDates.length&&e.selectedDates[0]?parseDates(e.selectedDates)[0]:e.displayDateMax;return t(getDate(resolveDate(n,e.displayDateMax))),!0}return!1},setInitialContext=(e,t,n)=>{setContext(e,\"selectedMonth\",t),setContext(e,\"selectedYear\",n),setContext(e,\"displayYear\",n)},initSelectedMonthYear=e=>{var t;if(e.enableJumpToSelectedDate&&(null==(t=e.selectedDates)?void 0:t[0])&&void 0===e.selectedMonth&&void 0===e.selectedYear){const t=getDate(parseDates(e.selectedDates)[0]);return void setInitialContext(e,t.getMonth(),t.getFullYear())}if(displayClosestValidDate(e))return;const n=void 0!==e.selectedMonth&&Number(e.selectedMonth)>=0&&Number(e.selectedMonth)<12,a=void 0!==e.selectedYear&&Number(e.selectedYear)>=0&&Number(e.selectedYear)<=9999;setInitialContext(e,n?Number(e.selectedMonth):getDate(e.context.dateToday).getMonth(),a?Number(e.selectedYear):getDate(e.context.dateToday).getFullYear())},initTime=e=>{var t,n,a;if(!e.selectionTimeMode)return;if(![12,24].includes(e.selectionTimeMode))throw new Error(errorMessages.incorrectTime);const o=12===e.selectionTimeMode,l=o?/^(0[1-9]|1[0-2]):([0-5][0-9]) ?(AM|PM)?$/i:/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/;let[s,i,r]=null!=(a=null==(n=null==(t=e.selectedTime)?void 0:t.match(l))?void 0:n.slice(1))?a:[];s?o&&!r&&(r=\"AM\"):(s=o?transformTime12(String(e.timeMinHour)):String(e.timeMinHour),i=String(e.timeMinMinute),r=o?Number(transformTime12(String(e.timeMinHour)))>=12?\"PM\":\"AM\":null),setContext(e,\"selectedHours\",s.padStart(2,\"0\")),setContext(e,\"selectedMinutes\",i.padStart(2,\"0\")),setContext(e,\"selectedKeeping\",r),setContext(e,\"selectedTime\",`${e.context.selectedHours}:${e.context.selectedMinutes}${r?` ${r}`:\"\"}`)},initAllVariables=e=>{setContext(e,\"currentType\",e.type),initMonthsCount(e),initRange(e),initSelectedMonthYear(e),initSelectedDates(e),initTime(e)},reset=(e,{year:t,month:n,dates:a,time:o,locale:l},s=!0)=>{var i;const r={year:e.selectedYear,month:e.selectedMonth,dates:e.selectedDates,time:e.selectedTime};if(e.selectedYear=t?r.year:e.context.selectedYear,e.selectedMonth=n?r.month:e.context.selectedMonth,e.selectedTime=o?r.time:e.context.selectedTime,e.selectedDates=\"only-first\"===a&&(null==(i=e.context.selectedDates)?void 0:i[0])?[e.context.selectedDates[0]]:!0===a?r.dates:e.context.selectedDates,l){setContext(e,\"locale\",{months:{short:[],long:[]},weekdays:{short:[],long:[]}})}initAllVariables(e),s&&create(e),e.selectedYear=r.year,e.selectedMonth=r.month,e.selectedDates=r.dates,e.selectedTime=r.time,\"multiple-ranged\"===e.selectionDatesMode&&a&&handleSelectDateRange(e,null)},createToInput=e=>{const t=document.createElement(\"div\");return t.className=e.styles.calendar,t.dataset.vc=\"calendar\",t.dataset.vcInput=\"\",t.dataset.vcCalendarHidden=\"\",setContext(e,\"inputModeInit\",!0),setContext(e,\"isShowInInputMode\",!1),setContext(e,\"mainElement\",t),document.body.appendChild(e.context.mainElement),reset(e,{year:!0,month:!0,dates:!0,time:!0,locale:!0}),setTimeout((()=>show(e))),e.onInit&&e.onInit(e),handleArrowKeys(e),handleClick(e)},canOpenOnFocus=e=>resolveToggle(e,e.openOnFocus),handleInput=e=>{setContext(e,\"inputElement\",e.context.mainElement);const t=()=>{e.context.inputModeInit?setTimeout((()=>show(e))):createToInput(e)};e.context.inputElement.addEventListener(\"click\",t);const n=\"function\"==typeof e.openOnFocus||!0===e.openOnFocus,a=()=>{shouldSkipOpenOnFocus(e)?clearSkipOpenOnFocus(e):canOpenOnFocus(e)&&t()};n&&e.context.inputElement.addEventListener(\"focus\",a);const o=t=>{const n=\"Tab\"===t.key&&!t.shiftKey,a=[\"ArrowUp\",\"ArrowDown\",\"ArrowLeft\",\"ArrowRight\"].includes(t.key);(n||a)&&(t=>{var n;if(!e.context.isShowInInputMode)return!1;if(document.activeElement!==e.context.inputElement)return!1;const a=e=>e.tabIndex>=0&&!e.hasAttribute(\"disabled\")&&\"true\"!==e.getAttribute(\"aria-disabled\"),o=null!=(n=document.createTreeWalker(e.context.mainElement,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>a(e)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}).nextNode())?n:a(e.context.mainElement)?e.context.mainElement:null;!o||o.tabIndex<0||(t.preventDefault(),o.focus())})(t)};return e.context.inputElement.addEventListener(\"keydown\",o),()=>{e.context.inputElement.removeEventListener(\"click\",t),n&&e.context.inputElement.removeEventListener(\"focus\",a),e.context.inputElement.removeEventListener(\"keydown\",o)}},init=e=>(setContext(e,\"originalElement\",e.context.mainElement.cloneNode(!0)),setContext(e,\"isInit\",!0),e.inputMode?handleInput(e):(initAllVariables(e),create(e),e.onInit&&e.onInit(e),handleArrowKeys(e),handleClick(e))),update=(e,t)=>{if(!e.context.isInit)throw new Error(errorMessages.notInit);reset(e,__spreadValues(__spreadValues({},{year:!0,month:!0,dates:!0,time:!0,locale:!0}),t),!(e.inputMode&&!e.context.inputModeInit)),e.onUpdate&&e.onUpdate(e)},replaceProperties=(e,t)=>{const n=Object.keys(t);for(let a=0;a<n.length;a++){const o=n[a];\"object\"!=typeof e[o]||\"object\"!=typeof t[o]||t[o]instanceof Date||Array.isArray(t[o])?void 0!==t[o]&&(e[o]=t[o]):replaceProperties(e[o],t[o])}},set=(e,t,n)=>{replaceProperties(e,t),e.context.isInit&&update(e,n)};function findBestPickerPosition(e,t){const n=\"left\";if(!t||!e)return n;const{canShow:a,parentPositions:o}=getAvailablePosition(e,t),l=a.left&&a.right;return(l&&a.bottom?\"center\":l&&a.top?[\"top\",\"center\"]:Array.isArray(o)?[\"bottom\"===o[0]?\"top\":\"bottom\",...o.slice(1)]:o)||n}const setPosition=(e,t,n)=>{if(!e)return;const a=\"auto\"===n?findBestPickerPosition(e,t):n,o={top:-t.offsetHeight,bottom:e.offsetHeight,left:0,center:e.offsetWidth/2-t.offsetWidth/2,right:e.offsetWidth-t.offsetWidth},l=Array.isArray(a)?a[0]:\"bottom\",s=Array.isArray(a)?a[1]:a;t.dataset.vcPosition=l;const{top:i,left:r}=getOffset(e),c=i+o[l];let d=r+o[s];const{vw:u}=getViewportDimensions();if(d+t.clientWidth>u){const e=window.innerWidth-document.body.clientWidth;d=u-t.clientWidth-e}else d<0&&(d=0);Object.assign(t.style,{left:`${d}px`,top:`${c}px`})},show=e=>{if(e.context.isShowInInputMode)return;if(!e.context.currentType)return void e.context.mainElement.click();setContext(e,\"cleanupHandlers\",[]),setContext(e,\"isShowInInputMode\",!0),e.inputMode&&restoreTabbing(e.context.mainElement),setPosition(e.context.inputElement,e.context.mainElement,e.positionToInput),e.context.mainElement.removeAttribute(\"data-vc-calendar-hidden\");const t=()=>{setPosition(e.context.inputElement,e.context.mainElement,e.positionToInput)};window.addEventListener(\"resize\",t),e.context.cleanupHandlers.push((()=>window.removeEventListener(\"resize\",t)));const n=t=>{\"Escape\"===t.key&&hide(e)};document.addEventListener(\"keydown\",n),e.context.cleanupHandlers.push((()=>document.removeEventListener(\"keydown\",n)));const a=t=>{t.target===e.context.inputElement||e.context.mainElement.contains(t.target)||hide(e)};document.addEventListener(\"click\",a,{capture:!0}),e.context.cleanupHandlers.push((()=>document.removeEventListener(\"click\",a,{capture:!0}))),e.onShow&&e.onShow(e)},labels={application:\"Calendar\",navigation:\"Calendar Navigation\",arrowNext:{month:\"Next month\",year:\"Next list of years\"},arrowPrev:{month:\"Previous month\",year:\"Previous list of years\"},month:\"Select month, current selected month:\",months:\"List of months\",year:\"Select year, current selected year:\",years:\"List of years\",week:\"Days of the week\",weekNumber:\"Numbers of weeks in a year\",dates:\"Dates in the current month\",selectingTime:\"Selecting a time \",inputHour:\"Hours\",inputMinute:\"Minutes\",rangeHour:\"Slider for selecting hours\",rangeMinute:\"Slider for selecting minutes\",btnKeeping:\"Switch AM/PM, current position:\"},styles={calendar:\"vc\",controls:\"vc-controls\",grid:\"vc-grid\",column:\"vc-column\",header:\"vc-header\",headerContent:\"vc-header__content\",month:\"vc-month\",year:\"vc-year\",arrowPrev:\"vc-arrow vc-arrow_prev\",arrowNext:\"vc-arrow vc-arrow_next\",wrapper:\"vc-wrapper\",content:\"vc-content\",months:\"vc-months\",monthsMonth:\"vc-months__month\",years:\"vc-years\",yearsYear:\"vc-years__year\",week:\"vc-week\",weekDay:\"vc-week__day\",weekNumbers:\"vc-week-numbers\",weekNumbersTitle:\"vc-week-numbers__title\",weekNumbersContent:\"vc-week-numbers__content\",weekNumber:\"vc-week-number\",dates:\"vc-dates\",datesRow:\"vc-dates__row\",date:\"vc-date\",dateBtn:\"vc-date__btn\",datePopup:\"vc-date__popup\",dateRangeTooltip:\"vc-date-range-tooltip\",time:\"vc-time\",timeContent:\"vc-time__content\",timeHour:\"vc-time__hour\",timeMinute:\"vc-time__minute\",timeKeeping:\"vc-time__keeping\",timeRanges:\"vc-time__ranges\",timeRange:\"vc-time__range\"};class OptionsCalendar{constructor(){__publicField(this,\"type\",\"default\"),__publicField(this,\"inputMode\",!1),__publicField(this,\"openOnFocus\",!0),__publicField(this,\"positionToInput\",\"left\"),__publicField(this,\"firstWeekday\",1),__publicField(this,\"monthsToSwitch\",1),__publicField(this,\"themeAttrDetect\",\"html[data-theme]\"),__publicField(this,\"locale\",\"en\"),__publicField(this,\"dateToday\",\"today\"),__publicField(this,\"dateMin\",\"1970-01-01\"),__publicField(this,\"dateMax\",\"2470-12-31\"),__publicField(this,\"displayDateMin\"),__publicField(this,\"displayDateMax\"),__publicField(this,\"displayDatesOutside\",!0),__publicField(this,\"displayDisabledDates\",!1),__publicField(this,\"displayMonthsCount\"),__publicField(this,\"disableDates\",[]),__publicField(this,\"disableAllDates\",!1),__publicField(this,\"disableDatesPast\",!1),__publicField(this,\"disableDatesGaps\",!1),__publicField(this,\"disableWeekdays\",[]),__publicField(this,\"disableToday\",!1),__publicField(this,\"enableDates\",[]),__publicField(this,\"enableEdgeDatesOnly\",!0),__publicField(this,\"enableDateToggle\",!0),__publicField(this,\"enableWeekNumbers\",!1),__publicField(this,\"enableMonthChangeOnDayClick\",!0),__publicField(this,\"enableJumpToSelectedDate\",!1),__publicField(this,\"selectionDatesMode\",\"single\"),__publicField(this,\"selectionMonthsMode\",!0),__publicField(this,\"selectionYearsMode\",!0),__publicField(this,\"selectionTimeMode\",!1),__publicField(this,\"selectedDates\",[]),__publicField(this,\"selectedMonth\"),__publicField(this,\"selectedYear\"),__publicField(this,\"selectedHolidays\",[]),__publicField(this,\"selectedWeekends\",[0,6]),__publicField(this,\"selectedTime\"),__publicField(this,\"selectedTheme\",\"system\"),__publicField(this,\"timeMinHour\",0),__publicField(this,\"timeMaxHour\",23),__publicField(this,\"timeMinMinute\",0),__publicField(this,\"timeMaxMinute\",59),__publicField(this,\"timeControls\",\"all\"),__publicField(this,\"timeStepHour\",1),__publicField(this,\"timeStepMinute\",1),__publicField(this,\"sanitizerHTML\",(e=>e)),__publicField(this,\"onClickDate\"),__publicField(this,\"onClickWeekDay\"),__publicField(this,\"onClickWeekNumber\"),__publicField(this,\"onClickTitle\"),__publicField(this,\"onClickMonth\"),__publicField(this,\"onClickYear\"),__publicField(this,\"onClickArrow\"),__publicField(this,\"onChangeTime\"),__publicField(this,\"onChangeToInput\"),__publicField(this,\"onCreateDateRangeTooltip\"),__publicField(this,\"onCreateDateEls\"),__publicField(this,\"onCreateMonthEls\"),__publicField(this,\"onCreateYearEls\"),__publicField(this,\"onInit\"),__publicField(this,\"onUpdate\"),__publicField(this,\"onDestroy\"),__publicField(this,\"onShow\"),__publicField(this,\"onHide\"),__publicField(this,\"popups\",{}),__publicField(this,\"labels\",__spreadValues({},labels)),__publicField(this,\"layouts\",{default:\"\",multiple:\"\",month:\"\",year:\"\"}),__publicField(this,\"styles\",__spreadValues({},styles))}}const _Calendar=class e extends OptionsCalendar{constructor(t,n){var a;super(),__publicField(this,\"init\",(()=>init(this))),__publicField(this,\"update\",(e=>update(this,e))),__publicField(this,\"destroy\",(()=>destroy(this))),__publicField(this,\"show\",(()=>show(this))),__publicField(this,\"hide\",(()=>hide(this))),__publicField(this,\"set\",((e,t)=>set(this,e,t))),__publicField(this,\"context\"),this.context=__spreadProps(__spreadValues({},this.context),{locale:{months:{short:[],long:[]},weekdays:{short:[],long:[]}}}),setContext(this,\"mainElement\",\"string\"==typeof t?null!=(a=e.memoizedElements.get(t))?a:this.queryAndMemoize(t):t),n&&replaceProperties(this,n)}queryAndMemoize(t){const n=document.querySelector(t);if(!n)throw new Error(errorMessages.notFoundSelector(t));return e.memoizedElements.set(t,n),n}};__publicField(_Calendar,\"memoizedElements\",new Map);let Calendar=_Calendar;export{Calendar};","/**\n * --------------------------------------------------------------------------\n * Bootstrap datepicker.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { Calendar } from 'vanilla-calendar-pro'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { isDisabled } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'datepicker'\nconst DATA_KEY = 'bs.datepicker'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUSIN_DATA_API = `focusin${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"datepicker\"]'\n\nconst HIDE_DELAY = 100 // ms delay before hiding after selection\n\nconst Default = {\n datepickerTheme: null, // 'light', 'dark', 'auto' - explicit theme for datepicker popover only\n dateMin: null,\n dateMax: null,\n dateFormat: null, // Intl.DateTimeFormat options, or function(date, locale) => string\n displayElement: null, // Element to show formatted date (defaults to element for buttons)\n displayMonthsCount: 1, // Number of months to display side-by-side\n firstWeekday: 1, // Monday\n inline: false, // Render calendar inline (no popup)\n locale: 'default',\n positionElement: null, // Element to position calendar relative to (defaults to input)\n selectedDates: [],\n selectionMode: 'single', // 'single', 'multiple', 'multiple-ranged'\n placement: 'left', // 'left', 'center', 'right', 'auto'\n vcpOptions: {} // Pass-through for any VCP option\n}\n\nconst DefaultType = {\n datepickerTheme: '(null|string)',\n dateMin: '(null|string|number|object)',\n dateMax: '(null|string|number|object)',\n dateFormat: '(null|object|function)',\n displayElement: '(null|string|element|boolean)',\n displayMonthsCount: 'number',\n firstWeekday: 'number',\n inline: 'boolean',\n locale: 'string',\n positionElement: '(null|string|element)',\n selectedDates: 'array',\n selectionMode: 'string',\n placement: 'string',\n vcpOptions: 'object'\n}\n\n/**\n * Class definition\n */\n\nclass Datepicker extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._calendar = null\n this._isShown = false\n\n this._initCalendar()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n return this._isShown ? this.hide() : this.show()\n }\n\n show() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n if (!this._calendar || isDisabled(this._element) || this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._calendar.show()\n this._isShown = true\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n hide() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n if (!this._calendar || !this._isShown) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._calendar.hide()\n this._isShown = false\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n dispose() {\n if (this._themeObserver) {\n this._themeObserver.disconnect()\n this._themeObserver = null\n }\n\n if (this._calendar) {\n this._calendar.destroy()\n }\n\n this._calendar = null\n super.dispose()\n }\n\n getSelectedDates() {\n const dates = this._calendar?.context?.selectedDates\n return dates ? [...dates] : []\n }\n\n setSelectedDates(dates) {\n if (this._calendar) {\n this._calendar.set({ selectedDates: dates })\n }\n }\n\n // Private\n _initCalendar() {\n this._isInput = this._element.tagName === 'INPUT'\n this._isInline = this._config.inline\n\n // For inline mode, look for a hidden input child to bind to\n if (this._isInline && !this._isInput) {\n this._boundInput = this._element.querySelector('input[type=\"hidden\"], input[name]')\n }\n\n this._positionElement = this._resolvePositionElement()\n this._displayElement = this._resolveDisplayElement()\n\n const calendarOptions = this._buildCalendarOptions()\n\n // Create calendar on the position element (for correct popup positioning)\n // but value updates still go to this._element (the input)\n this._calendar = new Calendar(this._positionElement, calendarOptions)\n this._calendar.init()\n\n // Watch for theme changes on ancestor elements (for live theme switching)\n this._setupThemeObserver()\n\n // Set initial value if input has a value\n if (this._isInput && this._element.value) {\n this._parseInputValue()\n }\n\n // Populate input/display with preselected dates\n this._updateDisplayWithSelectedDates()\n }\n\n _updateDisplayWithSelectedDates() {\n const { selectedDates } = this._config\n if (!selectedDates || selectedDates.length === 0) {\n return\n }\n\n const formattedDate = this._formatDateForInput(selectedDates)\n\n if (this._isInput) {\n this._element.value = formattedDate\n }\n\n if (this._boundInput) {\n this._boundInput.value = selectedDates.join(',')\n }\n\n if (this._displayElement) {\n this._displayElement.textContent = formattedDate\n }\n }\n\n _resolvePositionElement() {\n let { positionElement } = this._config\n\n if (typeof positionElement === 'string') {\n positionElement = document.querySelector(positionElement)\n }\n\n // Use input's parent if in form-adorn\n if (!positionElement && this._isInput && !this._isInline) {\n const parent = this._element.closest('.form-adorn')\n if (parent) {\n positionElement = parent\n }\n }\n\n return positionElement || this._element\n }\n\n _resolveDisplayElement() {\n const { displayElement } = this._config\n\n if (typeof displayElement === 'string') {\n return document.querySelector(displayElement)\n }\n\n // For buttons/non-inputs (not inline), look for a [data-bs-datepicker-display] child\n if (displayElement === true || (displayElement === null && !this._isInput && !this._isInline)) {\n const displayChild = this._element.querySelector('[data-bs-datepicker-display]')\n return displayChild || this._element\n }\n\n return displayElement\n }\n\n _getThemeAncestor() {\n return this._element.closest('[data-bs-theme]')\n }\n\n _getEffectiveTheme() {\n // Priority: explicit datepickerTheme config > inherited from ancestor > none\n const { datepickerTheme } = this._config\n if (datepickerTheme) {\n return datepickerTheme\n }\n\n const ancestor = this._getThemeAncestor()\n return ancestor?.getAttribute('data-bs-theme') || null\n }\n\n _syncThemeAttribute(element) {\n if (!element) {\n return\n }\n\n const theme = this._getEffectiveTheme()\n\n if (theme) {\n // Copy theme to popover (needed because VCP appends to body, breaking CSS inheritance)\n element.setAttribute('data-bs-theme', theme)\n } else {\n // No theme - remove attribute to allow natural inheritance\n element.removeAttribute('data-bs-theme')\n }\n }\n\n _setupThemeObserver() {\n // Watch for theme changes on ancestor elements\n const ancestor = this._getThemeAncestor()\n if (!ancestor || this._config.datepickerTheme) {\n // No ancestor to watch, or explicit datepickerTheme overrides\n return\n }\n\n this._themeObserver = new MutationObserver(() => {\n this._syncThemeAttribute(this._calendar?.context?.mainElement)\n })\n\n this._themeObserver.observe(ancestor, {\n attributes: true,\n attributeFilter: ['data-bs-theme']\n })\n }\n\n _buildCalendarOptions() {\n // Get theme for VCP - use 'system' for auto-detection if no explicit theme\n const theme = this._getEffectiveTheme()\n // VCP uses 'system' for auto, Bootstrap uses 'auto'\n const vcpTheme = !theme || theme === 'auto' ? 'system' : theme\n\n const calendarOptions = {\n ...this._config.vcpOptions,\n inputMode: !this._isInline,\n positionToInput: this._config.placement,\n firstWeekday: this._config.firstWeekday,\n locale: this._config.locale,\n selectionDatesMode: this._config.selectionMode,\n selectedDates: this._config.selectedDates,\n displayMonthsCount: this._config.displayMonthsCount,\n type: this._config.displayMonthsCount > 1 ? 'multiple' : 'default',\n selectedTheme: vcpTheme,\n themeAttrDetect: '[data-bs-theme]',\n onClickDate: (self, event) => this._handleDateClick(self, event),\n onInit: self => {\n this._syncThemeAttribute(self.context.mainElement)\n },\n onShow: () => {\n this._isShown = true\n this._syncThemeAttribute(this._calendar.context.mainElement)\n },\n onHide: () => {\n this._isShown = false\n }\n }\n\n // Navigate to the month of the first selected date\n if (this._config.selectedDates.length > 0) {\n const firstDate = this._parseDate(this._config.selectedDates[0])\n calendarOptions.selectedMonth = firstDate.getMonth()\n calendarOptions.selectedYear = firstDate.getFullYear()\n }\n\n if (this._config.dateMin) {\n calendarOptions.dateMin = this._config.dateMin\n }\n\n if (this._config.dateMax) {\n calendarOptions.dateMax = this._config.dateMax\n }\n\n return calendarOptions\n }\n\n _handleDateClick(self, event) {\n const selectedDates = [...self.context.selectedDates]\n\n if (selectedDates.length > 0) {\n const formattedDate = this._formatDateForInput(selectedDates)\n\n if (this._isInput) {\n this._element.value = formattedDate\n }\n\n if (this._boundInput) {\n this._boundInput.value = selectedDates.join(',')\n }\n\n if (this._displayElement) {\n this._displayElement.textContent = formattedDate\n }\n }\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n dates: selectedDates,\n event\n })\n\n this._maybeHideAfterSelection(selectedDates)\n }\n\n _maybeHideAfterSelection(selectedDates) {\n if (this._isInline) {\n return\n }\n\n const shouldHide =\n (this._config.selectionMode === 'single' && selectedDates.length > 0) ||\n (this._config.selectionMode === 'multiple-ranged' && selectedDates.length >= 2)\n\n if (shouldHide) {\n setTimeout(() => this.hide(), HIDE_DELAY)\n }\n }\n\n _parseDate(dateStr) {\n const [year, month, day] = dateStr.split('-')\n return new Date(year, month - 1, day)\n }\n\n _formatDate(dateStr) {\n const date = this._parseDate(dateStr)\n const locale = this._config.locale === 'default' ? undefined : this._config.locale\n const { dateFormat } = this._config\n\n // Custom function formatter\n if (typeof dateFormat === 'function') {\n return dateFormat(date, locale)\n }\n\n // Intl.DateTimeFormat options object\n if (dateFormat && typeof dateFormat === 'object') {\n return new Intl.DateTimeFormat(locale, dateFormat).format(date)\n }\n\n // Default: locale-aware formatting\n return date.toLocaleDateString(locale)\n }\n\n _formatDateForInput(dates) {\n if (dates.length === 0) {\n return ''\n }\n\n if (dates.length === 1) {\n return this._formatDate(dates[0])\n }\n\n // For date ranges, use en-dash; for multiple dates, use comma\n const separator = this._config.selectionMode === 'multiple-ranged' ? ' – ' : ', '\n return dates.map(d => this._formatDate(d)).join(separator)\n }\n\n _parseInputValue() {\n // Try to parse the input value as a date\n const value = this._element.value.trim()\n if (!value) {\n return\n }\n\n const date = new Date(value)\n if (!Number.isNaN(date.getTime())) {\n const year = date.getFullYear()\n const month = String(date.getMonth() + 1).padStart(2, '0')\n const day = String(date.getDate()).padStart(2, '0')\n const formatted = `${year}-${month}-${day}`\n this._calendar.set({ selectedDates: [formatted] })\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // Only handle if not an input (inputs use focus)\n // Skip inline datepickers (they're always visible)\n if (this.tagName === 'INPUT' || this.dataset.bsInline === 'true') {\n return\n }\n\n event.preventDefault()\n Datepicker.getOrCreateInstance(this).toggle()\n})\n\nEventHandler.on(document, EVENT_FOCUSIN_DATA_API, SELECTOR_DATA_TOGGLE, function () {\n // Handle focus for input elements\n if (this.tagName !== 'INPUT') {\n return\n }\n\n Datepicker.getOrCreateInstance(this).show()\n})\n\n// Auto-initialize inline datepickers on DOMContentLoaded\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of document.querySelectorAll(`${SELECTOR_DATA_TOGGLE}[data-bs-inline=\"true\"]`)) {\n Datepicker.getOrCreateInstance(element)\n }\n})\n\nexport default Datepicker\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dialog-base.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst CLASS_NAME_OPEN = 'dialog-open'\n\n/**\n * Class definition\n *\n * Shared base class for Dialog and Drawer components that use\n * the native <dialog> element. Provides common behavior for:\n * - Show/hide/toggle lifecycle with events\n * - Opening/closing via showModal()/show()/close()\n * - Escape key handling (modal and non-modal)\n * - Backdrop click handling\n * - Static backdrop transition (\"bounce\")\n * - Body scroll prevention\n * - Transition coordination\n * - Child component cleanup (tooltips, popovers, toasts)\n */\n\nclass DialogBase extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._openedAsModal = false\n this._addDialogListeners()\n }\n\n // Getters — subclasses override NAME with their own component name.\n static get NAME() {\n return 'dialogbase'\n }\n\n // Public — shared lifecycle methods\n\n toggle(relatedTarget) {\n return this._element.open ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._element.open || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('show'),\n { relatedTarget }\n )\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isTransitioning = true\n this._onBeforeShow()\n\n const { modal, preventBodyScroll } = this._getShowOptions()\n this._showElement({ modal, preventBodyScroll })\n\n this._queueCallback(() => {\n this._isTransitioning = false\n EventHandler.trigger(\n this._element,\n this.constructor.eventName('shown'),\n { relatedTarget }\n )\n }, this._element, this._isAnimated())\n }\n\n hide() {\n if (!this._element.open || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('hide')\n )\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isTransitioning = true\n this._hideElement()\n\n this._queueCallback(() => {\n // For subclasses that defer close() until the exit transition ends\n // (so the dialog stays in the top layer with its ::backdrop), close()\n // happens here instead of in _hideElement().\n if (this._element.open) {\n this._closeAndCleanup()\n }\n\n this._element.classList.remove('hiding')\n this._onAfterHide()\n this._isTransitioning = false\n EventHandler.trigger(\n this._element,\n this.constructor.eventName('hidden')\n )\n }, this._element, this._isAnimated())\n }\n\n // Protected — hooks for subclasses to override\n\n _getShowOptions() {\n return { modal: true, preventBodyScroll: true }\n }\n\n _onBeforeShow() {\n // No-op by default — Dialog overrides to add nonmodal class\n }\n\n _onAfterHide() {\n // No-op by default — Dialog overrides to remove nonmodal class\n }\n\n _isAnimated() {\n return !this._element.classList.contains(this._getInstantClassName())\n }\n\n _getInstantClassName() {\n return 'dialog-instant'\n }\n\n _getStaticClassName() {\n return 'dialog-static'\n }\n\n _onCancel() {\n // No-op by default — Dialog overrides to fire cancel event\n }\n\n // Protected — shared mechanics\n\n _showElement({ modal = true, preventBodyScroll = true } = {}) {\n this._openedAsModal = modal\n\n if (modal) {\n this._element.showModal()\n } else {\n this._element.show()\n }\n\n if (preventBodyScroll) {\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n }\n\n _hideElement() {\n this._hideChildComponents()\n\n // Add .hiding before close() so CSS exit transitions can play.\n // Without this, the navbar's `:not([open])` transition-kill rule\n // would prevent the slide-out animation.\n this._element.classList.add('hiding')\n\n // Subclasses can defer close() until after the exit transition by\n // returning true from _shouldDeferClose(). This is needed for the\n // native modal <dialog> centered case: close() removes the dialog\n // from the top layer immediately, which strips its auto-centering\n // and the ::backdrop, breaking the exit animation.\n if (!this._shouldDeferClose()) {\n this._closeAndCleanup()\n }\n }\n\n // Closes the native <dialog> and tears down body-scroll prevention.\n // Safe to call multiple times — close() is a no-op on a closed dialog.\n _closeAndCleanup() {\n this._element.close()\n this._openedAsModal = false\n\n // Only restore body scroll if no other modal dialogs are open\n if (!document.querySelector('dialog[open]:modal')) {\n document.body.classList.remove(CLASS_NAME_OPEN)\n }\n }\n\n // Hook: return true to keep the dialog in the top layer (i.e., delay\n // calling close()) until the exit transition completes. The base class\n // closes synchronously; Dialog overrides this for animated modal cases.\n _shouldDeferClose() {\n return false\n }\n\n _triggerBackdropTransition() {\n const hidePreventedEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('hidePrevented')\n )\n\n if (hidePreventedEvent.defaultPrevented) {\n return\n }\n\n const staticClass = this._getStaticClassName()\n this._element.classList.add(staticClass)\n this._queueCallback(() => {\n this._element.classList.remove(staticClass)\n }, this._element)\n }\n\n // Hide any tooltips, popovers, or toasts inside the dialog before closing.\n // These components append to the dialog (for top-layer rendering) and would\n // otherwise persist visibly after close().\n _hideChildComponents() {\n const selector = '[data-bs-toggle=\"tooltip\"], [data-bs-toggle=\"popover\"]'\n\n for (const el of SelectorEngine.find(selector, this._element)) {\n const instance = Data.getAny(el)\n if (instance && typeof instance.hide === 'function') {\n instance.hide()\n }\n }\n\n // Hide any visible toasts\n for (const el of SelectorEngine.find('.toast.show', this._element)) {\n const instance = Data.getAny(el)\n if (instance && typeof instance.hide === 'function') {\n instance.hide()\n }\n }\n }\n\n // Private\n\n _addDialogListeners() {\n const eventKey = this.constructor.EVENT_KEY\n\n // Handle native cancel event (Escape key) — only fires for modal dialogs\n EventHandler.on(this._element, 'cancel', event => {\n event.preventDefault()\n\n if (!this._config.keyboard) {\n this._triggerBackdropTransition()\n return\n }\n\n this._onCancel()\n this.hide()\n })\n\n // Handle Escape key for non-modal dialogs (native cancel doesn't fire for show())\n EventHandler.on(this._element, `keydown${eventKey}`, event => {\n if (event.key !== 'Escape' || this._openedAsModal) {\n return\n }\n\n event.preventDefault()\n\n if (!this._config.keyboard) {\n return\n }\n\n this._onCancel()\n this.hide()\n })\n\n // Handle backdrop clicks — only applies to modal dialogs\n EventHandler.on(this._element, `click${eventKey}`, event => {\n if (event.target !== this._element || !this._openedAsModal) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n return\n }\n\n this.hide()\n })\n }\n}\n\nexport default DialogBase\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dialog.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport DialogBase from './dialog-base.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'dialog'\nconst DATA_KEY = 'bs.dialog'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CANCEL = `cancel${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_NONMODAL = 'dialog-nonmodal'\nconst CLASS_NAME_INSTANT = 'dialog-instant'\nconst CLASS_NAME_SWAP_IN = 'dialog-swap-in'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dialog\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n modal: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n modal: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Dialog extends DialogBase {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n handleUpdate() {\n // Provided for API consistency with Modal.\n }\n\n // Protected — hook overrides\n\n _getShowOptions() {\n return {\n modal: this._config.modal,\n preventBodyScroll: this._config.modal\n }\n }\n\n _onBeforeShow() {\n if (!this._config.modal) {\n this._element.classList.add(CLASS_NAME_NONMODAL)\n }\n }\n\n _onAfterHide() {\n this._element.classList.remove(CLASS_NAME_NONMODAL)\n }\n\n // Keep the dialog in the top layer until the exit transition ends. This\n // preserves the browser's modal centering and the native ::backdrop, both\n // of which disappear synchronously the moment close() is called. Without\n // this, the dialog would jump to the top of the page and the backdrop\n // blur would vanish instantly while the dialog faded — making the exit\n // animation appear to skip entirely.\n _shouldDeferClose() {\n return this._isAnimated()\n }\n\n _onCancel() {\n EventHandler.trigger(this._element, EVENT_CANCEL)\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n // Get config from trigger's data attributes\n const config = Manipulator.getDataAttributes(this)\n\n // Check if trigger is inside an open dialog (dialog swapping)\n const currentDialog = this.closest('dialog[open]')\n const shouldSwap = currentDialog && currentDialog !== target\n\n if (shouldSwap) {\n // Swap strategy (seamless backdrop, no flash):\n // 1. Mark the incoming dialog with .dialog-swap-in so its ::backdrop\n // skips the @starting-style fade-in and appears fully opaque on\n // its very first frame in the top layer.\n // 2. Open the incoming dialog (showModal).\n // 3. Close the outgoing dialog synchronously — no exit transition, no\n // .hiding — so its ::backdrop is removed in the same frame the\n // incoming dialog's backdrop appears. Since both backdrops render\n // the same color, the user sees one continuous backdrop. Two\n // simultaneously-visible backdrops would composite to ~75% darker,\n // and a fading-out + fading-in pair would dip to ~75% opacity —\n // either would look like a flash.\n // 4. Clean up the .dialog-swap-in flag once the incoming dialog\n // finishes its entry transition.\n const newDialog = Dialog.getOrCreateInstance(target, config)\n target.classList.add(CLASS_NAME_SWAP_IN)\n newDialog.show(this)\n EventHandler.one(target, `shown${EVENT_KEY}`, () => {\n target.classList.remove(CLASS_NAME_SWAP_IN)\n })\n\n const currentInstance = Dialog.getInstance(currentDialog)\n if (currentInstance) {\n // Force synchronous close: .dialog-instant makes _isAnimated() false,\n // which makes _shouldDeferClose() false, so hide() calls close()\n // immediately (no deferred .hiding path). The class is removed after\n // the (now-synchronous) hidden event fires.\n currentDialog.classList.add(CLASS_NAME_INSTANT)\n EventHandler.one(currentDialog, EVENT_HIDDEN, () => {\n currentDialog.classList.remove(CLASS_NAME_INSTANT)\n })\n currentInstance.hide()\n }\n\n return\n }\n\n const data = Dialog.getOrCreateInstance(target, config)\n data.toggle(this)\n})\n\nenableDismissTrigger(Dialog)\n\nexport default Dialog\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap nav-overflow.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'navoverflow'\nconst DATA_KEY = 'bs.navoverflow'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_UPDATE = `update${EVENT_KEY}`\nconst EVENT_OVERFLOW = `overflow${EVENT_KEY}`\n\nconst CLASS_NAME_OVERFLOW = 'nav-overflow'\nconst CLASS_NAME_OVERFLOW_MENU = 'nav-overflow-menu'\nconst CLASS_NAME_HIDDEN = 'd-none'\n\nconst SELECTOR_NAV_ITEM = '.nav-item'\nconst SELECTOR_NAV_LINK = '.nav-link'\nconst SELECTOR_OVERFLOW_TOGGLE = '.nav-overflow-toggle'\nconst SELECTOR_OVERFLOW_MENU = '.nav-overflow-menu'\nconst SELECTOR_CUSTOM_ICON = '[data-bs-overflow-icon]'\nconst CLASS_NAME_KEEP = 'nav-overflow-keep'\n\nconst Default = {\n collapseBelow: 0,\n iconPlacement: 'start',\n menuPlacement: 'bottom-end',\n moreText: 'More',\n moreIcon: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" viewBox=\"0 0 16 16\"><path d=\"M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3\"/></svg>',\n threshold: 0 // Minimum items to keep visible before showing overflow\n}\n\nconst DefaultType = {\n collapseBelow: '(number|string)',\n iconPlacement: 'string',\n menuPlacement: 'string',\n moreText: 'string',\n moreIcon: 'string',\n threshold: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass NavOverflow extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._items = []\n this._overflowItems = []\n this._overflowMenu = null\n this._overflowToggle = null\n this._resizeObserver = null\n this._collapseBelow = 0\n this._isInitialized = false\n\n this._init()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n update() {\n this._calculateOverflow()\n EventHandler.trigger(this._element, EVENT_UPDATE)\n }\n\n dispose() {\n if (this._resizeObserver) {\n this._resizeObserver.disconnect()\n }\n\n // Move items back to original positions\n this._restoreItems()\n\n // Remove overflow menu\n if (this._overflowToggle && this._overflowToggle.parentElement) {\n this._overflowToggle.parentElement.remove()\n }\n\n super.dispose()\n }\n\n // Private\n _init() {\n // Add overflow class to nav\n this._element.classList.add(CLASS_NAME_OVERFLOW)\n\n // Get all nav items\n this._items = [...SelectorEngine.find(SELECTOR_NAV_ITEM, this._element)]\n\n // Store original order data\n for (const [index, item] of this._items.entries()) {\n item.dataset.bsNavOrder = index\n }\n\n // Resolve collapseBelow threshold once\n this._collapseBelow = this._resolveCollapseBelow()\n\n // Create overflow menu if it doesn't exist\n this._createOverflowMenu()\n\n // Setup resize observer\n this._setupResizeObserver()\n\n // Initial calculation\n this._calculateOverflow()\n\n this._isInitialized = true\n }\n\n _createOverflowMenu() {\n // Check if overflow menu already exists\n this._overflowToggle = SelectorEngine.findOne(SELECTOR_OVERFLOW_TOGGLE, this._element)\n\n if (this._overflowToggle) {\n this._overflowMenu = SelectorEngine.findOne(SELECTOR_OVERFLOW_MENU, this._element)\n return\n }\n\n const iconHtml = this._resolveIcon()\n const iconSpan = `<span class=\"nav-overflow-icon\">${iconHtml}</span>`\n const textSpan = `<span class=\"nav-overflow-text\">${this._config.moreText}</span>`\n const toggleContent = this._config.iconPlacement === 'end' ?\n `${textSpan}${iconSpan}` :\n `${iconSpan}${textSpan}`\n\n const overflowItem = document.createElement('li')\n overflowItem.className = 'nav-item nav-overflow-item'\n overflowItem.innerHTML = `\n <button class=\"nav-link nav-overflow-toggle\" type=\"button\" data-bs-toggle=\"menu\" data-bs-placement=\"${this._config.menuPlacement}\" aria-expanded=\"false\">\n ${toggleContent}\n </button>\n <div class=\"${CLASS_NAME_OVERFLOW_MENU} menu\"></div>\n `\n\n this._element.append(overflowItem)\n this._overflowToggle = overflowItem.querySelector(SELECTOR_OVERFLOW_TOGGLE)\n this._overflowMenu = overflowItem.querySelector(SELECTOR_OVERFLOW_MENU)\n }\n\n _resolveIcon() {\n const customIconElement = SelectorEngine.findOne(SELECTOR_CUSTOM_ICON, this._element)\n\n if (!customIconElement) {\n return this._config.moreIcon\n }\n\n const iconClone = customIconElement.cloneNode(true)\n iconClone.removeAttribute('data-bs-overflow-icon')\n const iconHtml = iconClone.outerHTML\n\n customIconElement.remove()\n\n return iconHtml\n }\n\n _resolveCollapseBelow() {\n const value = this._config.collapseBelow\n\n if (typeof value === 'number') {\n return value\n }\n\n if (typeof value === 'string' && value !== '') {\n const cssValue = getComputedStyle(document.documentElement)\n .getPropertyValue(`--bs-breakpoint-${value}`)\n return Number.parseFloat(cssValue) || 0\n }\n\n return 0\n }\n\n _setupResizeObserver() {\n if (typeof ResizeObserver === 'undefined') {\n // Fallback for older browsers\n EventHandler.on(window, 'resize', () => this._calculateOverflow())\n return\n }\n\n this._resizeObserver = new ResizeObserver(() => {\n this._calculateOverflow()\n })\n\n this._resizeObserver.observe(this._element)\n }\n\n _calculateOverflow() {\n // First, restore all items to measure properly\n this._restoreItems()\n\n const navWidth = this._element.offsetWidth\n const overflowItem = this._overflowToggle?.closest('.nav-item')\n\n // When below the collapseBelow threshold, force all items into overflow\n if (this._collapseBelow > 0 && navWidth < this._collapseBelow) {\n const itemsToOverflow = this._items.filter(\n item => !item.classList.contains(CLASS_NAME_KEEP)\n )\n\n this._moveToOverflow(itemsToOverflow)\n\n if (overflowItem) {\n if (itemsToOverflow.length > 0) {\n overflowItem.classList.remove(CLASS_NAME_HIDDEN)\n } else {\n overflowItem.classList.add(CLASS_NAME_HIDDEN)\n }\n }\n\n if (itemsToOverflow.length > 0) {\n EventHandler.trigger(this._element, EVENT_OVERFLOW, {\n overflowCount: itemsToOverflow.length,\n visibleCount: this._items.length - itemsToOverflow.length\n })\n }\n\n return\n }\n\n const overflowWidth = overflowItem?.offsetWidth || 0\n\n // Keep items are always visible; subtract their widths so the threshold\n // reflects actual available space for non-keep items.\n const keepWidth = this._items\n .filter(item => item.classList.contains(CLASS_NAME_KEEP))\n .reduce((sum, item) => sum + item.offsetWidth, 0)\n\n let usedWidth = 0\n const itemsToOverflow = []\n const overflowThreshold = navWidth - overflowWidth - keepWidth - 10 // 10px buffer\n\n // Calculate which items need to overflow (skip items with keep class)\n for (const item of this._items) {\n // Never overflow items with the keep class\n if (item.classList.contains(CLASS_NAME_KEEP)) {\n continue\n }\n\n usedWidth += item.offsetWidth\n\n if (usedWidth > overflowThreshold) {\n itemsToOverflow.push(item)\n }\n }\n\n // Check if we need threshold minimum visible\n const visibleCount = this._items.length - itemsToOverflow.length\n if (visibleCount < this._config.threshold && this._items.length > this._config.threshold) {\n // Add more items to overflow until we reach threshold (but not keep items)\n const toMove = this._items.slice(this._config.threshold).filter(item => !item.classList.contains(CLASS_NAME_KEEP))\n itemsToOverflow.length = 0\n itemsToOverflow.push(...toMove)\n }\n\n // Move items to overflow menu\n this._moveToOverflow(itemsToOverflow)\n\n // Show/hide overflow toggle\n if (overflowItem) {\n if (itemsToOverflow.length > 0) {\n overflowItem.classList.remove(CLASS_NAME_HIDDEN)\n } else {\n overflowItem.classList.add(CLASS_NAME_HIDDEN)\n }\n }\n\n // Trigger overflow event if items changed\n if (itemsToOverflow.length > 0) {\n EventHandler.trigger(this._element, EVENT_OVERFLOW, {\n overflowCount: itemsToOverflow.length,\n visibleCount: this._items.length - itemsToOverflow.length\n })\n }\n }\n\n _moveToOverflow(items) {\n if (!this._overflowMenu) {\n return\n }\n\n // Clear existing overflow items\n this._overflowMenu.innerHTML = ''\n this._overflowItems = []\n\n for (const item of items) {\n const link = SelectorEngine.findOne(SELECTOR_NAV_LINK, item)\n if (!link) {\n continue\n }\n\n const clonedLink = link.cloneNode(true)\n clonedLink.className = 'menu-item'\n\n if (link.classList.contains('active')) {\n clonedLink.classList.add('active')\n }\n\n if (link.classList.contains('disabled') || link.hasAttribute('disabled')) {\n clonedLink.classList.add('disabled')\n }\n\n this._overflowMenu.append(clonedLink)\n\n // Hide original item\n item.classList.add(CLASS_NAME_HIDDEN)\n item.dataset.bsNavOverflow = 'true'\n\n this._overflowItems.push(item)\n }\n }\n\n _restoreItems() {\n for (const item of this._items) {\n item.classList.remove(CLASS_NAME_HIDDEN)\n delete item.dataset.bsNavOverflow\n }\n\n if (this._overflowMenu) {\n this._overflowMenu.innerHTML = ''\n }\n\n this._overflowItems = []\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, 'DOMContentLoaded', () => {\n for (const element of SelectorEngine.find('[data-bs-toggle=\"nav-overflow\"]')) {\n NavOverflow.getOrCreateInstance(element)\n }\n})\n\nexport default NavOverflow\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap drawer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport DialogBase from './dialog-base.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Swipe from './util/swipe.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport {\n isDisabled,\n isRTL,\n isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'drawer'\nconst DATA_KEY = 'bs.drawer'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"drawer\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Drawer extends DialogBase {\n constructor(element, config) {\n super(element, config)\n this._swipeHelper = null\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Protected — hook overrides\n\n _getShowOptions() {\n const useModal = Boolean(this._config.backdrop) || !this._config.scroll\n return {\n modal: useModal,\n preventBodyScroll: !this._config.scroll\n }\n }\n\n _onBeforeShow() {\n this._initSwipe()\n }\n\n _getInstantClassName() {\n return 'drawer-instant'\n }\n\n _getStaticClassName() {\n return 'drawer-static'\n }\n\n // Private\n\n _initSwipe() {\n if (this._swipeHelper || !Swipe.isSupported()) {\n return\n }\n\n // Determine which swipe direction dismisses based on placement\n const swipeConfig = {}\n const element = this._element\n\n if (element.classList.contains('drawer-bottom')) {\n swipeConfig.downCallback = () => this.hide()\n } else if (element.classList.contains('drawer-top')) {\n swipeConfig.upCallback = () => this.hide()\n } else if (element.classList.contains('drawer-end')) {\n // RTL: swipe left to dismiss end drawer\n if (isRTL()) {\n swipeConfig.leftCallback = () => this.hide()\n } else {\n swipeConfig.rightCallback = () => this.hide()\n }\n } else if (isRTL()) {\n // drawer-start (default): swipe right to dismiss in RTL\n swipeConfig.rightCallback = () => this.hide()\n } else {\n // drawer-start (default): swipe left to dismiss in LTR\n swipeConfig.leftCallback = () => this.hide()\n }\n\n this._swipeHelper = new Swipe(element, swipeConfig)\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n\n // Avoid conflict when clicking a toggler of a drawer, while another is open\n const alreadyOpen = SelectorEngine.findOne('dialog.drawer[open]')\n if (alreadyOpen && alreadyOpen !== target) {\n Drawer.getInstance(alreadyOpen).hide()\n }\n\n const data = Drawer.getOrCreateInstance(target)\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const selector of SelectorEngine.find('dialog.drawer[open]')) {\n Drawer.getOrCreateInstance(selector).show()\n }\n})\n\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('dialog[open][class*=\"\\\\:drawer\"]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Drawer.getOrCreateInstance(element).hide()\n }\n }\n})\n\nenableDismissTrigger(Drawer)\n\nexport default Drawer\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap strength.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'strength'\nconst DATA_KEY = 'bs.strength'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_STRENGTH_CHANGE = `strengthChange${EVENT_KEY}`\n\nconst SELECTOR_DATA_STRENGTH = '[data-bs-strength]'\n\nconst STRENGTH_LEVELS = ['weak', 'fair', 'good', 'strong']\n\nconst Default = {\n input: null, // Selector or element for password input\n minLength: 8,\n messages: {\n weak: 'Weak',\n fair: 'Fair',\n good: 'Good',\n strong: 'Strong'\n },\n weights: {\n minLength: 1,\n extraLength: 1,\n lowercase: 1,\n uppercase: 1,\n numbers: 1,\n special: 1,\n multipleSpecial: 1,\n longPassword: 1\n },\n thresholds: [2, 4, 6], // weak ≤2, fair ≤4, good ≤6, strong >6\n scorer: null // Custom scoring function (password) => number\n}\n\nconst DefaultType = {\n input: '(string|element|null)',\n minLength: 'number',\n messages: 'object',\n weights: 'object',\n thresholds: 'array',\n scorer: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Strength extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = this._getInput()\n this._segments = SelectorEngine.find('.strength-segment', this._element)\n this._textElement = SelectorEngine.findOne('.strength-text', this._element.parentElement)\n this._currentStrength = null\n\n if (this._input) {\n this._addEventListeners()\n // Check initial value\n this._evaluate()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getStrength() {\n return this._currentStrength\n }\n\n evaluate() {\n this._evaluate()\n }\n\n // Private\n _getInput() {\n if (this._config.input) {\n return typeof this._config.input === 'string' ?\n SelectorEngine.findOne(this._config.input) :\n this._config.input\n }\n\n // Look for preceding password input\n const parent = this._element.parentElement\n return SelectorEngine.findOne('input[type=\"password\"]', parent)\n }\n\n _addEventListeners() {\n EventHandler.on(this._input, 'input', () => this._evaluate())\n EventHandler.on(this._input, 'change', () => this._evaluate())\n }\n\n _evaluate() {\n const password = this._input.value\n const score = this._calculateScore(password)\n const strength = this._scoreToStrength(score)\n\n if (strength !== this._currentStrength) {\n this._currentStrength = strength\n this._updateUI(strength, score)\n\n EventHandler.trigger(this._element, EVENT_STRENGTH_CHANGE, {\n strength,\n score,\n password: password.length > 0 ? '***' : '' // Don't expose actual password\n })\n }\n }\n\n _calculateScore(password) {\n if (!password) {\n return 0\n }\n\n // Use custom scorer if provided\n if (typeof this._config.scorer === 'function') {\n return this._config.scorer(password)\n }\n\n const { weights } = this._config\n let score = 0\n\n // Length scoring\n if (password.length >= this._config.minLength) {\n score += weights.minLength\n }\n\n if (password.length >= this._config.minLength + 4) {\n score += weights.extraLength\n }\n\n // Character variety\n if (/[a-z]/.test(password)) {\n score += weights.lowercase\n }\n\n if (/[A-Z]/.test(password)) {\n score += weights.uppercase\n }\n\n if (/\\d/.test(password)) {\n score += weights.numbers\n }\n\n // Special characters\n if (/[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n score += weights.special\n }\n\n // Extra points for more special chars or length\n if (/[!@#$%^&*(),.?\":{}|<>].*[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n score += weights.multipleSpecial\n }\n\n if (password.length >= 16) {\n score += weights.longPassword\n }\n\n return score\n }\n\n _scoreToStrength(score) {\n if (score === 0) {\n return null\n }\n\n const [weak, fair, good] = this._config.thresholds\n\n if (score <= weak) {\n return 'weak'\n }\n\n if (score <= fair) {\n return 'fair'\n }\n\n if (score <= good) {\n return 'good'\n }\n\n return 'strong'\n }\n\n _updateUI(strength) {\n // Update data attribute on element\n if (strength) {\n this._element.dataset.bsStrength = strength\n } else {\n delete this._element.dataset.bsStrength\n }\n\n // Update segmented meter\n const strengthIndex = strength ? STRENGTH_LEVELS.indexOf(strength) : -1\n\n for (const [index, segment] of this._segments.entries()) {\n if (index <= strengthIndex) {\n segment.classList.add('active')\n } else {\n segment.classList.remove('active')\n }\n }\n\n // Update text feedback\n if (this._textElement) {\n if (strength && this._config.messages[strength]) {\n this._textElement.textContent = this._config.messages[strength]\n this._textElement.dataset.bsStrength = strength\n\n // Also set the color via inheriting from parent or using CSS variable\n const colorMap = {\n weak: 'danger',\n fair: 'warning',\n good: 'info',\n strong: 'success'\n }\n this._textElement.style.setProperty('--strength-color', `var(--${colorMap[strength]}-text)`)\n } else {\n this._textElement.textContent = ''\n delete this._textElement.dataset.bsStrength\n }\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_STRENGTH)) {\n Strength.getOrCreateInstance(element)\n }\n})\n\nexport default Strength\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap otp-input.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'otpInput'\nconst DATA_KEY = 'bs.otp-input'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_COMPLETE = `complete${EVENT_KEY}`\nconst EVENT_INPUT = `input${EVENT_KEY}`\n\nconst SELECTOR_DATA_OTP = '[data-bs-otp]'\nconst SELECTOR_INPUT = 'input'\n\nconst Default = {\n length: 6,\n mask: false\n}\n\nconst DefaultType = {\n length: 'number',\n mask: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass OtpInput extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._inputs = SelectorEngine.find(SELECTOR_INPUT, this._element)\n this._setupInputs()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getValue() {\n return this._inputs.map(input => input.value).join('')\n }\n\n setValue(value) {\n const chars = [...String(value)]\n for (const [index, input] of this._inputs.entries()) {\n input.value = chars[index] || ''\n }\n\n this._checkComplete()\n }\n\n clear() {\n for (const input of this._inputs) {\n input.value = ''\n }\n\n this._inputs[0]?.focus()\n }\n\n focus() {\n // Focus first empty input, or last input if all filled\n const emptyInput = this._inputs.find(input => !input.value)\n if (emptyInput) {\n emptyInput.focus()\n } else {\n this._inputs.at(-1)?.focus()\n }\n }\n\n // Private\n _setupInputs() {\n for (const input of this._inputs) {\n // Set attributes for proper OTP handling\n input.setAttribute('maxlength', '1')\n input.setAttribute('inputmode', 'numeric')\n input.setAttribute('pattern', '\\\\d*')\n\n // First input gets autocomplete for browser OTP autofill\n if (input === this._inputs[0]) {\n input.setAttribute('autocomplete', 'one-time-code')\n } else {\n input.setAttribute('autocomplete', 'off')\n }\n\n // Mask input if configured\n if (this._config.mask) {\n input.setAttribute('type', 'password')\n }\n }\n }\n\n _addEventListeners() {\n for (const [index, input] of this._inputs.entries()) {\n EventHandler.on(input, 'input', event => this._handleInput(event, index))\n EventHandler.on(input, 'keydown', event => this._handleKeydown(event, index))\n EventHandler.on(input, 'paste', event => this._handlePaste(event))\n EventHandler.on(input, 'focus', event => this._handleFocus(event))\n }\n }\n\n _handleInput(event, index) {\n const input = event.target\n\n // Only allow digits\n if (!/^\\d*$/.test(input.value)) {\n input.value = input.value.replace(/\\D/g, '')\n }\n\n const { value } = input\n\n // Handle multi-character input (some browsers/autofill)\n if (value.length > 1) {\n // Distribute characters across inputs\n const chars = [...value]\n input.value = chars[0] || ''\n\n for (let i = 1; i < chars.length && index + i < this._inputs.length; i++) {\n this._inputs[index + i].value = chars[i]\n }\n\n // Focus appropriate input\n const nextIndex = Math.min(index + chars.length, this._inputs.length - 1)\n this._inputs[nextIndex].focus()\n } else if (value && index < this._inputs.length - 1) {\n // Auto-advance to next input\n this._inputs[index + 1].focus()\n }\n\n EventHandler.trigger(this._element, EVENT_INPUT, {\n value: this.getValue(),\n index\n })\n\n this._checkComplete()\n }\n\n _handleKeydown(event, index) {\n const { key } = event\n\n switch (key) {\n case 'Backspace': {\n if (!this._inputs[index].value && index > 0) {\n // Move to previous input and clear it\n event.preventDefault()\n this._inputs[index - 1].value = ''\n this._inputs[index - 1].focus()\n }\n\n break\n }\n\n case 'Delete': {\n // Clear current and shift remaining values left\n event.preventDefault()\n for (let i = index; i < this._inputs.length - 1; i++) {\n this._inputs[i].value = this._inputs[i + 1].value\n }\n\n this._inputs.at(-1).value = ''\n break\n }\n\n case 'ArrowLeft': {\n if (index > 0) {\n event.preventDefault()\n this._inputs[index - 1].focus()\n }\n\n break\n }\n\n case 'ArrowRight': {\n if (index < this._inputs.length - 1) {\n event.preventDefault()\n this._inputs[index + 1].focus()\n }\n\n break\n }\n\n // No default\n }\n }\n\n _handlePaste(event) {\n event.preventDefault()\n const pastedData = (event.clipboardData || window.clipboardData).getData('text')\n const digits = pastedData.replace(/\\D/g, '').slice(0, this._inputs.length)\n\n if (digits) {\n this.setValue(digits)\n\n // Focus last filled input or last input\n const lastIndex = Math.min(digits.length, this._inputs.length) - 1\n this._inputs[lastIndex].focus()\n }\n }\n\n _handleFocus(event) {\n // Select the content on focus for easy replacement\n event.target.select()\n }\n\n _checkComplete() {\n const value = this.getValue()\n const isComplete = value.length === this._inputs.length &&\n this._inputs.every(input => input.value !== '')\n\n if (isComplete) {\n EventHandler.trigger(this._element, EVENT_COMPLETE, { value })\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_OTP)) {\n OtpInput.getOrCreateInstance(element)\n }\n})\n\nexport default OtpInput\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap chips.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'chips'\nconst DATA_KEY = 'bs.chips'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ADD = `add${EVENT_KEY}`\nconst EVENT_REMOVE = `remove${EVENT_KEY}`\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SELECT = `select${EVENT_KEY}`\n\nconst SELECTOR_DATA_CHIPS = '[data-bs-chips]'\nconst SELECTOR_GHOST_INPUT = '.form-ghost'\nconst SELECTOR_CHIP = '.chip'\nconst SELECTOR_CHIP_DISMISS = '.chip-dismiss'\n\nconst CLASS_NAME_CHIP = 'chip'\nconst CLASS_NAME_CHIP_DISMISS = 'chip-dismiss'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst DEFAULT_DISMISS_ICON = '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><line x1=\"4\" y1=\"4\" x2=\"12\" y2=\"12\"/><line x1=\"12\" y1=\"4\" x2=\"4\" y2=\"12\"/></svg>'\n\nconst Default = {\n separator: ',',\n allowDuplicates: false,\n maxChips: null,\n placeholder: '',\n dismissible: true,\n dismissIcon: DEFAULT_DISMISS_ICON,\n createOnBlur: true\n}\n\nconst DefaultType = {\n separator: '(string|null)',\n allowDuplicates: 'boolean',\n maxChips: '(number|null)',\n placeholder: 'string',\n dismissible: 'boolean',\n dismissIcon: 'string',\n createOnBlur: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Chips extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = SelectorEngine.findOne(SELECTOR_GHOST_INPUT, this._element)\n this._chips = []\n this._selectedChips = new Set()\n this._anchorChip = null // For shift+click range selection\n\n if (!this._input) {\n this._createInput()\n }\n\n this._initializeExistingChips()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n add(value) {\n const trimmedValue = String(value).trim()\n\n if (!trimmedValue) {\n return null\n }\n\n // Check for duplicates\n if (!this._config.allowDuplicates && this._chips.includes(trimmedValue)) {\n return null\n }\n\n // Check max chips limit\n if (this._config.maxChips !== null && this._chips.length >= this._config.maxChips) {\n return null\n }\n\n const addEvent = EventHandler.trigger(this._element, EVENT_ADD, {\n value: trimmedValue,\n relatedTarget: this._input\n })\n\n if (addEvent.defaultPrevented) {\n return null\n }\n\n const chip = this._createChip(trimmedValue)\n this._element.insertBefore(chip, this._input)\n this._chips.push(trimmedValue)\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: this.getValues()\n })\n\n return chip\n }\n\n remove(chipOrValue) {\n let chip\n let value\n\n if (typeof chipOrValue === 'string') {\n value = chipOrValue\n chip = this._findChipByValue(value)\n } else {\n chip = chipOrValue\n value = this._getChipValue(chip)\n }\n\n if (!chip || !value) {\n return false\n }\n\n const removeEvent = EventHandler.trigger(this._element, EVENT_REMOVE, {\n value,\n chip,\n relatedTarget: this._input\n })\n\n if (removeEvent.defaultPrevented) {\n return false\n }\n\n // Remove from selection\n this._selectedChips.delete(chip)\n if (this._anchorChip === chip) {\n this._anchorChip = null\n }\n\n // Remove from DOM and array\n chip.remove()\n this._chips = this._chips.filter(v => v !== value)\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: this.getValues()\n })\n\n return true\n }\n\n removeSelected() {\n const chipsToRemove = [...this._selectedChips]\n for (const chip of chipsToRemove) {\n this.remove(chip)\n }\n\n this._input?.focus()\n }\n\n getValues() {\n return [...this._chips]\n }\n\n getSelectedValues() {\n return [...this._selectedChips].map(chip => this._getChipValue(chip))\n }\n\n clear() {\n const chips = SelectorEngine.find(SELECTOR_CHIP, this._element)\n for (const chip of chips) {\n chip.remove()\n }\n\n this._chips = []\n this._selectedChips.clear()\n this._anchorChip = null\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: []\n })\n }\n\n clearSelection() {\n for (const chip of this._selectedChips) {\n chip.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n this._selectedChips.clear()\n this._anchorChip = null\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: []\n })\n }\n\n selectChip(chip, options = {}) {\n const { addToSelection = false, rangeSelect = false } = options\n const chipElements = this._getChipElements()\n\n if (!chipElements.includes(chip)) {\n return\n }\n\n if (rangeSelect && this._anchorChip) {\n // Range selection from anchor to chip\n const anchorIndex = chipElements.indexOf(this._anchorChip)\n const chipIndex = chipElements.indexOf(chip)\n const start = Math.min(anchorIndex, chipIndex)\n const end = Math.max(anchorIndex, chipIndex)\n\n if (!addToSelection) {\n this.clearSelection()\n }\n\n for (let i = start; i <= end; i++) {\n this._selectedChips.add(chipElements[i])\n chipElements[i].classList.add(CLASS_NAME_ACTIVE)\n }\n } else if (addToSelection) {\n // Toggle selection\n if (this._selectedChips.has(chip)) {\n this._selectedChips.delete(chip)\n chip.classList.remove(CLASS_NAME_ACTIVE)\n } else {\n this._selectedChips.add(chip)\n chip.classList.add(CLASS_NAME_ACTIVE)\n this._anchorChip = chip\n }\n } else {\n // Single selection\n this.clearSelection()\n this._selectedChips.add(chip)\n chip.classList.add(CLASS_NAME_ACTIVE)\n this._anchorChip = chip\n }\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: this.getSelectedValues()\n })\n }\n\n focus() {\n this._input?.focus()\n }\n\n // Private\n _getChipElements() {\n return SelectorEngine.find(SELECTOR_CHIP, this._element)\n }\n\n _createInput() {\n const input = document.createElement('input')\n input.type = 'text'\n input.className = 'form-ghost'\n if (this._config.placeholder) {\n input.placeholder = this._config.placeholder\n }\n\n this._element.append(input)\n this._input = input\n }\n\n _initializeExistingChips() {\n const existingChips = SelectorEngine.find(SELECTOR_CHIP, this._element)\n for (const chip of existingChips) {\n const value = this._getChipValue(chip)\n if (value) {\n this._chips.push(value)\n this._setupChip(chip)\n }\n }\n }\n\n _setupChip(chip) {\n // Make chip focusable\n chip.setAttribute('tabindex', '0')\n\n // Add dismiss button if needed\n if (this._config.dismissible && !SelectorEngine.findOne(SELECTOR_CHIP_DISMISS, chip)) {\n chip.append(this._createDismissButton())\n }\n }\n\n _createChip(value) {\n const chip = document.createElement('span')\n chip.className = CLASS_NAME_CHIP\n chip.dataset.bsChipValue = value\n\n // Add text node\n chip.append(document.createTextNode(value))\n\n // Setup chip (tabindex, dismiss button)\n this._setupChip(chip)\n\n return chip\n }\n\n _createDismissButton() {\n const button = document.createElement('button')\n button.type = 'button'\n button.className = CLASS_NAME_CHIP_DISMISS\n button.setAttribute('aria-label', 'Remove')\n button.setAttribute('tabindex', '-1') // Not in tab order, chips handle keyboard\n button.innerHTML = this._config.dismissIcon\n return button\n }\n\n _findChipByValue(value) {\n const chips = this._getChipElements()\n return chips.find(chip => this._getChipValue(chip) === value)\n }\n\n _getChipValue(chip) {\n if (chip.dataset.bsChipValue) {\n return chip.dataset.bsChipValue\n }\n\n const clone = chip.cloneNode(true)\n const dismiss = SelectorEngine.findOne(SELECTOR_CHIP_DISMISS, clone)\n if (dismiss) {\n dismiss.remove()\n }\n\n return clone.textContent?.trim() || ''\n }\n\n _addEventListeners() {\n // Input events\n EventHandler.on(this._input, 'keydown', event => this._handleInputKeydown(event))\n EventHandler.on(this._input, 'input', event => this._handleInput(event))\n EventHandler.on(this._input, 'paste', event => this._handlePaste(event))\n EventHandler.on(this._input, 'focus', () => this.clearSelection())\n\n if (this._config.createOnBlur) {\n EventHandler.on(this._input, 'blur', event => {\n // Don't create chip if clicking on a chip\n if (!event.relatedTarget?.closest(SELECTOR_CHIP)) {\n this._createChipFromInput()\n }\n })\n }\n\n // Chip click events (delegated)\n EventHandler.on(this._element, 'click', SELECTOR_CHIP, event => {\n // Ignore clicks on dismiss button\n if (event.target.closest(SELECTOR_CHIP_DISMISS)) {\n return\n }\n\n const chip = event.target.closest(SELECTOR_CHIP)\n if (chip) {\n event.preventDefault()\n this.selectChip(chip, {\n addToSelection: event.metaKey || event.ctrlKey,\n rangeSelect: event.shiftKey\n })\n chip.focus()\n }\n })\n\n // Dismiss button clicks (delegated)\n EventHandler.on(this._element, 'click', SELECTOR_CHIP_DISMISS, event => {\n event.stopPropagation()\n const chip = event.target.closest(SELECTOR_CHIP)\n if (chip) {\n this.remove(chip)\n this._input?.focus()\n }\n })\n\n // Chip keyboard events (delegated)\n EventHandler.on(this._element, 'keydown', SELECTOR_CHIP, event => {\n this._handleChipKeydown(event)\n })\n\n // Focus input when clicking container background\n EventHandler.on(this._element, 'click', event => {\n if (event.target === this._element) {\n this.clearSelection()\n this._input?.focus()\n }\n })\n }\n\n _handleInputKeydown(event) {\n const { key } = event\n\n switch (key) {\n case 'Enter': {\n event.preventDefault()\n this._createChipFromInput()\n break\n }\n\n case 'Backspace':\n case 'Delete': {\n if (this._input.value === '') {\n event.preventDefault()\n const chips = this._getChipElements()\n\n if (chips.length > 0) {\n // Select last chip and focus it\n const lastChip = chips.at(-1)\n this.selectChip(lastChip)\n lastChip.focus()\n }\n }\n\n break\n }\n\n case 'ArrowLeft': {\n if (this._input.selectionStart === 0 && this._input.selectionEnd === 0) {\n event.preventDefault()\n const chips = this._getChipElements()\n if (chips.length > 0) {\n const lastChip = chips.at(-1)\n if (event.shiftKey) {\n this.selectChip(lastChip, { addToSelection: true })\n } else {\n this.selectChip(lastChip)\n }\n\n lastChip.focus()\n }\n }\n\n break\n }\n\n case 'Escape': {\n this._input.value = ''\n this.clearSelection()\n this._input.blur()\n break\n }\n\n // No default\n }\n }\n\n _handleChipKeydown(event) {\n const { key } = event\n const chip = event.target.closest(SELECTOR_CHIP)\n if (!chip) {\n return\n }\n\n const chips = this._getChipElements()\n const currentIndex = chips.indexOf(chip)\n\n switch (key) {\n case 'Backspace':\n case 'Delete': {\n event.preventDefault()\n this._handleChipDelete(currentIndex, chips)\n break\n }\n\n case 'ArrowLeft': {\n event.preventDefault()\n this._navigateChip(chips, currentIndex, -1, event.shiftKey)\n break\n }\n\n case 'ArrowRight': {\n event.preventDefault()\n this._navigateChip(chips, currentIndex, 1, event.shiftKey)\n break\n }\n\n case 'Home': {\n event.preventDefault()\n this._navigateToEdge(chips, 0, event.shiftKey)\n break\n }\n\n case 'End': {\n event.preventDefault()\n this.clearSelection()\n this._input?.focus()\n break\n }\n\n case 'a': {\n this._handleSelectAll(event, chips)\n break\n }\n\n case 'Escape': {\n event.preventDefault()\n this.clearSelection()\n this._input?.focus()\n break\n }\n\n // No default\n }\n }\n\n _handleChipDelete(currentIndex, chips) {\n if (this._selectedChips.size === 0) {\n return\n }\n\n const nextIndex = Math.min(currentIndex, chips.length - this._selectedChips.size - 1)\n this.removeSelected()\n\n const remainingChips = this._getChipElements()\n if (remainingChips.length > 0) {\n const focusIndex = Math.max(0, Math.min(nextIndex, remainingChips.length - 1))\n remainingChips[focusIndex].focus()\n this.selectChip(remainingChips[focusIndex])\n } else {\n this._input?.focus()\n }\n }\n\n _navigateChip(chips, currentIndex, direction, shiftKey) {\n const targetIndex = currentIndex + direction\n\n if (direction < 0 && targetIndex >= 0) {\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { addToSelection: true, rangeSelect: true } : {})\n targetChip.focus()\n } else if (direction > 0 && targetIndex < chips.length) {\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { addToSelection: true, rangeSelect: true } : {})\n targetChip.focus()\n } else if (direction > 0) {\n this.clearSelection()\n this._input?.focus()\n }\n }\n\n _navigateToEdge(chips, targetIndex, shiftKey) {\n if (chips.length === 0) {\n return\n }\n\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { rangeSelect: true } : {})\n targetChip.focus()\n }\n\n _handleSelectAll(event, chips) {\n if (!(event.metaKey || event.ctrlKey)) {\n return\n }\n\n event.preventDefault()\n for (const c of chips) {\n this._selectedChips.add(c)\n c.classList.add(CLASS_NAME_ACTIVE)\n }\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: this.getSelectedValues()\n })\n }\n\n _handleInput(event) {\n const { value } = event.target\n const { separator } = this._config\n\n if (separator && value.includes(separator)) {\n const parts = value.split(separator)\n for (const part of parts.slice(0, -1)) {\n this.add(part.trim())\n }\n\n this._input.value = parts.at(-1)\n }\n }\n\n _handlePaste(event) {\n const { separator } = this._config\n if (!separator) {\n return\n }\n\n const pastedData = (event.clipboardData || window.clipboardData).getData('text')\n if (pastedData.includes(separator)) {\n event.preventDefault()\n\n const parts = pastedData.split(separator)\n for (const part of parts) {\n this.add(part.trim())\n }\n }\n }\n\n _createChipFromInput() {\n const value = this._input.value.trim()\n if (value) {\n this.add(value)\n this._input.value = ''\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_CHIPS)) {\n Chips.getOrCreateInstance(element)\n }\n})\n\nexport default Chips\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n// js-docs-end allow-list\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue))\n }\n\n return true\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n .some(regex => regex.test(attributeName))\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const elements = [...createdDocument.body.querySelectorAll('*')]\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n continue\n }\n\n const attributeList = [...element.attributes]\n const allowedAttributes = [...(allowList['*'] || []), ...(allowList[elementName] || [])]\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'\nimport { execute, getElement, isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'TemplateFactory'\n\nconst Default = {\n allowList: DefaultAllowlist,\n content: {}, // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '<div></div>'\n}\n\nconst DefaultType = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n}\n\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content)\n .map(config => this._resolvePossibleFunction(config))\n .filter(Boolean)\n }\n\n hasContent() {\n return this.getContent().length > 0\n }\n\n changeContent(content) {\n this._checkContent(content)\n this._config.content = { ...this._config.content, ...content }\n return this\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div')\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template)\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector)\n }\n\n const template = templateWrapper.children[0]\n const extraClass = this._resolvePossibleFunction(this._config.extraClass)\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '))\n }\n\n return template\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config)\n this._checkContent(config.content)\n }\n\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({ selector, entry: content }, DefaultContentType)\n }\n }\n\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template)\n\n if (!templateElement) {\n return\n }\n\n content = this._resolvePossibleFunction(content)\n\n if (!content) {\n templateElement.remove()\n return\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement)\n return\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content)\n return\n }\n\n templateElement.textContent = content\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [undefined, this])\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = ''\n templateElement.append(element)\n return\n }\n\n templateElement.textContent = element.textContent\n }\n}\n\nexport default TemplateFactory\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n computePosition,\n flip,\n shift,\n offset,\n arrow,\n autoUpdate\n} from '@floating-ui/dom'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport {\n execute, findShadowRoot, getElement, getUID, isRTL, noop\n} from './util/index.js'\nimport { DefaultAllowlist } from './util/sanitizer.js'\nimport TemplateFactory from './util/template-factory.js'\nimport {\n parseResponsivePlacement,\n getResponsivePlacement,\n createBreakpointListeners,\n disposeBreakpointListeners\n} from './util/floating-ui.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tooltip\"]'\n\nconst EVENT_MODAL_HIDE = 'hide.bs.modal'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\nconst EVENT_HIDE = 'hide'\nconst EVENT_HIDDEN = 'hidden'\nconst EVENT_SHOW = 'show'\nconst EVENT_SHOWN = 'shown'\nconst EVENT_INSERTED = 'inserted'\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_FOCUSOUT = 'focusout'\nconst EVENT_MOUSEENTER = 'mouseenter'\nconst EVENT_MOUSELEAVE = 'mouseleave'\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n}\n\nconst Default = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n floatingConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n title: '',\n trigger: 'hover focus'\n}\n\nconst DefaultType = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n floatingConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof computePosition === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Floating UI (https://floating-ui.com)')\n }\n\n super(element, config)\n\n // Private\n this._isEnabled = true\n this._timeout = 0\n this._isHovered = null\n this._activeTrigger = {}\n this._floatingCleanup = null\n this._templateFactory = null\n this._newContent = null\n this._mediaQueryListeners = []\n this._responsivePlacements = null\n\n // Protected\n this.tip = null\n\n this._parseResponsivePlacements()\n this._setListeners()\n\n if (!this._config.selector) {\n this._fixTitle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle() {\n if (!this._isEnabled) {\n return\n }\n\n if (this._isShown()) {\n this._leave()\n return\n }\n\n this._enter()\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'))\n }\n\n this._disposeFloating()\n this._disposeMediaQueryListeners()\n super.dispose()\n }\n\n async show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (!(this._isWithContent() && this._isEnabled)) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW))\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n this._disposeFloating()\n\n const tip = this._getTipElement()\n\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'))\n\n let { container } = this._config\n const closestDialog = this._element.closest('dialog[open]')\n if (closestDialog && container === document.body) {\n container = closestDialog\n }\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip)\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED))\n }\n\n await this._createFloating(tip)\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN))\n\n if (this._isHovered === false) {\n this._leave()\n }\n\n this._isHovered = false\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE))\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const tip = this._getTipElement()\n tip.classList.remove(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n this._isHovered = null // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (!this._isHovered) {\n this._disposeFloating()\n }\n\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN))\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n update() {\n if (this._floatingCleanup && this.tip) {\n this._updateFloatingPosition()\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle())\n }\n\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())\n }\n\n return this.tip\n }\n\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml()\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n tip.classList.add(`bs-${this.constructor.NAME}-auto`)\n\n const tipId = getUID(this.constructor.NAME).toString()\n\n tip.setAttribute('id', tipId)\n\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n return tip\n }\n\n setContent(content) {\n this._newContent = content\n if (this._isShown()) {\n this._disposeFloating()\n this.show()\n }\n }\n\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content)\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n })\n }\n\n return this._templateFactory\n }\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n }\n }\n\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title')\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\n }\n\n _isAnimated() {\n return this._config.animation || (this.tip && this.tip.classList.contains(CLASS_NAME_FADE))\n }\n\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement(tip) {\n // If we have responsive placements, get the one for current viewport\n if (this._responsivePlacements) {\n const placement = getResponsivePlacement(this._responsivePlacements, 'top')\n return AttachmentMap[placement.toUpperCase()] || placement\n }\n\n // Execute placement (can be a function)\n const placement = execute(this._config.placement, [this, tip, this._element])\n return AttachmentMap[placement.toUpperCase()] || placement\n }\n\n _parseResponsivePlacements() {\n // Only parse if placement is a string (not a function)\n if (typeof this._config.placement !== 'string') {\n this._responsivePlacements = null\n return\n }\n\n this._responsivePlacements = parseResponsivePlacement(this._config.placement, 'top')\n\n if (this._responsivePlacements) {\n this._setupMediaQueryListeners()\n }\n }\n\n _setupMediaQueryListeners() {\n this._disposeMediaQueryListeners()\n this._mediaQueryListeners = createBreakpointListeners(() => {\n if (this._isShown()) {\n this._updateFloatingPosition()\n }\n })\n }\n\n _disposeMediaQueryListeners() {\n disposeBreakpointListeners(this._mediaQueryListeners)\n this._mediaQueryListeners = []\n }\n\n async _createFloating(tip) {\n const placement = this._getPlacement(tip)\n const arrowElement = tip.querySelector(`.${this.constructor.NAME}-arrow`)\n\n // Initial position update\n await this._updateFloatingPosition(tip, placement, arrowElement)\n\n // Set up auto-update for scroll/resize\n this._floatingCleanup = autoUpdate(\n this._element,\n tip,\n () => this._updateFloatingPosition(tip, null, arrowElement)\n )\n }\n\n async _updateFloatingPosition(tip = this.tip, placement = null, arrowElement = null) {\n if (!tip) {\n return\n }\n\n if (!placement) {\n placement = this._getPlacement(tip)\n }\n\n if (!arrowElement) {\n arrowElement = tip.querySelector(`.${this.constructor.NAME}-arrow`)\n }\n\n const middleware = this._getFloatingMiddleware(arrowElement)\n const floatingConfig = this._getFloatingConfig(placement, middleware)\n\n const { x, y, placement: finalPlacement, middlewareData } = await computePosition(\n this._element,\n tip,\n floatingConfig\n )\n\n // Apply position to tooltip\n Object.assign(tip.style, {\n position: 'absolute',\n left: `${x}px`,\n top: `${y}px`\n })\n\n // Ensure arrow is absolutely positioned within tooltip\n if (arrowElement) {\n arrowElement.style.position = 'absolute'\n }\n\n // Set placement attribute for CSS arrow styling\n Manipulator.setDataAttribute(tip, 'placement', finalPlacement)\n\n // Position arrow along the edge (center it) if present\n // The CSS handles which edge to place it on via data-bs-placement\n if (arrowElement && middlewareData.arrow) {\n const { x: arrowX, y: arrowY } = middlewareData.arrow\n const isVertical = finalPlacement.startsWith('top') || finalPlacement.startsWith('bottom')\n\n // Only set the cross-axis position (centering along the edge)\n // The main-axis position (which edge) is handled by CSS\n Object.assign(arrowElement.style, {\n left: isVertical && arrowX !== null ? `${arrowX}px` : '',\n top: !isVertical && arrowY !== null ? `${arrowY}px` : '',\n // Reset the other axis to let CSS handle it\n right: '',\n bottom: ''\n })\n }\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offset === 'function') {\n // Floating UI passes different args, adapt the interface for offset function callbacks\n return ({ placement, rects }) => {\n const result = offset({ placement, reference: rects.reference, floating: rects.floating }, this._element)\n return result\n }\n }\n\n return offset\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element, this._element])\n }\n\n _getFloatingMiddleware(arrowElement) {\n const offsetValue = this._getOffset()\n\n const middleware = [\n // Offset middleware - handles distance from reference\n offset(\n typeof offsetValue === 'function' ?\n offsetValue :\n { mainAxis: offsetValue[1] || 0, crossAxis: offsetValue[0] || 0 }\n ),\n // Flip middleware - handles fallback placements\n flip({\n fallbackPlacements: this._config.fallbackPlacements\n }),\n // Shift middleware - prevents overflow\n shift({\n boundary: this._config.boundary === 'clippingParents' ? 'clippingAncestors' : this._config.boundary\n })\n ]\n\n // Arrow middleware - positions the arrow element\n if (arrowElement) {\n middleware.push(arrow({ element: arrowElement }))\n }\n\n return middleware\n }\n\n _getFloatingConfig(placement, middleware) {\n const defaultConfig = {\n placement,\n middleware\n }\n\n return {\n ...defaultConfig,\n ...execute(this._config.floatingConfig, [undefined, defaultConfig])\n }\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ')\n\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[TRIGGER_CLICK] = !(context._isShown() && context._activeTrigger[TRIGGER_CLICK])\n context.toggle()\n })\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSEENTER) :\n this.constructor.eventName(EVENT_FOCUSIN)\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSELEAVE) :\n this.constructor.eventName(EVENT_FOCUSOUT)\n\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true\n context._enter()\n })\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] =\n context._element.contains(event.relatedTarget)\n\n context._leave()\n })\n }\n }\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n\n if (!title) {\n return\n }\n\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('data-bs-original-title', title) // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title')\n }\n\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true\n return\n }\n\n this._isHovered = true\n\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show()\n }\n }, this._config.delay.show)\n }\n\n _leave() {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n this._isHovered = false\n\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide()\n }\n }, this._config.delay.hide)\n }\n\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout)\n this._timeout = setTimeout(handler, timeout)\n }\n\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true)\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute]\n }\n }\n\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container)\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value\n }\n }\n\n config.selector = false\n config.trigger = 'manual'\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config\n }\n\n _disposeFloating() {\n if (this._floatingCleanup) {\n this._floatingCleanup()\n this._floatingCleanup = null\n }\n\n if (this.tip) {\n this.tip.remove()\n this.tip = null\n }\n }\n}\n\n/**\n * Data API implementation - auto-initialize tooltips\n */\n\nconst initTooltip = event => {\n const target = event.target.closest(SELECTOR_DATA_TOGGLE)\n if (!target) {\n return\n }\n\n // Lazily create the instance. The instance's own `_setListeners()` registers\n // the appropriate listeners on the element for the configured triggers\n // (hover/focus by default), so we don't mutate `_activeTrigger` or call\n // `_enter` here — doing so would show tooltips for triggers the user didn't\n // opt into (e.g. `focusin` firing for click-focused buttons in Chromium,\n // even when `trigger=\"hover\"` or `trigger=\"manual\"`) and leave stale state\n // on `_activeTrigger`.\n Tooltip.getOrCreateInstance(target)\n}\n\n// Auto-initialize tooltips on first interaction for hover and focus triggers\nEventHandler.on(document, EVENT_FOCUSIN, SELECTOR_DATA_TOGGLE, initTooltip)\nEventHandler.on(document, EVENT_MOUSEENTER, SELECTOR_DATA_TOGGLE, initTooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Tooltip from './tooltip.js'\nimport EventHandler from './dom/event-handler.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'popover'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"popover\"]'\n\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_MOUSEENTER = 'mouseenter'\n\nconst Default = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div>' +\n '</div>',\n trigger: 'click'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n}\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent()\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n }\n }\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content)\n }\n}\n\n/**\n * Data API implementation - auto-initialize popovers\n */\n\nconst initPopover = event => {\n const target = event.target.closest(SELECTOR_DATA_TOGGLE)\n if (!target) {\n return\n }\n\n // Prevent default for click events to avoid navigation (e.g. <a href=\"#\">)\n if (event.type === 'click') {\n event.preventDefault()\n }\n\n // Lazily create the instance. The instance's own `_setListeners()` registers\n // the appropriate listeners on the element for the configured triggers\n // (click/focus/hover), so we don't toggle or call `_enter` here — doing so\n // would duplicate handlers and leave stale state on `_activeTrigger`.\n Popover.getOrCreateInstance(target)\n}\n\n// Auto-initialize popovers on first interaction for click, hover, and focus triggers\nEventHandler.on(document, EVENT_CLICK, SELECTOR_DATA_TOGGLE, initPopover)\nEventHandler.on(document, EVENT_FOCUSIN, SELECTOR_DATA_TOGGLE, initPopover)\nEventHandler.on(document, EVENT_MOUSEENTER, SELECTOR_DATA_TOGGLE, initPopover)\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getElement, isDisabled, isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_MENU_ITEM = 'menu-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]'\nconst SELECTOR_TARGET_LINKS = '[href]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\nconst SELECTOR_MENU_TOGGLE = '[data-bs-toggle=\"menu\"]'\n\nconst Default = {\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n}\n\nconst DefaultType = {\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n}\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map()\n this._observableSections = new Map()\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element\n this._activeTarget = null\n this._observer = null\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n }\n this.refresh() // initialize\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables()\n this._maybeEnableSmoothScroll()\n\n if (this._observer) {\n this._observer.disconnect()\n } else {\n this._observer = this._getNewObserver()\n }\n\n for (const section of this._observableSections.values()) {\n this._observer.observe(section)\n }\n }\n\n dispose() {\n this._observer.disconnect()\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n config.target = getElement(config.target) || document.body\n\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value))\n }\n\n return config\n }\n\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK)\n\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash)\n if (observableSection) {\n event.preventDefault()\n const root = this._rootElement || window\n const height = observableSection.offsetTop - this._element.offsetTop\n if (root.scrollTo) {\n root.scrollTo({ top: height, behavior: 'smooth' })\n return\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height\n }\n })\n }\n\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n }\n\n return new IntersectionObserver(entries => this._observerCallback(entries), options)\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`)\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop\n this._process(targetElement(entry))\n }\n\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop\n this._previousScrollData.parentScrollTop = parentScrollTop\n\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null\n this._clearActiveClass(targetElement(entry))\n\n continue\n }\n\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry)\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return\n }\n\n continue\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry)\n }\n }\n }\n\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map()\n this._observableSections = new Map()\n\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target)\n\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue\n }\n\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element)\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor)\n this._observableSections.set(anchor.hash, observableSection)\n }\n }\n }\n\n _process(target) {\n if (this._activeTarget === target) {\n return\n }\n\n this._clearActiveClass(this._config.target)\n this._activeTarget = target\n target.classList.add(CLASS_NAME_ACTIVE)\n this._activateParents(target)\n\n EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target })\n }\n\n _activateParents(target) {\n // Activate menu parents\n if (target.classList.contains(CLASS_NAME_MENU_ITEM)) {\n const menuToggle = target.closest('.menu')?.previousElementSibling\n if (menuToggle?.matches(SELECTOR_MENU_TOGGLE)) {\n menuToggle.classList.add(CLASS_NAME_ACTIVE)\n }\n\n return\n }\n\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {\n item.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _clearActiveClass(parent) {\n parent.classList.remove(CLASS_NAME_ACTIVE)\n\n const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE}`, parent)\n for (const node of activeNodes) {\n node.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {\n ScrollSpy.getOrCreateInstance(spy)\n }\n})\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { getNextActiveElement, isDisabled } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst SELECTOR_MENU_TOGGLE = '[data-bs-toggle=\"menu\"]'\nconst SELECTOR_MENU = '.menu'\nconst NOT_SELECTOR_MENU_TOGGLE = `:not(${SELECTOR_MENU_TOGGLE})`\n\nconst SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]'\nconst SELECTOR_OUTER = '.nav-item, .list-group-item'\nconst SELECTOR_INNER = `.nav-link${NOT_SELECTOR_MENU_TOGGLE}, .list-group-item${NOT_SELECTOR_MENU_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_MENU_TOGGLE}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"]'\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`\n\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"]`\n\n/**\n * Class definition\n */\n\nclass Tab extends BaseComponent {\n constructor(element) {\n super(element)\n this._parent = this._element.closest(SELECTOR_TAB_PANEL)\n\n if (!this._parent) {\n return\n // TODO: should throw exception in v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_TAB_PANEL}`)\n }\n\n // Set up initial aria attributes\n this._setInitialAttributes(this._parent, this._getChildren())\n\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n show() { // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element\n if (this._elemIsActive(innerElem)) {\n return\n }\n\n // Search for active tab on same parent to deactivate it\n const active = this._getActiveElem()\n\n const hideEvent = active ?\n EventHandler.trigger(active, EVENT_HIDE, { relatedTarget: innerElem }) :\n null\n\n const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { relatedTarget: active })\n\n if (showEvent.defaultPrevented || (hideEvent && hideEvent.defaultPrevented)) {\n return\n }\n\n this._deactivate(active, innerElem)\n this._activate(innerElem, active)\n }\n\n // Private\n _activate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n\n this._activate(SelectorEngine.getElementFromSelector(element)) // Search and activate/show the proper section\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW)\n return\n }\n\n element.removeAttribute('tabindex')\n element.setAttribute('aria-selected', true)\n this._toggleMenu(element, true)\n EventHandler.trigger(element, EVENT_SHOWN, {\n relatedTarget: relatedElem\n })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _deactivate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.remove(CLASS_NAME_ACTIVE)\n element.blur()\n\n this._deactivate(SelectorEngine.getElementFromSelector(element)) // Search and deactivate the shown section too\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW)\n return\n }\n\n element.setAttribute('aria-selected', false)\n element.setAttribute('tabindex', '-1')\n this._toggleMenu(element, false)\n EventHandler.trigger(element, EVENT_HIDDEN, { relatedTarget: relatedElem })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _keydown(event) {\n if (!([ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key))) {\n return\n }\n\n event.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n event.preventDefault()\n\n const children = this._getChildren().filter(element => !isDisabled(element))\n let nextActiveElement\n\n if ([HOME_KEY, END_KEY].includes(event.key)) {\n nextActiveElement = event.key === HOME_KEY ? children[0] : children.at(-1)\n } else {\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\n nextActiveElement = getNextActiveElement(children, event.target, isNext, true)\n }\n\n if (nextActiveElement) {\n nextActiveElement.focus({ preventScroll: true })\n Tab.getOrCreateInstance(nextActiveElement).show()\n }\n }\n\n _getChildren() { // collection of inner elements\n return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent)\n }\n\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null\n }\n\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist')\n\n for (const child of children) {\n this._setInitialAttributesOnChild(child)\n }\n }\n\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child)\n const isActive = this._elemIsActive(child)\n const outerElem = this._getOuterElement(child)\n child.setAttribute('aria-selected', isActive)\n\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation')\n }\n\n if (!isActive) {\n child.setAttribute('tabindex', '-1')\n }\n\n this._setAttributeIfNotExists(child, 'role', 'tab')\n\n // set attributes to the related panel too\n this._setInitialAttributesOnTargetPanel(child)\n }\n\n _setInitialAttributesOnTargetPanel(child) {\n const target = SelectorEngine.getElementFromSelector(child)\n\n if (!target) {\n return\n }\n\n this._setAttributeIfNotExists(target, 'role', 'tabpanel')\n\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`)\n }\n }\n\n _toggleMenu(element, open) {\n const outerElem = this._getOuterElement(element)\n const menuToggle = SelectorEngine.findOne(SELECTOR_MENU_TOGGLE, outerElem)\n if (!menuToggle) {\n return\n }\n\n const menu = SelectorEngine.findOne(SELECTOR_MENU, outerElem)\n\n menuToggle.classList.toggle(CLASS_NAME_ACTIVE, open)\n if (menu) {\n menu.classList.toggle(CLASS_NAME_SHOW, open)\n }\n\n menuToggle.setAttribute('aria-expanded', open)\n }\n\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value)\n }\n }\n\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n // Try to get the inner element (usually the .nav-link)\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem)\n }\n\n // Try to get the outer element (usually the .nav-item)\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n Tab.getOrCreateInstance(this).show()\n})\n\n/**\n * Initialize on focus\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element)\n }\n})\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { reflow } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`\nconst EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_FOCUSOUT = `focusout${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide' // @deprecated - kept here only for backwards compatibility\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 5000\n}\n\n/**\n * Class definition\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._timeout = null\n this._hasMouseInteraction = false\n this._hasKeyboardInteraction = false\n this._setListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n show() {\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n this._maybeScheduleHide()\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE) // @deprecated\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING)\n\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n hide() {\n if (!this.isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE) // @deprecated\n this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.add(CLASS_NAME_SHOWING)\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this.isShown()) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n super.dispose()\n }\n\n isShown() {\n return this._element.classList.contains(CLASS_NAME_SHOW)\n }\n\n // Private\n _maybeScheduleHide() {\n if (!this._config.autohide) {\n return\n }\n\n if (this._hasMouseInteraction || this._hasKeyboardInteraction) {\n return\n }\n\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n\n _onInteraction(event, isInteracting) {\n switch (event.type) {\n case 'mouseover':\n case 'mouseout': {\n this._hasMouseInteraction = isInteracting\n break\n }\n\n case 'focusin':\n case 'focusout': {\n this._hasKeyboardInteraction = isInteracting\n break\n }\n\n default: {\n break\n }\n }\n\n if (isInteracting) {\n this._clearTimeout()\n return\n }\n\n const nextElement = event.relatedTarget\n if (this._element === nextElement || this._element.contains(nextElement)) {\n return\n }\n\n this._maybeScheduleHide()\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false))\n EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false))\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Toast)\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap toggler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { eventActionOnPlugin } from './util/component-functions.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'toggler'\nconst DATA_KEY = 'bs.toggler'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_TOGGLE = `toggle${EVENT_KEY}`\nconst EVENT_TOGGLED = `toggled${EVENT_KEY}`\nconst EVENT_CLICK = 'click'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"toggler\"]'\n\nconst DefaultType = {\n attribute: 'string',\n value: '(string|number|boolean)'\n}\n\nconst Default = {\n attribute: 'class',\n value: null\n}\n\n/**\n * Class definition\n */\n\nclass Toggler extends BaseComponent {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n const toggleEvent = EventHandler.trigger(this._element, EVENT_TOGGLE)\n\n if (toggleEvent.defaultPrevented) {\n return\n }\n\n this._execute()\n\n EventHandler.trigger(this._element, EVENT_TOGGLED)\n }\n\n // Private\n _execute() {\n const { attribute, value } = this._config\n\n if (attribute === 'id') {\n return // You have to be kidding\n }\n\n if (attribute === 'class') {\n this._element.classList.toggle(value)\n return\n }\n\n // Compare as strings since getAttribute() always returns a string\n if (this._element.getAttribute(attribute) === String(value)) {\n this._element.removeAttribute(attribute)\n return\n }\n\n this._element.setAttribute(attribute, value)\n }\n}\n\n/**\n * Data API implementation\n */\n\neventActionOnPlugin(Toggler, EVENT_CLICK, SELECTOR_DATA_TOGGLE, 'toggle')\n\nexport default Toggler\n"],"names":["elementMap","Map","set","element","key","instance","has","instanceMap","get","size","console","error","keys","getAny","values","next","value","remove","delete","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","makeEventUid","uid","getElementEvents","bootstrapHandler","fn","handler","event","hydrateObj","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","selector","domElements","querySelectorAll","target","parentNode","domElement","findHandler","events","callable","delegationSelector","Object","find","normalizeParameters","originalTypeEvent","delegationFunction","isDelegated","typeEvent","getTypeEvent","addHandler","wrapFunction","relatedTarget","contains","call","handlers","previousFunction","replace","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","entries","includes","on","one","inNamespace","isNamespace","startsWith","length","elementEvent","slice","keyHandlers","trigger","args","evt","Event","bubbles","cancelable","dispatchEvent","obj","meta","defineProperty","configurable","normalizeData","Number","toString","JSON","parse","decodeURIComponent","normalizeDataKey","chr","toLowerCase","Manipulator","setDataAttribute","setAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","bsKeys","dataset","filter","pureKey","charAt","getDataAttribute","getAttribute","MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","parseSelector","window","CSS","escape","match","id","toType","object","undefined","prototype","getUID","prefix","Math","floor","random","document","getElementById","getTransitionDurationFromElement","transitionDuration","transitionDelay","getComputedStyle","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","isElement","nodeType","getElement","querySelector","isVisible","getClientRects","elementIsVisible","getPropertyValue","closedDetails","closest","summary","isDisabled","Node","ELEMENT_NODE","classList","disabled","hasAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","isRTL","dir","execute","possibleCallback","defaultValue","executeAfterTransition","callback","transitionElement","waitForTransition","durationPadding","emulatedDuration","called","setTimeout","getNextActiveElement","list","activeElement","shouldGetNext","isCycleAllowed","listLength","index","indexOf","max","min","Config","Default","DefaultType","NAME","Error","_getConfig","config","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","jsonConfig","constructor","configTypes","property","expectedTypes","valueType","RegExp","test","TypeError","toUpperCase","VERSION","BaseComponent","_element","_config","Data","DATA_KEY","dispose","EVENT_KEY","propertyName","getOwnPropertyNames","_queueCallback","isAnimated","getInstance","getOrCreateInstance","eventName","name","getSelector","hrefAttribute","trim","map","sel","join","SelectorEngine","Element","findOne","children","child","matches","parents","ancestor","push","prev","previous","previousElementSibling","nextElementSibling","focusableChildren","focusables","el","getSelectorFromElement","getElementFromSelector","getMultipleElementsFromSelector","enableDismissTrigger","component","method","clickEvent","tagName","preventDefault","eventActionOnPlugin","Plugin","onEvent","stringSelector","eventAction","data","instances","targets","EVENT_CLOSE","EVENT_CLOSED","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","close","closeEvent","defaultPrevented","_destroyElement","DATA_API_KEY","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE","EVENT_CLICK_DATA_API","Button","toggle","button","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","CLASS_NAME_POINTER_EVENT","SWIPE_THRESHOLD","endCallback","leftCallback","rightCallback","upCallback","downCallback","Swipe","isSupported","_deltaX","_deltaY","_supportPointerEvents","PointerEvent","_initEvents","_start","touches","clientX","clientY","_eventIsPointerPenTouch","_end","_handleSwipe","_move","absDeltaX","abs","absDeltaY","direction","add","pointerType","navigator","maxTouchPoints","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_DRAG_START","EVENT_LOAD_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_END","CLASS_NAME_START","CLASS_NAME_NEXT","CLASS_NAME_PREV","SELECTOR_ACTIVE","SELECTOR_ITEM","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM_IMG","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","KEY_TO_DIRECTION","interval","keyboard","pause","ride","touch","wrap","Carousel","_interval","_activeElement","_isSliding","touchTimeout","_swipeHelper","_indicatorsElement","_addEventListeners","cycle","_slide","nextWhenVisible","visibilityState","_clearInterval","_updateInterval","setInterval","_maybeEnableCycle","to","items","_getItems","activeIndex","_getItemIndex","_getActive","order","defaultInterval","_keydown","_addTouchEventListeners","img","endCallBack","clearTimeout","swipeConfig","_directionToOrder","_setActiveIndicatorElement","activeIndicator","newActiveIndicator","elementInterval","parseInt","isNext","nextElement","nextElementIndex","triggerEvent","_orderToDirection","from","slideEvent","isCycling","directionalClassName","orderClassName","completeCallBack","_isAnimated","clearInterval","carousel","slideIndex","carousels","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","CLASS_NAME_HORIZONTAL","WIDTH","HEIGHT","SELECTOR_ACTIVES","parent","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","_isShown","hide","show","activeChildren","_getFirstLevelChildren","startEvent","activeInstance","dimension","_getDimension","style","complete","capitalizedDimension","scrollSize","getBoundingClientRect","selected","triggerArray","isOpen","computePosition","arrow","flip","offset","shift","BREAKPOINTS","sm","md","lg","xl","parseResponsivePlacement","placementString","defaultPlacement","parts","placements","xs","part","breakpoint","placement","getResponsivePlacement","responsivePlacements","viewportWidth","innerWidth","activePlacement","breakpointOrder","minWidth","createBreakpointListeners","listeners","mql","matchMedia","disposeBreakpointListeners","ESCAPE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","HOME_KEY","END_KEY","ENTER_KEY","SPACE_KEY","RIGHT_MOUSE_BUTTON","SUBMENU_CLOSE_DELAY","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","SELECTOR_MENU","SELECTOR_SUBMENU","SELECTOR_SUBMENU_TOGGLE","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","DEFAULT_PLACEMENT","SUBMENU_PLACEMENT","resolveLogicalPlacement","triangleSign","p1","p2","p3","x","y","autoClose","boundary","container","display","floatingConfig","menu","reference","strategy","submenuTrigger","submenuDelay","Menu","_openInstances","_floatingCleanup","_mediaQueryListeners","_responsivePlacements","_parent","_isSubmenu","_openSubmenus","_submenuCloseTimeouts","_hoverIntentData","_menu","_findMenu","_menuOriginalParent","_parseResponsivePlacements","_setupSubmenuListeners","showEvent","_moveMenuToContainer","_createFloating","body","focus","focusVisible","_completeHide","_disposeFloating","_restoreMenuToOriginalParent","_disposeMediaQueryListeners","_closeAllSubmenus","_clearAllSubmenuTimeouts","update","_updateFloatingPosition","hideEvent","referenceElement","autoUpdate","_getPlacement","middleware","_getFloatingMiddleware","_getFloatingConfig","_applyFloatingPosition","_setupMediaQueryListeners","_getOffset","offsetConfig","rects","result","floating","offsetValue","mainAxis","crossAxis","fallbackPlacements","_getFallbackPlacements","fallbackMap","bottom","top","right","left","defaultConfig","_getContainer","append","isConnected","finalPlacement","assign","position","margin","_onSubmenuTriggerEnter","_onSubmenuLeave","_trackMousePosition","_onSubmenuTriggerClick","submenuWrapper","submenu","_cancelSubmenuCloseTimeout","_closeSiblingSubmenus","_openSubmenu","_isMovingTowardSubmenu","_scheduleSubmenuClose","stopPropagation","_closeSubmenu","cleanup","_createSubmenuFloating","nestedSubmenus","nested","nestedWrapper","currentSubmenuWrapper","siblingSubmenus","siblingMenu","siblingWrapper","padding","updatePosition","timeoutId","clear","timestamp","Date","now","submenuRect","currentPos","lastPos","isRtl","targetX","topCorner","bottomCorner","_pointInTriangle","point","v1","v2","v3","d1","d2","d3","hasNeg","hasPos","_selectMenuItem","currentMenu","_handleSubmenuKeydown","enterKey","exitKey","isSubmenuTrigger","requestAnimationFrame","firstItem","parentSubmenuWrapper","parentTrigger","targetItem","at","clearMenus","composedPath","isMenuTarget","dataApiKeydownHandler","isInput","isEscapeEvent","isUpOrDownEvent","isLeftOrRightEvent","isHomeOrEndEvent","isEnterOrSpaceEvent","getToggleButton","EVENT_CHANGE","CLASS_NAME_SELECTED","CLASS_NAME_PLACEHOLDER","SELECTOR_MENU_ITEM","SELECTOR_VALUE","SELECTOR_SEARCH_INPUT","SELECTOR_NO_RESULTS","multiple","placeholder","search","searchNormalize","Combobox","_toggle","_valueDisplay","_searchInput","_noResults","_hiddenInput","_menuInstance","_createHiddenInput","_createMenuInstance","_syncInitialSelection","_filterItems","createElement","insertBefore","selectedItems","_getSelectedItems","_updateToggleText","_updateHiddenInput","_showPlaceholder","item","_selectItem","_handleToggleKeydown","_handleMenuKeydown","_getVisibleItems","previouslySelected","bsValue","textContent","label","query","normalizedQuery","_normalizeText","visibleCount","text","normalize","jQueryInterface","each","EVENT_FOCUSIN_DATA_API","HIDE_DELAY","datepickerTheme","dateMin","dateMax","dateFormat","displayElement","displayMonthsCount","firstWeekday","inline","locale","positionElement","selectedDates","selectionMode","vcpOptions","Datepicker","_calendar","_initCalendar","_themeObserver","disconnect","destroy","getSelectedDates","dates","context","setSelectedDates","_isInput","_isInline","_boundInput","_positionElement","_resolvePositionElement","_displayElement","_resolveDisplayElement","calendarOptions","_buildCalendarOptions","Calendar","init","_setupThemeObserver","_parseInputValue","_updateDisplayWithSelectedDates","formattedDate","_formatDateForInput","displayChild","_getThemeAncestor","_getEffectiveTheme","_syncThemeAttribute","theme","MutationObserver","mainElement","observe","attributeFilter","vcpTheme","inputMode","positionToInput","selectionDatesMode","selectedTheme","themeAttrDetect","onClickDate","self","_handleDateClick","onInit","onShow","onHide","firstDate","_parseDate","selectedMonth","getMonth","selectedYear","getFullYear","_maybeHideAfterSelection","shouldHide","dateStr","year","month","day","_formatDate","date","Intl","DateTimeFormat","format","toLocaleDateString","separator","d","isNaN","getTime","String","padStart","getDate","formatted","bsInline","CLASS_NAME_OPEN","DialogBase","_openedAsModal","_addDialogListeners","open","_onBeforeShow","modal","preventBodyScroll","_getShowOptions","_showElement","_hideElement","_closeAndCleanup","_onAfterHide","_getInstantClassName","_getStaticClassName","_onCancel","showModal","_hideChildComponents","_shouldDeferClose","_triggerBackdropTransition","hidePreventedEvent","staticClass","eventKey","backdrop","EVENT_CANCEL","CLASS_NAME_NONMODAL","CLASS_NAME_INSTANT","CLASS_NAME_SWAP_IN","Dialog","handleUpdate","currentDialog","shouldSwap","newDialog","currentInstance","EVENT_UPDATE","EVENT_OVERFLOW","CLASS_NAME_OVERFLOW","CLASS_NAME_OVERFLOW_MENU","CLASS_NAME_HIDDEN","SELECTOR_NAV_ITEM","SELECTOR_NAV_LINK","SELECTOR_OVERFLOW_TOGGLE","SELECTOR_OVERFLOW_MENU","SELECTOR_CUSTOM_ICON","CLASS_NAME_KEEP","collapseBelow","iconPlacement","menuPlacement","moreText","moreIcon","threshold","NavOverflow","_items","_overflowItems","_overflowMenu","_overflowToggle","_resizeObserver","_collapseBelow","_isInitialized","_init","_calculateOverflow","_restoreItems","parentElement","bsNavOrder","_resolveCollapseBelow","_createOverflowMenu","_setupResizeObserver","iconHtml","_resolveIcon","iconSpan","textSpan","toggleContent","overflowItem","className","innerHTML","customIconElement","iconClone","cloneNode","outerHTML","cssValue","ResizeObserver","navWidth","offsetWidth","itemsToOverflow","_moveToOverflow","overflowCount","overflowWidth","keepWidth","reduce","sum","usedWidth","overflowThreshold","toMove","link","clonedLink","bsNavOverflow","EVENT_RESIZE","scroll","Drawer","useModal","_initSwipe","alreadyOpen","EVENT_STRENGTH_CHANGE","SELECTOR_DATA_STRENGTH","STRENGTH_LEVELS","input","minLength","messages","weak","fair","good","strong","weights","extraLength","lowercase","uppercase","numbers","special","multipleSpecial","longPassword","thresholds","scorer","Strength","_input","_getInput","_segments","_textElement","_currentStrength","_evaluate","getStrength","evaluate","password","score","_calculateScore","strength","_scoreToStrength","_updateUI","bsStrength","strengthIndex","segment","colorMap","setProperty","EVENT_COMPLETE","EVENT_INPUT","SELECTOR_DATA_OTP","SELECTOR_INPUT","mask","OtpInput","_inputs","_setupInputs","getValue","setValue","chars","_checkComplete","emptyInput","_handleInput","_handleKeydown","_handlePaste","_handleFocus","i","nextIndex","pastedData","clipboardData","getData","digits","lastIndex","select","isComplete","every","EVENT_ADD","EVENT_REMOVE","EVENT_SELECT","SELECTOR_DATA_CHIPS","SELECTOR_GHOST_INPUT","SELECTOR_CHIP","SELECTOR_CHIP_DISMISS","CLASS_NAME_CHIP","CLASS_NAME_CHIP_DISMISS","DEFAULT_DISMISS_ICON","allowDuplicates","maxChips","dismissible","dismissIcon","createOnBlur","Chips","_chips","_selectedChips","_anchorChip","_createInput","_initializeExistingChips","trimmedValue","addEvent","chip","_createChip","getValues","chipOrValue","_findChipByValue","_getChipValue","removeEvent","v","removeSelected","chipsToRemove","getSelectedValues","chips","clearSelection","selectChip","options","addToSelection","rangeSelect","chipElements","_getChipElements","anchorIndex","chipIndex","start","end","existingChips","_setupChip","_createDismissButton","bsChipValue","createTextNode","clone","dismiss","_handleInputKeydown","_createChipFromInput","metaKey","ctrlKey","shiftKey","_handleChipKeydown","lastChip","selectionStart","selectionEnd","blur","currentIndex","_handleChipDelete","_navigateChip","_navigateToEdge","_handleSelectAll","remainingChips","focusIndex","targetIndex","targetChip","c","ARIA_ATTRIBUTE_PATTERN","DefaultAllowlist","a","area","b","br","col","code","dd","div","dl","dt","em","hr","h1","h2","h3","h4","h5","h6","li","ol","p","pre","s","small","span","sub","sup","u","ul","uriAttributes","SAFE_URL_PATTERN","allowedAttribute","attribute","allowedAttributeList","attributeName","nodeName","nodeValue","attributeRegex","some","regex","sanitizeHtml","unsafeHtml","allowList","sanitizeFunction","domParser","DOMParser","createdDocument","parseFromString","elements","elementName","attributeList","allowedAttributes","content","extraClass","html","sanitize","sanitizeFn","template","DefaultContentType","entry","TemplateFactory","getContent","_resolvePossibleFunction","hasContent","changeContent","_checkContent","toHtml","templateWrapper","_maybeSanitize","_setContent","arg","templateElement","_putElementInTemplate","DISALLOWED_ATTRIBUTES","CLASS_NAME_MODAL","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","EVENT_INSERTED","EVENT_CLICK","EVENT_FOCUSIN","EVENT_FOCUSOUT","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","animation","customClass","delay","title","Tooltip","_isEnabled","_timeout","_isHovered","_activeTrigger","_templateFactory","_newContent","tip","_setListeners","_fixTitle","enable","disable","toggleEnabled","_leave","_enter","_hideModalHandler","_isWithContent","shadowRoot","isInTheDom","ownerDocument","_getTipElement","closestDialog","_isWithActiveTrigger","_getTitle","_createTipElement","_getContentForTemplate","_getTemplateFactory","tipId","setContent","_initializeOnDelegatedTarget","_getDelegateConfig","arrowElement","middlewareData","arrowX","arrowY","isVertical","triggers","eventIn","eventOut","_setTimeout","timeout","dataAttributes","dataAttribute","initTooltip","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","initPopover","EVENT_ACTIVATE","CLASS_NAME_MENU_ITEM","SELECTOR_DATA_SPY","SELECTOR_TARGET_LINKS","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","SELECTOR_MENU_TOGGLE","rootMargin","smoothScroll","ScrollSpy","_targetLinks","_observableSections","_rootElement","overflowY","_activeTarget","_observer","_previousScrollData","visibleEntryTop","parentScrollTop","refresh","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","_getNewObserver","section","observableSection","hash","height","offsetTop","scrollTo","behavior","scrollTop","IntersectionObserver","_observerCallback","targetElement","activate","_process","userScrollsDown","isIntersecting","_clearActiveClass","entryIsLowerThanPrevious","targetLinks","anchor","decodeURI","_activateParents","menuToggle","listGroup","activeNodes","node","spy","NOT_SELECTOR_MENU_TOGGLE","SELECTOR_TAB_PANEL","SELECTOR_OUTER","SELECTOR_INNER","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","Tab","_setInitialAttributes","_getChildren","innerElem","_elemIsActive","active","_getActiveElem","_deactivate","_activate","relatedElem","_toggleMenu","nextActiveElement","preventScroll","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","EVENT_MOUSEOVER","EVENT_MOUSEOUT","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_hasMouseInteraction","_hasKeyboardInteraction","_clearTimeout","_maybeScheduleHide","isShown","_onInteraction","isInteracting","EVENT_TOGGLE","EVENT_TOGGLED","Toggler","toggleEvent","_execute"],"mappings":"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","x_google_ignoreList":[13,14,15,16,20]}
\ No newline at end of file
+{"version":3,"file":"bootstrap.bundle.js","sources":["../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/dom/manipulator.js","../../js/src/util/index.js","../../js/src/util/config.js","../../js/src/base-component.js","../../js/src/dom/selector-engine.js","../../js/src/util/component-functions.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../js/src/util/floating-ui.js","../../js/src/menu.js","../../js/src/combobox.js","../../node_modules/vanilla-calendar-pro/index.mjs","../../js/src/datepicker.js","../../js/src/dialog-base.js","../../js/src/dialog.js","../../js/src/nav-overflow.js","../../js/src/util/swipe.js","../../js/src/drawer.js","../../js/src/strength.js","../../js/src/otp-input.js","../../js/src/chips.js","../../js/src/util/sanitizer.js","../../js/src/util/template-factory.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/src/toggler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${[...instanceMap.keys()][0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n getAny(element) {\n if (elementMap.has(element)) {\n return elementMap.get(element).values().next().value || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, { delegateTarget: element })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n hydrateObj(event, { delegateTarget: target })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events)\n .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'\n const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n let typeEvent = getTypeEvent(originalTypeEvent)\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n callable = wrapFunction(callable)\n }\n\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler, callable) :\n bootstrapHandler(element, callable)\n\n fn.delegationSelector = isDelegated ? handler : null\n fn.callable = callable\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false)\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getElementEvents(element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const evt = hydrateObj(new Event(event, { bubbles: true, cancelable: true }), args)\n element.dispatchEvent(evt)\n return evt\n }\n}\n\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value\n } catch {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value\n }\n })\n }\n }\n\n return obj\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n if (value === Number(value).toString()) {\n return Number(value)\n }\n\n if (value === '' || value === 'null') {\n return null\n }\n\n if (typeof value !== 'string') {\n return value\n }\n\n try {\n return JSON.parse(decodeURIComponent(value))\n } catch {\n return value\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'))\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1)\n attributes[pureKey] = normalizeData(element.dataset[key])\n }\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n if (isElement(object)) {\n return object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsely appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.harrytheo.com/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport { isElement, toType } from './index.js'\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {}\n }\n\n static get DefaultType() {\n return {}\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n return config\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n }\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property]\n const valueType = isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n }\n }\n}\n\nexport default Config\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '6.0.0-alpha1'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n // Private\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible, parseSelector } from '../util/index.js'\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`\n }\n\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null\n }\n\n return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null\n}\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [...Element.prototype.querySelectorAll.call(element, selector)]\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [...element.children].filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n let ancestor = element.parentNode.closest(selector)\n\n while (ancestor) {\n parents.push(ancestor)\n ancestor = ancestor.parentNode.closest(selector)\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n },\n\n getSelectorFromElement(element) {\n const selector = getSelector(element)\n\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null\n }\n\n return null\n },\n\n getElementFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.findOne(selector) : null\n },\n\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.find(selector) : []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport { isDisabled } from './index.js'\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`\n const name = component.NAME\n\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`)\n const instance = component.getOrCreateInstance(target)\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]()\n })\n}\n\nconst eventActionOnPlugin = (Plugin, onEvent, stringSelector, method, callback = null) => {\n eventAction(`${onEvent}.${Plugin.NAME}`, stringSelector, data => {\n const instances = data.targets.filter(Boolean).map(element => Plugin.getOrCreateInstance(element))\n if (typeof callback === 'function') {\n callback({ ...data, instances })\n }\n\n for (const instance of instances) {\n instance[method]()\n }\n })\n}\n\nconst eventAction = (onEvent, stringSelector, callback) => {\n const selector = `${stringSelector}:not(.disabled):not(:disabled)`\n EventHandler.on(document, onEvent, selector, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n const selector = SelectorEngine.getSelectorFromElement(this)\n const targets = selector ? SelectorEngine.find(selector) : [this]\n\n callback({ targets, event })\n })\n}\n\nexport {\n enableDismissTrigger,\n eventActionOnPlugin\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE)\n\n if (closeEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE)\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated)\n }\n\n // Private\n _destroyElement() {\n this._element.remove()\n EventHandler.trigger(this._element, EVENT_CLOSED)\n this.dispose()\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close')\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'button'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {\n event.preventDefault()\n\n const button = event.target.closest(SELECTOR_DATA_TOGGLE)\n const data = Button.getOrCreateInstance(button)\n\n data.toggle()\n})\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { isRTL, isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\n\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'carousel-fade'\nconst CLASS_NAME_CENTER = 'carousel-center'\nconst CLASS_NAME_AUTO = 'carousel-auto'\nconst CLASS_NAME_CLONE = 'carousel-item-clone'\nconst CLASS_NAME_PAUSED = 'paused'\n// Added to the root while the autoplay timer is running, so CSS can fill the\n// active indicator like a progress bar over the current slide's interval.\nconst CLASS_NAME_PLAYING = 'carousel-playing'\n\n// Shipped (`--bs-`-prefixed) custom property the indicator fill animation reads\n// for its duration. The build prefixes every custom property, so the bare\n// `--carousel-interval` used in the SCSS source becomes this at runtime.\nconst PROPERTY_INTERVAL = '--bs-carousel-interval'\n\n// How many frames the scroll-settle watcher waits when no movement is ever\n// detected (clamped programmatic scroll, or `scrollBy` stubbed in tests) before\n// it gives up and restores snapping anyway.\nconst SCROLL_SETTLE_MAX_FRAMES = 10\n\n// How far below the most-visible slide a slide's IntersectionRatio can be while\n// still counting as the active (left-most) slide. After a programmatic scroll\n// the viewport rests a sub-pixel past the snap offset, leaving the intended\n// slide a hair less visible than its fully-in neighbors; the tolerance prevents\n// that rounding from skipping the active index forward.\nconst ACTIVE_RATIO_TOLERANCE = 0.05\n\nconst SELECTOR_ACTIVE = '.active'\n// Exclude transient loop clones so index math, indicators, and active-slide\n// detection only ever see the real slides.\nconst SELECTOR_ITEM = `.carousel-item:not(.${CLASS_NAME_CLONE})`\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM\nconst SELECTOR_INNER = '.carousel-inner'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_PLAY_PAUSE = '.carousel-control-play-pause'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_SLIDE_PREV = '[data-bs-slide=\"prev\"]'\nconst SELECTOR_DATA_SLIDE_NEXT = '[data-bs-slide=\"next\"]'\nconst SELECTOR_DATA_AUTOPLAY = '[data-bs-autoplay=\"true\"]'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst ENDS_STOP = 'stop'\nconst ENDS_WRAP = 'wrap'\nconst ENDS_LOOP = 'loop'\n\nconst Default = {\n autoplay: false,\n ends: ENDS_LOOP,\n interval: 5000,\n keyboard: true,\n pause: 'hover'\n}\n\nconst DefaultType = {\n autoplay: 'boolean',\n ends: 'string',\n interval: 'number',\n keyboard: 'boolean',\n pause: '(string|boolean)'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // The scroll viewport. The browser owns sliding, dragging, momentum, and\n // keyboard scrolling; this controller only layers on autoplay, the\n // prev/next/indicator controls, and active-slide syncing.\n this._viewport = SelectorEngine.findOne(SELECTOR_INNER, this._element) || this._element\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._playPauseElement = SelectorEngine.findOne(SELECTOR_PLAY_PAUSE, this._element)\n // Prev/next controls scoped to the carousel root (covers inline and stacked\n // layouts). External controls placed outside `.carousel` aren't managed.\n this._prevControls = SelectorEngine.find(SELECTOR_DATA_SLIDE_PREV, this._element)\n this._nextControls = SelectorEngine.find(SELECTOR_DATA_SLIDE_NEXT, this._element)\n\n this._interval = null\n this._observer = null\n this._snapRestoreFrame = null\n // True while a seamless loop transition is animating, so the\n // IntersectionObserver and re-entrant navigation don't interfere.\n this._looping = false\n this._visibility = new Map()\n // Runtime autoplay intent. Starts from the `autoplay` option, but is turned\n // off once the user takes control (clicks a control, uses the keyboard,\n // swipes/drags, or presses pause) so we don't move content out from under\n // them (WCAG 2.2.2 Pause, Stop, Hide).\n this._playing = this._config.autoplay\n\n this._activeIndex = this._initialActiveIndex()\n\n this._addEventListeners()\n this._observeItems()\n this._refreshActiveState()\n\n if (this._playing) {\n this.cycle()\n }\n\n this._updatePlayPauseControl()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n next() {\n this.to(this._navIndex() + 1)\n }\n\n nextWhenVisible() {\n // Don't advance when the page or the carousel isn't visible\n if (document.visibilityState === 'visible' && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n this.to(this._navIndex() - 1)\n }\n\n pause() {\n this._clearInterval()\n // Freeze the indicator progress fill; it resets to empty until cycling\n // resumes and `_scheduleAutoplay` restarts it from scratch.\n this._element.classList.remove(CLASS_NAME_PLAYING)\n }\n\n cycle() {\n this._clearInterval()\n this._scheduleAutoplay()\n this._element.classList.add(CLASS_NAME_PLAYING)\n }\n\n to(index) {\n // Ignore navigation while a seamless loop transition is animating\n if (this._looping) {\n return\n }\n\n const items = this._getItems()\n const rawIndex = Number.parseInt(index, 10)\n\n // Seamless loop: continue forward/backward into a transient clone instead of\n // the visible `wrap` jump. Only the simple single-slide scroll layout\n // qualifies, and reduced motion falls back to the plain wrap below.\n if (this._config.ends === ENDS_LOOP && !this._prefersReducedMotion() && this._canLoop()) {\n if (rawIndex > items.length - 1) {\n this._loopTransition(true)\n return\n }\n\n if (rawIndex < 0) {\n this._loopTransition(false)\n return\n }\n }\n\n const targetIndex = this._normalizeIndex(rawIndex, items.length)\n // Measure \"current\" from the live scroll position: `_activeIndex` updates\n // asynchronously, so an indicator/control used mid-scroll must compare\n // against where the viewport actually rests (`_navIndex` returns the tracked\n // active index for fade/non-scrollable layouts).\n const currentIndex = this._navIndex()\n\n if (targetIndex === null || targetIndex === currentIndex) {\n return\n }\n\n const slideEvent = EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget: items[targetIndex],\n direction: this._direction(currentIndex, targetIndex),\n from: currentIndex,\n to: targetIndex\n })\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (this._isFade()) {\n this._fadeTo(targetIndex)\n return\n }\n\n // Scroll mode: the IntersectionObserver fires `slid` and syncs state once\n // the new slide settles into view.\n this._scrollToIndex(targetIndex)\n }\n\n dispose() {\n // Stop autoplay first: otherwise a pending timer would fire after the\n // instance is torn down and throw on the now-null `_element`.\n this._clearInterval()\n\n if (this._observer) {\n this._observer.disconnect()\n }\n\n if (this._snapRestoreFrame !== null) {\n cancelAnimationFrame(this._snapRestoreFrame)\n }\n\n // Tidy up any in-flight loop transition: drop a stray clone and restore\n // native snapping, so the viewport isn't left mid-animation.\n for (const clone of SelectorEngine.find(`.${CLASS_NAME_CLONE}`, this._viewport)) {\n clone.remove()\n }\n\n this._viewport.style.scrollSnapType = ''\n\n // The pointerdown listener lives on the viewport (`.carousel-inner`), which\n // `super.dispose()` doesn't clean up—it only drops listeners on `_element`.\n EventHandler.off(this._viewport, EVENT_KEY)\n\n super.dispose()\n }\n\n // Private\n // Normalize an unknown `ends` value so navigation and end-control logic can't\n // disagree about whether the carousel wraps.\n _configAfterMerge(config) {\n if (![ENDS_STOP, ENDS_WRAP, ENDS_LOOP].includes(config.ends)) {\n config.ends = Default.ends\n }\n\n return config\n }\n\n _initialActiveIndex() {\n const active = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const index = active ? this._getItems().indexOf(active) : 0\n return Math.max(index, 0)\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause())\n EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle())\n }\n\n // Dragging, swiping, or tapping the track is an explicit interaction\n EventHandler.on(this._viewport, EVENT_POINTERDOWN, () => this._pauseFromInteraction())\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n const direction = KEY_TO_DIRECTION[event.key]\n if (direction) {\n event.preventDefault()\n this._pauseFromInteraction()\n if (direction === DIRECTION_RIGHT) {\n this.prev()\n } else {\n this.next()\n }\n }\n }\n\n _observeItems() {\n // Fade mode stacks slides instead of scrolling, so there's nothing to observe\n if (this._isFade() || typeof IntersectionObserver === 'undefined') {\n return\n }\n\n this._observer = new IntersectionObserver(\n entries => this._handleIntersection(entries),\n { root: this._viewport, threshold: [0, 0.25, 0.5, 0.75, 1] }\n )\n\n for (const item of this._getItems()) {\n this._observer.observe(item)\n }\n }\n\n _handleIntersection(entries) {\n // A loop transition deliberately scrolls onto a transient clone; ignore the\n // visibility churn so it doesn't move the active index mid-animation.\n if (this._looping) {\n return\n }\n\n for (const entry of entries) {\n this._visibility.set(entry.target, entry.isIntersecting ? entry.intersectionRatio : 0)\n }\n\n const items = this._getItems()\n const ratios = items.map(item => this._visibility.get(item) ?? 0)\n const maxRatio = Math.max(...ratios)\n\n // Pick the left-most slide that's *near* fully visible rather than the strict\n // global maximum. After a programmatic scroll the viewport rests ~1px past\n // the target snap offset, so the intended left-most slide reports a ratio a\n // hair below the deeper, fully-visible ones (e.g. 0.997 vs 1.0). A strict max\n // would skip past it and inflate the active index by one, which breaks\n // multi-item next/prev. The tolerance keeps the intended slide active while\n // peeking slivers (well below the max) are still ignored.\n let bestIndex = this._activeIndex\n\n if (maxRatio > 0) {\n bestIndex = ratios.findIndex(ratio => ratio >= maxRatio - ACTIVE_RATIO_TOLERANCE)\n }\n\n this._setActive(bestIndex)\n // Keep the end controls in sync with the scroll position even when the\n // active index doesn't change (e.g. the final stretch of a multi-item\n // scroll, where the left-most slide is already the last reachable one).\n this._updateEndControls()\n }\n\n // The index a `next()`/`prev()` step is measured from. Scroll layouts read it\n // from the live scroll position instead of `this._activeIndex`, because the\n // IntersectionObserver updates that asynchronously: after one step the index\n // can still be stale, so the next step would compute the same target and\n // silently no-op (the \"the button does nothing / can't reach the end slide\"\n // symptom). Fade and non-scrollable layouts have no scroll position to read,\n // so they keep using the tracked active index (also what the unit tests rely\n // on when there's no real layout).\n _navIndex() {\n if (this._isFade() || (this._viewport.scrollWidth - this._viewport.clientWidth) <= 0) {\n return this._activeIndex\n }\n\n let index = this._activeIndex\n let smallestDelta = Number.POSITIVE_INFINITY\n\n for (const [itemIndex, item] of this._getItems().entries()) {\n // The slide currently resting at the active position has ~zero delta.\n const delta = Math.abs(this._scrollDelta(item))\n if (delta < smallestDelta) {\n smallestDelta = delta\n index = itemIndex\n }\n }\n\n return index\n }\n\n _scrollToIndex(index) {\n const item = this._getItems()[index]\n if (!item) {\n return\n }\n\n const left = this._scrollDelta(item)\n if (Math.abs(left) < 1) {\n return\n }\n\n // `scroll-snap-stop: always` keeps user wheel/touch flings to a single slide,\n // but it also clamps *programmatic* scrolls to one snap point — which would\n // break multi-slide jumps from an indicator click, `to()`, or wrapping from\n // the last slide back to the first. Disable snapping for the duration of the\n // programmatic scroll, then restore it once the scroll settles so the slide\n // still rests precisely (honouring peek/gap).\n const targetLeft = this._viewport.scrollLeft + left\n this._viewport.style.scrollSnapType = 'none'\n this._viewport.scrollBy({\n left,\n top: 0,\n // `'instant'` (not `'auto'`) for reduced motion: the viewport sets\n // `scroll-behavior: smooth` in CSS, and `'auto'` defers to it, so it would\n // still animate. `'instant'` forces an immediate, motion-free jump.\n behavior: this._prefersReducedMotion() ? 'instant' : 'smooth'\n })\n this._restoreSnapWhenSettled(targetLeft, index)\n }\n\n // Horizontal distance to scroll the viewport so `element` rests where the\n // active slide should sit. Scroll the viewport itself rather than calling\n // `element.scrollIntoView()`: the latter scrolls *every* scrollable ancestor\n // (including the page), so an autoplaying carousel below the fold would yank\n // the whole page to itself on each tick. Using bounding rects keeps it\n // direction-agnostic (works in RTL).\n _scrollDelta(element) {\n const viewportRect = this._viewport.getBoundingClientRect()\n const rect = element.getBoundingClientRect()\n\n if (this._element.classList.contains(CLASS_NAME_CENTER)) {\n return (rect.left + (rect.width / 2)) - (viewportRect.left + (viewportRect.width / 2))\n }\n\n // Start alignment: rest the slide at the scroll-padding (peek) offset, which\n // is exactly where scroll-snap will settle. Aligning flush to the edge\n // instead would make the browser re-snap by `peek` once snapping is restored,\n // producing a visible secondary nudge after the programmatic scroll.\n const padStart = Number.parseFloat(getComputedStyle(this._viewport).scrollPaddingInlineStart) || 0\n\n return isRTL() ?\n rect.right - (viewportRect.right - padStart) :\n rect.left - (viewportRect.left + padStart)\n }\n\n // Seamless loop: continue past an end into a one-off clone of the destination\n // slide, then teleport to the real slide so there's no visible backward jump.\n _loopTransition(isNext) {\n const items = this._getItems()\n const last = items.length - 1\n const fromIndex = this._activeIndex\n const toIndex = isNext ? 0 : last\n const direction = this._loopDirection(isNext)\n\n const slideEvent = EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget: items[toIndex],\n direction,\n from: fromIndex,\n to: toIndex\n })\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n this._looping = true\n\n const clone = (isNext ? items[0] : items[last]).cloneNode(true)\n clone.classList.add(CLASS_NAME_CLONE)\n clone.classList.remove(CLASS_NAME_ACTIVE)\n clone.removeAttribute('id')\n // Also strip ids from the cloned subtree to avoid duplicate ids while the\n // clone is on screen.\n for (const node of SelectorEngine.find('[id]', clone)) {\n node.removeAttribute('id')\n }\n\n clone.setAttribute('aria-hidden', 'true')\n clone.inert = true\n\n this._viewport.style.scrollSnapType = 'none'\n\n if (isNext) {\n this._viewport.append(clone)\n } else {\n this._viewport.prepend(clone)\n // Prepending shifts the real slides to the right; instantly re-align the\n // current slide so the insertion doesn't flash before we animate.\n this._jumpScroll(this._scrollDelta(items[fromIndex]))\n }\n\n this._viewport.scrollBy({\n left: this._scrollDelta(clone),\n top: 0,\n behavior: 'smooth'\n })\n\n this._afterScrollSettles(() => {\n // Teleport to the real destination without animation. JS runs to\n // completion before the browser paints, so removing the clone and the\n // compensating scroll land in a single frame (no visible flash).\n clone.remove()\n this._jumpScroll(this._scrollDelta(items[toIndex]))\n\n this._activeIndex = toIndex\n this._refreshActiveState()\n\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: items[toIndex],\n direction,\n from: fromIndex,\n to: toIndex\n })\n\n this._viewport.style.scrollSnapType = ''\n this._looping = false\n })\n }\n\n _loopDirection(isNext) {\n if (isRTL()) {\n return isNext ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n return isNext ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n // Instant (non-animated) scroll with snapping suspended, used to teleport the\n // viewport during a loop transition. `behavior: 'instant'` is required because\n // the viewport sets `scroll-behavior: smooth` in CSS, and `'auto'` would defer\n // to it and animate the teleport (a visible backward slide).\n _jumpScroll(delta) {\n this._viewport.style.scrollSnapType = 'none'\n this._viewport.scrollBy({ left: delta, top: 0, behavior: 'instant' })\n }\n\n // Re-enable scroll snapping once the viewport reaches `targetLeft` (or stops\n // moving). Passing the target matters: restoring `mandatory` snapping re-snaps\n // to the *nearest* snap point, so if we restored mid-animation the viewport\n // could jump back to the slide we came from — most visible stepping to the\n // first/last slide, where it looks like the control \"doesn't work\".\n _restoreSnapWhenSettled(targetLeft, index) {\n this._afterScrollSettles(() => {\n this._viewport.style.scrollSnapType = ''\n // Without IntersectionObserver nothing else fires `slid`/updates the active\n // slide after a programmatic scroll, so do it here. With the observer\n // present this is a no-op (it already moved the active index to `index`).\n if (!this._observer && index !== undefined) {\n this._setActive(index)\n }\n\n // The IntersectionObserver doesn't fire once the viewport has stopped, so\n // refresh the end controls here to catch the final ~1px settle landing\n // exactly on the scroll extent (e.g. disabling `next` at the last view).\n this._updateEndControls()\n }, targetLeft)\n }\n\n // Invoke `callback` once the viewport stops moving. We watch the scroll\n // position across frames instead of relying on the `scrollend` event, which\n // isn't available across our supported browsers yet.\n //\n // Crucially, we only start counting \"stable\" frames once the scroll has\n // actually moved. A smooth `scrollBy` doesn't update `scrollLeft` for the first\n // frame or two, so naively treating those initial unchanged frames as\n // \"settled\" would re-enable `mandatory` snapping mid-animation — which cancels\n // the in-flight programmatic scroll and lands on the wrong slide (most visible\n // in multi-item layouts). If the scroll never moves (delta clamped at an end,\n // or `scrollBy` stubbed out in unit tests), we fall back to a short frame cap.\n //\n // When `targetLeft` is known we also finish the moment we arrive there, so the\n // snap is restored exactly on the destination snap point and can't re-snap the\n // viewport backwards (the failure mode where stepping to the first/last slide\n // appears to do nothing).\n _afterScrollSettles(callback, targetLeft) {\n if (typeof requestAnimationFrame === 'undefined') {\n callback()\n return\n }\n\n if (this._snapRestoreFrame !== null) {\n cancelAnimationFrame(this._snapRestoreFrame)\n }\n\n const startLeft = this._viewport.scrollLeft\n let lastLeft = startLeft\n let stableFrames = 0\n let waited = 0\n let hasMoved = false\n\n const tick = () => {\n const currentLeft = this._viewport.scrollLeft\n const reachedTarget = targetLeft !== undefined && Math.abs(currentLeft - targetLeft) <= 1\n\n if (Math.abs(currentLeft - startLeft) > 1) {\n hasMoved = true\n }\n\n // Only accrue stable frames after movement begins, so the pre-animation\n // and ease-in frames don't prematurely count as settled.\n if (hasMoved) {\n stableFrames = Math.abs(currentLeft - lastLeft) < 1 ? stableFrames + 1 : 0\n }\n\n lastLeft = currentLeft\n waited += 1\n\n if (reachedTarget || (hasMoved && stableFrames >= 3) || (!hasMoved && waited >= SCROLL_SETTLE_MAX_FRAMES)) {\n this._snapRestoreFrame = null\n callback()\n return\n }\n\n this._snapRestoreFrame = requestAnimationFrame(tick)\n }\n\n this._snapRestoreFrame = requestAnimationFrame(tick)\n }\n\n // Fade mode just swaps the active class; the CSS opacity transition on\n // `.carousel-item` performs the crossfade over `--carousel-fade-duration` (and\n // collapses to an instant swap under reduced motion, via the `transition`\n // mixin). It deliberately avoids the View Transition API: a view transition\n // crossfades a page snapshot over its own (shorter) duration while this CSS\n // fade also runs underneath, so the two animations overlap and visibly stutter.\n _fadeTo(index) {\n this._setActive(index)\n }\n\n _setActive(index) {\n const items = this._getItems()\n if (index === this._activeIndex || !items[index]) {\n return\n }\n\n const from = this._activeIndex\n\n this._activeIndex = index\n this._refreshActiveState()\n\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: items[index],\n direction: this._direction(from, index),\n from,\n to: index\n })\n }\n\n _refreshActiveState() {\n const items = this._getItems()\n\n for (const [index, item] of items.entries()) {\n item.classList.toggle(CLASS_NAME_ACTIVE, index === this._activeIndex)\n }\n\n this._setActiveIndicatorElement(this._activeIndex)\n this._updateEndControls()\n }\n\n _updateEndControls() {\n // Only `ends: 'stop'` has real ends; under `wrap`/`loop` you can always\n // advance, so disabling end controls would be meaningless. When stopping,\n // disable the prev control at the start of the scroll range and the next\n // control at the end so there are no dead end-buttons.\n if (this._config.ends !== ENDS_STOP) {\n return\n }\n\n const viewport = this._viewport\n const maxScroll = viewport.scrollWidth - viewport.clientWidth\n\n let atStart\n let atEnd\n\n if (maxScroll > 0) {\n // Scrollable: measure the real scroll extent so this works for multi-item,\n // peek, and variable-width layouts where the last slide can never become\n // the left-most (active) one. `Math.abs` keeps it correct in RTL, where\n // `scrollLeft` runs from 0 down to negative.\n const progress = Math.abs(viewport.scrollLeft)\n atStart = progress <= 1\n atEnd = progress >= maxScroll - 1\n } else {\n // Not scrollable (or no layout yet, e.g. in unit tests): fall back to the\n // active index for the single-slide case.\n const last = this._getItems().length - 1\n atStart = this._activeIndex <= 0\n atEnd = this._activeIndex >= last\n }\n\n this._setControlsDisabled(this._prevControls, atStart)\n this._setControlsDisabled(this._nextControls, atEnd)\n }\n\n _setControlsDisabled(controls, disabled) {\n for (const control of controls) {\n // a11y: if we're about to disable the focused control, move focus to the\n // opposite (still-enabled) control so focus isn't lost.\n if (disabled && control === document.activeElement) {\n const opposite = controls === this._prevControls ? this._nextControls : this._prevControls\n const fallback = opposite[0] ?? this._viewport\n // `preventScroll` so moving focus doesn't yank the page/viewport to the\n // newly-focused control mid-navigation.\n fallback.focus({ preventScroll: true })\n }\n\n control.disabled = disabled\n }\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return\n }\n\n const active = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n active.removeAttribute('aria-current')\n }\n\n const newActive = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement)\n if (newActive) {\n newActive.classList.add(CLASS_NAME_ACTIVE)\n newActive.setAttribute('aria-current', 'true')\n }\n }\n\n _normalizeIndex(index, length) {\n if (Number.isNaN(index) || length === 0) {\n return null\n }\n\n if (index < 0) {\n return this._wrapsAround() ? length - 1 : null\n }\n\n if (index > length - 1) {\n return this._wrapsAround() ? 0 : null\n }\n\n return index\n }\n\n // Whether navigating past an end wraps to the other end. `loop` continues\n // seamlessly where it can (see `_canLoop`) and otherwise behaves like `wrap`.\n _wrapsAround() {\n return this._config.ends === ENDS_WRAP || this._config.ends === ENDS_LOOP\n }\n\n // Seamless looping is only supported for the simple single-slide scroll\n // layout. Multi-item, peek, center, and variable-width layouts fall back to\n // the plain `wrap` jump.\n _canLoop() {\n if (this._isFade() || this._getItems().length < 2) {\n return false\n }\n\n const styles = getComputedStyle(this._element)\n const num = name => Number.parseFloat(styles.getPropertyValue(name)) || 0\n\n // These are the shipped, `--bs-`-prefixed custom properties (the build\n // prefixes every custom property), not the bare names used in the SCSS source.\n return (num('--bs-carousel-items') || 1) === 1 &&\n num('--bs-carousel-items-peek') === 0 &&\n !this._element.classList.contains(CLASS_NAME_CENTER) &&\n !this._element.classList.contains(CLASS_NAME_AUTO)\n }\n\n _direction(from, to) {\n const isNext = to > from\n if (isRTL()) {\n return isNext ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n return isNext ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n _scheduleAutoplay(index = this._activeIndex) {\n const interval = this._itemInterval(index)\n // Expose the wait so the active indicator's CSS fill matches it.\n this._element.style.setProperty(PROPERTY_INTERVAL, `${interval}ms`)\n this._interval = setTimeout(() => {\n // Capture the slide the advance lands on *before* navigating: the active\n // index only updates once the scroll settles (asynchronously), so reading\n // it after `nextWhenVisible()` would schedule the next wait from the slide\n // we're leaving — making per-item `data-bs-interval`s lag by one slide.\n const upcoming = this._upcomingIndex()\n this.nextWhenVisible()\n\n // Nothing comes after the last slide when `ends: 'stop'`; stop cycling\n // instead of re-arming a timer that can never advance.\n if (upcoming === null) {\n this.pause()\n return\n }\n\n this._scheduleAutoplay(upcoming)\n }, interval)\n }\n\n // The slide the next autoplay tick will rest on, derived from the live scroll\n // position (which still reflects the current slide when the timer fires).\n // Returns `null` when there's nowhere left to advance (`ends: stop` at the end).\n _upcomingIndex() {\n return this._normalizeIndex(this._navIndex() + 1, this._getItems().length)\n }\n\n _itemInterval(index = this._activeIndex) {\n const item = this._getItems()[index]\n const interval = item ? Number.parseInt(item.getAttribute('data-bs-interval'), 10) : Number.NaN\n return Number.isNaN(interval) ? this._config.interval : interval\n }\n\n _maybeEnableCycle() {\n if (!this._playing) {\n return\n }\n\n this.cycle()\n }\n\n // Turn autoplay off for good once the user interacts with the carousel\n _pauseFromInteraction() {\n this._playing = false\n this.pause()\n this._updatePlayPauseControl()\n }\n\n _togglePlayPause() {\n if (this._playing) {\n this._pauseFromInteraction()\n return\n }\n\n this._playing = true\n this.cycle()\n this._updatePlayPauseControl()\n }\n\n _updatePlayPauseControl() {\n if (!this._playPauseElement) {\n return\n }\n\n this._playPauseElement.classList.toggle(CLASS_NAME_PAUSED, !this._playing)\n\n const label = this._playPauseElement.getAttribute(\n this._playing ? 'data-bs-pause-label' : 'data-bs-play-label'\n )\n\n if (label) {\n this._playPauseElement.setAttribute('aria-label', label)\n }\n }\n\n _isFade() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _prefersReducedMotion() {\n return typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element)\n }\n\n _clearInterval() {\n if (this._interval) {\n clearTimeout(this._interval)\n this._interval = null\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n const carousel = Carousel.getOrCreateInstance(target)\n\n // Manually cycling the carousel is an explicit interaction, so stop autoplay\n carousel._pauseFromInteraction()\n\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n carousel.to(slideIndex)\n return\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next()\n return\n }\n\n carousel.prev()\n})\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_PLAY_PAUSE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n Carousel.getOrCreateInstance(target)._togglePlayPause()\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_AUTOPLAY)\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel)\n }\n})\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getElement,\n reflow\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\nconst Default = {\n parent: null,\n toggle: true\n}\n\nconst DefaultType = {\n parent: '(null|element)',\n toggle: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._triggerArray = []\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElement => foundElement === this._element)\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem)\n }\n }\n\n this._initializeChildren()\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown())\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return\n }\n\n let activeChildren = []\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\n .filter(element => element !== this._element)\n .map(element => Collapse.getOrCreateInstance(element, { toggle: false }))\n }\n\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide()\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n this._addAriaAndCollapsedClass(this._triggerArray, true)\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n this._element.style[dimension] = ''\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n this._queueCallback(complete, this._element, true)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger)\n\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false)\n }\n }\n\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n this._queueCallback(complete, this._element, true)\n }\n\n // Private\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle) // Coerce string values\n config.parent = getElement(config.parent)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE)\n\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element)\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected))\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element))\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return\n }\n\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen)\n element.setAttribute('aria-expanded', isOpen)\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {\n event.preventDefault()\n }\n\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, { toggle: false }).toggle()\n }\n})\n\nexport default Collapse\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n const firstChar = placement[0];\n return firstChar === 't' || firstChar === 'b' ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.includes('start') ? placement.replace('start', 'end') : placement.replace('end', 'start');\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n const side = getSide(placement);\n return oppositeSideMap[side] + placement.slice(side.length);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n// Maximum number of resets that can occur before bailing to avoid infinite reset loops.\nconst MAX_RESET_COUNT = 50;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const platformWithDetectOverflow = platform.detectOverflow ? platform : {\n ...platform,\n detectOverflow\n };\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let resetCount = 0;\n const middlewareData = {};\n for (let i = 0; i < middleware.length; i++) {\n const currentMiddleware = middleware[i];\n if (!currentMiddleware) {\n continue;\n }\n const {\n name,\n fn\n } = currentMiddleware;\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform: platformWithDetectOverflow,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData[name] = {\n ...middlewareData[name],\n ...data\n };\n if (reset && resetCount < MAX_RESET_COUNT) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects,\n platform\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await platform.detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await platform.detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n platform\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && display !== 'inline' && display !== 'contents';\n}\nfunction isTableElement(element) {\n return /^(table|td|th)$/.test(getNodeName(element));\n}\nfunction isTopLayer(element) {\n try {\n if (element.matches(':popover-open')) {\n return true;\n }\n } catch (_e) {\n // no-op\n }\n try {\n return element.matches(':modal');\n } catch (_e) {\n return false;\n }\n}\nconst willChangeRe = /transform|translate|scale|rotate|perspective|filter/;\nconst containRe = /paint|layout|strict|content/;\nconst isNotNone = value => !!value && value !== 'none';\nlet isWebKitValue;\nfunction isContainingBlock(elementOrCss) {\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return isNotNone(css.transform) || isNotNone(css.translate) || isNotNone(css.scale) || isNotNone(css.rotate) || isNotNone(css.perspective) || !isWebKit() && (isNotNone(css.backdropFilter) || isNotNone(css.filter)) || willChangeRe.test(css.willChange || '') || containRe.test(css.contain || '');\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (isWebKitValue == null) {\n isWebKitValue = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('-webkit-backdrop-filter', 'none');\n }\n return isWebKitValue;\n}\nfunction isLastTraversableNode(node) {\n return /^(html|body|#document)$/.test(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n } else {\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n }\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && (currentContainingBlockComputedStyle.position === 'absolute' || currentContainingBlockComputedStyle.position === 'fixed') || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);\n let top = firstRect.top;\n let right = firstRect.right;\n let bottom = firstRect.bottom;\n let left = firstRect.left;\n for (let i = 1; i < clippingAncestors.length; i++) {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);\n top = max(rect.top, top);\n right = min(rect.right, right);\n bottom = min(rect.bottom, bottom);\n left = max(rect.left, left);\n }\n return {\n width: right - left,\n height: bottom - top,\n x: left,\n y: top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...(floating ? getOverflowAncestors(floating) : [])] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver && floating) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n if (floating) {\n resizeObserver.observe(floating);\n }\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/floating-ui.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isRTL } from './index.js'\n\n/**\n * Breakpoints for responsive placement (matches SCSS $breakpoints)\n */\nexport const BREAKPOINTS = {\n sm: 576,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536\n}\n\n/**\n * Default placement with RTL support\n */\nexport const getDefaultPlacement = (fallback = 'bottom') => {\n if (fallback.includes('-start') || fallback.includes('-end')) {\n const [side, alignment] = fallback.split('-')\n const flippedAlignment = alignment === 'start' ? 'end' : 'start'\n return isRTL() ? `${side}-${flippedAlignment}` : fallback\n }\n\n return fallback\n}\n\n/**\n * Parse a placement string that may contain responsive prefixes\n * Example: \"bottom-start md:top-end lg:right\" returns { xs: 'bottom-start', md: 'top-end', lg: 'right' }\n *\n * @param {string} placementString - The placement string to parse\n * @param {string} defaultPlacement - The default placement to use for xs/base\n * @returns {object|null} - Object with breakpoint keys and placement values, or null if not responsive\n */\nexport const parseResponsivePlacement = (placementString, defaultPlacement = 'bottom') => {\n // Check if placement contains responsive prefixes (e.g., \"bottom-start md:top-end\")\n if (!placementString || !placementString.includes(':')) {\n return null\n }\n\n // Parse the placement string into breakpoint-keyed object\n const parts = placementString.split(/\\s+/)\n const placements = { xs: defaultPlacement } // Default fallback\n\n for (const part of parts) {\n if (part.includes(':')) {\n // Responsive placement like \"md:top-end\"\n const [breakpoint, placement] = part.split(':')\n if (BREAKPOINTS[breakpoint] !== undefined) {\n placements[breakpoint] = placement\n }\n } else {\n // Base placement (no prefix = xs/default)\n placements.xs = part\n }\n }\n\n return placements\n}\n\n/**\n * Get the active placement for the current viewport width\n *\n * @param {object} responsivePlacements - Object with breakpoint keys and placement values\n * @param {string} defaultPlacement - Fallback placement\n * @returns {string} - The active placement for current viewport\n */\nexport const getResponsivePlacement = (responsivePlacements, defaultPlacement = 'bottom') => {\n if (!responsivePlacements) {\n return defaultPlacement\n }\n\n // Get current viewport width\n const viewportWidth = window.innerWidth\n\n // Find the largest breakpoint that matches\n let activePlacement = responsivePlacements.xs || defaultPlacement\n\n // Check breakpoints in order (sm, md, lg, xl, 2xl)\n const breakpointOrder = ['sm', 'md', 'lg', 'xl', '2xl']\n\n for (const breakpoint of breakpointOrder) {\n const minWidth = BREAKPOINTS[breakpoint]\n if (viewportWidth >= minWidth && responsivePlacements[breakpoint]) {\n activePlacement = responsivePlacements[breakpoint]\n }\n }\n\n return activePlacement\n}\n\n/**\n * Create media query listeners for responsive placement changes\n *\n * @param {Function} callback - Callback to run when breakpoint changes\n * @returns {Array} - Array of { mql, handler } objects for cleanup\n */\nexport const createBreakpointListeners = callback => {\n const listeners = []\n\n for (const breakpoint of Object.keys(BREAKPOINTS)) {\n const minWidth = BREAKPOINTS[breakpoint]\n const mql = window.matchMedia(`(min-width: ${minWidth}px)`)\n\n mql.addEventListener('change', callback)\n listeners.push({ mql, handler: callback })\n }\n\n return listeners\n}\n\n/**\n * Clean up media query listeners\n *\n * @param {Array} listeners - Array of { mql, handler } objects\n */\nexport const disposeBreakpointListeners = listeners => {\n for (const { mql, handler } of listeners) {\n mql.removeEventListener('change', handler)\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap menu.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n computePosition,\n flip,\n shift,\n offset,\n autoUpdate\n} from '@floating-ui/dom'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n execute,\n getElement,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop\n} from './util/index.js'\nimport {\n parseResponsivePlacement,\n getResponsivePlacement,\n createBreakpointListeners,\n disposeBreakpointListeners\n} from './util/floating-ui.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'menu'\nconst DATA_KEY = 'bs.menu'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\nconst ENTER_KEY = 'Enter'\nconst SPACE_KEY = ' '\nconst RIGHT_MOUSE_BUTTON = 2\n\nconst SUBMENU_CLOSE_DELAY = 100\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"menu\"]:not(.disabled):not(:disabled)'\n\nconst SELECTOR_MENU = '.menu'\nconst SELECTOR_SUBMENU = '.submenu'\nconst SELECTOR_SUBMENU_TOGGLE = '.submenu > .menu-item'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.menu-item:not(.disabled):not(:disabled)'\n\nconst DEFAULT_PLACEMENT = 'bottom-start'\nconst SUBMENU_PLACEMENT = 'end-start'\n\nconst resolveLogicalPlacement = placement => {\n if (isRTL()) {\n return placement.replace(/^start(?=-|$)/, 'right').replace(/^end(?=-|$)/, 'left')\n }\n\n return placement.replace(/^start(?=-|$)/, 'left').replace(/^end(?=-|$)/, 'right')\n}\n\nconst triangleSign = (p1, p2, p3) =>\n ((p1.x - p3.x) * (p2.y - p3.y)) - ((p2.x - p3.x) * (p1.y - p3.y))\n\nconst Default = {\n autoClose: true,\n boundary: 'clippingParents',\n container: false,\n display: 'dynamic',\n offset: [0, 2],\n floatingConfig: null,\n menu: null,\n placement: DEFAULT_PLACEMENT,\n reference: 'toggle',\n strategy: 'absolute',\n submenuTrigger: 'both',\n submenuDelay: SUBMENU_CLOSE_DELAY\n}\n\nconst DefaultType = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n display: 'string',\n offset: '(array|string|function)',\n floatingConfig: '(null|object|function)',\n menu: '(null|element)',\n placement: 'string',\n reference: '(string|element|object)',\n strategy: 'string',\n submenuTrigger: 'string',\n submenuDelay: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass Menu extends BaseComponent {\n static _openInstances = new Set()\n\n constructor(element, config) {\n if (typeof computePosition === 'undefined') {\n throw new TypeError('Bootstrap\\'s menus require Floating UI (https://floating-ui.com)')\n }\n\n super(element, config)\n\n this._floatingCleanup = null\n this._mediaQueryListeners = []\n this._responsivePlacements = null\n this._parent = this._element.parentNode\n this._isSubmenu = this._parent.classList?.contains('submenu')\n this._openSubmenus = new Map()\n this._submenuCloseTimeouts = new Map()\n this._hoverIntentData = null\n\n this._menu = this._config.menu || this._findMenu()\n\n this._menuOriginalParent = this._menu?.parentNode\n\n this._parseResponsivePlacements()\n this._setupSubmenuListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._moveMenuToContainer()\n this._createFloating()\n\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of document.body.children) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n this._element.focus({ focusVisible: false })\n this._element.setAttribute('aria-expanded', 'true')\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.add(CLASS_NAME_SHOW)\n }\n\n Menu._openInstances.add(this)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n this._disposeMediaQueryListeners()\n this._closeAllSubmenus()\n this._clearAllSubmenuTimeouts()\n Menu._openInstances.delete(this)\n super.dispose()\n }\n\n update() {\n if (this._floatingCleanup) {\n this._updateFloatingPosition()\n }\n }\n\n // Private\n _findMenu() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.prev(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.findOne(SELECTOR_MENU, this._parent)\n }\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._closeAllSubmenus()\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.remove(CLASS_NAME_SHOW)\n }\n\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'placement')\n Manipulator.removeDataAttribute(this._menu, 'display')\n Menu._openInstances.delete(this)\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = super._getConfig(config)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createFloating() {\n if (this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'display', 'static')\n return\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n this._updateFloatingPosition(referenceElement)\n\n this._floatingCleanup = autoUpdate(\n referenceElement,\n this._menu,\n () => this._updateFloatingPosition(referenceElement)\n )\n }\n\n async _updateFloatingPosition(referenceElement = null) {\n if (!this._menu) {\n return\n }\n\n if (!referenceElement) {\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n } else {\n referenceElement = this._element\n }\n }\n\n const placement = this._getPlacement()\n const middleware = this._getFloatingMiddleware()\n const floatingConfig = this._getFloatingConfig(placement, middleware)\n\n await this._applyFloatingPosition(\n referenceElement,\n this._menu,\n floatingConfig.placement,\n floatingConfig.middleware,\n floatingConfig.strategy\n )\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement() {\n const placement = this._responsivePlacements ?\n getResponsivePlacement(this._responsivePlacements, DEFAULT_PLACEMENT) :\n this._config.placement\n\n return resolveLogicalPlacement(placement)\n }\n\n _parseResponsivePlacements() {\n this._responsivePlacements = parseResponsivePlacement(this._config.placement, DEFAULT_PLACEMENT)\n\n if (this._responsivePlacements) {\n this._setupMediaQueryListeners()\n }\n }\n\n _setupMediaQueryListeners() {\n this._disposeMediaQueryListeners()\n this._mediaQueryListeners = createBreakpointListeners(() => {\n if (this._isShown()) {\n this._updateFloatingPosition()\n }\n })\n }\n\n _disposeMediaQueryListeners() {\n disposeBreakpointListeners(this._mediaQueryListeners)\n this._mediaQueryListeners = []\n }\n\n _getOffset() {\n const { offset: offsetConfig } = this._config\n\n if (typeof offsetConfig === 'string') {\n return offsetConfig.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offsetConfig === 'function') {\n return ({ placement, rects }) => {\n const result = offsetConfig({ placement, reference: rects.reference, floating: rects.floating }, this._element)\n return result\n }\n }\n\n return offsetConfig\n }\n\n _getFloatingMiddleware() {\n const offsetValue = this._getOffset()\n\n const middleware = [\n offset(\n typeof offsetValue === 'function' ?\n offsetValue :\n { mainAxis: offsetValue[1] || 0, crossAxis: offsetValue[0] || 0 }\n ),\n flip({\n fallbackPlacements: this._getFallbackPlacements()\n }),\n shift({\n boundary: this._config.boundary === 'clippingParents' ? 'clippingAncestors' : this._config.boundary\n })\n ]\n\n return middleware\n }\n\n _getFallbackPlacements() {\n const placement = this._getPlacement()\n\n const fallbackMap = {\n bottom: ['top', 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\n 'bottom-start': ['top-start', 'bottom-end', 'top-end'],\n 'bottom-end': ['top-end', 'bottom-start', 'top-start'],\n top: ['bottom', 'top-start', 'top-end', 'bottom-start', 'bottom-end'],\n 'top-start': ['bottom-start', 'top-end', 'bottom-end'],\n 'top-end': ['bottom-end', 'top-start', 'bottom-start'],\n right: ['left', 'right-start', 'right-end', 'left-start', 'left-end'],\n 'right-start': ['left-start', 'right-end', 'left-end', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'right-start', 'left-start', 'top-end', 'bottom-end'],\n left: ['right', 'left-start', 'left-end', 'right-start', 'right-end'],\n 'left-start': ['right-start', 'left-end', 'right-end', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'left-start', 'right-start', 'top-end', 'bottom-end']\n }\n\n return fallbackMap[placement] || ['top', 'bottom', 'right', 'left']\n }\n\n _getFloatingConfig(placement, middleware) {\n const defaultConfig = {\n placement,\n middleware,\n strategy: this._config.strategy\n }\n\n return {\n ...defaultConfig,\n ...execute(this._config.floatingConfig, [undefined, defaultConfig])\n }\n }\n\n _disposeFloating() {\n if (this._floatingCleanup) {\n this._floatingCleanup()\n this._floatingCleanup = null\n }\n }\n\n _getContainer() {\n const { container } = this._config\n if (container === false) {\n return null\n }\n\n return container === true ? document.body : getElement(container)\n }\n\n _moveMenuToContainer() {\n const container = this._getContainer()\n if (!container || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== container) {\n container.append(this._menu)\n }\n }\n\n _restoreMenuToOriginalParent() {\n if (!this._menuOriginalParent || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== this._menuOriginalParent) {\n this._menuOriginalParent.append(this._menu)\n }\n }\n\n async _applyFloatingPosition(reference, floating, placement, middleware, strategy = 'absolute') {\n if (!floating.isConnected) {\n return null\n }\n\n const { x, y, placement: finalPlacement } = await computePosition(\n reference,\n floating,\n { placement, middleware, strategy }\n )\n\n if (!floating.isConnected) {\n return null\n }\n\n Object.assign(floating.style, {\n position: strategy,\n left: `${x}px`,\n top: `${y}px`,\n margin: '0'\n })\n\n Manipulator.setDataAttribute(floating, 'placement', finalPlacement)\n return finalPlacement\n }\n\n // -------------------------------------------------------------------------\n // Submenu handling\n // -------------------------------------------------------------------------\n\n _setupSubmenuListeners() {\n if (this._config.submenuTrigger === 'hover' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'mouseenter', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerEnter(event)\n })\n\n EventHandler.on(this._menu, 'mouseleave', SELECTOR_SUBMENU, event => {\n this._onSubmenuLeave(event)\n })\n\n EventHandler.on(this._menu, 'mousemove', event => {\n this._trackMousePosition(event)\n })\n }\n\n if (this._config.submenuTrigger === 'click' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'click', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerClick(event)\n })\n }\n }\n\n _onSubmenuTriggerEnter(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n this._cancelSubmenuCloseTimeout(submenu)\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n\n _onSubmenuLeave(event) {\n const submenuWrapper = event.target.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu || !this._openSubmenus.has(submenu)) {\n return\n }\n\n if (this._isMovingTowardSubmenu(event, submenu)) {\n return\n }\n\n this._scheduleSubmenuClose(submenu, submenuWrapper)\n }\n\n _onSubmenuTriggerClick(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n if (this._openSubmenus.has(submenu)) {\n this._closeSubmenu(submenu, submenuWrapper)\n } else {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n }\n\n _openSubmenu(trigger, submenu, submenuWrapper) {\n if (this._openSubmenus.has(submenu)) {\n return\n }\n\n trigger.setAttribute('aria-expanded', 'true')\n trigger.setAttribute('aria-haspopup', 'true')\n\n submenu.classList.add(CLASS_NAME_SHOW)\n submenuWrapper.classList.add(CLASS_NAME_SHOW)\n\n const cleanup = this._createSubmenuFloating(trigger, submenu, submenuWrapper)\n this._openSubmenus.set(submenu, cleanup)\n\n EventHandler.on(submenu, 'mouseenter', () => {\n this._cancelSubmenuCloseTimeout(submenu)\n })\n }\n\n _closeSubmenu(submenu, submenuWrapper) {\n if (!this._openSubmenus.has(submenu)) {\n return\n }\n\n const nestedSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, submenu)\n for (const nested of nestedSubmenus) {\n const nestedWrapper = nested.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(nested, nestedWrapper)\n }\n\n const trigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, submenuWrapper)\n\n const cleanup = this._openSubmenus.get(submenu)\n if (cleanup) {\n cleanup()\n }\n\n this._openSubmenus.delete(submenu)\n EventHandler.off(submenu, 'mouseenter')\n\n if (trigger) {\n trigger.setAttribute('aria-expanded', 'false')\n }\n\n submenu.classList.remove(CLASS_NAME_SHOW)\n submenuWrapper.classList.remove(CLASS_NAME_SHOW)\n\n submenu.style.position = ''\n submenu.style.left = ''\n submenu.style.top = ''\n submenu.style.margin = ''\n }\n\n _closeAllSubmenus() {\n for (const [submenu] of this._openSubmenus) {\n const submenuWrapper = submenu.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(submenu, submenuWrapper)\n }\n }\n\n _closeSiblingSubmenus(currentSubmenuWrapper) {\n const parent = currentSubmenuWrapper.parentNode\n const siblingSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} > ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, parent)\n\n for (const siblingMenu of siblingSubmenus) {\n const siblingWrapper = siblingMenu.closest(SELECTOR_SUBMENU)\n if (siblingWrapper !== currentSubmenuWrapper) {\n this._closeSubmenu(siblingMenu, siblingWrapper)\n }\n }\n }\n\n _createSubmenuFloating(trigger, submenu, submenuWrapper) {\n const referenceElement = submenuWrapper\n const placement = resolveLogicalPlacement(SUBMENU_PLACEMENT)\n const middleware = [\n offset({ mainAxis: 0, crossAxis: -4 }),\n flip({\n fallbackPlacements: [\n resolveLogicalPlacement('start-start'),\n resolveLogicalPlacement('end-end'),\n resolveLogicalPlacement('start-end')\n ]\n }),\n shift({ padding: 8 })\n ]\n\n const updatePosition = () => this._applyFloatingPosition(referenceElement, submenu, placement, middleware)\n\n updatePosition()\n return autoUpdate(referenceElement, submenu, updatePosition)\n }\n\n _scheduleSubmenuClose(submenu, submenuWrapper) {\n this._cancelSubmenuCloseTimeout(submenu)\n\n const timeoutId = setTimeout(() => {\n this._closeSubmenu(submenu, submenuWrapper)\n this._submenuCloseTimeouts.delete(submenu)\n }, this._config.submenuDelay)\n\n this._submenuCloseTimeouts.set(submenu, timeoutId)\n }\n\n _cancelSubmenuCloseTimeout(submenu) {\n const timeoutId = this._submenuCloseTimeouts.get(submenu)\n if (timeoutId) {\n clearTimeout(timeoutId)\n this._submenuCloseTimeouts.delete(submenu)\n }\n }\n\n _clearAllSubmenuTimeouts() {\n for (const timeoutId of this._submenuCloseTimeouts.values()) {\n clearTimeout(timeoutId)\n }\n\n this._submenuCloseTimeouts.clear()\n }\n\n // -------------------------------------------------------------------------\n // Hover intent / Safe triangle\n // -------------------------------------------------------------------------\n\n _trackMousePosition(event) {\n this._hoverIntentData = {\n x: event.clientX,\n y: event.clientY,\n timestamp: Date.now()\n }\n }\n\n _isMovingTowardSubmenu(event, submenu) {\n if (!this._hoverIntentData) {\n return false\n }\n\n const submenuRect = submenu.getBoundingClientRect()\n const currentPos = { x: event.clientX, y: event.clientY }\n const lastPos = { x: this._hoverIntentData.x, y: this._hoverIntentData.y }\n\n const isRtl = isRTL()\n const targetX = isRtl ? submenuRect.right : submenuRect.left\n const topCorner = { x: targetX, y: submenuRect.top }\n const bottomCorner = { x: targetX, y: submenuRect.bottom }\n\n return this._pointInTriangle(currentPos, lastPos, topCorner, bottomCorner)\n }\n\n _pointInTriangle(point, v1, v2, v3) {\n const d1 = triangleSign(point, v1, v2)\n const d2 = triangleSign(point, v2, v3)\n const d3 = triangleSign(point, v3, v1)\n\n const hasNeg = (d1 < 0) || (d2 < 0) || (d3 < 0)\n const hasPos = (d1 > 0) || (d2 > 0) || (d3 > 0)\n\n return !(hasNeg && hasPos)\n }\n\n // -------------------------------------------------------------------------\n // Keyboard navigation\n // -------------------------------------------------------------------------\n\n _selectMenuItem({ key, target }) {\n const currentMenu = target.closest(SELECTOR_MENU) || this._menu\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (!items.length) {\n return\n }\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n _handleSubmenuKeydown(event) {\n const { key, target } = event\n const isRtl = isRTL()\n\n const enterKey = isRtl ? ARROW_LEFT_KEY : ARROW_RIGHT_KEY\n const exitKey = isRtl ? ARROW_RIGHT_KEY : ARROW_LEFT_KEY\n\n const submenuWrapper = target.closest(SELECTOR_SUBMENU)\n const isSubmenuTrigger = submenuWrapper && target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === enterKey && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === exitKey) {\n const currentMenu = target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper) {\n event.preventDefault()\n event.stopPropagation()\n\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n this._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return true\n }\n }\n\n if (key === HOME_KEY || key === END_KEY) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = target.closest(SELECTOR_MENU)\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (items.length) {\n const targetItem = key === HOME_KEY ? items[0] : items.at(-1)\n targetItem.focus()\n }\n\n return true\n }\n\n return false\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n for (const instance of Menu._openInstances) {\n if (instance._config.autoClose === false) {\n continue\n }\n\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(instance._menu)\n if (\n composedPath.includes(instance._element) ||\n (instance._config.autoClose === 'inside' && !isMenuTarget) ||\n (instance._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n if (instance._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n const relatedTarget = { relatedTarget: instance._element }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n instance._completeHide(relatedTarget)\n }\n }\n\n static dataApiKeydownHandler(event) {\n const isInput = /input|textarea/i.test(event.target.tagName)\n const isEscapeEvent = event.key === ESCAPE_KEY\n const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)\n const isLeftOrRightEvent = [ARROW_LEFT_KEY, ARROW_RIGHT_KEY].includes(event.key)\n const isHomeOrEndEvent = [HOME_KEY, END_KEY].includes(event.key)\n const isEnterOrSpaceEvent = [ENTER_KEY, SPACE_KEY].includes(event.key)\n\n const isSubmenuTrigger = event.target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if (!isUpOrDownEvent && !isEscapeEvent && !isLeftOrRightEvent && !isHomeOrEndEvent &&\n !(isEnterOrSpaceEvent && isSubmenuTrigger)) {\n return\n }\n\n if (isInput && !isEscapeEvent) {\n return\n }\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\n this :\n (SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.next(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\n\n if (!getToggleButton) {\n return\n }\n\n const instance = Menu.getOrCreateInstance(getToggleButton)\n\n if ((isLeftOrRightEvent || isHomeOrEndEvent || (isEnterOrSpaceEvent && isSubmenuTrigger)) && instance._handleSubmenuKeydown(event)) {\n return\n }\n\n if (isUpOrDownEvent) {\n event.preventDefault()\n event.stopPropagation()\n instance.show()\n instance._selectMenuItem(event)\n return\n }\n\n if (isEscapeEvent && instance._isShown()) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = event.target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper && instance._openSubmenus.size > 0) {\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n instance._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return\n }\n\n instance.hide()\n getToggleButton.focus()\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Menu.getOrCreateInstance(this).toggle()\n})\n\nexport default Menu\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap combobox.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Menu from './menu.js'\nimport { getNextActiveElement, isDisabled, isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'combobox'\nconst DATA_KEY = 'bs.combobox'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\nconst ENTER_KEY = 'Enter'\nconst SPACE_KEY = ' '\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SELECTED = 'selected'\nconst CLASS_NAME_PLACEHOLDER = 'combobox-placeholder'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"combobox\"]'\nconst SELECTOR_MENU = '.menu'\nconst SELECTOR_MENU_ITEM = '.menu-item[data-bs-value]'\nconst SELECTOR_VISIBLE_ITEMS = '.menu-item[data-bs-value]:not(.disabled):not(:disabled)'\nconst SELECTOR_VALUE = '.combobox-value'\nconst SELECTOR_SEARCH_INPUT = '.combobox-search-input'\nconst SELECTOR_NO_RESULTS = '.combobox-no-results'\n\nconst Default = {\n boundary: 'clippingParents',\n multiple: false,\n name: null,\n offset: [0, 2],\n placeholder: '',\n placement: 'bottom-start',\n search: false,\n searchNormalize: false\n}\n\nconst DefaultType = {\n boundary: '(string|element)',\n multiple: 'boolean',\n name: '(string|null)',\n offset: '(array|string|function)',\n placeholder: 'string',\n placement: 'string',\n search: 'boolean',\n searchNormalize: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Combobox extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._toggle = this._element\n this._menu = SelectorEngine.next(this._toggle, SELECTOR_MENU)[0]\n this._valueDisplay = SelectorEngine.findOne(SELECTOR_VALUE, this._toggle)\n this._searchInput = SelectorEngine.findOne(SELECTOR_SEARCH_INPUT, this._menu)\n this._noResults = SelectorEngine.findOne(SELECTOR_NO_RESULTS, this._menu)\n this._hiddenInput = null\n this._menuInstance = null\n\n this._createHiddenInput()\n this._createMenuInstance()\n this._syncInitialSelection()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._toggle) || this._isShown()) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._toggle, EVENT_SHOW)\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._menuInstance.show()\n\n if (this._searchInput) {\n this._searchInput.value = ''\n this._filterItems('')\n requestAnimationFrame(() => this._searchInput.focus())\n }\n\n EventHandler.trigger(this._toggle, EVENT_SHOWN)\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._toggle, EVENT_HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._menuInstance.hide()\n EventHandler.trigger(this._toggle, EVENT_HIDDEN)\n }\n\n dispose() {\n if (this._menuInstance) {\n this._menuInstance.dispose()\n this._menuInstance = null\n }\n\n if (this._hiddenInput) {\n this._hiddenInput.remove()\n this._hiddenInput = null\n }\n\n EventHandler.off(this._menu, EVENT_KEY)\n EventHandler.off(this._toggle, EVENT_KEY)\n\n super.dispose()\n }\n\n // Private\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _createHiddenInput() {\n const { name } = this._config\n if (!name) {\n return\n }\n\n this._hiddenInput = document.createElement('input')\n this._hiddenInput.type = 'hidden'\n this._hiddenInput.name = name\n this._hiddenInput.value = ''\n this._toggle.parentNode.insertBefore(this._hiddenInput, this._toggle)\n }\n\n _createMenuInstance() {\n this._menuInstance = new Menu(this._toggle, {\n menu: this._menu,\n autoClose: this._config.multiple ? 'outside' : true,\n boundary: this._config.boundary,\n offset: this._config.offset,\n placement: this._config.placement\n })\n }\n\n _syncInitialSelection() {\n const selectedItems = this._getSelectedItems()\n if (selectedItems.length > 0) {\n this._updateToggleText()\n this._updateHiddenInput()\n } else {\n this._showPlaceholder()\n }\n }\n\n _addEventListeners() {\n EventHandler.on(this._menu, 'click', SELECTOR_MENU_ITEM, event => {\n const item = event.target.closest(SELECTOR_MENU_ITEM)\n if (!item || isDisabled(item)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n this._selectItem(item)\n })\n\n EventHandler.on(this._toggle, 'keydown', event => {\n this._handleToggleKeydown(event)\n })\n\n EventHandler.on(this._menu, 'keydown', event => {\n this._handleMenuKeydown(event)\n })\n\n if (this._searchInput) {\n EventHandler.on(this._searchInput, 'input', () => {\n this._filterItems(this._searchInput.value)\n })\n\n EventHandler.on(this._searchInput, 'keydown', event => {\n if (event.key === ARROW_DOWN_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n items[0].focus()\n }\n }\n\n if (event.key === ESCAPE_KEY) {\n this.hide()\n this._toggle.focus()\n }\n })\n }\n }\n\n _selectItem(item) {\n if (this._config.multiple) {\n item.classList.toggle(CLASS_NAME_SELECTED)\n item.setAttribute('aria-selected', item.classList.contains(CLASS_NAME_SELECTED))\n } else {\n const previouslySelected = SelectorEngine.find(`.${CLASS_NAME_SELECTED}`, this._menu)\n for (const prev of previouslySelected) {\n prev.classList.remove(CLASS_NAME_SELECTED)\n prev.setAttribute('aria-selected', 'false')\n }\n\n item.classList.add(CLASS_NAME_SELECTED)\n item.setAttribute('aria-selected', 'true')\n }\n\n this._updateToggleText()\n this._updateHiddenInput()\n\n const value = this._config.multiple ?\n this._getSelectedItems().map(el => el.dataset.bsValue) :\n item.dataset.bsValue\n\n EventHandler.trigger(this._toggle, EVENT_CHANGE, {\n value,\n item\n })\n\n if (!this._config.multiple) {\n this.hide()\n this._toggle.focus()\n }\n }\n\n _updateToggleText() {\n const selectedItems = this._getSelectedItems()\n\n if (selectedItems.length === 0) {\n this._showPlaceholder()\n return\n }\n\n this._valueDisplay.classList.remove(CLASS_NAME_PLACEHOLDER)\n\n if (this._config.multiple && selectedItems.length > 1) {\n this._valueDisplay.textContent = `${selectedItems.length} selected`\n } else {\n const item = selectedItems[0]\n const label = SelectorEngine.findOne('.menu-item-content > span:first-child', item)\n this._valueDisplay.textContent = label ? label.textContent : item.textContent.trim()\n }\n }\n\n _showPlaceholder() {\n const { placeholder } = this._config\n if (placeholder) {\n this._valueDisplay.textContent = placeholder\n this._valueDisplay.classList.add(CLASS_NAME_PLACEHOLDER)\n }\n }\n\n _updateHiddenInput() {\n if (!this._hiddenInput) {\n return\n }\n\n const selectedItems = this._getSelectedItems()\n const values = selectedItems.map(el => el.dataset.bsValue)\n this._hiddenInput.value = this._config.multiple ? values.join(',') : (values[0] || '')\n }\n\n _getSelectedItems() {\n return SelectorEngine.find(`.${CLASS_NAME_SELECTED}`, this._menu)\n }\n\n _getVisibleItems() {\n return SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu)\n .filter(item => isVisible(item))\n }\n\n _filterItems(query) {\n const normalizedQuery = this._normalizeText(query.toLowerCase().trim())\n const items = SelectorEngine.find(SELECTOR_MENU_ITEM, this._menu)\n let visibleCount = 0\n\n for (const item of items) {\n const text = this._normalizeText(item.textContent.toLowerCase().trim())\n const matches = !normalizedQuery || text.includes(normalizedQuery)\n item.style.display = matches ? '' : 'none'\n if (matches) {\n visibleCount++\n }\n }\n\n if (this._noResults) {\n this._noResults.classList.toggle('d-none', visibleCount > 0)\n }\n }\n\n _normalizeText(text) {\n if (this._config.searchNormalize) {\n return text.normalize('NFD').replace(/[\\u0300-\\u036F]/g, '')\n }\n\n return text\n }\n\n _handleToggleKeydown(event) {\n const { key } = event\n\n if (key === ARROW_DOWN_KEY || key === ARROW_UP_KEY) {\n event.preventDefault()\n if (!this._isShown()) {\n this.show()\n }\n\n const items = this._getVisibleItems()\n if (items.length > 0) {\n const target = key === ARROW_DOWN_KEY ? items[0] : items.at(-1)\n target.focus()\n }\n\n return\n }\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && !this._isShown()) {\n event.preventDefault()\n this.show()\n }\n }\n\n _handleMenuKeydown(event) {\n const { key, target } = event\n\n if (key === ESCAPE_KEY) {\n event.preventDefault()\n event.stopPropagation()\n this.hide()\n this._toggle.focus()\n return\n }\n\n if (key === TAB_KEY) {\n this.hide()\n return\n }\n\n const isInput = target.matches('input')\n\n if (key === ARROW_DOWN_KEY || key === ARROW_UP_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n return\n }\n\n if (key === HOME_KEY || key === END_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n const targetItem = key === HOME_KEY ? items[0] : items.at(-1)\n targetItem.focus()\n }\n\n return\n }\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && !isInput) {\n event.preventDefault()\n const item = target.closest(SELECTOR_MENU_ITEM)\n if (item && !isDisabled(item)) {\n this._selectItem(item)\n }\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Combobox.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Combobox.getOrCreateInstance(this).toggle()\n})\n\nEventHandler.on(document, 'DOMContentLoaded', () => {\n for (const toggle of SelectorEngine.find(SELECTOR_DATA_TOGGLE)) {\n Combobox.getOrCreateInstance(toggle)\n }\n})\n\nexport default Combobox\n","/*! name: vanilla-calendar-pro v3.1.0 | url: https://github.com/uvarov-frontend/vanilla-calendar-pro */\nvar __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,n)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,__spreadValues=(e,t)=>{for(var n in t||(t={}))__hasOwnProp.call(t,n)&&__defNormalProp(e,n,t[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(t))__propIsEnum.call(t,n)&&__defNormalProp(e,n,t[n]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t)),__publicField=(e,t,n)=>(__defNormalProp(e,\"symbol\"!=typeof t?t+\"\":t,n),n);const errorMessages={notFoundSelector:e=>`${e} is not found, check the first argument passed to new Calendar.`,notInit:'The calendar has not been initialized, please initialize it using the \"init()\" method first.',notLocale:\"You specified an incorrect language label or did not specify the required number of values for «locale.weekdays» or «locale.months».\",incorrectTime:\"The value of the time property can be: false, 12 or 24.\",incorrectMonthsCount:\"For the «multiple» calendar type, the «displayMonthsCount» parameter can have a value from 2 to 12, and for all others it cannot be greater than 1.\"},setContext=(e,t,n)=>{e.context[t]=n},destroy=e=>{var t,n,a,o,l;if(!e.context.isInit)throw new Error(errorMessages.notInit);e.inputMode?(null==(t=e.context.mainElement.parentElement)||t.removeChild(e.context.mainElement),null==(a=null==(n=e.context.inputElement)?void 0:n.replaceWith)||a.call(n,e.context.originalElement),setContext(e,\"inputElement\",void 0)):null==(l=(o=e.context.mainElement).replaceWith)||l.call(o,e.context.originalElement),setContext(e,\"mainElement\",e.context.originalElement),e.onDestroy&&e.onDestroy(e)},skipOpenOnFocus=new WeakSet,shouldSkipOpenOnFocus=e=>skipOpenOnFocus.has(e),setSkipOpenOnFocus=e=>{skipOpenOnFocus.add(e)},clearSkipOpenOnFocus=e=>{skipOpenOnFocus.delete(e)},PREV_TABINDEX_ATTR=\"data-vc-prev-tabindex\",isFocusable=e=>e.tabIndex>=0&&!e.hasAttribute(\"disabled\")&&\"true\"!==e.getAttribute(\"aria-disabled\"),storePrevTabIndex=e=>{if(e.hasAttribute(PREV_TABINDEX_ATTR))return;const t=e.getAttribute(\"tabindex\");e.setAttribute(PREV_TABINDEX_ATTR,null!=t?t:\"\")},restorePrevTabIndex=e=>{if(!e.hasAttribute(PREV_TABINDEX_ATTR))return;const t=e.getAttribute(PREV_TABINDEX_ATTR);\"\"===t||null===t?e.removeAttribute(\"tabindex\"):e.setAttribute(\"tabindex\",t),e.removeAttribute(PREV_TABINDEX_ATTR)},disableTabbing=e=>{isFocusable(e)&&(storePrevTabIndex(e),e.tabIndex=-1);const t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>isFocusable(e)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;t.nextNode();){const e=t.currentNode;storePrevTabIndex(e),e.tabIndex=-1}},restoreTabbing=e=>{restorePrevTabIndex(e),e.querySelectorAll(`[${PREV_TABINDEX_ATTR}]`).forEach(restorePrevTabIndex)},hide=e=>{if(e.context.isShowInInputMode&&e.context.currentType){if(e.context.mainElement.dataset.vcCalendarHidden=\"\",setContext(e,\"isShowInInputMode\",!1),e.inputMode&&disableTabbing(e.context.mainElement),e.context.cleanupHandlers[0]&&(e.context.cleanupHandlers.forEach((e=>e())),setContext(e,\"cleanupHandlers\",[])),e.inputMode&&e.context.inputElement&&e.context.mainElement.contains(document.activeElement)){(\"function\"==typeof e.openOnFocus||!0===e.openOnFocus)&&setSkipOpenOnFocus(e),e.context.inputElement.focus()}e.onHide&&e.onHide(e)}};function getOffset(e){if(!e||!e.getBoundingClientRect)return{top:0,bottom:0,left:0,right:0};const t=e.getBoundingClientRect(),n=document.documentElement;return{bottom:t.bottom,right:t.right,top:t.top+window.scrollY-n.clientTop,left:t.left+window.scrollX-n.clientLeft}}function getViewportDimensions(){return{vw:Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),vh:Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)}}function getWindowScrollPosition(){return{left:window.scrollX||document.documentElement.scrollLeft||0,top:window.scrollY||document.documentElement.scrollTop||0}}function calculateAvailableSpace(e){const{top:t,left:n}=getWindowScrollPosition(),{top:a,left:o}=getOffset(e),{vh:l,vw:s}=getViewportDimensions(),i=a-t,r=o-n;return{top:i,bottom:l-(i+e.clientHeight),left:r,right:s-(r+e.clientWidth)}}function getAvailablePosition(e,t,n=5){const a={top:!0,bottom:!0,left:!0,right:!0},o=[];if(!t||!e)return{canShow:a,parentPositions:o};const{bottom:l,top:s}=calculateAvailableSpace(e),{top:i,left:r}=getOffset(e),{height:c,width:d}=t.getBoundingClientRect(),{vh:u,vw:m}=getViewportDimensions(),p=m/2,h=u/2;return[{condition:i<h,position:\"top\"},{condition:i>h,position:\"bottom\"},{condition:r<p,position:\"left\"},{condition:r>p,position:\"right\"}].forEach((({condition:e,position:t})=>{e&&o.push(t)})),Object.assign(a,{top:c<=s-n,bottom:c<=l-n,left:d<=r,right:d<=m-r}),{canShow:a,parentPositions:o}}const handleDay=(e,t,n,a)=>{var o;const l=a.querySelector(`[data-vc-date=\"${t}\"]`),s=null==l?void 0:l.querySelector(\"[data-vc-date-btn]\");if(!l||!s)return;if((null==n?void 0:n.modifier)&&s.classList.add(...n.modifier.trim().split(\" \")),!(null==n?void 0:n.html))return;const i=document.createElement(\"div\");i.className=e.styles.datePopup,i.dataset.vcDatePopup=\"\",i.innerHTML=e.sanitizerHTML(n.html),s.ariaExpanded=\"true\",s.ariaLabel=`${s.ariaLabel}, ${null==(o=null==i?void 0:i.textContent)?void 0:o.replace(/^\\s+|\\s+(?=\\s)|\\s+$/g,\"\").replace(/ /g,\" \")}`,l.appendChild(i),requestAnimationFrame((()=>{if(!i)return;const{canShow:e}=getAvailablePosition(l,i),t=e.bottom?l.offsetHeight:-i.offsetHeight,n=e.left&&!e.right?l.offsetWidth-i.offsetWidth/2:!e.left&&e.right?i.offsetWidth/2:0;Object.assign(i.style,{left:`${n}px`,top:`${t}px`})}))},createDatePopup=(e,t)=>{var n;e.popups&&(null==(n=Object.entries(e.popups))||n.forEach((([n,a])=>handleDay(e,n,a,t))))},getDate=e=>new Date(`${e}T00:00:00`),getDateString=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,\"0\")}-${String(e.getDate()).padStart(2,\"0\")}`,parseDates=e=>e.reduce(((e,t)=>{if(t instanceof Date||\"number\"==typeof t){const n=t instanceof Date?t:new Date(t);e.push(n.toISOString().substring(0,10))}else t.match(/^(\\d{4}-\\d{2}-\\d{2})$/g)?e.push(t):t.replace(/(\\d{4}-\\d{2}-\\d{2}).*?(\\d{4}-\\d{2}-\\d{2})/g,((t,n,a)=>{const o=getDate(n),l=getDate(a),s=new Date(o.getTime());for(;s<=l;s.setDate(s.getDate()+1))e.push(getDateString(s));return t}));return e}),[]),updateAttribute=(e,t,n,a=\"\")=>{t?e.setAttribute(n,a):e.getAttribute(n)===a&&e.removeAttribute(n)},setDateModifier=(e,t,n,a,o,l,s)=>{var i,r,c,d;const u=getDate(e.context.displayDateMin)>getDate(l)||getDate(e.context.displayDateMax)<getDate(l)||(null==(i=e.context.disableDates)?void 0:i.includes(l))||!e.selectionMonthsMode&&\"current\"!==s||!e.selectionYearsMode&&getDate(l).getFullYear()!==t;updateAttribute(n,u,\"data-vc-date-disabled\"),a&&updateAttribute(a,u,\"aria-disabled\",\"true\"),a&&updateAttribute(a,u,\"tabindex\",\"-1\"),updateAttribute(n,!e.disableToday&&e.context.dateToday===l,\"data-vc-date-today\"),updateAttribute(n,!e.disableToday&&e.context.dateToday===l,\"aria-current\",\"date\"),updateAttribute(n,null==(r=e.selectedWeekends)?void 0:r.includes(o),\"data-vc-date-weekend\");const m=(null==(c=e.selectedHolidays)?void 0:c[0])?parseDates(e.selectedHolidays):[];if(updateAttribute(n,m.includes(l),\"data-vc-date-holiday\"),(null==(d=e.context.selectedDates)?void 0:d.includes(l))?(n.setAttribute(\"data-vc-date-selected\",\"\"),a&&a.setAttribute(\"aria-selected\",\"true\"),e.context.selectedDates.length>1&&\"multiple-ranged\"===e.selectionDatesMode&&(e.context.selectedDates[0]===l&&e.context.selectedDates[e.context.selectedDates.length-1]===l?n.setAttribute(\"data-vc-date-selected\",\"first-and-last\"):e.context.selectedDates[0]===l?n.setAttribute(\"data-vc-date-selected\",\"first\"):e.context.selectedDates[e.context.selectedDates.length-1]===l&&n.setAttribute(\"data-vc-date-selected\",\"last\"),e.context.selectedDates[0]!==l&&e.context.selectedDates[e.context.selectedDates.length-1]!==l&&n.setAttribute(\"data-vc-date-selected\",\"middle\"))):n.hasAttribute(\"data-vc-date-selected\")&&(n.removeAttribute(\"data-vc-date-selected\"),a&&a.removeAttribute(\"aria-selected\")),!e.context.disableDates.includes(l)&&e.enableEdgeDatesOnly&&e.context.selectedDates.length>1&&\"multiple-ranged\"===e.selectionDatesMode){const t=getDate(e.context.selectedDates[0]),a=getDate(e.context.selectedDates[e.context.selectedDates.length-1]),o=getDate(l);updateAttribute(n,o>t&&o<a,\"data-vc-date-selected\",\"middle\")}},getLocaleString=(e,t,n)=>new Date(`${e}T00:00:00.000Z`).toLocaleString(t,n),getWeekNumber=(e,t)=>{const n=getDate(e),a=(n.getDay()-t+7)%7;n.setDate(n.getDate()+4-a);const o=new Date(n.getFullYear(),0,1),l=Math.ceil(((+n-+o)/864e5+1)/7);return{year:n.getFullYear(),week:l}},addWeekNumberForDate=(e,t,n)=>{const a=getWeekNumber(n,e.firstWeekday);a&&(t.dataset.vcDateWeekNumber=String(a.week))},setDaysAsDisabled=(e,t,n)=>{var a,o,l,s,i;const r=null==(a=e.disableWeekdays)?void 0:a.includes(n),c=e.disableAllDates&&!!(null==(o=e.context.enableDates)?void 0:o[0]);!r&&!c||(null==(l=e.context.enableDates)?void 0:l.includes(t))||(null==(s=e.context.disableDates)?void 0:s.includes(t))||(e.context.disableDates.push(t),null==(i=e.context.disableDates)||i.sort(((e,t)=>+new Date(e)-+new Date(t))))},createDate=(e,t,n,a,o,l)=>{const s=getDate(o).getDay(),i=\"string\"==typeof e.locale&&e.locale.length?e.locale:\"en\",r=document.createElement(\"div\");let c;r.className=e.styles.date,r.dataset.vcDate=o,r.dataset.vcDateMonth=l,r.dataset.vcDateWeekDay=String(s),r.role=\"gridcell\",(\"current\"===l||e.displayDatesOutside)&&(c=document.createElement(\"button\"),c.className=e.styles.dateBtn,c.type=\"button\",c.ariaLabel=getLocaleString(o,i,{dateStyle:\"long\",timeZone:\"UTC\"}),c.dataset.vcDateBtn=\"\",c.innerText=String(a),r.appendChild(c)),e.enableWeekNumbers&&addWeekNumberForDate(e,r,o),setDaysAsDisabled(e,o,s),setDateModifier(e,t,r,c,s,o,l),n.addDate(r),e.onCreateDateEls&&e.onCreateDateEls(e,r)},createDatesFromCurrentMonth=(e,t,n,a,o)=>{for(let l=1;l<=n;l++){const n=new Date(a,o,l);createDate(e,a,t,l,getDateString(n),\"current\")}},createDatesFromNextMonth=(e,t,n,a,o)=>{const l=o+1===12?a+1:a,s=o+1===12?\"01\":o+2<10?`0${o+2}`:o+2;for(let o=1;o<=n;o++){const n=o<10?`0${o}`:String(o);createDate(e,a,t,o,`${l}-${s}-${n}`,\"next\")}},createDatesFromPrevMonth=(e,t,n,a,o)=>{let l=new Date(n,a,0).getDate()-(o-1);const s=0===a?n-1:n,i=0===a?12:a<10?`0${a}`:a;for(let a=o;a>0;a--,l++){createDate(e,n,t,l,`${s}-${i}-${l}`,\"prev\")}},createWeekNumbers=(e,t,n,a,o)=>{if(!e.enableWeekNumbers)return;a.textContent=\"\";const l=document.createElement(\"b\");l.className=e.styles.weekNumbersTitle,l.innerText=\"#\",l.dataset.vcWeekNumbers=\"title\",a.appendChild(l);const s=document.createElement(\"div\");s.className=e.styles.weekNumbersContent,s.dataset.vcWeekNumbers=\"content\",a.appendChild(s);const i=document.createElement(\"button\");i.type=\"button\",i.className=e.styles.weekNumber;const r=o.querySelectorAll(\"[data-vc-date]\"),c=Math.ceil((t+n)/7);for(let t=0;t<c;t++){const n=r[0===t?6:7*t].dataset.vcDate,a=getWeekNumber(n,e.firstWeekday);if(!a)return;const o=i.cloneNode(!0);o.innerText=String(a.week),o.dataset.vcWeekNumber=String(a.week),o.dataset.vcWeekYear=String(a.year),o.role=\"rowheader\",o.ariaLabel=`${a.week}`,s.appendChild(o)}},createDates=e=>{const t=new Date(e.context.selectedYear,e.context.selectedMonth,1),n=e.context.mainElement.querySelectorAll('[data-vc=\"dates\"]'),a=e.context.mainElement.querySelectorAll('[data-vc-week=\"numbers\"]');n.forEach(((n,o)=>{e.selectionDatesMode||(n.dataset.vcDatesDisabled=\"\"),n.textContent=\"\";const l=new Date(t);l.setMonth(l.getMonth()+o);const s=l.getMonth(),i=l.getFullYear(),r=(new Date(i,s,1).getDay()-e.firstWeekday+7)%7,c=new Date(i,s+1,0).getDate(),d=r+c,u=Math.ceil(d/7),m=7*u-d,p=[];for(let t=0;t<u;t++){const t=document.createElement(\"div\");t.className=e.styles.datesRow,t.setAttribute(\"data-vc-dates\",\"row\"),t.setAttribute(\"role\",\"row\"),p.push(t)}let h=0,v=0;const g={addDate:e=>{p[h].appendChild(e),v++,v>=7&&(h++,v=0)}};createDatesFromPrevMonth(e,g,i,s,r),createDatesFromCurrentMonth(e,g,c,i,s),createDatesFromNextMonth(e,g,m,i,s);for(const e of p)n.appendChild(e);createDatePopup(e,n),createWeekNumbers(e,r,c,a[o],n)}))},layoutDefault=e=>`\\n <div class=\"${e.styles.header}\" data-vc=\"header\" role=\"toolbar\" aria-label=\"${e.labels.navigation}\">\\n <#ArrowPrev [month] />\\n <div class=\"${e.styles.headerContent}\" data-vc-header=\"content\">\\n <#Month />\\n <#Year />\\n </div>\\n <#ArrowNext [month] />\\n </div>\\n <div class=\"${e.styles.wrapper}\" data-vc=\"wrapper\">\\n <#WeekNumbers />\\n <div class=\"${e.styles.content}\" data-vc=\"content\" role=\"grid\">\\n <#Week />\\n <#Dates />\\n <#DateRangeTooltip />\\n </div>\\n </div>\\n <#ControlTime />\\n`,layoutMonths=e=>`\\n <div class=\"${e.styles.header}\" data-vc=\"header\" role=\"toolbar\" aria-label=\"${e.labels.navigation}\">\\n <div class=\"${e.styles.headerContent}\" data-vc-header=\"content\">\\n <#Month />\\n <#Year />\\n </div>\\n </div>\\n <div class=\"${e.styles.wrapper}\" data-vc=\"wrapper\">\\n <div class=\"${e.styles.content}\" data-vc=\"content\">\\n <#Months />\\n </div>\\n </div>\\n`,layoutMultiple=e=>`\\n <div class=\"${e.styles.controls}\" data-vc=\"controls\" role=\"toolbar\" aria-label=\"${e.labels.navigation}\">\\n <#ArrowPrev [month] />\\n <#ArrowNext [month] />\\n </div>\\n <div class=\"${e.styles.grid}\" data-vc=\"grid\">\\n <#Multiple>\\n <div class=\"${e.styles.column}\" data-vc=\"column\" role=\"region\">\\n <div class=\"${e.styles.header}\" data-vc=\"header\">\\n <div class=\"${e.styles.headerContent}\" data-vc-header=\"content\">\\n <#Month />\\n <#Year />\\n </div>\\n </div>\\n <div class=\"${e.styles.wrapper}\" data-vc=\"wrapper\">\\n <#WeekNumbers />\\n <div class=\"${e.styles.content}\" data-vc=\"content\" role=\"grid\">\\n <#Week />\\n <#Dates />\\n </div>\\n </div>\\n </div>\\n <#/Multiple>\\n <#DateRangeTooltip />\\n </div>\\n <#ControlTime />\\n`,layoutYears=e=>`\\n <div class=\"${e.styles.header}\" data-vc=\"header\" role=\"toolbar\" aria-label=\"${e.labels.navigation}\">\\n <#ArrowPrev [year] />\\n <div class=\"${e.styles.headerContent}\" data-vc-header=\"content\">\\n <#Month />\\n <#Year />\\n </div>\\n <#ArrowNext [year] />\\n </div>\\n <div class=\"${e.styles.wrapper}\" data-vc=\"wrapper\">\\n <div class=\"${e.styles.content}\" data-vc=\"content\">\\n <#Years />\\n </div>\\n </div>\\n`,ArrowNext=(e,t)=>`<button type=\"button\" class=\"${e.styles.arrowNext}\" data-vc-arrow=\"next\" aria-label=\"${e.labels.arrowNext[t]}\"></button>`,ArrowPrev=(e,t)=>`<button type=\"button\" class=\"${e.styles.arrowPrev}\" data-vc-arrow=\"prev\" aria-label=\"${e.labels.arrowPrev[t]}\"></button>`,ControlTime=e=>e.selectionTimeMode?`<div class=\"${e.styles.time}\" data-vc=\"time\" role=\"group\" aria-label=\"${e.labels.selectingTime}\"></div>`:\"\",DateRangeTooltip=e=>e.onCreateDateRangeTooltip?`<div class=\"${e.styles.dateRangeTooltip}\" data-vc-date-range-tooltip=\"hidden\"></div>`:\"\",Dates=e=>`<div class=\"${e.styles.dates}\" data-vc=\"dates\" aria-live=\"assertive\" aria-label=\"${e.labels.dates}\" ${\"multiple\"===e.type?\"aria-multiselectable\":\"\"}></div>`,Month=e=>`<button type=\"button\" class=\"${e.styles.month}\" data-vc=\"month\"></button>`,Months=e=>`<div class=\"${e.styles.months}\" data-vc=\"months\" role=\"grid\" aria-live=\"assertive\" aria-label=\"${e.labels.months}\"></div>`,Week=e=>`<div class=\"${e.styles.week}\" data-vc=\"week\" role=\"row\" aria-label=\"${e.labels.week}\"></div>`,WeekNumbers=e=>e.enableWeekNumbers?`<div class=\"${e.styles.weekNumbers}\" data-vc-week=\"numbers\" role=\"row\" aria-label=\"${e.labels.weekNumber}\"></div>`:\"\",Year=e=>`<button type=\"button\" class=\"${e.styles.year}\" data-vc=\"year\"></button>`,Years=e=>`<div class=\"${e.styles.years}\" data-vc=\"years\" role=\"grid\" aria-live=\"assertive\" aria-label=\"${e.labels.years}\"></div>`,components={ArrowNext:ArrowNext,ArrowPrev:ArrowPrev,ControlTime:ControlTime,Dates:Dates,DateRangeTooltip:DateRangeTooltip,Month:Month,Months:Months,Week:Week,WeekNumbers:WeekNumbers,Year:Year,Years:Years},getComponent=e=>components[e],parseLayout=(e,t)=>t.replace(/[\\n\\t]/g,\"\").replace(/<#(?!\\/?Multiple)(.*?)>/g,((t,n)=>{const a=(n.match(/\\[(.*?)\\]/)||[])[1],o=n.replace(/[/\\s\\n\\t]|\\[(.*?)\\]/g,\"\"),l=getComponent(o),s=l?l(e,null!=a?a:null):\"\";return e.sanitizerHTML(s)})).replace(/[\\n\\t]/g,\"\"),parseMultipleLayout=(e,t)=>t.replace(new RegExp(\"<#Multiple>(.*?)<#\\\\/Multiple>\",\"gs\"),((t,n)=>{const a=Array(e.context.displayMonthsCount).fill(n).join(\"\");return e.sanitizerHTML(a)})).replace(/[\\n\\t]/g,\"\"),createLayouts=(e,t)=>{const n={default:layoutDefault,month:layoutMonths,year:layoutYears,multiple:layoutMultiple};if(Object.keys(n).forEach((t=>{const a=t;e.layouts[a].length||(e.layouts[a]=n[a](e))})),e.context.mainElement.className=e.styles.calendar,e.context.mainElement.dataset.vc=\"calendar\",e.context.mainElement.dataset.vcType=e.context.currentType,e.context.mainElement.role=\"application\",e.context.mainElement.tabIndex=0,e.context.mainElement.ariaLabel=e.labels.application,\"multiple\"!==e.context.currentType){if(\"multiple\"===e.type&&t){const n=e.context.mainElement.querySelector('[data-vc=\"controls\"]'),a=e.context.mainElement.querySelector('[data-vc=\"grid\"]'),o=t.closest('[data-vc=\"column\"]');return n&&n.remove(),a&&(a.dataset.vcGrid=\"hidden\"),o&&(o.dataset.vcColumn=e.context.currentType),void(o&&(o.innerHTML=e.sanitizerHTML(parseLayout(e,e.layouts[e.context.currentType]))))}e.context.mainElement.innerHTML=e.sanitizerHTML(parseLayout(e,e.layouts[e.context.currentType]))}else e.context.mainElement.innerHTML=e.sanitizerHTML(parseMultipleLayout(e,parseLayout(e,e.layouts[e.context.currentType])))},setVisibilityArrows=(e,t,n,a)=>{e.style.visibility=n?\"hidden\":\"\",t.style.visibility=a?\"hidden\":\"\"},handleDefaultType=(e,t,n)=>{const a=getDate(getDateString(new Date(e.context.selectedYear,e.context.selectedMonth,1))),o=new Date(a.getTime()),l=new Date(a.getTime());o.setMonth(o.getMonth()-e.monthsToSwitch),l.setMonth(l.getMonth()+e.monthsToSwitch);const s=getDate(e.context.dateMin),i=getDate(e.context.dateMax);e.selectionYearsMode||(s.setFullYear(a.getFullYear()),i.setFullYear(a.getFullYear()));const r=!e.selectionMonthsMode||o.getFullYear()<s.getFullYear()||o.getFullYear()===s.getFullYear()&&o.getMonth()<s.getMonth(),c=!e.selectionMonthsMode||l.getFullYear()>i.getFullYear()||l.getFullYear()===i.getFullYear()&&l.getMonth()>i.getMonth()-(e.context.displayMonthsCount-1);setVisibilityArrows(t,n,r,c)},handleYearType=(e,t,n)=>{const a=getDate(e.context.dateMin),o=getDate(e.context.dateMax),l=!!(a.getFullYear()&&e.context.displayYear-7<=a.getFullYear()),s=!!(o.getFullYear()&&e.context.displayYear+7>=o.getFullYear());setVisibilityArrows(t,n,l,s)},visibilityArrows=e=>{if(\"month\"===e.context.currentType)return;const t=e.context.mainElement.querySelector('[data-vc-arrow=\"prev\"]'),n=e.context.mainElement.querySelector('[data-vc-arrow=\"next\"]');if(!t||!n)return;({default:()=>handleDefaultType(e,t,n),year:()=>handleYearType(e,t,n)})[\"multiple\"===e.context.currentType?\"default\":e.context.currentType]()},visibilityHandler=(e,t,n,a,o)=>{const l=new Date(a.setFullYear(e.context.selectedYear,e.context.selectedMonth+n)).getFullYear(),s=new Date(a.setMonth(e.context.selectedMonth+n)).getMonth(),i=e.context.locale.months.long[s],r=t.closest('[data-vc=\"column\"]');r&&(r.ariaLabel=`${i} ${l}`);const c={month:{id:s,label:i},year:{id:l,label:l}};t.innerText=String(c[o].label),t.dataset[`vc${o.charAt(0).toUpperCase()+o.slice(1)}`]=String(c[o].id),t.ariaLabel=`${e.labels[o]} ${c[o].label}`;const d={month:e.selectionMonthsMode,year:e.selectionYearsMode},u=!1===d[o]||\"only-arrows\"===d[o];u&&(t.tabIndex=-1),t.disabled=u},visibilityTitle=e=>{const t=e.context.mainElement.querySelectorAll('[data-vc=\"month\"]'),n=e.context.mainElement.querySelectorAll('[data-vc=\"year\"]'),a=new Date(e.context.selectedYear,e.context.selectedMonth,1);[t,n].forEach((t=>null==t?void 0:t.forEach(((t,n)=>visibilityHandler(e,t,n,a,t.dataset.vc)))))},setYearModifier=(e,t,n,a,o)=>{var l;const s={month:\"[data-vc-months-month]\",year:\"[data-vc-years-year]\"},i={month:{selected:\"data-vc-months-month-selected\",aria:\"aria-selected\",value:\"vcMonthsMonth\",selectedProperty:\"selectedMonth\"},year:{selected:\"data-vc-years-year-selected\",aria:\"aria-selected\",value:\"vcYearsYear\",selectedProperty:\"selectedYear\"}};o&&(null==(l=e.context.mainElement.querySelectorAll(s[n]))||l.forEach((e=>{e.removeAttribute(i[n].selected),e.removeAttribute(i[n].aria)})),setContext(e,i[n].selectedProperty,Number(t.dataset[i[n].value])),visibilityTitle(e),\"year\"===n&&visibilityArrows(e)),a&&(t.setAttribute(i[n].selected,\"\"),t.setAttribute(i[n].aria,\"true\"))},getColumnID=(e,t)=>{var n;if(\"multiple\"!==e.type)return{currentValue:null,columnID:0};const a=e.context.mainElement.querySelectorAll('[data-vc=\"column\"]'),o=Array.from(a).findIndex((e=>e.closest(`[data-vc-column=\"${t}\"]`)));return{currentValue:o>=0?Number(null==(n=a[o].querySelector(`[data-vc=\"${t}\"]`))?void 0:n.getAttribute(`data-vc-${t}`)):null,columnID:Math.max(o,0)}},createMonthEl=(e,t,n,a,o,l,s)=>{const i=t.cloneNode(!1);return i.className=e.styles.monthsMonth,i.innerText=a,i.ariaLabel=o,i.role=\"gridcell\",i.dataset.vcMonthsMonth=`${s}`,l&&(i.ariaDisabled=\"true\"),l&&(i.tabIndex=-1),i.disabled=l,setYearModifier(e,i,\"month\",n===s,!1),i},createMonths=(e,t)=>{var n,a;const o=null==(n=null==t?void 0:t.closest('[data-vc=\"header\"]'))?void 0:n.querySelector('[data-vc=\"year\"]'),l=o?Number(o.dataset.vcYear):e.context.selectedYear,s=(null==t?void 0:t.dataset.vcMonth)?Number(t.dataset.vcMonth):e.context.selectedMonth;setContext(e,\"currentType\",\"month\"),createLayouts(e,t),visibilityTitle(e);const i=e.context.mainElement.querySelector('[data-vc=\"months\"]');if(!e.selectionMonthsMode||!i)return;const r=e.monthsToSwitch>1?e.context.locale.months.long.map(((t,n)=>s-e.monthsToSwitch*n)).concat(e.context.locale.months.long.map(((t,n)=>s+e.monthsToSwitch*n))).filter((e=>e>=0&&e<=12)):Array.from(Array(12).keys()),c=document.createElement(\"button\");c.type=\"button\";for(let t=0;t<12;t++){const n=getDate(e.context.dateMin),a=getDate(e.context.dateMax),o=e.context.displayMonthsCount-1,{columnID:d}=getColumnID(e,\"month\"),u=l<=n.getFullYear()&&t<n.getMonth()+d||l>=a.getFullYear()&&t>a.getMonth()-o+d||l>a.getFullYear()||t!==s&&!r.includes(t),m=createMonthEl(e,c,s,e.context.locale.months.short[t],e.context.locale.months.long[t],u,t);i.appendChild(m),e.onCreateMonthEls&&e.onCreateMonthEls(e,m)}null==(a=e.context.mainElement.querySelector(\"[data-vc-months-month]:not([disabled])\"))||a.focus()},TimeInput=(e,t,n,a,o)=>`\\n <label class=\"${t}\" data-vc-time-input=\"${e}\">\\n <input type=\"text\" name=\"${e}\" maxlength=\"2\" aria-label=\"${n[`input${e.charAt(0).toUpperCase()+e.slice(1)}`]}\" value=\"${a}\" ${o?\"disabled\":\"\"}>\\n </label>\\n`,TimeRange=(e,t,n,a,o,l,s)=>`\\n <label class=\"${t}\" data-vc-time-range=\"${e}\">\\n <input type=\"range\" name=\"${e}\" min=\"${a}\" max=\"${o}\" step=\"${l}\" aria-label=\"${n[`range${e.charAt(0).toUpperCase()+e.slice(1)}`]}\" value=\"${s}\">\\n </label>\\n`,handleActions=(e,t,n,a)=>{({hour:()=>setContext(e,\"selectedHours\",n),minute:()=>setContext(e,\"selectedMinutes\",n)})[a](),setContext(e,\"selectedTime\",`${e.context.selectedHours}:${e.context.selectedMinutes}${e.context.selectedKeeping?` ${e.context.selectedKeeping}`:\"\"}`),e.onChangeTime&&e.onChangeTime(e,t,!1),e.inputMode&&e.context.inputElement&&e.context.mainElement&&e.onChangeToInput&&e.onChangeToInput(e,t)},transformTime24=(e,t)=>{var n;return(null==(n={0:{AM:\"00\",PM:\"12\"},1:{AM:\"01\",PM:\"13\"},2:{AM:\"02\",PM:\"14\"},3:{AM:\"03\",PM:\"15\"},4:{AM:\"04\",PM:\"16\"},5:{AM:\"05\",PM:\"17\"},6:{AM:\"06\",PM:\"18\"},7:{AM:\"07\",PM:\"19\"},8:{AM:\"08\",PM:\"20\"},9:{AM:\"09\",PM:\"21\"},10:{AM:\"10\",PM:\"22\"},11:{AM:\"11\",PM:\"23\"},12:{AM:\"00\",PM:\"12\"}}[Number(e)])?void 0:n[t])||String(e)},handleClickKeepingTime=(e,t,n,a,o)=>{const l=l=>{const s=\"AM\"===e.context.selectedKeeping?\"PM\":\"AM\",i=transformTime24(e.context.selectedHours,s);Number(i)<=a&&Number(i)>=o?(setContext(e,\"selectedKeeping\",s),n.value=i,handleActions(e,l,e.context.selectedHours,\"hour\"),t.ariaLabel=`${e.labels.btnKeeping} ${e.context.selectedKeeping}`,t.innerText=e.context.selectedKeeping):e.onChangeTime&&e.onChangeTime(e,l,!0)};return t.addEventListener(\"click\",l),()=>{t.removeEventListener(\"click\",l)}},transformTime12=e=>({0:\"12\",13:\"01\",14:\"02\",15:\"03\",16:\"04\",17:\"05\",18:\"06\",19:\"07\",20:\"08\",21:\"09\",22:\"10\",23:\"11\"}[Number(e)]||String(e)),updateInputAndRange=(e,t,n,a)=>{e.value=n,t.value=a},updateKeepingTime$1=(e,t,n)=>{t&&n&&(setContext(e,\"selectedKeeping\",n),t.innerText=n)},handleInput$1=(e,t,n,a,o,l,s)=>{const i={hour:(i,r,c)=>{if(!e.selectionTimeMode)return;({12:()=>{if(!e.context.selectedKeeping)return;const d=Number(transformTime24(r,e.context.selectedKeeping));if(!(d<=l&&d>=s))return updateInputAndRange(n,t,e.context.selectedHours,e.context.selectedHours),void(e.onChangeTime&&e.onChangeTime(e,c,!0));updateInputAndRange(n,t,transformTime12(r),transformTime24(r,e.context.selectedKeeping)),i>12&&updateKeepingTime$1(e,a,\"PM\"),handleActions(e,c,transformTime12(r),o)},24:()=>{if(!(i<=l&&i>=s))return updateInputAndRange(n,t,e.context.selectedHours,e.context.selectedHours),void(e.onChangeTime&&e.onChangeTime(e,c,!0));updateInputAndRange(n,t,r,r),handleActions(e,c,r,o)}})[e.selectionTimeMode]()},minute:(a,i,r)=>{if(!(a<=l&&a>=s))return n.value=e.context.selectedMinutes,void(e.onChangeTime&&e.onChangeTime(e,r,!0));n.value=i,t.value=i,handleActions(e,r,i,o)}},r=e=>{const t=Number(n.value),a=n.value.padStart(2,\"0\");i[o]&&i[o](t,a,e)};return n.addEventListener(\"change\",r),()=>{n.removeEventListener(\"change\",r)}},updateInputAndTime=(e,t,n,a,o)=>{t.value=o,handleActions(e,n,o,a)},updateKeepingTime=(e,t,n)=>{t&&(setContext(e,\"selectedKeeping\",n),t.innerText=n)},handleRange=(e,t,n,a,o)=>{const l=l=>{const s=Number(t.value),i=t.value.padStart(2,\"0\"),r=\"hour\"===o,c=24===e.selectionTimeMode,d=s>0&&s<12;r&&!c&&updateKeepingTime(e,a,0===s||d?\"AM\":\"PM\"),updateInputAndTime(e,n,l,o,!r||c||d?i:transformTime12(t.value))};return t.addEventListener(\"input\",l),()=>{t.removeEventListener(\"input\",l)}},handleMouseOver=e=>e.setAttribute(\"data-vc-input-focus\",\"\"),handleMouseOut=e=>e.removeAttribute(\"data-vc-input-focus\"),handleTime=(e,t)=>{const n=t.querySelector('[data-vc-time-range=\"hour\"] input[name=\"hour\"]'),a=t.querySelector('[data-vc-time-range=\"minute\"] input[name=\"minute\"]'),o=t.querySelector('[data-vc-time-input=\"hour\"] input[name=\"hour\"]'),l=t.querySelector('[data-vc-time-input=\"minute\"] input[name=\"minute\"]'),s=t.querySelector('[data-vc-time=\"keeping\"]');if(!(n&&a&&o&&l))return;const i=e=>{e.target===n&&handleMouseOver(o),e.target===a&&handleMouseOver(l)},r=e=>{e.target===n&&handleMouseOut(o),e.target===a&&handleMouseOut(l)};return t.addEventListener(\"mouseover\",i),t.addEventListener(\"mouseout\",r),handleInput$1(e,n,o,s,\"hour\",e.timeMaxHour,e.timeMinHour),handleInput$1(e,a,l,s,\"minute\",e.timeMaxMinute,e.timeMinMinute),handleRange(e,n,o,s,\"hour\"),handleRange(e,a,l,s,\"minute\"),s&&handleClickKeepingTime(e,s,n,e.timeMaxHour,e.timeMinHour),()=>{t.removeEventListener(\"mouseover\",i),t.removeEventListener(\"mouseout\",r)}},createTime=e=>{const t=e.context.mainElement.querySelector('[data-vc=\"time\"]');if(!e.selectionTimeMode||!t)return;const[n,a]=[e.timeMinHour,e.timeMaxHour],[o,l]=[e.timeMinMinute,e.timeMaxMinute],s=e.context.selectedKeeping?transformTime24(e.context.selectedHours,e.context.selectedKeeping):e.context.selectedHours,i=\"range\"===e.timeControls;var r;t.innerHTML=e.sanitizerHTML(`\\n <div class=\"${e.styles.timeContent}\" data-vc-time=\"content\">\\n ${TimeInput(\"hour\",e.styles.timeHour,e.labels,e.context.selectedHours,i)}\\n ${TimeInput(\"minute\",e.styles.timeMinute,e.labels,e.context.selectedMinutes,i)}\\n ${12===e.selectionTimeMode?(r=e.context.selectedKeeping,`<button type=\"button\" class=\"${e.styles.timeKeeping}\" aria-label=\"${e.labels.btnKeeping} ${r}\" data-vc-time=\"keeping\" ${i?\"disabled\":\"\"}>${r}</button>`):\"\"}\\n </div>\\n <div class=\"${e.styles.timeRanges}\" data-vc-time=\"ranges\">\\n ${TimeRange(\"hour\",e.styles.timeRange,e.labels,n,a,e.timeStepHour,s)}\\n ${TimeRange(\"minute\",e.styles.timeRange,e.labels,o,l,e.timeStepMinute,e.context.selectedMinutes)}\\n </div>\\n `),handleTime(e,t)},createWeek=e=>{const t=e.selectedWeekends?[...e.selectedWeekends]:[],n=[...e.context.locale.weekdays.long].reduce(((n,a,o)=>[...n,{id:o,titleShort:e.context.locale.weekdays.short[o],titleLong:a,isWeekend:t.includes(o)}]),[]),a=[...n.slice(e.firstWeekday),...n.slice(0,e.firstWeekday)];e.context.mainElement.querySelectorAll('[data-vc=\"week\"]').forEach((t=>{const n=e.onClickWeekDay?document.createElement(\"button\"):document.createElement(\"b\");e.onClickWeekDay&&(n.type=\"button\"),a.forEach((a=>{const o=n.cloneNode(!0);o.innerText=a.titleShort,o.className=e.styles.weekDay,o.role=\"columnheader\",o.ariaLabel=a.titleLong,o.dataset.vcWeekDay=String(a.id),a.isWeekend&&(o.dataset.vcWeekDayOff=\"\"),t.appendChild(o)}))}))},createYearEl=(e,t,n,a,o)=>{const l=t.cloneNode(!1);return l.className=e.styles.yearsYear,l.innerText=String(o),l.ariaLabel=String(o),l.role=\"gridcell\",l.dataset.vcYearsYear=`${o}`,a&&(l.ariaDisabled=\"true\"),a&&(l.tabIndex=-1),l.disabled=a,setYearModifier(e,l,\"year\",n===o,!1),l},createYears=(e,t)=>{var n;const a=(null==t?void 0:t.dataset.vcYear)?Number(t.dataset.vcYear):e.context.selectedYear;setContext(e,\"currentType\",\"year\"),createLayouts(e,t),visibilityTitle(e),visibilityArrows(e);const o=e.context.mainElement.querySelector('[data-vc=\"years\"]');if(!e.selectionYearsMode||!o)return;const l=\"multiple\"!==e.type||e.context.selectedYear===a?0:1,s=document.createElement(\"button\");s.type=\"button\";for(let t=e.context.displayYear-7;t<e.context.displayYear+8;t++){const n=t<getDate(e.context.dateMin).getFullYear()+l||t>getDate(e.context.dateMax).getFullYear(),i=createYearEl(e,s,a,n,t);o.appendChild(i),e.onCreateYearEls&&e.onCreateYearEls(e,i)}null==(n=e.context.mainElement.querySelector(\"[data-vc-years-year]:not([disabled])\"))||n.focus()},trackChangesHTMLElement=(e,t,n)=>{new MutationObserver((e=>{for(let a=0;a<e.length;a++){if(e[a].attributeName===t){n();break}}})).observe(e,{attributes:!0})},haveListener={value:!1,set:()=>haveListener.value=!0,check:()=>haveListener.value},setTheme=(e,t)=>e.dataset.vcTheme=t,trackChangesThemeInSystemSettings=(e,t)=>{if(setTheme(e.context.mainElement,t.matches?\"dark\":\"light\"),\"system\"!==e.selectedTheme||haveListener.check())return;const n=e=>{const t=document.querySelectorAll('[data-vc=\"calendar\"]');null==t||t.forEach((t=>setTheme(t,e.matches?\"dark\":\"light\")))};t.addEventListener?t.addEventListener(\"change\",n):t.addListener(n),haveListener.set()},detectTheme=(e,t)=>{const n=e.themeAttrDetect.length?document.querySelector(e.themeAttrDetect):null,a=e.themeAttrDetect.replace(/^.*\\[(.+)\\]/g,((e,t)=>t));if(!n||\"system\"===n.getAttribute(a))return void trackChangesThemeInSystemSettings(e,t);const o=n.getAttribute(a);o?(setTheme(e.context.mainElement,o),trackChangesHTMLElement(n,a,(()=>{const t=n.getAttribute(a);t&&setTheme(e.context.mainElement,t)}))):trackChangesThemeInSystemSettings(e,t)},handleTheme=e=>{\"not all\"!==window.matchMedia(\"(prefers-color-scheme)\").media?\"system\"===e.selectedTheme?detectTheme(e,window.matchMedia(\"(prefers-color-scheme: dark)\")):setTheme(e.context.mainElement,e.selectedTheme):setTheme(e.context.mainElement,\"light\")},capitalizeFirstLetter=e=>e.charAt(0).toUpperCase()+e.slice(1).replace(/\\./,\"\"),getLocaleWeekday=(e,t,n)=>{const a=new Date(`1978-01-0${t+1}T00:00:00.000Z`),o=a.toLocaleString(n,{weekday:\"short\",timeZone:\"UTC\"}),l=a.toLocaleString(n,{weekday:\"long\",timeZone:\"UTC\"});e.context.locale.weekdays.short.push(capitalizeFirstLetter(o)),e.context.locale.weekdays.long.push(capitalizeFirstLetter(l))},getLocaleMonth=(e,t,n)=>{const a=new Date(`1978-${String(t+1).padStart(2,\"0\")}-01T00:00:00.000Z`),o=a.toLocaleString(n,{month:\"short\",timeZone:\"UTC\"}),l=a.toLocaleString(n,{month:\"long\",timeZone:\"UTC\"});e.context.locale.months.short.push(capitalizeFirstLetter(o)),e.context.locale.months.long.push(capitalizeFirstLetter(l))},getLocale=e=>{var t,n,a,o,l,s,i,r;if(!(e.context.locale.weekdays.short[6]&&e.context.locale.weekdays.long[6]&&e.context.locale.months.short[11]&&e.context.locale.months.long[11]))if(\"string\"==typeof e.locale){if(\"string\"==typeof e.locale&&!e.locale.length)throw new Error(errorMessages.notLocale);Array.from({length:7},((t,n)=>getLocaleWeekday(e,n,e.locale))),Array.from({length:12},((t,n)=>getLocaleMonth(e,n,e.locale)))}else{if(!((null==(n=null==(t=e.locale)?void 0:t.weekdays)?void 0:n.short[6])&&(null==(o=null==(a=e.locale)?void 0:a.weekdays)?void 0:o.long[6])&&(null==(s=null==(l=e.locale)?void 0:l.months)?void 0:s.short[11])&&(null==(r=null==(i=e.locale)?void 0:i.months)?void 0:r.long[11])))throw new Error(errorMessages.notLocale);setContext(e,\"locale\",__spreadValues({},e.locale))}},create=e=>{const t={default:()=>{createWeek(e),createDates(e)},multiple:()=>{createWeek(e),createDates(e)},month:()=>createMonths(e),year:()=>createYears(e)};handleTheme(e),getLocale(e),createLayouts(e),visibilityTitle(e),visibilityArrows(e),createTime(e),t[e.context.currentType]()},handleArrowKeys=e=>{const t=t=>{var n;const a=t.target;if(![\"ArrowUp\",\"ArrowDown\",\"ArrowLeft\",\"ArrowRight\"].includes(t.key)||\"button\"!==a.localName)return;const o=Array.from(e.context.mainElement.querySelectorAll('[data-vc=\"calendar\"] button')),l=o.indexOf(a);if(-1===l)return;const s=(i=o[l]).hasAttribute(\"data-vc-date-btn\")?7:i.hasAttribute(\"data-vc-months-month\")?4:i.hasAttribute(\"data-vc-years-year\")?5:1;var i;const r=(0,{ArrowUp:()=>Math.max(0,l-s),ArrowDown:()=>Math.min(o.length-1,l+s),ArrowLeft:()=>Math.max(0,l-1),ArrowRight:()=>Math.min(o.length-1,l+1)}[t.key])();null==(n=o[r])||n.focus()};return e.context.mainElement.addEventListener(\"keydown\",t),()=>e.context.mainElement.removeEventListener(\"keydown\",t)},handleMonth=(e,t)=>{const n=getDate(getDateString(new Date(e.context.selectedYear,e.context.selectedMonth,1)));({prev:()=>n.setMonth(n.getMonth()-e.monthsToSwitch),next:()=>n.setMonth(n.getMonth()+e.monthsToSwitch)})[t](),setContext(e,\"selectedMonth\",n.getMonth()),setContext(e,\"selectedYear\",n.getFullYear()),visibilityTitle(e),visibilityArrows(e),createDates(e)},handleClickArrow=(e,t)=>{const n=t.target.closest(\"[data-vc-arrow]\");if(n){if([\"default\",\"multiple\"].includes(e.context.currentType))handleMonth(e,n.dataset.vcArrow);else if(\"year\"===e.context.currentType&&void 0!==e.context.displayYear){const a={prev:-15,next:15}[n.dataset.vcArrow];setContext(e,\"displayYear\",e.context.displayYear+a),createYears(e,t.target)}e.onClickArrow&&e.onClickArrow(e,t)}},resolveToggle=(e,t)=>void 0===t||(\"function\"==typeof t?t(e):t),canToggleSelection=e=>resolveToggle(e,e.enableDateToggle),handleSelectDate=(e,t,n)=>{const a=t.dataset.vcDate,o=t.closest(\"[data-vc-date][data-vc-date-selected]\"),l=canToggleSelection(e);if(o&&!l)return;const s=o?e.context.selectedDates.filter((e=>e!==a)):n?[...e.context.selectedDates,a]:[a];setContext(e,\"selectedDates\",s)},createDateRangeTooltip=(e,t,n)=>{if(!t)return;if(!n)return t.dataset.vcDateRangeTooltip=\"hidden\",void(t.textContent=\"\");const a=e.context.mainElement.getBoundingClientRect(),o=n.getBoundingClientRect();t.style.left=o.left-a.left+o.width/2+\"px\",t.style.top=o.bottom-a.top-o.height+\"px\",t.dataset.vcDateRangeTooltip=\"visible\",t.innerHTML=e.sanitizerHTML(e.onCreateDateRangeTooltip(e,n,t,o,a))},state={self:null,lastDateEl:null,isHovering:!1,rangeMin:void 0,rangeMax:void 0,tooltipEl:null,timeoutId:null},addHoverEffect=(e,t,n)=>{var a,o,l;if(!(null==(o=null==(a=state.self)?void 0:a.context)?void 0:o.selectedDates[0]))return;const s=getDateString(e);(null==(l=state.self.context.disableDates)?void 0:l.includes(s))||(state.self.context.mainElement.querySelectorAll(`[data-vc-date=\"${s}\"]`).forEach((e=>e.dataset.vcDateHover=\"\")),t.forEach((e=>e.dataset.vcDateHover=\"first\")),n.forEach((e=>{\"first\"===e.dataset.vcDateHover?e.dataset.vcDateHover=\"first-and-last\":e.dataset.vcDateHover=\"last\"})))},removeHoverEffect=()=>{var e,t;if(!(null==(t=null==(e=state.self)?void 0:e.context)?void 0:t.mainElement))return;state.self.context.mainElement.querySelectorAll(\"[data-vc-date-hover]\").forEach((e=>e.removeAttribute(\"data-vc-date-hover\")))},handleHoverDatesEvent=e=>{var t,n;if(!e||!(null==(n=null==(t=state.self)?void 0:t.context)?void 0:n.selectedDates[0]))return;if(!e.closest('[data-vc=\"dates\"]'))return state.lastDateEl=null,createDateRangeTooltip(state.self,state.tooltipEl,null),void removeHoverEffect();const a=e.closest(\"[data-vc-date]\");if(!a||state.lastDateEl===a)return;state.lastDateEl=a,createDateRangeTooltip(state.self,state.tooltipEl,a),removeHoverEffect();const o=a.dataset.vcDate,l=getDate(state.self.context.selectedDates[0]),s=getDate(o),i=state.self.context.mainElement.querySelectorAll(`[data-vc-date=\"${state.self.context.selectedDates[0]}\"]`),r=state.self.context.mainElement.querySelectorAll(`[data-vc-date=\"${o}\"]`),[c,d]=l<s?[i,r]:[r,i],[u,m]=l<s?[l,s]:[s,l];for(let e=new Date(u);e<=m;e.setDate(e.getDate()+1))addHoverEffect(e,c,d)},handleHoverSelectedDatesRangeEvent=e=>{const t=null==e?void 0:e.closest(\"[data-vc-date-selected]\");if(!t&&state.lastDateEl)return state.lastDateEl=null,void createDateRangeTooltip(state.self,state.tooltipEl,null);t&&state.lastDateEl!==t&&(state.lastDateEl=t,createDateRangeTooltip(state.self,state.tooltipEl,t))},optimizedHoverHandler=e=>t=>{const n=t.target;state.isHovering||(state.isHovering=!0,requestAnimationFrame((()=>{e(n),state.isHovering=!1})))},optimizedHandleHoverDatesEvent=optimizedHoverHandler(handleHoverDatesEvent),optimizedHandleHoverSelectedDatesRangeEvent=optimizedHoverHandler(handleHoverSelectedDatesRangeEvent),handleCancelSelectionDates=e=>{state.self&&\"Escape\"===e.key&&(state.lastDateEl=null,setContext(state.self,\"selectedDates\",[]),state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverDatesEvent),state.self.context.mainElement.removeEventListener(\"keydown\",handleCancelSelectionDates),createDateRangeTooltip(state.self,state.tooltipEl,null),removeHoverEffect())},handleMouseLeave=()=>{null!==state.timeoutId&&clearTimeout(state.timeoutId),state.timeoutId=setTimeout((()=>{state.lastDateEl=null,createDateRangeTooltip(state.self,state.tooltipEl,null),removeHoverEffect()}),50)},updateDisabledDates=()=>{var e,t,n,a;if(!(null==(n=null==(t=null==(e=state.self)?void 0:e.context)?void 0:t.selectedDates)?void 0:n[0])||!(null==(a=state.self.context.disableDates)?void 0:a[0]))return;const o=getDate(state.self.context.selectedDates[0]),[l,s]=state.self.context.disableDates.map((e=>getDate(e))).reduce((([e,t],n)=>[o>=n?n:e,o<n&&null===t?n:t]),[null,null]);l&&setContext(state.self,\"displayDateMin\",getDateString(new Date(l.setDate(l.getDate()+1)))),s&&setContext(state.self,\"displayDateMax\",getDateString(new Date(s.setDate(s.getDate()-1))));state.self.disableDatesPast&&!state.self.disableAllDates&&getDate(state.self.context.displayDateMin)<getDate(state.self.context.dateToday)&&setContext(state.self,\"displayDateMin\",state.self.context.dateToday)},handleSelectDateRange=(e,t)=>{state.self=e,state.lastDateEl=t,removeHoverEffect(),e.disableDatesGaps&&(state.rangeMin=state.rangeMin?state.rangeMin:e.context.displayDateMin,state.rangeMax=state.rangeMax?state.rangeMax:e.context.displayDateMax),e.onCreateDateRangeTooltip&&(state.tooltipEl=e.context.mainElement.querySelector(\"[data-vc-date-range-tooltip]\"));const n=null==t?void 0:t.dataset.vcDate;if(n){const t=1===e.context.selectedDates.length&&e.context.selectedDates[0].includes(n),a=t&&!canToggleSelection(e)?[n,n]:t&&canToggleSelection(e)?[]:e.context.selectedDates.length>1?[n]:[...e.context.selectedDates,n];setContext(e,\"selectedDates\",a),e.context.selectedDates.length>1&&e.context.selectedDates.sort(((e,t)=>+new Date(e)-+new Date(t)))}({set:()=>(e.disableDatesGaps&&updateDisabledDates(),createDateRangeTooltip(state.self,state.tooltipEl,t),state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave),state.self.context.mainElement.removeEventListener(\"keydown\",handleCancelSelectionDates),state.self.context.mainElement.addEventListener(\"mousemove\",optimizedHandleHoverDatesEvent),state.self.context.mainElement.addEventListener(\"mouseleave\",handleMouseLeave),state.self.context.mainElement.addEventListener(\"keydown\",handleCancelSelectionDates),()=>{state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverDatesEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave),state.self.context.mainElement.removeEventListener(\"keydown\",handleCancelSelectionDates)}),reset:()=>{const[n,a]=[e.context.selectedDates[0],e.context.selectedDates[e.context.selectedDates.length-1]],o=e.context.selectedDates[0]!==e.context.selectedDates[e.context.selectedDates.length-1],l=parseDates([`${n}:${a}`]).filter((t=>!e.context.disableDates.includes(t))),s=o?e.enableEdgeDatesOnly?[n,a]:l:[e.context.selectedDates[0],e.context.selectedDates[0]];if(setContext(e,\"selectedDates\",s),e.disableDatesGaps&&(setContext(e,\"displayDateMin\",state.rangeMin),setContext(e,\"displayDateMax\",state.rangeMax)),state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverDatesEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave),state.self.context.mainElement.removeEventListener(\"keydown\",handleCancelSelectionDates),e.onCreateDateRangeTooltip)return e.context.selectedDates[0]||(state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave),createDateRangeTooltip(state.self,state.tooltipEl,null)),e.context.selectedDates[0]&&(state.self.context.mainElement.addEventListener(\"mousemove\",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.addEventListener(\"mouseleave\",handleMouseLeave),createDateRangeTooltip(state.self,state.tooltipEl,t)),()=>{state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave)}}})[1===e.context.selectedDates.length?\"set\":\"reset\"]()},updateDateModifier=e=>{e.context.mainElement.querySelectorAll(\"[data-vc-date]\").forEach((t=>{const n=t.querySelector(\"[data-vc-date-btn]\"),a=t.dataset.vcDate,o=getDate(a).getDay();setDateModifier(e,e.context.selectedYear,t,n,o,a,\"current\")}))},handleClickDate=(e,t)=>{var n;const a=t.target,o=a.closest(\"[data-vc-date-btn]\");if(!e.selectionDatesMode||![\"single\",\"multiple\",\"multiple-ranged\"].includes(e.selectionDatesMode)||!o)return;const l=o.closest(\"[data-vc-date]\");({single:()=>handleSelectDate(e,l,!1),multiple:()=>handleSelectDate(e,l,!0),\"multiple-ranged\":()=>handleSelectDateRange(e,l)})[e.selectionDatesMode](),null==(n=e.context.selectedDates)||n.sort(((e,t)=>+new Date(e)-+new Date(t))),e.onClickDate&&e.onClickDate(e,t),e.inputMode&&e.context.inputElement&&e.context.mainElement&&e.onChangeToInput&&e.onChangeToInput(e,t);const s=a.closest('[data-vc-date-month=\"prev\"]'),i=a.closest('[data-vc-date-month=\"next\"]');({prev:()=>e.enableMonthChangeOnDayClick?handleMonth(e,\"prev\"):updateDateModifier(e),next:()=>e.enableMonthChangeOnDayClick?handleMonth(e,\"next\"):updateDateModifier(e),current:()=>updateDateModifier(e)})[s?\"prev\":i?\"next\":\"current\"]()},typeClick=[\"month\",\"year\"],getValue=(e,t,n)=>{const{currentValue:a,columnID:o}=getColumnID(e,t);return\"month\"===e.context.currentType&&o>=0?n-o:\"year\"===e.context.currentType&&e.context.selectedYear!==a?n-1:n},handleMultipleYearSelection=(e,t)=>{const n=getValue(e,\"year\",Number(t.dataset.vcYearsYear)),a=getDate(e.context.dateMin),o=getDate(e.context.dateMax),l=e.context.displayMonthsCount-1,{columnID:s}=getColumnID(e,\"year\"),i=e.context.selectedMonth<a.getMonth()&&n<=a.getFullYear(),r=e.context.selectedMonth>o.getMonth()-l+s&&n>=o.getFullYear(),c=n<a.getFullYear(),d=n>o.getFullYear(),u=i||c?a.getFullYear():r||d?o.getFullYear():n,m=i||c?a.getMonth():r||d?o.getMonth()-l+s:e.context.selectedMonth;setContext(e,\"selectedYear\",u),setContext(e,\"selectedMonth\",m)},handleMultipleMonthSelection=(e,t)=>{const n=t.closest('[data-vc-column=\"month\"]').querySelector('[data-vc=\"year\"]'),a=getValue(e,\"month\",Number(t.dataset.vcMonthsMonth)),o=Number(n.dataset.vcYear),l=getDate(e.context.dateMin),s=getDate(e.context.dateMax),i=a<l.getMonth()&&o<=l.getFullYear(),r=a>s.getMonth()&&o>=s.getFullYear();setContext(e,\"selectedYear\",o),setContext(e,\"selectedMonth\",i?l.getMonth():r?s.getMonth():a)},handleItemClick=(e,t,n,a)=>{var o;({year:()=>{if(\"multiple\"===e.type)return handleMultipleYearSelection(e,a);setContext(e,\"selectedYear\",Number(a.dataset.vcYearsYear))},month:()=>{if(\"multiple\"===e.type)return handleMultipleMonthSelection(e,a);setContext(e,\"selectedMonth\",Number(a.dataset.vcMonthsMonth))}})[n]();({year:()=>{var n;return null==(n=e.onClickYear)?void 0:n.call(e,e,t)},month:()=>{var n;return null==(n=e.onClickMonth)?void 0:n.call(e,e,t)}})[n](),e.context.currentType!==e.type?(setContext(e,\"currentType\",e.type),create(e),null==(o=e.context.mainElement.querySelector(`[data-vc=\"${n}\"]`))||o.focus()):setYearModifier(e,a,n,!0,!0)},handleClickType=(e,t,n)=>{var a;const o=t.target,l=o.closest(`[data-vc=\"${n}\"]`),s={year:()=>createYears(e,o),month:()=>createMonths(e,o)};if(l&&e.onClickTitle&&e.onClickTitle(e,t),l&&e.context.currentType!==n)return s[n]();const i=o.closest(`[data-vc-${n}s-${n}]`);if(i)return handleItemClick(e,t,n,i);const r=o.closest('[data-vc=\"grid\"]'),c=o.closest('[data-vc=\"column\"]');(e.context.currentType===n&&l||\"multiple\"===e.type&&e.context.currentType===n&&r&&!c)&&(setContext(e,\"currentType\",e.type),create(e),null==(a=e.context.mainElement.querySelector(`[data-vc=\"${n}\"]`))||a.focus())},handleClickMonthOrYear=(e,t)=>{const n={month:e.selectionMonthsMode,year:e.selectionYearsMode};typeClick.forEach((a=>{n[a]&&t.target&&handleClickType(e,t,a)}))},handleClickWeekNumber=(e,t)=>{if(!e.enableWeekNumbers||!e.onClickWeekNumber)return;const n=t.target.closest(\"[data-vc-week-number]\"),a=e.context.mainElement.querySelectorAll(\"[data-vc-date-week-number]\");if(!n||!a[0])return;const o=Number(n.innerText),l=Number(n.dataset.vcWeekYear),s=Array.from(a).filter((e=>Number(e.dataset.vcDateWeekNumber)===o));e.onClickWeekNumber(e,o,l,s,t)},handleClickWeekDay=(e,t)=>{if(!e.onClickWeekDay)return;const n=t.target.closest(\"[data-vc-week-day]\"),a=t.target.closest('[data-vc=\"column\"]'),o=a?a.querySelectorAll(\"[data-vc-date-week-day]\"):e.context.mainElement.querySelectorAll(\"[data-vc-date-week-day]\");if(!n||!o[0])return;const l=Number(n.dataset.vcWeekDay),s=Array.from(o).filter((e=>Number(e.dataset.vcDateWeekDay)===l));e.onClickWeekDay(e,l,s,t)},handleClick=e=>{const t=t=>{handleClickArrow(e,t),handleClickWeekDay(e,t),handleClickWeekNumber(e,t),handleClickDate(e,t),handleClickMonthOrYear(e,t)};return e.context.mainElement.addEventListener(\"click\",t),()=>e.context.mainElement.removeEventListener(\"click\",t)},initMonthsCount=e=>{if(\"multiple\"===e.type&&(e.displayMonthsCount<=1||e.displayMonthsCount>12))throw new Error(errorMessages.incorrectMonthsCount);if(\"multiple\"!==e.type&&e.displayMonthsCount>1)throw new Error(errorMessages.incorrectMonthsCount);setContext(e,\"displayMonthsCount\",e.displayMonthsCount?e.displayMonthsCount:\"multiple\"===e.type?2:1)},getLocalDate=()=>{const e=new Date;return new Date(e.getTime()-6e4*e.getTimezoneOffset()).toISOString().substring(0,10)},resolveDate=(e,t)=>\"today\"===e?getLocalDate():e instanceof Date||\"number\"==typeof e||\"string\"==typeof e?parseDates([e])[0]:t,initRange=e=>{var t,n,a;const o=resolveDate(e.dateMin,e.dateMin),l=resolveDate(e.dateMax,e.dateMax),s=resolveDate(e.displayDateMin,o),i=resolveDate(e.displayDateMax,l);setContext(e,\"dateToday\",resolveDate(e.dateToday,e.dateToday)),setContext(e,\"displayDateMin\",s?getDate(o)>=getDate(s)?o:s:o),setContext(e,\"displayDateMax\",i?getDate(l)<=getDate(i)?l:i:l);const r=e.disableDatesPast&&!e.disableAllDates&&getDate(s)<getDate(e.context.dateToday);setContext(e,\"displayDateMin\",r||e.disableAllDates?e.context.dateToday:s),setContext(e,\"displayDateMax\",e.disableAllDates?e.context.dateToday:i),setContext(e,\"disableDates\",e.disableDates[0]&&!e.disableAllDates?parseDates(e.disableDates):e.disableAllDates?[e.context.displayDateMin]:[]),e.context.disableDates.length>1&&e.context.disableDates.sort(((e,t)=>+new Date(e)-+new Date(t))),setContext(e,\"enableDates\",e.enableDates[0]?parseDates(e.enableDates):[]),(null==(t=e.context.enableDates)?void 0:t[0])&&(null==(n=e.context.disableDates)?void 0:n[0])&&setContext(e,\"disableDates\",e.context.disableDates.filter((t=>!e.context.enableDates.includes(t)))),e.context.enableDates.length>1&&e.context.enableDates.sort(((e,t)=>+new Date(e)-+new Date(t))),(null==(a=e.context.enableDates)?void 0:a[0])&&e.disableAllDates&&(setContext(e,\"displayDateMin\",e.context.enableDates[0]),setContext(e,\"displayDateMax\",e.context.enableDates[e.context.enableDates.length-1])),setContext(e,\"dateMin\",e.displayDisabledDates?o:e.context.displayDateMin),setContext(e,\"dateMax\",e.displayDisabledDates?l:e.context.displayDateMax)},initSelectedDates=e=>{var t;setContext(e,\"selectedDates\",(null==(t=e.selectedDates)?void 0:t[0])?parseDates(e.selectedDates):[])},displayClosestValidDate=e=>{const t=t=>{const n=new Date(t);setInitialContext(e,n.getMonth(),n.getFullYear())};if(e.displayDateMin&&\"today\"!==e.displayDateMin&&(n=e.displayDateMin,a=new Date,new Date(n).getTime()>a.getTime())){const n=e.selectedDates.length&&e.selectedDates[0]?parseDates(e.selectedDates)[0]:e.displayDateMin;return t(getDate(resolveDate(n,e.displayDateMin))),!0}var n,a;if(e.displayDateMax&&\"today\"!==e.displayDateMax&&((e,t)=>new Date(e).getTime()<t.getTime())(e.displayDateMax,new Date)){const n=e.selectedDates.length&&e.selectedDates[0]?parseDates(e.selectedDates)[0]:e.displayDateMax;return t(getDate(resolveDate(n,e.displayDateMax))),!0}return!1},setInitialContext=(e,t,n)=>{setContext(e,\"selectedMonth\",t),setContext(e,\"selectedYear\",n),setContext(e,\"displayYear\",n)},initSelectedMonthYear=e=>{var t;if(e.enableJumpToSelectedDate&&(null==(t=e.selectedDates)?void 0:t[0])&&void 0===e.selectedMonth&&void 0===e.selectedYear){const t=getDate(parseDates(e.selectedDates)[0]);return void setInitialContext(e,t.getMonth(),t.getFullYear())}if(displayClosestValidDate(e))return;const n=void 0!==e.selectedMonth&&Number(e.selectedMonth)>=0&&Number(e.selectedMonth)<12,a=void 0!==e.selectedYear&&Number(e.selectedYear)>=0&&Number(e.selectedYear)<=9999;setInitialContext(e,n?Number(e.selectedMonth):getDate(e.context.dateToday).getMonth(),a?Number(e.selectedYear):getDate(e.context.dateToday).getFullYear())},initTime=e=>{var t,n,a;if(!e.selectionTimeMode)return;if(![12,24].includes(e.selectionTimeMode))throw new Error(errorMessages.incorrectTime);const o=12===e.selectionTimeMode,l=o?/^(0[1-9]|1[0-2]):([0-5][0-9]) ?(AM|PM)?$/i:/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/;let[s,i,r]=null!=(a=null==(n=null==(t=e.selectedTime)?void 0:t.match(l))?void 0:n.slice(1))?a:[];s?o&&!r&&(r=\"AM\"):(s=o?transformTime12(String(e.timeMinHour)):String(e.timeMinHour),i=String(e.timeMinMinute),r=o?Number(transformTime12(String(e.timeMinHour)))>=12?\"PM\":\"AM\":null),setContext(e,\"selectedHours\",s.padStart(2,\"0\")),setContext(e,\"selectedMinutes\",i.padStart(2,\"0\")),setContext(e,\"selectedKeeping\",r),setContext(e,\"selectedTime\",`${e.context.selectedHours}:${e.context.selectedMinutes}${r?` ${r}`:\"\"}`)},initAllVariables=e=>{setContext(e,\"currentType\",e.type),initMonthsCount(e),initRange(e),initSelectedMonthYear(e),initSelectedDates(e),initTime(e)},reset=(e,{year:t,month:n,dates:a,time:o,locale:l},s=!0)=>{var i;const r={year:e.selectedYear,month:e.selectedMonth,dates:e.selectedDates,time:e.selectedTime};if(e.selectedYear=t?r.year:e.context.selectedYear,e.selectedMonth=n?r.month:e.context.selectedMonth,e.selectedTime=o?r.time:e.context.selectedTime,e.selectedDates=\"only-first\"===a&&(null==(i=e.context.selectedDates)?void 0:i[0])?[e.context.selectedDates[0]]:!0===a?r.dates:e.context.selectedDates,l){setContext(e,\"locale\",{months:{short:[],long:[]},weekdays:{short:[],long:[]}})}initAllVariables(e),s&&create(e),e.selectedYear=r.year,e.selectedMonth=r.month,e.selectedDates=r.dates,e.selectedTime=r.time,\"multiple-ranged\"===e.selectionDatesMode&&a&&handleSelectDateRange(e,null)},createToInput=e=>{const t=document.createElement(\"div\");return t.className=e.styles.calendar,t.dataset.vc=\"calendar\",t.dataset.vcInput=\"\",t.dataset.vcCalendarHidden=\"\",setContext(e,\"inputModeInit\",!0),setContext(e,\"isShowInInputMode\",!1),setContext(e,\"mainElement\",t),document.body.appendChild(e.context.mainElement),reset(e,{year:!0,month:!0,dates:!0,time:!0,locale:!0}),setTimeout((()=>show(e))),e.onInit&&e.onInit(e),handleArrowKeys(e),handleClick(e)},canOpenOnFocus=e=>resolveToggle(e,e.openOnFocus),handleInput=e=>{setContext(e,\"inputElement\",e.context.mainElement);const t=()=>{e.context.inputModeInit?setTimeout((()=>show(e))):createToInput(e)};e.context.inputElement.addEventListener(\"click\",t);const n=\"function\"==typeof e.openOnFocus||!0===e.openOnFocus,a=()=>{shouldSkipOpenOnFocus(e)?clearSkipOpenOnFocus(e):canOpenOnFocus(e)&&t()};n&&e.context.inputElement.addEventListener(\"focus\",a);const o=t=>{const n=\"Tab\"===t.key&&!t.shiftKey,a=[\"ArrowUp\",\"ArrowDown\",\"ArrowLeft\",\"ArrowRight\"].includes(t.key);(n||a)&&(t=>{var n;if(!e.context.isShowInInputMode)return!1;if(document.activeElement!==e.context.inputElement)return!1;const a=e=>e.tabIndex>=0&&!e.hasAttribute(\"disabled\")&&\"true\"!==e.getAttribute(\"aria-disabled\"),o=null!=(n=document.createTreeWalker(e.context.mainElement,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>a(e)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}).nextNode())?n:a(e.context.mainElement)?e.context.mainElement:null;!o||o.tabIndex<0||(t.preventDefault(),o.focus())})(t)};return e.context.inputElement.addEventListener(\"keydown\",o),()=>{e.context.inputElement.removeEventListener(\"click\",t),n&&e.context.inputElement.removeEventListener(\"focus\",a),e.context.inputElement.removeEventListener(\"keydown\",o)}},init=e=>(setContext(e,\"originalElement\",e.context.mainElement.cloneNode(!0)),setContext(e,\"isInit\",!0),e.inputMode?handleInput(e):(initAllVariables(e),create(e),e.onInit&&e.onInit(e),handleArrowKeys(e),handleClick(e))),update=(e,t)=>{if(!e.context.isInit)throw new Error(errorMessages.notInit);reset(e,__spreadValues(__spreadValues({},{year:!0,month:!0,dates:!0,time:!0,locale:!0}),t),!(e.inputMode&&!e.context.inputModeInit)),e.onUpdate&&e.onUpdate(e)},replaceProperties=(e,t)=>{const n=Object.keys(t);for(let a=0;a<n.length;a++){const o=n[a];\"object\"!=typeof e[o]||\"object\"!=typeof t[o]||t[o]instanceof Date||Array.isArray(t[o])?void 0!==t[o]&&(e[o]=t[o]):replaceProperties(e[o],t[o])}},set=(e,t,n)=>{replaceProperties(e,t),e.context.isInit&&update(e,n)};function findBestPickerPosition(e,t){const n=\"left\";if(!t||!e)return n;const{canShow:a,parentPositions:o}=getAvailablePosition(e,t),l=a.left&&a.right;return(l&&a.bottom?\"center\":l&&a.top?[\"top\",\"center\"]:Array.isArray(o)?[\"bottom\"===o[0]?\"top\":\"bottom\",...o.slice(1)]:o)||n}const setPosition=(e,t,n)=>{if(!e)return;const a=\"auto\"===n?findBestPickerPosition(e,t):n,o={top:-t.offsetHeight,bottom:e.offsetHeight,left:0,center:e.offsetWidth/2-t.offsetWidth/2,right:e.offsetWidth-t.offsetWidth},l=Array.isArray(a)?a[0]:\"bottom\",s=Array.isArray(a)?a[1]:a;t.dataset.vcPosition=l;const{top:i,left:r}=getOffset(e),c=i+o[l];let d=r+o[s];const{vw:u}=getViewportDimensions();if(d+t.clientWidth>u){const e=window.innerWidth-document.body.clientWidth;d=u-t.clientWidth-e}else d<0&&(d=0);Object.assign(t.style,{left:`${d}px`,top:`${c}px`})},show=e=>{if(e.context.isShowInInputMode)return;if(!e.context.currentType)return void e.context.mainElement.click();setContext(e,\"cleanupHandlers\",[]),setContext(e,\"isShowInInputMode\",!0),e.inputMode&&restoreTabbing(e.context.mainElement),setPosition(e.context.inputElement,e.context.mainElement,e.positionToInput),e.context.mainElement.removeAttribute(\"data-vc-calendar-hidden\");const t=()=>{setPosition(e.context.inputElement,e.context.mainElement,e.positionToInput)};window.addEventListener(\"resize\",t),e.context.cleanupHandlers.push((()=>window.removeEventListener(\"resize\",t)));const n=t=>{\"Escape\"===t.key&&hide(e)};document.addEventListener(\"keydown\",n),e.context.cleanupHandlers.push((()=>document.removeEventListener(\"keydown\",n)));const a=t=>{t.target===e.context.inputElement||e.context.mainElement.contains(t.target)||hide(e)};document.addEventListener(\"click\",a,{capture:!0}),e.context.cleanupHandlers.push((()=>document.removeEventListener(\"click\",a,{capture:!0}))),e.onShow&&e.onShow(e)},labels={application:\"Calendar\",navigation:\"Calendar Navigation\",arrowNext:{month:\"Next month\",year:\"Next list of years\"},arrowPrev:{month:\"Previous month\",year:\"Previous list of years\"},month:\"Select month, current selected month:\",months:\"List of months\",year:\"Select year, current selected year:\",years:\"List of years\",week:\"Days of the week\",weekNumber:\"Numbers of weeks in a year\",dates:\"Dates in the current month\",selectingTime:\"Selecting a time \",inputHour:\"Hours\",inputMinute:\"Minutes\",rangeHour:\"Slider for selecting hours\",rangeMinute:\"Slider for selecting minutes\",btnKeeping:\"Switch AM/PM, current position:\"},styles={calendar:\"vc\",controls:\"vc-controls\",grid:\"vc-grid\",column:\"vc-column\",header:\"vc-header\",headerContent:\"vc-header__content\",month:\"vc-month\",year:\"vc-year\",arrowPrev:\"vc-arrow vc-arrow_prev\",arrowNext:\"vc-arrow vc-arrow_next\",wrapper:\"vc-wrapper\",content:\"vc-content\",months:\"vc-months\",monthsMonth:\"vc-months__month\",years:\"vc-years\",yearsYear:\"vc-years__year\",week:\"vc-week\",weekDay:\"vc-week__day\",weekNumbers:\"vc-week-numbers\",weekNumbersTitle:\"vc-week-numbers__title\",weekNumbersContent:\"vc-week-numbers__content\",weekNumber:\"vc-week-number\",dates:\"vc-dates\",datesRow:\"vc-dates__row\",date:\"vc-date\",dateBtn:\"vc-date__btn\",datePopup:\"vc-date__popup\",dateRangeTooltip:\"vc-date-range-tooltip\",time:\"vc-time\",timeContent:\"vc-time__content\",timeHour:\"vc-time__hour\",timeMinute:\"vc-time__minute\",timeKeeping:\"vc-time__keeping\",timeRanges:\"vc-time__ranges\",timeRange:\"vc-time__range\"};class OptionsCalendar{constructor(){__publicField(this,\"type\",\"default\"),__publicField(this,\"inputMode\",!1),__publicField(this,\"openOnFocus\",!0),__publicField(this,\"positionToInput\",\"left\"),__publicField(this,\"firstWeekday\",1),__publicField(this,\"monthsToSwitch\",1),__publicField(this,\"themeAttrDetect\",\"html[data-theme]\"),__publicField(this,\"locale\",\"en\"),__publicField(this,\"dateToday\",\"today\"),__publicField(this,\"dateMin\",\"1970-01-01\"),__publicField(this,\"dateMax\",\"2470-12-31\"),__publicField(this,\"displayDateMin\"),__publicField(this,\"displayDateMax\"),__publicField(this,\"displayDatesOutside\",!0),__publicField(this,\"displayDisabledDates\",!1),__publicField(this,\"displayMonthsCount\"),__publicField(this,\"disableDates\",[]),__publicField(this,\"disableAllDates\",!1),__publicField(this,\"disableDatesPast\",!1),__publicField(this,\"disableDatesGaps\",!1),__publicField(this,\"disableWeekdays\",[]),__publicField(this,\"disableToday\",!1),__publicField(this,\"enableDates\",[]),__publicField(this,\"enableEdgeDatesOnly\",!0),__publicField(this,\"enableDateToggle\",!0),__publicField(this,\"enableWeekNumbers\",!1),__publicField(this,\"enableMonthChangeOnDayClick\",!0),__publicField(this,\"enableJumpToSelectedDate\",!1),__publicField(this,\"selectionDatesMode\",\"single\"),__publicField(this,\"selectionMonthsMode\",!0),__publicField(this,\"selectionYearsMode\",!0),__publicField(this,\"selectionTimeMode\",!1),__publicField(this,\"selectedDates\",[]),__publicField(this,\"selectedMonth\"),__publicField(this,\"selectedYear\"),__publicField(this,\"selectedHolidays\",[]),__publicField(this,\"selectedWeekends\",[0,6]),__publicField(this,\"selectedTime\"),__publicField(this,\"selectedTheme\",\"system\"),__publicField(this,\"timeMinHour\",0),__publicField(this,\"timeMaxHour\",23),__publicField(this,\"timeMinMinute\",0),__publicField(this,\"timeMaxMinute\",59),__publicField(this,\"timeControls\",\"all\"),__publicField(this,\"timeStepHour\",1),__publicField(this,\"timeStepMinute\",1),__publicField(this,\"sanitizerHTML\",(e=>e)),__publicField(this,\"onClickDate\"),__publicField(this,\"onClickWeekDay\"),__publicField(this,\"onClickWeekNumber\"),__publicField(this,\"onClickTitle\"),__publicField(this,\"onClickMonth\"),__publicField(this,\"onClickYear\"),__publicField(this,\"onClickArrow\"),__publicField(this,\"onChangeTime\"),__publicField(this,\"onChangeToInput\"),__publicField(this,\"onCreateDateRangeTooltip\"),__publicField(this,\"onCreateDateEls\"),__publicField(this,\"onCreateMonthEls\"),__publicField(this,\"onCreateYearEls\"),__publicField(this,\"onInit\"),__publicField(this,\"onUpdate\"),__publicField(this,\"onDestroy\"),__publicField(this,\"onShow\"),__publicField(this,\"onHide\"),__publicField(this,\"popups\",{}),__publicField(this,\"labels\",__spreadValues({},labels)),__publicField(this,\"layouts\",{default:\"\",multiple:\"\",month:\"\",year:\"\"}),__publicField(this,\"styles\",__spreadValues({},styles))}}const _Calendar=class e extends OptionsCalendar{constructor(t,n){var a;super(),__publicField(this,\"init\",(()=>init(this))),__publicField(this,\"update\",(e=>update(this,e))),__publicField(this,\"destroy\",(()=>destroy(this))),__publicField(this,\"show\",(()=>show(this))),__publicField(this,\"hide\",(()=>hide(this))),__publicField(this,\"set\",((e,t)=>set(this,e,t))),__publicField(this,\"context\"),this.context=__spreadProps(__spreadValues({},this.context),{locale:{months:{short:[],long:[]},weekdays:{short:[],long:[]}}}),setContext(this,\"mainElement\",\"string\"==typeof t?null!=(a=e.memoizedElements.get(t))?a:this.queryAndMemoize(t):t),n&&replaceProperties(this,n)}queryAndMemoize(t){const n=document.querySelector(t);if(!n)throw new Error(errorMessages.notFoundSelector(t));return e.memoizedElements.set(t,n),n}};__publicField(_Calendar,\"memoizedElements\",new Map);let Calendar=_Calendar;export{Calendar};","/**\n * --------------------------------------------------------------------------\n * Bootstrap datepicker.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { Calendar } from 'vanilla-calendar-pro'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { isDisabled } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'datepicker'\nconst DATA_KEY = 'bs.datepicker'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUSIN_DATA_API = `focusin${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"datepicker\"]'\n\nconst HIDE_DELAY = 100 // ms delay before hiding after selection\n\nconst Default = {\n datepickerTheme: null, // 'light', 'dark', 'auto' - explicit theme for datepicker popover only\n dateMin: null,\n dateMax: null,\n dateFormat: null, // Intl.DateTimeFormat options, or function(date, locale) => string\n displayElement: null, // Element to show formatted date (defaults to element for buttons)\n displayMonthsCount: 1, // Number of months to display side-by-side\n firstWeekday: 1, // Monday\n inline: false, // Render calendar inline (no popup)\n locale: 'default',\n positionElement: null, // Element to position calendar relative to (defaults to input)\n selectedDates: [],\n selectionMode: 'single', // 'single', 'multiple', 'multiple-ranged'\n placement: 'left', // 'left', 'center', 'right', 'auto'\n vcpOptions: {} // Pass-through for any VCP option\n}\n\nconst DefaultType = {\n datepickerTheme: '(null|string)',\n dateMin: '(null|string|number|object)',\n dateMax: '(null|string|number|object)',\n dateFormat: '(null|object|function)',\n displayElement: '(null|string|element|boolean)',\n displayMonthsCount: 'number',\n firstWeekday: 'number',\n inline: 'boolean',\n locale: 'string',\n positionElement: '(null|string|element)',\n selectedDates: 'array',\n selectionMode: 'string',\n placement: 'string',\n vcpOptions: 'object'\n}\n\n/**\n * Class definition\n */\n\nclass Datepicker extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._calendar = null\n this._isShown = false\n\n this._initCalendar()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n return this._isShown ? this.hide() : this.show()\n }\n\n show() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n if (!this._calendar || isDisabled(this._element) || this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._calendar.show()\n this._isShown = true\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n hide() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n if (!this._calendar || !this._isShown) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._calendar.hide()\n this._isShown = false\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n dispose() {\n if (this._themeObserver) {\n this._themeObserver.disconnect()\n this._themeObserver = null\n }\n\n if (this._calendar) {\n this._calendar.destroy()\n }\n\n this._calendar = null\n super.dispose()\n }\n\n getSelectedDates() {\n const dates = this._calendar?.context?.selectedDates\n return dates ? [...dates] : []\n }\n\n setSelectedDates(dates) {\n if (this._calendar) {\n this._calendar.set({ selectedDates: dates })\n }\n }\n\n // Private\n _initCalendar() {\n this._isInput = this._element.tagName === 'INPUT'\n this._isInline = this._config.inline\n\n // For inline mode, look for a hidden input child to bind to\n if (this._isInline && !this._isInput) {\n this._boundInput = this._element.querySelector('input[type=\"hidden\"], input[name]')\n }\n\n this._positionElement = this._resolvePositionElement()\n this._displayElement = this._resolveDisplayElement()\n\n const calendarOptions = this._buildCalendarOptions()\n\n // Create calendar on the position element (for correct popup positioning)\n // but value updates still go to this._element (the input)\n this._calendar = new Calendar(this._positionElement, calendarOptions)\n this._calendar.init()\n\n // Watch for theme changes on ancestor elements (for live theme switching)\n this._setupThemeObserver()\n\n // Set initial value if input has a value\n if (this._isInput && this._element.value) {\n this._parseInputValue()\n }\n\n // Populate input/display with preselected dates\n this._updateDisplayWithSelectedDates()\n }\n\n _updateDisplayWithSelectedDates() {\n const { selectedDates } = this._config\n if (!selectedDates || selectedDates.length === 0) {\n return\n }\n\n const formattedDate = this._formatDateForInput(selectedDates)\n\n if (this._isInput) {\n this._element.value = formattedDate\n }\n\n if (this._boundInput) {\n this._boundInput.value = selectedDates.join(',')\n }\n\n if (this._displayElement) {\n this._displayElement.textContent = formattedDate\n }\n }\n\n _resolvePositionElement() {\n let { positionElement } = this._config\n\n if (typeof positionElement === 'string') {\n positionElement = document.querySelector(positionElement)\n }\n\n // Use input's parent if in form-adorn\n if (!positionElement && this._isInput && !this._isInline) {\n const parent = this._element.closest('.form-adorn')\n if (parent) {\n positionElement = parent\n }\n }\n\n return positionElement || this._element\n }\n\n _resolveDisplayElement() {\n const { displayElement } = this._config\n\n if (typeof displayElement === 'string') {\n return document.querySelector(displayElement)\n }\n\n // For buttons/non-inputs (not inline), look for a [data-bs-datepicker-display] child\n if (displayElement === true || (displayElement === null && !this._isInput && !this._isInline)) {\n const displayChild = this._element.querySelector('[data-bs-datepicker-display]')\n return displayChild || this._element\n }\n\n return displayElement\n }\n\n _getThemeAncestor() {\n return this._element.closest('[data-bs-theme]')\n }\n\n _getEffectiveTheme() {\n // Priority: explicit datepickerTheme config > inherited from ancestor > none\n const { datepickerTheme } = this._config\n if (datepickerTheme) {\n return datepickerTheme\n }\n\n const ancestor = this._getThemeAncestor()\n return ancestor?.getAttribute('data-bs-theme') || null\n }\n\n _syncThemeAttribute(element) {\n if (!element) {\n return\n }\n\n const theme = this._getEffectiveTheme()\n\n if (theme) {\n // Copy theme to popover (needed because VCP appends to body, breaking CSS inheritance)\n element.setAttribute('data-bs-theme', theme)\n } else {\n // No theme - remove attribute to allow natural inheritance\n element.removeAttribute('data-bs-theme')\n }\n }\n\n _setupThemeObserver() {\n // Watch for theme changes on ancestor elements\n const ancestor = this._getThemeAncestor()\n if (!ancestor || this._config.datepickerTheme) {\n // No ancestor to watch, or explicit datepickerTheme overrides\n return\n }\n\n this._themeObserver = new MutationObserver(() => {\n this._syncThemeAttribute(this._calendar?.context?.mainElement)\n })\n\n this._themeObserver.observe(ancestor, {\n attributes: true,\n attributeFilter: ['data-bs-theme']\n })\n }\n\n _buildCalendarOptions() {\n // Get theme for VCP - use 'system' for auto-detection if no explicit theme\n const theme = this._getEffectiveTheme()\n // VCP uses 'system' for auto, Bootstrap uses 'auto'\n const vcpTheme = !theme || theme === 'auto' ? 'system' : theme\n\n const calendarOptions = {\n ...this._config.vcpOptions,\n inputMode: !this._isInline,\n positionToInput: this._config.placement,\n firstWeekday: this._config.firstWeekday,\n locale: this._config.locale,\n selectionDatesMode: this._config.selectionMode,\n selectedDates: this._config.selectedDates,\n displayMonthsCount: this._config.displayMonthsCount,\n type: this._config.displayMonthsCount > 1 ? 'multiple' : 'default',\n selectedTheme: vcpTheme,\n themeAttrDetect: '[data-bs-theme]',\n onClickDate: (self, event) => this._handleDateClick(self, event),\n onInit: self => {\n this._syncThemeAttribute(self.context.mainElement)\n },\n onShow: () => {\n this._isShown = true\n this._syncThemeAttribute(this._calendar.context.mainElement)\n },\n onHide: () => {\n this._isShown = false\n }\n }\n\n // Navigate to the month of the first selected date\n if (this._config.selectedDates.length > 0) {\n const firstDate = this._parseDate(this._config.selectedDates[0])\n calendarOptions.selectedMonth = firstDate.getMonth()\n calendarOptions.selectedYear = firstDate.getFullYear()\n }\n\n if (this._config.dateMin) {\n calendarOptions.dateMin = this._config.dateMin\n }\n\n if (this._config.dateMax) {\n calendarOptions.dateMax = this._config.dateMax\n }\n\n return calendarOptions\n }\n\n _handleDateClick(self, event) {\n const selectedDates = [...self.context.selectedDates]\n\n if (selectedDates.length > 0) {\n const formattedDate = this._formatDateForInput(selectedDates)\n\n if (this._isInput) {\n this._element.value = formattedDate\n }\n\n if (this._boundInput) {\n this._boundInput.value = selectedDates.join(',')\n }\n\n if (this._displayElement) {\n this._displayElement.textContent = formattedDate\n }\n }\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n dates: selectedDates,\n event\n })\n\n this._maybeHideAfterSelection(selectedDates)\n }\n\n _maybeHideAfterSelection(selectedDates) {\n if (this._isInline) {\n return\n }\n\n const shouldHide =\n (this._config.selectionMode === 'single' && selectedDates.length > 0) ||\n (this._config.selectionMode === 'multiple-ranged' && selectedDates.length >= 2)\n\n if (shouldHide) {\n setTimeout(() => this.hide(), HIDE_DELAY)\n }\n }\n\n _parseDate(dateStr) {\n const [year, month, day] = dateStr.split('-')\n return new Date(year, month - 1, day)\n }\n\n _formatDate(dateStr) {\n const date = this._parseDate(dateStr)\n const locale = this._config.locale === 'default' ? undefined : this._config.locale\n const { dateFormat } = this._config\n\n // Custom function formatter\n if (typeof dateFormat === 'function') {\n return dateFormat(date, locale)\n }\n\n // Intl.DateTimeFormat options object\n if (dateFormat && typeof dateFormat === 'object') {\n return new Intl.DateTimeFormat(locale, dateFormat).format(date)\n }\n\n // Default: locale-aware formatting\n return date.toLocaleDateString(locale)\n }\n\n _formatDateForInput(dates) {\n if (dates.length === 0) {\n return ''\n }\n\n if (dates.length === 1) {\n return this._formatDate(dates[0])\n }\n\n // For date ranges, use en-dash; for multiple dates, use comma\n const separator = this._config.selectionMode === 'multiple-ranged' ? ' – ' : ', '\n return dates.map(d => this._formatDate(d)).join(separator)\n }\n\n _parseInputValue() {\n // Try to parse the input value as a date\n const value = this._element.value.trim()\n if (!value) {\n return\n }\n\n const date = new Date(value)\n if (!Number.isNaN(date.getTime())) {\n const year = date.getFullYear()\n const month = String(date.getMonth() + 1).padStart(2, '0')\n const day = String(date.getDate()).padStart(2, '0')\n const formatted = `${year}-${month}-${day}`\n this._calendar.set({ selectedDates: [formatted] })\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // Only handle if not an input (inputs use focus)\n // Skip inline datepickers (they're always visible)\n if (this.tagName === 'INPUT' || this.dataset.bsInline === 'true') {\n return\n }\n\n event.preventDefault()\n Datepicker.getOrCreateInstance(this).toggle()\n})\n\nEventHandler.on(document, EVENT_FOCUSIN_DATA_API, SELECTOR_DATA_TOGGLE, function () {\n // Handle focus for input elements\n if (this.tagName !== 'INPUT') {\n return\n }\n\n Datepicker.getOrCreateInstance(this).show()\n})\n\n// Auto-initialize inline datepickers on DOMContentLoaded\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of document.querySelectorAll(`${SELECTOR_DATA_TOGGLE}[data-bs-inline=\"true\"]`)) {\n Datepicker.getOrCreateInstance(element)\n }\n})\n\nexport default Datepicker\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dialog-base.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst CLASS_NAME_OPEN = 'dialog-open'\n\n/**\n * Class definition\n *\n * Shared base class for Dialog and Drawer components that use\n * the native <dialog> element. Provides common behavior for:\n * - Show/hide/toggle lifecycle with events\n * - Opening/closing via showModal()/show()/close()\n * - Escape key handling (modal and non-modal)\n * - Backdrop click handling\n * - Static backdrop transition (\"bounce\")\n * - Body scroll prevention\n * - Transition coordination\n * - Child component cleanup (tooltips, popovers, toasts)\n */\n\nclass DialogBase extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._openedAsModal = false\n this._addDialogListeners()\n }\n\n // Getters — subclasses override NAME with their own component name.\n static get NAME() {\n return 'dialogbase'\n }\n\n // Public — shared lifecycle methods\n\n toggle(relatedTarget) {\n return this._element.open ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._element.open || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('show'),\n { relatedTarget }\n )\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isTransitioning = true\n this._onBeforeShow()\n\n const { modal, preventBodyScroll } = this._getShowOptions()\n this._showElement({ modal, preventBodyScroll })\n\n this._queueCallback(() => {\n this._isTransitioning = false\n EventHandler.trigger(\n this._element,\n this.constructor.eventName('shown'),\n { relatedTarget }\n )\n }, this._element, this._isAnimated())\n }\n\n hide() {\n if (!this._element.open || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('hide')\n )\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isTransitioning = true\n this._hideElement()\n\n this._queueCallback(() => {\n // For subclasses that defer close() until the exit transition ends\n // (so the dialog stays in the top layer with its ::backdrop), close()\n // happens here instead of in _hideElement().\n if (this._element.open) {\n this._closeAndCleanup()\n }\n\n this._element.classList.remove('hiding')\n this._onAfterHide()\n this._isTransitioning = false\n EventHandler.trigger(\n this._element,\n this.constructor.eventName('hidden')\n )\n }, this._element, this._isAnimated())\n }\n\n // Protected — hooks for subclasses to override\n\n _getShowOptions() {\n return { modal: true, preventBodyScroll: true }\n }\n\n _onBeforeShow() {\n // No-op by default — Dialog overrides to add nonmodal class\n }\n\n _onAfterHide() {\n // No-op by default — Dialog overrides to remove nonmodal class\n }\n\n _isAnimated() {\n return !this._element.classList.contains(this._getInstantClassName())\n }\n\n _getInstantClassName() {\n return 'dialog-instant'\n }\n\n _getStaticClassName() {\n return 'dialog-static'\n }\n\n _onCancel() {\n // No-op by default — Dialog overrides to fire cancel event\n }\n\n // Protected — shared mechanics\n\n _showElement({ modal = true, preventBodyScroll = true } = {}) {\n this._openedAsModal = modal\n\n if (modal) {\n this._element.showModal()\n } else {\n this._element.show()\n }\n\n if (preventBodyScroll) {\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n }\n\n _hideElement() {\n this._hideChildComponents()\n\n // Add .hiding before close() so CSS exit transitions can play.\n // Without this, the navbar's `:not([open])` transition-kill rule\n // would prevent the slide-out animation.\n this._element.classList.add('hiding')\n\n // Subclasses can defer close() until after the exit transition by\n // returning true from _shouldDeferClose(). This is needed for the\n // native modal <dialog> centered case: close() removes the dialog\n // from the top layer immediately, which strips its auto-centering\n // and the ::backdrop, breaking the exit animation.\n if (!this._shouldDeferClose()) {\n this._closeAndCleanup()\n }\n }\n\n // Closes the native <dialog> and tears down body-scroll prevention.\n // Safe to call multiple times — close() is a no-op on a closed dialog.\n _closeAndCleanup() {\n this._element.close()\n this._openedAsModal = false\n\n // Only restore body scroll if no other modal dialogs are open\n if (!document.querySelector('dialog[open]:modal')) {\n document.body.classList.remove(CLASS_NAME_OPEN)\n }\n }\n\n // Hook: return true to keep the dialog in the top layer (i.e., delay\n // calling close()) until the exit transition completes. The base class\n // closes synchronously; Dialog overrides this for animated modal cases.\n _shouldDeferClose() {\n return false\n }\n\n _triggerBackdropTransition() {\n const hidePreventedEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('hidePrevented')\n )\n\n if (hidePreventedEvent.defaultPrevented) {\n return\n }\n\n const staticClass = this._getStaticClassName()\n this._element.classList.add(staticClass)\n this._queueCallback(() => {\n this._element.classList.remove(staticClass)\n }, this._element)\n }\n\n // Hide any tooltips, popovers, or toasts inside the dialog before closing.\n // These components append to the dialog (for top-layer rendering) and would\n // otherwise persist visibly after close().\n _hideChildComponents() {\n const selector = '[data-bs-toggle=\"tooltip\"], [data-bs-toggle=\"popover\"]'\n\n for (const el of SelectorEngine.find(selector, this._element)) {\n const instance = Data.getAny(el)\n if (instance && typeof instance.hide === 'function') {\n instance.hide()\n }\n }\n\n // Hide any visible toasts\n for (const el of SelectorEngine.find('.toast.show', this._element)) {\n const instance = Data.getAny(el)\n if (instance && typeof instance.hide === 'function') {\n instance.hide()\n }\n }\n }\n\n // Private\n\n _addDialogListeners() {\n const eventKey = this.constructor.EVENT_KEY\n\n // Handle native cancel event (Escape key) — only fires for modal dialogs\n EventHandler.on(this._element, 'cancel', event => {\n event.preventDefault()\n\n if (!this._config.keyboard) {\n this._triggerBackdropTransition()\n return\n }\n\n this._onCancel()\n this.hide()\n })\n\n // Handle Escape key for non-modal dialogs (native cancel doesn't fire for show())\n EventHandler.on(this._element, `keydown${eventKey}`, event => {\n if (event.key !== 'Escape' || this._openedAsModal) {\n return\n }\n\n event.preventDefault()\n\n if (!this._config.keyboard) {\n return\n }\n\n this._onCancel()\n this.hide()\n })\n\n // Handle backdrop clicks — only applies to modal dialogs\n EventHandler.on(this._element, `click${eventKey}`, event => {\n if (event.target !== this._element || !this._openedAsModal) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n return\n }\n\n this.hide()\n })\n }\n}\n\nexport default DialogBase\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dialog.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport DialogBase from './dialog-base.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'dialog'\nconst DATA_KEY = 'bs.dialog'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CANCEL = `cancel${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_NONMODAL = 'dialog-nonmodal'\nconst CLASS_NAME_INSTANT = 'dialog-instant'\nconst CLASS_NAME_SWAP_IN = 'dialog-swap-in'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dialog\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n modal: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n modal: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Dialog extends DialogBase {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n handleUpdate() {\n // Provided for API consistency with Modal.\n }\n\n // Protected — hook overrides\n\n _getShowOptions() {\n return {\n modal: this._config.modal,\n preventBodyScroll: this._config.modal\n }\n }\n\n _onBeforeShow() {\n if (!this._config.modal) {\n this._element.classList.add(CLASS_NAME_NONMODAL)\n }\n }\n\n _onAfterHide() {\n this._element.classList.remove(CLASS_NAME_NONMODAL)\n }\n\n // Keep the dialog in the top layer until the exit transition ends. This\n // preserves the browser's modal centering and the native ::backdrop, both\n // of which disappear synchronously the moment close() is called. Without\n // this, the dialog would jump to the top of the page and the backdrop\n // blur would vanish instantly while the dialog faded — making the exit\n // animation appear to skip entirely.\n _shouldDeferClose() {\n return this._isAnimated()\n }\n\n _onCancel() {\n EventHandler.trigger(this._element, EVENT_CANCEL)\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n // Get config from trigger's data attributes\n const config = Manipulator.getDataAttributes(this)\n\n // Check if trigger is inside an open dialog (dialog swapping)\n const currentDialog = this.closest('dialog[open]')\n const shouldSwap = currentDialog && currentDialog !== target\n\n if (shouldSwap) {\n // Swap strategy (seamless backdrop, no flash):\n // 1. Mark the incoming dialog with .dialog-swap-in so its ::backdrop\n // skips the @starting-style fade-in and appears fully opaque on\n // its very first frame in the top layer.\n // 2. Open the incoming dialog (showModal).\n // 3. Close the outgoing dialog synchronously — no exit transition, no\n // .hiding — so its ::backdrop is removed in the same frame the\n // incoming dialog's backdrop appears. Since both backdrops render\n // the same color, the user sees one continuous backdrop. Two\n // simultaneously-visible backdrops would composite to ~75% darker,\n // and a fading-out + fading-in pair would dip to ~75% opacity —\n // either would look like a flash.\n // 4. Clean up the .dialog-swap-in flag once the incoming dialog\n // finishes its entry transition.\n const newDialog = Dialog.getOrCreateInstance(target, config)\n target.classList.add(CLASS_NAME_SWAP_IN)\n newDialog.show(this)\n EventHandler.one(target, `shown${EVENT_KEY}`, () => {\n target.classList.remove(CLASS_NAME_SWAP_IN)\n })\n\n const currentInstance = Dialog.getInstance(currentDialog)\n if (currentInstance) {\n // Force synchronous close: .dialog-instant makes _isAnimated() false,\n // which makes _shouldDeferClose() false, so hide() calls close()\n // immediately (no deferred .hiding path). The class is removed after\n // the (now-synchronous) hidden event fires.\n currentDialog.classList.add(CLASS_NAME_INSTANT)\n EventHandler.one(currentDialog, EVENT_HIDDEN, () => {\n currentDialog.classList.remove(CLASS_NAME_INSTANT)\n })\n currentInstance.hide()\n }\n\n return\n }\n\n const data = Dialog.getOrCreateInstance(target, config)\n data.toggle(this)\n})\n\nenableDismissTrigger(Dialog)\n\nexport default Dialog\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap nav-overflow.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'navoverflow'\nconst DATA_KEY = 'bs.navoverflow'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_UPDATE = `update${EVENT_KEY}`\nconst EVENT_OVERFLOW = `overflow${EVENT_KEY}`\n\nconst CLASS_NAME_OVERFLOW = 'nav-overflow'\nconst CLASS_NAME_OVERFLOW_MENU = 'nav-overflow-menu'\nconst CLASS_NAME_HIDDEN = 'd-none'\n\nconst SELECTOR_NAV_ITEM = '.nav-item'\nconst SELECTOR_NAV_LINK = '.nav-link'\nconst SELECTOR_OVERFLOW_TOGGLE = '.nav-overflow-toggle'\nconst SELECTOR_OVERFLOW_MENU = '.nav-overflow-menu'\nconst SELECTOR_CUSTOM_ICON = '[data-bs-overflow-icon]'\nconst CLASS_NAME_KEEP = 'nav-overflow-keep'\n\nconst Default = {\n collapseBelow: 0,\n iconPlacement: 'start',\n menuPlacement: 'bottom-end',\n moreText: 'More',\n moreIcon: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" viewBox=\"0 0 16 16\"><path d=\"M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3\"/></svg>',\n threshold: 0 // Minimum items to keep visible before showing overflow\n}\n\nconst DefaultType = {\n collapseBelow: '(number|string)',\n iconPlacement: 'string',\n menuPlacement: 'string',\n moreText: 'string',\n moreIcon: 'string',\n threshold: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass NavOverflow extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._items = []\n this._overflowItems = []\n this._overflowMenu = null\n this._overflowToggle = null\n this._resizeObserver = null\n this._collapseBelow = 0\n this._isInitialized = false\n\n this._init()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n update() {\n this._calculateOverflow()\n EventHandler.trigger(this._element, EVENT_UPDATE)\n }\n\n dispose() {\n if (this._resizeObserver) {\n this._resizeObserver.disconnect()\n }\n\n // Move items back to original positions\n this._restoreItems()\n\n // Remove overflow menu\n if (this._overflowToggle && this._overflowToggle.parentElement) {\n this._overflowToggle.parentElement.remove()\n }\n\n super.dispose()\n }\n\n // Private\n _init() {\n // Add overflow class to nav\n this._element.classList.add(CLASS_NAME_OVERFLOW)\n\n // Get all nav items\n this._items = [...SelectorEngine.find(SELECTOR_NAV_ITEM, this._element)]\n\n // Store original order data\n for (const [index, item] of this._items.entries()) {\n item.dataset.bsNavOrder = index\n }\n\n // Resolve collapseBelow threshold once\n this._collapseBelow = this._resolveCollapseBelow()\n\n // Create overflow menu if it doesn't exist\n this._createOverflowMenu()\n\n // Setup resize observer\n this._setupResizeObserver()\n\n // Initial calculation\n this._calculateOverflow()\n\n this._isInitialized = true\n }\n\n _createOverflowMenu() {\n // Check if overflow menu already exists\n this._overflowToggle = SelectorEngine.findOne(SELECTOR_OVERFLOW_TOGGLE, this._element)\n\n if (this._overflowToggle) {\n this._overflowMenu = SelectorEngine.findOne(SELECTOR_OVERFLOW_MENU, this._element)\n return\n }\n\n const iconHtml = this._resolveIcon()\n const iconSpan = `<span class=\"nav-overflow-icon\">${iconHtml}</span>`\n const textSpan = `<span class=\"nav-overflow-text\">${this._config.moreText}</span>`\n const toggleContent = this._config.iconPlacement === 'end' ?\n `${textSpan}${iconSpan}` :\n `${iconSpan}${textSpan}`\n\n const overflowItem = document.createElement('li')\n overflowItem.className = 'nav-item nav-overflow-item'\n overflowItem.innerHTML = `\n <button class=\"nav-link nav-overflow-toggle\" type=\"button\" data-bs-toggle=\"menu\" data-bs-placement=\"${this._config.menuPlacement}\" aria-expanded=\"false\">\n ${toggleContent}\n </button>\n <div class=\"${CLASS_NAME_OVERFLOW_MENU} menu\"></div>\n `\n\n this._element.append(overflowItem)\n this._overflowToggle = overflowItem.querySelector(SELECTOR_OVERFLOW_TOGGLE)\n this._overflowMenu = overflowItem.querySelector(SELECTOR_OVERFLOW_MENU)\n }\n\n _resolveIcon() {\n const customIconElement = SelectorEngine.findOne(SELECTOR_CUSTOM_ICON, this._element)\n\n if (!customIconElement) {\n return this._config.moreIcon\n }\n\n const iconClone = customIconElement.cloneNode(true)\n iconClone.removeAttribute('data-bs-overflow-icon')\n const iconHtml = iconClone.outerHTML\n\n customIconElement.remove()\n\n return iconHtml\n }\n\n _resolveCollapseBelow() {\n const value = this._config.collapseBelow\n\n if (typeof value === 'number') {\n return value\n }\n\n if (typeof value === 'string' && value !== '') {\n const cssValue = getComputedStyle(document.documentElement)\n .getPropertyValue(`--bs-breakpoint-${value}`)\n return Number.parseFloat(cssValue) || 0\n }\n\n return 0\n }\n\n _setupResizeObserver() {\n if (typeof ResizeObserver === 'undefined') {\n // Fallback for older browsers\n EventHandler.on(window, 'resize', () => this._calculateOverflow())\n return\n }\n\n this._resizeObserver = new ResizeObserver(() => {\n this._calculateOverflow()\n })\n\n this._resizeObserver.observe(this._element)\n }\n\n _calculateOverflow() {\n // First, restore all items to measure properly\n this._restoreItems()\n\n const navWidth = this._element.offsetWidth\n const overflowItem = this._overflowToggle?.closest('.nav-item')\n\n // When below the collapseBelow threshold, force all items into overflow\n if (this._collapseBelow > 0 && navWidth < this._collapseBelow) {\n const itemsToOverflow = this._items.filter(\n item => !item.classList.contains(CLASS_NAME_KEEP)\n )\n\n this._moveToOverflow(itemsToOverflow)\n\n if (overflowItem) {\n if (itemsToOverflow.length > 0) {\n overflowItem.classList.remove(CLASS_NAME_HIDDEN)\n } else {\n overflowItem.classList.add(CLASS_NAME_HIDDEN)\n }\n }\n\n if (itemsToOverflow.length > 0) {\n EventHandler.trigger(this._element, EVENT_OVERFLOW, {\n overflowCount: itemsToOverflow.length,\n visibleCount: this._items.length - itemsToOverflow.length\n })\n }\n\n return\n }\n\n const overflowWidth = overflowItem?.offsetWidth || 0\n\n // Keep items are always visible; subtract their widths so the threshold\n // reflects actual available space for non-keep items.\n const keepWidth = this._items\n .filter(item => item.classList.contains(CLASS_NAME_KEEP))\n .reduce((sum, item) => sum + item.offsetWidth, 0)\n\n let usedWidth = 0\n const itemsToOverflow = []\n const overflowThreshold = navWidth - overflowWidth - keepWidth - 10 // 10px buffer\n\n // Calculate which items need to overflow (skip items with keep class)\n for (const item of this._items) {\n // Never overflow items with the keep class\n if (item.classList.contains(CLASS_NAME_KEEP)) {\n continue\n }\n\n usedWidth += item.offsetWidth\n\n if (usedWidth > overflowThreshold) {\n itemsToOverflow.push(item)\n }\n }\n\n // Check if we need threshold minimum visible\n const visibleCount = this._items.length - itemsToOverflow.length\n if (visibleCount < this._config.threshold && this._items.length > this._config.threshold) {\n // Add more items to overflow until we reach threshold (but not keep items)\n const toMove = this._items.slice(this._config.threshold).filter(item => !item.classList.contains(CLASS_NAME_KEEP))\n itemsToOverflow.length = 0\n itemsToOverflow.push(...toMove)\n }\n\n // Move items to overflow menu\n this._moveToOverflow(itemsToOverflow)\n\n // Show/hide overflow toggle\n if (overflowItem) {\n if (itemsToOverflow.length > 0) {\n overflowItem.classList.remove(CLASS_NAME_HIDDEN)\n } else {\n overflowItem.classList.add(CLASS_NAME_HIDDEN)\n }\n }\n\n // Trigger overflow event if items changed\n if (itemsToOverflow.length > 0) {\n EventHandler.trigger(this._element, EVENT_OVERFLOW, {\n overflowCount: itemsToOverflow.length,\n visibleCount: this._items.length - itemsToOverflow.length\n })\n }\n }\n\n _moveToOverflow(items) {\n if (!this._overflowMenu) {\n return\n }\n\n // Clear existing overflow items\n this._overflowMenu.innerHTML = ''\n this._overflowItems = []\n\n for (const item of items) {\n const link = SelectorEngine.findOne(SELECTOR_NAV_LINK, item)\n if (!link) {\n continue\n }\n\n const clonedLink = link.cloneNode(true)\n clonedLink.className = 'menu-item'\n\n if (link.classList.contains('active')) {\n clonedLink.classList.add('active')\n }\n\n if (link.classList.contains('disabled') || link.hasAttribute('disabled')) {\n clonedLink.classList.add('disabled')\n }\n\n this._overflowMenu.append(clonedLink)\n\n // Hide original item\n item.classList.add(CLASS_NAME_HIDDEN)\n item.dataset.bsNavOverflow = 'true'\n\n this._overflowItems.push(item)\n }\n }\n\n _restoreItems() {\n for (const item of this._items) {\n item.classList.remove(CLASS_NAME_HIDDEN)\n delete item.dataset.bsNavOverflow\n }\n\n if (this._overflowMenu) {\n this._overflowMenu.innerHTML = ''\n }\n\n this._overflowItems = []\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, 'DOMContentLoaded', () => {\n for (const element of SelectorEngine.find('[data-bs-toggle=\"nav-overflow\"]')) {\n NavOverflow.getOrCreateInstance(element)\n }\n})\n\nexport default NavOverflow\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport Config from './config.js'\nimport { execute } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'swipe'\nconst EVENT_KEY = '.bs.swipe'\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null,\n upCallback: null,\n downCallback: null\n}\n\nconst DefaultType = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)',\n upCallback: '(function|null)',\n downCallback: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super()\n this._element = element\n\n if (!element || !Swipe.isSupported()) {\n return\n }\n\n this._config = this._getConfig(config)\n this._deltaX = 0\n this._deltaY = 0\n this._supportPointerEvents = Boolean(window.PointerEvent)\n this._initEvents()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX\n this._deltaY = event.touches[0].clientY\n\n return\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX\n this._deltaY = event.clientY\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX\n this._deltaY = event.clientY - this._deltaY\n }\n\n this._handleSwipe()\n execute(this._config.endCallback)\n }\n\n _move(event) {\n if (event.touches && event.touches.length > 1) {\n this._deltaX = 0\n this._deltaY = 0\n return\n }\n\n this._deltaX = event.touches[0].clientX - this._deltaX\n this._deltaY = event.touches[0].clientY - this._deltaY\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX)\n const absDeltaY = Math.abs(this._deltaY)\n\n // Determine primary axis: whichever has greater movement wins\n if (absDeltaY > absDeltaX && absDeltaY > SWIPE_THRESHOLD) {\n // Vertical swipe\n const direction = this._deltaY > 0 ? 'down' : 'up'\n this._deltaX = 0\n this._deltaY = 0\n execute(direction === 'down' ? this._config.downCallback : this._config.upCallback)\n return\n }\n\n if (absDeltaX > SWIPE_THRESHOLD) {\n // Horizontal swipe\n const direction = absDeltaX / this._deltaX\n this._deltaX = 0\n this._deltaY = 0\n\n if (!direction) {\n return\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback)\n return\n }\n\n this._deltaX = 0\n this._deltaY = 0\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event))\n }\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n }\n}\n\nexport default Swipe\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap drawer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport DialogBase from './dialog-base.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Swipe from './util/swipe.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport {\n isDisabled,\n isRTL,\n isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'drawer'\nconst DATA_KEY = 'bs.drawer'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"drawer\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Drawer extends DialogBase {\n constructor(element, config) {\n super(element, config)\n this._swipeHelper = null\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Protected — hook overrides\n\n _getShowOptions() {\n const useModal = Boolean(this._config.backdrop) || !this._config.scroll\n return {\n modal: useModal,\n preventBodyScroll: !this._config.scroll\n }\n }\n\n _onBeforeShow() {\n this._initSwipe()\n }\n\n _getInstantClassName() {\n return 'drawer-instant'\n }\n\n _getStaticClassName() {\n return 'drawer-static'\n }\n\n // Private\n\n _initSwipe() {\n if (this._swipeHelper || !Swipe.isSupported()) {\n return\n }\n\n // Determine which swipe direction dismisses based on placement\n const swipeConfig = {}\n const element = this._element\n\n if (element.classList.contains('drawer-bottom')) {\n swipeConfig.downCallback = () => this.hide()\n } else if (element.classList.contains('drawer-top')) {\n swipeConfig.upCallback = () => this.hide()\n } else if (element.classList.contains('drawer-end')) {\n // RTL: swipe left to dismiss end drawer\n if (isRTL()) {\n swipeConfig.leftCallback = () => this.hide()\n } else {\n swipeConfig.rightCallback = () => this.hide()\n }\n } else if (isRTL()) {\n // drawer-start (default): swipe right to dismiss in RTL\n swipeConfig.rightCallback = () => this.hide()\n } else {\n // drawer-start (default): swipe left to dismiss in LTR\n swipeConfig.leftCallback = () => this.hide()\n }\n\n this._swipeHelper = new Swipe(element, swipeConfig)\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n\n // Avoid conflict when clicking a toggler of a drawer, while another is open\n const alreadyOpen = SelectorEngine.findOne('dialog.drawer[open]')\n if (alreadyOpen && alreadyOpen !== target) {\n Drawer.getInstance(alreadyOpen).hide()\n }\n\n const data = Drawer.getOrCreateInstance(target)\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const selector of SelectorEngine.find('dialog.drawer[open]')) {\n Drawer.getOrCreateInstance(selector).show()\n }\n})\n\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('dialog[open][class*=\"\\\\:drawer\"]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Drawer.getOrCreateInstance(element).hide()\n }\n }\n})\n\nenableDismissTrigger(Drawer)\n\nexport default Drawer\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap strength.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'strength'\nconst DATA_KEY = 'bs.strength'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_STRENGTH_CHANGE = `strengthChange${EVENT_KEY}`\n\nconst SELECTOR_DATA_STRENGTH = '[data-bs-strength]'\n\nconst STRENGTH_LEVELS = ['weak', 'fair', 'good', 'strong']\n\nconst Default = {\n input: null, // Selector or element for password input\n minLength: 8,\n messages: {\n weak: 'Weak',\n fair: 'Fair',\n good: 'Good',\n strong: 'Strong'\n },\n weights: {\n minLength: 1,\n extraLength: 1,\n lowercase: 1,\n uppercase: 1,\n numbers: 1,\n special: 1,\n multipleSpecial: 1,\n longPassword: 1\n },\n thresholds: [2, 4, 6], // weak ≤2, fair ≤4, good ≤6, strong >6\n scorer: null // Custom scoring function (password) => number\n}\n\nconst DefaultType = {\n input: '(string|element|null)',\n minLength: 'number',\n messages: 'object',\n weights: 'object',\n thresholds: 'array',\n scorer: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Strength extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = this._getInput()\n this._segments = SelectorEngine.find('.strength-segment', this._element)\n this._textElement = SelectorEngine.findOne('.strength-text', this._element.parentElement)\n this._currentStrength = null\n\n if (this._input) {\n this._addEventListeners()\n // Check initial value\n this._evaluate()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getStrength() {\n return this._currentStrength\n }\n\n evaluate() {\n this._evaluate()\n }\n\n // Private\n _getInput() {\n if (this._config.input) {\n return typeof this._config.input === 'string' ?\n SelectorEngine.findOne(this._config.input) :\n this._config.input\n }\n\n // Look for preceding password input\n const parent = this._element.parentElement\n return SelectorEngine.findOne('input[type=\"password\"]', parent)\n }\n\n _addEventListeners() {\n EventHandler.on(this._input, 'input', () => this._evaluate())\n EventHandler.on(this._input, 'change', () => this._evaluate())\n }\n\n _evaluate() {\n const password = this._input.value\n const score = this._calculateScore(password)\n const strength = this._scoreToStrength(score)\n\n if (strength !== this._currentStrength) {\n this._currentStrength = strength\n this._updateUI(strength, score)\n\n EventHandler.trigger(this._element, EVENT_STRENGTH_CHANGE, {\n strength,\n score,\n password: password.length > 0 ? '***' : '' // Don't expose actual password\n })\n }\n }\n\n _calculateScore(password) {\n if (!password) {\n return 0\n }\n\n // Use custom scorer if provided\n if (typeof this._config.scorer === 'function') {\n return this._config.scorer(password)\n }\n\n const { weights } = this._config\n let score = 0\n\n // Length scoring\n if (password.length >= this._config.minLength) {\n score += weights.minLength\n }\n\n if (password.length >= this._config.minLength + 4) {\n score += weights.extraLength\n }\n\n // Character variety\n if (/[a-z]/.test(password)) {\n score += weights.lowercase\n }\n\n if (/[A-Z]/.test(password)) {\n score += weights.uppercase\n }\n\n if (/\\d/.test(password)) {\n score += weights.numbers\n }\n\n // Special characters\n if (/[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n score += weights.special\n }\n\n // Extra points for more special chars or length\n if (/[!@#$%^&*(),.?\":{}|<>].*[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n score += weights.multipleSpecial\n }\n\n if (password.length >= 16) {\n score += weights.longPassword\n }\n\n return score\n }\n\n _scoreToStrength(score) {\n if (score === 0) {\n return null\n }\n\n const [weak, fair, good] = this._config.thresholds\n\n if (score <= weak) {\n return 'weak'\n }\n\n if (score <= fair) {\n return 'fair'\n }\n\n if (score <= good) {\n return 'good'\n }\n\n return 'strong'\n }\n\n _updateUI(strength) {\n // Update data attribute on element\n if (strength) {\n this._element.dataset.bsStrength = strength\n } else {\n delete this._element.dataset.bsStrength\n }\n\n // Update segmented meter\n const strengthIndex = strength ? STRENGTH_LEVELS.indexOf(strength) : -1\n\n for (const [index, segment] of this._segments.entries()) {\n if (index <= strengthIndex) {\n segment.classList.add('active')\n } else {\n segment.classList.remove('active')\n }\n }\n\n // Update text feedback\n if (this._textElement) {\n if (strength && this._config.messages[strength]) {\n this._textElement.textContent = this._config.messages[strength]\n this._textElement.dataset.bsStrength = strength\n\n // Also set the color via inheriting from parent or using CSS variable\n const colorMap = {\n weak: 'danger',\n fair: 'warning',\n good: 'info',\n strong: 'success'\n }\n this._textElement.style.setProperty('--strength-color', `var(--${colorMap[strength]}-text)`)\n } else {\n this._textElement.textContent = ''\n delete this._textElement.dataset.bsStrength\n }\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_STRENGTH)) {\n Strength.getOrCreateInstance(element)\n }\n})\n\nexport default Strength\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap otp-input.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'otpInput'\nconst DATA_KEY = 'bs.otpInput'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_COMPLETE = `complete${EVENT_KEY}`\nconst EVENT_INPUT = `input${EVENT_KEY}`\nconst EVENT_DOMCONTENT_LOADED = `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_OTP = '[data-bs-otp]'\nconst SELECTOR_INPUT = 'input'\n\n// Events that should refresh the active-slot highlight as the caret moves\nconst SYNC_EVENTS = ['blur', 'keyup', 'click', 'select']\n\nconst CLASS_NAME_INPUT = 'otp-input'\nconst CLASS_NAME_RENDERED = 'otp-rendered'\nconst CLASS_NAME_SLOTS = 'otp-slots'\nconst CLASS_NAME_SLOT = 'otp-slot'\nconst CLASS_NAME_SLOT_FILLED = 'otp-slot-filled'\nconst CLASS_NAME_SLOT_ACTIVE = 'otp-slot-active'\nconst CLASS_NAME_SEPARATOR = 'otp-separator'\n\nconst MASK_CHARACTER = '•'\n\n// Per-type input mode, validation pattern, and a filter that strips disallowed characters\nconst TYPES = {\n numeric: { inputmode: 'numeric', pattern: '[0-9]*', filter: /[^0-9]/g },\n alphanumeric: { inputmode: 'text', pattern: '[A-Za-z0-9]*', filter: /[^A-Za-z0-9]/g },\n alpha: { inputmode: 'text', pattern: '[A-Za-z]*', filter: /[^A-Za-z]/g }\n}\n\nconst Default = {\n groups: null,\n length: null,\n mask: false,\n separator: '·',\n type: 'numeric'\n}\n\nconst DefaultType = {\n groups: '(array|null)',\n length: '(number|null)',\n mask: 'boolean',\n separator: 'string',\n type: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass OtpInput extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = SelectorEngine.findOne(SELECTOR_INPUT, this._element)\n if (!this._input) {\n return\n }\n\n this._type = TYPES[this._config.type] || TYPES.numeric\n this._length = this._resolveLength()\n this._slots = []\n\n this._setupInput()\n this._renderSlots()\n this._addEventListeners()\n this._render()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getValue() {\n return this._input.value\n }\n\n setValue(value) {\n this._input.value = this._sanitize(String(value))\n this._render()\n this._checkComplete()\n }\n\n clear() {\n this._input.value = ''\n this._render()\n this._input.focus()\n }\n\n focus() {\n this._input.focus()\n // Place the caret after the last entered character\n const end = this._input.value.length\n this._input.setSelectionRange(end, end)\n this._render()\n }\n\n dispose() {\n EventHandler.off(this._input, 'input', this._onInput)\n EventHandler.off(this._input, 'focus', this._onFocus)\n for (const type of SYNC_EVENTS) {\n EventHandler.off(this._input, type, this._onSync)\n }\n\n this._slotsContainer?.remove()\n this._element.classList.remove(CLASS_NAME_RENDERED)\n super.dispose()\n }\n\n // Private\n _resolveLength() {\n if (this._config.length) {\n return this._config.length\n }\n\n const maxLength = Number.parseInt(this._input.getAttribute('maxlength'), 10)\n return Number.isNaN(maxLength) || maxLength < 1 ? 6 : maxLength\n }\n\n _setupInput() {\n const input = this._input\n\n // A single text field backs the whole control so screen readers, password\n // managers, and SMS autofill treat it like any other input.\n if (input.type === 'number' || input.type === 'password') {\n input.type = 'text'\n }\n\n input.classList.add(CLASS_NAME_INPUT)\n input.setAttribute('maxlength', String(this._length))\n input.setAttribute('inputmode', this._type.inputmode)\n input.setAttribute('pattern', this._type.pattern)\n\n if (!input.getAttribute('autocomplete')) {\n input.setAttribute('autocomplete', 'one-time-code')\n }\n\n // Filter any pre-filled value through the configured type\n if (input.value) {\n input.value = this._sanitize(input.value)\n }\n }\n\n _renderSlots() {\n const container = document.createElement('div')\n container.className = CLASS_NAME_SLOTS\n container.setAttribute('aria-hidden', 'true')\n\n const { groups } = this._config\n let groupIndex = 0\n let inGroup = 0\n\n for (let i = 0; i < this._length; i++) {\n const slot = document.createElement('div')\n slot.className = CLASS_NAME_SLOT\n container.append(slot)\n this._slots.push(slot)\n\n // Insert a visual separator between configured groups\n if (Array.isArray(groups) && groups.length > 0) {\n inGroup++\n if (inGroup === groups[groupIndex] && i < this._length - 1) {\n const separator = document.createElement('div')\n separator.className = CLASS_NAME_SEPARATOR\n separator.textContent = this._config.separator\n container.append(separator)\n groupIndex = Math.min(groupIndex + 1, groups.length - 1)\n inGroup = 0\n }\n }\n }\n\n this._slotsContainer = container\n this._element.append(container)\n this._element.classList.add(CLASS_NAME_RENDERED)\n }\n\n _addEventListeners() {\n // Listeners are attached with bare event names (not namespaced) because\n // `input` is not in EventHandler's native-events list; we keep references\n // so they can be removed on dispose.\n this._onInput = () => this._handleInput()\n this._onFocus = () => this.focus()\n this._onSync = () => this._render()\n\n EventHandler.on(this._input, 'input', this._onInput)\n EventHandler.on(this._input, 'focus', this._onFocus)\n\n // Keep the active-slot highlight in sync with the caret\n for (const type of SYNC_EVENTS) {\n EventHandler.on(this._input, type, this._onSync)\n }\n }\n\n _handleInput() {\n const sanitized = this._sanitize(this._input.value)\n if (sanitized !== this._input.value) {\n this._input.value = sanitized\n }\n\n this._render()\n\n EventHandler.trigger(this._element, EVENT_INPUT, { value: this._input.value })\n\n this._checkComplete()\n }\n\n _sanitize(value) {\n return value.replace(this._type.filter, '').slice(0, this._length)\n }\n\n _render() {\n const { value } = this._input\n const isFocused = document.activeElement === this._input\n // The active slot follows the caret, clamped to the last slot when the value is full\n const caret = Math.min(this._input.selectionStart ?? value.length, this._length - 1)\n\n for (const [index, slot] of this._slots.entries()) {\n const char = value[index] ?? ''\n slot.textContent = char && this._config.mask ? MASK_CHARACTER : char\n slot.classList.toggle(CLASS_NAME_SLOT_FILLED, Boolean(char))\n slot.classList.toggle(CLASS_NAME_SLOT_ACTIVE, isFocused && index === caret)\n }\n }\n\n _checkComplete() {\n const { value } = this._input\n if (value.length === this._length) {\n EventHandler.trigger(this._element, EVENT_COMPLETE, { value })\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_DOMCONTENT_LOADED, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_OTP)) {\n OtpInput.getOrCreateInstance(element)\n }\n})\n\nexport default OtpInput\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap chips.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'chips'\nconst DATA_KEY = 'bs.chips'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ADD = `add${EVENT_KEY}`\nconst EVENT_REMOVE = `remove${EVENT_KEY}`\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SELECT = `select${EVENT_KEY}`\n\nconst SELECTOR_DATA_CHIPS = '[data-bs-chips]'\nconst SELECTOR_GHOST_INPUT = '.form-ghost'\nconst SELECTOR_CHIP = '.chip'\nconst SELECTOR_CHIP_DISMISS = '.chip-dismiss'\n\nconst CLASS_NAME_CHIP = 'chip'\nconst CLASS_NAME_CHIP_DISMISS = 'chip-dismiss'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst DEFAULT_DISMISS_ICON = '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><line x1=\"4\" y1=\"4\" x2=\"12\" y2=\"12\"/><line x1=\"12\" y1=\"4\" x2=\"4\" y2=\"12\"/></svg>'\n\nconst Default = {\n separator: ',',\n allowDuplicates: false,\n maxChips: null,\n placeholder: '',\n dismissible: true,\n dismissIcon: DEFAULT_DISMISS_ICON,\n createOnBlur: true\n}\n\nconst DefaultType = {\n separator: '(string|null)',\n allowDuplicates: 'boolean',\n maxChips: '(number|null)',\n placeholder: 'string',\n dismissible: 'boolean',\n dismissIcon: 'string',\n createOnBlur: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Chips extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = SelectorEngine.findOne(SELECTOR_GHOST_INPUT, this._element)\n this._chips = []\n this._selectedChips = new Set()\n this._anchorChip = null // For shift+click range selection\n\n if (!this._input) {\n this._createInput()\n }\n\n this._initializeExistingChips()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n add(value) {\n const trimmedValue = String(value).trim()\n\n if (!trimmedValue) {\n return null\n }\n\n // Check for duplicates\n if (!this._config.allowDuplicates && this._chips.includes(trimmedValue)) {\n return null\n }\n\n // Check max chips limit\n if (this._config.maxChips !== null && this._chips.length >= this._config.maxChips) {\n return null\n }\n\n const addEvent = EventHandler.trigger(this._element, EVENT_ADD, {\n value: trimmedValue,\n relatedTarget: this._input\n })\n\n if (addEvent.defaultPrevented) {\n return null\n }\n\n const chip = this._createChip(trimmedValue)\n this._element.insertBefore(chip, this._input)\n this._chips.push(trimmedValue)\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: this.getValues()\n })\n\n return chip\n }\n\n remove(chipOrValue) {\n let chip\n let value\n\n if (typeof chipOrValue === 'string') {\n value = chipOrValue\n chip = this._findChipByValue(value)\n } else {\n chip = chipOrValue\n value = this._getChipValue(chip)\n }\n\n if (!chip || !value) {\n return false\n }\n\n const removeEvent = EventHandler.trigger(this._element, EVENT_REMOVE, {\n value,\n chip,\n relatedTarget: this._input\n })\n\n if (removeEvent.defaultPrevented) {\n return false\n }\n\n // Remove from selection\n this._selectedChips.delete(chip)\n if (this._anchorChip === chip) {\n this._anchorChip = null\n }\n\n // Remove from DOM and array\n chip.remove()\n this._chips = this._chips.filter(v => v !== value)\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: this.getValues()\n })\n\n return true\n }\n\n removeSelected() {\n const chipsToRemove = [...this._selectedChips]\n for (const chip of chipsToRemove) {\n this.remove(chip)\n }\n\n this._input?.focus()\n }\n\n getValues() {\n return [...this._chips]\n }\n\n getSelectedValues() {\n return [...this._selectedChips].map(chip => this._getChipValue(chip))\n }\n\n clear() {\n const chips = SelectorEngine.find(SELECTOR_CHIP, this._element)\n for (const chip of chips) {\n chip.remove()\n }\n\n this._chips = []\n this._selectedChips.clear()\n this._anchorChip = null\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: []\n })\n }\n\n clearSelection() {\n for (const chip of this._selectedChips) {\n chip.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n this._selectedChips.clear()\n this._anchorChip = null\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: []\n })\n }\n\n selectChip(chip, options = {}) {\n const { addToSelection = false, rangeSelect = false } = options\n const chipElements = this._getChipElements()\n\n if (!chipElements.includes(chip)) {\n return\n }\n\n if (rangeSelect && this._anchorChip) {\n // Range selection from anchor to chip\n const anchorIndex = chipElements.indexOf(this._anchorChip)\n const chipIndex = chipElements.indexOf(chip)\n const start = Math.min(anchorIndex, chipIndex)\n const end = Math.max(anchorIndex, chipIndex)\n\n if (!addToSelection) {\n this.clearSelection()\n }\n\n for (let i = start; i <= end; i++) {\n this._selectedChips.add(chipElements[i])\n chipElements[i].classList.add(CLASS_NAME_ACTIVE)\n }\n } else if (addToSelection) {\n // Toggle selection\n if (this._selectedChips.has(chip)) {\n this._selectedChips.delete(chip)\n chip.classList.remove(CLASS_NAME_ACTIVE)\n } else {\n this._selectedChips.add(chip)\n chip.classList.add(CLASS_NAME_ACTIVE)\n this._anchorChip = chip\n }\n } else {\n // Single selection\n this.clearSelection()\n this._selectedChips.add(chip)\n chip.classList.add(CLASS_NAME_ACTIVE)\n this._anchorChip = chip\n }\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: this.getSelectedValues()\n })\n }\n\n focus() {\n this._input?.focus()\n }\n\n // Private\n _getChipElements() {\n return SelectorEngine.find(SELECTOR_CHIP, this._element)\n }\n\n _createInput() {\n const input = document.createElement('input')\n input.type = 'text'\n input.className = 'form-ghost'\n if (this._config.placeholder) {\n input.placeholder = this._config.placeholder\n }\n\n this._element.append(input)\n this._input = input\n }\n\n _initializeExistingChips() {\n const existingChips = SelectorEngine.find(SELECTOR_CHIP, this._element)\n for (const chip of existingChips) {\n const value = this._getChipValue(chip)\n if (value) {\n this._chips.push(value)\n this._setupChip(chip)\n }\n }\n }\n\n _setupChip(chip) {\n // Make chip focusable\n chip.setAttribute('tabindex', '0')\n\n // Add dismiss button if needed\n if (this._config.dismissible && !SelectorEngine.findOne(SELECTOR_CHIP_DISMISS, chip)) {\n chip.append(this._createDismissButton())\n }\n }\n\n _createChip(value) {\n const chip = document.createElement('span')\n chip.className = CLASS_NAME_CHIP\n chip.dataset.bsChipValue = value\n\n // Add text node\n chip.append(document.createTextNode(value))\n\n // Setup chip (tabindex, dismiss button)\n this._setupChip(chip)\n\n return chip\n }\n\n _createDismissButton() {\n const button = document.createElement('button')\n button.type = 'button'\n button.className = CLASS_NAME_CHIP_DISMISS\n button.setAttribute('aria-label', 'Remove')\n button.setAttribute('tabindex', '-1') // Not in tab order, chips handle keyboard\n button.innerHTML = this._config.dismissIcon\n return button\n }\n\n _findChipByValue(value) {\n const chips = this._getChipElements()\n return chips.find(chip => this._getChipValue(chip) === value)\n }\n\n _getChipValue(chip) {\n if (chip.dataset.bsChipValue) {\n return chip.dataset.bsChipValue\n }\n\n const clone = chip.cloneNode(true)\n const dismiss = SelectorEngine.findOne(SELECTOR_CHIP_DISMISS, clone)\n if (dismiss) {\n dismiss.remove()\n }\n\n return clone.textContent?.trim() || ''\n }\n\n _addEventListeners() {\n // Input events\n EventHandler.on(this._input, 'keydown', event => this._handleInputKeydown(event))\n EventHandler.on(this._input, 'input', event => this._handleInput(event))\n EventHandler.on(this._input, 'paste', event => this._handlePaste(event))\n EventHandler.on(this._input, 'focus', () => this.clearSelection())\n\n if (this._config.createOnBlur) {\n EventHandler.on(this._input, 'blur', event => {\n // Don't create chip if clicking on a chip\n if (!event.relatedTarget?.closest(SELECTOR_CHIP)) {\n this._createChipFromInput()\n }\n })\n }\n\n // Chip click events (delegated)\n EventHandler.on(this._element, 'click', SELECTOR_CHIP, event => {\n // Ignore clicks on dismiss button\n if (event.target.closest(SELECTOR_CHIP_DISMISS)) {\n return\n }\n\n const chip = event.target.closest(SELECTOR_CHIP)\n if (chip) {\n event.preventDefault()\n this.selectChip(chip, {\n addToSelection: event.metaKey || event.ctrlKey,\n rangeSelect: event.shiftKey\n })\n chip.focus()\n }\n })\n\n // Dismiss button clicks (delegated)\n EventHandler.on(this._element, 'click', SELECTOR_CHIP_DISMISS, event => {\n event.stopPropagation()\n const chip = event.target.closest(SELECTOR_CHIP)\n if (chip) {\n this.remove(chip)\n this._input?.focus()\n }\n })\n\n // Chip keyboard events (delegated)\n EventHandler.on(this._element, 'keydown', SELECTOR_CHIP, event => {\n this._handleChipKeydown(event)\n })\n\n // Focus input when clicking container background\n EventHandler.on(this._element, 'click', event => {\n if (event.target === this._element) {\n this.clearSelection()\n this._input?.focus()\n }\n })\n }\n\n _handleInputKeydown(event) {\n const { key } = event\n\n switch (key) {\n case 'Enter': {\n event.preventDefault()\n this._createChipFromInput()\n break\n }\n\n case 'Backspace':\n case 'Delete': {\n if (this._input.value === '') {\n event.preventDefault()\n const chips = this._getChipElements()\n\n if (chips.length > 0) {\n // Select last chip and focus it\n const lastChip = chips.at(-1)\n this.selectChip(lastChip)\n lastChip.focus()\n }\n }\n\n break\n }\n\n case 'ArrowLeft': {\n if (this._input.selectionStart === 0 && this._input.selectionEnd === 0) {\n event.preventDefault()\n const chips = this._getChipElements()\n if (chips.length > 0) {\n const lastChip = chips.at(-1)\n if (event.shiftKey) {\n this.selectChip(lastChip, { addToSelection: true })\n } else {\n this.selectChip(lastChip)\n }\n\n lastChip.focus()\n }\n }\n\n break\n }\n\n case 'Escape': {\n this._input.value = ''\n this.clearSelection()\n this._input.blur()\n break\n }\n\n // No default\n }\n }\n\n _handleChipKeydown(event) {\n const { key } = event\n const chip = event.target.closest(SELECTOR_CHIP)\n if (!chip) {\n return\n }\n\n const chips = this._getChipElements()\n const currentIndex = chips.indexOf(chip)\n\n switch (key) {\n case 'Backspace':\n case 'Delete': {\n event.preventDefault()\n this._handleChipDelete(currentIndex, chips)\n break\n }\n\n case 'ArrowLeft': {\n event.preventDefault()\n this._navigateChip(chips, currentIndex, -1, event.shiftKey)\n break\n }\n\n case 'ArrowRight': {\n event.preventDefault()\n this._navigateChip(chips, currentIndex, 1, event.shiftKey)\n break\n }\n\n case 'Home': {\n event.preventDefault()\n this._navigateToEdge(chips, 0, event.shiftKey)\n break\n }\n\n case 'End': {\n event.preventDefault()\n this.clearSelection()\n this._input?.focus()\n break\n }\n\n case 'a': {\n this._handleSelectAll(event, chips)\n break\n }\n\n case 'Escape': {\n event.preventDefault()\n this.clearSelection()\n this._input?.focus()\n break\n }\n\n // No default\n }\n }\n\n _handleChipDelete(currentIndex, chips) {\n if (this._selectedChips.size === 0) {\n return\n }\n\n const nextIndex = Math.min(currentIndex, chips.length - this._selectedChips.size - 1)\n this.removeSelected()\n\n const remainingChips = this._getChipElements()\n if (remainingChips.length > 0) {\n const focusIndex = Math.max(0, Math.min(nextIndex, remainingChips.length - 1))\n remainingChips[focusIndex].focus()\n this.selectChip(remainingChips[focusIndex])\n } else {\n this._input?.focus()\n }\n }\n\n _navigateChip(chips, currentIndex, direction, shiftKey) {\n const targetIndex = currentIndex + direction\n\n if (direction < 0 && targetIndex >= 0) {\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { addToSelection: true, rangeSelect: true } : {})\n targetChip.focus()\n } else if (direction > 0 && targetIndex < chips.length) {\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { addToSelection: true, rangeSelect: true } : {})\n targetChip.focus()\n } else if (direction > 0) {\n this.clearSelection()\n this._input?.focus()\n }\n }\n\n _navigateToEdge(chips, targetIndex, shiftKey) {\n if (chips.length === 0) {\n return\n }\n\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { rangeSelect: true } : {})\n targetChip.focus()\n }\n\n _handleSelectAll(event, chips) {\n if (!(event.metaKey || event.ctrlKey)) {\n return\n }\n\n event.preventDefault()\n for (const c of chips) {\n this._selectedChips.add(c)\n c.classList.add(CLASS_NAME_ACTIVE)\n }\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: this.getSelectedValues()\n })\n }\n\n _handleInput(event) {\n const { value } = event.target\n const { separator } = this._config\n\n if (separator && value.includes(separator)) {\n const parts = value.split(separator)\n for (const part of parts.slice(0, -1)) {\n this.add(part.trim())\n }\n\n this._input.value = parts.at(-1)\n }\n }\n\n _handlePaste(event) {\n const { separator } = this._config\n if (!separator) {\n return\n }\n\n const pastedData = (event.clipboardData || window.clipboardData).getData('text')\n if (pastedData.includes(separator)) {\n event.preventDefault()\n\n const parts = pastedData.split(separator)\n for (const part of parts) {\n this.add(part.trim())\n }\n }\n }\n\n _createChipFromInput() {\n const value = this._input.value.trim()\n if (value) {\n this.add(value)\n this._input.value = ''\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_CHIPS)) {\n Chips.getOrCreateInstance(element)\n }\n})\n\nexport default Chips\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n// js-docs-end allow-list\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue))\n }\n\n return true\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n .some(regex => regex.test(attributeName))\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const elements = [...createdDocument.body.querySelectorAll('*')]\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n continue\n }\n\n const attributeList = [...element.attributes]\n const allowedAttributes = [...(allowList['*'] || []), ...(allowList[elementName] || [])]\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'\nimport { execute, getElement, isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'TemplateFactory'\n\nconst Default = {\n allowList: DefaultAllowlist,\n content: {}, // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '<div></div>'\n}\n\nconst DefaultType = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n}\n\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content)\n .map(config => this._resolvePossibleFunction(config))\n .filter(Boolean)\n }\n\n hasContent() {\n return this.getContent().length > 0\n }\n\n changeContent(content) {\n this._checkContent(content)\n this._config.content = { ...this._config.content, ...content }\n return this\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div')\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template)\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector)\n }\n\n const template = templateWrapper.children[0]\n const extraClass = this._resolvePossibleFunction(this._config.extraClass)\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '))\n }\n\n return template\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config)\n this._checkContent(config.content)\n }\n\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({ selector, entry: content }, DefaultContentType)\n }\n }\n\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template)\n\n if (!templateElement) {\n return\n }\n\n content = this._resolvePossibleFunction(content)\n\n if (!content) {\n templateElement.remove()\n return\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement)\n return\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content)\n return\n }\n\n templateElement.textContent = content\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [undefined, this])\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = ''\n templateElement.append(element)\n return\n }\n\n templateElement.textContent = element.textContent\n }\n}\n\nexport default TemplateFactory\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n computePosition,\n flip,\n shift,\n offset,\n arrow,\n autoUpdate\n} from '@floating-ui/dom'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport {\n execute, findShadowRoot, getElement, getUID, isRTL, noop\n} from './util/index.js'\nimport { DefaultAllowlist } from './util/sanitizer.js'\nimport TemplateFactory from './util/template-factory.js'\nimport {\n parseResponsivePlacement,\n getResponsivePlacement,\n createBreakpointListeners,\n disposeBreakpointListeners\n} from './util/floating-ui.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tooltip\"]'\n\nconst EVENT_MODAL_HIDE = 'hide.bs.modal'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\nconst EVENT_HIDE = 'hide'\nconst EVENT_HIDDEN = 'hidden'\nconst EVENT_SHOW = 'show'\nconst EVENT_SHOWN = 'shown'\nconst EVENT_INSERTED = 'inserted'\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_FOCUSOUT = 'focusout'\nconst EVENT_MOUSEENTER = 'mouseenter'\nconst EVENT_MOUSELEAVE = 'mouseleave'\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n}\n\nconst Default = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n floatingConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n title: '',\n trigger: 'hover focus'\n}\n\nconst DefaultType = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n floatingConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof computePosition === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Floating UI (https://floating-ui.com)')\n }\n\n super(element, config)\n\n // Private\n this._isEnabled = true\n this._timeout = 0\n this._isHovered = null\n this._activeTrigger = {}\n this._floatingCleanup = null\n this._templateFactory = null\n this._newContent = null\n this._mediaQueryListeners = []\n this._responsivePlacements = null\n\n // Protected\n this.tip = null\n\n this._parseResponsivePlacements()\n this._setListeners()\n\n if (!this._config.selector) {\n this._fixTitle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle() {\n if (!this._isEnabled) {\n return\n }\n\n if (this._isShown()) {\n this._leave()\n return\n }\n\n this._enter()\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'))\n }\n\n this._disposeFloating()\n this._disposeMediaQueryListeners()\n super.dispose()\n }\n\n async show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (!(this._isWithContent() && this._isEnabled)) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW))\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n this._disposeFloating()\n\n const tip = this._getTipElement()\n\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'))\n\n let { container } = this._config\n const closestDialog = this._element.closest('dialog[open]')\n if (closestDialog && container === document.body) {\n container = closestDialog\n }\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip)\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED))\n }\n\n await this._createFloating(tip)\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN))\n\n if (this._isHovered === false) {\n this._leave()\n }\n\n this._isHovered = false\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE))\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const tip = this._getTipElement()\n tip.classList.remove(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n this._isHovered = null // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (!this._isHovered) {\n this._disposeFloating()\n }\n\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN))\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n update() {\n if (this._floatingCleanup && this.tip) {\n this._updateFloatingPosition()\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle())\n }\n\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())\n }\n\n return this.tip\n }\n\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml()\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n tip.classList.add(`bs-${this.constructor.NAME}-auto`)\n\n const tipId = getUID(this.constructor.NAME).toString()\n\n tip.setAttribute('id', tipId)\n\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n return tip\n }\n\n setContent(content) {\n this._newContent = content\n if (this._isShown()) {\n this._disposeFloating()\n this.show()\n }\n }\n\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content)\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n })\n }\n\n return this._templateFactory\n }\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n }\n }\n\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title')\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\n }\n\n _isAnimated() {\n return this._config.animation || (this.tip && this.tip.classList.contains(CLASS_NAME_FADE))\n }\n\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement(tip) {\n // If we have responsive placements, get the one for current viewport\n if (this._responsivePlacements) {\n const placement = getResponsivePlacement(this._responsivePlacements, 'top')\n return AttachmentMap[placement.toUpperCase()] || placement\n }\n\n // Execute placement (can be a function)\n const placement = execute(this._config.placement, [this, tip, this._element])\n return AttachmentMap[placement.toUpperCase()] || placement\n }\n\n _parseResponsivePlacements() {\n // Only parse if placement is a string (not a function)\n if (typeof this._config.placement !== 'string') {\n this._responsivePlacements = null\n return\n }\n\n this._responsivePlacements = parseResponsivePlacement(this._config.placement, 'top')\n\n if (this._responsivePlacements) {\n this._setupMediaQueryListeners()\n }\n }\n\n _setupMediaQueryListeners() {\n this._disposeMediaQueryListeners()\n this._mediaQueryListeners = createBreakpointListeners(() => {\n if (this._isShown()) {\n this._updateFloatingPosition()\n }\n })\n }\n\n _disposeMediaQueryListeners() {\n disposeBreakpointListeners(this._mediaQueryListeners)\n this._mediaQueryListeners = []\n }\n\n async _createFloating(tip) {\n const placement = this._getPlacement(tip)\n const arrowElement = tip.querySelector(`.${this.constructor.NAME}-arrow`)\n\n // Initial position update\n await this._updateFloatingPosition(tip, placement, arrowElement)\n\n // Set up auto-update for scroll/resize\n this._floatingCleanup = autoUpdate(\n this._element,\n tip,\n () => this._updateFloatingPosition(tip, null, arrowElement)\n )\n }\n\n async _updateFloatingPosition(tip = this.tip, placement = null, arrowElement = null) {\n if (!tip) {\n return\n }\n\n if (!placement) {\n placement = this._getPlacement(tip)\n }\n\n if (!arrowElement) {\n arrowElement = tip.querySelector(`.${this.constructor.NAME}-arrow`)\n }\n\n const middleware = this._getFloatingMiddleware(arrowElement)\n const floatingConfig = this._getFloatingConfig(placement, middleware)\n\n const { x, y, placement: finalPlacement, middlewareData } = await computePosition(\n this._element,\n tip,\n floatingConfig\n )\n\n // Apply position to tooltip\n Object.assign(tip.style, {\n position: 'absolute',\n left: `${x}px`,\n top: `${y}px`\n })\n\n // Ensure arrow is absolutely positioned within tooltip\n if (arrowElement) {\n arrowElement.style.position = 'absolute'\n }\n\n // Set placement attribute for CSS arrow styling\n Manipulator.setDataAttribute(tip, 'placement', finalPlacement)\n\n // Position arrow along the edge (center it) if present\n // The CSS handles which edge to place it on via data-bs-placement\n if (arrowElement && middlewareData.arrow) {\n const { x: arrowX, y: arrowY } = middlewareData.arrow\n const isVertical = finalPlacement.startsWith('top') || finalPlacement.startsWith('bottom')\n\n // Only set the cross-axis position (centering along the edge)\n // The main-axis position (which edge) is handled by CSS\n Object.assign(arrowElement.style, {\n left: isVertical && arrowX !== null ? `${arrowX}px` : '',\n top: !isVertical && arrowY !== null ? `${arrowY}px` : '',\n // Reset the other axis to let CSS handle it\n right: '',\n bottom: ''\n })\n }\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offset === 'function') {\n // Floating UI passes different args, adapt the interface for offset function callbacks\n return ({ placement, rects }) => {\n const result = offset({ placement, reference: rects.reference, floating: rects.floating }, this._element)\n return result\n }\n }\n\n return offset\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element, this._element])\n }\n\n _getFloatingMiddleware(arrowElement) {\n const offsetValue = this._getOffset()\n\n const middleware = [\n // Offset middleware - handles distance from reference\n offset(\n typeof offsetValue === 'function' ?\n offsetValue :\n { mainAxis: offsetValue[1] || 0, crossAxis: offsetValue[0] || 0 }\n ),\n // Flip middleware - handles fallback placements\n flip({\n fallbackPlacements: this._config.fallbackPlacements\n }),\n // Shift middleware - prevents overflow\n shift({\n boundary: this._config.boundary === 'clippingParents' ? 'clippingAncestors' : this._config.boundary\n })\n ]\n\n // Arrow middleware - positions the arrow element\n if (arrowElement) {\n middleware.push(arrow({ element: arrowElement }))\n }\n\n return middleware\n }\n\n _getFloatingConfig(placement, middleware) {\n const defaultConfig = {\n placement,\n middleware\n }\n\n return {\n ...defaultConfig,\n ...execute(this._config.floatingConfig, [undefined, defaultConfig])\n }\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ')\n\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[TRIGGER_CLICK] = !(context._isShown() && context._activeTrigger[TRIGGER_CLICK])\n context.toggle()\n })\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSEENTER) :\n this.constructor.eventName(EVENT_FOCUSIN)\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSELEAVE) :\n this.constructor.eventName(EVENT_FOCUSOUT)\n\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true\n context._enter()\n })\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] =\n context._element.contains(event.relatedTarget)\n\n context._leave()\n })\n }\n }\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n\n if (!title) {\n return\n }\n\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('data-bs-original-title', title) // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title')\n }\n\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true\n return\n }\n\n this._isHovered = true\n\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show()\n }\n }, this._config.delay.show)\n }\n\n _leave() {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n this._isHovered = false\n\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide()\n }\n }, this._config.delay.hide)\n }\n\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout)\n this._timeout = setTimeout(handler, timeout)\n }\n\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true)\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute]\n }\n }\n\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container)\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value\n }\n }\n\n config.selector = false\n config.trigger = 'manual'\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config\n }\n\n _disposeFloating() {\n if (this._floatingCleanup) {\n this._floatingCleanup()\n this._floatingCleanup = null\n }\n\n if (this.tip) {\n this.tip.remove()\n this.tip = null\n }\n }\n}\n\n/**\n * Data API implementation - auto-initialize tooltips\n */\n\nconst initTooltip = event => {\n const target = event.target.closest(SELECTOR_DATA_TOGGLE)\n if (!target) {\n return\n }\n\n // Lazily create the instance. The instance's own `_setListeners()` registers\n // the appropriate listeners on the element for the configured triggers\n // (hover/focus by default), so we don't mutate `_activeTrigger` or call\n // `_enter` here — doing so would show tooltips for triggers the user didn't\n // opt into (e.g. `focusin` firing for click-focused buttons in Chromium,\n // even when `trigger=\"hover\"` or `trigger=\"manual\"`) and leave stale state\n // on `_activeTrigger`.\n Tooltip.getOrCreateInstance(target)\n}\n\n// Auto-initialize tooltips on first interaction for hover and focus triggers\nEventHandler.on(document, EVENT_FOCUSIN, SELECTOR_DATA_TOGGLE, initTooltip)\nEventHandler.on(document, EVENT_MOUSEENTER, SELECTOR_DATA_TOGGLE, initTooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Tooltip from './tooltip.js'\nimport EventHandler from './dom/event-handler.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'popover'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"popover\"]'\n\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_MOUSEENTER = 'mouseenter'\n\nconst Default = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div>' +\n '</div>',\n trigger: 'click'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n}\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent()\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n }\n }\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content)\n }\n}\n\n/**\n * Data API implementation - auto-initialize popovers\n */\n\nconst initPopover = event => {\n const target = event.target.closest(SELECTOR_DATA_TOGGLE)\n if (!target) {\n return\n }\n\n // Prevent default for click events to avoid navigation (e.g. <a href=\"#\">)\n if (event.type === 'click') {\n event.preventDefault()\n }\n\n // Lazily create the instance. The instance's own `_setListeners()` registers\n // the appropriate listeners on the element for the configured triggers\n // (click/focus/hover), so we don't toggle or call `_enter` here — doing so\n // would duplicate handlers and leave stale state on `_activeTrigger`.\n Popover.getOrCreateInstance(target)\n}\n\n// Auto-initialize popovers on first interaction for click, hover, and focus triggers\nEventHandler.on(document, EVENT_CLICK, SELECTOR_DATA_TOGGLE, initPopover)\nEventHandler.on(document, EVENT_FOCUSIN, SELECTOR_DATA_TOGGLE, initPopover)\nEventHandler.on(document, EVENT_MOUSEENTER, SELECTOR_DATA_TOGGLE, initPopover)\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getElement, isDisabled, isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_MENU_ITEM = 'menu-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]'\nconst SELECTOR_TARGET_LINKS = '[href]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\nconst SELECTOR_MENU_TOGGLE = '[data-bs-toggle=\"menu\"]'\n\nconst Default = {\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n}\n\nconst DefaultType = {\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n}\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map()\n this._observableSections = new Map()\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element\n this._activeTarget = null\n this._observer = null\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n }\n this.refresh() // initialize\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables()\n this._maybeEnableSmoothScroll()\n\n if (this._observer) {\n this._observer.disconnect()\n } else {\n this._observer = this._getNewObserver()\n }\n\n for (const section of this._observableSections.values()) {\n this._observer.observe(section)\n }\n }\n\n dispose() {\n this._observer.disconnect()\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n config.target = getElement(config.target) || document.body\n\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value))\n }\n\n return config\n }\n\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK)\n\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash)\n if (observableSection) {\n event.preventDefault()\n const root = this._rootElement || window\n const height = observableSection.offsetTop - this._element.offsetTop\n if (root.scrollTo) {\n root.scrollTo({ top: height, behavior: 'smooth' })\n return\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height\n }\n })\n }\n\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n }\n\n return new IntersectionObserver(entries => this._observerCallback(entries), options)\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`)\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop\n this._process(targetElement(entry))\n }\n\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop\n this._previousScrollData.parentScrollTop = parentScrollTop\n\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null\n this._clearActiveClass(targetElement(entry))\n\n continue\n }\n\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry)\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return\n }\n\n continue\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry)\n }\n }\n }\n\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map()\n this._observableSections = new Map()\n\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target)\n\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue\n }\n\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element)\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor)\n this._observableSections.set(anchor.hash, observableSection)\n }\n }\n }\n\n _process(target) {\n if (this._activeTarget === target) {\n return\n }\n\n this._clearActiveClass(this._config.target)\n this._activeTarget = target\n target.classList.add(CLASS_NAME_ACTIVE)\n this._activateParents(target)\n\n EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target })\n }\n\n _activateParents(target) {\n // Activate menu parents\n if (target.classList.contains(CLASS_NAME_MENU_ITEM)) {\n const menuToggle = target.closest('.menu')?.previousElementSibling\n if (menuToggle?.matches(SELECTOR_MENU_TOGGLE)) {\n menuToggle.classList.add(CLASS_NAME_ACTIVE)\n }\n\n return\n }\n\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {\n item.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _clearActiveClass(parent) {\n parent.classList.remove(CLASS_NAME_ACTIVE)\n\n const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE}`, parent)\n for (const node of activeNodes) {\n node.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {\n ScrollSpy.getOrCreateInstance(spy)\n }\n})\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { getNextActiveElement, isDisabled } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst SELECTOR_MENU_TOGGLE = '[data-bs-toggle=\"menu\"]'\nconst SELECTOR_MENU = '.menu'\nconst NOT_SELECTOR_MENU_TOGGLE = `:not(${SELECTOR_MENU_TOGGLE})`\n\nconst SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]'\nconst SELECTOR_OUTER = '.nav-item, .list-group-item'\nconst SELECTOR_INNER = `.nav-link${NOT_SELECTOR_MENU_TOGGLE}, .list-group-item${NOT_SELECTOR_MENU_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_MENU_TOGGLE}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"]'\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`\n\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"]`\n\n/**\n * Class definition\n */\n\nclass Tab extends BaseComponent {\n constructor(element) {\n super(element)\n this._parent = this._element.closest(SELECTOR_TAB_PANEL)\n\n if (!this._parent) {\n return\n // TODO: should throw exception in v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_TAB_PANEL}`)\n }\n\n // Set up initial aria attributes\n this._setInitialAttributes(this._parent, this._getChildren())\n\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n show() { // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element\n if (this._elemIsActive(innerElem)) {\n return\n }\n\n // Search for active tab on same parent to deactivate it\n const active = this._getActiveElem()\n\n const hideEvent = active ?\n EventHandler.trigger(active, EVENT_HIDE, { relatedTarget: innerElem }) :\n null\n\n const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { relatedTarget: active })\n\n if (showEvent.defaultPrevented || (hideEvent && hideEvent.defaultPrevented)) {\n return\n }\n\n this._deactivate(active, innerElem)\n this._activate(innerElem, active)\n }\n\n // Private\n _activate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n\n this._activate(SelectorEngine.getElementFromSelector(element)) // Search and activate/show the proper section\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW)\n return\n }\n\n element.removeAttribute('tabindex')\n element.setAttribute('aria-selected', true)\n this._toggleMenu(element, true)\n EventHandler.trigger(element, EVENT_SHOWN, {\n relatedTarget: relatedElem\n })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _deactivate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.remove(CLASS_NAME_ACTIVE)\n element.blur()\n\n this._deactivate(SelectorEngine.getElementFromSelector(element)) // Search and deactivate the shown section too\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW)\n return\n }\n\n element.setAttribute('aria-selected', false)\n element.setAttribute('tabindex', '-1')\n this._toggleMenu(element, false)\n EventHandler.trigger(element, EVENT_HIDDEN, { relatedTarget: relatedElem })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _keydown(event) {\n if (!([ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key))) {\n return\n }\n\n event.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n event.preventDefault()\n\n const children = this._getChildren().filter(element => !isDisabled(element))\n let nextActiveElement\n\n if ([HOME_KEY, END_KEY].includes(event.key)) {\n nextActiveElement = event.key === HOME_KEY ? children[0] : children.at(-1)\n } else {\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\n nextActiveElement = getNextActiveElement(children, event.target, isNext, true)\n }\n\n if (nextActiveElement) {\n nextActiveElement.focus({ preventScroll: true })\n Tab.getOrCreateInstance(nextActiveElement).show()\n }\n }\n\n _getChildren() { // collection of inner elements\n return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent)\n }\n\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null\n }\n\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist')\n\n for (const child of children) {\n this._setInitialAttributesOnChild(child)\n }\n }\n\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child)\n const isActive = this._elemIsActive(child)\n const outerElem = this._getOuterElement(child)\n child.setAttribute('aria-selected', isActive)\n\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation')\n }\n\n if (!isActive) {\n child.setAttribute('tabindex', '-1')\n }\n\n this._setAttributeIfNotExists(child, 'role', 'tab')\n\n // set attributes to the related panel too\n this._setInitialAttributesOnTargetPanel(child)\n }\n\n _setInitialAttributesOnTargetPanel(child) {\n const target = SelectorEngine.getElementFromSelector(child)\n\n if (!target) {\n return\n }\n\n this._setAttributeIfNotExists(target, 'role', 'tabpanel')\n\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`)\n }\n }\n\n _toggleMenu(element, open) {\n const outerElem = this._getOuterElement(element)\n const menuToggle = SelectorEngine.findOne(SELECTOR_MENU_TOGGLE, outerElem)\n if (!menuToggle) {\n return\n }\n\n const menu = SelectorEngine.findOne(SELECTOR_MENU, outerElem)\n\n menuToggle.classList.toggle(CLASS_NAME_ACTIVE, open)\n if (menu) {\n menu.classList.toggle(CLASS_NAME_SHOW, open)\n }\n\n menuToggle.setAttribute('aria-expanded', open)\n }\n\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value)\n }\n }\n\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n // Try to get the inner element (usually the .nav-link)\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem)\n }\n\n // Try to get the outer element (usually the .nav-item)\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n Tab.getOrCreateInstance(this).show()\n})\n\n/**\n * Initialize on focus\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element)\n }\n})\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { reflow } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`\nconst EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_FOCUSOUT = `focusout${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide' // @deprecated - kept here only for backwards compatibility\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 5000\n}\n\n/**\n * Class definition\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._timeout = null\n this._hasMouseInteraction = false\n this._hasKeyboardInteraction = false\n this._setListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n show() {\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n this._maybeScheduleHide()\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE) // @deprecated\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING)\n\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n hide() {\n if (!this.isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE) // @deprecated\n this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.add(CLASS_NAME_SHOWING)\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this.isShown()) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n super.dispose()\n }\n\n isShown() {\n return this._element.classList.contains(CLASS_NAME_SHOW)\n }\n\n // Private\n _maybeScheduleHide() {\n if (!this._config.autohide) {\n return\n }\n\n if (this._hasMouseInteraction || this._hasKeyboardInteraction) {\n return\n }\n\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n\n _onInteraction(event, isInteracting) {\n switch (event.type) {\n case 'mouseover':\n case 'mouseout': {\n this._hasMouseInteraction = isInteracting\n break\n }\n\n case 'focusin':\n case 'focusout': {\n this._hasKeyboardInteraction = isInteracting\n break\n }\n\n default: {\n break\n }\n }\n\n if (isInteracting) {\n this._clearTimeout()\n return\n }\n\n const nextElement = event.relatedTarget\n if (this._element === nextElement || this._element.contains(nextElement)) {\n return\n }\n\n this._maybeScheduleHide()\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false))\n EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false))\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Toast)\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap toggler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { eventActionOnPlugin } from './util/component-functions.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'toggler'\nconst DATA_KEY = 'bs.toggler'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_TOGGLE = `toggle${EVENT_KEY}`\nconst EVENT_TOGGLED = `toggled${EVENT_KEY}`\nconst EVENT_CLICK = 'click'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"toggler\"]'\n\nconst DefaultType = {\n attribute: 'string',\n value: '(string|number|boolean)'\n}\n\nconst Default = {\n attribute: 'class',\n value: null\n}\n\n/**\n * Class definition\n */\n\nclass Toggler extends BaseComponent {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n const toggleEvent = EventHandler.trigger(this._element, EVENT_TOGGLE)\n\n if (toggleEvent.defaultPrevented) {\n return\n }\n\n this._execute()\n\n EventHandler.trigger(this._element, EVENT_TOGGLED)\n }\n\n // Private\n _execute() {\n const { attribute, value } = this._config\n\n if (attribute === 'id') {\n return // You have to be kidding\n }\n\n if (attribute === 'class') {\n this._element.classList.toggle(value)\n return\n }\n\n // Compare as strings since getAttribute() always returns a string\n if (this._element.getAttribute(attribute) === String(value)) {\n this._element.removeAttribute(attribute)\n return\n }\n\n this._element.setAttribute(attribute, value)\n }\n}\n\n/**\n * Data API implementation\n */\n\neventActionOnPlugin(Toggler, EVENT_CLICK, SELECTOR_DATA_TOGGLE, 'toggle')\n\nexport default Toggler\n"],"names":["elementMap","Map","set","element","key","instance","has","instanceMap","get","size","console","error","keys","getAny","values","next","value","remove","delete","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","makeEventUid","uid","getElementEvents","bootstrapHandler","fn","handler","event","hydrateObj","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","selector","domElements","querySelectorAll","target","parentNode","domElement","findHandler","events","callable","delegationSelector","Object","find","normalizeParameters","originalTypeEvent","delegationFunction","isDelegated","typeEvent","getTypeEvent","addHandler","wrapFunction","relatedTarget","contains","call","handlers","previousFunction","replace","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","entries","includes","on","one","inNamespace","isNamespace","startsWith","length","elementEvent","slice","keyHandlers","trigger","args","evt","Event","bubbles","cancelable","dispatchEvent","obj","meta","defineProperty","configurable","normalizeData","Number","toString","JSON","parse","decodeURIComponent","normalizeDataKey","chr","toLowerCase","Manipulator","setDataAttribute","setAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","bsKeys","dataset","filter","pureKey","charAt","getDataAttribute","getAttribute","MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","parseSelector","window","CSS","escape","match","id","toType","object","undefined","prototype","getUID","prefix","Math","floor","random","document","getElementById","getTransitionDurationFromElement","transitionDuration","transitionDelay","getComputedStyle","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","isElement","nodeType","getElement","querySelector","isVisible","getClientRects","elementIsVisible","getPropertyValue","closedDetails","closest","summary","isDisabled","Node","ELEMENT_NODE","classList","disabled","hasAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","isRTL","dir","execute","possibleCallback","defaultValue","executeAfterTransition","callback","transitionElement","waitForTransition","durationPadding","emulatedDuration","called","setTimeout","getNextActiveElement","list","activeElement","shouldGetNext","isCycleAllowed","listLength","index","indexOf","max","min","Config","Default","DefaultType","NAME","Error","_getConfig","config","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","jsonConfig","constructor","configTypes","property","expectedTypes","valueType","RegExp","test","TypeError","toUpperCase","VERSION","BaseComponent","_element","_config","Data","DATA_KEY","dispose","EVENT_KEY","propertyName","getOwnPropertyNames","_queueCallback","isAnimated","getInstance","getOrCreateInstance","eventName","name","getSelector","hrefAttribute","trim","map","sel","join","SelectorEngine","Element","findOne","children","child","matches","parents","ancestor","push","prev","previous","previousElementSibling","nextElementSibling","focusableChildren","focusables","el","getSelectorFromElement","getElementFromSelector","getMultipleElementsFromSelector","enableDismissTrigger","component","method","clickEvent","tagName","preventDefault","eventActionOnPlugin","Plugin","onEvent","stringSelector","eventAction","data","instances","targets","EVENT_CLOSE","EVENT_CLOSED","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","close","closeEvent","defaultPrevented","_destroyElement","DATA_API_KEY","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE","EVENT_CLICK_DATA_API","Button","toggle","button","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_POINTERDOWN","EVENT_LOAD_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_CENTER","CLASS_NAME_AUTO","CLASS_NAME_CLONE","CLASS_NAME_PAUSED","CLASS_NAME_PLAYING","PROPERTY_INTERVAL","SCROLL_SETTLE_MAX_FRAMES","ACTIVE_RATIO_TOLERANCE","SELECTOR_ACTIVE","SELECTOR_ITEM","SELECTOR_ACTIVE_ITEM","SELECTOR_INNER","SELECTOR_INDICATORS","SELECTOR_PLAY_PAUSE","SELECTOR_DATA_SLIDE","SELECTOR_DATA_SLIDE_PREV","SELECTOR_DATA_SLIDE_NEXT","SELECTOR_DATA_AUTOPLAY","KEY_TO_DIRECTION","ENDS_STOP","ENDS_WRAP","ENDS_LOOP","autoplay","ends","interval","keyboard","pause","Carousel","_viewport","_indicatorsElement","_playPauseElement","_prevControls","_nextControls","_interval","_observer","_snapRestoreFrame","_looping","_visibility","_playing","_activeIndex","_initialActiveIndex","_addEventListeners","_observeItems","_refreshActiveState","cycle","_updatePlayPauseControl","to","_navIndex","nextWhenVisible","visibilityState","_clearInterval","_scheduleAutoplay","add","items","_getItems","rawIndex","parseInt","_prefersReducedMotion","_canLoop","_loopTransition","targetIndex","_normalizeIndex","currentIndex","slideEvent","direction","_direction","from","_isFade","_fadeTo","_scrollToIndex","disconnect","cancelAnimationFrame","clone","style","scrollSnapType","active","_keydown","_maybeEnableCycle","_pauseFromInteraction","IntersectionObserver","_handleIntersection","threshold","item","observe","entry","isIntersecting","intersectionRatio","ratios","maxRatio","bestIndex","findIndex","ratio","_setActive","_updateEndControls","scrollWidth","clientWidth","smallestDelta","POSITIVE_INFINITY","itemIndex","delta","abs","_scrollDelta","left","targetLeft","scrollLeft","scrollBy","top","behavior","_restoreSnapWhenSettled","viewportRect","getBoundingClientRect","rect","width","padStart","scrollPaddingInlineStart","right","isNext","last","fromIndex","toIndex","_loopDirection","cloneNode","node","inert","append","prepend","_jumpScroll","_afterScrollSettles","requestAnimationFrame","startLeft","lastLeft","stableFrames","waited","hasMoved","tick","currentLeft","reachedTarget","_setActiveIndicatorElement","viewport","maxScroll","atStart","atEnd","progress","_setControlsDisabled","controls","control","opposite","fallback","focus","preventScroll","newActive","isNaN","_wrapsAround","styles","num","_itemInterval","setProperty","upcoming","_upcomingIndex","NaN","_togglePlayPause","label","matchMedia","clearTimeout","carousel","slideIndex","carousels","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","CLASS_NAME_HORIZONTAL","WIDTH","HEIGHT","SELECTOR_ACTIVES","parent","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","_isShown","hide","show","activeChildren","_getFirstLevelChildren","startEvent","activeInstance","dimension","_getDimension","complete","capitalizedDimension","scrollSize","selected","triggerArray","isOpen","computePosition","arrow","flip","offset","shift","BREAKPOINTS","sm","md","lg","xl","parseResponsivePlacement","placementString","defaultPlacement","parts","placements","xs","part","breakpoint","placement","getResponsivePlacement","responsivePlacements","viewportWidth","innerWidth","activePlacement","breakpointOrder","minWidth","createBreakpointListeners","listeners","mql","disposeBreakpointListeners","ESCAPE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","HOME_KEY","END_KEY","ENTER_KEY","SPACE_KEY","RIGHT_MOUSE_BUTTON","SUBMENU_CLOSE_DELAY","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","SELECTOR_MENU","SELECTOR_SUBMENU","SELECTOR_SUBMENU_TOGGLE","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","DEFAULT_PLACEMENT","SUBMENU_PLACEMENT","resolveLogicalPlacement","triangleSign","p1","p2","p3","x","y","autoClose","boundary","container","display","floatingConfig","menu","reference","strategy","submenuTrigger","submenuDelay","Menu","_openInstances","_floatingCleanup","_mediaQueryListeners","_responsivePlacements","_parent","_isSubmenu","_openSubmenus","_submenuCloseTimeouts","_hoverIntentData","_menu","_findMenu","_menuOriginalParent","_parseResponsivePlacements","_setupSubmenuListeners","showEvent","_moveMenuToContainer","_createFloating","body","focusVisible","_completeHide","_disposeFloating","_restoreMenuToOriginalParent","_disposeMediaQueryListeners","_closeAllSubmenus","_clearAllSubmenuTimeouts","update","_updateFloatingPosition","hideEvent","referenceElement","autoUpdate","_getPlacement","middleware","_getFloatingMiddleware","_getFloatingConfig","_applyFloatingPosition","_setupMediaQueryListeners","_getOffset","offsetConfig","rects","result","floating","offsetValue","mainAxis","crossAxis","fallbackPlacements","_getFallbackPlacements","fallbackMap","bottom","defaultConfig","_getContainer","isConnected","finalPlacement","assign","position","margin","_onSubmenuTriggerEnter","_onSubmenuLeave","_trackMousePosition","_onSubmenuTriggerClick","submenuWrapper","submenu","_cancelSubmenuCloseTimeout","_closeSiblingSubmenus","_openSubmenu","_isMovingTowardSubmenu","_scheduleSubmenuClose","stopPropagation","_closeSubmenu","cleanup","_createSubmenuFloating","nestedSubmenus","nested","nestedWrapper","currentSubmenuWrapper","siblingSubmenus","siblingMenu","siblingWrapper","padding","updatePosition","timeoutId","clear","clientX","clientY","timestamp","Date","now","submenuRect","currentPos","lastPos","isRtl","targetX","topCorner","bottomCorner","_pointInTriangle","point","v1","v2","v3","d1","d2","d3","hasNeg","hasPos","_selectMenuItem","currentMenu","_handleSubmenuKeydown","enterKey","exitKey","isSubmenuTrigger","firstItem","parentSubmenuWrapper","parentTrigger","targetItem","at","clearMenus","composedPath","isMenuTarget","dataApiKeydownHandler","isInput","isEscapeEvent","isUpOrDownEvent","isLeftOrRightEvent","isHomeOrEndEvent","isEnterOrSpaceEvent","getToggleButton","EVENT_CHANGE","CLASS_NAME_SELECTED","CLASS_NAME_PLACEHOLDER","SELECTOR_MENU_ITEM","SELECTOR_VALUE","SELECTOR_SEARCH_INPUT","SELECTOR_NO_RESULTS","multiple","placeholder","search","searchNormalize","Combobox","_toggle","_valueDisplay","_searchInput","_noResults","_hiddenInput","_menuInstance","_createHiddenInput","_createMenuInstance","_syncInitialSelection","_filterItems","createElement","insertBefore","selectedItems","_getSelectedItems","_updateToggleText","_updateHiddenInput","_showPlaceholder","_selectItem","_handleToggleKeydown","_handleMenuKeydown","_getVisibleItems","previouslySelected","bsValue","textContent","query","normalizedQuery","_normalizeText","visibleCount","text","normalize","jQueryInterface","each","EVENT_FOCUSIN_DATA_API","HIDE_DELAY","datepickerTheme","dateMin","dateMax","dateFormat","displayElement","displayMonthsCount","firstWeekday","inline","locale","positionElement","selectedDates","selectionMode","vcpOptions","Datepicker","_calendar","_initCalendar","_themeObserver","destroy","getSelectedDates","dates","context","setSelectedDates","_isInput","_isInline","_boundInput","_positionElement","_resolvePositionElement","_displayElement","_resolveDisplayElement","calendarOptions","_buildCalendarOptions","Calendar","init","_setupThemeObserver","_parseInputValue","_updateDisplayWithSelectedDates","formattedDate","_formatDateForInput","displayChild","_getThemeAncestor","_getEffectiveTheme","_syncThemeAttribute","theme","MutationObserver","mainElement","attributeFilter","vcpTheme","inputMode","positionToInput","selectionDatesMode","selectedTheme","themeAttrDetect","onClickDate","self","_handleDateClick","onInit","onShow","onHide","firstDate","_parseDate","selectedMonth","getMonth","selectedYear","getFullYear","_maybeHideAfterSelection","shouldHide","dateStr","year","month","day","_formatDate","date","Intl","DateTimeFormat","format","toLocaleDateString","separator","d","getTime","String","getDate","formatted","bsInline","CLASS_NAME_OPEN","DialogBase","_openedAsModal","_addDialogListeners","open","_onBeforeShow","modal","preventBodyScroll","_getShowOptions","_showElement","_isAnimated","_hideElement","_closeAndCleanup","_onAfterHide","_getInstantClassName","_getStaticClassName","_onCancel","showModal","_hideChildComponents","_shouldDeferClose","_triggerBackdropTransition","hidePreventedEvent","staticClass","eventKey","backdrop","EVENT_CANCEL","CLASS_NAME_NONMODAL","CLASS_NAME_INSTANT","CLASS_NAME_SWAP_IN","Dialog","handleUpdate","currentDialog","shouldSwap","newDialog","currentInstance","EVENT_UPDATE","EVENT_OVERFLOW","CLASS_NAME_OVERFLOW","CLASS_NAME_OVERFLOW_MENU","CLASS_NAME_HIDDEN","SELECTOR_NAV_ITEM","SELECTOR_NAV_LINK","SELECTOR_OVERFLOW_TOGGLE","SELECTOR_OVERFLOW_MENU","SELECTOR_CUSTOM_ICON","CLASS_NAME_KEEP","collapseBelow","iconPlacement","menuPlacement","moreText","moreIcon","NavOverflow","_items","_overflowItems","_overflowMenu","_overflowToggle","_resizeObserver","_collapseBelow","_isInitialized","_init","_calculateOverflow","_restoreItems","parentElement","bsNavOrder","_resolveCollapseBelow","_createOverflowMenu","_setupResizeObserver","iconHtml","_resolveIcon","iconSpan","textSpan","toggleContent","overflowItem","className","innerHTML","customIconElement","iconClone","outerHTML","cssValue","ResizeObserver","navWidth","offsetWidth","itemsToOverflow","_moveToOverflow","overflowCount","overflowWidth","keepWidth","reduce","sum","usedWidth","overflowThreshold","toMove","link","clonedLink","bsNavOverflow","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERUP","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","CLASS_NAME_POINTER_EVENT","SWIPE_THRESHOLD","endCallback","leftCallback","rightCallback","upCallback","downCallback","Swipe","isSupported","_deltaX","_deltaY","_supportPointerEvents","PointerEvent","_initEvents","_start","touches","_eventIsPointerPenTouch","_end","_handleSwipe","_move","absDeltaX","absDeltaY","pointerType","navigator","maxTouchPoints","EVENT_RESIZE","scroll","Drawer","_swipeHelper","useModal","_initSwipe","swipeConfig","alreadyOpen","EVENT_STRENGTH_CHANGE","SELECTOR_DATA_STRENGTH","STRENGTH_LEVELS","input","minLength","messages","weak","fair","good","strong","weights","extraLength","lowercase","uppercase","numbers","special","multipleSpecial","longPassword","thresholds","scorer","Strength","_input","_getInput","_segments","_textElement","_currentStrength","_evaluate","getStrength","evaluate","password","score","_calculateScore","strength","_scoreToStrength","_updateUI","bsStrength","strengthIndex","segment","colorMap","EVENT_COMPLETE","EVENT_INPUT","EVENT_DOMCONTENT_LOADED","SELECTOR_DATA_OTP","SELECTOR_INPUT","SYNC_EVENTS","CLASS_NAME_INPUT","CLASS_NAME_RENDERED","CLASS_NAME_SLOTS","CLASS_NAME_SLOT","CLASS_NAME_SLOT_FILLED","CLASS_NAME_SLOT_ACTIVE","CLASS_NAME_SEPARATOR","MASK_CHARACTER","TYPES","numeric","inputmode","pattern","alphanumeric","alpha","groups","mask","OtpInput","_type","_length","_resolveLength","_slots","_setupInput","_renderSlots","_render","getValue","setValue","_sanitize","_checkComplete","end","setSelectionRange","_onInput","_onFocus","_onSync","_slotsContainer","maxLength","groupIndex","inGroup","i","slot","Array","isArray","_handleInput","sanitized","isFocused","caret","selectionStart","char","EVENT_ADD","EVENT_REMOVE","EVENT_SELECT","SELECTOR_DATA_CHIPS","SELECTOR_GHOST_INPUT","SELECTOR_CHIP","SELECTOR_CHIP_DISMISS","CLASS_NAME_CHIP","CLASS_NAME_CHIP_DISMISS","DEFAULT_DISMISS_ICON","allowDuplicates","maxChips","dismissible","dismissIcon","createOnBlur","Chips","_chips","_selectedChips","_anchorChip","_createInput","_initializeExistingChips","trimmedValue","addEvent","chip","_createChip","getValues","chipOrValue","_findChipByValue","_getChipValue","removeEvent","v","removeSelected","chipsToRemove","getSelectedValues","chips","clearSelection","selectChip","options","addToSelection","rangeSelect","chipElements","_getChipElements","anchorIndex","chipIndex","start","existingChips","_setupChip","_createDismissButton","bsChipValue","createTextNode","dismiss","_handleInputKeydown","_handlePaste","_createChipFromInput","metaKey","ctrlKey","shiftKey","_handleChipKeydown","lastChip","selectionEnd","blur","_handleChipDelete","_navigateChip","_navigateToEdge","_handleSelectAll","nextIndex","remainingChips","focusIndex","targetChip","c","pastedData","clipboardData","getData","ARIA_ATTRIBUTE_PATTERN","DefaultAllowlist","a","area","b","br","col","code","dd","div","dl","dt","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","u","ul","uriAttributes","SAFE_URL_PATTERN","allowedAttribute","attribute","allowedAttributeList","attributeName","nodeName","nodeValue","attributeRegex","some","regex","sanitizeHtml","unsafeHtml","allowList","sanitizeFunction","domParser","DOMParser","createdDocument","parseFromString","elements","elementName","attributeList","allowedAttributes","content","extraClass","html","sanitize","sanitizeFn","template","DefaultContentType","TemplateFactory","getContent","_resolvePossibleFunction","hasContent","changeContent","_checkContent","toHtml","templateWrapper","_maybeSanitize","_setContent","arg","templateElement","_putElementInTemplate","DISALLOWED_ATTRIBUTES","CLASS_NAME_MODAL","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","EVENT_INSERTED","EVENT_CLICK","EVENT_FOCUSIN","EVENT_FOCUSOUT","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","animation","customClass","delay","title","Tooltip","_isEnabled","_timeout","_isHovered","_activeTrigger","_templateFactory","_newContent","tip","_setListeners","_fixTitle","enable","disable","toggleEnabled","_leave","_enter","_hideModalHandler","_isWithContent","shadowRoot","isInTheDom","ownerDocument","_getTipElement","closestDialog","_isWithActiveTrigger","_getTitle","_createTipElement","_getContentForTemplate","_getTemplateFactory","tipId","setContent","_initializeOnDelegatedTarget","_getDelegateConfig","arrowElement","middlewareData","arrowX","arrowY","isVertical","triggers","eventIn","eventOut","_setTimeout","timeout","dataAttributes","dataAttribute","initTooltip","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","initPopover","EVENT_ACTIVATE","CLASS_NAME_MENU_ITEM","SELECTOR_DATA_SPY","SELECTOR_TARGET_LINKS","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","SELECTOR_MENU_TOGGLE","rootMargin","smoothScroll","ScrollSpy","_targetLinks","_observableSections","_rootElement","overflowY","_activeTarget","_previousScrollData","visibleEntryTop","parentScrollTop","refresh","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","_getNewObserver","section","observableSection","hash","height","offsetTop","scrollTo","scrollTop","_observerCallback","targetElement","activate","_process","userScrollsDown","_clearActiveClass","entryIsLowerThanPrevious","targetLinks","anchor","decodeURI","_activateParents","menuToggle","listGroup","activeNodes","spy","NOT_SELECTOR_MENU_TOGGLE","SELECTOR_TAB_PANEL","SELECTOR_OUTER","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","Tab","_setInitialAttributes","_getChildren","innerElem","_elemIsActive","_getActiveElem","_deactivate","_activate","relatedElem","_toggleMenu","nextActiveElement","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","EVENT_MOUSEOVER","EVENT_MOUSEOUT","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_hasMouseInteraction","_hasKeyboardInteraction","_clearTimeout","_maybeScheduleHide","isShown","_onInteraction","isInteracting","nextElement","EVENT_TOGGLE","EVENT_TOGGLED","Toggler","toggleEvent","_execute"],"mappings":"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","x_google_ignoreList":[12,13,14,15,19]}
\ No newline at end of file
* Copyright 2011-2026 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
-const elementMap=new Map,Data={set(e,t,n){elementMap.has(e)||elementMap.set(e,new Map);const s=elementMap.get(e);s.has(t)||0===s.size?s.set(t,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${[...s.keys()][0]}.`)},get:(e,t)=>elementMap.has(e)&&elementMap.get(e).get(t)||null,getAny:e=>elementMap.has(e)&&elementMap.get(e).values().next().value||null,remove(e,t){if(!elementMap.has(e))return;const n=elementMap.get(e);n.delete(t),0===n.size&&elementMap.delete(e)}},namespaceRegex=/[^.]*(?=\..*)\.|.*/,stripNameRegex=/\..*/,stripUidRegex=/::\d+$/,eventRegistry={};let uidEvent=1;const customEvents={mouseenter:"mouseover",mouseleave:"mouseout"},nativeEvents=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function makeEventUid(e,t){return t&&`${t}::${uidEvent++}`||e.uidEvent||uidEvent++}function getElementEvents(e){const t=makeEventUid(e);return e.uidEvent=t,eventRegistry[t]=eventRegistry[t]||{},eventRegistry[t]}function bootstrapHandler(e,t){return function n(s){return hydrateObj(s,{delegateTarget:e}),n.oneOff&&EventHandler.off(e,s.type,t),t.apply(e,[s])}}function bootstrapDelegationHandler(e,t,n){return function s(i){const o=e.querySelectorAll(t);for(let{target:a}=i;a&&a!==this;a=a.parentNode)for(const l of o)if(l===a)return hydrateObj(i,{delegateTarget:a}),s.oneOff&&EventHandler.off(e,i.type,t,n),n.apply(a,[i])}}function findHandler(e,t,n=null){return Object.values(e).find(e=>e.callable===t&&e.delegationSelector===n)}function normalizeParameters(e,t,n){const s="string"==typeof t,i=s?n:t||n;let o=getTypeEvent(e);return nativeEvents.has(o)||(o=e),[s,i,o]}function addHandler(e,t,n,s,i){if("string"!=typeof t||!e)return;let[o,a,l]=normalizeParameters(t,n,s);if(t in customEvents){const e=e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};a=e(a)}const r=getElementEvents(e),c=r[l]||(r[l]={}),d=findHandler(c,a,o?n:null);if(d)return void(d.oneOff=d.oneOff&&i);const u=makeEventUid(a,t.replace(namespaceRegex,"")),h=o?bootstrapDelegationHandler(e,n,a):bootstrapHandler(e,a);h.delegationSelector=o?n:null,h.callable=a,h.oneOff=i,h.uidEvent=u,c[u]=h,e.addEventListener(l,h,o)}function removeHandler(e,t,n,s,i){const o=findHandler(t[n],s,i);o&&(e.removeEventListener(n,o,Boolean(i)),delete t[n][o.uidEvent])}function removeNamespacedHandlers(e,t,n,s){const i=t[n]||{};for(const[o,a]of Object.entries(i))o.includes(s)&&removeHandler(e,t,n,a.callable,a.delegationSelector)}function getTypeEvent(e){return e=e.replace(stripNameRegex,""),customEvents[e]||e}const EventHandler={on(e,t,n,s){addHandler(e,t,n,s,!1)},one(e,t,n,s){addHandler(e,t,n,s,!0)},off(e,t,n,s){if("string"!=typeof t||!e)return;const[i,o,a]=normalizeParameters(t,n,s),l=a!==t,r=getElementEvents(e),c=r[a]||{},d=t.startsWith(".");if(void 0===o){if(d)for(const n of Object.keys(r))removeNamespacedHandlers(e,r,n,t.slice(1));for(const[n,s]of Object.entries(c)){const i=n.replace(stripUidRegex,"");l&&!t.includes(i)||removeHandler(e,r,a,s.callable,s.delegationSelector)}}else{if(!Object.keys(c).length)return;removeHandler(e,r,a,o,i?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const s=hydrateObj(new Event(t,{bubbles:!0,cancelable:!0}),n);return e.dispatchEvent(s),s}};function hydrateObj(e,t={}){for(const[n,s]of Object.entries(t))try{e[n]=s}catch{Object.defineProperty(e,n,{configurable:!0,get:()=>s})}return e}function normalizeData(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function normalizeDataKey(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}const Manipulator={setDataAttribute(e,t,n){e.setAttribute(`data-bs-${normalizeDataKey(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${normalizeDataKey(t)}`)},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter(e=>e.startsWith("bs")&&!e.startsWith("bsConfig"));for(const s of n){let n=s.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1),t[n]=normalizeData(e.dataset[s])}return t},getDataAttribute:(e,t)=>normalizeData(e.getAttribute(`data-bs-${normalizeDataKey(t)}`))},MAX_UID=1e6,MILLISECONDS_MULTIPLIER=1e3,TRANSITION_END="transitionend",parseSelector=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,(e,t)=>`#${CSS.escape(t)}`)),e),toType=e=>null==e?`${e}`:Object.prototype.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase(),getUID=e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e},getTransitionDurationFromElement=e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const s=Number.parseFloat(t),i=Number.parseFloat(n);return s||i?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0},triggerTransitionEnd=e=>{e.dispatchEvent(new Event(TRANSITION_END))},isElement$1=e=>!(!e||"object"!=typeof e)&&void 0!==e.nodeType,getElement=e=>isElement$1(e)?e:"string"==typeof e&&e.length>0?document.querySelector(parseSelector(e)):null,isVisible=e=>{if(!isElement$1(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t},isDisabled=e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")),findShadowRoot=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?findShadowRoot(e.parentNode):null},noop=()=>{},reflow=e=>{e.offsetHeight},isRTL$1=()=>"rtl"===document.documentElement.dir,execute=(e,t=[],n=e)=>"function"==typeof e?e.call(...t):n,executeAfterTransition=(e,t,n=!0)=>{if(!n)return void execute(e);const s=getTransitionDurationFromElement(t)+5;let i=!1;const o=({target:n})=>{n===t&&(i=!0,t.removeEventListener(TRANSITION_END,o),execute(e))};t.addEventListener(TRANSITION_END,o),setTimeout(()=>{i||triggerTransitionEnd(t)},s)},getNextActiveElement=(e,t,n,s)=>{const i=e.length;let o=e.indexOf(t);return-1===o?!n&&s?e[i-1]:e[0]:(o+=n?1:-1,s&&(o=(o+i)%i),e[Math.max(0,Math.min(o,i-1))])};class Config{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=isElement$1(t)?Manipulator.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...isElement$1(t)?Manipulator.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e,t=this.constructor.DefaultType){for(const[n,s]of Object.entries(t)){const t=e[n],i=isElement$1(t)?"element":toType(t);if(!new RegExp(s).test(i))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${i}" but expected type "${s}".`)}}}const VERSION="6.0.0-alpha1";class BaseComponent extends Config{constructor(e,t){super(),(e=getElement(e))&&(this._element=e,this._config=this._getConfig(t),Data.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Data.remove(this._element,this.constructor.DATA_KEY),EventHandler.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t,n=!0){executeAfterTransition(e,t,n)}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return Data.get(getElement(e),this.DATA_KEY)}static getOrCreateInstance(e,t={}){return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return VERSION}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}}const getSelector=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),t=n&&"#"!==n?n.trim():null}return t?t.split(",").map(e=>parseSelector(e)).join(","):null},SelectorEngine={find:(e,t=document.documentElement)=>[...Element.prototype.querySelectorAll.call(t,e)],findOne:(e,t=document.documentElement)=>Element.prototype.querySelector.call(t,e),children:(e,t)=>[...e.children].filter(e=>e.matches(t)),parents(e,t){const n=[];let s=e.parentNode.closest(t);for(;s;)n.push(s),s=s.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(e=>`${e}:not([tabindex^="-"])`).join(",");return this.find(t,e).filter(e=>!isDisabled(e)&&isVisible(e))},getSelectorFromElement(e){const t=getSelector(e);return t&&SelectorEngine.findOne(t)?t:null},getElementFromSelector(e){const t=getSelector(e);return t?SelectorEngine.findOne(t):null},getMultipleElementsFromSelector(e){const t=getSelector(e);return t?SelectorEngine.find(t):[]}},enableDismissTrigger=(e,t="hide")=>{const n=`click.dismiss${e.EVENT_KEY}`,s=e.NAME;EventHandler.on(document,n,`[data-bs-dismiss="${s}"]`,function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),isDisabled(this))return;const i=SelectorEngine.getElementFromSelector(this)||this.closest(`.${s}`);e.getOrCreateInstance(i)[t]()})},eventActionOnPlugin=(e,t,n,s,i=null)=>{eventAction(`${t}.${e.NAME}`,n,t=>{const n=t.targets.filter(Boolean).map(t=>e.getOrCreateInstance(t));"function"==typeof i&&i({...t,instances:n});for(const e of n)e[s]()})},eventAction=(e,t,n)=>{const s=`${t}:not(.disabled):not(:disabled)`;EventHandler.on(document,e,s,function(e){["A","AREA"].includes(this.tagName)&&e.preventDefault();const t=SelectorEngine.getSelectorFromElement(this),s=t?SelectorEngine.find(t):[this];n({targets:s,event:e})})},NAME$k="alert",DATA_KEY$g="bs.alert",EVENT_KEY$h=".bs.alert",EVENT_CLOSE="close.bs.alert",EVENT_CLOSED="closed.bs.alert",CLASS_NAME_FADE$3="fade",CLASS_NAME_SHOW$6="show";class Alert extends BaseComponent{static get NAME(){return NAME$k}close(){if(EventHandler.trigger(this._element,EVENT_CLOSE).defaultPrevented)return;this._element.classList.remove("show");const e=this._element.classList.contains("fade");this._queueCallback(()=>this._destroyElement(),this._element,e)}_destroyElement(){this._element.remove(),EventHandler.trigger(this._element,EVENT_CLOSED),this.dispose()}}enableDismissTrigger(Alert,"close");const NAME$j="button",DATA_KEY$f="bs.button",EVENT_KEY$g=`.${DATA_KEY$f}`,DATA_API_KEY$b=".data-api",CLASS_NAME_ACTIVE$4="active",SELECTOR_DATA_TOGGLE$a='[data-bs-toggle="button"]',EVENT_CLICK_DATA_API$8=`click${EVENT_KEY$g}.data-api`;class Button extends BaseComponent{static get NAME(){return NAME$j}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}}EventHandler.on(document,EVENT_CLICK_DATA_API$8,SELECTOR_DATA_TOGGLE$a,e=>{e.preventDefault();const t=e.target.closest(SELECTOR_DATA_TOGGLE$a);Button.getOrCreateInstance(t).toggle()});const NAME$i="swipe",EVENT_KEY$f=".bs.swipe",EVENT_TOUCHSTART="touchstart.bs.swipe",EVENT_TOUCHMOVE="touchmove.bs.swipe",EVENT_TOUCHEND="touchend.bs.swipe",EVENT_POINTERDOWN="pointerdown.bs.swipe",EVENT_POINTERUP="pointerup.bs.swipe",POINTER_TYPE_TOUCH="touch",POINTER_TYPE_PEN="pen",CLASS_NAME_POINTER_EVENT="pointer-event",SWIPE_THRESHOLD=40,Default$h={endCallback:null,leftCallback:null,rightCallback:null,upCallback:null,downCallback:null},DefaultType$h={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)",upCallback:"(function|null)",downCallback:"(function|null)"};class Swipe extends Config{constructor(e,t){super(),this._element=e,e&&Swipe.isSupported()&&(this._config=this._getConfig(t),this._deltaX=0,this._deltaY=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Default$h}static get DefaultType(){return DefaultType$h}static get NAME(){return NAME$i}dispose(){EventHandler.off(this._element,".bs.swipe")}_start(e){if(!this._supportPointerEvents)return this._deltaX=e.touches[0].clientX,void(this._deltaY=e.touches[0].clientY);this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX,this._deltaY=e.clientY)}_end(e){this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX-this._deltaX,this._deltaY=e.clientY-this._deltaY),this._handleSwipe(),execute(this._config.endCallback)}_move(e){if(e.touches&&e.touches.length>1)return this._deltaX=0,void(this._deltaY=0);this._deltaX=e.touches[0].clientX-this._deltaX,this._deltaY=e.touches[0].clientY-this._deltaY}_handleSwipe(){const e=Math.abs(this._deltaX),t=Math.abs(this._deltaY);if(t>e&&t>40){const e=this._deltaY>0?"down":"up";return this._deltaX=0,this._deltaY=0,void execute("down"===e?this._config.downCallback:this._config.upCallback)}if(e>40){const t=e/this._deltaX;if(this._deltaX=0,this._deltaY=0,!t)return;return void execute(t>0?this._config.rightCallback:this._config.leftCallback)}this._deltaX=0,this._deltaY=0}_initEvents(){this._supportPointerEvents?(EventHandler.on(this._element,EVENT_POINTERDOWN,e=>this._start(e)),EventHandler.on(this._element,EVENT_POINTERUP,e=>this._end(e)),this._element.classList.add("pointer-event")):(EventHandler.on(this._element,EVENT_TOUCHSTART,e=>this._start(e)),EventHandler.on(this._element,EVENT_TOUCHMOVE,e=>this._move(e)),EventHandler.on(this._element,EVENT_TOUCHEND,e=>this._end(e)))}_eventIsPointerPenTouch(e){return this._supportPointerEvents&&("pen"===e.pointerType||"touch"===e.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const NAME$h="carousel",DATA_KEY$e="bs.carousel",EVENT_KEY$e=`.${DATA_KEY$e}`,DATA_API_KEY$a=".data-api",ARROW_LEFT_KEY$2="ArrowLeft",ARROW_RIGHT_KEY$2="ArrowRight",TOUCHEVENT_COMPAT_WAIT=500,ORDER_NEXT="next",ORDER_PREV="prev",DIRECTION_LEFT="left",DIRECTION_RIGHT="right",EVENT_SLIDE=`slide${EVENT_KEY$e}`,EVENT_SLID=`slid${EVENT_KEY$e}`,EVENT_KEYDOWN$1=`keydown${EVENT_KEY$e}`,EVENT_MOUSEENTER$2=`mouseenter${EVENT_KEY$e}`,EVENT_MOUSELEAVE$1=`mouseleave${EVENT_KEY$e}`,EVENT_DRAG_START=`dragstart${EVENT_KEY$e}`,EVENT_LOAD_DATA_API$3=`load${EVENT_KEY$e}.data-api`,EVENT_CLICK_DATA_API$7=`click${EVENT_KEY$e}.data-api`,CLASS_NAME_CAROUSEL="carousel",CLASS_NAME_ACTIVE$3="active",CLASS_NAME_SLIDE="slide",CLASS_NAME_END="carousel-item-end",CLASS_NAME_START="carousel-item-start",CLASS_NAME_NEXT="carousel-item-next",CLASS_NAME_PREV="carousel-item-prev",SELECTOR_ACTIVE=".active",SELECTOR_ITEM=".carousel-item",SELECTOR_ACTIVE_ITEM=".active.carousel-item",SELECTOR_ITEM_IMG=".carousel-item img",SELECTOR_INDICATORS=".carousel-indicators",SELECTOR_DATA_SLIDE="[data-bs-slide], [data-bs-slide-to]",SELECTOR_DATA_RIDE='[data-bs-ride="carousel"]',KEY_TO_DIRECTION={[ARROW_LEFT_KEY$2]:"right",[ARROW_RIGHT_KEY$2]:"left"},Default$g={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},DefaultType$g={interval:"number",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class Carousel extends BaseComponent{constructor(e,t){super(e,t),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=SelectorEngine.findOne(SELECTOR_INDICATORS,this._element),this._addEventListeners(),"carousel"===this._config.ride&&this.cycle()}static get Default(){return Default$g}static get DefaultType(){return DefaultType$g}static get NAME(){return NAME$h}next(){this._slide("next")}nextWhenVisible(){"visible"===document.visibilityState&&isVisible(this._element)&&this.next()}prev(){this._slide("prev")}pause(){this._isSliding&&triggerTransitionEnd(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?EventHandler.one(this._element,EVENT_SLID,()=>this.cycle()):this.cycle())}to(e){const t=this._getItems();if(e>t.length-1||e<0)return;if(this._isSliding)return void EventHandler.one(this._element,EVENT_SLID,()=>this.to(e));const n=this._getItemIndex(this._getActive());if(n===e)return;const s=e>n?"next":"prev";this._slide(s,t[e])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(e){return e.defaultInterval=e.interval,e}_addEventListeners(){this._config.keyboard&&EventHandler.on(this._element,EVENT_KEYDOWN$1,e=>this._keydown(e)),"hover"===this._config.pause&&(EventHandler.on(this._element,EVENT_MOUSEENTER$2,()=>this.pause()),EventHandler.on(this._element,EVENT_MOUSELEAVE$1,()=>this._maybeEnableCycle())),this._config.touch&&Swipe.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const e of SelectorEngine.find(SELECTOR_ITEM_IMG,this._element))EventHandler.on(e,EVENT_DRAG_START,e=>e.preventDefault());const e={leftCallback:()=>this._slide(this._directionToOrder("left")),rightCallback:()=>this._slide(this._directionToOrder("right")),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),500+this._config.interval))}};this._swipeHelper=new Swipe(this._element,e)}_keydown(e){if(/input|textarea/i.test(e.target.tagName))return;const t=KEY_TO_DIRECTION[e.key];t&&(e.preventDefault(),this._slide(this._directionToOrder(t)))}_getItemIndex(e){return this._getItems().indexOf(e)}_setActiveIndicatorElement(e){if(!this._indicatorsElement)return;const t=SelectorEngine.findOne(".active",this._indicatorsElement);t.classList.remove("active"),t.removeAttribute("aria-current");const n=SelectorEngine.findOne(`[data-bs-slide-to="${e}"]`,this._indicatorsElement);n&&(n.classList.add("active"),n.setAttribute("aria-current","true"))}_updateInterval(){const e=this._activeElement||this._getActive();if(!e)return;const t=Number.parseInt(e.getAttribute("data-bs-interval"),10);this._config.interval=t||this._config.defaultInterval}_slide(e,t=null){if(this._isSliding)return;const n=this._getActive(),s="next"===e,i=t||getNextActiveElement(this._getItems(),n,s,this._config.wrap);if(i===n)return;const o=this._getItemIndex(i),a=t=>EventHandler.trigger(this._element,t,{relatedTarget:i,direction:this._orderToDirection(e),from:this._getItemIndex(n),to:o});if(a(EVENT_SLIDE).defaultPrevented)return;if(!n||!i)return;const l=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=i;const r=s?CLASS_NAME_START:CLASS_NAME_END,c=s?CLASS_NAME_NEXT:CLASS_NAME_PREV;i.classList.add(c),reflow(i),n.classList.add(r),i.classList.add(r),this._queueCallback(()=>{i.classList.remove(r,c),i.classList.add("active"),n.classList.remove("active",c,r),this._isSliding=!1,a(EVENT_SLID)},n,this._isAnimated()),l&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element)}_getItems(){return SelectorEngine.find(SELECTOR_ITEM,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(e){return isRTL$1()?"left"===e?"prev":"next":"left"===e?"next":"prev"}_orderToDirection(e){return isRTL$1()?"prev"===e?"left":"right":"prev"===e?"right":"left"}}EventHandler.on(document,EVENT_CLICK_DATA_API$7,SELECTOR_DATA_SLIDE,function(e){const t=SelectorEngine.getElementFromSelector(this);if(!t||!t.classList.contains("carousel"))return;e.preventDefault();const n=Carousel.getOrCreateInstance(t),s=this.getAttribute("data-bs-slide-to");return s?(n.to(s),void n._maybeEnableCycle()):"next"===Manipulator.getDataAttribute(this,"slide")?(n.next(),void n._maybeEnableCycle()):(n.prev(),void n._maybeEnableCycle())}),EventHandler.on(window,EVENT_LOAD_DATA_API$3,()=>{const e=SelectorEngine.find(SELECTOR_DATA_RIDE);for(const t of e)Carousel.getOrCreateInstance(t)});const NAME$g="collapse",DATA_KEY$d="bs.collapse",EVENT_KEY$d=`.${DATA_KEY$d}`,DATA_API_KEY$9=".data-api",EVENT_SHOW$7=`show${EVENT_KEY$d}`,EVENT_SHOWN$6=`shown${EVENT_KEY$d}`,EVENT_HIDE$6=`hide${EVENT_KEY$d}`,EVENT_HIDDEN$8=`hidden${EVENT_KEY$d}`,EVENT_CLICK_DATA_API$6=`click${EVENT_KEY$d}.data-api`,CLASS_NAME_SHOW$5="show",CLASS_NAME_COLLAPSE="collapse",CLASS_NAME_COLLAPSING="collapsing",CLASS_NAME_COLLAPSED="collapsed",CLASS_NAME_DEEPER_CHILDREN=":scope .collapse .collapse",CLASS_NAME_HORIZONTAL="collapse-horizontal",WIDTH="width",HEIGHT="height",SELECTOR_ACTIVES=".collapse.show, .collapse.collapsing",SELECTOR_DATA_TOGGLE$9='[data-bs-toggle="collapse"]',Default$f={parent:null,toggle:!0},DefaultType$f={parent:"(null|element)",toggle:"boolean"};class Collapse extends BaseComponent{constructor(e,t){super(e,t),this._isTransitioning=!1,this._triggerArray=[];const n=SelectorEngine.find(SELECTOR_DATA_TOGGLE$9);for(const e of n){const t=SelectorEngine.getSelectorFromElement(e),n=SelectorEngine.find(t).filter(e=>e===this._element);null!==t&&n.length&&this._triggerArray.push(e)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Default$f}static get DefaultType(){return DefaultType$f}static get NAME(){return NAME$g}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e=[];if(this._config.parent&&(e=this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(e=>e!==this._element).map(e=>Collapse.getOrCreateInstance(e,{toggle:!1}))),e.length&&e[0]._isTransitioning)return;if(EventHandler.trigger(this._element,EVENT_SHOW$7).defaultPrevented)return;for(const t of e)t.hide();const t=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[t]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n=`scroll${t[0].toUpperCase()+t.slice(1)}`;this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove("collapsing"),this._element.classList.add("collapse","show"),this._element.style[t]="",EventHandler.trigger(this._element,EVENT_SHOWN$6)},this._element,!0),this._element.style[t]=`${this._element[n]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(EventHandler.trigger(this._element,EVENT_HIDE$6).defaultPrevented)return;const e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,reflow(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");for(const e of this._triggerArray){const t=SelectorEngine.getElementFromSelector(e);t&&!this._isShown(t)&&this._addAriaAndCollapsedClass([e],!1)}this._isTransitioning=!0,this._element.style[e]="",this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove("collapsing"),this._element.classList.add("collapse"),EventHandler.trigger(this._element,EVENT_HIDDEN$8)},this._element,!0)}_isShown(e=this._element){return e.classList.contains("show")}_configAfterMerge(e){return e.toggle=Boolean(e.toggle),e.parent=getElement(e.parent),e}_getDimension(){return this._element.classList.contains("collapse-horizontal")?WIDTH:HEIGHT}_initializeChildren(){if(!this._config.parent)return;const e=this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$9);for(const t of e){const e=SelectorEngine.getElementFromSelector(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}}_getFirstLevelChildren(e){const t=SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN,this._config.parent);return SelectorEngine.find(e,this._config.parent).filter(e=>!t.includes(e))}_addAriaAndCollapsedClass(e,t){if(e.length)for(const n of e)n.classList.toggle("collapsed",!t),n.setAttribute("aria-expanded",t)}}EventHandler.on(document,EVENT_CLICK_DATA_API$6,SELECTOR_DATA_TOGGLE$9,function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();for(const e of SelectorEngine.getMultipleElementsFromSelector(this))Collapse.getOrCreateInstance(e,{toggle:!1}).toggle()});const min=Math.min,max=Math.max,round=Math.round,floor=Math.floor,createCoords=e=>({x:e,y:e}),oppositeSideMap={left:"right",right:"left",bottom:"top",top:"bottom"};function clamp(e,t,n){return max(e,min(t,n))}function evaluate(e,t){return"function"==typeof e?e(t):e}function getSide(e){return e.split("-")[0]}function getAlignment(e){return e.split("-")[1]}function getOppositeAxis(e){return"x"===e?"y":"x"}function getAxisLength(e){return"y"===e?"height":"width"}function getSideAxis(e){const t=e[0];return"t"===t||"b"===t?"y":"x"}function getAlignmentAxis(e){return getOppositeAxis(getSideAxis(e))}function getAlignmentSides(e,t,n){void 0===n&&(n=!1);const s=getAlignment(e),i=getAlignmentAxis(e),o=getAxisLength(i);let a="x"===i?s===(n?"end":"start")?"right":"left":"start"===s?"bottom":"top";return t.reference[o]>t.floating[o]&&(a=getOppositePlacement(a)),[a,getOppositePlacement(a)]}function getExpandedPlacements(e){const t=getOppositePlacement(e);return[getOppositeAlignmentPlacement(e),t,getOppositeAlignmentPlacement(t)]}function getOppositeAlignmentPlacement(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const lrPlacement=["left","right"],rlPlacement=["right","left"],tbPlacement=["top","bottom"],btPlacement=["bottom","top"];function getSideList(e,t,n){switch(e){case"top":case"bottom":return n?t?rlPlacement:lrPlacement:t?lrPlacement:rlPlacement;case"left":case"right":return t?tbPlacement:btPlacement;default:return[]}}function getOppositeAxisPlacements(e,t,n,s){const i=getAlignment(e);let o=getSideList(getSide(e),"start"===n,s);return i&&(o=o.map(e=>e+"-"+i),t&&(o=o.concat(o.map(getOppositeAlignmentPlacement)))),o}function getOppositePlacement(e){const t=getSide(e);return oppositeSideMap[t]+e.slice(t.length)}function expandPaddingObject(e){return{top:0,right:0,bottom:0,left:0,...e}}function getPaddingObject(e){return"number"!=typeof e?expandPaddingObject(e):{top:e,right:e,bottom:e,left:e}}function rectToClientRect(e){const{x:t,y:n,width:s,height:i}=e;return{width:s,height:i,top:n,left:t,right:t+s,bottom:n+i,x:t,y:n}}function computeCoordsFromPlacement(e,t,n){let{reference:s,floating:i}=e;const o=getSideAxis(t),a=getAlignmentAxis(t),l=getAxisLength(a),r=getSide(t),c="y"===o,d=s.x+s.width/2-i.width/2,u=s.y+s.height/2-i.height/2,h=s[l]/2-i[l]/2;let m;switch(r){case"top":m={x:d,y:s.y-i.height};break;case"bottom":m={x:d,y:s.y+s.height};break;case"right":m={x:s.x+s.width,y:u};break;case"left":m={x:s.x-i.width,y:u};break;default:m={x:s.x,y:s.y}}switch(getAlignment(t)){case"start":m[a]-=h*(n&&c?-1:1);break;case"end":m[a]+=h*(n&&c?-1:1)}return m}async function detectOverflow(e,t){var n;void 0===t&&(t={});const{x:s,y:i,platform:o,rects:a,elements:l,strategy:r}=e,{boundary:c="clippingAncestors",rootBoundary:d="viewport",elementContext:u="floating",altBoundary:h=!1,padding:m=0}=evaluate(t,e),_=getPaddingObject(m),g=l[h?"floating"===u?"reference":"floating":u],p=rectToClientRect(await o.getClippingRect({element:null==(n=await(null==o.isElement?void 0:o.isElement(g)))||n?g:g.contextElement||await(null==o.getDocumentElement?void 0:o.getDocumentElement(l.floating)),boundary:c,rootBoundary:d,strategy:r})),E="floating"===u?{x:s,y:i,width:a.floating.width,height:a.floating.height}:a.reference,f=await(null==o.getOffsetParent?void 0:o.getOffsetParent(l.floating)),v=await(null==o.isElement?void 0:o.isElement(f))&&await(null==o.getScale?void 0:o.getScale(f))||{x:1,y:1},T=rectToClientRect(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:E,offsetParent:f,strategy:r}):E);return{top:(p.top-T.top+_.top)/v.y,bottom:(T.bottom-p.bottom+_.bottom)/v.y,left:(p.left-T.left+_.left)/v.x,right:(T.right-p.right+_.right)/v.x}}const MAX_RESET_COUNT=50,computePosition$1=async(e,t,n)=>{const{placement:s="bottom",strategy:i="absolute",middleware:o=[],platform:a}=n,l=a.detectOverflow?a:{...a,detectOverflow:detectOverflow},r=await(null==a.isRTL?void 0:a.isRTL(t));let c=await a.getElementRects({reference:e,floating:t,strategy:i}),{x:d,y:u}=computeCoordsFromPlacement(c,s,r),h=s,m=0;const _={};for(let n=0;n<o.length;n++){const g=o[n];if(!g)continue;const{name:p,fn:E}=g,{x:f,y:v,data:T,reset:b}=await E({x:d,y:u,initialPlacement:s,placement:h,strategy:i,middlewareData:_,rects:c,platform:l,elements:{reference:e,floating:t}});d=null!=f?f:d,u=null!=v?v:u,_[p]={..._[p],...T},b&&m<50&&(m++,"object"==typeof b&&(b.placement&&(h=b.placement),b.rects&&(c=!0===b.rects?await a.getElementRects({reference:e,floating:t,strategy:i}):b.rects),({x:d,y:u}=computeCoordsFromPlacement(c,h,r))),n=-1)}return{x:d,y:u,placement:h,strategy:i,middlewareData:_}},arrow$1=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:s,placement:i,rects:o,platform:a,elements:l,middlewareData:r}=t,{element:c,padding:d=0}=evaluate(e,t)||{};if(null==c)return{};const u=getPaddingObject(d),h={x:n,y:s},m=getAlignmentAxis(i),_=getAxisLength(m),g=await a.getDimensions(c),p="y"===m,E=p?"top":"left",f=p?"bottom":"right",v=p?"clientHeight":"clientWidth",T=o.reference[_]+o.reference[m]-h[m]-o.floating[_],b=h[m]-o.reference[m],A=await(null==a.getOffsetParent?void 0:a.getOffsetParent(c));let D=A?A[v]:0;D&&await(null==a.isElement?void 0:a.isElement(A))||(D=l.floating[v]||o.floating[_]);const y=T/2-b/2,S=D/2-g[_]/2-1,C=min(u[E],S),w=min(u[f],S),N=C,x=D-g[_]-w,M=D/2-g[_]/2+y,L=clamp(N,M,x),O=!r.arrow&&null!=getAlignment(i)&&M!==L&&o.reference[_]/2-(M<N?C:w)-g[_]/2<0,$=O?M<N?M-N:M-x:0;return{[m]:h[m]+$,data:{[m]:L,centerOffset:M-L-$,...O&&{alignmentOffset:$}},reset:O}}}),flip$1=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,s;const{placement:i,middlewareData:o,rects:a,initialPlacement:l,platform:r,elements:c}=t,{mainAxis:d=!0,crossAxis:u=!0,fallbackPlacements:h,fallbackStrategy:m="bestFit",fallbackAxisSideDirection:_="none",flipAlignment:g=!0,...p}=evaluate(e,t);if(null!=(n=o.arrow)&&n.alignmentOffset)return{};const E=getSide(i),f=getSideAxis(l),v=getSide(l)===l,T=await(null==r.isRTL?void 0:r.isRTL(c.floating)),b=h||(v||!g?[getOppositePlacement(l)]:getExpandedPlacements(l)),A="none"!==_;!h&&A&&b.push(...getOppositeAxisPlacements(l,g,_,T));const D=[l,...b],y=await r.detectOverflow(t,p),S=[];let C=(null==(s=o.flip)?void 0:s.overflows)||[];if(d&&S.push(y[E]),u){const e=getAlignmentSides(i,a,T);S.push(y[e[0]],y[e[1]])}if(C=[...C,{placement:i,overflows:S}],!S.every(e=>e<=0)){var w,N;const e=((null==(w=o.flip)?void 0:w.index)||0)+1,t=D[e];if(t&&("alignment"!==u||f===getSideAxis(t)||C.every(e=>getSideAxis(e.placement)!==f||e.overflows[0]>0)))return{data:{index:e,overflows:C},reset:{placement:t}};let n=null==(N=C.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:N.placement;if(!n)switch(m){case"bestFit":{var x;const e=null==(x=C.filter(e=>{if(A){const t=getSideAxis(e.placement);return t===f||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:x[0];e&&(n=e);break}case"initialPlacement":n=l}if(i!==n)return{reset:{placement:n}}}return{}}}},originSides=new Set(["left","top"]);async function convertValueToCoords(e,t){const{placement:n,platform:s,elements:i}=e,o=await(null==s.isRTL?void 0:s.isRTL(i.floating)),a=getSide(n),l=getAlignment(n),r="y"===getSideAxis(n),c=originSides.has(a)?-1:1,d=o&&r?-1:1,u=evaluate(t,e);let{mainAxis:h,crossAxis:m,alignmentAxis:_}="number"==typeof u?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return l&&"number"==typeof _&&(m="end"===l?-1*_:_),r?{x:m*d,y:h*c}:{x:h*c,y:m*d}}const offset$1=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,s;const{x:i,y:o,placement:a,middlewareData:l}=t,r=await convertValueToCoords(t,e);return a===(null==(n=l.offset)?void 0:n.placement)&&null!=(s=l.arrow)&&s.alignmentOffset?{}:{x:i+r.x,y:o+r.y,data:{...r,placement:a}}}}},shift$1=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:s,placement:i,platform:o}=t,{mainAxis:a=!0,crossAxis:l=!1,limiter:r={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...c}=evaluate(e,t),d={x:n,y:s},u=await o.detectOverflow(t,c),h=getSideAxis(getSide(i)),m=getOppositeAxis(h);let _=d[m],g=d[h];if(a){const e="y"===m?"bottom":"right";_=clamp(_+u["y"===m?"top":"left"],_,_-u[e])}if(l){const e="y"===h?"bottom":"right";g=clamp(g+u["y"===h?"top":"left"],g,g-u[e])}const p=r.fn({...t,[m]:_,[h]:g});return{...p,data:{x:p.x-n,y:p.y-s,enabled:{[m]:a,[h]:l}}}}}};function hasWindow(){return"undefined"!=typeof window}function getNodeName(e){return isNode(e)?(e.nodeName||"").toLowerCase():"#document"}function getWindow(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function getDocumentElement(e){var t;return null==(t=(isNode(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function isNode(e){return!!hasWindow()&&(e instanceof Node||e instanceof getWindow(e).Node)}function isElement(e){return!!hasWindow()&&(e instanceof Element||e instanceof getWindow(e).Element)}function isHTMLElement(e){return!!hasWindow()&&(e instanceof HTMLElement||e instanceof getWindow(e).HTMLElement)}function isShadowRoot(e){return!(!hasWindow()||"undefined"==typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof getWindow(e).ShadowRoot)}function isOverflowElement(e){const{overflow:t,overflowX:n,overflowY:s,display:i}=getComputedStyle$1(e);return/auto|scroll|overlay|hidden|clip/.test(t+s+n)&&"inline"!==i&&"contents"!==i}function isTableElement(e){return/^(table|td|th)$/.test(getNodeName(e))}function isTopLayer(e){try{if(e.matches(":popover-open"))return!0}catch(e){}try{return e.matches(":modal")}catch(e){return!1}}const willChangeRe=/transform|translate|scale|rotate|perspective|filter/,containRe=/paint|layout|strict|content/,isNotNone=e=>!!e&&"none"!==e;let isWebKitValue;function isContainingBlock(e){const t=isElement(e)?getComputedStyle$1(e):e;return isNotNone(t.transform)||isNotNone(t.translate)||isNotNone(t.scale)||isNotNone(t.rotate)||isNotNone(t.perspective)||!isWebKit()&&(isNotNone(t.backdropFilter)||isNotNone(t.filter))||willChangeRe.test(t.willChange||"")||containRe.test(t.contain||"")}function getContainingBlock(e){let t=getParentNode(e);for(;isHTMLElement(t)&&!isLastTraversableNode(t);){if(isContainingBlock(t))return t;if(isTopLayer(t))return null;t=getParentNode(t)}return null}function isWebKit(){return null==isWebKitValue&&(isWebKitValue="undefined"!=typeof CSS&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),isWebKitValue}function isLastTraversableNode(e){return/^(html|body|#document)$/.test(getNodeName(e))}function getComputedStyle$1(e){return getWindow(e).getComputedStyle(e)}function getNodeScroll(e){return isElement(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function getParentNode(e){if("html"===getNodeName(e))return e;const t=e.assignedSlot||e.parentNode||isShadowRoot(e)&&e.host||getDocumentElement(e);return isShadowRoot(t)?t.host:t}function getNearestOverflowAncestor(e){const t=getParentNode(e);return isLastTraversableNode(t)?e.ownerDocument?e.ownerDocument.body:e.body:isHTMLElement(t)&&isOverflowElement(t)?t:getNearestOverflowAncestor(t)}function getOverflowAncestors(e,t,n){var s;void 0===t&&(t=[]),void 0===n&&(n=!0);const i=getNearestOverflowAncestor(e),o=i===(null==(s=e.ownerDocument)?void 0:s.body),a=getWindow(i);if(o){const e=getFrameElement(a);return t.concat(a,a.visualViewport||[],isOverflowElement(i)?i:[],e&&n?getOverflowAncestors(e):[])}return t.concat(i,getOverflowAncestors(i,[],n))}function getFrameElement(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function getCssDimensions(e){const t=getComputedStyle$1(e);let n=parseFloat(t.width)||0,s=parseFloat(t.height)||0;const i=isHTMLElement(e),o=i?e.offsetWidth:n,a=i?e.offsetHeight:s,l=round(n)!==o||round(s)!==a;return l&&(n=o,s=a),{width:n,height:s,$:l}}function unwrapElement(e){return isElement(e)?e:e.contextElement}function getScale(e){const t=unwrapElement(e);if(!isHTMLElement(t))return createCoords(1);const n=t.getBoundingClientRect(),{width:s,height:i,$:o}=getCssDimensions(t);let a=(o?round(n.width):n.width)/s,l=(o?round(n.height):n.height)/i;return a&&Number.isFinite(a)||(a=1),l&&Number.isFinite(l)||(l=1),{x:a,y:l}}const noOffsets=createCoords(0);function getVisualOffsets(e){const t=getWindow(e);return isWebKit()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:noOffsets}function shouldAddVisualOffsets(e,t,n){return void 0===t&&(t=!1),!(!n||t&&n!==getWindow(e))&&t}function getBoundingClientRect(e,t,n,s){void 0===t&&(t=!1),void 0===n&&(n=!1);const i=e.getBoundingClientRect(),o=unwrapElement(e);let a=createCoords(1);t&&(s?isElement(s)&&(a=getScale(s)):a=getScale(e));const l=shouldAddVisualOffsets(o,n,s)?getVisualOffsets(o):createCoords(0);let r=(i.left+l.x)/a.x,c=(i.top+l.y)/a.y,d=i.width/a.x,u=i.height/a.y;if(o){const e=getWindow(o),t=s&&isElement(s)?getWindow(s):s;let n=e,i=getFrameElement(n);for(;i&&s&&t!==n;){const e=getScale(i),t=i.getBoundingClientRect(),s=getComputedStyle$1(i),o=t.left+(i.clientLeft+parseFloat(s.paddingLeft))*e.x,a=t.top+(i.clientTop+parseFloat(s.paddingTop))*e.y;r*=e.x,c*=e.y,d*=e.x,u*=e.y,r+=o,c+=a,n=getWindow(i),i=getFrameElement(n)}}return rectToClientRect({width:d,height:u,x:r,y:c})}function getWindowScrollBarX(e,t){const n=getNodeScroll(e).scrollLeft;return t?t.left+n:getBoundingClientRect(getDocumentElement(e)).left+n}function getHTMLOffset(e,t){const n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-getWindowScrollBarX(e,n),y:n.top+t.scrollTop}}function convertOffsetParentRelativeRectToViewportRelativeRect(e){let{elements:t,rect:n,offsetParent:s,strategy:i}=e;const o="fixed"===i,a=getDocumentElement(s),l=!!t&&isTopLayer(t.floating);if(s===a||l&&o)return n;let r={scrollLeft:0,scrollTop:0},c=createCoords(1);const d=createCoords(0),u=isHTMLElement(s);if((u||!u&&!o)&&(("body"!==getNodeName(s)||isOverflowElement(a))&&(r=getNodeScroll(s)),u)){const e=getBoundingClientRect(s);c=getScale(s),d.x=e.x+s.clientLeft,d.y=e.y+s.clientTop}const h=!a||u||o?createCoords(0):getHTMLOffset(a,r);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-r.scrollLeft*c.x+d.x+h.x,y:n.y*c.y-r.scrollTop*c.y+d.y+h.y}}function getClientRects(e){return Array.from(e.getClientRects())}function getDocumentRect(e){const t=getDocumentElement(e),n=getNodeScroll(e),s=e.ownerDocument.body,i=max(t.scrollWidth,t.clientWidth,s.scrollWidth,s.clientWidth),o=max(t.scrollHeight,t.clientHeight,s.scrollHeight,s.clientHeight);let a=-n.scrollLeft+getWindowScrollBarX(e);const l=-n.scrollTop;return"rtl"===getComputedStyle$1(s).direction&&(a+=max(t.clientWidth,s.clientWidth)-i),{width:i,height:o,x:a,y:l}}const SCROLLBAR_MAX=25;function getViewportRect(e,t){const n=getWindow(e),s=getDocumentElement(e),i=n.visualViewport;let o=s.clientWidth,a=s.clientHeight,l=0,r=0;if(i){o=i.width,a=i.height;const e=isWebKit();(!e||e&&"fixed"===t)&&(l=i.offsetLeft,r=i.offsetTop)}const c=getWindowScrollBarX(s);if(c<=0){const e=s.ownerDocument,t=e.body,n=getComputedStyle(t),i="CSS1Compat"===e.compatMode&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,a=Math.abs(s.clientWidth-t.clientWidth-i);a<=25&&(o-=a)}else c<=25&&(o+=c);return{width:o,height:a,x:l,y:r}}function getInnerBoundingClientRect(e,t){const n=getBoundingClientRect(e,!0,"fixed"===t),s=n.top+e.clientTop,i=n.left+e.clientLeft,o=isHTMLElement(e)?getScale(e):createCoords(1);return{width:e.clientWidth*o.x,height:e.clientHeight*o.y,x:i*o.x,y:s*o.y}}function getClientRectFromClippingAncestor(e,t,n){let s;if("viewport"===t)s=getViewportRect(e,n);else if("document"===t)s=getDocumentRect(getDocumentElement(e));else if(isElement(t))s=getInnerBoundingClientRect(t,n);else{const n=getVisualOffsets(e);s={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return rectToClientRect(s)}function hasFixedPositionAncestor(e,t){const n=getParentNode(e);return!(n===t||!isElement(n)||isLastTraversableNode(n))&&("fixed"===getComputedStyle$1(n).position||hasFixedPositionAncestor(n,t))}function getClippingElementAncestors(e,t){const n=t.get(e);if(n)return n;let s=getOverflowAncestors(e,[],!1).filter(e=>isElement(e)&&"body"!==getNodeName(e)),i=null;const o="fixed"===getComputedStyle$1(e).position;let a=o?getParentNode(e):e;for(;isElement(a)&&!isLastTraversableNode(a);){const t=getComputedStyle$1(a),n=isContainingBlock(a);n||"fixed"!==t.position||(i=null),(o?!n&&!i:!n&&"static"===t.position&&i&&("absolute"===i.position||"fixed"===i.position)||isOverflowElement(a)&&!n&&hasFixedPositionAncestor(e,a))?s=s.filter(e=>e!==a):i=t,a=getParentNode(a)}return t.set(e,s),s}function getClippingRect(e){let{element:t,boundary:n,rootBoundary:s,strategy:i}=e;const o=[..."clippingAncestors"===n?isTopLayer(t)?[]:getClippingElementAncestors(t,this._c):[].concat(n),s],a=getClientRectFromClippingAncestor(t,o[0],i);let l=a.top,r=a.right,c=a.bottom,d=a.left;for(let e=1;e<o.length;e++){const n=getClientRectFromClippingAncestor(t,o[e],i);l=max(n.top,l),r=min(n.right,r),c=min(n.bottom,c),d=max(n.left,d)}return{width:r-d,height:c-l,x:d,y:l}}function getDimensions(e){const{width:t,height:n}=getCssDimensions(e);return{width:t,height:n}}function getRectRelativeToOffsetParent(e,t,n){const s=isHTMLElement(t),i=getDocumentElement(t),o="fixed"===n,a=getBoundingClientRect(e,!0,o,t);let l={scrollLeft:0,scrollTop:0};const r=createCoords(0);function c(){r.x=getWindowScrollBarX(i)}if(s||!s&&!o)if(("body"!==getNodeName(t)||isOverflowElement(i))&&(l=getNodeScroll(t)),s){const e=getBoundingClientRect(t,!0,o,t);r.x=e.x+t.clientLeft,r.y=e.y+t.clientTop}else i&&c();o&&!s&&i&&c();const d=!i||s||o?createCoords(0):getHTMLOffset(i,l);return{x:a.left+l.scrollLeft-r.x-d.x,y:a.top+l.scrollTop-r.y-d.y,width:a.width,height:a.height}}function isStaticPositioned(e){return"static"===getComputedStyle$1(e).position}function getTrueOffsetParent(e,t){if(!isHTMLElement(e)||"fixed"===getComputedStyle$1(e).position)return null;if(t)return t(e);let n=e.offsetParent;return getDocumentElement(e)===n&&(n=n.ownerDocument.body),n}function getOffsetParent(e,t){const n=getWindow(e);if(isTopLayer(e))return n;if(!isHTMLElement(e)){let t=getParentNode(e);for(;t&&!isLastTraversableNode(t);){if(isElement(t)&&!isStaticPositioned(t))return t;t=getParentNode(t)}return n}let s=getTrueOffsetParent(e,t);for(;s&&isTableElement(s)&&isStaticPositioned(s);)s=getTrueOffsetParent(s,t);return s&&isLastTraversableNode(s)&&isStaticPositioned(s)&&!isContainingBlock(s)?n:s||getContainingBlock(e)||n}const getElementRects=async function(e){const t=this.getOffsetParent||getOffsetParent,n=this.getDimensions,s=await n(e.floating);return{reference:getRectRelativeToOffsetParent(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:s.width,height:s.height}}};function isRTL(e){return"rtl"===getComputedStyle$1(e).direction}const platform={convertOffsetParentRelativeRectToViewportRelativeRect:convertOffsetParentRelativeRectToViewportRelativeRect,getDocumentElement:getDocumentElement,getClippingRect:getClippingRect,getOffsetParent:getOffsetParent,getElementRects:getElementRects,getClientRects:getClientRects,getDimensions:getDimensions,getScale:getScale,isElement:isElement,isRTL:isRTL};function rectsAreEqual(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function observeMove(e,t){let n,s=null;const i=getDocumentElement(e);function o(){var e;clearTimeout(n),null==(e=s)||e.disconnect(),s=null}return function a(l,r){void 0===l&&(l=!1),void 0===r&&(r=1),o();const c=e.getBoundingClientRect(),{left:d,top:u,width:h,height:m}=c;if(l||t(),!h||!m)return;const _={rootMargin:-floor(u)+"px "+-floor(i.clientWidth-(d+h))+"px "+-floor(i.clientHeight-(u+m))+"px "+-floor(d)+"px",threshold:max(0,min(1,r))||1};let g=!0;function p(t){const s=t[0].intersectionRatio;if(s!==r){if(!g)return a();s?a(!1,s):n=setTimeout(()=>{a(!1,1e-7)},1e3)}1!==s||rectsAreEqual(c,e.getBoundingClientRect())||a(),g=!1}try{s=new IntersectionObserver(p,{..._,root:i.ownerDocument})}catch(e){s=new IntersectionObserver(p,_)}s.observe(e)}(!0),o}function autoUpdate(e,t,n,s){void 0===s&&(s={});const{ancestorScroll:i=!0,ancestorResize:o=!0,elementResize:a="function"==typeof ResizeObserver,layoutShift:l="function"==typeof IntersectionObserver,animationFrame:r=!1}=s,c=unwrapElement(e),d=i||o?[...c?getOverflowAncestors(c):[],...t?getOverflowAncestors(t):[]]:[];d.forEach(e=>{i&&e.addEventListener("scroll",n,{passive:!0}),o&&e.addEventListener("resize",n)});const u=c&&l?observeMove(c,n):null;let h,m=-1,_=null;a&&(_=new ResizeObserver(e=>{let[s]=e;s&&s.target===c&&_&&t&&(_.unobserve(t),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var e;null==(e=_)||e.observe(t)})),n()}),c&&!r&&_.observe(c),t&&_.observe(t));let g=r?getBoundingClientRect(e):null;return r&&function t(){const s=getBoundingClientRect(e);g&&!rectsAreEqual(g,s)&&n(),g=s,h=requestAnimationFrame(t)}(),n(),()=>{var e;d.forEach(e=>{i&&e.removeEventListener("scroll",n),o&&e.removeEventListener("resize",n)}),null==u||u(),null==(e=_)||e.disconnect(),_=null,r&&cancelAnimationFrame(h)}}const offset=offset$1,shift=shift$1,flip=flip$1,arrow=arrow$1,computePosition=(e,t,n)=>{const s=new Map,i={platform:platform,...n},o={...i.platform,_c:s};return computePosition$1(e,t,{...i,platform:o})},BREAKPOINTS={sm:576,md:768,lg:1024,xl:1280,"2xl":1536},parseResponsivePlacement=(e,t="bottom")=>{if(!e||!e.includes(":"))return null;const n=e.split(/\s+/),s={xs:t};for(const e of n)if(e.includes(":")){const[t,n]=e.split(":");void 0!==BREAKPOINTS[t]&&(s[t]=n)}else s.xs=e;return s},getResponsivePlacement=(e,t="bottom")=>{if(!e)return t;const n=window.innerWidth;let s=e.xs||t;const i=["sm","md","lg","xl","2xl"];for(const t of i)n>=BREAKPOINTS[t]&&e[t]&&(s=e[t]);return s},createBreakpointListeners=e=>{const t=[];for(const n of Object.keys(BREAKPOINTS)){const s=BREAKPOINTS[n],i=window.matchMedia(`(min-width: ${s}px)`);i.addEventListener("change",e),t.push({mql:i,handler:e})}return t},disposeBreakpointListeners=e=>{for(const{mql:t,handler:n}of e)t.removeEventListener("change",n)},NAME$f="menu",DATA_KEY$c="bs.menu",EVENT_KEY$c=".bs.menu",DATA_API_KEY$8=".data-api",ESCAPE_KEY$1="Escape",TAB_KEY$1="Tab",ARROW_UP_KEY$2="ArrowUp",ARROW_DOWN_KEY$2="ArrowDown",ARROW_LEFT_KEY$1="ArrowLeft",ARROW_RIGHT_KEY$1="ArrowRight",HOME_KEY$2="Home",END_KEY$2="End",ENTER_KEY$1="Enter",SPACE_KEY$1=" ",RIGHT_MOUSE_BUTTON=2,SUBMENU_CLOSE_DELAY=100,EVENT_HIDE$5="hide.bs.menu",EVENT_HIDDEN$7="hidden.bs.menu",EVENT_SHOW$6="show.bs.menu",EVENT_SHOWN$5="shown.bs.menu",EVENT_CLICK_DATA_API$5="click.bs.menu.data-api",EVENT_KEYDOWN_DATA_API="keydown.bs.menu.data-api",EVENT_KEYUP_DATA_API="keyup.bs.menu.data-api",CLASS_NAME_SHOW$4="show",SELECTOR_DATA_TOGGLE$8='[data-bs-toggle="menu"]:not(.disabled):not(:disabled)',SELECTOR_MENU$2=".menu",SELECTOR_SUBMENU=".submenu",SELECTOR_SUBMENU_TOGGLE=".submenu > .menu-item",SELECTOR_NAVBAR_NAV=".navbar-nav",SELECTOR_VISIBLE_ITEMS$1=".menu-item:not(.disabled):not(:disabled)",DEFAULT_PLACEMENT="bottom-start",SUBMENU_PLACEMENT="end-start",resolveLogicalPlacement=e=>isRTL$1()?e.replace(/^start(?=-|$)/,"right").replace(/^end(?=-|$)/,"left"):e.replace(/^start(?=-|$)/,"left").replace(/^end(?=-|$)/,"right"),triangleSign=(e,t,n)=>(e.x-n.x)*(t.y-n.y)-(t.x-n.x)*(e.y-n.y),Default$e={autoClose:!0,boundary:"clippingParents",container:!1,display:"dynamic",offset:[0,2],floatingConfig:null,menu:null,placement:"bottom-start",reference:"toggle",strategy:"absolute",submenuTrigger:"both",submenuDelay:100},DefaultType$e={autoClose:"(boolean|string)",boundary:"(string|element)",container:"(string|element|boolean)",display:"string",offset:"(array|string|function)",floatingConfig:"(null|object|function)",menu:"(null|element)",placement:"string",reference:"(string|element|object)",strategy:"string",submenuTrigger:"string",submenuDelay:"number"};class Menu extends BaseComponent{static _openInstances=(()=>new Set)();constructor(e,t){super(e,t),this._floatingCleanup=null,this._mediaQueryListeners=[],this._responsivePlacements=null,this._parent=this._element.parentNode,this._isSubmenu=this._parent.classList?.contains("submenu"),this._openSubmenus=new Map,this._submenuCloseTimeouts=new Map,this._hoverIntentData=null,this._menu=this._config.menu||this._findMenu(),this._menuOriginalParent=this._menu?.parentNode,this._parseResponsivePlacements(),this._setupSubmenuListeners()}static get Default(){return Default$e}static get DefaultType(){return DefaultType$e}static get NAME(){return"menu"}toggle(){return this._isShown()?this.hide():this.show()}show(){if(isDisabled(this._element)||this._isShown())return;const e={relatedTarget:this._element};if(!EventHandler.trigger(this._element,EVENT_SHOW$6,e).defaultPrevented){if(this._moveMenuToContainer(),this._createFloating(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const e of document.body.children)EventHandler.on(e,"mouseover",noop);this._element.focus({focusVisible:!1}),this._element.setAttribute("aria-expanded","true"),this._menu.classList.add("show"),this._element.classList.add("show"),this._parent&&this._parent.classList.add("show"),Menu._openInstances.add(this),EventHandler.trigger(this._element,EVENT_SHOWN$5,e)}}hide(){if(isDisabled(this._element)||!this._isShown())return;const e={relatedTarget:this._element};this._completeHide(e)}dispose(){this._disposeFloating(),this._restoreMenuToOriginalParent(),this._disposeMediaQueryListeners(),this._closeAllSubmenus(),this._clearAllSubmenuTimeouts(),Menu._openInstances.delete(this),super.dispose()}update(){this._floatingCleanup&&this._updateFloatingPosition()}_findMenu(){return SelectorEngine.next(this._element,".menu")[0]||SelectorEngine.prev(this._element,".menu")[0]||SelectorEngine.findOne(".menu",this._parent)}_completeHide(e){if(!EventHandler.trigger(this._element,EVENT_HIDE$5,e).defaultPrevented){if(this._closeAllSubmenus(),"ontouchstart"in document.documentElement)for(const e of document.body.children)EventHandler.off(e,"mouseover",noop);this._disposeFloating(),this._restoreMenuToOriginalParent(),this._menu.classList.remove("show"),this._element.classList.remove("show"),this._parent&&this._parent.classList.remove("show"),this._element.setAttribute("aria-expanded","false"),Manipulator.removeDataAttribute(this._menu,"placement"),Manipulator.removeDataAttribute(this._menu,"display"),Menu._openInstances.delete(this),EventHandler.trigger(this._element,EVENT_HIDDEN$7,e)}}_getConfig(e){if("object"==typeof(e=super._getConfig(e)).reference&&!isElement$1(e.reference)&&"function"!=typeof e.reference.getBoundingClientRect)throw new TypeError(`${"menu".toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return e}_createFloating(){if("static"===this._config.display)return void Manipulator.setDataAttribute(this._menu,"display","static");let e=this._element;"parent"===this._config.reference?e=this._parent:isElement$1(this._config.reference)?e=getElement(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference),this._updateFloatingPosition(e),this._floatingCleanup=autoUpdate(e,this._menu,()=>this._updateFloatingPosition(e))}async _updateFloatingPosition(e=null){if(!this._menu)return;e||(e="parent"===this._config.reference?this._parent:isElement$1(this._config.reference)?getElement(this._config.reference):"object"==typeof this._config.reference?this._config.reference:this._element);const t=this._getPlacement(),n=this._getFloatingMiddleware(),s=this._getFloatingConfig(t,n);await this._applyFloatingPosition(e,this._menu,s.placement,s.middleware,s.strategy)}_isShown(){return this._menu.classList.contains("show")}_getPlacement(){const e=this._responsivePlacements?getResponsivePlacement(this._responsivePlacements,"bottom-start"):this._config.placement;return resolveLogicalPlacement(e)}_parseResponsivePlacements(){this._responsivePlacements=parseResponsivePlacement(this._config.placement,"bottom-start"),this._responsivePlacements&&this._setupMediaQueryListeners()}_setupMediaQueryListeners(){this._disposeMediaQueryListeners(),this._mediaQueryListeners=createBreakpointListeners(()=>{this._isShown()&&this._updateFloatingPosition()})}_disposeMediaQueryListeners(){disposeBreakpointListeners(this._mediaQueryListeners),this._mediaQueryListeners=[]}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?({placement:t,rects:n})=>e({placement:t,reference:n.reference,floating:n.floating},this._element):e}_getFloatingMiddleware(){const e=this._getOffset();return[offset("function"==typeof e?e:{mainAxis:e[1]||0,crossAxis:e[0]||0}),flip({fallbackPlacements:this._getFallbackPlacements()}),shift({boundary:"clippingParents"===this._config.boundary?"clippingAncestors":this._config.boundary})]}_getFallbackPlacements(){return{bottom:["top","bottom-start","bottom-end","top-start","top-end"],"bottom-start":["top-start","bottom-end","top-end"],"bottom-end":["top-end","bottom-start","top-start"],top:["bottom","top-start","top-end","bottom-start","bottom-end"],"top-start":["bottom-start","top-end","bottom-end"],"top-end":["bottom-end","top-start","bottom-start"],right:["left","right-start","right-end","left-start","left-end"],"right-start":["left-start","right-end","left-end","top-start","bottom-start"],"right-end":["left-end","right-start","left-start","top-end","bottom-end"],left:["right","left-start","left-end","right-start","right-end"],"left-start":["right-start","left-end","right-end","top-start","bottom-start"],"left-end":["right-end","left-start","right-start","top-end","bottom-end"]}[this._getPlacement()]||["top","bottom","right","left"]}_getFloatingConfig(e,t){const n={placement:e,middleware:t,strategy:this._config.strategy};return{...n,...execute(this._config.floatingConfig,[void 0,n])}}_disposeFloating(){this._floatingCleanup&&(this._floatingCleanup(),this._floatingCleanup=null)}_getContainer(){const{container:e}=this._config;return!1===e?null:!0===e?document.body:getElement(e)}_moveMenuToContainer(){const e=this._getContainer();e&&this._menu&&this._menu.parentNode!==e&&e.append(this._menu)}_restoreMenuToOriginalParent(){this._menuOriginalParent&&this._menu&&this._menu.parentNode!==this._menuOriginalParent&&this._menuOriginalParent.append(this._menu)}async _applyFloatingPosition(e,t,n,s,i="absolute"){if(!t.isConnected)return null;const{x:o,y:a,placement:l}=await computePosition(e,t,{placement:n,middleware:s,strategy:i});return t.isConnected?(Object.assign(t.style,{position:i,left:`${o}px`,top:`${a}px`,margin:"0"}),Manipulator.setDataAttribute(t,"placement",l),l):null}_setupSubmenuListeners(){"hover"!==this._config.submenuTrigger&&"both"!==this._config.submenuTrigger||(EventHandler.on(this._menu,"mouseenter",".submenu > .menu-item",e=>{this._onSubmenuTriggerEnter(e)}),EventHandler.on(this._menu,"mouseleave",".submenu",e=>{this._onSubmenuLeave(e)}),EventHandler.on(this._menu,"mousemove",e=>{this._trackMousePosition(e)})),"click"!==this._config.submenuTrigger&&"both"!==this._config.submenuTrigger||EventHandler.on(this._menu,"click",".submenu > .menu-item",e=>{this._onSubmenuTriggerClick(e)})}_onSubmenuTriggerEnter(e){const t=e.target.closest(".submenu > .menu-item");if(!t)return;const n=t.closest(".submenu"),s=SelectorEngine.findOne(".menu",n);s&&(this._cancelSubmenuCloseTimeout(s),this._closeSiblingSubmenus(n),this._openSubmenu(t,s,n))}_onSubmenuLeave(e){const t=e.target.closest(".submenu"),n=SelectorEngine.findOne(".menu",t);n&&this._openSubmenus.has(n)&&(this._isMovingTowardSubmenu(e,n)||this._scheduleSubmenuClose(n,t))}_onSubmenuTriggerClick(e){const t=e.target.closest(".submenu > .menu-item");if(!t)return;e.preventDefault(),e.stopPropagation();const n=t.closest(".submenu"),s=SelectorEngine.findOne(".menu",n);s&&(this._openSubmenus.has(s)?this._closeSubmenu(s,n):(this._closeSiblingSubmenus(n),this._openSubmenu(t,s,n)))}_openSubmenu(e,t,n){if(this._openSubmenus.has(t))return;e.setAttribute("aria-expanded","true"),e.setAttribute("aria-haspopup","true"),t.classList.add("show"),n.classList.add("show");const s=this._createSubmenuFloating(e,t,n);this._openSubmenus.set(t,s),EventHandler.on(t,"mouseenter",()=>{this._cancelSubmenuCloseTimeout(t)})}_closeSubmenu(e,t){if(!this._openSubmenus.has(e))return;const n=SelectorEngine.find(".submenu .menu.show",e);for(const e of n){const t=e.closest(".submenu");this._closeSubmenu(e,t)}const s=SelectorEngine.findOne(".submenu > .menu-item",t),i=this._openSubmenus.get(e);i&&i(),this._openSubmenus.delete(e),EventHandler.off(e,"mouseenter"),s&&s.setAttribute("aria-expanded","false"),e.classList.remove("show"),t.classList.remove("show"),e.style.position="",e.style.left="",e.style.top="",e.style.margin=""}_closeAllSubmenus(){for(const[e]of this._openSubmenus){const t=e.closest(".submenu");this._closeSubmenu(e,t)}}_closeSiblingSubmenus(e){const t=e.parentNode,n=SelectorEngine.find(".submenu > .menu.show",t);for(const t of n){const n=t.closest(".submenu");n!==e&&this._closeSubmenu(t,n)}}_createSubmenuFloating(e,t,n){const s=n,i=resolveLogicalPlacement("end-start"),o=[offset({mainAxis:0,crossAxis:-4}),flip({fallbackPlacements:[resolveLogicalPlacement("start-start"),resolveLogicalPlacement("end-end"),resolveLogicalPlacement("start-end")]}),shift({padding:8})],a=()=>this._applyFloatingPosition(s,t,i,o);return a(),autoUpdate(s,t,a)}_scheduleSubmenuClose(e,t){this._cancelSubmenuCloseTimeout(e);const n=setTimeout(()=>{this._closeSubmenu(e,t),this._submenuCloseTimeouts.delete(e)},this._config.submenuDelay);this._submenuCloseTimeouts.set(e,n)}_cancelSubmenuCloseTimeout(e){const t=this._submenuCloseTimeouts.get(e);t&&(clearTimeout(t),this._submenuCloseTimeouts.delete(e))}_clearAllSubmenuTimeouts(){for(const e of this._submenuCloseTimeouts.values())clearTimeout(e);this._submenuCloseTimeouts.clear()}_trackMousePosition(e){this._hoverIntentData={x:e.clientX,y:e.clientY,timestamp:Date.now()}}_isMovingTowardSubmenu(e,t){if(!this._hoverIntentData)return!1;const n=t.getBoundingClientRect(),s={x:e.clientX,y:e.clientY},i={x:this._hoverIntentData.x,y:this._hoverIntentData.y},o=isRTL$1()?n.right:n.left,a={x:o,y:n.top},l={x:o,y:n.bottom};return this._pointInTriangle(s,i,a,l)}_pointInTriangle(e,t,n,s){const i=triangleSign(e,t,n),o=triangleSign(e,n,s),a=triangleSign(e,s,t);return!((i<0||o<0||a<0)&&(i>0||o>0||a>0))}_selectMenuItem({key:e,target:t}){const n=t.closest(".menu")||this._menu,s=SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS$1}`,n).filter(e=>isVisible(e));s.length&&getNextActiveElement(s,t,e===ARROW_DOWN_KEY$2,!s.includes(t)).focus()}_handleSubmenuKeydown(e){const{key:t,target:n}=e,s=isRTL$1(),i=s?ARROW_LEFT_KEY$1:ARROW_RIGHT_KEY$1,o=s?ARROW_RIGHT_KEY$1:ARROW_LEFT_KEY$1,a=n.closest(".submenu"),l=a&&n.matches(".submenu > .menu-item");if((t===ENTER_KEY$1||t===SPACE_KEY$1)&&l){e.preventDefault(),e.stopPropagation();const t=SelectorEngine.findOne(".menu",a);return t&&(this._closeSiblingSubmenus(a),this._openSubmenu(n,t,a),requestAnimationFrame(()=>{const e=SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS$1,t);e&&e.focus()})),!0}if(t===i&&l){e.preventDefault(),e.stopPropagation();const t=SelectorEngine.findOne(".menu",a);return t&&(this._closeSiblingSubmenus(a),this._openSubmenu(n,t,a),requestAnimationFrame(()=>{const e=SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS$1,t);e&&e.focus()})),!0}if(t===o){const t=n.closest(".menu"),s=t?.closest(".submenu");if(s){e.preventDefault(),e.stopPropagation();const n=SelectorEngine.findOne(".submenu > .menu-item",s);return this._closeSubmenu(t,s),n&&n.focus(),!0}}if(t===HOME_KEY$2||t===END_KEY$2){e.preventDefault(),e.stopPropagation();const s=n.closest(".menu"),i=SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS$1}`,s).filter(e=>isVisible(e));return i.length&&(t===HOME_KEY$2?i[0]:i.at(-1)).focus(),!0}return!1}static clearMenus(e){if(2!==e.button&&("keyup"!==e.type||"Tab"===e.key))for(const t of Menu._openInstances){if(!1===t._config.autoClose)continue;const n=e.composedPath(),s=n.includes(t._menu);if(n.includes(t._element)||"inside"===t._config.autoClose&&!s||"outside"===t._config.autoClose&&s)continue;if(t._menu.contains(e.target)&&("keyup"===e.type&&"Tab"===e.key||/input|select|option|textarea|form/i.test(e.target.tagName)))continue;const i={relatedTarget:t._element};"click"===e.type&&(i.clickEvent=e),t._completeHide(i)}}static dataApiKeydownHandler(e){const t=/input|textarea/i.test(e.target.tagName),n="Escape"===e.key,s=[ARROW_UP_KEY$2,ARROW_DOWN_KEY$2].includes(e.key),i=[ARROW_LEFT_KEY$1,ARROW_RIGHT_KEY$1].includes(e.key),o=[HOME_KEY$2,END_KEY$2].includes(e.key),a=[ENTER_KEY$1,SPACE_KEY$1].includes(e.key),l=e.target.matches(".submenu > .menu-item");if(!(s||n||i||o||a&&l))return;if(t&&!n)return;const r=this.matches(SELECTOR_DATA_TOGGLE$8)?this:SelectorEngine.prev(this,SELECTOR_DATA_TOGGLE$8)[0]||SelectorEngine.next(this,SELECTOR_DATA_TOGGLE$8)[0]||SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$8,e.delegateTarget.parentNode);if(!r)return;const c=Menu.getOrCreateInstance(r);if(!(i||o||a&&l)||!c._handleSubmenuKeydown(e)){if(s)return e.preventDefault(),e.stopPropagation(),c.show(),void c._selectMenuItem(e);if(n&&c._isShown()){e.preventDefault(),e.stopPropagation();const t=e.target.closest(".menu"),n=t?.closest(".submenu");if(n&&c._openSubmenus.size>0){const e=SelectorEngine.findOne(".submenu > .menu-item",n);return c._closeSubmenu(t,n),void(e&&e.focus())}c.hide(),r.focus()}}}}EventHandler.on(document,EVENT_KEYDOWN_DATA_API,SELECTOR_DATA_TOGGLE$8,Menu.dataApiKeydownHandler),EventHandler.on(document,EVENT_KEYDOWN_DATA_API,".menu",Menu.dataApiKeydownHandler),EventHandler.on(document,EVENT_CLICK_DATA_API$5,Menu.clearMenus),EventHandler.on(document,EVENT_KEYUP_DATA_API,Menu.clearMenus),EventHandler.on(document,EVENT_CLICK_DATA_API$5,SELECTOR_DATA_TOGGLE$8,function(e){e.preventDefault(),Menu.getOrCreateInstance(this).toggle()});const NAME$e="combobox",DATA_KEY$b="bs.combobox",EVENT_KEY$b=`.${DATA_KEY$b}`,DATA_API_KEY$7=".data-api",ESCAPE_KEY="Escape",TAB_KEY="Tab",ARROW_UP_KEY$1="ArrowUp",ARROW_DOWN_KEY$1="ArrowDown",HOME_KEY$1="Home",END_KEY$1="End",ENTER_KEY="Enter",SPACE_KEY=" ",EVENT_CHANGE$2=`change${EVENT_KEY$b}`,EVENT_SHOW$5=`show${EVENT_KEY$b}`,EVENT_SHOWN$4=`shown${EVENT_KEY$b}`,EVENT_HIDE$4=`hide${EVENT_KEY$b}`,EVENT_HIDDEN$6=`hidden${EVENT_KEY$b}`,EVENT_CLICK_DATA_API$4=`click${EVENT_KEY$b}.data-api`,CLASS_NAME_SHOW$3="show",CLASS_NAME_SELECTED="selected",CLASS_NAME_PLACEHOLDER="combobox-placeholder",SELECTOR_DATA_TOGGLE$7='[data-bs-toggle="combobox"]',SELECTOR_MENU$1=".menu",SELECTOR_MENU_ITEM=".menu-item[data-bs-value]",SELECTOR_VISIBLE_ITEMS=".menu-item[data-bs-value]:not(.disabled):not(:disabled)",SELECTOR_VALUE=".combobox-value",SELECTOR_SEARCH_INPUT=".combobox-search-input",SELECTOR_NO_RESULTS=".combobox-no-results",Default$d={boundary:"clippingParents",multiple:!1,name:null,offset:[0,2],placeholder:"",placement:"bottom-start",search:!1,searchNormalize:!1},DefaultType$d={boundary:"(string|element)",multiple:"boolean",name:"(string|null)",offset:"(array|string|function)",placeholder:"string",placement:"string",search:"boolean",searchNormalize:"boolean"};class Combobox extends BaseComponent{constructor(e,t){super(e,t),this._toggle=this._element,this._menu=SelectorEngine.next(this._toggle,".menu")[0],this._valueDisplay=SelectorEngine.findOne(SELECTOR_VALUE,this._toggle),this._searchInput=SelectorEngine.findOne(SELECTOR_SEARCH_INPUT,this._menu),this._noResults=SelectorEngine.findOne(SELECTOR_NO_RESULTS,this._menu),this._hiddenInput=null,this._menuInstance=null,this._createHiddenInput(),this._createMenuInstance(),this._syncInitialSelection(),this._addEventListeners()}static get Default(){return Default$d}static get DefaultType(){return DefaultType$d}static get NAME(){return NAME$e}toggle(){return this._isShown()?this.hide():this.show()}show(){isDisabled(this._toggle)||this._isShown()||EventHandler.trigger(this._toggle,EVENT_SHOW$5).defaultPrevented||(this._menuInstance.show(),this._searchInput&&(this._searchInput.value="",this._filterItems(""),requestAnimationFrame(()=>this._searchInput.focus())),EventHandler.trigger(this._toggle,EVENT_SHOWN$4))}hide(){this._isShown()&&(EventHandler.trigger(this._toggle,EVENT_HIDE$4).defaultPrevented||(this._menuInstance.hide(),EventHandler.trigger(this._toggle,EVENT_HIDDEN$6)))}dispose(){this._menuInstance&&(this._menuInstance.dispose(),this._menuInstance=null),this._hiddenInput&&(this._hiddenInput.remove(),this._hiddenInput=null),EventHandler.off(this._menu,EVENT_KEY$b),EventHandler.off(this._toggle,EVENT_KEY$b),super.dispose()}_isShown(){return this._menu.classList.contains("show")}_createHiddenInput(){const{name:e}=this._config;e&&(this._hiddenInput=document.createElement("input"),this._hiddenInput.type="hidden",this._hiddenInput.name=e,this._hiddenInput.value="",this._toggle.parentNode.insertBefore(this._hiddenInput,this._toggle))}_createMenuInstance(){this._menuInstance=new Menu(this._toggle,{menu:this._menu,autoClose:!this._config.multiple||"outside",boundary:this._config.boundary,offset:this._config.offset,placement:this._config.placement})}_syncInitialSelection(){this._getSelectedItems().length>0?(this._updateToggleText(),this._updateHiddenInput()):this._showPlaceholder()}_addEventListeners(){EventHandler.on(this._menu,"click",SELECTOR_MENU_ITEM,e=>{const t=e.target.closest(SELECTOR_MENU_ITEM);t&&!isDisabled(t)&&(e.preventDefault(),e.stopPropagation(),this._selectItem(t))}),EventHandler.on(this._toggle,"keydown",e=>{this._handleToggleKeydown(e)}),EventHandler.on(this._menu,"keydown",e=>{this._handleMenuKeydown(e)}),this._searchInput&&(EventHandler.on(this._searchInput,"input",()=>{this._filterItems(this._searchInput.value)}),EventHandler.on(this._searchInput,"keydown",e=>{if("ArrowDown"===e.key){e.preventDefault();const t=this._getVisibleItems();t.length>0&&t[0].focus()}"Escape"===e.key&&(this.hide(),this._toggle.focus())}))}_selectItem(e){if(this._config.multiple)e.classList.toggle("selected"),e.setAttribute("aria-selected",e.classList.contains("selected"));else{const t=SelectorEngine.find(".selected",this._menu);for(const e of t)e.classList.remove("selected"),e.setAttribute("aria-selected","false");e.classList.add("selected"),e.setAttribute("aria-selected","true")}this._updateToggleText(),this._updateHiddenInput();const t=this._config.multiple?this._getSelectedItems().map(e=>e.dataset.bsValue):e.dataset.bsValue;EventHandler.trigger(this._toggle,EVENT_CHANGE$2,{value:t,item:e}),this._config.multiple||(this.hide(),this._toggle.focus())}_updateToggleText(){const e=this._getSelectedItems();if(0!==e.length)if(this._valueDisplay.classList.remove("combobox-placeholder"),this._config.multiple&&e.length>1)this._valueDisplay.textContent=`${e.length} selected`;else{const t=e[0],n=SelectorEngine.findOne(".menu-item-content > span:first-child",t);this._valueDisplay.textContent=n?n.textContent:t.textContent.trim()}else this._showPlaceholder()}_showPlaceholder(){const{placeholder:e}=this._config;e&&(this._valueDisplay.textContent=e,this._valueDisplay.classList.add("combobox-placeholder"))}_updateHiddenInput(){if(!this._hiddenInput)return;const e=this._getSelectedItems().map(e=>e.dataset.bsValue);this._hiddenInput.value=this._config.multiple?e.join(","):e[0]||""}_getSelectedItems(){return SelectorEngine.find(".selected",this._menu)}_getVisibleItems(){return SelectorEngine.find(SELECTOR_VISIBLE_ITEMS,this._menu).filter(e=>isVisible(e))}_filterItems(e){const t=this._normalizeText(e.toLowerCase().trim()),n=SelectorEngine.find(SELECTOR_MENU_ITEM,this._menu);let s=0;for(const e of n){const n=this._normalizeText(e.textContent.toLowerCase().trim()),i=!t||n.includes(t);e.style.display=i?"":"none",i&&s++}this._noResults&&this._noResults.classList.toggle("d-none",s>0)}_normalizeText(e){return this._config.searchNormalize?e.normalize("NFD").replace(/[\u0300-\u036F]/g,""):e}_handleToggleKeydown(e){const{key:t}=e;if("ArrowDown"===t||"ArrowUp"===t){e.preventDefault(),this._isShown()||this.show();const n=this._getVisibleItems();return void(n.length>0&&("ArrowDown"===t?n[0]:n.at(-1)).focus())}"Enter"!==t&&" "!==t||this._isShown()||(e.preventDefault(),this.show())}_handleMenuKeydown(e){const{key:t,target:n}=e;if("Escape"===t)return e.preventDefault(),e.stopPropagation(),this.hide(),void this._toggle.focus();if("Tab"===t)return void this.hide();const s=n.matches("input");if("ArrowDown"===t||"ArrowUp"===t){e.preventDefault();const s=this._getVisibleItems();return void(s.length>0&&getNextActiveElement(s,n,"ArrowDown"===t,!s.includes(n)).focus())}if("Home"===t||"End"===t){e.preventDefault();const n=this._getVisibleItems();return void(n.length>0&&("Home"===t?n[0]:n.at(-1)).focus())}if(("Enter"===t||" "===t)&&!s){e.preventDefault();const t=n.closest(SELECTOR_MENU_ITEM);t&&!isDisabled(t)&&this._selectItem(t)}}static jQueryInterface(e){return this.each(function(){const t=Combobox.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}EventHandler.on(document,EVENT_CLICK_DATA_API$4,SELECTOR_DATA_TOGGLE$7,function(e){e.preventDefault(),Combobox.getOrCreateInstance(this).toggle()}),EventHandler.on(document,"DOMContentLoaded",()=>{for(const e of SelectorEngine.find(SELECTOR_DATA_TOGGLE$7))Combobox.getOrCreateInstance(e)});
+const elementMap=new Map,Data={set(e,t,n){elementMap.has(e)||elementMap.set(e,new Map);const s=elementMap.get(e);s.has(t)||0===s.size?s.set(t,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${[...s.keys()][0]}.`)},get:(e,t)=>elementMap.has(e)&&elementMap.get(e).get(t)||null,getAny:e=>elementMap.has(e)&&elementMap.get(e).values().next().value||null,remove(e,t){if(!elementMap.has(e))return;const n=elementMap.get(e);n.delete(t),0===n.size&&elementMap.delete(e)}},namespaceRegex=/[^.]*(?=\..*)\.|.*/,stripNameRegex=/\..*/,stripUidRegex=/::\d+$/,eventRegistry={};let uidEvent=1;const customEvents={mouseenter:"mouseover",mouseleave:"mouseout"},nativeEvents=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function makeEventUid(e,t){return t&&`${t}::${uidEvent++}`||e.uidEvent||uidEvent++}function getElementEvents(e){const t=makeEventUid(e);return e.uidEvent=t,eventRegistry[t]=eventRegistry[t]||{},eventRegistry[t]}function bootstrapHandler(e,t){return function n(s){return hydrateObj(s,{delegateTarget:e}),n.oneOff&&EventHandler.off(e,s.type,t),t.apply(e,[s])}}function bootstrapDelegationHandler(e,t,n){return function s(i){const o=e.querySelectorAll(t);for(let{target:a}=i;a&&a!==this;a=a.parentNode)for(const l of o)if(l===a)return hydrateObj(i,{delegateTarget:a}),s.oneOff&&EventHandler.off(e,i.type,t,n),n.apply(a,[i])}}function findHandler(e,t,n=null){return Object.values(e).find(e=>e.callable===t&&e.delegationSelector===n)}function normalizeParameters(e,t,n){const s="string"==typeof t,i=s?n:t||n;let o=getTypeEvent(e);return nativeEvents.has(o)||(o=e),[s,i,o]}function addHandler(e,t,n,s,i){if("string"!=typeof t||!e)return;let[o,a,l]=normalizeParameters(t,n,s);if(t in customEvents){const e=e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};a=e(a)}const r=getElementEvents(e),c=r[l]||(r[l]={}),d=findHandler(c,a,o?n:null);if(d)return void(d.oneOff=d.oneOff&&i);const u=makeEventUid(a,t.replace(namespaceRegex,"")),h=o?bootstrapDelegationHandler(e,n,a):bootstrapHandler(e,a);h.delegationSelector=o?n:null,h.callable=a,h.oneOff=i,h.uidEvent=u,c[u]=h,e.addEventListener(l,h,o)}function removeHandler(e,t,n,s,i){const o=findHandler(t[n],s,i);o&&(e.removeEventListener(n,o,Boolean(i)),delete t[n][o.uidEvent])}function removeNamespacedHandlers(e,t,n,s){const i=t[n]||{};for(const[o,a]of Object.entries(i))o.includes(s)&&removeHandler(e,t,n,a.callable,a.delegationSelector)}function getTypeEvent(e){return e=e.replace(stripNameRegex,""),customEvents[e]||e}const EventHandler={on(e,t,n,s){addHandler(e,t,n,s,!1)},one(e,t,n,s){addHandler(e,t,n,s,!0)},off(e,t,n,s){if("string"!=typeof t||!e)return;const[i,o,a]=normalizeParameters(t,n,s),l=a!==t,r=getElementEvents(e),c=r[a]||{},d=t.startsWith(".");if(void 0===o){if(d)for(const n of Object.keys(r))removeNamespacedHandlers(e,r,n,t.slice(1));for(const[n,s]of Object.entries(c)){const i=n.replace(stripUidRegex,"");l&&!t.includes(i)||removeHandler(e,r,a,s.callable,s.delegationSelector)}}else{if(!Object.keys(c).length)return;removeHandler(e,r,a,o,i?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const s=hydrateObj(new Event(t,{bubbles:!0,cancelable:!0}),n);return e.dispatchEvent(s),s}};function hydrateObj(e,t={}){for(const[n,s]of Object.entries(t))try{e[n]=s}catch{Object.defineProperty(e,n,{configurable:!0,get:()=>s})}return e}function normalizeData(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function normalizeDataKey(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}const Manipulator={setDataAttribute(e,t,n){e.setAttribute(`data-bs-${normalizeDataKey(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${normalizeDataKey(t)}`)},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter(e=>e.startsWith("bs")&&!e.startsWith("bsConfig"));for(const s of n){let n=s.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1),t[n]=normalizeData(e.dataset[s])}return t},getDataAttribute:(e,t)=>normalizeData(e.getAttribute(`data-bs-${normalizeDataKey(t)}`))},MAX_UID=1e6,MILLISECONDS_MULTIPLIER=1e3,TRANSITION_END="transitionend",parseSelector=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,(e,t)=>`#${CSS.escape(t)}`)),e),toType=e=>null==e?`${e}`:Object.prototype.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase(),getUID=e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e},getTransitionDurationFromElement=e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const s=Number.parseFloat(t),i=Number.parseFloat(n);return s||i?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0},triggerTransitionEnd=e=>{e.dispatchEvent(new Event(TRANSITION_END))},isElement$1=e=>!(!e||"object"!=typeof e)&&void 0!==e.nodeType,getElement=e=>isElement$1(e)?e:"string"==typeof e&&e.length>0?document.querySelector(parseSelector(e)):null,isVisible=e=>{if(!isElement$1(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t},isDisabled=e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")),findShadowRoot=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?findShadowRoot(e.parentNode):null},noop=()=>{},reflow=e=>{e.offsetHeight},isRTL$1=()=>"rtl"===document.documentElement.dir,execute=(e,t=[],n=e)=>"function"==typeof e?e.call(...t):n,executeAfterTransition=(e,t,n=!0)=>{if(!n)return void execute(e);const s=getTransitionDurationFromElement(t)+5;let i=!1;const o=({target:n})=>{n===t&&(i=!0,t.removeEventListener(TRANSITION_END,o),execute(e))};t.addEventListener(TRANSITION_END,o),setTimeout(()=>{i||triggerTransitionEnd(t)},s)},getNextActiveElement=(e,t,n,s)=>{const i=e.length;let o=e.indexOf(t);return-1===o?!n&&s?e[i-1]:e[0]:(o+=n?1:-1,s&&(o=(o+i)%i),e[Math.max(0,Math.min(o,i-1))])};class Config{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=isElement$1(t)?Manipulator.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...isElement$1(t)?Manipulator.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e,t=this.constructor.DefaultType){for(const[n,s]of Object.entries(t)){const t=e[n],i=isElement$1(t)?"element":toType(t);if(!new RegExp(s).test(i))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${i}" but expected type "${s}".`)}}}const VERSION="6.0.0-alpha1";class BaseComponent extends Config{constructor(e,t){super(),(e=getElement(e))&&(this._element=e,this._config=this._getConfig(t),Data.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Data.remove(this._element,this.constructor.DATA_KEY),EventHandler.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t,n=!0){executeAfterTransition(e,t,n)}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return Data.get(getElement(e),this.DATA_KEY)}static getOrCreateInstance(e,t={}){return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return VERSION}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}}const getSelector=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),t=n&&"#"!==n?n.trim():null}return t?t.split(",").map(e=>parseSelector(e)).join(","):null},SelectorEngine={find:(e,t=document.documentElement)=>[...Element.prototype.querySelectorAll.call(t,e)],findOne:(e,t=document.documentElement)=>Element.prototype.querySelector.call(t,e),children:(e,t)=>[...e.children].filter(e=>e.matches(t)),parents(e,t){const n=[];let s=e.parentNode.closest(t);for(;s;)n.push(s),s=s.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(e=>`${e}:not([tabindex^="-"])`).join(",");return this.find(t,e).filter(e=>!isDisabled(e)&&isVisible(e))},getSelectorFromElement(e){const t=getSelector(e);return t&&SelectorEngine.findOne(t)?t:null},getElementFromSelector(e){const t=getSelector(e);return t?SelectorEngine.findOne(t):null},getMultipleElementsFromSelector(e){const t=getSelector(e);return t?SelectorEngine.find(t):[]}},enableDismissTrigger=(e,t="hide")=>{const n=`click.dismiss${e.EVENT_KEY}`,s=e.NAME;EventHandler.on(document,n,`[data-bs-dismiss="${s}"]`,function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),isDisabled(this))return;const i=SelectorEngine.getElementFromSelector(this)||this.closest(`.${s}`);e.getOrCreateInstance(i)[t]()})},eventActionOnPlugin=(e,t,n,s,i=null)=>{eventAction(`${t}.${e.NAME}`,n,t=>{const n=t.targets.filter(Boolean).map(t=>e.getOrCreateInstance(t));"function"==typeof i&&i({...t,instances:n});for(const e of n)e[s]()})},eventAction=(e,t,n)=>{const s=`${t}:not(.disabled):not(:disabled)`;EventHandler.on(document,e,s,function(e){["A","AREA"].includes(this.tagName)&&e.preventDefault();const t=SelectorEngine.getSelectorFromElement(this),s=t?SelectorEngine.find(t):[this];n({targets:s,event:e})})},NAME$k="alert",DATA_KEY$g="bs.alert",EVENT_KEY$h=".bs.alert",EVENT_CLOSE="close.bs.alert",EVENT_CLOSED="closed.bs.alert",CLASS_NAME_FADE$4="fade",CLASS_NAME_SHOW$6="show";class Alert extends BaseComponent{static get NAME(){return NAME$k}close(){if(EventHandler.trigger(this._element,EVENT_CLOSE).defaultPrevented)return;this._element.classList.remove("show");const e=this._element.classList.contains("fade");this._queueCallback(()=>this._destroyElement(),this._element,e)}_destroyElement(){this._element.remove(),EventHandler.trigger(this._element,EVENT_CLOSED),this.dispose()}}enableDismissTrigger(Alert,"close");const NAME$j="button",DATA_KEY$f="bs.button",EVENT_KEY$g=`.${DATA_KEY$f}`,DATA_API_KEY$b=".data-api",CLASS_NAME_ACTIVE$4="active",SELECTOR_DATA_TOGGLE$a='[data-bs-toggle="button"]',EVENT_CLICK_DATA_API$8=`click${EVENT_KEY$g}.data-api`;class Button extends BaseComponent{static get NAME(){return NAME$j}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}}EventHandler.on(document,EVENT_CLICK_DATA_API$8,SELECTOR_DATA_TOGGLE$a,e=>{e.preventDefault();const t=e.target.closest(SELECTOR_DATA_TOGGLE$a);Button.getOrCreateInstance(t).toggle()});const NAME$i="carousel",DATA_KEY$e="bs.carousel",EVENT_KEY$f=`.${DATA_KEY$e}`,DATA_API_KEY$a=".data-api",ARROW_LEFT_KEY$2="ArrowLeft",ARROW_RIGHT_KEY$2="ArrowRight",DIRECTION_LEFT="left",DIRECTION_RIGHT="right",EVENT_SLIDE=`slide${EVENT_KEY$f}`,EVENT_SLID=`slid${EVENT_KEY$f}`,EVENT_KEYDOWN$1=`keydown${EVENT_KEY$f}`,EVENT_MOUSEENTER$2=`mouseenter${EVENT_KEY$f}`,EVENT_MOUSELEAVE$1=`mouseleave${EVENT_KEY$f}`,EVENT_POINTERDOWN$1=`pointerdown${EVENT_KEY$f}`,EVENT_LOAD_DATA_API$3=`load${EVENT_KEY$f}.data-api`,EVENT_CLICK_DATA_API$7=`click${EVENT_KEY$f}.data-api`,CLASS_NAME_CAROUSEL="carousel",CLASS_NAME_ACTIVE$3="active",CLASS_NAME_FADE$3="carousel-fade",CLASS_NAME_CENTER="carousel-center",CLASS_NAME_AUTO="carousel-auto",CLASS_NAME_CLONE="carousel-item-clone",CLASS_NAME_PAUSED="paused",CLASS_NAME_PLAYING="carousel-playing",PROPERTY_INTERVAL="--bs-carousel-interval",SCROLL_SETTLE_MAX_FRAMES=10,ACTIVE_RATIO_TOLERANCE=.05,SELECTOR_ACTIVE=".active",SELECTOR_ITEM=`.carousel-item:not(.${CLASS_NAME_CLONE})`,SELECTOR_ACTIVE_ITEM=".active"+SELECTOR_ITEM,SELECTOR_INNER$1=".carousel-inner",SELECTOR_INDICATORS=".carousel-indicators",SELECTOR_PLAY_PAUSE=".carousel-control-play-pause",SELECTOR_DATA_SLIDE="[data-bs-slide], [data-bs-slide-to]",SELECTOR_DATA_SLIDE_PREV='[data-bs-slide="prev"]',SELECTOR_DATA_SLIDE_NEXT='[data-bs-slide="next"]',SELECTOR_DATA_AUTOPLAY='[data-bs-autoplay="true"]',KEY_TO_DIRECTION={[ARROW_LEFT_KEY$2]:"right",[ARROW_RIGHT_KEY$2]:"left"},ENDS_STOP="stop",ENDS_WRAP="wrap",ENDS_LOOP="loop",Default$h={autoplay:!1,ends:ENDS_LOOP,interval:5e3,keyboard:!0,pause:"hover"},DefaultType$h={autoplay:"boolean",ends:"string",interval:"number",keyboard:"boolean",pause:"(string|boolean)"};class Carousel extends BaseComponent{constructor(e,t){super(e,t),this._viewport=SelectorEngine.findOne(SELECTOR_INNER$1,this._element)||this._element,this._indicatorsElement=SelectorEngine.findOne(SELECTOR_INDICATORS,this._element),this._playPauseElement=SelectorEngine.findOne(SELECTOR_PLAY_PAUSE,this._element),this._prevControls=SelectorEngine.find('[data-bs-slide="prev"]',this._element),this._nextControls=SelectorEngine.find('[data-bs-slide="next"]',this._element),this._interval=null,this._observer=null,this._snapRestoreFrame=null,this._looping=!1,this._visibility=new Map,this._playing=this._config.autoplay,this._activeIndex=this._initialActiveIndex(),this._addEventListeners(),this._observeItems(),this._refreshActiveState(),this._playing&&this.cycle(),this._updatePlayPauseControl()}static get Default(){return Default$h}static get DefaultType(){return DefaultType$h}static get NAME(){return NAME$i}next(){this.to(this._navIndex()+1)}nextWhenVisible(){"visible"===document.visibilityState&&isVisible(this._element)&&this.next()}prev(){this.to(this._navIndex()-1)}pause(){this._clearInterval(),this._element.classList.remove("carousel-playing")}cycle(){this._clearInterval(),this._scheduleAutoplay(),this._element.classList.add("carousel-playing")}to(e){if(this._looping)return;const t=this._getItems(),n=Number.parseInt(e,10);if(this._config.ends===ENDS_LOOP&&!this._prefersReducedMotion()&&this._canLoop()){if(n>t.length-1)return void this._loopTransition(!0);if(n<0)return void this._loopTransition(!1)}const s=this._normalizeIndex(n,t.length),i=this._navIndex();null!==s&&s!==i&&(EventHandler.trigger(this._element,EVENT_SLIDE,{relatedTarget:t[s],direction:this._direction(i,s),from:i,to:s}).defaultPrevented||(this._isFade()?this._fadeTo(s):this._scrollToIndex(s)))}dispose(){this._clearInterval(),this._observer&&this._observer.disconnect(),null!==this._snapRestoreFrame&&cancelAnimationFrame(this._snapRestoreFrame);for(const e of SelectorEngine.find(`.${CLASS_NAME_CLONE}`,this._viewport))e.remove();this._viewport.style.scrollSnapType="",EventHandler.off(this._viewport,EVENT_KEY$f),super.dispose()}_configAfterMerge(e){return[ENDS_STOP,ENDS_WRAP,ENDS_LOOP].includes(e.ends)||(e.ends=Default$h.ends),e}_initialActiveIndex(){const e=SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element),t=e?this._getItems().indexOf(e):0;return Math.max(t,0)}_addEventListeners(){this._config.keyboard&&EventHandler.on(this._element,EVENT_KEYDOWN$1,e=>this._keydown(e)),"hover"===this._config.pause&&(EventHandler.on(this._element,EVENT_MOUSEENTER$2,()=>this.pause()),EventHandler.on(this._element,EVENT_MOUSELEAVE$1,()=>this._maybeEnableCycle())),EventHandler.on(this._viewport,EVENT_POINTERDOWN$1,()=>this._pauseFromInteraction())}_keydown(e){if(/input|textarea/i.test(e.target.tagName))return;const t=KEY_TO_DIRECTION[e.key];t&&(e.preventDefault(),this._pauseFromInteraction(),"right"===t?this.prev():this.next())}_observeItems(){if(!this._isFade()&&"undefined"!=typeof IntersectionObserver){this._observer=new IntersectionObserver(e=>this._handleIntersection(e),{root:this._viewport,threshold:[0,.25,.5,.75,1]});for(const e of this._getItems())this._observer.observe(e)}}_handleIntersection(e){if(this._looping)return;for(const t of e)this._visibility.set(t.target,t.isIntersecting?t.intersectionRatio:0);const t=this._getItems().map(e=>this._visibility.get(e)??0),n=Math.max(...t);let s=this._activeIndex;n>0&&(s=t.findIndex(e=>e>=n-.05)),this._setActive(s),this._updateEndControls()}_navIndex(){if(this._isFade()||this._viewport.scrollWidth-this._viewport.clientWidth<=0)return this._activeIndex;let e=this._activeIndex,t=Number.POSITIVE_INFINITY;for(const[n,s]of this._getItems().entries()){const i=Math.abs(this._scrollDelta(s));i<t&&(t=i,e=n)}return e}_scrollToIndex(e){const t=this._getItems()[e];if(!t)return;const n=this._scrollDelta(t);if(Math.abs(n)<1)return;const s=this._viewport.scrollLeft+n;this._viewport.style.scrollSnapType="none",this._viewport.scrollBy({left:n,top:0,behavior:this._prefersReducedMotion()?"instant":"smooth"}),this._restoreSnapWhenSettled(s,e)}_scrollDelta(e){const t=this._viewport.getBoundingClientRect(),n=e.getBoundingClientRect();if(this._element.classList.contains("carousel-center"))return n.left+n.width/2-(t.left+t.width/2);const s=Number.parseFloat(getComputedStyle(this._viewport).scrollPaddingInlineStart)||0;return isRTL$1()?n.right-(t.right-s):n.left-(t.left+s)}_loopTransition(e){const t=this._getItems(),n=t.length-1,s=this._activeIndex,i=e?0:n,o=this._loopDirection(e);if(EventHandler.trigger(this._element,EVENT_SLIDE,{relatedTarget:t[i],direction:o,from:s,to:i}).defaultPrevented)return;this._looping=!0;const a=(e?t[0]:t[n]).cloneNode(!0);a.classList.add(CLASS_NAME_CLONE),a.classList.remove("active"),a.removeAttribute("id");for(const e of SelectorEngine.find("[id]",a))e.removeAttribute("id");a.setAttribute("aria-hidden","true"),a.inert=!0,this._viewport.style.scrollSnapType="none",e?this._viewport.append(a):(this._viewport.prepend(a),this._jumpScroll(this._scrollDelta(t[s]))),this._viewport.scrollBy({left:this._scrollDelta(a),top:0,behavior:"smooth"}),this._afterScrollSettles(()=>{a.remove(),this._jumpScroll(this._scrollDelta(t[i])),this._activeIndex=i,this._refreshActiveState(),EventHandler.trigger(this._element,EVENT_SLID,{relatedTarget:t[i],direction:o,from:s,to:i}),this._viewport.style.scrollSnapType="",this._looping=!1})}_loopDirection(e){return isRTL$1()?e?"right":"left":e?"left":"right"}_jumpScroll(e){this._viewport.style.scrollSnapType="none",this._viewport.scrollBy({left:e,top:0,behavior:"instant"})}_restoreSnapWhenSettled(e,t){this._afterScrollSettles(()=>{this._viewport.style.scrollSnapType="",this._observer||void 0===t||this._setActive(t),this._updateEndControls()},e)}_afterScrollSettles(e,t){if("undefined"==typeof requestAnimationFrame)return void e();null!==this._snapRestoreFrame&&cancelAnimationFrame(this._snapRestoreFrame);const n=this._viewport.scrollLeft;let s=n,i=0,o=0,a=!1;const l=()=>{const r=this._viewport.scrollLeft,c=void 0!==t&&Math.abs(r-t)<=1;if(Math.abs(r-n)>1&&(a=!0),a&&(i=Math.abs(r-s)<1?i+1:0),s=r,o+=1,c||a&&i>=3||!a&&o>=10)return this._snapRestoreFrame=null,void e();this._snapRestoreFrame=requestAnimationFrame(l)};this._snapRestoreFrame=requestAnimationFrame(l)}_fadeTo(e){this._setActive(e)}_setActive(e){const t=this._getItems();if(e===this._activeIndex||!t[e])return;const n=this._activeIndex;this._activeIndex=e,this._refreshActiveState(),EventHandler.trigger(this._element,EVENT_SLID,{relatedTarget:t[e],direction:this._direction(n,e),from:n,to:e})}_refreshActiveState(){const e=this._getItems();for(const[t,n]of e.entries())n.classList.toggle("active",t===this._activeIndex);this._setActiveIndicatorElement(this._activeIndex),this._updateEndControls()}_updateEndControls(){if(this._config.ends!==ENDS_STOP)return;const e=this._viewport,t=e.scrollWidth-e.clientWidth;let n,s;if(t>0){const i=Math.abs(e.scrollLeft);n=i<=1,s=i>=t-1}else{const e=this._getItems().length-1;n=this._activeIndex<=0,s=this._activeIndex>=e}this._setControlsDisabled(this._prevControls,n),this._setControlsDisabled(this._nextControls,s)}_setControlsDisabled(e,t){for(const n of e)t&&n===document.activeElement&&((e===this._prevControls?this._nextControls:this._prevControls)[0]??this._viewport).focus({preventScroll:!0}),n.disabled=t}_setActiveIndicatorElement(e){if(!this._indicatorsElement)return;const t=SelectorEngine.findOne(".active",this._indicatorsElement);t&&(t.classList.remove("active"),t.removeAttribute("aria-current"));const n=SelectorEngine.findOne(`[data-bs-slide-to="${e}"]`,this._indicatorsElement);n&&(n.classList.add("active"),n.setAttribute("aria-current","true"))}_normalizeIndex(e,t){return Number.isNaN(e)||0===t?null:e<0?this._wrapsAround()?t-1:null:e>t-1?this._wrapsAround()?0:null:e}_wrapsAround(){return this._config.ends===ENDS_WRAP||this._config.ends===ENDS_LOOP}_canLoop(){if(this._isFade()||this._getItems().length<2)return!1;const e=getComputedStyle(this._element),t=t=>Number.parseFloat(e.getPropertyValue(t))||0;return 1===(t("--bs-carousel-items")||1)&&0===t("--bs-carousel-items-peek")&&!this._element.classList.contains("carousel-center")&&!this._element.classList.contains("carousel-auto")}_direction(e,t){const n=t>e;return isRTL$1()?n?"right":"left":n?"left":"right"}_scheduleAutoplay(e=this._activeIndex){const t=this._itemInterval(e);this._element.style.setProperty(PROPERTY_INTERVAL,`${t}ms`),this._interval=setTimeout(()=>{const e=this._upcomingIndex();this.nextWhenVisible(),null!==e?this._scheduleAutoplay(e):this.pause()},t)}_upcomingIndex(){return this._normalizeIndex(this._navIndex()+1,this._getItems().length)}_itemInterval(e=this._activeIndex){const t=this._getItems()[e],n=t?Number.parseInt(t.getAttribute("data-bs-interval"),10):Number.NaN;return Number.isNaN(n)?this._config.interval:n}_maybeEnableCycle(){this._playing&&this.cycle()}_pauseFromInteraction(){this._playing=!1,this.pause(),this._updatePlayPauseControl()}_togglePlayPause(){this._playing?this._pauseFromInteraction():(this._playing=!0,this.cycle(),this._updatePlayPauseControl())}_updatePlayPauseControl(){if(!this._playPauseElement)return;this._playPauseElement.classList.toggle("paused",!this._playing);const e=this._playPauseElement.getAttribute(this._playing?"data-bs-pause-label":"data-bs-play-label");e&&this._playPauseElement.setAttribute("aria-label",e)}_isFade(){return this._element.classList.contains("carousel-fade")}_prefersReducedMotion(){return"undefined"!=typeof window&&"function"==typeof window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}_getItems(){return SelectorEngine.find(SELECTOR_ITEM,this._element)}_clearInterval(){this._interval&&(clearTimeout(this._interval),this._interval=null)}}EventHandler.on(document,EVENT_CLICK_DATA_API$7,SELECTOR_DATA_SLIDE,function(e){const t=SelectorEngine.getElementFromSelector(this);if(!t||!t.classList.contains("carousel"))return;e.preventDefault();const n=Carousel.getOrCreateInstance(t);n._pauseFromInteraction();const s=this.getAttribute("data-bs-slide-to");s?n.to(s):"next"!==Manipulator.getDataAttribute(this,"slide")?n.prev():n.next()}),EventHandler.on(document,EVENT_CLICK_DATA_API$7,SELECTOR_PLAY_PAUSE,function(e){const t=SelectorEngine.getElementFromSelector(this);t&&t.classList.contains("carousel")&&(e.preventDefault(),Carousel.getOrCreateInstance(t)._togglePlayPause())}),EventHandler.on(window,EVENT_LOAD_DATA_API$3,()=>{const e=SelectorEngine.find(SELECTOR_DATA_AUTOPLAY);for(const t of e)Carousel.getOrCreateInstance(t)});const NAME$h="collapse",DATA_KEY$d="bs.collapse",EVENT_KEY$e=`.${DATA_KEY$d}`,DATA_API_KEY$9=".data-api",EVENT_SHOW$7=`show${EVENT_KEY$e}`,EVENT_SHOWN$6=`shown${EVENT_KEY$e}`,EVENT_HIDE$6=`hide${EVENT_KEY$e}`,EVENT_HIDDEN$8=`hidden${EVENT_KEY$e}`,EVENT_CLICK_DATA_API$6=`click${EVENT_KEY$e}.data-api`,CLASS_NAME_SHOW$5="show",CLASS_NAME_COLLAPSE="collapse",CLASS_NAME_COLLAPSING="collapsing",CLASS_NAME_COLLAPSED="collapsed",CLASS_NAME_DEEPER_CHILDREN=":scope .collapse .collapse",CLASS_NAME_HORIZONTAL="collapse-horizontal",WIDTH="width",HEIGHT="height",SELECTOR_ACTIVES=".collapse.show, .collapse.collapsing",SELECTOR_DATA_TOGGLE$9='[data-bs-toggle="collapse"]',Default$g={parent:null,toggle:!0},DefaultType$g={parent:"(null|element)",toggle:"boolean"};class Collapse extends BaseComponent{constructor(e,t){super(e,t),this._isTransitioning=!1,this._triggerArray=[];const n=SelectorEngine.find(SELECTOR_DATA_TOGGLE$9);for(const e of n){const t=SelectorEngine.getSelectorFromElement(e),n=SelectorEngine.find(t).filter(e=>e===this._element);null!==t&&n.length&&this._triggerArray.push(e)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Default$g}static get DefaultType(){return DefaultType$g}static get NAME(){return NAME$h}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e=[];if(this._config.parent&&(e=this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(e=>e!==this._element).map(e=>Collapse.getOrCreateInstance(e,{toggle:!1}))),e.length&&e[0]._isTransitioning)return;if(EventHandler.trigger(this._element,EVENT_SHOW$7).defaultPrevented)return;for(const t of e)t.hide();const t=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[t]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n=`scroll${t[0].toUpperCase()+t.slice(1)}`;this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove("collapsing"),this._element.classList.add("collapse","show"),this._element.style[t]="",EventHandler.trigger(this._element,EVENT_SHOWN$6)},this._element,!0),this._element.style[t]=`${this._element[n]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(EventHandler.trigger(this._element,EVENT_HIDE$6).defaultPrevented)return;const e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,reflow(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");for(const e of this._triggerArray){const t=SelectorEngine.getElementFromSelector(e);t&&!this._isShown(t)&&this._addAriaAndCollapsedClass([e],!1)}this._isTransitioning=!0,this._element.style[e]="",this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove("collapsing"),this._element.classList.add("collapse"),EventHandler.trigger(this._element,EVENT_HIDDEN$8)},this._element,!0)}_isShown(e=this._element){return e.classList.contains("show")}_configAfterMerge(e){return e.toggle=Boolean(e.toggle),e.parent=getElement(e.parent),e}_getDimension(){return this._element.classList.contains("collapse-horizontal")?WIDTH:HEIGHT}_initializeChildren(){if(!this._config.parent)return;const e=this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$9);for(const t of e){const e=SelectorEngine.getElementFromSelector(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}}_getFirstLevelChildren(e){const t=SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN,this._config.parent);return SelectorEngine.find(e,this._config.parent).filter(e=>!t.includes(e))}_addAriaAndCollapsedClass(e,t){if(e.length)for(const n of e)n.classList.toggle("collapsed",!t),n.setAttribute("aria-expanded",t)}}EventHandler.on(document,EVENT_CLICK_DATA_API$6,SELECTOR_DATA_TOGGLE$9,function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();for(const e of SelectorEngine.getMultipleElementsFromSelector(this))Collapse.getOrCreateInstance(e,{toggle:!1}).toggle()});const min=Math.min,max=Math.max,round=Math.round,floor=Math.floor,createCoords=e=>({x:e,y:e}),oppositeSideMap={left:"right",right:"left",bottom:"top",top:"bottom"};function clamp(e,t,n){return max(e,min(t,n))}function evaluate(e,t){return"function"==typeof e?e(t):e}function getSide(e){return e.split("-")[0]}function getAlignment(e){return e.split("-")[1]}function getOppositeAxis(e){return"x"===e?"y":"x"}function getAxisLength(e){return"y"===e?"height":"width"}function getSideAxis(e){const t=e[0];return"t"===t||"b"===t?"y":"x"}function getAlignmentAxis(e){return getOppositeAxis(getSideAxis(e))}function getAlignmentSides(e,t,n){void 0===n&&(n=!1);const s=getAlignment(e),i=getAlignmentAxis(e),o=getAxisLength(i);let a="x"===i?s===(n?"end":"start")?"right":"left":"start"===s?"bottom":"top";return t.reference[o]>t.floating[o]&&(a=getOppositePlacement(a)),[a,getOppositePlacement(a)]}function getExpandedPlacements(e){const t=getOppositePlacement(e);return[getOppositeAlignmentPlacement(e),t,getOppositeAlignmentPlacement(t)]}function getOppositeAlignmentPlacement(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const lrPlacement=["left","right"],rlPlacement=["right","left"],tbPlacement=["top","bottom"],btPlacement=["bottom","top"];function getSideList(e,t,n){switch(e){case"top":case"bottom":return n?t?rlPlacement:lrPlacement:t?lrPlacement:rlPlacement;case"left":case"right":return t?tbPlacement:btPlacement;default:return[]}}function getOppositeAxisPlacements(e,t,n,s){const i=getAlignment(e);let o=getSideList(getSide(e),"start"===n,s);return i&&(o=o.map(e=>e+"-"+i),t&&(o=o.concat(o.map(getOppositeAlignmentPlacement)))),o}function getOppositePlacement(e){const t=getSide(e);return oppositeSideMap[t]+e.slice(t.length)}function expandPaddingObject(e){return{top:0,right:0,bottom:0,left:0,...e}}function getPaddingObject(e){return"number"!=typeof e?expandPaddingObject(e):{top:e,right:e,bottom:e,left:e}}function rectToClientRect(e){const{x:t,y:n,width:s,height:i}=e;return{width:s,height:i,top:n,left:t,right:t+s,bottom:n+i,x:t,y:n}}function computeCoordsFromPlacement(e,t,n){let{reference:s,floating:i}=e;const o=getSideAxis(t),a=getAlignmentAxis(t),l=getAxisLength(a),r=getSide(t),c="y"===o,d=s.x+s.width/2-i.width/2,u=s.y+s.height/2-i.height/2,h=s[l]/2-i[l]/2;let _;switch(r){case"top":_={x:d,y:s.y-i.height};break;case"bottom":_={x:d,y:s.y+s.height};break;case"right":_={x:s.x+s.width,y:u};break;case"left":_={x:s.x-i.width,y:u};break;default:_={x:s.x,y:s.y}}switch(getAlignment(t)){case"start":_[a]-=h*(n&&c?-1:1);break;case"end":_[a]+=h*(n&&c?-1:1)}return _}async function detectOverflow(e,t){var n;void 0===t&&(t={});const{x:s,y:i,platform:o,rects:a,elements:l,strategy:r}=e,{boundary:c="clippingAncestors",rootBoundary:d="viewport",elementContext:u="floating",altBoundary:h=!1,padding:_=0}=evaluate(t,e),m=getPaddingObject(_),g=l[h?"floating"===u?"reference":"floating":u],p=rectToClientRect(await o.getClippingRect({element:null==(n=await(null==o.isElement?void 0:o.isElement(g)))||n?g:g.contextElement||await(null==o.getDocumentElement?void 0:o.getDocumentElement(l.floating)),boundary:c,rootBoundary:d,strategy:r})),E="floating"===u?{x:s,y:i,width:a.floating.width,height:a.floating.height}:a.reference,f=await(null==o.getOffsetParent?void 0:o.getOffsetParent(l.floating)),v=await(null==o.isElement?void 0:o.isElement(f))&&await(null==o.getScale?void 0:o.getScale(f))||{x:1,y:1},T=rectToClientRect(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:E,offsetParent:f,strategy:r}):E);return{top:(p.top-T.top+m.top)/v.y,bottom:(T.bottom-p.bottom+m.bottom)/v.y,left:(p.left-T.left+m.left)/v.x,right:(T.right-p.right+m.right)/v.x}}const MAX_RESET_COUNT=50,computePosition$1=async(e,t,n)=>{const{placement:s="bottom",strategy:i="absolute",middleware:o=[],platform:a}=n,l=a.detectOverflow?a:{...a,detectOverflow:detectOverflow},r=await(null==a.isRTL?void 0:a.isRTL(t));let c=await a.getElementRects({reference:e,floating:t,strategy:i}),{x:d,y:u}=computeCoordsFromPlacement(c,s,r),h=s,_=0;const m={};for(let n=0;n<o.length;n++){const g=o[n];if(!g)continue;const{name:p,fn:E}=g,{x:f,y:v,data:T,reset:b}=await E({x:d,y:u,initialPlacement:s,placement:h,strategy:i,middlewareData:m,rects:c,platform:l,elements:{reference:e,floating:t}});d=null!=f?f:d,u=null!=v?v:u,m[p]={...m[p],...T},b&&_<50&&(_++,"object"==typeof b&&(b.placement&&(h=b.placement),b.rects&&(c=!0===b.rects?await a.getElementRects({reference:e,floating:t,strategy:i}):b.rects),({x:d,y:u}=computeCoordsFromPlacement(c,h,r))),n=-1)}return{x:d,y:u,placement:h,strategy:i,middlewareData:m}},arrow$1=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:s,placement:i,rects:o,platform:a,elements:l,middlewareData:r}=t,{element:c,padding:d=0}=evaluate(e,t)||{};if(null==c)return{};const u=getPaddingObject(d),h={x:n,y:s},_=getAlignmentAxis(i),m=getAxisLength(_),g=await a.getDimensions(c),p="y"===_,E=p?"top":"left",f=p?"bottom":"right",v=p?"clientHeight":"clientWidth",T=o.reference[m]+o.reference[_]-h[_]-o.floating[m],b=h[_]-o.reference[_],A=await(null==a.getOffsetParent?void 0:a.getOffsetParent(c));let y=A?A[v]:0;y&&await(null==a.isElement?void 0:a.isElement(A))||(y=l.floating[v]||o.floating[m]);const D=T/2-b/2,S=y/2-g[m]/2-1,C=min(u[E],S),w=min(u[f],S),N=C,x=y-g[m]-w,L=y/2-g[m]/2+D,M=clamp(N,L,x),O=!r.arrow&&null!=getAlignment(i)&&L!==M&&o.reference[m]/2-(L<N?C:w)-g[m]/2<0,$=O?L<N?L-N:L-x:0;return{[_]:h[_]+$,data:{[_]:M,centerOffset:L-M-$,...O&&{alignmentOffset:$}},reset:O}}}),flip$1=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,s;const{placement:i,middlewareData:o,rects:a,initialPlacement:l,platform:r,elements:c}=t,{mainAxis:d=!0,crossAxis:u=!0,fallbackPlacements:h,fallbackStrategy:_="bestFit",fallbackAxisSideDirection:m="none",flipAlignment:g=!0,...p}=evaluate(e,t);if(null!=(n=o.arrow)&&n.alignmentOffset)return{};const E=getSide(i),f=getSideAxis(l),v=getSide(l)===l,T=await(null==r.isRTL?void 0:r.isRTL(c.floating)),b=h||(v||!g?[getOppositePlacement(l)]:getExpandedPlacements(l)),A="none"!==m;!h&&A&&b.push(...getOppositeAxisPlacements(l,g,m,T));const y=[l,...b],D=await r.detectOverflow(t,p),S=[];let C=(null==(s=o.flip)?void 0:s.overflows)||[];if(d&&S.push(D[E]),u){const e=getAlignmentSides(i,a,T);S.push(D[e[0]],D[e[1]])}if(C=[...C,{placement:i,overflows:S}],!S.every(e=>e<=0)){var w,N;const e=((null==(w=o.flip)?void 0:w.index)||0)+1,t=y[e];if(t&&("alignment"!==u||f===getSideAxis(t)||C.every(e=>getSideAxis(e.placement)!==f||e.overflows[0]>0)))return{data:{index:e,overflows:C},reset:{placement:t}};let n=null==(N=C.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:N.placement;if(!n)switch(_){case"bestFit":{var x;const e=null==(x=C.filter(e=>{if(A){const t=getSideAxis(e.placement);return t===f||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:x[0];e&&(n=e);break}case"initialPlacement":n=l}if(i!==n)return{reset:{placement:n}}}return{}}}},originSides=new Set(["left","top"]);async function convertValueToCoords(e,t){const{placement:n,platform:s,elements:i}=e,o=await(null==s.isRTL?void 0:s.isRTL(i.floating)),a=getSide(n),l=getAlignment(n),r="y"===getSideAxis(n),c=originSides.has(a)?-1:1,d=o&&r?-1:1,u=evaluate(t,e);let{mainAxis:h,crossAxis:_,alignmentAxis:m}="number"==typeof u?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return l&&"number"==typeof m&&(_="end"===l?-1*m:m),r?{x:_*d,y:h*c}:{x:h*c,y:_*d}}const offset$1=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,s;const{x:i,y:o,placement:a,middlewareData:l}=t,r=await convertValueToCoords(t,e);return a===(null==(n=l.offset)?void 0:n.placement)&&null!=(s=l.arrow)&&s.alignmentOffset?{}:{x:i+r.x,y:o+r.y,data:{...r,placement:a}}}}},shift$1=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:s,placement:i,platform:o}=t,{mainAxis:a=!0,crossAxis:l=!1,limiter:r={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...c}=evaluate(e,t),d={x:n,y:s},u=await o.detectOverflow(t,c),h=getSideAxis(getSide(i)),_=getOppositeAxis(h);let m=d[_],g=d[h];if(a){const e="y"===_?"bottom":"right";m=clamp(m+u["y"===_?"top":"left"],m,m-u[e])}if(l){const e="y"===h?"bottom":"right";g=clamp(g+u["y"===h?"top":"left"],g,g-u[e])}const p=r.fn({...t,[_]:m,[h]:g});return{...p,data:{x:p.x-n,y:p.y-s,enabled:{[_]:a,[h]:l}}}}}};function hasWindow(){return"undefined"!=typeof window}function getNodeName(e){return isNode(e)?(e.nodeName||"").toLowerCase():"#document"}function getWindow(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function getDocumentElement(e){var t;return null==(t=(isNode(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function isNode(e){return!!hasWindow()&&(e instanceof Node||e instanceof getWindow(e).Node)}function isElement(e){return!!hasWindow()&&(e instanceof Element||e instanceof getWindow(e).Element)}function isHTMLElement(e){return!!hasWindow()&&(e instanceof HTMLElement||e instanceof getWindow(e).HTMLElement)}function isShadowRoot(e){return!(!hasWindow()||"undefined"==typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof getWindow(e).ShadowRoot)}function isOverflowElement(e){const{overflow:t,overflowX:n,overflowY:s,display:i}=getComputedStyle$1(e);return/auto|scroll|overlay|hidden|clip/.test(t+s+n)&&"inline"!==i&&"contents"!==i}function isTableElement(e){return/^(table|td|th)$/.test(getNodeName(e))}function isTopLayer(e){try{if(e.matches(":popover-open"))return!0}catch(e){}try{return e.matches(":modal")}catch(e){return!1}}const willChangeRe=/transform|translate|scale|rotate|perspective|filter/,containRe=/paint|layout|strict|content/,isNotNone=e=>!!e&&"none"!==e;let isWebKitValue;function isContainingBlock(e){const t=isElement(e)?getComputedStyle$1(e):e;return isNotNone(t.transform)||isNotNone(t.translate)||isNotNone(t.scale)||isNotNone(t.rotate)||isNotNone(t.perspective)||!isWebKit()&&(isNotNone(t.backdropFilter)||isNotNone(t.filter))||willChangeRe.test(t.willChange||"")||containRe.test(t.contain||"")}function getContainingBlock(e){let t=getParentNode(e);for(;isHTMLElement(t)&&!isLastTraversableNode(t);){if(isContainingBlock(t))return t;if(isTopLayer(t))return null;t=getParentNode(t)}return null}function isWebKit(){return null==isWebKitValue&&(isWebKitValue="undefined"!=typeof CSS&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),isWebKitValue}function isLastTraversableNode(e){return/^(html|body|#document)$/.test(getNodeName(e))}function getComputedStyle$1(e){return getWindow(e).getComputedStyle(e)}function getNodeScroll(e){return isElement(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function getParentNode(e){if("html"===getNodeName(e))return e;const t=e.assignedSlot||e.parentNode||isShadowRoot(e)&&e.host||getDocumentElement(e);return isShadowRoot(t)?t.host:t}function getNearestOverflowAncestor(e){const t=getParentNode(e);return isLastTraversableNode(t)?e.ownerDocument?e.ownerDocument.body:e.body:isHTMLElement(t)&&isOverflowElement(t)?t:getNearestOverflowAncestor(t)}function getOverflowAncestors(e,t,n){var s;void 0===t&&(t=[]),void 0===n&&(n=!0);const i=getNearestOverflowAncestor(e),o=i===(null==(s=e.ownerDocument)?void 0:s.body),a=getWindow(i);if(o){const e=getFrameElement(a);return t.concat(a,a.visualViewport||[],isOverflowElement(i)?i:[],e&&n?getOverflowAncestors(e):[])}return t.concat(i,getOverflowAncestors(i,[],n))}function getFrameElement(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function getCssDimensions(e){const t=getComputedStyle$1(e);let n=parseFloat(t.width)||0,s=parseFloat(t.height)||0;const i=isHTMLElement(e),o=i?e.offsetWidth:n,a=i?e.offsetHeight:s,l=round(n)!==o||round(s)!==a;return l&&(n=o,s=a),{width:n,height:s,$:l}}function unwrapElement(e){return isElement(e)?e:e.contextElement}function getScale(e){const t=unwrapElement(e);if(!isHTMLElement(t))return createCoords(1);const n=t.getBoundingClientRect(),{width:s,height:i,$:o}=getCssDimensions(t);let a=(o?round(n.width):n.width)/s,l=(o?round(n.height):n.height)/i;return a&&Number.isFinite(a)||(a=1),l&&Number.isFinite(l)||(l=1),{x:a,y:l}}const noOffsets=createCoords(0);function getVisualOffsets(e){const t=getWindow(e);return isWebKit()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:noOffsets}function shouldAddVisualOffsets(e,t,n){return void 0===t&&(t=!1),!(!n||t&&n!==getWindow(e))&&t}function getBoundingClientRect(e,t,n,s){void 0===t&&(t=!1),void 0===n&&(n=!1);const i=e.getBoundingClientRect(),o=unwrapElement(e);let a=createCoords(1);t&&(s?isElement(s)&&(a=getScale(s)):a=getScale(e));const l=shouldAddVisualOffsets(o,n,s)?getVisualOffsets(o):createCoords(0);let r=(i.left+l.x)/a.x,c=(i.top+l.y)/a.y,d=i.width/a.x,u=i.height/a.y;if(o){const e=getWindow(o),t=s&&isElement(s)?getWindow(s):s;let n=e,i=getFrameElement(n);for(;i&&s&&t!==n;){const e=getScale(i),t=i.getBoundingClientRect(),s=getComputedStyle$1(i),o=t.left+(i.clientLeft+parseFloat(s.paddingLeft))*e.x,a=t.top+(i.clientTop+parseFloat(s.paddingTop))*e.y;r*=e.x,c*=e.y,d*=e.x,u*=e.y,r+=o,c+=a,n=getWindow(i),i=getFrameElement(n)}}return rectToClientRect({width:d,height:u,x:r,y:c})}function getWindowScrollBarX(e,t){const n=getNodeScroll(e).scrollLeft;return t?t.left+n:getBoundingClientRect(getDocumentElement(e)).left+n}function getHTMLOffset(e,t){const n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-getWindowScrollBarX(e,n),y:n.top+t.scrollTop}}function convertOffsetParentRelativeRectToViewportRelativeRect(e){let{elements:t,rect:n,offsetParent:s,strategy:i}=e;const o="fixed"===i,a=getDocumentElement(s),l=!!t&&isTopLayer(t.floating);if(s===a||l&&o)return n;let r={scrollLeft:0,scrollTop:0},c=createCoords(1);const d=createCoords(0),u=isHTMLElement(s);if((u||!u&&!o)&&(("body"!==getNodeName(s)||isOverflowElement(a))&&(r=getNodeScroll(s)),u)){const e=getBoundingClientRect(s);c=getScale(s),d.x=e.x+s.clientLeft,d.y=e.y+s.clientTop}const h=!a||u||o?createCoords(0):getHTMLOffset(a,r);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-r.scrollLeft*c.x+d.x+h.x,y:n.y*c.y-r.scrollTop*c.y+d.y+h.y}}function getClientRects(e){return Array.from(e.getClientRects())}function getDocumentRect(e){const t=getDocumentElement(e),n=getNodeScroll(e),s=e.ownerDocument.body,i=max(t.scrollWidth,t.clientWidth,s.scrollWidth,s.clientWidth),o=max(t.scrollHeight,t.clientHeight,s.scrollHeight,s.clientHeight);let a=-n.scrollLeft+getWindowScrollBarX(e);const l=-n.scrollTop;return"rtl"===getComputedStyle$1(s).direction&&(a+=max(t.clientWidth,s.clientWidth)-i),{width:i,height:o,x:a,y:l}}const SCROLLBAR_MAX=25;function getViewportRect(e,t){const n=getWindow(e),s=getDocumentElement(e),i=n.visualViewport;let o=s.clientWidth,a=s.clientHeight,l=0,r=0;if(i){o=i.width,a=i.height;const e=isWebKit();(!e||e&&"fixed"===t)&&(l=i.offsetLeft,r=i.offsetTop)}const c=getWindowScrollBarX(s);if(c<=0){const e=s.ownerDocument,t=e.body,n=getComputedStyle(t),i="CSS1Compat"===e.compatMode&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,a=Math.abs(s.clientWidth-t.clientWidth-i);a<=25&&(o-=a)}else c<=25&&(o+=c);return{width:o,height:a,x:l,y:r}}function getInnerBoundingClientRect(e,t){const n=getBoundingClientRect(e,!0,"fixed"===t),s=n.top+e.clientTop,i=n.left+e.clientLeft,o=isHTMLElement(e)?getScale(e):createCoords(1);return{width:e.clientWidth*o.x,height:e.clientHeight*o.y,x:i*o.x,y:s*o.y}}function getClientRectFromClippingAncestor(e,t,n){let s;if("viewport"===t)s=getViewportRect(e,n);else if("document"===t)s=getDocumentRect(getDocumentElement(e));else if(isElement(t))s=getInnerBoundingClientRect(t,n);else{const n=getVisualOffsets(e);s={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return rectToClientRect(s)}function hasFixedPositionAncestor(e,t){const n=getParentNode(e);return!(n===t||!isElement(n)||isLastTraversableNode(n))&&("fixed"===getComputedStyle$1(n).position||hasFixedPositionAncestor(n,t))}function getClippingElementAncestors(e,t){const n=t.get(e);if(n)return n;let s=getOverflowAncestors(e,[],!1).filter(e=>isElement(e)&&"body"!==getNodeName(e)),i=null;const o="fixed"===getComputedStyle$1(e).position;let a=o?getParentNode(e):e;for(;isElement(a)&&!isLastTraversableNode(a);){const t=getComputedStyle$1(a),n=isContainingBlock(a);n||"fixed"!==t.position||(i=null),(o?!n&&!i:!n&&"static"===t.position&&i&&("absolute"===i.position||"fixed"===i.position)||isOverflowElement(a)&&!n&&hasFixedPositionAncestor(e,a))?s=s.filter(e=>e!==a):i=t,a=getParentNode(a)}return t.set(e,s),s}function getClippingRect(e){let{element:t,boundary:n,rootBoundary:s,strategy:i}=e;const o=[..."clippingAncestors"===n?isTopLayer(t)?[]:getClippingElementAncestors(t,this._c):[].concat(n),s],a=getClientRectFromClippingAncestor(t,o[0],i);let l=a.top,r=a.right,c=a.bottom,d=a.left;for(let e=1;e<o.length;e++){const n=getClientRectFromClippingAncestor(t,o[e],i);l=max(n.top,l),r=min(n.right,r),c=min(n.bottom,c),d=max(n.left,d)}return{width:r-d,height:c-l,x:d,y:l}}function getDimensions(e){const{width:t,height:n}=getCssDimensions(e);return{width:t,height:n}}function getRectRelativeToOffsetParent(e,t,n){const s=isHTMLElement(t),i=getDocumentElement(t),o="fixed"===n,a=getBoundingClientRect(e,!0,o,t);let l={scrollLeft:0,scrollTop:0};const r=createCoords(0);function c(){r.x=getWindowScrollBarX(i)}if(s||!s&&!o)if(("body"!==getNodeName(t)||isOverflowElement(i))&&(l=getNodeScroll(t)),s){const e=getBoundingClientRect(t,!0,o,t);r.x=e.x+t.clientLeft,r.y=e.y+t.clientTop}else i&&c();o&&!s&&i&&c();const d=!i||s||o?createCoords(0):getHTMLOffset(i,l);return{x:a.left+l.scrollLeft-r.x-d.x,y:a.top+l.scrollTop-r.y-d.y,width:a.width,height:a.height}}function isStaticPositioned(e){return"static"===getComputedStyle$1(e).position}function getTrueOffsetParent(e,t){if(!isHTMLElement(e)||"fixed"===getComputedStyle$1(e).position)return null;if(t)return t(e);let n=e.offsetParent;return getDocumentElement(e)===n&&(n=n.ownerDocument.body),n}function getOffsetParent(e,t){const n=getWindow(e);if(isTopLayer(e))return n;if(!isHTMLElement(e)){let t=getParentNode(e);for(;t&&!isLastTraversableNode(t);){if(isElement(t)&&!isStaticPositioned(t))return t;t=getParentNode(t)}return n}let s=getTrueOffsetParent(e,t);for(;s&&isTableElement(s)&&isStaticPositioned(s);)s=getTrueOffsetParent(s,t);return s&&isLastTraversableNode(s)&&isStaticPositioned(s)&&!isContainingBlock(s)?n:s||getContainingBlock(e)||n}const getElementRects=async function(e){const t=this.getOffsetParent||getOffsetParent,n=this.getDimensions,s=await n(e.floating);return{reference:getRectRelativeToOffsetParent(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:s.width,height:s.height}}};function isRTL(e){return"rtl"===getComputedStyle$1(e).direction}const platform={convertOffsetParentRelativeRectToViewportRelativeRect:convertOffsetParentRelativeRectToViewportRelativeRect,getDocumentElement:getDocumentElement,getClippingRect:getClippingRect,getOffsetParent:getOffsetParent,getElementRects:getElementRects,getClientRects:getClientRects,getDimensions:getDimensions,getScale:getScale,isElement:isElement,isRTL:isRTL};function rectsAreEqual(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function observeMove(e,t){let n,s=null;const i=getDocumentElement(e);function o(){var e;clearTimeout(n),null==(e=s)||e.disconnect(),s=null}return function a(l,r){void 0===l&&(l=!1),void 0===r&&(r=1),o();const c=e.getBoundingClientRect(),{left:d,top:u,width:h,height:_}=c;if(l||t(),!h||!_)return;const m={rootMargin:-floor(u)+"px "+-floor(i.clientWidth-(d+h))+"px "+-floor(i.clientHeight-(u+_))+"px "+-floor(d)+"px",threshold:max(0,min(1,r))||1};let g=!0;function p(t){const s=t[0].intersectionRatio;if(s!==r){if(!g)return a();s?a(!1,s):n=setTimeout(()=>{a(!1,1e-7)},1e3)}1!==s||rectsAreEqual(c,e.getBoundingClientRect())||a(),g=!1}try{s=new IntersectionObserver(p,{...m,root:i.ownerDocument})}catch(e){s=new IntersectionObserver(p,m)}s.observe(e)}(!0),o}function autoUpdate(e,t,n,s){void 0===s&&(s={});const{ancestorScroll:i=!0,ancestorResize:o=!0,elementResize:a="function"==typeof ResizeObserver,layoutShift:l="function"==typeof IntersectionObserver,animationFrame:r=!1}=s,c=unwrapElement(e),d=i||o?[...c?getOverflowAncestors(c):[],...t?getOverflowAncestors(t):[]]:[];d.forEach(e=>{i&&e.addEventListener("scroll",n,{passive:!0}),o&&e.addEventListener("resize",n)});const u=c&&l?observeMove(c,n):null;let h,_=-1,m=null;a&&(m=new ResizeObserver(e=>{let[s]=e;s&&s.target===c&&m&&t&&(m.unobserve(t),cancelAnimationFrame(_),_=requestAnimationFrame(()=>{var e;null==(e=m)||e.observe(t)})),n()}),c&&!r&&m.observe(c),t&&m.observe(t));let g=r?getBoundingClientRect(e):null;return r&&function t(){const s=getBoundingClientRect(e);g&&!rectsAreEqual(g,s)&&n(),g=s,h=requestAnimationFrame(t)}(),n(),()=>{var e;d.forEach(e=>{i&&e.removeEventListener("scroll",n),o&&e.removeEventListener("resize",n)}),null==u||u(),null==(e=m)||e.disconnect(),m=null,r&&cancelAnimationFrame(h)}}const offset=offset$1,shift=shift$1,flip=flip$1,arrow=arrow$1,computePosition=(e,t,n)=>{const s=new Map,i={platform:platform,...n},o={...i.platform,_c:s};return computePosition$1(e,t,{...i,platform:o})},BREAKPOINTS={sm:576,md:768,lg:1024,xl:1280,"2xl":1536},parseResponsivePlacement=(e,t="bottom")=>{if(!e||!e.includes(":"))return null;const n=e.split(/\s+/),s={xs:t};for(const e of n)if(e.includes(":")){const[t,n]=e.split(":");void 0!==BREAKPOINTS[t]&&(s[t]=n)}else s.xs=e;return s},getResponsivePlacement=(e,t="bottom")=>{if(!e)return t;const n=window.innerWidth;let s=e.xs||t;const i=["sm","md","lg","xl","2xl"];for(const t of i)n>=BREAKPOINTS[t]&&e[t]&&(s=e[t]);return s},createBreakpointListeners=e=>{const t=[];for(const n of Object.keys(BREAKPOINTS)){const s=BREAKPOINTS[n],i=window.matchMedia(`(min-width: ${s}px)`);i.addEventListener("change",e),t.push({mql:i,handler:e})}return t},disposeBreakpointListeners=e=>{for(const{mql:t,handler:n}of e)t.removeEventListener("change",n)},NAME$g="menu",DATA_KEY$c="bs.menu",EVENT_KEY$d=".bs.menu",DATA_API_KEY$8=".data-api",ESCAPE_KEY$1="Escape",TAB_KEY$1="Tab",ARROW_UP_KEY$2="ArrowUp",ARROW_DOWN_KEY$2="ArrowDown",ARROW_LEFT_KEY$1="ArrowLeft",ARROW_RIGHT_KEY$1="ArrowRight",HOME_KEY$2="Home",END_KEY$2="End",ENTER_KEY$1="Enter",SPACE_KEY$1=" ",RIGHT_MOUSE_BUTTON=2,SUBMENU_CLOSE_DELAY=100,EVENT_HIDE$5="hide.bs.menu",EVENT_HIDDEN$7="hidden.bs.menu",EVENT_SHOW$6="show.bs.menu",EVENT_SHOWN$5="shown.bs.menu",EVENT_CLICK_DATA_API$5="click.bs.menu.data-api",EVENT_KEYDOWN_DATA_API="keydown.bs.menu.data-api",EVENT_KEYUP_DATA_API="keyup.bs.menu.data-api",CLASS_NAME_SHOW$4="show",SELECTOR_DATA_TOGGLE$8='[data-bs-toggle="menu"]:not(.disabled):not(:disabled)',SELECTOR_MENU$2=".menu",SELECTOR_SUBMENU=".submenu",SELECTOR_SUBMENU_TOGGLE=".submenu > .menu-item",SELECTOR_NAVBAR_NAV=".navbar-nav",SELECTOR_VISIBLE_ITEMS$1=".menu-item:not(.disabled):not(:disabled)",DEFAULT_PLACEMENT="bottom-start",SUBMENU_PLACEMENT="end-start",resolveLogicalPlacement=e=>isRTL$1()?e.replace(/^start(?=-|$)/,"right").replace(/^end(?=-|$)/,"left"):e.replace(/^start(?=-|$)/,"left").replace(/^end(?=-|$)/,"right"),triangleSign=(e,t,n)=>(e.x-n.x)*(t.y-n.y)-(t.x-n.x)*(e.y-n.y),Default$f={autoClose:!0,boundary:"clippingParents",container:!1,display:"dynamic",offset:[0,2],floatingConfig:null,menu:null,placement:"bottom-start",reference:"toggle",strategy:"absolute",submenuTrigger:"both",submenuDelay:100},DefaultType$f={autoClose:"(boolean|string)",boundary:"(string|element)",container:"(string|element|boolean)",display:"string",offset:"(array|string|function)",floatingConfig:"(null|object|function)",menu:"(null|element)",placement:"string",reference:"(string|element|object)",strategy:"string",submenuTrigger:"string",submenuDelay:"number"};class Menu extends BaseComponent{static _openInstances=new Set;constructor(e,t){super(e,t),this._floatingCleanup=null,this._mediaQueryListeners=[],this._responsivePlacements=null,this._parent=this._element.parentNode,this._isSubmenu=this._parent.classList?.contains("submenu"),this._openSubmenus=new Map,this._submenuCloseTimeouts=new Map,this._hoverIntentData=null,this._menu=this._config.menu||this._findMenu(),this._menuOriginalParent=this._menu?.parentNode,this._parseResponsivePlacements(),this._setupSubmenuListeners()}static get Default(){return Default$f}static get DefaultType(){return DefaultType$f}static get NAME(){return"menu"}toggle(){return this._isShown()?this.hide():this.show()}show(){if(isDisabled(this._element)||this._isShown())return;const e={relatedTarget:this._element};if(!EventHandler.trigger(this._element,EVENT_SHOW$6,e).defaultPrevented){if(this._moveMenuToContainer(),this._createFloating(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const e of document.body.children)EventHandler.on(e,"mouseover",noop);this._element.focus({focusVisible:!1}),this._element.setAttribute("aria-expanded","true"),this._menu.classList.add("show"),this._element.classList.add("show"),this._parent&&this._parent.classList.add("show"),Menu._openInstances.add(this),EventHandler.trigger(this._element,EVENT_SHOWN$5,e)}}hide(){if(isDisabled(this._element)||!this._isShown())return;const e={relatedTarget:this._element};this._completeHide(e)}dispose(){this._disposeFloating(),this._restoreMenuToOriginalParent(),this._disposeMediaQueryListeners(),this._closeAllSubmenus(),this._clearAllSubmenuTimeouts(),Menu._openInstances.delete(this),super.dispose()}update(){this._floatingCleanup&&this._updateFloatingPosition()}_findMenu(){return SelectorEngine.next(this._element,".menu")[0]||SelectorEngine.prev(this._element,".menu")[0]||SelectorEngine.findOne(".menu",this._parent)}_completeHide(e){if(!EventHandler.trigger(this._element,EVENT_HIDE$5,e).defaultPrevented){if(this._closeAllSubmenus(),"ontouchstart"in document.documentElement)for(const e of document.body.children)EventHandler.off(e,"mouseover",noop);this._disposeFloating(),this._restoreMenuToOriginalParent(),this._menu.classList.remove("show"),this._element.classList.remove("show"),this._parent&&this._parent.classList.remove("show"),this._element.setAttribute("aria-expanded","false"),Manipulator.removeDataAttribute(this._menu,"placement"),Manipulator.removeDataAttribute(this._menu,"display"),Menu._openInstances.delete(this),EventHandler.trigger(this._element,EVENT_HIDDEN$7,e)}}_getConfig(e){if("object"==typeof(e=super._getConfig(e)).reference&&!isElement$1(e.reference)&&"function"!=typeof e.reference.getBoundingClientRect)throw new TypeError(`${"menu".toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return e}_createFloating(){if("static"===this._config.display)return void Manipulator.setDataAttribute(this._menu,"display","static");let e=this._element;"parent"===this._config.reference?e=this._parent:isElement$1(this._config.reference)?e=getElement(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference),this._updateFloatingPosition(e),this._floatingCleanup=autoUpdate(e,this._menu,()=>this._updateFloatingPosition(e))}async _updateFloatingPosition(e=null){if(!this._menu)return;e||(e="parent"===this._config.reference?this._parent:isElement$1(this._config.reference)?getElement(this._config.reference):"object"==typeof this._config.reference?this._config.reference:this._element);const t=this._getPlacement(),n=this._getFloatingMiddleware(),s=this._getFloatingConfig(t,n);await this._applyFloatingPosition(e,this._menu,s.placement,s.middleware,s.strategy)}_isShown(){return this._menu.classList.contains("show")}_getPlacement(){const e=this._responsivePlacements?getResponsivePlacement(this._responsivePlacements,"bottom-start"):this._config.placement;return resolveLogicalPlacement(e)}_parseResponsivePlacements(){this._responsivePlacements=parseResponsivePlacement(this._config.placement,"bottom-start"),this._responsivePlacements&&this._setupMediaQueryListeners()}_setupMediaQueryListeners(){this._disposeMediaQueryListeners(),this._mediaQueryListeners=createBreakpointListeners(()=>{this._isShown()&&this._updateFloatingPosition()})}_disposeMediaQueryListeners(){disposeBreakpointListeners(this._mediaQueryListeners),this._mediaQueryListeners=[]}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?({placement:t,rects:n})=>e({placement:t,reference:n.reference,floating:n.floating},this._element):e}_getFloatingMiddleware(){const e=this._getOffset();return[offset("function"==typeof e?e:{mainAxis:e[1]||0,crossAxis:e[0]||0}),flip({fallbackPlacements:this._getFallbackPlacements()}),shift({boundary:"clippingParents"===this._config.boundary?"clippingAncestors":this._config.boundary})]}_getFallbackPlacements(){return{bottom:["top","bottom-start","bottom-end","top-start","top-end"],"bottom-start":["top-start","bottom-end","top-end"],"bottom-end":["top-end","bottom-start","top-start"],top:["bottom","top-start","top-end","bottom-start","bottom-end"],"top-start":["bottom-start","top-end","bottom-end"],"top-end":["bottom-end","top-start","bottom-start"],right:["left","right-start","right-end","left-start","left-end"],"right-start":["left-start","right-end","left-end","top-start","bottom-start"],"right-end":["left-end","right-start","left-start","top-end","bottom-end"],left:["right","left-start","left-end","right-start","right-end"],"left-start":["right-start","left-end","right-end","top-start","bottom-start"],"left-end":["right-end","left-start","right-start","top-end","bottom-end"]}[this._getPlacement()]||["top","bottom","right","left"]}_getFloatingConfig(e,t){const n={placement:e,middleware:t,strategy:this._config.strategy};return{...n,...execute(this._config.floatingConfig,[void 0,n])}}_disposeFloating(){this._floatingCleanup&&(this._floatingCleanup(),this._floatingCleanup=null)}_getContainer(){const{container:e}=this._config;return!1===e?null:!0===e?document.body:getElement(e)}_moveMenuToContainer(){const e=this._getContainer();e&&this._menu&&this._menu.parentNode!==e&&e.append(this._menu)}_restoreMenuToOriginalParent(){this._menuOriginalParent&&this._menu&&this._menu.parentNode!==this._menuOriginalParent&&this._menuOriginalParent.append(this._menu)}async _applyFloatingPosition(e,t,n,s,i="absolute"){if(!t.isConnected)return null;const{x:o,y:a,placement:l}=await computePosition(e,t,{placement:n,middleware:s,strategy:i});return t.isConnected?(Object.assign(t.style,{position:i,left:`${o}px`,top:`${a}px`,margin:"0"}),Manipulator.setDataAttribute(t,"placement",l),l):null}_setupSubmenuListeners(){"hover"!==this._config.submenuTrigger&&"both"!==this._config.submenuTrigger||(EventHandler.on(this._menu,"mouseenter",".submenu > .menu-item",e=>{this._onSubmenuTriggerEnter(e)}),EventHandler.on(this._menu,"mouseleave",".submenu",e=>{this._onSubmenuLeave(e)}),EventHandler.on(this._menu,"mousemove",e=>{this._trackMousePosition(e)})),"click"!==this._config.submenuTrigger&&"both"!==this._config.submenuTrigger||EventHandler.on(this._menu,"click",".submenu > .menu-item",e=>{this._onSubmenuTriggerClick(e)})}_onSubmenuTriggerEnter(e){const t=e.target.closest(".submenu > .menu-item");if(!t)return;const n=t.closest(".submenu"),s=SelectorEngine.findOne(".menu",n);s&&(this._cancelSubmenuCloseTimeout(s),this._closeSiblingSubmenus(n),this._openSubmenu(t,s,n))}_onSubmenuLeave(e){const t=e.target.closest(".submenu"),n=SelectorEngine.findOne(".menu",t);n&&this._openSubmenus.has(n)&&(this._isMovingTowardSubmenu(e,n)||this._scheduleSubmenuClose(n,t))}_onSubmenuTriggerClick(e){const t=e.target.closest(".submenu > .menu-item");if(!t)return;e.preventDefault(),e.stopPropagation();const n=t.closest(".submenu"),s=SelectorEngine.findOne(".menu",n);s&&(this._openSubmenus.has(s)?this._closeSubmenu(s,n):(this._closeSiblingSubmenus(n),this._openSubmenu(t,s,n)))}_openSubmenu(e,t,n){if(this._openSubmenus.has(t))return;e.setAttribute("aria-expanded","true"),e.setAttribute("aria-haspopup","true"),t.classList.add("show"),n.classList.add("show");const s=this._createSubmenuFloating(e,t,n);this._openSubmenus.set(t,s),EventHandler.on(t,"mouseenter",()=>{this._cancelSubmenuCloseTimeout(t)})}_closeSubmenu(e,t){if(!this._openSubmenus.has(e))return;const n=SelectorEngine.find(".submenu .menu.show",e);for(const e of n){const t=e.closest(".submenu");this._closeSubmenu(e,t)}const s=SelectorEngine.findOne(".submenu > .menu-item",t),i=this._openSubmenus.get(e);i&&i(),this._openSubmenus.delete(e),EventHandler.off(e,"mouseenter"),s&&s.setAttribute("aria-expanded","false"),e.classList.remove("show"),t.classList.remove("show"),e.style.position="",e.style.left="",e.style.top="",e.style.margin=""}_closeAllSubmenus(){for(const[e]of this._openSubmenus){const t=e.closest(".submenu");this._closeSubmenu(e,t)}}_closeSiblingSubmenus(e){const t=e.parentNode,n=SelectorEngine.find(".submenu > .menu.show",t);for(const t of n){const n=t.closest(".submenu");n!==e&&this._closeSubmenu(t,n)}}_createSubmenuFloating(e,t,n){const s=n,i=resolveLogicalPlacement("end-start"),o=[offset({mainAxis:0,crossAxis:-4}),flip({fallbackPlacements:[resolveLogicalPlacement("start-start"),resolveLogicalPlacement("end-end"),resolveLogicalPlacement("start-end")]}),shift({padding:8})],a=()=>this._applyFloatingPosition(s,t,i,o);return a(),autoUpdate(s,t,a)}_scheduleSubmenuClose(e,t){this._cancelSubmenuCloseTimeout(e);const n=setTimeout(()=>{this._closeSubmenu(e,t),this._submenuCloseTimeouts.delete(e)},this._config.submenuDelay);this._submenuCloseTimeouts.set(e,n)}_cancelSubmenuCloseTimeout(e){const t=this._submenuCloseTimeouts.get(e);t&&(clearTimeout(t),this._submenuCloseTimeouts.delete(e))}_clearAllSubmenuTimeouts(){for(const e of this._submenuCloseTimeouts.values())clearTimeout(e);this._submenuCloseTimeouts.clear()}_trackMousePosition(e){this._hoverIntentData={x:e.clientX,y:e.clientY,timestamp:Date.now()}}_isMovingTowardSubmenu(e,t){if(!this._hoverIntentData)return!1;const n=t.getBoundingClientRect(),s={x:e.clientX,y:e.clientY},i={x:this._hoverIntentData.x,y:this._hoverIntentData.y},o=isRTL$1()?n.right:n.left,a={x:o,y:n.top},l={x:o,y:n.bottom};return this._pointInTriangle(s,i,a,l)}_pointInTriangle(e,t,n,s){const i=triangleSign(e,t,n),o=triangleSign(e,n,s),a=triangleSign(e,s,t);return!((i<0||o<0||a<0)&&(i>0||o>0||a>0))}_selectMenuItem({key:e,target:t}){const n=t.closest(".menu")||this._menu,s=SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS$1}`,n).filter(e=>isVisible(e));s.length&&getNextActiveElement(s,t,e===ARROW_DOWN_KEY$2,!s.includes(t)).focus()}_handleSubmenuKeydown(e){const{key:t,target:n}=e,s=isRTL$1(),i=s?ARROW_LEFT_KEY$1:ARROW_RIGHT_KEY$1,o=s?ARROW_RIGHT_KEY$1:ARROW_LEFT_KEY$1,a=n.closest(".submenu"),l=a&&n.matches(".submenu > .menu-item");if((t===ENTER_KEY$1||t===SPACE_KEY$1)&&l){e.preventDefault(),e.stopPropagation();const t=SelectorEngine.findOne(".menu",a);return t&&(this._closeSiblingSubmenus(a),this._openSubmenu(n,t,a),requestAnimationFrame(()=>{const e=SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS$1,t);e&&e.focus()})),!0}if(t===i&&l){e.preventDefault(),e.stopPropagation();const t=SelectorEngine.findOne(".menu",a);return t&&(this._closeSiblingSubmenus(a),this._openSubmenu(n,t,a),requestAnimationFrame(()=>{const e=SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS$1,t);e&&e.focus()})),!0}if(t===o){const t=n.closest(".menu"),s=t?.closest(".submenu");if(s){e.preventDefault(),e.stopPropagation();const n=SelectorEngine.findOne(".submenu > .menu-item",s);return this._closeSubmenu(t,s),n&&n.focus(),!0}}if(t===HOME_KEY$2||t===END_KEY$2){e.preventDefault(),e.stopPropagation();const s=n.closest(".menu"),i=SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS$1}`,s).filter(e=>isVisible(e));return i.length&&(t===HOME_KEY$2?i[0]:i.at(-1)).focus(),!0}return!1}static clearMenus(e){if(2!==e.button&&("keyup"!==e.type||"Tab"===e.key))for(const t of Menu._openInstances){if(!1===t._config.autoClose)continue;const n=e.composedPath(),s=n.includes(t._menu);if(n.includes(t._element)||"inside"===t._config.autoClose&&!s||"outside"===t._config.autoClose&&s)continue;if(t._menu.contains(e.target)&&("keyup"===e.type&&"Tab"===e.key||/input|select|option|textarea|form/i.test(e.target.tagName)))continue;const i={relatedTarget:t._element};"click"===e.type&&(i.clickEvent=e),t._completeHide(i)}}static dataApiKeydownHandler(e){const t=/input|textarea/i.test(e.target.tagName),n="Escape"===e.key,s=[ARROW_UP_KEY$2,ARROW_DOWN_KEY$2].includes(e.key),i=[ARROW_LEFT_KEY$1,ARROW_RIGHT_KEY$1].includes(e.key),o=[HOME_KEY$2,END_KEY$2].includes(e.key),a=[ENTER_KEY$1,SPACE_KEY$1].includes(e.key),l=e.target.matches(".submenu > .menu-item");if(!(s||n||i||o||a&&l))return;if(t&&!n)return;const r=this.matches(SELECTOR_DATA_TOGGLE$8)?this:SelectorEngine.prev(this,SELECTOR_DATA_TOGGLE$8)[0]||SelectorEngine.next(this,SELECTOR_DATA_TOGGLE$8)[0]||SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$8,e.delegateTarget.parentNode);if(!r)return;const c=Menu.getOrCreateInstance(r);if(!(i||o||a&&l)||!c._handleSubmenuKeydown(e)){if(s)return e.preventDefault(),e.stopPropagation(),c.show(),void c._selectMenuItem(e);if(n&&c._isShown()){e.preventDefault(),e.stopPropagation();const t=e.target.closest(".menu"),n=t?.closest(".submenu");if(n&&c._openSubmenus.size>0){const e=SelectorEngine.findOne(".submenu > .menu-item",n);return c._closeSubmenu(t,n),void(e&&e.focus())}c.hide(),r.focus()}}}}EventHandler.on(document,EVENT_KEYDOWN_DATA_API,SELECTOR_DATA_TOGGLE$8,Menu.dataApiKeydownHandler),EventHandler.on(document,EVENT_KEYDOWN_DATA_API,".menu",Menu.dataApiKeydownHandler),EventHandler.on(document,EVENT_CLICK_DATA_API$5,Menu.clearMenus),EventHandler.on(document,EVENT_KEYUP_DATA_API,Menu.clearMenus),EventHandler.on(document,EVENT_CLICK_DATA_API$5,SELECTOR_DATA_TOGGLE$8,function(e){e.preventDefault(),Menu.getOrCreateInstance(this).toggle()});const NAME$f="combobox",DATA_KEY$b="bs.combobox",EVENT_KEY$c=`.${DATA_KEY$b}`,DATA_API_KEY$7=".data-api",ESCAPE_KEY="Escape",TAB_KEY="Tab",ARROW_UP_KEY$1="ArrowUp",ARROW_DOWN_KEY$1="ArrowDown",HOME_KEY$1="Home",END_KEY$1="End",ENTER_KEY="Enter",SPACE_KEY=" ",EVENT_CHANGE$2=`change${EVENT_KEY$c}`,EVENT_SHOW$5=`show${EVENT_KEY$c}`,EVENT_SHOWN$4=`shown${EVENT_KEY$c}`,EVENT_HIDE$4=`hide${EVENT_KEY$c}`,EVENT_HIDDEN$6=`hidden${EVENT_KEY$c}`,EVENT_CLICK_DATA_API$4=`click${EVENT_KEY$c}.data-api`,CLASS_NAME_SHOW$3="show",CLASS_NAME_SELECTED="selected",CLASS_NAME_PLACEHOLDER="combobox-placeholder",SELECTOR_DATA_TOGGLE$7='[data-bs-toggle="combobox"]',SELECTOR_MENU$1=".menu",SELECTOR_MENU_ITEM=".menu-item[data-bs-value]",SELECTOR_VISIBLE_ITEMS=".menu-item[data-bs-value]:not(.disabled):not(:disabled)",SELECTOR_VALUE=".combobox-value",SELECTOR_SEARCH_INPUT=".combobox-search-input",SELECTOR_NO_RESULTS=".combobox-no-results",Default$e={boundary:"clippingParents",multiple:!1,name:null,offset:[0,2],placeholder:"",placement:"bottom-start",search:!1,searchNormalize:!1},DefaultType$e={boundary:"(string|element)",multiple:"boolean",name:"(string|null)",offset:"(array|string|function)",placeholder:"string",placement:"string",search:"boolean",searchNormalize:"boolean"};class Combobox extends BaseComponent{constructor(e,t){super(e,t),this._toggle=this._element,this._menu=SelectorEngine.next(this._toggle,".menu")[0],this._valueDisplay=SelectorEngine.findOne(SELECTOR_VALUE,this._toggle),this._searchInput=SelectorEngine.findOne(SELECTOR_SEARCH_INPUT,this._menu),this._noResults=SelectorEngine.findOne(SELECTOR_NO_RESULTS,this._menu),this._hiddenInput=null,this._menuInstance=null,this._createHiddenInput(),this._createMenuInstance(),this._syncInitialSelection(),this._addEventListeners()}static get Default(){return Default$e}static get DefaultType(){return DefaultType$e}static get NAME(){return NAME$f}toggle(){return this._isShown()?this.hide():this.show()}show(){isDisabled(this._toggle)||this._isShown()||EventHandler.trigger(this._toggle,EVENT_SHOW$5).defaultPrevented||(this._menuInstance.show(),this._searchInput&&(this._searchInput.value="",this._filterItems(""),requestAnimationFrame(()=>this._searchInput.focus())),EventHandler.trigger(this._toggle,EVENT_SHOWN$4))}hide(){this._isShown()&&(EventHandler.trigger(this._toggle,EVENT_HIDE$4).defaultPrevented||(this._menuInstance.hide(),EventHandler.trigger(this._toggle,EVENT_HIDDEN$6)))}dispose(){this._menuInstance&&(this._menuInstance.dispose(),this._menuInstance=null),this._hiddenInput&&(this._hiddenInput.remove(),this._hiddenInput=null),EventHandler.off(this._menu,EVENT_KEY$c),EventHandler.off(this._toggle,EVENT_KEY$c),super.dispose()}_isShown(){return this._menu.classList.contains("show")}_createHiddenInput(){const{name:e}=this._config;e&&(this._hiddenInput=document.createElement("input"),this._hiddenInput.type="hidden",this._hiddenInput.name=e,this._hiddenInput.value="",this._toggle.parentNode.insertBefore(this._hiddenInput,this._toggle))}_createMenuInstance(){this._menuInstance=new Menu(this._toggle,{menu:this._menu,autoClose:!this._config.multiple||"outside",boundary:this._config.boundary,offset:this._config.offset,placement:this._config.placement})}_syncInitialSelection(){this._getSelectedItems().length>0?(this._updateToggleText(),this._updateHiddenInput()):this._showPlaceholder()}_addEventListeners(){EventHandler.on(this._menu,"click",SELECTOR_MENU_ITEM,e=>{const t=e.target.closest(SELECTOR_MENU_ITEM);t&&!isDisabled(t)&&(e.preventDefault(),e.stopPropagation(),this._selectItem(t))}),EventHandler.on(this._toggle,"keydown",e=>{this._handleToggleKeydown(e)}),EventHandler.on(this._menu,"keydown",e=>{this._handleMenuKeydown(e)}),this._searchInput&&(EventHandler.on(this._searchInput,"input",()=>{this._filterItems(this._searchInput.value)}),EventHandler.on(this._searchInput,"keydown",e=>{if("ArrowDown"===e.key){e.preventDefault();const t=this._getVisibleItems();t.length>0&&t[0].focus()}"Escape"===e.key&&(this.hide(),this._toggle.focus())}))}_selectItem(e){if(this._config.multiple)e.classList.toggle("selected"),e.setAttribute("aria-selected",e.classList.contains("selected"));else{const t=SelectorEngine.find(".selected",this._menu);for(const e of t)e.classList.remove("selected"),e.setAttribute("aria-selected","false");e.classList.add("selected"),e.setAttribute("aria-selected","true")}this._updateToggleText(),this._updateHiddenInput();const t=this._config.multiple?this._getSelectedItems().map(e=>e.dataset.bsValue):e.dataset.bsValue;EventHandler.trigger(this._toggle,EVENT_CHANGE$2,{value:t,item:e}),this._config.multiple||(this.hide(),this._toggle.focus())}_updateToggleText(){const e=this._getSelectedItems();if(0!==e.length)if(this._valueDisplay.classList.remove("combobox-placeholder"),this._config.multiple&&e.length>1)this._valueDisplay.textContent=`${e.length} selected`;else{const t=e[0],n=SelectorEngine.findOne(".menu-item-content > span:first-child",t);this._valueDisplay.textContent=n?n.textContent:t.textContent.trim()}else this._showPlaceholder()}_showPlaceholder(){const{placeholder:e}=this._config;e&&(this._valueDisplay.textContent=e,this._valueDisplay.classList.add("combobox-placeholder"))}_updateHiddenInput(){if(!this._hiddenInput)return;const e=this._getSelectedItems().map(e=>e.dataset.bsValue);this._hiddenInput.value=this._config.multiple?e.join(","):e[0]||""}_getSelectedItems(){return SelectorEngine.find(".selected",this._menu)}_getVisibleItems(){return SelectorEngine.find(SELECTOR_VISIBLE_ITEMS,this._menu).filter(e=>isVisible(e))}_filterItems(e){const t=this._normalizeText(e.toLowerCase().trim()),n=SelectorEngine.find(SELECTOR_MENU_ITEM,this._menu);let s=0;for(const e of n){const n=this._normalizeText(e.textContent.toLowerCase().trim()),i=!t||n.includes(t);e.style.display=i?"":"none",i&&s++}this._noResults&&this._noResults.classList.toggle("d-none",s>0)}_normalizeText(e){return this._config.searchNormalize?e.normalize("NFD").replace(/[\u0300-\u036F]/g,""):e}_handleToggleKeydown(e){const{key:t}=e;if("ArrowDown"===t||"ArrowUp"===t){e.preventDefault(),this._isShown()||this.show();const n=this._getVisibleItems();return void(n.length>0&&("ArrowDown"===t?n[0]:n.at(-1)).focus())}"Enter"!==t&&" "!==t||this._isShown()||(e.preventDefault(),this.show())}_handleMenuKeydown(e){const{key:t,target:n}=e;if("Escape"===t)return e.preventDefault(),e.stopPropagation(),this.hide(),void this._toggle.focus();if("Tab"===t)return void this.hide();const s=n.matches("input");if("ArrowDown"===t||"ArrowUp"===t){e.preventDefault();const s=this._getVisibleItems();return void(s.length>0&&getNextActiveElement(s,n,"ArrowDown"===t,!s.includes(n)).focus())}if("Home"===t||"End"===t){e.preventDefault();const n=this._getVisibleItems();return void(n.length>0&&("Home"===t?n[0]:n.at(-1)).focus())}if(("Enter"===t||" "===t)&&!s){e.preventDefault();const t=n.closest(SELECTOR_MENU_ITEM);t&&!isDisabled(t)&&this._selectItem(t)}}static jQueryInterface(e){return this.each(function(){const t=Combobox.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}EventHandler.on(document,EVENT_CLICK_DATA_API$4,SELECTOR_DATA_TOGGLE$7,function(e){e.preventDefault(),Combobox.getOrCreateInstance(this).toggle()}),EventHandler.on(document,"DOMContentLoaded",()=>{for(const e of SelectorEngine.find(SELECTOR_DATA_TOGGLE$7))Combobox.getOrCreateInstance(e)});
/*! name: vanilla-calendar-pro v3.1.0 | url: https://github.com/uvarov-frontend/vanilla-calendar-pro */
-var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,n)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,__spreadValues=(e,t)=>{for(var n in t||(t={}))__hasOwnProp.call(t,n)&&__defNormalProp(e,n,t[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(t))__propIsEnum.call(t,n)&&__defNormalProp(e,n,t[n]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t)),__publicField=(e,t,n)=>(__defNormalProp(e,"symbol"!=typeof t?t+"":t,n),n);const errorMessages={notFoundSelector:e=>`${e} is not found, check the first argument passed to new Calendar.`,notInit:'The calendar has not been initialized, please initialize it using the "init()" method first.',notLocale:"You specified an incorrect language label or did not specify the required number of values for «locale.weekdays» or «locale.months».",incorrectTime:"The value of the time property can be: false, 12 or 24.",incorrectMonthsCount:"For the «multiple» calendar type, the «displayMonthsCount» parameter can have a value from 2 to 12, and for all others it cannot be greater than 1."},setContext=(e,t,n)=>{e.context[t]=n},destroy=e=>{var t,n,s,i,o;if(!e.context.isInit)throw new Error(errorMessages.notInit);e.inputMode?(null==(t=e.context.mainElement.parentElement)||t.removeChild(e.context.mainElement),null==(s=null==(n=e.context.inputElement)?void 0:n.replaceWith)||s.call(n,e.context.originalElement),setContext(e,"inputElement",void 0)):null==(o=(i=e.context.mainElement).replaceWith)||o.call(i,e.context.originalElement),setContext(e,"mainElement",e.context.originalElement),e.onDestroy&&e.onDestroy(e)},skipOpenOnFocus=new WeakSet,shouldSkipOpenOnFocus=e=>skipOpenOnFocus.has(e),setSkipOpenOnFocus=e=>{skipOpenOnFocus.add(e)},clearSkipOpenOnFocus=e=>{skipOpenOnFocus.delete(e)},PREV_TABINDEX_ATTR="data-vc-prev-tabindex",isFocusable=e=>e.tabIndex>=0&&!e.hasAttribute("disabled")&&"true"!==e.getAttribute("aria-disabled"),storePrevTabIndex=e=>{if(e.hasAttribute(PREV_TABINDEX_ATTR))return;const t=e.getAttribute("tabindex");e.setAttribute(PREV_TABINDEX_ATTR,null!=t?t:"")},restorePrevTabIndex=e=>{if(!e.hasAttribute(PREV_TABINDEX_ATTR))return;const t=e.getAttribute(PREV_TABINDEX_ATTR);""===t||null===t?e.removeAttribute("tabindex"):e.setAttribute("tabindex",t),e.removeAttribute(PREV_TABINDEX_ATTR)},disableTabbing=e=>{isFocusable(e)&&(storePrevTabIndex(e),e.tabIndex=-1);const t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>isFocusable(e)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;t.nextNode();){const e=t.currentNode;storePrevTabIndex(e),e.tabIndex=-1}},restoreTabbing=e=>{restorePrevTabIndex(e),e.querySelectorAll(`[${PREV_TABINDEX_ATTR}]`).forEach(restorePrevTabIndex)},hide=e=>{e.context.isShowInInputMode&&e.context.currentType&&(e.context.mainElement.dataset.vcCalendarHidden="",setContext(e,"isShowInInputMode",!1),e.inputMode&&disableTabbing(e.context.mainElement),e.context.cleanupHandlers[0]&&(e.context.cleanupHandlers.forEach(e=>e()),setContext(e,"cleanupHandlers",[])),e.inputMode&&e.context.inputElement&&e.context.mainElement.contains(document.activeElement)&&(("function"==typeof e.openOnFocus||!0===e.openOnFocus)&&setSkipOpenOnFocus(e),e.context.inputElement.focus()),e.onHide&&e.onHide(e))};function getOffset(e){if(!e||!e.getBoundingClientRect)return{top:0,bottom:0,left:0,right:0};const t=e.getBoundingClientRect(),n=document.documentElement;return{bottom:t.bottom,right:t.right,top:t.top+window.scrollY-n.clientTop,left:t.left+window.scrollX-n.clientLeft}}function getViewportDimensions(){return{vw:Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),vh:Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)}}function getWindowScrollPosition(){return{left:window.scrollX||document.documentElement.scrollLeft||0,top:window.scrollY||document.documentElement.scrollTop||0}}function calculateAvailableSpace(e){const{top:t,left:n}=getWindowScrollPosition(),{top:s,left:i}=getOffset(e),{vh:o,vw:a}=getViewportDimensions(),l=s-t,r=i-n;return{top:l,bottom:o-(l+e.clientHeight),left:r,right:a-(r+e.clientWidth)}}function getAvailablePosition(e,t,n=5){const s={top:!0,bottom:!0,left:!0,right:!0},i=[];if(!t||!e)return{canShow:s,parentPositions:i};const{bottom:o,top:a}=calculateAvailableSpace(e),{top:l,left:r}=getOffset(e),{height:c,width:d}=t.getBoundingClientRect(),{vh:u,vw:h}=getViewportDimensions(),m=h/2,_=u/2;return[{condition:l<_,position:"top"},{condition:l>_,position:"bottom"},{condition:r<m,position:"left"},{condition:r>m,position:"right"}].forEach(({condition:e,position:t})=>{e&&i.push(t)}),Object.assign(s,{top:c<=a-n,bottom:c<=o-n,left:d<=r,right:d<=h-r}),{canShow:s,parentPositions:i}}const handleDay=(e,t,n,s)=>{var i;const o=s.querySelector(`[data-vc-date="${t}"]`),a=null==o?void 0:o.querySelector("[data-vc-date-btn]");if(!o||!a)return;if((null==n?void 0:n.modifier)&&a.classList.add(...n.modifier.trim().split(" ")),!(null==n?void 0:n.html))return;const l=document.createElement("div");l.className=e.styles.datePopup,l.dataset.vcDatePopup="",l.innerHTML=e.sanitizerHTML(n.html),a.ariaExpanded="true",a.ariaLabel=`${a.ariaLabel}, ${null==(i=null==l?void 0:l.textContent)?void 0:i.replace(/^\s+|\s+(?=\s)|\s+$/g,"").replace(/ /g," ")}`,o.appendChild(l),requestAnimationFrame(()=>{if(!l)return;const{canShow:e}=getAvailablePosition(o,l),t=e.bottom?o.offsetHeight:-l.offsetHeight,n=e.left&&!e.right?o.offsetWidth-l.offsetWidth/2:!e.left&&e.right?l.offsetWidth/2:0;Object.assign(l.style,{left:`${n}px`,top:`${t}px`})})},createDatePopup=(e,t)=>{var n;e.popups&&(null==(n=Object.entries(e.popups))||n.forEach(([n,s])=>handleDay(e,n,s,t)))},getDate=e=>new Date(`${e}T00:00:00`),getDateString=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,parseDates=e=>e.reduce((e,t)=>{if(t instanceof Date||"number"==typeof t){const n=t instanceof Date?t:new Date(t);e.push(n.toISOString().substring(0,10))}else t.match(/^(\d{4}-\d{2}-\d{2})$/g)?e.push(t):t.replace(/(\d{4}-\d{2}-\d{2}).*?(\d{4}-\d{2}-\d{2})/g,(t,n,s)=>{const i=getDate(n),o=getDate(s),a=new Date(i.getTime());for(;a<=o;a.setDate(a.getDate()+1))e.push(getDateString(a));return t});return e},[]),updateAttribute=(e,t,n,s="")=>{t?e.setAttribute(n,s):e.getAttribute(n)===s&&e.removeAttribute(n)},setDateModifier=(e,t,n,s,i,o,a)=>{var l,r,c,d;const u=getDate(e.context.displayDateMin)>getDate(o)||getDate(e.context.displayDateMax)<getDate(o)||(null==(l=e.context.disableDates)?void 0:l.includes(o))||!e.selectionMonthsMode&&"current"!==a||!e.selectionYearsMode&&getDate(o).getFullYear()!==t;updateAttribute(n,u,"data-vc-date-disabled"),s&&updateAttribute(s,u,"aria-disabled","true"),s&&updateAttribute(s,u,"tabindex","-1"),updateAttribute(n,!e.disableToday&&e.context.dateToday===o,"data-vc-date-today"),updateAttribute(n,!e.disableToday&&e.context.dateToday===o,"aria-current","date"),updateAttribute(n,null==(r=e.selectedWeekends)?void 0:r.includes(i),"data-vc-date-weekend");const h=(null==(c=e.selectedHolidays)?void 0:c[0])?parseDates(e.selectedHolidays):[];if(updateAttribute(n,h.includes(o),"data-vc-date-holiday"),(null==(d=e.context.selectedDates)?void 0:d.includes(o))?(n.setAttribute("data-vc-date-selected",""),s&&s.setAttribute("aria-selected","true"),e.context.selectedDates.length>1&&"multiple-ranged"===e.selectionDatesMode&&(e.context.selectedDates[0]===o&&e.context.selectedDates[e.context.selectedDates.length-1]===o?n.setAttribute("data-vc-date-selected","first-and-last"):e.context.selectedDates[0]===o?n.setAttribute("data-vc-date-selected","first"):e.context.selectedDates[e.context.selectedDates.length-1]===o&&n.setAttribute("data-vc-date-selected","last"),e.context.selectedDates[0]!==o&&e.context.selectedDates[e.context.selectedDates.length-1]!==o&&n.setAttribute("data-vc-date-selected","middle"))):n.hasAttribute("data-vc-date-selected")&&(n.removeAttribute("data-vc-date-selected"),s&&s.removeAttribute("aria-selected")),!e.context.disableDates.includes(o)&&e.enableEdgeDatesOnly&&e.context.selectedDates.length>1&&"multiple-ranged"===e.selectionDatesMode){const t=getDate(e.context.selectedDates[0]),s=getDate(e.context.selectedDates[e.context.selectedDates.length-1]),i=getDate(o);updateAttribute(n,i>t&&i<s,"data-vc-date-selected","middle")}},getLocaleString=(e,t,n)=>new Date(`${e}T00:00:00.000Z`).toLocaleString(t,n),getWeekNumber=(e,t)=>{const n=getDate(e),s=(n.getDay()-t+7)%7;n.setDate(n.getDate()+4-s);const i=new Date(n.getFullYear(),0,1),o=Math.ceil(((+n-+i)/864e5+1)/7);return{year:n.getFullYear(),week:o}},addWeekNumberForDate=(e,t,n)=>{const s=getWeekNumber(n,e.firstWeekday);s&&(t.dataset.vcDateWeekNumber=String(s.week))},setDaysAsDisabled=(e,t,n)=>{var s,i,o,a,l;const r=null==(s=e.disableWeekdays)?void 0:s.includes(n),c=e.disableAllDates&&!!(null==(i=e.context.enableDates)?void 0:i[0]);!r&&!c||(null==(o=e.context.enableDates)?void 0:o.includes(t))||(null==(a=e.context.disableDates)?void 0:a.includes(t))||(e.context.disableDates.push(t),null==(l=e.context.disableDates)||l.sort((e,t)=>+new Date(e)-+new Date(t)))},createDate=(e,t,n,s,i,o)=>{const a=getDate(i).getDay(),l="string"==typeof e.locale&&e.locale.length?e.locale:"en",r=document.createElement("div");let c;r.className=e.styles.date,r.dataset.vcDate=i,r.dataset.vcDateMonth=o,r.dataset.vcDateWeekDay=String(a),r.role="gridcell",("current"===o||e.displayDatesOutside)&&(c=document.createElement("button"),c.className=e.styles.dateBtn,c.type="button",c.ariaLabel=getLocaleString(i,l,{dateStyle:"long",timeZone:"UTC"}),c.dataset.vcDateBtn="",c.innerText=String(s),r.appendChild(c)),e.enableWeekNumbers&&addWeekNumberForDate(e,r,i),setDaysAsDisabled(e,i,a),setDateModifier(e,t,r,c,a,i,o),n.addDate(r),e.onCreateDateEls&&e.onCreateDateEls(e,r)},createDatesFromCurrentMonth=(e,t,n,s,i)=>{for(let o=1;o<=n;o++){const n=new Date(s,i,o);createDate(e,s,t,o,getDateString(n),"current")}},createDatesFromNextMonth=(e,t,n,s,i)=>{const o=i+1===12?s+1:s,a=i+1===12?"01":i+2<10?`0${i+2}`:i+2;for(let i=1;i<=n;i++){const n=i<10?`0${i}`:String(i);createDate(e,s,t,i,`${o}-${a}-${n}`,"next")}},createDatesFromPrevMonth=(e,t,n,s,i)=>{let o=new Date(n,s,0).getDate()-(i-1);const a=0===s?n-1:n,l=0===s?12:s<10?`0${s}`:s;for(let s=i;s>0;s--,o++)createDate(e,n,t,o,`${a}-${l}-${o}`,"prev")},createWeekNumbers=(e,t,n,s,i)=>{if(!e.enableWeekNumbers)return;s.textContent="";const o=document.createElement("b");o.className=e.styles.weekNumbersTitle,o.innerText="#",o.dataset.vcWeekNumbers="title",s.appendChild(o);const a=document.createElement("div");a.className=e.styles.weekNumbersContent,a.dataset.vcWeekNumbers="content",s.appendChild(a);const l=document.createElement("button");l.type="button",l.className=e.styles.weekNumber;const r=i.querySelectorAll("[data-vc-date]"),c=Math.ceil((t+n)/7);for(let t=0;t<c;t++){const n=r[0===t?6:7*t].dataset.vcDate,s=getWeekNumber(n,e.firstWeekday);if(!s)return;const i=l.cloneNode(!0);i.innerText=String(s.week),i.dataset.vcWeekNumber=String(s.week),i.dataset.vcWeekYear=String(s.year),i.role="rowheader",i.ariaLabel=`${s.week}`,a.appendChild(i)}},createDates=e=>{const t=new Date(e.context.selectedYear,e.context.selectedMonth,1),n=e.context.mainElement.querySelectorAll('[data-vc="dates"]'),s=e.context.mainElement.querySelectorAll('[data-vc-week="numbers"]');n.forEach((n,i)=>{e.selectionDatesMode||(n.dataset.vcDatesDisabled=""),n.textContent="";const o=new Date(t);o.setMonth(o.getMonth()+i);const a=o.getMonth(),l=o.getFullYear(),r=(new Date(l,a,1).getDay()-e.firstWeekday+7)%7,c=new Date(l,a+1,0).getDate(),d=r+c,u=Math.ceil(d/7),h=7*u-d,m=[];for(let t=0;t<u;t++){const t=document.createElement("div");t.className=e.styles.datesRow,t.setAttribute("data-vc-dates","row"),t.setAttribute("role","row"),m.push(t)}let _=0,g=0;const p={addDate:e=>{m[_].appendChild(e),g++,g>=7&&(_++,g=0)}};createDatesFromPrevMonth(e,p,l,a,r),createDatesFromCurrentMonth(e,p,c,l,a),createDatesFromNextMonth(e,p,h,l,a);for(const e of m)n.appendChild(e);createDatePopup(e,n),createWeekNumbers(e,r,c,s[i],n)})},layoutDefault=e=>`\n <div class="${e.styles.header}" data-vc="header" role="toolbar" aria-label="${e.labels.navigation}">\n <#ArrowPrev [month] />\n <div class="${e.styles.headerContent}" data-vc-header="content">\n <#Month />\n <#Year />\n </div>\n <#ArrowNext [month] />\n </div>\n <div class="${e.styles.wrapper}" data-vc="wrapper">\n <#WeekNumbers />\n <div class="${e.styles.content}" data-vc="content" role="grid">\n <#Week />\n <#Dates />\n <#DateRangeTooltip />\n </div>\n </div>\n <#ControlTime />\n`,layoutMonths=e=>`\n <div class="${e.styles.header}" data-vc="header" role="toolbar" aria-label="${e.labels.navigation}">\n <div class="${e.styles.headerContent}" data-vc-header="content">\n <#Month />\n <#Year />\n </div>\n </div>\n <div class="${e.styles.wrapper}" data-vc="wrapper">\n <div class="${e.styles.content}" data-vc="content">\n <#Months />\n </div>\n </div>\n`,layoutMultiple=e=>`\n <div class="${e.styles.controls}" data-vc="controls" role="toolbar" aria-label="${e.labels.navigation}">\n <#ArrowPrev [month] />\n <#ArrowNext [month] />\n </div>\n <div class="${e.styles.grid}" data-vc="grid">\n <#Multiple>\n <div class="${e.styles.column}" data-vc="column" role="region">\n <div class="${e.styles.header}" data-vc="header">\n <div class="${e.styles.headerContent}" data-vc-header="content">\n <#Month />\n <#Year />\n </div>\n </div>\n <div class="${e.styles.wrapper}" data-vc="wrapper">\n <#WeekNumbers />\n <div class="${e.styles.content}" data-vc="content" role="grid">\n <#Week />\n <#Dates />\n </div>\n </div>\n </div>\n <#/Multiple>\n <#DateRangeTooltip />\n </div>\n <#ControlTime />\n`,layoutYears=e=>`\n <div class="${e.styles.header}" data-vc="header" role="toolbar" aria-label="${e.labels.navigation}">\n <#ArrowPrev [year] />\n <div class="${e.styles.headerContent}" data-vc-header="content">\n <#Month />\n <#Year />\n </div>\n <#ArrowNext [year] />\n </div>\n <div class="${e.styles.wrapper}" data-vc="wrapper">\n <div class="${e.styles.content}" data-vc="content">\n <#Years />\n </div>\n </div>\n`,ArrowNext=(e,t)=>`<button type="button" class="${e.styles.arrowNext}" data-vc-arrow="next" aria-label="${e.labels.arrowNext[t]}"></button>`,ArrowPrev=(e,t)=>`<button type="button" class="${e.styles.arrowPrev}" data-vc-arrow="prev" aria-label="${e.labels.arrowPrev[t]}"></button>`,ControlTime=e=>e.selectionTimeMode?`<div class="${e.styles.time}" data-vc="time" role="group" aria-label="${e.labels.selectingTime}"></div>`:"",DateRangeTooltip=e=>e.onCreateDateRangeTooltip?`<div class="${e.styles.dateRangeTooltip}" data-vc-date-range-tooltip="hidden"></div>`:"",Dates=e=>`<div class="${e.styles.dates}" data-vc="dates" aria-live="assertive" aria-label="${e.labels.dates}" ${"multiple"===e.type?"aria-multiselectable":""}></div>`,Month=e=>`<button type="button" class="${e.styles.month}" data-vc="month"></button>`,Months=e=>`<div class="${e.styles.months}" data-vc="months" role="grid" aria-live="assertive" aria-label="${e.labels.months}"></div>`,Week=e=>`<div class="${e.styles.week}" data-vc="week" role="row" aria-label="${e.labels.week}"></div>`,WeekNumbers=e=>e.enableWeekNumbers?`<div class="${e.styles.weekNumbers}" data-vc-week="numbers" role="row" aria-label="${e.labels.weekNumber}"></div>`:"",Year=e=>`<button type="button" class="${e.styles.year}" data-vc="year"></button>`,Years=e=>`<div class="${e.styles.years}" data-vc="years" role="grid" aria-live="assertive" aria-label="${e.labels.years}"></div>`,components={ArrowNext:ArrowNext,ArrowPrev:ArrowPrev,ControlTime:ControlTime,Dates:Dates,DateRangeTooltip:DateRangeTooltip,Month:Month,Months:Months,Week:Week,WeekNumbers:WeekNumbers,Year:Year,Years:Years},getComponent=e=>components[e],parseLayout=(e,t)=>t.replace(/[\n\t]/g,"").replace(/<#(?!\/?Multiple)(.*?)>/g,(t,n)=>{const s=(n.match(/\[(.*?)\]/)||[])[1],i=n.replace(/[/\s\n\t]|\[(.*?)\]/g,""),o=getComponent(i),a=o?o(e,null!=s?s:null):"";return e.sanitizerHTML(a)}).replace(/[\n\t]/g,""),parseMultipleLayout=(e,t)=>t.replace(new RegExp("<#Multiple>(.*?)<#\\/Multiple>","gs"),(t,n)=>{const s=Array(e.context.displayMonthsCount).fill(n).join("");return e.sanitizerHTML(s)}).replace(/[\n\t]/g,""),createLayouts=(e,t)=>{const n={default:layoutDefault,month:layoutMonths,year:layoutYears,multiple:layoutMultiple};if(Object.keys(n).forEach(t=>{const s=t;e.layouts[s].length||(e.layouts[s]=n[s](e))}),e.context.mainElement.className=e.styles.calendar,e.context.mainElement.dataset.vc="calendar",e.context.mainElement.dataset.vcType=e.context.currentType,e.context.mainElement.role="application",e.context.mainElement.tabIndex=0,e.context.mainElement.ariaLabel=e.labels.application,"multiple"!==e.context.currentType){if("multiple"===e.type&&t){const n=e.context.mainElement.querySelector('[data-vc="controls"]'),s=e.context.mainElement.querySelector('[data-vc="grid"]'),i=t.closest('[data-vc="column"]');return n&&n.remove(),s&&(s.dataset.vcGrid="hidden"),i&&(i.dataset.vcColumn=e.context.currentType),void(i&&(i.innerHTML=e.sanitizerHTML(parseLayout(e,e.layouts[e.context.currentType]))))}e.context.mainElement.innerHTML=e.sanitizerHTML(parseLayout(e,e.layouts[e.context.currentType]))}else e.context.mainElement.innerHTML=e.sanitizerHTML(parseMultipleLayout(e,parseLayout(e,e.layouts[e.context.currentType])))},setVisibilityArrows=(e,t,n,s)=>{e.style.visibility=n?"hidden":"",t.style.visibility=s?"hidden":""},handleDefaultType=(e,t,n)=>{const s=getDate(getDateString(new Date(e.context.selectedYear,e.context.selectedMonth,1))),i=new Date(s.getTime()),o=new Date(s.getTime());i.setMonth(i.getMonth()-e.monthsToSwitch),o.setMonth(o.getMonth()+e.monthsToSwitch);const a=getDate(e.context.dateMin),l=getDate(e.context.dateMax);e.selectionYearsMode||(a.setFullYear(s.getFullYear()),l.setFullYear(s.getFullYear()));const r=!e.selectionMonthsMode||i.getFullYear()<a.getFullYear()||i.getFullYear()===a.getFullYear()&&i.getMonth()<a.getMonth(),c=!e.selectionMonthsMode||o.getFullYear()>l.getFullYear()||o.getFullYear()===l.getFullYear()&&o.getMonth()>l.getMonth()-(e.context.displayMonthsCount-1);setVisibilityArrows(t,n,r,c)},handleYearType=(e,t,n)=>{const s=getDate(e.context.dateMin),i=getDate(e.context.dateMax),o=!!(s.getFullYear()&&e.context.displayYear-7<=s.getFullYear()),a=!!(i.getFullYear()&&e.context.displayYear+7>=i.getFullYear());setVisibilityArrows(t,n,o,a)},visibilityArrows=e=>{if("month"===e.context.currentType)return;const t=e.context.mainElement.querySelector('[data-vc-arrow="prev"]'),n=e.context.mainElement.querySelector('[data-vc-arrow="next"]');t&&n&&{default:()=>handleDefaultType(e,t,n),year:()=>handleYearType(e,t,n)}["multiple"===e.context.currentType?"default":e.context.currentType]()},visibilityHandler=(e,t,n,s,i)=>{const o=new Date(s.setFullYear(e.context.selectedYear,e.context.selectedMonth+n)).getFullYear(),a=new Date(s.setMonth(e.context.selectedMonth+n)).getMonth(),l=e.context.locale.months.long[a],r=t.closest('[data-vc="column"]');r&&(r.ariaLabel=`${l} ${o}`);const c={month:{id:a,label:l},year:{id:o,label:o}};t.innerText=String(c[i].label),t.dataset[`vc${i.charAt(0).toUpperCase()+i.slice(1)}`]=String(c[i].id),t.ariaLabel=`${e.labels[i]} ${c[i].label}`;const d={month:e.selectionMonthsMode,year:e.selectionYearsMode},u=!1===d[i]||"only-arrows"===d[i];u&&(t.tabIndex=-1),t.disabled=u},visibilityTitle=e=>{const t=e.context.mainElement.querySelectorAll('[data-vc="month"]'),n=e.context.mainElement.querySelectorAll('[data-vc="year"]'),s=new Date(e.context.selectedYear,e.context.selectedMonth,1);[t,n].forEach(t=>null==t?void 0:t.forEach((t,n)=>visibilityHandler(e,t,n,s,t.dataset.vc)))},setYearModifier=(e,t,n,s,i)=>{var o;const a={month:{selected:"data-vc-months-month-selected",aria:"aria-selected",value:"vcMonthsMonth",selectedProperty:"selectedMonth"},year:{selected:"data-vc-years-year-selected",aria:"aria-selected",value:"vcYearsYear",selectedProperty:"selectedYear"}};i&&(null==(o=e.context.mainElement.querySelectorAll({month:"[data-vc-months-month]",year:"[data-vc-years-year]"}[n]))||o.forEach(e=>{e.removeAttribute(a[n].selected),e.removeAttribute(a[n].aria)}),setContext(e,a[n].selectedProperty,Number(t.dataset[a[n].value])),visibilityTitle(e),"year"===n&&visibilityArrows(e)),s&&(t.setAttribute(a[n].selected,""),t.setAttribute(a[n].aria,"true"))},getColumnID=(e,t)=>{var n;if("multiple"!==e.type)return{currentValue:null,columnID:0};const s=e.context.mainElement.querySelectorAll('[data-vc="column"]'),i=Array.from(s).findIndex(e=>e.closest(`[data-vc-column="${t}"]`));return{currentValue:i>=0?Number(null==(n=s[i].querySelector(`[data-vc="${t}"]`))?void 0:n.getAttribute(`data-vc-${t}`)):null,columnID:Math.max(i,0)}},createMonthEl=(e,t,n,s,i,o,a)=>{const l=t.cloneNode(!1);return l.className=e.styles.monthsMonth,l.innerText=s,l.ariaLabel=i,l.role="gridcell",l.dataset.vcMonthsMonth=`${a}`,o&&(l.ariaDisabled="true"),o&&(l.tabIndex=-1),l.disabled=o,setYearModifier(e,l,"month",n===a,!1),l},createMonths=(e,t)=>{var n,s;const i=null==(n=null==t?void 0:t.closest('[data-vc="header"]'))?void 0:n.querySelector('[data-vc="year"]'),o=i?Number(i.dataset.vcYear):e.context.selectedYear,a=(null==t?void 0:t.dataset.vcMonth)?Number(t.dataset.vcMonth):e.context.selectedMonth;setContext(e,"currentType","month"),createLayouts(e,t),visibilityTitle(e);const l=e.context.mainElement.querySelector('[data-vc="months"]');if(!e.selectionMonthsMode||!l)return;const r=e.monthsToSwitch>1?e.context.locale.months.long.map((t,n)=>a-e.monthsToSwitch*n).concat(e.context.locale.months.long.map((t,n)=>a+e.monthsToSwitch*n)).filter(e=>e>=0&&e<=12):Array.from(Array(12).keys()),c=document.createElement("button");c.type="button";for(let t=0;t<12;t++){const n=getDate(e.context.dateMin),s=getDate(e.context.dateMax),i=e.context.displayMonthsCount-1,{columnID:d}=getColumnID(e,"month"),u=o<=n.getFullYear()&&t<n.getMonth()+d||o>=s.getFullYear()&&t>s.getMonth()-i+d||o>s.getFullYear()||t!==a&&!r.includes(t),h=createMonthEl(e,c,a,e.context.locale.months.short[t],e.context.locale.months.long[t],u,t);l.appendChild(h),e.onCreateMonthEls&&e.onCreateMonthEls(e,h)}null==(s=e.context.mainElement.querySelector("[data-vc-months-month]:not([disabled])"))||s.focus()},TimeInput=(e,t,n,s,i)=>`\n <label class="${t}" data-vc-time-input="${e}">\n <input type="text" name="${e}" maxlength="2" aria-label="${n[`input${e.charAt(0).toUpperCase()+e.slice(1)}`]}" value="${s}" ${i?"disabled":""}>\n </label>\n`,TimeRange=(e,t,n,s,i,o,a)=>`\n <label class="${t}" data-vc-time-range="${e}">\n <input type="range" name="${e}" min="${s}" max="${i}" step="${o}" aria-label="${n[`range${e.charAt(0).toUpperCase()+e.slice(1)}`]}" value="${a}">\n </label>\n`,handleActions=(e,t,n,s)=>{({hour:()=>setContext(e,"selectedHours",n),minute:()=>setContext(e,"selectedMinutes",n)})[s](),setContext(e,"selectedTime",`${e.context.selectedHours}:${e.context.selectedMinutes}${e.context.selectedKeeping?` ${e.context.selectedKeeping}`:""}`),e.onChangeTime&&e.onChangeTime(e,t,!1),e.inputMode&&e.context.inputElement&&e.context.mainElement&&e.onChangeToInput&&e.onChangeToInput(e,t)},transformTime24=(e,t)=>{var n;return(null==(n={0:{AM:"00",PM:"12"},1:{AM:"01",PM:"13"},2:{AM:"02",PM:"14"},3:{AM:"03",PM:"15"},4:{AM:"04",PM:"16"},5:{AM:"05",PM:"17"},6:{AM:"06",PM:"18"},7:{AM:"07",PM:"19"},8:{AM:"08",PM:"20"},9:{AM:"09",PM:"21"},10:{AM:"10",PM:"22"},11:{AM:"11",PM:"23"},12:{AM:"00",PM:"12"}}[Number(e)])?void 0:n[t])||String(e)},handleClickKeepingTime=(e,t,n,s,i)=>{const o=o=>{const a="AM"===e.context.selectedKeeping?"PM":"AM",l=transformTime24(e.context.selectedHours,a);Number(l)<=s&&Number(l)>=i?(setContext(e,"selectedKeeping",a),n.value=l,handleActions(e,o,e.context.selectedHours,"hour"),t.ariaLabel=`${e.labels.btnKeeping} ${e.context.selectedKeeping}`,t.innerText=e.context.selectedKeeping):e.onChangeTime&&e.onChangeTime(e,o,!0)};return t.addEventListener("click",o),()=>{t.removeEventListener("click",o)}},transformTime12=e=>({0:"12",13:"01",14:"02",15:"03",16:"04",17:"05",18:"06",19:"07",20:"08",21:"09",22:"10",23:"11"}[Number(e)]||String(e)),updateInputAndRange=(e,t,n,s)=>{e.value=n,t.value=s},updateKeepingTime$1=(e,t,n)=>{t&&n&&(setContext(e,"selectedKeeping",n),t.innerText=n)},handleInput$1=(e,t,n,s,i,o,a)=>{const l={hour:(l,r,c)=>{e.selectionTimeMode&&{12:()=>{if(!e.context.selectedKeeping)return;const d=Number(transformTime24(r,e.context.selectedKeeping));if(!(d<=o&&d>=a))return updateInputAndRange(n,t,e.context.selectedHours,e.context.selectedHours),void(e.onChangeTime&&e.onChangeTime(e,c,!0));updateInputAndRange(n,t,transformTime12(r),transformTime24(r,e.context.selectedKeeping)),l>12&&updateKeepingTime$1(e,s,"PM"),handleActions(e,c,transformTime12(r),i)},24:()=>{if(!(l<=o&&l>=a))return updateInputAndRange(n,t,e.context.selectedHours,e.context.selectedHours),void(e.onChangeTime&&e.onChangeTime(e,c,!0));updateInputAndRange(n,t,r,r),handleActions(e,c,r,i)}}[e.selectionTimeMode]()},minute:(s,l,r)=>{if(!(s<=o&&s>=a))return n.value=e.context.selectedMinutes,void(e.onChangeTime&&e.onChangeTime(e,r,!0));n.value=l,t.value=l,handleActions(e,r,l,i)}},r=e=>{const t=Number(n.value),s=n.value.padStart(2,"0");l[i]&&l[i](t,s,e)};return n.addEventListener("change",r),()=>{n.removeEventListener("change",r)}},updateInputAndTime=(e,t,n,s,i)=>{t.value=i,handleActions(e,n,i,s)},updateKeepingTime=(e,t,n)=>{t&&(setContext(e,"selectedKeeping",n),t.innerText=n)},handleRange=(e,t,n,s,i)=>{const o=o=>{const a=Number(t.value),l=t.value.padStart(2,"0"),r="hour"===i,c=24===e.selectionTimeMode,d=a>0&&a<12;r&&!c&&updateKeepingTime(e,s,0===a||d?"AM":"PM"),updateInputAndTime(e,n,o,i,!r||c||d?l:transformTime12(t.value))};return t.addEventListener("input",o),()=>{t.removeEventListener("input",o)}},handleMouseOver=e=>e.setAttribute("data-vc-input-focus",""),handleMouseOut=e=>e.removeAttribute("data-vc-input-focus"),handleTime=(e,t)=>{const n=t.querySelector('[data-vc-time-range="hour"] input[name="hour"]'),s=t.querySelector('[data-vc-time-range="minute"] input[name="minute"]'),i=t.querySelector('[data-vc-time-input="hour"] input[name="hour"]'),o=t.querySelector('[data-vc-time-input="minute"] input[name="minute"]'),a=t.querySelector('[data-vc-time="keeping"]');if(!(n&&s&&i&&o))return;const l=e=>{e.target===n&&handleMouseOver(i),e.target===s&&handleMouseOver(o)},r=e=>{e.target===n&&handleMouseOut(i),e.target===s&&handleMouseOut(o)};return t.addEventListener("mouseover",l),t.addEventListener("mouseout",r),handleInput$1(e,n,i,a,"hour",e.timeMaxHour,e.timeMinHour),handleInput$1(e,s,o,a,"minute",e.timeMaxMinute,e.timeMinMinute),handleRange(e,n,i,a,"hour"),handleRange(e,s,o,a,"minute"),a&&handleClickKeepingTime(e,a,n,e.timeMaxHour,e.timeMinHour),()=>{t.removeEventListener("mouseover",l),t.removeEventListener("mouseout",r)}},createTime=e=>{const t=e.context.mainElement.querySelector('[data-vc="time"]');if(!e.selectionTimeMode||!t)return;const[n,s]=[e.timeMinHour,e.timeMaxHour],[i,o]=[e.timeMinMinute,e.timeMaxMinute],a=e.context.selectedKeeping?transformTime24(e.context.selectedHours,e.context.selectedKeeping):e.context.selectedHours,l="range"===e.timeControls;var r;t.innerHTML=e.sanitizerHTML(`\n <div class="${e.styles.timeContent}" data-vc-time="content">\n ${TimeInput("hour",e.styles.timeHour,e.labels,e.context.selectedHours,l)}\n ${TimeInput("minute",e.styles.timeMinute,e.labels,e.context.selectedMinutes,l)}\n ${12===e.selectionTimeMode?(r=e.context.selectedKeeping,`<button type="button" class="${e.styles.timeKeeping}" aria-label="${e.labels.btnKeeping} ${r}" data-vc-time="keeping" ${l?"disabled":""}>${r}</button>`):""}\n </div>\n <div class="${e.styles.timeRanges}" data-vc-time="ranges">\n ${TimeRange("hour",e.styles.timeRange,e.labels,n,s,e.timeStepHour,a)}\n ${TimeRange("minute",e.styles.timeRange,e.labels,i,o,e.timeStepMinute,e.context.selectedMinutes)}\n </div>\n `),handleTime(e,t)},createWeek=e=>{const t=e.selectedWeekends?[...e.selectedWeekends]:[],n=[...e.context.locale.weekdays.long].reduce((n,s,i)=>[...n,{id:i,titleShort:e.context.locale.weekdays.short[i],titleLong:s,isWeekend:t.includes(i)}],[]),s=[...n.slice(e.firstWeekday),...n.slice(0,e.firstWeekday)];e.context.mainElement.querySelectorAll('[data-vc="week"]').forEach(t=>{const n=e.onClickWeekDay?document.createElement("button"):document.createElement("b");e.onClickWeekDay&&(n.type="button"),s.forEach(s=>{const i=n.cloneNode(!0);i.innerText=s.titleShort,i.className=e.styles.weekDay,i.role="columnheader",i.ariaLabel=s.titleLong,i.dataset.vcWeekDay=String(s.id),s.isWeekend&&(i.dataset.vcWeekDayOff=""),t.appendChild(i)})})},createYearEl=(e,t,n,s,i)=>{const o=t.cloneNode(!1);return o.className=e.styles.yearsYear,o.innerText=String(i),o.ariaLabel=String(i),o.role="gridcell",o.dataset.vcYearsYear=`${i}`,s&&(o.ariaDisabled="true"),s&&(o.tabIndex=-1),o.disabled=s,setYearModifier(e,o,"year",n===i,!1),o},createYears=(e,t)=>{var n;const s=(null==t?void 0:t.dataset.vcYear)?Number(t.dataset.vcYear):e.context.selectedYear;setContext(e,"currentType","year"),createLayouts(e,t),visibilityTitle(e),visibilityArrows(e);const i=e.context.mainElement.querySelector('[data-vc="years"]');if(!e.selectionYearsMode||!i)return;const o="multiple"!==e.type||e.context.selectedYear===s?0:1,a=document.createElement("button");a.type="button";for(let t=e.context.displayYear-7;t<e.context.displayYear+8;t++){const n=t<getDate(e.context.dateMin).getFullYear()+o||t>getDate(e.context.dateMax).getFullYear(),l=createYearEl(e,a,s,n,t);i.appendChild(l),e.onCreateYearEls&&e.onCreateYearEls(e,l)}null==(n=e.context.mainElement.querySelector("[data-vc-years-year]:not([disabled])"))||n.focus()},trackChangesHTMLElement=(e,t,n)=>{new MutationObserver(e=>{for(let s=0;s<e.length;s++)if(e[s].attributeName===t){n();break}}).observe(e,{attributes:!0})},haveListener={value:!1,set:()=>haveListener.value=!0,check:()=>haveListener.value},setTheme=(e,t)=>e.dataset.vcTheme=t,trackChangesThemeInSystemSettings=(e,t)=>{if(setTheme(e.context.mainElement,t.matches?"dark":"light"),"system"!==e.selectedTheme||haveListener.check())return;const n=e=>{const t=document.querySelectorAll('[data-vc="calendar"]');null==t||t.forEach(t=>setTheme(t,e.matches?"dark":"light"))};t.addEventListener?t.addEventListener("change",n):t.addListener(n),haveListener.set()},detectTheme=(e,t)=>{const n=e.themeAttrDetect.length?document.querySelector(e.themeAttrDetect):null,s=e.themeAttrDetect.replace(/^.*\[(.+)\]/g,(e,t)=>t);if(!n||"system"===n.getAttribute(s))return void trackChangesThemeInSystemSettings(e,t);const i=n.getAttribute(s);i?(setTheme(e.context.mainElement,i),trackChangesHTMLElement(n,s,()=>{const t=n.getAttribute(s);t&&setTheme(e.context.mainElement,t)})):trackChangesThemeInSystemSettings(e,t)},handleTheme=e=>{"not all"!==window.matchMedia("(prefers-color-scheme)").media?"system"===e.selectedTheme?detectTheme(e,window.matchMedia("(prefers-color-scheme: dark)")):setTheme(e.context.mainElement,e.selectedTheme):setTheme(e.context.mainElement,"light")},capitalizeFirstLetter=e=>e.charAt(0).toUpperCase()+e.slice(1).replace(/\./,""),getLocaleWeekday=(e,t,n)=>{const s=new Date(`1978-01-0${t+1}T00:00:00.000Z`),i=s.toLocaleString(n,{weekday:"short",timeZone:"UTC"}),o=s.toLocaleString(n,{weekday:"long",timeZone:"UTC"});e.context.locale.weekdays.short.push(capitalizeFirstLetter(i)),e.context.locale.weekdays.long.push(capitalizeFirstLetter(o))},getLocaleMonth=(e,t,n)=>{const s=new Date(`1978-${String(t+1).padStart(2,"0")}-01T00:00:00.000Z`),i=s.toLocaleString(n,{month:"short",timeZone:"UTC"}),o=s.toLocaleString(n,{month:"long",timeZone:"UTC"});e.context.locale.months.short.push(capitalizeFirstLetter(i)),e.context.locale.months.long.push(capitalizeFirstLetter(o))},getLocale=e=>{var t,n,s,i,o,a,l,r;if(!(e.context.locale.weekdays.short[6]&&e.context.locale.weekdays.long[6]&&e.context.locale.months.short[11]&&e.context.locale.months.long[11]))if("string"==typeof e.locale){if("string"==typeof e.locale&&!e.locale.length)throw new Error(errorMessages.notLocale);Array.from({length:7},(t,n)=>getLocaleWeekday(e,n,e.locale)),Array.from({length:12},(t,n)=>getLocaleMonth(e,n,e.locale))}else{if(!((null==(n=null==(t=e.locale)?void 0:t.weekdays)?void 0:n.short[6])&&(null==(i=null==(s=e.locale)?void 0:s.weekdays)?void 0:i.long[6])&&(null==(a=null==(o=e.locale)?void 0:o.months)?void 0:a.short[11])&&(null==(r=null==(l=e.locale)?void 0:l.months)?void 0:r.long[11])))throw new Error(errorMessages.notLocale);setContext(e,"locale",__spreadValues({},e.locale))}},create=e=>{const t={default:()=>{createWeek(e),createDates(e)},multiple:()=>{createWeek(e),createDates(e)},month:()=>createMonths(e),year:()=>createYears(e)};handleTheme(e),getLocale(e),createLayouts(e),visibilityTitle(e),visibilityArrows(e),createTime(e),t[e.context.currentType]()},handleArrowKeys=e=>{const t=t=>{var n;const s=t.target;if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(t.key)||"button"!==s.localName)return;const i=Array.from(e.context.mainElement.querySelectorAll('[data-vc="calendar"] button')),o=i.indexOf(s);if(-1===o)return;const a=(l=i[o]).hasAttribute("data-vc-date-btn")?7:l.hasAttribute("data-vc-months-month")?4:l.hasAttribute("data-vc-years-year")?5:1;var l;const r=(0,{ArrowUp:()=>Math.max(0,o-a),ArrowDown:()=>Math.min(i.length-1,o+a),ArrowLeft:()=>Math.max(0,o-1),ArrowRight:()=>Math.min(i.length-1,o+1)}[t.key])();null==(n=i[r])||n.focus()};return e.context.mainElement.addEventListener("keydown",t),()=>e.context.mainElement.removeEventListener("keydown",t)},handleMonth=(e,t)=>{const n=getDate(getDateString(new Date(e.context.selectedYear,e.context.selectedMonth,1)));({prev:()=>n.setMonth(n.getMonth()-e.monthsToSwitch),next:()=>n.setMonth(n.getMonth()+e.monthsToSwitch)})[t](),setContext(e,"selectedMonth",n.getMonth()),setContext(e,"selectedYear",n.getFullYear()),visibilityTitle(e),visibilityArrows(e),createDates(e)},handleClickArrow=(e,t)=>{const n=t.target.closest("[data-vc-arrow]");if(n){if(["default","multiple"].includes(e.context.currentType))handleMonth(e,n.dataset.vcArrow);else if("year"===e.context.currentType&&void 0!==e.context.displayYear){const s={prev:-15,next:15}[n.dataset.vcArrow];setContext(e,"displayYear",e.context.displayYear+s),createYears(e,t.target)}e.onClickArrow&&e.onClickArrow(e,t)}},resolveToggle=(e,t)=>void 0===t||("function"==typeof t?t(e):t),canToggleSelection=e=>resolveToggle(e,e.enableDateToggle),handleSelectDate=(e,t,n)=>{const s=t.dataset.vcDate,i=t.closest("[data-vc-date][data-vc-date-selected]"),o=canToggleSelection(e);if(i&&!o)return;const a=i?e.context.selectedDates.filter(e=>e!==s):n?[...e.context.selectedDates,s]:[s];setContext(e,"selectedDates",a)},createDateRangeTooltip=(e,t,n)=>{if(!t)return;if(!n)return t.dataset.vcDateRangeTooltip="hidden",void(t.textContent="");const s=e.context.mainElement.getBoundingClientRect(),i=n.getBoundingClientRect();t.style.left=i.left-s.left+i.width/2+"px",t.style.top=i.bottom-s.top-i.height+"px",t.dataset.vcDateRangeTooltip="visible",t.innerHTML=e.sanitizerHTML(e.onCreateDateRangeTooltip(e,n,t,i,s))},state={self:null,lastDateEl:null,isHovering:!1,rangeMin:void 0,rangeMax:void 0,tooltipEl:null,timeoutId:null},addHoverEffect=(e,t,n)=>{var s,i,o;if(!(null==(i=null==(s=state.self)?void 0:s.context)?void 0:i.selectedDates[0]))return;const a=getDateString(e);(null==(o=state.self.context.disableDates)?void 0:o.includes(a))||(state.self.context.mainElement.querySelectorAll(`[data-vc-date="${a}"]`).forEach(e=>e.dataset.vcDateHover=""),t.forEach(e=>e.dataset.vcDateHover="first"),n.forEach(e=>{"first"===e.dataset.vcDateHover?e.dataset.vcDateHover="first-and-last":e.dataset.vcDateHover="last"}))},removeHoverEffect=()=>{var e,t;(null==(t=null==(e=state.self)?void 0:e.context)?void 0:t.mainElement)&&state.self.context.mainElement.querySelectorAll("[data-vc-date-hover]").forEach(e=>e.removeAttribute("data-vc-date-hover"))},handleHoverDatesEvent=e=>{var t,n;if(!e||!(null==(n=null==(t=state.self)?void 0:t.context)?void 0:n.selectedDates[0]))return;if(!e.closest('[data-vc="dates"]'))return state.lastDateEl=null,createDateRangeTooltip(state.self,state.tooltipEl,null),void removeHoverEffect();const s=e.closest("[data-vc-date]");if(!s||state.lastDateEl===s)return;state.lastDateEl=s,createDateRangeTooltip(state.self,state.tooltipEl,s),removeHoverEffect();const i=s.dataset.vcDate,o=getDate(state.self.context.selectedDates[0]),a=getDate(i),l=state.self.context.mainElement.querySelectorAll(`[data-vc-date="${state.self.context.selectedDates[0]}"]`),r=state.self.context.mainElement.querySelectorAll(`[data-vc-date="${i}"]`),[c,d]=o<a?[l,r]:[r,l],[u,h]=o<a?[o,a]:[a,o];for(let e=new Date(u);e<=h;e.setDate(e.getDate()+1))addHoverEffect(e,c,d)},handleHoverSelectedDatesRangeEvent=e=>{const t=null==e?void 0:e.closest("[data-vc-date-selected]");if(!t&&state.lastDateEl)return state.lastDateEl=null,void createDateRangeTooltip(state.self,state.tooltipEl,null);t&&state.lastDateEl!==t&&(state.lastDateEl=t,createDateRangeTooltip(state.self,state.tooltipEl,t))},optimizedHoverHandler=e=>t=>{const n=t.target;state.isHovering||(state.isHovering=!0,requestAnimationFrame(()=>{e(n),state.isHovering=!1}))},optimizedHandleHoverDatesEvent=optimizedHoverHandler(handleHoverDatesEvent),optimizedHandleHoverSelectedDatesRangeEvent=optimizedHoverHandler(handleHoverSelectedDatesRangeEvent),handleCancelSelectionDates=e=>{state.self&&"Escape"===e.key&&(state.lastDateEl=null,setContext(state.self,"selectedDates",[]),state.self.context.mainElement.removeEventListener("mousemove",optimizedHandleHoverDatesEvent),state.self.context.mainElement.removeEventListener("keydown",handleCancelSelectionDates),createDateRangeTooltip(state.self,state.tooltipEl,null),removeHoverEffect())},handleMouseLeave=()=>{null!==state.timeoutId&&clearTimeout(state.timeoutId),state.timeoutId=setTimeout(()=>{state.lastDateEl=null,createDateRangeTooltip(state.self,state.tooltipEl,null),removeHoverEffect()},50)},updateDisabledDates=()=>{var e,t,n,s;if(!(null==(n=null==(t=null==(e=state.self)?void 0:e.context)?void 0:t.selectedDates)?void 0:n[0])||!(null==(s=state.self.context.disableDates)?void 0:s[0]))return;const i=getDate(state.self.context.selectedDates[0]),[o,a]=state.self.context.disableDates.map(e=>getDate(e)).reduce(([e,t],n)=>[i>=n?n:e,i<n&&null===t?n:t],[null,null]);o&&setContext(state.self,"displayDateMin",getDateString(new Date(o.setDate(o.getDate()+1)))),a&&setContext(state.self,"displayDateMax",getDateString(new Date(a.setDate(a.getDate()-1)))),state.self.disableDatesPast&&!state.self.disableAllDates&&getDate(state.self.context.displayDateMin)<getDate(state.self.context.dateToday)&&setContext(state.self,"displayDateMin",state.self.context.dateToday)},handleSelectDateRange=(e,t)=>{state.self=e,state.lastDateEl=t,removeHoverEffect(),e.disableDatesGaps&&(state.rangeMin=state.rangeMin?state.rangeMin:e.context.displayDateMin,state.rangeMax=state.rangeMax?state.rangeMax:e.context.displayDateMax),e.onCreateDateRangeTooltip&&(state.tooltipEl=e.context.mainElement.querySelector("[data-vc-date-range-tooltip]"));const n=null==t?void 0:t.dataset.vcDate;if(n){const t=1===e.context.selectedDates.length&&e.context.selectedDates[0].includes(n),s=t&&!canToggleSelection(e)?[n,n]:t&&canToggleSelection(e)?[]:e.context.selectedDates.length>1?[n]:[...e.context.selectedDates,n];setContext(e,"selectedDates",s),e.context.selectedDates.length>1&&e.context.selectedDates.sort((e,t)=>+new Date(e)-+new Date(t))}({set:()=>(e.disableDatesGaps&&updateDisabledDates(),createDateRangeTooltip(state.self,state.tooltipEl,t),state.self.context.mainElement.removeEventListener("mousemove",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.removeEventListener("mouseleave",handleMouseLeave),state.self.context.mainElement.removeEventListener("keydown",handleCancelSelectionDates),state.self.context.mainElement.addEventListener("mousemove",optimizedHandleHoverDatesEvent),state.self.context.mainElement.addEventListener("mouseleave",handleMouseLeave),state.self.context.mainElement.addEventListener("keydown",handleCancelSelectionDates),()=>{state.self.context.mainElement.removeEventListener("mousemove",optimizedHandleHoverDatesEvent),state.self.context.mainElement.removeEventListener("mouseleave",handleMouseLeave),state.self.context.mainElement.removeEventListener("keydown",handleCancelSelectionDates)}),reset:()=>{const[n,s]=[e.context.selectedDates[0],e.context.selectedDates[e.context.selectedDates.length-1]],i=e.context.selectedDates[0]!==e.context.selectedDates[e.context.selectedDates.length-1],o=parseDates([`${n}:${s}`]).filter(t=>!e.context.disableDates.includes(t)),a=i?e.enableEdgeDatesOnly?[n,s]:o:[e.context.selectedDates[0],e.context.selectedDates[0]];if(setContext(e,"selectedDates",a),e.disableDatesGaps&&(setContext(e,"displayDateMin",state.rangeMin),setContext(e,"displayDateMax",state.rangeMax)),state.self.context.mainElement.removeEventListener("mousemove",optimizedHandleHoverDatesEvent),state.self.context.mainElement.removeEventListener("mouseleave",handleMouseLeave),state.self.context.mainElement.removeEventListener("keydown",handleCancelSelectionDates),e.onCreateDateRangeTooltip)return e.context.selectedDates[0]||(state.self.context.mainElement.removeEventListener("mousemove",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.removeEventListener("mouseleave",handleMouseLeave),createDateRangeTooltip(state.self,state.tooltipEl,null)),e.context.selectedDates[0]&&(state.self.context.mainElement.addEventListener("mousemove",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.addEventListener("mouseleave",handleMouseLeave),createDateRangeTooltip(state.self,state.tooltipEl,t)),()=>{state.self.context.mainElement.removeEventListener("mousemove",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.removeEventListener("mouseleave",handleMouseLeave)}}})[1===e.context.selectedDates.length?"set":"reset"]()},updateDateModifier=e=>{e.context.mainElement.querySelectorAll("[data-vc-date]").forEach(t=>{const n=t.querySelector("[data-vc-date-btn]"),s=t.dataset.vcDate,i=getDate(s).getDay();setDateModifier(e,e.context.selectedYear,t,n,i,s,"current")})},handleClickDate=(e,t)=>{var n;const s=t.target,i=s.closest("[data-vc-date-btn]");if(!e.selectionDatesMode||!["single","multiple","multiple-ranged"].includes(e.selectionDatesMode)||!i)return;const o=i.closest("[data-vc-date]");({single:()=>handleSelectDate(e,o,!1),multiple:()=>handleSelectDate(e,o,!0),"multiple-ranged":()=>handleSelectDateRange(e,o)})[e.selectionDatesMode](),null==(n=e.context.selectedDates)||n.sort((e,t)=>+new Date(e)-+new Date(t)),e.onClickDate&&e.onClickDate(e,t),e.inputMode&&e.context.inputElement&&e.context.mainElement&&e.onChangeToInput&&e.onChangeToInput(e,t);const a=s.closest('[data-vc-date-month="prev"]'),l=s.closest('[data-vc-date-month="next"]');({prev:()=>e.enableMonthChangeOnDayClick?handleMonth(e,"prev"):updateDateModifier(e),next:()=>e.enableMonthChangeOnDayClick?handleMonth(e,"next"):updateDateModifier(e),current:()=>updateDateModifier(e)})[a?"prev":l?"next":"current"]()},typeClick=["month","year"],getValue=(e,t,n)=>{const{currentValue:s,columnID:i}=getColumnID(e,t);return"month"===e.context.currentType&&i>=0?n-i:"year"===e.context.currentType&&e.context.selectedYear!==s?n-1:n},handleMultipleYearSelection=(e,t)=>{const n=getValue(e,"year",Number(t.dataset.vcYearsYear)),s=getDate(e.context.dateMin),i=getDate(e.context.dateMax),o=e.context.displayMonthsCount-1,{columnID:a}=getColumnID(e,"year"),l=e.context.selectedMonth<s.getMonth()&&n<=s.getFullYear(),r=e.context.selectedMonth>i.getMonth()-o+a&&n>=i.getFullYear(),c=n<s.getFullYear(),d=n>i.getFullYear(),u=l||c?s.getFullYear():r||d?i.getFullYear():n,h=l||c?s.getMonth():r||d?i.getMonth()-o+a:e.context.selectedMonth;setContext(e,"selectedYear",u),setContext(e,"selectedMonth",h)},handleMultipleMonthSelection=(e,t)=>{const n=t.closest('[data-vc-column="month"]').querySelector('[data-vc="year"]'),s=getValue(e,"month",Number(t.dataset.vcMonthsMonth)),i=Number(n.dataset.vcYear),o=getDate(e.context.dateMin),a=getDate(e.context.dateMax),l=s<o.getMonth()&&i<=o.getFullYear(),r=s>a.getMonth()&&i>=a.getFullYear();setContext(e,"selectedYear",i),setContext(e,"selectedMonth",l?o.getMonth():r?a.getMonth():s)},handleItemClick=(e,t,n,s)=>{var i;({year:()=>{if("multiple"===e.type)return handleMultipleYearSelection(e,s);setContext(e,"selectedYear",Number(s.dataset.vcYearsYear))},month:()=>{if("multiple"===e.type)return handleMultipleMonthSelection(e,s);setContext(e,"selectedMonth",Number(s.dataset.vcMonthsMonth))}})[n](),{year:()=>{var n;return null==(n=e.onClickYear)?void 0:n.call(e,e,t)},month:()=>{var n;return null==(n=e.onClickMonth)?void 0:n.call(e,e,t)}}[n](),e.context.currentType!==e.type?(setContext(e,"currentType",e.type),create(e),null==(i=e.context.mainElement.querySelector(`[data-vc="${n}"]`))||i.focus()):setYearModifier(e,s,n,!0,!0)},handleClickType=(e,t,n)=>{var s;const i=t.target,o=i.closest(`[data-vc="${n}"]`),a={year:()=>createYears(e,i),month:()=>createMonths(e,i)};if(o&&e.onClickTitle&&e.onClickTitle(e,t),o&&e.context.currentType!==n)return a[n]();const l=i.closest(`[data-vc-${n}s-${n}]`);if(l)return handleItemClick(e,t,n,l);const r=i.closest('[data-vc="grid"]'),c=i.closest('[data-vc="column"]');(e.context.currentType===n&&o||"multiple"===e.type&&e.context.currentType===n&&r&&!c)&&(setContext(e,"currentType",e.type),create(e),null==(s=e.context.mainElement.querySelector(`[data-vc="${n}"]`))||s.focus())},handleClickMonthOrYear=(e,t)=>{const n={month:e.selectionMonthsMode,year:e.selectionYearsMode};typeClick.forEach(s=>{n[s]&&t.target&&handleClickType(e,t,s)})},handleClickWeekNumber=(e,t)=>{if(!e.enableWeekNumbers||!e.onClickWeekNumber)return;const n=t.target.closest("[data-vc-week-number]"),s=e.context.mainElement.querySelectorAll("[data-vc-date-week-number]");if(!n||!s[0])return;const i=Number(n.innerText),o=Number(n.dataset.vcWeekYear),a=Array.from(s).filter(e=>Number(e.dataset.vcDateWeekNumber)===i);e.onClickWeekNumber(e,i,o,a,t)},handleClickWeekDay=(e,t)=>{if(!e.onClickWeekDay)return;const n=t.target.closest("[data-vc-week-day]"),s=t.target.closest('[data-vc="column"]'),i=s?s.querySelectorAll("[data-vc-date-week-day]"):e.context.mainElement.querySelectorAll("[data-vc-date-week-day]");if(!n||!i[0])return;const o=Number(n.dataset.vcWeekDay),a=Array.from(i).filter(e=>Number(e.dataset.vcDateWeekDay)===o);e.onClickWeekDay(e,o,a,t)},handleClick=e=>{const t=t=>{handleClickArrow(e,t),handleClickWeekDay(e,t),handleClickWeekNumber(e,t),handleClickDate(e,t),handleClickMonthOrYear(e,t)};return e.context.mainElement.addEventListener("click",t),()=>e.context.mainElement.removeEventListener("click",t)},initMonthsCount=e=>{if("multiple"===e.type&&(e.displayMonthsCount<=1||e.displayMonthsCount>12))throw new Error(errorMessages.incorrectMonthsCount);if("multiple"!==e.type&&e.displayMonthsCount>1)throw new Error(errorMessages.incorrectMonthsCount);setContext(e,"displayMonthsCount",e.displayMonthsCount?e.displayMonthsCount:"multiple"===e.type?2:1)},getLocalDate=()=>{const e=new Date;return new Date(e.getTime()-6e4*e.getTimezoneOffset()).toISOString().substring(0,10)},resolveDate=(e,t)=>"today"===e?getLocalDate():e instanceof Date||"number"==typeof e||"string"==typeof e?parseDates([e])[0]:t,initRange=e=>{var t,n,s;const i=resolveDate(e.dateMin,e.dateMin),o=resolveDate(e.dateMax,e.dateMax),a=resolveDate(e.displayDateMin,i),l=resolveDate(e.displayDateMax,o);setContext(e,"dateToday",resolveDate(e.dateToday,e.dateToday)),setContext(e,"displayDateMin",a?getDate(i)>=getDate(a)?i:a:i),setContext(e,"displayDateMax",l?getDate(o)<=getDate(l)?o:l:o);const r=e.disableDatesPast&&!e.disableAllDates&&getDate(a)<getDate(e.context.dateToday);setContext(e,"displayDateMin",r||e.disableAllDates?e.context.dateToday:a),setContext(e,"displayDateMax",e.disableAllDates?e.context.dateToday:l),setContext(e,"disableDates",e.disableDates[0]&&!e.disableAllDates?parseDates(e.disableDates):e.disableAllDates?[e.context.displayDateMin]:[]),e.context.disableDates.length>1&&e.context.disableDates.sort((e,t)=>+new Date(e)-+new Date(t)),setContext(e,"enableDates",e.enableDates[0]?parseDates(e.enableDates):[]),(null==(t=e.context.enableDates)?void 0:t[0])&&(null==(n=e.context.disableDates)?void 0:n[0])&&setContext(e,"disableDates",e.context.disableDates.filter(t=>!e.context.enableDates.includes(t))),e.context.enableDates.length>1&&e.context.enableDates.sort((e,t)=>+new Date(e)-+new Date(t)),(null==(s=e.context.enableDates)?void 0:s[0])&&e.disableAllDates&&(setContext(e,"displayDateMin",e.context.enableDates[0]),setContext(e,"displayDateMax",e.context.enableDates[e.context.enableDates.length-1])),setContext(e,"dateMin",e.displayDisabledDates?i:e.context.displayDateMin),setContext(e,"dateMax",e.displayDisabledDates?o:e.context.displayDateMax)},initSelectedDates=e=>{var t;setContext(e,"selectedDates",(null==(t=e.selectedDates)?void 0:t[0])?parseDates(e.selectedDates):[])},displayClosestValidDate=e=>{const t=t=>{const n=new Date(t);setInitialContext(e,n.getMonth(),n.getFullYear())};if(e.displayDateMin&&"today"!==e.displayDateMin&&(n=e.displayDateMin,s=new Date,new Date(n).getTime()>s.getTime())){const n=e.selectedDates.length&&e.selectedDates[0]?parseDates(e.selectedDates)[0]:e.displayDateMin;return t(getDate(resolveDate(n,e.displayDateMin))),!0}var n,s;if(e.displayDateMax&&"today"!==e.displayDateMax&&((e,t)=>new Date(e).getTime()<t.getTime())(e.displayDateMax,new Date)){const n=e.selectedDates.length&&e.selectedDates[0]?parseDates(e.selectedDates)[0]:e.displayDateMax;return t(getDate(resolveDate(n,e.displayDateMax))),!0}return!1},setInitialContext=(e,t,n)=>{setContext(e,"selectedMonth",t),setContext(e,"selectedYear",n),setContext(e,"displayYear",n)},initSelectedMonthYear=e=>{var t;if(e.enableJumpToSelectedDate&&(null==(t=e.selectedDates)?void 0:t[0])&&void 0===e.selectedMonth&&void 0===e.selectedYear){const t=getDate(parseDates(e.selectedDates)[0]);return void setInitialContext(e,t.getMonth(),t.getFullYear())}if(displayClosestValidDate(e))return;const n=void 0!==e.selectedMonth&&Number(e.selectedMonth)>=0&&Number(e.selectedMonth)<12,s=void 0!==e.selectedYear&&Number(e.selectedYear)>=0&&Number(e.selectedYear)<=9999;setInitialContext(e,n?Number(e.selectedMonth):getDate(e.context.dateToday).getMonth(),s?Number(e.selectedYear):getDate(e.context.dateToday).getFullYear())},initTime=e=>{var t,n,s;if(!e.selectionTimeMode)return;if(![12,24].includes(e.selectionTimeMode))throw new Error(errorMessages.incorrectTime);const i=12===e.selectionTimeMode,o=i?/^(0[1-9]|1[0-2]):([0-5][0-9]) ?(AM|PM)?$/i:/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/;let[a,l,r]=null!=(s=null==(n=null==(t=e.selectedTime)?void 0:t.match(o))?void 0:n.slice(1))?s:[];a?i&&!r&&(r="AM"):(a=i?transformTime12(String(e.timeMinHour)):String(e.timeMinHour),l=String(e.timeMinMinute),r=i?Number(transformTime12(String(e.timeMinHour)))>=12?"PM":"AM":null),setContext(e,"selectedHours",a.padStart(2,"0")),setContext(e,"selectedMinutes",l.padStart(2,"0")),setContext(e,"selectedKeeping",r),setContext(e,"selectedTime",`${e.context.selectedHours}:${e.context.selectedMinutes}${r?` ${r}`:""}`)},initAllVariables=e=>{setContext(e,"currentType",e.type),initMonthsCount(e),initRange(e),initSelectedMonthYear(e),initSelectedDates(e),initTime(e)},reset=(e,{year:t,month:n,dates:s,time:i,locale:o},a=!0)=>{var l;const r={year:e.selectedYear,month:e.selectedMonth,dates:e.selectedDates,time:e.selectedTime};e.selectedYear=t?r.year:e.context.selectedYear,e.selectedMonth=n?r.month:e.context.selectedMonth,e.selectedTime=i?r.time:e.context.selectedTime,e.selectedDates="only-first"===s&&(null==(l=e.context.selectedDates)?void 0:l[0])?[e.context.selectedDates[0]]:!0===s?r.dates:e.context.selectedDates,o&&setContext(e,"locale",{months:{short:[],long:[]},weekdays:{short:[],long:[]}}),initAllVariables(e),a&&create(e),e.selectedYear=r.year,e.selectedMonth=r.month,e.selectedDates=r.dates,e.selectedTime=r.time,"multiple-ranged"===e.selectionDatesMode&&s&&handleSelectDateRange(e,null)},createToInput=e=>{const t=document.createElement("div");return t.className=e.styles.calendar,t.dataset.vc="calendar",t.dataset.vcInput="",t.dataset.vcCalendarHidden="",setContext(e,"inputModeInit",!0),setContext(e,"isShowInInputMode",!1),setContext(e,"mainElement",t),document.body.appendChild(e.context.mainElement),reset(e,{year:!0,month:!0,dates:!0,time:!0,locale:!0}),setTimeout(()=>show(e)),e.onInit&&e.onInit(e),handleArrowKeys(e),handleClick(e)},canOpenOnFocus=e=>resolveToggle(e,e.openOnFocus),handleInput=e=>{setContext(e,"inputElement",e.context.mainElement);const t=()=>{e.context.inputModeInit?setTimeout(()=>show(e)):createToInput(e)};e.context.inputElement.addEventListener("click",t);const n="function"==typeof e.openOnFocus||!0===e.openOnFocus,s=()=>{shouldSkipOpenOnFocus(e)?clearSkipOpenOnFocus(e):canOpenOnFocus(e)&&t()};n&&e.context.inputElement.addEventListener("focus",s);const i=t=>{const n="Tab"===t.key&&!t.shiftKey,s=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(t.key);(n||s)&&(t=>{var n;if(!e.context.isShowInInputMode)return!1;if(document.activeElement!==e.context.inputElement)return!1;const s=e=>e.tabIndex>=0&&!e.hasAttribute("disabled")&&"true"!==e.getAttribute("aria-disabled"),i=null!=(n=document.createTreeWalker(e.context.mainElement,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>s(e)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}).nextNode())?n:s(e.context.mainElement)?e.context.mainElement:null;!i||i.tabIndex<0||(t.preventDefault(),i.focus())})(t)};return e.context.inputElement.addEventListener("keydown",i),()=>{e.context.inputElement.removeEventListener("click",t),n&&e.context.inputElement.removeEventListener("focus",s),e.context.inputElement.removeEventListener("keydown",i)}},init=e=>(setContext(e,"originalElement",e.context.mainElement.cloneNode(!0)),setContext(e,"isInit",!0),e.inputMode?handleInput(e):(initAllVariables(e),create(e),e.onInit&&e.onInit(e),handleArrowKeys(e),handleClick(e))),update=(e,t)=>{if(!e.context.isInit)throw new Error(errorMessages.notInit);reset(e,__spreadValues(__spreadValues({},{year:!0,month:!0,dates:!0,time:!0,locale:!0}),t),!(e.inputMode&&!e.context.inputModeInit)),e.onUpdate&&e.onUpdate(e)},replaceProperties=(e,t)=>{const n=Object.keys(t);for(let s=0;s<n.length;s++){const i=n[s];"object"!=typeof e[i]||"object"!=typeof t[i]||t[i]instanceof Date||Array.isArray(t[i])?void 0!==t[i]&&(e[i]=t[i]):replaceProperties(e[i],t[i])}},set=(e,t,n)=>{replaceProperties(e,t),e.context.isInit&&update(e,n)};function findBestPickerPosition(e,t){const n="left";if(!t||!e)return n;const{canShow:s,parentPositions:i}=getAvailablePosition(e,t),o=s.left&&s.right;return(o&&s.bottom?"center":o&&s.top?["top","center"]:Array.isArray(i)?["bottom"===i[0]?"top":"bottom",...i.slice(1)]:i)||n}const setPosition=(e,t,n)=>{if(!e)return;const s="auto"===n?findBestPickerPosition(e,t):n,i={top:-t.offsetHeight,bottom:e.offsetHeight,left:0,center:e.offsetWidth/2-t.offsetWidth/2,right:e.offsetWidth-t.offsetWidth},o=Array.isArray(s)?s[0]:"bottom",a=Array.isArray(s)?s[1]:s;t.dataset.vcPosition=o;const{top:l,left:r}=getOffset(e),c=l+i[o];let d=r+i[a];const{vw:u}=getViewportDimensions();if(d+t.clientWidth>u){const e=window.innerWidth-document.body.clientWidth;d=u-t.clientWidth-e}else d<0&&(d=0);Object.assign(t.style,{left:`${d}px`,top:`${c}px`})},show=e=>{if(e.context.isShowInInputMode)return;if(!e.context.currentType)return void e.context.mainElement.click();setContext(e,"cleanupHandlers",[]),setContext(e,"isShowInInputMode",!0),e.inputMode&&restoreTabbing(e.context.mainElement),setPosition(e.context.inputElement,e.context.mainElement,e.positionToInput),e.context.mainElement.removeAttribute("data-vc-calendar-hidden");const t=()=>{setPosition(e.context.inputElement,e.context.mainElement,e.positionToInput)};window.addEventListener("resize",t),e.context.cleanupHandlers.push(()=>window.removeEventListener("resize",t));const n=t=>{"Escape"===t.key&&hide(e)};document.addEventListener("keydown",n),e.context.cleanupHandlers.push(()=>document.removeEventListener("keydown",n));const s=t=>{t.target===e.context.inputElement||e.context.mainElement.contains(t.target)||hide(e)};document.addEventListener("click",s,{capture:!0}),e.context.cleanupHandlers.push(()=>document.removeEventListener("click",s,{capture:!0})),e.onShow&&e.onShow(e)},labels={application:"Calendar",navigation:"Calendar Navigation",arrowNext:{month:"Next month",year:"Next list of years"},arrowPrev:{month:"Previous month",year:"Previous list of years"},month:"Select month, current selected month:",months:"List of months",year:"Select year, current selected year:",years:"List of years",week:"Days of the week",weekNumber:"Numbers of weeks in a year",dates:"Dates in the current month",selectingTime:"Selecting a time ",inputHour:"Hours",inputMinute:"Minutes",rangeHour:"Slider for selecting hours",rangeMinute:"Slider for selecting minutes",btnKeeping:"Switch AM/PM, current position:"},styles={calendar:"vc",controls:"vc-controls",grid:"vc-grid",column:"vc-column",header:"vc-header",headerContent:"vc-header__content",month:"vc-month",year:"vc-year",arrowPrev:"vc-arrow vc-arrow_prev",arrowNext:"vc-arrow vc-arrow_next",wrapper:"vc-wrapper",content:"vc-content",months:"vc-months",monthsMonth:"vc-months__month",years:"vc-years",yearsYear:"vc-years__year",week:"vc-week",weekDay:"vc-week__day",weekNumbers:"vc-week-numbers",weekNumbersTitle:"vc-week-numbers__title",weekNumbersContent:"vc-week-numbers__content",weekNumber:"vc-week-number",dates:"vc-dates",datesRow:"vc-dates__row",date:"vc-date",dateBtn:"vc-date__btn",datePopup:"vc-date__popup",dateRangeTooltip:"vc-date-range-tooltip",time:"vc-time",timeContent:"vc-time__content",timeHour:"vc-time__hour",timeMinute:"vc-time__minute",timeKeeping:"vc-time__keeping",timeRanges:"vc-time__ranges",timeRange:"vc-time__range"};class OptionsCalendar{constructor(){__publicField(this,"type","default"),__publicField(this,"inputMode",!1),__publicField(this,"openOnFocus",!0),__publicField(this,"positionToInput","left"),__publicField(this,"firstWeekday",1),__publicField(this,"monthsToSwitch",1),__publicField(this,"themeAttrDetect","html[data-theme]"),__publicField(this,"locale","en"),__publicField(this,"dateToday","today"),__publicField(this,"dateMin","1970-01-01"),__publicField(this,"dateMax","2470-12-31"),__publicField(this,"displayDateMin"),__publicField(this,"displayDateMax"),__publicField(this,"displayDatesOutside",!0),__publicField(this,"displayDisabledDates",!1),__publicField(this,"displayMonthsCount"),__publicField(this,"disableDates",[]),__publicField(this,"disableAllDates",!1),__publicField(this,"disableDatesPast",!1),__publicField(this,"disableDatesGaps",!1),__publicField(this,"disableWeekdays",[]),__publicField(this,"disableToday",!1),__publicField(this,"enableDates",[]),__publicField(this,"enableEdgeDatesOnly",!0),__publicField(this,"enableDateToggle",!0),__publicField(this,"enableWeekNumbers",!1),__publicField(this,"enableMonthChangeOnDayClick",!0),__publicField(this,"enableJumpToSelectedDate",!1),__publicField(this,"selectionDatesMode","single"),__publicField(this,"selectionMonthsMode",!0),__publicField(this,"selectionYearsMode",!0),__publicField(this,"selectionTimeMode",!1),__publicField(this,"selectedDates",[]),__publicField(this,"selectedMonth"),__publicField(this,"selectedYear"),__publicField(this,"selectedHolidays",[]),__publicField(this,"selectedWeekends",[0,6]),__publicField(this,"selectedTime"),__publicField(this,"selectedTheme","system"),__publicField(this,"timeMinHour",0),__publicField(this,"timeMaxHour",23),__publicField(this,"timeMinMinute",0),__publicField(this,"timeMaxMinute",59),__publicField(this,"timeControls","all"),__publicField(this,"timeStepHour",1),__publicField(this,"timeStepMinute",1),__publicField(this,"sanitizerHTML",e=>e),__publicField(this,"onClickDate"),__publicField(this,"onClickWeekDay"),__publicField(this,"onClickWeekNumber"),__publicField(this,"onClickTitle"),__publicField(this,"onClickMonth"),__publicField(this,"onClickYear"),__publicField(this,"onClickArrow"),__publicField(this,"onChangeTime"),__publicField(this,"onChangeToInput"),__publicField(this,"onCreateDateRangeTooltip"),__publicField(this,"onCreateDateEls"),__publicField(this,"onCreateMonthEls"),__publicField(this,"onCreateYearEls"),__publicField(this,"onInit"),__publicField(this,"onUpdate"),__publicField(this,"onDestroy"),__publicField(this,"onShow"),__publicField(this,"onHide"),__publicField(this,"popups",{}),__publicField(this,"labels",__spreadValues({},labels)),__publicField(this,"layouts",{default:"",multiple:"",month:"",year:""}),__publicField(this,"styles",__spreadValues({},styles))}}const _Calendar=class e extends OptionsCalendar{constructor(t,n){var s;super(),__publicField(this,"init",()=>init(this)),__publicField(this,"update",e=>update(this,e)),__publicField(this,"destroy",()=>destroy(this)),__publicField(this,"show",()=>show(this)),__publicField(this,"hide",()=>hide(this)),__publicField(this,"set",(e,t)=>set(this,e,t)),__publicField(this,"context"),this.context=__spreadProps(__spreadValues({},this.context),{locale:{months:{short:[],long:[]},weekdays:{short:[],long:[]}}}),setContext(this,"mainElement","string"==typeof t?null!=(s=e.memoizedElements.get(t))?s:this.queryAndMemoize(t):t),n&&replaceProperties(this,n)}queryAndMemoize(t){const n=document.querySelector(t);if(!n)throw new Error(errorMessages.notFoundSelector(t));return e.memoizedElements.set(t,n),n}};__publicField(_Calendar,"memoizedElements",new Map);let Calendar=_Calendar;const NAME$d="datepicker",DATA_KEY$a="bs.datepicker",EVENT_KEY$a=`.${DATA_KEY$a}`,DATA_API_KEY$6=".data-api",EVENT_CHANGE$1=`change${EVENT_KEY$a}`,EVENT_SHOW$4=`show${EVENT_KEY$a}`,EVENT_SHOWN$3=`shown${EVENT_KEY$a}`,EVENT_HIDE$3=`hide${EVENT_KEY$a}`,EVENT_HIDDEN$5=`hidden${EVENT_KEY$a}`,EVENT_CLICK_DATA_API$3=`click${EVENT_KEY$a}.data-api`,EVENT_FOCUSIN_DATA_API=`focusin${EVENT_KEY$a}.data-api`,SELECTOR_DATA_TOGGLE$6='[data-bs-toggle="datepicker"]',HIDE_DELAY=100,Default$c={datepickerTheme:null,dateMin:null,dateMax:null,dateFormat:null,displayElement:null,displayMonthsCount:1,firstWeekday:1,inline:!1,locale:"default",positionElement:null,selectedDates:[],selectionMode:"single",placement:"left",vcpOptions:{}},DefaultType$c={datepickerTheme:"(null|string)",dateMin:"(null|string|number|object)",dateMax:"(null|string|number|object)",dateFormat:"(null|object|function)",displayElement:"(null|string|element|boolean)",displayMonthsCount:"number",firstWeekday:"number",inline:"boolean",locale:"string",positionElement:"(null|string|element)",selectedDates:"array",selectionMode:"string",placement:"string",vcpOptions:"object"};class Datepicker extends BaseComponent{constructor(e,t){super(e,t),this._calendar=null,this._isShown=!1,this._initCalendar()}static get Default(){return Default$c}static get DefaultType(){return DefaultType$c}static get NAME(){return NAME$d}toggle(){if(!this._config.inline)return this._isShown?this.hide():this.show()}show(){this._config.inline||!this._calendar||isDisabled(this._element)||this._isShown||EventHandler.trigger(this._element,EVENT_SHOW$4).defaultPrevented||(this._calendar.show(),this._isShown=!0,EventHandler.trigger(this._element,EVENT_SHOWN$3))}hide(){this._config.inline||this._calendar&&this._isShown&&(EventHandler.trigger(this._element,EVENT_HIDE$3).defaultPrevented||(this._calendar.hide(),this._isShown=!1,EventHandler.trigger(this._element,EVENT_HIDDEN$5)))}dispose(){this._themeObserver&&(this._themeObserver.disconnect(),this._themeObserver=null),this._calendar&&this._calendar.destroy(),this._calendar=null,super.dispose()}getSelectedDates(){const e=this._calendar?.context?.selectedDates;return e?[...e]:[]}setSelectedDates(e){this._calendar&&this._calendar.set({selectedDates:e})}_initCalendar(){this._isInput="INPUT"===this._element.tagName,this._isInline=this._config.inline,this._isInline&&!this._isInput&&(this._boundInput=this._element.querySelector('input[type="hidden"], input[name]')),this._positionElement=this._resolvePositionElement(),this._displayElement=this._resolveDisplayElement();const e=this._buildCalendarOptions();this._calendar=new Calendar(this._positionElement,e),this._calendar.init(),this._setupThemeObserver(),this._isInput&&this._element.value&&this._parseInputValue(),this._updateDisplayWithSelectedDates()}_updateDisplayWithSelectedDates(){const{selectedDates:e}=this._config;if(!e||0===e.length)return;const t=this._formatDateForInput(e);this._isInput&&(this._element.value=t),this._boundInput&&(this._boundInput.value=e.join(",")),this._displayElement&&(this._displayElement.textContent=t)}_resolvePositionElement(){let{positionElement:e}=this._config;if("string"==typeof e&&(e=document.querySelector(e)),!e&&this._isInput&&!this._isInline){const t=this._element.closest(".form-adorn");t&&(e=t)}return e||this._element}_resolveDisplayElement(){const{displayElement:e}=this._config;return"string"==typeof e?document.querySelector(e):!0===e||null===e&&!this._isInput&&!this._isInline?this._element.querySelector("[data-bs-datepicker-display]")||this._element:e}_getThemeAncestor(){return this._element.closest("[data-bs-theme]")}_getEffectiveTheme(){const{datepickerTheme:e}=this._config;if(e)return e;const t=this._getThemeAncestor();return t?.getAttribute("data-bs-theme")||null}_syncThemeAttribute(e){if(!e)return;const t=this._getEffectiveTheme();t?e.setAttribute("data-bs-theme",t):e.removeAttribute("data-bs-theme")}_setupThemeObserver(){const e=this._getThemeAncestor();e&&!this._config.datepickerTheme&&(this._themeObserver=new MutationObserver(()=>{this._syncThemeAttribute(this._calendar?.context?.mainElement)}),this._themeObserver.observe(e,{attributes:!0,attributeFilter:["data-bs-theme"]}))}_buildCalendarOptions(){const e=this._getEffectiveTheme(),t=e&&"auto"!==e?e:"system",n={...this._config.vcpOptions,inputMode:!this._isInline,positionToInput:this._config.placement,firstWeekday:this._config.firstWeekday,locale:this._config.locale,selectionDatesMode:this._config.selectionMode,selectedDates:this._config.selectedDates,displayMonthsCount:this._config.displayMonthsCount,type:this._config.displayMonthsCount>1?"multiple":"default",selectedTheme:t,themeAttrDetect:"[data-bs-theme]",onClickDate:(e,t)=>this._handleDateClick(e,t),onInit:e=>{this._syncThemeAttribute(e.context.mainElement)},onShow:()=>{this._isShown=!0,this._syncThemeAttribute(this._calendar.context.mainElement)},onHide:()=>{this._isShown=!1}};if(this._config.selectedDates.length>0){const e=this._parseDate(this._config.selectedDates[0]);n.selectedMonth=e.getMonth(),n.selectedYear=e.getFullYear()}return this._config.dateMin&&(n.dateMin=this._config.dateMin),this._config.dateMax&&(n.dateMax=this._config.dateMax),n}_handleDateClick(e,t){const n=[...e.context.selectedDates];if(n.length>0){const e=this._formatDateForInput(n);this._isInput&&(this._element.value=e),this._boundInput&&(this._boundInput.value=n.join(",")),this._displayElement&&(this._displayElement.textContent=e)}EventHandler.trigger(this._element,EVENT_CHANGE$1,{dates:n,event:t}),this._maybeHideAfterSelection(n)}_maybeHideAfterSelection(e){this._isInline||("single"===this._config.selectionMode&&e.length>0||"multiple-ranged"===this._config.selectionMode&&e.length>=2)&&setTimeout(()=>this.hide(),100)}_parseDate(e){const[t,n,s]=e.split("-");return new Date(t,n-1,s)}_formatDate(e){const t=this._parseDate(e),n="default"===this._config.locale?void 0:this._config.locale,{dateFormat:s}=this._config;return"function"==typeof s?s(t,n):s&&"object"==typeof s?new Intl.DateTimeFormat(n,s).format(t):t.toLocaleDateString(n)}_formatDateForInput(e){if(0===e.length)return"";if(1===e.length)return this._formatDate(e[0]);const t="multiple-ranged"===this._config.selectionMode?" – ":", ";return e.map(e=>this._formatDate(e)).join(t)}_parseInputValue(){const e=this._element.value.trim();if(!e)return;const t=new Date(e);if(!Number.isNaN(t.getTime())){const e=`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`;this._calendar.set({selectedDates:[e]})}}}EventHandler.on(document,EVENT_CLICK_DATA_API$3,SELECTOR_DATA_TOGGLE$6,function(e){"INPUT"!==this.tagName&&"true"!==this.dataset.bsInline&&(e.preventDefault(),Datepicker.getOrCreateInstance(this).toggle())}),EventHandler.on(document,EVENT_FOCUSIN_DATA_API,SELECTOR_DATA_TOGGLE$6,function(){"INPUT"===this.tagName&&Datepicker.getOrCreateInstance(this).show()}),EventHandler.on(document,`DOMContentLoaded${EVENT_KEY$a}.data-api`,()=>{for(const e of document.querySelectorAll(`${SELECTOR_DATA_TOGGLE$6}[data-bs-inline="true"]`))Datepicker.getOrCreateInstance(e)});const CLASS_NAME_OPEN="dialog-open";class DialogBase extends BaseComponent{constructor(e,t){super(e,t),this._isTransitioning=!1,this._openedAsModal=!1,this._addDialogListeners()}static get NAME(){return"dialogbase"}toggle(e){return this._element.open?this.hide():this.show(e)}show(e){if(this._element.open||this._isTransitioning)return;if(EventHandler.trigger(this._element,this.constructor.eventName("show"),{relatedTarget:e}).defaultPrevented)return;this._isTransitioning=!0,this._onBeforeShow();const{modal:t,preventBodyScroll:n}=this._getShowOptions();this._showElement({modal:t,preventBodyScroll:n}),this._queueCallback(()=>{this._isTransitioning=!1,EventHandler.trigger(this._element,this.constructor.eventName("shown"),{relatedTarget:e})},this._element,this._isAnimated())}hide(){this._element.open&&!this._isTransitioning&&(EventHandler.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented||(this._isTransitioning=!0,this._hideElement(),this._queueCallback(()=>{this._element.open&&this._closeAndCleanup(),this._element.classList.remove("hiding"),this._onAfterHide(),this._isTransitioning=!1,EventHandler.trigger(this._element,this.constructor.eventName("hidden"))},this._element,this._isAnimated())))}_getShowOptions(){return{modal:!0,preventBodyScroll:!0}}_onBeforeShow(){}_onAfterHide(){}_isAnimated(){return!this._element.classList.contains(this._getInstantClassName())}_getInstantClassName(){return"dialog-instant"}_getStaticClassName(){return"dialog-static"}_onCancel(){}_showElement({modal:e=!0,preventBodyScroll:t=!0}={}){this._openedAsModal=e,e?this._element.showModal():this._element.show(),t&&document.body.classList.add("dialog-open")}_hideElement(){this._hideChildComponents(),this._element.classList.add("hiding"),this._shouldDeferClose()||this._closeAndCleanup()}_closeAndCleanup(){this._element.close(),this._openedAsModal=!1,document.querySelector("dialog[open]:modal")||document.body.classList.remove("dialog-open")}_shouldDeferClose(){return!1}_triggerBackdropTransition(){if(EventHandler.trigger(this._element,this.constructor.eventName("hidePrevented")).defaultPrevented)return;const e=this._getStaticClassName();this._element.classList.add(e),this._queueCallback(()=>{this._element.classList.remove(e)},this._element)}_hideChildComponents(){for(const e of SelectorEngine.find('[data-bs-toggle="tooltip"], [data-bs-toggle="popover"]',this._element)){const t=Data.getAny(e);t&&"function"==typeof t.hide&&t.hide()}for(const e of SelectorEngine.find(".toast.show",this._element)){const t=Data.getAny(e);t&&"function"==typeof t.hide&&t.hide()}}_addDialogListeners(){const e=this.constructor.EVENT_KEY;EventHandler.on(this._element,"cancel",e=>{e.preventDefault(),this._config.keyboard?(this._onCancel(),this.hide()):this._triggerBackdropTransition()}),EventHandler.on(this._element,`keydown${e}`,e=>{"Escape"!==e.key||this._openedAsModal||(e.preventDefault(),this._config.keyboard&&(this._onCancel(),this.hide()))}),EventHandler.on(this._element,`click${e}`,e=>{e.target===this._element&&this._openedAsModal&&("static"!==this._config.backdrop?this.hide():this._triggerBackdropTransition())})}}const NAME$c="dialog",DATA_KEY$9="bs.dialog",EVENT_KEY$9=`.${DATA_KEY$9}`,DATA_API_KEY$5=".data-api",EVENT_SHOW$3=`show${EVENT_KEY$9}`,EVENT_HIDDEN$4=`hidden${EVENT_KEY$9}`,EVENT_CANCEL=`cancel${EVENT_KEY$9}`,EVENT_CLICK_DATA_API$2=`click${EVENT_KEY$9}.data-api`,CLASS_NAME_NONMODAL="dialog-nonmodal",CLASS_NAME_INSTANT="dialog-instant",CLASS_NAME_SWAP_IN="dialog-swap-in",SELECTOR_DATA_TOGGLE$5='[data-bs-toggle="dialog"]',Default$b={backdrop:!0,keyboard:!0,modal:!0},DefaultType$b={backdrop:"(boolean|string)",keyboard:"boolean",modal:"boolean"};class Dialog extends DialogBase{static get Default(){return Default$b}static get DefaultType(){return DefaultType$b}static get NAME(){return NAME$c}handleUpdate(){}_getShowOptions(){return{modal:this._config.modal,preventBodyScroll:this._config.modal}}_onBeforeShow(){this._config.modal||this._element.classList.add("dialog-nonmodal")}_onAfterHide(){this._element.classList.remove("dialog-nonmodal")}_shouldDeferClose(){return this._isAnimated()}_onCancel(){EventHandler.trigger(this._element,EVENT_CANCEL)}}EventHandler.on(document,EVENT_CLICK_DATA_API$2,SELECTOR_DATA_TOGGLE$5,function(e){const t=SelectorEngine.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&e.preventDefault(),EventHandler.one(t,EVENT_SHOW$3,e=>{e.defaultPrevented||EventHandler.one(t,EVENT_HIDDEN$4,()=>{isVisible(this)&&this.focus()})});const n=Manipulator.getDataAttributes(this),s=this.closest("dialog[open]");if(s&&s!==t){const e=Dialog.getOrCreateInstance(t,n);t.classList.add("dialog-swap-in"),e.show(this),EventHandler.one(t,`shown${EVENT_KEY$9}`,()=>{t.classList.remove("dialog-swap-in")});const i=Dialog.getInstance(s);return void(i&&(s.classList.add("dialog-instant"),EventHandler.one(s,EVENT_HIDDEN$4,()=>{s.classList.remove("dialog-instant")}),i.hide()))}Dialog.getOrCreateInstance(t,n).toggle(this)}),enableDismissTrigger(Dialog);const NAME$b="navoverflow",DATA_KEY$8="bs.navoverflow",EVENT_KEY$8=`.${DATA_KEY$8}`,EVENT_UPDATE=`update${EVENT_KEY$8}`,EVENT_OVERFLOW=`overflow${EVENT_KEY$8}`,CLASS_NAME_OVERFLOW="nav-overflow",CLASS_NAME_OVERFLOW_MENU="nav-overflow-menu",CLASS_NAME_HIDDEN="d-none",SELECTOR_NAV_ITEM=".nav-item",SELECTOR_NAV_LINK=".nav-link",SELECTOR_OVERFLOW_TOGGLE=".nav-overflow-toggle",SELECTOR_OVERFLOW_MENU=".nav-overflow-menu",SELECTOR_CUSTOM_ICON="[data-bs-overflow-icon]",CLASS_NAME_KEEP="nav-overflow-keep",Default$a={collapseBelow:0,iconPlacement:"start",menuPlacement:"bottom-end",moreText:"More",moreIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3"/></svg>',threshold:0},DefaultType$a={collapseBelow:"(number|string)",iconPlacement:"string",menuPlacement:"string",moreText:"string",moreIcon:"string",threshold:"number"};class NavOverflow extends BaseComponent{constructor(e,t){super(e,t),this._items=[],this._overflowItems=[],this._overflowMenu=null,this._overflowToggle=null,this._resizeObserver=null,this._collapseBelow=0,this._isInitialized=!1,this._init()}static get Default(){return Default$a}static get DefaultType(){return DefaultType$a}static get NAME(){return NAME$b}update(){this._calculateOverflow(),EventHandler.trigger(this._element,EVENT_UPDATE)}dispose(){this._resizeObserver&&this._resizeObserver.disconnect(),this._restoreItems(),this._overflowToggle&&this._overflowToggle.parentElement&&this._overflowToggle.parentElement.remove(),super.dispose()}_init(){this._element.classList.add("nav-overflow"),this._items=[...SelectorEngine.find(".nav-item",this._element)];for(const[e,t]of this._items.entries())t.dataset.bsNavOrder=e;this._collapseBelow=this._resolveCollapseBelow(),this._createOverflowMenu(),this._setupResizeObserver(),this._calculateOverflow(),this._isInitialized=!0}_createOverflowMenu(){if(this._overflowToggle=SelectorEngine.findOne(".nav-overflow-toggle",this._element),this._overflowToggle)return void(this._overflowMenu=SelectorEngine.findOne(".nav-overflow-menu",this._element));const e=`<span class="nav-overflow-icon">${this._resolveIcon()}</span>`,t=`<span class="nav-overflow-text">${this._config.moreText}</span>`,n="end"===this._config.iconPlacement?`${t}${e}`:`${e}${t}`,s=document.createElement("li");s.className="nav-item nav-overflow-item",s.innerHTML=`\n <button class="nav-link nav-overflow-toggle" type="button" data-bs-toggle="menu" data-bs-placement="${this._config.menuPlacement}" aria-expanded="false">\n ${n}\n </button>\n <div class="nav-overflow-menu menu"></div>\n `,this._element.append(s),this._overflowToggle=s.querySelector(".nav-overflow-toggle"),this._overflowMenu=s.querySelector(".nav-overflow-menu")}_resolveIcon(){const e=SelectorEngine.findOne(SELECTOR_CUSTOM_ICON,this._element);if(!e)return this._config.moreIcon;const t=e.cloneNode(!0);t.removeAttribute("data-bs-overflow-icon");const n=t.outerHTML;return e.remove(),n}_resolveCollapseBelow(){const e=this._config.collapseBelow;if("number"==typeof e)return e;if("string"==typeof e&&""!==e){const t=getComputedStyle(document.documentElement).getPropertyValue(`--bs-breakpoint-${e}`);return Number.parseFloat(t)||0}return 0}_setupResizeObserver(){"undefined"!=typeof ResizeObserver?(this._resizeObserver=new ResizeObserver(()=>{this._calculateOverflow()}),this._resizeObserver.observe(this._element)):EventHandler.on(window,"resize",()=>this._calculateOverflow())}_calculateOverflow(){this._restoreItems();const e=this._element.offsetWidth,t=this._overflowToggle?.closest(".nav-item");if(this._collapseBelow>0&&e<this._collapseBelow){const e=this._items.filter(e=>!e.classList.contains(CLASS_NAME_KEEP));return this._moveToOverflow(e),t&&(e.length>0?t.classList.remove("d-none"):t.classList.add("d-none")),void(e.length>0&&EventHandler.trigger(this._element,EVENT_OVERFLOW,{overflowCount:e.length,visibleCount:this._items.length-e.length}))}let n=0;const s=[],i=e-(t?.offsetWidth||0)-this._items.filter(e=>e.classList.contains(CLASS_NAME_KEEP)).reduce((e,t)=>e+t.offsetWidth,0)-10;for(const e of this._items)e.classList.contains(CLASS_NAME_KEEP)||(n+=e.offsetWidth,n>i&&s.push(e));if(this._items.length-s.length<this._config.threshold&&this._items.length>this._config.threshold){const e=this._items.slice(this._config.threshold).filter(e=>!e.classList.contains(CLASS_NAME_KEEP));s.length=0,s.push(...e)}this._moveToOverflow(s),t&&(s.length>0?t.classList.remove("d-none"):t.classList.add("d-none")),s.length>0&&EventHandler.trigger(this._element,EVENT_OVERFLOW,{overflowCount:s.length,visibleCount:this._items.length-s.length})}_moveToOverflow(e){if(this._overflowMenu){this._overflowMenu.innerHTML="",this._overflowItems=[];for(const t of e){const e=SelectorEngine.findOne(".nav-link",t);if(!e)continue;const n=e.cloneNode(!0);n.className="menu-item",e.classList.contains("active")&&n.classList.add("active"),(e.classList.contains("disabled")||e.hasAttribute("disabled"))&&n.classList.add("disabled"),this._overflowMenu.append(n),t.classList.add("d-none"),t.dataset.bsNavOverflow="true",this._overflowItems.push(t)}}}_restoreItems(){for(const e of this._items)e.classList.remove("d-none"),delete e.dataset.bsNavOverflow;this._overflowMenu&&(this._overflowMenu.innerHTML=""),this._overflowItems=[]}}EventHandler.on(document,"DOMContentLoaded",()=>{for(const e of SelectorEngine.find('[data-bs-toggle="nav-overflow"]'))NavOverflow.getOrCreateInstance(e)});const NAME$a="drawer",DATA_KEY$7="bs.drawer",EVENT_KEY$7=`.${DATA_KEY$7}`,DATA_API_KEY$4=".data-api",EVENT_LOAD_DATA_API$2=`load${EVENT_KEY$7}.data-api`,EVENT_HIDDEN$3=`hidden${EVENT_KEY$7}`,EVENT_RESIZE=`resize${EVENT_KEY$7}`,EVENT_CLICK_DATA_API$1=`click${EVENT_KEY$7}.data-api`,SELECTOR_DATA_TOGGLE$4='[data-bs-toggle="drawer"]',Default$9={backdrop:!0,keyboard:!0,scroll:!1},DefaultType$9={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Drawer extends DialogBase{constructor(e,t){super(e,t),this._swipeHelper=null}static get Default(){return Default$9}static get DefaultType(){return DefaultType$9}static get NAME(){return NAME$a}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_getShowOptions(){return{modal:Boolean(this._config.backdrop)||!this._config.scroll,preventBodyScroll:!this._config.scroll}}_onBeforeShow(){this._initSwipe()}_getInstantClassName(){return"drawer-instant"}_getStaticClassName(){return"drawer-static"}_initSwipe(){if(this._swipeHelper||!Swipe.isSupported())return;const e={},t=this._element;t.classList.contains("drawer-bottom")?e.downCallback=()=>this.hide():t.classList.contains("drawer-top")?e.upCallback=()=>this.hide():t.classList.contains("drawer-end")?isRTL$1()?e.leftCallback=()=>this.hide():e.rightCallback=()=>this.hide():isRTL$1()?e.rightCallback=()=>this.hide():e.leftCallback=()=>this.hide(),this._swipeHelper=new Swipe(t,e)}}EventHandler.on(document,EVENT_CLICK_DATA_API$1,SELECTOR_DATA_TOGGLE$4,function(e){const t=SelectorEngine.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),isDisabled(this))return;EventHandler.one(t,EVENT_HIDDEN$3,()=>{isVisible(this)&&this.focus()});const n=SelectorEngine.findOne("dialog.drawer[open]");n&&n!==t&&Drawer.getInstance(n).hide(),Drawer.getOrCreateInstance(t).toggle(this)}),EventHandler.on(window,EVENT_LOAD_DATA_API$2,()=>{for(const e of SelectorEngine.find("dialog.drawer[open]"))Drawer.getOrCreateInstance(e).show()}),EventHandler.on(window,EVENT_RESIZE,()=>{for(const e of SelectorEngine.find('dialog[open][class*="\\:drawer"]'))"fixed"!==getComputedStyle(e).position&&Drawer.getOrCreateInstance(e).hide()}),enableDismissTrigger(Drawer);const NAME$9="strength",DATA_KEY$6="bs.strength",EVENT_KEY$6=`.${DATA_KEY$6}`,DATA_API_KEY$3=".data-api",EVENT_STRENGTH_CHANGE=`strengthChange${EVENT_KEY$6}`,SELECTOR_DATA_STRENGTH="[data-bs-strength]",STRENGTH_LEVELS=["weak","fair","good","strong"],Default$8={input:null,minLength:8,messages:{weak:"Weak",fair:"Fair",good:"Good",strong:"Strong"},weights:{minLength:1,extraLength:1,lowercase:1,uppercase:1,numbers:1,special:1,multipleSpecial:1,longPassword:1},thresholds:[2,4,6],scorer:null},DefaultType$8={input:"(string|element|null)",minLength:"number",messages:"object",weights:"object",thresholds:"array",scorer:"(function|null)"};class Strength extends BaseComponent{constructor(e,t){super(e,t),this._input=this._getInput(),this._segments=SelectorEngine.find(".strength-segment",this._element),this._textElement=SelectorEngine.findOne(".strength-text",this._element.parentElement),this._currentStrength=null,this._input&&(this._addEventListeners(),this._evaluate())}static get Default(){return Default$8}static get DefaultType(){return DefaultType$8}static get NAME(){return NAME$9}getStrength(){return this._currentStrength}evaluate(){this._evaluate()}_getInput(){if(this._config.input)return"string"==typeof this._config.input?SelectorEngine.findOne(this._config.input):this._config.input;const e=this._element.parentElement;return SelectorEngine.findOne('input[type="password"]',e)}_addEventListeners(){EventHandler.on(this._input,"input",()=>this._evaluate()),EventHandler.on(this._input,"change",()=>this._evaluate())}_evaluate(){const e=this._input.value,t=this._calculateScore(e),n=this._scoreToStrength(t);n!==this._currentStrength&&(this._currentStrength=n,this._updateUI(n,t),EventHandler.trigger(this._element,EVENT_STRENGTH_CHANGE,{strength:n,score:t,password:e.length>0?"***":""}))}_calculateScore(e){if(!e)return 0;if("function"==typeof this._config.scorer)return this._config.scorer(e);const{weights:t}=this._config;let n=0;return e.length>=this._config.minLength&&(n+=t.minLength),e.length>=this._config.minLength+4&&(n+=t.extraLength),/[a-z]/.test(e)&&(n+=t.lowercase),/[A-Z]/.test(e)&&(n+=t.uppercase),/\d/.test(e)&&(n+=t.numbers),/[!@#$%^&*(),.?":{}|<>]/.test(e)&&(n+=t.special),/[!@#$%^&*(),.?":{}|<>].*[!@#$%^&*(),.?":{}|<>]/.test(e)&&(n+=t.multipleSpecial),e.length>=16&&(n+=t.longPassword),n}_scoreToStrength(e){if(0===e)return null;const[t,n,s]=this._config.thresholds;return e<=t?"weak":e<=n?"fair":e<=s?"good":"strong"}_updateUI(e){e?this._element.dataset.bsStrength=e:delete this._element.dataset.bsStrength;const t=e?STRENGTH_LEVELS.indexOf(e):-1;for(const[e,n]of this._segments.entries())e<=t?n.classList.add("active"):n.classList.remove("active");if(this._textElement)if(e&&this._config.messages[e]){this._textElement.textContent=this._config.messages[e],this._textElement.dataset.bsStrength=e;const t={weak:"danger",fair:"warning",good:"info",strong:"success"};this._textElement.style.setProperty("--strength-color",`var(--${t[e]}-text)`)}else this._textElement.textContent="",delete this._textElement.dataset.bsStrength}}EventHandler.on(document,`DOMContentLoaded${EVENT_KEY$6}.data-api`,()=>{for(const e of SelectorEngine.find("[data-bs-strength]"))Strength.getOrCreateInstance(e)});const NAME$8="otpInput",DATA_KEY$5="bs.otp-input",EVENT_KEY$5=`.${DATA_KEY$5}`,DATA_API_KEY$2=".data-api",EVENT_COMPLETE=`complete${EVENT_KEY$5}`,EVENT_INPUT=`input${EVENT_KEY$5}`,SELECTOR_DATA_OTP="[data-bs-otp]",SELECTOR_INPUT="input",Default$7={length:6,mask:!1},DefaultType$7={length:"number",mask:"boolean"};class OtpInput extends BaseComponent{constructor(e,t){super(e,t),this._inputs=SelectorEngine.find("input",this._element),this._setupInputs(),this._addEventListeners()}static get Default(){return Default$7}static get DefaultType(){return DefaultType$7}static get NAME(){return NAME$8}getValue(){return this._inputs.map(e=>e.value).join("")}setValue(e){const t=[...String(e)];for(const[e,n]of this._inputs.entries())n.value=t[e]||"";this._checkComplete()}clear(){for(const e of this._inputs)e.value="";this._inputs[0]?.focus()}focus(){const e=this._inputs.find(e=>!e.value);e?e.focus():this._inputs.at(-1)?.focus()}_setupInputs(){for(const e of this._inputs)e.setAttribute("maxlength","1"),e.setAttribute("inputmode","numeric"),e.setAttribute("pattern","\\d*"),e===this._inputs[0]?e.setAttribute("autocomplete","one-time-code"):e.setAttribute("autocomplete","off"),this._config.mask&&e.setAttribute("type","password")}_addEventListeners(){for(const[e,t]of this._inputs.entries())EventHandler.on(t,"input",t=>this._handleInput(t,e)),EventHandler.on(t,"keydown",t=>this._handleKeydown(t,e)),EventHandler.on(t,"paste",e=>this._handlePaste(e)),EventHandler.on(t,"focus",e=>this._handleFocus(e))}_handleInput(e,t){const n=e.target;/^\d*$/.test(n.value)||(n.value=n.value.replace(/\D/g,""));const{value:s}=n;if(s.length>1){const e=[...s];n.value=e[0]||"";for(let n=1;n<e.length&&t+n<this._inputs.length;n++)this._inputs[t+n].value=e[n];const i=Math.min(t+e.length,this._inputs.length-1);this._inputs[i].focus()}else s&&t<this._inputs.length-1&&this._inputs[t+1].focus();EventHandler.trigger(this._element,EVENT_INPUT,{value:this.getValue(),index:t}),this._checkComplete()}_handleKeydown(e,t){const{key:n}=e;switch(n){case"Backspace":!this._inputs[t].value&&t>0&&(e.preventDefault(),this._inputs[t-1].value="",this._inputs[t-1].focus());break;case"Delete":e.preventDefault();for(let e=t;e<this._inputs.length-1;e++)this._inputs[e].value=this._inputs[e+1].value;this._inputs.at(-1).value="";break;case"ArrowLeft":t>0&&(e.preventDefault(),this._inputs[t-1].focus());break;case"ArrowRight":t<this._inputs.length-1&&(e.preventDefault(),this._inputs[t+1].focus())}}_handlePaste(e){e.preventDefault();const t=(e.clipboardData||window.clipboardData).getData("text").replace(/\D/g,"").slice(0,this._inputs.length);if(t){this.setValue(t);const e=Math.min(t.length,this._inputs.length)-1;this._inputs[e].focus()}}_handleFocus(e){e.target.select()}_checkComplete(){const e=this.getValue();e.length===this._inputs.length&&this._inputs.every(e=>""!==e.value)&&EventHandler.trigger(this._element,EVENT_COMPLETE,{value:e})}}EventHandler.on(document,`DOMContentLoaded${EVENT_KEY$5}.data-api`,()=>{for(const e of SelectorEngine.find("[data-bs-otp]"))OtpInput.getOrCreateInstance(e)});const NAME$7="chips",DATA_KEY$4="bs.chips",EVENT_KEY$4=".bs.chips",DATA_API_KEY$1=".data-api",EVENT_ADD="add.bs.chips",EVENT_REMOVE="remove.bs.chips",EVENT_CHANGE="change.bs.chips",EVENT_SELECT="select.bs.chips",SELECTOR_DATA_CHIPS="[data-bs-chips]",SELECTOR_GHOST_INPUT=".form-ghost",SELECTOR_CHIP=".chip",SELECTOR_CHIP_DISMISS=".chip-dismiss",CLASS_NAME_CHIP="chip",CLASS_NAME_CHIP_DISMISS="chip-dismiss",CLASS_NAME_ACTIVE$2="active",DEFAULT_DISMISS_ICON='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="4" y1="4" x2="12" y2="12"/><line x1="12" y1="4" x2="4" y2="12"/></svg>',Default$6={separator:",",allowDuplicates:!1,maxChips:null,placeholder:"",dismissible:!0,dismissIcon:DEFAULT_DISMISS_ICON,createOnBlur:!0},DefaultType$6={separator:"(string|null)",allowDuplicates:"boolean",maxChips:"(number|null)",placeholder:"string",dismissible:"boolean",dismissIcon:"string",createOnBlur:"boolean"};class Chips extends BaseComponent{constructor(e,t){super(e,t),this._input=SelectorEngine.findOne(".form-ghost",this._element),this._chips=[],this._selectedChips=new Set,this._anchorChip=null,this._input||this._createInput(),this._initializeExistingChips(),this._addEventListeners()}static get Default(){return Default$6}static get DefaultType(){return DefaultType$6}static get NAME(){return NAME$7}add(e){const t=String(e).trim();if(!t)return null;if(!this._config.allowDuplicates&&this._chips.includes(t))return null;if(null!==this._config.maxChips&&this._chips.length>=this._config.maxChips)return null;if(EventHandler.trigger(this._element,EVENT_ADD,{value:t,relatedTarget:this._input}).defaultPrevented)return null;const n=this._createChip(t);return this._element.insertBefore(n,this._input),this._chips.push(t),EventHandler.trigger(this._element,EVENT_CHANGE,{values:this.getValues()}),n}remove(e){let t,n;return"string"==typeof e?(n=e,t=this._findChipByValue(n)):(t=e,n=this._getChipValue(t)),!(!t||!n)&&(!EventHandler.trigger(this._element,EVENT_REMOVE,{value:n,chip:t,relatedTarget:this._input}).defaultPrevented&&(this._selectedChips.delete(t),this._anchorChip===t&&(this._anchorChip=null),t.remove(),this._chips=this._chips.filter(e=>e!==n),EventHandler.trigger(this._element,EVENT_CHANGE,{values:this.getValues()}),!0))}removeSelected(){const e=[...this._selectedChips];for(const t of e)this.remove(t);this._input?.focus()}getValues(){return[...this._chips]}getSelectedValues(){return[...this._selectedChips].map(e=>this._getChipValue(e))}clear(){const e=SelectorEngine.find(".chip",this._element);for(const t of e)t.remove();this._chips=[],this._selectedChips.clear(),this._anchorChip=null,EventHandler.trigger(this._element,EVENT_CHANGE,{values:[]})}clearSelection(){for(const e of this._selectedChips)e.classList.remove("active");this._selectedChips.clear(),this._anchorChip=null,EventHandler.trigger(this._element,EVENT_SELECT,{selected:[]})}selectChip(e,t={}){const{addToSelection:n=!1,rangeSelect:s=!1}=t,i=this._getChipElements();if(i.includes(e)){if(s&&this._anchorChip){const t=i.indexOf(this._anchorChip),s=i.indexOf(e),o=Math.min(t,s),a=Math.max(t,s);n||this.clearSelection();for(let e=o;e<=a;e++)this._selectedChips.add(i[e]),i[e].classList.add("active")}else n?this._selectedChips.has(e)?(this._selectedChips.delete(e),e.classList.remove("active")):(this._selectedChips.add(e),e.classList.add("active"),this._anchorChip=e):(this.clearSelection(),this._selectedChips.add(e),e.classList.add("active"),this._anchorChip=e);EventHandler.trigger(this._element,EVENT_SELECT,{selected:this.getSelectedValues()})}}focus(){this._input?.focus()}_getChipElements(){return SelectorEngine.find(".chip",this._element)}_createInput(){const e=document.createElement("input");e.type="text",e.className="form-ghost",this._config.placeholder&&(e.placeholder=this._config.placeholder),this._element.append(e),this._input=e}_initializeExistingChips(){const e=SelectorEngine.find(".chip",this._element);for(const t of e){const e=this._getChipValue(t);e&&(this._chips.push(e),this._setupChip(t))}}_setupChip(e){e.setAttribute("tabindex","0"),this._config.dismissible&&!SelectorEngine.findOne(".chip-dismiss",e)&&e.append(this._createDismissButton())}_createChip(e){const t=document.createElement("span");return t.className="chip",t.dataset.bsChipValue=e,t.append(document.createTextNode(e)),this._setupChip(t),t}_createDismissButton(){const e=document.createElement("button");return e.type="button",e.className="chip-dismiss",e.setAttribute("aria-label","Remove"),e.setAttribute("tabindex","-1"),e.innerHTML=this._config.dismissIcon,e}_findChipByValue(e){return this._getChipElements().find(t=>this._getChipValue(t)===e)}_getChipValue(e){if(e.dataset.bsChipValue)return e.dataset.bsChipValue;const t=e.cloneNode(!0),n=SelectorEngine.findOne(".chip-dismiss",t);return n&&n.remove(),t.textContent?.trim()||""}_addEventListeners(){EventHandler.on(this._input,"keydown",e=>this._handleInputKeydown(e)),EventHandler.on(this._input,"input",e=>this._handleInput(e)),EventHandler.on(this._input,"paste",e=>this._handlePaste(e)),EventHandler.on(this._input,"focus",()=>this.clearSelection()),this._config.createOnBlur&&EventHandler.on(this._input,"blur",e=>{e.relatedTarget?.closest(".chip")||this._createChipFromInput()}),EventHandler.on(this._element,"click",".chip",e=>{if(e.target.closest(".chip-dismiss"))return;const t=e.target.closest(".chip");t&&(e.preventDefault(),this.selectChip(t,{addToSelection:e.metaKey||e.ctrlKey,rangeSelect:e.shiftKey}),t.focus())}),EventHandler.on(this._element,"click",".chip-dismiss",e=>{e.stopPropagation();const t=e.target.closest(".chip");t&&(this.remove(t),this._input?.focus())}),EventHandler.on(this._element,"keydown",".chip",e=>{this._handleChipKeydown(e)}),EventHandler.on(this._element,"click",e=>{e.target===this._element&&(this.clearSelection(),this._input?.focus())})}_handleInputKeydown(e){const{key:t}=e;switch(t){case"Enter":e.preventDefault(),this._createChipFromInput();break;case"Backspace":case"Delete":if(""===this._input.value){e.preventDefault();const t=this._getChipElements();if(t.length>0){const e=t.at(-1);this.selectChip(e),e.focus()}}break;case"ArrowLeft":if(0===this._input.selectionStart&&0===this._input.selectionEnd){e.preventDefault();const t=this._getChipElements();if(t.length>0){const n=t.at(-1);e.shiftKey?this.selectChip(n,{addToSelection:!0}):this.selectChip(n),n.focus()}}break;case"Escape":this._input.value="",this.clearSelection(),this._input.blur()}}_handleChipKeydown(e){const{key:t}=e,n=e.target.closest(".chip");if(!n)return;const s=this._getChipElements(),i=s.indexOf(n);switch(t){case"Backspace":case"Delete":e.preventDefault(),this._handleChipDelete(i,s);break;case"ArrowLeft":e.preventDefault(),this._navigateChip(s,i,-1,e.shiftKey);break;case"ArrowRight":e.preventDefault(),this._navigateChip(s,i,1,e.shiftKey);break;case"Home":e.preventDefault(),this._navigateToEdge(s,0,e.shiftKey);break;case"End":case"Escape":e.preventDefault(),this.clearSelection(),this._input?.focus();break;case"a":this._handleSelectAll(e,s)}}_handleChipDelete(e,t){if(0===this._selectedChips.size)return;const n=Math.min(e,t.length-this._selectedChips.size-1);this.removeSelected();const s=this._getChipElements();if(s.length>0){const e=Math.max(0,Math.min(n,s.length-1));s[e].focus(),this.selectChip(s[e])}else this._input?.focus()}_navigateChip(e,t,n,s){const i=t+n;if(n<0&&i>=0){const t=e[i];this.selectChip(t,s?{addToSelection:!0,rangeSelect:!0}:{}),t.focus()}else if(n>0&&i<e.length){const t=e[i];this.selectChip(t,s?{addToSelection:!0,rangeSelect:!0}:{}),t.focus()}else n>0&&(this.clearSelection(),this._input?.focus())}_navigateToEdge(e,t,n){if(0===e.length)return;const s=e[t];this.selectChip(s,n?{rangeSelect:!0}:{}),s.focus()}_handleSelectAll(e,t){if(e.metaKey||e.ctrlKey){e.preventDefault();for(const e of t)this._selectedChips.add(e),e.classList.add("active");EventHandler.trigger(this._element,EVENT_SELECT,{selected:this.getSelectedValues()})}}_handleInput(e){const{value:t}=e.target,{separator:n}=this._config;if(n&&t.includes(n)){const e=t.split(n);for(const t of e.slice(0,-1))this.add(t.trim());this._input.value=e.at(-1)}}_handlePaste(e){const{separator:t}=this._config;if(!t)return;const n=(e.clipboardData||window.clipboardData).getData("text");if(n.includes(t)){e.preventDefault();const s=n.split(t);for(const e of s)this.add(e.trim())}}_createChipFromInput(){const e=this._input.value.trim();e&&(this.add(e),this._input.value="")}}EventHandler.on(document,"DOMContentLoaded.bs.chips.data-api",()=>{for(const e of SelectorEngine.find("[data-bs-chips]"))Chips.getOrCreateInstance(e)});const ARIA_ATTRIBUTE_PATTERN=/^aria-[\w-]*$/i,DefaultAllowlist={"*":["class","dir","id","lang","role",ARIA_ATTRIBUTE_PATTERN],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},uriAttributes=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),SAFE_URL_PATTERN=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,allowedAttribute=(e,t)=>{const n=e.nodeName.toLowerCase();return t.includes(n)?!uriAttributes.has(n)||Boolean(SAFE_URL_PATTERN.test(e.nodeValue)):t.filter(e=>e instanceof RegExp).some(e=>e.test(n))};function sanitizeHtml(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const s=(new window.DOMParser).parseFromString(e,"text/html"),i=[...s.body.querySelectorAll("*")];for(const e of i){const n=e.nodeName.toLowerCase();if(!Object.keys(t).includes(n)){e.remove();continue}const s=[...e.attributes],i=[...t["*"]||[],...t[n]||[]];for(const t of s)allowedAttribute(t,i)||e.removeAttribute(t.nodeName)}return s.body.innerHTML}const NAME$6="TemplateFactory",Default$5={allowList:DefaultAllowlist,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"<div></div>"},DefaultType$5={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},DefaultContentType={entry:"(string|element|function|null)",selector:"(string|element)"};class TemplateFactory extends Config{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return Default$5}static get DefaultType(){return DefaultType$5}static get NAME(){return NAME$6}getContent(){return Object.values(this._config.content).map(e=>this._resolvePossibleFunction(e)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[t,n]of Object.entries(this._config.content))this._setContent(e,n,t);const t=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&t.classList.add(...n.split(" ")),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[t,n]of Object.entries(e))super._typeCheckConfig({selector:t,entry:n},DefaultContentType)}_setContent(e,t,n){const s=SelectorEngine.findOne(n,e);s&&((t=this._resolvePossibleFunction(t))?isElement$1(t)?this._putElementInTemplate(getElement(t),s):this._config.html?s.innerHTML=this._maybeSanitize(t):s.textContent=t:s.remove())}_maybeSanitize(e){return this._config.sanitize?sanitizeHtml(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return execute(e,[void 0,this])}_putElementInTemplate(e,t){if(this._config.html)return t.innerHTML="",void t.append(e);t.textContent=e.textContent}}const NAME$5="tooltip",DISALLOWED_ATTRIBUTES=new Set(["sanitize","allowList","sanitizeFn"]),CLASS_NAME_FADE$2="fade",CLASS_NAME_MODAL="modal",CLASS_NAME_SHOW$2="show",SELECTOR_TOOLTIP_INNER=".tooltip-inner",SELECTOR_MODAL=".modal",SELECTOR_DATA_TOGGLE$3='[data-bs-toggle="tooltip"]',EVENT_MODAL_HIDE="hide.bs.modal",TRIGGER_HOVER="hover",TRIGGER_FOCUS="focus",TRIGGER_CLICK="click",TRIGGER_MANUAL="manual",EVENT_HIDE$2="hide",EVENT_HIDDEN$2="hidden",EVENT_SHOW$2="show",EVENT_SHOWN$2="shown",EVENT_INSERTED="inserted",EVENT_CLICK$3="click",EVENT_FOCUSIN$2="focusin",EVENT_FOCUSOUT$1="focusout",EVENT_MOUSEENTER$1="mouseenter",EVENT_MOUSELEAVE="mouseleave",AttachmentMap={AUTO:"auto",TOP:"top",RIGHT:isRTL$1()?"left":"right",BOTTOM:"bottom",LEFT:isRTL$1()?"right":"left"},Default$4={allowList:DefaultAllowlist,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",floatingConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',title:"",trigger:"hover focus"},DefaultType$4={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",floatingConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Tooltip extends BaseComponent{constructor(e,t){super(e,t),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._floatingCleanup=null,this._templateFactory=null,this._newContent=null,this._mediaQueryListeners=[],this._responsivePlacements=null,this.tip=null,this._parseResponsivePlacements(),this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Default$4}static get DefaultType(){return DefaultType$4}static get NAME(){return NAME$5}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),EventHandler.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposeFloating(),this._disposeMediaQueryListeners(),super.dispose()}async show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const e=EventHandler.trigger(this._element,this.constructor.eventName("show")),t=(findShadowRoot(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this._disposeFloating();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));let{container:s}=this._config;const i=this._element.closest("dialog[open]");if(i&&s===document.body&&(s=i),this._element.ownerDocument.documentElement.contains(this.tip)||(s.append(n),EventHandler.trigger(this._element,this.constructor.eventName("inserted"))),await this._createFloating(n),n.classList.add("show"),"ontouchstart"in document.documentElement)for(const e of document.body.children)EventHandler.on(e,"mouseover",noop);this._queueCallback(()=>{EventHandler.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1},this.tip,this._isAnimated())}hide(){if(this._isShown()&&!EventHandler.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove("show"),"ontouchstart"in document.documentElement)for(const e of document.body.children)EventHandler.off(e,"mouseover",noop);this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this._isHovered=null,this._queueCallback(()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposeFloating(),this._element.removeAttribute("aria-describedby"),EventHandler.trigger(this._element,this.constructor.eventName("hidden")))},this.tip,this._isAnimated())}}update(){this._floatingCleanup&&this.tip&&this._updateFloatingPosition()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const t=this._getTemplateFactory(e).toHtml();t.classList.remove("fade","show"),t.classList.add(`bs-${this.constructor.NAME}-auto`);const n=getUID(this.constructor.NAME).toString();return t.setAttribute("id",n),this._isAnimated()&&t.classList.add("fade"),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposeFloating(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new TemplateFactory({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[SELECTOR_TOOLTIP_INNER]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains("fade")}_isShown(){return this.tip&&this.tip.classList.contains("show")}_getPlacement(e){if(this._responsivePlacements){const e=getResponsivePlacement(this._responsivePlacements,"top");return AttachmentMap[e.toUpperCase()]||e}const t=execute(this._config.placement,[this,e,this._element]);return AttachmentMap[t.toUpperCase()]||t}_parseResponsivePlacements(){"string"==typeof this._config.placement?(this._responsivePlacements=parseResponsivePlacement(this._config.placement,"top"),this._responsivePlacements&&this._setupMediaQueryListeners()):this._responsivePlacements=null}_setupMediaQueryListeners(){this._disposeMediaQueryListeners(),this._mediaQueryListeners=createBreakpointListeners(()=>{this._isShown()&&this._updateFloatingPosition()})}_disposeMediaQueryListeners(){disposeBreakpointListeners(this._mediaQueryListeners),this._mediaQueryListeners=[]}async _createFloating(e){const t=this._getPlacement(e),n=e.querySelector(`.${this.constructor.NAME}-arrow`);await this._updateFloatingPosition(e,t,n),this._floatingCleanup=autoUpdate(this._element,e,()=>this._updateFloatingPosition(e,null,n))}async _updateFloatingPosition(e=this.tip,t=null,n=null){if(!e)return;t||(t=this._getPlacement(e)),n||(n=e.querySelector(`.${this.constructor.NAME}-arrow`));const s=this._getFloatingMiddleware(n),i=this._getFloatingConfig(t,s),{x:o,y:a,placement:l,middlewareData:r}=await computePosition(this._element,e,i);if(Object.assign(e.style,{position:"absolute",left:`${o}px`,top:`${a}px`}),n&&(n.style.position="absolute"),Manipulator.setDataAttribute(e,"placement",l),n&&r.arrow){const{x:e,y:t}=r.arrow,s=l.startsWith("top")||l.startsWith("bottom");Object.assign(n.style,{left:s&&null!==e?`${e}px`:"",top:s||null===t?"":`${t}px`,right:"",bottom:""})}}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?({placement:t,rects:n})=>e({placement:t,reference:n.reference,floating:n.floating},this._element):e}_resolvePossibleFunction(e){return execute(e,[this._element,this._element])}_getFloatingMiddleware(e){const t=this._getOffset(),n=[offset("function"==typeof t?t:{mainAxis:t[1]||0,crossAxis:t[0]||0}),flip({fallbackPlacements:this._config.fallbackPlacements}),shift({boundary:"clippingParents"===this._config.boundary?"clippingAncestors":this._config.boundary})];return e&&n.push(arrow({element:e})),n}_getFloatingConfig(e,t){const n={placement:e,middleware:t};return{...n,...execute(this._config.floatingConfig,[void 0,n])}}_setListeners(){const e=this._config.trigger.split(" ");for(const t of e)if("click"===t)EventHandler.on(this._element,this.constructor.eventName("click"),this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger.click=!(t._isShown()&&t._activeTrigger.click),t.toggle()});else if("manual"!==t){const e="hover"===t?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n="hover"===t?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");EventHandler.on(this._element,e,this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?"focus":"hover"]=!0,t._enter()}),EventHandler.on(this._element,n,this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?"focus":"hover"]=t._element.contains(e.relatedTarget),t._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},EventHandler.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const t=Manipulator.getDataAttributes(this._element);for(const e of Object.keys(t))DISALLOWED_ATTRIBUTES.has(e)&&delete t[e];return e={...t,..."object"==typeof e&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=!1===e.container?document.body:getElement(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[t,n]of Object.entries(this._config))this.constructor.Default[t]!==n&&(e[t]=n);return e.selector=!1,e.trigger="manual",e}_disposeFloating(){this._floatingCleanup&&(this._floatingCleanup(),this._floatingCleanup=null),this.tip&&(this.tip.remove(),this.tip=null)}}const initTooltip=e=>{const t=e.target.closest(SELECTOR_DATA_TOGGLE$3);t&&Tooltip.getOrCreateInstance(t)};EventHandler.on(document,"focusin",SELECTOR_DATA_TOGGLE$3,initTooltip),EventHandler.on(document,"mouseenter",SELECTOR_DATA_TOGGLE$3,initTooltip);const NAME$4="popover",SELECTOR_TITLE=".popover-header",SELECTOR_CONTENT=".popover-body",SELECTOR_DATA_TOGGLE$2='[data-bs-toggle="popover"]',EVENT_CLICK$2="click",EVENT_FOCUSIN$1="focusin",EVENT_MOUSEENTER="mouseenter",Default$3={...Tooltip.Default,content:"",offset:[0,8],placement:"right",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',trigger:"click"},DefaultType$3={...Tooltip.DefaultType,content:"(null|string|element|function)"};class Popover extends Tooltip{static get Default(){return Default$3}static get DefaultType(){return DefaultType$3}static get NAME(){return NAME$4}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[SELECTOR_TITLE]:this._getTitle(),[SELECTOR_CONTENT]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}}const initPopover=e=>{const t=e.target.closest(SELECTOR_DATA_TOGGLE$2);t&&("click"===e.type&&e.preventDefault(),Popover.getOrCreateInstance(t))};EventHandler.on(document,"click",SELECTOR_DATA_TOGGLE$2,initPopover),EventHandler.on(document,"focusin",SELECTOR_DATA_TOGGLE$2,initPopover),EventHandler.on(document,"mouseenter",SELECTOR_DATA_TOGGLE$2,initPopover);const NAME$3="scrollspy",DATA_KEY$3="bs.scrollspy",EVENT_KEY$3=`.${DATA_KEY$3}`,DATA_API_KEY=".data-api",EVENT_ACTIVATE=`activate${EVENT_KEY$3}`,EVENT_CLICK$1=`click${EVENT_KEY$3}`,EVENT_LOAD_DATA_API$1=`load${EVENT_KEY$3}.data-api`,CLASS_NAME_MENU_ITEM="menu-item",CLASS_NAME_ACTIVE$1="active",SELECTOR_DATA_SPY='[data-bs-spy="scroll"]',SELECTOR_TARGET_LINKS="[href]",SELECTOR_NAV_LIST_GROUP=".nav, .list-group",SELECTOR_NAV_LINKS=".nav-link",SELECTOR_NAV_ITEMS=".nav-item",SELECTOR_LIST_ITEMS=".list-group-item",SELECTOR_LINK_ITEMS=".nav-link, .nav-item > .nav-link, .list-group-item",SELECTOR_MENU_TOGGLE$1='[data-bs-toggle="menu"]',Default$2={rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},DefaultType$2={rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class ScrollSpy extends BaseComponent{constructor(e,t){super(e,t),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return Default$2}static get DefaultType(){return DefaultType$2}static get NAME(){return NAME$3}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const e of this._observableSections.values())this._observer.observe(e)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(e){return e.target=getElement(e.target)||document.body,"string"==typeof e.threshold&&(e.threshold=e.threshold.split(",").map(e=>Number.parseFloat(e))),e}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(EventHandler.off(this._config.target,EVENT_CLICK$1),EventHandler.on(this._config.target,EVENT_CLICK$1,"[href]",e=>{const t=this._observableSections.get(e.target.hash);if(t){e.preventDefault();const n=this._rootElement||window,s=t.offsetTop-this._element.offsetTop;if(n.scrollTo)return void n.scrollTo({top:s,behavior:"smooth"});n.scrollTop=s}}))}_getNewObserver(){const e={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(e=>this._observerCallback(e),e)}_observerCallback(e){const t=e=>this._targetLinks.get(`#${e.target.id}`),n=e=>{this._previousScrollData.visibleEntryTop=e.target.offsetTop,this._process(t(e))},s=(this._rootElement||document.documentElement).scrollTop,i=s>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=s;for(const o of e){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(t(o));continue}const e=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(i&&e){if(n(o),!s)return}else i||e||n(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const e=SelectorEngine.find("[href]",this._config.target);for(const t of e){if(!t.hash||isDisabled(t))continue;const e=SelectorEngine.findOne(decodeURI(t.hash),this._element);isVisible(e)&&(this._targetLinks.set(decodeURI(t.hash),t),this._observableSections.set(t.hash,e))}}_process(e){this._activeTarget!==e&&(this._clearActiveClass(this._config.target),this._activeTarget=e,e.classList.add("active"),this._activateParents(e),EventHandler.trigger(this._element,EVENT_ACTIVATE,{relatedTarget:e}))}_activateParents(e){if(e.classList.contains("menu-item")){const t=e.closest(".menu")?.previousElementSibling;return void(t?.matches(SELECTOR_MENU_TOGGLE$1)&&t.classList.add("active"))}for(const t of SelectorEngine.parents(e,".nav, .list-group"))for(const e of SelectorEngine.prev(t,SELECTOR_LINK_ITEMS))e.classList.add("active")}_clearActiveClass(e){e.classList.remove("active");const t=SelectorEngine.find("[href].active",e);for(const e of t)e.classList.remove("active")}}EventHandler.on(window,EVENT_LOAD_DATA_API$1,()=>{for(const e of SelectorEngine.find(SELECTOR_DATA_SPY))ScrollSpy.getOrCreateInstance(e)});const NAME$2="tab",DATA_KEY$2="bs.tab",EVENT_KEY$2=".bs.tab",EVENT_HIDE$1="hide.bs.tab",EVENT_HIDDEN$1="hidden.bs.tab",EVENT_SHOW$1="show.bs.tab",EVENT_SHOWN$1="shown.bs.tab",EVENT_CLICK_DATA_API="click.bs.tab",EVENT_KEYDOWN="keydown.bs.tab",EVENT_LOAD_DATA_API="load.bs.tab",ARROW_LEFT_KEY="ArrowLeft",ARROW_RIGHT_KEY="ArrowRight",ARROW_UP_KEY="ArrowUp",ARROW_DOWN_KEY="ArrowDown",HOME_KEY="Home",END_KEY="End",CLASS_NAME_ACTIVE="active",CLASS_NAME_FADE$1="fade",CLASS_NAME_SHOW$1="show",SELECTOR_MENU_TOGGLE='[data-bs-toggle="menu"]',SELECTOR_MENU=".menu",NOT_SELECTOR_MENU_TOGGLE=`:not(${SELECTOR_MENU_TOGGLE})`,SELECTOR_TAB_PANEL='.list-group, .nav, [role="tablist"]',SELECTOR_OUTER=".nav-item, .list-group-item",SELECTOR_INNER=`.nav-link${NOT_SELECTOR_MENU_TOGGLE}, .list-group-item${NOT_SELECTOR_MENU_TOGGLE}, [role="tab"]${NOT_SELECTOR_MENU_TOGGLE}`,SELECTOR_DATA_TOGGLE$1='[data-bs-toggle="tab"]',SELECTOR_INNER_ELEM=`${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE$1}`,SELECTOR_DATA_TOGGLE_ACTIVE='.active[data-bs-toggle="tab"]';class Tab extends BaseComponent{constructor(e){super(e),this._parent=this._element.closest(SELECTOR_TAB_PANEL),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),EventHandler.on(this._element,EVENT_KEYDOWN,e=>this._keydown(e)))}static get NAME(){return"tab"}show(){const e=this._element;if(this._elemIsActive(e))return;const t=this._getActiveElem(),n=t?EventHandler.trigger(t,EVENT_HIDE$1,{relatedTarget:e}):null;EventHandler.trigger(e,EVENT_SHOW$1,{relatedTarget:t}).defaultPrevented||n&&n.defaultPrevented||(this._deactivate(t,e),this._activate(e,t))}_activate(e,t){e&&(e.classList.add("active"),this._activate(SelectorEngine.getElementFromSelector(e)),this._queueCallback(()=>{"tab"===e.getAttribute("role")?(e.removeAttribute("tabindex"),e.setAttribute("aria-selected",!0),this._toggleMenu(e,!0),EventHandler.trigger(e,EVENT_SHOWN$1,{relatedTarget:t})):e.classList.add("show")},e,e.classList.contains("fade")))}_deactivate(e,t){e&&(e.classList.remove("active"),e.blur(),this._deactivate(SelectorEngine.getElementFromSelector(e)),this._queueCallback(()=>{"tab"===e.getAttribute("role")?(e.setAttribute("aria-selected",!1),e.setAttribute("tabindex","-1"),this._toggleMenu(e,!1),EventHandler.trigger(e,EVENT_HIDDEN$1,{relatedTarget:t})):e.classList.remove("show")},e,e.classList.contains("fade")))}_keydown(e){if(![ARROW_LEFT_KEY,ARROW_RIGHT_KEY,ARROW_UP_KEY,ARROW_DOWN_KEY,HOME_KEY,END_KEY].includes(e.key))return;e.stopPropagation(),e.preventDefault();const t=this._getChildren().filter(e=>!isDisabled(e));let n;if([HOME_KEY,END_KEY].includes(e.key))n=e.key===HOME_KEY?t[0]:t.at(-1);else{const s=[ARROW_RIGHT_KEY,ARROW_DOWN_KEY].includes(e.key);n=getNextActiveElement(t,e.target,s,!0)}n&&(n.focus({preventScroll:!0}),Tab.getOrCreateInstance(n).show())}_getChildren(){return SelectorEngine.find(SELECTOR_INNER_ELEM,this._parent)}_getActiveElem(){return this._getChildren().find(e=>this._elemIsActive(e))||null}_setInitialAttributes(e,t){this._setAttributeIfNotExists(e,"role","tablist");for(const e of t)this._setInitialAttributesOnChild(e)}_setInitialAttributesOnChild(e){e=this._getInnerElement(e);const t=this._elemIsActive(e),n=this._getOuterElement(e);e.setAttribute("aria-selected",t),n!==e&&this._setAttributeIfNotExists(n,"role","presentation"),t||e.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(e,"role","tab"),this._setInitialAttributesOnTargetPanel(e)}_setInitialAttributesOnTargetPanel(e){const t=SelectorEngine.getElementFromSelector(e);t&&(this._setAttributeIfNotExists(t,"role","tabpanel"),e.id&&this._setAttributeIfNotExists(t,"aria-labelledby",`${e.id}`))}_toggleMenu(e,t){const n=this._getOuterElement(e),s=SelectorEngine.findOne(SELECTOR_MENU_TOGGLE,n);if(!s)return;const i=SelectorEngine.findOne(".menu",n);s.classList.toggle("active",t),i&&i.classList.toggle("show",t),s.setAttribute("aria-expanded",t)}_setAttributeIfNotExists(e,t,n){e.hasAttribute(t)||e.setAttribute(t,n)}_elemIsActive(e){return e.classList.contains("active")}_getInnerElement(e){return e.matches(SELECTOR_INNER_ELEM)?e:SelectorEngine.findOne(SELECTOR_INNER_ELEM,e)}_getOuterElement(e){return e.closest(SELECTOR_OUTER)||e}}EventHandler.on(document,"click.bs.tab",SELECTOR_DATA_TOGGLE$1,function(e){["A","AREA"].includes(this.tagName)&&e.preventDefault(),isDisabled(this)||Tab.getOrCreateInstance(this).show()}),EventHandler.on(window,"load.bs.tab",()=>{for(const e of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE))Tab.getOrCreateInstance(e)});const NAME$1="toast",DATA_KEY$1="bs.toast",EVENT_KEY$1=".bs.toast",EVENT_MOUSEOVER="mouseover.bs.toast",EVENT_MOUSEOUT="mouseout.bs.toast",EVENT_FOCUSIN="focusin.bs.toast",EVENT_FOCUSOUT="focusout.bs.toast",EVENT_HIDE="hide.bs.toast",EVENT_HIDDEN="hidden.bs.toast",EVENT_SHOW="show.bs.toast",EVENT_SHOWN="shown.bs.toast",CLASS_NAME_FADE="fade",CLASS_NAME_HIDE="hide",CLASS_NAME_SHOW="show",CLASS_NAME_SHOWING="showing",DefaultType$1={animation:"boolean",autohide:"boolean",delay:"number"},Default$1={animation:!0,autohide:!0,delay:5e3};class Toast extends BaseComponent{constructor(e,t){super(e,t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return Default$1}static get DefaultType(){return DefaultType$1}static get NAME(){return NAME$1}show(){EventHandler.trigger(this._element,EVENT_SHOW).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove("hide"),reflow(this._element),this._element.classList.add("show","showing"),this._queueCallback(()=>{this._element.classList.remove("showing"),EventHandler.trigger(this._element,EVENT_SHOWN),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this.isShown()&&(EventHandler.trigger(this._element,EVENT_HIDE).defaultPrevented||(this._element.classList.add("showing"),this._queueCallback(()=>{this._element.classList.add("hide"),this._element.classList.remove("showing","show"),EventHandler.trigger(this._element,EVENT_HIDDEN)},this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove("show"),super.dispose()}isShown(){return this._element.classList.contains("show")}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}if(t)return void this._clearTimeout();const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){EventHandler.on(this._element,EVENT_MOUSEOVER,e=>this._onInteraction(e,!0)),EventHandler.on(this._element,EVENT_MOUSEOUT,e=>this._onInteraction(e,!1)),EventHandler.on(this._element,EVENT_FOCUSIN,e=>this._onInteraction(e,!0)),EventHandler.on(this._element,EVENT_FOCUSOUT,e=>this._onInteraction(e,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}}enableDismissTrigger(Toast);const NAME="toggler",DATA_KEY="bs.toggler",EVENT_KEY=`.${DATA_KEY}`,EVENT_TOGGLE=`toggle${EVENT_KEY}`,EVENT_TOGGLED=`toggled${EVENT_KEY}`,EVENT_CLICK="click",SELECTOR_DATA_TOGGLE='[data-bs-toggle="toggler"]',DefaultType={attribute:"string",value:"(string|number|boolean)"},Default={attribute:"class",value:null};class Toggler extends BaseComponent{static get Default(){return Default}static get DefaultType(){return DefaultType}static get NAME(){return NAME}toggle(){EventHandler.trigger(this._element,EVENT_TOGGLE).defaultPrevented||(this._execute(),EventHandler.trigger(this._element,EVENT_TOGGLED))}_execute(){const{attribute:e,value:t}=this._config;"id"!==e&&("class"!==e?this._element.getAttribute(e)!==String(t)?this._element.setAttribute(e,t):this._element.removeAttribute(e):this._element.classList.toggle(t))}}eventActionOnPlugin(Toggler,"click",SELECTOR_DATA_TOGGLE,"toggle");export{Alert,Button,Carousel,Chips,Collapse,Combobox,Datepicker,Dialog,Drawer,Menu,NavOverflow,OtpInput,Popover,ScrollSpy,Strength,Tab,Toast,Toggler,Tooltip};
+var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,n)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,__spreadValues=(e,t)=>{for(var n in t||(t={}))__hasOwnProp.call(t,n)&&__defNormalProp(e,n,t[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(t))__propIsEnum.call(t,n)&&__defNormalProp(e,n,t[n]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t)),__publicField=(e,t,n)=>(__defNormalProp(e,"symbol"!=typeof t?t+"":t,n),n);const errorMessages={notFoundSelector:e=>`${e} is not found, check the first argument passed to new Calendar.`,notInit:'The calendar has not been initialized, please initialize it using the "init()" method first.',notLocale:"You specified an incorrect language label or did not specify the required number of values for «locale.weekdays» or «locale.months».",incorrectTime:"The value of the time property can be: false, 12 or 24.",incorrectMonthsCount:"For the «multiple» calendar type, the «displayMonthsCount» parameter can have a value from 2 to 12, and for all others it cannot be greater than 1."},setContext=(e,t,n)=>{e.context[t]=n},destroy=e=>{var t,n,s,i,o;if(!e.context.isInit)throw new Error(errorMessages.notInit);e.inputMode?(null==(t=e.context.mainElement.parentElement)||t.removeChild(e.context.mainElement),null==(s=null==(n=e.context.inputElement)?void 0:n.replaceWith)||s.call(n,e.context.originalElement),setContext(e,"inputElement",void 0)):null==(o=(i=e.context.mainElement).replaceWith)||o.call(i,e.context.originalElement),setContext(e,"mainElement",e.context.originalElement),e.onDestroy&&e.onDestroy(e)},skipOpenOnFocus=new WeakSet,shouldSkipOpenOnFocus=e=>skipOpenOnFocus.has(e),setSkipOpenOnFocus=e=>{skipOpenOnFocus.add(e)},clearSkipOpenOnFocus=e=>{skipOpenOnFocus.delete(e)},PREV_TABINDEX_ATTR="data-vc-prev-tabindex",isFocusable=e=>e.tabIndex>=0&&!e.hasAttribute("disabled")&&"true"!==e.getAttribute("aria-disabled"),storePrevTabIndex=e=>{if(e.hasAttribute(PREV_TABINDEX_ATTR))return;const t=e.getAttribute("tabindex");e.setAttribute(PREV_TABINDEX_ATTR,null!=t?t:"")},restorePrevTabIndex=e=>{if(!e.hasAttribute(PREV_TABINDEX_ATTR))return;const t=e.getAttribute(PREV_TABINDEX_ATTR);""===t||null===t?e.removeAttribute("tabindex"):e.setAttribute("tabindex",t),e.removeAttribute(PREV_TABINDEX_ATTR)},disableTabbing=e=>{isFocusable(e)&&(storePrevTabIndex(e),e.tabIndex=-1);const t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>isFocusable(e)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;t.nextNode();){const e=t.currentNode;storePrevTabIndex(e),e.tabIndex=-1}},restoreTabbing=e=>{restorePrevTabIndex(e),e.querySelectorAll(`[${PREV_TABINDEX_ATTR}]`).forEach(restorePrevTabIndex)},hide=e=>{e.context.isShowInInputMode&&e.context.currentType&&(e.context.mainElement.dataset.vcCalendarHidden="",setContext(e,"isShowInInputMode",!1),e.inputMode&&disableTabbing(e.context.mainElement),e.context.cleanupHandlers[0]&&(e.context.cleanupHandlers.forEach(e=>e()),setContext(e,"cleanupHandlers",[])),e.inputMode&&e.context.inputElement&&e.context.mainElement.contains(document.activeElement)&&(("function"==typeof e.openOnFocus||!0===e.openOnFocus)&&setSkipOpenOnFocus(e),e.context.inputElement.focus()),e.onHide&&e.onHide(e))};function getOffset(e){if(!e||!e.getBoundingClientRect)return{top:0,bottom:0,left:0,right:0};const t=e.getBoundingClientRect(),n=document.documentElement;return{bottom:t.bottom,right:t.right,top:t.top+window.scrollY-n.clientTop,left:t.left+window.scrollX-n.clientLeft}}function getViewportDimensions(){return{vw:Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),vh:Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)}}function getWindowScrollPosition(){return{left:window.scrollX||document.documentElement.scrollLeft||0,top:window.scrollY||document.documentElement.scrollTop||0}}function calculateAvailableSpace(e){const{top:t,left:n}=getWindowScrollPosition(),{top:s,left:i}=getOffset(e),{vh:o,vw:a}=getViewportDimensions(),l=s-t,r=i-n;return{top:l,bottom:o-(l+e.clientHeight),left:r,right:a-(r+e.clientWidth)}}function getAvailablePosition(e,t,n=5){const s={top:!0,bottom:!0,left:!0,right:!0},i=[];if(!t||!e)return{canShow:s,parentPositions:i};const{bottom:o,top:a}=calculateAvailableSpace(e),{top:l,left:r}=getOffset(e),{height:c,width:d}=t.getBoundingClientRect(),{vh:u,vw:h}=getViewportDimensions(),_=h/2,m=u/2;return[{condition:l<m,position:"top"},{condition:l>m,position:"bottom"},{condition:r<_,position:"left"},{condition:r>_,position:"right"}].forEach(({condition:e,position:t})=>{e&&i.push(t)}),Object.assign(s,{top:c<=a-n,bottom:c<=o-n,left:d<=r,right:d<=h-r}),{canShow:s,parentPositions:i}}const handleDay=(e,t,n,s)=>{var i;const o=s.querySelector(`[data-vc-date="${t}"]`),a=null==o?void 0:o.querySelector("[data-vc-date-btn]");if(!o||!a)return;if((null==n?void 0:n.modifier)&&a.classList.add(...n.modifier.trim().split(" ")),!(null==n?void 0:n.html))return;const l=document.createElement("div");l.className=e.styles.datePopup,l.dataset.vcDatePopup="",l.innerHTML=e.sanitizerHTML(n.html),a.ariaExpanded="true",a.ariaLabel=`${a.ariaLabel}, ${null==(i=null==l?void 0:l.textContent)?void 0:i.replace(/^\s+|\s+(?=\s)|\s+$/g,"").replace(/ /g," ")}`,o.appendChild(l),requestAnimationFrame(()=>{if(!l)return;const{canShow:e}=getAvailablePosition(o,l),t=e.bottom?o.offsetHeight:-l.offsetHeight,n=e.left&&!e.right?o.offsetWidth-l.offsetWidth/2:!e.left&&e.right?l.offsetWidth/2:0;Object.assign(l.style,{left:`${n}px`,top:`${t}px`})})},createDatePopup=(e,t)=>{var n;e.popups&&(null==(n=Object.entries(e.popups))||n.forEach(([n,s])=>handleDay(e,n,s,t)))},getDate=e=>new Date(`${e}T00:00:00`),getDateString=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,parseDates=e=>e.reduce((e,t)=>{if(t instanceof Date||"number"==typeof t){const n=t instanceof Date?t:new Date(t);e.push(n.toISOString().substring(0,10))}else t.match(/^(\d{4}-\d{2}-\d{2})$/g)?e.push(t):t.replace(/(\d{4}-\d{2}-\d{2}).*?(\d{4}-\d{2}-\d{2})/g,(t,n,s)=>{const i=getDate(n),o=getDate(s),a=new Date(i.getTime());for(;a<=o;a.setDate(a.getDate()+1))e.push(getDateString(a));return t});return e},[]),updateAttribute=(e,t,n,s="")=>{t?e.setAttribute(n,s):e.getAttribute(n)===s&&e.removeAttribute(n)},setDateModifier=(e,t,n,s,i,o,a)=>{var l,r,c,d;const u=getDate(e.context.displayDateMin)>getDate(o)||getDate(e.context.displayDateMax)<getDate(o)||(null==(l=e.context.disableDates)?void 0:l.includes(o))||!e.selectionMonthsMode&&"current"!==a||!e.selectionYearsMode&&getDate(o).getFullYear()!==t;updateAttribute(n,u,"data-vc-date-disabled"),s&&updateAttribute(s,u,"aria-disabled","true"),s&&updateAttribute(s,u,"tabindex","-1"),updateAttribute(n,!e.disableToday&&e.context.dateToday===o,"data-vc-date-today"),updateAttribute(n,!e.disableToday&&e.context.dateToday===o,"aria-current","date"),updateAttribute(n,null==(r=e.selectedWeekends)?void 0:r.includes(i),"data-vc-date-weekend");const h=(null==(c=e.selectedHolidays)?void 0:c[0])?parseDates(e.selectedHolidays):[];if(updateAttribute(n,h.includes(o),"data-vc-date-holiday"),(null==(d=e.context.selectedDates)?void 0:d.includes(o))?(n.setAttribute("data-vc-date-selected",""),s&&s.setAttribute("aria-selected","true"),e.context.selectedDates.length>1&&"multiple-ranged"===e.selectionDatesMode&&(e.context.selectedDates[0]===o&&e.context.selectedDates[e.context.selectedDates.length-1]===o?n.setAttribute("data-vc-date-selected","first-and-last"):e.context.selectedDates[0]===o?n.setAttribute("data-vc-date-selected","first"):e.context.selectedDates[e.context.selectedDates.length-1]===o&&n.setAttribute("data-vc-date-selected","last"),e.context.selectedDates[0]!==o&&e.context.selectedDates[e.context.selectedDates.length-1]!==o&&n.setAttribute("data-vc-date-selected","middle"))):n.hasAttribute("data-vc-date-selected")&&(n.removeAttribute("data-vc-date-selected"),s&&s.removeAttribute("aria-selected")),!e.context.disableDates.includes(o)&&e.enableEdgeDatesOnly&&e.context.selectedDates.length>1&&"multiple-ranged"===e.selectionDatesMode){const t=getDate(e.context.selectedDates[0]),s=getDate(e.context.selectedDates[e.context.selectedDates.length-1]),i=getDate(o);updateAttribute(n,i>t&&i<s,"data-vc-date-selected","middle")}},getLocaleString=(e,t,n)=>new Date(`${e}T00:00:00.000Z`).toLocaleString(t,n),getWeekNumber=(e,t)=>{const n=getDate(e),s=(n.getDay()-t+7)%7;n.setDate(n.getDate()+4-s);const i=new Date(n.getFullYear(),0,1),o=Math.ceil(((+n-+i)/864e5+1)/7);return{year:n.getFullYear(),week:o}},addWeekNumberForDate=(e,t,n)=>{const s=getWeekNumber(n,e.firstWeekday);s&&(t.dataset.vcDateWeekNumber=String(s.week))},setDaysAsDisabled=(e,t,n)=>{var s,i,o,a,l;const r=null==(s=e.disableWeekdays)?void 0:s.includes(n),c=e.disableAllDates&&!!(null==(i=e.context.enableDates)?void 0:i[0]);!r&&!c||(null==(o=e.context.enableDates)?void 0:o.includes(t))||(null==(a=e.context.disableDates)?void 0:a.includes(t))||(e.context.disableDates.push(t),null==(l=e.context.disableDates)||l.sort((e,t)=>+new Date(e)-+new Date(t)))},createDate=(e,t,n,s,i,o)=>{const a=getDate(i).getDay(),l="string"==typeof e.locale&&e.locale.length?e.locale:"en",r=document.createElement("div");let c;r.className=e.styles.date,r.dataset.vcDate=i,r.dataset.vcDateMonth=o,r.dataset.vcDateWeekDay=String(a),r.role="gridcell",("current"===o||e.displayDatesOutside)&&(c=document.createElement("button"),c.className=e.styles.dateBtn,c.type="button",c.ariaLabel=getLocaleString(i,l,{dateStyle:"long",timeZone:"UTC"}),c.dataset.vcDateBtn="",c.innerText=String(s),r.appendChild(c)),e.enableWeekNumbers&&addWeekNumberForDate(e,r,i),setDaysAsDisabled(e,i,a),setDateModifier(e,t,r,c,a,i,o),n.addDate(r),e.onCreateDateEls&&e.onCreateDateEls(e,r)},createDatesFromCurrentMonth=(e,t,n,s,i)=>{for(let o=1;o<=n;o++){const n=new Date(s,i,o);createDate(e,s,t,o,getDateString(n),"current")}},createDatesFromNextMonth=(e,t,n,s,i)=>{const o=i+1===12?s+1:s,a=i+1===12?"01":i+2<10?`0${i+2}`:i+2;for(let i=1;i<=n;i++){const n=i<10?`0${i}`:String(i);createDate(e,s,t,i,`${o}-${a}-${n}`,"next")}},createDatesFromPrevMonth=(e,t,n,s,i)=>{let o=new Date(n,s,0).getDate()-(i-1);const a=0===s?n-1:n,l=0===s?12:s<10?`0${s}`:s;for(let s=i;s>0;s--,o++)createDate(e,n,t,o,`${a}-${l}-${o}`,"prev")},createWeekNumbers=(e,t,n,s,i)=>{if(!e.enableWeekNumbers)return;s.textContent="";const o=document.createElement("b");o.className=e.styles.weekNumbersTitle,o.innerText="#",o.dataset.vcWeekNumbers="title",s.appendChild(o);const a=document.createElement("div");a.className=e.styles.weekNumbersContent,a.dataset.vcWeekNumbers="content",s.appendChild(a);const l=document.createElement("button");l.type="button",l.className=e.styles.weekNumber;const r=i.querySelectorAll("[data-vc-date]"),c=Math.ceil((t+n)/7);for(let t=0;t<c;t++){const n=r[0===t?6:7*t].dataset.vcDate,s=getWeekNumber(n,e.firstWeekday);if(!s)return;const i=l.cloneNode(!0);i.innerText=String(s.week),i.dataset.vcWeekNumber=String(s.week),i.dataset.vcWeekYear=String(s.year),i.role="rowheader",i.ariaLabel=`${s.week}`,a.appendChild(i)}},createDates=e=>{const t=new Date(e.context.selectedYear,e.context.selectedMonth,1),n=e.context.mainElement.querySelectorAll('[data-vc="dates"]'),s=e.context.mainElement.querySelectorAll('[data-vc-week="numbers"]');n.forEach((n,i)=>{e.selectionDatesMode||(n.dataset.vcDatesDisabled=""),n.textContent="";const o=new Date(t);o.setMonth(o.getMonth()+i);const a=o.getMonth(),l=o.getFullYear(),r=(new Date(l,a,1).getDay()-e.firstWeekday+7)%7,c=new Date(l,a+1,0).getDate(),d=r+c,u=Math.ceil(d/7),h=7*u-d,_=[];for(let t=0;t<u;t++){const t=document.createElement("div");t.className=e.styles.datesRow,t.setAttribute("data-vc-dates","row"),t.setAttribute("role","row"),_.push(t)}let m=0,g=0;const p={addDate:e=>{_[m].appendChild(e),g++,g>=7&&(m++,g=0)}};createDatesFromPrevMonth(e,p,l,a,r),createDatesFromCurrentMonth(e,p,c,l,a),createDatesFromNextMonth(e,p,h,l,a);for(const e of _)n.appendChild(e);createDatePopup(e,n),createWeekNumbers(e,r,c,s[i],n)})},layoutDefault=e=>`\n <div class="${e.styles.header}" data-vc="header" role="toolbar" aria-label="${e.labels.navigation}">\n <#ArrowPrev [month] />\n <div class="${e.styles.headerContent}" data-vc-header="content">\n <#Month />\n <#Year />\n </div>\n <#ArrowNext [month] />\n </div>\n <div class="${e.styles.wrapper}" data-vc="wrapper">\n <#WeekNumbers />\n <div class="${e.styles.content}" data-vc="content" role="grid">\n <#Week />\n <#Dates />\n <#DateRangeTooltip />\n </div>\n </div>\n <#ControlTime />\n`,layoutMonths=e=>`\n <div class="${e.styles.header}" data-vc="header" role="toolbar" aria-label="${e.labels.navigation}">\n <div class="${e.styles.headerContent}" data-vc-header="content">\n <#Month />\n <#Year />\n </div>\n </div>\n <div class="${e.styles.wrapper}" data-vc="wrapper">\n <div class="${e.styles.content}" data-vc="content">\n <#Months />\n </div>\n </div>\n`,layoutMultiple=e=>`\n <div class="${e.styles.controls}" data-vc="controls" role="toolbar" aria-label="${e.labels.navigation}">\n <#ArrowPrev [month] />\n <#ArrowNext [month] />\n </div>\n <div class="${e.styles.grid}" data-vc="grid">\n <#Multiple>\n <div class="${e.styles.column}" data-vc="column" role="region">\n <div class="${e.styles.header}" data-vc="header">\n <div class="${e.styles.headerContent}" data-vc-header="content">\n <#Month />\n <#Year />\n </div>\n </div>\n <div class="${e.styles.wrapper}" data-vc="wrapper">\n <#WeekNumbers />\n <div class="${e.styles.content}" data-vc="content" role="grid">\n <#Week />\n <#Dates />\n </div>\n </div>\n </div>\n <#/Multiple>\n <#DateRangeTooltip />\n </div>\n <#ControlTime />\n`,layoutYears=e=>`\n <div class="${e.styles.header}" data-vc="header" role="toolbar" aria-label="${e.labels.navigation}">\n <#ArrowPrev [year] />\n <div class="${e.styles.headerContent}" data-vc-header="content">\n <#Month />\n <#Year />\n </div>\n <#ArrowNext [year] />\n </div>\n <div class="${e.styles.wrapper}" data-vc="wrapper">\n <div class="${e.styles.content}" data-vc="content">\n <#Years />\n </div>\n </div>\n`,ArrowNext=(e,t)=>`<button type="button" class="${e.styles.arrowNext}" data-vc-arrow="next" aria-label="${e.labels.arrowNext[t]}"></button>`,ArrowPrev=(e,t)=>`<button type="button" class="${e.styles.arrowPrev}" data-vc-arrow="prev" aria-label="${e.labels.arrowPrev[t]}"></button>`,ControlTime=e=>e.selectionTimeMode?`<div class="${e.styles.time}" data-vc="time" role="group" aria-label="${e.labels.selectingTime}"></div>`:"",DateRangeTooltip=e=>e.onCreateDateRangeTooltip?`<div class="${e.styles.dateRangeTooltip}" data-vc-date-range-tooltip="hidden"></div>`:"",Dates=e=>`<div class="${e.styles.dates}" data-vc="dates" aria-live="assertive" aria-label="${e.labels.dates}" ${"multiple"===e.type?"aria-multiselectable":""}></div>`,Month=e=>`<button type="button" class="${e.styles.month}" data-vc="month"></button>`,Months=e=>`<div class="${e.styles.months}" data-vc="months" role="grid" aria-live="assertive" aria-label="${e.labels.months}"></div>`,Week=e=>`<div class="${e.styles.week}" data-vc="week" role="row" aria-label="${e.labels.week}"></div>`,WeekNumbers=e=>e.enableWeekNumbers?`<div class="${e.styles.weekNumbers}" data-vc-week="numbers" role="row" aria-label="${e.labels.weekNumber}"></div>`:"",Year=e=>`<button type="button" class="${e.styles.year}" data-vc="year"></button>`,Years=e=>`<div class="${e.styles.years}" data-vc="years" role="grid" aria-live="assertive" aria-label="${e.labels.years}"></div>`,components={ArrowNext:ArrowNext,ArrowPrev:ArrowPrev,ControlTime:ControlTime,Dates:Dates,DateRangeTooltip:DateRangeTooltip,Month:Month,Months:Months,Week:Week,WeekNumbers:WeekNumbers,Year:Year,Years:Years},getComponent=e=>components[e],parseLayout=(e,t)=>t.replace(/[\n\t]/g,"").replace(/<#(?!\/?Multiple)(.*?)>/g,(t,n)=>{const s=(n.match(/\[(.*?)\]/)||[])[1],i=n.replace(/[/\s\n\t]|\[(.*?)\]/g,""),o=getComponent(i),a=o?o(e,null!=s?s:null):"";return e.sanitizerHTML(a)}).replace(/[\n\t]/g,""),parseMultipleLayout=(e,t)=>t.replace(new RegExp("<#Multiple>(.*?)<#\\/Multiple>","gs"),(t,n)=>{const s=Array(e.context.displayMonthsCount).fill(n).join("");return e.sanitizerHTML(s)}).replace(/[\n\t]/g,""),createLayouts=(e,t)=>{const n={default:layoutDefault,month:layoutMonths,year:layoutYears,multiple:layoutMultiple};if(Object.keys(n).forEach(t=>{const s=t;e.layouts[s].length||(e.layouts[s]=n[s](e))}),e.context.mainElement.className=e.styles.calendar,e.context.mainElement.dataset.vc="calendar",e.context.mainElement.dataset.vcType=e.context.currentType,e.context.mainElement.role="application",e.context.mainElement.tabIndex=0,e.context.mainElement.ariaLabel=e.labels.application,"multiple"!==e.context.currentType){if("multiple"===e.type&&t){const n=e.context.mainElement.querySelector('[data-vc="controls"]'),s=e.context.mainElement.querySelector('[data-vc="grid"]'),i=t.closest('[data-vc="column"]');return n&&n.remove(),s&&(s.dataset.vcGrid="hidden"),i&&(i.dataset.vcColumn=e.context.currentType),void(i&&(i.innerHTML=e.sanitizerHTML(parseLayout(e,e.layouts[e.context.currentType]))))}e.context.mainElement.innerHTML=e.sanitizerHTML(parseLayout(e,e.layouts[e.context.currentType]))}else e.context.mainElement.innerHTML=e.sanitizerHTML(parseMultipleLayout(e,parseLayout(e,e.layouts[e.context.currentType])))},setVisibilityArrows=(e,t,n,s)=>{e.style.visibility=n?"hidden":"",t.style.visibility=s?"hidden":""},handleDefaultType=(e,t,n)=>{const s=getDate(getDateString(new Date(e.context.selectedYear,e.context.selectedMonth,1))),i=new Date(s.getTime()),o=new Date(s.getTime());i.setMonth(i.getMonth()-e.monthsToSwitch),o.setMonth(o.getMonth()+e.monthsToSwitch);const a=getDate(e.context.dateMin),l=getDate(e.context.dateMax);e.selectionYearsMode||(a.setFullYear(s.getFullYear()),l.setFullYear(s.getFullYear()));const r=!e.selectionMonthsMode||i.getFullYear()<a.getFullYear()||i.getFullYear()===a.getFullYear()&&i.getMonth()<a.getMonth(),c=!e.selectionMonthsMode||o.getFullYear()>l.getFullYear()||o.getFullYear()===l.getFullYear()&&o.getMonth()>l.getMonth()-(e.context.displayMonthsCount-1);setVisibilityArrows(t,n,r,c)},handleYearType=(e,t,n)=>{const s=getDate(e.context.dateMin),i=getDate(e.context.dateMax),o=!!(s.getFullYear()&&e.context.displayYear-7<=s.getFullYear()),a=!!(i.getFullYear()&&e.context.displayYear+7>=i.getFullYear());setVisibilityArrows(t,n,o,a)},visibilityArrows=e=>{if("month"===e.context.currentType)return;const t=e.context.mainElement.querySelector('[data-vc-arrow="prev"]'),n=e.context.mainElement.querySelector('[data-vc-arrow="next"]');t&&n&&{default:()=>handleDefaultType(e,t,n),year:()=>handleYearType(e,t,n)}["multiple"===e.context.currentType?"default":e.context.currentType]()},visibilityHandler=(e,t,n,s,i)=>{const o=new Date(s.setFullYear(e.context.selectedYear,e.context.selectedMonth+n)).getFullYear(),a=new Date(s.setMonth(e.context.selectedMonth+n)).getMonth(),l=e.context.locale.months.long[a],r=t.closest('[data-vc="column"]');r&&(r.ariaLabel=`${l} ${o}`);const c={month:{id:a,label:l},year:{id:o,label:o}};t.innerText=String(c[i].label),t.dataset[`vc${i.charAt(0).toUpperCase()+i.slice(1)}`]=String(c[i].id),t.ariaLabel=`${e.labels[i]} ${c[i].label}`;const d={month:e.selectionMonthsMode,year:e.selectionYearsMode},u=!1===d[i]||"only-arrows"===d[i];u&&(t.tabIndex=-1),t.disabled=u},visibilityTitle=e=>{const t=e.context.mainElement.querySelectorAll('[data-vc="month"]'),n=e.context.mainElement.querySelectorAll('[data-vc="year"]'),s=new Date(e.context.selectedYear,e.context.selectedMonth,1);[t,n].forEach(t=>null==t?void 0:t.forEach((t,n)=>visibilityHandler(e,t,n,s,t.dataset.vc)))},setYearModifier=(e,t,n,s,i)=>{var o;const a={month:{selected:"data-vc-months-month-selected",aria:"aria-selected",value:"vcMonthsMonth",selectedProperty:"selectedMonth"},year:{selected:"data-vc-years-year-selected",aria:"aria-selected",value:"vcYearsYear",selectedProperty:"selectedYear"}};i&&(null==(o=e.context.mainElement.querySelectorAll({month:"[data-vc-months-month]",year:"[data-vc-years-year]"}[n]))||o.forEach(e=>{e.removeAttribute(a[n].selected),e.removeAttribute(a[n].aria)}),setContext(e,a[n].selectedProperty,Number(t.dataset[a[n].value])),visibilityTitle(e),"year"===n&&visibilityArrows(e)),s&&(t.setAttribute(a[n].selected,""),t.setAttribute(a[n].aria,"true"))},getColumnID=(e,t)=>{var n;if("multiple"!==e.type)return{currentValue:null,columnID:0};const s=e.context.mainElement.querySelectorAll('[data-vc="column"]'),i=Array.from(s).findIndex(e=>e.closest(`[data-vc-column="${t}"]`));return{currentValue:i>=0?Number(null==(n=s[i].querySelector(`[data-vc="${t}"]`))?void 0:n.getAttribute(`data-vc-${t}`)):null,columnID:Math.max(i,0)}},createMonthEl=(e,t,n,s,i,o,a)=>{const l=t.cloneNode(!1);return l.className=e.styles.monthsMonth,l.innerText=s,l.ariaLabel=i,l.role="gridcell",l.dataset.vcMonthsMonth=`${a}`,o&&(l.ariaDisabled="true"),o&&(l.tabIndex=-1),l.disabled=o,setYearModifier(e,l,"month",n===a,!1),l},createMonths=(e,t)=>{var n,s;const i=null==(n=null==t?void 0:t.closest('[data-vc="header"]'))?void 0:n.querySelector('[data-vc="year"]'),o=i?Number(i.dataset.vcYear):e.context.selectedYear,a=(null==t?void 0:t.dataset.vcMonth)?Number(t.dataset.vcMonth):e.context.selectedMonth;setContext(e,"currentType","month"),createLayouts(e,t),visibilityTitle(e);const l=e.context.mainElement.querySelector('[data-vc="months"]');if(!e.selectionMonthsMode||!l)return;const r=e.monthsToSwitch>1?e.context.locale.months.long.map((t,n)=>a-e.monthsToSwitch*n).concat(e.context.locale.months.long.map((t,n)=>a+e.monthsToSwitch*n)).filter(e=>e>=0&&e<=12):Array.from(Array(12).keys()),c=document.createElement("button");c.type="button";for(let t=0;t<12;t++){const n=getDate(e.context.dateMin),s=getDate(e.context.dateMax),i=e.context.displayMonthsCount-1,{columnID:d}=getColumnID(e,"month"),u=o<=n.getFullYear()&&t<n.getMonth()+d||o>=s.getFullYear()&&t>s.getMonth()-i+d||o>s.getFullYear()||t!==a&&!r.includes(t),h=createMonthEl(e,c,a,e.context.locale.months.short[t],e.context.locale.months.long[t],u,t);l.appendChild(h),e.onCreateMonthEls&&e.onCreateMonthEls(e,h)}null==(s=e.context.mainElement.querySelector("[data-vc-months-month]:not([disabled])"))||s.focus()},TimeInput=(e,t,n,s,i)=>`\n <label class="${t}" data-vc-time-input="${e}">\n <input type="text" name="${e}" maxlength="2" aria-label="${n[`input${e.charAt(0).toUpperCase()+e.slice(1)}`]}" value="${s}" ${i?"disabled":""}>\n </label>\n`,TimeRange=(e,t,n,s,i,o,a)=>`\n <label class="${t}" data-vc-time-range="${e}">\n <input type="range" name="${e}" min="${s}" max="${i}" step="${o}" aria-label="${n[`range${e.charAt(0).toUpperCase()+e.slice(1)}`]}" value="${a}">\n </label>\n`,handleActions=(e,t,n,s)=>{({hour:()=>setContext(e,"selectedHours",n),minute:()=>setContext(e,"selectedMinutes",n)})[s](),setContext(e,"selectedTime",`${e.context.selectedHours}:${e.context.selectedMinutes}${e.context.selectedKeeping?` ${e.context.selectedKeeping}`:""}`),e.onChangeTime&&e.onChangeTime(e,t,!1),e.inputMode&&e.context.inputElement&&e.context.mainElement&&e.onChangeToInput&&e.onChangeToInput(e,t)},transformTime24=(e,t)=>{var n;return(null==(n={0:{AM:"00",PM:"12"},1:{AM:"01",PM:"13"},2:{AM:"02",PM:"14"},3:{AM:"03",PM:"15"},4:{AM:"04",PM:"16"},5:{AM:"05",PM:"17"},6:{AM:"06",PM:"18"},7:{AM:"07",PM:"19"},8:{AM:"08",PM:"20"},9:{AM:"09",PM:"21"},10:{AM:"10",PM:"22"},11:{AM:"11",PM:"23"},12:{AM:"00",PM:"12"}}[Number(e)])?void 0:n[t])||String(e)},handleClickKeepingTime=(e,t,n,s,i)=>{const o=o=>{const a="AM"===e.context.selectedKeeping?"PM":"AM",l=transformTime24(e.context.selectedHours,a);Number(l)<=s&&Number(l)>=i?(setContext(e,"selectedKeeping",a),n.value=l,handleActions(e,o,e.context.selectedHours,"hour"),t.ariaLabel=`${e.labels.btnKeeping} ${e.context.selectedKeeping}`,t.innerText=e.context.selectedKeeping):e.onChangeTime&&e.onChangeTime(e,o,!0)};return t.addEventListener("click",o),()=>{t.removeEventListener("click",o)}},transformTime12=e=>({0:"12",13:"01",14:"02",15:"03",16:"04",17:"05",18:"06",19:"07",20:"08",21:"09",22:"10",23:"11"}[Number(e)]||String(e)),updateInputAndRange=(e,t,n,s)=>{e.value=n,t.value=s},updateKeepingTime$1=(e,t,n)=>{t&&n&&(setContext(e,"selectedKeeping",n),t.innerText=n)},handleInput$1=(e,t,n,s,i,o,a)=>{const l={hour:(l,r,c)=>{e.selectionTimeMode&&{12:()=>{if(!e.context.selectedKeeping)return;const d=Number(transformTime24(r,e.context.selectedKeeping));if(!(d<=o&&d>=a))return updateInputAndRange(n,t,e.context.selectedHours,e.context.selectedHours),void(e.onChangeTime&&e.onChangeTime(e,c,!0));updateInputAndRange(n,t,transformTime12(r),transformTime24(r,e.context.selectedKeeping)),l>12&&updateKeepingTime$1(e,s,"PM"),handleActions(e,c,transformTime12(r),i)},24:()=>{if(!(l<=o&&l>=a))return updateInputAndRange(n,t,e.context.selectedHours,e.context.selectedHours),void(e.onChangeTime&&e.onChangeTime(e,c,!0));updateInputAndRange(n,t,r,r),handleActions(e,c,r,i)}}[e.selectionTimeMode]()},minute:(s,l,r)=>{if(!(s<=o&&s>=a))return n.value=e.context.selectedMinutes,void(e.onChangeTime&&e.onChangeTime(e,r,!0));n.value=l,t.value=l,handleActions(e,r,l,i)}},r=e=>{const t=Number(n.value),s=n.value.padStart(2,"0");l[i]&&l[i](t,s,e)};return n.addEventListener("change",r),()=>{n.removeEventListener("change",r)}},updateInputAndTime=(e,t,n,s,i)=>{t.value=i,handleActions(e,n,i,s)},updateKeepingTime=(e,t,n)=>{t&&(setContext(e,"selectedKeeping",n),t.innerText=n)},handleRange=(e,t,n,s,i)=>{const o=o=>{const a=Number(t.value),l=t.value.padStart(2,"0"),r="hour"===i,c=24===e.selectionTimeMode,d=a>0&&a<12;r&&!c&&updateKeepingTime(e,s,0===a||d?"AM":"PM"),updateInputAndTime(e,n,o,i,!r||c||d?l:transformTime12(t.value))};return t.addEventListener("input",o),()=>{t.removeEventListener("input",o)}},handleMouseOver=e=>e.setAttribute("data-vc-input-focus",""),handleMouseOut=e=>e.removeAttribute("data-vc-input-focus"),handleTime=(e,t)=>{const n=t.querySelector('[data-vc-time-range="hour"] input[name="hour"]'),s=t.querySelector('[data-vc-time-range="minute"] input[name="minute"]'),i=t.querySelector('[data-vc-time-input="hour"] input[name="hour"]'),o=t.querySelector('[data-vc-time-input="minute"] input[name="minute"]'),a=t.querySelector('[data-vc-time="keeping"]');if(!(n&&s&&i&&o))return;const l=e=>{e.target===n&&handleMouseOver(i),e.target===s&&handleMouseOver(o)},r=e=>{e.target===n&&handleMouseOut(i),e.target===s&&handleMouseOut(o)};return t.addEventListener("mouseover",l),t.addEventListener("mouseout",r),handleInput$1(e,n,i,a,"hour",e.timeMaxHour,e.timeMinHour),handleInput$1(e,s,o,a,"minute",e.timeMaxMinute,e.timeMinMinute),handleRange(e,n,i,a,"hour"),handleRange(e,s,o,a,"minute"),a&&handleClickKeepingTime(e,a,n,e.timeMaxHour,e.timeMinHour),()=>{t.removeEventListener("mouseover",l),t.removeEventListener("mouseout",r)}},createTime=e=>{const t=e.context.mainElement.querySelector('[data-vc="time"]');if(!e.selectionTimeMode||!t)return;const[n,s]=[e.timeMinHour,e.timeMaxHour],[i,o]=[e.timeMinMinute,e.timeMaxMinute],a=e.context.selectedKeeping?transformTime24(e.context.selectedHours,e.context.selectedKeeping):e.context.selectedHours,l="range"===e.timeControls;var r;t.innerHTML=e.sanitizerHTML(`\n <div class="${e.styles.timeContent}" data-vc-time="content">\n ${TimeInput("hour",e.styles.timeHour,e.labels,e.context.selectedHours,l)}\n ${TimeInput("minute",e.styles.timeMinute,e.labels,e.context.selectedMinutes,l)}\n ${12===e.selectionTimeMode?(r=e.context.selectedKeeping,`<button type="button" class="${e.styles.timeKeeping}" aria-label="${e.labels.btnKeeping} ${r}" data-vc-time="keeping" ${l?"disabled":""}>${r}</button>`):""}\n </div>\n <div class="${e.styles.timeRanges}" data-vc-time="ranges">\n ${TimeRange("hour",e.styles.timeRange,e.labels,n,s,e.timeStepHour,a)}\n ${TimeRange("minute",e.styles.timeRange,e.labels,i,o,e.timeStepMinute,e.context.selectedMinutes)}\n </div>\n `),handleTime(e,t)},createWeek=e=>{const t=e.selectedWeekends?[...e.selectedWeekends]:[],n=[...e.context.locale.weekdays.long].reduce((n,s,i)=>[...n,{id:i,titleShort:e.context.locale.weekdays.short[i],titleLong:s,isWeekend:t.includes(i)}],[]),s=[...n.slice(e.firstWeekday),...n.slice(0,e.firstWeekday)];e.context.mainElement.querySelectorAll('[data-vc="week"]').forEach(t=>{const n=e.onClickWeekDay?document.createElement("button"):document.createElement("b");e.onClickWeekDay&&(n.type="button"),s.forEach(s=>{const i=n.cloneNode(!0);i.innerText=s.titleShort,i.className=e.styles.weekDay,i.role="columnheader",i.ariaLabel=s.titleLong,i.dataset.vcWeekDay=String(s.id),s.isWeekend&&(i.dataset.vcWeekDayOff=""),t.appendChild(i)})})},createYearEl=(e,t,n,s,i)=>{const o=t.cloneNode(!1);return o.className=e.styles.yearsYear,o.innerText=String(i),o.ariaLabel=String(i),o.role="gridcell",o.dataset.vcYearsYear=`${i}`,s&&(o.ariaDisabled="true"),s&&(o.tabIndex=-1),o.disabled=s,setYearModifier(e,o,"year",n===i,!1),o},createYears=(e,t)=>{var n;const s=(null==t?void 0:t.dataset.vcYear)?Number(t.dataset.vcYear):e.context.selectedYear;setContext(e,"currentType","year"),createLayouts(e,t),visibilityTitle(e),visibilityArrows(e);const i=e.context.mainElement.querySelector('[data-vc="years"]');if(!e.selectionYearsMode||!i)return;const o="multiple"!==e.type||e.context.selectedYear===s?0:1,a=document.createElement("button");a.type="button";for(let t=e.context.displayYear-7;t<e.context.displayYear+8;t++){const n=t<getDate(e.context.dateMin).getFullYear()+o||t>getDate(e.context.dateMax).getFullYear(),l=createYearEl(e,a,s,n,t);i.appendChild(l),e.onCreateYearEls&&e.onCreateYearEls(e,l)}null==(n=e.context.mainElement.querySelector("[data-vc-years-year]:not([disabled])"))||n.focus()},trackChangesHTMLElement=(e,t,n)=>{new MutationObserver(e=>{for(let s=0;s<e.length;s++)if(e[s].attributeName===t){n();break}}).observe(e,{attributes:!0})},haveListener={value:!1,set:()=>haveListener.value=!0,check:()=>haveListener.value},setTheme=(e,t)=>e.dataset.vcTheme=t,trackChangesThemeInSystemSettings=(e,t)=>{if(setTheme(e.context.mainElement,t.matches?"dark":"light"),"system"!==e.selectedTheme||haveListener.check())return;const n=e=>{const t=document.querySelectorAll('[data-vc="calendar"]');null==t||t.forEach(t=>setTheme(t,e.matches?"dark":"light"))};t.addEventListener?t.addEventListener("change",n):t.addListener(n),haveListener.set()},detectTheme=(e,t)=>{const n=e.themeAttrDetect.length?document.querySelector(e.themeAttrDetect):null,s=e.themeAttrDetect.replace(/^.*\[(.+)\]/g,(e,t)=>t);if(!n||"system"===n.getAttribute(s))return void trackChangesThemeInSystemSettings(e,t);const i=n.getAttribute(s);i?(setTheme(e.context.mainElement,i),trackChangesHTMLElement(n,s,()=>{const t=n.getAttribute(s);t&&setTheme(e.context.mainElement,t)})):trackChangesThemeInSystemSettings(e,t)},handleTheme=e=>{"not all"!==window.matchMedia("(prefers-color-scheme)").media?"system"===e.selectedTheme?detectTheme(e,window.matchMedia("(prefers-color-scheme: dark)")):setTheme(e.context.mainElement,e.selectedTheme):setTheme(e.context.mainElement,"light")},capitalizeFirstLetter=e=>e.charAt(0).toUpperCase()+e.slice(1).replace(/\./,""),getLocaleWeekday=(e,t,n)=>{const s=new Date(`1978-01-0${t+1}T00:00:00.000Z`),i=s.toLocaleString(n,{weekday:"short",timeZone:"UTC"}),o=s.toLocaleString(n,{weekday:"long",timeZone:"UTC"});e.context.locale.weekdays.short.push(capitalizeFirstLetter(i)),e.context.locale.weekdays.long.push(capitalizeFirstLetter(o))},getLocaleMonth=(e,t,n)=>{const s=new Date(`1978-${String(t+1).padStart(2,"0")}-01T00:00:00.000Z`),i=s.toLocaleString(n,{month:"short",timeZone:"UTC"}),o=s.toLocaleString(n,{month:"long",timeZone:"UTC"});e.context.locale.months.short.push(capitalizeFirstLetter(i)),e.context.locale.months.long.push(capitalizeFirstLetter(o))},getLocale=e=>{var t,n,s,i,o,a,l,r;if(!(e.context.locale.weekdays.short[6]&&e.context.locale.weekdays.long[6]&&e.context.locale.months.short[11]&&e.context.locale.months.long[11]))if("string"==typeof e.locale){if("string"==typeof e.locale&&!e.locale.length)throw new Error(errorMessages.notLocale);Array.from({length:7},(t,n)=>getLocaleWeekday(e,n,e.locale)),Array.from({length:12},(t,n)=>getLocaleMonth(e,n,e.locale))}else{if(!((null==(n=null==(t=e.locale)?void 0:t.weekdays)?void 0:n.short[6])&&(null==(i=null==(s=e.locale)?void 0:s.weekdays)?void 0:i.long[6])&&(null==(a=null==(o=e.locale)?void 0:o.months)?void 0:a.short[11])&&(null==(r=null==(l=e.locale)?void 0:l.months)?void 0:r.long[11])))throw new Error(errorMessages.notLocale);setContext(e,"locale",__spreadValues({},e.locale))}},create=e=>{const t={default:()=>{createWeek(e),createDates(e)},multiple:()=>{createWeek(e),createDates(e)},month:()=>createMonths(e),year:()=>createYears(e)};handleTheme(e),getLocale(e),createLayouts(e),visibilityTitle(e),visibilityArrows(e),createTime(e),t[e.context.currentType]()},handleArrowKeys=e=>{const t=t=>{var n;const s=t.target;if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(t.key)||"button"!==s.localName)return;const i=Array.from(e.context.mainElement.querySelectorAll('[data-vc="calendar"] button')),o=i.indexOf(s);if(-1===o)return;const a=(l=i[o]).hasAttribute("data-vc-date-btn")?7:l.hasAttribute("data-vc-months-month")?4:l.hasAttribute("data-vc-years-year")?5:1;var l;const r=(0,{ArrowUp:()=>Math.max(0,o-a),ArrowDown:()=>Math.min(i.length-1,o+a),ArrowLeft:()=>Math.max(0,o-1),ArrowRight:()=>Math.min(i.length-1,o+1)}[t.key])();null==(n=i[r])||n.focus()};return e.context.mainElement.addEventListener("keydown",t),()=>e.context.mainElement.removeEventListener("keydown",t)},handleMonth=(e,t)=>{const n=getDate(getDateString(new Date(e.context.selectedYear,e.context.selectedMonth,1)));({prev:()=>n.setMonth(n.getMonth()-e.monthsToSwitch),next:()=>n.setMonth(n.getMonth()+e.monthsToSwitch)})[t](),setContext(e,"selectedMonth",n.getMonth()),setContext(e,"selectedYear",n.getFullYear()),visibilityTitle(e),visibilityArrows(e),createDates(e)},handleClickArrow=(e,t)=>{const n=t.target.closest("[data-vc-arrow]");if(n){if(["default","multiple"].includes(e.context.currentType))handleMonth(e,n.dataset.vcArrow);else if("year"===e.context.currentType&&void 0!==e.context.displayYear){const s={prev:-15,next:15}[n.dataset.vcArrow];setContext(e,"displayYear",e.context.displayYear+s),createYears(e,t.target)}e.onClickArrow&&e.onClickArrow(e,t)}},resolveToggle=(e,t)=>void 0===t||("function"==typeof t?t(e):t),canToggleSelection=e=>resolveToggle(e,e.enableDateToggle),handleSelectDate=(e,t,n)=>{const s=t.dataset.vcDate,i=t.closest("[data-vc-date][data-vc-date-selected]"),o=canToggleSelection(e);if(i&&!o)return;const a=i?e.context.selectedDates.filter(e=>e!==s):n?[...e.context.selectedDates,s]:[s];setContext(e,"selectedDates",a)},createDateRangeTooltip=(e,t,n)=>{if(!t)return;if(!n)return t.dataset.vcDateRangeTooltip="hidden",void(t.textContent="");const s=e.context.mainElement.getBoundingClientRect(),i=n.getBoundingClientRect();t.style.left=i.left-s.left+i.width/2+"px",t.style.top=i.bottom-s.top-i.height+"px",t.dataset.vcDateRangeTooltip="visible",t.innerHTML=e.sanitizerHTML(e.onCreateDateRangeTooltip(e,n,t,i,s))},state={self:null,lastDateEl:null,isHovering:!1,rangeMin:void 0,rangeMax:void 0,tooltipEl:null,timeoutId:null},addHoverEffect=(e,t,n)=>{var s,i,o;if(!(null==(i=null==(s=state.self)?void 0:s.context)?void 0:i.selectedDates[0]))return;const a=getDateString(e);(null==(o=state.self.context.disableDates)?void 0:o.includes(a))||(state.self.context.mainElement.querySelectorAll(`[data-vc-date="${a}"]`).forEach(e=>e.dataset.vcDateHover=""),t.forEach(e=>e.dataset.vcDateHover="first"),n.forEach(e=>{"first"===e.dataset.vcDateHover?e.dataset.vcDateHover="first-and-last":e.dataset.vcDateHover="last"}))},removeHoverEffect=()=>{var e,t;(null==(t=null==(e=state.self)?void 0:e.context)?void 0:t.mainElement)&&state.self.context.mainElement.querySelectorAll("[data-vc-date-hover]").forEach(e=>e.removeAttribute("data-vc-date-hover"))},handleHoverDatesEvent=e=>{var t,n;if(!e||!(null==(n=null==(t=state.self)?void 0:t.context)?void 0:n.selectedDates[0]))return;if(!e.closest('[data-vc="dates"]'))return state.lastDateEl=null,createDateRangeTooltip(state.self,state.tooltipEl,null),void removeHoverEffect();const s=e.closest("[data-vc-date]");if(!s||state.lastDateEl===s)return;state.lastDateEl=s,createDateRangeTooltip(state.self,state.tooltipEl,s),removeHoverEffect();const i=s.dataset.vcDate,o=getDate(state.self.context.selectedDates[0]),a=getDate(i),l=state.self.context.mainElement.querySelectorAll(`[data-vc-date="${state.self.context.selectedDates[0]}"]`),r=state.self.context.mainElement.querySelectorAll(`[data-vc-date="${i}"]`),[c,d]=o<a?[l,r]:[r,l],[u,h]=o<a?[o,a]:[a,o];for(let e=new Date(u);e<=h;e.setDate(e.getDate()+1))addHoverEffect(e,c,d)},handleHoverSelectedDatesRangeEvent=e=>{const t=null==e?void 0:e.closest("[data-vc-date-selected]");if(!t&&state.lastDateEl)return state.lastDateEl=null,void createDateRangeTooltip(state.self,state.tooltipEl,null);t&&state.lastDateEl!==t&&(state.lastDateEl=t,createDateRangeTooltip(state.self,state.tooltipEl,t))},optimizedHoverHandler=e=>t=>{const n=t.target;state.isHovering||(state.isHovering=!0,requestAnimationFrame(()=>{e(n),state.isHovering=!1}))},optimizedHandleHoverDatesEvent=optimizedHoverHandler(handleHoverDatesEvent),optimizedHandleHoverSelectedDatesRangeEvent=optimizedHoverHandler(handleHoverSelectedDatesRangeEvent),handleCancelSelectionDates=e=>{state.self&&"Escape"===e.key&&(state.lastDateEl=null,setContext(state.self,"selectedDates",[]),state.self.context.mainElement.removeEventListener("mousemove",optimizedHandleHoverDatesEvent),state.self.context.mainElement.removeEventListener("keydown",handleCancelSelectionDates),createDateRangeTooltip(state.self,state.tooltipEl,null),removeHoverEffect())},handleMouseLeave=()=>{null!==state.timeoutId&&clearTimeout(state.timeoutId),state.timeoutId=setTimeout(()=>{state.lastDateEl=null,createDateRangeTooltip(state.self,state.tooltipEl,null),removeHoverEffect()},50)},updateDisabledDates=()=>{var e,t,n,s;if(!(null==(n=null==(t=null==(e=state.self)?void 0:e.context)?void 0:t.selectedDates)?void 0:n[0])||!(null==(s=state.self.context.disableDates)?void 0:s[0]))return;const i=getDate(state.self.context.selectedDates[0]),[o,a]=state.self.context.disableDates.map(e=>getDate(e)).reduce(([e,t],n)=>[i>=n?n:e,i<n&&null===t?n:t],[null,null]);o&&setContext(state.self,"displayDateMin",getDateString(new Date(o.setDate(o.getDate()+1)))),a&&setContext(state.self,"displayDateMax",getDateString(new Date(a.setDate(a.getDate()-1)))),state.self.disableDatesPast&&!state.self.disableAllDates&&getDate(state.self.context.displayDateMin)<getDate(state.self.context.dateToday)&&setContext(state.self,"displayDateMin",state.self.context.dateToday)},handleSelectDateRange=(e,t)=>{state.self=e,state.lastDateEl=t,removeHoverEffect(),e.disableDatesGaps&&(state.rangeMin=state.rangeMin?state.rangeMin:e.context.displayDateMin,state.rangeMax=state.rangeMax?state.rangeMax:e.context.displayDateMax),e.onCreateDateRangeTooltip&&(state.tooltipEl=e.context.mainElement.querySelector("[data-vc-date-range-tooltip]"));const n=null==t?void 0:t.dataset.vcDate;if(n){const t=1===e.context.selectedDates.length&&e.context.selectedDates[0].includes(n),s=t&&!canToggleSelection(e)?[n,n]:t&&canToggleSelection(e)?[]:e.context.selectedDates.length>1?[n]:[...e.context.selectedDates,n];setContext(e,"selectedDates",s),e.context.selectedDates.length>1&&e.context.selectedDates.sort((e,t)=>+new Date(e)-+new Date(t))}({set:()=>(e.disableDatesGaps&&updateDisabledDates(),createDateRangeTooltip(state.self,state.tooltipEl,t),state.self.context.mainElement.removeEventListener("mousemove",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.removeEventListener("mouseleave",handleMouseLeave),state.self.context.mainElement.removeEventListener("keydown",handleCancelSelectionDates),state.self.context.mainElement.addEventListener("mousemove",optimizedHandleHoverDatesEvent),state.self.context.mainElement.addEventListener("mouseleave",handleMouseLeave),state.self.context.mainElement.addEventListener("keydown",handleCancelSelectionDates),()=>{state.self.context.mainElement.removeEventListener("mousemove",optimizedHandleHoverDatesEvent),state.self.context.mainElement.removeEventListener("mouseleave",handleMouseLeave),state.self.context.mainElement.removeEventListener("keydown",handleCancelSelectionDates)}),reset:()=>{const[n,s]=[e.context.selectedDates[0],e.context.selectedDates[e.context.selectedDates.length-1]],i=e.context.selectedDates[0]!==e.context.selectedDates[e.context.selectedDates.length-1],o=parseDates([`${n}:${s}`]).filter(t=>!e.context.disableDates.includes(t)),a=i?e.enableEdgeDatesOnly?[n,s]:o:[e.context.selectedDates[0],e.context.selectedDates[0]];if(setContext(e,"selectedDates",a),e.disableDatesGaps&&(setContext(e,"displayDateMin",state.rangeMin),setContext(e,"displayDateMax",state.rangeMax)),state.self.context.mainElement.removeEventListener("mousemove",optimizedHandleHoverDatesEvent),state.self.context.mainElement.removeEventListener("mouseleave",handleMouseLeave),state.self.context.mainElement.removeEventListener("keydown",handleCancelSelectionDates),e.onCreateDateRangeTooltip)return e.context.selectedDates[0]||(state.self.context.mainElement.removeEventListener("mousemove",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.removeEventListener("mouseleave",handleMouseLeave),createDateRangeTooltip(state.self,state.tooltipEl,null)),e.context.selectedDates[0]&&(state.self.context.mainElement.addEventListener("mousemove",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.addEventListener("mouseleave",handleMouseLeave),createDateRangeTooltip(state.self,state.tooltipEl,t)),()=>{state.self.context.mainElement.removeEventListener("mousemove",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.removeEventListener("mouseleave",handleMouseLeave)}}})[1===e.context.selectedDates.length?"set":"reset"]()},updateDateModifier=e=>{e.context.mainElement.querySelectorAll("[data-vc-date]").forEach(t=>{const n=t.querySelector("[data-vc-date-btn]"),s=t.dataset.vcDate,i=getDate(s).getDay();setDateModifier(e,e.context.selectedYear,t,n,i,s,"current")})},handleClickDate=(e,t)=>{var n;const s=t.target,i=s.closest("[data-vc-date-btn]");if(!e.selectionDatesMode||!["single","multiple","multiple-ranged"].includes(e.selectionDatesMode)||!i)return;const o=i.closest("[data-vc-date]");({single:()=>handleSelectDate(e,o,!1),multiple:()=>handleSelectDate(e,o,!0),"multiple-ranged":()=>handleSelectDateRange(e,o)})[e.selectionDatesMode](),null==(n=e.context.selectedDates)||n.sort((e,t)=>+new Date(e)-+new Date(t)),e.onClickDate&&e.onClickDate(e,t),e.inputMode&&e.context.inputElement&&e.context.mainElement&&e.onChangeToInput&&e.onChangeToInput(e,t);const a=s.closest('[data-vc-date-month="prev"]'),l=s.closest('[data-vc-date-month="next"]');({prev:()=>e.enableMonthChangeOnDayClick?handleMonth(e,"prev"):updateDateModifier(e),next:()=>e.enableMonthChangeOnDayClick?handleMonth(e,"next"):updateDateModifier(e),current:()=>updateDateModifier(e)})[a?"prev":l?"next":"current"]()},typeClick=["month","year"],getValue=(e,t,n)=>{const{currentValue:s,columnID:i}=getColumnID(e,t);return"month"===e.context.currentType&&i>=0?n-i:"year"===e.context.currentType&&e.context.selectedYear!==s?n-1:n},handleMultipleYearSelection=(e,t)=>{const n=getValue(e,"year",Number(t.dataset.vcYearsYear)),s=getDate(e.context.dateMin),i=getDate(e.context.dateMax),o=e.context.displayMonthsCount-1,{columnID:a}=getColumnID(e,"year"),l=e.context.selectedMonth<s.getMonth()&&n<=s.getFullYear(),r=e.context.selectedMonth>i.getMonth()-o+a&&n>=i.getFullYear(),c=n<s.getFullYear(),d=n>i.getFullYear(),u=l||c?s.getFullYear():r||d?i.getFullYear():n,h=l||c?s.getMonth():r||d?i.getMonth()-o+a:e.context.selectedMonth;setContext(e,"selectedYear",u),setContext(e,"selectedMonth",h)},handleMultipleMonthSelection=(e,t)=>{const n=t.closest('[data-vc-column="month"]').querySelector('[data-vc="year"]'),s=getValue(e,"month",Number(t.dataset.vcMonthsMonth)),i=Number(n.dataset.vcYear),o=getDate(e.context.dateMin),a=getDate(e.context.dateMax),l=s<o.getMonth()&&i<=o.getFullYear(),r=s>a.getMonth()&&i>=a.getFullYear();setContext(e,"selectedYear",i),setContext(e,"selectedMonth",l?o.getMonth():r?a.getMonth():s)},handleItemClick=(e,t,n,s)=>{var i;({year:()=>{if("multiple"===e.type)return handleMultipleYearSelection(e,s);setContext(e,"selectedYear",Number(s.dataset.vcYearsYear))},month:()=>{if("multiple"===e.type)return handleMultipleMonthSelection(e,s);setContext(e,"selectedMonth",Number(s.dataset.vcMonthsMonth))}})[n](),{year:()=>{var n;return null==(n=e.onClickYear)?void 0:n.call(e,e,t)},month:()=>{var n;return null==(n=e.onClickMonth)?void 0:n.call(e,e,t)}}[n](),e.context.currentType!==e.type?(setContext(e,"currentType",e.type),create(e),null==(i=e.context.mainElement.querySelector(`[data-vc="${n}"]`))||i.focus()):setYearModifier(e,s,n,!0,!0)},handleClickType=(e,t,n)=>{var s;const i=t.target,o=i.closest(`[data-vc="${n}"]`),a={year:()=>createYears(e,i),month:()=>createMonths(e,i)};if(o&&e.onClickTitle&&e.onClickTitle(e,t),o&&e.context.currentType!==n)return a[n]();const l=i.closest(`[data-vc-${n}s-${n}]`);if(l)return handleItemClick(e,t,n,l);const r=i.closest('[data-vc="grid"]'),c=i.closest('[data-vc="column"]');(e.context.currentType===n&&o||"multiple"===e.type&&e.context.currentType===n&&r&&!c)&&(setContext(e,"currentType",e.type),create(e),null==(s=e.context.mainElement.querySelector(`[data-vc="${n}"]`))||s.focus())},handleClickMonthOrYear=(e,t)=>{const n={month:e.selectionMonthsMode,year:e.selectionYearsMode};typeClick.forEach(s=>{n[s]&&t.target&&handleClickType(e,t,s)})},handleClickWeekNumber=(e,t)=>{if(!e.enableWeekNumbers||!e.onClickWeekNumber)return;const n=t.target.closest("[data-vc-week-number]"),s=e.context.mainElement.querySelectorAll("[data-vc-date-week-number]");if(!n||!s[0])return;const i=Number(n.innerText),o=Number(n.dataset.vcWeekYear),a=Array.from(s).filter(e=>Number(e.dataset.vcDateWeekNumber)===i);e.onClickWeekNumber(e,i,o,a,t)},handleClickWeekDay=(e,t)=>{if(!e.onClickWeekDay)return;const n=t.target.closest("[data-vc-week-day]"),s=t.target.closest('[data-vc="column"]'),i=s?s.querySelectorAll("[data-vc-date-week-day]"):e.context.mainElement.querySelectorAll("[data-vc-date-week-day]");if(!n||!i[0])return;const o=Number(n.dataset.vcWeekDay),a=Array.from(i).filter(e=>Number(e.dataset.vcDateWeekDay)===o);e.onClickWeekDay(e,o,a,t)},handleClick=e=>{const t=t=>{handleClickArrow(e,t),handleClickWeekDay(e,t),handleClickWeekNumber(e,t),handleClickDate(e,t),handleClickMonthOrYear(e,t)};return e.context.mainElement.addEventListener("click",t),()=>e.context.mainElement.removeEventListener("click",t)},initMonthsCount=e=>{if("multiple"===e.type&&(e.displayMonthsCount<=1||e.displayMonthsCount>12))throw new Error(errorMessages.incorrectMonthsCount);if("multiple"!==e.type&&e.displayMonthsCount>1)throw new Error(errorMessages.incorrectMonthsCount);setContext(e,"displayMonthsCount",e.displayMonthsCount?e.displayMonthsCount:"multiple"===e.type?2:1)},getLocalDate=()=>{const e=new Date;return new Date(e.getTime()-6e4*e.getTimezoneOffset()).toISOString().substring(0,10)},resolveDate=(e,t)=>"today"===e?getLocalDate():e instanceof Date||"number"==typeof e||"string"==typeof e?parseDates([e])[0]:t,initRange=e=>{var t,n,s;const i=resolveDate(e.dateMin,e.dateMin),o=resolveDate(e.dateMax,e.dateMax),a=resolveDate(e.displayDateMin,i),l=resolveDate(e.displayDateMax,o);setContext(e,"dateToday",resolveDate(e.dateToday,e.dateToday)),setContext(e,"displayDateMin",a?getDate(i)>=getDate(a)?i:a:i),setContext(e,"displayDateMax",l?getDate(o)<=getDate(l)?o:l:o);const r=e.disableDatesPast&&!e.disableAllDates&&getDate(a)<getDate(e.context.dateToday);setContext(e,"displayDateMin",r||e.disableAllDates?e.context.dateToday:a),setContext(e,"displayDateMax",e.disableAllDates?e.context.dateToday:l),setContext(e,"disableDates",e.disableDates[0]&&!e.disableAllDates?parseDates(e.disableDates):e.disableAllDates?[e.context.displayDateMin]:[]),e.context.disableDates.length>1&&e.context.disableDates.sort((e,t)=>+new Date(e)-+new Date(t)),setContext(e,"enableDates",e.enableDates[0]?parseDates(e.enableDates):[]),(null==(t=e.context.enableDates)?void 0:t[0])&&(null==(n=e.context.disableDates)?void 0:n[0])&&setContext(e,"disableDates",e.context.disableDates.filter(t=>!e.context.enableDates.includes(t))),e.context.enableDates.length>1&&e.context.enableDates.sort((e,t)=>+new Date(e)-+new Date(t)),(null==(s=e.context.enableDates)?void 0:s[0])&&e.disableAllDates&&(setContext(e,"displayDateMin",e.context.enableDates[0]),setContext(e,"displayDateMax",e.context.enableDates[e.context.enableDates.length-1])),setContext(e,"dateMin",e.displayDisabledDates?i:e.context.displayDateMin),setContext(e,"dateMax",e.displayDisabledDates?o:e.context.displayDateMax)},initSelectedDates=e=>{var t;setContext(e,"selectedDates",(null==(t=e.selectedDates)?void 0:t[0])?parseDates(e.selectedDates):[])},displayClosestValidDate=e=>{const t=t=>{const n=new Date(t);setInitialContext(e,n.getMonth(),n.getFullYear())};if(e.displayDateMin&&"today"!==e.displayDateMin&&(n=e.displayDateMin,s=new Date,new Date(n).getTime()>s.getTime())){const n=e.selectedDates.length&&e.selectedDates[0]?parseDates(e.selectedDates)[0]:e.displayDateMin;return t(getDate(resolveDate(n,e.displayDateMin))),!0}var n,s;if(e.displayDateMax&&"today"!==e.displayDateMax&&((e,t)=>new Date(e).getTime()<t.getTime())(e.displayDateMax,new Date)){const n=e.selectedDates.length&&e.selectedDates[0]?parseDates(e.selectedDates)[0]:e.displayDateMax;return t(getDate(resolveDate(n,e.displayDateMax))),!0}return!1},setInitialContext=(e,t,n)=>{setContext(e,"selectedMonth",t),setContext(e,"selectedYear",n),setContext(e,"displayYear",n)},initSelectedMonthYear=e=>{var t;if(e.enableJumpToSelectedDate&&(null==(t=e.selectedDates)?void 0:t[0])&&void 0===e.selectedMonth&&void 0===e.selectedYear){const t=getDate(parseDates(e.selectedDates)[0]);return void setInitialContext(e,t.getMonth(),t.getFullYear())}if(displayClosestValidDate(e))return;const n=void 0!==e.selectedMonth&&Number(e.selectedMonth)>=0&&Number(e.selectedMonth)<12,s=void 0!==e.selectedYear&&Number(e.selectedYear)>=0&&Number(e.selectedYear)<=9999;setInitialContext(e,n?Number(e.selectedMonth):getDate(e.context.dateToday).getMonth(),s?Number(e.selectedYear):getDate(e.context.dateToday).getFullYear())},initTime=e=>{var t,n,s;if(!e.selectionTimeMode)return;if(![12,24].includes(e.selectionTimeMode))throw new Error(errorMessages.incorrectTime);const i=12===e.selectionTimeMode,o=i?/^(0[1-9]|1[0-2]):([0-5][0-9]) ?(AM|PM)?$/i:/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/;let[a,l,r]=null!=(s=null==(n=null==(t=e.selectedTime)?void 0:t.match(o))?void 0:n.slice(1))?s:[];a?i&&!r&&(r="AM"):(a=i?transformTime12(String(e.timeMinHour)):String(e.timeMinHour),l=String(e.timeMinMinute),r=i?Number(transformTime12(String(e.timeMinHour)))>=12?"PM":"AM":null),setContext(e,"selectedHours",a.padStart(2,"0")),setContext(e,"selectedMinutes",l.padStart(2,"0")),setContext(e,"selectedKeeping",r),setContext(e,"selectedTime",`${e.context.selectedHours}:${e.context.selectedMinutes}${r?` ${r}`:""}`)},initAllVariables=e=>{setContext(e,"currentType",e.type),initMonthsCount(e),initRange(e),initSelectedMonthYear(e),initSelectedDates(e),initTime(e)},reset=(e,{year:t,month:n,dates:s,time:i,locale:o},a=!0)=>{var l;const r={year:e.selectedYear,month:e.selectedMonth,dates:e.selectedDates,time:e.selectedTime};e.selectedYear=t?r.year:e.context.selectedYear,e.selectedMonth=n?r.month:e.context.selectedMonth,e.selectedTime=i?r.time:e.context.selectedTime,e.selectedDates="only-first"===s&&(null==(l=e.context.selectedDates)?void 0:l[0])?[e.context.selectedDates[0]]:!0===s?r.dates:e.context.selectedDates,o&&setContext(e,"locale",{months:{short:[],long:[]},weekdays:{short:[],long:[]}}),initAllVariables(e),a&&create(e),e.selectedYear=r.year,e.selectedMonth=r.month,e.selectedDates=r.dates,e.selectedTime=r.time,"multiple-ranged"===e.selectionDatesMode&&s&&handleSelectDateRange(e,null)},createToInput=e=>{const t=document.createElement("div");return t.className=e.styles.calendar,t.dataset.vc="calendar",t.dataset.vcInput="",t.dataset.vcCalendarHidden="",setContext(e,"inputModeInit",!0),setContext(e,"isShowInInputMode",!1),setContext(e,"mainElement",t),document.body.appendChild(e.context.mainElement),reset(e,{year:!0,month:!0,dates:!0,time:!0,locale:!0}),setTimeout(()=>show(e)),e.onInit&&e.onInit(e),handleArrowKeys(e),handleClick(e)},canOpenOnFocus=e=>resolveToggle(e,e.openOnFocus),handleInput=e=>{setContext(e,"inputElement",e.context.mainElement);const t=()=>{e.context.inputModeInit?setTimeout(()=>show(e)):createToInput(e)};e.context.inputElement.addEventListener("click",t);const n="function"==typeof e.openOnFocus||!0===e.openOnFocus,s=()=>{shouldSkipOpenOnFocus(e)?clearSkipOpenOnFocus(e):canOpenOnFocus(e)&&t()};n&&e.context.inputElement.addEventListener("focus",s);const i=t=>{const n="Tab"===t.key&&!t.shiftKey,s=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(t.key);(n||s)&&(t=>{var n;if(!e.context.isShowInInputMode)return!1;if(document.activeElement!==e.context.inputElement)return!1;const s=e=>e.tabIndex>=0&&!e.hasAttribute("disabled")&&"true"!==e.getAttribute("aria-disabled"),i=null!=(n=document.createTreeWalker(e.context.mainElement,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>s(e)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}).nextNode())?n:s(e.context.mainElement)?e.context.mainElement:null;!i||i.tabIndex<0||(t.preventDefault(),i.focus())})(t)};return e.context.inputElement.addEventListener("keydown",i),()=>{e.context.inputElement.removeEventListener("click",t),n&&e.context.inputElement.removeEventListener("focus",s),e.context.inputElement.removeEventListener("keydown",i)}},init=e=>(setContext(e,"originalElement",e.context.mainElement.cloneNode(!0)),setContext(e,"isInit",!0),e.inputMode?handleInput(e):(initAllVariables(e),create(e),e.onInit&&e.onInit(e),handleArrowKeys(e),handleClick(e))),update=(e,t)=>{if(!e.context.isInit)throw new Error(errorMessages.notInit);reset(e,__spreadValues(__spreadValues({},{year:!0,month:!0,dates:!0,time:!0,locale:!0}),t),!(e.inputMode&&!e.context.inputModeInit)),e.onUpdate&&e.onUpdate(e)},replaceProperties=(e,t)=>{const n=Object.keys(t);for(let s=0;s<n.length;s++){const i=n[s];"object"!=typeof e[i]||"object"!=typeof t[i]||t[i]instanceof Date||Array.isArray(t[i])?void 0!==t[i]&&(e[i]=t[i]):replaceProperties(e[i],t[i])}},set=(e,t,n)=>{replaceProperties(e,t),e.context.isInit&&update(e,n)};function findBestPickerPosition(e,t){const n="left";if(!t||!e)return n;const{canShow:s,parentPositions:i}=getAvailablePosition(e,t),o=s.left&&s.right;return(o&&s.bottom?"center":o&&s.top?["top","center"]:Array.isArray(i)?["bottom"===i[0]?"top":"bottom",...i.slice(1)]:i)||n}const setPosition=(e,t,n)=>{if(!e)return;const s="auto"===n?findBestPickerPosition(e,t):n,i={top:-t.offsetHeight,bottom:e.offsetHeight,left:0,center:e.offsetWidth/2-t.offsetWidth/2,right:e.offsetWidth-t.offsetWidth},o=Array.isArray(s)?s[0]:"bottom",a=Array.isArray(s)?s[1]:s;t.dataset.vcPosition=o;const{top:l,left:r}=getOffset(e),c=l+i[o];let d=r+i[a];const{vw:u}=getViewportDimensions();if(d+t.clientWidth>u){const e=window.innerWidth-document.body.clientWidth;d=u-t.clientWidth-e}else d<0&&(d=0);Object.assign(t.style,{left:`${d}px`,top:`${c}px`})},show=e=>{if(e.context.isShowInInputMode)return;if(!e.context.currentType)return void e.context.mainElement.click();setContext(e,"cleanupHandlers",[]),setContext(e,"isShowInInputMode",!0),e.inputMode&&restoreTabbing(e.context.mainElement),setPosition(e.context.inputElement,e.context.mainElement,e.positionToInput),e.context.mainElement.removeAttribute("data-vc-calendar-hidden");const t=()=>{setPosition(e.context.inputElement,e.context.mainElement,e.positionToInput)};window.addEventListener("resize",t),e.context.cleanupHandlers.push(()=>window.removeEventListener("resize",t));const n=t=>{"Escape"===t.key&&hide(e)};document.addEventListener("keydown",n),e.context.cleanupHandlers.push(()=>document.removeEventListener("keydown",n));const s=t=>{t.target===e.context.inputElement||e.context.mainElement.contains(t.target)||hide(e)};document.addEventListener("click",s,{capture:!0}),e.context.cleanupHandlers.push(()=>document.removeEventListener("click",s,{capture:!0})),e.onShow&&e.onShow(e)},labels={application:"Calendar",navigation:"Calendar Navigation",arrowNext:{month:"Next month",year:"Next list of years"},arrowPrev:{month:"Previous month",year:"Previous list of years"},month:"Select month, current selected month:",months:"List of months",year:"Select year, current selected year:",years:"List of years",week:"Days of the week",weekNumber:"Numbers of weeks in a year",dates:"Dates in the current month",selectingTime:"Selecting a time ",inputHour:"Hours",inputMinute:"Minutes",rangeHour:"Slider for selecting hours",rangeMinute:"Slider for selecting minutes",btnKeeping:"Switch AM/PM, current position:"},styles={calendar:"vc",controls:"vc-controls",grid:"vc-grid",column:"vc-column",header:"vc-header",headerContent:"vc-header__content",month:"vc-month",year:"vc-year",arrowPrev:"vc-arrow vc-arrow_prev",arrowNext:"vc-arrow vc-arrow_next",wrapper:"vc-wrapper",content:"vc-content",months:"vc-months",monthsMonth:"vc-months__month",years:"vc-years",yearsYear:"vc-years__year",week:"vc-week",weekDay:"vc-week__day",weekNumbers:"vc-week-numbers",weekNumbersTitle:"vc-week-numbers__title",weekNumbersContent:"vc-week-numbers__content",weekNumber:"vc-week-number",dates:"vc-dates",datesRow:"vc-dates__row",date:"vc-date",dateBtn:"vc-date__btn",datePopup:"vc-date__popup",dateRangeTooltip:"vc-date-range-tooltip",time:"vc-time",timeContent:"vc-time__content",timeHour:"vc-time__hour",timeMinute:"vc-time__minute",timeKeeping:"vc-time__keeping",timeRanges:"vc-time__ranges",timeRange:"vc-time__range"};class OptionsCalendar{constructor(){__publicField(this,"type","default"),__publicField(this,"inputMode",!1),__publicField(this,"openOnFocus",!0),__publicField(this,"positionToInput","left"),__publicField(this,"firstWeekday",1),__publicField(this,"monthsToSwitch",1),__publicField(this,"themeAttrDetect","html[data-theme]"),__publicField(this,"locale","en"),__publicField(this,"dateToday","today"),__publicField(this,"dateMin","1970-01-01"),__publicField(this,"dateMax","2470-12-31"),__publicField(this,"displayDateMin"),__publicField(this,"displayDateMax"),__publicField(this,"displayDatesOutside",!0),__publicField(this,"displayDisabledDates",!1),__publicField(this,"displayMonthsCount"),__publicField(this,"disableDates",[]),__publicField(this,"disableAllDates",!1),__publicField(this,"disableDatesPast",!1),__publicField(this,"disableDatesGaps",!1),__publicField(this,"disableWeekdays",[]),__publicField(this,"disableToday",!1),__publicField(this,"enableDates",[]),__publicField(this,"enableEdgeDatesOnly",!0),__publicField(this,"enableDateToggle",!0),__publicField(this,"enableWeekNumbers",!1),__publicField(this,"enableMonthChangeOnDayClick",!0),__publicField(this,"enableJumpToSelectedDate",!1),__publicField(this,"selectionDatesMode","single"),__publicField(this,"selectionMonthsMode",!0),__publicField(this,"selectionYearsMode",!0),__publicField(this,"selectionTimeMode",!1),__publicField(this,"selectedDates",[]),__publicField(this,"selectedMonth"),__publicField(this,"selectedYear"),__publicField(this,"selectedHolidays",[]),__publicField(this,"selectedWeekends",[0,6]),__publicField(this,"selectedTime"),__publicField(this,"selectedTheme","system"),__publicField(this,"timeMinHour",0),__publicField(this,"timeMaxHour",23),__publicField(this,"timeMinMinute",0),__publicField(this,"timeMaxMinute",59),__publicField(this,"timeControls","all"),__publicField(this,"timeStepHour",1),__publicField(this,"timeStepMinute",1),__publicField(this,"sanitizerHTML",e=>e),__publicField(this,"onClickDate"),__publicField(this,"onClickWeekDay"),__publicField(this,"onClickWeekNumber"),__publicField(this,"onClickTitle"),__publicField(this,"onClickMonth"),__publicField(this,"onClickYear"),__publicField(this,"onClickArrow"),__publicField(this,"onChangeTime"),__publicField(this,"onChangeToInput"),__publicField(this,"onCreateDateRangeTooltip"),__publicField(this,"onCreateDateEls"),__publicField(this,"onCreateMonthEls"),__publicField(this,"onCreateYearEls"),__publicField(this,"onInit"),__publicField(this,"onUpdate"),__publicField(this,"onDestroy"),__publicField(this,"onShow"),__publicField(this,"onHide"),__publicField(this,"popups",{}),__publicField(this,"labels",__spreadValues({},labels)),__publicField(this,"layouts",{default:"",multiple:"",month:"",year:""}),__publicField(this,"styles",__spreadValues({},styles))}}const _Calendar=class e extends OptionsCalendar{constructor(t,n){var s;super(),__publicField(this,"init",()=>init(this)),__publicField(this,"update",e=>update(this,e)),__publicField(this,"destroy",()=>destroy(this)),__publicField(this,"show",()=>show(this)),__publicField(this,"hide",()=>hide(this)),__publicField(this,"set",(e,t)=>set(this,e,t)),__publicField(this,"context"),this.context=__spreadProps(__spreadValues({},this.context),{locale:{months:{short:[],long:[]},weekdays:{short:[],long:[]}}}),setContext(this,"mainElement","string"==typeof t?null!=(s=e.memoizedElements.get(t))?s:this.queryAndMemoize(t):t),n&&replaceProperties(this,n)}queryAndMemoize(t){const n=document.querySelector(t);if(!n)throw new Error(errorMessages.notFoundSelector(t));return e.memoizedElements.set(t,n),n}};__publicField(_Calendar,"memoizedElements",new Map);let Calendar=_Calendar;const NAME$e="datepicker",DATA_KEY$a="bs.datepicker",EVENT_KEY$b=`.${DATA_KEY$a}`,DATA_API_KEY$6=".data-api",EVENT_CHANGE$1=`change${EVENT_KEY$b}`,EVENT_SHOW$4=`show${EVENT_KEY$b}`,EVENT_SHOWN$3=`shown${EVENT_KEY$b}`,EVENT_HIDE$3=`hide${EVENT_KEY$b}`,EVENT_HIDDEN$5=`hidden${EVENT_KEY$b}`,EVENT_CLICK_DATA_API$3=`click${EVENT_KEY$b}.data-api`,EVENT_FOCUSIN_DATA_API=`focusin${EVENT_KEY$b}.data-api`,SELECTOR_DATA_TOGGLE$6='[data-bs-toggle="datepicker"]',HIDE_DELAY=100,Default$d={datepickerTheme:null,dateMin:null,dateMax:null,dateFormat:null,displayElement:null,displayMonthsCount:1,firstWeekday:1,inline:!1,locale:"default",positionElement:null,selectedDates:[],selectionMode:"single",placement:"left",vcpOptions:{}},DefaultType$d={datepickerTheme:"(null|string)",dateMin:"(null|string|number|object)",dateMax:"(null|string|number|object)",dateFormat:"(null|object|function)",displayElement:"(null|string|element|boolean)",displayMonthsCount:"number",firstWeekday:"number",inline:"boolean",locale:"string",positionElement:"(null|string|element)",selectedDates:"array",selectionMode:"string",placement:"string",vcpOptions:"object"};class Datepicker extends BaseComponent{constructor(e,t){super(e,t),this._calendar=null,this._isShown=!1,this._initCalendar()}static get Default(){return Default$d}static get DefaultType(){return DefaultType$d}static get NAME(){return NAME$e}toggle(){if(!this._config.inline)return this._isShown?this.hide():this.show()}show(){this._config.inline||!this._calendar||isDisabled(this._element)||this._isShown||EventHandler.trigger(this._element,EVENT_SHOW$4).defaultPrevented||(this._calendar.show(),this._isShown=!0,EventHandler.trigger(this._element,EVENT_SHOWN$3))}hide(){this._config.inline||this._calendar&&this._isShown&&(EventHandler.trigger(this._element,EVENT_HIDE$3).defaultPrevented||(this._calendar.hide(),this._isShown=!1,EventHandler.trigger(this._element,EVENT_HIDDEN$5)))}dispose(){this._themeObserver&&(this._themeObserver.disconnect(),this._themeObserver=null),this._calendar&&this._calendar.destroy(),this._calendar=null,super.dispose()}getSelectedDates(){const e=this._calendar?.context?.selectedDates;return e?[...e]:[]}setSelectedDates(e){this._calendar&&this._calendar.set({selectedDates:e})}_initCalendar(){this._isInput="INPUT"===this._element.tagName,this._isInline=this._config.inline,this._isInline&&!this._isInput&&(this._boundInput=this._element.querySelector('input[type="hidden"], input[name]')),this._positionElement=this._resolvePositionElement(),this._displayElement=this._resolveDisplayElement();const e=this._buildCalendarOptions();this._calendar=new Calendar(this._positionElement,e),this._calendar.init(),this._setupThemeObserver(),this._isInput&&this._element.value&&this._parseInputValue(),this._updateDisplayWithSelectedDates()}_updateDisplayWithSelectedDates(){const{selectedDates:e}=this._config;if(!e||0===e.length)return;const t=this._formatDateForInput(e);this._isInput&&(this._element.value=t),this._boundInput&&(this._boundInput.value=e.join(",")),this._displayElement&&(this._displayElement.textContent=t)}_resolvePositionElement(){let{positionElement:e}=this._config;if("string"==typeof e&&(e=document.querySelector(e)),!e&&this._isInput&&!this._isInline){const t=this._element.closest(".form-adorn");t&&(e=t)}return e||this._element}_resolveDisplayElement(){const{displayElement:e}=this._config;return"string"==typeof e?document.querySelector(e):!0===e||null===e&&!this._isInput&&!this._isInline?this._element.querySelector("[data-bs-datepicker-display]")||this._element:e}_getThemeAncestor(){return this._element.closest("[data-bs-theme]")}_getEffectiveTheme(){const{datepickerTheme:e}=this._config;if(e)return e;const t=this._getThemeAncestor();return t?.getAttribute("data-bs-theme")||null}_syncThemeAttribute(e){if(!e)return;const t=this._getEffectiveTheme();t?e.setAttribute("data-bs-theme",t):e.removeAttribute("data-bs-theme")}_setupThemeObserver(){const e=this._getThemeAncestor();e&&!this._config.datepickerTheme&&(this._themeObserver=new MutationObserver(()=>{this._syncThemeAttribute(this._calendar?.context?.mainElement)}),this._themeObserver.observe(e,{attributes:!0,attributeFilter:["data-bs-theme"]}))}_buildCalendarOptions(){const e=this._getEffectiveTheme(),t=e&&"auto"!==e?e:"system",n={...this._config.vcpOptions,inputMode:!this._isInline,positionToInput:this._config.placement,firstWeekday:this._config.firstWeekday,locale:this._config.locale,selectionDatesMode:this._config.selectionMode,selectedDates:this._config.selectedDates,displayMonthsCount:this._config.displayMonthsCount,type:this._config.displayMonthsCount>1?"multiple":"default",selectedTheme:t,themeAttrDetect:"[data-bs-theme]",onClickDate:(e,t)=>this._handleDateClick(e,t),onInit:e=>{this._syncThemeAttribute(e.context.mainElement)},onShow:()=>{this._isShown=!0,this._syncThemeAttribute(this._calendar.context.mainElement)},onHide:()=>{this._isShown=!1}};if(this._config.selectedDates.length>0){const e=this._parseDate(this._config.selectedDates[0]);n.selectedMonth=e.getMonth(),n.selectedYear=e.getFullYear()}return this._config.dateMin&&(n.dateMin=this._config.dateMin),this._config.dateMax&&(n.dateMax=this._config.dateMax),n}_handleDateClick(e,t){const n=[...e.context.selectedDates];if(n.length>0){const e=this._formatDateForInput(n);this._isInput&&(this._element.value=e),this._boundInput&&(this._boundInput.value=n.join(",")),this._displayElement&&(this._displayElement.textContent=e)}EventHandler.trigger(this._element,EVENT_CHANGE$1,{dates:n,event:t}),this._maybeHideAfterSelection(n)}_maybeHideAfterSelection(e){this._isInline||("single"===this._config.selectionMode&&e.length>0||"multiple-ranged"===this._config.selectionMode&&e.length>=2)&&setTimeout(()=>this.hide(),100)}_parseDate(e){const[t,n,s]=e.split("-");return new Date(t,n-1,s)}_formatDate(e){const t=this._parseDate(e),n="default"===this._config.locale?void 0:this._config.locale,{dateFormat:s}=this._config;return"function"==typeof s?s(t,n):s&&"object"==typeof s?new Intl.DateTimeFormat(n,s).format(t):t.toLocaleDateString(n)}_formatDateForInput(e){if(0===e.length)return"";if(1===e.length)return this._formatDate(e[0]);const t="multiple-ranged"===this._config.selectionMode?" – ":", ";return e.map(e=>this._formatDate(e)).join(t)}_parseInputValue(){const e=this._element.value.trim();if(!e)return;const t=new Date(e);if(!Number.isNaN(t.getTime())){const e=`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`;this._calendar.set({selectedDates:[e]})}}}EventHandler.on(document,EVENT_CLICK_DATA_API$3,SELECTOR_DATA_TOGGLE$6,function(e){"INPUT"!==this.tagName&&"true"!==this.dataset.bsInline&&(e.preventDefault(),Datepicker.getOrCreateInstance(this).toggle())}),EventHandler.on(document,EVENT_FOCUSIN_DATA_API,SELECTOR_DATA_TOGGLE$6,function(){"INPUT"===this.tagName&&Datepicker.getOrCreateInstance(this).show()}),EventHandler.on(document,`DOMContentLoaded${EVENT_KEY$b}.data-api`,()=>{for(const e of document.querySelectorAll(`${SELECTOR_DATA_TOGGLE$6}[data-bs-inline="true"]`))Datepicker.getOrCreateInstance(e)});const CLASS_NAME_OPEN="dialog-open";class DialogBase extends BaseComponent{constructor(e,t){super(e,t),this._isTransitioning=!1,this._openedAsModal=!1,this._addDialogListeners()}static get NAME(){return"dialogbase"}toggle(e){return this._element.open?this.hide():this.show(e)}show(e){if(this._element.open||this._isTransitioning)return;if(EventHandler.trigger(this._element,this.constructor.eventName("show"),{relatedTarget:e}).defaultPrevented)return;this._isTransitioning=!0,this._onBeforeShow();const{modal:t,preventBodyScroll:n}=this._getShowOptions();this._showElement({modal:t,preventBodyScroll:n}),this._queueCallback(()=>{this._isTransitioning=!1,EventHandler.trigger(this._element,this.constructor.eventName("shown"),{relatedTarget:e})},this._element,this._isAnimated())}hide(){this._element.open&&!this._isTransitioning&&(EventHandler.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented||(this._isTransitioning=!0,this._hideElement(),this._queueCallback(()=>{this._element.open&&this._closeAndCleanup(),this._element.classList.remove("hiding"),this._onAfterHide(),this._isTransitioning=!1,EventHandler.trigger(this._element,this.constructor.eventName("hidden"))},this._element,this._isAnimated())))}_getShowOptions(){return{modal:!0,preventBodyScroll:!0}}_onBeforeShow(){}_onAfterHide(){}_isAnimated(){return!this._element.classList.contains(this._getInstantClassName())}_getInstantClassName(){return"dialog-instant"}_getStaticClassName(){return"dialog-static"}_onCancel(){}_showElement({modal:e=!0,preventBodyScroll:t=!0}={}){this._openedAsModal=e,e?this._element.showModal():this._element.show(),t&&document.body.classList.add("dialog-open")}_hideElement(){this._hideChildComponents(),this._element.classList.add("hiding"),this._shouldDeferClose()||this._closeAndCleanup()}_closeAndCleanup(){this._element.close(),this._openedAsModal=!1,document.querySelector("dialog[open]:modal")||document.body.classList.remove("dialog-open")}_shouldDeferClose(){return!1}_triggerBackdropTransition(){if(EventHandler.trigger(this._element,this.constructor.eventName("hidePrevented")).defaultPrevented)return;const e=this._getStaticClassName();this._element.classList.add(e),this._queueCallback(()=>{this._element.classList.remove(e)},this._element)}_hideChildComponents(){for(const e of SelectorEngine.find('[data-bs-toggle="tooltip"], [data-bs-toggle="popover"]',this._element)){const t=Data.getAny(e);t&&"function"==typeof t.hide&&t.hide()}for(const e of SelectorEngine.find(".toast.show",this._element)){const t=Data.getAny(e);t&&"function"==typeof t.hide&&t.hide()}}_addDialogListeners(){const e=this.constructor.EVENT_KEY;EventHandler.on(this._element,"cancel",e=>{e.preventDefault(),this._config.keyboard?(this._onCancel(),this.hide()):this._triggerBackdropTransition()}),EventHandler.on(this._element,`keydown${e}`,e=>{"Escape"!==e.key||this._openedAsModal||(e.preventDefault(),this._config.keyboard&&(this._onCancel(),this.hide()))}),EventHandler.on(this._element,`click${e}`,e=>{e.target===this._element&&this._openedAsModal&&("static"!==this._config.backdrop?this.hide():this._triggerBackdropTransition())})}}const NAME$d="dialog",DATA_KEY$9="bs.dialog",EVENT_KEY$a=`.${DATA_KEY$9}`,DATA_API_KEY$5=".data-api",EVENT_SHOW$3=`show${EVENT_KEY$a}`,EVENT_HIDDEN$4=`hidden${EVENT_KEY$a}`,EVENT_CANCEL=`cancel${EVENT_KEY$a}`,EVENT_CLICK_DATA_API$2=`click${EVENT_KEY$a}.data-api`,CLASS_NAME_NONMODAL="dialog-nonmodal",CLASS_NAME_INSTANT="dialog-instant",CLASS_NAME_SWAP_IN="dialog-swap-in",SELECTOR_DATA_TOGGLE$5='[data-bs-toggle="dialog"]',Default$c={backdrop:!0,keyboard:!0,modal:!0},DefaultType$c={backdrop:"(boolean|string)",keyboard:"boolean",modal:"boolean"};class Dialog extends DialogBase{static get Default(){return Default$c}static get DefaultType(){return DefaultType$c}static get NAME(){return NAME$d}handleUpdate(){}_getShowOptions(){return{modal:this._config.modal,preventBodyScroll:this._config.modal}}_onBeforeShow(){this._config.modal||this._element.classList.add("dialog-nonmodal")}_onAfterHide(){this._element.classList.remove("dialog-nonmodal")}_shouldDeferClose(){return this._isAnimated()}_onCancel(){EventHandler.trigger(this._element,EVENT_CANCEL)}}EventHandler.on(document,EVENT_CLICK_DATA_API$2,SELECTOR_DATA_TOGGLE$5,function(e){const t=SelectorEngine.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&e.preventDefault(),EventHandler.one(t,EVENT_SHOW$3,e=>{e.defaultPrevented||EventHandler.one(t,EVENT_HIDDEN$4,()=>{isVisible(this)&&this.focus()})});const n=Manipulator.getDataAttributes(this),s=this.closest("dialog[open]");if(s&&s!==t){const e=Dialog.getOrCreateInstance(t,n);t.classList.add("dialog-swap-in"),e.show(this),EventHandler.one(t,`shown${EVENT_KEY$a}`,()=>{t.classList.remove("dialog-swap-in")});const i=Dialog.getInstance(s);return void(i&&(s.classList.add("dialog-instant"),EventHandler.one(s,EVENT_HIDDEN$4,()=>{s.classList.remove("dialog-instant")}),i.hide()))}Dialog.getOrCreateInstance(t,n).toggle(this)}),enableDismissTrigger(Dialog);const NAME$c="navoverflow",DATA_KEY$8="bs.navoverflow",EVENT_KEY$9=`.${DATA_KEY$8}`,EVENT_UPDATE=`update${EVENT_KEY$9}`,EVENT_OVERFLOW=`overflow${EVENT_KEY$9}`,CLASS_NAME_OVERFLOW="nav-overflow",CLASS_NAME_OVERFLOW_MENU="nav-overflow-menu",CLASS_NAME_HIDDEN="d-none",SELECTOR_NAV_ITEM=".nav-item",SELECTOR_NAV_LINK=".nav-link",SELECTOR_OVERFLOW_TOGGLE=".nav-overflow-toggle",SELECTOR_OVERFLOW_MENU=".nav-overflow-menu",SELECTOR_CUSTOM_ICON="[data-bs-overflow-icon]",CLASS_NAME_KEEP="nav-overflow-keep",Default$b={collapseBelow:0,iconPlacement:"start",menuPlacement:"bottom-end",moreText:"More",moreIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3"/></svg>',threshold:0},DefaultType$b={collapseBelow:"(number|string)",iconPlacement:"string",menuPlacement:"string",moreText:"string",moreIcon:"string",threshold:"number"};class NavOverflow extends BaseComponent{constructor(e,t){super(e,t),this._items=[],this._overflowItems=[],this._overflowMenu=null,this._overflowToggle=null,this._resizeObserver=null,this._collapseBelow=0,this._isInitialized=!1,this._init()}static get Default(){return Default$b}static get DefaultType(){return DefaultType$b}static get NAME(){return NAME$c}update(){this._calculateOverflow(),EventHandler.trigger(this._element,EVENT_UPDATE)}dispose(){this._resizeObserver&&this._resizeObserver.disconnect(),this._restoreItems(),this._overflowToggle&&this._overflowToggle.parentElement&&this._overflowToggle.parentElement.remove(),super.dispose()}_init(){this._element.classList.add("nav-overflow"),this._items=[...SelectorEngine.find(".nav-item",this._element)];for(const[e,t]of this._items.entries())t.dataset.bsNavOrder=e;this._collapseBelow=this._resolveCollapseBelow(),this._createOverflowMenu(),this._setupResizeObserver(),this._calculateOverflow(),this._isInitialized=!0}_createOverflowMenu(){if(this._overflowToggle=SelectorEngine.findOne(".nav-overflow-toggle",this._element),this._overflowToggle)return void(this._overflowMenu=SelectorEngine.findOne(".nav-overflow-menu",this._element));const e=`<span class="nav-overflow-icon">${this._resolveIcon()}</span>`,t=`<span class="nav-overflow-text">${this._config.moreText}</span>`,n="end"===this._config.iconPlacement?`${t}${e}`:`${e}${t}`,s=document.createElement("li");s.className="nav-item nav-overflow-item",s.innerHTML=`\n <button class="nav-link nav-overflow-toggle" type="button" data-bs-toggle="menu" data-bs-placement="${this._config.menuPlacement}" aria-expanded="false">\n ${n}\n </button>\n <div class="nav-overflow-menu menu"></div>\n `,this._element.append(s),this._overflowToggle=s.querySelector(".nav-overflow-toggle"),this._overflowMenu=s.querySelector(".nav-overflow-menu")}_resolveIcon(){const e=SelectorEngine.findOne(SELECTOR_CUSTOM_ICON,this._element);if(!e)return this._config.moreIcon;const t=e.cloneNode(!0);t.removeAttribute("data-bs-overflow-icon");const n=t.outerHTML;return e.remove(),n}_resolveCollapseBelow(){const e=this._config.collapseBelow;if("number"==typeof e)return e;if("string"==typeof e&&""!==e){const t=getComputedStyle(document.documentElement).getPropertyValue(`--bs-breakpoint-${e}`);return Number.parseFloat(t)||0}return 0}_setupResizeObserver(){"undefined"!=typeof ResizeObserver?(this._resizeObserver=new ResizeObserver(()=>{this._calculateOverflow()}),this._resizeObserver.observe(this._element)):EventHandler.on(window,"resize",()=>this._calculateOverflow())}_calculateOverflow(){this._restoreItems();const e=this._element.offsetWidth,t=this._overflowToggle?.closest(".nav-item");if(this._collapseBelow>0&&e<this._collapseBelow){const e=this._items.filter(e=>!e.classList.contains(CLASS_NAME_KEEP));return this._moveToOverflow(e),t&&(e.length>0?t.classList.remove("d-none"):t.classList.add("d-none")),void(e.length>0&&EventHandler.trigger(this._element,EVENT_OVERFLOW,{overflowCount:e.length,visibleCount:this._items.length-e.length}))}let n=0;const s=[],i=e-(t?.offsetWidth||0)-this._items.filter(e=>e.classList.contains(CLASS_NAME_KEEP)).reduce((e,t)=>e+t.offsetWidth,0)-10;for(const e of this._items)e.classList.contains(CLASS_NAME_KEEP)||(n+=e.offsetWidth,n>i&&s.push(e));if(this._items.length-s.length<this._config.threshold&&this._items.length>this._config.threshold){const e=this._items.slice(this._config.threshold).filter(e=>!e.classList.contains(CLASS_NAME_KEEP));s.length=0,s.push(...e)}this._moveToOverflow(s),t&&(s.length>0?t.classList.remove("d-none"):t.classList.add("d-none")),s.length>0&&EventHandler.trigger(this._element,EVENT_OVERFLOW,{overflowCount:s.length,visibleCount:this._items.length-s.length})}_moveToOverflow(e){if(this._overflowMenu){this._overflowMenu.innerHTML="",this._overflowItems=[];for(const t of e){const e=SelectorEngine.findOne(".nav-link",t);if(!e)continue;const n=e.cloneNode(!0);n.className="menu-item",e.classList.contains("active")&&n.classList.add("active"),(e.classList.contains("disabled")||e.hasAttribute("disabled"))&&n.classList.add("disabled"),this._overflowMenu.append(n),t.classList.add("d-none"),t.dataset.bsNavOverflow="true",this._overflowItems.push(t)}}}_restoreItems(){for(const e of this._items)e.classList.remove("d-none"),delete e.dataset.bsNavOverflow;this._overflowMenu&&(this._overflowMenu.innerHTML=""),this._overflowItems=[]}}EventHandler.on(document,"DOMContentLoaded",()=>{for(const e of SelectorEngine.find('[data-bs-toggle="nav-overflow"]'))NavOverflow.getOrCreateInstance(e)});const NAME$b="swipe",EVENT_KEY$8=".bs.swipe",EVENT_TOUCHSTART="touchstart.bs.swipe",EVENT_TOUCHMOVE="touchmove.bs.swipe",EVENT_TOUCHEND="touchend.bs.swipe",EVENT_POINTERDOWN="pointerdown.bs.swipe",EVENT_POINTERUP="pointerup.bs.swipe",POINTER_TYPE_TOUCH="touch",POINTER_TYPE_PEN="pen",CLASS_NAME_POINTER_EVENT="pointer-event",SWIPE_THRESHOLD=40,Default$a={endCallback:null,leftCallback:null,rightCallback:null,upCallback:null,downCallback:null},DefaultType$a={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)",upCallback:"(function|null)",downCallback:"(function|null)"};class Swipe extends Config{constructor(e,t){super(),this._element=e,e&&Swipe.isSupported()&&(this._config=this._getConfig(t),this._deltaX=0,this._deltaY=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Default$a}static get DefaultType(){return DefaultType$a}static get NAME(){return NAME$b}dispose(){EventHandler.off(this._element,".bs.swipe")}_start(e){if(!this._supportPointerEvents)return this._deltaX=e.touches[0].clientX,void(this._deltaY=e.touches[0].clientY);this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX,this._deltaY=e.clientY)}_end(e){this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX-this._deltaX,this._deltaY=e.clientY-this._deltaY),this._handleSwipe(),execute(this._config.endCallback)}_move(e){if(e.touches&&e.touches.length>1)return this._deltaX=0,void(this._deltaY=0);this._deltaX=e.touches[0].clientX-this._deltaX,this._deltaY=e.touches[0].clientY-this._deltaY}_handleSwipe(){const e=Math.abs(this._deltaX),t=Math.abs(this._deltaY);if(t>e&&t>40){const e=this._deltaY>0?"down":"up";return this._deltaX=0,this._deltaY=0,void execute("down"===e?this._config.downCallback:this._config.upCallback)}if(e>40){const t=e/this._deltaX;if(this._deltaX=0,this._deltaY=0,!t)return;return void execute(t>0?this._config.rightCallback:this._config.leftCallback)}this._deltaX=0,this._deltaY=0}_initEvents(){this._supportPointerEvents?(EventHandler.on(this._element,EVENT_POINTERDOWN,e=>this._start(e)),EventHandler.on(this._element,EVENT_POINTERUP,e=>this._end(e)),this._element.classList.add("pointer-event")):(EventHandler.on(this._element,EVENT_TOUCHSTART,e=>this._start(e)),EventHandler.on(this._element,EVENT_TOUCHMOVE,e=>this._move(e)),EventHandler.on(this._element,EVENT_TOUCHEND,e=>this._end(e)))}_eventIsPointerPenTouch(e){return this._supportPointerEvents&&("pen"===e.pointerType||"touch"===e.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const NAME$a="drawer",DATA_KEY$7="bs.drawer",EVENT_KEY$7=`.${DATA_KEY$7}`,DATA_API_KEY$4=".data-api",EVENT_LOAD_DATA_API$2=`load${EVENT_KEY$7}.data-api`,EVENT_HIDDEN$3=`hidden${EVENT_KEY$7}`,EVENT_RESIZE=`resize${EVENT_KEY$7}`,EVENT_CLICK_DATA_API$1=`click${EVENT_KEY$7}.data-api`,SELECTOR_DATA_TOGGLE$4='[data-bs-toggle="drawer"]',Default$9={backdrop:!0,keyboard:!0,scroll:!1},DefaultType$9={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Drawer extends DialogBase{constructor(e,t){super(e,t),this._swipeHelper=null}static get Default(){return Default$9}static get DefaultType(){return DefaultType$9}static get NAME(){return NAME$a}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_getShowOptions(){return{modal:Boolean(this._config.backdrop)||!this._config.scroll,preventBodyScroll:!this._config.scroll}}_onBeforeShow(){this._initSwipe()}_getInstantClassName(){return"drawer-instant"}_getStaticClassName(){return"drawer-static"}_initSwipe(){if(this._swipeHelper||!Swipe.isSupported())return;const e={},t=this._element;t.classList.contains("drawer-bottom")?e.downCallback=()=>this.hide():t.classList.contains("drawer-top")?e.upCallback=()=>this.hide():t.classList.contains("drawer-end")?isRTL$1()?e.leftCallback=()=>this.hide():e.rightCallback=()=>this.hide():isRTL$1()?e.rightCallback=()=>this.hide():e.leftCallback=()=>this.hide(),this._swipeHelper=new Swipe(t,e)}}EventHandler.on(document,EVENT_CLICK_DATA_API$1,SELECTOR_DATA_TOGGLE$4,function(e){const t=SelectorEngine.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),isDisabled(this))return;EventHandler.one(t,EVENT_HIDDEN$3,()=>{isVisible(this)&&this.focus()});const n=SelectorEngine.findOne("dialog.drawer[open]");n&&n!==t&&Drawer.getInstance(n).hide(),Drawer.getOrCreateInstance(t).toggle(this)}),EventHandler.on(window,EVENT_LOAD_DATA_API$2,()=>{for(const e of SelectorEngine.find("dialog.drawer[open]"))Drawer.getOrCreateInstance(e).show()}),EventHandler.on(window,EVENT_RESIZE,()=>{for(const e of SelectorEngine.find('dialog[open][class*="\\:drawer"]'))"fixed"!==getComputedStyle(e).position&&Drawer.getOrCreateInstance(e).hide()}),enableDismissTrigger(Drawer);const NAME$9="strength",DATA_KEY$6="bs.strength",EVENT_KEY$6=`.${DATA_KEY$6}`,DATA_API_KEY$3=".data-api",EVENT_STRENGTH_CHANGE=`strengthChange${EVENT_KEY$6}`,SELECTOR_DATA_STRENGTH="[data-bs-strength]",STRENGTH_LEVELS=["weak","fair","good","strong"],Default$8={input:null,minLength:8,messages:{weak:"Weak",fair:"Fair",good:"Good",strong:"Strong"},weights:{minLength:1,extraLength:1,lowercase:1,uppercase:1,numbers:1,special:1,multipleSpecial:1,longPassword:1},thresholds:[2,4,6],scorer:null},DefaultType$8={input:"(string|element|null)",minLength:"number",messages:"object",weights:"object",thresholds:"array",scorer:"(function|null)"};class Strength extends BaseComponent{constructor(e,t){super(e,t),this._input=this._getInput(),this._segments=SelectorEngine.find(".strength-segment",this._element),this._textElement=SelectorEngine.findOne(".strength-text",this._element.parentElement),this._currentStrength=null,this._input&&(this._addEventListeners(),this._evaluate())}static get Default(){return Default$8}static get DefaultType(){return DefaultType$8}static get NAME(){return NAME$9}getStrength(){return this._currentStrength}evaluate(){this._evaluate()}_getInput(){if(this._config.input)return"string"==typeof this._config.input?SelectorEngine.findOne(this._config.input):this._config.input;const e=this._element.parentElement;return SelectorEngine.findOne('input[type="password"]',e)}_addEventListeners(){EventHandler.on(this._input,"input",()=>this._evaluate()),EventHandler.on(this._input,"change",()=>this._evaluate())}_evaluate(){const e=this._input.value,t=this._calculateScore(e),n=this._scoreToStrength(t);n!==this._currentStrength&&(this._currentStrength=n,this._updateUI(n,t),EventHandler.trigger(this._element,EVENT_STRENGTH_CHANGE,{strength:n,score:t,password:e.length>0?"***":""}))}_calculateScore(e){if(!e)return 0;if("function"==typeof this._config.scorer)return this._config.scorer(e);const{weights:t}=this._config;let n=0;return e.length>=this._config.minLength&&(n+=t.minLength),e.length>=this._config.minLength+4&&(n+=t.extraLength),/[a-z]/.test(e)&&(n+=t.lowercase),/[A-Z]/.test(e)&&(n+=t.uppercase),/\d/.test(e)&&(n+=t.numbers),/[!@#$%^&*(),.?":{}|<>]/.test(e)&&(n+=t.special),/[!@#$%^&*(),.?":{}|<>].*[!@#$%^&*(),.?":{}|<>]/.test(e)&&(n+=t.multipleSpecial),e.length>=16&&(n+=t.longPassword),n}_scoreToStrength(e){if(0===e)return null;const[t,n,s]=this._config.thresholds;return e<=t?"weak":e<=n?"fair":e<=s?"good":"strong"}_updateUI(e){e?this._element.dataset.bsStrength=e:delete this._element.dataset.bsStrength;const t=e?STRENGTH_LEVELS.indexOf(e):-1;for(const[e,n]of this._segments.entries())e<=t?n.classList.add("active"):n.classList.remove("active");if(this._textElement)if(e&&this._config.messages[e]){this._textElement.textContent=this._config.messages[e],this._textElement.dataset.bsStrength=e;const t={weak:"danger",fair:"warning",good:"info",strong:"success"};this._textElement.style.setProperty("--strength-color",`var(--${t[e]}-text)`)}else this._textElement.textContent="",delete this._textElement.dataset.bsStrength}}EventHandler.on(document,`DOMContentLoaded${EVENT_KEY$6}.data-api`,()=>{for(const e of SelectorEngine.find("[data-bs-strength]"))Strength.getOrCreateInstance(e)});const NAME$8="otpInput",DATA_KEY$5="bs.otpInput",EVENT_KEY$5=`.${DATA_KEY$5}`,DATA_API_KEY$2=".data-api",EVENT_COMPLETE=`complete${EVENT_KEY$5}`,EVENT_INPUT=`input${EVENT_KEY$5}`,EVENT_DOMCONTENT_LOADED=`DOMContentLoaded${EVENT_KEY$5}.data-api`,SELECTOR_DATA_OTP="[data-bs-otp]",SELECTOR_INPUT="input",SYNC_EVENTS=["blur","keyup","click","select"],CLASS_NAME_INPUT="otp-input",CLASS_NAME_RENDERED="otp-rendered",CLASS_NAME_SLOTS="otp-slots",CLASS_NAME_SLOT="otp-slot",CLASS_NAME_SLOT_FILLED="otp-slot-filled",CLASS_NAME_SLOT_ACTIVE="otp-slot-active",CLASS_NAME_SEPARATOR="otp-separator",MASK_CHARACTER="•",TYPES={numeric:{inputmode:"numeric",pattern:"[0-9]*",filter:/[^0-9]/g},alphanumeric:{inputmode:"text",pattern:"[A-Za-z0-9]*",filter:/[^A-Za-z0-9]/g},alpha:{inputmode:"text",pattern:"[A-Za-z]*",filter:/[^A-Za-z]/g}},Default$7={groups:null,length:null,mask:!1,separator:"·",type:"numeric"},DefaultType$7={groups:"(array|null)",length:"(number|null)",mask:"boolean",separator:"string",type:"string"};class OtpInput extends BaseComponent{constructor(e,t){super(e,t),this._input=SelectorEngine.findOne("input",this._element),this._input&&(this._type=TYPES[this._config.type]||TYPES.numeric,this._length=this._resolveLength(),this._slots=[],this._setupInput(),this._renderSlots(),this._addEventListeners(),this._render())}static get Default(){return Default$7}static get DefaultType(){return DefaultType$7}static get NAME(){return NAME$8}getValue(){return this._input.value}setValue(e){this._input.value=this._sanitize(String(e)),this._render(),this._checkComplete()}clear(){this._input.value="",this._render(),this._input.focus()}focus(){this._input.focus();const e=this._input.value.length;this._input.setSelectionRange(e,e),this._render()}dispose(){EventHandler.off(this._input,"input",this._onInput),EventHandler.off(this._input,"focus",this._onFocus);for(const e of SYNC_EVENTS)EventHandler.off(this._input,e,this._onSync);this._slotsContainer?.remove(),this._element.classList.remove("otp-rendered"),super.dispose()}_resolveLength(){if(this._config.length)return this._config.length;const e=Number.parseInt(this._input.getAttribute("maxlength"),10);return Number.isNaN(e)||e<1?6:e}_setupInput(){const e=this._input;"number"!==e.type&&"password"!==e.type||(e.type="text"),e.classList.add("otp-input"),e.setAttribute("maxlength",String(this._length)),e.setAttribute("inputmode",this._type.inputmode),e.setAttribute("pattern",this._type.pattern),e.getAttribute("autocomplete")||e.setAttribute("autocomplete","one-time-code"),e.value&&(e.value=this._sanitize(e.value))}_renderSlots(){const e=document.createElement("div");e.className="otp-slots",e.setAttribute("aria-hidden","true");const{groups:t}=this._config;let n=0,s=0;for(let i=0;i<this._length;i++){const o=document.createElement("div");if(o.className="otp-slot",e.append(o),this._slots.push(o),Array.isArray(t)&&t.length>0&&(s++,s===t[n]&&i<this._length-1)){const i=document.createElement("div");i.className="otp-separator",i.textContent=this._config.separator,e.append(i),n=Math.min(n+1,t.length-1),s=0}}this._slotsContainer=e,this._element.append(e),this._element.classList.add("otp-rendered")}_addEventListeners(){this._onInput=()=>this._handleInput(),this._onFocus=()=>this.focus(),this._onSync=()=>this._render(),EventHandler.on(this._input,"input",this._onInput),EventHandler.on(this._input,"focus",this._onFocus);for(const e of SYNC_EVENTS)EventHandler.on(this._input,e,this._onSync)}_handleInput(){const e=this._sanitize(this._input.value);e!==this._input.value&&(this._input.value=e),this._render(),EventHandler.trigger(this._element,EVENT_INPUT,{value:this._input.value}),this._checkComplete()}_sanitize(e){return e.replace(this._type.filter,"").slice(0,this._length)}_render(){const{value:e}=this._input,t=document.activeElement===this._input,n=Math.min(this._input.selectionStart??e.length,this._length-1);for(const[s,i]of this._slots.entries()){const o=e[s]??"";i.textContent=o&&this._config.mask?"•":o,i.classList.toggle("otp-slot-filled",Boolean(o)),i.classList.toggle("otp-slot-active",t&&s===n)}}_checkComplete(){const{value:e}=this._input;e.length===this._length&&EventHandler.trigger(this._element,EVENT_COMPLETE,{value:e})}}EventHandler.on(document,EVENT_DOMCONTENT_LOADED,()=>{for(const e of SelectorEngine.find("[data-bs-otp]"))OtpInput.getOrCreateInstance(e)});const NAME$7="chips",DATA_KEY$4="bs.chips",EVENT_KEY$4=".bs.chips",DATA_API_KEY$1=".data-api",EVENT_ADD="add.bs.chips",EVENT_REMOVE="remove.bs.chips",EVENT_CHANGE="change.bs.chips",EVENT_SELECT="select.bs.chips",SELECTOR_DATA_CHIPS="[data-bs-chips]",SELECTOR_GHOST_INPUT=".form-ghost",SELECTOR_CHIP=".chip",SELECTOR_CHIP_DISMISS=".chip-dismiss",CLASS_NAME_CHIP="chip",CLASS_NAME_CHIP_DISMISS="chip-dismiss",CLASS_NAME_ACTIVE$2="active",DEFAULT_DISMISS_ICON='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="4" y1="4" x2="12" y2="12"/><line x1="12" y1="4" x2="4" y2="12"/></svg>',Default$6={separator:",",allowDuplicates:!1,maxChips:null,placeholder:"",dismissible:!0,dismissIcon:DEFAULT_DISMISS_ICON,createOnBlur:!0},DefaultType$6={separator:"(string|null)",allowDuplicates:"boolean",maxChips:"(number|null)",placeholder:"string",dismissible:"boolean",dismissIcon:"string",createOnBlur:"boolean"};class Chips extends BaseComponent{constructor(e,t){super(e,t),this._input=SelectorEngine.findOne(".form-ghost",this._element),this._chips=[],this._selectedChips=new Set,this._anchorChip=null,this._input||this._createInput(),this._initializeExistingChips(),this._addEventListeners()}static get Default(){return Default$6}static get DefaultType(){return DefaultType$6}static get NAME(){return NAME$7}add(e){const t=String(e).trim();if(!t)return null;if(!this._config.allowDuplicates&&this._chips.includes(t))return null;if(null!==this._config.maxChips&&this._chips.length>=this._config.maxChips)return null;if(EventHandler.trigger(this._element,EVENT_ADD,{value:t,relatedTarget:this._input}).defaultPrevented)return null;const n=this._createChip(t);return this._element.insertBefore(n,this._input),this._chips.push(t),EventHandler.trigger(this._element,EVENT_CHANGE,{values:this.getValues()}),n}remove(e){let t,n;return"string"==typeof e?(n=e,t=this._findChipByValue(n)):(t=e,n=this._getChipValue(t)),!(!t||!n)&&(!EventHandler.trigger(this._element,EVENT_REMOVE,{value:n,chip:t,relatedTarget:this._input}).defaultPrevented&&(this._selectedChips.delete(t),this._anchorChip===t&&(this._anchorChip=null),t.remove(),this._chips=this._chips.filter(e=>e!==n),EventHandler.trigger(this._element,EVENT_CHANGE,{values:this.getValues()}),!0))}removeSelected(){const e=[...this._selectedChips];for(const t of e)this.remove(t);this._input?.focus()}getValues(){return[...this._chips]}getSelectedValues(){return[...this._selectedChips].map(e=>this._getChipValue(e))}clear(){const e=SelectorEngine.find(".chip",this._element);for(const t of e)t.remove();this._chips=[],this._selectedChips.clear(),this._anchorChip=null,EventHandler.trigger(this._element,EVENT_CHANGE,{values:[]})}clearSelection(){for(const e of this._selectedChips)e.classList.remove("active");this._selectedChips.clear(),this._anchorChip=null,EventHandler.trigger(this._element,EVENT_SELECT,{selected:[]})}selectChip(e,t={}){const{addToSelection:n=!1,rangeSelect:s=!1}=t,i=this._getChipElements();if(i.includes(e)){if(s&&this._anchorChip){const t=i.indexOf(this._anchorChip),s=i.indexOf(e),o=Math.min(t,s),a=Math.max(t,s);n||this.clearSelection();for(let e=o;e<=a;e++)this._selectedChips.add(i[e]),i[e].classList.add("active")}else n?this._selectedChips.has(e)?(this._selectedChips.delete(e),e.classList.remove("active")):(this._selectedChips.add(e),e.classList.add("active"),this._anchorChip=e):(this.clearSelection(),this._selectedChips.add(e),e.classList.add("active"),this._anchorChip=e);EventHandler.trigger(this._element,EVENT_SELECT,{selected:this.getSelectedValues()})}}focus(){this._input?.focus()}_getChipElements(){return SelectorEngine.find(".chip",this._element)}_createInput(){const e=document.createElement("input");e.type="text",e.className="form-ghost",this._config.placeholder&&(e.placeholder=this._config.placeholder),this._element.append(e),this._input=e}_initializeExistingChips(){const e=SelectorEngine.find(".chip",this._element);for(const t of e){const e=this._getChipValue(t);e&&(this._chips.push(e),this._setupChip(t))}}_setupChip(e){e.setAttribute("tabindex","0"),this._config.dismissible&&!SelectorEngine.findOne(".chip-dismiss",e)&&e.append(this._createDismissButton())}_createChip(e){const t=document.createElement("span");return t.className="chip",t.dataset.bsChipValue=e,t.append(document.createTextNode(e)),this._setupChip(t),t}_createDismissButton(){const e=document.createElement("button");return e.type="button",e.className="chip-dismiss",e.setAttribute("aria-label","Remove"),e.setAttribute("tabindex","-1"),e.innerHTML=this._config.dismissIcon,e}_findChipByValue(e){return this._getChipElements().find(t=>this._getChipValue(t)===e)}_getChipValue(e){if(e.dataset.bsChipValue)return e.dataset.bsChipValue;const t=e.cloneNode(!0),n=SelectorEngine.findOne(".chip-dismiss",t);return n&&n.remove(),t.textContent?.trim()||""}_addEventListeners(){EventHandler.on(this._input,"keydown",e=>this._handleInputKeydown(e)),EventHandler.on(this._input,"input",e=>this._handleInput(e)),EventHandler.on(this._input,"paste",e=>this._handlePaste(e)),EventHandler.on(this._input,"focus",()=>this.clearSelection()),this._config.createOnBlur&&EventHandler.on(this._input,"blur",e=>{e.relatedTarget?.closest(".chip")||this._createChipFromInput()}),EventHandler.on(this._element,"click",".chip",e=>{if(e.target.closest(".chip-dismiss"))return;const t=e.target.closest(".chip");t&&(e.preventDefault(),this.selectChip(t,{addToSelection:e.metaKey||e.ctrlKey,rangeSelect:e.shiftKey}),t.focus())}),EventHandler.on(this._element,"click",".chip-dismiss",e=>{e.stopPropagation();const t=e.target.closest(".chip");t&&(this.remove(t),this._input?.focus())}),EventHandler.on(this._element,"keydown",".chip",e=>{this._handleChipKeydown(e)}),EventHandler.on(this._element,"click",e=>{e.target===this._element&&(this.clearSelection(),this._input?.focus())})}_handleInputKeydown(e){const{key:t}=e;switch(t){case"Enter":e.preventDefault(),this._createChipFromInput();break;case"Backspace":case"Delete":if(""===this._input.value){e.preventDefault();const t=this._getChipElements();if(t.length>0){const e=t.at(-1);this.selectChip(e),e.focus()}}break;case"ArrowLeft":if(0===this._input.selectionStart&&0===this._input.selectionEnd){e.preventDefault();const t=this._getChipElements();if(t.length>0){const n=t.at(-1);e.shiftKey?this.selectChip(n,{addToSelection:!0}):this.selectChip(n),n.focus()}}break;case"Escape":this._input.value="",this.clearSelection(),this._input.blur()}}_handleChipKeydown(e){const{key:t}=e,n=e.target.closest(".chip");if(!n)return;const s=this._getChipElements(),i=s.indexOf(n);switch(t){case"Backspace":case"Delete":e.preventDefault(),this._handleChipDelete(i,s);break;case"ArrowLeft":e.preventDefault(),this._navigateChip(s,i,-1,e.shiftKey);break;case"ArrowRight":e.preventDefault(),this._navigateChip(s,i,1,e.shiftKey);break;case"Home":e.preventDefault(),this._navigateToEdge(s,0,e.shiftKey);break;case"End":case"Escape":e.preventDefault(),this.clearSelection(),this._input?.focus();break;case"a":this._handleSelectAll(e,s)}}_handleChipDelete(e,t){if(0===this._selectedChips.size)return;const n=Math.min(e,t.length-this._selectedChips.size-1);this.removeSelected();const s=this._getChipElements();if(s.length>0){const e=Math.max(0,Math.min(n,s.length-1));s[e].focus(),this.selectChip(s[e])}else this._input?.focus()}_navigateChip(e,t,n,s){const i=t+n;if(n<0&&i>=0){const t=e[i];this.selectChip(t,s?{addToSelection:!0,rangeSelect:!0}:{}),t.focus()}else if(n>0&&i<e.length){const t=e[i];this.selectChip(t,s?{addToSelection:!0,rangeSelect:!0}:{}),t.focus()}else n>0&&(this.clearSelection(),this._input?.focus())}_navigateToEdge(e,t,n){if(0===e.length)return;const s=e[t];this.selectChip(s,n?{rangeSelect:!0}:{}),s.focus()}_handleSelectAll(e,t){if(e.metaKey||e.ctrlKey){e.preventDefault();for(const e of t)this._selectedChips.add(e),e.classList.add("active");EventHandler.trigger(this._element,EVENT_SELECT,{selected:this.getSelectedValues()})}}_handleInput(e){const{value:t}=e.target,{separator:n}=this._config;if(n&&t.includes(n)){const e=t.split(n);for(const t of e.slice(0,-1))this.add(t.trim());this._input.value=e.at(-1)}}_handlePaste(e){const{separator:t}=this._config;if(!t)return;const n=(e.clipboardData||window.clipboardData).getData("text");if(n.includes(t)){e.preventDefault();const s=n.split(t);for(const e of s)this.add(e.trim())}}_createChipFromInput(){const e=this._input.value.trim();e&&(this.add(e),this._input.value="")}}EventHandler.on(document,"DOMContentLoaded.bs.chips.data-api",()=>{for(const e of SelectorEngine.find("[data-bs-chips]"))Chips.getOrCreateInstance(e)});const ARIA_ATTRIBUTE_PATTERN=/^aria-[\w-]*$/i,DefaultAllowlist={"*":["class","dir","id","lang","role",ARIA_ATTRIBUTE_PATTERN],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},uriAttributes=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),SAFE_URL_PATTERN=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,allowedAttribute=(e,t)=>{const n=e.nodeName.toLowerCase();return t.includes(n)?!uriAttributes.has(n)||Boolean(SAFE_URL_PATTERN.test(e.nodeValue)):t.filter(e=>e instanceof RegExp).some(e=>e.test(n))};function sanitizeHtml(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const s=(new window.DOMParser).parseFromString(e,"text/html"),i=[...s.body.querySelectorAll("*")];for(const e of i){const n=e.nodeName.toLowerCase();if(!Object.keys(t).includes(n)){e.remove();continue}const s=[...e.attributes],i=[...t["*"]||[],...t[n]||[]];for(const t of s)allowedAttribute(t,i)||e.removeAttribute(t.nodeName)}return s.body.innerHTML}const NAME$6="TemplateFactory",Default$5={allowList:DefaultAllowlist,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"<div></div>"},DefaultType$5={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},DefaultContentType={entry:"(string|element|function|null)",selector:"(string|element)"};class TemplateFactory extends Config{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return Default$5}static get DefaultType(){return DefaultType$5}static get NAME(){return NAME$6}getContent(){return Object.values(this._config.content).map(e=>this._resolvePossibleFunction(e)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[t,n]of Object.entries(this._config.content))this._setContent(e,n,t);const t=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&t.classList.add(...n.split(" ")),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[t,n]of Object.entries(e))super._typeCheckConfig({selector:t,entry:n},DefaultContentType)}_setContent(e,t,n){const s=SelectorEngine.findOne(n,e);s&&((t=this._resolvePossibleFunction(t))?isElement$1(t)?this._putElementInTemplate(getElement(t),s):this._config.html?s.innerHTML=this._maybeSanitize(t):s.textContent=t:s.remove())}_maybeSanitize(e){return this._config.sanitize?sanitizeHtml(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return execute(e,[void 0,this])}_putElementInTemplate(e,t){if(this._config.html)return t.innerHTML="",void t.append(e);t.textContent=e.textContent}}const NAME$5="tooltip",DISALLOWED_ATTRIBUTES=new Set(["sanitize","allowList","sanitizeFn"]),CLASS_NAME_FADE$2="fade",CLASS_NAME_MODAL="modal",CLASS_NAME_SHOW$2="show",SELECTOR_TOOLTIP_INNER=".tooltip-inner",SELECTOR_MODAL=".modal",SELECTOR_DATA_TOGGLE$3='[data-bs-toggle="tooltip"]',EVENT_MODAL_HIDE="hide.bs.modal",TRIGGER_HOVER="hover",TRIGGER_FOCUS="focus",TRIGGER_CLICK="click",TRIGGER_MANUAL="manual",EVENT_HIDE$2="hide",EVENT_HIDDEN$2="hidden",EVENT_SHOW$2="show",EVENT_SHOWN$2="shown",EVENT_INSERTED="inserted",EVENT_CLICK$3="click",EVENT_FOCUSIN$2="focusin",EVENT_FOCUSOUT$1="focusout",EVENT_MOUSEENTER$1="mouseenter",EVENT_MOUSELEAVE="mouseleave",AttachmentMap={AUTO:"auto",TOP:"top",RIGHT:isRTL$1()?"left":"right",BOTTOM:"bottom",LEFT:isRTL$1()?"right":"left"},Default$4={allowList:DefaultAllowlist,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",floatingConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',title:"",trigger:"hover focus"},DefaultType$4={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",floatingConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Tooltip extends BaseComponent{constructor(e,t){super(e,t),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._floatingCleanup=null,this._templateFactory=null,this._newContent=null,this._mediaQueryListeners=[],this._responsivePlacements=null,this.tip=null,this._parseResponsivePlacements(),this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Default$4}static get DefaultType(){return DefaultType$4}static get NAME(){return NAME$5}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),EventHandler.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposeFloating(),this._disposeMediaQueryListeners(),super.dispose()}async show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const e=EventHandler.trigger(this._element,this.constructor.eventName("show")),t=(findShadowRoot(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this._disposeFloating();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));let{container:s}=this._config;const i=this._element.closest("dialog[open]");if(i&&s===document.body&&(s=i),this._element.ownerDocument.documentElement.contains(this.tip)||(s.append(n),EventHandler.trigger(this._element,this.constructor.eventName("inserted"))),await this._createFloating(n),n.classList.add("show"),"ontouchstart"in document.documentElement)for(const e of document.body.children)EventHandler.on(e,"mouseover",noop);this._queueCallback(()=>{EventHandler.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1},this.tip,this._isAnimated())}hide(){if(this._isShown()&&!EventHandler.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove("show"),"ontouchstart"in document.documentElement)for(const e of document.body.children)EventHandler.off(e,"mouseover",noop);this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this._isHovered=null,this._queueCallback(()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposeFloating(),this._element.removeAttribute("aria-describedby"),EventHandler.trigger(this._element,this.constructor.eventName("hidden")))},this.tip,this._isAnimated())}}update(){this._floatingCleanup&&this.tip&&this._updateFloatingPosition()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const t=this._getTemplateFactory(e).toHtml();t.classList.remove("fade","show"),t.classList.add(`bs-${this.constructor.NAME}-auto`);const n=getUID(this.constructor.NAME).toString();return t.setAttribute("id",n),this._isAnimated()&&t.classList.add("fade"),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposeFloating(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new TemplateFactory({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[SELECTOR_TOOLTIP_INNER]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains("fade")}_isShown(){return this.tip&&this.tip.classList.contains("show")}_getPlacement(e){if(this._responsivePlacements){const e=getResponsivePlacement(this._responsivePlacements,"top");return AttachmentMap[e.toUpperCase()]||e}const t=execute(this._config.placement,[this,e,this._element]);return AttachmentMap[t.toUpperCase()]||t}_parseResponsivePlacements(){"string"==typeof this._config.placement?(this._responsivePlacements=parseResponsivePlacement(this._config.placement,"top"),this._responsivePlacements&&this._setupMediaQueryListeners()):this._responsivePlacements=null}_setupMediaQueryListeners(){this._disposeMediaQueryListeners(),this._mediaQueryListeners=createBreakpointListeners(()=>{this._isShown()&&this._updateFloatingPosition()})}_disposeMediaQueryListeners(){disposeBreakpointListeners(this._mediaQueryListeners),this._mediaQueryListeners=[]}async _createFloating(e){const t=this._getPlacement(e),n=e.querySelector(`.${this.constructor.NAME}-arrow`);await this._updateFloatingPosition(e,t,n),this._floatingCleanup=autoUpdate(this._element,e,()=>this._updateFloatingPosition(e,null,n))}async _updateFloatingPosition(e=this.tip,t=null,n=null){if(!e)return;t||(t=this._getPlacement(e)),n||(n=e.querySelector(`.${this.constructor.NAME}-arrow`));const s=this._getFloatingMiddleware(n),i=this._getFloatingConfig(t,s),{x:o,y:a,placement:l,middlewareData:r}=await computePosition(this._element,e,i);if(Object.assign(e.style,{position:"absolute",left:`${o}px`,top:`${a}px`}),n&&(n.style.position="absolute"),Manipulator.setDataAttribute(e,"placement",l),n&&r.arrow){const{x:e,y:t}=r.arrow,s=l.startsWith("top")||l.startsWith("bottom");Object.assign(n.style,{left:s&&null!==e?`${e}px`:"",top:s||null===t?"":`${t}px`,right:"",bottom:""})}}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?({placement:t,rects:n})=>e({placement:t,reference:n.reference,floating:n.floating},this._element):e}_resolvePossibleFunction(e){return execute(e,[this._element,this._element])}_getFloatingMiddleware(e){const t=this._getOffset(),n=[offset("function"==typeof t?t:{mainAxis:t[1]||0,crossAxis:t[0]||0}),flip({fallbackPlacements:this._config.fallbackPlacements}),shift({boundary:"clippingParents"===this._config.boundary?"clippingAncestors":this._config.boundary})];return e&&n.push(arrow({element:e})),n}_getFloatingConfig(e,t){const n={placement:e,middleware:t};return{...n,...execute(this._config.floatingConfig,[void 0,n])}}_setListeners(){const e=this._config.trigger.split(" ");for(const t of e)if("click"===t)EventHandler.on(this._element,this.constructor.eventName("click"),this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger.click=!(t._isShown()&&t._activeTrigger.click),t.toggle()});else if("manual"!==t){const e="hover"===t?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n="hover"===t?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");EventHandler.on(this._element,e,this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?"focus":"hover"]=!0,t._enter()}),EventHandler.on(this._element,n,this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?"focus":"hover"]=t._element.contains(e.relatedTarget),t._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},EventHandler.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const t=Manipulator.getDataAttributes(this._element);for(const e of Object.keys(t))DISALLOWED_ATTRIBUTES.has(e)&&delete t[e];return e={...t,..."object"==typeof e&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=!1===e.container?document.body:getElement(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[t,n]of Object.entries(this._config))this.constructor.Default[t]!==n&&(e[t]=n);return e.selector=!1,e.trigger="manual",e}_disposeFloating(){this._floatingCleanup&&(this._floatingCleanup(),this._floatingCleanup=null),this.tip&&(this.tip.remove(),this.tip=null)}}const initTooltip=e=>{const t=e.target.closest(SELECTOR_DATA_TOGGLE$3);t&&Tooltip.getOrCreateInstance(t)};EventHandler.on(document,"focusin",SELECTOR_DATA_TOGGLE$3,initTooltip),EventHandler.on(document,"mouseenter",SELECTOR_DATA_TOGGLE$3,initTooltip);const NAME$4="popover",SELECTOR_TITLE=".popover-header",SELECTOR_CONTENT=".popover-body",SELECTOR_DATA_TOGGLE$2='[data-bs-toggle="popover"]',EVENT_CLICK$2="click",EVENT_FOCUSIN$1="focusin",EVENT_MOUSEENTER="mouseenter",Default$3={...Tooltip.Default,content:"",offset:[0,8],placement:"right",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',trigger:"click"},DefaultType$3={...Tooltip.DefaultType,content:"(null|string|element|function)"};class Popover extends Tooltip{static get Default(){return Default$3}static get DefaultType(){return DefaultType$3}static get NAME(){return NAME$4}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[SELECTOR_TITLE]:this._getTitle(),[SELECTOR_CONTENT]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}}const initPopover=e=>{const t=e.target.closest(SELECTOR_DATA_TOGGLE$2);t&&("click"===e.type&&e.preventDefault(),Popover.getOrCreateInstance(t))};EventHandler.on(document,"click",SELECTOR_DATA_TOGGLE$2,initPopover),EventHandler.on(document,"focusin",SELECTOR_DATA_TOGGLE$2,initPopover),EventHandler.on(document,"mouseenter",SELECTOR_DATA_TOGGLE$2,initPopover);const NAME$3="scrollspy",DATA_KEY$3="bs.scrollspy",EVENT_KEY$3=`.${DATA_KEY$3}`,DATA_API_KEY=".data-api",EVENT_ACTIVATE=`activate${EVENT_KEY$3}`,EVENT_CLICK$1=`click${EVENT_KEY$3}`,EVENT_LOAD_DATA_API$1=`load${EVENT_KEY$3}.data-api`,CLASS_NAME_MENU_ITEM="menu-item",CLASS_NAME_ACTIVE$1="active",SELECTOR_DATA_SPY='[data-bs-spy="scroll"]',SELECTOR_TARGET_LINKS="[href]",SELECTOR_NAV_LIST_GROUP=".nav, .list-group",SELECTOR_NAV_LINKS=".nav-link",SELECTOR_NAV_ITEMS=".nav-item",SELECTOR_LIST_ITEMS=".list-group-item",SELECTOR_LINK_ITEMS=".nav-link, .nav-item > .nav-link, .list-group-item",SELECTOR_MENU_TOGGLE$1='[data-bs-toggle="menu"]',Default$2={rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},DefaultType$2={rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class ScrollSpy extends BaseComponent{constructor(e,t){super(e,t),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return Default$2}static get DefaultType(){return DefaultType$2}static get NAME(){return NAME$3}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const e of this._observableSections.values())this._observer.observe(e)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(e){return e.target=getElement(e.target)||document.body,"string"==typeof e.threshold&&(e.threshold=e.threshold.split(",").map(e=>Number.parseFloat(e))),e}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(EventHandler.off(this._config.target,EVENT_CLICK$1),EventHandler.on(this._config.target,EVENT_CLICK$1,"[href]",e=>{const t=this._observableSections.get(e.target.hash);if(t){e.preventDefault();const n=this._rootElement||window,s=t.offsetTop-this._element.offsetTop;if(n.scrollTo)return void n.scrollTo({top:s,behavior:"smooth"});n.scrollTop=s}}))}_getNewObserver(){const e={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(e=>this._observerCallback(e),e)}_observerCallback(e){const t=e=>this._targetLinks.get(`#${e.target.id}`),n=e=>{this._previousScrollData.visibleEntryTop=e.target.offsetTop,this._process(t(e))},s=(this._rootElement||document.documentElement).scrollTop,i=s>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=s;for(const o of e){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(t(o));continue}const e=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(i&&e){if(n(o),!s)return}else i||e||n(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const e=SelectorEngine.find("[href]",this._config.target);for(const t of e){if(!t.hash||isDisabled(t))continue;const e=SelectorEngine.findOne(decodeURI(t.hash),this._element);isVisible(e)&&(this._targetLinks.set(decodeURI(t.hash),t),this._observableSections.set(t.hash,e))}}_process(e){this._activeTarget!==e&&(this._clearActiveClass(this._config.target),this._activeTarget=e,e.classList.add("active"),this._activateParents(e),EventHandler.trigger(this._element,EVENT_ACTIVATE,{relatedTarget:e}))}_activateParents(e){if(e.classList.contains("menu-item")){const t=e.closest(".menu")?.previousElementSibling;return void(t?.matches(SELECTOR_MENU_TOGGLE$1)&&t.classList.add("active"))}for(const t of SelectorEngine.parents(e,".nav, .list-group"))for(const e of SelectorEngine.prev(t,SELECTOR_LINK_ITEMS))e.classList.add("active")}_clearActiveClass(e){e.classList.remove("active");const t=SelectorEngine.find("[href].active",e);for(const e of t)e.classList.remove("active")}}EventHandler.on(window,EVENT_LOAD_DATA_API$1,()=>{for(const e of SelectorEngine.find(SELECTOR_DATA_SPY))ScrollSpy.getOrCreateInstance(e)});const NAME$2="tab",DATA_KEY$2="bs.tab",EVENT_KEY$2=".bs.tab",EVENT_HIDE$1="hide.bs.tab",EVENT_HIDDEN$1="hidden.bs.tab",EVENT_SHOW$1="show.bs.tab",EVENT_SHOWN$1="shown.bs.tab",EVENT_CLICK_DATA_API="click.bs.tab",EVENT_KEYDOWN="keydown.bs.tab",EVENT_LOAD_DATA_API="load.bs.tab",ARROW_LEFT_KEY="ArrowLeft",ARROW_RIGHT_KEY="ArrowRight",ARROW_UP_KEY="ArrowUp",ARROW_DOWN_KEY="ArrowDown",HOME_KEY="Home",END_KEY="End",CLASS_NAME_ACTIVE="active",CLASS_NAME_FADE$1="fade",CLASS_NAME_SHOW$1="show",SELECTOR_MENU_TOGGLE='[data-bs-toggle="menu"]',SELECTOR_MENU=".menu",NOT_SELECTOR_MENU_TOGGLE=`:not(${SELECTOR_MENU_TOGGLE})`,SELECTOR_TAB_PANEL='.list-group, .nav, [role="tablist"]',SELECTOR_OUTER=".nav-item, .list-group-item",SELECTOR_INNER=`.nav-link${NOT_SELECTOR_MENU_TOGGLE}, .list-group-item${NOT_SELECTOR_MENU_TOGGLE}, [role="tab"]${NOT_SELECTOR_MENU_TOGGLE}`,SELECTOR_DATA_TOGGLE$1='[data-bs-toggle="tab"]',SELECTOR_INNER_ELEM=`${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE$1}`,SELECTOR_DATA_TOGGLE_ACTIVE='.active[data-bs-toggle="tab"]';class Tab extends BaseComponent{constructor(e){super(e),this._parent=this._element.closest(SELECTOR_TAB_PANEL),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),EventHandler.on(this._element,EVENT_KEYDOWN,e=>this._keydown(e)))}static get NAME(){return"tab"}show(){const e=this._element;if(this._elemIsActive(e))return;const t=this._getActiveElem(),n=t?EventHandler.trigger(t,EVENT_HIDE$1,{relatedTarget:e}):null;EventHandler.trigger(e,EVENT_SHOW$1,{relatedTarget:t}).defaultPrevented||n&&n.defaultPrevented||(this._deactivate(t,e),this._activate(e,t))}_activate(e,t){e&&(e.classList.add("active"),this._activate(SelectorEngine.getElementFromSelector(e)),this._queueCallback(()=>{"tab"===e.getAttribute("role")?(e.removeAttribute("tabindex"),e.setAttribute("aria-selected",!0),this._toggleMenu(e,!0),EventHandler.trigger(e,EVENT_SHOWN$1,{relatedTarget:t})):e.classList.add("show")},e,e.classList.contains("fade")))}_deactivate(e,t){e&&(e.classList.remove("active"),e.blur(),this._deactivate(SelectorEngine.getElementFromSelector(e)),this._queueCallback(()=>{"tab"===e.getAttribute("role")?(e.setAttribute("aria-selected",!1),e.setAttribute("tabindex","-1"),this._toggleMenu(e,!1),EventHandler.trigger(e,EVENT_HIDDEN$1,{relatedTarget:t})):e.classList.remove("show")},e,e.classList.contains("fade")))}_keydown(e){if(![ARROW_LEFT_KEY,ARROW_RIGHT_KEY,ARROW_UP_KEY,ARROW_DOWN_KEY,HOME_KEY,END_KEY].includes(e.key))return;e.stopPropagation(),e.preventDefault();const t=this._getChildren().filter(e=>!isDisabled(e));let n;if([HOME_KEY,END_KEY].includes(e.key))n=e.key===HOME_KEY?t[0]:t.at(-1);else{const s=[ARROW_RIGHT_KEY,ARROW_DOWN_KEY].includes(e.key);n=getNextActiveElement(t,e.target,s,!0)}n&&(n.focus({preventScroll:!0}),Tab.getOrCreateInstance(n).show())}_getChildren(){return SelectorEngine.find(SELECTOR_INNER_ELEM,this._parent)}_getActiveElem(){return this._getChildren().find(e=>this._elemIsActive(e))||null}_setInitialAttributes(e,t){this._setAttributeIfNotExists(e,"role","tablist");for(const e of t)this._setInitialAttributesOnChild(e)}_setInitialAttributesOnChild(e){e=this._getInnerElement(e);const t=this._elemIsActive(e),n=this._getOuterElement(e);e.setAttribute("aria-selected",t),n!==e&&this._setAttributeIfNotExists(n,"role","presentation"),t||e.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(e,"role","tab"),this._setInitialAttributesOnTargetPanel(e)}_setInitialAttributesOnTargetPanel(e){const t=SelectorEngine.getElementFromSelector(e);t&&(this._setAttributeIfNotExists(t,"role","tabpanel"),e.id&&this._setAttributeIfNotExists(t,"aria-labelledby",`${e.id}`))}_toggleMenu(e,t){const n=this._getOuterElement(e),s=SelectorEngine.findOne(SELECTOR_MENU_TOGGLE,n);if(!s)return;const i=SelectorEngine.findOne(".menu",n);s.classList.toggle("active",t),i&&i.classList.toggle("show",t),s.setAttribute("aria-expanded",t)}_setAttributeIfNotExists(e,t,n){e.hasAttribute(t)||e.setAttribute(t,n)}_elemIsActive(e){return e.classList.contains("active")}_getInnerElement(e){return e.matches(SELECTOR_INNER_ELEM)?e:SelectorEngine.findOne(SELECTOR_INNER_ELEM,e)}_getOuterElement(e){return e.closest(SELECTOR_OUTER)||e}}EventHandler.on(document,"click.bs.tab",SELECTOR_DATA_TOGGLE$1,function(e){["A","AREA"].includes(this.tagName)&&e.preventDefault(),isDisabled(this)||Tab.getOrCreateInstance(this).show()}),EventHandler.on(window,"load.bs.tab",()=>{for(const e of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE))Tab.getOrCreateInstance(e)});const NAME$1="toast",DATA_KEY$1="bs.toast",EVENT_KEY$1=".bs.toast",EVENT_MOUSEOVER="mouseover.bs.toast",EVENT_MOUSEOUT="mouseout.bs.toast",EVENT_FOCUSIN="focusin.bs.toast",EVENT_FOCUSOUT="focusout.bs.toast",EVENT_HIDE="hide.bs.toast",EVENT_HIDDEN="hidden.bs.toast",EVENT_SHOW="show.bs.toast",EVENT_SHOWN="shown.bs.toast",CLASS_NAME_FADE="fade",CLASS_NAME_HIDE="hide",CLASS_NAME_SHOW="show",CLASS_NAME_SHOWING="showing",DefaultType$1={animation:"boolean",autohide:"boolean",delay:"number"},Default$1={animation:!0,autohide:!0,delay:5e3};class Toast extends BaseComponent{constructor(e,t){super(e,t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return Default$1}static get DefaultType(){return DefaultType$1}static get NAME(){return NAME$1}show(){EventHandler.trigger(this._element,EVENT_SHOW).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove("hide"),reflow(this._element),this._element.classList.add("show","showing"),this._queueCallback(()=>{this._element.classList.remove("showing"),EventHandler.trigger(this._element,EVENT_SHOWN),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this.isShown()&&(EventHandler.trigger(this._element,EVENT_HIDE).defaultPrevented||(this._element.classList.add("showing"),this._queueCallback(()=>{this._element.classList.add("hide"),this._element.classList.remove("showing","show"),EventHandler.trigger(this._element,EVENT_HIDDEN)},this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove("show"),super.dispose()}isShown(){return this._element.classList.contains("show")}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}if(t)return void this._clearTimeout();const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){EventHandler.on(this._element,EVENT_MOUSEOVER,e=>this._onInteraction(e,!0)),EventHandler.on(this._element,EVENT_MOUSEOUT,e=>this._onInteraction(e,!1)),EventHandler.on(this._element,EVENT_FOCUSIN,e=>this._onInteraction(e,!0)),EventHandler.on(this._element,EVENT_FOCUSOUT,e=>this._onInteraction(e,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}}enableDismissTrigger(Toast);const NAME="toggler",DATA_KEY="bs.toggler",EVENT_KEY=`.${DATA_KEY}`,EVENT_TOGGLE=`toggle${EVENT_KEY}`,EVENT_TOGGLED=`toggled${EVENT_KEY}`,EVENT_CLICK="click",SELECTOR_DATA_TOGGLE='[data-bs-toggle="toggler"]',DefaultType={attribute:"string",value:"(string|number|boolean)"},Default={attribute:"class",value:null};class Toggler extends BaseComponent{static get Default(){return Default}static get DefaultType(){return DefaultType}static get NAME(){return NAME}toggle(){EventHandler.trigger(this._element,EVENT_TOGGLE).defaultPrevented||(this._execute(),EventHandler.trigger(this._element,EVENT_TOGGLED))}_execute(){const{attribute:e,value:t}=this._config;"id"!==e&&("class"!==e?this._element.getAttribute(e)!==String(t)?this._element.setAttribute(e,t):this._element.removeAttribute(e):this._element.classList.toggle(t))}}eventActionOnPlugin(Toggler,"click",SELECTOR_DATA_TOGGLE,"toggle");export{Alert,Button,Carousel,Chips,Collapse,Combobox,Datepicker,Dialog,Drawer,Menu,NavOverflow,OtpInput,Popover,ScrollSpy,Strength,Tab,Toast,Toggler,Tooltip};
//# sourceMappingURL=bootstrap.bundle.min.js.map
\ No newline at end of file
-{"version":3,"names":["elementMap","Map","Data","set","element","key","instance","has","instanceMap","get","size","console","error","keys","getAny","values","next","value","remove","delete","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","makeEventUid","uid","getElementEvents","bootstrapHandler","fn","handler","event","hydrateObj","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","selector","domElements","querySelectorAll","target","this","parentNode","domElement","findHandler","events","callable","delegationSelector","Object","find","normalizeParameters","originalTypeEvent","delegationFunction","isDelegated","typeEvent","getTypeEvent","addHandler","wrapFunction","relatedTarget","contains","call","handlers","previousFunction","replace","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","entries","includes","on","one","inNamespace","isNamespace","startsWith","elementEvent","slice","keyHandlers","length","trigger","args","evt","Event","bubbles","cancelable","dispatchEvent","obj","meta","defineProperty","configurable","normalizeData","Number","toString","JSON","parse","decodeURIComponent","normalizeDataKey","chr","toLowerCase","Manipulator","setDataAttribute","setAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","bsKeys","dataset","filter","pureKey","charAt","getDataAttribute","getAttribute","MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","parseSelector","window","CSS","escape","match","id","toType","object","prototype","getUID","prefix","Math","floor","random","document","getElementById","getTransitionDurationFromElement","transitionDuration","transitionDelay","getComputedStyle","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","isElement","nodeType","getElement","querySelector","isVisible","getClientRects","elementIsVisible","getPropertyValue","closedDetails","closest","summary","isDisabled","Node","ELEMENT_NODE","classList","disabled","hasAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","isRTL","dir","execute","possibleCallback","defaultValue","executeAfterTransition","callback","transitionElement","waitForTransition","emulatedDuration","called","setTimeout","getNextActiveElement","list","activeElement","shouldGetNext","isCycleAllowed","listLength","index","indexOf","max","min","Config","Default","DefaultType","NAME","Error","_getConfig","config","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","jsonConfig","constructor","configTypes","property","expectedTypes","valueType","RegExp","test","TypeError","toUpperCase","VERSION","BaseComponent","super","_element","_config","DATA_KEY","dispose","EVENT_KEY","propertyName","getOwnPropertyNames","_queueCallback","isAnimated","getInstance","getOrCreateInstance","eventName","name","getSelector","hrefAttribute","trim","map","sel","join","SelectorEngine","Element","findOne","children","child","matches","parents","ancestor","push","prev","previous","previousElementSibling","nextElementSibling","focusableChildren","focusables","el","getSelectorFromElement","getElementFromSelector","getMultipleElementsFromSelector","enableDismissTrigger","component","method","clickEvent","tagName","preventDefault","eventActionOnPlugin","Plugin","onEvent","stringSelector","eventAction","data","instances","targets","EVENT_CLOSE","EVENT_CLOSED","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","close","defaultPrevented","_destroyElement","DATA_API_KEY","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE","EVENT_CLICK_DATA_API","Button","toggle","button","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","CLASS_NAME_POINTER_EVENT","SWIPE_THRESHOLD","endCallback","leftCallback","rightCallback","upCallback","downCallback","Swipe","isSupported","_deltaX","_deltaY","_supportPointerEvents","PointerEvent","_initEvents","_start","touches","clientX","clientY","_eventIsPointerPenTouch","_end","_handleSwipe","_move","absDeltaX","abs","absDeltaY","direction","add","pointerType","navigator","maxTouchPoints","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_DRAG_START","EVENT_LOAD_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_END","CLASS_NAME_START","CLASS_NAME_NEXT","CLASS_NAME_PREV","SELECTOR_ACTIVE","SELECTOR_ITEM","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM_IMG","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","KEY_TO_DIRECTION","ARROW_LEFT_KEY$2","ARROW_RIGHT_KEY$2","interval","keyboard","pause","ride","touch","wrap","Carousel","_interval","_activeElement","_isSliding","touchTimeout","_swipeHelper","_indicatorsElement","_addEventListeners","cycle","_slide","nextWhenVisible","visibilityState","_clearInterval","_updateInterval","setInterval","_maybeEnableCycle","to","items","_getItems","activeIndex","_getItemIndex","_getActive","order","defaultInterval","_keydown","_addTouchEventListeners","img","swipeConfig","_directionToOrder","endCallBack","clearTimeout","_setActiveIndicatorElement","activeIndicator","newActiveIndicator","elementInterval","parseInt","isNext","nextElement","nextElementIndex","triggerEvent","_orderToDirection","from","isCycling","directionalClassName","orderClassName","completeCallBack","_isAnimated","clearInterval","carousel","slideIndex","carousels","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","CLASS_NAME_HORIZONTAL","WIDTH","HEIGHT","SELECTOR_ACTIVES","parent","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","_isShown","hide","show","activeChildren","_getFirstLevelChildren","activeInstance","dimension","_getDimension","style","scrollSize","complete","getBoundingClientRect","selected","triggerArray","isOpen","round","createCoords","v","x","y","oppositeSideMap","left","right","bottom","top","clamp","start","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","firstChar","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","mainAlignmentSide","reference","floating","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","side","isStart","getOppositeAxisPlacements","flipAlignment","concat","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","width","height","computeCoordsFromPlacement","_ref","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","async","detectOverflow","state","options","_await$platform$isEle","platform","elements","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","getClippingRect","contextElement","getDocumentElement","offsetParent","getOffsetParent","offsetScale","getScale","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","MAX_RESET_COUNT","computePosition","middleware","platformWithDetectOverflow","getElementRects","statefulPlacement","resetCount","middlewareData","i","currentMiddleware","nextX","nextY","reset","initialPlacement","arrow","arrowDimensions","getDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","centerOffset","flip","_middlewareData$arrow","_middlewareData$flip","mainAxis","checkMainAxis","crossAxis","checkCrossAxis","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","initialSideAxis","isBasePlacement","hasFallbackAxisSideDirection","placements","overflow","overflows","overflowsData","sides","every","_middlewareData$flip2","_overflowsData$filter","nextIndex","nextPlacement","d","resetPlacement","sort","a","b","_overflowsData$filter2","currentSideAxis","reduce","acc","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","enabled","hasWindow","getNodeName","node","isNode","nodeName","getWindow","_node$ownerDocument","ownerDocument","defaultView","isHTMLElement","HTMLElement","isShadowRoot","isOverflowElement","overflowX","overflowY","display","isTableElement","isTopLayer","_e","willChangeRe","containRe","isNotNone","isWebKitValue","isContainingBlock","elementOrCss","css","transform","translate","scale","rotate","perspective","isWebKit","backdropFilter","willChange","contain","getContainingBlock","currentNode","getParentNode","isLastTraversableNode","supports","getNodeScroll","scrollLeft","scrollTop","scrollX","scrollY","result","assignedSlot","host","getNearestOverflowAncestor","body","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","visualViewport","getPrototypeOf","getCssDimensions","getComputedStyle$1","hasOffset","offsetWidth","shouldFallback","$","unwrapElement","isFinite","noOffsets","getVisualOffsets","offsetLeft","offsetTop","shouldAddVisualOffsets","isFixed","floatingOffsetParent","includeScale","isFixedStrategy","clientRect","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","clientLeft","paddingLeft","clientTop","paddingTop","getWindowScrollBarX","leftScroll","getHTMLOffset","scroll","htmlRect","topLayer","offsets","isOffsetParentAnElement","offsetRect","htmlOffset","Array","getDocumentRect","html","scrollWidth","clientWidth","scrollHeight","clientHeight","SCROLLBAR_MAX","getViewportRect","visualViewportBased","windowScrollbarX","doc","bodyStyles","bodyMarginInline","compatMode","marginLeft","marginRight","clippingStableScrollbarWidth","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","position","getClippingElementAncestors","cache","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","clippingAncestors","_c","firstRect","getRectRelativeToOffsetParent","setLeftRTLScrollbarOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","svgOffsetParent","getOffsetParentFn","getDimensionsFn","floatingDimensions","rectsAreEqual","observeMove","onMove","timeoutId","io","cleanup","_io","disconnect","refresh","skip","threshold","elementRectForRootMargin","rootMargin","isFirstUpdate","handleObserve","ratio","intersectionRatio","IntersectionObserver","observe","autoUpdate","update","ancestorScroll","ancestorResize","elementResize","ResizeObserver","layoutShift","animationFrame","referenceEl","ancestors","forEach","passive","cleanupIo","frameId","reobserveFrame","resizeObserver","firstEntry","unobserve","cancelAnimationFrame","requestAnimationFrame","_resizeObserver","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset$1","shift$1","flip$1","arrow$1","mergedOptions","platformWithCache","computePosition$1","BREAKPOINTS","sm","md","lg","xl","parseResponsivePlacement","placementString","defaultPlacement","parts","xs","part","breakpoint","undefined","getResponsivePlacement","responsivePlacements","viewportWidth","innerWidth","activePlacement","breakpointOrder","createBreakpointListeners","listeners","minWidth","mql","matchMedia","disposeBreakpointListeners","ESCAPE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","HOME_KEY","END_KEY","ENTER_KEY","SPACE_KEY","RIGHT_MOUSE_BUTTON","SUBMENU_CLOSE_DELAY","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","SELECTOR_MENU","SELECTOR_SUBMENU","SELECTOR_SUBMENU_TOGGLE","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","DEFAULT_PLACEMENT","SUBMENU_PLACEMENT","resolveLogicalPlacement","triangleSign","p1","p2","p3","autoClose","container","floatingConfig","menu","submenuTrigger","submenuDelay","Menu","static","_floatingCleanup","_mediaQueryListeners","_responsivePlacements","_parent","_isSubmenu","_openSubmenus","_submenuCloseTimeouts","_hoverIntentData","_menu","_findMenu","_menuOriginalParent","_parseResponsivePlacements","_setupSubmenuListeners","_moveMenuToContainer","_createFloating","focus","focusVisible","_openInstances","_completeHide","_disposeFloating","_restoreMenuToOriginalParent","_disposeMediaQueryListeners","_closeAllSubmenus","_clearAllSubmenuTimeouts","_updateFloatingPosition","referenceElement","_getPlacement","_getFloatingMiddleware","_getFloatingConfig","_applyFloatingPosition","_setupMediaQueryListeners","_getOffset","offsetConfig","offsetValue","_getFallbackPlacements","defaultConfig","_getContainer","append","isConnected","finalPlacement","assign","margin","_onSubmenuTriggerEnter","_onSubmenuLeave","_trackMousePosition","_onSubmenuTriggerClick","submenuWrapper","submenu","_cancelSubmenuCloseTimeout","_closeSiblingSubmenus","_openSubmenu","_isMovingTowardSubmenu","_scheduleSubmenuClose","stopPropagation","_closeSubmenu","_createSubmenuFloating","nestedSubmenus","nested","nestedWrapper","currentSubmenuWrapper","siblingSubmenus","siblingMenu","siblingWrapper","updatePosition","clear","timestamp","Date","now","submenuRect","currentPos","lastPos","targetX","topCorner","bottomCorner","_pointInTriangle","point","v1","v2","v3","d1","d2","d3","_selectMenuItem","currentMenu","_handleSubmenuKeydown","isRtl","enterKey","exitKey","isSubmenuTrigger","firstItem","parentSubmenuWrapper","parentTrigger","at","clearMenus","composedPath","isMenuTarget","dataApiKeydownHandler","isInput","isEscapeEvent","isUpOrDownEvent","isLeftOrRightEvent","isHomeOrEndEvent","isEnterOrSpaceEvent","getToggleButton","EVENT_CHANGE","CLASS_NAME_SELECTED","CLASS_NAME_PLACEHOLDER","SELECTOR_MENU_ITEM","SELECTOR_VALUE","SELECTOR_SEARCH_INPUT","SELECTOR_NO_RESULTS","multiple","placeholder","search","searchNormalize","Combobox","_toggle","_valueDisplay","_searchInput","_noResults","_hiddenInput","_menuInstance","_createHiddenInput","_createMenuInstance","_syncInitialSelection","_filterItems","createElement","insertBefore","_getSelectedItems","_updateToggleText","_updateHiddenInput","_showPlaceholder","item","_selectItem","_handleToggleKeydown","_handleMenuKeydown","_getVisibleItems","previouslySelected","bsValue","selectedItems","textContent","label","query","normalizedQuery","_normalizeText","visibleCount","text","normalize","jQueryInterface","each","__defProp","__defProps","defineProperties","__getOwnPropDescs","getOwnPropertyDescriptors","__getOwnPropSymbols","getOwnPropertySymbols","__hasOwnProp","hasOwnProperty","__propIsEnum","propertyIsEnumerable","__defNormalProp","e","t","n","enumerable","writable","__spreadValues","__spreadProps","__publicField","errorMessages","notFoundSelector","notInit","notLocale","incorrectTime","incorrectMonthsCount","setContext","context","destroy","o","l","isInit","inputMode","mainElement","parentElement","removeChild","inputElement","replaceWith","originalElement","onDestroy","skipOpenOnFocus","WeakSet","shouldSkipOpenOnFocus","setSkipOpenOnFocus","clearSkipOpenOnFocus","PREV_TABINDEX_ATTR","isFocusable","tabIndex","storePrevTabIndex","restorePrevTabIndex","disableTabbing","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","FILTER_ACCEPT","FILTER_SKIP","nextNode","restoreTabbing","isShowInInputMode","currentType","vcCalendarHidden","cleanupHandlers","openOnFocus","onHide","getOffset","getViewportDimensions","vw","vh","innerHeight","getWindowScrollPosition","calculateAvailableSpace","s","r","getAvailablePosition","canShow","parentPositions","c","u","m","p","h","condition","handleDay","modifier","className","styles","datePopup","vcDatePopup","innerHTML","sanitizerHTML","ariaExpanded","ariaLabel","appendChild","createDatePopup","popups","getDate","getDateString","getFullYear","String","getMonth","padStart","parseDates","toISOString","substring","getTime","setDate","updateAttribute","setDateModifier","displayDateMin","displayDateMax","disableDates","selectionMonthsMode","selectionYearsMode","disableToday","dateToday","selectedWeekends","selectedHolidays","selectedDates","selectionDatesMode","enableEdgeDatesOnly","getLocaleString","toLocaleString","getWeekNumber","getDay","ceil","year","week","addWeekNumberForDate","firstWeekday","vcDateWeekNumber","setDaysAsDisabled","disableWeekdays","disableAllDates","enableDates","createDate","locale","date","vcDate","vcDateMonth","vcDateWeekDay","role","displayDatesOutside","dateBtn","dateStyle","timeZone","vcDateBtn","innerText","enableWeekNumbers","addDate","onCreateDateEls","createDatesFromCurrentMonth","createDatesFromNextMonth","createDatesFromPrevMonth","createWeekNumbers","weekNumbersTitle","vcWeekNumbers","weekNumbersContent","weekNumber","cloneNode","vcWeekNumber","vcWeekYear","createDates","selectedYear","selectedMonth","vcDatesDisabled","setMonth","datesRow","g","layoutDefault","header","labels","navigation","headerContent","wrapper","content","layoutMonths","layoutMultiple","controls","grid","column","layoutYears","ArrowNext","arrowNext","ArrowPrev","arrowPrev","ControlTime","selectionTimeMode","time","selectingTime","DateRangeTooltip","onCreateDateRangeTooltip","dateRangeTooltip","Dates","dates","Month","month","Months","months","Week","WeekNumbers","weekNumbers","Year","Years","years","components","getComponent","parseLayout","parseMultipleLayout","displayMonthsCount","fill","createLayouts","default","layouts","calendar","vc","vcType","application","vcGrid","vcColumn","setVisibilityArrows","visibility","handleDefaultType","monthsToSwitch","dateMin","dateMax","setFullYear","handleYearType","displayYear","visibilityArrows","visibilityHandler","long","visibilityTitle","setYearModifier","aria","selectedProperty","getColumnID","currentValue","columnID","findIndex","createMonthEl","monthsMonth","vcMonthsMonth","ariaDisabled","createMonths","vcYear","vcMonth","short","onCreateMonthEls","TimeInput","TimeRange","handleActions","hour","minute","selectedHours","selectedMinutes","selectedKeeping","onChangeTime","onChangeToInput","transformTime24","AM","PM","handleClickKeepingTime","btnKeeping","transformTime12","updateInputAndRange","updateKeepingTime$1","handleInput$1","updateInputAndTime","updateKeepingTime","handleRange","handleMouseOver","handleMouseOut","handleTime","timeMaxHour","timeMinHour","timeMaxMinute","timeMinMinute","createTime","timeControls","timeContent","timeHour","timeMinute","timeKeeping","timeRanges","timeRange","timeStepHour","timeStepMinute","createWeek","weekdays","titleShort","titleLong","isWeekend","onClickWeekDay","weekDay","vcWeekDay","vcWeekDayOff","createYearEl","yearsYear","vcYearsYear","createYears","onCreateYearEls","trackChangesHTMLElement","MutationObserver","attributeName","haveListener","check","setTheme","vcTheme","trackChangesThemeInSystemSettings","selectedTheme","addListener","detectTheme","themeAttrDetect","handleTheme","media","capitalizeFirstLetter","getLocaleWeekday","weekday","getLocaleMonth","getLocale","create","handleArrowKeys","localName","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","handleMonth","handleClickArrow","vcArrow","onClickArrow","resolveToggle","canToggleSelection","enableDateToggle","handleSelectDate","createDateRangeTooltip","vcDateRangeTooltip","self","lastDateEl","isHovering","rangeMin","rangeMax","tooltipEl","addHoverEffect","vcDateHover","removeHoverEffect","handleHoverDatesEvent","handleHoverSelectedDatesRangeEvent","optimizedHoverHandler","optimizedHandleHoverDatesEvent","optimizedHandleHoverSelectedDatesRangeEvent","handleCancelSelectionDates","handleMouseLeave","updateDisabledDates","disableDatesPast","handleSelectDateRange","disableDatesGaps","updateDateModifier","handleClickDate","single","onClickDate","enableMonthChangeOnDayClick","current","typeClick","getValue","handleMultipleYearSelection","handleMultipleMonthSelection","handleItemClick","onClickYear","onClickMonth","handleClickType","onClickTitle","handleClickMonthOrYear","handleClickWeekNumber","onClickWeekNumber","handleClickWeekDay","handleClick","initMonthsCount","getLocalDate","getTimezoneOffset","resolveDate","initRange","displayDisabledDates","initSelectedDates","displayClosestValidDate","setInitialContext","initSelectedMonthYear","enableJumpToSelectedDate","initTime","selectedTime","initAllVariables","createToInput","vcInput","onInit","canOpenOnFocus","handleInput","inputModeInit","shiftKey","init","onUpdate","replaceProperties","isArray","findBestPickerPosition","setPosition","vcPosition","click","positionToInput","capture","onShow","inputHour","inputMinute","rangeHour","rangeMinute","OptionsCalendar","_Calendar","memoizedElements","queryAndMemoize","Calendar","EVENT_FOCUSIN_DATA_API","HIDE_DELAY","datepickerTheme","dateFormat","displayElement","inline","positionElement","selectionMode","vcpOptions","Datepicker","_calendar","_initCalendar","_themeObserver","getSelectedDates","setSelectedDates","_isInput","_isInline","_boundInput","_positionElement","_resolvePositionElement","_displayElement","_resolveDisplayElement","calendarOptions","_buildCalendarOptions","_setupThemeObserver","_parseInputValue","_updateDisplayWithSelectedDates","formattedDate","_formatDateForInput","_getThemeAncestor","_getEffectiveTheme","_syncThemeAttribute","theme","attributeFilter","vcpTheme","_handleDateClick","firstDate","_parseDate","_maybeHideAfterSelection","dateStr","day","_formatDate","Intl","DateTimeFormat","format","toLocaleDateString","separator","isNaN","formatted","bsInline","CLASS_NAME_OPEN","DialogBase","_openedAsModal","_addDialogListeners","open","_onBeforeShow","modal","preventBodyScroll","_getShowOptions","_showElement","_hideElement","_closeAndCleanup","_onAfterHide","_getInstantClassName","_getStaticClassName","_onCancel","showModal","_hideChildComponents","_shouldDeferClose","_triggerBackdropTransition","staticClass","eventKey","backdrop","EVENT_CANCEL","CLASS_NAME_NONMODAL","CLASS_NAME_INSTANT","CLASS_NAME_SWAP_IN","Dialog","handleUpdate","showEvent","currentDialog","newDialog","currentInstance","EVENT_UPDATE","EVENT_OVERFLOW","CLASS_NAME_OVERFLOW","CLASS_NAME_OVERFLOW_MENU","CLASS_NAME_HIDDEN","SELECTOR_NAV_ITEM","SELECTOR_NAV_LINK","SELECTOR_OVERFLOW_TOGGLE","SELECTOR_OVERFLOW_MENU","SELECTOR_CUSTOM_ICON","CLASS_NAME_KEEP","collapseBelow","iconPlacement","menuPlacement","moreText","moreIcon","NavOverflow","_items","_overflowItems","_overflowMenu","_overflowToggle","_collapseBelow","_isInitialized","_init","_calculateOverflow","_restoreItems","bsNavOrder","_resolveCollapseBelow","_createOverflowMenu","_setupResizeObserver","iconSpan","_resolveIcon","textSpan","toggleContent","overflowItem","customIconElement","iconClone","iconHtml","outerHTML","cssValue","navWidth","itemsToOverflow","_moveToOverflow","overflowCount","usedWidth","overflowThreshold","sum","toMove","link","clonedLink","bsNavOverflow","EVENT_RESIZE","Drawer","_initSwipe","alreadyOpen","EVENT_STRENGTH_CHANGE","SELECTOR_DATA_STRENGTH","STRENGTH_LEVELS","input","minLength","messages","weak","fair","good","strong","weights","extraLength","lowercase","uppercase","numbers","special","multipleSpecial","longPassword","thresholds","scorer","Strength","_input","_getInput","_segments","_textElement","_currentStrength","_evaluate","getStrength","password","score","_calculateScore","strength","_scoreToStrength","_updateUI","bsStrength","strengthIndex","segment","colorMap","setProperty","EVENT_COMPLETE","EVENT_INPUT","SELECTOR_DATA_OTP","SELECTOR_INPUT","mask","OtpInput","_inputs","_setupInputs","setValue","chars","_checkComplete","emptyInput","_handleInput","_handleKeydown","_handlePaste","_handleFocus","digits","clipboardData","getData","lastIndex","select","EVENT_ADD","EVENT_REMOVE","EVENT_SELECT","SELECTOR_DATA_CHIPS","SELECTOR_GHOST_INPUT","SELECTOR_CHIP","SELECTOR_CHIP_DISMISS","CLASS_NAME_CHIP","CLASS_NAME_CHIP_DISMISS","DEFAULT_DISMISS_ICON","allowDuplicates","maxChips","dismissible","dismissIcon","createOnBlur","Chips","_chips","_selectedChips","_anchorChip","_createInput","_initializeExistingChips","trimmedValue","chip","_createChip","getValues","chipOrValue","_findChipByValue","_getChipValue","removeSelected","chipsToRemove","getSelectedValues","chips","clearSelection","selectChip","addToSelection","rangeSelect","chipElements","_getChipElements","anchorIndex","chipIndex","existingChips","_setupChip","_createDismissButton","bsChipValue","createTextNode","clone","dismiss","_handleInputKeydown","_createChipFromInput","metaKey","ctrlKey","_handleChipKeydown","lastChip","selectionStart","selectionEnd","blur","currentIndex","_handleChipDelete","_navigateChip","_navigateToEdge","_handleSelectAll","remainingChips","focusIndex","targetIndex","targetChip","pastedData","ARIA_ATTRIBUTE_PATTERN","DefaultAllowlist","area","br","col","code","dd","div","dl","dt","em","hr","h1","h2","h3","h4","h5","h6","li","ol","pre","small","span","sub","sup","ul","uriAttributes","SAFE_URL_PATTERN","allowedAttribute","attribute","allowedAttributeList","nodeValue","attributeRegex","some","regex","sanitizeHtml","unsafeHtml","allowList","sanitizeFunction","createdDocument","DOMParser","parseFromString","elementName","attributeList","allowedAttributes","extraClass","sanitize","sanitizeFn","template","DefaultContentType","entry","TemplateFactory","getContent","_resolvePossibleFunction","hasContent","changeContent","_checkContent","toHtml","templateWrapper","_maybeSanitize","_setContent","arg","templateElement","_putElementInTemplate","DISALLOWED_ATTRIBUTES","CLASS_NAME_MODAL","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","EVENT_INSERTED","EVENT_CLICK","EVENT_FOCUSIN","EVENT_FOCUSOUT","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","animation","customClass","delay","title","Tooltip","_isEnabled","_timeout","_isHovered","_activeTrigger","_templateFactory","_newContent","tip","_setListeners","_fixTitle","enable","disable","toggleEnabled","_leave","_enter","_hideModalHandler","_isWithContent","isInTheDom","_getTipElement","closestDialog","_isWithActiveTrigger","_getTitle","_createTipElement","_getContentForTemplate","_getTemplateFactory","tipId","setContent","_initializeOnDelegatedTarget","_getDelegateConfig","arrowElement","arrowX","arrowY","triggers","eventIn","eventOut","_setTimeout","timeout","dataAttributes","dataAttribute","initTooltip","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","initPopover","EVENT_ACTIVATE","CLASS_NAME_MENU_ITEM","SELECTOR_DATA_SPY","SELECTOR_TARGET_LINKS","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","SELECTOR_MENU_TOGGLE","smoothScroll","ScrollSpy","_targetLinks","_observableSections","_rootElement","_activeTarget","_observer","_previousScrollData","visibleEntryTop","parentScrollTop","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","_getNewObserver","section","observableSection","hash","scrollTo","behavior","_observerCallback","targetElement","activate","_process","userScrollsDown","isIntersecting","_clearActiveClass","entryIsLowerThanPrevious","targetLinks","anchor","decodeURI","_activateParents","menuToggle","listGroup","activeNodes","spy","NOT_SELECTOR_MENU_TOGGLE","SELECTOR_TAB_PANEL","SELECTOR_OUTER","SELECTOR_INNER","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","Tab","_setInitialAttributes","_getChildren","innerElem","_elemIsActive","active","_getActiveElem","hideEvent","_deactivate","_activate","relatedElem","_toggleMenu","nextActiveElement","preventScroll","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","EVENT_MOUSEOVER","EVENT_MOUSEOUT","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_hasMouseInteraction","_hasKeyboardInteraction","_clearTimeout","_maybeScheduleHide","isShown","_onInteraction","isInteracting","EVENT_TOGGLE","EVENT_TOGGLED","Toggler","_execute"],"sources":["../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/dom/manipulator.js","../../js/src/util/index.js","../../js/src/util/config.js","../../js/src/base-component.js","../../js/src/dom/selector-engine.js","../../js/src/util/component-functions.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/util/swipe.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../js/src/util/floating-ui.js","../../js/src/menu.js","../../js/src/combobox.js","../../node_modules/vanilla-calendar-pro/index.mjs","../../js/src/datepicker.js","../../js/src/dialog-base.js","../../js/src/dialog.js","../../js/src/nav-overflow.js","../../js/src/drawer.js","../../js/src/strength.js","../../js/src/otp-input.js","../../js/src/chips.js","../../js/src/util/sanitizer.js","../../js/src/util/template-factory.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/src/toggler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${[...instanceMap.keys()][0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n getAny(element) {\n if (elementMap.has(element)) {\n return elementMap.get(element).values().next().value || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, { delegateTarget: element })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n hydrateObj(event, { delegateTarget: target })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events)\n .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'\n const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n let typeEvent = getTypeEvent(originalTypeEvent)\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n callable = wrapFunction(callable)\n }\n\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler, callable) :\n bootstrapHandler(element, callable)\n\n fn.delegationSelector = isDelegated ? handler : null\n fn.callable = callable\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false)\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getElementEvents(element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const evt = hydrateObj(new Event(event, { bubbles: true, cancelable: true }), args)\n element.dispatchEvent(evt)\n return evt\n }\n}\n\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value\n } catch {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value\n }\n })\n }\n }\n\n return obj\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n if (value === Number(value).toString()) {\n return Number(value)\n }\n\n if (value === '' || value === 'null') {\n return null\n }\n\n if (typeof value !== 'string') {\n return value\n }\n\n try {\n return JSON.parse(decodeURIComponent(value))\n } catch {\n return value\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'))\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1)\n attributes[pureKey] = normalizeData(element.dataset[key])\n }\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n if (isElement(object)) {\n return object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.harrytheo.com/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport { isElement, toType } from './index.js'\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {}\n }\n\n static get DefaultType() {\n return {}\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n return config\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n }\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property]\n const valueType = isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n }\n }\n}\n\nexport default Config\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '6.0.0-alpha1'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n // Private\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible, parseSelector } from '../util/index.js'\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`\n }\n\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null\n }\n\n return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null\n}\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [...Element.prototype.querySelectorAll.call(element, selector)]\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [...element.children].filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n let ancestor = element.parentNode.closest(selector)\n\n while (ancestor) {\n parents.push(ancestor)\n ancestor = ancestor.parentNode.closest(selector)\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n },\n\n getSelectorFromElement(element) {\n const selector = getSelector(element)\n\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null\n }\n\n return null\n },\n\n getElementFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.findOne(selector) : null\n },\n\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.find(selector) : []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport { isDisabled } from './index.js'\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`\n const name = component.NAME\n\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`)\n const instance = component.getOrCreateInstance(target)\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]()\n })\n}\n\nconst eventActionOnPlugin = (Plugin, onEvent, stringSelector, method, callback = null) => {\n eventAction(`${onEvent}.${Plugin.NAME}`, stringSelector, data => {\n const instances = data.targets.filter(Boolean).map(element => Plugin.getOrCreateInstance(element))\n if (typeof callback === 'function') {\n callback({ ...data, instances })\n }\n\n for (const instance of instances) {\n instance[method]()\n }\n })\n}\n\nconst eventAction = (onEvent, stringSelector, callback) => {\n const selector = `${stringSelector}:not(.disabled):not(:disabled)`\n EventHandler.on(document, onEvent, selector, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n const selector = SelectorEngine.getSelectorFromElement(this)\n const targets = selector ? SelectorEngine.find(selector) : [this]\n\n callback({ targets, event })\n })\n}\n\nexport {\n enableDismissTrigger,\n eventActionOnPlugin\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE)\n\n if (closeEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE)\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated)\n }\n\n // Private\n _destroyElement() {\n this._element.remove()\n EventHandler.trigger(this._element, EVENT_CLOSED)\n this.dispose()\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close')\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'button'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {\n event.preventDefault()\n\n const button = event.target.closest(SELECTOR_DATA_TOGGLE)\n const data = Button.getOrCreateInstance(button)\n\n data.toggle()\n})\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport Config from './config.js'\nimport { execute } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'swipe'\nconst EVENT_KEY = '.bs.swipe'\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null,\n upCallback: null,\n downCallback: null\n}\n\nconst DefaultType = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)',\n upCallback: '(function|null)',\n downCallback: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super()\n this._element = element\n\n if (!element || !Swipe.isSupported()) {\n return\n }\n\n this._config = this._getConfig(config)\n this._deltaX = 0\n this._deltaY = 0\n this._supportPointerEvents = Boolean(window.PointerEvent)\n this._initEvents()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX\n this._deltaY = event.touches[0].clientY\n\n return\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX\n this._deltaY = event.clientY\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX\n this._deltaY = event.clientY - this._deltaY\n }\n\n this._handleSwipe()\n execute(this._config.endCallback)\n }\n\n _move(event) {\n if (event.touches && event.touches.length > 1) {\n this._deltaX = 0\n this._deltaY = 0\n return\n }\n\n this._deltaX = event.touches[0].clientX - this._deltaX\n this._deltaY = event.touches[0].clientY - this._deltaY\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX)\n const absDeltaY = Math.abs(this._deltaY)\n\n // Determine primary axis: whichever has greater movement wins\n if (absDeltaY > absDeltaX && absDeltaY > SWIPE_THRESHOLD) {\n // Vertical swipe\n const direction = this._deltaY > 0 ? 'down' : 'up'\n this._deltaX = 0\n this._deltaY = 0\n execute(direction === 'down' ? this._config.downCallback : this._config.upCallback)\n return\n }\n\n if (absDeltaX > SWIPE_THRESHOLD) {\n // Horizontal swipe\n const direction = absDeltaX / this._deltaX\n this._deltaX = 0\n this._deltaY = 0\n\n if (!direction) {\n return\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback)\n return\n }\n\n this._deltaX = 0\n this._deltaY = 0\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event))\n }\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n }\n}\n\nexport default Swipe\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getNextActiveElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd\n} from './util/index.js'\nimport Swipe from './util/swipe.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next'\nconst ORDER_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_END = 'carousel-item-end'\nconst CLASS_NAME_START = 'carousel-item-start'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n}\n\nconst DefaultType = {\n interval: 'number',\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._interval = null\n this._activeElement = null\n this._isSliding = false\n this.touchTimeout = null\n this._swipeHelper = null\n\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._addEventListeners()\n\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT)\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (document.visibilityState === 'visible' && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n this._slide(ORDER_PREV)\n }\n\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element)\n }\n\n this._clearInterval()\n }\n\n cycle() {\n this._clearInterval()\n this._updateInterval()\n\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval)\n }\n\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle())\n return\n }\n\n this.cycle()\n }\n\n to(index) {\n const items = this._getItems()\n if (index > items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index))\n return\n }\n\n const activeIndex = this._getItemIndex(this._getActive())\n if (activeIndex === index) {\n return\n }\n\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV\n\n this._slide(order, items[index])\n }\n\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause())\n EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle())\n }\n\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault())\n }\n\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return\n }\n\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n }\n\n this._swipeHelper = new Swipe(this._element, swipeConfig)\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n const direction = KEY_TO_DIRECTION[event.key]\n if (direction) {\n event.preventDefault()\n this._slide(this._directionToOrder(direction))\n }\n }\n\n _getItemIndex(element) {\n return this._getItems().indexOf(element)\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return\n }\n\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE)\n activeIndicator.removeAttribute('aria-current')\n\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement)\n\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE)\n newActiveIndicator.setAttribute('aria-current', 'true')\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._getActive()\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n this._config.interval = elementInterval || this._config.defaultInterval\n }\n\n _slide(order, element = null) {\n if (this._isSliding) {\n return\n }\n\n const activeElement = this._getActive()\n const isNext = order === ORDER_NEXT\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap)\n\n if (nextElement === activeElement) {\n return\n }\n\n const nextElementIndex = this._getItemIndex(nextElement)\n\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n })\n }\n\n const slideEvent = triggerEvent(EVENT_SLIDE)\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n const isCycling = Boolean(this._interval)\n this.pause()\n\n this._isSliding = true\n\n this._setActiveIndicatorElement(nextElementIndex)\n this._activeElement = nextElement\n\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n this._isSliding = false\n\n triggerEvent(EVENT_SLID)\n }\n\n this._queueCallback(completeCallBack, activeElement, this._isAnimated())\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE)\n }\n\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element)\n }\n\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n }\n\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n const carousel = Carousel.getOrCreateInstance(target)\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n carousel.to(slideIndex)\n carousel._maybeEnableCycle()\n return\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next()\n carousel._maybeEnableCycle()\n return\n }\n\n carousel.prev()\n carousel._maybeEnableCycle()\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel)\n }\n})\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getElement,\n reflow\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\nconst Default = {\n parent: null,\n toggle: true\n}\n\nconst DefaultType = {\n parent: '(null|element)',\n toggle: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._triggerArray = []\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElement => foundElement === this._element)\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem)\n }\n }\n\n this._initializeChildren()\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown())\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return\n }\n\n let activeChildren = []\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\n .filter(element => element !== this._element)\n .map(element => Collapse.getOrCreateInstance(element, { toggle: false }))\n }\n\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide()\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n this._addAriaAndCollapsedClass(this._triggerArray, true)\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n this._element.style[dimension] = ''\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n this._queueCallback(complete, this._element, true)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger)\n\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false)\n }\n }\n\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n this._queueCallback(complete, this._element, true)\n }\n\n // Private\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle) // Coerce string values\n config.parent = getElement(config.parent)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE)\n\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element)\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected))\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element))\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return\n }\n\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen)\n element.setAttribute('aria-expanded', isOpen)\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {\n event.preventDefault()\n }\n\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, { toggle: false }).toggle()\n }\n})\n\nexport default Collapse\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n const firstChar = placement[0];\n return firstChar === 't' || firstChar === 'b' ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.includes('start') ? placement.replace('start', 'end') : placement.replace('end', 'start');\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n const side = getSide(placement);\n return oppositeSideMap[side] + placement.slice(side.length);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n// Maximum number of resets that can occur before bailing to avoid infinite reset loops.\nconst MAX_RESET_COUNT = 50;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const platformWithDetectOverflow = platform.detectOverflow ? platform : {\n ...platform,\n detectOverflow\n };\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let resetCount = 0;\n const middlewareData = {};\n for (let i = 0; i < middleware.length; i++) {\n const currentMiddleware = middleware[i];\n if (!currentMiddleware) {\n continue;\n }\n const {\n name,\n fn\n } = currentMiddleware;\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform: platformWithDetectOverflow,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData[name] = {\n ...middlewareData[name],\n ...data\n };\n if (reset && resetCount < MAX_RESET_COUNT) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects,\n platform\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await platform.detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await platform.detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n platform\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && display !== 'inline' && display !== 'contents';\n}\nfunction isTableElement(element) {\n return /^(table|td|th)$/.test(getNodeName(element));\n}\nfunction isTopLayer(element) {\n try {\n if (element.matches(':popover-open')) {\n return true;\n }\n } catch (_e) {\n // no-op\n }\n try {\n return element.matches(':modal');\n } catch (_e) {\n return false;\n }\n}\nconst willChangeRe = /transform|translate|scale|rotate|perspective|filter/;\nconst containRe = /paint|layout|strict|content/;\nconst isNotNone = value => !!value && value !== 'none';\nlet isWebKitValue;\nfunction isContainingBlock(elementOrCss) {\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return isNotNone(css.transform) || isNotNone(css.translate) || isNotNone(css.scale) || isNotNone(css.rotate) || isNotNone(css.perspective) || !isWebKit() && (isNotNone(css.backdropFilter) || isNotNone(css.filter)) || willChangeRe.test(css.willChange || '') || containRe.test(css.contain || '');\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (isWebKitValue == null) {\n isWebKitValue = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('-webkit-backdrop-filter', 'none');\n }\n return isWebKitValue;\n}\nfunction isLastTraversableNode(node) {\n return /^(html|body|#document)$/.test(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n } else {\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n }\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && (currentContainingBlockComputedStyle.position === 'absolute' || currentContainingBlockComputedStyle.position === 'fixed') || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);\n let top = firstRect.top;\n let right = firstRect.right;\n let bottom = firstRect.bottom;\n let left = firstRect.left;\n for (let i = 1; i < clippingAncestors.length; i++) {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);\n top = max(rect.top, top);\n right = min(rect.right, right);\n bottom = min(rect.bottom, bottom);\n left = max(rect.left, left);\n }\n return {\n width: right - left,\n height: bottom - top,\n x: left,\n y: top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...(floating ? getOverflowAncestors(floating) : [])] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver && floating) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n if (floating) {\n resizeObserver.observe(floating);\n }\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/floating-ui.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isRTL } from './index.js'\n\n/**\n * Breakpoints for responsive placement (matches SCSS $breakpoints)\n */\nexport const BREAKPOINTS = {\n sm: 576,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536\n}\n\n/**\n * Default placement with RTL support\n */\nexport const getDefaultPlacement = (fallback = 'bottom') => {\n if (fallback.includes('-start') || fallback.includes('-end')) {\n const [side, alignment] = fallback.split('-')\n const flippedAlignment = alignment === 'start' ? 'end' : 'start'\n return isRTL() ? `${side}-${flippedAlignment}` : fallback\n }\n\n return fallback\n}\n\n/**\n * Parse a placement string that may contain responsive prefixes\n * Example: \"bottom-start md:top-end lg:right\" returns { xs: 'bottom-start', md: 'top-end', lg: 'right' }\n *\n * @param {string} placementString - The placement string to parse\n * @param {string} defaultPlacement - The default placement to use for xs/base\n * @returns {object|null} - Object with breakpoint keys and placement values, or null if not responsive\n */\nexport const parseResponsivePlacement = (placementString, defaultPlacement = 'bottom') => {\n // Check if placement contains responsive prefixes (e.g., \"bottom-start md:top-end\")\n if (!placementString || !placementString.includes(':')) {\n return null\n }\n\n // Parse the placement string into breakpoint-keyed object\n const parts = placementString.split(/\\s+/)\n const placements = { xs: defaultPlacement } // Default fallback\n\n for (const part of parts) {\n if (part.includes(':')) {\n // Responsive placement like \"md:top-end\"\n const [breakpoint, placement] = part.split(':')\n if (BREAKPOINTS[breakpoint] !== undefined) {\n placements[breakpoint] = placement\n }\n } else {\n // Base placement (no prefix = xs/default)\n placements.xs = part\n }\n }\n\n return placements\n}\n\n/**\n * Get the active placement for the current viewport width\n *\n * @param {object} responsivePlacements - Object with breakpoint keys and placement values\n * @param {string} defaultPlacement - Fallback placement\n * @returns {string} - The active placement for current viewport\n */\nexport const getResponsivePlacement = (responsivePlacements, defaultPlacement = 'bottom') => {\n if (!responsivePlacements) {\n return defaultPlacement\n }\n\n // Get current viewport width\n const viewportWidth = window.innerWidth\n\n // Find the largest breakpoint that matches\n let activePlacement = responsivePlacements.xs || defaultPlacement\n\n // Check breakpoints in order (sm, md, lg, xl, 2xl)\n const breakpointOrder = ['sm', 'md', 'lg', 'xl', '2xl']\n\n for (const breakpoint of breakpointOrder) {\n const minWidth = BREAKPOINTS[breakpoint]\n if (viewportWidth >= minWidth && responsivePlacements[breakpoint]) {\n activePlacement = responsivePlacements[breakpoint]\n }\n }\n\n return activePlacement\n}\n\n/**\n * Create media query listeners for responsive placement changes\n *\n * @param {Function} callback - Callback to run when breakpoint changes\n * @returns {Array} - Array of { mql, handler } objects for cleanup\n */\nexport const createBreakpointListeners = callback => {\n const listeners = []\n\n for (const breakpoint of Object.keys(BREAKPOINTS)) {\n const minWidth = BREAKPOINTS[breakpoint]\n const mql = window.matchMedia(`(min-width: ${minWidth}px)`)\n\n mql.addEventListener('change', callback)\n listeners.push({ mql, handler: callback })\n }\n\n return listeners\n}\n\n/**\n * Clean up media query listeners\n *\n * @param {Array} listeners - Array of { mql, handler } objects\n */\nexport const disposeBreakpointListeners = listeners => {\n for (const { mql, handler } of listeners) {\n mql.removeEventListener('change', handler)\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap menu.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n computePosition,\n flip,\n shift,\n offset,\n autoUpdate\n} from '@floating-ui/dom'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n execute,\n getElement,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop\n} from './util/index.js'\nimport {\n parseResponsivePlacement,\n getResponsivePlacement,\n createBreakpointListeners,\n disposeBreakpointListeners\n} from './util/floating-ui.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'menu'\nconst DATA_KEY = 'bs.menu'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\nconst ENTER_KEY = 'Enter'\nconst SPACE_KEY = ' '\nconst RIGHT_MOUSE_BUTTON = 2\n\nconst SUBMENU_CLOSE_DELAY = 100\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"menu\"]:not(.disabled):not(:disabled)'\n\nconst SELECTOR_MENU = '.menu'\nconst SELECTOR_SUBMENU = '.submenu'\nconst SELECTOR_SUBMENU_TOGGLE = '.submenu > .menu-item'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.menu-item:not(.disabled):not(:disabled)'\n\nconst DEFAULT_PLACEMENT = 'bottom-start'\nconst SUBMENU_PLACEMENT = 'end-start'\n\nconst resolveLogicalPlacement = placement => {\n if (isRTL()) {\n return placement.replace(/^start(?=-|$)/, 'right').replace(/^end(?=-|$)/, 'left')\n }\n\n return placement.replace(/^start(?=-|$)/, 'left').replace(/^end(?=-|$)/, 'right')\n}\n\nconst triangleSign = (p1, p2, p3) =>\n ((p1.x - p3.x) * (p2.y - p3.y)) - ((p2.x - p3.x) * (p1.y - p3.y))\n\nconst Default = {\n autoClose: true,\n boundary: 'clippingParents',\n container: false,\n display: 'dynamic',\n offset: [0, 2],\n floatingConfig: null,\n menu: null,\n placement: DEFAULT_PLACEMENT,\n reference: 'toggle',\n strategy: 'absolute',\n submenuTrigger: 'both',\n submenuDelay: SUBMENU_CLOSE_DELAY\n}\n\nconst DefaultType = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n display: 'string',\n offset: '(array|string|function)',\n floatingConfig: '(null|object|function)',\n menu: '(null|element)',\n placement: 'string',\n reference: '(string|element|object)',\n strategy: 'string',\n submenuTrigger: 'string',\n submenuDelay: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass Menu extends BaseComponent {\n static _openInstances = new Set()\n\n constructor(element, config) {\n if (typeof computePosition === 'undefined') {\n throw new TypeError('Bootstrap\\'s menus require Floating UI (https://floating-ui.com)')\n }\n\n super(element, config)\n\n this._floatingCleanup = null\n this._mediaQueryListeners = []\n this._responsivePlacements = null\n this._parent = this._element.parentNode\n this._isSubmenu = this._parent.classList?.contains('submenu')\n this._openSubmenus = new Map()\n this._submenuCloseTimeouts = new Map()\n this._hoverIntentData = null\n\n this._menu = this._config.menu || this._findMenu()\n\n this._menuOriginalParent = this._menu?.parentNode\n\n this._parseResponsivePlacements()\n this._setupSubmenuListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._moveMenuToContainer()\n this._createFloating()\n\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of document.body.children) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n this._element.focus({ focusVisible: false })\n this._element.setAttribute('aria-expanded', 'true')\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.add(CLASS_NAME_SHOW)\n }\n\n Menu._openInstances.add(this)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n this._disposeMediaQueryListeners()\n this._closeAllSubmenus()\n this._clearAllSubmenuTimeouts()\n Menu._openInstances.delete(this)\n super.dispose()\n }\n\n update() {\n if (this._floatingCleanup) {\n this._updateFloatingPosition()\n }\n }\n\n // Private\n _findMenu() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.prev(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.findOne(SELECTOR_MENU, this._parent)\n }\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._closeAllSubmenus()\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.remove(CLASS_NAME_SHOW)\n }\n\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'placement')\n Manipulator.removeDataAttribute(this._menu, 'display')\n Menu._openInstances.delete(this)\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = super._getConfig(config)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createFloating() {\n if (this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'display', 'static')\n return\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n this._updateFloatingPosition(referenceElement)\n\n this._floatingCleanup = autoUpdate(\n referenceElement,\n this._menu,\n () => this._updateFloatingPosition(referenceElement)\n )\n }\n\n async _updateFloatingPosition(referenceElement = null) {\n if (!this._menu) {\n return\n }\n\n if (!referenceElement) {\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n } else {\n referenceElement = this._element\n }\n }\n\n const placement = this._getPlacement()\n const middleware = this._getFloatingMiddleware()\n const floatingConfig = this._getFloatingConfig(placement, middleware)\n\n await this._applyFloatingPosition(\n referenceElement,\n this._menu,\n floatingConfig.placement,\n floatingConfig.middleware,\n floatingConfig.strategy\n )\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement() {\n const placement = this._responsivePlacements ?\n getResponsivePlacement(this._responsivePlacements, DEFAULT_PLACEMENT) :\n this._config.placement\n\n return resolveLogicalPlacement(placement)\n }\n\n _parseResponsivePlacements() {\n this._responsivePlacements = parseResponsivePlacement(this._config.placement, DEFAULT_PLACEMENT)\n\n if (this._responsivePlacements) {\n this._setupMediaQueryListeners()\n }\n }\n\n _setupMediaQueryListeners() {\n this._disposeMediaQueryListeners()\n this._mediaQueryListeners = createBreakpointListeners(() => {\n if (this._isShown()) {\n this._updateFloatingPosition()\n }\n })\n }\n\n _disposeMediaQueryListeners() {\n disposeBreakpointListeners(this._mediaQueryListeners)\n this._mediaQueryListeners = []\n }\n\n _getOffset() {\n const { offset: offsetConfig } = this._config\n\n if (typeof offsetConfig === 'string') {\n return offsetConfig.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offsetConfig === 'function') {\n return ({ placement, rects }) => {\n const result = offsetConfig({ placement, reference: rects.reference, floating: rects.floating }, this._element)\n return result\n }\n }\n\n return offsetConfig\n }\n\n _getFloatingMiddleware() {\n const offsetValue = this._getOffset()\n\n const middleware = [\n offset(\n typeof offsetValue === 'function' ?\n offsetValue :\n { mainAxis: offsetValue[1] || 0, crossAxis: offsetValue[0] || 0 }\n ),\n flip({\n fallbackPlacements: this._getFallbackPlacements()\n }),\n shift({\n boundary: this._config.boundary === 'clippingParents' ? 'clippingAncestors' : this._config.boundary\n })\n ]\n\n return middleware\n }\n\n _getFallbackPlacements() {\n const placement = this._getPlacement()\n\n const fallbackMap = {\n bottom: ['top', 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\n 'bottom-start': ['top-start', 'bottom-end', 'top-end'],\n 'bottom-end': ['top-end', 'bottom-start', 'top-start'],\n top: ['bottom', 'top-start', 'top-end', 'bottom-start', 'bottom-end'],\n 'top-start': ['bottom-start', 'top-end', 'bottom-end'],\n 'top-end': ['bottom-end', 'top-start', 'bottom-start'],\n right: ['left', 'right-start', 'right-end', 'left-start', 'left-end'],\n 'right-start': ['left-start', 'right-end', 'left-end', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'right-start', 'left-start', 'top-end', 'bottom-end'],\n left: ['right', 'left-start', 'left-end', 'right-start', 'right-end'],\n 'left-start': ['right-start', 'left-end', 'right-end', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'left-start', 'right-start', 'top-end', 'bottom-end']\n }\n\n return fallbackMap[placement] || ['top', 'bottom', 'right', 'left']\n }\n\n _getFloatingConfig(placement, middleware) {\n const defaultConfig = {\n placement,\n middleware,\n strategy: this._config.strategy\n }\n\n return {\n ...defaultConfig,\n ...execute(this._config.floatingConfig, [undefined, defaultConfig])\n }\n }\n\n _disposeFloating() {\n if (this._floatingCleanup) {\n this._floatingCleanup()\n this._floatingCleanup = null\n }\n }\n\n _getContainer() {\n const { container } = this._config\n if (container === false) {\n return null\n }\n\n return container === true ? document.body : getElement(container)\n }\n\n _moveMenuToContainer() {\n const container = this._getContainer()\n if (!container || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== container) {\n container.append(this._menu)\n }\n }\n\n _restoreMenuToOriginalParent() {\n if (!this._menuOriginalParent || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== this._menuOriginalParent) {\n this._menuOriginalParent.append(this._menu)\n }\n }\n\n async _applyFloatingPosition(reference, floating, placement, middleware, strategy = 'absolute') {\n if (!floating.isConnected) {\n return null\n }\n\n const { x, y, placement: finalPlacement } = await computePosition(\n reference,\n floating,\n { placement, middleware, strategy }\n )\n\n if (!floating.isConnected) {\n return null\n }\n\n Object.assign(floating.style, {\n position: strategy,\n left: `${x}px`,\n top: `${y}px`,\n margin: '0'\n })\n\n Manipulator.setDataAttribute(floating, 'placement', finalPlacement)\n return finalPlacement\n }\n\n // -------------------------------------------------------------------------\n // Submenu handling\n // -------------------------------------------------------------------------\n\n _setupSubmenuListeners() {\n if (this._config.submenuTrigger === 'hover' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'mouseenter', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerEnter(event)\n })\n\n EventHandler.on(this._menu, 'mouseleave', SELECTOR_SUBMENU, event => {\n this._onSubmenuLeave(event)\n })\n\n EventHandler.on(this._menu, 'mousemove', event => {\n this._trackMousePosition(event)\n })\n }\n\n if (this._config.submenuTrigger === 'click' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'click', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerClick(event)\n })\n }\n }\n\n _onSubmenuTriggerEnter(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n this._cancelSubmenuCloseTimeout(submenu)\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n\n _onSubmenuLeave(event) {\n const submenuWrapper = event.target.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu || !this._openSubmenus.has(submenu)) {\n return\n }\n\n if (this._isMovingTowardSubmenu(event, submenu)) {\n return\n }\n\n this._scheduleSubmenuClose(submenu, submenuWrapper)\n }\n\n _onSubmenuTriggerClick(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n if (this._openSubmenus.has(submenu)) {\n this._closeSubmenu(submenu, submenuWrapper)\n } else {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n }\n\n _openSubmenu(trigger, submenu, submenuWrapper) {\n if (this._openSubmenus.has(submenu)) {\n return\n }\n\n trigger.setAttribute('aria-expanded', 'true')\n trigger.setAttribute('aria-haspopup', 'true')\n\n submenu.classList.add(CLASS_NAME_SHOW)\n submenuWrapper.classList.add(CLASS_NAME_SHOW)\n\n const cleanup = this._createSubmenuFloating(trigger, submenu, submenuWrapper)\n this._openSubmenus.set(submenu, cleanup)\n\n EventHandler.on(submenu, 'mouseenter', () => {\n this._cancelSubmenuCloseTimeout(submenu)\n })\n }\n\n _closeSubmenu(submenu, submenuWrapper) {\n if (!this._openSubmenus.has(submenu)) {\n return\n }\n\n const nestedSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, submenu)\n for (const nested of nestedSubmenus) {\n const nestedWrapper = nested.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(nested, nestedWrapper)\n }\n\n const trigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, submenuWrapper)\n\n const cleanup = this._openSubmenus.get(submenu)\n if (cleanup) {\n cleanup()\n }\n\n this._openSubmenus.delete(submenu)\n EventHandler.off(submenu, 'mouseenter')\n\n if (trigger) {\n trigger.setAttribute('aria-expanded', 'false')\n }\n\n submenu.classList.remove(CLASS_NAME_SHOW)\n submenuWrapper.classList.remove(CLASS_NAME_SHOW)\n\n submenu.style.position = ''\n submenu.style.left = ''\n submenu.style.top = ''\n submenu.style.margin = ''\n }\n\n _closeAllSubmenus() {\n for (const [submenu] of this._openSubmenus) {\n const submenuWrapper = submenu.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(submenu, submenuWrapper)\n }\n }\n\n _closeSiblingSubmenus(currentSubmenuWrapper) {\n const parent = currentSubmenuWrapper.parentNode\n const siblingSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} > ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, parent)\n\n for (const siblingMenu of siblingSubmenus) {\n const siblingWrapper = siblingMenu.closest(SELECTOR_SUBMENU)\n if (siblingWrapper !== currentSubmenuWrapper) {\n this._closeSubmenu(siblingMenu, siblingWrapper)\n }\n }\n }\n\n _createSubmenuFloating(trigger, submenu, submenuWrapper) {\n const referenceElement = submenuWrapper\n const placement = resolveLogicalPlacement(SUBMENU_PLACEMENT)\n const middleware = [\n offset({ mainAxis: 0, crossAxis: -4 }),\n flip({\n fallbackPlacements: [\n resolveLogicalPlacement('start-start'),\n resolveLogicalPlacement('end-end'),\n resolveLogicalPlacement('start-end')\n ]\n }),\n shift({ padding: 8 })\n ]\n\n const updatePosition = () => this._applyFloatingPosition(referenceElement, submenu, placement, middleware)\n\n updatePosition()\n return autoUpdate(referenceElement, submenu, updatePosition)\n }\n\n _scheduleSubmenuClose(submenu, submenuWrapper) {\n this._cancelSubmenuCloseTimeout(submenu)\n\n const timeoutId = setTimeout(() => {\n this._closeSubmenu(submenu, submenuWrapper)\n this._submenuCloseTimeouts.delete(submenu)\n }, this._config.submenuDelay)\n\n this._submenuCloseTimeouts.set(submenu, timeoutId)\n }\n\n _cancelSubmenuCloseTimeout(submenu) {\n const timeoutId = this._submenuCloseTimeouts.get(submenu)\n if (timeoutId) {\n clearTimeout(timeoutId)\n this._submenuCloseTimeouts.delete(submenu)\n }\n }\n\n _clearAllSubmenuTimeouts() {\n for (const timeoutId of this._submenuCloseTimeouts.values()) {\n clearTimeout(timeoutId)\n }\n\n this._submenuCloseTimeouts.clear()\n }\n\n // -------------------------------------------------------------------------\n // Hover intent / Safe triangle\n // -------------------------------------------------------------------------\n\n _trackMousePosition(event) {\n this._hoverIntentData = {\n x: event.clientX,\n y: event.clientY,\n timestamp: Date.now()\n }\n }\n\n _isMovingTowardSubmenu(event, submenu) {\n if (!this._hoverIntentData) {\n return false\n }\n\n const submenuRect = submenu.getBoundingClientRect()\n const currentPos = { x: event.clientX, y: event.clientY }\n const lastPos = { x: this._hoverIntentData.x, y: this._hoverIntentData.y }\n\n const isRtl = isRTL()\n const targetX = isRtl ? submenuRect.right : submenuRect.left\n const topCorner = { x: targetX, y: submenuRect.top }\n const bottomCorner = { x: targetX, y: submenuRect.bottom }\n\n return this._pointInTriangle(currentPos, lastPos, topCorner, bottomCorner)\n }\n\n _pointInTriangle(point, v1, v2, v3) {\n const d1 = triangleSign(point, v1, v2)\n const d2 = triangleSign(point, v2, v3)\n const d3 = triangleSign(point, v3, v1)\n\n const hasNeg = (d1 < 0) || (d2 < 0) || (d3 < 0)\n const hasPos = (d1 > 0) || (d2 > 0) || (d3 > 0)\n\n return !(hasNeg && hasPos)\n }\n\n // -------------------------------------------------------------------------\n // Keyboard navigation\n // -------------------------------------------------------------------------\n\n _selectMenuItem({ key, target }) {\n const currentMenu = target.closest(SELECTOR_MENU) || this._menu\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (!items.length) {\n return\n }\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n _handleSubmenuKeydown(event) {\n const { key, target } = event\n const isRtl = isRTL()\n\n const enterKey = isRtl ? ARROW_LEFT_KEY : ARROW_RIGHT_KEY\n const exitKey = isRtl ? ARROW_RIGHT_KEY : ARROW_LEFT_KEY\n\n const submenuWrapper = target.closest(SELECTOR_SUBMENU)\n const isSubmenuTrigger = submenuWrapper && target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === enterKey && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === exitKey) {\n const currentMenu = target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper) {\n event.preventDefault()\n event.stopPropagation()\n\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n this._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return true\n }\n }\n\n if (key === HOME_KEY || key === END_KEY) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = target.closest(SELECTOR_MENU)\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (items.length) {\n const targetItem = key === HOME_KEY ? items[0] : items.at(-1)\n targetItem.focus()\n }\n\n return true\n }\n\n return false\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n for (const instance of Menu._openInstances) {\n if (instance._config.autoClose === false) {\n continue\n }\n\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(instance._menu)\n if (\n composedPath.includes(instance._element) ||\n (instance._config.autoClose === 'inside' && !isMenuTarget) ||\n (instance._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n if (instance._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n const relatedTarget = { relatedTarget: instance._element }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n instance._completeHide(relatedTarget)\n }\n }\n\n static dataApiKeydownHandler(event) {\n const isInput = /input|textarea/i.test(event.target.tagName)\n const isEscapeEvent = event.key === ESCAPE_KEY\n const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)\n const isLeftOrRightEvent = [ARROW_LEFT_KEY, ARROW_RIGHT_KEY].includes(event.key)\n const isHomeOrEndEvent = [HOME_KEY, END_KEY].includes(event.key)\n const isEnterOrSpaceEvent = [ENTER_KEY, SPACE_KEY].includes(event.key)\n\n const isSubmenuTrigger = event.target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if (!isUpOrDownEvent && !isEscapeEvent && !isLeftOrRightEvent && !isHomeOrEndEvent &&\n !(isEnterOrSpaceEvent && isSubmenuTrigger)) {\n return\n }\n\n if (isInput && !isEscapeEvent) {\n return\n }\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\n this :\n (SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.next(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\n\n if (!getToggleButton) {\n return\n }\n\n const instance = Menu.getOrCreateInstance(getToggleButton)\n\n if ((isLeftOrRightEvent || isHomeOrEndEvent || (isEnterOrSpaceEvent && isSubmenuTrigger)) && instance._handleSubmenuKeydown(event)) {\n return\n }\n\n if (isUpOrDownEvent) {\n event.preventDefault()\n event.stopPropagation()\n instance.show()\n instance._selectMenuItem(event)\n return\n }\n\n if (isEscapeEvent && instance._isShown()) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = event.target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper && instance._openSubmenus.size > 0) {\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n instance._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return\n }\n\n instance.hide()\n getToggleButton.focus()\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Menu.getOrCreateInstance(this).toggle()\n})\n\nexport default Menu\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap combobox.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Menu from './menu.js'\nimport { getNextActiveElement, isDisabled, isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'combobox'\nconst DATA_KEY = 'bs.combobox'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\nconst ENTER_KEY = 'Enter'\nconst SPACE_KEY = ' '\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SELECTED = 'selected'\nconst CLASS_NAME_PLACEHOLDER = 'combobox-placeholder'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"combobox\"]'\nconst SELECTOR_MENU = '.menu'\nconst SELECTOR_MENU_ITEM = '.menu-item[data-bs-value]'\nconst SELECTOR_VISIBLE_ITEMS = '.menu-item[data-bs-value]:not(.disabled):not(:disabled)'\nconst SELECTOR_VALUE = '.combobox-value'\nconst SELECTOR_SEARCH_INPUT = '.combobox-search-input'\nconst SELECTOR_NO_RESULTS = '.combobox-no-results'\n\nconst Default = {\n boundary: 'clippingParents',\n multiple: false,\n name: null,\n offset: [0, 2],\n placeholder: '',\n placement: 'bottom-start',\n search: false,\n searchNormalize: false\n}\n\nconst DefaultType = {\n boundary: '(string|element)',\n multiple: 'boolean',\n name: '(string|null)',\n offset: '(array|string|function)',\n placeholder: 'string',\n placement: 'string',\n search: 'boolean',\n searchNormalize: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Combobox extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._toggle = this._element\n this._menu = SelectorEngine.next(this._toggle, SELECTOR_MENU)[0]\n this._valueDisplay = SelectorEngine.findOne(SELECTOR_VALUE, this._toggle)\n this._searchInput = SelectorEngine.findOne(SELECTOR_SEARCH_INPUT, this._menu)\n this._noResults = SelectorEngine.findOne(SELECTOR_NO_RESULTS, this._menu)\n this._hiddenInput = null\n this._menuInstance = null\n\n this._createHiddenInput()\n this._createMenuInstance()\n this._syncInitialSelection()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._toggle) || this._isShown()) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._toggle, EVENT_SHOW)\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._menuInstance.show()\n\n if (this._searchInput) {\n this._searchInput.value = ''\n this._filterItems('')\n requestAnimationFrame(() => this._searchInput.focus())\n }\n\n EventHandler.trigger(this._toggle, EVENT_SHOWN)\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._toggle, EVENT_HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._menuInstance.hide()\n EventHandler.trigger(this._toggle, EVENT_HIDDEN)\n }\n\n dispose() {\n if (this._menuInstance) {\n this._menuInstance.dispose()\n this._menuInstance = null\n }\n\n if (this._hiddenInput) {\n this._hiddenInput.remove()\n this._hiddenInput = null\n }\n\n EventHandler.off(this._menu, EVENT_KEY)\n EventHandler.off(this._toggle, EVENT_KEY)\n\n super.dispose()\n }\n\n // Private\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _createHiddenInput() {\n const { name } = this._config\n if (!name) {\n return\n }\n\n this._hiddenInput = document.createElement('input')\n this._hiddenInput.type = 'hidden'\n this._hiddenInput.name = name\n this._hiddenInput.value = ''\n this._toggle.parentNode.insertBefore(this._hiddenInput, this._toggle)\n }\n\n _createMenuInstance() {\n this._menuInstance = new Menu(this._toggle, {\n menu: this._menu,\n autoClose: this._config.multiple ? 'outside' : true,\n boundary: this._config.boundary,\n offset: this._config.offset,\n placement: this._config.placement\n })\n }\n\n _syncInitialSelection() {\n const selectedItems = this._getSelectedItems()\n if (selectedItems.length > 0) {\n this._updateToggleText()\n this._updateHiddenInput()\n } else {\n this._showPlaceholder()\n }\n }\n\n _addEventListeners() {\n EventHandler.on(this._menu, 'click', SELECTOR_MENU_ITEM, event => {\n const item = event.target.closest(SELECTOR_MENU_ITEM)\n if (!item || isDisabled(item)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n this._selectItem(item)\n })\n\n EventHandler.on(this._toggle, 'keydown', event => {\n this._handleToggleKeydown(event)\n })\n\n EventHandler.on(this._menu, 'keydown', event => {\n this._handleMenuKeydown(event)\n })\n\n if (this._searchInput) {\n EventHandler.on(this._searchInput, 'input', () => {\n this._filterItems(this._searchInput.value)\n })\n\n EventHandler.on(this._searchInput, 'keydown', event => {\n if (event.key === ARROW_DOWN_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n items[0].focus()\n }\n }\n\n if (event.key === ESCAPE_KEY) {\n this.hide()\n this._toggle.focus()\n }\n })\n }\n }\n\n _selectItem(item) {\n if (this._config.multiple) {\n item.classList.toggle(CLASS_NAME_SELECTED)\n item.setAttribute('aria-selected', item.classList.contains(CLASS_NAME_SELECTED))\n } else {\n const previouslySelected = SelectorEngine.find(`.${CLASS_NAME_SELECTED}`, this._menu)\n for (const prev of previouslySelected) {\n prev.classList.remove(CLASS_NAME_SELECTED)\n prev.setAttribute('aria-selected', 'false')\n }\n\n item.classList.add(CLASS_NAME_SELECTED)\n item.setAttribute('aria-selected', 'true')\n }\n\n this._updateToggleText()\n this._updateHiddenInput()\n\n const value = this._config.multiple ?\n this._getSelectedItems().map(el => el.dataset.bsValue) :\n item.dataset.bsValue\n\n EventHandler.trigger(this._toggle, EVENT_CHANGE, {\n value,\n item\n })\n\n if (!this._config.multiple) {\n this.hide()\n this._toggle.focus()\n }\n }\n\n _updateToggleText() {\n const selectedItems = this._getSelectedItems()\n\n if (selectedItems.length === 0) {\n this._showPlaceholder()\n return\n }\n\n this._valueDisplay.classList.remove(CLASS_NAME_PLACEHOLDER)\n\n if (this._config.multiple && selectedItems.length > 1) {\n this._valueDisplay.textContent = `${selectedItems.length} selected`\n } else {\n const item = selectedItems[0]\n const label = SelectorEngine.findOne('.menu-item-content > span:first-child', item)\n this._valueDisplay.textContent = label ? label.textContent : item.textContent.trim()\n }\n }\n\n _showPlaceholder() {\n const { placeholder } = this._config\n if (placeholder) {\n this._valueDisplay.textContent = placeholder\n this._valueDisplay.classList.add(CLASS_NAME_PLACEHOLDER)\n }\n }\n\n _updateHiddenInput() {\n if (!this._hiddenInput) {\n return\n }\n\n const selectedItems = this._getSelectedItems()\n const values = selectedItems.map(el => el.dataset.bsValue)\n this._hiddenInput.value = this._config.multiple ? values.join(',') : (values[0] || '')\n }\n\n _getSelectedItems() {\n return SelectorEngine.find(`.${CLASS_NAME_SELECTED}`, this._menu)\n }\n\n _getVisibleItems() {\n return SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu)\n .filter(item => isVisible(item))\n }\n\n _filterItems(query) {\n const normalizedQuery = this._normalizeText(query.toLowerCase().trim())\n const items = SelectorEngine.find(SELECTOR_MENU_ITEM, this._menu)\n let visibleCount = 0\n\n for (const item of items) {\n const text = this._normalizeText(item.textContent.toLowerCase().trim())\n const matches = !normalizedQuery || text.includes(normalizedQuery)\n item.style.display = matches ? '' : 'none'\n if (matches) {\n visibleCount++\n }\n }\n\n if (this._noResults) {\n this._noResults.classList.toggle('d-none', visibleCount > 0)\n }\n }\n\n _normalizeText(text) {\n if (this._config.searchNormalize) {\n return text.normalize('NFD').replace(/[\\u0300-\\u036F]/g, '')\n }\n\n return text\n }\n\n _handleToggleKeydown(event) {\n const { key } = event\n\n if (key === ARROW_DOWN_KEY || key === ARROW_UP_KEY) {\n event.preventDefault()\n if (!this._isShown()) {\n this.show()\n }\n\n const items = this._getVisibleItems()\n if (items.length > 0) {\n const target = key === ARROW_DOWN_KEY ? items[0] : items.at(-1)\n target.focus()\n }\n\n return\n }\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && !this._isShown()) {\n event.preventDefault()\n this.show()\n }\n }\n\n _handleMenuKeydown(event) {\n const { key, target } = event\n\n if (key === ESCAPE_KEY) {\n event.preventDefault()\n event.stopPropagation()\n this.hide()\n this._toggle.focus()\n return\n }\n\n if (key === TAB_KEY) {\n this.hide()\n return\n }\n\n const isInput = target.matches('input')\n\n if (key === ARROW_DOWN_KEY || key === ARROW_UP_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n return\n }\n\n if (key === HOME_KEY || key === END_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n const targetItem = key === HOME_KEY ? items[0] : items.at(-1)\n targetItem.focus()\n }\n\n return\n }\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && !isInput) {\n event.preventDefault()\n const item = target.closest(SELECTOR_MENU_ITEM)\n if (item && !isDisabled(item)) {\n this._selectItem(item)\n }\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Combobox.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Combobox.getOrCreateInstance(this).toggle()\n})\n\nEventHandler.on(document, 'DOMContentLoaded', () => {\n for (const toggle of SelectorEngine.find(SELECTOR_DATA_TOGGLE)) {\n Combobox.getOrCreateInstance(toggle)\n }\n})\n\nexport default Combobox\n","/*! name: vanilla-calendar-pro v3.1.0 | url: https://github.com/uvarov-frontend/vanilla-calendar-pro */\nvar __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,n)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,__spreadValues=(e,t)=>{for(var n in t||(t={}))__hasOwnProp.call(t,n)&&__defNormalProp(e,n,t[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(t))__propIsEnum.call(t,n)&&__defNormalProp(e,n,t[n]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t)),__publicField=(e,t,n)=>(__defNormalProp(e,\"symbol\"!=typeof t?t+\"\":t,n),n);const errorMessages={notFoundSelector:e=>`${e} is not found, check the first argument passed to new Calendar.`,notInit:'The calendar has not been initialized, please initialize it using the \"init()\" method first.',notLocale:\"You specified an incorrect language label or did not specify the required number of values for «locale.weekdays» or «locale.months».\",incorrectTime:\"The value of the time property can be: false, 12 or 24.\",incorrectMonthsCount:\"For the «multiple» calendar type, the «displayMonthsCount» parameter can have a value from 2 to 12, and for all others it cannot be greater than 1.\"},setContext=(e,t,n)=>{e.context[t]=n},destroy=e=>{var t,n,a,o,l;if(!e.context.isInit)throw new Error(errorMessages.notInit);e.inputMode?(null==(t=e.context.mainElement.parentElement)||t.removeChild(e.context.mainElement),null==(a=null==(n=e.context.inputElement)?void 0:n.replaceWith)||a.call(n,e.context.originalElement),setContext(e,\"inputElement\",void 0)):null==(l=(o=e.context.mainElement).replaceWith)||l.call(o,e.context.originalElement),setContext(e,\"mainElement\",e.context.originalElement),e.onDestroy&&e.onDestroy(e)},skipOpenOnFocus=new WeakSet,shouldSkipOpenOnFocus=e=>skipOpenOnFocus.has(e),setSkipOpenOnFocus=e=>{skipOpenOnFocus.add(e)},clearSkipOpenOnFocus=e=>{skipOpenOnFocus.delete(e)},PREV_TABINDEX_ATTR=\"data-vc-prev-tabindex\",isFocusable=e=>e.tabIndex>=0&&!e.hasAttribute(\"disabled\")&&\"true\"!==e.getAttribute(\"aria-disabled\"),storePrevTabIndex=e=>{if(e.hasAttribute(PREV_TABINDEX_ATTR))return;const t=e.getAttribute(\"tabindex\");e.setAttribute(PREV_TABINDEX_ATTR,null!=t?t:\"\")},restorePrevTabIndex=e=>{if(!e.hasAttribute(PREV_TABINDEX_ATTR))return;const t=e.getAttribute(PREV_TABINDEX_ATTR);\"\"===t||null===t?e.removeAttribute(\"tabindex\"):e.setAttribute(\"tabindex\",t),e.removeAttribute(PREV_TABINDEX_ATTR)},disableTabbing=e=>{isFocusable(e)&&(storePrevTabIndex(e),e.tabIndex=-1);const t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>isFocusable(e)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;t.nextNode();){const e=t.currentNode;storePrevTabIndex(e),e.tabIndex=-1}},restoreTabbing=e=>{restorePrevTabIndex(e),e.querySelectorAll(`[${PREV_TABINDEX_ATTR}]`).forEach(restorePrevTabIndex)},hide=e=>{if(e.context.isShowInInputMode&&e.context.currentType){if(e.context.mainElement.dataset.vcCalendarHidden=\"\",setContext(e,\"isShowInInputMode\",!1),e.inputMode&&disableTabbing(e.context.mainElement),e.context.cleanupHandlers[0]&&(e.context.cleanupHandlers.forEach((e=>e())),setContext(e,\"cleanupHandlers\",[])),e.inputMode&&e.context.inputElement&&e.context.mainElement.contains(document.activeElement)){(\"function\"==typeof e.openOnFocus||!0===e.openOnFocus)&&setSkipOpenOnFocus(e),e.context.inputElement.focus()}e.onHide&&e.onHide(e)}};function getOffset(e){if(!e||!e.getBoundingClientRect)return{top:0,bottom:0,left:0,right:0};const t=e.getBoundingClientRect(),n=document.documentElement;return{bottom:t.bottom,right:t.right,top:t.top+window.scrollY-n.clientTop,left:t.left+window.scrollX-n.clientLeft}}function getViewportDimensions(){return{vw:Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),vh:Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)}}function getWindowScrollPosition(){return{left:window.scrollX||document.documentElement.scrollLeft||0,top:window.scrollY||document.documentElement.scrollTop||0}}function calculateAvailableSpace(e){const{top:t,left:n}=getWindowScrollPosition(),{top:a,left:o}=getOffset(e),{vh:l,vw:s}=getViewportDimensions(),i=a-t,r=o-n;return{top:i,bottom:l-(i+e.clientHeight),left:r,right:s-(r+e.clientWidth)}}function getAvailablePosition(e,t,n=5){const a={top:!0,bottom:!0,left:!0,right:!0},o=[];if(!t||!e)return{canShow:a,parentPositions:o};const{bottom:l,top:s}=calculateAvailableSpace(e),{top:i,left:r}=getOffset(e),{height:c,width:d}=t.getBoundingClientRect(),{vh:u,vw:m}=getViewportDimensions(),p=m/2,h=u/2;return[{condition:i<h,position:\"top\"},{condition:i>h,position:\"bottom\"},{condition:r<p,position:\"left\"},{condition:r>p,position:\"right\"}].forEach((({condition:e,position:t})=>{e&&o.push(t)})),Object.assign(a,{top:c<=s-n,bottom:c<=l-n,left:d<=r,right:d<=m-r}),{canShow:a,parentPositions:o}}const handleDay=(e,t,n,a)=>{var o;const l=a.querySelector(`[data-vc-date=\"${t}\"]`),s=null==l?void 0:l.querySelector(\"[data-vc-date-btn]\");if(!l||!s)return;if((null==n?void 0:n.modifier)&&s.classList.add(...n.modifier.trim().split(\" \")),!(null==n?void 0:n.html))return;const i=document.createElement(\"div\");i.className=e.styles.datePopup,i.dataset.vcDatePopup=\"\",i.innerHTML=e.sanitizerHTML(n.html),s.ariaExpanded=\"true\",s.ariaLabel=`${s.ariaLabel}, ${null==(o=null==i?void 0:i.textContent)?void 0:o.replace(/^\\s+|\\s+(?=\\s)|\\s+$/g,\"\").replace(/ /g,\" \")}`,l.appendChild(i),requestAnimationFrame((()=>{if(!i)return;const{canShow:e}=getAvailablePosition(l,i),t=e.bottom?l.offsetHeight:-i.offsetHeight,n=e.left&&!e.right?l.offsetWidth-i.offsetWidth/2:!e.left&&e.right?i.offsetWidth/2:0;Object.assign(i.style,{left:`${n}px`,top:`${t}px`})}))},createDatePopup=(e,t)=>{var n;e.popups&&(null==(n=Object.entries(e.popups))||n.forEach((([n,a])=>handleDay(e,n,a,t))))},getDate=e=>new Date(`${e}T00:00:00`),getDateString=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,\"0\")}-${String(e.getDate()).padStart(2,\"0\")}`,parseDates=e=>e.reduce(((e,t)=>{if(t instanceof Date||\"number\"==typeof t){const n=t instanceof Date?t:new Date(t);e.push(n.toISOString().substring(0,10))}else t.match(/^(\\d{4}-\\d{2}-\\d{2})$/g)?e.push(t):t.replace(/(\\d{4}-\\d{2}-\\d{2}).*?(\\d{4}-\\d{2}-\\d{2})/g,((t,n,a)=>{const o=getDate(n),l=getDate(a),s=new Date(o.getTime());for(;s<=l;s.setDate(s.getDate()+1))e.push(getDateString(s));return t}));return e}),[]),updateAttribute=(e,t,n,a=\"\")=>{t?e.setAttribute(n,a):e.getAttribute(n)===a&&e.removeAttribute(n)},setDateModifier=(e,t,n,a,o,l,s)=>{var i,r,c,d;const u=getDate(e.context.displayDateMin)>getDate(l)||getDate(e.context.displayDateMax)<getDate(l)||(null==(i=e.context.disableDates)?void 0:i.includes(l))||!e.selectionMonthsMode&&\"current\"!==s||!e.selectionYearsMode&&getDate(l).getFullYear()!==t;updateAttribute(n,u,\"data-vc-date-disabled\"),a&&updateAttribute(a,u,\"aria-disabled\",\"true\"),a&&updateAttribute(a,u,\"tabindex\",\"-1\"),updateAttribute(n,!e.disableToday&&e.context.dateToday===l,\"data-vc-date-today\"),updateAttribute(n,!e.disableToday&&e.context.dateToday===l,\"aria-current\",\"date\"),updateAttribute(n,null==(r=e.selectedWeekends)?void 0:r.includes(o),\"data-vc-date-weekend\");const m=(null==(c=e.selectedHolidays)?void 0:c[0])?parseDates(e.selectedHolidays):[];if(updateAttribute(n,m.includes(l),\"data-vc-date-holiday\"),(null==(d=e.context.selectedDates)?void 0:d.includes(l))?(n.setAttribute(\"data-vc-date-selected\",\"\"),a&&a.setAttribute(\"aria-selected\",\"true\"),e.context.selectedDates.length>1&&\"multiple-ranged\"===e.selectionDatesMode&&(e.context.selectedDates[0]===l&&e.context.selectedDates[e.context.selectedDates.length-1]===l?n.setAttribute(\"data-vc-date-selected\",\"first-and-last\"):e.context.selectedDates[0]===l?n.setAttribute(\"data-vc-date-selected\",\"first\"):e.context.selectedDates[e.context.selectedDates.length-1]===l&&n.setAttribute(\"data-vc-date-selected\",\"last\"),e.context.selectedDates[0]!==l&&e.context.selectedDates[e.context.selectedDates.length-1]!==l&&n.setAttribute(\"data-vc-date-selected\",\"middle\"))):n.hasAttribute(\"data-vc-date-selected\")&&(n.removeAttribute(\"data-vc-date-selected\"),a&&a.removeAttribute(\"aria-selected\")),!e.context.disableDates.includes(l)&&e.enableEdgeDatesOnly&&e.context.selectedDates.length>1&&\"multiple-ranged\"===e.selectionDatesMode){const t=getDate(e.context.selectedDates[0]),a=getDate(e.context.selectedDates[e.context.selectedDates.length-1]),o=getDate(l);updateAttribute(n,o>t&&o<a,\"data-vc-date-selected\",\"middle\")}},getLocaleString=(e,t,n)=>new Date(`${e}T00:00:00.000Z`).toLocaleString(t,n),getWeekNumber=(e,t)=>{const n=getDate(e),a=(n.getDay()-t+7)%7;n.setDate(n.getDate()+4-a);const o=new Date(n.getFullYear(),0,1),l=Math.ceil(((+n-+o)/864e5+1)/7);return{year:n.getFullYear(),week:l}},addWeekNumberForDate=(e,t,n)=>{const a=getWeekNumber(n,e.firstWeekday);a&&(t.dataset.vcDateWeekNumber=String(a.week))},setDaysAsDisabled=(e,t,n)=>{var a,o,l,s,i;const r=null==(a=e.disableWeekdays)?void 0:a.includes(n),c=e.disableAllDates&&!!(null==(o=e.context.enableDates)?void 0:o[0]);!r&&!c||(null==(l=e.context.enableDates)?void 0:l.includes(t))||(null==(s=e.context.disableDates)?void 0:s.includes(t))||(e.context.disableDates.push(t),null==(i=e.context.disableDates)||i.sort(((e,t)=>+new Date(e)-+new Date(t))))},createDate=(e,t,n,a,o,l)=>{const s=getDate(o).getDay(),i=\"string\"==typeof e.locale&&e.locale.length?e.locale:\"en\",r=document.createElement(\"div\");let c;r.className=e.styles.date,r.dataset.vcDate=o,r.dataset.vcDateMonth=l,r.dataset.vcDateWeekDay=String(s),r.role=\"gridcell\",(\"current\"===l||e.displayDatesOutside)&&(c=document.createElement(\"button\"),c.className=e.styles.dateBtn,c.type=\"button\",c.ariaLabel=getLocaleString(o,i,{dateStyle:\"long\",timeZone:\"UTC\"}),c.dataset.vcDateBtn=\"\",c.innerText=String(a),r.appendChild(c)),e.enableWeekNumbers&&addWeekNumberForDate(e,r,o),setDaysAsDisabled(e,o,s),setDateModifier(e,t,r,c,s,o,l),n.addDate(r),e.onCreateDateEls&&e.onCreateDateEls(e,r)},createDatesFromCurrentMonth=(e,t,n,a,o)=>{for(let l=1;l<=n;l++){const n=new Date(a,o,l);createDate(e,a,t,l,getDateString(n),\"current\")}},createDatesFromNextMonth=(e,t,n,a,o)=>{const l=o+1===12?a+1:a,s=o+1===12?\"01\":o+2<10?`0${o+2}`:o+2;for(let o=1;o<=n;o++){const n=o<10?`0${o}`:String(o);createDate(e,a,t,o,`${l}-${s}-${n}`,\"next\")}},createDatesFromPrevMonth=(e,t,n,a,o)=>{let l=new Date(n,a,0).getDate()-(o-1);const s=0===a?n-1:n,i=0===a?12:a<10?`0${a}`:a;for(let a=o;a>0;a--,l++){createDate(e,n,t,l,`${s}-${i}-${l}`,\"prev\")}},createWeekNumbers=(e,t,n,a,o)=>{if(!e.enableWeekNumbers)return;a.textContent=\"\";const l=document.createElement(\"b\");l.className=e.styles.weekNumbersTitle,l.innerText=\"#\",l.dataset.vcWeekNumbers=\"title\",a.appendChild(l);const s=document.createElement(\"div\");s.className=e.styles.weekNumbersContent,s.dataset.vcWeekNumbers=\"content\",a.appendChild(s);const i=document.createElement(\"button\");i.type=\"button\",i.className=e.styles.weekNumber;const r=o.querySelectorAll(\"[data-vc-date]\"),c=Math.ceil((t+n)/7);for(let t=0;t<c;t++){const n=r[0===t?6:7*t].dataset.vcDate,a=getWeekNumber(n,e.firstWeekday);if(!a)return;const o=i.cloneNode(!0);o.innerText=String(a.week),o.dataset.vcWeekNumber=String(a.week),o.dataset.vcWeekYear=String(a.year),o.role=\"rowheader\",o.ariaLabel=`${a.week}`,s.appendChild(o)}},createDates=e=>{const t=new Date(e.context.selectedYear,e.context.selectedMonth,1),n=e.context.mainElement.querySelectorAll('[data-vc=\"dates\"]'),a=e.context.mainElement.querySelectorAll('[data-vc-week=\"numbers\"]');n.forEach(((n,o)=>{e.selectionDatesMode||(n.dataset.vcDatesDisabled=\"\"),n.textContent=\"\";const l=new Date(t);l.setMonth(l.getMonth()+o);const s=l.getMonth(),i=l.getFullYear(),r=(new Date(i,s,1).getDay()-e.firstWeekday+7)%7,c=new Date(i,s+1,0).getDate(),d=r+c,u=Math.ceil(d/7),m=7*u-d,p=[];for(let t=0;t<u;t++){const t=document.createElement(\"div\");t.className=e.styles.datesRow,t.setAttribute(\"data-vc-dates\",\"row\"),t.setAttribute(\"role\",\"row\"),p.push(t)}let h=0,v=0;const g={addDate:e=>{p[h].appendChild(e),v++,v>=7&&(h++,v=0)}};createDatesFromPrevMonth(e,g,i,s,r),createDatesFromCurrentMonth(e,g,c,i,s),createDatesFromNextMonth(e,g,m,i,s);for(const e of p)n.appendChild(e);createDatePopup(e,n),createWeekNumbers(e,r,c,a[o],n)}))},layoutDefault=e=>`\\n <div class=\"${e.styles.header}\" data-vc=\"header\" role=\"toolbar\" aria-label=\"${e.labels.navigation}\">\\n <#ArrowPrev [month] />\\n <div class=\"${e.styles.headerContent}\" data-vc-header=\"content\">\\n <#Month />\\n <#Year />\\n </div>\\n <#ArrowNext [month] />\\n </div>\\n <div class=\"${e.styles.wrapper}\" data-vc=\"wrapper\">\\n <#WeekNumbers />\\n <div class=\"${e.styles.content}\" data-vc=\"content\" role=\"grid\">\\n <#Week />\\n <#Dates />\\n <#DateRangeTooltip />\\n </div>\\n </div>\\n <#ControlTime />\\n`,layoutMonths=e=>`\\n <div class=\"${e.styles.header}\" data-vc=\"header\" role=\"toolbar\" aria-label=\"${e.labels.navigation}\">\\n <div class=\"${e.styles.headerContent}\" data-vc-header=\"content\">\\n <#Month />\\n <#Year />\\n </div>\\n </div>\\n <div class=\"${e.styles.wrapper}\" data-vc=\"wrapper\">\\n <div class=\"${e.styles.content}\" data-vc=\"content\">\\n <#Months />\\n </div>\\n </div>\\n`,layoutMultiple=e=>`\\n <div class=\"${e.styles.controls}\" data-vc=\"controls\" role=\"toolbar\" aria-label=\"${e.labels.navigation}\">\\n <#ArrowPrev [month] />\\n <#ArrowNext [month] />\\n </div>\\n <div class=\"${e.styles.grid}\" data-vc=\"grid\">\\n <#Multiple>\\n <div class=\"${e.styles.column}\" data-vc=\"column\" role=\"region\">\\n <div class=\"${e.styles.header}\" data-vc=\"header\">\\n <div class=\"${e.styles.headerContent}\" data-vc-header=\"content\">\\n <#Month />\\n <#Year />\\n </div>\\n </div>\\n <div class=\"${e.styles.wrapper}\" data-vc=\"wrapper\">\\n <#WeekNumbers />\\n <div class=\"${e.styles.content}\" data-vc=\"content\" role=\"grid\">\\n <#Week />\\n <#Dates />\\n </div>\\n </div>\\n </div>\\n <#/Multiple>\\n <#DateRangeTooltip />\\n </div>\\n <#ControlTime />\\n`,layoutYears=e=>`\\n <div class=\"${e.styles.header}\" data-vc=\"header\" role=\"toolbar\" aria-label=\"${e.labels.navigation}\">\\n <#ArrowPrev [year] />\\n <div class=\"${e.styles.headerContent}\" data-vc-header=\"content\">\\n <#Month />\\n <#Year />\\n </div>\\n <#ArrowNext [year] />\\n </div>\\n <div class=\"${e.styles.wrapper}\" data-vc=\"wrapper\">\\n <div class=\"${e.styles.content}\" data-vc=\"content\">\\n <#Years />\\n </div>\\n </div>\\n`,ArrowNext=(e,t)=>`<button type=\"button\" class=\"${e.styles.arrowNext}\" data-vc-arrow=\"next\" aria-label=\"${e.labels.arrowNext[t]}\"></button>`,ArrowPrev=(e,t)=>`<button type=\"button\" class=\"${e.styles.arrowPrev}\" data-vc-arrow=\"prev\" aria-label=\"${e.labels.arrowPrev[t]}\"></button>`,ControlTime=e=>e.selectionTimeMode?`<div class=\"${e.styles.time}\" data-vc=\"time\" role=\"group\" aria-label=\"${e.labels.selectingTime}\"></div>`:\"\",DateRangeTooltip=e=>e.onCreateDateRangeTooltip?`<div class=\"${e.styles.dateRangeTooltip}\" data-vc-date-range-tooltip=\"hidden\"></div>`:\"\",Dates=e=>`<div class=\"${e.styles.dates}\" data-vc=\"dates\" aria-live=\"assertive\" aria-label=\"${e.labels.dates}\" ${\"multiple\"===e.type?\"aria-multiselectable\":\"\"}></div>`,Month=e=>`<button type=\"button\" class=\"${e.styles.month}\" data-vc=\"month\"></button>`,Months=e=>`<div class=\"${e.styles.months}\" data-vc=\"months\" role=\"grid\" aria-live=\"assertive\" aria-label=\"${e.labels.months}\"></div>`,Week=e=>`<div class=\"${e.styles.week}\" data-vc=\"week\" role=\"row\" aria-label=\"${e.labels.week}\"></div>`,WeekNumbers=e=>e.enableWeekNumbers?`<div class=\"${e.styles.weekNumbers}\" data-vc-week=\"numbers\" role=\"row\" aria-label=\"${e.labels.weekNumber}\"></div>`:\"\",Year=e=>`<button type=\"button\" class=\"${e.styles.year}\" data-vc=\"year\"></button>`,Years=e=>`<div class=\"${e.styles.years}\" data-vc=\"years\" role=\"grid\" aria-live=\"assertive\" aria-label=\"${e.labels.years}\"></div>`,components={ArrowNext:ArrowNext,ArrowPrev:ArrowPrev,ControlTime:ControlTime,Dates:Dates,DateRangeTooltip:DateRangeTooltip,Month:Month,Months:Months,Week:Week,WeekNumbers:WeekNumbers,Year:Year,Years:Years},getComponent=e=>components[e],parseLayout=(e,t)=>t.replace(/[\\n\\t]/g,\"\").replace(/<#(?!\\/?Multiple)(.*?)>/g,((t,n)=>{const a=(n.match(/\\[(.*?)\\]/)||[])[1],o=n.replace(/[/\\s\\n\\t]|\\[(.*?)\\]/g,\"\"),l=getComponent(o),s=l?l(e,null!=a?a:null):\"\";return e.sanitizerHTML(s)})).replace(/[\\n\\t]/g,\"\"),parseMultipleLayout=(e,t)=>t.replace(new RegExp(\"<#Multiple>(.*?)<#\\\\/Multiple>\",\"gs\"),((t,n)=>{const a=Array(e.context.displayMonthsCount).fill(n).join(\"\");return e.sanitizerHTML(a)})).replace(/[\\n\\t]/g,\"\"),createLayouts=(e,t)=>{const n={default:layoutDefault,month:layoutMonths,year:layoutYears,multiple:layoutMultiple};if(Object.keys(n).forEach((t=>{const a=t;e.layouts[a].length||(e.layouts[a]=n[a](e))})),e.context.mainElement.className=e.styles.calendar,e.context.mainElement.dataset.vc=\"calendar\",e.context.mainElement.dataset.vcType=e.context.currentType,e.context.mainElement.role=\"application\",e.context.mainElement.tabIndex=0,e.context.mainElement.ariaLabel=e.labels.application,\"multiple\"!==e.context.currentType){if(\"multiple\"===e.type&&t){const n=e.context.mainElement.querySelector('[data-vc=\"controls\"]'),a=e.context.mainElement.querySelector('[data-vc=\"grid\"]'),o=t.closest('[data-vc=\"column\"]');return n&&n.remove(),a&&(a.dataset.vcGrid=\"hidden\"),o&&(o.dataset.vcColumn=e.context.currentType),void(o&&(o.innerHTML=e.sanitizerHTML(parseLayout(e,e.layouts[e.context.currentType]))))}e.context.mainElement.innerHTML=e.sanitizerHTML(parseLayout(e,e.layouts[e.context.currentType]))}else e.context.mainElement.innerHTML=e.sanitizerHTML(parseMultipleLayout(e,parseLayout(e,e.layouts[e.context.currentType])))},setVisibilityArrows=(e,t,n,a)=>{e.style.visibility=n?\"hidden\":\"\",t.style.visibility=a?\"hidden\":\"\"},handleDefaultType=(e,t,n)=>{const a=getDate(getDateString(new Date(e.context.selectedYear,e.context.selectedMonth,1))),o=new Date(a.getTime()),l=new Date(a.getTime());o.setMonth(o.getMonth()-e.monthsToSwitch),l.setMonth(l.getMonth()+e.monthsToSwitch);const s=getDate(e.context.dateMin),i=getDate(e.context.dateMax);e.selectionYearsMode||(s.setFullYear(a.getFullYear()),i.setFullYear(a.getFullYear()));const r=!e.selectionMonthsMode||o.getFullYear()<s.getFullYear()||o.getFullYear()===s.getFullYear()&&o.getMonth()<s.getMonth(),c=!e.selectionMonthsMode||l.getFullYear()>i.getFullYear()||l.getFullYear()===i.getFullYear()&&l.getMonth()>i.getMonth()-(e.context.displayMonthsCount-1);setVisibilityArrows(t,n,r,c)},handleYearType=(e,t,n)=>{const a=getDate(e.context.dateMin),o=getDate(e.context.dateMax),l=!!(a.getFullYear()&&e.context.displayYear-7<=a.getFullYear()),s=!!(o.getFullYear()&&e.context.displayYear+7>=o.getFullYear());setVisibilityArrows(t,n,l,s)},visibilityArrows=e=>{if(\"month\"===e.context.currentType)return;const t=e.context.mainElement.querySelector('[data-vc-arrow=\"prev\"]'),n=e.context.mainElement.querySelector('[data-vc-arrow=\"next\"]');if(!t||!n)return;({default:()=>handleDefaultType(e,t,n),year:()=>handleYearType(e,t,n)})[\"multiple\"===e.context.currentType?\"default\":e.context.currentType]()},visibilityHandler=(e,t,n,a,o)=>{const l=new Date(a.setFullYear(e.context.selectedYear,e.context.selectedMonth+n)).getFullYear(),s=new Date(a.setMonth(e.context.selectedMonth+n)).getMonth(),i=e.context.locale.months.long[s],r=t.closest('[data-vc=\"column\"]');r&&(r.ariaLabel=`${i} ${l}`);const c={month:{id:s,label:i},year:{id:l,label:l}};t.innerText=String(c[o].label),t.dataset[`vc${o.charAt(0).toUpperCase()+o.slice(1)}`]=String(c[o].id),t.ariaLabel=`${e.labels[o]} ${c[o].label}`;const d={month:e.selectionMonthsMode,year:e.selectionYearsMode},u=!1===d[o]||\"only-arrows\"===d[o];u&&(t.tabIndex=-1),t.disabled=u},visibilityTitle=e=>{const t=e.context.mainElement.querySelectorAll('[data-vc=\"month\"]'),n=e.context.mainElement.querySelectorAll('[data-vc=\"year\"]'),a=new Date(e.context.selectedYear,e.context.selectedMonth,1);[t,n].forEach((t=>null==t?void 0:t.forEach(((t,n)=>visibilityHandler(e,t,n,a,t.dataset.vc)))))},setYearModifier=(e,t,n,a,o)=>{var l;const s={month:\"[data-vc-months-month]\",year:\"[data-vc-years-year]\"},i={month:{selected:\"data-vc-months-month-selected\",aria:\"aria-selected\",value:\"vcMonthsMonth\",selectedProperty:\"selectedMonth\"},year:{selected:\"data-vc-years-year-selected\",aria:\"aria-selected\",value:\"vcYearsYear\",selectedProperty:\"selectedYear\"}};o&&(null==(l=e.context.mainElement.querySelectorAll(s[n]))||l.forEach((e=>{e.removeAttribute(i[n].selected),e.removeAttribute(i[n].aria)})),setContext(e,i[n].selectedProperty,Number(t.dataset[i[n].value])),visibilityTitle(e),\"year\"===n&&visibilityArrows(e)),a&&(t.setAttribute(i[n].selected,\"\"),t.setAttribute(i[n].aria,\"true\"))},getColumnID=(e,t)=>{var n;if(\"multiple\"!==e.type)return{currentValue:null,columnID:0};const a=e.context.mainElement.querySelectorAll('[data-vc=\"column\"]'),o=Array.from(a).findIndex((e=>e.closest(`[data-vc-column=\"${t}\"]`)));return{currentValue:o>=0?Number(null==(n=a[o].querySelector(`[data-vc=\"${t}\"]`))?void 0:n.getAttribute(`data-vc-${t}`)):null,columnID:Math.max(o,0)}},createMonthEl=(e,t,n,a,o,l,s)=>{const i=t.cloneNode(!1);return i.className=e.styles.monthsMonth,i.innerText=a,i.ariaLabel=o,i.role=\"gridcell\",i.dataset.vcMonthsMonth=`${s}`,l&&(i.ariaDisabled=\"true\"),l&&(i.tabIndex=-1),i.disabled=l,setYearModifier(e,i,\"month\",n===s,!1),i},createMonths=(e,t)=>{var n,a;const o=null==(n=null==t?void 0:t.closest('[data-vc=\"header\"]'))?void 0:n.querySelector('[data-vc=\"year\"]'),l=o?Number(o.dataset.vcYear):e.context.selectedYear,s=(null==t?void 0:t.dataset.vcMonth)?Number(t.dataset.vcMonth):e.context.selectedMonth;setContext(e,\"currentType\",\"month\"),createLayouts(e,t),visibilityTitle(e);const i=e.context.mainElement.querySelector('[data-vc=\"months\"]');if(!e.selectionMonthsMode||!i)return;const r=e.monthsToSwitch>1?e.context.locale.months.long.map(((t,n)=>s-e.monthsToSwitch*n)).concat(e.context.locale.months.long.map(((t,n)=>s+e.monthsToSwitch*n))).filter((e=>e>=0&&e<=12)):Array.from(Array(12).keys()),c=document.createElement(\"button\");c.type=\"button\";for(let t=0;t<12;t++){const n=getDate(e.context.dateMin),a=getDate(e.context.dateMax),o=e.context.displayMonthsCount-1,{columnID:d}=getColumnID(e,\"month\"),u=l<=n.getFullYear()&&t<n.getMonth()+d||l>=a.getFullYear()&&t>a.getMonth()-o+d||l>a.getFullYear()||t!==s&&!r.includes(t),m=createMonthEl(e,c,s,e.context.locale.months.short[t],e.context.locale.months.long[t],u,t);i.appendChild(m),e.onCreateMonthEls&&e.onCreateMonthEls(e,m)}null==(a=e.context.mainElement.querySelector(\"[data-vc-months-month]:not([disabled])\"))||a.focus()},TimeInput=(e,t,n,a,o)=>`\\n <label class=\"${t}\" data-vc-time-input=\"${e}\">\\n <input type=\"text\" name=\"${e}\" maxlength=\"2\" aria-label=\"${n[`input${e.charAt(0).toUpperCase()+e.slice(1)}`]}\" value=\"${a}\" ${o?\"disabled\":\"\"}>\\n </label>\\n`,TimeRange=(e,t,n,a,o,l,s)=>`\\n <label class=\"${t}\" data-vc-time-range=\"${e}\">\\n <input type=\"range\" name=\"${e}\" min=\"${a}\" max=\"${o}\" step=\"${l}\" aria-label=\"${n[`range${e.charAt(0).toUpperCase()+e.slice(1)}`]}\" value=\"${s}\">\\n </label>\\n`,handleActions=(e,t,n,a)=>{({hour:()=>setContext(e,\"selectedHours\",n),minute:()=>setContext(e,\"selectedMinutes\",n)})[a](),setContext(e,\"selectedTime\",`${e.context.selectedHours}:${e.context.selectedMinutes}${e.context.selectedKeeping?` ${e.context.selectedKeeping}`:\"\"}`),e.onChangeTime&&e.onChangeTime(e,t,!1),e.inputMode&&e.context.inputElement&&e.context.mainElement&&e.onChangeToInput&&e.onChangeToInput(e,t)},transformTime24=(e,t)=>{var n;return(null==(n={0:{AM:\"00\",PM:\"12\"},1:{AM:\"01\",PM:\"13\"},2:{AM:\"02\",PM:\"14\"},3:{AM:\"03\",PM:\"15\"},4:{AM:\"04\",PM:\"16\"},5:{AM:\"05\",PM:\"17\"},6:{AM:\"06\",PM:\"18\"},7:{AM:\"07\",PM:\"19\"},8:{AM:\"08\",PM:\"20\"},9:{AM:\"09\",PM:\"21\"},10:{AM:\"10\",PM:\"22\"},11:{AM:\"11\",PM:\"23\"},12:{AM:\"00\",PM:\"12\"}}[Number(e)])?void 0:n[t])||String(e)},handleClickKeepingTime=(e,t,n,a,o)=>{const l=l=>{const s=\"AM\"===e.context.selectedKeeping?\"PM\":\"AM\",i=transformTime24(e.context.selectedHours,s);Number(i)<=a&&Number(i)>=o?(setContext(e,\"selectedKeeping\",s),n.value=i,handleActions(e,l,e.context.selectedHours,\"hour\"),t.ariaLabel=`${e.labels.btnKeeping} ${e.context.selectedKeeping}`,t.innerText=e.context.selectedKeeping):e.onChangeTime&&e.onChangeTime(e,l,!0)};return t.addEventListener(\"click\",l),()=>{t.removeEventListener(\"click\",l)}},transformTime12=e=>({0:\"12\",13:\"01\",14:\"02\",15:\"03\",16:\"04\",17:\"05\",18:\"06\",19:\"07\",20:\"08\",21:\"09\",22:\"10\",23:\"11\"}[Number(e)]||String(e)),updateInputAndRange=(e,t,n,a)=>{e.value=n,t.value=a},updateKeepingTime$1=(e,t,n)=>{t&&n&&(setContext(e,\"selectedKeeping\",n),t.innerText=n)},handleInput$1=(e,t,n,a,o,l,s)=>{const i={hour:(i,r,c)=>{if(!e.selectionTimeMode)return;({12:()=>{if(!e.context.selectedKeeping)return;const d=Number(transformTime24(r,e.context.selectedKeeping));if(!(d<=l&&d>=s))return updateInputAndRange(n,t,e.context.selectedHours,e.context.selectedHours),void(e.onChangeTime&&e.onChangeTime(e,c,!0));updateInputAndRange(n,t,transformTime12(r),transformTime24(r,e.context.selectedKeeping)),i>12&&updateKeepingTime$1(e,a,\"PM\"),handleActions(e,c,transformTime12(r),o)},24:()=>{if(!(i<=l&&i>=s))return updateInputAndRange(n,t,e.context.selectedHours,e.context.selectedHours),void(e.onChangeTime&&e.onChangeTime(e,c,!0));updateInputAndRange(n,t,r,r),handleActions(e,c,r,o)}})[e.selectionTimeMode]()},minute:(a,i,r)=>{if(!(a<=l&&a>=s))return n.value=e.context.selectedMinutes,void(e.onChangeTime&&e.onChangeTime(e,r,!0));n.value=i,t.value=i,handleActions(e,r,i,o)}},r=e=>{const t=Number(n.value),a=n.value.padStart(2,\"0\");i[o]&&i[o](t,a,e)};return n.addEventListener(\"change\",r),()=>{n.removeEventListener(\"change\",r)}},updateInputAndTime=(e,t,n,a,o)=>{t.value=o,handleActions(e,n,o,a)},updateKeepingTime=(e,t,n)=>{t&&(setContext(e,\"selectedKeeping\",n),t.innerText=n)},handleRange=(e,t,n,a,o)=>{const l=l=>{const s=Number(t.value),i=t.value.padStart(2,\"0\"),r=\"hour\"===o,c=24===e.selectionTimeMode,d=s>0&&s<12;r&&!c&&updateKeepingTime(e,a,0===s||d?\"AM\":\"PM\"),updateInputAndTime(e,n,l,o,!r||c||d?i:transformTime12(t.value))};return t.addEventListener(\"input\",l),()=>{t.removeEventListener(\"input\",l)}},handleMouseOver=e=>e.setAttribute(\"data-vc-input-focus\",\"\"),handleMouseOut=e=>e.removeAttribute(\"data-vc-input-focus\"),handleTime=(e,t)=>{const n=t.querySelector('[data-vc-time-range=\"hour\"] input[name=\"hour\"]'),a=t.querySelector('[data-vc-time-range=\"minute\"] input[name=\"minute\"]'),o=t.querySelector('[data-vc-time-input=\"hour\"] input[name=\"hour\"]'),l=t.querySelector('[data-vc-time-input=\"minute\"] input[name=\"minute\"]'),s=t.querySelector('[data-vc-time=\"keeping\"]');if(!(n&&a&&o&&l))return;const i=e=>{e.target===n&&handleMouseOver(o),e.target===a&&handleMouseOver(l)},r=e=>{e.target===n&&handleMouseOut(o),e.target===a&&handleMouseOut(l)};return t.addEventListener(\"mouseover\",i),t.addEventListener(\"mouseout\",r),handleInput$1(e,n,o,s,\"hour\",e.timeMaxHour,e.timeMinHour),handleInput$1(e,a,l,s,\"minute\",e.timeMaxMinute,e.timeMinMinute),handleRange(e,n,o,s,\"hour\"),handleRange(e,a,l,s,\"minute\"),s&&handleClickKeepingTime(e,s,n,e.timeMaxHour,e.timeMinHour),()=>{t.removeEventListener(\"mouseover\",i),t.removeEventListener(\"mouseout\",r)}},createTime=e=>{const t=e.context.mainElement.querySelector('[data-vc=\"time\"]');if(!e.selectionTimeMode||!t)return;const[n,a]=[e.timeMinHour,e.timeMaxHour],[o,l]=[e.timeMinMinute,e.timeMaxMinute],s=e.context.selectedKeeping?transformTime24(e.context.selectedHours,e.context.selectedKeeping):e.context.selectedHours,i=\"range\"===e.timeControls;var r;t.innerHTML=e.sanitizerHTML(`\\n <div class=\"${e.styles.timeContent}\" data-vc-time=\"content\">\\n ${TimeInput(\"hour\",e.styles.timeHour,e.labels,e.context.selectedHours,i)}\\n ${TimeInput(\"minute\",e.styles.timeMinute,e.labels,e.context.selectedMinutes,i)}\\n ${12===e.selectionTimeMode?(r=e.context.selectedKeeping,`<button type=\"button\" class=\"${e.styles.timeKeeping}\" aria-label=\"${e.labels.btnKeeping} ${r}\" data-vc-time=\"keeping\" ${i?\"disabled\":\"\"}>${r}</button>`):\"\"}\\n </div>\\n <div class=\"${e.styles.timeRanges}\" data-vc-time=\"ranges\">\\n ${TimeRange(\"hour\",e.styles.timeRange,e.labels,n,a,e.timeStepHour,s)}\\n ${TimeRange(\"minute\",e.styles.timeRange,e.labels,o,l,e.timeStepMinute,e.context.selectedMinutes)}\\n </div>\\n `),handleTime(e,t)},createWeek=e=>{const t=e.selectedWeekends?[...e.selectedWeekends]:[],n=[...e.context.locale.weekdays.long].reduce(((n,a,o)=>[...n,{id:o,titleShort:e.context.locale.weekdays.short[o],titleLong:a,isWeekend:t.includes(o)}]),[]),a=[...n.slice(e.firstWeekday),...n.slice(0,e.firstWeekday)];e.context.mainElement.querySelectorAll('[data-vc=\"week\"]').forEach((t=>{const n=e.onClickWeekDay?document.createElement(\"button\"):document.createElement(\"b\");e.onClickWeekDay&&(n.type=\"button\"),a.forEach((a=>{const o=n.cloneNode(!0);o.innerText=a.titleShort,o.className=e.styles.weekDay,o.role=\"columnheader\",o.ariaLabel=a.titleLong,o.dataset.vcWeekDay=String(a.id),a.isWeekend&&(o.dataset.vcWeekDayOff=\"\"),t.appendChild(o)}))}))},createYearEl=(e,t,n,a,o)=>{const l=t.cloneNode(!1);return l.className=e.styles.yearsYear,l.innerText=String(o),l.ariaLabel=String(o),l.role=\"gridcell\",l.dataset.vcYearsYear=`${o}`,a&&(l.ariaDisabled=\"true\"),a&&(l.tabIndex=-1),l.disabled=a,setYearModifier(e,l,\"year\",n===o,!1),l},createYears=(e,t)=>{var n;const a=(null==t?void 0:t.dataset.vcYear)?Number(t.dataset.vcYear):e.context.selectedYear;setContext(e,\"currentType\",\"year\"),createLayouts(e,t),visibilityTitle(e),visibilityArrows(e);const o=e.context.mainElement.querySelector('[data-vc=\"years\"]');if(!e.selectionYearsMode||!o)return;const l=\"multiple\"!==e.type||e.context.selectedYear===a?0:1,s=document.createElement(\"button\");s.type=\"button\";for(let t=e.context.displayYear-7;t<e.context.displayYear+8;t++){const n=t<getDate(e.context.dateMin).getFullYear()+l||t>getDate(e.context.dateMax).getFullYear(),i=createYearEl(e,s,a,n,t);o.appendChild(i),e.onCreateYearEls&&e.onCreateYearEls(e,i)}null==(n=e.context.mainElement.querySelector(\"[data-vc-years-year]:not([disabled])\"))||n.focus()},trackChangesHTMLElement=(e,t,n)=>{new MutationObserver((e=>{for(let a=0;a<e.length;a++){if(e[a].attributeName===t){n();break}}})).observe(e,{attributes:!0})},haveListener={value:!1,set:()=>haveListener.value=!0,check:()=>haveListener.value},setTheme=(e,t)=>e.dataset.vcTheme=t,trackChangesThemeInSystemSettings=(e,t)=>{if(setTheme(e.context.mainElement,t.matches?\"dark\":\"light\"),\"system\"!==e.selectedTheme||haveListener.check())return;const n=e=>{const t=document.querySelectorAll('[data-vc=\"calendar\"]');null==t||t.forEach((t=>setTheme(t,e.matches?\"dark\":\"light\")))};t.addEventListener?t.addEventListener(\"change\",n):t.addListener(n),haveListener.set()},detectTheme=(e,t)=>{const n=e.themeAttrDetect.length?document.querySelector(e.themeAttrDetect):null,a=e.themeAttrDetect.replace(/^.*\\[(.+)\\]/g,((e,t)=>t));if(!n||\"system\"===n.getAttribute(a))return void trackChangesThemeInSystemSettings(e,t);const o=n.getAttribute(a);o?(setTheme(e.context.mainElement,o),trackChangesHTMLElement(n,a,(()=>{const t=n.getAttribute(a);t&&setTheme(e.context.mainElement,t)}))):trackChangesThemeInSystemSettings(e,t)},handleTheme=e=>{\"not all\"!==window.matchMedia(\"(prefers-color-scheme)\").media?\"system\"===e.selectedTheme?detectTheme(e,window.matchMedia(\"(prefers-color-scheme: dark)\")):setTheme(e.context.mainElement,e.selectedTheme):setTheme(e.context.mainElement,\"light\")},capitalizeFirstLetter=e=>e.charAt(0).toUpperCase()+e.slice(1).replace(/\\./,\"\"),getLocaleWeekday=(e,t,n)=>{const a=new Date(`1978-01-0${t+1}T00:00:00.000Z`),o=a.toLocaleString(n,{weekday:\"short\",timeZone:\"UTC\"}),l=a.toLocaleString(n,{weekday:\"long\",timeZone:\"UTC\"});e.context.locale.weekdays.short.push(capitalizeFirstLetter(o)),e.context.locale.weekdays.long.push(capitalizeFirstLetter(l))},getLocaleMonth=(e,t,n)=>{const a=new Date(`1978-${String(t+1).padStart(2,\"0\")}-01T00:00:00.000Z`),o=a.toLocaleString(n,{month:\"short\",timeZone:\"UTC\"}),l=a.toLocaleString(n,{month:\"long\",timeZone:\"UTC\"});e.context.locale.months.short.push(capitalizeFirstLetter(o)),e.context.locale.months.long.push(capitalizeFirstLetter(l))},getLocale=e=>{var t,n,a,o,l,s,i,r;if(!(e.context.locale.weekdays.short[6]&&e.context.locale.weekdays.long[6]&&e.context.locale.months.short[11]&&e.context.locale.months.long[11]))if(\"string\"==typeof e.locale){if(\"string\"==typeof e.locale&&!e.locale.length)throw new Error(errorMessages.notLocale);Array.from({length:7},((t,n)=>getLocaleWeekday(e,n,e.locale))),Array.from({length:12},((t,n)=>getLocaleMonth(e,n,e.locale)))}else{if(!((null==(n=null==(t=e.locale)?void 0:t.weekdays)?void 0:n.short[6])&&(null==(o=null==(a=e.locale)?void 0:a.weekdays)?void 0:o.long[6])&&(null==(s=null==(l=e.locale)?void 0:l.months)?void 0:s.short[11])&&(null==(r=null==(i=e.locale)?void 0:i.months)?void 0:r.long[11])))throw new Error(errorMessages.notLocale);setContext(e,\"locale\",__spreadValues({},e.locale))}},create=e=>{const t={default:()=>{createWeek(e),createDates(e)},multiple:()=>{createWeek(e),createDates(e)},month:()=>createMonths(e),year:()=>createYears(e)};handleTheme(e),getLocale(e),createLayouts(e),visibilityTitle(e),visibilityArrows(e),createTime(e),t[e.context.currentType]()},handleArrowKeys=e=>{const t=t=>{var n;const a=t.target;if(![\"ArrowUp\",\"ArrowDown\",\"ArrowLeft\",\"ArrowRight\"].includes(t.key)||\"button\"!==a.localName)return;const o=Array.from(e.context.mainElement.querySelectorAll('[data-vc=\"calendar\"] button')),l=o.indexOf(a);if(-1===l)return;const s=(i=o[l]).hasAttribute(\"data-vc-date-btn\")?7:i.hasAttribute(\"data-vc-months-month\")?4:i.hasAttribute(\"data-vc-years-year\")?5:1;var i;const r=(0,{ArrowUp:()=>Math.max(0,l-s),ArrowDown:()=>Math.min(o.length-1,l+s),ArrowLeft:()=>Math.max(0,l-1),ArrowRight:()=>Math.min(o.length-1,l+1)}[t.key])();null==(n=o[r])||n.focus()};return e.context.mainElement.addEventListener(\"keydown\",t),()=>e.context.mainElement.removeEventListener(\"keydown\",t)},handleMonth=(e,t)=>{const n=getDate(getDateString(new Date(e.context.selectedYear,e.context.selectedMonth,1)));({prev:()=>n.setMonth(n.getMonth()-e.monthsToSwitch),next:()=>n.setMonth(n.getMonth()+e.monthsToSwitch)})[t](),setContext(e,\"selectedMonth\",n.getMonth()),setContext(e,\"selectedYear\",n.getFullYear()),visibilityTitle(e),visibilityArrows(e),createDates(e)},handleClickArrow=(e,t)=>{const n=t.target.closest(\"[data-vc-arrow]\");if(n){if([\"default\",\"multiple\"].includes(e.context.currentType))handleMonth(e,n.dataset.vcArrow);else if(\"year\"===e.context.currentType&&void 0!==e.context.displayYear){const a={prev:-15,next:15}[n.dataset.vcArrow];setContext(e,\"displayYear\",e.context.displayYear+a),createYears(e,t.target)}e.onClickArrow&&e.onClickArrow(e,t)}},resolveToggle=(e,t)=>void 0===t||(\"function\"==typeof t?t(e):t),canToggleSelection=e=>resolveToggle(e,e.enableDateToggle),handleSelectDate=(e,t,n)=>{const a=t.dataset.vcDate,o=t.closest(\"[data-vc-date][data-vc-date-selected]\"),l=canToggleSelection(e);if(o&&!l)return;const s=o?e.context.selectedDates.filter((e=>e!==a)):n?[...e.context.selectedDates,a]:[a];setContext(e,\"selectedDates\",s)},createDateRangeTooltip=(e,t,n)=>{if(!t)return;if(!n)return t.dataset.vcDateRangeTooltip=\"hidden\",void(t.textContent=\"\");const a=e.context.mainElement.getBoundingClientRect(),o=n.getBoundingClientRect();t.style.left=o.left-a.left+o.width/2+\"px\",t.style.top=o.bottom-a.top-o.height+\"px\",t.dataset.vcDateRangeTooltip=\"visible\",t.innerHTML=e.sanitizerHTML(e.onCreateDateRangeTooltip(e,n,t,o,a))},state={self:null,lastDateEl:null,isHovering:!1,rangeMin:void 0,rangeMax:void 0,tooltipEl:null,timeoutId:null},addHoverEffect=(e,t,n)=>{var a,o,l;if(!(null==(o=null==(a=state.self)?void 0:a.context)?void 0:o.selectedDates[0]))return;const s=getDateString(e);(null==(l=state.self.context.disableDates)?void 0:l.includes(s))||(state.self.context.mainElement.querySelectorAll(`[data-vc-date=\"${s}\"]`).forEach((e=>e.dataset.vcDateHover=\"\")),t.forEach((e=>e.dataset.vcDateHover=\"first\")),n.forEach((e=>{\"first\"===e.dataset.vcDateHover?e.dataset.vcDateHover=\"first-and-last\":e.dataset.vcDateHover=\"last\"})))},removeHoverEffect=()=>{var e,t;if(!(null==(t=null==(e=state.self)?void 0:e.context)?void 0:t.mainElement))return;state.self.context.mainElement.querySelectorAll(\"[data-vc-date-hover]\").forEach((e=>e.removeAttribute(\"data-vc-date-hover\")))},handleHoverDatesEvent=e=>{var t,n;if(!e||!(null==(n=null==(t=state.self)?void 0:t.context)?void 0:n.selectedDates[0]))return;if(!e.closest('[data-vc=\"dates\"]'))return state.lastDateEl=null,createDateRangeTooltip(state.self,state.tooltipEl,null),void removeHoverEffect();const a=e.closest(\"[data-vc-date]\");if(!a||state.lastDateEl===a)return;state.lastDateEl=a,createDateRangeTooltip(state.self,state.tooltipEl,a),removeHoverEffect();const o=a.dataset.vcDate,l=getDate(state.self.context.selectedDates[0]),s=getDate(o),i=state.self.context.mainElement.querySelectorAll(`[data-vc-date=\"${state.self.context.selectedDates[0]}\"]`),r=state.self.context.mainElement.querySelectorAll(`[data-vc-date=\"${o}\"]`),[c,d]=l<s?[i,r]:[r,i],[u,m]=l<s?[l,s]:[s,l];for(let e=new Date(u);e<=m;e.setDate(e.getDate()+1))addHoverEffect(e,c,d)},handleHoverSelectedDatesRangeEvent=e=>{const t=null==e?void 0:e.closest(\"[data-vc-date-selected]\");if(!t&&state.lastDateEl)return state.lastDateEl=null,void createDateRangeTooltip(state.self,state.tooltipEl,null);t&&state.lastDateEl!==t&&(state.lastDateEl=t,createDateRangeTooltip(state.self,state.tooltipEl,t))},optimizedHoverHandler=e=>t=>{const n=t.target;state.isHovering||(state.isHovering=!0,requestAnimationFrame((()=>{e(n),state.isHovering=!1})))},optimizedHandleHoverDatesEvent=optimizedHoverHandler(handleHoverDatesEvent),optimizedHandleHoverSelectedDatesRangeEvent=optimizedHoverHandler(handleHoverSelectedDatesRangeEvent),handleCancelSelectionDates=e=>{state.self&&\"Escape\"===e.key&&(state.lastDateEl=null,setContext(state.self,\"selectedDates\",[]),state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverDatesEvent),state.self.context.mainElement.removeEventListener(\"keydown\",handleCancelSelectionDates),createDateRangeTooltip(state.self,state.tooltipEl,null),removeHoverEffect())},handleMouseLeave=()=>{null!==state.timeoutId&&clearTimeout(state.timeoutId),state.timeoutId=setTimeout((()=>{state.lastDateEl=null,createDateRangeTooltip(state.self,state.tooltipEl,null),removeHoverEffect()}),50)},updateDisabledDates=()=>{var e,t,n,a;if(!(null==(n=null==(t=null==(e=state.self)?void 0:e.context)?void 0:t.selectedDates)?void 0:n[0])||!(null==(a=state.self.context.disableDates)?void 0:a[0]))return;const o=getDate(state.self.context.selectedDates[0]),[l,s]=state.self.context.disableDates.map((e=>getDate(e))).reduce((([e,t],n)=>[o>=n?n:e,o<n&&null===t?n:t]),[null,null]);l&&setContext(state.self,\"displayDateMin\",getDateString(new Date(l.setDate(l.getDate()+1)))),s&&setContext(state.self,\"displayDateMax\",getDateString(new Date(s.setDate(s.getDate()-1))));state.self.disableDatesPast&&!state.self.disableAllDates&&getDate(state.self.context.displayDateMin)<getDate(state.self.context.dateToday)&&setContext(state.self,\"displayDateMin\",state.self.context.dateToday)},handleSelectDateRange=(e,t)=>{state.self=e,state.lastDateEl=t,removeHoverEffect(),e.disableDatesGaps&&(state.rangeMin=state.rangeMin?state.rangeMin:e.context.displayDateMin,state.rangeMax=state.rangeMax?state.rangeMax:e.context.displayDateMax),e.onCreateDateRangeTooltip&&(state.tooltipEl=e.context.mainElement.querySelector(\"[data-vc-date-range-tooltip]\"));const n=null==t?void 0:t.dataset.vcDate;if(n){const t=1===e.context.selectedDates.length&&e.context.selectedDates[0].includes(n),a=t&&!canToggleSelection(e)?[n,n]:t&&canToggleSelection(e)?[]:e.context.selectedDates.length>1?[n]:[...e.context.selectedDates,n];setContext(e,\"selectedDates\",a),e.context.selectedDates.length>1&&e.context.selectedDates.sort(((e,t)=>+new Date(e)-+new Date(t)))}({set:()=>(e.disableDatesGaps&&updateDisabledDates(),createDateRangeTooltip(state.self,state.tooltipEl,t),state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave),state.self.context.mainElement.removeEventListener(\"keydown\",handleCancelSelectionDates),state.self.context.mainElement.addEventListener(\"mousemove\",optimizedHandleHoverDatesEvent),state.self.context.mainElement.addEventListener(\"mouseleave\",handleMouseLeave),state.self.context.mainElement.addEventListener(\"keydown\",handleCancelSelectionDates),()=>{state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverDatesEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave),state.self.context.mainElement.removeEventListener(\"keydown\",handleCancelSelectionDates)}),reset:()=>{const[n,a]=[e.context.selectedDates[0],e.context.selectedDates[e.context.selectedDates.length-1]],o=e.context.selectedDates[0]!==e.context.selectedDates[e.context.selectedDates.length-1],l=parseDates([`${n}:${a}`]).filter((t=>!e.context.disableDates.includes(t))),s=o?e.enableEdgeDatesOnly?[n,a]:l:[e.context.selectedDates[0],e.context.selectedDates[0]];if(setContext(e,\"selectedDates\",s),e.disableDatesGaps&&(setContext(e,\"displayDateMin\",state.rangeMin),setContext(e,\"displayDateMax\",state.rangeMax)),state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverDatesEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave),state.self.context.mainElement.removeEventListener(\"keydown\",handleCancelSelectionDates),e.onCreateDateRangeTooltip)return e.context.selectedDates[0]||(state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave),createDateRangeTooltip(state.self,state.tooltipEl,null)),e.context.selectedDates[0]&&(state.self.context.mainElement.addEventListener(\"mousemove\",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.addEventListener(\"mouseleave\",handleMouseLeave),createDateRangeTooltip(state.self,state.tooltipEl,t)),()=>{state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave)}}})[1===e.context.selectedDates.length?\"set\":\"reset\"]()},updateDateModifier=e=>{e.context.mainElement.querySelectorAll(\"[data-vc-date]\").forEach((t=>{const n=t.querySelector(\"[data-vc-date-btn]\"),a=t.dataset.vcDate,o=getDate(a).getDay();setDateModifier(e,e.context.selectedYear,t,n,o,a,\"current\")}))},handleClickDate=(e,t)=>{var n;const a=t.target,o=a.closest(\"[data-vc-date-btn]\");if(!e.selectionDatesMode||![\"single\",\"multiple\",\"multiple-ranged\"].includes(e.selectionDatesMode)||!o)return;const l=o.closest(\"[data-vc-date]\");({single:()=>handleSelectDate(e,l,!1),multiple:()=>handleSelectDate(e,l,!0),\"multiple-ranged\":()=>handleSelectDateRange(e,l)})[e.selectionDatesMode](),null==(n=e.context.selectedDates)||n.sort(((e,t)=>+new Date(e)-+new Date(t))),e.onClickDate&&e.onClickDate(e,t),e.inputMode&&e.context.inputElement&&e.context.mainElement&&e.onChangeToInput&&e.onChangeToInput(e,t);const s=a.closest('[data-vc-date-month=\"prev\"]'),i=a.closest('[data-vc-date-month=\"next\"]');({prev:()=>e.enableMonthChangeOnDayClick?handleMonth(e,\"prev\"):updateDateModifier(e),next:()=>e.enableMonthChangeOnDayClick?handleMonth(e,\"next\"):updateDateModifier(e),current:()=>updateDateModifier(e)})[s?\"prev\":i?\"next\":\"current\"]()},typeClick=[\"month\",\"year\"],getValue=(e,t,n)=>{const{currentValue:a,columnID:o}=getColumnID(e,t);return\"month\"===e.context.currentType&&o>=0?n-o:\"year\"===e.context.currentType&&e.context.selectedYear!==a?n-1:n},handleMultipleYearSelection=(e,t)=>{const n=getValue(e,\"year\",Number(t.dataset.vcYearsYear)),a=getDate(e.context.dateMin),o=getDate(e.context.dateMax),l=e.context.displayMonthsCount-1,{columnID:s}=getColumnID(e,\"year\"),i=e.context.selectedMonth<a.getMonth()&&n<=a.getFullYear(),r=e.context.selectedMonth>o.getMonth()-l+s&&n>=o.getFullYear(),c=n<a.getFullYear(),d=n>o.getFullYear(),u=i||c?a.getFullYear():r||d?o.getFullYear():n,m=i||c?a.getMonth():r||d?o.getMonth()-l+s:e.context.selectedMonth;setContext(e,\"selectedYear\",u),setContext(e,\"selectedMonth\",m)},handleMultipleMonthSelection=(e,t)=>{const n=t.closest('[data-vc-column=\"month\"]').querySelector('[data-vc=\"year\"]'),a=getValue(e,\"month\",Number(t.dataset.vcMonthsMonth)),o=Number(n.dataset.vcYear),l=getDate(e.context.dateMin),s=getDate(e.context.dateMax),i=a<l.getMonth()&&o<=l.getFullYear(),r=a>s.getMonth()&&o>=s.getFullYear();setContext(e,\"selectedYear\",o),setContext(e,\"selectedMonth\",i?l.getMonth():r?s.getMonth():a)},handleItemClick=(e,t,n,a)=>{var o;({year:()=>{if(\"multiple\"===e.type)return handleMultipleYearSelection(e,a);setContext(e,\"selectedYear\",Number(a.dataset.vcYearsYear))},month:()=>{if(\"multiple\"===e.type)return handleMultipleMonthSelection(e,a);setContext(e,\"selectedMonth\",Number(a.dataset.vcMonthsMonth))}})[n]();({year:()=>{var n;return null==(n=e.onClickYear)?void 0:n.call(e,e,t)},month:()=>{var n;return null==(n=e.onClickMonth)?void 0:n.call(e,e,t)}})[n](),e.context.currentType!==e.type?(setContext(e,\"currentType\",e.type),create(e),null==(o=e.context.mainElement.querySelector(`[data-vc=\"${n}\"]`))||o.focus()):setYearModifier(e,a,n,!0,!0)},handleClickType=(e,t,n)=>{var a;const o=t.target,l=o.closest(`[data-vc=\"${n}\"]`),s={year:()=>createYears(e,o),month:()=>createMonths(e,o)};if(l&&e.onClickTitle&&e.onClickTitle(e,t),l&&e.context.currentType!==n)return s[n]();const i=o.closest(`[data-vc-${n}s-${n}]`);if(i)return handleItemClick(e,t,n,i);const r=o.closest('[data-vc=\"grid\"]'),c=o.closest('[data-vc=\"column\"]');(e.context.currentType===n&&l||\"multiple\"===e.type&&e.context.currentType===n&&r&&!c)&&(setContext(e,\"currentType\",e.type),create(e),null==(a=e.context.mainElement.querySelector(`[data-vc=\"${n}\"]`))||a.focus())},handleClickMonthOrYear=(e,t)=>{const n={month:e.selectionMonthsMode,year:e.selectionYearsMode};typeClick.forEach((a=>{n[a]&&t.target&&handleClickType(e,t,a)}))},handleClickWeekNumber=(e,t)=>{if(!e.enableWeekNumbers||!e.onClickWeekNumber)return;const n=t.target.closest(\"[data-vc-week-number]\"),a=e.context.mainElement.querySelectorAll(\"[data-vc-date-week-number]\");if(!n||!a[0])return;const o=Number(n.innerText),l=Number(n.dataset.vcWeekYear),s=Array.from(a).filter((e=>Number(e.dataset.vcDateWeekNumber)===o));e.onClickWeekNumber(e,o,l,s,t)},handleClickWeekDay=(e,t)=>{if(!e.onClickWeekDay)return;const n=t.target.closest(\"[data-vc-week-day]\"),a=t.target.closest('[data-vc=\"column\"]'),o=a?a.querySelectorAll(\"[data-vc-date-week-day]\"):e.context.mainElement.querySelectorAll(\"[data-vc-date-week-day]\");if(!n||!o[0])return;const l=Number(n.dataset.vcWeekDay),s=Array.from(o).filter((e=>Number(e.dataset.vcDateWeekDay)===l));e.onClickWeekDay(e,l,s,t)},handleClick=e=>{const t=t=>{handleClickArrow(e,t),handleClickWeekDay(e,t),handleClickWeekNumber(e,t),handleClickDate(e,t),handleClickMonthOrYear(e,t)};return e.context.mainElement.addEventListener(\"click\",t),()=>e.context.mainElement.removeEventListener(\"click\",t)},initMonthsCount=e=>{if(\"multiple\"===e.type&&(e.displayMonthsCount<=1||e.displayMonthsCount>12))throw new Error(errorMessages.incorrectMonthsCount);if(\"multiple\"!==e.type&&e.displayMonthsCount>1)throw new Error(errorMessages.incorrectMonthsCount);setContext(e,\"displayMonthsCount\",e.displayMonthsCount?e.displayMonthsCount:\"multiple\"===e.type?2:1)},getLocalDate=()=>{const e=new Date;return new Date(e.getTime()-6e4*e.getTimezoneOffset()).toISOString().substring(0,10)},resolveDate=(e,t)=>\"today\"===e?getLocalDate():e instanceof Date||\"number\"==typeof e||\"string\"==typeof e?parseDates([e])[0]:t,initRange=e=>{var t,n,a;const o=resolveDate(e.dateMin,e.dateMin),l=resolveDate(e.dateMax,e.dateMax),s=resolveDate(e.displayDateMin,o),i=resolveDate(e.displayDateMax,l);setContext(e,\"dateToday\",resolveDate(e.dateToday,e.dateToday)),setContext(e,\"displayDateMin\",s?getDate(o)>=getDate(s)?o:s:o),setContext(e,\"displayDateMax\",i?getDate(l)<=getDate(i)?l:i:l);const r=e.disableDatesPast&&!e.disableAllDates&&getDate(s)<getDate(e.context.dateToday);setContext(e,\"displayDateMin\",r||e.disableAllDates?e.context.dateToday:s),setContext(e,\"displayDateMax\",e.disableAllDates?e.context.dateToday:i),setContext(e,\"disableDates\",e.disableDates[0]&&!e.disableAllDates?parseDates(e.disableDates):e.disableAllDates?[e.context.displayDateMin]:[]),e.context.disableDates.length>1&&e.context.disableDates.sort(((e,t)=>+new Date(e)-+new Date(t))),setContext(e,\"enableDates\",e.enableDates[0]?parseDates(e.enableDates):[]),(null==(t=e.context.enableDates)?void 0:t[0])&&(null==(n=e.context.disableDates)?void 0:n[0])&&setContext(e,\"disableDates\",e.context.disableDates.filter((t=>!e.context.enableDates.includes(t)))),e.context.enableDates.length>1&&e.context.enableDates.sort(((e,t)=>+new Date(e)-+new Date(t))),(null==(a=e.context.enableDates)?void 0:a[0])&&e.disableAllDates&&(setContext(e,\"displayDateMin\",e.context.enableDates[0]),setContext(e,\"displayDateMax\",e.context.enableDates[e.context.enableDates.length-1])),setContext(e,\"dateMin\",e.displayDisabledDates?o:e.context.displayDateMin),setContext(e,\"dateMax\",e.displayDisabledDates?l:e.context.displayDateMax)},initSelectedDates=e=>{var t;setContext(e,\"selectedDates\",(null==(t=e.selectedDates)?void 0:t[0])?parseDates(e.selectedDates):[])},displayClosestValidDate=e=>{const t=t=>{const n=new Date(t);setInitialContext(e,n.getMonth(),n.getFullYear())};if(e.displayDateMin&&\"today\"!==e.displayDateMin&&(n=e.displayDateMin,a=new Date,new Date(n).getTime()>a.getTime())){const n=e.selectedDates.length&&e.selectedDates[0]?parseDates(e.selectedDates)[0]:e.displayDateMin;return t(getDate(resolveDate(n,e.displayDateMin))),!0}var n,a;if(e.displayDateMax&&\"today\"!==e.displayDateMax&&((e,t)=>new Date(e).getTime()<t.getTime())(e.displayDateMax,new Date)){const n=e.selectedDates.length&&e.selectedDates[0]?parseDates(e.selectedDates)[0]:e.displayDateMax;return t(getDate(resolveDate(n,e.displayDateMax))),!0}return!1},setInitialContext=(e,t,n)=>{setContext(e,\"selectedMonth\",t),setContext(e,\"selectedYear\",n),setContext(e,\"displayYear\",n)},initSelectedMonthYear=e=>{var t;if(e.enableJumpToSelectedDate&&(null==(t=e.selectedDates)?void 0:t[0])&&void 0===e.selectedMonth&&void 0===e.selectedYear){const t=getDate(parseDates(e.selectedDates)[0]);return void setInitialContext(e,t.getMonth(),t.getFullYear())}if(displayClosestValidDate(e))return;const n=void 0!==e.selectedMonth&&Number(e.selectedMonth)>=0&&Number(e.selectedMonth)<12,a=void 0!==e.selectedYear&&Number(e.selectedYear)>=0&&Number(e.selectedYear)<=9999;setInitialContext(e,n?Number(e.selectedMonth):getDate(e.context.dateToday).getMonth(),a?Number(e.selectedYear):getDate(e.context.dateToday).getFullYear())},initTime=e=>{var t,n,a;if(!e.selectionTimeMode)return;if(![12,24].includes(e.selectionTimeMode))throw new Error(errorMessages.incorrectTime);const o=12===e.selectionTimeMode,l=o?/^(0[1-9]|1[0-2]):([0-5][0-9]) ?(AM|PM)?$/i:/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/;let[s,i,r]=null!=(a=null==(n=null==(t=e.selectedTime)?void 0:t.match(l))?void 0:n.slice(1))?a:[];s?o&&!r&&(r=\"AM\"):(s=o?transformTime12(String(e.timeMinHour)):String(e.timeMinHour),i=String(e.timeMinMinute),r=o?Number(transformTime12(String(e.timeMinHour)))>=12?\"PM\":\"AM\":null),setContext(e,\"selectedHours\",s.padStart(2,\"0\")),setContext(e,\"selectedMinutes\",i.padStart(2,\"0\")),setContext(e,\"selectedKeeping\",r),setContext(e,\"selectedTime\",`${e.context.selectedHours}:${e.context.selectedMinutes}${r?` ${r}`:\"\"}`)},initAllVariables=e=>{setContext(e,\"currentType\",e.type),initMonthsCount(e),initRange(e),initSelectedMonthYear(e),initSelectedDates(e),initTime(e)},reset=(e,{year:t,month:n,dates:a,time:o,locale:l},s=!0)=>{var i;const r={year:e.selectedYear,month:e.selectedMonth,dates:e.selectedDates,time:e.selectedTime};if(e.selectedYear=t?r.year:e.context.selectedYear,e.selectedMonth=n?r.month:e.context.selectedMonth,e.selectedTime=o?r.time:e.context.selectedTime,e.selectedDates=\"only-first\"===a&&(null==(i=e.context.selectedDates)?void 0:i[0])?[e.context.selectedDates[0]]:!0===a?r.dates:e.context.selectedDates,l){setContext(e,\"locale\",{months:{short:[],long:[]},weekdays:{short:[],long:[]}})}initAllVariables(e),s&&create(e),e.selectedYear=r.year,e.selectedMonth=r.month,e.selectedDates=r.dates,e.selectedTime=r.time,\"multiple-ranged\"===e.selectionDatesMode&&a&&handleSelectDateRange(e,null)},createToInput=e=>{const t=document.createElement(\"div\");return t.className=e.styles.calendar,t.dataset.vc=\"calendar\",t.dataset.vcInput=\"\",t.dataset.vcCalendarHidden=\"\",setContext(e,\"inputModeInit\",!0),setContext(e,\"isShowInInputMode\",!1),setContext(e,\"mainElement\",t),document.body.appendChild(e.context.mainElement),reset(e,{year:!0,month:!0,dates:!0,time:!0,locale:!0}),setTimeout((()=>show(e))),e.onInit&&e.onInit(e),handleArrowKeys(e),handleClick(e)},canOpenOnFocus=e=>resolveToggle(e,e.openOnFocus),handleInput=e=>{setContext(e,\"inputElement\",e.context.mainElement);const t=()=>{e.context.inputModeInit?setTimeout((()=>show(e))):createToInput(e)};e.context.inputElement.addEventListener(\"click\",t);const n=\"function\"==typeof e.openOnFocus||!0===e.openOnFocus,a=()=>{shouldSkipOpenOnFocus(e)?clearSkipOpenOnFocus(e):canOpenOnFocus(e)&&t()};n&&e.context.inputElement.addEventListener(\"focus\",a);const o=t=>{const n=\"Tab\"===t.key&&!t.shiftKey,a=[\"ArrowUp\",\"ArrowDown\",\"ArrowLeft\",\"ArrowRight\"].includes(t.key);(n||a)&&(t=>{var n;if(!e.context.isShowInInputMode)return!1;if(document.activeElement!==e.context.inputElement)return!1;const a=e=>e.tabIndex>=0&&!e.hasAttribute(\"disabled\")&&\"true\"!==e.getAttribute(\"aria-disabled\"),o=null!=(n=document.createTreeWalker(e.context.mainElement,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>a(e)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}).nextNode())?n:a(e.context.mainElement)?e.context.mainElement:null;!o||o.tabIndex<0||(t.preventDefault(),o.focus())})(t)};return e.context.inputElement.addEventListener(\"keydown\",o),()=>{e.context.inputElement.removeEventListener(\"click\",t),n&&e.context.inputElement.removeEventListener(\"focus\",a),e.context.inputElement.removeEventListener(\"keydown\",o)}},init=e=>(setContext(e,\"originalElement\",e.context.mainElement.cloneNode(!0)),setContext(e,\"isInit\",!0),e.inputMode?handleInput(e):(initAllVariables(e),create(e),e.onInit&&e.onInit(e),handleArrowKeys(e),handleClick(e))),update=(e,t)=>{if(!e.context.isInit)throw new Error(errorMessages.notInit);reset(e,__spreadValues(__spreadValues({},{year:!0,month:!0,dates:!0,time:!0,locale:!0}),t),!(e.inputMode&&!e.context.inputModeInit)),e.onUpdate&&e.onUpdate(e)},replaceProperties=(e,t)=>{const n=Object.keys(t);for(let a=0;a<n.length;a++){const o=n[a];\"object\"!=typeof e[o]||\"object\"!=typeof t[o]||t[o]instanceof Date||Array.isArray(t[o])?void 0!==t[o]&&(e[o]=t[o]):replaceProperties(e[o],t[o])}},set=(e,t,n)=>{replaceProperties(e,t),e.context.isInit&&update(e,n)};function findBestPickerPosition(e,t){const n=\"left\";if(!t||!e)return n;const{canShow:a,parentPositions:o}=getAvailablePosition(e,t),l=a.left&&a.right;return(l&&a.bottom?\"center\":l&&a.top?[\"top\",\"center\"]:Array.isArray(o)?[\"bottom\"===o[0]?\"top\":\"bottom\",...o.slice(1)]:o)||n}const setPosition=(e,t,n)=>{if(!e)return;const a=\"auto\"===n?findBestPickerPosition(e,t):n,o={top:-t.offsetHeight,bottom:e.offsetHeight,left:0,center:e.offsetWidth/2-t.offsetWidth/2,right:e.offsetWidth-t.offsetWidth},l=Array.isArray(a)?a[0]:\"bottom\",s=Array.isArray(a)?a[1]:a;t.dataset.vcPosition=l;const{top:i,left:r}=getOffset(e),c=i+o[l];let d=r+o[s];const{vw:u}=getViewportDimensions();if(d+t.clientWidth>u){const e=window.innerWidth-document.body.clientWidth;d=u-t.clientWidth-e}else d<0&&(d=0);Object.assign(t.style,{left:`${d}px`,top:`${c}px`})},show=e=>{if(e.context.isShowInInputMode)return;if(!e.context.currentType)return void e.context.mainElement.click();setContext(e,\"cleanupHandlers\",[]),setContext(e,\"isShowInInputMode\",!0),e.inputMode&&restoreTabbing(e.context.mainElement),setPosition(e.context.inputElement,e.context.mainElement,e.positionToInput),e.context.mainElement.removeAttribute(\"data-vc-calendar-hidden\");const t=()=>{setPosition(e.context.inputElement,e.context.mainElement,e.positionToInput)};window.addEventListener(\"resize\",t),e.context.cleanupHandlers.push((()=>window.removeEventListener(\"resize\",t)));const n=t=>{\"Escape\"===t.key&&hide(e)};document.addEventListener(\"keydown\",n),e.context.cleanupHandlers.push((()=>document.removeEventListener(\"keydown\",n)));const a=t=>{t.target===e.context.inputElement||e.context.mainElement.contains(t.target)||hide(e)};document.addEventListener(\"click\",a,{capture:!0}),e.context.cleanupHandlers.push((()=>document.removeEventListener(\"click\",a,{capture:!0}))),e.onShow&&e.onShow(e)},labels={application:\"Calendar\",navigation:\"Calendar Navigation\",arrowNext:{month:\"Next month\",year:\"Next list of years\"},arrowPrev:{month:\"Previous month\",year:\"Previous list of years\"},month:\"Select month, current selected month:\",months:\"List of months\",year:\"Select year, current selected year:\",years:\"List of years\",week:\"Days of the week\",weekNumber:\"Numbers of weeks in a year\",dates:\"Dates in the current month\",selectingTime:\"Selecting a time \",inputHour:\"Hours\",inputMinute:\"Minutes\",rangeHour:\"Slider for selecting hours\",rangeMinute:\"Slider for selecting minutes\",btnKeeping:\"Switch AM/PM, current position:\"},styles={calendar:\"vc\",controls:\"vc-controls\",grid:\"vc-grid\",column:\"vc-column\",header:\"vc-header\",headerContent:\"vc-header__content\",month:\"vc-month\",year:\"vc-year\",arrowPrev:\"vc-arrow vc-arrow_prev\",arrowNext:\"vc-arrow vc-arrow_next\",wrapper:\"vc-wrapper\",content:\"vc-content\",months:\"vc-months\",monthsMonth:\"vc-months__month\",years:\"vc-years\",yearsYear:\"vc-years__year\",week:\"vc-week\",weekDay:\"vc-week__day\",weekNumbers:\"vc-week-numbers\",weekNumbersTitle:\"vc-week-numbers__title\",weekNumbersContent:\"vc-week-numbers__content\",weekNumber:\"vc-week-number\",dates:\"vc-dates\",datesRow:\"vc-dates__row\",date:\"vc-date\",dateBtn:\"vc-date__btn\",datePopup:\"vc-date__popup\",dateRangeTooltip:\"vc-date-range-tooltip\",time:\"vc-time\",timeContent:\"vc-time__content\",timeHour:\"vc-time__hour\",timeMinute:\"vc-time__minute\",timeKeeping:\"vc-time__keeping\",timeRanges:\"vc-time__ranges\",timeRange:\"vc-time__range\"};class OptionsCalendar{constructor(){__publicField(this,\"type\",\"default\"),__publicField(this,\"inputMode\",!1),__publicField(this,\"openOnFocus\",!0),__publicField(this,\"positionToInput\",\"left\"),__publicField(this,\"firstWeekday\",1),__publicField(this,\"monthsToSwitch\",1),__publicField(this,\"themeAttrDetect\",\"html[data-theme]\"),__publicField(this,\"locale\",\"en\"),__publicField(this,\"dateToday\",\"today\"),__publicField(this,\"dateMin\",\"1970-01-01\"),__publicField(this,\"dateMax\",\"2470-12-31\"),__publicField(this,\"displayDateMin\"),__publicField(this,\"displayDateMax\"),__publicField(this,\"displayDatesOutside\",!0),__publicField(this,\"displayDisabledDates\",!1),__publicField(this,\"displayMonthsCount\"),__publicField(this,\"disableDates\",[]),__publicField(this,\"disableAllDates\",!1),__publicField(this,\"disableDatesPast\",!1),__publicField(this,\"disableDatesGaps\",!1),__publicField(this,\"disableWeekdays\",[]),__publicField(this,\"disableToday\",!1),__publicField(this,\"enableDates\",[]),__publicField(this,\"enableEdgeDatesOnly\",!0),__publicField(this,\"enableDateToggle\",!0),__publicField(this,\"enableWeekNumbers\",!1),__publicField(this,\"enableMonthChangeOnDayClick\",!0),__publicField(this,\"enableJumpToSelectedDate\",!1),__publicField(this,\"selectionDatesMode\",\"single\"),__publicField(this,\"selectionMonthsMode\",!0),__publicField(this,\"selectionYearsMode\",!0),__publicField(this,\"selectionTimeMode\",!1),__publicField(this,\"selectedDates\",[]),__publicField(this,\"selectedMonth\"),__publicField(this,\"selectedYear\"),__publicField(this,\"selectedHolidays\",[]),__publicField(this,\"selectedWeekends\",[0,6]),__publicField(this,\"selectedTime\"),__publicField(this,\"selectedTheme\",\"system\"),__publicField(this,\"timeMinHour\",0),__publicField(this,\"timeMaxHour\",23),__publicField(this,\"timeMinMinute\",0),__publicField(this,\"timeMaxMinute\",59),__publicField(this,\"timeControls\",\"all\"),__publicField(this,\"timeStepHour\",1),__publicField(this,\"timeStepMinute\",1),__publicField(this,\"sanitizerHTML\",(e=>e)),__publicField(this,\"onClickDate\"),__publicField(this,\"onClickWeekDay\"),__publicField(this,\"onClickWeekNumber\"),__publicField(this,\"onClickTitle\"),__publicField(this,\"onClickMonth\"),__publicField(this,\"onClickYear\"),__publicField(this,\"onClickArrow\"),__publicField(this,\"onChangeTime\"),__publicField(this,\"onChangeToInput\"),__publicField(this,\"onCreateDateRangeTooltip\"),__publicField(this,\"onCreateDateEls\"),__publicField(this,\"onCreateMonthEls\"),__publicField(this,\"onCreateYearEls\"),__publicField(this,\"onInit\"),__publicField(this,\"onUpdate\"),__publicField(this,\"onDestroy\"),__publicField(this,\"onShow\"),__publicField(this,\"onHide\"),__publicField(this,\"popups\",{}),__publicField(this,\"labels\",__spreadValues({},labels)),__publicField(this,\"layouts\",{default:\"\",multiple:\"\",month:\"\",year:\"\"}),__publicField(this,\"styles\",__spreadValues({},styles))}}const _Calendar=class e extends OptionsCalendar{constructor(t,n){var a;super(),__publicField(this,\"init\",(()=>init(this))),__publicField(this,\"update\",(e=>update(this,e))),__publicField(this,\"destroy\",(()=>destroy(this))),__publicField(this,\"show\",(()=>show(this))),__publicField(this,\"hide\",(()=>hide(this))),__publicField(this,\"set\",((e,t)=>set(this,e,t))),__publicField(this,\"context\"),this.context=__spreadProps(__spreadValues({},this.context),{locale:{months:{short:[],long:[]},weekdays:{short:[],long:[]}}}),setContext(this,\"mainElement\",\"string\"==typeof t?null!=(a=e.memoizedElements.get(t))?a:this.queryAndMemoize(t):t),n&&replaceProperties(this,n)}queryAndMemoize(t){const n=document.querySelector(t);if(!n)throw new Error(errorMessages.notFoundSelector(t));return e.memoizedElements.set(t,n),n}};__publicField(_Calendar,\"memoizedElements\",new Map);let Calendar=_Calendar;export{Calendar};","/**\n * --------------------------------------------------------------------------\n * Bootstrap datepicker.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { Calendar } from 'vanilla-calendar-pro'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { isDisabled } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'datepicker'\nconst DATA_KEY = 'bs.datepicker'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUSIN_DATA_API = `focusin${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"datepicker\"]'\n\nconst HIDE_DELAY = 100 // ms delay before hiding after selection\n\nconst Default = {\n datepickerTheme: null, // 'light', 'dark', 'auto' - explicit theme for datepicker popover only\n dateMin: null,\n dateMax: null,\n dateFormat: null, // Intl.DateTimeFormat options, or function(date, locale) => string\n displayElement: null, // Element to show formatted date (defaults to element for buttons)\n displayMonthsCount: 1, // Number of months to display side-by-side\n firstWeekday: 1, // Monday\n inline: false, // Render calendar inline (no popup)\n locale: 'default',\n positionElement: null, // Element to position calendar relative to (defaults to input)\n selectedDates: [],\n selectionMode: 'single', // 'single', 'multiple', 'multiple-ranged'\n placement: 'left', // 'left', 'center', 'right', 'auto'\n vcpOptions: {} // Pass-through for any VCP option\n}\n\nconst DefaultType = {\n datepickerTheme: '(null|string)',\n dateMin: '(null|string|number|object)',\n dateMax: '(null|string|number|object)',\n dateFormat: '(null|object|function)',\n displayElement: '(null|string|element|boolean)',\n displayMonthsCount: 'number',\n firstWeekday: 'number',\n inline: 'boolean',\n locale: 'string',\n positionElement: '(null|string|element)',\n selectedDates: 'array',\n selectionMode: 'string',\n placement: 'string',\n vcpOptions: 'object'\n}\n\n/**\n * Class definition\n */\n\nclass Datepicker extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._calendar = null\n this._isShown = false\n\n this._initCalendar()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n return this._isShown ? this.hide() : this.show()\n }\n\n show() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n if (!this._calendar || isDisabled(this._element) || this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._calendar.show()\n this._isShown = true\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n hide() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n if (!this._calendar || !this._isShown) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._calendar.hide()\n this._isShown = false\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n dispose() {\n if (this._themeObserver) {\n this._themeObserver.disconnect()\n this._themeObserver = null\n }\n\n if (this._calendar) {\n this._calendar.destroy()\n }\n\n this._calendar = null\n super.dispose()\n }\n\n getSelectedDates() {\n const dates = this._calendar?.context?.selectedDates\n return dates ? [...dates] : []\n }\n\n setSelectedDates(dates) {\n if (this._calendar) {\n this._calendar.set({ selectedDates: dates })\n }\n }\n\n // Private\n _initCalendar() {\n this._isInput = this._element.tagName === 'INPUT'\n this._isInline = this._config.inline\n\n // For inline mode, look for a hidden input child to bind to\n if (this._isInline && !this._isInput) {\n this._boundInput = this._element.querySelector('input[type=\"hidden\"], input[name]')\n }\n\n this._positionElement = this._resolvePositionElement()\n this._displayElement = this._resolveDisplayElement()\n\n const calendarOptions = this._buildCalendarOptions()\n\n // Create calendar on the position element (for correct popup positioning)\n // but value updates still go to this._element (the input)\n this._calendar = new Calendar(this._positionElement, calendarOptions)\n this._calendar.init()\n\n // Watch for theme changes on ancestor elements (for live theme switching)\n this._setupThemeObserver()\n\n // Set initial value if input has a value\n if (this._isInput && this._element.value) {\n this._parseInputValue()\n }\n\n // Populate input/display with preselected dates\n this._updateDisplayWithSelectedDates()\n }\n\n _updateDisplayWithSelectedDates() {\n const { selectedDates } = this._config\n if (!selectedDates || selectedDates.length === 0) {\n return\n }\n\n const formattedDate = this._formatDateForInput(selectedDates)\n\n if (this._isInput) {\n this._element.value = formattedDate\n }\n\n if (this._boundInput) {\n this._boundInput.value = selectedDates.join(',')\n }\n\n if (this._displayElement) {\n this._displayElement.textContent = formattedDate\n }\n }\n\n _resolvePositionElement() {\n let { positionElement } = this._config\n\n if (typeof positionElement === 'string') {\n positionElement = document.querySelector(positionElement)\n }\n\n // Use input's parent if in form-adorn\n if (!positionElement && this._isInput && !this._isInline) {\n const parent = this._element.closest('.form-adorn')\n if (parent) {\n positionElement = parent\n }\n }\n\n return positionElement || this._element\n }\n\n _resolveDisplayElement() {\n const { displayElement } = this._config\n\n if (typeof displayElement === 'string') {\n return document.querySelector(displayElement)\n }\n\n // For buttons/non-inputs (not inline), look for a [data-bs-datepicker-display] child\n if (displayElement === true || (displayElement === null && !this._isInput && !this._isInline)) {\n const displayChild = this._element.querySelector('[data-bs-datepicker-display]')\n return displayChild || this._element\n }\n\n return displayElement\n }\n\n _getThemeAncestor() {\n return this._element.closest('[data-bs-theme]')\n }\n\n _getEffectiveTheme() {\n // Priority: explicit datepickerTheme config > inherited from ancestor > none\n const { datepickerTheme } = this._config\n if (datepickerTheme) {\n return datepickerTheme\n }\n\n const ancestor = this._getThemeAncestor()\n return ancestor?.getAttribute('data-bs-theme') || null\n }\n\n _syncThemeAttribute(element) {\n if (!element) {\n return\n }\n\n const theme = this._getEffectiveTheme()\n\n if (theme) {\n // Copy theme to popover (needed because VCP appends to body, breaking CSS inheritance)\n element.setAttribute('data-bs-theme', theme)\n } else {\n // No theme - remove attribute to allow natural inheritance\n element.removeAttribute('data-bs-theme')\n }\n }\n\n _setupThemeObserver() {\n // Watch for theme changes on ancestor elements\n const ancestor = this._getThemeAncestor()\n if (!ancestor || this._config.datepickerTheme) {\n // No ancestor to watch, or explicit datepickerTheme overrides\n return\n }\n\n this._themeObserver = new MutationObserver(() => {\n this._syncThemeAttribute(this._calendar?.context?.mainElement)\n })\n\n this._themeObserver.observe(ancestor, {\n attributes: true,\n attributeFilter: ['data-bs-theme']\n })\n }\n\n _buildCalendarOptions() {\n // Get theme for VCP - use 'system' for auto-detection if no explicit theme\n const theme = this._getEffectiveTheme()\n // VCP uses 'system' for auto, Bootstrap uses 'auto'\n const vcpTheme = !theme || theme === 'auto' ? 'system' : theme\n\n const calendarOptions = {\n ...this._config.vcpOptions,\n inputMode: !this._isInline,\n positionToInput: this._config.placement,\n firstWeekday: this._config.firstWeekday,\n locale: this._config.locale,\n selectionDatesMode: this._config.selectionMode,\n selectedDates: this._config.selectedDates,\n displayMonthsCount: this._config.displayMonthsCount,\n type: this._config.displayMonthsCount > 1 ? 'multiple' : 'default',\n selectedTheme: vcpTheme,\n themeAttrDetect: '[data-bs-theme]',\n onClickDate: (self, event) => this._handleDateClick(self, event),\n onInit: self => {\n this._syncThemeAttribute(self.context.mainElement)\n },\n onShow: () => {\n this._isShown = true\n this._syncThemeAttribute(this._calendar.context.mainElement)\n },\n onHide: () => {\n this._isShown = false\n }\n }\n\n // Navigate to the month of the first selected date\n if (this._config.selectedDates.length > 0) {\n const firstDate = this._parseDate(this._config.selectedDates[0])\n calendarOptions.selectedMonth = firstDate.getMonth()\n calendarOptions.selectedYear = firstDate.getFullYear()\n }\n\n if (this._config.dateMin) {\n calendarOptions.dateMin = this._config.dateMin\n }\n\n if (this._config.dateMax) {\n calendarOptions.dateMax = this._config.dateMax\n }\n\n return calendarOptions\n }\n\n _handleDateClick(self, event) {\n const selectedDates = [...self.context.selectedDates]\n\n if (selectedDates.length > 0) {\n const formattedDate = this._formatDateForInput(selectedDates)\n\n if (this._isInput) {\n this._element.value = formattedDate\n }\n\n if (this._boundInput) {\n this._boundInput.value = selectedDates.join(',')\n }\n\n if (this._displayElement) {\n this._displayElement.textContent = formattedDate\n }\n }\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n dates: selectedDates,\n event\n })\n\n this._maybeHideAfterSelection(selectedDates)\n }\n\n _maybeHideAfterSelection(selectedDates) {\n if (this._isInline) {\n return\n }\n\n const shouldHide =\n (this._config.selectionMode === 'single' && selectedDates.length > 0) ||\n (this._config.selectionMode === 'multiple-ranged' && selectedDates.length >= 2)\n\n if (shouldHide) {\n setTimeout(() => this.hide(), HIDE_DELAY)\n }\n }\n\n _parseDate(dateStr) {\n const [year, month, day] = dateStr.split('-')\n return new Date(year, month - 1, day)\n }\n\n _formatDate(dateStr) {\n const date = this._parseDate(dateStr)\n const locale = this._config.locale === 'default' ? undefined : this._config.locale\n const { dateFormat } = this._config\n\n // Custom function formatter\n if (typeof dateFormat === 'function') {\n return dateFormat(date, locale)\n }\n\n // Intl.DateTimeFormat options object\n if (dateFormat && typeof dateFormat === 'object') {\n return new Intl.DateTimeFormat(locale, dateFormat).format(date)\n }\n\n // Default: locale-aware formatting\n return date.toLocaleDateString(locale)\n }\n\n _formatDateForInput(dates) {\n if (dates.length === 0) {\n return ''\n }\n\n if (dates.length === 1) {\n return this._formatDate(dates[0])\n }\n\n // For date ranges, use en-dash; for multiple dates, use comma\n const separator = this._config.selectionMode === 'multiple-ranged' ? ' – ' : ', '\n return dates.map(d => this._formatDate(d)).join(separator)\n }\n\n _parseInputValue() {\n // Try to parse the input value as a date\n const value = this._element.value.trim()\n if (!value) {\n return\n }\n\n const date = new Date(value)\n if (!Number.isNaN(date.getTime())) {\n const year = date.getFullYear()\n const month = String(date.getMonth() + 1).padStart(2, '0')\n const day = String(date.getDate()).padStart(2, '0')\n const formatted = `${year}-${month}-${day}`\n this._calendar.set({ selectedDates: [formatted] })\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // Only handle if not an input (inputs use focus)\n // Skip inline datepickers (they're always visible)\n if (this.tagName === 'INPUT' || this.dataset.bsInline === 'true') {\n return\n }\n\n event.preventDefault()\n Datepicker.getOrCreateInstance(this).toggle()\n})\n\nEventHandler.on(document, EVENT_FOCUSIN_DATA_API, SELECTOR_DATA_TOGGLE, function () {\n // Handle focus for input elements\n if (this.tagName !== 'INPUT') {\n return\n }\n\n Datepicker.getOrCreateInstance(this).show()\n})\n\n// Auto-initialize inline datepickers on DOMContentLoaded\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of document.querySelectorAll(`${SELECTOR_DATA_TOGGLE}[data-bs-inline=\"true\"]`)) {\n Datepicker.getOrCreateInstance(element)\n }\n})\n\nexport default Datepicker\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dialog-base.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst CLASS_NAME_OPEN = 'dialog-open'\n\n/**\n * Class definition\n *\n * Shared base class for Dialog and Drawer components that use\n * the native <dialog> element. Provides common behavior for:\n * - Show/hide/toggle lifecycle with events\n * - Opening/closing via showModal()/show()/close()\n * - Escape key handling (modal and non-modal)\n * - Backdrop click handling\n * - Static backdrop transition (\"bounce\")\n * - Body scroll prevention\n * - Transition coordination\n * - Child component cleanup (tooltips, popovers, toasts)\n */\n\nclass DialogBase extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._openedAsModal = false\n this._addDialogListeners()\n }\n\n // Getters — subclasses override NAME with their own component name.\n static get NAME() {\n return 'dialogbase'\n }\n\n // Public — shared lifecycle methods\n\n toggle(relatedTarget) {\n return this._element.open ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._element.open || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('show'),\n { relatedTarget }\n )\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isTransitioning = true\n this._onBeforeShow()\n\n const { modal, preventBodyScroll } = this._getShowOptions()\n this._showElement({ modal, preventBodyScroll })\n\n this._queueCallback(() => {\n this._isTransitioning = false\n EventHandler.trigger(\n this._element,\n this.constructor.eventName('shown'),\n { relatedTarget }\n )\n }, this._element, this._isAnimated())\n }\n\n hide() {\n if (!this._element.open || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('hide')\n )\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isTransitioning = true\n this._hideElement()\n\n this._queueCallback(() => {\n // For subclasses that defer close() until the exit transition ends\n // (so the dialog stays in the top layer with its ::backdrop), close()\n // happens here instead of in _hideElement().\n if (this._element.open) {\n this._closeAndCleanup()\n }\n\n this._element.classList.remove('hiding')\n this._onAfterHide()\n this._isTransitioning = false\n EventHandler.trigger(\n this._element,\n this.constructor.eventName('hidden')\n )\n }, this._element, this._isAnimated())\n }\n\n // Protected — hooks for subclasses to override\n\n _getShowOptions() {\n return { modal: true, preventBodyScroll: true }\n }\n\n _onBeforeShow() {\n // No-op by default — Dialog overrides to add nonmodal class\n }\n\n _onAfterHide() {\n // No-op by default — Dialog overrides to remove nonmodal class\n }\n\n _isAnimated() {\n return !this._element.classList.contains(this._getInstantClassName())\n }\n\n _getInstantClassName() {\n return 'dialog-instant'\n }\n\n _getStaticClassName() {\n return 'dialog-static'\n }\n\n _onCancel() {\n // No-op by default — Dialog overrides to fire cancel event\n }\n\n // Protected — shared mechanics\n\n _showElement({ modal = true, preventBodyScroll = true } = {}) {\n this._openedAsModal = modal\n\n if (modal) {\n this._element.showModal()\n } else {\n this._element.show()\n }\n\n if (preventBodyScroll) {\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n }\n\n _hideElement() {\n this._hideChildComponents()\n\n // Add .hiding before close() so CSS exit transitions can play.\n // Without this, the navbar's `:not([open])` transition-kill rule\n // would prevent the slide-out animation.\n this._element.classList.add('hiding')\n\n // Subclasses can defer close() until after the exit transition by\n // returning true from _shouldDeferClose(). This is needed for the\n // native modal <dialog> centered case: close() removes the dialog\n // from the top layer immediately, which strips its auto-centering\n // and the ::backdrop, breaking the exit animation.\n if (!this._shouldDeferClose()) {\n this._closeAndCleanup()\n }\n }\n\n // Closes the native <dialog> and tears down body-scroll prevention.\n // Safe to call multiple times — close() is a no-op on a closed dialog.\n _closeAndCleanup() {\n this._element.close()\n this._openedAsModal = false\n\n // Only restore body scroll if no other modal dialogs are open\n if (!document.querySelector('dialog[open]:modal')) {\n document.body.classList.remove(CLASS_NAME_OPEN)\n }\n }\n\n // Hook: return true to keep the dialog in the top layer (i.e., delay\n // calling close()) until the exit transition completes. The base class\n // closes synchronously; Dialog overrides this for animated modal cases.\n _shouldDeferClose() {\n return false\n }\n\n _triggerBackdropTransition() {\n const hidePreventedEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('hidePrevented')\n )\n\n if (hidePreventedEvent.defaultPrevented) {\n return\n }\n\n const staticClass = this._getStaticClassName()\n this._element.classList.add(staticClass)\n this._queueCallback(() => {\n this._element.classList.remove(staticClass)\n }, this._element)\n }\n\n // Hide any tooltips, popovers, or toasts inside the dialog before closing.\n // These components append to the dialog (for top-layer rendering) and would\n // otherwise persist visibly after close().\n _hideChildComponents() {\n const selector = '[data-bs-toggle=\"tooltip\"], [data-bs-toggle=\"popover\"]'\n\n for (const el of SelectorEngine.find(selector, this._element)) {\n const instance = Data.getAny(el)\n if (instance && typeof instance.hide === 'function') {\n instance.hide()\n }\n }\n\n // Hide any visible toasts\n for (const el of SelectorEngine.find('.toast.show', this._element)) {\n const instance = Data.getAny(el)\n if (instance && typeof instance.hide === 'function') {\n instance.hide()\n }\n }\n }\n\n // Private\n\n _addDialogListeners() {\n const eventKey = this.constructor.EVENT_KEY\n\n // Handle native cancel event (Escape key) — only fires for modal dialogs\n EventHandler.on(this._element, 'cancel', event => {\n event.preventDefault()\n\n if (!this._config.keyboard) {\n this._triggerBackdropTransition()\n return\n }\n\n this._onCancel()\n this.hide()\n })\n\n // Handle Escape key for non-modal dialogs (native cancel doesn't fire for show())\n EventHandler.on(this._element, `keydown${eventKey}`, event => {\n if (event.key !== 'Escape' || this._openedAsModal) {\n return\n }\n\n event.preventDefault()\n\n if (!this._config.keyboard) {\n return\n }\n\n this._onCancel()\n this.hide()\n })\n\n // Handle backdrop clicks — only applies to modal dialogs\n EventHandler.on(this._element, `click${eventKey}`, event => {\n if (event.target !== this._element || !this._openedAsModal) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n return\n }\n\n this.hide()\n })\n }\n}\n\nexport default DialogBase\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dialog.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport DialogBase from './dialog-base.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'dialog'\nconst DATA_KEY = 'bs.dialog'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CANCEL = `cancel${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_NONMODAL = 'dialog-nonmodal'\nconst CLASS_NAME_INSTANT = 'dialog-instant'\nconst CLASS_NAME_SWAP_IN = 'dialog-swap-in'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dialog\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n modal: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n modal: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Dialog extends DialogBase {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n handleUpdate() {\n // Provided for API consistency with Modal.\n }\n\n // Protected — hook overrides\n\n _getShowOptions() {\n return {\n modal: this._config.modal,\n preventBodyScroll: this._config.modal\n }\n }\n\n _onBeforeShow() {\n if (!this._config.modal) {\n this._element.classList.add(CLASS_NAME_NONMODAL)\n }\n }\n\n _onAfterHide() {\n this._element.classList.remove(CLASS_NAME_NONMODAL)\n }\n\n // Keep the dialog in the top layer until the exit transition ends. This\n // preserves the browser's modal centering and the native ::backdrop, both\n // of which disappear synchronously the moment close() is called. Without\n // this, the dialog would jump to the top of the page and the backdrop\n // blur would vanish instantly while the dialog faded — making the exit\n // animation appear to skip entirely.\n _shouldDeferClose() {\n return this._isAnimated()\n }\n\n _onCancel() {\n EventHandler.trigger(this._element, EVENT_CANCEL)\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n // Get config from trigger's data attributes\n const config = Manipulator.getDataAttributes(this)\n\n // Check if trigger is inside an open dialog (dialog swapping)\n const currentDialog = this.closest('dialog[open]')\n const shouldSwap = currentDialog && currentDialog !== target\n\n if (shouldSwap) {\n // Swap strategy (seamless backdrop, no flash):\n // 1. Mark the incoming dialog with .dialog-swap-in so its ::backdrop\n // skips the @starting-style fade-in and appears fully opaque on\n // its very first frame in the top layer.\n // 2. Open the incoming dialog (showModal).\n // 3. Close the outgoing dialog synchronously — no exit transition, no\n // .hiding — so its ::backdrop is removed in the same frame the\n // incoming dialog's backdrop appears. Since both backdrops render\n // the same color, the user sees one continuous backdrop. Two\n // simultaneously-visible backdrops would composite to ~75% darker,\n // and a fading-out + fading-in pair would dip to ~75% opacity —\n // either would look like a flash.\n // 4. Clean up the .dialog-swap-in flag once the incoming dialog\n // finishes its entry transition.\n const newDialog = Dialog.getOrCreateInstance(target, config)\n target.classList.add(CLASS_NAME_SWAP_IN)\n newDialog.show(this)\n EventHandler.one(target, `shown${EVENT_KEY}`, () => {\n target.classList.remove(CLASS_NAME_SWAP_IN)\n })\n\n const currentInstance = Dialog.getInstance(currentDialog)\n if (currentInstance) {\n // Force synchronous close: .dialog-instant makes _isAnimated() false,\n // which makes _shouldDeferClose() false, so hide() calls close()\n // immediately (no deferred .hiding path). The class is removed after\n // the (now-synchronous) hidden event fires.\n currentDialog.classList.add(CLASS_NAME_INSTANT)\n EventHandler.one(currentDialog, EVENT_HIDDEN, () => {\n currentDialog.classList.remove(CLASS_NAME_INSTANT)\n })\n currentInstance.hide()\n }\n\n return\n }\n\n const data = Dialog.getOrCreateInstance(target, config)\n data.toggle(this)\n})\n\nenableDismissTrigger(Dialog)\n\nexport default Dialog\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap nav-overflow.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'navoverflow'\nconst DATA_KEY = 'bs.navoverflow'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_UPDATE = `update${EVENT_KEY}`\nconst EVENT_OVERFLOW = `overflow${EVENT_KEY}`\n\nconst CLASS_NAME_OVERFLOW = 'nav-overflow'\nconst CLASS_NAME_OVERFLOW_MENU = 'nav-overflow-menu'\nconst CLASS_NAME_HIDDEN = 'd-none'\n\nconst SELECTOR_NAV_ITEM = '.nav-item'\nconst SELECTOR_NAV_LINK = '.nav-link'\nconst SELECTOR_OVERFLOW_TOGGLE = '.nav-overflow-toggle'\nconst SELECTOR_OVERFLOW_MENU = '.nav-overflow-menu'\nconst SELECTOR_CUSTOM_ICON = '[data-bs-overflow-icon]'\nconst CLASS_NAME_KEEP = 'nav-overflow-keep'\n\nconst Default = {\n collapseBelow: 0,\n iconPlacement: 'start',\n menuPlacement: 'bottom-end',\n moreText: 'More',\n moreIcon: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" viewBox=\"0 0 16 16\"><path d=\"M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3\"/></svg>',\n threshold: 0 // Minimum items to keep visible before showing overflow\n}\n\nconst DefaultType = {\n collapseBelow: '(number|string)',\n iconPlacement: 'string',\n menuPlacement: 'string',\n moreText: 'string',\n moreIcon: 'string',\n threshold: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass NavOverflow extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._items = []\n this._overflowItems = []\n this._overflowMenu = null\n this._overflowToggle = null\n this._resizeObserver = null\n this._collapseBelow = 0\n this._isInitialized = false\n\n this._init()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n update() {\n this._calculateOverflow()\n EventHandler.trigger(this._element, EVENT_UPDATE)\n }\n\n dispose() {\n if (this._resizeObserver) {\n this._resizeObserver.disconnect()\n }\n\n // Move items back to original positions\n this._restoreItems()\n\n // Remove overflow menu\n if (this._overflowToggle && this._overflowToggle.parentElement) {\n this._overflowToggle.parentElement.remove()\n }\n\n super.dispose()\n }\n\n // Private\n _init() {\n // Add overflow class to nav\n this._element.classList.add(CLASS_NAME_OVERFLOW)\n\n // Get all nav items\n this._items = [...SelectorEngine.find(SELECTOR_NAV_ITEM, this._element)]\n\n // Store original order data\n for (const [index, item] of this._items.entries()) {\n item.dataset.bsNavOrder = index\n }\n\n // Resolve collapseBelow threshold once\n this._collapseBelow = this._resolveCollapseBelow()\n\n // Create overflow menu if it doesn't exist\n this._createOverflowMenu()\n\n // Setup resize observer\n this._setupResizeObserver()\n\n // Initial calculation\n this._calculateOverflow()\n\n this._isInitialized = true\n }\n\n _createOverflowMenu() {\n // Check if overflow menu already exists\n this._overflowToggle = SelectorEngine.findOne(SELECTOR_OVERFLOW_TOGGLE, this._element)\n\n if (this._overflowToggle) {\n this._overflowMenu = SelectorEngine.findOne(SELECTOR_OVERFLOW_MENU, this._element)\n return\n }\n\n const iconHtml = this._resolveIcon()\n const iconSpan = `<span class=\"nav-overflow-icon\">${iconHtml}</span>`\n const textSpan = `<span class=\"nav-overflow-text\">${this._config.moreText}</span>`\n const toggleContent = this._config.iconPlacement === 'end' ?\n `${textSpan}${iconSpan}` :\n `${iconSpan}${textSpan}`\n\n const overflowItem = document.createElement('li')\n overflowItem.className = 'nav-item nav-overflow-item'\n overflowItem.innerHTML = `\n <button class=\"nav-link nav-overflow-toggle\" type=\"button\" data-bs-toggle=\"menu\" data-bs-placement=\"${this._config.menuPlacement}\" aria-expanded=\"false\">\n ${toggleContent}\n </button>\n <div class=\"${CLASS_NAME_OVERFLOW_MENU} menu\"></div>\n `\n\n this._element.append(overflowItem)\n this._overflowToggle = overflowItem.querySelector(SELECTOR_OVERFLOW_TOGGLE)\n this._overflowMenu = overflowItem.querySelector(SELECTOR_OVERFLOW_MENU)\n }\n\n _resolveIcon() {\n const customIconElement = SelectorEngine.findOne(SELECTOR_CUSTOM_ICON, this._element)\n\n if (!customIconElement) {\n return this._config.moreIcon\n }\n\n const iconClone = customIconElement.cloneNode(true)\n iconClone.removeAttribute('data-bs-overflow-icon')\n const iconHtml = iconClone.outerHTML\n\n customIconElement.remove()\n\n return iconHtml\n }\n\n _resolveCollapseBelow() {\n const value = this._config.collapseBelow\n\n if (typeof value === 'number') {\n return value\n }\n\n if (typeof value === 'string' && value !== '') {\n const cssValue = getComputedStyle(document.documentElement)\n .getPropertyValue(`--bs-breakpoint-${value}`)\n return Number.parseFloat(cssValue) || 0\n }\n\n return 0\n }\n\n _setupResizeObserver() {\n if (typeof ResizeObserver === 'undefined') {\n // Fallback for older browsers\n EventHandler.on(window, 'resize', () => this._calculateOverflow())\n return\n }\n\n this._resizeObserver = new ResizeObserver(() => {\n this._calculateOverflow()\n })\n\n this._resizeObserver.observe(this._element)\n }\n\n _calculateOverflow() {\n // First, restore all items to measure properly\n this._restoreItems()\n\n const navWidth = this._element.offsetWidth\n const overflowItem = this._overflowToggle?.closest('.nav-item')\n\n // When below the collapseBelow threshold, force all items into overflow\n if (this._collapseBelow > 0 && navWidth < this._collapseBelow) {\n const itemsToOverflow = this._items.filter(\n item => !item.classList.contains(CLASS_NAME_KEEP)\n )\n\n this._moveToOverflow(itemsToOverflow)\n\n if (overflowItem) {\n if (itemsToOverflow.length > 0) {\n overflowItem.classList.remove(CLASS_NAME_HIDDEN)\n } else {\n overflowItem.classList.add(CLASS_NAME_HIDDEN)\n }\n }\n\n if (itemsToOverflow.length > 0) {\n EventHandler.trigger(this._element, EVENT_OVERFLOW, {\n overflowCount: itemsToOverflow.length,\n visibleCount: this._items.length - itemsToOverflow.length\n })\n }\n\n return\n }\n\n const overflowWidth = overflowItem?.offsetWidth || 0\n\n // Keep items are always visible; subtract their widths so the threshold\n // reflects actual available space for non-keep items.\n const keepWidth = this._items\n .filter(item => item.classList.contains(CLASS_NAME_KEEP))\n .reduce((sum, item) => sum + item.offsetWidth, 0)\n\n let usedWidth = 0\n const itemsToOverflow = []\n const overflowThreshold = navWidth - overflowWidth - keepWidth - 10 // 10px buffer\n\n // Calculate which items need to overflow (skip items with keep class)\n for (const item of this._items) {\n // Never overflow items with the keep class\n if (item.classList.contains(CLASS_NAME_KEEP)) {\n continue\n }\n\n usedWidth += item.offsetWidth\n\n if (usedWidth > overflowThreshold) {\n itemsToOverflow.push(item)\n }\n }\n\n // Check if we need threshold minimum visible\n const visibleCount = this._items.length - itemsToOverflow.length\n if (visibleCount < this._config.threshold && this._items.length > this._config.threshold) {\n // Add more items to overflow until we reach threshold (but not keep items)\n const toMove = this._items.slice(this._config.threshold).filter(item => !item.classList.contains(CLASS_NAME_KEEP))\n itemsToOverflow.length = 0\n itemsToOverflow.push(...toMove)\n }\n\n // Move items to overflow menu\n this._moveToOverflow(itemsToOverflow)\n\n // Show/hide overflow toggle\n if (overflowItem) {\n if (itemsToOverflow.length > 0) {\n overflowItem.classList.remove(CLASS_NAME_HIDDEN)\n } else {\n overflowItem.classList.add(CLASS_NAME_HIDDEN)\n }\n }\n\n // Trigger overflow event if items changed\n if (itemsToOverflow.length > 0) {\n EventHandler.trigger(this._element, EVENT_OVERFLOW, {\n overflowCount: itemsToOverflow.length,\n visibleCount: this._items.length - itemsToOverflow.length\n })\n }\n }\n\n _moveToOverflow(items) {\n if (!this._overflowMenu) {\n return\n }\n\n // Clear existing overflow items\n this._overflowMenu.innerHTML = ''\n this._overflowItems = []\n\n for (const item of items) {\n const link = SelectorEngine.findOne(SELECTOR_NAV_LINK, item)\n if (!link) {\n continue\n }\n\n const clonedLink = link.cloneNode(true)\n clonedLink.className = 'menu-item'\n\n if (link.classList.contains('active')) {\n clonedLink.classList.add('active')\n }\n\n if (link.classList.contains('disabled') || link.hasAttribute('disabled')) {\n clonedLink.classList.add('disabled')\n }\n\n this._overflowMenu.append(clonedLink)\n\n // Hide original item\n item.classList.add(CLASS_NAME_HIDDEN)\n item.dataset.bsNavOverflow = 'true'\n\n this._overflowItems.push(item)\n }\n }\n\n _restoreItems() {\n for (const item of this._items) {\n item.classList.remove(CLASS_NAME_HIDDEN)\n delete item.dataset.bsNavOverflow\n }\n\n if (this._overflowMenu) {\n this._overflowMenu.innerHTML = ''\n }\n\n this._overflowItems = []\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, 'DOMContentLoaded', () => {\n for (const element of SelectorEngine.find('[data-bs-toggle=\"nav-overflow\"]')) {\n NavOverflow.getOrCreateInstance(element)\n }\n})\n\nexport default NavOverflow\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap drawer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport DialogBase from './dialog-base.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Swipe from './util/swipe.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport {\n isDisabled,\n isRTL,\n isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'drawer'\nconst DATA_KEY = 'bs.drawer'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"drawer\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Drawer extends DialogBase {\n constructor(element, config) {\n super(element, config)\n this._swipeHelper = null\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Protected — hook overrides\n\n _getShowOptions() {\n const useModal = Boolean(this._config.backdrop) || !this._config.scroll\n return {\n modal: useModal,\n preventBodyScroll: !this._config.scroll\n }\n }\n\n _onBeforeShow() {\n this._initSwipe()\n }\n\n _getInstantClassName() {\n return 'drawer-instant'\n }\n\n _getStaticClassName() {\n return 'drawer-static'\n }\n\n // Private\n\n _initSwipe() {\n if (this._swipeHelper || !Swipe.isSupported()) {\n return\n }\n\n // Determine which swipe direction dismisses based on placement\n const swipeConfig = {}\n const element = this._element\n\n if (element.classList.contains('drawer-bottom')) {\n swipeConfig.downCallback = () => this.hide()\n } else if (element.classList.contains('drawer-top')) {\n swipeConfig.upCallback = () => this.hide()\n } else if (element.classList.contains('drawer-end')) {\n // RTL: swipe left to dismiss end drawer\n if (isRTL()) {\n swipeConfig.leftCallback = () => this.hide()\n } else {\n swipeConfig.rightCallback = () => this.hide()\n }\n } else if (isRTL()) {\n // drawer-start (default): swipe right to dismiss in RTL\n swipeConfig.rightCallback = () => this.hide()\n } else {\n // drawer-start (default): swipe left to dismiss in LTR\n swipeConfig.leftCallback = () => this.hide()\n }\n\n this._swipeHelper = new Swipe(element, swipeConfig)\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n\n // Avoid conflict when clicking a toggler of a drawer, while another is open\n const alreadyOpen = SelectorEngine.findOne('dialog.drawer[open]')\n if (alreadyOpen && alreadyOpen !== target) {\n Drawer.getInstance(alreadyOpen).hide()\n }\n\n const data = Drawer.getOrCreateInstance(target)\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const selector of SelectorEngine.find('dialog.drawer[open]')) {\n Drawer.getOrCreateInstance(selector).show()\n }\n})\n\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('dialog[open][class*=\"\\\\:drawer\"]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Drawer.getOrCreateInstance(element).hide()\n }\n }\n})\n\nenableDismissTrigger(Drawer)\n\nexport default Drawer\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap strength.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'strength'\nconst DATA_KEY = 'bs.strength'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_STRENGTH_CHANGE = `strengthChange${EVENT_KEY}`\n\nconst SELECTOR_DATA_STRENGTH = '[data-bs-strength]'\n\nconst STRENGTH_LEVELS = ['weak', 'fair', 'good', 'strong']\n\nconst Default = {\n input: null, // Selector or element for password input\n minLength: 8,\n messages: {\n weak: 'Weak',\n fair: 'Fair',\n good: 'Good',\n strong: 'Strong'\n },\n weights: {\n minLength: 1,\n extraLength: 1,\n lowercase: 1,\n uppercase: 1,\n numbers: 1,\n special: 1,\n multipleSpecial: 1,\n longPassword: 1\n },\n thresholds: [2, 4, 6], // weak ≤2, fair ≤4, good ≤6, strong >6\n scorer: null // Custom scoring function (password) => number\n}\n\nconst DefaultType = {\n input: '(string|element|null)',\n minLength: 'number',\n messages: 'object',\n weights: 'object',\n thresholds: 'array',\n scorer: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Strength extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = this._getInput()\n this._segments = SelectorEngine.find('.strength-segment', this._element)\n this._textElement = SelectorEngine.findOne('.strength-text', this._element.parentElement)\n this._currentStrength = null\n\n if (this._input) {\n this._addEventListeners()\n // Check initial value\n this._evaluate()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getStrength() {\n return this._currentStrength\n }\n\n evaluate() {\n this._evaluate()\n }\n\n // Private\n _getInput() {\n if (this._config.input) {\n return typeof this._config.input === 'string' ?\n SelectorEngine.findOne(this._config.input) :\n this._config.input\n }\n\n // Look for preceding password input\n const parent = this._element.parentElement\n return SelectorEngine.findOne('input[type=\"password\"]', parent)\n }\n\n _addEventListeners() {\n EventHandler.on(this._input, 'input', () => this._evaluate())\n EventHandler.on(this._input, 'change', () => this._evaluate())\n }\n\n _evaluate() {\n const password = this._input.value\n const score = this._calculateScore(password)\n const strength = this._scoreToStrength(score)\n\n if (strength !== this._currentStrength) {\n this._currentStrength = strength\n this._updateUI(strength, score)\n\n EventHandler.trigger(this._element, EVENT_STRENGTH_CHANGE, {\n strength,\n score,\n password: password.length > 0 ? '***' : '' // Don't expose actual password\n })\n }\n }\n\n _calculateScore(password) {\n if (!password) {\n return 0\n }\n\n // Use custom scorer if provided\n if (typeof this._config.scorer === 'function') {\n return this._config.scorer(password)\n }\n\n const { weights } = this._config\n let score = 0\n\n // Length scoring\n if (password.length >= this._config.minLength) {\n score += weights.minLength\n }\n\n if (password.length >= this._config.minLength + 4) {\n score += weights.extraLength\n }\n\n // Character variety\n if (/[a-z]/.test(password)) {\n score += weights.lowercase\n }\n\n if (/[A-Z]/.test(password)) {\n score += weights.uppercase\n }\n\n if (/\\d/.test(password)) {\n score += weights.numbers\n }\n\n // Special characters\n if (/[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n score += weights.special\n }\n\n // Extra points for more special chars or length\n if (/[!@#$%^&*(),.?\":{}|<>].*[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n score += weights.multipleSpecial\n }\n\n if (password.length >= 16) {\n score += weights.longPassword\n }\n\n return score\n }\n\n _scoreToStrength(score) {\n if (score === 0) {\n return null\n }\n\n const [weak, fair, good] = this._config.thresholds\n\n if (score <= weak) {\n return 'weak'\n }\n\n if (score <= fair) {\n return 'fair'\n }\n\n if (score <= good) {\n return 'good'\n }\n\n return 'strong'\n }\n\n _updateUI(strength) {\n // Update data attribute on element\n if (strength) {\n this._element.dataset.bsStrength = strength\n } else {\n delete this._element.dataset.bsStrength\n }\n\n // Update segmented meter\n const strengthIndex = strength ? STRENGTH_LEVELS.indexOf(strength) : -1\n\n for (const [index, segment] of this._segments.entries()) {\n if (index <= strengthIndex) {\n segment.classList.add('active')\n } else {\n segment.classList.remove('active')\n }\n }\n\n // Update text feedback\n if (this._textElement) {\n if (strength && this._config.messages[strength]) {\n this._textElement.textContent = this._config.messages[strength]\n this._textElement.dataset.bsStrength = strength\n\n // Also set the color via inheriting from parent or using CSS variable\n const colorMap = {\n weak: 'danger',\n fair: 'warning',\n good: 'info',\n strong: 'success'\n }\n this._textElement.style.setProperty('--strength-color', `var(--${colorMap[strength]}-text)`)\n } else {\n this._textElement.textContent = ''\n delete this._textElement.dataset.bsStrength\n }\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_STRENGTH)) {\n Strength.getOrCreateInstance(element)\n }\n})\n\nexport default Strength\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap otp-input.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'otpInput'\nconst DATA_KEY = 'bs.otp-input'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_COMPLETE = `complete${EVENT_KEY}`\nconst EVENT_INPUT = `input${EVENT_KEY}`\n\nconst SELECTOR_DATA_OTP = '[data-bs-otp]'\nconst SELECTOR_INPUT = 'input'\n\nconst Default = {\n length: 6,\n mask: false\n}\n\nconst DefaultType = {\n length: 'number',\n mask: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass OtpInput extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._inputs = SelectorEngine.find(SELECTOR_INPUT, this._element)\n this._setupInputs()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getValue() {\n return this._inputs.map(input => input.value).join('')\n }\n\n setValue(value) {\n const chars = [...String(value)]\n for (const [index, input] of this._inputs.entries()) {\n input.value = chars[index] || ''\n }\n\n this._checkComplete()\n }\n\n clear() {\n for (const input of this._inputs) {\n input.value = ''\n }\n\n this._inputs[0]?.focus()\n }\n\n focus() {\n // Focus first empty input, or last input if all filled\n const emptyInput = this._inputs.find(input => !input.value)\n if (emptyInput) {\n emptyInput.focus()\n } else {\n this._inputs.at(-1)?.focus()\n }\n }\n\n // Private\n _setupInputs() {\n for (const input of this._inputs) {\n // Set attributes for proper OTP handling\n input.setAttribute('maxlength', '1')\n input.setAttribute('inputmode', 'numeric')\n input.setAttribute('pattern', '\\\\d*')\n\n // First input gets autocomplete for browser OTP autofill\n if (input === this._inputs[0]) {\n input.setAttribute('autocomplete', 'one-time-code')\n } else {\n input.setAttribute('autocomplete', 'off')\n }\n\n // Mask input if configured\n if (this._config.mask) {\n input.setAttribute('type', 'password')\n }\n }\n }\n\n _addEventListeners() {\n for (const [index, input] of this._inputs.entries()) {\n EventHandler.on(input, 'input', event => this._handleInput(event, index))\n EventHandler.on(input, 'keydown', event => this._handleKeydown(event, index))\n EventHandler.on(input, 'paste', event => this._handlePaste(event))\n EventHandler.on(input, 'focus', event => this._handleFocus(event))\n }\n }\n\n _handleInput(event, index) {\n const input = event.target\n\n // Only allow digits\n if (!/^\\d*$/.test(input.value)) {\n input.value = input.value.replace(/\\D/g, '')\n }\n\n const { value } = input\n\n // Handle multi-character input (some browsers/autofill)\n if (value.length > 1) {\n // Distribute characters across inputs\n const chars = [...value]\n input.value = chars[0] || ''\n\n for (let i = 1; i < chars.length && index + i < this._inputs.length; i++) {\n this._inputs[index + i].value = chars[i]\n }\n\n // Focus appropriate input\n const nextIndex = Math.min(index + chars.length, this._inputs.length - 1)\n this._inputs[nextIndex].focus()\n } else if (value && index < this._inputs.length - 1) {\n // Auto-advance to next input\n this._inputs[index + 1].focus()\n }\n\n EventHandler.trigger(this._element, EVENT_INPUT, {\n value: this.getValue(),\n index\n })\n\n this._checkComplete()\n }\n\n _handleKeydown(event, index) {\n const { key } = event\n\n switch (key) {\n case 'Backspace': {\n if (!this._inputs[index].value && index > 0) {\n // Move to previous input and clear it\n event.preventDefault()\n this._inputs[index - 1].value = ''\n this._inputs[index - 1].focus()\n }\n\n break\n }\n\n case 'Delete': {\n // Clear current and shift remaining values left\n event.preventDefault()\n for (let i = index; i < this._inputs.length - 1; i++) {\n this._inputs[i].value = this._inputs[i + 1].value\n }\n\n this._inputs.at(-1).value = ''\n break\n }\n\n case 'ArrowLeft': {\n if (index > 0) {\n event.preventDefault()\n this._inputs[index - 1].focus()\n }\n\n break\n }\n\n case 'ArrowRight': {\n if (index < this._inputs.length - 1) {\n event.preventDefault()\n this._inputs[index + 1].focus()\n }\n\n break\n }\n\n // No default\n }\n }\n\n _handlePaste(event) {\n event.preventDefault()\n const pastedData = (event.clipboardData || window.clipboardData).getData('text')\n const digits = pastedData.replace(/\\D/g, '').slice(0, this._inputs.length)\n\n if (digits) {\n this.setValue(digits)\n\n // Focus last filled input or last input\n const lastIndex = Math.min(digits.length, this._inputs.length) - 1\n this._inputs[lastIndex].focus()\n }\n }\n\n _handleFocus(event) {\n // Select the content on focus for easy replacement\n event.target.select()\n }\n\n _checkComplete() {\n const value = this.getValue()\n const isComplete = value.length === this._inputs.length &&\n this._inputs.every(input => input.value !== '')\n\n if (isComplete) {\n EventHandler.trigger(this._element, EVENT_COMPLETE, { value })\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_OTP)) {\n OtpInput.getOrCreateInstance(element)\n }\n})\n\nexport default OtpInput\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap chips.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'chips'\nconst DATA_KEY = 'bs.chips'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ADD = `add${EVENT_KEY}`\nconst EVENT_REMOVE = `remove${EVENT_KEY}`\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SELECT = `select${EVENT_KEY}`\n\nconst SELECTOR_DATA_CHIPS = '[data-bs-chips]'\nconst SELECTOR_GHOST_INPUT = '.form-ghost'\nconst SELECTOR_CHIP = '.chip'\nconst SELECTOR_CHIP_DISMISS = '.chip-dismiss'\n\nconst CLASS_NAME_CHIP = 'chip'\nconst CLASS_NAME_CHIP_DISMISS = 'chip-dismiss'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst DEFAULT_DISMISS_ICON = '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><line x1=\"4\" y1=\"4\" x2=\"12\" y2=\"12\"/><line x1=\"12\" y1=\"4\" x2=\"4\" y2=\"12\"/></svg>'\n\nconst Default = {\n separator: ',',\n allowDuplicates: false,\n maxChips: null,\n placeholder: '',\n dismissible: true,\n dismissIcon: DEFAULT_DISMISS_ICON,\n createOnBlur: true\n}\n\nconst DefaultType = {\n separator: '(string|null)',\n allowDuplicates: 'boolean',\n maxChips: '(number|null)',\n placeholder: 'string',\n dismissible: 'boolean',\n dismissIcon: 'string',\n createOnBlur: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Chips extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = SelectorEngine.findOne(SELECTOR_GHOST_INPUT, this._element)\n this._chips = []\n this._selectedChips = new Set()\n this._anchorChip = null // For shift+click range selection\n\n if (!this._input) {\n this._createInput()\n }\n\n this._initializeExistingChips()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n add(value) {\n const trimmedValue = String(value).trim()\n\n if (!trimmedValue) {\n return null\n }\n\n // Check for duplicates\n if (!this._config.allowDuplicates && this._chips.includes(trimmedValue)) {\n return null\n }\n\n // Check max chips limit\n if (this._config.maxChips !== null && this._chips.length >= this._config.maxChips) {\n return null\n }\n\n const addEvent = EventHandler.trigger(this._element, EVENT_ADD, {\n value: trimmedValue,\n relatedTarget: this._input\n })\n\n if (addEvent.defaultPrevented) {\n return null\n }\n\n const chip = this._createChip(trimmedValue)\n this._element.insertBefore(chip, this._input)\n this._chips.push(trimmedValue)\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: this.getValues()\n })\n\n return chip\n }\n\n remove(chipOrValue) {\n let chip\n let value\n\n if (typeof chipOrValue === 'string') {\n value = chipOrValue\n chip = this._findChipByValue(value)\n } else {\n chip = chipOrValue\n value = this._getChipValue(chip)\n }\n\n if (!chip || !value) {\n return false\n }\n\n const removeEvent = EventHandler.trigger(this._element, EVENT_REMOVE, {\n value,\n chip,\n relatedTarget: this._input\n })\n\n if (removeEvent.defaultPrevented) {\n return false\n }\n\n // Remove from selection\n this._selectedChips.delete(chip)\n if (this._anchorChip === chip) {\n this._anchorChip = null\n }\n\n // Remove from DOM and array\n chip.remove()\n this._chips = this._chips.filter(v => v !== value)\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: this.getValues()\n })\n\n return true\n }\n\n removeSelected() {\n const chipsToRemove = [...this._selectedChips]\n for (const chip of chipsToRemove) {\n this.remove(chip)\n }\n\n this._input?.focus()\n }\n\n getValues() {\n return [...this._chips]\n }\n\n getSelectedValues() {\n return [...this._selectedChips].map(chip => this._getChipValue(chip))\n }\n\n clear() {\n const chips = SelectorEngine.find(SELECTOR_CHIP, this._element)\n for (const chip of chips) {\n chip.remove()\n }\n\n this._chips = []\n this._selectedChips.clear()\n this._anchorChip = null\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: []\n })\n }\n\n clearSelection() {\n for (const chip of this._selectedChips) {\n chip.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n this._selectedChips.clear()\n this._anchorChip = null\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: []\n })\n }\n\n selectChip(chip, options = {}) {\n const { addToSelection = false, rangeSelect = false } = options\n const chipElements = this._getChipElements()\n\n if (!chipElements.includes(chip)) {\n return\n }\n\n if (rangeSelect && this._anchorChip) {\n // Range selection from anchor to chip\n const anchorIndex = chipElements.indexOf(this._anchorChip)\n const chipIndex = chipElements.indexOf(chip)\n const start = Math.min(anchorIndex, chipIndex)\n const end = Math.max(anchorIndex, chipIndex)\n\n if (!addToSelection) {\n this.clearSelection()\n }\n\n for (let i = start; i <= end; i++) {\n this._selectedChips.add(chipElements[i])\n chipElements[i].classList.add(CLASS_NAME_ACTIVE)\n }\n } else if (addToSelection) {\n // Toggle selection\n if (this._selectedChips.has(chip)) {\n this._selectedChips.delete(chip)\n chip.classList.remove(CLASS_NAME_ACTIVE)\n } else {\n this._selectedChips.add(chip)\n chip.classList.add(CLASS_NAME_ACTIVE)\n this._anchorChip = chip\n }\n } else {\n // Single selection\n this.clearSelection()\n this._selectedChips.add(chip)\n chip.classList.add(CLASS_NAME_ACTIVE)\n this._anchorChip = chip\n }\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: this.getSelectedValues()\n })\n }\n\n focus() {\n this._input?.focus()\n }\n\n // Private\n _getChipElements() {\n return SelectorEngine.find(SELECTOR_CHIP, this._element)\n }\n\n _createInput() {\n const input = document.createElement('input')\n input.type = 'text'\n input.className = 'form-ghost'\n if (this._config.placeholder) {\n input.placeholder = this._config.placeholder\n }\n\n this._element.append(input)\n this._input = input\n }\n\n _initializeExistingChips() {\n const existingChips = SelectorEngine.find(SELECTOR_CHIP, this._element)\n for (const chip of existingChips) {\n const value = this._getChipValue(chip)\n if (value) {\n this._chips.push(value)\n this._setupChip(chip)\n }\n }\n }\n\n _setupChip(chip) {\n // Make chip focusable\n chip.setAttribute('tabindex', '0')\n\n // Add dismiss button if needed\n if (this._config.dismissible && !SelectorEngine.findOne(SELECTOR_CHIP_DISMISS, chip)) {\n chip.append(this._createDismissButton())\n }\n }\n\n _createChip(value) {\n const chip = document.createElement('span')\n chip.className = CLASS_NAME_CHIP\n chip.dataset.bsChipValue = value\n\n // Add text node\n chip.append(document.createTextNode(value))\n\n // Setup chip (tabindex, dismiss button)\n this._setupChip(chip)\n\n return chip\n }\n\n _createDismissButton() {\n const button = document.createElement('button')\n button.type = 'button'\n button.className = CLASS_NAME_CHIP_DISMISS\n button.setAttribute('aria-label', 'Remove')\n button.setAttribute('tabindex', '-1') // Not in tab order, chips handle keyboard\n button.innerHTML = this._config.dismissIcon\n return button\n }\n\n _findChipByValue(value) {\n const chips = this._getChipElements()\n return chips.find(chip => this._getChipValue(chip) === value)\n }\n\n _getChipValue(chip) {\n if (chip.dataset.bsChipValue) {\n return chip.dataset.bsChipValue\n }\n\n const clone = chip.cloneNode(true)\n const dismiss = SelectorEngine.findOne(SELECTOR_CHIP_DISMISS, clone)\n if (dismiss) {\n dismiss.remove()\n }\n\n return clone.textContent?.trim() || ''\n }\n\n _addEventListeners() {\n // Input events\n EventHandler.on(this._input, 'keydown', event => this._handleInputKeydown(event))\n EventHandler.on(this._input, 'input', event => this._handleInput(event))\n EventHandler.on(this._input, 'paste', event => this._handlePaste(event))\n EventHandler.on(this._input, 'focus', () => this.clearSelection())\n\n if (this._config.createOnBlur) {\n EventHandler.on(this._input, 'blur', event => {\n // Don't create chip if clicking on a chip\n if (!event.relatedTarget?.closest(SELECTOR_CHIP)) {\n this._createChipFromInput()\n }\n })\n }\n\n // Chip click events (delegated)\n EventHandler.on(this._element, 'click', SELECTOR_CHIP, event => {\n // Ignore clicks on dismiss button\n if (event.target.closest(SELECTOR_CHIP_DISMISS)) {\n return\n }\n\n const chip = event.target.closest(SELECTOR_CHIP)\n if (chip) {\n event.preventDefault()\n this.selectChip(chip, {\n addToSelection: event.metaKey || event.ctrlKey,\n rangeSelect: event.shiftKey\n })\n chip.focus()\n }\n })\n\n // Dismiss button clicks (delegated)\n EventHandler.on(this._element, 'click', SELECTOR_CHIP_DISMISS, event => {\n event.stopPropagation()\n const chip = event.target.closest(SELECTOR_CHIP)\n if (chip) {\n this.remove(chip)\n this._input?.focus()\n }\n })\n\n // Chip keyboard events (delegated)\n EventHandler.on(this._element, 'keydown', SELECTOR_CHIP, event => {\n this._handleChipKeydown(event)\n })\n\n // Focus input when clicking container background\n EventHandler.on(this._element, 'click', event => {\n if (event.target === this._element) {\n this.clearSelection()\n this._input?.focus()\n }\n })\n }\n\n _handleInputKeydown(event) {\n const { key } = event\n\n switch (key) {\n case 'Enter': {\n event.preventDefault()\n this._createChipFromInput()\n break\n }\n\n case 'Backspace':\n case 'Delete': {\n if (this._input.value === '') {\n event.preventDefault()\n const chips = this._getChipElements()\n\n if (chips.length > 0) {\n // Select last chip and focus it\n const lastChip = chips.at(-1)\n this.selectChip(lastChip)\n lastChip.focus()\n }\n }\n\n break\n }\n\n case 'ArrowLeft': {\n if (this._input.selectionStart === 0 && this._input.selectionEnd === 0) {\n event.preventDefault()\n const chips = this._getChipElements()\n if (chips.length > 0) {\n const lastChip = chips.at(-1)\n if (event.shiftKey) {\n this.selectChip(lastChip, { addToSelection: true })\n } else {\n this.selectChip(lastChip)\n }\n\n lastChip.focus()\n }\n }\n\n break\n }\n\n case 'Escape': {\n this._input.value = ''\n this.clearSelection()\n this._input.blur()\n break\n }\n\n // No default\n }\n }\n\n _handleChipKeydown(event) {\n const { key } = event\n const chip = event.target.closest(SELECTOR_CHIP)\n if (!chip) {\n return\n }\n\n const chips = this._getChipElements()\n const currentIndex = chips.indexOf(chip)\n\n switch (key) {\n case 'Backspace':\n case 'Delete': {\n event.preventDefault()\n this._handleChipDelete(currentIndex, chips)\n break\n }\n\n case 'ArrowLeft': {\n event.preventDefault()\n this._navigateChip(chips, currentIndex, -1, event.shiftKey)\n break\n }\n\n case 'ArrowRight': {\n event.preventDefault()\n this._navigateChip(chips, currentIndex, 1, event.shiftKey)\n break\n }\n\n case 'Home': {\n event.preventDefault()\n this._navigateToEdge(chips, 0, event.shiftKey)\n break\n }\n\n case 'End': {\n event.preventDefault()\n this.clearSelection()\n this._input?.focus()\n break\n }\n\n case 'a': {\n this._handleSelectAll(event, chips)\n break\n }\n\n case 'Escape': {\n event.preventDefault()\n this.clearSelection()\n this._input?.focus()\n break\n }\n\n // No default\n }\n }\n\n _handleChipDelete(currentIndex, chips) {\n if (this._selectedChips.size === 0) {\n return\n }\n\n const nextIndex = Math.min(currentIndex, chips.length - this._selectedChips.size - 1)\n this.removeSelected()\n\n const remainingChips = this._getChipElements()\n if (remainingChips.length > 0) {\n const focusIndex = Math.max(0, Math.min(nextIndex, remainingChips.length - 1))\n remainingChips[focusIndex].focus()\n this.selectChip(remainingChips[focusIndex])\n } else {\n this._input?.focus()\n }\n }\n\n _navigateChip(chips, currentIndex, direction, shiftKey) {\n const targetIndex = currentIndex + direction\n\n if (direction < 0 && targetIndex >= 0) {\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { addToSelection: true, rangeSelect: true } : {})\n targetChip.focus()\n } else if (direction > 0 && targetIndex < chips.length) {\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { addToSelection: true, rangeSelect: true } : {})\n targetChip.focus()\n } else if (direction > 0) {\n this.clearSelection()\n this._input?.focus()\n }\n }\n\n _navigateToEdge(chips, targetIndex, shiftKey) {\n if (chips.length === 0) {\n return\n }\n\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { rangeSelect: true } : {})\n targetChip.focus()\n }\n\n _handleSelectAll(event, chips) {\n if (!(event.metaKey || event.ctrlKey)) {\n return\n }\n\n event.preventDefault()\n for (const c of chips) {\n this._selectedChips.add(c)\n c.classList.add(CLASS_NAME_ACTIVE)\n }\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: this.getSelectedValues()\n })\n }\n\n _handleInput(event) {\n const { value } = event.target\n const { separator } = this._config\n\n if (separator && value.includes(separator)) {\n const parts = value.split(separator)\n for (const part of parts.slice(0, -1)) {\n this.add(part.trim())\n }\n\n this._input.value = parts.at(-1)\n }\n }\n\n _handlePaste(event) {\n const { separator } = this._config\n if (!separator) {\n return\n }\n\n const pastedData = (event.clipboardData || window.clipboardData).getData('text')\n if (pastedData.includes(separator)) {\n event.preventDefault()\n\n const parts = pastedData.split(separator)\n for (const part of parts) {\n this.add(part.trim())\n }\n }\n }\n\n _createChipFromInput() {\n const value = this._input.value.trim()\n if (value) {\n this.add(value)\n this._input.value = ''\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_CHIPS)) {\n Chips.getOrCreateInstance(element)\n }\n})\n\nexport default Chips\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n// js-docs-end allow-list\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue))\n }\n\n return true\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n .some(regex => regex.test(attributeName))\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const elements = [...createdDocument.body.querySelectorAll('*')]\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n continue\n }\n\n const attributeList = [...element.attributes]\n const allowedAttributes = [...(allowList['*'] || []), ...(allowList[elementName] || [])]\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'\nimport { execute, getElement, isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'TemplateFactory'\n\nconst Default = {\n allowList: DefaultAllowlist,\n content: {}, // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '<div></div>'\n}\n\nconst DefaultType = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n}\n\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content)\n .map(config => this._resolvePossibleFunction(config))\n .filter(Boolean)\n }\n\n hasContent() {\n return this.getContent().length > 0\n }\n\n changeContent(content) {\n this._checkContent(content)\n this._config.content = { ...this._config.content, ...content }\n return this\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div')\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template)\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector)\n }\n\n const template = templateWrapper.children[0]\n const extraClass = this._resolvePossibleFunction(this._config.extraClass)\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '))\n }\n\n return template\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config)\n this._checkContent(config.content)\n }\n\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({ selector, entry: content }, DefaultContentType)\n }\n }\n\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template)\n\n if (!templateElement) {\n return\n }\n\n content = this._resolvePossibleFunction(content)\n\n if (!content) {\n templateElement.remove()\n return\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement)\n return\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content)\n return\n }\n\n templateElement.textContent = content\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [undefined, this])\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = ''\n templateElement.append(element)\n return\n }\n\n templateElement.textContent = element.textContent\n }\n}\n\nexport default TemplateFactory\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n computePosition,\n flip,\n shift,\n offset,\n arrow,\n autoUpdate\n} from '@floating-ui/dom'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport {\n execute, findShadowRoot, getElement, getUID, isRTL, noop\n} from './util/index.js'\nimport { DefaultAllowlist } from './util/sanitizer.js'\nimport TemplateFactory from './util/template-factory.js'\nimport {\n parseResponsivePlacement,\n getResponsivePlacement,\n createBreakpointListeners,\n disposeBreakpointListeners\n} from './util/floating-ui.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tooltip\"]'\n\nconst EVENT_MODAL_HIDE = 'hide.bs.modal'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\nconst EVENT_HIDE = 'hide'\nconst EVENT_HIDDEN = 'hidden'\nconst EVENT_SHOW = 'show'\nconst EVENT_SHOWN = 'shown'\nconst EVENT_INSERTED = 'inserted'\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_FOCUSOUT = 'focusout'\nconst EVENT_MOUSEENTER = 'mouseenter'\nconst EVENT_MOUSELEAVE = 'mouseleave'\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n}\n\nconst Default = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n floatingConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n title: '',\n trigger: 'hover focus'\n}\n\nconst DefaultType = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n floatingConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof computePosition === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Floating UI (https://floating-ui.com)')\n }\n\n super(element, config)\n\n // Private\n this._isEnabled = true\n this._timeout = 0\n this._isHovered = null\n this._activeTrigger = {}\n this._floatingCleanup = null\n this._templateFactory = null\n this._newContent = null\n this._mediaQueryListeners = []\n this._responsivePlacements = null\n\n // Protected\n this.tip = null\n\n this._parseResponsivePlacements()\n this._setListeners()\n\n if (!this._config.selector) {\n this._fixTitle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle() {\n if (!this._isEnabled) {\n return\n }\n\n if (this._isShown()) {\n this._leave()\n return\n }\n\n this._enter()\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'))\n }\n\n this._disposeFloating()\n this._disposeMediaQueryListeners()\n super.dispose()\n }\n\n async show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (!(this._isWithContent() && this._isEnabled)) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW))\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n this._disposeFloating()\n\n const tip = this._getTipElement()\n\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'))\n\n let { container } = this._config\n const closestDialog = this._element.closest('dialog[open]')\n if (closestDialog && container === document.body) {\n container = closestDialog\n }\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip)\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED))\n }\n\n await this._createFloating(tip)\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN))\n\n if (this._isHovered === false) {\n this._leave()\n }\n\n this._isHovered = false\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE))\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const tip = this._getTipElement()\n tip.classList.remove(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n this._isHovered = null // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (!this._isHovered) {\n this._disposeFloating()\n }\n\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN))\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n update() {\n if (this._floatingCleanup && this.tip) {\n this._updateFloatingPosition()\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle())\n }\n\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())\n }\n\n return this.tip\n }\n\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml()\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n tip.classList.add(`bs-${this.constructor.NAME}-auto`)\n\n const tipId = getUID(this.constructor.NAME).toString()\n\n tip.setAttribute('id', tipId)\n\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n return tip\n }\n\n setContent(content) {\n this._newContent = content\n if (this._isShown()) {\n this._disposeFloating()\n this.show()\n }\n }\n\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content)\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n })\n }\n\n return this._templateFactory\n }\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n }\n }\n\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title')\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\n }\n\n _isAnimated() {\n return this._config.animation || (this.tip && this.tip.classList.contains(CLASS_NAME_FADE))\n }\n\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement(tip) {\n // If we have responsive placements, get the one for current viewport\n if (this._responsivePlacements) {\n const placement = getResponsivePlacement(this._responsivePlacements, 'top')\n return AttachmentMap[placement.toUpperCase()] || placement\n }\n\n // Execute placement (can be a function)\n const placement = execute(this._config.placement, [this, tip, this._element])\n return AttachmentMap[placement.toUpperCase()] || placement\n }\n\n _parseResponsivePlacements() {\n // Only parse if placement is a string (not a function)\n if (typeof this._config.placement !== 'string') {\n this._responsivePlacements = null\n return\n }\n\n this._responsivePlacements = parseResponsivePlacement(this._config.placement, 'top')\n\n if (this._responsivePlacements) {\n this._setupMediaQueryListeners()\n }\n }\n\n _setupMediaQueryListeners() {\n this._disposeMediaQueryListeners()\n this._mediaQueryListeners = createBreakpointListeners(() => {\n if (this._isShown()) {\n this._updateFloatingPosition()\n }\n })\n }\n\n _disposeMediaQueryListeners() {\n disposeBreakpointListeners(this._mediaQueryListeners)\n this._mediaQueryListeners = []\n }\n\n async _createFloating(tip) {\n const placement = this._getPlacement(tip)\n const arrowElement = tip.querySelector(`.${this.constructor.NAME}-arrow`)\n\n // Initial position update\n await this._updateFloatingPosition(tip, placement, arrowElement)\n\n // Set up auto-update for scroll/resize\n this._floatingCleanup = autoUpdate(\n this._element,\n tip,\n () => this._updateFloatingPosition(tip, null, arrowElement)\n )\n }\n\n async _updateFloatingPosition(tip = this.tip, placement = null, arrowElement = null) {\n if (!tip) {\n return\n }\n\n if (!placement) {\n placement = this._getPlacement(tip)\n }\n\n if (!arrowElement) {\n arrowElement = tip.querySelector(`.${this.constructor.NAME}-arrow`)\n }\n\n const middleware = this._getFloatingMiddleware(arrowElement)\n const floatingConfig = this._getFloatingConfig(placement, middleware)\n\n const { x, y, placement: finalPlacement, middlewareData } = await computePosition(\n this._element,\n tip,\n floatingConfig\n )\n\n // Apply position to tooltip\n Object.assign(tip.style, {\n position: 'absolute',\n left: `${x}px`,\n top: `${y}px`\n })\n\n // Ensure arrow is absolutely positioned within tooltip\n if (arrowElement) {\n arrowElement.style.position = 'absolute'\n }\n\n // Set placement attribute for CSS arrow styling\n Manipulator.setDataAttribute(tip, 'placement', finalPlacement)\n\n // Position arrow along the edge (center it) if present\n // The CSS handles which edge to place it on via data-bs-placement\n if (arrowElement && middlewareData.arrow) {\n const { x: arrowX, y: arrowY } = middlewareData.arrow\n const isVertical = finalPlacement.startsWith('top') || finalPlacement.startsWith('bottom')\n\n // Only set the cross-axis position (centering along the edge)\n // The main-axis position (which edge) is handled by CSS\n Object.assign(arrowElement.style, {\n left: isVertical && arrowX !== null ? `${arrowX}px` : '',\n top: !isVertical && arrowY !== null ? `${arrowY}px` : '',\n // Reset the other axis to let CSS handle it\n right: '',\n bottom: ''\n })\n }\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offset === 'function') {\n // Floating UI passes different args, adapt the interface for offset function callbacks\n return ({ placement, rects }) => {\n const result = offset({ placement, reference: rects.reference, floating: rects.floating }, this._element)\n return result\n }\n }\n\n return offset\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element, this._element])\n }\n\n _getFloatingMiddleware(arrowElement) {\n const offsetValue = this._getOffset()\n\n const middleware = [\n // Offset middleware - handles distance from reference\n offset(\n typeof offsetValue === 'function' ?\n offsetValue :\n { mainAxis: offsetValue[1] || 0, crossAxis: offsetValue[0] || 0 }\n ),\n // Flip middleware - handles fallback placements\n flip({\n fallbackPlacements: this._config.fallbackPlacements\n }),\n // Shift middleware - prevents overflow\n shift({\n boundary: this._config.boundary === 'clippingParents' ? 'clippingAncestors' : this._config.boundary\n })\n ]\n\n // Arrow middleware - positions the arrow element\n if (arrowElement) {\n middleware.push(arrow({ element: arrowElement }))\n }\n\n return middleware\n }\n\n _getFloatingConfig(placement, middleware) {\n const defaultConfig = {\n placement,\n middleware\n }\n\n return {\n ...defaultConfig,\n ...execute(this._config.floatingConfig, [undefined, defaultConfig])\n }\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ')\n\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[TRIGGER_CLICK] = !(context._isShown() && context._activeTrigger[TRIGGER_CLICK])\n context.toggle()\n })\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSEENTER) :\n this.constructor.eventName(EVENT_FOCUSIN)\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSELEAVE) :\n this.constructor.eventName(EVENT_FOCUSOUT)\n\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true\n context._enter()\n })\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] =\n context._element.contains(event.relatedTarget)\n\n context._leave()\n })\n }\n }\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n\n if (!title) {\n return\n }\n\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('data-bs-original-title', title) // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title')\n }\n\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true\n return\n }\n\n this._isHovered = true\n\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show()\n }\n }, this._config.delay.show)\n }\n\n _leave() {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n this._isHovered = false\n\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide()\n }\n }, this._config.delay.hide)\n }\n\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout)\n this._timeout = setTimeout(handler, timeout)\n }\n\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true)\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute]\n }\n }\n\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container)\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value\n }\n }\n\n config.selector = false\n config.trigger = 'manual'\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config\n }\n\n _disposeFloating() {\n if (this._floatingCleanup) {\n this._floatingCleanup()\n this._floatingCleanup = null\n }\n\n if (this.tip) {\n this.tip.remove()\n this.tip = null\n }\n }\n}\n\n/**\n * Data API implementation - auto-initialize tooltips\n */\n\nconst initTooltip = event => {\n const target = event.target.closest(SELECTOR_DATA_TOGGLE)\n if (!target) {\n return\n }\n\n // Lazily create the instance. The instance's own `_setListeners()` registers\n // the appropriate listeners on the element for the configured triggers\n // (hover/focus by default), so we don't mutate `_activeTrigger` or call\n // `_enter` here — doing so would show tooltips for triggers the user didn't\n // opt into (e.g. `focusin` firing for click-focused buttons in Chromium,\n // even when `trigger=\"hover\"` or `trigger=\"manual\"`) and leave stale state\n // on `_activeTrigger`.\n Tooltip.getOrCreateInstance(target)\n}\n\n// Auto-initialize tooltips on first interaction for hover and focus triggers\nEventHandler.on(document, EVENT_FOCUSIN, SELECTOR_DATA_TOGGLE, initTooltip)\nEventHandler.on(document, EVENT_MOUSEENTER, SELECTOR_DATA_TOGGLE, initTooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Tooltip from './tooltip.js'\nimport EventHandler from './dom/event-handler.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'popover'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"popover\"]'\n\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_MOUSEENTER = 'mouseenter'\n\nconst Default = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div>' +\n '</div>',\n trigger: 'click'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n}\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent()\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n }\n }\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content)\n }\n}\n\n/**\n * Data API implementation - auto-initialize popovers\n */\n\nconst initPopover = event => {\n const target = event.target.closest(SELECTOR_DATA_TOGGLE)\n if (!target) {\n return\n }\n\n // Prevent default for click events to avoid navigation (e.g. <a href=\"#\">)\n if (event.type === 'click') {\n event.preventDefault()\n }\n\n // Lazily create the instance. The instance's own `_setListeners()` registers\n // the appropriate listeners on the element for the configured triggers\n // (click/focus/hover), so we don't toggle or call `_enter` here — doing so\n // would duplicate handlers and leave stale state on `_activeTrigger`.\n Popover.getOrCreateInstance(target)\n}\n\n// Auto-initialize popovers on first interaction for click, hover, and focus triggers\nEventHandler.on(document, EVENT_CLICK, SELECTOR_DATA_TOGGLE, initPopover)\nEventHandler.on(document, EVENT_FOCUSIN, SELECTOR_DATA_TOGGLE, initPopover)\nEventHandler.on(document, EVENT_MOUSEENTER, SELECTOR_DATA_TOGGLE, initPopover)\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getElement, isDisabled, isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_MENU_ITEM = 'menu-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]'\nconst SELECTOR_TARGET_LINKS = '[href]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\nconst SELECTOR_MENU_TOGGLE = '[data-bs-toggle=\"menu\"]'\n\nconst Default = {\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n}\n\nconst DefaultType = {\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n}\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map()\n this._observableSections = new Map()\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element\n this._activeTarget = null\n this._observer = null\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n }\n this.refresh() // initialize\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables()\n this._maybeEnableSmoothScroll()\n\n if (this._observer) {\n this._observer.disconnect()\n } else {\n this._observer = this._getNewObserver()\n }\n\n for (const section of this._observableSections.values()) {\n this._observer.observe(section)\n }\n }\n\n dispose() {\n this._observer.disconnect()\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n config.target = getElement(config.target) || document.body\n\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value))\n }\n\n return config\n }\n\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK)\n\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash)\n if (observableSection) {\n event.preventDefault()\n const root = this._rootElement || window\n const height = observableSection.offsetTop - this._element.offsetTop\n if (root.scrollTo) {\n root.scrollTo({ top: height, behavior: 'smooth' })\n return\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height\n }\n })\n }\n\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n }\n\n return new IntersectionObserver(entries => this._observerCallback(entries), options)\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`)\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop\n this._process(targetElement(entry))\n }\n\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop\n this._previousScrollData.parentScrollTop = parentScrollTop\n\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null\n this._clearActiveClass(targetElement(entry))\n\n continue\n }\n\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry)\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return\n }\n\n continue\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry)\n }\n }\n }\n\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map()\n this._observableSections = new Map()\n\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target)\n\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue\n }\n\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element)\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor)\n this._observableSections.set(anchor.hash, observableSection)\n }\n }\n }\n\n _process(target) {\n if (this._activeTarget === target) {\n return\n }\n\n this._clearActiveClass(this._config.target)\n this._activeTarget = target\n target.classList.add(CLASS_NAME_ACTIVE)\n this._activateParents(target)\n\n EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target })\n }\n\n _activateParents(target) {\n // Activate menu parents\n if (target.classList.contains(CLASS_NAME_MENU_ITEM)) {\n const menuToggle = target.closest('.menu')?.previousElementSibling\n if (menuToggle?.matches(SELECTOR_MENU_TOGGLE)) {\n menuToggle.classList.add(CLASS_NAME_ACTIVE)\n }\n\n return\n }\n\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {\n item.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _clearActiveClass(parent) {\n parent.classList.remove(CLASS_NAME_ACTIVE)\n\n const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE}`, parent)\n for (const node of activeNodes) {\n node.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {\n ScrollSpy.getOrCreateInstance(spy)\n }\n})\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { getNextActiveElement, isDisabled } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst SELECTOR_MENU_TOGGLE = '[data-bs-toggle=\"menu\"]'\nconst SELECTOR_MENU = '.menu'\nconst NOT_SELECTOR_MENU_TOGGLE = `:not(${SELECTOR_MENU_TOGGLE})`\n\nconst SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]'\nconst SELECTOR_OUTER = '.nav-item, .list-group-item'\nconst SELECTOR_INNER = `.nav-link${NOT_SELECTOR_MENU_TOGGLE}, .list-group-item${NOT_SELECTOR_MENU_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_MENU_TOGGLE}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"]'\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`\n\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"]`\n\n/**\n * Class definition\n */\n\nclass Tab extends BaseComponent {\n constructor(element) {\n super(element)\n this._parent = this._element.closest(SELECTOR_TAB_PANEL)\n\n if (!this._parent) {\n return\n // TODO: should throw exception in v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_TAB_PANEL}`)\n }\n\n // Set up initial aria attributes\n this._setInitialAttributes(this._parent, this._getChildren())\n\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n show() { // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element\n if (this._elemIsActive(innerElem)) {\n return\n }\n\n // Search for active tab on same parent to deactivate it\n const active = this._getActiveElem()\n\n const hideEvent = active ?\n EventHandler.trigger(active, EVENT_HIDE, { relatedTarget: innerElem }) :\n null\n\n const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { relatedTarget: active })\n\n if (showEvent.defaultPrevented || (hideEvent && hideEvent.defaultPrevented)) {\n return\n }\n\n this._deactivate(active, innerElem)\n this._activate(innerElem, active)\n }\n\n // Private\n _activate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n\n this._activate(SelectorEngine.getElementFromSelector(element)) // Search and activate/show the proper section\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW)\n return\n }\n\n element.removeAttribute('tabindex')\n element.setAttribute('aria-selected', true)\n this._toggleMenu(element, true)\n EventHandler.trigger(element, EVENT_SHOWN, {\n relatedTarget: relatedElem\n })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _deactivate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.remove(CLASS_NAME_ACTIVE)\n element.blur()\n\n this._deactivate(SelectorEngine.getElementFromSelector(element)) // Search and deactivate the shown section too\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW)\n return\n }\n\n element.setAttribute('aria-selected', false)\n element.setAttribute('tabindex', '-1')\n this._toggleMenu(element, false)\n EventHandler.trigger(element, EVENT_HIDDEN, { relatedTarget: relatedElem })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _keydown(event) {\n if (!([ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key))) {\n return\n }\n\n event.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n event.preventDefault()\n\n const children = this._getChildren().filter(element => !isDisabled(element))\n let nextActiveElement\n\n if ([HOME_KEY, END_KEY].includes(event.key)) {\n nextActiveElement = event.key === HOME_KEY ? children[0] : children.at(-1)\n } else {\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\n nextActiveElement = getNextActiveElement(children, event.target, isNext, true)\n }\n\n if (nextActiveElement) {\n nextActiveElement.focus({ preventScroll: true })\n Tab.getOrCreateInstance(nextActiveElement).show()\n }\n }\n\n _getChildren() { // collection of inner elements\n return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent)\n }\n\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null\n }\n\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist')\n\n for (const child of children) {\n this._setInitialAttributesOnChild(child)\n }\n }\n\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child)\n const isActive = this._elemIsActive(child)\n const outerElem = this._getOuterElement(child)\n child.setAttribute('aria-selected', isActive)\n\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation')\n }\n\n if (!isActive) {\n child.setAttribute('tabindex', '-1')\n }\n\n this._setAttributeIfNotExists(child, 'role', 'tab')\n\n // set attributes to the related panel too\n this._setInitialAttributesOnTargetPanel(child)\n }\n\n _setInitialAttributesOnTargetPanel(child) {\n const target = SelectorEngine.getElementFromSelector(child)\n\n if (!target) {\n return\n }\n\n this._setAttributeIfNotExists(target, 'role', 'tabpanel')\n\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`)\n }\n }\n\n _toggleMenu(element, open) {\n const outerElem = this._getOuterElement(element)\n const menuToggle = SelectorEngine.findOne(SELECTOR_MENU_TOGGLE, outerElem)\n if (!menuToggle) {\n return\n }\n\n const menu = SelectorEngine.findOne(SELECTOR_MENU, outerElem)\n\n menuToggle.classList.toggle(CLASS_NAME_ACTIVE, open)\n if (menu) {\n menu.classList.toggle(CLASS_NAME_SHOW, open)\n }\n\n menuToggle.setAttribute('aria-expanded', open)\n }\n\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value)\n }\n }\n\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n // Try to get the inner element (usually the .nav-link)\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem)\n }\n\n // Try to get the outer element (usually the .nav-item)\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n Tab.getOrCreateInstance(this).show()\n})\n\n/**\n * Initialize on focus\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element)\n }\n})\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { reflow } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`\nconst EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_FOCUSOUT = `focusout${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide' // @deprecated - kept here only for backwards compatibility\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 5000\n}\n\n/**\n * Class definition\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._timeout = null\n this._hasMouseInteraction = false\n this._hasKeyboardInteraction = false\n this._setListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n show() {\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n this._maybeScheduleHide()\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE) // @deprecated\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING)\n\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n hide() {\n if (!this.isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE) // @deprecated\n this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.add(CLASS_NAME_SHOWING)\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this.isShown()) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n super.dispose()\n }\n\n isShown() {\n return this._element.classList.contains(CLASS_NAME_SHOW)\n }\n\n // Private\n _maybeScheduleHide() {\n if (!this._config.autohide) {\n return\n }\n\n if (this._hasMouseInteraction || this._hasKeyboardInteraction) {\n return\n }\n\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n\n _onInteraction(event, isInteracting) {\n switch (event.type) {\n case 'mouseover':\n case 'mouseout': {\n this._hasMouseInteraction = isInteracting\n break\n }\n\n case 'focusin':\n case 'focusout': {\n this._hasKeyboardInteraction = isInteracting\n break\n }\n\n default: {\n break\n }\n }\n\n if (isInteracting) {\n this._clearTimeout()\n return\n }\n\n const nextElement = event.relatedTarget\n if (this._element === nextElement || this._element.contains(nextElement)) {\n return\n }\n\n this._maybeScheduleHide()\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false))\n EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false))\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Toast)\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap toggler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { eventActionOnPlugin } from './util/component-functions.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'toggler'\nconst DATA_KEY = 'bs.toggler'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_TOGGLE = `toggle${EVENT_KEY}`\nconst EVENT_TOGGLED = `toggled${EVENT_KEY}`\nconst EVENT_CLICK = 'click'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"toggler\"]'\n\nconst DefaultType = {\n attribute: 'string',\n value: '(string|number|boolean)'\n}\n\nconst Default = {\n attribute: 'class',\n value: null\n}\n\n/**\n * Class definition\n */\n\nclass Toggler extends BaseComponent {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n const toggleEvent = EventHandler.trigger(this._element, EVENT_TOGGLE)\n\n if (toggleEvent.defaultPrevented) {\n return\n }\n\n this._execute()\n\n EventHandler.trigger(this._element, EVENT_TOGGLED)\n }\n\n // Private\n _execute() {\n const { attribute, value } = this._config\n\n if (attribute === 'id') {\n return // You have to be kidding\n }\n\n if (attribute === 'class') {\n this._element.classList.toggle(value)\n return\n }\n\n // Compare as strings since getAttribute() always returns a string\n if (this._element.getAttribute(attribute) === String(value)) {\n this._element.removeAttribute(attribute)\n return\n }\n\n this._element.setAttribute(attribute, value)\n }\n}\n\n/**\n * Data API implementation\n */\n\neventActionOnPlugin(Toggler, EVENT_CLICK, SELECTOR_DATA_TOGGLE, 'toggle')\n\nexport default Toggler\n"],"mappings":"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","ignoreList":[]}
\ No newline at end of file
+{"version":3,"names":["elementMap","Map","Data","set","element","key","instance","has","instanceMap","get","size","console","error","keys","getAny","values","next","value","remove","delete","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","makeEventUid","uid","getElementEvents","bootstrapHandler","fn","handler","event","hydrateObj","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","selector","domElements","querySelectorAll","target","this","parentNode","domElement","findHandler","events","callable","delegationSelector","Object","find","normalizeParameters","originalTypeEvent","delegationFunction","isDelegated","typeEvent","getTypeEvent","addHandler","wrapFunction","relatedTarget","contains","call","handlers","previousFunction","replace","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","entries","includes","on","one","inNamespace","isNamespace","startsWith","elementEvent","slice","keyHandlers","length","trigger","args","evt","Event","bubbles","cancelable","dispatchEvent","obj","meta","defineProperty","configurable","normalizeData","Number","toString","JSON","parse","decodeURIComponent","normalizeDataKey","chr","toLowerCase","Manipulator","setDataAttribute","setAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","bsKeys","dataset","filter","pureKey","charAt","getDataAttribute","getAttribute","MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","parseSelector","window","CSS","escape","match","id","toType","object","prototype","getUID","prefix","Math","floor","random","document","getElementById","getTransitionDurationFromElement","transitionDuration","transitionDelay","getComputedStyle","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","isElement","nodeType","getElement","querySelector","isVisible","getClientRects","elementIsVisible","getPropertyValue","closedDetails","closest","summary","isDisabled","Node","ELEMENT_NODE","classList","disabled","hasAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","isRTL","dir","execute","possibleCallback","defaultValue","executeAfterTransition","callback","transitionElement","waitForTransition","emulatedDuration","called","setTimeout","getNextActiveElement","list","activeElement","shouldGetNext","isCycleAllowed","listLength","index","indexOf","max","min","Config","Default","DefaultType","NAME","Error","_getConfig","config","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","jsonConfig","constructor","configTypes","property","expectedTypes","valueType","RegExp","test","TypeError","toUpperCase","VERSION","BaseComponent","super","_element","_config","DATA_KEY","dispose","EVENT_KEY","propertyName","getOwnPropertyNames","_queueCallback","isAnimated","getInstance","getOrCreateInstance","eventName","name","getSelector","hrefAttribute","trim","map","sel","join","SelectorEngine","Element","findOne","children","child","matches","parents","ancestor","push","prev","previous","previousElementSibling","nextElementSibling","focusableChildren","focusables","el","getSelectorFromElement","getElementFromSelector","getMultipleElementsFromSelector","enableDismissTrigger","component","method","clickEvent","tagName","preventDefault","eventActionOnPlugin","Plugin","onEvent","stringSelector","eventAction","data","instances","targets","EVENT_CLOSE","EVENT_CLOSED","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","close","defaultPrevented","_destroyElement","DATA_API_KEY","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE","EVENT_CLICK_DATA_API","Button","toggle","button","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_POINTERDOWN","EVENT_LOAD_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_CENTER","CLASS_NAME_AUTO","CLASS_NAME_CLONE","CLASS_NAME_PAUSED","CLASS_NAME_PLAYING","PROPERTY_INTERVAL","SCROLL_SETTLE_MAX_FRAMES","ACTIVE_RATIO_TOLERANCE","SELECTOR_ACTIVE","SELECTOR_ITEM","SELECTOR_ACTIVE_ITEM","SELECTOR_INNER","SELECTOR_INDICATORS","SELECTOR_PLAY_PAUSE","SELECTOR_DATA_SLIDE","SELECTOR_DATA_SLIDE_PREV","SELECTOR_DATA_SLIDE_NEXT","SELECTOR_DATA_AUTOPLAY","KEY_TO_DIRECTION","ARROW_LEFT_KEY$2","ARROW_RIGHT_KEY$2","ENDS_STOP","ENDS_WRAP","ENDS_LOOP","autoplay","ends","interval","keyboard","pause","Carousel","_viewport","_indicatorsElement","_playPauseElement","_prevControls","_nextControls","_interval","_observer","_snapRestoreFrame","_looping","_visibility","_playing","_activeIndex","_initialActiveIndex","_addEventListeners","_observeItems","_refreshActiveState","cycle","_updatePlayPauseControl","to","_navIndex","nextWhenVisible","visibilityState","_clearInterval","_scheduleAutoplay","add","items","_getItems","rawIndex","parseInt","_prefersReducedMotion","_canLoop","_loopTransition","targetIndex","_normalizeIndex","currentIndex","direction","_direction","from","_isFade","_fadeTo","_scrollToIndex","disconnect","cancelAnimationFrame","clone","style","scrollSnapType","active","_keydown","_maybeEnableCycle","_pauseFromInteraction","IntersectionObserver","_handleIntersection","threshold","item","observe","entry","isIntersecting","intersectionRatio","ratios","maxRatio","bestIndex","findIndex","ratio","_setActive","_updateEndControls","scrollWidth","clientWidth","smallestDelta","POSITIVE_INFINITY","itemIndex","delta","abs","_scrollDelta","left","targetLeft","scrollLeft","scrollBy","top","behavior","_restoreSnapWhenSettled","viewportRect","getBoundingClientRect","rect","width","padStart","scrollPaddingInlineStart","right","isNext","last","fromIndex","toIndex","_loopDirection","cloneNode","node","inert","append","prepend","_jumpScroll","_afterScrollSettles","undefined","requestAnimationFrame","startLeft","lastLeft","stableFrames","waited","hasMoved","tick","currentLeft","reachedTarget","_setActiveIndicatorElement","viewport","maxScroll","atStart","atEnd","progress","_setControlsDisabled","controls","control","focus","preventScroll","newActive","isNaN","_wrapsAround","styles","num","_itemInterval","setProperty","upcoming","_upcomingIndex","NaN","_togglePlayPause","label","matchMedia","clearTimeout","carousel","slideIndex","carousels","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","CLASS_NAME_HORIZONTAL","WIDTH","HEIGHT","SELECTOR_ACTIVES","parent","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","_isShown","hide","show","activeChildren","_getFirstLevelChildren","activeInstance","dimension","_getDimension","scrollSize","complete","selected","triggerArray","isOpen","round","createCoords","v","x","y","oppositeSideMap","bottom","clamp","start","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","firstChar","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","mainAlignmentSide","reference","floating","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","side","isStart","getOppositeAxisPlacements","flipAlignment","concat","expandPaddingObject","padding","getPaddingObject","rectToClientRect","height","computeCoordsFromPlacement","_ref","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","async","detectOverflow","state","options","_await$platform$isEle","platform","elements","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","getClippingRect","contextElement","getDocumentElement","offsetParent","getOffsetParent","offsetScale","getScale","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","MAX_RESET_COUNT","computePosition","middleware","platformWithDetectOverflow","getElementRects","statefulPlacement","resetCount","middlewareData","i","currentMiddleware","nextX","nextY","reset","initialPlacement","arrow","arrowDimensions","getDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","centerOffset","flip","_middlewareData$arrow","_middlewareData$flip","mainAxis","checkMainAxis","crossAxis","checkCrossAxis","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","initialSideAxis","isBasePlacement","hasFallbackAxisSideDirection","placements","overflow","overflows","overflowsData","sides","every","_middlewareData$flip2","_overflowsData$filter","nextIndex","nextPlacement","d","resetPlacement","sort","a","b","_overflowsData$filter2","currentSideAxis","reduce","acc","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","enabled","hasWindow","getNodeName","isNode","nodeName","getWindow","_node$ownerDocument","ownerDocument","defaultView","isHTMLElement","HTMLElement","isShadowRoot","isOverflowElement","overflowX","overflowY","display","isTableElement","isTopLayer","_e","willChangeRe","containRe","isNotNone","isWebKitValue","isContainingBlock","elementOrCss","css","transform","translate","scale","rotate","perspective","isWebKit","backdropFilter","willChange","contain","getContainingBlock","currentNode","getParentNode","isLastTraversableNode","supports","getNodeScroll","scrollTop","scrollX","scrollY","result","assignedSlot","host","getNearestOverflowAncestor","body","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","visualViewport","getPrototypeOf","getCssDimensions","getComputedStyle$1","hasOffset","offsetWidth","shouldFallback","$","unwrapElement","isFinite","noOffsets","getVisualOffsets","offsetLeft","offsetTop","shouldAddVisualOffsets","isFixed","floatingOffsetParent","includeScale","isFixedStrategy","clientRect","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","clientLeft","paddingLeft","clientTop","paddingTop","getWindowScrollBarX","leftScroll","getHTMLOffset","scroll","htmlRect","topLayer","offsets","isOffsetParentAnElement","offsetRect","htmlOffset","Array","getDocumentRect","html","scrollHeight","clientHeight","SCROLLBAR_MAX","getViewportRect","visualViewportBased","windowScrollbarX","doc","bodyStyles","bodyMarginInline","compatMode","marginLeft","marginRight","clippingStableScrollbarWidth","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","position","getClippingElementAncestors","cache","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","clippingAncestors","_c","firstRect","getRectRelativeToOffsetParent","setLeftRTLScrollbarOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","svgOffsetParent","getOffsetParentFn","getDimensionsFn","floatingDimensions","rectsAreEqual","observeMove","onMove","timeoutId","io","cleanup","_io","refresh","skip","elementRectForRootMargin","rootMargin","isFirstUpdate","handleObserve","autoUpdate","update","ancestorScroll","ancestorResize","elementResize","ResizeObserver","layoutShift","animationFrame","referenceEl","ancestors","forEach","passive","cleanupIo","frameId","reobserveFrame","resizeObserver","firstEntry","unobserve","_resizeObserver","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset$1","shift$1","flip$1","arrow$1","mergedOptions","platformWithCache","computePosition$1","BREAKPOINTS","sm","md","lg","xl","parseResponsivePlacement","placementString","defaultPlacement","parts","xs","part","breakpoint","getResponsivePlacement","responsivePlacements","viewportWidth","innerWidth","activePlacement","breakpointOrder","createBreakpointListeners","listeners","minWidth","mql","disposeBreakpointListeners","ESCAPE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","HOME_KEY","END_KEY","ENTER_KEY","SPACE_KEY","RIGHT_MOUSE_BUTTON","SUBMENU_CLOSE_DELAY","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","SELECTOR_MENU","SELECTOR_SUBMENU","SELECTOR_SUBMENU_TOGGLE","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","DEFAULT_PLACEMENT","SUBMENU_PLACEMENT","resolveLogicalPlacement","triangleSign","p1","p2","p3","autoClose","container","floatingConfig","menu","submenuTrigger","submenuDelay","Menu","static","_floatingCleanup","_mediaQueryListeners","_responsivePlacements","_parent","_isSubmenu","_openSubmenus","_submenuCloseTimeouts","_hoverIntentData","_menu","_findMenu","_menuOriginalParent","_parseResponsivePlacements","_setupSubmenuListeners","_moveMenuToContainer","_createFloating","focusVisible","_openInstances","_completeHide","_disposeFloating","_restoreMenuToOriginalParent","_disposeMediaQueryListeners","_closeAllSubmenus","_clearAllSubmenuTimeouts","_updateFloatingPosition","referenceElement","_getPlacement","_getFloatingMiddleware","_getFloatingConfig","_applyFloatingPosition","_setupMediaQueryListeners","_getOffset","offsetConfig","offsetValue","_getFallbackPlacements","defaultConfig","_getContainer","isConnected","finalPlacement","assign","margin","_onSubmenuTriggerEnter","_onSubmenuLeave","_trackMousePosition","_onSubmenuTriggerClick","submenuWrapper","submenu","_cancelSubmenuCloseTimeout","_closeSiblingSubmenus","_openSubmenu","_isMovingTowardSubmenu","_scheduleSubmenuClose","stopPropagation","_closeSubmenu","_createSubmenuFloating","nestedSubmenus","nested","nestedWrapper","currentSubmenuWrapper","siblingSubmenus","siblingMenu","siblingWrapper","updatePosition","clear","clientX","clientY","timestamp","Date","now","submenuRect","currentPos","lastPos","targetX","topCorner","bottomCorner","_pointInTriangle","point","v1","v2","v3","d1","d2","d3","_selectMenuItem","currentMenu","_handleSubmenuKeydown","isRtl","enterKey","exitKey","isSubmenuTrigger","firstItem","parentSubmenuWrapper","parentTrigger","at","clearMenus","composedPath","isMenuTarget","dataApiKeydownHandler","isInput","isEscapeEvent","isUpOrDownEvent","isLeftOrRightEvent","isHomeOrEndEvent","isEnterOrSpaceEvent","getToggleButton","EVENT_CHANGE","CLASS_NAME_SELECTED","CLASS_NAME_PLACEHOLDER","SELECTOR_MENU_ITEM","SELECTOR_VALUE","SELECTOR_SEARCH_INPUT","SELECTOR_NO_RESULTS","multiple","placeholder","search","searchNormalize","Combobox","_toggle","_valueDisplay","_searchInput","_noResults","_hiddenInput","_menuInstance","_createHiddenInput","_createMenuInstance","_syncInitialSelection","_filterItems","createElement","insertBefore","_getSelectedItems","_updateToggleText","_updateHiddenInput","_showPlaceholder","_selectItem","_handleToggleKeydown","_handleMenuKeydown","_getVisibleItems","previouslySelected","bsValue","selectedItems","textContent","query","normalizedQuery","_normalizeText","visibleCount","text","normalize","jQueryInterface","each","__defProp","__defProps","defineProperties","__getOwnPropDescs","getOwnPropertyDescriptors","__getOwnPropSymbols","getOwnPropertySymbols","__hasOwnProp","hasOwnProperty","__propIsEnum","propertyIsEnumerable","__defNormalProp","e","t","n","enumerable","writable","__spreadValues","__spreadProps","__publicField","errorMessages","notFoundSelector","notInit","notLocale","incorrectTime","incorrectMonthsCount","setContext","context","destroy","o","l","isInit","inputMode","mainElement","parentElement","removeChild","inputElement","replaceWith","originalElement","onDestroy","skipOpenOnFocus","WeakSet","shouldSkipOpenOnFocus","setSkipOpenOnFocus","clearSkipOpenOnFocus","PREV_TABINDEX_ATTR","isFocusable","tabIndex","storePrevTabIndex","restorePrevTabIndex","disableTabbing","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","FILTER_ACCEPT","FILTER_SKIP","nextNode","restoreTabbing","isShowInInputMode","currentType","vcCalendarHidden","cleanupHandlers","openOnFocus","onHide","getOffset","getViewportDimensions","vw","vh","innerHeight","getWindowScrollPosition","calculateAvailableSpace","s","r","getAvailablePosition","canShow","parentPositions","c","u","m","p","h","condition","handleDay","modifier","className","datePopup","vcDatePopup","innerHTML","sanitizerHTML","ariaExpanded","ariaLabel","appendChild","createDatePopup","popups","getDate","getDateString","getFullYear","String","getMonth","parseDates","toISOString","substring","getTime","setDate","updateAttribute","setDateModifier","displayDateMin","displayDateMax","disableDates","selectionMonthsMode","selectionYearsMode","disableToday","dateToday","selectedWeekends","selectedHolidays","selectedDates","selectionDatesMode","enableEdgeDatesOnly","getLocaleString","toLocaleString","getWeekNumber","getDay","ceil","year","week","addWeekNumberForDate","firstWeekday","vcDateWeekNumber","setDaysAsDisabled","disableWeekdays","disableAllDates","enableDates","createDate","locale","date","vcDate","vcDateMonth","vcDateWeekDay","role","displayDatesOutside","dateBtn","dateStyle","timeZone","vcDateBtn","innerText","enableWeekNumbers","addDate","onCreateDateEls","createDatesFromCurrentMonth","createDatesFromNextMonth","createDatesFromPrevMonth","createWeekNumbers","weekNumbersTitle","vcWeekNumbers","weekNumbersContent","weekNumber","vcWeekNumber","vcWeekYear","createDates","selectedYear","selectedMonth","vcDatesDisabled","setMonth","datesRow","g","layoutDefault","header","labels","navigation","headerContent","wrapper","content","layoutMonths","layoutMultiple","grid","column","layoutYears","ArrowNext","arrowNext","ArrowPrev","arrowPrev","ControlTime","selectionTimeMode","time","selectingTime","DateRangeTooltip","onCreateDateRangeTooltip","dateRangeTooltip","Dates","dates","Month","month","Months","months","Week","WeekNumbers","weekNumbers","Year","Years","years","components","getComponent","parseLayout","parseMultipleLayout","displayMonthsCount","fill","createLayouts","default","layouts","calendar","vc","vcType","application","vcGrid","vcColumn","setVisibilityArrows","visibility","handleDefaultType","monthsToSwitch","dateMin","dateMax","setFullYear","handleYearType","displayYear","visibilityArrows","visibilityHandler","long","visibilityTitle","setYearModifier","aria","selectedProperty","getColumnID","currentValue","columnID","createMonthEl","monthsMonth","vcMonthsMonth","ariaDisabled","createMonths","vcYear","vcMonth","short","onCreateMonthEls","TimeInput","TimeRange","handleActions","hour","minute","selectedHours","selectedMinutes","selectedKeeping","onChangeTime","onChangeToInput","transformTime24","AM","PM","handleClickKeepingTime","btnKeeping","transformTime12","updateInputAndRange","updateKeepingTime$1","handleInput$1","updateInputAndTime","updateKeepingTime","handleRange","handleMouseOver","handleMouseOut","handleTime","timeMaxHour","timeMinHour","timeMaxMinute","timeMinMinute","createTime","timeControls","timeContent","timeHour","timeMinute","timeKeeping","timeRanges","timeRange","timeStepHour","timeStepMinute","createWeek","weekdays","titleShort","titleLong","isWeekend","onClickWeekDay","weekDay","vcWeekDay","vcWeekDayOff","createYearEl","yearsYear","vcYearsYear","createYears","onCreateYearEls","trackChangesHTMLElement","MutationObserver","attributeName","haveListener","check","setTheme","vcTheme","trackChangesThemeInSystemSettings","selectedTheme","addListener","detectTheme","themeAttrDetect","handleTheme","media","capitalizeFirstLetter","getLocaleWeekday","weekday","getLocaleMonth","getLocale","create","handleArrowKeys","localName","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","handleMonth","handleClickArrow","vcArrow","onClickArrow","resolveToggle","canToggleSelection","enableDateToggle","handleSelectDate","createDateRangeTooltip","vcDateRangeTooltip","self","lastDateEl","isHovering","rangeMin","rangeMax","tooltipEl","addHoverEffect","vcDateHover","removeHoverEffect","handleHoverDatesEvent","handleHoverSelectedDatesRangeEvent","optimizedHoverHandler","optimizedHandleHoverDatesEvent","optimizedHandleHoverSelectedDatesRangeEvent","handleCancelSelectionDates","handleMouseLeave","updateDisabledDates","disableDatesPast","handleSelectDateRange","disableDatesGaps","updateDateModifier","handleClickDate","single","onClickDate","enableMonthChangeOnDayClick","current","typeClick","getValue","handleMultipleYearSelection","handleMultipleMonthSelection","handleItemClick","onClickYear","onClickMonth","handleClickType","onClickTitle","handleClickMonthOrYear","handleClickWeekNumber","onClickWeekNumber","handleClickWeekDay","handleClick","initMonthsCount","getLocalDate","getTimezoneOffset","resolveDate","initRange","displayDisabledDates","initSelectedDates","displayClosestValidDate","setInitialContext","initSelectedMonthYear","enableJumpToSelectedDate","initTime","selectedTime","initAllVariables","createToInput","vcInput","onInit","canOpenOnFocus","handleInput","inputModeInit","shiftKey","init","onUpdate","replaceProperties","isArray","findBestPickerPosition","setPosition","vcPosition","click","positionToInput","capture","onShow","inputHour","inputMinute","rangeHour","rangeMinute","OptionsCalendar","_Calendar","memoizedElements","queryAndMemoize","Calendar","EVENT_FOCUSIN_DATA_API","HIDE_DELAY","datepickerTheme","dateFormat","displayElement","inline","positionElement","selectionMode","vcpOptions","Datepicker","_calendar","_initCalendar","_themeObserver","getSelectedDates","setSelectedDates","_isInput","_isInline","_boundInput","_positionElement","_resolvePositionElement","_displayElement","_resolveDisplayElement","calendarOptions","_buildCalendarOptions","_setupThemeObserver","_parseInputValue","_updateDisplayWithSelectedDates","formattedDate","_formatDateForInput","_getThemeAncestor","_getEffectiveTheme","_syncThemeAttribute","theme","attributeFilter","vcpTheme","_handleDateClick","firstDate","_parseDate","_maybeHideAfterSelection","dateStr","day","_formatDate","Intl","DateTimeFormat","format","toLocaleDateString","separator","formatted","bsInline","CLASS_NAME_OPEN","DialogBase","_openedAsModal","_addDialogListeners","open","_onBeforeShow","modal","preventBodyScroll","_getShowOptions","_showElement","_isAnimated","_hideElement","_closeAndCleanup","_onAfterHide","_getInstantClassName","_getStaticClassName","_onCancel","showModal","_hideChildComponents","_shouldDeferClose","_triggerBackdropTransition","staticClass","eventKey","backdrop","EVENT_CANCEL","CLASS_NAME_NONMODAL","CLASS_NAME_INSTANT","CLASS_NAME_SWAP_IN","Dialog","handleUpdate","showEvent","currentDialog","newDialog","currentInstance","EVENT_UPDATE","EVENT_OVERFLOW","CLASS_NAME_OVERFLOW","CLASS_NAME_OVERFLOW_MENU","CLASS_NAME_HIDDEN","SELECTOR_NAV_ITEM","SELECTOR_NAV_LINK","SELECTOR_OVERFLOW_TOGGLE","SELECTOR_OVERFLOW_MENU","SELECTOR_CUSTOM_ICON","CLASS_NAME_KEEP","collapseBelow","iconPlacement","menuPlacement","moreText","moreIcon","NavOverflow","_items","_overflowItems","_overflowMenu","_overflowToggle","_collapseBelow","_isInitialized","_init","_calculateOverflow","_restoreItems","bsNavOrder","_resolveCollapseBelow","_createOverflowMenu","_setupResizeObserver","iconSpan","_resolveIcon","textSpan","toggleContent","overflowItem","customIconElement","iconClone","iconHtml","outerHTML","cssValue","navWidth","itemsToOverflow","_moveToOverflow","overflowCount","usedWidth","overflowThreshold","sum","toMove","link","clonedLink","bsNavOverflow","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERUP","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","CLASS_NAME_POINTER_EVENT","SWIPE_THRESHOLD","endCallback","leftCallback","rightCallback","upCallback","downCallback","Swipe","isSupported","_deltaX","_deltaY","_supportPointerEvents","PointerEvent","_initEvents","_start","touches","_eventIsPointerPenTouch","_end","_handleSwipe","_move","absDeltaX","absDeltaY","pointerType","navigator","maxTouchPoints","EVENT_RESIZE","Drawer","_swipeHelper","_initSwipe","swipeConfig","alreadyOpen","EVENT_STRENGTH_CHANGE","SELECTOR_DATA_STRENGTH","STRENGTH_LEVELS","input","minLength","messages","weak","fair","good","strong","weights","extraLength","lowercase","uppercase","numbers","special","multipleSpecial","longPassword","thresholds","scorer","Strength","_input","_getInput","_segments","_textElement","_currentStrength","_evaluate","getStrength","password","score","_calculateScore","strength","_scoreToStrength","_updateUI","bsStrength","strengthIndex","segment","colorMap","EVENT_COMPLETE","EVENT_INPUT","EVENT_DOMCONTENT_LOADED","SELECTOR_DATA_OTP","SELECTOR_INPUT","SYNC_EVENTS","CLASS_NAME_INPUT","CLASS_NAME_RENDERED","CLASS_NAME_SLOTS","CLASS_NAME_SLOT","CLASS_NAME_SLOT_FILLED","CLASS_NAME_SLOT_ACTIVE","CLASS_NAME_SEPARATOR","MASK_CHARACTER","TYPES","numeric","inputmode","pattern","alphanumeric","alpha","groups","mask","OtpInput","_type","_length","_resolveLength","_slots","_setupInput","_renderSlots","_render","setValue","_sanitize","_checkComplete","setSelectionRange","_onInput","_onFocus","_onSync","_slotsContainer","maxLength","groupIndex","inGroup","slot","_handleInput","sanitized","isFocused","caret","selectionStart","char","EVENT_ADD","EVENT_REMOVE","EVENT_SELECT","SELECTOR_DATA_CHIPS","SELECTOR_GHOST_INPUT","SELECTOR_CHIP","SELECTOR_CHIP_DISMISS","CLASS_NAME_CHIP","CLASS_NAME_CHIP_DISMISS","DEFAULT_DISMISS_ICON","allowDuplicates","maxChips","dismissible","dismissIcon","createOnBlur","Chips","_chips","_selectedChips","_anchorChip","_createInput","_initializeExistingChips","trimmedValue","chip","_createChip","getValues","chipOrValue","_findChipByValue","_getChipValue","removeSelected","chipsToRemove","getSelectedValues","chips","clearSelection","selectChip","addToSelection","rangeSelect","chipElements","_getChipElements","anchorIndex","chipIndex","existingChips","_setupChip","_createDismissButton","bsChipValue","createTextNode","dismiss","_handleInputKeydown","_handlePaste","_createChipFromInput","metaKey","ctrlKey","_handleChipKeydown","lastChip","selectionEnd","blur","_handleChipDelete","_navigateChip","_navigateToEdge","_handleSelectAll","remainingChips","focusIndex","targetChip","pastedData","clipboardData","getData","ARIA_ATTRIBUTE_PATTERN","DefaultAllowlist","area","br","col","code","dd","div","dl","dt","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","small","span","sub","sup","ul","uriAttributes","SAFE_URL_PATTERN","allowedAttribute","attribute","allowedAttributeList","nodeValue","attributeRegex","some","regex","sanitizeHtml","unsafeHtml","allowList","sanitizeFunction","createdDocument","DOMParser","parseFromString","elementName","attributeList","allowedAttributes","extraClass","sanitize","sanitizeFn","template","DefaultContentType","TemplateFactory","getContent","_resolvePossibleFunction","hasContent","changeContent","_checkContent","toHtml","templateWrapper","_maybeSanitize","_setContent","arg","templateElement","_putElementInTemplate","DISALLOWED_ATTRIBUTES","CLASS_NAME_MODAL","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","EVENT_INSERTED","EVENT_CLICK","EVENT_FOCUSIN","EVENT_FOCUSOUT","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","animation","customClass","delay","title","Tooltip","_isEnabled","_timeout","_isHovered","_activeTrigger","_templateFactory","_newContent","tip","_setListeners","_fixTitle","enable","disable","toggleEnabled","_leave","_enter","_hideModalHandler","_isWithContent","isInTheDom","_getTipElement","closestDialog","_isWithActiveTrigger","_getTitle","_createTipElement","_getContentForTemplate","_getTemplateFactory","tipId","setContent","_initializeOnDelegatedTarget","_getDelegateConfig","arrowElement","arrowX","arrowY","triggers","eventIn","eventOut","_setTimeout","timeout","dataAttributes","dataAttribute","initTooltip","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","initPopover","EVENT_ACTIVATE","CLASS_NAME_MENU_ITEM","SELECTOR_DATA_SPY","SELECTOR_TARGET_LINKS","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","SELECTOR_MENU_TOGGLE","smoothScroll","ScrollSpy","_targetLinks","_observableSections","_rootElement","_activeTarget","_previousScrollData","visibleEntryTop","parentScrollTop","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","_getNewObserver","section","observableSection","hash","scrollTo","_observerCallback","targetElement","activate","_process","userScrollsDown","_clearActiveClass","entryIsLowerThanPrevious","targetLinks","anchor","decodeURI","_activateParents","menuToggle","listGroup","activeNodes","spy","NOT_SELECTOR_MENU_TOGGLE","SELECTOR_TAB_PANEL","SELECTOR_OUTER","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","Tab","_setInitialAttributes","_getChildren","innerElem","_elemIsActive","_getActiveElem","hideEvent","_deactivate","_activate","relatedElem","_toggleMenu","nextActiveElement","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","EVENT_MOUSEOVER","EVENT_MOUSEOUT","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_hasMouseInteraction","_hasKeyboardInteraction","_clearTimeout","_maybeScheduleHide","isShown","_onInteraction","isInteracting","nextElement","EVENT_TOGGLE","EVENT_TOGGLED","Toggler","_execute"],"sources":["../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/dom/manipulator.js","../../js/src/util/index.js","../../js/src/util/config.js","../../js/src/base-component.js","../../js/src/dom/selector-engine.js","../../js/src/util/component-functions.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../js/src/util/floating-ui.js","../../js/src/menu.js","../../js/src/combobox.js","../../node_modules/vanilla-calendar-pro/index.mjs","../../js/src/datepicker.js","../../js/src/dialog-base.js","../../js/src/dialog.js","../../js/src/nav-overflow.js","../../js/src/util/swipe.js","../../js/src/drawer.js","../../js/src/strength.js","../../js/src/otp-input.js","../../js/src/chips.js","../../js/src/util/sanitizer.js","../../js/src/util/template-factory.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/src/toggler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${[...instanceMap.keys()][0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n getAny(element) {\n if (elementMap.has(element)) {\n return elementMap.get(element).values().next().value || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, { delegateTarget: element })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n hydrateObj(event, { delegateTarget: target })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events)\n .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'\n const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n let typeEvent = getTypeEvent(originalTypeEvent)\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n callable = wrapFunction(callable)\n }\n\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler, callable) :\n bootstrapHandler(element, callable)\n\n fn.delegationSelector = isDelegated ? handler : null\n fn.callable = callable\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false)\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getElementEvents(element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const evt = hydrateObj(new Event(event, { bubbles: true, cancelable: true }), args)\n element.dispatchEvent(evt)\n return evt\n }\n}\n\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value\n } catch {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value\n }\n })\n }\n }\n\n return obj\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n if (value === Number(value).toString()) {\n return Number(value)\n }\n\n if (value === '' || value === 'null') {\n return null\n }\n\n if (typeof value !== 'string') {\n return value\n }\n\n try {\n return JSON.parse(decodeURIComponent(value))\n } catch {\n return value\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'))\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1)\n attributes[pureKey] = normalizeData(element.dataset[key])\n }\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n if (isElement(object)) {\n return object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsely appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.harrytheo.com/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport { isElement, toType } from './index.js'\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {}\n }\n\n static get DefaultType() {\n return {}\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n return config\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n }\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property]\n const valueType = isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n }\n }\n}\n\nexport default Config\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '6.0.0-alpha1'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n // Private\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible, parseSelector } from '../util/index.js'\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`\n }\n\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null\n }\n\n return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null\n}\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [...Element.prototype.querySelectorAll.call(element, selector)]\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [...element.children].filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n let ancestor = element.parentNode.closest(selector)\n\n while (ancestor) {\n parents.push(ancestor)\n ancestor = ancestor.parentNode.closest(selector)\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n },\n\n getSelectorFromElement(element) {\n const selector = getSelector(element)\n\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null\n }\n\n return null\n },\n\n getElementFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.findOne(selector) : null\n },\n\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.find(selector) : []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport { isDisabled } from './index.js'\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`\n const name = component.NAME\n\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`)\n const instance = component.getOrCreateInstance(target)\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]()\n })\n}\n\nconst eventActionOnPlugin = (Plugin, onEvent, stringSelector, method, callback = null) => {\n eventAction(`${onEvent}.${Plugin.NAME}`, stringSelector, data => {\n const instances = data.targets.filter(Boolean).map(element => Plugin.getOrCreateInstance(element))\n if (typeof callback === 'function') {\n callback({ ...data, instances })\n }\n\n for (const instance of instances) {\n instance[method]()\n }\n })\n}\n\nconst eventAction = (onEvent, stringSelector, callback) => {\n const selector = `${stringSelector}:not(.disabled):not(:disabled)`\n EventHandler.on(document, onEvent, selector, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n const selector = SelectorEngine.getSelectorFromElement(this)\n const targets = selector ? SelectorEngine.find(selector) : [this]\n\n callback({ targets, event })\n })\n}\n\nexport {\n enableDismissTrigger,\n eventActionOnPlugin\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE)\n\n if (closeEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE)\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated)\n }\n\n // Private\n _destroyElement() {\n this._element.remove()\n EventHandler.trigger(this._element, EVENT_CLOSED)\n this.dispose()\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close')\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'button'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {\n event.preventDefault()\n\n const button = event.target.closest(SELECTOR_DATA_TOGGLE)\n const data = Button.getOrCreateInstance(button)\n\n data.toggle()\n})\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { isRTL, isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\n\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'carousel-fade'\nconst CLASS_NAME_CENTER = 'carousel-center'\nconst CLASS_NAME_AUTO = 'carousel-auto'\nconst CLASS_NAME_CLONE = 'carousel-item-clone'\nconst CLASS_NAME_PAUSED = 'paused'\n// Added to the root while the autoplay timer is running, so CSS can fill the\n// active indicator like a progress bar over the current slide's interval.\nconst CLASS_NAME_PLAYING = 'carousel-playing'\n\n// Shipped (`--bs-`-prefixed) custom property the indicator fill animation reads\n// for its duration. The build prefixes every custom property, so the bare\n// `--carousel-interval` used in the SCSS source becomes this at runtime.\nconst PROPERTY_INTERVAL = '--bs-carousel-interval'\n\n// How many frames the scroll-settle watcher waits when no movement is ever\n// detected (clamped programmatic scroll, or `scrollBy` stubbed in tests) before\n// it gives up and restores snapping anyway.\nconst SCROLL_SETTLE_MAX_FRAMES = 10\n\n// How far below the most-visible slide a slide's IntersectionRatio can be while\n// still counting as the active (left-most) slide. After a programmatic scroll\n// the viewport rests a sub-pixel past the snap offset, leaving the intended\n// slide a hair less visible than its fully-in neighbors; the tolerance prevents\n// that rounding from skipping the active index forward.\nconst ACTIVE_RATIO_TOLERANCE = 0.05\n\nconst SELECTOR_ACTIVE = '.active'\n// Exclude transient loop clones so index math, indicators, and active-slide\n// detection only ever see the real slides.\nconst SELECTOR_ITEM = `.carousel-item:not(.${CLASS_NAME_CLONE})`\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM\nconst SELECTOR_INNER = '.carousel-inner'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_PLAY_PAUSE = '.carousel-control-play-pause'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_SLIDE_PREV = '[data-bs-slide=\"prev\"]'\nconst SELECTOR_DATA_SLIDE_NEXT = '[data-bs-slide=\"next\"]'\nconst SELECTOR_DATA_AUTOPLAY = '[data-bs-autoplay=\"true\"]'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst ENDS_STOP = 'stop'\nconst ENDS_WRAP = 'wrap'\nconst ENDS_LOOP = 'loop'\n\nconst Default = {\n autoplay: false,\n ends: ENDS_LOOP,\n interval: 5000,\n keyboard: true,\n pause: 'hover'\n}\n\nconst DefaultType = {\n autoplay: 'boolean',\n ends: 'string',\n interval: 'number',\n keyboard: 'boolean',\n pause: '(string|boolean)'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // The scroll viewport. The browser owns sliding, dragging, momentum, and\n // keyboard scrolling; this controller only layers on autoplay, the\n // prev/next/indicator controls, and active-slide syncing.\n this._viewport = SelectorEngine.findOne(SELECTOR_INNER, this._element) || this._element\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._playPauseElement = SelectorEngine.findOne(SELECTOR_PLAY_PAUSE, this._element)\n // Prev/next controls scoped to the carousel root (covers inline and stacked\n // layouts). External controls placed outside `.carousel` aren't managed.\n this._prevControls = SelectorEngine.find(SELECTOR_DATA_SLIDE_PREV, this._element)\n this._nextControls = SelectorEngine.find(SELECTOR_DATA_SLIDE_NEXT, this._element)\n\n this._interval = null\n this._observer = null\n this._snapRestoreFrame = null\n // True while a seamless loop transition is animating, so the\n // IntersectionObserver and re-entrant navigation don't interfere.\n this._looping = false\n this._visibility = new Map()\n // Runtime autoplay intent. Starts from the `autoplay` option, but is turned\n // off once the user takes control (clicks a control, uses the keyboard,\n // swipes/drags, or presses pause) so we don't move content out from under\n // them (WCAG 2.2.2 Pause, Stop, Hide).\n this._playing = this._config.autoplay\n\n this._activeIndex = this._initialActiveIndex()\n\n this._addEventListeners()\n this._observeItems()\n this._refreshActiveState()\n\n if (this._playing) {\n this.cycle()\n }\n\n this._updatePlayPauseControl()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n next() {\n this.to(this._navIndex() + 1)\n }\n\n nextWhenVisible() {\n // Don't advance when the page or the carousel isn't visible\n if (document.visibilityState === 'visible' && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n this.to(this._navIndex() - 1)\n }\n\n pause() {\n this._clearInterval()\n // Freeze the indicator progress fill; it resets to empty until cycling\n // resumes and `_scheduleAutoplay` restarts it from scratch.\n this._element.classList.remove(CLASS_NAME_PLAYING)\n }\n\n cycle() {\n this._clearInterval()\n this._scheduleAutoplay()\n this._element.classList.add(CLASS_NAME_PLAYING)\n }\n\n to(index) {\n // Ignore navigation while a seamless loop transition is animating\n if (this._looping) {\n return\n }\n\n const items = this._getItems()\n const rawIndex = Number.parseInt(index, 10)\n\n // Seamless loop: continue forward/backward into a transient clone instead of\n // the visible `wrap` jump. Only the simple single-slide scroll layout\n // qualifies, and reduced motion falls back to the plain wrap below.\n if (this._config.ends === ENDS_LOOP && !this._prefersReducedMotion() && this._canLoop()) {\n if (rawIndex > items.length - 1) {\n this._loopTransition(true)\n return\n }\n\n if (rawIndex < 0) {\n this._loopTransition(false)\n return\n }\n }\n\n const targetIndex = this._normalizeIndex(rawIndex, items.length)\n // Measure \"current\" from the live scroll position: `_activeIndex` updates\n // asynchronously, so an indicator/control used mid-scroll must compare\n // against where the viewport actually rests (`_navIndex` returns the tracked\n // active index for fade/non-scrollable layouts).\n const currentIndex = this._navIndex()\n\n if (targetIndex === null || targetIndex === currentIndex) {\n return\n }\n\n const slideEvent = EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget: items[targetIndex],\n direction: this._direction(currentIndex, targetIndex),\n from: currentIndex,\n to: targetIndex\n })\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (this._isFade()) {\n this._fadeTo(targetIndex)\n return\n }\n\n // Scroll mode: the IntersectionObserver fires `slid` and syncs state once\n // the new slide settles into view.\n this._scrollToIndex(targetIndex)\n }\n\n dispose() {\n // Stop autoplay first: otherwise a pending timer would fire after the\n // instance is torn down and throw on the now-null `_element`.\n this._clearInterval()\n\n if (this._observer) {\n this._observer.disconnect()\n }\n\n if (this._snapRestoreFrame !== null) {\n cancelAnimationFrame(this._snapRestoreFrame)\n }\n\n // Tidy up any in-flight loop transition: drop a stray clone and restore\n // native snapping, so the viewport isn't left mid-animation.\n for (const clone of SelectorEngine.find(`.${CLASS_NAME_CLONE}`, this._viewport)) {\n clone.remove()\n }\n\n this._viewport.style.scrollSnapType = ''\n\n // The pointerdown listener lives on the viewport (`.carousel-inner`), which\n // `super.dispose()` doesn't clean up—it only drops listeners on `_element`.\n EventHandler.off(this._viewport, EVENT_KEY)\n\n super.dispose()\n }\n\n // Private\n // Normalize an unknown `ends` value so navigation and end-control logic can't\n // disagree about whether the carousel wraps.\n _configAfterMerge(config) {\n if (![ENDS_STOP, ENDS_WRAP, ENDS_LOOP].includes(config.ends)) {\n config.ends = Default.ends\n }\n\n return config\n }\n\n _initialActiveIndex() {\n const active = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const index = active ? this._getItems().indexOf(active) : 0\n return Math.max(index, 0)\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause())\n EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle())\n }\n\n // Dragging, swiping, or tapping the track is an explicit interaction\n EventHandler.on(this._viewport, EVENT_POINTERDOWN, () => this._pauseFromInteraction())\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n const direction = KEY_TO_DIRECTION[event.key]\n if (direction) {\n event.preventDefault()\n this._pauseFromInteraction()\n if (direction === DIRECTION_RIGHT) {\n this.prev()\n } else {\n this.next()\n }\n }\n }\n\n _observeItems() {\n // Fade mode stacks slides instead of scrolling, so there's nothing to observe\n if (this._isFade() || typeof IntersectionObserver === 'undefined') {\n return\n }\n\n this._observer = new IntersectionObserver(\n entries => this._handleIntersection(entries),\n { root: this._viewport, threshold: [0, 0.25, 0.5, 0.75, 1] }\n )\n\n for (const item of this._getItems()) {\n this._observer.observe(item)\n }\n }\n\n _handleIntersection(entries) {\n // A loop transition deliberately scrolls onto a transient clone; ignore the\n // visibility churn so it doesn't move the active index mid-animation.\n if (this._looping) {\n return\n }\n\n for (const entry of entries) {\n this._visibility.set(entry.target, entry.isIntersecting ? entry.intersectionRatio : 0)\n }\n\n const items = this._getItems()\n const ratios = items.map(item => this._visibility.get(item) ?? 0)\n const maxRatio = Math.max(...ratios)\n\n // Pick the left-most slide that's *near* fully visible rather than the strict\n // global maximum. After a programmatic scroll the viewport rests ~1px past\n // the target snap offset, so the intended left-most slide reports a ratio a\n // hair below the deeper, fully-visible ones (e.g. 0.997 vs 1.0). A strict max\n // would skip past it and inflate the active index by one, which breaks\n // multi-item next/prev. The tolerance keeps the intended slide active while\n // peeking slivers (well below the max) are still ignored.\n let bestIndex = this._activeIndex\n\n if (maxRatio > 0) {\n bestIndex = ratios.findIndex(ratio => ratio >= maxRatio - ACTIVE_RATIO_TOLERANCE)\n }\n\n this._setActive(bestIndex)\n // Keep the end controls in sync with the scroll position even when the\n // active index doesn't change (e.g. the final stretch of a multi-item\n // scroll, where the left-most slide is already the last reachable one).\n this._updateEndControls()\n }\n\n // The index a `next()`/`prev()` step is measured from. Scroll layouts read it\n // from the live scroll position instead of `this._activeIndex`, because the\n // IntersectionObserver updates that asynchronously: after one step the index\n // can still be stale, so the next step would compute the same target and\n // silently no-op (the \"the button does nothing / can't reach the end slide\"\n // symptom). Fade and non-scrollable layouts have no scroll position to read,\n // so they keep using the tracked active index (also what the unit tests rely\n // on when there's no real layout).\n _navIndex() {\n if (this._isFade() || (this._viewport.scrollWidth - this._viewport.clientWidth) <= 0) {\n return this._activeIndex\n }\n\n let index = this._activeIndex\n let smallestDelta = Number.POSITIVE_INFINITY\n\n for (const [itemIndex, item] of this._getItems().entries()) {\n // The slide currently resting at the active position has ~zero delta.\n const delta = Math.abs(this._scrollDelta(item))\n if (delta < smallestDelta) {\n smallestDelta = delta\n index = itemIndex\n }\n }\n\n return index\n }\n\n _scrollToIndex(index) {\n const item = this._getItems()[index]\n if (!item) {\n return\n }\n\n const left = this._scrollDelta(item)\n if (Math.abs(left) < 1) {\n return\n }\n\n // `scroll-snap-stop: always` keeps user wheel/touch flings to a single slide,\n // but it also clamps *programmatic* scrolls to one snap point — which would\n // break multi-slide jumps from an indicator click, `to()`, or wrapping from\n // the last slide back to the first. Disable snapping for the duration of the\n // programmatic scroll, then restore it once the scroll settles so the slide\n // still rests precisely (honouring peek/gap).\n const targetLeft = this._viewport.scrollLeft + left\n this._viewport.style.scrollSnapType = 'none'\n this._viewport.scrollBy({\n left,\n top: 0,\n // `'instant'` (not `'auto'`) for reduced motion: the viewport sets\n // `scroll-behavior: smooth` in CSS, and `'auto'` defers to it, so it would\n // still animate. `'instant'` forces an immediate, motion-free jump.\n behavior: this._prefersReducedMotion() ? 'instant' : 'smooth'\n })\n this._restoreSnapWhenSettled(targetLeft, index)\n }\n\n // Horizontal distance to scroll the viewport so `element` rests where the\n // active slide should sit. Scroll the viewport itself rather than calling\n // `element.scrollIntoView()`: the latter scrolls *every* scrollable ancestor\n // (including the page), so an autoplaying carousel below the fold would yank\n // the whole page to itself on each tick. Using bounding rects keeps it\n // direction-agnostic (works in RTL).\n _scrollDelta(element) {\n const viewportRect = this._viewport.getBoundingClientRect()\n const rect = element.getBoundingClientRect()\n\n if (this._element.classList.contains(CLASS_NAME_CENTER)) {\n return (rect.left + (rect.width / 2)) - (viewportRect.left + (viewportRect.width / 2))\n }\n\n // Start alignment: rest the slide at the scroll-padding (peek) offset, which\n // is exactly where scroll-snap will settle. Aligning flush to the edge\n // instead would make the browser re-snap by `peek` once snapping is restored,\n // producing a visible secondary nudge after the programmatic scroll.\n const padStart = Number.parseFloat(getComputedStyle(this._viewport).scrollPaddingInlineStart) || 0\n\n return isRTL() ?\n rect.right - (viewportRect.right - padStart) :\n rect.left - (viewportRect.left + padStart)\n }\n\n // Seamless loop: continue past an end into a one-off clone of the destination\n // slide, then teleport to the real slide so there's no visible backward jump.\n _loopTransition(isNext) {\n const items = this._getItems()\n const last = items.length - 1\n const fromIndex = this._activeIndex\n const toIndex = isNext ? 0 : last\n const direction = this._loopDirection(isNext)\n\n const slideEvent = EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget: items[toIndex],\n direction,\n from: fromIndex,\n to: toIndex\n })\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n this._looping = true\n\n const clone = (isNext ? items[0] : items[last]).cloneNode(true)\n clone.classList.add(CLASS_NAME_CLONE)\n clone.classList.remove(CLASS_NAME_ACTIVE)\n clone.removeAttribute('id')\n // Also strip ids from the cloned subtree to avoid duplicate ids while the\n // clone is on screen.\n for (const node of SelectorEngine.find('[id]', clone)) {\n node.removeAttribute('id')\n }\n\n clone.setAttribute('aria-hidden', 'true')\n clone.inert = true\n\n this._viewport.style.scrollSnapType = 'none'\n\n if (isNext) {\n this._viewport.append(clone)\n } else {\n this._viewport.prepend(clone)\n // Prepending shifts the real slides to the right; instantly re-align the\n // current slide so the insertion doesn't flash before we animate.\n this._jumpScroll(this._scrollDelta(items[fromIndex]))\n }\n\n this._viewport.scrollBy({\n left: this._scrollDelta(clone),\n top: 0,\n behavior: 'smooth'\n })\n\n this._afterScrollSettles(() => {\n // Teleport to the real destination without animation. JS runs to\n // completion before the browser paints, so removing the clone and the\n // compensating scroll land in a single frame (no visible flash).\n clone.remove()\n this._jumpScroll(this._scrollDelta(items[toIndex]))\n\n this._activeIndex = toIndex\n this._refreshActiveState()\n\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: items[toIndex],\n direction,\n from: fromIndex,\n to: toIndex\n })\n\n this._viewport.style.scrollSnapType = ''\n this._looping = false\n })\n }\n\n _loopDirection(isNext) {\n if (isRTL()) {\n return isNext ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n return isNext ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n // Instant (non-animated) scroll with snapping suspended, used to teleport the\n // viewport during a loop transition. `behavior: 'instant'` is required because\n // the viewport sets `scroll-behavior: smooth` in CSS, and `'auto'` would defer\n // to it and animate the teleport (a visible backward slide).\n _jumpScroll(delta) {\n this._viewport.style.scrollSnapType = 'none'\n this._viewport.scrollBy({ left: delta, top: 0, behavior: 'instant' })\n }\n\n // Re-enable scroll snapping once the viewport reaches `targetLeft` (or stops\n // moving). Passing the target matters: restoring `mandatory` snapping re-snaps\n // to the *nearest* snap point, so if we restored mid-animation the viewport\n // could jump back to the slide we came from — most visible stepping to the\n // first/last slide, where it looks like the control \"doesn't work\".\n _restoreSnapWhenSettled(targetLeft, index) {\n this._afterScrollSettles(() => {\n this._viewport.style.scrollSnapType = ''\n // Without IntersectionObserver nothing else fires `slid`/updates the active\n // slide after a programmatic scroll, so do it here. With the observer\n // present this is a no-op (it already moved the active index to `index`).\n if (!this._observer && index !== undefined) {\n this._setActive(index)\n }\n\n // The IntersectionObserver doesn't fire once the viewport has stopped, so\n // refresh the end controls here to catch the final ~1px settle landing\n // exactly on the scroll extent (e.g. disabling `next` at the last view).\n this._updateEndControls()\n }, targetLeft)\n }\n\n // Invoke `callback` once the viewport stops moving. We watch the scroll\n // position across frames instead of relying on the `scrollend` event, which\n // isn't available across our supported browsers yet.\n //\n // Crucially, we only start counting \"stable\" frames once the scroll has\n // actually moved. A smooth `scrollBy` doesn't update `scrollLeft` for the first\n // frame or two, so naively treating those initial unchanged frames as\n // \"settled\" would re-enable `mandatory` snapping mid-animation — which cancels\n // the in-flight programmatic scroll and lands on the wrong slide (most visible\n // in multi-item layouts). If the scroll never moves (delta clamped at an end,\n // or `scrollBy` stubbed out in unit tests), we fall back to a short frame cap.\n //\n // When `targetLeft` is known we also finish the moment we arrive there, so the\n // snap is restored exactly on the destination snap point and can't re-snap the\n // viewport backwards (the failure mode where stepping to the first/last slide\n // appears to do nothing).\n _afterScrollSettles(callback, targetLeft) {\n if (typeof requestAnimationFrame === 'undefined') {\n callback()\n return\n }\n\n if (this._snapRestoreFrame !== null) {\n cancelAnimationFrame(this._snapRestoreFrame)\n }\n\n const startLeft = this._viewport.scrollLeft\n let lastLeft = startLeft\n let stableFrames = 0\n let waited = 0\n let hasMoved = false\n\n const tick = () => {\n const currentLeft = this._viewport.scrollLeft\n const reachedTarget = targetLeft !== undefined && Math.abs(currentLeft - targetLeft) <= 1\n\n if (Math.abs(currentLeft - startLeft) > 1) {\n hasMoved = true\n }\n\n // Only accrue stable frames after movement begins, so the pre-animation\n // and ease-in frames don't prematurely count as settled.\n if (hasMoved) {\n stableFrames = Math.abs(currentLeft - lastLeft) < 1 ? stableFrames + 1 : 0\n }\n\n lastLeft = currentLeft\n waited += 1\n\n if (reachedTarget || (hasMoved && stableFrames >= 3) || (!hasMoved && waited >= SCROLL_SETTLE_MAX_FRAMES)) {\n this._snapRestoreFrame = null\n callback()\n return\n }\n\n this._snapRestoreFrame = requestAnimationFrame(tick)\n }\n\n this._snapRestoreFrame = requestAnimationFrame(tick)\n }\n\n // Fade mode just swaps the active class; the CSS opacity transition on\n // `.carousel-item` performs the crossfade over `--carousel-fade-duration` (and\n // collapses to an instant swap under reduced motion, via the `transition`\n // mixin). It deliberately avoids the View Transition API: a view transition\n // crossfades a page snapshot over its own (shorter) duration while this CSS\n // fade also runs underneath, so the two animations overlap and visibly stutter.\n _fadeTo(index) {\n this._setActive(index)\n }\n\n _setActive(index) {\n const items = this._getItems()\n if (index === this._activeIndex || !items[index]) {\n return\n }\n\n const from = this._activeIndex\n\n this._activeIndex = index\n this._refreshActiveState()\n\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: items[index],\n direction: this._direction(from, index),\n from,\n to: index\n })\n }\n\n _refreshActiveState() {\n const items = this._getItems()\n\n for (const [index, item] of items.entries()) {\n item.classList.toggle(CLASS_NAME_ACTIVE, index === this._activeIndex)\n }\n\n this._setActiveIndicatorElement(this._activeIndex)\n this._updateEndControls()\n }\n\n _updateEndControls() {\n // Only `ends: 'stop'` has real ends; under `wrap`/`loop` you can always\n // advance, so disabling end controls would be meaningless. When stopping,\n // disable the prev control at the start of the scroll range and the next\n // control at the end so there are no dead end-buttons.\n if (this._config.ends !== ENDS_STOP) {\n return\n }\n\n const viewport = this._viewport\n const maxScroll = viewport.scrollWidth - viewport.clientWidth\n\n let atStart\n let atEnd\n\n if (maxScroll > 0) {\n // Scrollable: measure the real scroll extent so this works for multi-item,\n // peek, and variable-width layouts where the last slide can never become\n // the left-most (active) one. `Math.abs` keeps it correct in RTL, where\n // `scrollLeft` runs from 0 down to negative.\n const progress = Math.abs(viewport.scrollLeft)\n atStart = progress <= 1\n atEnd = progress >= maxScroll - 1\n } else {\n // Not scrollable (or no layout yet, e.g. in unit tests): fall back to the\n // active index for the single-slide case.\n const last = this._getItems().length - 1\n atStart = this._activeIndex <= 0\n atEnd = this._activeIndex >= last\n }\n\n this._setControlsDisabled(this._prevControls, atStart)\n this._setControlsDisabled(this._nextControls, atEnd)\n }\n\n _setControlsDisabled(controls, disabled) {\n for (const control of controls) {\n // a11y: if we're about to disable the focused control, move focus to the\n // opposite (still-enabled) control so focus isn't lost.\n if (disabled && control === document.activeElement) {\n const opposite = controls === this._prevControls ? this._nextControls : this._prevControls\n const fallback = opposite[0] ?? this._viewport\n // `preventScroll` so moving focus doesn't yank the page/viewport to the\n // newly-focused control mid-navigation.\n fallback.focus({ preventScroll: true })\n }\n\n control.disabled = disabled\n }\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return\n }\n\n const active = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n active.removeAttribute('aria-current')\n }\n\n const newActive = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement)\n if (newActive) {\n newActive.classList.add(CLASS_NAME_ACTIVE)\n newActive.setAttribute('aria-current', 'true')\n }\n }\n\n _normalizeIndex(index, length) {\n if (Number.isNaN(index) || length === 0) {\n return null\n }\n\n if (index < 0) {\n return this._wrapsAround() ? length - 1 : null\n }\n\n if (index > length - 1) {\n return this._wrapsAround() ? 0 : null\n }\n\n return index\n }\n\n // Whether navigating past an end wraps to the other end. `loop` continues\n // seamlessly where it can (see `_canLoop`) and otherwise behaves like `wrap`.\n _wrapsAround() {\n return this._config.ends === ENDS_WRAP || this._config.ends === ENDS_LOOP\n }\n\n // Seamless looping is only supported for the simple single-slide scroll\n // layout. Multi-item, peek, center, and variable-width layouts fall back to\n // the plain `wrap` jump.\n _canLoop() {\n if (this._isFade() || this._getItems().length < 2) {\n return false\n }\n\n const styles = getComputedStyle(this._element)\n const num = name => Number.parseFloat(styles.getPropertyValue(name)) || 0\n\n // These are the shipped, `--bs-`-prefixed custom properties (the build\n // prefixes every custom property), not the bare names used in the SCSS source.\n return (num('--bs-carousel-items') || 1) === 1 &&\n num('--bs-carousel-items-peek') === 0 &&\n !this._element.classList.contains(CLASS_NAME_CENTER) &&\n !this._element.classList.contains(CLASS_NAME_AUTO)\n }\n\n _direction(from, to) {\n const isNext = to > from\n if (isRTL()) {\n return isNext ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n return isNext ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n _scheduleAutoplay(index = this._activeIndex) {\n const interval = this._itemInterval(index)\n // Expose the wait so the active indicator's CSS fill matches it.\n this._element.style.setProperty(PROPERTY_INTERVAL, `${interval}ms`)\n this._interval = setTimeout(() => {\n // Capture the slide the advance lands on *before* navigating: the active\n // index only updates once the scroll settles (asynchronously), so reading\n // it after `nextWhenVisible()` would schedule the next wait from the slide\n // we're leaving — making per-item `data-bs-interval`s lag by one slide.\n const upcoming = this._upcomingIndex()\n this.nextWhenVisible()\n\n // Nothing comes after the last slide when `ends: 'stop'`; stop cycling\n // instead of re-arming a timer that can never advance.\n if (upcoming === null) {\n this.pause()\n return\n }\n\n this._scheduleAutoplay(upcoming)\n }, interval)\n }\n\n // The slide the next autoplay tick will rest on, derived from the live scroll\n // position (which still reflects the current slide when the timer fires).\n // Returns `null` when there's nowhere left to advance (`ends: stop` at the end).\n _upcomingIndex() {\n return this._normalizeIndex(this._navIndex() + 1, this._getItems().length)\n }\n\n _itemInterval(index = this._activeIndex) {\n const item = this._getItems()[index]\n const interval = item ? Number.parseInt(item.getAttribute('data-bs-interval'), 10) : Number.NaN\n return Number.isNaN(interval) ? this._config.interval : interval\n }\n\n _maybeEnableCycle() {\n if (!this._playing) {\n return\n }\n\n this.cycle()\n }\n\n // Turn autoplay off for good once the user interacts with the carousel\n _pauseFromInteraction() {\n this._playing = false\n this.pause()\n this._updatePlayPauseControl()\n }\n\n _togglePlayPause() {\n if (this._playing) {\n this._pauseFromInteraction()\n return\n }\n\n this._playing = true\n this.cycle()\n this._updatePlayPauseControl()\n }\n\n _updatePlayPauseControl() {\n if (!this._playPauseElement) {\n return\n }\n\n this._playPauseElement.classList.toggle(CLASS_NAME_PAUSED, !this._playing)\n\n const label = this._playPauseElement.getAttribute(\n this._playing ? 'data-bs-pause-label' : 'data-bs-play-label'\n )\n\n if (label) {\n this._playPauseElement.setAttribute('aria-label', label)\n }\n }\n\n _isFade() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _prefersReducedMotion() {\n return typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element)\n }\n\n _clearInterval() {\n if (this._interval) {\n clearTimeout(this._interval)\n this._interval = null\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n const carousel = Carousel.getOrCreateInstance(target)\n\n // Manually cycling the carousel is an explicit interaction, so stop autoplay\n carousel._pauseFromInteraction()\n\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n carousel.to(slideIndex)\n return\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next()\n return\n }\n\n carousel.prev()\n})\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_PLAY_PAUSE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n Carousel.getOrCreateInstance(target)._togglePlayPause()\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_AUTOPLAY)\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel)\n }\n})\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getElement,\n reflow\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\nconst Default = {\n parent: null,\n toggle: true\n}\n\nconst DefaultType = {\n parent: '(null|element)',\n toggle: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._triggerArray = []\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElement => foundElement === this._element)\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem)\n }\n }\n\n this._initializeChildren()\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown())\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return\n }\n\n let activeChildren = []\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\n .filter(element => element !== this._element)\n .map(element => Collapse.getOrCreateInstance(element, { toggle: false }))\n }\n\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide()\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n this._addAriaAndCollapsedClass(this._triggerArray, true)\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n this._element.style[dimension] = ''\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n this._queueCallback(complete, this._element, true)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger)\n\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false)\n }\n }\n\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n this._queueCallback(complete, this._element, true)\n }\n\n // Private\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle) // Coerce string values\n config.parent = getElement(config.parent)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE)\n\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element)\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected))\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element))\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return\n }\n\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen)\n element.setAttribute('aria-expanded', isOpen)\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {\n event.preventDefault()\n }\n\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, { toggle: false }).toggle()\n }\n})\n\nexport default Collapse\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n const firstChar = placement[0];\n return firstChar === 't' || firstChar === 'b' ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.includes('start') ? placement.replace('start', 'end') : placement.replace('end', 'start');\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n const side = getSide(placement);\n return oppositeSideMap[side] + placement.slice(side.length);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n// Maximum number of resets that can occur before bailing to avoid infinite reset loops.\nconst MAX_RESET_COUNT = 50;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const platformWithDetectOverflow = platform.detectOverflow ? platform : {\n ...platform,\n detectOverflow\n };\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let resetCount = 0;\n const middlewareData = {};\n for (let i = 0; i < middleware.length; i++) {\n const currentMiddleware = middleware[i];\n if (!currentMiddleware) {\n continue;\n }\n const {\n name,\n fn\n } = currentMiddleware;\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform: platformWithDetectOverflow,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData[name] = {\n ...middlewareData[name],\n ...data\n };\n if (reset && resetCount < MAX_RESET_COUNT) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects,\n platform\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await platform.detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await platform.detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n platform\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && display !== 'inline' && display !== 'contents';\n}\nfunction isTableElement(element) {\n return /^(table|td|th)$/.test(getNodeName(element));\n}\nfunction isTopLayer(element) {\n try {\n if (element.matches(':popover-open')) {\n return true;\n }\n } catch (_e) {\n // no-op\n }\n try {\n return element.matches(':modal');\n } catch (_e) {\n return false;\n }\n}\nconst willChangeRe = /transform|translate|scale|rotate|perspective|filter/;\nconst containRe = /paint|layout|strict|content/;\nconst isNotNone = value => !!value && value !== 'none';\nlet isWebKitValue;\nfunction isContainingBlock(elementOrCss) {\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return isNotNone(css.transform) || isNotNone(css.translate) || isNotNone(css.scale) || isNotNone(css.rotate) || isNotNone(css.perspective) || !isWebKit() && (isNotNone(css.backdropFilter) || isNotNone(css.filter)) || willChangeRe.test(css.willChange || '') || containRe.test(css.contain || '');\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (isWebKitValue == null) {\n isWebKitValue = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('-webkit-backdrop-filter', 'none');\n }\n return isWebKitValue;\n}\nfunction isLastTraversableNode(node) {\n return /^(html|body|#document)$/.test(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n } else {\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n }\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && (currentContainingBlockComputedStyle.position === 'absolute' || currentContainingBlockComputedStyle.position === 'fixed') || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);\n let top = firstRect.top;\n let right = firstRect.right;\n let bottom = firstRect.bottom;\n let left = firstRect.left;\n for (let i = 1; i < clippingAncestors.length; i++) {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);\n top = max(rect.top, top);\n right = min(rect.right, right);\n bottom = min(rect.bottom, bottom);\n left = max(rect.left, left);\n }\n return {\n width: right - left,\n height: bottom - top,\n x: left,\n y: top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...(floating ? getOverflowAncestors(floating) : [])] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver && floating) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n if (floating) {\n resizeObserver.observe(floating);\n }\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/floating-ui.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isRTL } from './index.js'\n\n/**\n * Breakpoints for responsive placement (matches SCSS $breakpoints)\n */\nexport const BREAKPOINTS = {\n sm: 576,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536\n}\n\n/**\n * Default placement with RTL support\n */\nexport const getDefaultPlacement = (fallback = 'bottom') => {\n if (fallback.includes('-start') || fallback.includes('-end')) {\n const [side, alignment] = fallback.split('-')\n const flippedAlignment = alignment === 'start' ? 'end' : 'start'\n return isRTL() ? `${side}-${flippedAlignment}` : fallback\n }\n\n return fallback\n}\n\n/**\n * Parse a placement string that may contain responsive prefixes\n * Example: \"bottom-start md:top-end lg:right\" returns { xs: 'bottom-start', md: 'top-end', lg: 'right' }\n *\n * @param {string} placementString - The placement string to parse\n * @param {string} defaultPlacement - The default placement to use for xs/base\n * @returns {object|null} - Object with breakpoint keys and placement values, or null if not responsive\n */\nexport const parseResponsivePlacement = (placementString, defaultPlacement = 'bottom') => {\n // Check if placement contains responsive prefixes (e.g., \"bottom-start md:top-end\")\n if (!placementString || !placementString.includes(':')) {\n return null\n }\n\n // Parse the placement string into breakpoint-keyed object\n const parts = placementString.split(/\\s+/)\n const placements = { xs: defaultPlacement } // Default fallback\n\n for (const part of parts) {\n if (part.includes(':')) {\n // Responsive placement like \"md:top-end\"\n const [breakpoint, placement] = part.split(':')\n if (BREAKPOINTS[breakpoint] !== undefined) {\n placements[breakpoint] = placement\n }\n } else {\n // Base placement (no prefix = xs/default)\n placements.xs = part\n }\n }\n\n return placements\n}\n\n/**\n * Get the active placement for the current viewport width\n *\n * @param {object} responsivePlacements - Object with breakpoint keys and placement values\n * @param {string} defaultPlacement - Fallback placement\n * @returns {string} - The active placement for current viewport\n */\nexport const getResponsivePlacement = (responsivePlacements, defaultPlacement = 'bottom') => {\n if (!responsivePlacements) {\n return defaultPlacement\n }\n\n // Get current viewport width\n const viewportWidth = window.innerWidth\n\n // Find the largest breakpoint that matches\n let activePlacement = responsivePlacements.xs || defaultPlacement\n\n // Check breakpoints in order (sm, md, lg, xl, 2xl)\n const breakpointOrder = ['sm', 'md', 'lg', 'xl', '2xl']\n\n for (const breakpoint of breakpointOrder) {\n const minWidth = BREAKPOINTS[breakpoint]\n if (viewportWidth >= minWidth && responsivePlacements[breakpoint]) {\n activePlacement = responsivePlacements[breakpoint]\n }\n }\n\n return activePlacement\n}\n\n/**\n * Create media query listeners for responsive placement changes\n *\n * @param {Function} callback - Callback to run when breakpoint changes\n * @returns {Array} - Array of { mql, handler } objects for cleanup\n */\nexport const createBreakpointListeners = callback => {\n const listeners = []\n\n for (const breakpoint of Object.keys(BREAKPOINTS)) {\n const minWidth = BREAKPOINTS[breakpoint]\n const mql = window.matchMedia(`(min-width: ${minWidth}px)`)\n\n mql.addEventListener('change', callback)\n listeners.push({ mql, handler: callback })\n }\n\n return listeners\n}\n\n/**\n * Clean up media query listeners\n *\n * @param {Array} listeners - Array of { mql, handler } objects\n */\nexport const disposeBreakpointListeners = listeners => {\n for (const { mql, handler } of listeners) {\n mql.removeEventListener('change', handler)\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap menu.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n computePosition,\n flip,\n shift,\n offset,\n autoUpdate\n} from '@floating-ui/dom'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n execute,\n getElement,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop\n} from './util/index.js'\nimport {\n parseResponsivePlacement,\n getResponsivePlacement,\n createBreakpointListeners,\n disposeBreakpointListeners\n} from './util/floating-ui.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'menu'\nconst DATA_KEY = 'bs.menu'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\nconst ENTER_KEY = 'Enter'\nconst SPACE_KEY = ' '\nconst RIGHT_MOUSE_BUTTON = 2\n\nconst SUBMENU_CLOSE_DELAY = 100\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"menu\"]:not(.disabled):not(:disabled)'\n\nconst SELECTOR_MENU = '.menu'\nconst SELECTOR_SUBMENU = '.submenu'\nconst SELECTOR_SUBMENU_TOGGLE = '.submenu > .menu-item'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.menu-item:not(.disabled):not(:disabled)'\n\nconst DEFAULT_PLACEMENT = 'bottom-start'\nconst SUBMENU_PLACEMENT = 'end-start'\n\nconst resolveLogicalPlacement = placement => {\n if (isRTL()) {\n return placement.replace(/^start(?=-|$)/, 'right').replace(/^end(?=-|$)/, 'left')\n }\n\n return placement.replace(/^start(?=-|$)/, 'left').replace(/^end(?=-|$)/, 'right')\n}\n\nconst triangleSign = (p1, p2, p3) =>\n ((p1.x - p3.x) * (p2.y - p3.y)) - ((p2.x - p3.x) * (p1.y - p3.y))\n\nconst Default = {\n autoClose: true,\n boundary: 'clippingParents',\n container: false,\n display: 'dynamic',\n offset: [0, 2],\n floatingConfig: null,\n menu: null,\n placement: DEFAULT_PLACEMENT,\n reference: 'toggle',\n strategy: 'absolute',\n submenuTrigger: 'both',\n submenuDelay: SUBMENU_CLOSE_DELAY\n}\n\nconst DefaultType = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n display: 'string',\n offset: '(array|string|function)',\n floatingConfig: '(null|object|function)',\n menu: '(null|element)',\n placement: 'string',\n reference: '(string|element|object)',\n strategy: 'string',\n submenuTrigger: 'string',\n submenuDelay: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass Menu extends BaseComponent {\n static _openInstances = new Set()\n\n constructor(element, config) {\n if (typeof computePosition === 'undefined') {\n throw new TypeError('Bootstrap\\'s menus require Floating UI (https://floating-ui.com)')\n }\n\n super(element, config)\n\n this._floatingCleanup = null\n this._mediaQueryListeners = []\n this._responsivePlacements = null\n this._parent = this._element.parentNode\n this._isSubmenu = this._parent.classList?.contains('submenu')\n this._openSubmenus = new Map()\n this._submenuCloseTimeouts = new Map()\n this._hoverIntentData = null\n\n this._menu = this._config.menu || this._findMenu()\n\n this._menuOriginalParent = this._menu?.parentNode\n\n this._parseResponsivePlacements()\n this._setupSubmenuListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._moveMenuToContainer()\n this._createFloating()\n\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of document.body.children) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n this._element.focus({ focusVisible: false })\n this._element.setAttribute('aria-expanded', 'true')\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.add(CLASS_NAME_SHOW)\n }\n\n Menu._openInstances.add(this)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n this._disposeMediaQueryListeners()\n this._closeAllSubmenus()\n this._clearAllSubmenuTimeouts()\n Menu._openInstances.delete(this)\n super.dispose()\n }\n\n update() {\n if (this._floatingCleanup) {\n this._updateFloatingPosition()\n }\n }\n\n // Private\n _findMenu() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.prev(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.findOne(SELECTOR_MENU, this._parent)\n }\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._closeAllSubmenus()\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.remove(CLASS_NAME_SHOW)\n }\n\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'placement')\n Manipulator.removeDataAttribute(this._menu, 'display')\n Menu._openInstances.delete(this)\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = super._getConfig(config)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createFloating() {\n if (this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'display', 'static')\n return\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n this._updateFloatingPosition(referenceElement)\n\n this._floatingCleanup = autoUpdate(\n referenceElement,\n this._menu,\n () => this._updateFloatingPosition(referenceElement)\n )\n }\n\n async _updateFloatingPosition(referenceElement = null) {\n if (!this._menu) {\n return\n }\n\n if (!referenceElement) {\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n } else {\n referenceElement = this._element\n }\n }\n\n const placement = this._getPlacement()\n const middleware = this._getFloatingMiddleware()\n const floatingConfig = this._getFloatingConfig(placement, middleware)\n\n await this._applyFloatingPosition(\n referenceElement,\n this._menu,\n floatingConfig.placement,\n floatingConfig.middleware,\n floatingConfig.strategy\n )\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement() {\n const placement = this._responsivePlacements ?\n getResponsivePlacement(this._responsivePlacements, DEFAULT_PLACEMENT) :\n this._config.placement\n\n return resolveLogicalPlacement(placement)\n }\n\n _parseResponsivePlacements() {\n this._responsivePlacements = parseResponsivePlacement(this._config.placement, DEFAULT_PLACEMENT)\n\n if (this._responsivePlacements) {\n this._setupMediaQueryListeners()\n }\n }\n\n _setupMediaQueryListeners() {\n this._disposeMediaQueryListeners()\n this._mediaQueryListeners = createBreakpointListeners(() => {\n if (this._isShown()) {\n this._updateFloatingPosition()\n }\n })\n }\n\n _disposeMediaQueryListeners() {\n disposeBreakpointListeners(this._mediaQueryListeners)\n this._mediaQueryListeners = []\n }\n\n _getOffset() {\n const { offset: offsetConfig } = this._config\n\n if (typeof offsetConfig === 'string') {\n return offsetConfig.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offsetConfig === 'function') {\n return ({ placement, rects }) => {\n const result = offsetConfig({ placement, reference: rects.reference, floating: rects.floating }, this._element)\n return result\n }\n }\n\n return offsetConfig\n }\n\n _getFloatingMiddleware() {\n const offsetValue = this._getOffset()\n\n const middleware = [\n offset(\n typeof offsetValue === 'function' ?\n offsetValue :\n { mainAxis: offsetValue[1] || 0, crossAxis: offsetValue[0] || 0 }\n ),\n flip({\n fallbackPlacements: this._getFallbackPlacements()\n }),\n shift({\n boundary: this._config.boundary === 'clippingParents' ? 'clippingAncestors' : this._config.boundary\n })\n ]\n\n return middleware\n }\n\n _getFallbackPlacements() {\n const placement = this._getPlacement()\n\n const fallbackMap = {\n bottom: ['top', 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\n 'bottom-start': ['top-start', 'bottom-end', 'top-end'],\n 'bottom-end': ['top-end', 'bottom-start', 'top-start'],\n top: ['bottom', 'top-start', 'top-end', 'bottom-start', 'bottom-end'],\n 'top-start': ['bottom-start', 'top-end', 'bottom-end'],\n 'top-end': ['bottom-end', 'top-start', 'bottom-start'],\n right: ['left', 'right-start', 'right-end', 'left-start', 'left-end'],\n 'right-start': ['left-start', 'right-end', 'left-end', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'right-start', 'left-start', 'top-end', 'bottom-end'],\n left: ['right', 'left-start', 'left-end', 'right-start', 'right-end'],\n 'left-start': ['right-start', 'left-end', 'right-end', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'left-start', 'right-start', 'top-end', 'bottom-end']\n }\n\n return fallbackMap[placement] || ['top', 'bottom', 'right', 'left']\n }\n\n _getFloatingConfig(placement, middleware) {\n const defaultConfig = {\n placement,\n middleware,\n strategy: this._config.strategy\n }\n\n return {\n ...defaultConfig,\n ...execute(this._config.floatingConfig, [undefined, defaultConfig])\n }\n }\n\n _disposeFloating() {\n if (this._floatingCleanup) {\n this._floatingCleanup()\n this._floatingCleanup = null\n }\n }\n\n _getContainer() {\n const { container } = this._config\n if (container === false) {\n return null\n }\n\n return container === true ? document.body : getElement(container)\n }\n\n _moveMenuToContainer() {\n const container = this._getContainer()\n if (!container || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== container) {\n container.append(this._menu)\n }\n }\n\n _restoreMenuToOriginalParent() {\n if (!this._menuOriginalParent || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== this._menuOriginalParent) {\n this._menuOriginalParent.append(this._menu)\n }\n }\n\n async _applyFloatingPosition(reference, floating, placement, middleware, strategy = 'absolute') {\n if (!floating.isConnected) {\n return null\n }\n\n const { x, y, placement: finalPlacement } = await computePosition(\n reference,\n floating,\n { placement, middleware, strategy }\n )\n\n if (!floating.isConnected) {\n return null\n }\n\n Object.assign(floating.style, {\n position: strategy,\n left: `${x}px`,\n top: `${y}px`,\n margin: '0'\n })\n\n Manipulator.setDataAttribute(floating, 'placement', finalPlacement)\n return finalPlacement\n }\n\n // -------------------------------------------------------------------------\n // Submenu handling\n // -------------------------------------------------------------------------\n\n _setupSubmenuListeners() {\n if (this._config.submenuTrigger === 'hover' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'mouseenter', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerEnter(event)\n })\n\n EventHandler.on(this._menu, 'mouseleave', SELECTOR_SUBMENU, event => {\n this._onSubmenuLeave(event)\n })\n\n EventHandler.on(this._menu, 'mousemove', event => {\n this._trackMousePosition(event)\n })\n }\n\n if (this._config.submenuTrigger === 'click' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'click', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerClick(event)\n })\n }\n }\n\n _onSubmenuTriggerEnter(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n this._cancelSubmenuCloseTimeout(submenu)\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n\n _onSubmenuLeave(event) {\n const submenuWrapper = event.target.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu || !this._openSubmenus.has(submenu)) {\n return\n }\n\n if (this._isMovingTowardSubmenu(event, submenu)) {\n return\n }\n\n this._scheduleSubmenuClose(submenu, submenuWrapper)\n }\n\n _onSubmenuTriggerClick(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n if (this._openSubmenus.has(submenu)) {\n this._closeSubmenu(submenu, submenuWrapper)\n } else {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n }\n\n _openSubmenu(trigger, submenu, submenuWrapper) {\n if (this._openSubmenus.has(submenu)) {\n return\n }\n\n trigger.setAttribute('aria-expanded', 'true')\n trigger.setAttribute('aria-haspopup', 'true')\n\n submenu.classList.add(CLASS_NAME_SHOW)\n submenuWrapper.classList.add(CLASS_NAME_SHOW)\n\n const cleanup = this._createSubmenuFloating(trigger, submenu, submenuWrapper)\n this._openSubmenus.set(submenu, cleanup)\n\n EventHandler.on(submenu, 'mouseenter', () => {\n this._cancelSubmenuCloseTimeout(submenu)\n })\n }\n\n _closeSubmenu(submenu, submenuWrapper) {\n if (!this._openSubmenus.has(submenu)) {\n return\n }\n\n const nestedSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, submenu)\n for (const nested of nestedSubmenus) {\n const nestedWrapper = nested.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(nested, nestedWrapper)\n }\n\n const trigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, submenuWrapper)\n\n const cleanup = this._openSubmenus.get(submenu)\n if (cleanup) {\n cleanup()\n }\n\n this._openSubmenus.delete(submenu)\n EventHandler.off(submenu, 'mouseenter')\n\n if (trigger) {\n trigger.setAttribute('aria-expanded', 'false')\n }\n\n submenu.classList.remove(CLASS_NAME_SHOW)\n submenuWrapper.classList.remove(CLASS_NAME_SHOW)\n\n submenu.style.position = ''\n submenu.style.left = ''\n submenu.style.top = ''\n submenu.style.margin = ''\n }\n\n _closeAllSubmenus() {\n for (const [submenu] of this._openSubmenus) {\n const submenuWrapper = submenu.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(submenu, submenuWrapper)\n }\n }\n\n _closeSiblingSubmenus(currentSubmenuWrapper) {\n const parent = currentSubmenuWrapper.parentNode\n const siblingSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} > ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, parent)\n\n for (const siblingMenu of siblingSubmenus) {\n const siblingWrapper = siblingMenu.closest(SELECTOR_SUBMENU)\n if (siblingWrapper !== currentSubmenuWrapper) {\n this._closeSubmenu(siblingMenu, siblingWrapper)\n }\n }\n }\n\n _createSubmenuFloating(trigger, submenu, submenuWrapper) {\n const referenceElement = submenuWrapper\n const placement = resolveLogicalPlacement(SUBMENU_PLACEMENT)\n const middleware = [\n offset({ mainAxis: 0, crossAxis: -4 }),\n flip({\n fallbackPlacements: [\n resolveLogicalPlacement('start-start'),\n resolveLogicalPlacement('end-end'),\n resolveLogicalPlacement('start-end')\n ]\n }),\n shift({ padding: 8 })\n ]\n\n const updatePosition = () => this._applyFloatingPosition(referenceElement, submenu, placement, middleware)\n\n updatePosition()\n return autoUpdate(referenceElement, submenu, updatePosition)\n }\n\n _scheduleSubmenuClose(submenu, submenuWrapper) {\n this._cancelSubmenuCloseTimeout(submenu)\n\n const timeoutId = setTimeout(() => {\n this._closeSubmenu(submenu, submenuWrapper)\n this._submenuCloseTimeouts.delete(submenu)\n }, this._config.submenuDelay)\n\n this._submenuCloseTimeouts.set(submenu, timeoutId)\n }\n\n _cancelSubmenuCloseTimeout(submenu) {\n const timeoutId = this._submenuCloseTimeouts.get(submenu)\n if (timeoutId) {\n clearTimeout(timeoutId)\n this._submenuCloseTimeouts.delete(submenu)\n }\n }\n\n _clearAllSubmenuTimeouts() {\n for (const timeoutId of this._submenuCloseTimeouts.values()) {\n clearTimeout(timeoutId)\n }\n\n this._submenuCloseTimeouts.clear()\n }\n\n // -------------------------------------------------------------------------\n // Hover intent / Safe triangle\n // -------------------------------------------------------------------------\n\n _trackMousePosition(event) {\n this._hoverIntentData = {\n x: event.clientX,\n y: event.clientY,\n timestamp: Date.now()\n }\n }\n\n _isMovingTowardSubmenu(event, submenu) {\n if (!this._hoverIntentData) {\n return false\n }\n\n const submenuRect = submenu.getBoundingClientRect()\n const currentPos = { x: event.clientX, y: event.clientY }\n const lastPos = { x: this._hoverIntentData.x, y: this._hoverIntentData.y }\n\n const isRtl = isRTL()\n const targetX = isRtl ? submenuRect.right : submenuRect.left\n const topCorner = { x: targetX, y: submenuRect.top }\n const bottomCorner = { x: targetX, y: submenuRect.bottom }\n\n return this._pointInTriangle(currentPos, lastPos, topCorner, bottomCorner)\n }\n\n _pointInTriangle(point, v1, v2, v3) {\n const d1 = triangleSign(point, v1, v2)\n const d2 = triangleSign(point, v2, v3)\n const d3 = triangleSign(point, v3, v1)\n\n const hasNeg = (d1 < 0) || (d2 < 0) || (d3 < 0)\n const hasPos = (d1 > 0) || (d2 > 0) || (d3 > 0)\n\n return !(hasNeg && hasPos)\n }\n\n // -------------------------------------------------------------------------\n // Keyboard navigation\n // -------------------------------------------------------------------------\n\n _selectMenuItem({ key, target }) {\n const currentMenu = target.closest(SELECTOR_MENU) || this._menu\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (!items.length) {\n return\n }\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n _handleSubmenuKeydown(event) {\n const { key, target } = event\n const isRtl = isRTL()\n\n const enterKey = isRtl ? ARROW_LEFT_KEY : ARROW_RIGHT_KEY\n const exitKey = isRtl ? ARROW_RIGHT_KEY : ARROW_LEFT_KEY\n\n const submenuWrapper = target.closest(SELECTOR_SUBMENU)\n const isSubmenuTrigger = submenuWrapper && target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === enterKey && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === exitKey) {\n const currentMenu = target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper) {\n event.preventDefault()\n event.stopPropagation()\n\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n this._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return true\n }\n }\n\n if (key === HOME_KEY || key === END_KEY) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = target.closest(SELECTOR_MENU)\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (items.length) {\n const targetItem = key === HOME_KEY ? items[0] : items.at(-1)\n targetItem.focus()\n }\n\n return true\n }\n\n return false\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n for (const instance of Menu._openInstances) {\n if (instance._config.autoClose === false) {\n continue\n }\n\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(instance._menu)\n if (\n composedPath.includes(instance._element) ||\n (instance._config.autoClose === 'inside' && !isMenuTarget) ||\n (instance._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n if (instance._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n const relatedTarget = { relatedTarget: instance._element }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n instance._completeHide(relatedTarget)\n }\n }\n\n static dataApiKeydownHandler(event) {\n const isInput = /input|textarea/i.test(event.target.tagName)\n const isEscapeEvent = event.key === ESCAPE_KEY\n const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)\n const isLeftOrRightEvent = [ARROW_LEFT_KEY, ARROW_RIGHT_KEY].includes(event.key)\n const isHomeOrEndEvent = [HOME_KEY, END_KEY].includes(event.key)\n const isEnterOrSpaceEvent = [ENTER_KEY, SPACE_KEY].includes(event.key)\n\n const isSubmenuTrigger = event.target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if (!isUpOrDownEvent && !isEscapeEvent && !isLeftOrRightEvent && !isHomeOrEndEvent &&\n !(isEnterOrSpaceEvent && isSubmenuTrigger)) {\n return\n }\n\n if (isInput && !isEscapeEvent) {\n return\n }\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\n this :\n (SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.next(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\n\n if (!getToggleButton) {\n return\n }\n\n const instance = Menu.getOrCreateInstance(getToggleButton)\n\n if ((isLeftOrRightEvent || isHomeOrEndEvent || (isEnterOrSpaceEvent && isSubmenuTrigger)) && instance._handleSubmenuKeydown(event)) {\n return\n }\n\n if (isUpOrDownEvent) {\n event.preventDefault()\n event.stopPropagation()\n instance.show()\n instance._selectMenuItem(event)\n return\n }\n\n if (isEscapeEvent && instance._isShown()) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = event.target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper && instance._openSubmenus.size > 0) {\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n instance._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return\n }\n\n instance.hide()\n getToggleButton.focus()\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Menu.getOrCreateInstance(this).toggle()\n})\n\nexport default Menu\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap combobox.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Menu from './menu.js'\nimport { getNextActiveElement, isDisabled, isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'combobox'\nconst DATA_KEY = 'bs.combobox'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\nconst ENTER_KEY = 'Enter'\nconst SPACE_KEY = ' '\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SELECTED = 'selected'\nconst CLASS_NAME_PLACEHOLDER = 'combobox-placeholder'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"combobox\"]'\nconst SELECTOR_MENU = '.menu'\nconst SELECTOR_MENU_ITEM = '.menu-item[data-bs-value]'\nconst SELECTOR_VISIBLE_ITEMS = '.menu-item[data-bs-value]:not(.disabled):not(:disabled)'\nconst SELECTOR_VALUE = '.combobox-value'\nconst SELECTOR_SEARCH_INPUT = '.combobox-search-input'\nconst SELECTOR_NO_RESULTS = '.combobox-no-results'\n\nconst Default = {\n boundary: 'clippingParents',\n multiple: false,\n name: null,\n offset: [0, 2],\n placeholder: '',\n placement: 'bottom-start',\n search: false,\n searchNormalize: false\n}\n\nconst DefaultType = {\n boundary: '(string|element)',\n multiple: 'boolean',\n name: '(string|null)',\n offset: '(array|string|function)',\n placeholder: 'string',\n placement: 'string',\n search: 'boolean',\n searchNormalize: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Combobox extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._toggle = this._element\n this._menu = SelectorEngine.next(this._toggle, SELECTOR_MENU)[0]\n this._valueDisplay = SelectorEngine.findOne(SELECTOR_VALUE, this._toggle)\n this._searchInput = SelectorEngine.findOne(SELECTOR_SEARCH_INPUT, this._menu)\n this._noResults = SelectorEngine.findOne(SELECTOR_NO_RESULTS, this._menu)\n this._hiddenInput = null\n this._menuInstance = null\n\n this._createHiddenInput()\n this._createMenuInstance()\n this._syncInitialSelection()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._toggle) || this._isShown()) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._toggle, EVENT_SHOW)\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._menuInstance.show()\n\n if (this._searchInput) {\n this._searchInput.value = ''\n this._filterItems('')\n requestAnimationFrame(() => this._searchInput.focus())\n }\n\n EventHandler.trigger(this._toggle, EVENT_SHOWN)\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._toggle, EVENT_HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._menuInstance.hide()\n EventHandler.trigger(this._toggle, EVENT_HIDDEN)\n }\n\n dispose() {\n if (this._menuInstance) {\n this._menuInstance.dispose()\n this._menuInstance = null\n }\n\n if (this._hiddenInput) {\n this._hiddenInput.remove()\n this._hiddenInput = null\n }\n\n EventHandler.off(this._menu, EVENT_KEY)\n EventHandler.off(this._toggle, EVENT_KEY)\n\n super.dispose()\n }\n\n // Private\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _createHiddenInput() {\n const { name } = this._config\n if (!name) {\n return\n }\n\n this._hiddenInput = document.createElement('input')\n this._hiddenInput.type = 'hidden'\n this._hiddenInput.name = name\n this._hiddenInput.value = ''\n this._toggle.parentNode.insertBefore(this._hiddenInput, this._toggle)\n }\n\n _createMenuInstance() {\n this._menuInstance = new Menu(this._toggle, {\n menu: this._menu,\n autoClose: this._config.multiple ? 'outside' : true,\n boundary: this._config.boundary,\n offset: this._config.offset,\n placement: this._config.placement\n })\n }\n\n _syncInitialSelection() {\n const selectedItems = this._getSelectedItems()\n if (selectedItems.length > 0) {\n this._updateToggleText()\n this._updateHiddenInput()\n } else {\n this._showPlaceholder()\n }\n }\n\n _addEventListeners() {\n EventHandler.on(this._menu, 'click', SELECTOR_MENU_ITEM, event => {\n const item = event.target.closest(SELECTOR_MENU_ITEM)\n if (!item || isDisabled(item)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n this._selectItem(item)\n })\n\n EventHandler.on(this._toggle, 'keydown', event => {\n this._handleToggleKeydown(event)\n })\n\n EventHandler.on(this._menu, 'keydown', event => {\n this._handleMenuKeydown(event)\n })\n\n if (this._searchInput) {\n EventHandler.on(this._searchInput, 'input', () => {\n this._filterItems(this._searchInput.value)\n })\n\n EventHandler.on(this._searchInput, 'keydown', event => {\n if (event.key === ARROW_DOWN_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n items[0].focus()\n }\n }\n\n if (event.key === ESCAPE_KEY) {\n this.hide()\n this._toggle.focus()\n }\n })\n }\n }\n\n _selectItem(item) {\n if (this._config.multiple) {\n item.classList.toggle(CLASS_NAME_SELECTED)\n item.setAttribute('aria-selected', item.classList.contains(CLASS_NAME_SELECTED))\n } else {\n const previouslySelected = SelectorEngine.find(`.${CLASS_NAME_SELECTED}`, this._menu)\n for (const prev of previouslySelected) {\n prev.classList.remove(CLASS_NAME_SELECTED)\n prev.setAttribute('aria-selected', 'false')\n }\n\n item.classList.add(CLASS_NAME_SELECTED)\n item.setAttribute('aria-selected', 'true')\n }\n\n this._updateToggleText()\n this._updateHiddenInput()\n\n const value = this._config.multiple ?\n this._getSelectedItems().map(el => el.dataset.bsValue) :\n item.dataset.bsValue\n\n EventHandler.trigger(this._toggle, EVENT_CHANGE, {\n value,\n item\n })\n\n if (!this._config.multiple) {\n this.hide()\n this._toggle.focus()\n }\n }\n\n _updateToggleText() {\n const selectedItems = this._getSelectedItems()\n\n if (selectedItems.length === 0) {\n this._showPlaceholder()\n return\n }\n\n this._valueDisplay.classList.remove(CLASS_NAME_PLACEHOLDER)\n\n if (this._config.multiple && selectedItems.length > 1) {\n this._valueDisplay.textContent = `${selectedItems.length} selected`\n } else {\n const item = selectedItems[0]\n const label = SelectorEngine.findOne('.menu-item-content > span:first-child', item)\n this._valueDisplay.textContent = label ? label.textContent : item.textContent.trim()\n }\n }\n\n _showPlaceholder() {\n const { placeholder } = this._config\n if (placeholder) {\n this._valueDisplay.textContent = placeholder\n this._valueDisplay.classList.add(CLASS_NAME_PLACEHOLDER)\n }\n }\n\n _updateHiddenInput() {\n if (!this._hiddenInput) {\n return\n }\n\n const selectedItems = this._getSelectedItems()\n const values = selectedItems.map(el => el.dataset.bsValue)\n this._hiddenInput.value = this._config.multiple ? values.join(',') : (values[0] || '')\n }\n\n _getSelectedItems() {\n return SelectorEngine.find(`.${CLASS_NAME_SELECTED}`, this._menu)\n }\n\n _getVisibleItems() {\n return SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu)\n .filter(item => isVisible(item))\n }\n\n _filterItems(query) {\n const normalizedQuery = this._normalizeText(query.toLowerCase().trim())\n const items = SelectorEngine.find(SELECTOR_MENU_ITEM, this._menu)\n let visibleCount = 0\n\n for (const item of items) {\n const text = this._normalizeText(item.textContent.toLowerCase().trim())\n const matches = !normalizedQuery || text.includes(normalizedQuery)\n item.style.display = matches ? '' : 'none'\n if (matches) {\n visibleCount++\n }\n }\n\n if (this._noResults) {\n this._noResults.classList.toggle('d-none', visibleCount > 0)\n }\n }\n\n _normalizeText(text) {\n if (this._config.searchNormalize) {\n return text.normalize('NFD').replace(/[\\u0300-\\u036F]/g, '')\n }\n\n return text\n }\n\n _handleToggleKeydown(event) {\n const { key } = event\n\n if (key === ARROW_DOWN_KEY || key === ARROW_UP_KEY) {\n event.preventDefault()\n if (!this._isShown()) {\n this.show()\n }\n\n const items = this._getVisibleItems()\n if (items.length > 0) {\n const target = key === ARROW_DOWN_KEY ? items[0] : items.at(-1)\n target.focus()\n }\n\n return\n }\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && !this._isShown()) {\n event.preventDefault()\n this.show()\n }\n }\n\n _handleMenuKeydown(event) {\n const { key, target } = event\n\n if (key === ESCAPE_KEY) {\n event.preventDefault()\n event.stopPropagation()\n this.hide()\n this._toggle.focus()\n return\n }\n\n if (key === TAB_KEY) {\n this.hide()\n return\n }\n\n const isInput = target.matches('input')\n\n if (key === ARROW_DOWN_KEY || key === ARROW_UP_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n return\n }\n\n if (key === HOME_KEY || key === END_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n const targetItem = key === HOME_KEY ? items[0] : items.at(-1)\n targetItem.focus()\n }\n\n return\n }\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && !isInput) {\n event.preventDefault()\n const item = target.closest(SELECTOR_MENU_ITEM)\n if (item && !isDisabled(item)) {\n this._selectItem(item)\n }\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Combobox.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Combobox.getOrCreateInstance(this).toggle()\n})\n\nEventHandler.on(document, 'DOMContentLoaded', () => {\n for (const toggle of SelectorEngine.find(SELECTOR_DATA_TOGGLE)) {\n Combobox.getOrCreateInstance(toggle)\n }\n})\n\nexport default Combobox\n","/*! name: vanilla-calendar-pro v3.1.0 | url: https://github.com/uvarov-frontend/vanilla-calendar-pro */\nvar __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,n)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,__spreadValues=(e,t)=>{for(var n in t||(t={}))__hasOwnProp.call(t,n)&&__defNormalProp(e,n,t[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(t))__propIsEnum.call(t,n)&&__defNormalProp(e,n,t[n]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t)),__publicField=(e,t,n)=>(__defNormalProp(e,\"symbol\"!=typeof t?t+\"\":t,n),n);const errorMessages={notFoundSelector:e=>`${e} is not found, check the first argument passed to new Calendar.`,notInit:'The calendar has not been initialized, please initialize it using the \"init()\" method first.',notLocale:\"You specified an incorrect language label or did not specify the required number of values for «locale.weekdays» or «locale.months».\",incorrectTime:\"The value of the time property can be: false, 12 or 24.\",incorrectMonthsCount:\"For the «multiple» calendar type, the «displayMonthsCount» parameter can have a value from 2 to 12, and for all others it cannot be greater than 1.\"},setContext=(e,t,n)=>{e.context[t]=n},destroy=e=>{var t,n,a,o,l;if(!e.context.isInit)throw new Error(errorMessages.notInit);e.inputMode?(null==(t=e.context.mainElement.parentElement)||t.removeChild(e.context.mainElement),null==(a=null==(n=e.context.inputElement)?void 0:n.replaceWith)||a.call(n,e.context.originalElement),setContext(e,\"inputElement\",void 0)):null==(l=(o=e.context.mainElement).replaceWith)||l.call(o,e.context.originalElement),setContext(e,\"mainElement\",e.context.originalElement),e.onDestroy&&e.onDestroy(e)},skipOpenOnFocus=new WeakSet,shouldSkipOpenOnFocus=e=>skipOpenOnFocus.has(e),setSkipOpenOnFocus=e=>{skipOpenOnFocus.add(e)},clearSkipOpenOnFocus=e=>{skipOpenOnFocus.delete(e)},PREV_TABINDEX_ATTR=\"data-vc-prev-tabindex\",isFocusable=e=>e.tabIndex>=0&&!e.hasAttribute(\"disabled\")&&\"true\"!==e.getAttribute(\"aria-disabled\"),storePrevTabIndex=e=>{if(e.hasAttribute(PREV_TABINDEX_ATTR))return;const t=e.getAttribute(\"tabindex\");e.setAttribute(PREV_TABINDEX_ATTR,null!=t?t:\"\")},restorePrevTabIndex=e=>{if(!e.hasAttribute(PREV_TABINDEX_ATTR))return;const t=e.getAttribute(PREV_TABINDEX_ATTR);\"\"===t||null===t?e.removeAttribute(\"tabindex\"):e.setAttribute(\"tabindex\",t),e.removeAttribute(PREV_TABINDEX_ATTR)},disableTabbing=e=>{isFocusable(e)&&(storePrevTabIndex(e),e.tabIndex=-1);const t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>isFocusable(e)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;t.nextNode();){const e=t.currentNode;storePrevTabIndex(e),e.tabIndex=-1}},restoreTabbing=e=>{restorePrevTabIndex(e),e.querySelectorAll(`[${PREV_TABINDEX_ATTR}]`).forEach(restorePrevTabIndex)},hide=e=>{if(e.context.isShowInInputMode&&e.context.currentType){if(e.context.mainElement.dataset.vcCalendarHidden=\"\",setContext(e,\"isShowInInputMode\",!1),e.inputMode&&disableTabbing(e.context.mainElement),e.context.cleanupHandlers[0]&&(e.context.cleanupHandlers.forEach((e=>e())),setContext(e,\"cleanupHandlers\",[])),e.inputMode&&e.context.inputElement&&e.context.mainElement.contains(document.activeElement)){(\"function\"==typeof e.openOnFocus||!0===e.openOnFocus)&&setSkipOpenOnFocus(e),e.context.inputElement.focus()}e.onHide&&e.onHide(e)}};function getOffset(e){if(!e||!e.getBoundingClientRect)return{top:0,bottom:0,left:0,right:0};const t=e.getBoundingClientRect(),n=document.documentElement;return{bottom:t.bottom,right:t.right,top:t.top+window.scrollY-n.clientTop,left:t.left+window.scrollX-n.clientLeft}}function getViewportDimensions(){return{vw:Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),vh:Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)}}function getWindowScrollPosition(){return{left:window.scrollX||document.documentElement.scrollLeft||0,top:window.scrollY||document.documentElement.scrollTop||0}}function calculateAvailableSpace(e){const{top:t,left:n}=getWindowScrollPosition(),{top:a,left:o}=getOffset(e),{vh:l,vw:s}=getViewportDimensions(),i=a-t,r=o-n;return{top:i,bottom:l-(i+e.clientHeight),left:r,right:s-(r+e.clientWidth)}}function getAvailablePosition(e,t,n=5){const a={top:!0,bottom:!0,left:!0,right:!0},o=[];if(!t||!e)return{canShow:a,parentPositions:o};const{bottom:l,top:s}=calculateAvailableSpace(e),{top:i,left:r}=getOffset(e),{height:c,width:d}=t.getBoundingClientRect(),{vh:u,vw:m}=getViewportDimensions(),p=m/2,h=u/2;return[{condition:i<h,position:\"top\"},{condition:i>h,position:\"bottom\"},{condition:r<p,position:\"left\"},{condition:r>p,position:\"right\"}].forEach((({condition:e,position:t})=>{e&&o.push(t)})),Object.assign(a,{top:c<=s-n,bottom:c<=l-n,left:d<=r,right:d<=m-r}),{canShow:a,parentPositions:o}}const handleDay=(e,t,n,a)=>{var o;const l=a.querySelector(`[data-vc-date=\"${t}\"]`),s=null==l?void 0:l.querySelector(\"[data-vc-date-btn]\");if(!l||!s)return;if((null==n?void 0:n.modifier)&&s.classList.add(...n.modifier.trim().split(\" \")),!(null==n?void 0:n.html))return;const i=document.createElement(\"div\");i.className=e.styles.datePopup,i.dataset.vcDatePopup=\"\",i.innerHTML=e.sanitizerHTML(n.html),s.ariaExpanded=\"true\",s.ariaLabel=`${s.ariaLabel}, ${null==(o=null==i?void 0:i.textContent)?void 0:o.replace(/^\\s+|\\s+(?=\\s)|\\s+$/g,\"\").replace(/ /g,\" \")}`,l.appendChild(i),requestAnimationFrame((()=>{if(!i)return;const{canShow:e}=getAvailablePosition(l,i),t=e.bottom?l.offsetHeight:-i.offsetHeight,n=e.left&&!e.right?l.offsetWidth-i.offsetWidth/2:!e.left&&e.right?i.offsetWidth/2:0;Object.assign(i.style,{left:`${n}px`,top:`${t}px`})}))},createDatePopup=(e,t)=>{var n;e.popups&&(null==(n=Object.entries(e.popups))||n.forEach((([n,a])=>handleDay(e,n,a,t))))},getDate=e=>new Date(`${e}T00:00:00`),getDateString=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,\"0\")}-${String(e.getDate()).padStart(2,\"0\")}`,parseDates=e=>e.reduce(((e,t)=>{if(t instanceof Date||\"number\"==typeof t){const n=t instanceof Date?t:new Date(t);e.push(n.toISOString().substring(0,10))}else t.match(/^(\\d{4}-\\d{2}-\\d{2})$/g)?e.push(t):t.replace(/(\\d{4}-\\d{2}-\\d{2}).*?(\\d{4}-\\d{2}-\\d{2})/g,((t,n,a)=>{const o=getDate(n),l=getDate(a),s=new Date(o.getTime());for(;s<=l;s.setDate(s.getDate()+1))e.push(getDateString(s));return t}));return e}),[]),updateAttribute=(e,t,n,a=\"\")=>{t?e.setAttribute(n,a):e.getAttribute(n)===a&&e.removeAttribute(n)},setDateModifier=(e,t,n,a,o,l,s)=>{var i,r,c,d;const u=getDate(e.context.displayDateMin)>getDate(l)||getDate(e.context.displayDateMax)<getDate(l)||(null==(i=e.context.disableDates)?void 0:i.includes(l))||!e.selectionMonthsMode&&\"current\"!==s||!e.selectionYearsMode&&getDate(l).getFullYear()!==t;updateAttribute(n,u,\"data-vc-date-disabled\"),a&&updateAttribute(a,u,\"aria-disabled\",\"true\"),a&&updateAttribute(a,u,\"tabindex\",\"-1\"),updateAttribute(n,!e.disableToday&&e.context.dateToday===l,\"data-vc-date-today\"),updateAttribute(n,!e.disableToday&&e.context.dateToday===l,\"aria-current\",\"date\"),updateAttribute(n,null==(r=e.selectedWeekends)?void 0:r.includes(o),\"data-vc-date-weekend\");const m=(null==(c=e.selectedHolidays)?void 0:c[0])?parseDates(e.selectedHolidays):[];if(updateAttribute(n,m.includes(l),\"data-vc-date-holiday\"),(null==(d=e.context.selectedDates)?void 0:d.includes(l))?(n.setAttribute(\"data-vc-date-selected\",\"\"),a&&a.setAttribute(\"aria-selected\",\"true\"),e.context.selectedDates.length>1&&\"multiple-ranged\"===e.selectionDatesMode&&(e.context.selectedDates[0]===l&&e.context.selectedDates[e.context.selectedDates.length-1]===l?n.setAttribute(\"data-vc-date-selected\",\"first-and-last\"):e.context.selectedDates[0]===l?n.setAttribute(\"data-vc-date-selected\",\"first\"):e.context.selectedDates[e.context.selectedDates.length-1]===l&&n.setAttribute(\"data-vc-date-selected\",\"last\"),e.context.selectedDates[0]!==l&&e.context.selectedDates[e.context.selectedDates.length-1]!==l&&n.setAttribute(\"data-vc-date-selected\",\"middle\"))):n.hasAttribute(\"data-vc-date-selected\")&&(n.removeAttribute(\"data-vc-date-selected\"),a&&a.removeAttribute(\"aria-selected\")),!e.context.disableDates.includes(l)&&e.enableEdgeDatesOnly&&e.context.selectedDates.length>1&&\"multiple-ranged\"===e.selectionDatesMode){const t=getDate(e.context.selectedDates[0]),a=getDate(e.context.selectedDates[e.context.selectedDates.length-1]),o=getDate(l);updateAttribute(n,o>t&&o<a,\"data-vc-date-selected\",\"middle\")}},getLocaleString=(e,t,n)=>new Date(`${e}T00:00:00.000Z`).toLocaleString(t,n),getWeekNumber=(e,t)=>{const n=getDate(e),a=(n.getDay()-t+7)%7;n.setDate(n.getDate()+4-a);const o=new Date(n.getFullYear(),0,1),l=Math.ceil(((+n-+o)/864e5+1)/7);return{year:n.getFullYear(),week:l}},addWeekNumberForDate=(e,t,n)=>{const a=getWeekNumber(n,e.firstWeekday);a&&(t.dataset.vcDateWeekNumber=String(a.week))},setDaysAsDisabled=(e,t,n)=>{var a,o,l,s,i;const r=null==(a=e.disableWeekdays)?void 0:a.includes(n),c=e.disableAllDates&&!!(null==(o=e.context.enableDates)?void 0:o[0]);!r&&!c||(null==(l=e.context.enableDates)?void 0:l.includes(t))||(null==(s=e.context.disableDates)?void 0:s.includes(t))||(e.context.disableDates.push(t),null==(i=e.context.disableDates)||i.sort(((e,t)=>+new Date(e)-+new Date(t))))},createDate=(e,t,n,a,o,l)=>{const s=getDate(o).getDay(),i=\"string\"==typeof e.locale&&e.locale.length?e.locale:\"en\",r=document.createElement(\"div\");let c;r.className=e.styles.date,r.dataset.vcDate=o,r.dataset.vcDateMonth=l,r.dataset.vcDateWeekDay=String(s),r.role=\"gridcell\",(\"current\"===l||e.displayDatesOutside)&&(c=document.createElement(\"button\"),c.className=e.styles.dateBtn,c.type=\"button\",c.ariaLabel=getLocaleString(o,i,{dateStyle:\"long\",timeZone:\"UTC\"}),c.dataset.vcDateBtn=\"\",c.innerText=String(a),r.appendChild(c)),e.enableWeekNumbers&&addWeekNumberForDate(e,r,o),setDaysAsDisabled(e,o,s),setDateModifier(e,t,r,c,s,o,l),n.addDate(r),e.onCreateDateEls&&e.onCreateDateEls(e,r)},createDatesFromCurrentMonth=(e,t,n,a,o)=>{for(let l=1;l<=n;l++){const n=new Date(a,o,l);createDate(e,a,t,l,getDateString(n),\"current\")}},createDatesFromNextMonth=(e,t,n,a,o)=>{const l=o+1===12?a+1:a,s=o+1===12?\"01\":o+2<10?`0${o+2}`:o+2;for(let o=1;o<=n;o++){const n=o<10?`0${o}`:String(o);createDate(e,a,t,o,`${l}-${s}-${n}`,\"next\")}},createDatesFromPrevMonth=(e,t,n,a,o)=>{let l=new Date(n,a,0).getDate()-(o-1);const s=0===a?n-1:n,i=0===a?12:a<10?`0${a}`:a;for(let a=o;a>0;a--,l++){createDate(e,n,t,l,`${s}-${i}-${l}`,\"prev\")}},createWeekNumbers=(e,t,n,a,o)=>{if(!e.enableWeekNumbers)return;a.textContent=\"\";const l=document.createElement(\"b\");l.className=e.styles.weekNumbersTitle,l.innerText=\"#\",l.dataset.vcWeekNumbers=\"title\",a.appendChild(l);const s=document.createElement(\"div\");s.className=e.styles.weekNumbersContent,s.dataset.vcWeekNumbers=\"content\",a.appendChild(s);const i=document.createElement(\"button\");i.type=\"button\",i.className=e.styles.weekNumber;const r=o.querySelectorAll(\"[data-vc-date]\"),c=Math.ceil((t+n)/7);for(let t=0;t<c;t++){const n=r[0===t?6:7*t].dataset.vcDate,a=getWeekNumber(n,e.firstWeekday);if(!a)return;const o=i.cloneNode(!0);o.innerText=String(a.week),o.dataset.vcWeekNumber=String(a.week),o.dataset.vcWeekYear=String(a.year),o.role=\"rowheader\",o.ariaLabel=`${a.week}`,s.appendChild(o)}},createDates=e=>{const t=new Date(e.context.selectedYear,e.context.selectedMonth,1),n=e.context.mainElement.querySelectorAll('[data-vc=\"dates\"]'),a=e.context.mainElement.querySelectorAll('[data-vc-week=\"numbers\"]');n.forEach(((n,o)=>{e.selectionDatesMode||(n.dataset.vcDatesDisabled=\"\"),n.textContent=\"\";const l=new Date(t);l.setMonth(l.getMonth()+o);const s=l.getMonth(),i=l.getFullYear(),r=(new Date(i,s,1).getDay()-e.firstWeekday+7)%7,c=new Date(i,s+1,0).getDate(),d=r+c,u=Math.ceil(d/7),m=7*u-d,p=[];for(let t=0;t<u;t++){const t=document.createElement(\"div\");t.className=e.styles.datesRow,t.setAttribute(\"data-vc-dates\",\"row\"),t.setAttribute(\"role\",\"row\"),p.push(t)}let h=0,v=0;const g={addDate:e=>{p[h].appendChild(e),v++,v>=7&&(h++,v=0)}};createDatesFromPrevMonth(e,g,i,s,r),createDatesFromCurrentMonth(e,g,c,i,s),createDatesFromNextMonth(e,g,m,i,s);for(const e of p)n.appendChild(e);createDatePopup(e,n),createWeekNumbers(e,r,c,a[o],n)}))},layoutDefault=e=>`\\n <div class=\"${e.styles.header}\" data-vc=\"header\" role=\"toolbar\" aria-label=\"${e.labels.navigation}\">\\n <#ArrowPrev [month] />\\n <div class=\"${e.styles.headerContent}\" data-vc-header=\"content\">\\n <#Month />\\n <#Year />\\n </div>\\n <#ArrowNext [month] />\\n </div>\\n <div class=\"${e.styles.wrapper}\" data-vc=\"wrapper\">\\n <#WeekNumbers />\\n <div class=\"${e.styles.content}\" data-vc=\"content\" role=\"grid\">\\n <#Week />\\n <#Dates />\\n <#DateRangeTooltip />\\n </div>\\n </div>\\n <#ControlTime />\\n`,layoutMonths=e=>`\\n <div class=\"${e.styles.header}\" data-vc=\"header\" role=\"toolbar\" aria-label=\"${e.labels.navigation}\">\\n <div class=\"${e.styles.headerContent}\" data-vc-header=\"content\">\\n <#Month />\\n <#Year />\\n </div>\\n </div>\\n <div class=\"${e.styles.wrapper}\" data-vc=\"wrapper\">\\n <div class=\"${e.styles.content}\" data-vc=\"content\">\\n <#Months />\\n </div>\\n </div>\\n`,layoutMultiple=e=>`\\n <div class=\"${e.styles.controls}\" data-vc=\"controls\" role=\"toolbar\" aria-label=\"${e.labels.navigation}\">\\n <#ArrowPrev [month] />\\n <#ArrowNext [month] />\\n </div>\\n <div class=\"${e.styles.grid}\" data-vc=\"grid\">\\n <#Multiple>\\n <div class=\"${e.styles.column}\" data-vc=\"column\" role=\"region\">\\n <div class=\"${e.styles.header}\" data-vc=\"header\">\\n <div class=\"${e.styles.headerContent}\" data-vc-header=\"content\">\\n <#Month />\\n <#Year />\\n </div>\\n </div>\\n <div class=\"${e.styles.wrapper}\" data-vc=\"wrapper\">\\n <#WeekNumbers />\\n <div class=\"${e.styles.content}\" data-vc=\"content\" role=\"grid\">\\n <#Week />\\n <#Dates />\\n </div>\\n </div>\\n </div>\\n <#/Multiple>\\n <#DateRangeTooltip />\\n </div>\\n <#ControlTime />\\n`,layoutYears=e=>`\\n <div class=\"${e.styles.header}\" data-vc=\"header\" role=\"toolbar\" aria-label=\"${e.labels.navigation}\">\\n <#ArrowPrev [year] />\\n <div class=\"${e.styles.headerContent}\" data-vc-header=\"content\">\\n <#Month />\\n <#Year />\\n </div>\\n <#ArrowNext [year] />\\n </div>\\n <div class=\"${e.styles.wrapper}\" data-vc=\"wrapper\">\\n <div class=\"${e.styles.content}\" data-vc=\"content\">\\n <#Years />\\n </div>\\n </div>\\n`,ArrowNext=(e,t)=>`<button type=\"button\" class=\"${e.styles.arrowNext}\" data-vc-arrow=\"next\" aria-label=\"${e.labels.arrowNext[t]}\"></button>`,ArrowPrev=(e,t)=>`<button type=\"button\" class=\"${e.styles.arrowPrev}\" data-vc-arrow=\"prev\" aria-label=\"${e.labels.arrowPrev[t]}\"></button>`,ControlTime=e=>e.selectionTimeMode?`<div class=\"${e.styles.time}\" data-vc=\"time\" role=\"group\" aria-label=\"${e.labels.selectingTime}\"></div>`:\"\",DateRangeTooltip=e=>e.onCreateDateRangeTooltip?`<div class=\"${e.styles.dateRangeTooltip}\" data-vc-date-range-tooltip=\"hidden\"></div>`:\"\",Dates=e=>`<div class=\"${e.styles.dates}\" data-vc=\"dates\" aria-live=\"assertive\" aria-label=\"${e.labels.dates}\" ${\"multiple\"===e.type?\"aria-multiselectable\":\"\"}></div>`,Month=e=>`<button type=\"button\" class=\"${e.styles.month}\" data-vc=\"month\"></button>`,Months=e=>`<div class=\"${e.styles.months}\" data-vc=\"months\" role=\"grid\" aria-live=\"assertive\" aria-label=\"${e.labels.months}\"></div>`,Week=e=>`<div class=\"${e.styles.week}\" data-vc=\"week\" role=\"row\" aria-label=\"${e.labels.week}\"></div>`,WeekNumbers=e=>e.enableWeekNumbers?`<div class=\"${e.styles.weekNumbers}\" data-vc-week=\"numbers\" role=\"row\" aria-label=\"${e.labels.weekNumber}\"></div>`:\"\",Year=e=>`<button type=\"button\" class=\"${e.styles.year}\" data-vc=\"year\"></button>`,Years=e=>`<div class=\"${e.styles.years}\" data-vc=\"years\" role=\"grid\" aria-live=\"assertive\" aria-label=\"${e.labels.years}\"></div>`,components={ArrowNext:ArrowNext,ArrowPrev:ArrowPrev,ControlTime:ControlTime,Dates:Dates,DateRangeTooltip:DateRangeTooltip,Month:Month,Months:Months,Week:Week,WeekNumbers:WeekNumbers,Year:Year,Years:Years},getComponent=e=>components[e],parseLayout=(e,t)=>t.replace(/[\\n\\t]/g,\"\").replace(/<#(?!\\/?Multiple)(.*?)>/g,((t,n)=>{const a=(n.match(/\\[(.*?)\\]/)||[])[1],o=n.replace(/[/\\s\\n\\t]|\\[(.*?)\\]/g,\"\"),l=getComponent(o),s=l?l(e,null!=a?a:null):\"\";return e.sanitizerHTML(s)})).replace(/[\\n\\t]/g,\"\"),parseMultipleLayout=(e,t)=>t.replace(new RegExp(\"<#Multiple>(.*?)<#\\\\/Multiple>\",\"gs\"),((t,n)=>{const a=Array(e.context.displayMonthsCount).fill(n).join(\"\");return e.sanitizerHTML(a)})).replace(/[\\n\\t]/g,\"\"),createLayouts=(e,t)=>{const n={default:layoutDefault,month:layoutMonths,year:layoutYears,multiple:layoutMultiple};if(Object.keys(n).forEach((t=>{const a=t;e.layouts[a].length||(e.layouts[a]=n[a](e))})),e.context.mainElement.className=e.styles.calendar,e.context.mainElement.dataset.vc=\"calendar\",e.context.mainElement.dataset.vcType=e.context.currentType,e.context.mainElement.role=\"application\",e.context.mainElement.tabIndex=0,e.context.mainElement.ariaLabel=e.labels.application,\"multiple\"!==e.context.currentType){if(\"multiple\"===e.type&&t){const n=e.context.mainElement.querySelector('[data-vc=\"controls\"]'),a=e.context.mainElement.querySelector('[data-vc=\"grid\"]'),o=t.closest('[data-vc=\"column\"]');return n&&n.remove(),a&&(a.dataset.vcGrid=\"hidden\"),o&&(o.dataset.vcColumn=e.context.currentType),void(o&&(o.innerHTML=e.sanitizerHTML(parseLayout(e,e.layouts[e.context.currentType]))))}e.context.mainElement.innerHTML=e.sanitizerHTML(parseLayout(e,e.layouts[e.context.currentType]))}else e.context.mainElement.innerHTML=e.sanitizerHTML(parseMultipleLayout(e,parseLayout(e,e.layouts[e.context.currentType])))},setVisibilityArrows=(e,t,n,a)=>{e.style.visibility=n?\"hidden\":\"\",t.style.visibility=a?\"hidden\":\"\"},handleDefaultType=(e,t,n)=>{const a=getDate(getDateString(new Date(e.context.selectedYear,e.context.selectedMonth,1))),o=new Date(a.getTime()),l=new Date(a.getTime());o.setMonth(o.getMonth()-e.monthsToSwitch),l.setMonth(l.getMonth()+e.monthsToSwitch);const s=getDate(e.context.dateMin),i=getDate(e.context.dateMax);e.selectionYearsMode||(s.setFullYear(a.getFullYear()),i.setFullYear(a.getFullYear()));const r=!e.selectionMonthsMode||o.getFullYear()<s.getFullYear()||o.getFullYear()===s.getFullYear()&&o.getMonth()<s.getMonth(),c=!e.selectionMonthsMode||l.getFullYear()>i.getFullYear()||l.getFullYear()===i.getFullYear()&&l.getMonth()>i.getMonth()-(e.context.displayMonthsCount-1);setVisibilityArrows(t,n,r,c)},handleYearType=(e,t,n)=>{const a=getDate(e.context.dateMin),o=getDate(e.context.dateMax),l=!!(a.getFullYear()&&e.context.displayYear-7<=a.getFullYear()),s=!!(o.getFullYear()&&e.context.displayYear+7>=o.getFullYear());setVisibilityArrows(t,n,l,s)},visibilityArrows=e=>{if(\"month\"===e.context.currentType)return;const t=e.context.mainElement.querySelector('[data-vc-arrow=\"prev\"]'),n=e.context.mainElement.querySelector('[data-vc-arrow=\"next\"]');if(!t||!n)return;({default:()=>handleDefaultType(e,t,n),year:()=>handleYearType(e,t,n)})[\"multiple\"===e.context.currentType?\"default\":e.context.currentType]()},visibilityHandler=(e,t,n,a,o)=>{const l=new Date(a.setFullYear(e.context.selectedYear,e.context.selectedMonth+n)).getFullYear(),s=new Date(a.setMonth(e.context.selectedMonth+n)).getMonth(),i=e.context.locale.months.long[s],r=t.closest('[data-vc=\"column\"]');r&&(r.ariaLabel=`${i} ${l}`);const c={month:{id:s,label:i},year:{id:l,label:l}};t.innerText=String(c[o].label),t.dataset[`vc${o.charAt(0).toUpperCase()+o.slice(1)}`]=String(c[o].id),t.ariaLabel=`${e.labels[o]} ${c[o].label}`;const d={month:e.selectionMonthsMode,year:e.selectionYearsMode},u=!1===d[o]||\"only-arrows\"===d[o];u&&(t.tabIndex=-1),t.disabled=u},visibilityTitle=e=>{const t=e.context.mainElement.querySelectorAll('[data-vc=\"month\"]'),n=e.context.mainElement.querySelectorAll('[data-vc=\"year\"]'),a=new Date(e.context.selectedYear,e.context.selectedMonth,1);[t,n].forEach((t=>null==t?void 0:t.forEach(((t,n)=>visibilityHandler(e,t,n,a,t.dataset.vc)))))},setYearModifier=(e,t,n,a,o)=>{var l;const s={month:\"[data-vc-months-month]\",year:\"[data-vc-years-year]\"},i={month:{selected:\"data-vc-months-month-selected\",aria:\"aria-selected\",value:\"vcMonthsMonth\",selectedProperty:\"selectedMonth\"},year:{selected:\"data-vc-years-year-selected\",aria:\"aria-selected\",value:\"vcYearsYear\",selectedProperty:\"selectedYear\"}};o&&(null==(l=e.context.mainElement.querySelectorAll(s[n]))||l.forEach((e=>{e.removeAttribute(i[n].selected),e.removeAttribute(i[n].aria)})),setContext(e,i[n].selectedProperty,Number(t.dataset[i[n].value])),visibilityTitle(e),\"year\"===n&&visibilityArrows(e)),a&&(t.setAttribute(i[n].selected,\"\"),t.setAttribute(i[n].aria,\"true\"))},getColumnID=(e,t)=>{var n;if(\"multiple\"!==e.type)return{currentValue:null,columnID:0};const a=e.context.mainElement.querySelectorAll('[data-vc=\"column\"]'),o=Array.from(a).findIndex((e=>e.closest(`[data-vc-column=\"${t}\"]`)));return{currentValue:o>=0?Number(null==(n=a[o].querySelector(`[data-vc=\"${t}\"]`))?void 0:n.getAttribute(`data-vc-${t}`)):null,columnID:Math.max(o,0)}},createMonthEl=(e,t,n,a,o,l,s)=>{const i=t.cloneNode(!1);return i.className=e.styles.monthsMonth,i.innerText=a,i.ariaLabel=o,i.role=\"gridcell\",i.dataset.vcMonthsMonth=`${s}`,l&&(i.ariaDisabled=\"true\"),l&&(i.tabIndex=-1),i.disabled=l,setYearModifier(e,i,\"month\",n===s,!1),i},createMonths=(e,t)=>{var n,a;const o=null==(n=null==t?void 0:t.closest('[data-vc=\"header\"]'))?void 0:n.querySelector('[data-vc=\"year\"]'),l=o?Number(o.dataset.vcYear):e.context.selectedYear,s=(null==t?void 0:t.dataset.vcMonth)?Number(t.dataset.vcMonth):e.context.selectedMonth;setContext(e,\"currentType\",\"month\"),createLayouts(e,t),visibilityTitle(e);const i=e.context.mainElement.querySelector('[data-vc=\"months\"]');if(!e.selectionMonthsMode||!i)return;const r=e.monthsToSwitch>1?e.context.locale.months.long.map(((t,n)=>s-e.monthsToSwitch*n)).concat(e.context.locale.months.long.map(((t,n)=>s+e.monthsToSwitch*n))).filter((e=>e>=0&&e<=12)):Array.from(Array(12).keys()),c=document.createElement(\"button\");c.type=\"button\";for(let t=0;t<12;t++){const n=getDate(e.context.dateMin),a=getDate(e.context.dateMax),o=e.context.displayMonthsCount-1,{columnID:d}=getColumnID(e,\"month\"),u=l<=n.getFullYear()&&t<n.getMonth()+d||l>=a.getFullYear()&&t>a.getMonth()-o+d||l>a.getFullYear()||t!==s&&!r.includes(t),m=createMonthEl(e,c,s,e.context.locale.months.short[t],e.context.locale.months.long[t],u,t);i.appendChild(m),e.onCreateMonthEls&&e.onCreateMonthEls(e,m)}null==(a=e.context.mainElement.querySelector(\"[data-vc-months-month]:not([disabled])\"))||a.focus()},TimeInput=(e,t,n,a,o)=>`\\n <label class=\"${t}\" data-vc-time-input=\"${e}\">\\n <input type=\"text\" name=\"${e}\" maxlength=\"2\" aria-label=\"${n[`input${e.charAt(0).toUpperCase()+e.slice(1)}`]}\" value=\"${a}\" ${o?\"disabled\":\"\"}>\\n </label>\\n`,TimeRange=(e,t,n,a,o,l,s)=>`\\n <label class=\"${t}\" data-vc-time-range=\"${e}\">\\n <input type=\"range\" name=\"${e}\" min=\"${a}\" max=\"${o}\" step=\"${l}\" aria-label=\"${n[`range${e.charAt(0).toUpperCase()+e.slice(1)}`]}\" value=\"${s}\">\\n </label>\\n`,handleActions=(e,t,n,a)=>{({hour:()=>setContext(e,\"selectedHours\",n),minute:()=>setContext(e,\"selectedMinutes\",n)})[a](),setContext(e,\"selectedTime\",`${e.context.selectedHours}:${e.context.selectedMinutes}${e.context.selectedKeeping?` ${e.context.selectedKeeping}`:\"\"}`),e.onChangeTime&&e.onChangeTime(e,t,!1),e.inputMode&&e.context.inputElement&&e.context.mainElement&&e.onChangeToInput&&e.onChangeToInput(e,t)},transformTime24=(e,t)=>{var n;return(null==(n={0:{AM:\"00\",PM:\"12\"},1:{AM:\"01\",PM:\"13\"},2:{AM:\"02\",PM:\"14\"},3:{AM:\"03\",PM:\"15\"},4:{AM:\"04\",PM:\"16\"},5:{AM:\"05\",PM:\"17\"},6:{AM:\"06\",PM:\"18\"},7:{AM:\"07\",PM:\"19\"},8:{AM:\"08\",PM:\"20\"},9:{AM:\"09\",PM:\"21\"},10:{AM:\"10\",PM:\"22\"},11:{AM:\"11\",PM:\"23\"},12:{AM:\"00\",PM:\"12\"}}[Number(e)])?void 0:n[t])||String(e)},handleClickKeepingTime=(e,t,n,a,o)=>{const l=l=>{const s=\"AM\"===e.context.selectedKeeping?\"PM\":\"AM\",i=transformTime24(e.context.selectedHours,s);Number(i)<=a&&Number(i)>=o?(setContext(e,\"selectedKeeping\",s),n.value=i,handleActions(e,l,e.context.selectedHours,\"hour\"),t.ariaLabel=`${e.labels.btnKeeping} ${e.context.selectedKeeping}`,t.innerText=e.context.selectedKeeping):e.onChangeTime&&e.onChangeTime(e,l,!0)};return t.addEventListener(\"click\",l),()=>{t.removeEventListener(\"click\",l)}},transformTime12=e=>({0:\"12\",13:\"01\",14:\"02\",15:\"03\",16:\"04\",17:\"05\",18:\"06\",19:\"07\",20:\"08\",21:\"09\",22:\"10\",23:\"11\"}[Number(e)]||String(e)),updateInputAndRange=(e,t,n,a)=>{e.value=n,t.value=a},updateKeepingTime$1=(e,t,n)=>{t&&n&&(setContext(e,\"selectedKeeping\",n),t.innerText=n)},handleInput$1=(e,t,n,a,o,l,s)=>{const i={hour:(i,r,c)=>{if(!e.selectionTimeMode)return;({12:()=>{if(!e.context.selectedKeeping)return;const d=Number(transformTime24(r,e.context.selectedKeeping));if(!(d<=l&&d>=s))return updateInputAndRange(n,t,e.context.selectedHours,e.context.selectedHours),void(e.onChangeTime&&e.onChangeTime(e,c,!0));updateInputAndRange(n,t,transformTime12(r),transformTime24(r,e.context.selectedKeeping)),i>12&&updateKeepingTime$1(e,a,\"PM\"),handleActions(e,c,transformTime12(r),o)},24:()=>{if(!(i<=l&&i>=s))return updateInputAndRange(n,t,e.context.selectedHours,e.context.selectedHours),void(e.onChangeTime&&e.onChangeTime(e,c,!0));updateInputAndRange(n,t,r,r),handleActions(e,c,r,o)}})[e.selectionTimeMode]()},minute:(a,i,r)=>{if(!(a<=l&&a>=s))return n.value=e.context.selectedMinutes,void(e.onChangeTime&&e.onChangeTime(e,r,!0));n.value=i,t.value=i,handleActions(e,r,i,o)}},r=e=>{const t=Number(n.value),a=n.value.padStart(2,\"0\");i[o]&&i[o](t,a,e)};return n.addEventListener(\"change\",r),()=>{n.removeEventListener(\"change\",r)}},updateInputAndTime=(e,t,n,a,o)=>{t.value=o,handleActions(e,n,o,a)},updateKeepingTime=(e,t,n)=>{t&&(setContext(e,\"selectedKeeping\",n),t.innerText=n)},handleRange=(e,t,n,a,o)=>{const l=l=>{const s=Number(t.value),i=t.value.padStart(2,\"0\"),r=\"hour\"===o,c=24===e.selectionTimeMode,d=s>0&&s<12;r&&!c&&updateKeepingTime(e,a,0===s||d?\"AM\":\"PM\"),updateInputAndTime(e,n,l,o,!r||c||d?i:transformTime12(t.value))};return t.addEventListener(\"input\",l),()=>{t.removeEventListener(\"input\",l)}},handleMouseOver=e=>e.setAttribute(\"data-vc-input-focus\",\"\"),handleMouseOut=e=>e.removeAttribute(\"data-vc-input-focus\"),handleTime=(e,t)=>{const n=t.querySelector('[data-vc-time-range=\"hour\"] input[name=\"hour\"]'),a=t.querySelector('[data-vc-time-range=\"minute\"] input[name=\"minute\"]'),o=t.querySelector('[data-vc-time-input=\"hour\"] input[name=\"hour\"]'),l=t.querySelector('[data-vc-time-input=\"minute\"] input[name=\"minute\"]'),s=t.querySelector('[data-vc-time=\"keeping\"]');if(!(n&&a&&o&&l))return;const i=e=>{e.target===n&&handleMouseOver(o),e.target===a&&handleMouseOver(l)},r=e=>{e.target===n&&handleMouseOut(o),e.target===a&&handleMouseOut(l)};return t.addEventListener(\"mouseover\",i),t.addEventListener(\"mouseout\",r),handleInput$1(e,n,o,s,\"hour\",e.timeMaxHour,e.timeMinHour),handleInput$1(e,a,l,s,\"minute\",e.timeMaxMinute,e.timeMinMinute),handleRange(e,n,o,s,\"hour\"),handleRange(e,a,l,s,\"minute\"),s&&handleClickKeepingTime(e,s,n,e.timeMaxHour,e.timeMinHour),()=>{t.removeEventListener(\"mouseover\",i),t.removeEventListener(\"mouseout\",r)}},createTime=e=>{const t=e.context.mainElement.querySelector('[data-vc=\"time\"]');if(!e.selectionTimeMode||!t)return;const[n,a]=[e.timeMinHour,e.timeMaxHour],[o,l]=[e.timeMinMinute,e.timeMaxMinute],s=e.context.selectedKeeping?transformTime24(e.context.selectedHours,e.context.selectedKeeping):e.context.selectedHours,i=\"range\"===e.timeControls;var r;t.innerHTML=e.sanitizerHTML(`\\n <div class=\"${e.styles.timeContent}\" data-vc-time=\"content\">\\n ${TimeInput(\"hour\",e.styles.timeHour,e.labels,e.context.selectedHours,i)}\\n ${TimeInput(\"minute\",e.styles.timeMinute,e.labels,e.context.selectedMinutes,i)}\\n ${12===e.selectionTimeMode?(r=e.context.selectedKeeping,`<button type=\"button\" class=\"${e.styles.timeKeeping}\" aria-label=\"${e.labels.btnKeeping} ${r}\" data-vc-time=\"keeping\" ${i?\"disabled\":\"\"}>${r}</button>`):\"\"}\\n </div>\\n <div class=\"${e.styles.timeRanges}\" data-vc-time=\"ranges\">\\n ${TimeRange(\"hour\",e.styles.timeRange,e.labels,n,a,e.timeStepHour,s)}\\n ${TimeRange(\"minute\",e.styles.timeRange,e.labels,o,l,e.timeStepMinute,e.context.selectedMinutes)}\\n </div>\\n `),handleTime(e,t)},createWeek=e=>{const t=e.selectedWeekends?[...e.selectedWeekends]:[],n=[...e.context.locale.weekdays.long].reduce(((n,a,o)=>[...n,{id:o,titleShort:e.context.locale.weekdays.short[o],titleLong:a,isWeekend:t.includes(o)}]),[]),a=[...n.slice(e.firstWeekday),...n.slice(0,e.firstWeekday)];e.context.mainElement.querySelectorAll('[data-vc=\"week\"]').forEach((t=>{const n=e.onClickWeekDay?document.createElement(\"button\"):document.createElement(\"b\");e.onClickWeekDay&&(n.type=\"button\"),a.forEach((a=>{const o=n.cloneNode(!0);o.innerText=a.titleShort,o.className=e.styles.weekDay,o.role=\"columnheader\",o.ariaLabel=a.titleLong,o.dataset.vcWeekDay=String(a.id),a.isWeekend&&(o.dataset.vcWeekDayOff=\"\"),t.appendChild(o)}))}))},createYearEl=(e,t,n,a,o)=>{const l=t.cloneNode(!1);return l.className=e.styles.yearsYear,l.innerText=String(o),l.ariaLabel=String(o),l.role=\"gridcell\",l.dataset.vcYearsYear=`${o}`,a&&(l.ariaDisabled=\"true\"),a&&(l.tabIndex=-1),l.disabled=a,setYearModifier(e,l,\"year\",n===o,!1),l},createYears=(e,t)=>{var n;const a=(null==t?void 0:t.dataset.vcYear)?Number(t.dataset.vcYear):e.context.selectedYear;setContext(e,\"currentType\",\"year\"),createLayouts(e,t),visibilityTitle(e),visibilityArrows(e);const o=e.context.mainElement.querySelector('[data-vc=\"years\"]');if(!e.selectionYearsMode||!o)return;const l=\"multiple\"!==e.type||e.context.selectedYear===a?0:1,s=document.createElement(\"button\");s.type=\"button\";for(let t=e.context.displayYear-7;t<e.context.displayYear+8;t++){const n=t<getDate(e.context.dateMin).getFullYear()+l||t>getDate(e.context.dateMax).getFullYear(),i=createYearEl(e,s,a,n,t);o.appendChild(i),e.onCreateYearEls&&e.onCreateYearEls(e,i)}null==(n=e.context.mainElement.querySelector(\"[data-vc-years-year]:not([disabled])\"))||n.focus()},trackChangesHTMLElement=(e,t,n)=>{new MutationObserver((e=>{for(let a=0;a<e.length;a++){if(e[a].attributeName===t){n();break}}})).observe(e,{attributes:!0})},haveListener={value:!1,set:()=>haveListener.value=!0,check:()=>haveListener.value},setTheme=(e,t)=>e.dataset.vcTheme=t,trackChangesThemeInSystemSettings=(e,t)=>{if(setTheme(e.context.mainElement,t.matches?\"dark\":\"light\"),\"system\"!==e.selectedTheme||haveListener.check())return;const n=e=>{const t=document.querySelectorAll('[data-vc=\"calendar\"]');null==t||t.forEach((t=>setTheme(t,e.matches?\"dark\":\"light\")))};t.addEventListener?t.addEventListener(\"change\",n):t.addListener(n),haveListener.set()},detectTheme=(e,t)=>{const n=e.themeAttrDetect.length?document.querySelector(e.themeAttrDetect):null,a=e.themeAttrDetect.replace(/^.*\\[(.+)\\]/g,((e,t)=>t));if(!n||\"system\"===n.getAttribute(a))return void trackChangesThemeInSystemSettings(e,t);const o=n.getAttribute(a);o?(setTheme(e.context.mainElement,o),trackChangesHTMLElement(n,a,(()=>{const t=n.getAttribute(a);t&&setTheme(e.context.mainElement,t)}))):trackChangesThemeInSystemSettings(e,t)},handleTheme=e=>{\"not all\"!==window.matchMedia(\"(prefers-color-scheme)\").media?\"system\"===e.selectedTheme?detectTheme(e,window.matchMedia(\"(prefers-color-scheme: dark)\")):setTheme(e.context.mainElement,e.selectedTheme):setTheme(e.context.mainElement,\"light\")},capitalizeFirstLetter=e=>e.charAt(0).toUpperCase()+e.slice(1).replace(/\\./,\"\"),getLocaleWeekday=(e,t,n)=>{const a=new Date(`1978-01-0${t+1}T00:00:00.000Z`),o=a.toLocaleString(n,{weekday:\"short\",timeZone:\"UTC\"}),l=a.toLocaleString(n,{weekday:\"long\",timeZone:\"UTC\"});e.context.locale.weekdays.short.push(capitalizeFirstLetter(o)),e.context.locale.weekdays.long.push(capitalizeFirstLetter(l))},getLocaleMonth=(e,t,n)=>{const a=new Date(`1978-${String(t+1).padStart(2,\"0\")}-01T00:00:00.000Z`),o=a.toLocaleString(n,{month:\"short\",timeZone:\"UTC\"}),l=a.toLocaleString(n,{month:\"long\",timeZone:\"UTC\"});e.context.locale.months.short.push(capitalizeFirstLetter(o)),e.context.locale.months.long.push(capitalizeFirstLetter(l))},getLocale=e=>{var t,n,a,o,l,s,i,r;if(!(e.context.locale.weekdays.short[6]&&e.context.locale.weekdays.long[6]&&e.context.locale.months.short[11]&&e.context.locale.months.long[11]))if(\"string\"==typeof e.locale){if(\"string\"==typeof e.locale&&!e.locale.length)throw new Error(errorMessages.notLocale);Array.from({length:7},((t,n)=>getLocaleWeekday(e,n,e.locale))),Array.from({length:12},((t,n)=>getLocaleMonth(e,n,e.locale)))}else{if(!((null==(n=null==(t=e.locale)?void 0:t.weekdays)?void 0:n.short[6])&&(null==(o=null==(a=e.locale)?void 0:a.weekdays)?void 0:o.long[6])&&(null==(s=null==(l=e.locale)?void 0:l.months)?void 0:s.short[11])&&(null==(r=null==(i=e.locale)?void 0:i.months)?void 0:r.long[11])))throw new Error(errorMessages.notLocale);setContext(e,\"locale\",__spreadValues({},e.locale))}},create=e=>{const t={default:()=>{createWeek(e),createDates(e)},multiple:()=>{createWeek(e),createDates(e)},month:()=>createMonths(e),year:()=>createYears(e)};handleTheme(e),getLocale(e),createLayouts(e),visibilityTitle(e),visibilityArrows(e),createTime(e),t[e.context.currentType]()},handleArrowKeys=e=>{const t=t=>{var n;const a=t.target;if(![\"ArrowUp\",\"ArrowDown\",\"ArrowLeft\",\"ArrowRight\"].includes(t.key)||\"button\"!==a.localName)return;const o=Array.from(e.context.mainElement.querySelectorAll('[data-vc=\"calendar\"] button')),l=o.indexOf(a);if(-1===l)return;const s=(i=o[l]).hasAttribute(\"data-vc-date-btn\")?7:i.hasAttribute(\"data-vc-months-month\")?4:i.hasAttribute(\"data-vc-years-year\")?5:1;var i;const r=(0,{ArrowUp:()=>Math.max(0,l-s),ArrowDown:()=>Math.min(o.length-1,l+s),ArrowLeft:()=>Math.max(0,l-1),ArrowRight:()=>Math.min(o.length-1,l+1)}[t.key])();null==(n=o[r])||n.focus()};return e.context.mainElement.addEventListener(\"keydown\",t),()=>e.context.mainElement.removeEventListener(\"keydown\",t)},handleMonth=(e,t)=>{const n=getDate(getDateString(new Date(e.context.selectedYear,e.context.selectedMonth,1)));({prev:()=>n.setMonth(n.getMonth()-e.monthsToSwitch),next:()=>n.setMonth(n.getMonth()+e.monthsToSwitch)})[t](),setContext(e,\"selectedMonth\",n.getMonth()),setContext(e,\"selectedYear\",n.getFullYear()),visibilityTitle(e),visibilityArrows(e),createDates(e)},handleClickArrow=(e,t)=>{const n=t.target.closest(\"[data-vc-arrow]\");if(n){if([\"default\",\"multiple\"].includes(e.context.currentType))handleMonth(e,n.dataset.vcArrow);else if(\"year\"===e.context.currentType&&void 0!==e.context.displayYear){const a={prev:-15,next:15}[n.dataset.vcArrow];setContext(e,\"displayYear\",e.context.displayYear+a),createYears(e,t.target)}e.onClickArrow&&e.onClickArrow(e,t)}},resolveToggle=(e,t)=>void 0===t||(\"function\"==typeof t?t(e):t),canToggleSelection=e=>resolveToggle(e,e.enableDateToggle),handleSelectDate=(e,t,n)=>{const a=t.dataset.vcDate,o=t.closest(\"[data-vc-date][data-vc-date-selected]\"),l=canToggleSelection(e);if(o&&!l)return;const s=o?e.context.selectedDates.filter((e=>e!==a)):n?[...e.context.selectedDates,a]:[a];setContext(e,\"selectedDates\",s)},createDateRangeTooltip=(e,t,n)=>{if(!t)return;if(!n)return t.dataset.vcDateRangeTooltip=\"hidden\",void(t.textContent=\"\");const a=e.context.mainElement.getBoundingClientRect(),o=n.getBoundingClientRect();t.style.left=o.left-a.left+o.width/2+\"px\",t.style.top=o.bottom-a.top-o.height+\"px\",t.dataset.vcDateRangeTooltip=\"visible\",t.innerHTML=e.sanitizerHTML(e.onCreateDateRangeTooltip(e,n,t,o,a))},state={self:null,lastDateEl:null,isHovering:!1,rangeMin:void 0,rangeMax:void 0,tooltipEl:null,timeoutId:null},addHoverEffect=(e,t,n)=>{var a,o,l;if(!(null==(o=null==(a=state.self)?void 0:a.context)?void 0:o.selectedDates[0]))return;const s=getDateString(e);(null==(l=state.self.context.disableDates)?void 0:l.includes(s))||(state.self.context.mainElement.querySelectorAll(`[data-vc-date=\"${s}\"]`).forEach((e=>e.dataset.vcDateHover=\"\")),t.forEach((e=>e.dataset.vcDateHover=\"first\")),n.forEach((e=>{\"first\"===e.dataset.vcDateHover?e.dataset.vcDateHover=\"first-and-last\":e.dataset.vcDateHover=\"last\"})))},removeHoverEffect=()=>{var e,t;if(!(null==(t=null==(e=state.self)?void 0:e.context)?void 0:t.mainElement))return;state.self.context.mainElement.querySelectorAll(\"[data-vc-date-hover]\").forEach((e=>e.removeAttribute(\"data-vc-date-hover\")))},handleHoverDatesEvent=e=>{var t,n;if(!e||!(null==(n=null==(t=state.self)?void 0:t.context)?void 0:n.selectedDates[0]))return;if(!e.closest('[data-vc=\"dates\"]'))return state.lastDateEl=null,createDateRangeTooltip(state.self,state.tooltipEl,null),void removeHoverEffect();const a=e.closest(\"[data-vc-date]\");if(!a||state.lastDateEl===a)return;state.lastDateEl=a,createDateRangeTooltip(state.self,state.tooltipEl,a),removeHoverEffect();const o=a.dataset.vcDate,l=getDate(state.self.context.selectedDates[0]),s=getDate(o),i=state.self.context.mainElement.querySelectorAll(`[data-vc-date=\"${state.self.context.selectedDates[0]}\"]`),r=state.self.context.mainElement.querySelectorAll(`[data-vc-date=\"${o}\"]`),[c,d]=l<s?[i,r]:[r,i],[u,m]=l<s?[l,s]:[s,l];for(let e=new Date(u);e<=m;e.setDate(e.getDate()+1))addHoverEffect(e,c,d)},handleHoverSelectedDatesRangeEvent=e=>{const t=null==e?void 0:e.closest(\"[data-vc-date-selected]\");if(!t&&state.lastDateEl)return state.lastDateEl=null,void createDateRangeTooltip(state.self,state.tooltipEl,null);t&&state.lastDateEl!==t&&(state.lastDateEl=t,createDateRangeTooltip(state.self,state.tooltipEl,t))},optimizedHoverHandler=e=>t=>{const n=t.target;state.isHovering||(state.isHovering=!0,requestAnimationFrame((()=>{e(n),state.isHovering=!1})))},optimizedHandleHoverDatesEvent=optimizedHoverHandler(handleHoverDatesEvent),optimizedHandleHoverSelectedDatesRangeEvent=optimizedHoverHandler(handleHoverSelectedDatesRangeEvent),handleCancelSelectionDates=e=>{state.self&&\"Escape\"===e.key&&(state.lastDateEl=null,setContext(state.self,\"selectedDates\",[]),state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverDatesEvent),state.self.context.mainElement.removeEventListener(\"keydown\",handleCancelSelectionDates),createDateRangeTooltip(state.self,state.tooltipEl,null),removeHoverEffect())},handleMouseLeave=()=>{null!==state.timeoutId&&clearTimeout(state.timeoutId),state.timeoutId=setTimeout((()=>{state.lastDateEl=null,createDateRangeTooltip(state.self,state.tooltipEl,null),removeHoverEffect()}),50)},updateDisabledDates=()=>{var e,t,n,a;if(!(null==(n=null==(t=null==(e=state.self)?void 0:e.context)?void 0:t.selectedDates)?void 0:n[0])||!(null==(a=state.self.context.disableDates)?void 0:a[0]))return;const o=getDate(state.self.context.selectedDates[0]),[l,s]=state.self.context.disableDates.map((e=>getDate(e))).reduce((([e,t],n)=>[o>=n?n:e,o<n&&null===t?n:t]),[null,null]);l&&setContext(state.self,\"displayDateMin\",getDateString(new Date(l.setDate(l.getDate()+1)))),s&&setContext(state.self,\"displayDateMax\",getDateString(new Date(s.setDate(s.getDate()-1))));state.self.disableDatesPast&&!state.self.disableAllDates&&getDate(state.self.context.displayDateMin)<getDate(state.self.context.dateToday)&&setContext(state.self,\"displayDateMin\",state.self.context.dateToday)},handleSelectDateRange=(e,t)=>{state.self=e,state.lastDateEl=t,removeHoverEffect(),e.disableDatesGaps&&(state.rangeMin=state.rangeMin?state.rangeMin:e.context.displayDateMin,state.rangeMax=state.rangeMax?state.rangeMax:e.context.displayDateMax),e.onCreateDateRangeTooltip&&(state.tooltipEl=e.context.mainElement.querySelector(\"[data-vc-date-range-tooltip]\"));const n=null==t?void 0:t.dataset.vcDate;if(n){const t=1===e.context.selectedDates.length&&e.context.selectedDates[0].includes(n),a=t&&!canToggleSelection(e)?[n,n]:t&&canToggleSelection(e)?[]:e.context.selectedDates.length>1?[n]:[...e.context.selectedDates,n];setContext(e,\"selectedDates\",a),e.context.selectedDates.length>1&&e.context.selectedDates.sort(((e,t)=>+new Date(e)-+new Date(t)))}({set:()=>(e.disableDatesGaps&&updateDisabledDates(),createDateRangeTooltip(state.self,state.tooltipEl,t),state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave),state.self.context.mainElement.removeEventListener(\"keydown\",handleCancelSelectionDates),state.self.context.mainElement.addEventListener(\"mousemove\",optimizedHandleHoverDatesEvent),state.self.context.mainElement.addEventListener(\"mouseleave\",handleMouseLeave),state.self.context.mainElement.addEventListener(\"keydown\",handleCancelSelectionDates),()=>{state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverDatesEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave),state.self.context.mainElement.removeEventListener(\"keydown\",handleCancelSelectionDates)}),reset:()=>{const[n,a]=[e.context.selectedDates[0],e.context.selectedDates[e.context.selectedDates.length-1]],o=e.context.selectedDates[0]!==e.context.selectedDates[e.context.selectedDates.length-1],l=parseDates([`${n}:${a}`]).filter((t=>!e.context.disableDates.includes(t))),s=o?e.enableEdgeDatesOnly?[n,a]:l:[e.context.selectedDates[0],e.context.selectedDates[0]];if(setContext(e,\"selectedDates\",s),e.disableDatesGaps&&(setContext(e,\"displayDateMin\",state.rangeMin),setContext(e,\"displayDateMax\",state.rangeMax)),state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverDatesEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave),state.self.context.mainElement.removeEventListener(\"keydown\",handleCancelSelectionDates),e.onCreateDateRangeTooltip)return e.context.selectedDates[0]||(state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave),createDateRangeTooltip(state.self,state.tooltipEl,null)),e.context.selectedDates[0]&&(state.self.context.mainElement.addEventListener(\"mousemove\",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.addEventListener(\"mouseleave\",handleMouseLeave),createDateRangeTooltip(state.self,state.tooltipEl,t)),()=>{state.self.context.mainElement.removeEventListener(\"mousemove\",optimizedHandleHoverSelectedDatesRangeEvent),state.self.context.mainElement.removeEventListener(\"mouseleave\",handleMouseLeave)}}})[1===e.context.selectedDates.length?\"set\":\"reset\"]()},updateDateModifier=e=>{e.context.mainElement.querySelectorAll(\"[data-vc-date]\").forEach((t=>{const n=t.querySelector(\"[data-vc-date-btn]\"),a=t.dataset.vcDate,o=getDate(a).getDay();setDateModifier(e,e.context.selectedYear,t,n,o,a,\"current\")}))},handleClickDate=(e,t)=>{var n;const a=t.target,o=a.closest(\"[data-vc-date-btn]\");if(!e.selectionDatesMode||![\"single\",\"multiple\",\"multiple-ranged\"].includes(e.selectionDatesMode)||!o)return;const l=o.closest(\"[data-vc-date]\");({single:()=>handleSelectDate(e,l,!1),multiple:()=>handleSelectDate(e,l,!0),\"multiple-ranged\":()=>handleSelectDateRange(e,l)})[e.selectionDatesMode](),null==(n=e.context.selectedDates)||n.sort(((e,t)=>+new Date(e)-+new Date(t))),e.onClickDate&&e.onClickDate(e,t),e.inputMode&&e.context.inputElement&&e.context.mainElement&&e.onChangeToInput&&e.onChangeToInput(e,t);const s=a.closest('[data-vc-date-month=\"prev\"]'),i=a.closest('[data-vc-date-month=\"next\"]');({prev:()=>e.enableMonthChangeOnDayClick?handleMonth(e,\"prev\"):updateDateModifier(e),next:()=>e.enableMonthChangeOnDayClick?handleMonth(e,\"next\"):updateDateModifier(e),current:()=>updateDateModifier(e)})[s?\"prev\":i?\"next\":\"current\"]()},typeClick=[\"month\",\"year\"],getValue=(e,t,n)=>{const{currentValue:a,columnID:o}=getColumnID(e,t);return\"month\"===e.context.currentType&&o>=0?n-o:\"year\"===e.context.currentType&&e.context.selectedYear!==a?n-1:n},handleMultipleYearSelection=(e,t)=>{const n=getValue(e,\"year\",Number(t.dataset.vcYearsYear)),a=getDate(e.context.dateMin),o=getDate(e.context.dateMax),l=e.context.displayMonthsCount-1,{columnID:s}=getColumnID(e,\"year\"),i=e.context.selectedMonth<a.getMonth()&&n<=a.getFullYear(),r=e.context.selectedMonth>o.getMonth()-l+s&&n>=o.getFullYear(),c=n<a.getFullYear(),d=n>o.getFullYear(),u=i||c?a.getFullYear():r||d?o.getFullYear():n,m=i||c?a.getMonth():r||d?o.getMonth()-l+s:e.context.selectedMonth;setContext(e,\"selectedYear\",u),setContext(e,\"selectedMonth\",m)},handleMultipleMonthSelection=(e,t)=>{const n=t.closest('[data-vc-column=\"month\"]').querySelector('[data-vc=\"year\"]'),a=getValue(e,\"month\",Number(t.dataset.vcMonthsMonth)),o=Number(n.dataset.vcYear),l=getDate(e.context.dateMin),s=getDate(e.context.dateMax),i=a<l.getMonth()&&o<=l.getFullYear(),r=a>s.getMonth()&&o>=s.getFullYear();setContext(e,\"selectedYear\",o),setContext(e,\"selectedMonth\",i?l.getMonth():r?s.getMonth():a)},handleItemClick=(e,t,n,a)=>{var o;({year:()=>{if(\"multiple\"===e.type)return handleMultipleYearSelection(e,a);setContext(e,\"selectedYear\",Number(a.dataset.vcYearsYear))},month:()=>{if(\"multiple\"===e.type)return handleMultipleMonthSelection(e,a);setContext(e,\"selectedMonth\",Number(a.dataset.vcMonthsMonth))}})[n]();({year:()=>{var n;return null==(n=e.onClickYear)?void 0:n.call(e,e,t)},month:()=>{var n;return null==(n=e.onClickMonth)?void 0:n.call(e,e,t)}})[n](),e.context.currentType!==e.type?(setContext(e,\"currentType\",e.type),create(e),null==(o=e.context.mainElement.querySelector(`[data-vc=\"${n}\"]`))||o.focus()):setYearModifier(e,a,n,!0,!0)},handleClickType=(e,t,n)=>{var a;const o=t.target,l=o.closest(`[data-vc=\"${n}\"]`),s={year:()=>createYears(e,o),month:()=>createMonths(e,o)};if(l&&e.onClickTitle&&e.onClickTitle(e,t),l&&e.context.currentType!==n)return s[n]();const i=o.closest(`[data-vc-${n}s-${n}]`);if(i)return handleItemClick(e,t,n,i);const r=o.closest('[data-vc=\"grid\"]'),c=o.closest('[data-vc=\"column\"]');(e.context.currentType===n&&l||\"multiple\"===e.type&&e.context.currentType===n&&r&&!c)&&(setContext(e,\"currentType\",e.type),create(e),null==(a=e.context.mainElement.querySelector(`[data-vc=\"${n}\"]`))||a.focus())},handleClickMonthOrYear=(e,t)=>{const n={month:e.selectionMonthsMode,year:e.selectionYearsMode};typeClick.forEach((a=>{n[a]&&t.target&&handleClickType(e,t,a)}))},handleClickWeekNumber=(e,t)=>{if(!e.enableWeekNumbers||!e.onClickWeekNumber)return;const n=t.target.closest(\"[data-vc-week-number]\"),a=e.context.mainElement.querySelectorAll(\"[data-vc-date-week-number]\");if(!n||!a[0])return;const o=Number(n.innerText),l=Number(n.dataset.vcWeekYear),s=Array.from(a).filter((e=>Number(e.dataset.vcDateWeekNumber)===o));e.onClickWeekNumber(e,o,l,s,t)},handleClickWeekDay=(e,t)=>{if(!e.onClickWeekDay)return;const n=t.target.closest(\"[data-vc-week-day]\"),a=t.target.closest('[data-vc=\"column\"]'),o=a?a.querySelectorAll(\"[data-vc-date-week-day]\"):e.context.mainElement.querySelectorAll(\"[data-vc-date-week-day]\");if(!n||!o[0])return;const l=Number(n.dataset.vcWeekDay),s=Array.from(o).filter((e=>Number(e.dataset.vcDateWeekDay)===l));e.onClickWeekDay(e,l,s,t)},handleClick=e=>{const t=t=>{handleClickArrow(e,t),handleClickWeekDay(e,t),handleClickWeekNumber(e,t),handleClickDate(e,t),handleClickMonthOrYear(e,t)};return e.context.mainElement.addEventListener(\"click\",t),()=>e.context.mainElement.removeEventListener(\"click\",t)},initMonthsCount=e=>{if(\"multiple\"===e.type&&(e.displayMonthsCount<=1||e.displayMonthsCount>12))throw new Error(errorMessages.incorrectMonthsCount);if(\"multiple\"!==e.type&&e.displayMonthsCount>1)throw new Error(errorMessages.incorrectMonthsCount);setContext(e,\"displayMonthsCount\",e.displayMonthsCount?e.displayMonthsCount:\"multiple\"===e.type?2:1)},getLocalDate=()=>{const e=new Date;return new Date(e.getTime()-6e4*e.getTimezoneOffset()).toISOString().substring(0,10)},resolveDate=(e,t)=>\"today\"===e?getLocalDate():e instanceof Date||\"number\"==typeof e||\"string\"==typeof e?parseDates([e])[0]:t,initRange=e=>{var t,n,a;const o=resolveDate(e.dateMin,e.dateMin),l=resolveDate(e.dateMax,e.dateMax),s=resolveDate(e.displayDateMin,o),i=resolveDate(e.displayDateMax,l);setContext(e,\"dateToday\",resolveDate(e.dateToday,e.dateToday)),setContext(e,\"displayDateMin\",s?getDate(o)>=getDate(s)?o:s:o),setContext(e,\"displayDateMax\",i?getDate(l)<=getDate(i)?l:i:l);const r=e.disableDatesPast&&!e.disableAllDates&&getDate(s)<getDate(e.context.dateToday);setContext(e,\"displayDateMin\",r||e.disableAllDates?e.context.dateToday:s),setContext(e,\"displayDateMax\",e.disableAllDates?e.context.dateToday:i),setContext(e,\"disableDates\",e.disableDates[0]&&!e.disableAllDates?parseDates(e.disableDates):e.disableAllDates?[e.context.displayDateMin]:[]),e.context.disableDates.length>1&&e.context.disableDates.sort(((e,t)=>+new Date(e)-+new Date(t))),setContext(e,\"enableDates\",e.enableDates[0]?parseDates(e.enableDates):[]),(null==(t=e.context.enableDates)?void 0:t[0])&&(null==(n=e.context.disableDates)?void 0:n[0])&&setContext(e,\"disableDates\",e.context.disableDates.filter((t=>!e.context.enableDates.includes(t)))),e.context.enableDates.length>1&&e.context.enableDates.sort(((e,t)=>+new Date(e)-+new Date(t))),(null==(a=e.context.enableDates)?void 0:a[0])&&e.disableAllDates&&(setContext(e,\"displayDateMin\",e.context.enableDates[0]),setContext(e,\"displayDateMax\",e.context.enableDates[e.context.enableDates.length-1])),setContext(e,\"dateMin\",e.displayDisabledDates?o:e.context.displayDateMin),setContext(e,\"dateMax\",e.displayDisabledDates?l:e.context.displayDateMax)},initSelectedDates=e=>{var t;setContext(e,\"selectedDates\",(null==(t=e.selectedDates)?void 0:t[0])?parseDates(e.selectedDates):[])},displayClosestValidDate=e=>{const t=t=>{const n=new Date(t);setInitialContext(e,n.getMonth(),n.getFullYear())};if(e.displayDateMin&&\"today\"!==e.displayDateMin&&(n=e.displayDateMin,a=new Date,new Date(n).getTime()>a.getTime())){const n=e.selectedDates.length&&e.selectedDates[0]?parseDates(e.selectedDates)[0]:e.displayDateMin;return t(getDate(resolveDate(n,e.displayDateMin))),!0}var n,a;if(e.displayDateMax&&\"today\"!==e.displayDateMax&&((e,t)=>new Date(e).getTime()<t.getTime())(e.displayDateMax,new Date)){const n=e.selectedDates.length&&e.selectedDates[0]?parseDates(e.selectedDates)[0]:e.displayDateMax;return t(getDate(resolveDate(n,e.displayDateMax))),!0}return!1},setInitialContext=(e,t,n)=>{setContext(e,\"selectedMonth\",t),setContext(e,\"selectedYear\",n),setContext(e,\"displayYear\",n)},initSelectedMonthYear=e=>{var t;if(e.enableJumpToSelectedDate&&(null==(t=e.selectedDates)?void 0:t[0])&&void 0===e.selectedMonth&&void 0===e.selectedYear){const t=getDate(parseDates(e.selectedDates)[0]);return void setInitialContext(e,t.getMonth(),t.getFullYear())}if(displayClosestValidDate(e))return;const n=void 0!==e.selectedMonth&&Number(e.selectedMonth)>=0&&Number(e.selectedMonth)<12,a=void 0!==e.selectedYear&&Number(e.selectedYear)>=0&&Number(e.selectedYear)<=9999;setInitialContext(e,n?Number(e.selectedMonth):getDate(e.context.dateToday).getMonth(),a?Number(e.selectedYear):getDate(e.context.dateToday).getFullYear())},initTime=e=>{var t,n,a;if(!e.selectionTimeMode)return;if(![12,24].includes(e.selectionTimeMode))throw new Error(errorMessages.incorrectTime);const o=12===e.selectionTimeMode,l=o?/^(0[1-9]|1[0-2]):([0-5][0-9]) ?(AM|PM)?$/i:/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/;let[s,i,r]=null!=(a=null==(n=null==(t=e.selectedTime)?void 0:t.match(l))?void 0:n.slice(1))?a:[];s?o&&!r&&(r=\"AM\"):(s=o?transformTime12(String(e.timeMinHour)):String(e.timeMinHour),i=String(e.timeMinMinute),r=o?Number(transformTime12(String(e.timeMinHour)))>=12?\"PM\":\"AM\":null),setContext(e,\"selectedHours\",s.padStart(2,\"0\")),setContext(e,\"selectedMinutes\",i.padStart(2,\"0\")),setContext(e,\"selectedKeeping\",r),setContext(e,\"selectedTime\",`${e.context.selectedHours}:${e.context.selectedMinutes}${r?` ${r}`:\"\"}`)},initAllVariables=e=>{setContext(e,\"currentType\",e.type),initMonthsCount(e),initRange(e),initSelectedMonthYear(e),initSelectedDates(e),initTime(e)},reset=(e,{year:t,month:n,dates:a,time:o,locale:l},s=!0)=>{var i;const r={year:e.selectedYear,month:e.selectedMonth,dates:e.selectedDates,time:e.selectedTime};if(e.selectedYear=t?r.year:e.context.selectedYear,e.selectedMonth=n?r.month:e.context.selectedMonth,e.selectedTime=o?r.time:e.context.selectedTime,e.selectedDates=\"only-first\"===a&&(null==(i=e.context.selectedDates)?void 0:i[0])?[e.context.selectedDates[0]]:!0===a?r.dates:e.context.selectedDates,l){setContext(e,\"locale\",{months:{short:[],long:[]},weekdays:{short:[],long:[]}})}initAllVariables(e),s&&create(e),e.selectedYear=r.year,e.selectedMonth=r.month,e.selectedDates=r.dates,e.selectedTime=r.time,\"multiple-ranged\"===e.selectionDatesMode&&a&&handleSelectDateRange(e,null)},createToInput=e=>{const t=document.createElement(\"div\");return t.className=e.styles.calendar,t.dataset.vc=\"calendar\",t.dataset.vcInput=\"\",t.dataset.vcCalendarHidden=\"\",setContext(e,\"inputModeInit\",!0),setContext(e,\"isShowInInputMode\",!1),setContext(e,\"mainElement\",t),document.body.appendChild(e.context.mainElement),reset(e,{year:!0,month:!0,dates:!0,time:!0,locale:!0}),setTimeout((()=>show(e))),e.onInit&&e.onInit(e),handleArrowKeys(e),handleClick(e)},canOpenOnFocus=e=>resolveToggle(e,e.openOnFocus),handleInput=e=>{setContext(e,\"inputElement\",e.context.mainElement);const t=()=>{e.context.inputModeInit?setTimeout((()=>show(e))):createToInput(e)};e.context.inputElement.addEventListener(\"click\",t);const n=\"function\"==typeof e.openOnFocus||!0===e.openOnFocus,a=()=>{shouldSkipOpenOnFocus(e)?clearSkipOpenOnFocus(e):canOpenOnFocus(e)&&t()};n&&e.context.inputElement.addEventListener(\"focus\",a);const o=t=>{const n=\"Tab\"===t.key&&!t.shiftKey,a=[\"ArrowUp\",\"ArrowDown\",\"ArrowLeft\",\"ArrowRight\"].includes(t.key);(n||a)&&(t=>{var n;if(!e.context.isShowInInputMode)return!1;if(document.activeElement!==e.context.inputElement)return!1;const a=e=>e.tabIndex>=0&&!e.hasAttribute(\"disabled\")&&\"true\"!==e.getAttribute(\"aria-disabled\"),o=null!=(n=document.createTreeWalker(e.context.mainElement,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>a(e)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}).nextNode())?n:a(e.context.mainElement)?e.context.mainElement:null;!o||o.tabIndex<0||(t.preventDefault(),o.focus())})(t)};return e.context.inputElement.addEventListener(\"keydown\",o),()=>{e.context.inputElement.removeEventListener(\"click\",t),n&&e.context.inputElement.removeEventListener(\"focus\",a),e.context.inputElement.removeEventListener(\"keydown\",o)}},init=e=>(setContext(e,\"originalElement\",e.context.mainElement.cloneNode(!0)),setContext(e,\"isInit\",!0),e.inputMode?handleInput(e):(initAllVariables(e),create(e),e.onInit&&e.onInit(e),handleArrowKeys(e),handleClick(e))),update=(e,t)=>{if(!e.context.isInit)throw new Error(errorMessages.notInit);reset(e,__spreadValues(__spreadValues({},{year:!0,month:!0,dates:!0,time:!0,locale:!0}),t),!(e.inputMode&&!e.context.inputModeInit)),e.onUpdate&&e.onUpdate(e)},replaceProperties=(e,t)=>{const n=Object.keys(t);for(let a=0;a<n.length;a++){const o=n[a];\"object\"!=typeof e[o]||\"object\"!=typeof t[o]||t[o]instanceof Date||Array.isArray(t[o])?void 0!==t[o]&&(e[o]=t[o]):replaceProperties(e[o],t[o])}},set=(e,t,n)=>{replaceProperties(e,t),e.context.isInit&&update(e,n)};function findBestPickerPosition(e,t){const n=\"left\";if(!t||!e)return n;const{canShow:a,parentPositions:o}=getAvailablePosition(e,t),l=a.left&&a.right;return(l&&a.bottom?\"center\":l&&a.top?[\"top\",\"center\"]:Array.isArray(o)?[\"bottom\"===o[0]?\"top\":\"bottom\",...o.slice(1)]:o)||n}const setPosition=(e,t,n)=>{if(!e)return;const a=\"auto\"===n?findBestPickerPosition(e,t):n,o={top:-t.offsetHeight,bottom:e.offsetHeight,left:0,center:e.offsetWidth/2-t.offsetWidth/2,right:e.offsetWidth-t.offsetWidth},l=Array.isArray(a)?a[0]:\"bottom\",s=Array.isArray(a)?a[1]:a;t.dataset.vcPosition=l;const{top:i,left:r}=getOffset(e),c=i+o[l];let d=r+o[s];const{vw:u}=getViewportDimensions();if(d+t.clientWidth>u){const e=window.innerWidth-document.body.clientWidth;d=u-t.clientWidth-e}else d<0&&(d=0);Object.assign(t.style,{left:`${d}px`,top:`${c}px`})},show=e=>{if(e.context.isShowInInputMode)return;if(!e.context.currentType)return void e.context.mainElement.click();setContext(e,\"cleanupHandlers\",[]),setContext(e,\"isShowInInputMode\",!0),e.inputMode&&restoreTabbing(e.context.mainElement),setPosition(e.context.inputElement,e.context.mainElement,e.positionToInput),e.context.mainElement.removeAttribute(\"data-vc-calendar-hidden\");const t=()=>{setPosition(e.context.inputElement,e.context.mainElement,e.positionToInput)};window.addEventListener(\"resize\",t),e.context.cleanupHandlers.push((()=>window.removeEventListener(\"resize\",t)));const n=t=>{\"Escape\"===t.key&&hide(e)};document.addEventListener(\"keydown\",n),e.context.cleanupHandlers.push((()=>document.removeEventListener(\"keydown\",n)));const a=t=>{t.target===e.context.inputElement||e.context.mainElement.contains(t.target)||hide(e)};document.addEventListener(\"click\",a,{capture:!0}),e.context.cleanupHandlers.push((()=>document.removeEventListener(\"click\",a,{capture:!0}))),e.onShow&&e.onShow(e)},labels={application:\"Calendar\",navigation:\"Calendar Navigation\",arrowNext:{month:\"Next month\",year:\"Next list of years\"},arrowPrev:{month:\"Previous month\",year:\"Previous list of years\"},month:\"Select month, current selected month:\",months:\"List of months\",year:\"Select year, current selected year:\",years:\"List of years\",week:\"Days of the week\",weekNumber:\"Numbers of weeks in a year\",dates:\"Dates in the current month\",selectingTime:\"Selecting a time \",inputHour:\"Hours\",inputMinute:\"Minutes\",rangeHour:\"Slider for selecting hours\",rangeMinute:\"Slider for selecting minutes\",btnKeeping:\"Switch AM/PM, current position:\"},styles={calendar:\"vc\",controls:\"vc-controls\",grid:\"vc-grid\",column:\"vc-column\",header:\"vc-header\",headerContent:\"vc-header__content\",month:\"vc-month\",year:\"vc-year\",arrowPrev:\"vc-arrow vc-arrow_prev\",arrowNext:\"vc-arrow vc-arrow_next\",wrapper:\"vc-wrapper\",content:\"vc-content\",months:\"vc-months\",monthsMonth:\"vc-months__month\",years:\"vc-years\",yearsYear:\"vc-years__year\",week:\"vc-week\",weekDay:\"vc-week__day\",weekNumbers:\"vc-week-numbers\",weekNumbersTitle:\"vc-week-numbers__title\",weekNumbersContent:\"vc-week-numbers__content\",weekNumber:\"vc-week-number\",dates:\"vc-dates\",datesRow:\"vc-dates__row\",date:\"vc-date\",dateBtn:\"vc-date__btn\",datePopup:\"vc-date__popup\",dateRangeTooltip:\"vc-date-range-tooltip\",time:\"vc-time\",timeContent:\"vc-time__content\",timeHour:\"vc-time__hour\",timeMinute:\"vc-time__minute\",timeKeeping:\"vc-time__keeping\",timeRanges:\"vc-time__ranges\",timeRange:\"vc-time__range\"};class OptionsCalendar{constructor(){__publicField(this,\"type\",\"default\"),__publicField(this,\"inputMode\",!1),__publicField(this,\"openOnFocus\",!0),__publicField(this,\"positionToInput\",\"left\"),__publicField(this,\"firstWeekday\",1),__publicField(this,\"monthsToSwitch\",1),__publicField(this,\"themeAttrDetect\",\"html[data-theme]\"),__publicField(this,\"locale\",\"en\"),__publicField(this,\"dateToday\",\"today\"),__publicField(this,\"dateMin\",\"1970-01-01\"),__publicField(this,\"dateMax\",\"2470-12-31\"),__publicField(this,\"displayDateMin\"),__publicField(this,\"displayDateMax\"),__publicField(this,\"displayDatesOutside\",!0),__publicField(this,\"displayDisabledDates\",!1),__publicField(this,\"displayMonthsCount\"),__publicField(this,\"disableDates\",[]),__publicField(this,\"disableAllDates\",!1),__publicField(this,\"disableDatesPast\",!1),__publicField(this,\"disableDatesGaps\",!1),__publicField(this,\"disableWeekdays\",[]),__publicField(this,\"disableToday\",!1),__publicField(this,\"enableDates\",[]),__publicField(this,\"enableEdgeDatesOnly\",!0),__publicField(this,\"enableDateToggle\",!0),__publicField(this,\"enableWeekNumbers\",!1),__publicField(this,\"enableMonthChangeOnDayClick\",!0),__publicField(this,\"enableJumpToSelectedDate\",!1),__publicField(this,\"selectionDatesMode\",\"single\"),__publicField(this,\"selectionMonthsMode\",!0),__publicField(this,\"selectionYearsMode\",!0),__publicField(this,\"selectionTimeMode\",!1),__publicField(this,\"selectedDates\",[]),__publicField(this,\"selectedMonth\"),__publicField(this,\"selectedYear\"),__publicField(this,\"selectedHolidays\",[]),__publicField(this,\"selectedWeekends\",[0,6]),__publicField(this,\"selectedTime\"),__publicField(this,\"selectedTheme\",\"system\"),__publicField(this,\"timeMinHour\",0),__publicField(this,\"timeMaxHour\",23),__publicField(this,\"timeMinMinute\",0),__publicField(this,\"timeMaxMinute\",59),__publicField(this,\"timeControls\",\"all\"),__publicField(this,\"timeStepHour\",1),__publicField(this,\"timeStepMinute\",1),__publicField(this,\"sanitizerHTML\",(e=>e)),__publicField(this,\"onClickDate\"),__publicField(this,\"onClickWeekDay\"),__publicField(this,\"onClickWeekNumber\"),__publicField(this,\"onClickTitle\"),__publicField(this,\"onClickMonth\"),__publicField(this,\"onClickYear\"),__publicField(this,\"onClickArrow\"),__publicField(this,\"onChangeTime\"),__publicField(this,\"onChangeToInput\"),__publicField(this,\"onCreateDateRangeTooltip\"),__publicField(this,\"onCreateDateEls\"),__publicField(this,\"onCreateMonthEls\"),__publicField(this,\"onCreateYearEls\"),__publicField(this,\"onInit\"),__publicField(this,\"onUpdate\"),__publicField(this,\"onDestroy\"),__publicField(this,\"onShow\"),__publicField(this,\"onHide\"),__publicField(this,\"popups\",{}),__publicField(this,\"labels\",__spreadValues({},labels)),__publicField(this,\"layouts\",{default:\"\",multiple:\"\",month:\"\",year:\"\"}),__publicField(this,\"styles\",__spreadValues({},styles))}}const _Calendar=class e extends OptionsCalendar{constructor(t,n){var a;super(),__publicField(this,\"init\",(()=>init(this))),__publicField(this,\"update\",(e=>update(this,e))),__publicField(this,\"destroy\",(()=>destroy(this))),__publicField(this,\"show\",(()=>show(this))),__publicField(this,\"hide\",(()=>hide(this))),__publicField(this,\"set\",((e,t)=>set(this,e,t))),__publicField(this,\"context\"),this.context=__spreadProps(__spreadValues({},this.context),{locale:{months:{short:[],long:[]},weekdays:{short:[],long:[]}}}),setContext(this,\"mainElement\",\"string\"==typeof t?null!=(a=e.memoizedElements.get(t))?a:this.queryAndMemoize(t):t),n&&replaceProperties(this,n)}queryAndMemoize(t){const n=document.querySelector(t);if(!n)throw new Error(errorMessages.notFoundSelector(t));return e.memoizedElements.set(t,n),n}};__publicField(_Calendar,\"memoizedElements\",new Map);let Calendar=_Calendar;export{Calendar};","/**\n * --------------------------------------------------------------------------\n * Bootstrap datepicker.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { Calendar } from 'vanilla-calendar-pro'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { isDisabled } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'datepicker'\nconst DATA_KEY = 'bs.datepicker'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUSIN_DATA_API = `focusin${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"datepicker\"]'\n\nconst HIDE_DELAY = 100 // ms delay before hiding after selection\n\nconst Default = {\n datepickerTheme: null, // 'light', 'dark', 'auto' - explicit theme for datepicker popover only\n dateMin: null,\n dateMax: null,\n dateFormat: null, // Intl.DateTimeFormat options, or function(date, locale) => string\n displayElement: null, // Element to show formatted date (defaults to element for buttons)\n displayMonthsCount: 1, // Number of months to display side-by-side\n firstWeekday: 1, // Monday\n inline: false, // Render calendar inline (no popup)\n locale: 'default',\n positionElement: null, // Element to position calendar relative to (defaults to input)\n selectedDates: [],\n selectionMode: 'single', // 'single', 'multiple', 'multiple-ranged'\n placement: 'left', // 'left', 'center', 'right', 'auto'\n vcpOptions: {} // Pass-through for any VCP option\n}\n\nconst DefaultType = {\n datepickerTheme: '(null|string)',\n dateMin: '(null|string|number|object)',\n dateMax: '(null|string|number|object)',\n dateFormat: '(null|object|function)',\n displayElement: '(null|string|element|boolean)',\n displayMonthsCount: 'number',\n firstWeekday: 'number',\n inline: 'boolean',\n locale: 'string',\n positionElement: '(null|string|element)',\n selectedDates: 'array',\n selectionMode: 'string',\n placement: 'string',\n vcpOptions: 'object'\n}\n\n/**\n * Class definition\n */\n\nclass Datepicker extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._calendar = null\n this._isShown = false\n\n this._initCalendar()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n return this._isShown ? this.hide() : this.show()\n }\n\n show() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n if (!this._calendar || isDisabled(this._element) || this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._calendar.show()\n this._isShown = true\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n hide() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n if (!this._calendar || !this._isShown) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._calendar.hide()\n this._isShown = false\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n dispose() {\n if (this._themeObserver) {\n this._themeObserver.disconnect()\n this._themeObserver = null\n }\n\n if (this._calendar) {\n this._calendar.destroy()\n }\n\n this._calendar = null\n super.dispose()\n }\n\n getSelectedDates() {\n const dates = this._calendar?.context?.selectedDates\n return dates ? [...dates] : []\n }\n\n setSelectedDates(dates) {\n if (this._calendar) {\n this._calendar.set({ selectedDates: dates })\n }\n }\n\n // Private\n _initCalendar() {\n this._isInput = this._element.tagName === 'INPUT'\n this._isInline = this._config.inline\n\n // For inline mode, look for a hidden input child to bind to\n if (this._isInline && !this._isInput) {\n this._boundInput = this._element.querySelector('input[type=\"hidden\"], input[name]')\n }\n\n this._positionElement = this._resolvePositionElement()\n this._displayElement = this._resolveDisplayElement()\n\n const calendarOptions = this._buildCalendarOptions()\n\n // Create calendar on the position element (for correct popup positioning)\n // but value updates still go to this._element (the input)\n this._calendar = new Calendar(this._positionElement, calendarOptions)\n this._calendar.init()\n\n // Watch for theme changes on ancestor elements (for live theme switching)\n this._setupThemeObserver()\n\n // Set initial value if input has a value\n if (this._isInput && this._element.value) {\n this._parseInputValue()\n }\n\n // Populate input/display with preselected dates\n this._updateDisplayWithSelectedDates()\n }\n\n _updateDisplayWithSelectedDates() {\n const { selectedDates } = this._config\n if (!selectedDates || selectedDates.length === 0) {\n return\n }\n\n const formattedDate = this._formatDateForInput(selectedDates)\n\n if (this._isInput) {\n this._element.value = formattedDate\n }\n\n if (this._boundInput) {\n this._boundInput.value = selectedDates.join(',')\n }\n\n if (this._displayElement) {\n this._displayElement.textContent = formattedDate\n }\n }\n\n _resolvePositionElement() {\n let { positionElement } = this._config\n\n if (typeof positionElement === 'string') {\n positionElement = document.querySelector(positionElement)\n }\n\n // Use input's parent if in form-adorn\n if (!positionElement && this._isInput && !this._isInline) {\n const parent = this._element.closest('.form-adorn')\n if (parent) {\n positionElement = parent\n }\n }\n\n return positionElement || this._element\n }\n\n _resolveDisplayElement() {\n const { displayElement } = this._config\n\n if (typeof displayElement === 'string') {\n return document.querySelector(displayElement)\n }\n\n // For buttons/non-inputs (not inline), look for a [data-bs-datepicker-display] child\n if (displayElement === true || (displayElement === null && !this._isInput && !this._isInline)) {\n const displayChild = this._element.querySelector('[data-bs-datepicker-display]')\n return displayChild || this._element\n }\n\n return displayElement\n }\n\n _getThemeAncestor() {\n return this._element.closest('[data-bs-theme]')\n }\n\n _getEffectiveTheme() {\n // Priority: explicit datepickerTheme config > inherited from ancestor > none\n const { datepickerTheme } = this._config\n if (datepickerTheme) {\n return datepickerTheme\n }\n\n const ancestor = this._getThemeAncestor()\n return ancestor?.getAttribute('data-bs-theme') || null\n }\n\n _syncThemeAttribute(element) {\n if (!element) {\n return\n }\n\n const theme = this._getEffectiveTheme()\n\n if (theme) {\n // Copy theme to popover (needed because VCP appends to body, breaking CSS inheritance)\n element.setAttribute('data-bs-theme', theme)\n } else {\n // No theme - remove attribute to allow natural inheritance\n element.removeAttribute('data-bs-theme')\n }\n }\n\n _setupThemeObserver() {\n // Watch for theme changes on ancestor elements\n const ancestor = this._getThemeAncestor()\n if (!ancestor || this._config.datepickerTheme) {\n // No ancestor to watch, or explicit datepickerTheme overrides\n return\n }\n\n this._themeObserver = new MutationObserver(() => {\n this._syncThemeAttribute(this._calendar?.context?.mainElement)\n })\n\n this._themeObserver.observe(ancestor, {\n attributes: true,\n attributeFilter: ['data-bs-theme']\n })\n }\n\n _buildCalendarOptions() {\n // Get theme for VCP - use 'system' for auto-detection if no explicit theme\n const theme = this._getEffectiveTheme()\n // VCP uses 'system' for auto, Bootstrap uses 'auto'\n const vcpTheme = !theme || theme === 'auto' ? 'system' : theme\n\n const calendarOptions = {\n ...this._config.vcpOptions,\n inputMode: !this._isInline,\n positionToInput: this._config.placement,\n firstWeekday: this._config.firstWeekday,\n locale: this._config.locale,\n selectionDatesMode: this._config.selectionMode,\n selectedDates: this._config.selectedDates,\n displayMonthsCount: this._config.displayMonthsCount,\n type: this._config.displayMonthsCount > 1 ? 'multiple' : 'default',\n selectedTheme: vcpTheme,\n themeAttrDetect: '[data-bs-theme]',\n onClickDate: (self, event) => this._handleDateClick(self, event),\n onInit: self => {\n this._syncThemeAttribute(self.context.mainElement)\n },\n onShow: () => {\n this._isShown = true\n this._syncThemeAttribute(this._calendar.context.mainElement)\n },\n onHide: () => {\n this._isShown = false\n }\n }\n\n // Navigate to the month of the first selected date\n if (this._config.selectedDates.length > 0) {\n const firstDate = this._parseDate(this._config.selectedDates[0])\n calendarOptions.selectedMonth = firstDate.getMonth()\n calendarOptions.selectedYear = firstDate.getFullYear()\n }\n\n if (this._config.dateMin) {\n calendarOptions.dateMin = this._config.dateMin\n }\n\n if (this._config.dateMax) {\n calendarOptions.dateMax = this._config.dateMax\n }\n\n return calendarOptions\n }\n\n _handleDateClick(self, event) {\n const selectedDates = [...self.context.selectedDates]\n\n if (selectedDates.length > 0) {\n const formattedDate = this._formatDateForInput(selectedDates)\n\n if (this._isInput) {\n this._element.value = formattedDate\n }\n\n if (this._boundInput) {\n this._boundInput.value = selectedDates.join(',')\n }\n\n if (this._displayElement) {\n this._displayElement.textContent = formattedDate\n }\n }\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n dates: selectedDates,\n event\n })\n\n this._maybeHideAfterSelection(selectedDates)\n }\n\n _maybeHideAfterSelection(selectedDates) {\n if (this._isInline) {\n return\n }\n\n const shouldHide =\n (this._config.selectionMode === 'single' && selectedDates.length > 0) ||\n (this._config.selectionMode === 'multiple-ranged' && selectedDates.length >= 2)\n\n if (shouldHide) {\n setTimeout(() => this.hide(), HIDE_DELAY)\n }\n }\n\n _parseDate(dateStr) {\n const [year, month, day] = dateStr.split('-')\n return new Date(year, month - 1, day)\n }\n\n _formatDate(dateStr) {\n const date = this._parseDate(dateStr)\n const locale = this._config.locale === 'default' ? undefined : this._config.locale\n const { dateFormat } = this._config\n\n // Custom function formatter\n if (typeof dateFormat === 'function') {\n return dateFormat(date, locale)\n }\n\n // Intl.DateTimeFormat options object\n if (dateFormat && typeof dateFormat === 'object') {\n return new Intl.DateTimeFormat(locale, dateFormat).format(date)\n }\n\n // Default: locale-aware formatting\n return date.toLocaleDateString(locale)\n }\n\n _formatDateForInput(dates) {\n if (dates.length === 0) {\n return ''\n }\n\n if (dates.length === 1) {\n return this._formatDate(dates[0])\n }\n\n // For date ranges, use en-dash; for multiple dates, use comma\n const separator = this._config.selectionMode === 'multiple-ranged' ? ' – ' : ', '\n return dates.map(d => this._formatDate(d)).join(separator)\n }\n\n _parseInputValue() {\n // Try to parse the input value as a date\n const value = this._element.value.trim()\n if (!value) {\n return\n }\n\n const date = new Date(value)\n if (!Number.isNaN(date.getTime())) {\n const year = date.getFullYear()\n const month = String(date.getMonth() + 1).padStart(2, '0')\n const day = String(date.getDate()).padStart(2, '0')\n const formatted = `${year}-${month}-${day}`\n this._calendar.set({ selectedDates: [formatted] })\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // Only handle if not an input (inputs use focus)\n // Skip inline datepickers (they're always visible)\n if (this.tagName === 'INPUT' || this.dataset.bsInline === 'true') {\n return\n }\n\n event.preventDefault()\n Datepicker.getOrCreateInstance(this).toggle()\n})\n\nEventHandler.on(document, EVENT_FOCUSIN_DATA_API, SELECTOR_DATA_TOGGLE, function () {\n // Handle focus for input elements\n if (this.tagName !== 'INPUT') {\n return\n }\n\n Datepicker.getOrCreateInstance(this).show()\n})\n\n// Auto-initialize inline datepickers on DOMContentLoaded\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of document.querySelectorAll(`${SELECTOR_DATA_TOGGLE}[data-bs-inline=\"true\"]`)) {\n Datepicker.getOrCreateInstance(element)\n }\n})\n\nexport default Datepicker\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dialog-base.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst CLASS_NAME_OPEN = 'dialog-open'\n\n/**\n * Class definition\n *\n * Shared base class for Dialog and Drawer components that use\n * the native <dialog> element. Provides common behavior for:\n * - Show/hide/toggle lifecycle with events\n * - Opening/closing via showModal()/show()/close()\n * - Escape key handling (modal and non-modal)\n * - Backdrop click handling\n * - Static backdrop transition (\"bounce\")\n * - Body scroll prevention\n * - Transition coordination\n * - Child component cleanup (tooltips, popovers, toasts)\n */\n\nclass DialogBase extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._openedAsModal = false\n this._addDialogListeners()\n }\n\n // Getters — subclasses override NAME with their own component name.\n static get NAME() {\n return 'dialogbase'\n }\n\n // Public — shared lifecycle methods\n\n toggle(relatedTarget) {\n return this._element.open ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._element.open || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('show'),\n { relatedTarget }\n )\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isTransitioning = true\n this._onBeforeShow()\n\n const { modal, preventBodyScroll } = this._getShowOptions()\n this._showElement({ modal, preventBodyScroll })\n\n this._queueCallback(() => {\n this._isTransitioning = false\n EventHandler.trigger(\n this._element,\n this.constructor.eventName('shown'),\n { relatedTarget }\n )\n }, this._element, this._isAnimated())\n }\n\n hide() {\n if (!this._element.open || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('hide')\n )\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isTransitioning = true\n this._hideElement()\n\n this._queueCallback(() => {\n // For subclasses that defer close() until the exit transition ends\n // (so the dialog stays in the top layer with its ::backdrop), close()\n // happens here instead of in _hideElement().\n if (this._element.open) {\n this._closeAndCleanup()\n }\n\n this._element.classList.remove('hiding')\n this._onAfterHide()\n this._isTransitioning = false\n EventHandler.trigger(\n this._element,\n this.constructor.eventName('hidden')\n )\n }, this._element, this._isAnimated())\n }\n\n // Protected — hooks for subclasses to override\n\n _getShowOptions() {\n return { modal: true, preventBodyScroll: true }\n }\n\n _onBeforeShow() {\n // No-op by default — Dialog overrides to add nonmodal class\n }\n\n _onAfterHide() {\n // No-op by default — Dialog overrides to remove nonmodal class\n }\n\n _isAnimated() {\n return !this._element.classList.contains(this._getInstantClassName())\n }\n\n _getInstantClassName() {\n return 'dialog-instant'\n }\n\n _getStaticClassName() {\n return 'dialog-static'\n }\n\n _onCancel() {\n // No-op by default — Dialog overrides to fire cancel event\n }\n\n // Protected — shared mechanics\n\n _showElement({ modal = true, preventBodyScroll = true } = {}) {\n this._openedAsModal = modal\n\n if (modal) {\n this._element.showModal()\n } else {\n this._element.show()\n }\n\n if (preventBodyScroll) {\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n }\n\n _hideElement() {\n this._hideChildComponents()\n\n // Add .hiding before close() so CSS exit transitions can play.\n // Without this, the navbar's `:not([open])` transition-kill rule\n // would prevent the slide-out animation.\n this._element.classList.add('hiding')\n\n // Subclasses can defer close() until after the exit transition by\n // returning true from _shouldDeferClose(). This is needed for the\n // native modal <dialog> centered case: close() removes the dialog\n // from the top layer immediately, which strips its auto-centering\n // and the ::backdrop, breaking the exit animation.\n if (!this._shouldDeferClose()) {\n this._closeAndCleanup()\n }\n }\n\n // Closes the native <dialog> and tears down body-scroll prevention.\n // Safe to call multiple times — close() is a no-op on a closed dialog.\n _closeAndCleanup() {\n this._element.close()\n this._openedAsModal = false\n\n // Only restore body scroll if no other modal dialogs are open\n if (!document.querySelector('dialog[open]:modal')) {\n document.body.classList.remove(CLASS_NAME_OPEN)\n }\n }\n\n // Hook: return true to keep the dialog in the top layer (i.e., delay\n // calling close()) until the exit transition completes. The base class\n // closes synchronously; Dialog overrides this for animated modal cases.\n _shouldDeferClose() {\n return false\n }\n\n _triggerBackdropTransition() {\n const hidePreventedEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('hidePrevented')\n )\n\n if (hidePreventedEvent.defaultPrevented) {\n return\n }\n\n const staticClass = this._getStaticClassName()\n this._element.classList.add(staticClass)\n this._queueCallback(() => {\n this._element.classList.remove(staticClass)\n }, this._element)\n }\n\n // Hide any tooltips, popovers, or toasts inside the dialog before closing.\n // These components append to the dialog (for top-layer rendering) and would\n // otherwise persist visibly after close().\n _hideChildComponents() {\n const selector = '[data-bs-toggle=\"tooltip\"], [data-bs-toggle=\"popover\"]'\n\n for (const el of SelectorEngine.find(selector, this._element)) {\n const instance = Data.getAny(el)\n if (instance && typeof instance.hide === 'function') {\n instance.hide()\n }\n }\n\n // Hide any visible toasts\n for (const el of SelectorEngine.find('.toast.show', this._element)) {\n const instance = Data.getAny(el)\n if (instance && typeof instance.hide === 'function') {\n instance.hide()\n }\n }\n }\n\n // Private\n\n _addDialogListeners() {\n const eventKey = this.constructor.EVENT_KEY\n\n // Handle native cancel event (Escape key) — only fires for modal dialogs\n EventHandler.on(this._element, 'cancel', event => {\n event.preventDefault()\n\n if (!this._config.keyboard) {\n this._triggerBackdropTransition()\n return\n }\n\n this._onCancel()\n this.hide()\n })\n\n // Handle Escape key for non-modal dialogs (native cancel doesn't fire for show())\n EventHandler.on(this._element, `keydown${eventKey}`, event => {\n if (event.key !== 'Escape' || this._openedAsModal) {\n return\n }\n\n event.preventDefault()\n\n if (!this._config.keyboard) {\n return\n }\n\n this._onCancel()\n this.hide()\n })\n\n // Handle backdrop clicks — only applies to modal dialogs\n EventHandler.on(this._element, `click${eventKey}`, event => {\n if (event.target !== this._element || !this._openedAsModal) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n return\n }\n\n this.hide()\n })\n }\n}\n\nexport default DialogBase\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dialog.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport DialogBase from './dialog-base.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'dialog'\nconst DATA_KEY = 'bs.dialog'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CANCEL = `cancel${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_NONMODAL = 'dialog-nonmodal'\nconst CLASS_NAME_INSTANT = 'dialog-instant'\nconst CLASS_NAME_SWAP_IN = 'dialog-swap-in'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dialog\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n modal: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n modal: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Dialog extends DialogBase {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n handleUpdate() {\n // Provided for API consistency with Modal.\n }\n\n // Protected — hook overrides\n\n _getShowOptions() {\n return {\n modal: this._config.modal,\n preventBodyScroll: this._config.modal\n }\n }\n\n _onBeforeShow() {\n if (!this._config.modal) {\n this._element.classList.add(CLASS_NAME_NONMODAL)\n }\n }\n\n _onAfterHide() {\n this._element.classList.remove(CLASS_NAME_NONMODAL)\n }\n\n // Keep the dialog in the top layer until the exit transition ends. This\n // preserves the browser's modal centering and the native ::backdrop, both\n // of which disappear synchronously the moment close() is called. Without\n // this, the dialog would jump to the top of the page and the backdrop\n // blur would vanish instantly while the dialog faded — making the exit\n // animation appear to skip entirely.\n _shouldDeferClose() {\n return this._isAnimated()\n }\n\n _onCancel() {\n EventHandler.trigger(this._element, EVENT_CANCEL)\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n // Get config from trigger's data attributes\n const config = Manipulator.getDataAttributes(this)\n\n // Check if trigger is inside an open dialog (dialog swapping)\n const currentDialog = this.closest('dialog[open]')\n const shouldSwap = currentDialog && currentDialog !== target\n\n if (shouldSwap) {\n // Swap strategy (seamless backdrop, no flash):\n // 1. Mark the incoming dialog with .dialog-swap-in so its ::backdrop\n // skips the @starting-style fade-in and appears fully opaque on\n // its very first frame in the top layer.\n // 2. Open the incoming dialog (showModal).\n // 3. Close the outgoing dialog synchronously — no exit transition, no\n // .hiding — so its ::backdrop is removed in the same frame the\n // incoming dialog's backdrop appears. Since both backdrops render\n // the same color, the user sees one continuous backdrop. Two\n // simultaneously-visible backdrops would composite to ~75% darker,\n // and a fading-out + fading-in pair would dip to ~75% opacity —\n // either would look like a flash.\n // 4. Clean up the .dialog-swap-in flag once the incoming dialog\n // finishes its entry transition.\n const newDialog = Dialog.getOrCreateInstance(target, config)\n target.classList.add(CLASS_NAME_SWAP_IN)\n newDialog.show(this)\n EventHandler.one(target, `shown${EVENT_KEY}`, () => {\n target.classList.remove(CLASS_NAME_SWAP_IN)\n })\n\n const currentInstance = Dialog.getInstance(currentDialog)\n if (currentInstance) {\n // Force synchronous close: .dialog-instant makes _isAnimated() false,\n // which makes _shouldDeferClose() false, so hide() calls close()\n // immediately (no deferred .hiding path). The class is removed after\n // the (now-synchronous) hidden event fires.\n currentDialog.classList.add(CLASS_NAME_INSTANT)\n EventHandler.one(currentDialog, EVENT_HIDDEN, () => {\n currentDialog.classList.remove(CLASS_NAME_INSTANT)\n })\n currentInstance.hide()\n }\n\n return\n }\n\n const data = Dialog.getOrCreateInstance(target, config)\n data.toggle(this)\n})\n\nenableDismissTrigger(Dialog)\n\nexport default Dialog\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap nav-overflow.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'navoverflow'\nconst DATA_KEY = 'bs.navoverflow'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_UPDATE = `update${EVENT_KEY}`\nconst EVENT_OVERFLOW = `overflow${EVENT_KEY}`\n\nconst CLASS_NAME_OVERFLOW = 'nav-overflow'\nconst CLASS_NAME_OVERFLOW_MENU = 'nav-overflow-menu'\nconst CLASS_NAME_HIDDEN = 'd-none'\n\nconst SELECTOR_NAV_ITEM = '.nav-item'\nconst SELECTOR_NAV_LINK = '.nav-link'\nconst SELECTOR_OVERFLOW_TOGGLE = '.nav-overflow-toggle'\nconst SELECTOR_OVERFLOW_MENU = '.nav-overflow-menu'\nconst SELECTOR_CUSTOM_ICON = '[data-bs-overflow-icon]'\nconst CLASS_NAME_KEEP = 'nav-overflow-keep'\n\nconst Default = {\n collapseBelow: 0,\n iconPlacement: 'start',\n menuPlacement: 'bottom-end',\n moreText: 'More',\n moreIcon: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" viewBox=\"0 0 16 16\"><path d=\"M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3\"/></svg>',\n threshold: 0 // Minimum items to keep visible before showing overflow\n}\n\nconst DefaultType = {\n collapseBelow: '(number|string)',\n iconPlacement: 'string',\n menuPlacement: 'string',\n moreText: 'string',\n moreIcon: 'string',\n threshold: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass NavOverflow extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._items = []\n this._overflowItems = []\n this._overflowMenu = null\n this._overflowToggle = null\n this._resizeObserver = null\n this._collapseBelow = 0\n this._isInitialized = false\n\n this._init()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n update() {\n this._calculateOverflow()\n EventHandler.trigger(this._element, EVENT_UPDATE)\n }\n\n dispose() {\n if (this._resizeObserver) {\n this._resizeObserver.disconnect()\n }\n\n // Move items back to original positions\n this._restoreItems()\n\n // Remove overflow menu\n if (this._overflowToggle && this._overflowToggle.parentElement) {\n this._overflowToggle.parentElement.remove()\n }\n\n super.dispose()\n }\n\n // Private\n _init() {\n // Add overflow class to nav\n this._element.classList.add(CLASS_NAME_OVERFLOW)\n\n // Get all nav items\n this._items = [...SelectorEngine.find(SELECTOR_NAV_ITEM, this._element)]\n\n // Store original order data\n for (const [index, item] of this._items.entries()) {\n item.dataset.bsNavOrder = index\n }\n\n // Resolve collapseBelow threshold once\n this._collapseBelow = this._resolveCollapseBelow()\n\n // Create overflow menu if it doesn't exist\n this._createOverflowMenu()\n\n // Setup resize observer\n this._setupResizeObserver()\n\n // Initial calculation\n this._calculateOverflow()\n\n this._isInitialized = true\n }\n\n _createOverflowMenu() {\n // Check if overflow menu already exists\n this._overflowToggle = SelectorEngine.findOne(SELECTOR_OVERFLOW_TOGGLE, this._element)\n\n if (this._overflowToggle) {\n this._overflowMenu = SelectorEngine.findOne(SELECTOR_OVERFLOW_MENU, this._element)\n return\n }\n\n const iconHtml = this._resolveIcon()\n const iconSpan = `<span class=\"nav-overflow-icon\">${iconHtml}</span>`\n const textSpan = `<span class=\"nav-overflow-text\">${this._config.moreText}</span>`\n const toggleContent = this._config.iconPlacement === 'end' ?\n `${textSpan}${iconSpan}` :\n `${iconSpan}${textSpan}`\n\n const overflowItem = document.createElement('li')\n overflowItem.className = 'nav-item nav-overflow-item'\n overflowItem.innerHTML = `\n <button class=\"nav-link nav-overflow-toggle\" type=\"button\" data-bs-toggle=\"menu\" data-bs-placement=\"${this._config.menuPlacement}\" aria-expanded=\"false\">\n ${toggleContent}\n </button>\n <div class=\"${CLASS_NAME_OVERFLOW_MENU} menu\"></div>\n `\n\n this._element.append(overflowItem)\n this._overflowToggle = overflowItem.querySelector(SELECTOR_OVERFLOW_TOGGLE)\n this._overflowMenu = overflowItem.querySelector(SELECTOR_OVERFLOW_MENU)\n }\n\n _resolveIcon() {\n const customIconElement = SelectorEngine.findOne(SELECTOR_CUSTOM_ICON, this._element)\n\n if (!customIconElement) {\n return this._config.moreIcon\n }\n\n const iconClone = customIconElement.cloneNode(true)\n iconClone.removeAttribute('data-bs-overflow-icon')\n const iconHtml = iconClone.outerHTML\n\n customIconElement.remove()\n\n return iconHtml\n }\n\n _resolveCollapseBelow() {\n const value = this._config.collapseBelow\n\n if (typeof value === 'number') {\n return value\n }\n\n if (typeof value === 'string' && value !== '') {\n const cssValue = getComputedStyle(document.documentElement)\n .getPropertyValue(`--bs-breakpoint-${value}`)\n return Number.parseFloat(cssValue) || 0\n }\n\n return 0\n }\n\n _setupResizeObserver() {\n if (typeof ResizeObserver === 'undefined') {\n // Fallback for older browsers\n EventHandler.on(window, 'resize', () => this._calculateOverflow())\n return\n }\n\n this._resizeObserver = new ResizeObserver(() => {\n this._calculateOverflow()\n })\n\n this._resizeObserver.observe(this._element)\n }\n\n _calculateOverflow() {\n // First, restore all items to measure properly\n this._restoreItems()\n\n const navWidth = this._element.offsetWidth\n const overflowItem = this._overflowToggle?.closest('.nav-item')\n\n // When below the collapseBelow threshold, force all items into overflow\n if (this._collapseBelow > 0 && navWidth < this._collapseBelow) {\n const itemsToOverflow = this._items.filter(\n item => !item.classList.contains(CLASS_NAME_KEEP)\n )\n\n this._moveToOverflow(itemsToOverflow)\n\n if (overflowItem) {\n if (itemsToOverflow.length > 0) {\n overflowItem.classList.remove(CLASS_NAME_HIDDEN)\n } else {\n overflowItem.classList.add(CLASS_NAME_HIDDEN)\n }\n }\n\n if (itemsToOverflow.length > 0) {\n EventHandler.trigger(this._element, EVENT_OVERFLOW, {\n overflowCount: itemsToOverflow.length,\n visibleCount: this._items.length - itemsToOverflow.length\n })\n }\n\n return\n }\n\n const overflowWidth = overflowItem?.offsetWidth || 0\n\n // Keep items are always visible; subtract their widths so the threshold\n // reflects actual available space for non-keep items.\n const keepWidth = this._items\n .filter(item => item.classList.contains(CLASS_NAME_KEEP))\n .reduce((sum, item) => sum + item.offsetWidth, 0)\n\n let usedWidth = 0\n const itemsToOverflow = []\n const overflowThreshold = navWidth - overflowWidth - keepWidth - 10 // 10px buffer\n\n // Calculate which items need to overflow (skip items with keep class)\n for (const item of this._items) {\n // Never overflow items with the keep class\n if (item.classList.contains(CLASS_NAME_KEEP)) {\n continue\n }\n\n usedWidth += item.offsetWidth\n\n if (usedWidth > overflowThreshold) {\n itemsToOverflow.push(item)\n }\n }\n\n // Check if we need threshold minimum visible\n const visibleCount = this._items.length - itemsToOverflow.length\n if (visibleCount < this._config.threshold && this._items.length > this._config.threshold) {\n // Add more items to overflow until we reach threshold (but not keep items)\n const toMove = this._items.slice(this._config.threshold).filter(item => !item.classList.contains(CLASS_NAME_KEEP))\n itemsToOverflow.length = 0\n itemsToOverflow.push(...toMove)\n }\n\n // Move items to overflow menu\n this._moveToOverflow(itemsToOverflow)\n\n // Show/hide overflow toggle\n if (overflowItem) {\n if (itemsToOverflow.length > 0) {\n overflowItem.classList.remove(CLASS_NAME_HIDDEN)\n } else {\n overflowItem.classList.add(CLASS_NAME_HIDDEN)\n }\n }\n\n // Trigger overflow event if items changed\n if (itemsToOverflow.length > 0) {\n EventHandler.trigger(this._element, EVENT_OVERFLOW, {\n overflowCount: itemsToOverflow.length,\n visibleCount: this._items.length - itemsToOverflow.length\n })\n }\n }\n\n _moveToOverflow(items) {\n if (!this._overflowMenu) {\n return\n }\n\n // Clear existing overflow items\n this._overflowMenu.innerHTML = ''\n this._overflowItems = []\n\n for (const item of items) {\n const link = SelectorEngine.findOne(SELECTOR_NAV_LINK, item)\n if (!link) {\n continue\n }\n\n const clonedLink = link.cloneNode(true)\n clonedLink.className = 'menu-item'\n\n if (link.classList.contains('active')) {\n clonedLink.classList.add('active')\n }\n\n if (link.classList.contains('disabled') || link.hasAttribute('disabled')) {\n clonedLink.classList.add('disabled')\n }\n\n this._overflowMenu.append(clonedLink)\n\n // Hide original item\n item.classList.add(CLASS_NAME_HIDDEN)\n item.dataset.bsNavOverflow = 'true'\n\n this._overflowItems.push(item)\n }\n }\n\n _restoreItems() {\n for (const item of this._items) {\n item.classList.remove(CLASS_NAME_HIDDEN)\n delete item.dataset.bsNavOverflow\n }\n\n if (this._overflowMenu) {\n this._overflowMenu.innerHTML = ''\n }\n\n this._overflowItems = []\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, 'DOMContentLoaded', () => {\n for (const element of SelectorEngine.find('[data-bs-toggle=\"nav-overflow\"]')) {\n NavOverflow.getOrCreateInstance(element)\n }\n})\n\nexport default NavOverflow\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport Config from './config.js'\nimport { execute } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'swipe'\nconst EVENT_KEY = '.bs.swipe'\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null,\n upCallback: null,\n downCallback: null\n}\n\nconst DefaultType = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)',\n upCallback: '(function|null)',\n downCallback: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super()\n this._element = element\n\n if (!element || !Swipe.isSupported()) {\n return\n }\n\n this._config = this._getConfig(config)\n this._deltaX = 0\n this._deltaY = 0\n this._supportPointerEvents = Boolean(window.PointerEvent)\n this._initEvents()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX\n this._deltaY = event.touches[0].clientY\n\n return\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX\n this._deltaY = event.clientY\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX\n this._deltaY = event.clientY - this._deltaY\n }\n\n this._handleSwipe()\n execute(this._config.endCallback)\n }\n\n _move(event) {\n if (event.touches && event.touches.length > 1) {\n this._deltaX = 0\n this._deltaY = 0\n return\n }\n\n this._deltaX = event.touches[0].clientX - this._deltaX\n this._deltaY = event.touches[0].clientY - this._deltaY\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX)\n const absDeltaY = Math.abs(this._deltaY)\n\n // Determine primary axis: whichever has greater movement wins\n if (absDeltaY > absDeltaX && absDeltaY > SWIPE_THRESHOLD) {\n // Vertical swipe\n const direction = this._deltaY > 0 ? 'down' : 'up'\n this._deltaX = 0\n this._deltaY = 0\n execute(direction === 'down' ? this._config.downCallback : this._config.upCallback)\n return\n }\n\n if (absDeltaX > SWIPE_THRESHOLD) {\n // Horizontal swipe\n const direction = absDeltaX / this._deltaX\n this._deltaX = 0\n this._deltaY = 0\n\n if (!direction) {\n return\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback)\n return\n }\n\n this._deltaX = 0\n this._deltaY = 0\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event))\n }\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n }\n}\n\nexport default Swipe\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap drawer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport DialogBase from './dialog-base.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Swipe from './util/swipe.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport {\n isDisabled,\n isRTL,\n isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'drawer'\nconst DATA_KEY = 'bs.drawer'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"drawer\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Drawer extends DialogBase {\n constructor(element, config) {\n super(element, config)\n this._swipeHelper = null\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Protected — hook overrides\n\n _getShowOptions() {\n const useModal = Boolean(this._config.backdrop) || !this._config.scroll\n return {\n modal: useModal,\n preventBodyScroll: !this._config.scroll\n }\n }\n\n _onBeforeShow() {\n this._initSwipe()\n }\n\n _getInstantClassName() {\n return 'drawer-instant'\n }\n\n _getStaticClassName() {\n return 'drawer-static'\n }\n\n // Private\n\n _initSwipe() {\n if (this._swipeHelper || !Swipe.isSupported()) {\n return\n }\n\n // Determine which swipe direction dismisses based on placement\n const swipeConfig = {}\n const element = this._element\n\n if (element.classList.contains('drawer-bottom')) {\n swipeConfig.downCallback = () => this.hide()\n } else if (element.classList.contains('drawer-top')) {\n swipeConfig.upCallback = () => this.hide()\n } else if (element.classList.contains('drawer-end')) {\n // RTL: swipe left to dismiss end drawer\n if (isRTL()) {\n swipeConfig.leftCallback = () => this.hide()\n } else {\n swipeConfig.rightCallback = () => this.hide()\n }\n } else if (isRTL()) {\n // drawer-start (default): swipe right to dismiss in RTL\n swipeConfig.rightCallback = () => this.hide()\n } else {\n // drawer-start (default): swipe left to dismiss in LTR\n swipeConfig.leftCallback = () => this.hide()\n }\n\n this._swipeHelper = new Swipe(element, swipeConfig)\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n\n // Avoid conflict when clicking a toggler of a drawer, while another is open\n const alreadyOpen = SelectorEngine.findOne('dialog.drawer[open]')\n if (alreadyOpen && alreadyOpen !== target) {\n Drawer.getInstance(alreadyOpen).hide()\n }\n\n const data = Drawer.getOrCreateInstance(target)\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const selector of SelectorEngine.find('dialog.drawer[open]')) {\n Drawer.getOrCreateInstance(selector).show()\n }\n})\n\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('dialog[open][class*=\"\\\\:drawer\"]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Drawer.getOrCreateInstance(element).hide()\n }\n }\n})\n\nenableDismissTrigger(Drawer)\n\nexport default Drawer\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap strength.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'strength'\nconst DATA_KEY = 'bs.strength'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_STRENGTH_CHANGE = `strengthChange${EVENT_KEY}`\n\nconst SELECTOR_DATA_STRENGTH = '[data-bs-strength]'\n\nconst STRENGTH_LEVELS = ['weak', 'fair', 'good', 'strong']\n\nconst Default = {\n input: null, // Selector or element for password input\n minLength: 8,\n messages: {\n weak: 'Weak',\n fair: 'Fair',\n good: 'Good',\n strong: 'Strong'\n },\n weights: {\n minLength: 1,\n extraLength: 1,\n lowercase: 1,\n uppercase: 1,\n numbers: 1,\n special: 1,\n multipleSpecial: 1,\n longPassword: 1\n },\n thresholds: [2, 4, 6], // weak ≤2, fair ≤4, good ≤6, strong >6\n scorer: null // Custom scoring function (password) => number\n}\n\nconst DefaultType = {\n input: '(string|element|null)',\n minLength: 'number',\n messages: 'object',\n weights: 'object',\n thresholds: 'array',\n scorer: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Strength extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = this._getInput()\n this._segments = SelectorEngine.find('.strength-segment', this._element)\n this._textElement = SelectorEngine.findOne('.strength-text', this._element.parentElement)\n this._currentStrength = null\n\n if (this._input) {\n this._addEventListeners()\n // Check initial value\n this._evaluate()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getStrength() {\n return this._currentStrength\n }\n\n evaluate() {\n this._evaluate()\n }\n\n // Private\n _getInput() {\n if (this._config.input) {\n return typeof this._config.input === 'string' ?\n SelectorEngine.findOne(this._config.input) :\n this._config.input\n }\n\n // Look for preceding password input\n const parent = this._element.parentElement\n return SelectorEngine.findOne('input[type=\"password\"]', parent)\n }\n\n _addEventListeners() {\n EventHandler.on(this._input, 'input', () => this._evaluate())\n EventHandler.on(this._input, 'change', () => this._evaluate())\n }\n\n _evaluate() {\n const password = this._input.value\n const score = this._calculateScore(password)\n const strength = this._scoreToStrength(score)\n\n if (strength !== this._currentStrength) {\n this._currentStrength = strength\n this._updateUI(strength, score)\n\n EventHandler.trigger(this._element, EVENT_STRENGTH_CHANGE, {\n strength,\n score,\n password: password.length > 0 ? '***' : '' // Don't expose actual password\n })\n }\n }\n\n _calculateScore(password) {\n if (!password) {\n return 0\n }\n\n // Use custom scorer if provided\n if (typeof this._config.scorer === 'function') {\n return this._config.scorer(password)\n }\n\n const { weights } = this._config\n let score = 0\n\n // Length scoring\n if (password.length >= this._config.minLength) {\n score += weights.minLength\n }\n\n if (password.length >= this._config.minLength + 4) {\n score += weights.extraLength\n }\n\n // Character variety\n if (/[a-z]/.test(password)) {\n score += weights.lowercase\n }\n\n if (/[A-Z]/.test(password)) {\n score += weights.uppercase\n }\n\n if (/\\d/.test(password)) {\n score += weights.numbers\n }\n\n // Special characters\n if (/[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n score += weights.special\n }\n\n // Extra points for more special chars or length\n if (/[!@#$%^&*(),.?\":{}|<>].*[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n score += weights.multipleSpecial\n }\n\n if (password.length >= 16) {\n score += weights.longPassword\n }\n\n return score\n }\n\n _scoreToStrength(score) {\n if (score === 0) {\n return null\n }\n\n const [weak, fair, good] = this._config.thresholds\n\n if (score <= weak) {\n return 'weak'\n }\n\n if (score <= fair) {\n return 'fair'\n }\n\n if (score <= good) {\n return 'good'\n }\n\n return 'strong'\n }\n\n _updateUI(strength) {\n // Update data attribute on element\n if (strength) {\n this._element.dataset.bsStrength = strength\n } else {\n delete this._element.dataset.bsStrength\n }\n\n // Update segmented meter\n const strengthIndex = strength ? STRENGTH_LEVELS.indexOf(strength) : -1\n\n for (const [index, segment] of this._segments.entries()) {\n if (index <= strengthIndex) {\n segment.classList.add('active')\n } else {\n segment.classList.remove('active')\n }\n }\n\n // Update text feedback\n if (this._textElement) {\n if (strength && this._config.messages[strength]) {\n this._textElement.textContent = this._config.messages[strength]\n this._textElement.dataset.bsStrength = strength\n\n // Also set the color via inheriting from parent or using CSS variable\n const colorMap = {\n weak: 'danger',\n fair: 'warning',\n good: 'info',\n strong: 'success'\n }\n this._textElement.style.setProperty('--strength-color', `var(--${colorMap[strength]}-text)`)\n } else {\n this._textElement.textContent = ''\n delete this._textElement.dataset.bsStrength\n }\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_STRENGTH)) {\n Strength.getOrCreateInstance(element)\n }\n})\n\nexport default Strength\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap otp-input.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'otpInput'\nconst DATA_KEY = 'bs.otpInput'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_COMPLETE = `complete${EVENT_KEY}`\nconst EVENT_INPUT = `input${EVENT_KEY}`\nconst EVENT_DOMCONTENT_LOADED = `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_OTP = '[data-bs-otp]'\nconst SELECTOR_INPUT = 'input'\n\n// Events that should refresh the active-slot highlight as the caret moves\nconst SYNC_EVENTS = ['blur', 'keyup', 'click', 'select']\n\nconst CLASS_NAME_INPUT = 'otp-input'\nconst CLASS_NAME_RENDERED = 'otp-rendered'\nconst CLASS_NAME_SLOTS = 'otp-slots'\nconst CLASS_NAME_SLOT = 'otp-slot'\nconst CLASS_NAME_SLOT_FILLED = 'otp-slot-filled'\nconst CLASS_NAME_SLOT_ACTIVE = 'otp-slot-active'\nconst CLASS_NAME_SEPARATOR = 'otp-separator'\n\nconst MASK_CHARACTER = '•'\n\n// Per-type input mode, validation pattern, and a filter that strips disallowed characters\nconst TYPES = {\n numeric: { inputmode: 'numeric', pattern: '[0-9]*', filter: /[^0-9]/g },\n alphanumeric: { inputmode: 'text', pattern: '[A-Za-z0-9]*', filter: /[^A-Za-z0-9]/g },\n alpha: { inputmode: 'text', pattern: '[A-Za-z]*', filter: /[^A-Za-z]/g }\n}\n\nconst Default = {\n groups: null,\n length: null,\n mask: false,\n separator: '·',\n type: 'numeric'\n}\n\nconst DefaultType = {\n groups: '(array|null)',\n length: '(number|null)',\n mask: 'boolean',\n separator: 'string',\n type: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass OtpInput extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = SelectorEngine.findOne(SELECTOR_INPUT, this._element)\n if (!this._input) {\n return\n }\n\n this._type = TYPES[this._config.type] || TYPES.numeric\n this._length = this._resolveLength()\n this._slots = []\n\n this._setupInput()\n this._renderSlots()\n this._addEventListeners()\n this._render()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getValue() {\n return this._input.value\n }\n\n setValue(value) {\n this._input.value = this._sanitize(String(value))\n this._render()\n this._checkComplete()\n }\n\n clear() {\n this._input.value = ''\n this._render()\n this._input.focus()\n }\n\n focus() {\n this._input.focus()\n // Place the caret after the last entered character\n const end = this._input.value.length\n this._input.setSelectionRange(end, end)\n this._render()\n }\n\n dispose() {\n EventHandler.off(this._input, 'input', this._onInput)\n EventHandler.off(this._input, 'focus', this._onFocus)\n for (const type of SYNC_EVENTS) {\n EventHandler.off(this._input, type, this._onSync)\n }\n\n this._slotsContainer?.remove()\n this._element.classList.remove(CLASS_NAME_RENDERED)\n super.dispose()\n }\n\n // Private\n _resolveLength() {\n if (this._config.length) {\n return this._config.length\n }\n\n const maxLength = Number.parseInt(this._input.getAttribute('maxlength'), 10)\n return Number.isNaN(maxLength) || maxLength < 1 ? 6 : maxLength\n }\n\n _setupInput() {\n const input = this._input\n\n // A single text field backs the whole control so screen readers, password\n // managers, and SMS autofill treat it like any other input.\n if (input.type === 'number' || input.type === 'password') {\n input.type = 'text'\n }\n\n input.classList.add(CLASS_NAME_INPUT)\n input.setAttribute('maxlength', String(this._length))\n input.setAttribute('inputmode', this._type.inputmode)\n input.setAttribute('pattern', this._type.pattern)\n\n if (!input.getAttribute('autocomplete')) {\n input.setAttribute('autocomplete', 'one-time-code')\n }\n\n // Filter any pre-filled value through the configured type\n if (input.value) {\n input.value = this._sanitize(input.value)\n }\n }\n\n _renderSlots() {\n const container = document.createElement('div')\n container.className = CLASS_NAME_SLOTS\n container.setAttribute('aria-hidden', 'true')\n\n const { groups } = this._config\n let groupIndex = 0\n let inGroup = 0\n\n for (let i = 0; i < this._length; i++) {\n const slot = document.createElement('div')\n slot.className = CLASS_NAME_SLOT\n container.append(slot)\n this._slots.push(slot)\n\n // Insert a visual separator between configured groups\n if (Array.isArray(groups) && groups.length > 0) {\n inGroup++\n if (inGroup === groups[groupIndex] && i < this._length - 1) {\n const separator = document.createElement('div')\n separator.className = CLASS_NAME_SEPARATOR\n separator.textContent = this._config.separator\n container.append(separator)\n groupIndex = Math.min(groupIndex + 1, groups.length - 1)\n inGroup = 0\n }\n }\n }\n\n this._slotsContainer = container\n this._element.append(container)\n this._element.classList.add(CLASS_NAME_RENDERED)\n }\n\n _addEventListeners() {\n // Listeners are attached with bare event names (not namespaced) because\n // `input` is not in EventHandler's native-events list; we keep references\n // so they can be removed on dispose.\n this._onInput = () => this._handleInput()\n this._onFocus = () => this.focus()\n this._onSync = () => this._render()\n\n EventHandler.on(this._input, 'input', this._onInput)\n EventHandler.on(this._input, 'focus', this._onFocus)\n\n // Keep the active-slot highlight in sync with the caret\n for (const type of SYNC_EVENTS) {\n EventHandler.on(this._input, type, this._onSync)\n }\n }\n\n _handleInput() {\n const sanitized = this._sanitize(this._input.value)\n if (sanitized !== this._input.value) {\n this._input.value = sanitized\n }\n\n this._render()\n\n EventHandler.trigger(this._element, EVENT_INPUT, { value: this._input.value })\n\n this._checkComplete()\n }\n\n _sanitize(value) {\n return value.replace(this._type.filter, '').slice(0, this._length)\n }\n\n _render() {\n const { value } = this._input\n const isFocused = document.activeElement === this._input\n // The active slot follows the caret, clamped to the last slot when the value is full\n const caret = Math.min(this._input.selectionStart ?? value.length, this._length - 1)\n\n for (const [index, slot] of this._slots.entries()) {\n const char = value[index] ?? ''\n slot.textContent = char && this._config.mask ? MASK_CHARACTER : char\n slot.classList.toggle(CLASS_NAME_SLOT_FILLED, Boolean(char))\n slot.classList.toggle(CLASS_NAME_SLOT_ACTIVE, isFocused && index === caret)\n }\n }\n\n _checkComplete() {\n const { value } = this._input\n if (value.length === this._length) {\n EventHandler.trigger(this._element, EVENT_COMPLETE, { value })\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_DOMCONTENT_LOADED, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_OTP)) {\n OtpInput.getOrCreateInstance(element)\n }\n})\n\nexport default OtpInput\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap chips.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'chips'\nconst DATA_KEY = 'bs.chips'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ADD = `add${EVENT_KEY}`\nconst EVENT_REMOVE = `remove${EVENT_KEY}`\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SELECT = `select${EVENT_KEY}`\n\nconst SELECTOR_DATA_CHIPS = '[data-bs-chips]'\nconst SELECTOR_GHOST_INPUT = '.form-ghost'\nconst SELECTOR_CHIP = '.chip'\nconst SELECTOR_CHIP_DISMISS = '.chip-dismiss'\n\nconst CLASS_NAME_CHIP = 'chip'\nconst CLASS_NAME_CHIP_DISMISS = 'chip-dismiss'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst DEFAULT_DISMISS_ICON = '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><line x1=\"4\" y1=\"4\" x2=\"12\" y2=\"12\"/><line x1=\"12\" y1=\"4\" x2=\"4\" y2=\"12\"/></svg>'\n\nconst Default = {\n separator: ',',\n allowDuplicates: false,\n maxChips: null,\n placeholder: '',\n dismissible: true,\n dismissIcon: DEFAULT_DISMISS_ICON,\n createOnBlur: true\n}\n\nconst DefaultType = {\n separator: '(string|null)',\n allowDuplicates: 'boolean',\n maxChips: '(number|null)',\n placeholder: 'string',\n dismissible: 'boolean',\n dismissIcon: 'string',\n createOnBlur: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Chips extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = SelectorEngine.findOne(SELECTOR_GHOST_INPUT, this._element)\n this._chips = []\n this._selectedChips = new Set()\n this._anchorChip = null // For shift+click range selection\n\n if (!this._input) {\n this._createInput()\n }\n\n this._initializeExistingChips()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n add(value) {\n const trimmedValue = String(value).trim()\n\n if (!trimmedValue) {\n return null\n }\n\n // Check for duplicates\n if (!this._config.allowDuplicates && this._chips.includes(trimmedValue)) {\n return null\n }\n\n // Check max chips limit\n if (this._config.maxChips !== null && this._chips.length >= this._config.maxChips) {\n return null\n }\n\n const addEvent = EventHandler.trigger(this._element, EVENT_ADD, {\n value: trimmedValue,\n relatedTarget: this._input\n })\n\n if (addEvent.defaultPrevented) {\n return null\n }\n\n const chip = this._createChip(trimmedValue)\n this._element.insertBefore(chip, this._input)\n this._chips.push(trimmedValue)\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: this.getValues()\n })\n\n return chip\n }\n\n remove(chipOrValue) {\n let chip\n let value\n\n if (typeof chipOrValue === 'string') {\n value = chipOrValue\n chip = this._findChipByValue(value)\n } else {\n chip = chipOrValue\n value = this._getChipValue(chip)\n }\n\n if (!chip || !value) {\n return false\n }\n\n const removeEvent = EventHandler.trigger(this._element, EVENT_REMOVE, {\n value,\n chip,\n relatedTarget: this._input\n })\n\n if (removeEvent.defaultPrevented) {\n return false\n }\n\n // Remove from selection\n this._selectedChips.delete(chip)\n if (this._anchorChip === chip) {\n this._anchorChip = null\n }\n\n // Remove from DOM and array\n chip.remove()\n this._chips = this._chips.filter(v => v !== value)\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: this.getValues()\n })\n\n return true\n }\n\n removeSelected() {\n const chipsToRemove = [...this._selectedChips]\n for (const chip of chipsToRemove) {\n this.remove(chip)\n }\n\n this._input?.focus()\n }\n\n getValues() {\n return [...this._chips]\n }\n\n getSelectedValues() {\n return [...this._selectedChips].map(chip => this._getChipValue(chip))\n }\n\n clear() {\n const chips = SelectorEngine.find(SELECTOR_CHIP, this._element)\n for (const chip of chips) {\n chip.remove()\n }\n\n this._chips = []\n this._selectedChips.clear()\n this._anchorChip = null\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: []\n })\n }\n\n clearSelection() {\n for (const chip of this._selectedChips) {\n chip.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n this._selectedChips.clear()\n this._anchorChip = null\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: []\n })\n }\n\n selectChip(chip, options = {}) {\n const { addToSelection = false, rangeSelect = false } = options\n const chipElements = this._getChipElements()\n\n if (!chipElements.includes(chip)) {\n return\n }\n\n if (rangeSelect && this._anchorChip) {\n // Range selection from anchor to chip\n const anchorIndex = chipElements.indexOf(this._anchorChip)\n const chipIndex = chipElements.indexOf(chip)\n const start = Math.min(anchorIndex, chipIndex)\n const end = Math.max(anchorIndex, chipIndex)\n\n if (!addToSelection) {\n this.clearSelection()\n }\n\n for (let i = start; i <= end; i++) {\n this._selectedChips.add(chipElements[i])\n chipElements[i].classList.add(CLASS_NAME_ACTIVE)\n }\n } else if (addToSelection) {\n // Toggle selection\n if (this._selectedChips.has(chip)) {\n this._selectedChips.delete(chip)\n chip.classList.remove(CLASS_NAME_ACTIVE)\n } else {\n this._selectedChips.add(chip)\n chip.classList.add(CLASS_NAME_ACTIVE)\n this._anchorChip = chip\n }\n } else {\n // Single selection\n this.clearSelection()\n this._selectedChips.add(chip)\n chip.classList.add(CLASS_NAME_ACTIVE)\n this._anchorChip = chip\n }\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: this.getSelectedValues()\n })\n }\n\n focus() {\n this._input?.focus()\n }\n\n // Private\n _getChipElements() {\n return SelectorEngine.find(SELECTOR_CHIP, this._element)\n }\n\n _createInput() {\n const input = document.createElement('input')\n input.type = 'text'\n input.className = 'form-ghost'\n if (this._config.placeholder) {\n input.placeholder = this._config.placeholder\n }\n\n this._element.append(input)\n this._input = input\n }\n\n _initializeExistingChips() {\n const existingChips = SelectorEngine.find(SELECTOR_CHIP, this._element)\n for (const chip of existingChips) {\n const value = this._getChipValue(chip)\n if (value) {\n this._chips.push(value)\n this._setupChip(chip)\n }\n }\n }\n\n _setupChip(chip) {\n // Make chip focusable\n chip.setAttribute('tabindex', '0')\n\n // Add dismiss button if needed\n if (this._config.dismissible && !SelectorEngine.findOne(SELECTOR_CHIP_DISMISS, chip)) {\n chip.append(this._createDismissButton())\n }\n }\n\n _createChip(value) {\n const chip = document.createElement('span')\n chip.className = CLASS_NAME_CHIP\n chip.dataset.bsChipValue = value\n\n // Add text node\n chip.append(document.createTextNode(value))\n\n // Setup chip (tabindex, dismiss button)\n this._setupChip(chip)\n\n return chip\n }\n\n _createDismissButton() {\n const button = document.createElement('button')\n button.type = 'button'\n button.className = CLASS_NAME_CHIP_DISMISS\n button.setAttribute('aria-label', 'Remove')\n button.setAttribute('tabindex', '-1') // Not in tab order, chips handle keyboard\n button.innerHTML = this._config.dismissIcon\n return button\n }\n\n _findChipByValue(value) {\n const chips = this._getChipElements()\n return chips.find(chip => this._getChipValue(chip) === value)\n }\n\n _getChipValue(chip) {\n if (chip.dataset.bsChipValue) {\n return chip.dataset.bsChipValue\n }\n\n const clone = chip.cloneNode(true)\n const dismiss = SelectorEngine.findOne(SELECTOR_CHIP_DISMISS, clone)\n if (dismiss) {\n dismiss.remove()\n }\n\n return clone.textContent?.trim() || ''\n }\n\n _addEventListeners() {\n // Input events\n EventHandler.on(this._input, 'keydown', event => this._handleInputKeydown(event))\n EventHandler.on(this._input, 'input', event => this._handleInput(event))\n EventHandler.on(this._input, 'paste', event => this._handlePaste(event))\n EventHandler.on(this._input, 'focus', () => this.clearSelection())\n\n if (this._config.createOnBlur) {\n EventHandler.on(this._input, 'blur', event => {\n // Don't create chip if clicking on a chip\n if (!event.relatedTarget?.closest(SELECTOR_CHIP)) {\n this._createChipFromInput()\n }\n })\n }\n\n // Chip click events (delegated)\n EventHandler.on(this._element, 'click', SELECTOR_CHIP, event => {\n // Ignore clicks on dismiss button\n if (event.target.closest(SELECTOR_CHIP_DISMISS)) {\n return\n }\n\n const chip = event.target.closest(SELECTOR_CHIP)\n if (chip) {\n event.preventDefault()\n this.selectChip(chip, {\n addToSelection: event.metaKey || event.ctrlKey,\n rangeSelect: event.shiftKey\n })\n chip.focus()\n }\n })\n\n // Dismiss button clicks (delegated)\n EventHandler.on(this._element, 'click', SELECTOR_CHIP_DISMISS, event => {\n event.stopPropagation()\n const chip = event.target.closest(SELECTOR_CHIP)\n if (chip) {\n this.remove(chip)\n this._input?.focus()\n }\n })\n\n // Chip keyboard events (delegated)\n EventHandler.on(this._element, 'keydown', SELECTOR_CHIP, event => {\n this._handleChipKeydown(event)\n })\n\n // Focus input when clicking container background\n EventHandler.on(this._element, 'click', event => {\n if (event.target === this._element) {\n this.clearSelection()\n this._input?.focus()\n }\n })\n }\n\n _handleInputKeydown(event) {\n const { key } = event\n\n switch (key) {\n case 'Enter': {\n event.preventDefault()\n this._createChipFromInput()\n break\n }\n\n case 'Backspace':\n case 'Delete': {\n if (this._input.value === '') {\n event.preventDefault()\n const chips = this._getChipElements()\n\n if (chips.length > 0) {\n // Select last chip and focus it\n const lastChip = chips.at(-1)\n this.selectChip(lastChip)\n lastChip.focus()\n }\n }\n\n break\n }\n\n case 'ArrowLeft': {\n if (this._input.selectionStart === 0 && this._input.selectionEnd === 0) {\n event.preventDefault()\n const chips = this._getChipElements()\n if (chips.length > 0) {\n const lastChip = chips.at(-1)\n if (event.shiftKey) {\n this.selectChip(lastChip, { addToSelection: true })\n } else {\n this.selectChip(lastChip)\n }\n\n lastChip.focus()\n }\n }\n\n break\n }\n\n case 'Escape': {\n this._input.value = ''\n this.clearSelection()\n this._input.blur()\n break\n }\n\n // No default\n }\n }\n\n _handleChipKeydown(event) {\n const { key } = event\n const chip = event.target.closest(SELECTOR_CHIP)\n if (!chip) {\n return\n }\n\n const chips = this._getChipElements()\n const currentIndex = chips.indexOf(chip)\n\n switch (key) {\n case 'Backspace':\n case 'Delete': {\n event.preventDefault()\n this._handleChipDelete(currentIndex, chips)\n break\n }\n\n case 'ArrowLeft': {\n event.preventDefault()\n this._navigateChip(chips, currentIndex, -1, event.shiftKey)\n break\n }\n\n case 'ArrowRight': {\n event.preventDefault()\n this._navigateChip(chips, currentIndex, 1, event.shiftKey)\n break\n }\n\n case 'Home': {\n event.preventDefault()\n this._navigateToEdge(chips, 0, event.shiftKey)\n break\n }\n\n case 'End': {\n event.preventDefault()\n this.clearSelection()\n this._input?.focus()\n break\n }\n\n case 'a': {\n this._handleSelectAll(event, chips)\n break\n }\n\n case 'Escape': {\n event.preventDefault()\n this.clearSelection()\n this._input?.focus()\n break\n }\n\n // No default\n }\n }\n\n _handleChipDelete(currentIndex, chips) {\n if (this._selectedChips.size === 0) {\n return\n }\n\n const nextIndex = Math.min(currentIndex, chips.length - this._selectedChips.size - 1)\n this.removeSelected()\n\n const remainingChips = this._getChipElements()\n if (remainingChips.length > 0) {\n const focusIndex = Math.max(0, Math.min(nextIndex, remainingChips.length - 1))\n remainingChips[focusIndex].focus()\n this.selectChip(remainingChips[focusIndex])\n } else {\n this._input?.focus()\n }\n }\n\n _navigateChip(chips, currentIndex, direction, shiftKey) {\n const targetIndex = currentIndex + direction\n\n if (direction < 0 && targetIndex >= 0) {\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { addToSelection: true, rangeSelect: true } : {})\n targetChip.focus()\n } else if (direction > 0 && targetIndex < chips.length) {\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { addToSelection: true, rangeSelect: true } : {})\n targetChip.focus()\n } else if (direction > 0) {\n this.clearSelection()\n this._input?.focus()\n }\n }\n\n _navigateToEdge(chips, targetIndex, shiftKey) {\n if (chips.length === 0) {\n return\n }\n\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { rangeSelect: true } : {})\n targetChip.focus()\n }\n\n _handleSelectAll(event, chips) {\n if (!(event.metaKey || event.ctrlKey)) {\n return\n }\n\n event.preventDefault()\n for (const c of chips) {\n this._selectedChips.add(c)\n c.classList.add(CLASS_NAME_ACTIVE)\n }\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: this.getSelectedValues()\n })\n }\n\n _handleInput(event) {\n const { value } = event.target\n const { separator } = this._config\n\n if (separator && value.includes(separator)) {\n const parts = value.split(separator)\n for (const part of parts.slice(0, -1)) {\n this.add(part.trim())\n }\n\n this._input.value = parts.at(-1)\n }\n }\n\n _handlePaste(event) {\n const { separator } = this._config\n if (!separator) {\n return\n }\n\n const pastedData = (event.clipboardData || window.clipboardData).getData('text')\n if (pastedData.includes(separator)) {\n event.preventDefault()\n\n const parts = pastedData.split(separator)\n for (const part of parts) {\n this.add(part.trim())\n }\n }\n }\n\n _createChipFromInput() {\n const value = this._input.value.trim()\n if (value) {\n this.add(value)\n this._input.value = ''\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_CHIPS)) {\n Chips.getOrCreateInstance(element)\n }\n})\n\nexport default Chips\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n// js-docs-end allow-list\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue))\n }\n\n return true\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n .some(regex => regex.test(attributeName))\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const elements = [...createdDocument.body.querySelectorAll('*')]\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n continue\n }\n\n const attributeList = [...element.attributes]\n const allowedAttributes = [...(allowList['*'] || []), ...(allowList[elementName] || [])]\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'\nimport { execute, getElement, isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'TemplateFactory'\n\nconst Default = {\n allowList: DefaultAllowlist,\n content: {}, // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '<div></div>'\n}\n\nconst DefaultType = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n}\n\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content)\n .map(config => this._resolvePossibleFunction(config))\n .filter(Boolean)\n }\n\n hasContent() {\n return this.getContent().length > 0\n }\n\n changeContent(content) {\n this._checkContent(content)\n this._config.content = { ...this._config.content, ...content }\n return this\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div')\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template)\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector)\n }\n\n const template = templateWrapper.children[0]\n const extraClass = this._resolvePossibleFunction(this._config.extraClass)\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '))\n }\n\n return template\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config)\n this._checkContent(config.content)\n }\n\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({ selector, entry: content }, DefaultContentType)\n }\n }\n\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template)\n\n if (!templateElement) {\n return\n }\n\n content = this._resolvePossibleFunction(content)\n\n if (!content) {\n templateElement.remove()\n return\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement)\n return\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content)\n return\n }\n\n templateElement.textContent = content\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [undefined, this])\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = ''\n templateElement.append(element)\n return\n }\n\n templateElement.textContent = element.textContent\n }\n}\n\nexport default TemplateFactory\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n computePosition,\n flip,\n shift,\n offset,\n arrow,\n autoUpdate\n} from '@floating-ui/dom'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport {\n execute, findShadowRoot, getElement, getUID, isRTL, noop\n} from './util/index.js'\nimport { DefaultAllowlist } from './util/sanitizer.js'\nimport TemplateFactory from './util/template-factory.js'\nimport {\n parseResponsivePlacement,\n getResponsivePlacement,\n createBreakpointListeners,\n disposeBreakpointListeners\n} from './util/floating-ui.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tooltip\"]'\n\nconst EVENT_MODAL_HIDE = 'hide.bs.modal'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\nconst EVENT_HIDE = 'hide'\nconst EVENT_HIDDEN = 'hidden'\nconst EVENT_SHOW = 'show'\nconst EVENT_SHOWN = 'shown'\nconst EVENT_INSERTED = 'inserted'\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_FOCUSOUT = 'focusout'\nconst EVENT_MOUSEENTER = 'mouseenter'\nconst EVENT_MOUSELEAVE = 'mouseleave'\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n}\n\nconst Default = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n floatingConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n title: '',\n trigger: 'hover focus'\n}\n\nconst DefaultType = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n floatingConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof computePosition === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Floating UI (https://floating-ui.com)')\n }\n\n super(element, config)\n\n // Private\n this._isEnabled = true\n this._timeout = 0\n this._isHovered = null\n this._activeTrigger = {}\n this._floatingCleanup = null\n this._templateFactory = null\n this._newContent = null\n this._mediaQueryListeners = []\n this._responsivePlacements = null\n\n // Protected\n this.tip = null\n\n this._parseResponsivePlacements()\n this._setListeners()\n\n if (!this._config.selector) {\n this._fixTitle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle() {\n if (!this._isEnabled) {\n return\n }\n\n if (this._isShown()) {\n this._leave()\n return\n }\n\n this._enter()\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'))\n }\n\n this._disposeFloating()\n this._disposeMediaQueryListeners()\n super.dispose()\n }\n\n async show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (!(this._isWithContent() && this._isEnabled)) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW))\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n this._disposeFloating()\n\n const tip = this._getTipElement()\n\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'))\n\n let { container } = this._config\n const closestDialog = this._element.closest('dialog[open]')\n if (closestDialog && container === document.body) {\n container = closestDialog\n }\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip)\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED))\n }\n\n await this._createFloating(tip)\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN))\n\n if (this._isHovered === false) {\n this._leave()\n }\n\n this._isHovered = false\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE))\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const tip = this._getTipElement()\n tip.classList.remove(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n this._isHovered = null // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (!this._isHovered) {\n this._disposeFloating()\n }\n\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN))\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n update() {\n if (this._floatingCleanup && this.tip) {\n this._updateFloatingPosition()\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle())\n }\n\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())\n }\n\n return this.tip\n }\n\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml()\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n tip.classList.add(`bs-${this.constructor.NAME}-auto`)\n\n const tipId = getUID(this.constructor.NAME).toString()\n\n tip.setAttribute('id', tipId)\n\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n return tip\n }\n\n setContent(content) {\n this._newContent = content\n if (this._isShown()) {\n this._disposeFloating()\n this.show()\n }\n }\n\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content)\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n })\n }\n\n return this._templateFactory\n }\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n }\n }\n\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title')\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\n }\n\n _isAnimated() {\n return this._config.animation || (this.tip && this.tip.classList.contains(CLASS_NAME_FADE))\n }\n\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement(tip) {\n // If we have responsive placements, get the one for current viewport\n if (this._responsivePlacements) {\n const placement = getResponsivePlacement(this._responsivePlacements, 'top')\n return AttachmentMap[placement.toUpperCase()] || placement\n }\n\n // Execute placement (can be a function)\n const placement = execute(this._config.placement, [this, tip, this._element])\n return AttachmentMap[placement.toUpperCase()] || placement\n }\n\n _parseResponsivePlacements() {\n // Only parse if placement is a string (not a function)\n if (typeof this._config.placement !== 'string') {\n this._responsivePlacements = null\n return\n }\n\n this._responsivePlacements = parseResponsivePlacement(this._config.placement, 'top')\n\n if (this._responsivePlacements) {\n this._setupMediaQueryListeners()\n }\n }\n\n _setupMediaQueryListeners() {\n this._disposeMediaQueryListeners()\n this._mediaQueryListeners = createBreakpointListeners(() => {\n if (this._isShown()) {\n this._updateFloatingPosition()\n }\n })\n }\n\n _disposeMediaQueryListeners() {\n disposeBreakpointListeners(this._mediaQueryListeners)\n this._mediaQueryListeners = []\n }\n\n async _createFloating(tip) {\n const placement = this._getPlacement(tip)\n const arrowElement = tip.querySelector(`.${this.constructor.NAME}-arrow`)\n\n // Initial position update\n await this._updateFloatingPosition(tip, placement, arrowElement)\n\n // Set up auto-update for scroll/resize\n this._floatingCleanup = autoUpdate(\n this._element,\n tip,\n () => this._updateFloatingPosition(tip, null, arrowElement)\n )\n }\n\n async _updateFloatingPosition(tip = this.tip, placement = null, arrowElement = null) {\n if (!tip) {\n return\n }\n\n if (!placement) {\n placement = this._getPlacement(tip)\n }\n\n if (!arrowElement) {\n arrowElement = tip.querySelector(`.${this.constructor.NAME}-arrow`)\n }\n\n const middleware = this._getFloatingMiddleware(arrowElement)\n const floatingConfig = this._getFloatingConfig(placement, middleware)\n\n const { x, y, placement: finalPlacement, middlewareData } = await computePosition(\n this._element,\n tip,\n floatingConfig\n )\n\n // Apply position to tooltip\n Object.assign(tip.style, {\n position: 'absolute',\n left: `${x}px`,\n top: `${y}px`\n })\n\n // Ensure arrow is absolutely positioned within tooltip\n if (arrowElement) {\n arrowElement.style.position = 'absolute'\n }\n\n // Set placement attribute for CSS arrow styling\n Manipulator.setDataAttribute(tip, 'placement', finalPlacement)\n\n // Position arrow along the edge (center it) if present\n // The CSS handles which edge to place it on via data-bs-placement\n if (arrowElement && middlewareData.arrow) {\n const { x: arrowX, y: arrowY } = middlewareData.arrow\n const isVertical = finalPlacement.startsWith('top') || finalPlacement.startsWith('bottom')\n\n // Only set the cross-axis position (centering along the edge)\n // The main-axis position (which edge) is handled by CSS\n Object.assign(arrowElement.style, {\n left: isVertical && arrowX !== null ? `${arrowX}px` : '',\n top: !isVertical && arrowY !== null ? `${arrowY}px` : '',\n // Reset the other axis to let CSS handle it\n right: '',\n bottom: ''\n })\n }\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offset === 'function') {\n // Floating UI passes different args, adapt the interface for offset function callbacks\n return ({ placement, rects }) => {\n const result = offset({ placement, reference: rects.reference, floating: rects.floating }, this._element)\n return result\n }\n }\n\n return offset\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element, this._element])\n }\n\n _getFloatingMiddleware(arrowElement) {\n const offsetValue = this._getOffset()\n\n const middleware = [\n // Offset middleware - handles distance from reference\n offset(\n typeof offsetValue === 'function' ?\n offsetValue :\n { mainAxis: offsetValue[1] || 0, crossAxis: offsetValue[0] || 0 }\n ),\n // Flip middleware - handles fallback placements\n flip({\n fallbackPlacements: this._config.fallbackPlacements\n }),\n // Shift middleware - prevents overflow\n shift({\n boundary: this._config.boundary === 'clippingParents' ? 'clippingAncestors' : this._config.boundary\n })\n ]\n\n // Arrow middleware - positions the arrow element\n if (arrowElement) {\n middleware.push(arrow({ element: arrowElement }))\n }\n\n return middleware\n }\n\n _getFloatingConfig(placement, middleware) {\n const defaultConfig = {\n placement,\n middleware\n }\n\n return {\n ...defaultConfig,\n ...execute(this._config.floatingConfig, [undefined, defaultConfig])\n }\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ')\n\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[TRIGGER_CLICK] = !(context._isShown() && context._activeTrigger[TRIGGER_CLICK])\n context.toggle()\n })\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSEENTER) :\n this.constructor.eventName(EVENT_FOCUSIN)\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSELEAVE) :\n this.constructor.eventName(EVENT_FOCUSOUT)\n\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true\n context._enter()\n })\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] =\n context._element.contains(event.relatedTarget)\n\n context._leave()\n })\n }\n }\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n\n if (!title) {\n return\n }\n\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('data-bs-original-title', title) // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title')\n }\n\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true\n return\n }\n\n this._isHovered = true\n\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show()\n }\n }, this._config.delay.show)\n }\n\n _leave() {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n this._isHovered = false\n\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide()\n }\n }, this._config.delay.hide)\n }\n\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout)\n this._timeout = setTimeout(handler, timeout)\n }\n\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true)\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute]\n }\n }\n\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container)\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value\n }\n }\n\n config.selector = false\n config.trigger = 'manual'\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config\n }\n\n _disposeFloating() {\n if (this._floatingCleanup) {\n this._floatingCleanup()\n this._floatingCleanup = null\n }\n\n if (this.tip) {\n this.tip.remove()\n this.tip = null\n }\n }\n}\n\n/**\n * Data API implementation - auto-initialize tooltips\n */\n\nconst initTooltip = event => {\n const target = event.target.closest(SELECTOR_DATA_TOGGLE)\n if (!target) {\n return\n }\n\n // Lazily create the instance. The instance's own `_setListeners()` registers\n // the appropriate listeners on the element for the configured triggers\n // (hover/focus by default), so we don't mutate `_activeTrigger` or call\n // `_enter` here — doing so would show tooltips for triggers the user didn't\n // opt into (e.g. `focusin` firing for click-focused buttons in Chromium,\n // even when `trigger=\"hover\"` or `trigger=\"manual\"`) and leave stale state\n // on `_activeTrigger`.\n Tooltip.getOrCreateInstance(target)\n}\n\n// Auto-initialize tooltips on first interaction for hover and focus triggers\nEventHandler.on(document, EVENT_FOCUSIN, SELECTOR_DATA_TOGGLE, initTooltip)\nEventHandler.on(document, EVENT_MOUSEENTER, SELECTOR_DATA_TOGGLE, initTooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Tooltip from './tooltip.js'\nimport EventHandler from './dom/event-handler.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'popover'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"popover\"]'\n\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_MOUSEENTER = 'mouseenter'\n\nconst Default = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div>' +\n '</div>',\n trigger: 'click'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n}\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent()\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n }\n }\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content)\n }\n}\n\n/**\n * Data API implementation - auto-initialize popovers\n */\n\nconst initPopover = event => {\n const target = event.target.closest(SELECTOR_DATA_TOGGLE)\n if (!target) {\n return\n }\n\n // Prevent default for click events to avoid navigation (e.g. <a href=\"#\">)\n if (event.type === 'click') {\n event.preventDefault()\n }\n\n // Lazily create the instance. The instance's own `_setListeners()` registers\n // the appropriate listeners on the element for the configured triggers\n // (click/focus/hover), so we don't toggle or call `_enter` here — doing so\n // would duplicate handlers and leave stale state on `_activeTrigger`.\n Popover.getOrCreateInstance(target)\n}\n\n// Auto-initialize popovers on first interaction for click, hover, and focus triggers\nEventHandler.on(document, EVENT_CLICK, SELECTOR_DATA_TOGGLE, initPopover)\nEventHandler.on(document, EVENT_FOCUSIN, SELECTOR_DATA_TOGGLE, initPopover)\nEventHandler.on(document, EVENT_MOUSEENTER, SELECTOR_DATA_TOGGLE, initPopover)\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getElement, isDisabled, isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_MENU_ITEM = 'menu-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]'\nconst SELECTOR_TARGET_LINKS = '[href]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\nconst SELECTOR_MENU_TOGGLE = '[data-bs-toggle=\"menu\"]'\n\nconst Default = {\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n}\n\nconst DefaultType = {\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n}\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map()\n this._observableSections = new Map()\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element\n this._activeTarget = null\n this._observer = null\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n }\n this.refresh() // initialize\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables()\n this._maybeEnableSmoothScroll()\n\n if (this._observer) {\n this._observer.disconnect()\n } else {\n this._observer = this._getNewObserver()\n }\n\n for (const section of this._observableSections.values()) {\n this._observer.observe(section)\n }\n }\n\n dispose() {\n this._observer.disconnect()\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n config.target = getElement(config.target) || document.body\n\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value))\n }\n\n return config\n }\n\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK)\n\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash)\n if (observableSection) {\n event.preventDefault()\n const root = this._rootElement || window\n const height = observableSection.offsetTop - this._element.offsetTop\n if (root.scrollTo) {\n root.scrollTo({ top: height, behavior: 'smooth' })\n return\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height\n }\n })\n }\n\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n }\n\n return new IntersectionObserver(entries => this._observerCallback(entries), options)\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`)\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop\n this._process(targetElement(entry))\n }\n\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop\n this._previousScrollData.parentScrollTop = parentScrollTop\n\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null\n this._clearActiveClass(targetElement(entry))\n\n continue\n }\n\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry)\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return\n }\n\n continue\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry)\n }\n }\n }\n\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map()\n this._observableSections = new Map()\n\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target)\n\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue\n }\n\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element)\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor)\n this._observableSections.set(anchor.hash, observableSection)\n }\n }\n }\n\n _process(target) {\n if (this._activeTarget === target) {\n return\n }\n\n this._clearActiveClass(this._config.target)\n this._activeTarget = target\n target.classList.add(CLASS_NAME_ACTIVE)\n this._activateParents(target)\n\n EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target })\n }\n\n _activateParents(target) {\n // Activate menu parents\n if (target.classList.contains(CLASS_NAME_MENU_ITEM)) {\n const menuToggle = target.closest('.menu')?.previousElementSibling\n if (menuToggle?.matches(SELECTOR_MENU_TOGGLE)) {\n menuToggle.classList.add(CLASS_NAME_ACTIVE)\n }\n\n return\n }\n\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {\n item.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _clearActiveClass(parent) {\n parent.classList.remove(CLASS_NAME_ACTIVE)\n\n const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE}`, parent)\n for (const node of activeNodes) {\n node.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {\n ScrollSpy.getOrCreateInstance(spy)\n }\n})\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { getNextActiveElement, isDisabled } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst SELECTOR_MENU_TOGGLE = '[data-bs-toggle=\"menu\"]'\nconst SELECTOR_MENU = '.menu'\nconst NOT_SELECTOR_MENU_TOGGLE = `:not(${SELECTOR_MENU_TOGGLE})`\n\nconst SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]'\nconst SELECTOR_OUTER = '.nav-item, .list-group-item'\nconst SELECTOR_INNER = `.nav-link${NOT_SELECTOR_MENU_TOGGLE}, .list-group-item${NOT_SELECTOR_MENU_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_MENU_TOGGLE}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"]'\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`\n\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"]`\n\n/**\n * Class definition\n */\n\nclass Tab extends BaseComponent {\n constructor(element) {\n super(element)\n this._parent = this._element.closest(SELECTOR_TAB_PANEL)\n\n if (!this._parent) {\n return\n // TODO: should throw exception in v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_TAB_PANEL}`)\n }\n\n // Set up initial aria attributes\n this._setInitialAttributes(this._parent, this._getChildren())\n\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n show() { // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element\n if (this._elemIsActive(innerElem)) {\n return\n }\n\n // Search for active tab on same parent to deactivate it\n const active = this._getActiveElem()\n\n const hideEvent = active ?\n EventHandler.trigger(active, EVENT_HIDE, { relatedTarget: innerElem }) :\n null\n\n const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { relatedTarget: active })\n\n if (showEvent.defaultPrevented || (hideEvent && hideEvent.defaultPrevented)) {\n return\n }\n\n this._deactivate(active, innerElem)\n this._activate(innerElem, active)\n }\n\n // Private\n _activate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n\n this._activate(SelectorEngine.getElementFromSelector(element)) // Search and activate/show the proper section\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW)\n return\n }\n\n element.removeAttribute('tabindex')\n element.setAttribute('aria-selected', true)\n this._toggleMenu(element, true)\n EventHandler.trigger(element, EVENT_SHOWN, {\n relatedTarget: relatedElem\n })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _deactivate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.remove(CLASS_NAME_ACTIVE)\n element.blur()\n\n this._deactivate(SelectorEngine.getElementFromSelector(element)) // Search and deactivate the shown section too\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW)\n return\n }\n\n element.setAttribute('aria-selected', false)\n element.setAttribute('tabindex', '-1')\n this._toggleMenu(element, false)\n EventHandler.trigger(element, EVENT_HIDDEN, { relatedTarget: relatedElem })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _keydown(event) {\n if (!([ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key))) {\n return\n }\n\n event.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n event.preventDefault()\n\n const children = this._getChildren().filter(element => !isDisabled(element))\n let nextActiveElement\n\n if ([HOME_KEY, END_KEY].includes(event.key)) {\n nextActiveElement = event.key === HOME_KEY ? children[0] : children.at(-1)\n } else {\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\n nextActiveElement = getNextActiveElement(children, event.target, isNext, true)\n }\n\n if (nextActiveElement) {\n nextActiveElement.focus({ preventScroll: true })\n Tab.getOrCreateInstance(nextActiveElement).show()\n }\n }\n\n _getChildren() { // collection of inner elements\n return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent)\n }\n\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null\n }\n\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist')\n\n for (const child of children) {\n this._setInitialAttributesOnChild(child)\n }\n }\n\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child)\n const isActive = this._elemIsActive(child)\n const outerElem = this._getOuterElement(child)\n child.setAttribute('aria-selected', isActive)\n\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation')\n }\n\n if (!isActive) {\n child.setAttribute('tabindex', '-1')\n }\n\n this._setAttributeIfNotExists(child, 'role', 'tab')\n\n // set attributes to the related panel too\n this._setInitialAttributesOnTargetPanel(child)\n }\n\n _setInitialAttributesOnTargetPanel(child) {\n const target = SelectorEngine.getElementFromSelector(child)\n\n if (!target) {\n return\n }\n\n this._setAttributeIfNotExists(target, 'role', 'tabpanel')\n\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`)\n }\n }\n\n _toggleMenu(element, open) {\n const outerElem = this._getOuterElement(element)\n const menuToggle = SelectorEngine.findOne(SELECTOR_MENU_TOGGLE, outerElem)\n if (!menuToggle) {\n return\n }\n\n const menu = SelectorEngine.findOne(SELECTOR_MENU, outerElem)\n\n menuToggle.classList.toggle(CLASS_NAME_ACTIVE, open)\n if (menu) {\n menu.classList.toggle(CLASS_NAME_SHOW, open)\n }\n\n menuToggle.setAttribute('aria-expanded', open)\n }\n\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value)\n }\n }\n\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n // Try to get the inner element (usually the .nav-link)\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem)\n }\n\n // Try to get the outer element (usually the .nav-item)\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n Tab.getOrCreateInstance(this).show()\n})\n\n/**\n * Initialize on focus\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element)\n }\n})\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { reflow } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`\nconst EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_FOCUSOUT = `focusout${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide' // @deprecated - kept here only for backwards compatibility\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 5000\n}\n\n/**\n * Class definition\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._timeout = null\n this._hasMouseInteraction = false\n this._hasKeyboardInteraction = false\n this._setListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n show() {\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n this._maybeScheduleHide()\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE) // @deprecated\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING)\n\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n hide() {\n if (!this.isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE) // @deprecated\n this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.add(CLASS_NAME_SHOWING)\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this.isShown()) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n super.dispose()\n }\n\n isShown() {\n return this._element.classList.contains(CLASS_NAME_SHOW)\n }\n\n // Private\n _maybeScheduleHide() {\n if (!this._config.autohide) {\n return\n }\n\n if (this._hasMouseInteraction || this._hasKeyboardInteraction) {\n return\n }\n\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n\n _onInteraction(event, isInteracting) {\n switch (event.type) {\n case 'mouseover':\n case 'mouseout': {\n this._hasMouseInteraction = isInteracting\n break\n }\n\n case 'focusin':\n case 'focusout': {\n this._hasKeyboardInteraction = isInteracting\n break\n }\n\n default: {\n break\n }\n }\n\n if (isInteracting) {\n this._clearTimeout()\n return\n }\n\n const nextElement = event.relatedTarget\n if (this._element === nextElement || this._element.contains(nextElement)) {\n return\n }\n\n this._maybeScheduleHide()\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false))\n EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false))\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Toast)\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap toggler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { eventActionOnPlugin } from './util/component-functions.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'toggler'\nconst DATA_KEY = 'bs.toggler'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_TOGGLE = `toggle${EVENT_KEY}`\nconst EVENT_TOGGLED = `toggled${EVENT_KEY}`\nconst EVENT_CLICK = 'click'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"toggler\"]'\n\nconst DefaultType = {\n attribute: 'string',\n value: '(string|number|boolean)'\n}\n\nconst Default = {\n attribute: 'class',\n value: null\n}\n\n/**\n * Class definition\n */\n\nclass Toggler extends BaseComponent {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n const toggleEvent = EventHandler.trigger(this._element, EVENT_TOGGLE)\n\n if (toggleEvent.defaultPrevented) {\n return\n }\n\n this._execute()\n\n EventHandler.trigger(this._element, EVENT_TOGGLED)\n }\n\n // Private\n _execute() {\n const { attribute, value } = this._config\n\n if (attribute === 'id') {\n return // You have to be kidding\n }\n\n if (attribute === 'class') {\n this._element.classList.toggle(value)\n return\n }\n\n // Compare as strings since getAttribute() always returns a string\n if (this._element.getAttribute(attribute) === String(value)) {\n this._element.removeAttribute(attribute)\n return\n }\n\n this._element.setAttribute(attribute, value)\n }\n}\n\n/**\n * Data API implementation\n */\n\neventActionOnPlugin(Toggler, EVENT_CLICK, SELECTOR_DATA_TOGGLE, 'toggle')\n\nexport default Toggler\n"],"mappings":"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","ignoreList":[]}
\ No newline at end of file
return false;
}
const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible';
- // Handle `details` element as its content may falsie appear visible when it is closed
+ // Handle `details` element as its content may falsely appear visible when it is closed
const closedDetails = element.closest('details:not([open])');
if (!closedDetails) {
return elementIsVisible;
const EVENT_KEY$h = `.${DATA_KEY$g}`;
const EVENT_CLOSE = `close${EVENT_KEY$h}`;
const EVENT_CLOSED = `closed${EVENT_KEY$h}`;
-const CLASS_NAME_FADE$3 = 'fade';
+const CLASS_NAME_FADE$4 = 'fade';
const CLASS_NAME_SHOW$6 = 'show';
/**
return;
}
this._element.classList.remove(CLASS_NAME_SHOW$6);
- const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$3);
+ const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$4);
this._queueCallback(() => this._destroyElement(), this._element, isAnimated);
}
data.toggle();
});
-/**
- * --------------------------------------------------------------------------
- * Bootstrap util/swipe.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-
-/**
- * Constants
- */
-
-const NAME$i = 'swipe';
-const EVENT_KEY$f = '.bs.swipe';
-const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$f}`;
-const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$f}`;
-const EVENT_TOUCHEND = `touchend${EVENT_KEY$f}`;
-const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$f}`;
-const EVENT_POINTERUP = `pointerup${EVENT_KEY$f}`;
-const POINTER_TYPE_TOUCH = 'touch';
-const POINTER_TYPE_PEN = 'pen';
-const CLASS_NAME_POINTER_EVENT = 'pointer-event';
-const SWIPE_THRESHOLD = 40;
-const Default$h = {
- endCallback: null,
- leftCallback: null,
- rightCallback: null,
- upCallback: null,
- downCallback: null
-};
-const DefaultType$h = {
- endCallback: '(function|null)',
- leftCallback: '(function|null)',
- rightCallback: '(function|null)',
- upCallback: '(function|null)',
- downCallback: '(function|null)'
-};
-
-/**
- * Class definition
- */
-
-class Swipe extends Config {
- constructor(element, config) {
- super();
- this._element = element;
- if (!element || !Swipe.isSupported()) {
- return;
- }
- this._config = this._getConfig(config);
- this._deltaX = 0;
- this._deltaY = 0;
- this._supportPointerEvents = Boolean(window.PointerEvent);
- this._initEvents();
- }
-
- // Getters
- static get Default() {
- return Default$h;
- }
- static get DefaultType() {
- return DefaultType$h;
- }
- static get NAME() {
- return NAME$i;
- }
-
- // Public
- dispose() {
- EventHandler.off(this._element, EVENT_KEY$f);
- }
-
- // Private
- _start(event) {
- if (!this._supportPointerEvents) {
- this._deltaX = event.touches[0].clientX;
- this._deltaY = event.touches[0].clientY;
- return;
- }
- if (this._eventIsPointerPenTouch(event)) {
- this._deltaX = event.clientX;
- this._deltaY = event.clientY;
- }
- }
- _end(event) {
- if (this._eventIsPointerPenTouch(event)) {
- this._deltaX = event.clientX - this._deltaX;
- this._deltaY = event.clientY - this._deltaY;
- }
- this._handleSwipe();
- execute(this._config.endCallback);
- }
- _move(event) {
- if (event.touches && event.touches.length > 1) {
- this._deltaX = 0;
- this._deltaY = 0;
- return;
- }
- this._deltaX = event.touches[0].clientX - this._deltaX;
- this._deltaY = event.touches[0].clientY - this._deltaY;
- }
- _handleSwipe() {
- const absDeltaX = Math.abs(this._deltaX);
- const absDeltaY = Math.abs(this._deltaY);
-
- // Determine primary axis: whichever has greater movement wins
- if (absDeltaY > absDeltaX && absDeltaY > SWIPE_THRESHOLD) {
- // Vertical swipe
- const direction = this._deltaY > 0 ? 'down' : 'up';
- this._deltaX = 0;
- this._deltaY = 0;
- execute(direction === 'down' ? this._config.downCallback : this._config.upCallback);
- return;
- }
- if (absDeltaX > SWIPE_THRESHOLD) {
- // Horizontal swipe
- const direction = absDeltaX / this._deltaX;
- this._deltaX = 0;
- this._deltaY = 0;
- if (!direction) {
- return;
- }
- execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);
- return;
- }
- this._deltaX = 0;
- this._deltaY = 0;
- }
- _initEvents() {
- if (this._supportPointerEvents) {
- EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));
- EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));
- this._element.classList.add(CLASS_NAME_POINTER_EVENT);
- } else {
- EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));
- EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));
- EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));
- }
- }
- _eventIsPointerPenTouch(event) {
- return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);
- }
-
- // Static
- static isSupported() {
- return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
- }
-}
-
/**
* --------------------------------------------------------------------------
* Bootstrap carousel.js
* Constants
*/
-const NAME$h = 'carousel';
+const NAME$i = 'carousel';
const DATA_KEY$e = 'bs.carousel';
-const EVENT_KEY$e = `.${DATA_KEY$e}`;
+const EVENT_KEY$f = `.${DATA_KEY$e}`;
const DATA_API_KEY$a = '.data-api';
const ARROW_LEFT_KEY$2 = 'ArrowLeft';
const ARROW_RIGHT_KEY$2 = 'ArrowRight';
-const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
-
-const ORDER_NEXT = 'next';
-const ORDER_PREV = 'prev';
const DIRECTION_LEFT = 'left';
const DIRECTION_RIGHT = 'right';
-const EVENT_SLIDE = `slide${EVENT_KEY$e}`;
-const EVENT_SLID = `slid${EVENT_KEY$e}`;
-const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$e}`;
-const EVENT_MOUSEENTER$2 = `mouseenter${EVENT_KEY$e}`;
-const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$e}`;
-const EVENT_DRAG_START = `dragstart${EVENT_KEY$e}`;
-const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$e}${DATA_API_KEY$a}`;
-const EVENT_CLICK_DATA_API$7 = `click${EVENT_KEY$e}${DATA_API_KEY$a}`;
+const EVENT_SLIDE = `slide${EVENT_KEY$f}`;
+const EVENT_SLID = `slid${EVENT_KEY$f}`;
+const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$f}`;
+const EVENT_MOUSEENTER$2 = `mouseenter${EVENT_KEY$f}`;
+const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$f}`;
+const EVENT_POINTERDOWN$1 = `pointerdown${EVENT_KEY$f}`;
+const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$f}${DATA_API_KEY$a}`;
+const EVENT_CLICK_DATA_API$7 = `click${EVENT_KEY$f}${DATA_API_KEY$a}`;
const CLASS_NAME_CAROUSEL = 'carousel';
const CLASS_NAME_ACTIVE$3 = 'active';
-const CLASS_NAME_SLIDE = 'slide';
-const CLASS_NAME_END = 'carousel-item-end';
-const CLASS_NAME_START = 'carousel-item-start';
-const CLASS_NAME_NEXT = 'carousel-item-next';
-const CLASS_NAME_PREV = 'carousel-item-prev';
+const CLASS_NAME_FADE$3 = 'carousel-fade';
+const CLASS_NAME_CENTER = 'carousel-center';
+const CLASS_NAME_AUTO = 'carousel-auto';
+const CLASS_NAME_CLONE = 'carousel-item-clone';
+const CLASS_NAME_PAUSED = 'paused';
+// Added to the root while the autoplay timer is running, so CSS can fill the
+// active indicator like a progress bar over the current slide's interval.
+const CLASS_NAME_PLAYING = 'carousel-playing';
+
+// Shipped (`--bs-`-prefixed) custom property the indicator fill animation reads
+// for its duration. The build prefixes every custom property, so the bare
+// `--carousel-interval` used in the SCSS source becomes this at runtime.
+const PROPERTY_INTERVAL = '--bs-carousel-interval';
+
+// How many frames the scroll-settle watcher waits when no movement is ever
+// detected (clamped programmatic scroll, or `scrollBy` stubbed in tests) before
+// it gives up and restores snapping anyway.
+const SCROLL_SETTLE_MAX_FRAMES = 10;
+
+// How far below the most-visible slide a slide's IntersectionRatio can be while
+// still counting as the active (left-most) slide. After a programmatic scroll
+// the viewport rests a sub-pixel past the snap offset, leaving the intended
+// slide a hair less visible than its fully-in neighbors; the tolerance prevents
+// that rounding from skipping the active index forward.
+const ACTIVE_RATIO_TOLERANCE = 0.05;
const SELECTOR_ACTIVE = '.active';
-const SELECTOR_ITEM = '.carousel-item';
+// Exclude transient loop clones so index math, indicators, and active-slide
+// detection only ever see the real slides.
+const SELECTOR_ITEM = `.carousel-item:not(.${CLASS_NAME_CLONE})`;
const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;
-const SELECTOR_ITEM_IMG = '.carousel-item img';
+const SELECTOR_INNER$1 = '.carousel-inner';
const SELECTOR_INDICATORS = '.carousel-indicators';
+const SELECTOR_PLAY_PAUSE = '.carousel-control-play-pause';
const SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';
-const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
+const SELECTOR_DATA_SLIDE_PREV = '[data-bs-slide="prev"]';
+const SELECTOR_DATA_SLIDE_NEXT = '[data-bs-slide="next"]';
+const SELECTOR_DATA_AUTOPLAY = '[data-bs-autoplay="true"]';
const KEY_TO_DIRECTION = {
[ARROW_LEFT_KEY$2]: DIRECTION_RIGHT,
[ARROW_RIGHT_KEY$2]: DIRECTION_LEFT
};
-const Default$g = {
+const ENDS_STOP = 'stop';
+const ENDS_WRAP = 'wrap';
+const ENDS_LOOP = 'loop';
+const Default$h = {
+ autoplay: false,
+ ends: ENDS_LOOP,
interval: 5000,
keyboard: true,
- pause: 'hover',
- ride: false,
- touch: true,
- wrap: true
+ pause: 'hover'
};
-const DefaultType$g = {
+const DefaultType$h = {
+ autoplay: 'boolean',
+ ends: 'string',
interval: 'number',
keyboard: 'boolean',
- pause: '(string|boolean)',
- ride: '(boolean|string)',
- touch: 'boolean',
- wrap: 'boolean'
+ pause: '(string|boolean)'
};
/**
class Carousel extends BaseComponent {
constructor(element, config) {
super(element, config);
- this._interval = null;
- this._activeElement = null;
- this._isSliding = false;
- this.touchTimeout = null;
- this._swipeHelper = null;
+
+ // The scroll viewport. The browser owns sliding, dragging, momentum, and
+ // keyboard scrolling; this controller only layers on autoplay, the
+ // prev/next/indicator controls, and active-slide syncing.
+ this._viewport = SelectorEngine.findOne(SELECTOR_INNER$1, this._element) || this._element;
this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
+ this._playPauseElement = SelectorEngine.findOne(SELECTOR_PLAY_PAUSE, this._element);
+ // Prev/next controls scoped to the carousel root (covers inline and stacked
+ // layouts). External controls placed outside `.carousel` aren't managed.
+ this._prevControls = SelectorEngine.find(SELECTOR_DATA_SLIDE_PREV, this._element);
+ this._nextControls = SelectorEngine.find(SELECTOR_DATA_SLIDE_NEXT, this._element);
+ this._interval = null;
+ this._observer = null;
+ this._snapRestoreFrame = null;
+ // True while a seamless loop transition is animating, so the
+ // IntersectionObserver and re-entrant navigation don't interfere.
+ this._looping = false;
+ this._visibility = new Map();
+ // Runtime autoplay intent. Starts from the `autoplay` option, but is turned
+ // off once the user takes control (clicks a control, uses the keyboard,
+ // swipes/drags, or presses pause) so we don't move content out from under
+ // them (WCAG 2.2.2 Pause, Stop, Hide).
+ this._playing = this._config.autoplay;
+ this._activeIndex = this._initialActiveIndex();
this._addEventListeners();
- if (this._config.ride === CLASS_NAME_CAROUSEL) {
+ this._observeItems();
+ this._refreshActiveState();
+ if (this._playing) {
this.cycle();
}
+ this._updatePlayPauseControl();
}
// Getters
static get Default() {
- return Default$g;
+ return Default$h;
}
static get DefaultType() {
- return DefaultType$g;
+ return DefaultType$h;
}
static get NAME() {
- return NAME$h;
+ return NAME$i;
}
// Public
next() {
- this._slide(ORDER_NEXT);
+ this.to(this._navIndex() + 1);
}
nextWhenVisible() {
- // Don't call next when the page isn't visible
- // or the carousel or its parent isn't visible
+ // Don't advance when the page or the carousel isn't visible
if (document.visibilityState === 'visible' && isVisible(this._element)) {
this.next();
}
}
prev() {
- this._slide(ORDER_PREV);
+ this.to(this._navIndex() - 1);
}
pause() {
- if (this._isSliding) {
- triggerTransitionEnd(this._element);
- }
this._clearInterval();
+ // Freeze the indicator progress fill; it resets to empty until cycling
+ // resumes and `_scheduleAutoplay` restarts it from scratch.
+ this._element.classList.remove(CLASS_NAME_PLAYING);
}
cycle() {
this._clearInterval();
- this._updateInterval();
- this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);
+ this._scheduleAutoplay();
+ this._element.classList.add(CLASS_NAME_PLAYING);
}
- _maybeEnableCycle() {
- if (!this._config.ride) {
- return;
- }
- if (this._isSliding) {
- EventHandler.one(this._element, EVENT_SLID, () => this.cycle());
+ to(index) {
+ // Ignore navigation while a seamless loop transition is animating
+ if (this._looping) {
return;
}
- this.cycle();
- }
- to(index) {
const items = this._getItems();
- if (index > items.length - 1 || index < 0) {
+ const rawIndex = Number.parseInt(index, 10);
+
+ // Seamless loop: continue forward/backward into a transient clone instead of
+ // the visible `wrap` jump. Only the simple single-slide scroll layout
+ // qualifies, and reduced motion falls back to the plain wrap below.
+ if (this._config.ends === ENDS_LOOP && !this._prefersReducedMotion() && this._canLoop()) {
+ if (rawIndex > items.length - 1) {
+ this._loopTransition(true);
+ return;
+ }
+ if (rawIndex < 0) {
+ this._loopTransition(false);
+ return;
+ }
+ }
+ const targetIndex = this._normalizeIndex(rawIndex, items.length);
+ // Measure "current" from the live scroll position: `_activeIndex` updates
+ // asynchronously, so an indicator/control used mid-scroll must compare
+ // against where the viewport actually rests (`_navIndex` returns the tracked
+ // active index for fade/non-scrollable layouts).
+ const currentIndex = this._navIndex();
+ if (targetIndex === null || targetIndex === currentIndex) {
return;
}
- if (this._isSliding) {
- EventHandler.one(this._element, EVENT_SLID, () => this.to(index));
+ const slideEvent = EventHandler.trigger(this._element, EVENT_SLIDE, {
+ relatedTarget: items[targetIndex],
+ direction: this._direction(currentIndex, targetIndex),
+ from: currentIndex,
+ to: targetIndex
+ });
+ if (slideEvent.defaultPrevented) {
return;
}
- const activeIndex = this._getItemIndex(this._getActive());
- if (activeIndex === index) {
+ if (this._isFade()) {
+ this._fadeTo(targetIndex);
return;
}
- const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;
- this._slide(order, items[index]);
+
+ // Scroll mode: the IntersectionObserver fires `slid` and syncs state once
+ // the new slide settles into view.
+ this._scrollToIndex(targetIndex);
}
dispose() {
- if (this._swipeHelper) {
- this._swipeHelper.dispose();
+ // Stop autoplay first: otherwise a pending timer would fire after the
+ // instance is torn down and throw on the now-null `_element`.
+ this._clearInterval();
+ if (this._observer) {
+ this._observer.disconnect();
}
+ if (this._snapRestoreFrame !== null) {
+ cancelAnimationFrame(this._snapRestoreFrame);
+ }
+
+ // Tidy up any in-flight loop transition: drop a stray clone and restore
+ // native snapping, so the viewport isn't left mid-animation.
+ for (const clone of SelectorEngine.find(`.${CLASS_NAME_CLONE}`, this._viewport)) {
+ clone.remove();
+ }
+ this._viewport.style.scrollSnapType = '';
+
+ // The pointerdown listener lives on the viewport (`.carousel-inner`), which
+ // `super.dispose()` doesn't clean up—it only drops listeners on `_element`.
+ EventHandler.off(this._viewport, EVENT_KEY$f);
super.dispose();
}
// Private
+ // Normalize an unknown `ends` value so navigation and end-control logic can't
+ // disagree about whether the carousel wraps.
_configAfterMerge(config) {
- config.defaultInterval = config.interval;
+ if (![ENDS_STOP, ENDS_WRAP, ENDS_LOOP].includes(config.ends)) {
+ config.ends = Default$h.ends;
+ }
return config;
}
+ _initialActiveIndex() {
+ const active = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
+ const index = active ? this._getItems().indexOf(active) : 0;
+ return Math.max(index, 0);
+ }
_addEventListeners() {
if (this._config.keyboard) {
EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event));
EventHandler.on(this._element, EVENT_MOUSEENTER$2, () => this.pause());
EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());
}
- if (this._config.touch && Swipe.isSupported()) {
- this._addTouchEventListeners();
- }
- }
- _addTouchEventListeners() {
- for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {
- EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault());
- }
- const endCallBack = () => {
- if (this._config.pause !== 'hover') {
- return;
- }
- // If it's a touch-enabled device, mouseenter/leave are fired as
- // part of the mouse compatibility events on first tap - the carousel
- // would stop cycling until user tapped out of it;
- // here, we listen for touchend, explicitly pause the carousel
- // (as if it's the second time we tap on it, mouseenter compat event
- // is NOT fired) and after a timeout (to allow for mouse compatibility
- // events to fire) we explicitly restart cycling
-
- this.pause();
- if (this.touchTimeout) {
- clearTimeout(this.touchTimeout);
- }
- this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);
- };
- const swipeConfig = {
- leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),
- rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),
- endCallback: endCallBack
- };
- this._swipeHelper = new Swipe(this._element, swipeConfig);
+ // Dragging, swiping, or tapping the track is an explicit interaction
+ EventHandler.on(this._viewport, EVENT_POINTERDOWN$1, () => this._pauseFromInteraction());
}
_keydown(event) {
if (/input|textarea/i.test(event.target.tagName)) {
const direction = KEY_TO_DIRECTION[event.key];
if (direction) {
event.preventDefault();
- this._slide(this._directionToOrder(direction));
+ this._pauseFromInteraction();
+ if (direction === DIRECTION_RIGHT) {
+ this.prev();
+ } else {
+ this.next();
+ }
}
}
- _getItemIndex(element) {
- return this._getItems().indexOf(element);
- }
- _setActiveIndicatorElement(index) {
- if (!this._indicatorsElement) {
+ _observeItems() {
+ // Fade mode stacks slides instead of scrolling, so there's nothing to observe
+ if (this._isFade() || typeof IntersectionObserver === 'undefined') {
return;
}
- const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
- activeIndicator.classList.remove(CLASS_NAME_ACTIVE$3);
- activeIndicator.removeAttribute('aria-current');
- const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement);
- if (newActiveIndicator) {
- newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$3);
- newActiveIndicator.setAttribute('aria-current', 'true');
+ this._observer = new IntersectionObserver(entries => this._handleIntersection(entries), {
+ root: this._viewport,
+ threshold: [0, 0.25, 0.5, 0.75, 1]
+ });
+ for (const item of this._getItems()) {
+ this._observer.observe(item);
}
}
- _updateInterval() {
- const element = this._activeElement || this._getActive();
- if (!element) {
+ _handleIntersection(entries) {
+ // A loop transition deliberately scrolls onto a transient clone; ignore the
+ // visibility churn so it doesn't move the active index mid-animation.
+ if (this._looping) {
return;
}
- const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);
- this._config.interval = elementInterval || this._config.defaultInterval;
+ for (const entry of entries) {
+ this._visibility.set(entry.target, entry.isIntersecting ? entry.intersectionRatio : 0);
+ }
+ const items = this._getItems();
+ const ratios = items.map(item => this._visibility.get(item) ?? 0);
+ const maxRatio = Math.max(...ratios);
+
+ // Pick the left-most slide that's *near* fully visible rather than the strict
+ // global maximum. After a programmatic scroll the viewport rests ~1px past
+ // the target snap offset, so the intended left-most slide reports a ratio a
+ // hair below the deeper, fully-visible ones (e.g. 0.997 vs 1.0). A strict max
+ // would skip past it and inflate the active index by one, which breaks
+ // multi-item next/prev. The tolerance keeps the intended slide active while
+ // peeking slivers (well below the max) are still ignored.
+ let bestIndex = this._activeIndex;
+ if (maxRatio > 0) {
+ bestIndex = ratios.findIndex(ratio => ratio >= maxRatio - ACTIVE_RATIO_TOLERANCE);
+ }
+ this._setActive(bestIndex);
+ // Keep the end controls in sync with the scroll position even when the
+ // active index doesn't change (e.g. the final stretch of a multi-item
+ // scroll, where the left-most slide is already the last reachable one).
+ this._updateEndControls();
+ }
+
+ // The index a `next()`/`prev()` step is measured from. Scroll layouts read it
+ // from the live scroll position instead of `this._activeIndex`, because the
+ // IntersectionObserver updates that asynchronously: after one step the index
+ // can still be stale, so the next step would compute the same target and
+ // silently no-op (the "the button does nothing / can't reach the end slide"
+ // symptom). Fade and non-scrollable layouts have no scroll position to read,
+ // so they keep using the tracked active index (also what the unit tests rely
+ // on when there's no real layout).
+ _navIndex() {
+ if (this._isFade() || this._viewport.scrollWidth - this._viewport.clientWidth <= 0) {
+ return this._activeIndex;
+ }
+ let index = this._activeIndex;
+ let smallestDelta = Number.POSITIVE_INFINITY;
+ for (const [itemIndex, item] of this._getItems().entries()) {
+ // The slide currently resting at the active position has ~zero delta.
+ const delta = Math.abs(this._scrollDelta(item));
+ if (delta < smallestDelta) {
+ smallestDelta = delta;
+ index = itemIndex;
+ }
+ }
+ return index;
}
- _slide(order, element = null) {
- if (this._isSliding) {
+ _scrollToIndex(index) {
+ const item = this._getItems()[index];
+ if (!item) {
+ return;
+ }
+ const left = this._scrollDelta(item);
+ if (Math.abs(left) < 1) {
return;
}
- const activeElement = this._getActive();
- const isNext = order === ORDER_NEXT;
- const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);
- if (nextElement === activeElement) {
+
+ // `scroll-snap-stop: always` keeps user wheel/touch flings to a single slide,
+ // but it also clamps *programmatic* scrolls to one snap point — which would
+ // break multi-slide jumps from an indicator click, `to()`, or wrapping from
+ // the last slide back to the first. Disable snapping for the duration of the
+ // programmatic scroll, then restore it once the scroll settles so the slide
+ // still rests precisely (honouring peek/gap).
+ const targetLeft = this._viewport.scrollLeft + left;
+ this._viewport.style.scrollSnapType = 'none';
+ this._viewport.scrollBy({
+ left,
+ top: 0,
+ // `'instant'` (not `'auto'`) for reduced motion: the viewport sets
+ // `scroll-behavior: smooth` in CSS, and `'auto'` defers to it, so it would
+ // still animate. `'instant'` forces an immediate, motion-free jump.
+ behavior: this._prefersReducedMotion() ? 'instant' : 'smooth'
+ });
+ this._restoreSnapWhenSettled(targetLeft, index);
+ }
+
+ // Horizontal distance to scroll the viewport so `element` rests where the
+ // active slide should sit. Scroll the viewport itself rather than calling
+ // `element.scrollIntoView()`: the latter scrolls *every* scrollable ancestor
+ // (including the page), so an autoplaying carousel below the fold would yank
+ // the whole page to itself on each tick. Using bounding rects keeps it
+ // direction-agnostic (works in RTL).
+ _scrollDelta(element) {
+ const viewportRect = this._viewport.getBoundingClientRect();
+ const rect = element.getBoundingClientRect();
+ if (this._element.classList.contains(CLASS_NAME_CENTER)) {
+ return rect.left + rect.width / 2 - (viewportRect.left + viewportRect.width / 2);
+ }
+
+ // Start alignment: rest the slide at the scroll-padding (peek) offset, which
+ // is exactly where scroll-snap will settle. Aligning flush to the edge
+ // instead would make the browser re-snap by `peek` once snapping is restored,
+ // producing a visible secondary nudge after the programmatic scroll.
+ const padStart = Number.parseFloat(getComputedStyle(this._viewport).scrollPaddingInlineStart) || 0;
+ return isRTL() ? rect.right - (viewportRect.right - padStart) : rect.left - (viewportRect.left + padStart);
+ }
+
+ // Seamless loop: continue past an end into a one-off clone of the destination
+ // slide, then teleport to the real slide so there's no visible backward jump.
+ _loopTransition(isNext) {
+ const items = this._getItems();
+ const last = items.length - 1;
+ const fromIndex = this._activeIndex;
+ const toIndex = isNext ? 0 : last;
+ const direction = this._loopDirection(isNext);
+ const slideEvent = EventHandler.trigger(this._element, EVENT_SLIDE, {
+ relatedTarget: items[toIndex],
+ direction,
+ from: fromIndex,
+ to: toIndex
+ });
+ if (slideEvent.defaultPrevented) {
return;
}
- const nextElementIndex = this._getItemIndex(nextElement);
- const triggerEvent = eventName => {
- return EventHandler.trigger(this._element, eventName, {
- relatedTarget: nextElement,
- direction: this._orderToDirection(order),
- from: this._getItemIndex(activeElement),
- to: nextElementIndex
+ this._looping = true;
+ const clone = (isNext ? items[0] : items[last]).cloneNode(true);
+ clone.classList.add(CLASS_NAME_CLONE);
+ clone.classList.remove(CLASS_NAME_ACTIVE$3);
+ clone.removeAttribute('id');
+ // Also strip ids from the cloned subtree to avoid duplicate ids while the
+ // clone is on screen.
+ for (const node of SelectorEngine.find('[id]', clone)) {
+ node.removeAttribute('id');
+ }
+ clone.setAttribute('aria-hidden', 'true');
+ clone.inert = true;
+ this._viewport.style.scrollSnapType = 'none';
+ if (isNext) {
+ this._viewport.append(clone);
+ } else {
+ this._viewport.prepend(clone);
+ // Prepending shifts the real slides to the right; instantly re-align the
+ // current slide so the insertion doesn't flash before we animate.
+ this._jumpScroll(this._scrollDelta(items[fromIndex]));
+ }
+ this._viewport.scrollBy({
+ left: this._scrollDelta(clone),
+ top: 0,
+ behavior: 'smooth'
+ });
+ this._afterScrollSettles(() => {
+ // Teleport to the real destination without animation. JS runs to
+ // completion before the browser paints, so removing the clone and the
+ // compensating scroll land in a single frame (no visible flash).
+ clone.remove();
+ this._jumpScroll(this._scrollDelta(items[toIndex]));
+ this._activeIndex = toIndex;
+ this._refreshActiveState();
+ EventHandler.trigger(this._element, EVENT_SLID, {
+ relatedTarget: items[toIndex],
+ direction,
+ from: fromIndex,
+ to: toIndex
});
+ this._viewport.style.scrollSnapType = '';
+ this._looping = false;
+ });
+ }
+ _loopDirection(isNext) {
+ if (isRTL()) {
+ return isNext ? DIRECTION_RIGHT : DIRECTION_LEFT;
+ }
+ return isNext ? DIRECTION_LEFT : DIRECTION_RIGHT;
+ }
+
+ // Instant (non-animated) scroll with snapping suspended, used to teleport the
+ // viewport during a loop transition. `behavior: 'instant'` is required because
+ // the viewport sets `scroll-behavior: smooth` in CSS, and `'auto'` would defer
+ // to it and animate the teleport (a visible backward slide).
+ _jumpScroll(delta) {
+ this._viewport.style.scrollSnapType = 'none';
+ this._viewport.scrollBy({
+ left: delta,
+ top: 0,
+ behavior: 'instant'
+ });
+ }
+
+ // Re-enable scroll snapping once the viewport reaches `targetLeft` (or stops
+ // moving). Passing the target matters: restoring `mandatory` snapping re-snaps
+ // to the *nearest* snap point, so if we restored mid-animation the viewport
+ // could jump back to the slide we came from — most visible stepping to the
+ // first/last slide, where it looks like the control "doesn't work".
+ _restoreSnapWhenSettled(targetLeft, index) {
+ this._afterScrollSettles(() => {
+ this._viewport.style.scrollSnapType = '';
+ // Without IntersectionObserver nothing else fires `slid`/updates the active
+ // slide after a programmatic scroll, so do it here. With the observer
+ // present this is a no-op (it already moved the active index to `index`).
+ if (!this._observer && index !== undefined) {
+ this._setActive(index);
+ }
+
+ // The IntersectionObserver doesn't fire once the viewport has stopped, so
+ // refresh the end controls here to catch the final ~1px settle landing
+ // exactly on the scroll extent (e.g. disabling `next` at the last view).
+ this._updateEndControls();
+ }, targetLeft);
+ }
+
+ // Invoke `callback` once the viewport stops moving. We watch the scroll
+ // position across frames instead of relying on the `scrollend` event, which
+ // isn't available across our supported browsers yet.
+ //
+ // Crucially, we only start counting "stable" frames once the scroll has
+ // actually moved. A smooth `scrollBy` doesn't update `scrollLeft` for the first
+ // frame or two, so naively treating those initial unchanged frames as
+ // "settled" would re-enable `mandatory` snapping mid-animation — which cancels
+ // the in-flight programmatic scroll and lands on the wrong slide (most visible
+ // in multi-item layouts). If the scroll never moves (delta clamped at an end,
+ // or `scrollBy` stubbed out in unit tests), we fall back to a short frame cap.
+ //
+ // When `targetLeft` is known we also finish the moment we arrive there, so the
+ // snap is restored exactly on the destination snap point and can't re-snap the
+ // viewport backwards (the failure mode where stepping to the first/last slide
+ // appears to do nothing).
+ _afterScrollSettles(callback, targetLeft) {
+ if (typeof requestAnimationFrame === 'undefined') {
+ callback();
+ return;
+ }
+ if (this._snapRestoreFrame !== null) {
+ cancelAnimationFrame(this._snapRestoreFrame);
+ }
+ const startLeft = this._viewport.scrollLeft;
+ let lastLeft = startLeft;
+ let stableFrames = 0;
+ let waited = 0;
+ let hasMoved = false;
+ const tick = () => {
+ const currentLeft = this._viewport.scrollLeft;
+ const reachedTarget = targetLeft !== undefined && Math.abs(currentLeft - targetLeft) <= 1;
+ if (Math.abs(currentLeft - startLeft) > 1) {
+ hasMoved = true;
+ }
+
+ // Only accrue stable frames after movement begins, so the pre-animation
+ // and ease-in frames don't prematurely count as settled.
+ if (hasMoved) {
+ stableFrames = Math.abs(currentLeft - lastLeft) < 1 ? stableFrames + 1 : 0;
+ }
+ lastLeft = currentLeft;
+ waited += 1;
+ if (reachedTarget || hasMoved && stableFrames >= 3 || !hasMoved && waited >= SCROLL_SETTLE_MAX_FRAMES) {
+ this._snapRestoreFrame = null;
+ callback();
+ return;
+ }
+ this._snapRestoreFrame = requestAnimationFrame(tick);
};
- const slideEvent = triggerEvent(EVENT_SLIDE);
- if (slideEvent.defaultPrevented) {
+ this._snapRestoreFrame = requestAnimationFrame(tick);
+ }
+
+ // Fade mode just swaps the active class; the CSS opacity transition on
+ // `.carousel-item` performs the crossfade over `--carousel-fade-duration` (and
+ // collapses to an instant swap under reduced motion, via the `transition`
+ // mixin). It deliberately avoids the View Transition API: a view transition
+ // crossfades a page snapshot over its own (shorter) duration while this CSS
+ // fade also runs underneath, so the two animations overlap and visibly stutter.
+ _fadeTo(index) {
+ this._setActive(index);
+ }
+ _setActive(index) {
+ const items = this._getItems();
+ if (index === this._activeIndex || !items[index]) {
return;
}
- if (!activeElement || !nextElement) {
- // Some weirdness is happening, so we bail
+ const from = this._activeIndex;
+ this._activeIndex = index;
+ this._refreshActiveState();
+ EventHandler.trigger(this._element, EVENT_SLID, {
+ relatedTarget: items[index],
+ direction: this._direction(from, index),
+ from,
+ to: index
+ });
+ }
+ _refreshActiveState() {
+ const items = this._getItems();
+ for (const [index, item] of items.entries()) {
+ item.classList.toggle(CLASS_NAME_ACTIVE$3, index === this._activeIndex);
+ }
+ this._setActiveIndicatorElement(this._activeIndex);
+ this._updateEndControls();
+ }
+ _updateEndControls() {
+ // Only `ends: 'stop'` has real ends; under `wrap`/`loop` you can always
+ // advance, so disabling end controls would be meaningless. When stopping,
+ // disable the prev control at the start of the scroll range and the next
+ // control at the end so there are no dead end-buttons.
+ if (this._config.ends !== ENDS_STOP) {
+ return;
+ }
+ const viewport = this._viewport;
+ const maxScroll = viewport.scrollWidth - viewport.clientWidth;
+ let atStart;
+ let atEnd;
+ if (maxScroll > 0) {
+ // Scrollable: measure the real scroll extent so this works for multi-item,
+ // peek, and variable-width layouts where the last slide can never become
+ // the left-most (active) one. `Math.abs` keeps it correct in RTL, where
+ // `scrollLeft` runs from 0 down to negative.
+ const progress = Math.abs(viewport.scrollLeft);
+ atStart = progress <= 1;
+ atEnd = progress >= maxScroll - 1;
+ } else {
+ // Not scrollable (or no layout yet, e.g. in unit tests): fall back to the
+ // active index for the single-slide case.
+ const last = this._getItems().length - 1;
+ atStart = this._activeIndex <= 0;
+ atEnd = this._activeIndex >= last;
+ }
+ this._setControlsDisabled(this._prevControls, atStart);
+ this._setControlsDisabled(this._nextControls, atEnd);
+ }
+ _setControlsDisabled(controls, disabled) {
+ for (const control of controls) {
+ // a11y: if we're about to disable the focused control, move focus to the
+ // opposite (still-enabled) control so focus isn't lost.
+ if (disabled && control === document.activeElement) {
+ const opposite = controls === this._prevControls ? this._nextControls : this._prevControls;
+ const fallback = opposite[0] ?? this._viewport;
+ // `preventScroll` so moving focus doesn't yank the page/viewport to the
+ // newly-focused control mid-navigation.
+ fallback.focus({
+ preventScroll: true
+ });
+ }
+ control.disabled = disabled;
+ }
+ }
+ _setActiveIndicatorElement(index) {
+ if (!this._indicatorsElement) {
return;
}
- const isCycling = Boolean(this._interval);
+ const active = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
+ if (active) {
+ active.classList.remove(CLASS_NAME_ACTIVE$3);
+ active.removeAttribute('aria-current');
+ }
+ const newActive = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement);
+ if (newActive) {
+ newActive.classList.add(CLASS_NAME_ACTIVE$3);
+ newActive.setAttribute('aria-current', 'true');
+ }
+ }
+ _normalizeIndex(index, length) {
+ if (Number.isNaN(index) || length === 0) {
+ return null;
+ }
+ if (index < 0) {
+ return this._wrapsAround() ? length - 1 : null;
+ }
+ if (index > length - 1) {
+ return this._wrapsAround() ? 0 : null;
+ }
+ return index;
+ }
+
+ // Whether navigating past an end wraps to the other end. `loop` continues
+ // seamlessly where it can (see `_canLoop`) and otherwise behaves like `wrap`.
+ _wrapsAround() {
+ return this._config.ends === ENDS_WRAP || this._config.ends === ENDS_LOOP;
+ }
+
+ // Seamless looping is only supported for the simple single-slide scroll
+ // layout. Multi-item, peek, center, and variable-width layouts fall back to
+ // the plain `wrap` jump.
+ _canLoop() {
+ if (this._isFade() || this._getItems().length < 2) {
+ return false;
+ }
+ const styles = getComputedStyle(this._element);
+ const num = name => Number.parseFloat(styles.getPropertyValue(name)) || 0;
+
+ // These are the shipped, `--bs-`-prefixed custom properties (the build
+ // prefixes every custom property), not the bare names used in the SCSS source.
+ return (num('--bs-carousel-items') || 1) === 1 && num('--bs-carousel-items-peek') === 0 && !this._element.classList.contains(CLASS_NAME_CENTER) && !this._element.classList.contains(CLASS_NAME_AUTO);
+ }
+ _direction(from, to) {
+ const isNext = to > from;
+ if (isRTL()) {
+ return isNext ? DIRECTION_RIGHT : DIRECTION_LEFT;
+ }
+ return isNext ? DIRECTION_LEFT : DIRECTION_RIGHT;
+ }
+ _scheduleAutoplay(index = this._activeIndex) {
+ const interval = this._itemInterval(index);
+ // Expose the wait so the active indicator's CSS fill matches it.
+ this._element.style.setProperty(PROPERTY_INTERVAL, `${interval}ms`);
+ this._interval = setTimeout(() => {
+ // Capture the slide the advance lands on *before* navigating: the active
+ // index only updates once the scroll settles (asynchronously), so reading
+ // it after `nextWhenVisible()` would schedule the next wait from the slide
+ // we're leaving — making per-item `data-bs-interval`s lag by one slide.
+ const upcoming = this._upcomingIndex();
+ this.nextWhenVisible();
+
+ // Nothing comes after the last slide when `ends: 'stop'`; stop cycling
+ // instead of re-arming a timer that can never advance.
+ if (upcoming === null) {
+ this.pause();
+ return;
+ }
+ this._scheduleAutoplay(upcoming);
+ }, interval);
+ }
+
+ // The slide the next autoplay tick will rest on, derived from the live scroll
+ // position (which still reflects the current slide when the timer fires).
+ // Returns `null` when there's nowhere left to advance (`ends: stop` at the end).
+ _upcomingIndex() {
+ return this._normalizeIndex(this._navIndex() + 1, this._getItems().length);
+ }
+ _itemInterval(index = this._activeIndex) {
+ const item = this._getItems()[index];
+ const interval = item ? Number.parseInt(item.getAttribute('data-bs-interval'), 10) : Number.NaN;
+ return Number.isNaN(interval) ? this._config.interval : interval;
+ }
+ _maybeEnableCycle() {
+ if (!this._playing) {
+ return;
+ }
+ this.cycle();
+ }
+
+ // Turn autoplay off for good once the user interacts with the carousel
+ _pauseFromInteraction() {
+ this._playing = false;
this.pause();
- this._isSliding = true;
- this._setActiveIndicatorElement(nextElementIndex);
- this._activeElement = nextElement;
- const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;
- const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;
- nextElement.classList.add(orderClassName);
- reflow(nextElement);
- activeElement.classList.add(directionalClassName);
- nextElement.classList.add(directionalClassName);
- const completeCallBack = () => {
- nextElement.classList.remove(directionalClassName, orderClassName);
- nextElement.classList.add(CLASS_NAME_ACTIVE$3);
- activeElement.classList.remove(CLASS_NAME_ACTIVE$3, orderClassName, directionalClassName);
- this._isSliding = false;
- triggerEvent(EVENT_SLID);
- };
- this._queueCallback(completeCallBack, activeElement, this._isAnimated());
- if (isCycling) {
- this.cycle();
+ this._updatePlayPauseControl();
+ }
+ _togglePlayPause() {
+ if (this._playing) {
+ this._pauseFromInteraction();
+ return;
}
+ this._playing = true;
+ this.cycle();
+ this._updatePlayPauseControl();
}
- _isAnimated() {
- return this._element.classList.contains(CLASS_NAME_SLIDE);
+ _updatePlayPauseControl() {
+ if (!this._playPauseElement) {
+ return;
+ }
+ this._playPauseElement.classList.toggle(CLASS_NAME_PAUSED, !this._playing);
+ const label = this._playPauseElement.getAttribute(this._playing ? 'data-bs-pause-label' : 'data-bs-play-label');
+ if (label) {
+ this._playPauseElement.setAttribute('aria-label', label);
+ }
+ }
+ _isFade() {
+ return this._element.classList.contains(CLASS_NAME_FADE$3);
}
- _getActive() {
- return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
+ _prefersReducedMotion() {
+ return typeof window !== 'undefined' && typeof window.matchMedia === 'function' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
}
_getItems() {
return SelectorEngine.find(SELECTOR_ITEM, this._element);
}
_clearInterval() {
if (this._interval) {
- clearInterval(this._interval);
+ clearTimeout(this._interval);
this._interval = null;
}
}
- _directionToOrder(direction) {
- if (isRTL()) {
- return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;
- }
- return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;
- }
- _orderToDirection(order) {
- if (isRTL()) {
- return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;
- }
- return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;
- }
}
/**
}
event.preventDefault();
const carousel = Carousel.getOrCreateInstance(target);
+
+ // Manually cycling the carousel is an explicit interaction, so stop autoplay
+ carousel._pauseFromInteraction();
const slideIndex = this.getAttribute('data-bs-slide-to');
if (slideIndex) {
carousel.to(slideIndex);
- carousel._maybeEnableCycle();
return;
}
if (Manipulator.getDataAttribute(this, 'slide') === 'next') {
carousel.next();
- carousel._maybeEnableCycle();
return;
}
carousel.prev();
- carousel._maybeEnableCycle();
+});
+EventHandler.on(document, EVENT_CLICK_DATA_API$7, SELECTOR_PLAY_PAUSE, function (event) {
+ const target = SelectorEngine.getElementFromSelector(this);
+ if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
+ return;
+ }
+ event.preventDefault();
+ Carousel.getOrCreateInstance(target)._togglePlayPause();
});
EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {
- const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);
+ const carousels = SelectorEngine.find(SELECTOR_DATA_AUTOPLAY);
for (const carousel of carousels) {
Carousel.getOrCreateInstance(carousel);
}
* Constants
*/
-const NAME$g = 'collapse';
+const NAME$h = 'collapse';
const DATA_KEY$d = 'bs.collapse';
-const EVENT_KEY$d = `.${DATA_KEY$d}`;
+const EVENT_KEY$e = `.${DATA_KEY$d}`;
const DATA_API_KEY$9 = '.data-api';
-const EVENT_SHOW$7 = `show${EVENT_KEY$d}`;
-const EVENT_SHOWN$6 = `shown${EVENT_KEY$d}`;
-const EVENT_HIDE$6 = `hide${EVENT_KEY$d}`;
-const EVENT_HIDDEN$8 = `hidden${EVENT_KEY$d}`;
-const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$d}${DATA_API_KEY$9}`;
+const EVENT_SHOW$7 = `show${EVENT_KEY$e}`;
+const EVENT_SHOWN$6 = `shown${EVENT_KEY$e}`;
+const EVENT_HIDE$6 = `hide${EVENT_KEY$e}`;
+const EVENT_HIDDEN$8 = `hidden${EVENT_KEY$e}`;
+const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$e}${DATA_API_KEY$9}`;
const CLASS_NAME_SHOW$5 = 'show';
const CLASS_NAME_COLLAPSE = 'collapse';
const CLASS_NAME_COLLAPSING = 'collapsing';
const HEIGHT = 'height';
const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';
const SELECTOR_DATA_TOGGLE$9 = '[data-bs-toggle="collapse"]';
-const Default$f = {
+const Default$g = {
parent: null,
toggle: true
};
-const DefaultType$f = {
+const DefaultType$g = {
parent: '(null|element)',
toggle: 'boolean'
};
// Getters
static get Default() {
- return Default$f;
+ return Default$g;
}
static get DefaultType() {
- return DefaultType$f;
+ return DefaultType$g;
}
static get NAME() {
- return NAME$g;
+ return NAME$h;
}
// Public
* Constants
*/
-const NAME$f = 'menu';
+const NAME$g = 'menu';
const DATA_KEY$c = 'bs.menu';
-const EVENT_KEY$c = `.${DATA_KEY$c}`;
+const EVENT_KEY$d = `.${DATA_KEY$c}`;
const DATA_API_KEY$8 = '.data-api';
const ESCAPE_KEY$1 = 'Escape';
const TAB_KEY$1 = 'Tab';
const SPACE_KEY$1 = ' ';
const RIGHT_MOUSE_BUTTON = 2;
const SUBMENU_CLOSE_DELAY = 100;
-const EVENT_HIDE$5 = `hide${EVENT_KEY$c}`;
-const EVENT_HIDDEN$7 = `hidden${EVENT_KEY$c}`;
-const EVENT_SHOW$6 = `show${EVENT_KEY$c}`;
-const EVENT_SHOWN$5 = `shown${EVENT_KEY$c}`;
-const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$c}${DATA_API_KEY$8}`;
-const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$c}${DATA_API_KEY$8}`;
-const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$c}${DATA_API_KEY$8}`;
+const EVENT_HIDE$5 = `hide${EVENT_KEY$d}`;
+const EVENT_HIDDEN$7 = `hidden${EVENT_KEY$d}`;
+const EVENT_SHOW$6 = `show${EVENT_KEY$d}`;
+const EVENT_SHOWN$5 = `shown${EVENT_KEY$d}`;
+const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$d}${DATA_API_KEY$8}`;
+const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$d}${DATA_API_KEY$8}`;
+const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$d}${DATA_API_KEY$8}`;
const CLASS_NAME_SHOW$4 = 'show';
const SELECTOR_DATA_TOGGLE$8 = '[data-bs-toggle="menu"]:not(.disabled):not(:disabled)';
const SELECTOR_MENU$2 = '.menu';
return placement.replace(/^start(?=-|$)/, 'left').replace(/^end(?=-|$)/, 'right');
};
const triangleSign = (p1, p2, p3) => (p1.x - p3.x) * (p2.y - p3.y) - (p2.x - p3.x) * (p1.y - p3.y);
-const Default$e = {
+const Default$f = {
autoClose: true,
boundary: 'clippingParents',
container: false,
submenuTrigger: 'both',
submenuDelay: SUBMENU_CLOSE_DELAY
};
-const DefaultType$e = {
+const DefaultType$f = {
autoClose: '(boolean|string)',
boundary: '(string|element)',
container: '(string|element|boolean)',
*/
class Menu extends BaseComponent {
- static _openInstances = (() => new Set())();
+ static _openInstances = new Set();
constructor(element, config) {
if (typeof computePosition === 'undefined') {
throw new TypeError('Bootstrap\'s menus require Floating UI (https://floating-ui.com)');
// Getters
static get Default() {
- return Default$e;
+ return Default$f;
}
static get DefaultType() {
- return DefaultType$e;
+ return DefaultType$f;
}
static get NAME() {
- return NAME$f;
+ return NAME$g;
}
// Public
_getConfig(config) {
config = super._getConfig(config);
if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {
- throw new TypeError(`${NAME$f.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
+ throw new TypeError(`${NAME$g.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
}
return config;
}
* Constants
*/
-const NAME$e = 'combobox';
+const NAME$f = 'combobox';
const DATA_KEY$b = 'bs.combobox';
-const EVENT_KEY$b = `.${DATA_KEY$b}`;
+const EVENT_KEY$c = `.${DATA_KEY$b}`;
const DATA_API_KEY$7 = '.data-api';
const ESCAPE_KEY = 'Escape';
const TAB_KEY = 'Tab';
const END_KEY$1 = 'End';
const ENTER_KEY = 'Enter';
const SPACE_KEY = ' ';
-const EVENT_CHANGE$2 = `change${EVENT_KEY$b}`;
-const EVENT_SHOW$5 = `show${EVENT_KEY$b}`;
-const EVENT_SHOWN$4 = `shown${EVENT_KEY$b}`;
-const EVENT_HIDE$4 = `hide${EVENT_KEY$b}`;
-const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$b}`;
-const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$b}${DATA_API_KEY$7}`;
+const EVENT_CHANGE$2 = `change${EVENT_KEY$c}`;
+const EVENT_SHOW$5 = `show${EVENT_KEY$c}`;
+const EVENT_SHOWN$4 = `shown${EVENT_KEY$c}`;
+const EVENT_HIDE$4 = `hide${EVENT_KEY$c}`;
+const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$c}`;
+const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$c}${DATA_API_KEY$7}`;
const CLASS_NAME_SHOW$3 = 'show';
const CLASS_NAME_SELECTED = 'selected';
const CLASS_NAME_PLACEHOLDER = 'combobox-placeholder';
const SELECTOR_VALUE = '.combobox-value';
const SELECTOR_SEARCH_INPUT = '.combobox-search-input';
const SELECTOR_NO_RESULTS = '.combobox-no-results';
-const Default$d = {
+const Default$e = {
boundary: 'clippingParents',
multiple: false,
name: null,
search: false,
searchNormalize: false
};
-const DefaultType$d = {
+const DefaultType$e = {
boundary: '(string|element)',
multiple: 'boolean',
name: '(string|null)',
// Getters
static get Default() {
- return Default$d;
+ return Default$e;
}
static get DefaultType() {
- return DefaultType$d;
+ return DefaultType$e;
}
static get NAME() {
- return NAME$e;
+ return NAME$f;
}
// Public
this._hiddenInput.remove();
this._hiddenInput = null;
}
- EventHandler.off(this._menu, EVENT_KEY$b);
- EventHandler.off(this._toggle, EVENT_KEY$b);
+ EventHandler.off(this._menu, EVENT_KEY$c);
+ EventHandler.off(this._toggle, EVENT_KEY$c);
super.dispose();
}
* Constants
*/
-const NAME$d = 'datepicker';
+const NAME$e = 'datepicker';
const DATA_KEY$a = 'bs.datepicker';
-const EVENT_KEY$a = `.${DATA_KEY$a}`;
+const EVENT_KEY$b = `.${DATA_KEY$a}`;
const DATA_API_KEY$6 = '.data-api';
-const EVENT_CHANGE$1 = `change${EVENT_KEY$a}`;
-const EVENT_SHOW$4 = `show${EVENT_KEY$a}`;
-const EVENT_SHOWN$3 = `shown${EVENT_KEY$a}`;
-const EVENT_HIDE$3 = `hide${EVENT_KEY$a}`;
-const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$a}`;
-const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;
-const EVENT_FOCUSIN_DATA_API = `focusin${EVENT_KEY$a}${DATA_API_KEY$6}`;
+const EVENT_CHANGE$1 = `change${EVENT_KEY$b}`;
+const EVENT_SHOW$4 = `show${EVENT_KEY$b}`;
+const EVENT_SHOWN$3 = `shown${EVENT_KEY$b}`;
+const EVENT_HIDE$3 = `hide${EVENT_KEY$b}`;
+const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$b}`;
+const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$b}${DATA_API_KEY$6}`;
+const EVENT_FOCUSIN_DATA_API = `focusin${EVENT_KEY$b}${DATA_API_KEY$6}`;
const SELECTOR_DATA_TOGGLE$6 = '[data-bs-toggle="datepicker"]';
const HIDE_DELAY = 100; // ms delay before hiding after selection
-const Default$c = {
+const Default$d = {
datepickerTheme: null,
// 'light', 'dark', 'auto' - explicit theme for datepicker popover only
dateMin: null,
// 'left', 'center', 'right', 'auto'
vcpOptions: {} // Pass-through for any VCP option
};
-const DefaultType$c = {
+const DefaultType$d = {
datepickerTheme: '(null|string)',
dateMin: '(null|string|number|object)',
dateMax: '(null|string|number|object)',
// Getters
static get Default() {
- return Default$c;
+ return Default$d;
}
static get DefaultType() {
- return DefaultType$c;
+ return DefaultType$d;
}
static get NAME() {
- return NAME$d;
+ return NAME$e;
}
// Public
});
// Auto-initialize inline datepickers on DOMContentLoaded
-EventHandler.on(document, `DOMContentLoaded${EVENT_KEY$a}${DATA_API_KEY$6}`, () => {
+EventHandler.on(document, `DOMContentLoaded${EVENT_KEY$b}${DATA_API_KEY$6}`, () => {
for (const element of document.querySelectorAll(`${SELECTOR_DATA_TOGGLE$6}[data-bs-inline="true"]`)) {
Datepicker.getOrCreateInstance(element);
}
* Constants
*/
-const NAME$c = 'dialog';
+const NAME$d = 'dialog';
const DATA_KEY$9 = 'bs.dialog';
-const EVENT_KEY$9 = `.${DATA_KEY$9}`;
+const EVENT_KEY$a = `.${DATA_KEY$9}`;
const DATA_API_KEY$5 = '.data-api';
-const EVENT_SHOW$3 = `show${EVENT_KEY$9}`;
-const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$9}`;
-const EVENT_CANCEL = `cancel${EVENT_KEY$9}`;
-const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$9}${DATA_API_KEY$5}`;
+const EVENT_SHOW$3 = `show${EVENT_KEY$a}`;
+const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$a}`;
+const EVENT_CANCEL = `cancel${EVENT_KEY$a}`;
+const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$a}${DATA_API_KEY$5}`;
const CLASS_NAME_NONMODAL = 'dialog-nonmodal';
const CLASS_NAME_INSTANT = 'dialog-instant';
const CLASS_NAME_SWAP_IN = 'dialog-swap-in';
const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="dialog"]';
-const Default$b = {
+const Default$c = {
backdrop: true,
keyboard: true,
modal: true
};
-const DefaultType$b = {
+const DefaultType$c = {
backdrop: '(boolean|string)',
keyboard: 'boolean',
modal: 'boolean'
class Dialog extends DialogBase {
// Getters
static get Default() {
- return Default$b;
+ return Default$c;
}
static get DefaultType() {
- return DefaultType$b;
+ return DefaultType$c;
}
static get NAME() {
- return NAME$c;
+ return NAME$d;
}
// Public
const newDialog = Dialog.getOrCreateInstance(target, config);
target.classList.add(CLASS_NAME_SWAP_IN);
newDialog.show(this);
- EventHandler.one(target, `shown${EVENT_KEY$9}`, () => {
+ EventHandler.one(target, `shown${EVENT_KEY$a}`, () => {
target.classList.remove(CLASS_NAME_SWAP_IN);
});
const currentInstance = Dialog.getInstance(currentDialog);
* Constants
*/
-const NAME$b = 'navoverflow';
+const NAME$c = 'navoverflow';
const DATA_KEY$8 = 'bs.navoverflow';
-const EVENT_KEY$8 = `.${DATA_KEY$8}`;
-const EVENT_UPDATE = `update${EVENT_KEY$8}`;
-const EVENT_OVERFLOW = `overflow${EVENT_KEY$8}`;
+const EVENT_KEY$9 = `.${DATA_KEY$8}`;
+const EVENT_UPDATE = `update${EVENT_KEY$9}`;
+const EVENT_OVERFLOW = `overflow${EVENT_KEY$9}`;
const CLASS_NAME_OVERFLOW = 'nav-overflow';
const CLASS_NAME_OVERFLOW_MENU = 'nav-overflow-menu';
const CLASS_NAME_HIDDEN = 'd-none';
const SELECTOR_OVERFLOW_MENU = '.nav-overflow-menu';
const SELECTOR_CUSTOM_ICON = '[data-bs-overflow-icon]';
const CLASS_NAME_KEEP = 'nav-overflow-keep';
-const Default$a = {
+const Default$b = {
collapseBelow: 0,
iconPlacement: 'start',
menuPlacement: 'bottom-end',
moreIcon: '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3"/></svg>',
threshold: 0 // Minimum items to keep visible before showing overflow
};
-const DefaultType$a = {
+const DefaultType$b = {
collapseBelow: '(number|string)',
iconPlacement: 'string',
menuPlacement: 'string',
// Getters
static get Default() {
- return Default$a;
+ return Default$b;
}
static get DefaultType() {
- return DefaultType$a;
+ return DefaultType$b;
}
static get NAME() {
- return NAME$b;
+ return NAME$c;
}
// Public
}
});
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap util/swipe.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+
+/**
+ * Constants
+ */
+
+const NAME$b = 'swipe';
+const EVENT_KEY$8 = '.bs.swipe';
+const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$8}`;
+const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$8}`;
+const EVENT_TOUCHEND = `touchend${EVENT_KEY$8}`;
+const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$8}`;
+const EVENT_POINTERUP = `pointerup${EVENT_KEY$8}`;
+const POINTER_TYPE_TOUCH = 'touch';
+const POINTER_TYPE_PEN = 'pen';
+const CLASS_NAME_POINTER_EVENT = 'pointer-event';
+const SWIPE_THRESHOLD = 40;
+const Default$a = {
+ endCallback: null,
+ leftCallback: null,
+ rightCallback: null,
+ upCallback: null,
+ downCallback: null
+};
+const DefaultType$a = {
+ endCallback: '(function|null)',
+ leftCallback: '(function|null)',
+ rightCallback: '(function|null)',
+ upCallback: '(function|null)',
+ downCallback: '(function|null)'
+};
+
+/**
+ * Class definition
+ */
+
+class Swipe extends Config {
+ constructor(element, config) {
+ super();
+ this._element = element;
+ if (!element || !Swipe.isSupported()) {
+ return;
+ }
+ this._config = this._getConfig(config);
+ this._deltaX = 0;
+ this._deltaY = 0;
+ this._supportPointerEvents = Boolean(window.PointerEvent);
+ this._initEvents();
+ }
+
+ // Getters
+ static get Default() {
+ return Default$a;
+ }
+ static get DefaultType() {
+ return DefaultType$a;
+ }
+ static get NAME() {
+ return NAME$b;
+ }
+
+ // Public
+ dispose() {
+ EventHandler.off(this._element, EVENT_KEY$8);
+ }
+
+ // Private
+ _start(event) {
+ if (!this._supportPointerEvents) {
+ this._deltaX = event.touches[0].clientX;
+ this._deltaY = event.touches[0].clientY;
+ return;
+ }
+ if (this._eventIsPointerPenTouch(event)) {
+ this._deltaX = event.clientX;
+ this._deltaY = event.clientY;
+ }
+ }
+ _end(event) {
+ if (this._eventIsPointerPenTouch(event)) {
+ this._deltaX = event.clientX - this._deltaX;
+ this._deltaY = event.clientY - this._deltaY;
+ }
+ this._handleSwipe();
+ execute(this._config.endCallback);
+ }
+ _move(event) {
+ if (event.touches && event.touches.length > 1) {
+ this._deltaX = 0;
+ this._deltaY = 0;
+ return;
+ }
+ this._deltaX = event.touches[0].clientX - this._deltaX;
+ this._deltaY = event.touches[0].clientY - this._deltaY;
+ }
+ _handleSwipe() {
+ const absDeltaX = Math.abs(this._deltaX);
+ const absDeltaY = Math.abs(this._deltaY);
+
+ // Determine primary axis: whichever has greater movement wins
+ if (absDeltaY > absDeltaX && absDeltaY > SWIPE_THRESHOLD) {
+ // Vertical swipe
+ const direction = this._deltaY > 0 ? 'down' : 'up';
+ this._deltaX = 0;
+ this._deltaY = 0;
+ execute(direction === 'down' ? this._config.downCallback : this._config.upCallback);
+ return;
+ }
+ if (absDeltaX > SWIPE_THRESHOLD) {
+ // Horizontal swipe
+ const direction = absDeltaX / this._deltaX;
+ this._deltaX = 0;
+ this._deltaY = 0;
+ if (!direction) {
+ return;
+ }
+ execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);
+ return;
+ }
+ this._deltaX = 0;
+ this._deltaY = 0;
+ }
+ _initEvents() {
+ if (this._supportPointerEvents) {
+ EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));
+ EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));
+ this._element.classList.add(CLASS_NAME_POINTER_EVENT);
+ } else {
+ EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));
+ EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));
+ EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));
+ }
+ }
+ _eventIsPointerPenTouch(event) {
+ return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);
+ }
+
+ // Static
+ static isSupported() {
+ return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
+ }
+}
+
/**
* --------------------------------------------------------------------------
* Bootstrap drawer.js
*/
const NAME$8 = 'otpInput';
-const DATA_KEY$5 = 'bs.otp-input';
+const DATA_KEY$5 = 'bs.otpInput';
const EVENT_KEY$5 = `.${DATA_KEY$5}`;
const DATA_API_KEY$2 = '.data-api';
const EVENT_COMPLETE = `complete${EVENT_KEY$5}`;
const EVENT_INPUT = `input${EVENT_KEY$5}`;
+const EVENT_DOMCONTENT_LOADED = `DOMContentLoaded${EVENT_KEY$5}${DATA_API_KEY$2}`;
const SELECTOR_DATA_OTP = '[data-bs-otp]';
const SELECTOR_INPUT = 'input';
+
+// Events that should refresh the active-slot highlight as the caret moves
+const SYNC_EVENTS = ['blur', 'keyup', 'click', 'select'];
+const CLASS_NAME_INPUT = 'otp-input';
+const CLASS_NAME_RENDERED = 'otp-rendered';
+const CLASS_NAME_SLOTS = 'otp-slots';
+const CLASS_NAME_SLOT = 'otp-slot';
+const CLASS_NAME_SLOT_FILLED = 'otp-slot-filled';
+const CLASS_NAME_SLOT_ACTIVE = 'otp-slot-active';
+const CLASS_NAME_SEPARATOR = 'otp-separator';
+const MASK_CHARACTER = '•';
+
+// Per-type input mode, validation pattern, and a filter that strips disallowed characters
+const TYPES = {
+ numeric: {
+ inputmode: 'numeric',
+ pattern: '[0-9]*',
+ filter: /[^0-9]/g
+ },
+ alphanumeric: {
+ inputmode: 'text',
+ pattern: '[A-Za-z0-9]*',
+ filter: /[^A-Za-z0-9]/g
+ },
+ alpha: {
+ inputmode: 'text',
+ pattern: '[A-Za-z]*',
+ filter: /[^A-Za-z]/g
+ }
+};
const Default$7 = {
- length: 6,
- mask: false
+ groups: null,
+ length: null,
+ mask: false,
+ separator: '·',
+ type: 'numeric'
};
const DefaultType$7 = {
- length: 'number',
- mask: 'boolean'
+ groups: '(array|null)',
+ length: '(number|null)',
+ mask: 'boolean',
+ separator: 'string',
+ type: 'string'
};
/**
class OtpInput extends BaseComponent {
constructor(element, config) {
super(element, config);
- this._inputs = SelectorEngine.find(SELECTOR_INPUT, this._element);
- this._setupInputs();
+ this._input = SelectorEngine.findOne(SELECTOR_INPUT, this._element);
+ if (!this._input) {
+ return;
+ }
+ this._type = TYPES[this._config.type] || TYPES.numeric;
+ this._length = this._resolveLength();
+ this._slots = [];
+ this._setupInput();
+ this._renderSlots();
this._addEventListeners();
+ this._render();
}
// Getters
// Public
getValue() {
- return this._inputs.map(input => input.value).join('');
+ return this._input.value;
}
setValue(value) {
- const chars = [...String(value)];
- for (const [index, input] of this._inputs.entries()) {
- input.value = chars[index] || '';
- }
+ this._input.value = this._sanitize(String(value));
+ this._render();
this._checkComplete();
}
clear() {
- for (const input of this._inputs) {
- input.value = '';
- }
- this._inputs[0]?.focus();
+ this._input.value = '';
+ this._render();
+ this._input.focus();
}
focus() {
- // Focus first empty input, or last input if all filled
- const emptyInput = this._inputs.find(input => !input.value);
- if (emptyInput) {
- emptyInput.focus();
- } else {
- this._inputs.at(-1)?.focus();
+ this._input.focus();
+ // Place the caret after the last entered character
+ const end = this._input.value.length;
+ this._input.setSelectionRange(end, end);
+ this._render();
+ }
+ dispose() {
+ EventHandler.off(this._input, 'input', this._onInput);
+ EventHandler.off(this._input, 'focus', this._onFocus);
+ for (const type of SYNC_EVENTS) {
+ EventHandler.off(this._input, type, this._onSync);
}
+ this._slotsContainer?.remove();
+ this._element.classList.remove(CLASS_NAME_RENDERED);
+ super.dispose();
}
// Private
- _setupInputs() {
- for (const input of this._inputs) {
- // Set attributes for proper OTP handling
- input.setAttribute('maxlength', '1');
- input.setAttribute('inputmode', 'numeric');
- input.setAttribute('pattern', '\\d*');
-
- // First input gets autocomplete for browser OTP autofill
- if (input === this._inputs[0]) {
- input.setAttribute('autocomplete', 'one-time-code');
- } else {
- input.setAttribute('autocomplete', 'off');
- }
-
- // Mask input if configured
- if (this._config.mask) {
- input.setAttribute('type', 'password');
- }
+ _resolveLength() {
+ if (this._config.length) {
+ return this._config.length;
}
+ const maxLength = Number.parseInt(this._input.getAttribute('maxlength'), 10);
+ return Number.isNaN(maxLength) || maxLength < 1 ? 6 : maxLength;
}
- _addEventListeners() {
- for (const [index, input] of this._inputs.entries()) {
- EventHandler.on(input, 'input', event => this._handleInput(event, index));
- EventHandler.on(input, 'keydown', event => this._handleKeydown(event, index));
- EventHandler.on(input, 'paste', event => this._handlePaste(event));
- EventHandler.on(input, 'focus', event => this._handleFocus(event));
+ _setupInput() {
+ const input = this._input;
+
+ // A single text field backs the whole control so screen readers, password
+ // managers, and SMS autofill treat it like any other input.
+ if (input.type === 'number' || input.type === 'password') {
+ input.type = 'text';
+ }
+ input.classList.add(CLASS_NAME_INPUT);
+ input.setAttribute('maxlength', String(this._length));
+ input.setAttribute('inputmode', this._type.inputmode);
+ input.setAttribute('pattern', this._type.pattern);
+ if (!input.getAttribute('autocomplete')) {
+ input.setAttribute('autocomplete', 'one-time-code');
}
- }
- _handleInput(event, index) {
- const input = event.target;
- // Only allow digits
- if (!/^\d*$/.test(input.value)) {
- input.value = input.value.replace(/\D/g, '');
+ // Filter any pre-filled value through the configured type
+ if (input.value) {
+ input.value = this._sanitize(input.value);
}
+ }
+ _renderSlots() {
+ const container = document.createElement('div');
+ container.className = CLASS_NAME_SLOTS;
+ container.setAttribute('aria-hidden', 'true');
const {
- value
- } = input;
-
- // Handle multi-character input (some browsers/autofill)
- if (value.length > 1) {
- // Distribute characters across inputs
- const chars = [...value];
- input.value = chars[0] || '';
- for (let i = 1; i < chars.length && index + i < this._inputs.length; i++) {
- this._inputs[index + i].value = chars[i];
+ groups
+ } = this._config;
+ let groupIndex = 0;
+ let inGroup = 0;
+ for (let i = 0; i < this._length; i++) {
+ const slot = document.createElement('div');
+ slot.className = CLASS_NAME_SLOT;
+ container.append(slot);
+ this._slots.push(slot);
+
+ // Insert a visual separator between configured groups
+ if (Array.isArray(groups) && groups.length > 0) {
+ inGroup++;
+ if (inGroup === groups[groupIndex] && i < this._length - 1) {
+ const separator = document.createElement('div');
+ separator.className = CLASS_NAME_SEPARATOR;
+ separator.textContent = this._config.separator;
+ container.append(separator);
+ groupIndex = Math.min(groupIndex + 1, groups.length - 1);
+ inGroup = 0;
+ }
}
-
- // Focus appropriate input
- const nextIndex = Math.min(index + chars.length, this._inputs.length - 1);
- this._inputs[nextIndex].focus();
- } else if (value && index < this._inputs.length - 1) {
- // Auto-advance to next input
- this._inputs[index + 1].focus();
}
+ this._slotsContainer = container;
+ this._element.append(container);
+ this._element.classList.add(CLASS_NAME_RENDERED);
+ }
+ _addEventListeners() {
+ // Listeners are attached with bare event names (not namespaced) because
+ // `input` is not in EventHandler's native-events list; we keep references
+ // so they can be removed on dispose.
+ this._onInput = () => this._handleInput();
+ this._onFocus = () => this.focus();
+ this._onSync = () => this._render();
+ EventHandler.on(this._input, 'input', this._onInput);
+ EventHandler.on(this._input, 'focus', this._onFocus);
+
+ // Keep the active-slot highlight in sync with the caret
+ for (const type of SYNC_EVENTS) {
+ EventHandler.on(this._input, type, this._onSync);
+ }
+ }
+ _handleInput() {
+ const sanitized = this._sanitize(this._input.value);
+ if (sanitized !== this._input.value) {
+ this._input.value = sanitized;
+ }
+ this._render();
EventHandler.trigger(this._element, EVENT_INPUT, {
- value: this.getValue(),
- index
+ value: this._input.value
});
this._checkComplete();
}
- _handleKeydown(event, index) {
- const {
- key
- } = event;
- switch (key) {
- case 'Backspace':
- {
- if (!this._inputs[index].value && index > 0) {
- // Move to previous input and clear it
- event.preventDefault();
- this._inputs[index - 1].value = '';
- this._inputs[index - 1].focus();
- }
- break;
- }
- case 'Delete':
- {
- // Clear current and shift remaining values left
- event.preventDefault();
- for (let i = index; i < this._inputs.length - 1; i++) {
- this._inputs[i].value = this._inputs[i + 1].value;
- }
- this._inputs.at(-1).value = '';
- break;
- }
- case 'ArrowLeft':
- {
- if (index > 0) {
- event.preventDefault();
- this._inputs[index - 1].focus();
- }
- break;
- }
- case 'ArrowRight':
- {
- if (index < this._inputs.length - 1) {
- event.preventDefault();
- this._inputs[index + 1].focus();
- }
- break;
- }
-
- // No default
- }
+ _sanitize(value) {
+ return value.replace(this._type.filter, '').slice(0, this._length);
}
- _handlePaste(event) {
- event.preventDefault();
- const pastedData = (event.clipboardData || window.clipboardData).getData('text');
- const digits = pastedData.replace(/\D/g, '').slice(0, this._inputs.length);
- if (digits) {
- this.setValue(digits);
-
- // Focus last filled input or last input
- const lastIndex = Math.min(digits.length, this._inputs.length) - 1;
- this._inputs[lastIndex].focus();
+ _render() {
+ const {
+ value
+ } = this._input;
+ const isFocused = document.activeElement === this._input;
+ // The active slot follows the caret, clamped to the last slot when the value is full
+ const caret = Math.min(this._input.selectionStart ?? value.length, this._length - 1);
+ for (const [index, slot] of this._slots.entries()) {
+ const char = value[index] ?? '';
+ slot.textContent = char && this._config.mask ? MASK_CHARACTER : char;
+ slot.classList.toggle(CLASS_NAME_SLOT_FILLED, Boolean(char));
+ slot.classList.toggle(CLASS_NAME_SLOT_ACTIVE, isFocused && index === caret);
}
}
- _handleFocus(event) {
- // Select the content on focus for easy replacement
- event.target.select();
- }
_checkComplete() {
- const value = this.getValue();
- const isComplete = value.length === this._inputs.length && this._inputs.every(input => input.value !== '');
- if (isComplete) {
+ const {
+ value
+ } = this._input;
+ if (value.length === this._length) {
EventHandler.trigger(this._element, EVENT_COMPLETE, {
value
});
* Data API implementation
*/
-EventHandler.on(document, `DOMContentLoaded${EVENT_KEY$5}${DATA_API_KEY$2}`, () => {
+EventHandler.on(document, EVENT_DOMCONTENT_LOADED, () => {
for (const element of SelectorEngine.find(SELECTOR_DATA_OTP)) {
OtpInput.getOrCreateInstance(element);
}
-{"version":3,"file":"bootstrap.js","sources":["../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/dom/manipulator.js","../../js/src/util/index.js","../../js/src/util/config.js","../../js/src/base-component.js","../../js/src/dom/selector-engine.js","../../js/src/util/component-functions.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/util/swipe.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/util/floating-ui.js","../../js/src/menu.js","../../js/src/combobox.js","../../js/src/datepicker.js","../../js/src/dialog-base.js","../../js/src/dialog.js","../../js/src/nav-overflow.js","../../js/src/drawer.js","../../js/src/strength.js","../../js/src/otp-input.js","../../js/src/chips.js","../../js/src/util/sanitizer.js","../../js/src/util/template-factory.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/src/toggler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${[...instanceMap.keys()][0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n getAny(element) {\n if (elementMap.has(element)) {\n return elementMap.get(element).values().next().value || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, { delegateTarget: element })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n hydrateObj(event, { delegateTarget: target })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events)\n .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'\n const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n let typeEvent = getTypeEvent(originalTypeEvent)\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n callable = wrapFunction(callable)\n }\n\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler, callable) :\n bootstrapHandler(element, callable)\n\n fn.delegationSelector = isDelegated ? handler : null\n fn.callable = callable\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false)\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getElementEvents(element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const evt = hydrateObj(new Event(event, { bubbles: true, cancelable: true }), args)\n element.dispatchEvent(evt)\n return evt\n }\n}\n\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value\n } catch {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value\n }\n })\n }\n }\n\n return obj\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n if (value === Number(value).toString()) {\n return Number(value)\n }\n\n if (value === '' || value === 'null') {\n return null\n }\n\n if (typeof value !== 'string') {\n return value\n }\n\n try {\n return JSON.parse(decodeURIComponent(value))\n } catch {\n return value\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'))\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1)\n attributes[pureKey] = normalizeData(element.dataset[key])\n }\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n if (isElement(object)) {\n return object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.harrytheo.com/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport { isElement, toType } from './index.js'\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {}\n }\n\n static get DefaultType() {\n return {}\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n return config\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n }\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property]\n const valueType = isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n }\n }\n}\n\nexport default Config\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '6.0.0-alpha1'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n // Private\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible, parseSelector } from '../util/index.js'\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`\n }\n\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null\n }\n\n return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null\n}\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [...Element.prototype.querySelectorAll.call(element, selector)]\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [...element.children].filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n let ancestor = element.parentNode.closest(selector)\n\n while (ancestor) {\n parents.push(ancestor)\n ancestor = ancestor.parentNode.closest(selector)\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n },\n\n getSelectorFromElement(element) {\n const selector = getSelector(element)\n\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null\n }\n\n return null\n },\n\n getElementFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.findOne(selector) : null\n },\n\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.find(selector) : []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport { isDisabled } from './index.js'\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`\n const name = component.NAME\n\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`)\n const instance = component.getOrCreateInstance(target)\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]()\n })\n}\n\nconst eventActionOnPlugin = (Plugin, onEvent, stringSelector, method, callback = null) => {\n eventAction(`${onEvent}.${Plugin.NAME}`, stringSelector, data => {\n const instances = data.targets.filter(Boolean).map(element => Plugin.getOrCreateInstance(element))\n if (typeof callback === 'function') {\n callback({ ...data, instances })\n }\n\n for (const instance of instances) {\n instance[method]()\n }\n })\n}\n\nconst eventAction = (onEvent, stringSelector, callback) => {\n const selector = `${stringSelector}:not(.disabled):not(:disabled)`\n EventHandler.on(document, onEvent, selector, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n const selector = SelectorEngine.getSelectorFromElement(this)\n const targets = selector ? SelectorEngine.find(selector) : [this]\n\n callback({ targets, event })\n })\n}\n\nexport {\n enableDismissTrigger,\n eventActionOnPlugin\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE)\n\n if (closeEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE)\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated)\n }\n\n // Private\n _destroyElement() {\n this._element.remove()\n EventHandler.trigger(this._element, EVENT_CLOSED)\n this.dispose()\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close')\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'button'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {\n event.preventDefault()\n\n const button = event.target.closest(SELECTOR_DATA_TOGGLE)\n const data = Button.getOrCreateInstance(button)\n\n data.toggle()\n})\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport Config from './config.js'\nimport { execute } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'swipe'\nconst EVENT_KEY = '.bs.swipe'\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null,\n upCallback: null,\n downCallback: null\n}\n\nconst DefaultType = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)',\n upCallback: '(function|null)',\n downCallback: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super()\n this._element = element\n\n if (!element || !Swipe.isSupported()) {\n return\n }\n\n this._config = this._getConfig(config)\n this._deltaX = 0\n this._deltaY = 0\n this._supportPointerEvents = Boolean(window.PointerEvent)\n this._initEvents()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX\n this._deltaY = event.touches[0].clientY\n\n return\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX\n this._deltaY = event.clientY\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX\n this._deltaY = event.clientY - this._deltaY\n }\n\n this._handleSwipe()\n execute(this._config.endCallback)\n }\n\n _move(event) {\n if (event.touches && event.touches.length > 1) {\n this._deltaX = 0\n this._deltaY = 0\n return\n }\n\n this._deltaX = event.touches[0].clientX - this._deltaX\n this._deltaY = event.touches[0].clientY - this._deltaY\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX)\n const absDeltaY = Math.abs(this._deltaY)\n\n // Determine primary axis: whichever has greater movement wins\n if (absDeltaY > absDeltaX && absDeltaY > SWIPE_THRESHOLD) {\n // Vertical swipe\n const direction = this._deltaY > 0 ? 'down' : 'up'\n this._deltaX = 0\n this._deltaY = 0\n execute(direction === 'down' ? this._config.downCallback : this._config.upCallback)\n return\n }\n\n if (absDeltaX > SWIPE_THRESHOLD) {\n // Horizontal swipe\n const direction = absDeltaX / this._deltaX\n this._deltaX = 0\n this._deltaY = 0\n\n if (!direction) {\n return\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback)\n return\n }\n\n this._deltaX = 0\n this._deltaY = 0\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event))\n }\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n }\n}\n\nexport default Swipe\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getNextActiveElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd\n} from './util/index.js'\nimport Swipe from './util/swipe.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next'\nconst ORDER_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_END = 'carousel-item-end'\nconst CLASS_NAME_START = 'carousel-item-start'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n}\n\nconst DefaultType = {\n interval: 'number',\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._interval = null\n this._activeElement = null\n this._isSliding = false\n this.touchTimeout = null\n this._swipeHelper = null\n\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._addEventListeners()\n\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT)\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (document.visibilityState === 'visible' && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n this._slide(ORDER_PREV)\n }\n\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element)\n }\n\n this._clearInterval()\n }\n\n cycle() {\n this._clearInterval()\n this._updateInterval()\n\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval)\n }\n\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle())\n return\n }\n\n this.cycle()\n }\n\n to(index) {\n const items = this._getItems()\n if (index > items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index))\n return\n }\n\n const activeIndex = this._getItemIndex(this._getActive())\n if (activeIndex === index) {\n return\n }\n\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV\n\n this._slide(order, items[index])\n }\n\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause())\n EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle())\n }\n\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault())\n }\n\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return\n }\n\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n }\n\n this._swipeHelper = new Swipe(this._element, swipeConfig)\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n const direction = KEY_TO_DIRECTION[event.key]\n if (direction) {\n event.preventDefault()\n this._slide(this._directionToOrder(direction))\n }\n }\n\n _getItemIndex(element) {\n return this._getItems().indexOf(element)\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return\n }\n\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE)\n activeIndicator.removeAttribute('aria-current')\n\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement)\n\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE)\n newActiveIndicator.setAttribute('aria-current', 'true')\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._getActive()\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n this._config.interval = elementInterval || this._config.defaultInterval\n }\n\n _slide(order, element = null) {\n if (this._isSliding) {\n return\n }\n\n const activeElement = this._getActive()\n const isNext = order === ORDER_NEXT\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap)\n\n if (nextElement === activeElement) {\n return\n }\n\n const nextElementIndex = this._getItemIndex(nextElement)\n\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n })\n }\n\n const slideEvent = triggerEvent(EVENT_SLIDE)\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n const isCycling = Boolean(this._interval)\n this.pause()\n\n this._isSliding = true\n\n this._setActiveIndicatorElement(nextElementIndex)\n this._activeElement = nextElement\n\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n this._isSliding = false\n\n triggerEvent(EVENT_SLID)\n }\n\n this._queueCallback(completeCallBack, activeElement, this._isAnimated())\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE)\n }\n\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element)\n }\n\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n }\n\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n const carousel = Carousel.getOrCreateInstance(target)\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n carousel.to(slideIndex)\n carousel._maybeEnableCycle()\n return\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next()\n carousel._maybeEnableCycle()\n return\n }\n\n carousel.prev()\n carousel._maybeEnableCycle()\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel)\n }\n})\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getElement,\n reflow\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\nconst Default = {\n parent: null,\n toggle: true\n}\n\nconst DefaultType = {\n parent: '(null|element)',\n toggle: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._triggerArray = []\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElement => foundElement === this._element)\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem)\n }\n }\n\n this._initializeChildren()\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown())\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return\n }\n\n let activeChildren = []\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\n .filter(element => element !== this._element)\n .map(element => Collapse.getOrCreateInstance(element, { toggle: false }))\n }\n\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide()\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n this._addAriaAndCollapsedClass(this._triggerArray, true)\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n this._element.style[dimension] = ''\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n this._queueCallback(complete, this._element, true)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger)\n\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false)\n }\n }\n\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n this._queueCallback(complete, this._element, true)\n }\n\n // Private\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle) // Coerce string values\n config.parent = getElement(config.parent)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE)\n\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element)\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected))\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element))\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return\n }\n\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen)\n element.setAttribute('aria-expanded', isOpen)\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {\n event.preventDefault()\n }\n\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, { toggle: false }).toggle()\n }\n})\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/floating-ui.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isRTL } from './index.js'\n\n/**\n * Breakpoints for responsive placement (matches SCSS $breakpoints)\n */\nexport const BREAKPOINTS = {\n sm: 576,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536\n}\n\n/**\n * Default placement with RTL support\n */\nexport const getDefaultPlacement = (fallback = 'bottom') => {\n if (fallback.includes('-start') || fallback.includes('-end')) {\n const [side, alignment] = fallback.split('-')\n const flippedAlignment = alignment === 'start' ? 'end' : 'start'\n return isRTL() ? `${side}-${flippedAlignment}` : fallback\n }\n\n return fallback\n}\n\n/**\n * Parse a placement string that may contain responsive prefixes\n * Example: \"bottom-start md:top-end lg:right\" returns { xs: 'bottom-start', md: 'top-end', lg: 'right' }\n *\n * @param {string} placementString - The placement string to parse\n * @param {string} defaultPlacement - The default placement to use for xs/base\n * @returns {object|null} - Object with breakpoint keys and placement values, or null if not responsive\n */\nexport const parseResponsivePlacement = (placementString, defaultPlacement = 'bottom') => {\n // Check if placement contains responsive prefixes (e.g., \"bottom-start md:top-end\")\n if (!placementString || !placementString.includes(':')) {\n return null\n }\n\n // Parse the placement string into breakpoint-keyed object\n const parts = placementString.split(/\\s+/)\n const placements = { xs: defaultPlacement } // Default fallback\n\n for (const part of parts) {\n if (part.includes(':')) {\n // Responsive placement like \"md:top-end\"\n const [breakpoint, placement] = part.split(':')\n if (BREAKPOINTS[breakpoint] !== undefined) {\n placements[breakpoint] = placement\n }\n } else {\n // Base placement (no prefix = xs/default)\n placements.xs = part\n }\n }\n\n return placements\n}\n\n/**\n * Get the active placement for the current viewport width\n *\n * @param {object} responsivePlacements - Object with breakpoint keys and placement values\n * @param {string} defaultPlacement - Fallback placement\n * @returns {string} - The active placement for current viewport\n */\nexport const getResponsivePlacement = (responsivePlacements, defaultPlacement = 'bottom') => {\n if (!responsivePlacements) {\n return defaultPlacement\n }\n\n // Get current viewport width\n const viewportWidth = window.innerWidth\n\n // Find the largest breakpoint that matches\n let activePlacement = responsivePlacements.xs || defaultPlacement\n\n // Check breakpoints in order (sm, md, lg, xl, 2xl)\n const breakpointOrder = ['sm', 'md', 'lg', 'xl', '2xl']\n\n for (const breakpoint of breakpointOrder) {\n const minWidth = BREAKPOINTS[breakpoint]\n if (viewportWidth >= minWidth && responsivePlacements[breakpoint]) {\n activePlacement = responsivePlacements[breakpoint]\n }\n }\n\n return activePlacement\n}\n\n/**\n * Create media query listeners for responsive placement changes\n *\n * @param {Function} callback - Callback to run when breakpoint changes\n * @returns {Array} - Array of { mql, handler } objects for cleanup\n */\nexport const createBreakpointListeners = callback => {\n const listeners = []\n\n for (const breakpoint of Object.keys(BREAKPOINTS)) {\n const minWidth = BREAKPOINTS[breakpoint]\n const mql = window.matchMedia(`(min-width: ${minWidth}px)`)\n\n mql.addEventListener('change', callback)\n listeners.push({ mql, handler: callback })\n }\n\n return listeners\n}\n\n/**\n * Clean up media query listeners\n *\n * @param {Array} listeners - Array of { mql, handler } objects\n */\nexport const disposeBreakpointListeners = listeners => {\n for (const { mql, handler } of listeners) {\n mql.removeEventListener('change', handler)\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap menu.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n computePosition,\n flip,\n shift,\n offset,\n autoUpdate\n} from '@floating-ui/dom'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n execute,\n getElement,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop\n} from './util/index.js'\nimport {\n parseResponsivePlacement,\n getResponsivePlacement,\n createBreakpointListeners,\n disposeBreakpointListeners\n} from './util/floating-ui.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'menu'\nconst DATA_KEY = 'bs.menu'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\nconst ENTER_KEY = 'Enter'\nconst SPACE_KEY = ' '\nconst RIGHT_MOUSE_BUTTON = 2\n\nconst SUBMENU_CLOSE_DELAY = 100\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"menu\"]:not(.disabled):not(:disabled)'\n\nconst SELECTOR_MENU = '.menu'\nconst SELECTOR_SUBMENU = '.submenu'\nconst SELECTOR_SUBMENU_TOGGLE = '.submenu > .menu-item'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.menu-item:not(.disabled):not(:disabled)'\n\nconst DEFAULT_PLACEMENT = 'bottom-start'\nconst SUBMENU_PLACEMENT = 'end-start'\n\nconst resolveLogicalPlacement = placement => {\n if (isRTL()) {\n return placement.replace(/^start(?=-|$)/, 'right').replace(/^end(?=-|$)/, 'left')\n }\n\n return placement.replace(/^start(?=-|$)/, 'left').replace(/^end(?=-|$)/, 'right')\n}\n\nconst triangleSign = (p1, p2, p3) =>\n ((p1.x - p3.x) * (p2.y - p3.y)) - ((p2.x - p3.x) * (p1.y - p3.y))\n\nconst Default = {\n autoClose: true,\n boundary: 'clippingParents',\n container: false,\n display: 'dynamic',\n offset: [0, 2],\n floatingConfig: null,\n menu: null,\n placement: DEFAULT_PLACEMENT,\n reference: 'toggle',\n strategy: 'absolute',\n submenuTrigger: 'both',\n submenuDelay: SUBMENU_CLOSE_DELAY\n}\n\nconst DefaultType = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n display: 'string',\n offset: '(array|string|function)',\n floatingConfig: '(null|object|function)',\n menu: '(null|element)',\n placement: 'string',\n reference: '(string|element|object)',\n strategy: 'string',\n submenuTrigger: 'string',\n submenuDelay: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass Menu extends BaseComponent {\n static _openInstances = new Set()\n\n constructor(element, config) {\n if (typeof computePosition === 'undefined') {\n throw new TypeError('Bootstrap\\'s menus require Floating UI (https://floating-ui.com)')\n }\n\n super(element, config)\n\n this._floatingCleanup = null\n this._mediaQueryListeners = []\n this._responsivePlacements = null\n this._parent = this._element.parentNode\n this._isSubmenu = this._parent.classList?.contains('submenu')\n this._openSubmenus = new Map()\n this._submenuCloseTimeouts = new Map()\n this._hoverIntentData = null\n\n this._menu = this._config.menu || this._findMenu()\n\n this._menuOriginalParent = this._menu?.parentNode\n\n this._parseResponsivePlacements()\n this._setupSubmenuListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._moveMenuToContainer()\n this._createFloating()\n\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of document.body.children) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n this._element.focus({ focusVisible: false })\n this._element.setAttribute('aria-expanded', 'true')\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.add(CLASS_NAME_SHOW)\n }\n\n Menu._openInstances.add(this)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n this._disposeMediaQueryListeners()\n this._closeAllSubmenus()\n this._clearAllSubmenuTimeouts()\n Menu._openInstances.delete(this)\n super.dispose()\n }\n\n update() {\n if (this._floatingCleanup) {\n this._updateFloatingPosition()\n }\n }\n\n // Private\n _findMenu() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.prev(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.findOne(SELECTOR_MENU, this._parent)\n }\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._closeAllSubmenus()\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.remove(CLASS_NAME_SHOW)\n }\n\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'placement')\n Manipulator.removeDataAttribute(this._menu, 'display')\n Menu._openInstances.delete(this)\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = super._getConfig(config)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createFloating() {\n if (this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'display', 'static')\n return\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n this._updateFloatingPosition(referenceElement)\n\n this._floatingCleanup = autoUpdate(\n referenceElement,\n this._menu,\n () => this._updateFloatingPosition(referenceElement)\n )\n }\n\n async _updateFloatingPosition(referenceElement = null) {\n if (!this._menu) {\n return\n }\n\n if (!referenceElement) {\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n } else {\n referenceElement = this._element\n }\n }\n\n const placement = this._getPlacement()\n const middleware = this._getFloatingMiddleware()\n const floatingConfig = this._getFloatingConfig(placement, middleware)\n\n await this._applyFloatingPosition(\n referenceElement,\n this._menu,\n floatingConfig.placement,\n floatingConfig.middleware,\n floatingConfig.strategy\n )\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement() {\n const placement = this._responsivePlacements ?\n getResponsivePlacement(this._responsivePlacements, DEFAULT_PLACEMENT) :\n this._config.placement\n\n return resolveLogicalPlacement(placement)\n }\n\n _parseResponsivePlacements() {\n this._responsivePlacements = parseResponsivePlacement(this._config.placement, DEFAULT_PLACEMENT)\n\n if (this._responsivePlacements) {\n this._setupMediaQueryListeners()\n }\n }\n\n _setupMediaQueryListeners() {\n this._disposeMediaQueryListeners()\n this._mediaQueryListeners = createBreakpointListeners(() => {\n if (this._isShown()) {\n this._updateFloatingPosition()\n }\n })\n }\n\n _disposeMediaQueryListeners() {\n disposeBreakpointListeners(this._mediaQueryListeners)\n this._mediaQueryListeners = []\n }\n\n _getOffset() {\n const { offset: offsetConfig } = this._config\n\n if (typeof offsetConfig === 'string') {\n return offsetConfig.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offsetConfig === 'function') {\n return ({ placement, rects }) => {\n const result = offsetConfig({ placement, reference: rects.reference, floating: rects.floating }, this._element)\n return result\n }\n }\n\n return offsetConfig\n }\n\n _getFloatingMiddleware() {\n const offsetValue = this._getOffset()\n\n const middleware = [\n offset(\n typeof offsetValue === 'function' ?\n offsetValue :\n { mainAxis: offsetValue[1] || 0, crossAxis: offsetValue[0] || 0 }\n ),\n flip({\n fallbackPlacements: this._getFallbackPlacements()\n }),\n shift({\n boundary: this._config.boundary === 'clippingParents' ? 'clippingAncestors' : this._config.boundary\n })\n ]\n\n return middleware\n }\n\n _getFallbackPlacements() {\n const placement = this._getPlacement()\n\n const fallbackMap = {\n bottom: ['top', 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\n 'bottom-start': ['top-start', 'bottom-end', 'top-end'],\n 'bottom-end': ['top-end', 'bottom-start', 'top-start'],\n top: ['bottom', 'top-start', 'top-end', 'bottom-start', 'bottom-end'],\n 'top-start': ['bottom-start', 'top-end', 'bottom-end'],\n 'top-end': ['bottom-end', 'top-start', 'bottom-start'],\n right: ['left', 'right-start', 'right-end', 'left-start', 'left-end'],\n 'right-start': ['left-start', 'right-end', 'left-end', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'right-start', 'left-start', 'top-end', 'bottom-end'],\n left: ['right', 'left-start', 'left-end', 'right-start', 'right-end'],\n 'left-start': ['right-start', 'left-end', 'right-end', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'left-start', 'right-start', 'top-end', 'bottom-end']\n }\n\n return fallbackMap[placement] || ['top', 'bottom', 'right', 'left']\n }\n\n _getFloatingConfig(placement, middleware) {\n const defaultConfig = {\n placement,\n middleware,\n strategy: this._config.strategy\n }\n\n return {\n ...defaultConfig,\n ...execute(this._config.floatingConfig, [undefined, defaultConfig])\n }\n }\n\n _disposeFloating() {\n if (this._floatingCleanup) {\n this._floatingCleanup()\n this._floatingCleanup = null\n }\n }\n\n _getContainer() {\n const { container } = this._config\n if (container === false) {\n return null\n }\n\n return container === true ? document.body : getElement(container)\n }\n\n _moveMenuToContainer() {\n const container = this._getContainer()\n if (!container || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== container) {\n container.append(this._menu)\n }\n }\n\n _restoreMenuToOriginalParent() {\n if (!this._menuOriginalParent || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== this._menuOriginalParent) {\n this._menuOriginalParent.append(this._menu)\n }\n }\n\n async _applyFloatingPosition(reference, floating, placement, middleware, strategy = 'absolute') {\n if (!floating.isConnected) {\n return null\n }\n\n const { x, y, placement: finalPlacement } = await computePosition(\n reference,\n floating,\n { placement, middleware, strategy }\n )\n\n if (!floating.isConnected) {\n return null\n }\n\n Object.assign(floating.style, {\n position: strategy,\n left: `${x}px`,\n top: `${y}px`,\n margin: '0'\n })\n\n Manipulator.setDataAttribute(floating, 'placement', finalPlacement)\n return finalPlacement\n }\n\n // -------------------------------------------------------------------------\n // Submenu handling\n // -------------------------------------------------------------------------\n\n _setupSubmenuListeners() {\n if (this._config.submenuTrigger === 'hover' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'mouseenter', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerEnter(event)\n })\n\n EventHandler.on(this._menu, 'mouseleave', SELECTOR_SUBMENU, event => {\n this._onSubmenuLeave(event)\n })\n\n EventHandler.on(this._menu, 'mousemove', event => {\n this._trackMousePosition(event)\n })\n }\n\n if (this._config.submenuTrigger === 'click' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'click', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerClick(event)\n })\n }\n }\n\n _onSubmenuTriggerEnter(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n this._cancelSubmenuCloseTimeout(submenu)\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n\n _onSubmenuLeave(event) {\n const submenuWrapper = event.target.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu || !this._openSubmenus.has(submenu)) {\n return\n }\n\n if (this._isMovingTowardSubmenu(event, submenu)) {\n return\n }\n\n this._scheduleSubmenuClose(submenu, submenuWrapper)\n }\n\n _onSubmenuTriggerClick(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n if (this._openSubmenus.has(submenu)) {\n this._closeSubmenu(submenu, submenuWrapper)\n } else {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n }\n\n _openSubmenu(trigger, submenu, submenuWrapper) {\n if (this._openSubmenus.has(submenu)) {\n return\n }\n\n trigger.setAttribute('aria-expanded', 'true')\n trigger.setAttribute('aria-haspopup', 'true')\n\n submenu.classList.add(CLASS_NAME_SHOW)\n submenuWrapper.classList.add(CLASS_NAME_SHOW)\n\n const cleanup = this._createSubmenuFloating(trigger, submenu, submenuWrapper)\n this._openSubmenus.set(submenu, cleanup)\n\n EventHandler.on(submenu, 'mouseenter', () => {\n this._cancelSubmenuCloseTimeout(submenu)\n })\n }\n\n _closeSubmenu(submenu, submenuWrapper) {\n if (!this._openSubmenus.has(submenu)) {\n return\n }\n\n const nestedSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, submenu)\n for (const nested of nestedSubmenus) {\n const nestedWrapper = nested.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(nested, nestedWrapper)\n }\n\n const trigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, submenuWrapper)\n\n const cleanup = this._openSubmenus.get(submenu)\n if (cleanup) {\n cleanup()\n }\n\n this._openSubmenus.delete(submenu)\n EventHandler.off(submenu, 'mouseenter')\n\n if (trigger) {\n trigger.setAttribute('aria-expanded', 'false')\n }\n\n submenu.classList.remove(CLASS_NAME_SHOW)\n submenuWrapper.classList.remove(CLASS_NAME_SHOW)\n\n submenu.style.position = ''\n submenu.style.left = ''\n submenu.style.top = ''\n submenu.style.margin = ''\n }\n\n _closeAllSubmenus() {\n for (const [submenu] of this._openSubmenus) {\n const submenuWrapper = submenu.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(submenu, submenuWrapper)\n }\n }\n\n _closeSiblingSubmenus(currentSubmenuWrapper) {\n const parent = currentSubmenuWrapper.parentNode\n const siblingSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} > ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, parent)\n\n for (const siblingMenu of siblingSubmenus) {\n const siblingWrapper = siblingMenu.closest(SELECTOR_SUBMENU)\n if (siblingWrapper !== currentSubmenuWrapper) {\n this._closeSubmenu(siblingMenu, siblingWrapper)\n }\n }\n }\n\n _createSubmenuFloating(trigger, submenu, submenuWrapper) {\n const referenceElement = submenuWrapper\n const placement = resolveLogicalPlacement(SUBMENU_PLACEMENT)\n const middleware = [\n offset({ mainAxis: 0, crossAxis: -4 }),\n flip({\n fallbackPlacements: [\n resolveLogicalPlacement('start-start'),\n resolveLogicalPlacement('end-end'),\n resolveLogicalPlacement('start-end')\n ]\n }),\n shift({ padding: 8 })\n ]\n\n const updatePosition = () => this._applyFloatingPosition(referenceElement, submenu, placement, middleware)\n\n updatePosition()\n return autoUpdate(referenceElement, submenu, updatePosition)\n }\n\n _scheduleSubmenuClose(submenu, submenuWrapper) {\n this._cancelSubmenuCloseTimeout(submenu)\n\n const timeoutId = setTimeout(() => {\n this._closeSubmenu(submenu, submenuWrapper)\n this._submenuCloseTimeouts.delete(submenu)\n }, this._config.submenuDelay)\n\n this._submenuCloseTimeouts.set(submenu, timeoutId)\n }\n\n _cancelSubmenuCloseTimeout(submenu) {\n const timeoutId = this._submenuCloseTimeouts.get(submenu)\n if (timeoutId) {\n clearTimeout(timeoutId)\n this._submenuCloseTimeouts.delete(submenu)\n }\n }\n\n _clearAllSubmenuTimeouts() {\n for (const timeoutId of this._submenuCloseTimeouts.values()) {\n clearTimeout(timeoutId)\n }\n\n this._submenuCloseTimeouts.clear()\n }\n\n // -------------------------------------------------------------------------\n // Hover intent / Safe triangle\n // -------------------------------------------------------------------------\n\n _trackMousePosition(event) {\n this._hoverIntentData = {\n x: event.clientX,\n y: event.clientY,\n timestamp: Date.now()\n }\n }\n\n _isMovingTowardSubmenu(event, submenu) {\n if (!this._hoverIntentData) {\n return false\n }\n\n const submenuRect = submenu.getBoundingClientRect()\n const currentPos = { x: event.clientX, y: event.clientY }\n const lastPos = { x: this._hoverIntentData.x, y: this._hoverIntentData.y }\n\n const isRtl = isRTL()\n const targetX = isRtl ? submenuRect.right : submenuRect.left\n const topCorner = { x: targetX, y: submenuRect.top }\n const bottomCorner = { x: targetX, y: submenuRect.bottom }\n\n return this._pointInTriangle(currentPos, lastPos, topCorner, bottomCorner)\n }\n\n _pointInTriangle(point, v1, v2, v3) {\n const d1 = triangleSign(point, v1, v2)\n const d2 = triangleSign(point, v2, v3)\n const d3 = triangleSign(point, v3, v1)\n\n const hasNeg = (d1 < 0) || (d2 < 0) || (d3 < 0)\n const hasPos = (d1 > 0) || (d2 > 0) || (d3 > 0)\n\n return !(hasNeg && hasPos)\n }\n\n // -------------------------------------------------------------------------\n // Keyboard navigation\n // -------------------------------------------------------------------------\n\n _selectMenuItem({ key, target }) {\n const currentMenu = target.closest(SELECTOR_MENU) || this._menu\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (!items.length) {\n return\n }\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n _handleSubmenuKeydown(event) {\n const { key, target } = event\n const isRtl = isRTL()\n\n const enterKey = isRtl ? ARROW_LEFT_KEY : ARROW_RIGHT_KEY\n const exitKey = isRtl ? ARROW_RIGHT_KEY : ARROW_LEFT_KEY\n\n const submenuWrapper = target.closest(SELECTOR_SUBMENU)\n const isSubmenuTrigger = submenuWrapper && target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === enterKey && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === exitKey) {\n const currentMenu = target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper) {\n event.preventDefault()\n event.stopPropagation()\n\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n this._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return true\n }\n }\n\n if (key === HOME_KEY || key === END_KEY) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = target.closest(SELECTOR_MENU)\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (items.length) {\n const targetItem = key === HOME_KEY ? items[0] : items.at(-1)\n targetItem.focus()\n }\n\n return true\n }\n\n return false\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n for (const instance of Menu._openInstances) {\n if (instance._config.autoClose === false) {\n continue\n }\n\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(instance._menu)\n if (\n composedPath.includes(instance._element) ||\n (instance._config.autoClose === 'inside' && !isMenuTarget) ||\n (instance._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n if (instance._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n const relatedTarget = { relatedTarget: instance._element }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n instance._completeHide(relatedTarget)\n }\n }\n\n static dataApiKeydownHandler(event) {\n const isInput = /input|textarea/i.test(event.target.tagName)\n const isEscapeEvent = event.key === ESCAPE_KEY\n const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)\n const isLeftOrRightEvent = [ARROW_LEFT_KEY, ARROW_RIGHT_KEY].includes(event.key)\n const isHomeOrEndEvent = [HOME_KEY, END_KEY].includes(event.key)\n const isEnterOrSpaceEvent = [ENTER_KEY, SPACE_KEY].includes(event.key)\n\n const isSubmenuTrigger = event.target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if (!isUpOrDownEvent && !isEscapeEvent && !isLeftOrRightEvent && !isHomeOrEndEvent &&\n !(isEnterOrSpaceEvent && isSubmenuTrigger)) {\n return\n }\n\n if (isInput && !isEscapeEvent) {\n return\n }\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\n this :\n (SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.next(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\n\n if (!getToggleButton) {\n return\n }\n\n const instance = Menu.getOrCreateInstance(getToggleButton)\n\n if ((isLeftOrRightEvent || isHomeOrEndEvent || (isEnterOrSpaceEvent && isSubmenuTrigger)) && instance._handleSubmenuKeydown(event)) {\n return\n }\n\n if (isUpOrDownEvent) {\n event.preventDefault()\n event.stopPropagation()\n instance.show()\n instance._selectMenuItem(event)\n return\n }\n\n if (isEscapeEvent && instance._isShown()) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = event.target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper && instance._openSubmenus.size > 0) {\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n instance._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return\n }\n\n instance.hide()\n getToggleButton.focus()\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Menu.getOrCreateInstance(this).toggle()\n})\n\nexport default Menu\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap combobox.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Menu from './menu.js'\nimport { getNextActiveElement, isDisabled, isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'combobox'\nconst DATA_KEY = 'bs.combobox'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\nconst ENTER_KEY = 'Enter'\nconst SPACE_KEY = ' '\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SELECTED = 'selected'\nconst CLASS_NAME_PLACEHOLDER = 'combobox-placeholder'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"combobox\"]'\nconst SELECTOR_MENU = '.menu'\nconst SELECTOR_MENU_ITEM = '.menu-item[data-bs-value]'\nconst SELECTOR_VISIBLE_ITEMS = '.menu-item[data-bs-value]:not(.disabled):not(:disabled)'\nconst SELECTOR_VALUE = '.combobox-value'\nconst SELECTOR_SEARCH_INPUT = '.combobox-search-input'\nconst SELECTOR_NO_RESULTS = '.combobox-no-results'\n\nconst Default = {\n boundary: 'clippingParents',\n multiple: false,\n name: null,\n offset: [0, 2],\n placeholder: '',\n placement: 'bottom-start',\n search: false,\n searchNormalize: false\n}\n\nconst DefaultType = {\n boundary: '(string|element)',\n multiple: 'boolean',\n name: '(string|null)',\n offset: '(array|string|function)',\n placeholder: 'string',\n placement: 'string',\n search: 'boolean',\n searchNormalize: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Combobox extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._toggle = this._element\n this._menu = SelectorEngine.next(this._toggle, SELECTOR_MENU)[0]\n this._valueDisplay = SelectorEngine.findOne(SELECTOR_VALUE, this._toggle)\n this._searchInput = SelectorEngine.findOne(SELECTOR_SEARCH_INPUT, this._menu)\n this._noResults = SelectorEngine.findOne(SELECTOR_NO_RESULTS, this._menu)\n this._hiddenInput = null\n this._menuInstance = null\n\n this._createHiddenInput()\n this._createMenuInstance()\n this._syncInitialSelection()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._toggle) || this._isShown()) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._toggle, EVENT_SHOW)\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._menuInstance.show()\n\n if (this._searchInput) {\n this._searchInput.value = ''\n this._filterItems('')\n requestAnimationFrame(() => this._searchInput.focus())\n }\n\n EventHandler.trigger(this._toggle, EVENT_SHOWN)\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._toggle, EVENT_HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._menuInstance.hide()\n EventHandler.trigger(this._toggle, EVENT_HIDDEN)\n }\n\n dispose() {\n if (this._menuInstance) {\n this._menuInstance.dispose()\n this._menuInstance = null\n }\n\n if (this._hiddenInput) {\n this._hiddenInput.remove()\n this._hiddenInput = null\n }\n\n EventHandler.off(this._menu, EVENT_KEY)\n EventHandler.off(this._toggle, EVENT_KEY)\n\n super.dispose()\n }\n\n // Private\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _createHiddenInput() {\n const { name } = this._config\n if (!name) {\n return\n }\n\n this._hiddenInput = document.createElement('input')\n this._hiddenInput.type = 'hidden'\n this._hiddenInput.name = name\n this._hiddenInput.value = ''\n this._toggle.parentNode.insertBefore(this._hiddenInput, this._toggle)\n }\n\n _createMenuInstance() {\n this._menuInstance = new Menu(this._toggle, {\n menu: this._menu,\n autoClose: this._config.multiple ? 'outside' : true,\n boundary: this._config.boundary,\n offset: this._config.offset,\n placement: this._config.placement\n })\n }\n\n _syncInitialSelection() {\n const selectedItems = this._getSelectedItems()\n if (selectedItems.length > 0) {\n this._updateToggleText()\n this._updateHiddenInput()\n } else {\n this._showPlaceholder()\n }\n }\n\n _addEventListeners() {\n EventHandler.on(this._menu, 'click', SELECTOR_MENU_ITEM, event => {\n const item = event.target.closest(SELECTOR_MENU_ITEM)\n if (!item || isDisabled(item)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n this._selectItem(item)\n })\n\n EventHandler.on(this._toggle, 'keydown', event => {\n this._handleToggleKeydown(event)\n })\n\n EventHandler.on(this._menu, 'keydown', event => {\n this._handleMenuKeydown(event)\n })\n\n if (this._searchInput) {\n EventHandler.on(this._searchInput, 'input', () => {\n this._filterItems(this._searchInput.value)\n })\n\n EventHandler.on(this._searchInput, 'keydown', event => {\n if (event.key === ARROW_DOWN_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n items[0].focus()\n }\n }\n\n if (event.key === ESCAPE_KEY) {\n this.hide()\n this._toggle.focus()\n }\n })\n }\n }\n\n _selectItem(item) {\n if (this._config.multiple) {\n item.classList.toggle(CLASS_NAME_SELECTED)\n item.setAttribute('aria-selected', item.classList.contains(CLASS_NAME_SELECTED))\n } else {\n const previouslySelected = SelectorEngine.find(`.${CLASS_NAME_SELECTED}`, this._menu)\n for (const prev of previouslySelected) {\n prev.classList.remove(CLASS_NAME_SELECTED)\n prev.setAttribute('aria-selected', 'false')\n }\n\n item.classList.add(CLASS_NAME_SELECTED)\n item.setAttribute('aria-selected', 'true')\n }\n\n this._updateToggleText()\n this._updateHiddenInput()\n\n const value = this._config.multiple ?\n this._getSelectedItems().map(el => el.dataset.bsValue) :\n item.dataset.bsValue\n\n EventHandler.trigger(this._toggle, EVENT_CHANGE, {\n value,\n item\n })\n\n if (!this._config.multiple) {\n this.hide()\n this._toggle.focus()\n }\n }\n\n _updateToggleText() {\n const selectedItems = this._getSelectedItems()\n\n if (selectedItems.length === 0) {\n this._showPlaceholder()\n return\n }\n\n this._valueDisplay.classList.remove(CLASS_NAME_PLACEHOLDER)\n\n if (this._config.multiple && selectedItems.length > 1) {\n this._valueDisplay.textContent = `${selectedItems.length} selected`\n } else {\n const item = selectedItems[0]\n const label = SelectorEngine.findOne('.menu-item-content > span:first-child', item)\n this._valueDisplay.textContent = label ? label.textContent : item.textContent.trim()\n }\n }\n\n _showPlaceholder() {\n const { placeholder } = this._config\n if (placeholder) {\n this._valueDisplay.textContent = placeholder\n this._valueDisplay.classList.add(CLASS_NAME_PLACEHOLDER)\n }\n }\n\n _updateHiddenInput() {\n if (!this._hiddenInput) {\n return\n }\n\n const selectedItems = this._getSelectedItems()\n const values = selectedItems.map(el => el.dataset.bsValue)\n this._hiddenInput.value = this._config.multiple ? values.join(',') : (values[0] || '')\n }\n\n _getSelectedItems() {\n return SelectorEngine.find(`.${CLASS_NAME_SELECTED}`, this._menu)\n }\n\n _getVisibleItems() {\n return SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu)\n .filter(item => isVisible(item))\n }\n\n _filterItems(query) {\n const normalizedQuery = this._normalizeText(query.toLowerCase().trim())\n const items = SelectorEngine.find(SELECTOR_MENU_ITEM, this._menu)\n let visibleCount = 0\n\n for (const item of items) {\n const text = this._normalizeText(item.textContent.toLowerCase().trim())\n const matches = !normalizedQuery || text.includes(normalizedQuery)\n item.style.display = matches ? '' : 'none'\n if (matches) {\n visibleCount++\n }\n }\n\n if (this._noResults) {\n this._noResults.classList.toggle('d-none', visibleCount > 0)\n }\n }\n\n _normalizeText(text) {\n if (this._config.searchNormalize) {\n return text.normalize('NFD').replace(/[\\u0300-\\u036F]/g, '')\n }\n\n return text\n }\n\n _handleToggleKeydown(event) {\n const { key } = event\n\n if (key === ARROW_DOWN_KEY || key === ARROW_UP_KEY) {\n event.preventDefault()\n if (!this._isShown()) {\n this.show()\n }\n\n const items = this._getVisibleItems()\n if (items.length > 0) {\n const target = key === ARROW_DOWN_KEY ? items[0] : items.at(-1)\n target.focus()\n }\n\n return\n }\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && !this._isShown()) {\n event.preventDefault()\n this.show()\n }\n }\n\n _handleMenuKeydown(event) {\n const { key, target } = event\n\n if (key === ESCAPE_KEY) {\n event.preventDefault()\n event.stopPropagation()\n this.hide()\n this._toggle.focus()\n return\n }\n\n if (key === TAB_KEY) {\n this.hide()\n return\n }\n\n const isInput = target.matches('input')\n\n if (key === ARROW_DOWN_KEY || key === ARROW_UP_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n return\n }\n\n if (key === HOME_KEY || key === END_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n const targetItem = key === HOME_KEY ? items[0] : items.at(-1)\n targetItem.focus()\n }\n\n return\n }\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && !isInput) {\n event.preventDefault()\n const item = target.closest(SELECTOR_MENU_ITEM)\n if (item && !isDisabled(item)) {\n this._selectItem(item)\n }\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Combobox.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Combobox.getOrCreateInstance(this).toggle()\n})\n\nEventHandler.on(document, 'DOMContentLoaded', () => {\n for (const toggle of SelectorEngine.find(SELECTOR_DATA_TOGGLE)) {\n Combobox.getOrCreateInstance(toggle)\n }\n})\n\nexport default Combobox\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap datepicker.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { Calendar } from 'vanilla-calendar-pro'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { isDisabled } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'datepicker'\nconst DATA_KEY = 'bs.datepicker'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUSIN_DATA_API = `focusin${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"datepicker\"]'\n\nconst HIDE_DELAY = 100 // ms delay before hiding after selection\n\nconst Default = {\n datepickerTheme: null, // 'light', 'dark', 'auto' - explicit theme for datepicker popover only\n dateMin: null,\n dateMax: null,\n dateFormat: null, // Intl.DateTimeFormat options, or function(date, locale) => string\n displayElement: null, // Element to show formatted date (defaults to element for buttons)\n displayMonthsCount: 1, // Number of months to display side-by-side\n firstWeekday: 1, // Monday\n inline: false, // Render calendar inline (no popup)\n locale: 'default',\n positionElement: null, // Element to position calendar relative to (defaults to input)\n selectedDates: [],\n selectionMode: 'single', // 'single', 'multiple', 'multiple-ranged'\n placement: 'left', // 'left', 'center', 'right', 'auto'\n vcpOptions: {} // Pass-through for any VCP option\n}\n\nconst DefaultType = {\n datepickerTheme: '(null|string)',\n dateMin: '(null|string|number|object)',\n dateMax: '(null|string|number|object)',\n dateFormat: '(null|object|function)',\n displayElement: '(null|string|element|boolean)',\n displayMonthsCount: 'number',\n firstWeekday: 'number',\n inline: 'boolean',\n locale: 'string',\n positionElement: '(null|string|element)',\n selectedDates: 'array',\n selectionMode: 'string',\n placement: 'string',\n vcpOptions: 'object'\n}\n\n/**\n * Class definition\n */\n\nclass Datepicker extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._calendar = null\n this._isShown = false\n\n this._initCalendar()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n return this._isShown ? this.hide() : this.show()\n }\n\n show() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n if (!this._calendar || isDisabled(this._element) || this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._calendar.show()\n this._isShown = true\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n hide() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n if (!this._calendar || !this._isShown) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._calendar.hide()\n this._isShown = false\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n dispose() {\n if (this._themeObserver) {\n this._themeObserver.disconnect()\n this._themeObserver = null\n }\n\n if (this._calendar) {\n this._calendar.destroy()\n }\n\n this._calendar = null\n super.dispose()\n }\n\n getSelectedDates() {\n const dates = this._calendar?.context?.selectedDates\n return dates ? [...dates] : []\n }\n\n setSelectedDates(dates) {\n if (this._calendar) {\n this._calendar.set({ selectedDates: dates })\n }\n }\n\n // Private\n _initCalendar() {\n this._isInput = this._element.tagName === 'INPUT'\n this._isInline = this._config.inline\n\n // For inline mode, look for a hidden input child to bind to\n if (this._isInline && !this._isInput) {\n this._boundInput = this._element.querySelector('input[type=\"hidden\"], input[name]')\n }\n\n this._positionElement = this._resolvePositionElement()\n this._displayElement = this._resolveDisplayElement()\n\n const calendarOptions = this._buildCalendarOptions()\n\n // Create calendar on the position element (for correct popup positioning)\n // but value updates still go to this._element (the input)\n this._calendar = new Calendar(this._positionElement, calendarOptions)\n this._calendar.init()\n\n // Watch for theme changes on ancestor elements (for live theme switching)\n this._setupThemeObserver()\n\n // Set initial value if input has a value\n if (this._isInput && this._element.value) {\n this._parseInputValue()\n }\n\n // Populate input/display with preselected dates\n this._updateDisplayWithSelectedDates()\n }\n\n _updateDisplayWithSelectedDates() {\n const { selectedDates } = this._config\n if (!selectedDates || selectedDates.length === 0) {\n return\n }\n\n const formattedDate = this._formatDateForInput(selectedDates)\n\n if (this._isInput) {\n this._element.value = formattedDate\n }\n\n if (this._boundInput) {\n this._boundInput.value = selectedDates.join(',')\n }\n\n if (this._displayElement) {\n this._displayElement.textContent = formattedDate\n }\n }\n\n _resolvePositionElement() {\n let { positionElement } = this._config\n\n if (typeof positionElement === 'string') {\n positionElement = document.querySelector(positionElement)\n }\n\n // Use input's parent if in form-adorn\n if (!positionElement && this._isInput && !this._isInline) {\n const parent = this._element.closest('.form-adorn')\n if (parent) {\n positionElement = parent\n }\n }\n\n return positionElement || this._element\n }\n\n _resolveDisplayElement() {\n const { displayElement } = this._config\n\n if (typeof displayElement === 'string') {\n return document.querySelector(displayElement)\n }\n\n // For buttons/non-inputs (not inline), look for a [data-bs-datepicker-display] child\n if (displayElement === true || (displayElement === null && !this._isInput && !this._isInline)) {\n const displayChild = this._element.querySelector('[data-bs-datepicker-display]')\n return displayChild || this._element\n }\n\n return displayElement\n }\n\n _getThemeAncestor() {\n return this._element.closest('[data-bs-theme]')\n }\n\n _getEffectiveTheme() {\n // Priority: explicit datepickerTheme config > inherited from ancestor > none\n const { datepickerTheme } = this._config\n if (datepickerTheme) {\n return datepickerTheme\n }\n\n const ancestor = this._getThemeAncestor()\n return ancestor?.getAttribute('data-bs-theme') || null\n }\n\n _syncThemeAttribute(element) {\n if (!element) {\n return\n }\n\n const theme = this._getEffectiveTheme()\n\n if (theme) {\n // Copy theme to popover (needed because VCP appends to body, breaking CSS inheritance)\n element.setAttribute('data-bs-theme', theme)\n } else {\n // No theme - remove attribute to allow natural inheritance\n element.removeAttribute('data-bs-theme')\n }\n }\n\n _setupThemeObserver() {\n // Watch for theme changes on ancestor elements\n const ancestor = this._getThemeAncestor()\n if (!ancestor || this._config.datepickerTheme) {\n // No ancestor to watch, or explicit datepickerTheme overrides\n return\n }\n\n this._themeObserver = new MutationObserver(() => {\n this._syncThemeAttribute(this._calendar?.context?.mainElement)\n })\n\n this._themeObserver.observe(ancestor, {\n attributes: true,\n attributeFilter: ['data-bs-theme']\n })\n }\n\n _buildCalendarOptions() {\n // Get theme for VCP - use 'system' for auto-detection if no explicit theme\n const theme = this._getEffectiveTheme()\n // VCP uses 'system' for auto, Bootstrap uses 'auto'\n const vcpTheme = !theme || theme === 'auto' ? 'system' : theme\n\n const calendarOptions = {\n ...this._config.vcpOptions,\n inputMode: !this._isInline,\n positionToInput: this._config.placement,\n firstWeekday: this._config.firstWeekday,\n locale: this._config.locale,\n selectionDatesMode: this._config.selectionMode,\n selectedDates: this._config.selectedDates,\n displayMonthsCount: this._config.displayMonthsCount,\n type: this._config.displayMonthsCount > 1 ? 'multiple' : 'default',\n selectedTheme: vcpTheme,\n themeAttrDetect: '[data-bs-theme]',\n onClickDate: (self, event) => this._handleDateClick(self, event),\n onInit: self => {\n this._syncThemeAttribute(self.context.mainElement)\n },\n onShow: () => {\n this._isShown = true\n this._syncThemeAttribute(this._calendar.context.mainElement)\n },\n onHide: () => {\n this._isShown = false\n }\n }\n\n // Navigate to the month of the first selected date\n if (this._config.selectedDates.length > 0) {\n const firstDate = this._parseDate(this._config.selectedDates[0])\n calendarOptions.selectedMonth = firstDate.getMonth()\n calendarOptions.selectedYear = firstDate.getFullYear()\n }\n\n if (this._config.dateMin) {\n calendarOptions.dateMin = this._config.dateMin\n }\n\n if (this._config.dateMax) {\n calendarOptions.dateMax = this._config.dateMax\n }\n\n return calendarOptions\n }\n\n _handleDateClick(self, event) {\n const selectedDates = [...self.context.selectedDates]\n\n if (selectedDates.length > 0) {\n const formattedDate = this._formatDateForInput(selectedDates)\n\n if (this._isInput) {\n this._element.value = formattedDate\n }\n\n if (this._boundInput) {\n this._boundInput.value = selectedDates.join(',')\n }\n\n if (this._displayElement) {\n this._displayElement.textContent = formattedDate\n }\n }\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n dates: selectedDates,\n event\n })\n\n this._maybeHideAfterSelection(selectedDates)\n }\n\n _maybeHideAfterSelection(selectedDates) {\n if (this._isInline) {\n return\n }\n\n const shouldHide =\n (this._config.selectionMode === 'single' && selectedDates.length > 0) ||\n (this._config.selectionMode === 'multiple-ranged' && selectedDates.length >= 2)\n\n if (shouldHide) {\n setTimeout(() => this.hide(), HIDE_DELAY)\n }\n }\n\n _parseDate(dateStr) {\n const [year, month, day] = dateStr.split('-')\n return new Date(year, month - 1, day)\n }\n\n _formatDate(dateStr) {\n const date = this._parseDate(dateStr)\n const locale = this._config.locale === 'default' ? undefined : this._config.locale\n const { dateFormat } = this._config\n\n // Custom function formatter\n if (typeof dateFormat === 'function') {\n return dateFormat(date, locale)\n }\n\n // Intl.DateTimeFormat options object\n if (dateFormat && typeof dateFormat === 'object') {\n return new Intl.DateTimeFormat(locale, dateFormat).format(date)\n }\n\n // Default: locale-aware formatting\n return date.toLocaleDateString(locale)\n }\n\n _formatDateForInput(dates) {\n if (dates.length === 0) {\n return ''\n }\n\n if (dates.length === 1) {\n return this._formatDate(dates[0])\n }\n\n // For date ranges, use en-dash; for multiple dates, use comma\n const separator = this._config.selectionMode === 'multiple-ranged' ? ' – ' : ', '\n return dates.map(d => this._formatDate(d)).join(separator)\n }\n\n _parseInputValue() {\n // Try to parse the input value as a date\n const value = this._element.value.trim()\n if (!value) {\n return\n }\n\n const date = new Date(value)\n if (!Number.isNaN(date.getTime())) {\n const year = date.getFullYear()\n const month = String(date.getMonth() + 1).padStart(2, '0')\n const day = String(date.getDate()).padStart(2, '0')\n const formatted = `${year}-${month}-${day}`\n this._calendar.set({ selectedDates: [formatted] })\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // Only handle if not an input (inputs use focus)\n // Skip inline datepickers (they're always visible)\n if (this.tagName === 'INPUT' || this.dataset.bsInline === 'true') {\n return\n }\n\n event.preventDefault()\n Datepicker.getOrCreateInstance(this).toggle()\n})\n\nEventHandler.on(document, EVENT_FOCUSIN_DATA_API, SELECTOR_DATA_TOGGLE, function () {\n // Handle focus for input elements\n if (this.tagName !== 'INPUT') {\n return\n }\n\n Datepicker.getOrCreateInstance(this).show()\n})\n\n// Auto-initialize inline datepickers on DOMContentLoaded\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of document.querySelectorAll(`${SELECTOR_DATA_TOGGLE}[data-bs-inline=\"true\"]`)) {\n Datepicker.getOrCreateInstance(element)\n }\n})\n\nexport default Datepicker\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dialog-base.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst CLASS_NAME_OPEN = 'dialog-open'\n\n/**\n * Class definition\n *\n * Shared base class for Dialog and Drawer components that use\n * the native <dialog> element. Provides common behavior for:\n * - Show/hide/toggle lifecycle with events\n * - Opening/closing via showModal()/show()/close()\n * - Escape key handling (modal and non-modal)\n * - Backdrop click handling\n * - Static backdrop transition (\"bounce\")\n * - Body scroll prevention\n * - Transition coordination\n * - Child component cleanup (tooltips, popovers, toasts)\n */\n\nclass DialogBase extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._openedAsModal = false\n this._addDialogListeners()\n }\n\n // Getters — subclasses override NAME with their own component name.\n static get NAME() {\n return 'dialogbase'\n }\n\n // Public — shared lifecycle methods\n\n toggle(relatedTarget) {\n return this._element.open ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._element.open || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('show'),\n { relatedTarget }\n )\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isTransitioning = true\n this._onBeforeShow()\n\n const { modal, preventBodyScroll } = this._getShowOptions()\n this._showElement({ modal, preventBodyScroll })\n\n this._queueCallback(() => {\n this._isTransitioning = false\n EventHandler.trigger(\n this._element,\n this.constructor.eventName('shown'),\n { relatedTarget }\n )\n }, this._element, this._isAnimated())\n }\n\n hide() {\n if (!this._element.open || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('hide')\n )\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isTransitioning = true\n this._hideElement()\n\n this._queueCallback(() => {\n // For subclasses that defer close() until the exit transition ends\n // (so the dialog stays in the top layer with its ::backdrop), close()\n // happens here instead of in _hideElement().\n if (this._element.open) {\n this._closeAndCleanup()\n }\n\n this._element.classList.remove('hiding')\n this._onAfterHide()\n this._isTransitioning = false\n EventHandler.trigger(\n this._element,\n this.constructor.eventName('hidden')\n )\n }, this._element, this._isAnimated())\n }\n\n // Protected — hooks for subclasses to override\n\n _getShowOptions() {\n return { modal: true, preventBodyScroll: true }\n }\n\n _onBeforeShow() {\n // No-op by default — Dialog overrides to add nonmodal class\n }\n\n _onAfterHide() {\n // No-op by default — Dialog overrides to remove nonmodal class\n }\n\n _isAnimated() {\n return !this._element.classList.contains(this._getInstantClassName())\n }\n\n _getInstantClassName() {\n return 'dialog-instant'\n }\n\n _getStaticClassName() {\n return 'dialog-static'\n }\n\n _onCancel() {\n // No-op by default — Dialog overrides to fire cancel event\n }\n\n // Protected — shared mechanics\n\n _showElement({ modal = true, preventBodyScroll = true } = {}) {\n this._openedAsModal = modal\n\n if (modal) {\n this._element.showModal()\n } else {\n this._element.show()\n }\n\n if (preventBodyScroll) {\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n }\n\n _hideElement() {\n this._hideChildComponents()\n\n // Add .hiding before close() so CSS exit transitions can play.\n // Without this, the navbar's `:not([open])` transition-kill rule\n // would prevent the slide-out animation.\n this._element.classList.add('hiding')\n\n // Subclasses can defer close() until after the exit transition by\n // returning true from _shouldDeferClose(). This is needed for the\n // native modal <dialog> centered case: close() removes the dialog\n // from the top layer immediately, which strips its auto-centering\n // and the ::backdrop, breaking the exit animation.\n if (!this._shouldDeferClose()) {\n this._closeAndCleanup()\n }\n }\n\n // Closes the native <dialog> and tears down body-scroll prevention.\n // Safe to call multiple times — close() is a no-op on a closed dialog.\n _closeAndCleanup() {\n this._element.close()\n this._openedAsModal = false\n\n // Only restore body scroll if no other modal dialogs are open\n if (!document.querySelector('dialog[open]:modal')) {\n document.body.classList.remove(CLASS_NAME_OPEN)\n }\n }\n\n // Hook: return true to keep the dialog in the top layer (i.e., delay\n // calling close()) until the exit transition completes. The base class\n // closes synchronously; Dialog overrides this for animated modal cases.\n _shouldDeferClose() {\n return false\n }\n\n _triggerBackdropTransition() {\n const hidePreventedEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('hidePrevented')\n )\n\n if (hidePreventedEvent.defaultPrevented) {\n return\n }\n\n const staticClass = this._getStaticClassName()\n this._element.classList.add(staticClass)\n this._queueCallback(() => {\n this._element.classList.remove(staticClass)\n }, this._element)\n }\n\n // Hide any tooltips, popovers, or toasts inside the dialog before closing.\n // These components append to the dialog (for top-layer rendering) and would\n // otherwise persist visibly after close().\n _hideChildComponents() {\n const selector = '[data-bs-toggle=\"tooltip\"], [data-bs-toggle=\"popover\"]'\n\n for (const el of SelectorEngine.find(selector, this._element)) {\n const instance = Data.getAny(el)\n if (instance && typeof instance.hide === 'function') {\n instance.hide()\n }\n }\n\n // Hide any visible toasts\n for (const el of SelectorEngine.find('.toast.show', this._element)) {\n const instance = Data.getAny(el)\n if (instance && typeof instance.hide === 'function') {\n instance.hide()\n }\n }\n }\n\n // Private\n\n _addDialogListeners() {\n const eventKey = this.constructor.EVENT_KEY\n\n // Handle native cancel event (Escape key) — only fires for modal dialogs\n EventHandler.on(this._element, 'cancel', event => {\n event.preventDefault()\n\n if (!this._config.keyboard) {\n this._triggerBackdropTransition()\n return\n }\n\n this._onCancel()\n this.hide()\n })\n\n // Handle Escape key for non-modal dialogs (native cancel doesn't fire for show())\n EventHandler.on(this._element, `keydown${eventKey}`, event => {\n if (event.key !== 'Escape' || this._openedAsModal) {\n return\n }\n\n event.preventDefault()\n\n if (!this._config.keyboard) {\n return\n }\n\n this._onCancel()\n this.hide()\n })\n\n // Handle backdrop clicks — only applies to modal dialogs\n EventHandler.on(this._element, `click${eventKey}`, event => {\n if (event.target !== this._element || !this._openedAsModal) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n return\n }\n\n this.hide()\n })\n }\n}\n\nexport default DialogBase\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dialog.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport DialogBase from './dialog-base.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'dialog'\nconst DATA_KEY = 'bs.dialog'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CANCEL = `cancel${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_NONMODAL = 'dialog-nonmodal'\nconst CLASS_NAME_INSTANT = 'dialog-instant'\nconst CLASS_NAME_SWAP_IN = 'dialog-swap-in'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dialog\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n modal: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n modal: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Dialog extends DialogBase {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n handleUpdate() {\n // Provided for API consistency with Modal.\n }\n\n // Protected — hook overrides\n\n _getShowOptions() {\n return {\n modal: this._config.modal,\n preventBodyScroll: this._config.modal\n }\n }\n\n _onBeforeShow() {\n if (!this._config.modal) {\n this._element.classList.add(CLASS_NAME_NONMODAL)\n }\n }\n\n _onAfterHide() {\n this._element.classList.remove(CLASS_NAME_NONMODAL)\n }\n\n // Keep the dialog in the top layer until the exit transition ends. This\n // preserves the browser's modal centering and the native ::backdrop, both\n // of which disappear synchronously the moment close() is called. Without\n // this, the dialog would jump to the top of the page and the backdrop\n // blur would vanish instantly while the dialog faded — making the exit\n // animation appear to skip entirely.\n _shouldDeferClose() {\n return this._isAnimated()\n }\n\n _onCancel() {\n EventHandler.trigger(this._element, EVENT_CANCEL)\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n // Get config from trigger's data attributes\n const config = Manipulator.getDataAttributes(this)\n\n // Check if trigger is inside an open dialog (dialog swapping)\n const currentDialog = this.closest('dialog[open]')\n const shouldSwap = currentDialog && currentDialog !== target\n\n if (shouldSwap) {\n // Swap strategy (seamless backdrop, no flash):\n // 1. Mark the incoming dialog with .dialog-swap-in so its ::backdrop\n // skips the @starting-style fade-in and appears fully opaque on\n // its very first frame in the top layer.\n // 2. Open the incoming dialog (showModal).\n // 3. Close the outgoing dialog synchronously — no exit transition, no\n // .hiding — so its ::backdrop is removed in the same frame the\n // incoming dialog's backdrop appears. Since both backdrops render\n // the same color, the user sees one continuous backdrop. Two\n // simultaneously-visible backdrops would composite to ~75% darker,\n // and a fading-out + fading-in pair would dip to ~75% opacity —\n // either would look like a flash.\n // 4. Clean up the .dialog-swap-in flag once the incoming dialog\n // finishes its entry transition.\n const newDialog = Dialog.getOrCreateInstance(target, config)\n target.classList.add(CLASS_NAME_SWAP_IN)\n newDialog.show(this)\n EventHandler.one(target, `shown${EVENT_KEY}`, () => {\n target.classList.remove(CLASS_NAME_SWAP_IN)\n })\n\n const currentInstance = Dialog.getInstance(currentDialog)\n if (currentInstance) {\n // Force synchronous close: .dialog-instant makes _isAnimated() false,\n // which makes _shouldDeferClose() false, so hide() calls close()\n // immediately (no deferred .hiding path). The class is removed after\n // the (now-synchronous) hidden event fires.\n currentDialog.classList.add(CLASS_NAME_INSTANT)\n EventHandler.one(currentDialog, EVENT_HIDDEN, () => {\n currentDialog.classList.remove(CLASS_NAME_INSTANT)\n })\n currentInstance.hide()\n }\n\n return\n }\n\n const data = Dialog.getOrCreateInstance(target, config)\n data.toggle(this)\n})\n\nenableDismissTrigger(Dialog)\n\nexport default Dialog\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap nav-overflow.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'navoverflow'\nconst DATA_KEY = 'bs.navoverflow'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_UPDATE = `update${EVENT_KEY}`\nconst EVENT_OVERFLOW = `overflow${EVENT_KEY}`\n\nconst CLASS_NAME_OVERFLOW = 'nav-overflow'\nconst CLASS_NAME_OVERFLOW_MENU = 'nav-overflow-menu'\nconst CLASS_NAME_HIDDEN = 'd-none'\n\nconst SELECTOR_NAV_ITEM = '.nav-item'\nconst SELECTOR_NAV_LINK = '.nav-link'\nconst SELECTOR_OVERFLOW_TOGGLE = '.nav-overflow-toggle'\nconst SELECTOR_OVERFLOW_MENU = '.nav-overflow-menu'\nconst SELECTOR_CUSTOM_ICON = '[data-bs-overflow-icon]'\nconst CLASS_NAME_KEEP = 'nav-overflow-keep'\n\nconst Default = {\n collapseBelow: 0,\n iconPlacement: 'start',\n menuPlacement: 'bottom-end',\n moreText: 'More',\n moreIcon: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" viewBox=\"0 0 16 16\"><path d=\"M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3\"/></svg>',\n threshold: 0 // Minimum items to keep visible before showing overflow\n}\n\nconst DefaultType = {\n collapseBelow: '(number|string)',\n iconPlacement: 'string',\n menuPlacement: 'string',\n moreText: 'string',\n moreIcon: 'string',\n threshold: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass NavOverflow extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._items = []\n this._overflowItems = []\n this._overflowMenu = null\n this._overflowToggle = null\n this._resizeObserver = null\n this._collapseBelow = 0\n this._isInitialized = false\n\n this._init()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n update() {\n this._calculateOverflow()\n EventHandler.trigger(this._element, EVENT_UPDATE)\n }\n\n dispose() {\n if (this._resizeObserver) {\n this._resizeObserver.disconnect()\n }\n\n // Move items back to original positions\n this._restoreItems()\n\n // Remove overflow menu\n if (this._overflowToggle && this._overflowToggle.parentElement) {\n this._overflowToggle.parentElement.remove()\n }\n\n super.dispose()\n }\n\n // Private\n _init() {\n // Add overflow class to nav\n this._element.classList.add(CLASS_NAME_OVERFLOW)\n\n // Get all nav items\n this._items = [...SelectorEngine.find(SELECTOR_NAV_ITEM, this._element)]\n\n // Store original order data\n for (const [index, item] of this._items.entries()) {\n item.dataset.bsNavOrder = index\n }\n\n // Resolve collapseBelow threshold once\n this._collapseBelow = this._resolveCollapseBelow()\n\n // Create overflow menu if it doesn't exist\n this._createOverflowMenu()\n\n // Setup resize observer\n this._setupResizeObserver()\n\n // Initial calculation\n this._calculateOverflow()\n\n this._isInitialized = true\n }\n\n _createOverflowMenu() {\n // Check if overflow menu already exists\n this._overflowToggle = SelectorEngine.findOne(SELECTOR_OVERFLOW_TOGGLE, this._element)\n\n if (this._overflowToggle) {\n this._overflowMenu = SelectorEngine.findOne(SELECTOR_OVERFLOW_MENU, this._element)\n return\n }\n\n const iconHtml = this._resolveIcon()\n const iconSpan = `<span class=\"nav-overflow-icon\">${iconHtml}</span>`\n const textSpan = `<span class=\"nav-overflow-text\">${this._config.moreText}</span>`\n const toggleContent = this._config.iconPlacement === 'end' ?\n `${textSpan}${iconSpan}` :\n `${iconSpan}${textSpan}`\n\n const overflowItem = document.createElement('li')\n overflowItem.className = 'nav-item nav-overflow-item'\n overflowItem.innerHTML = `\n <button class=\"nav-link nav-overflow-toggle\" type=\"button\" data-bs-toggle=\"menu\" data-bs-placement=\"${this._config.menuPlacement}\" aria-expanded=\"false\">\n ${toggleContent}\n </button>\n <div class=\"${CLASS_NAME_OVERFLOW_MENU} menu\"></div>\n `\n\n this._element.append(overflowItem)\n this._overflowToggle = overflowItem.querySelector(SELECTOR_OVERFLOW_TOGGLE)\n this._overflowMenu = overflowItem.querySelector(SELECTOR_OVERFLOW_MENU)\n }\n\n _resolveIcon() {\n const customIconElement = SelectorEngine.findOne(SELECTOR_CUSTOM_ICON, this._element)\n\n if (!customIconElement) {\n return this._config.moreIcon\n }\n\n const iconClone = customIconElement.cloneNode(true)\n iconClone.removeAttribute('data-bs-overflow-icon')\n const iconHtml = iconClone.outerHTML\n\n customIconElement.remove()\n\n return iconHtml\n }\n\n _resolveCollapseBelow() {\n const value = this._config.collapseBelow\n\n if (typeof value === 'number') {\n return value\n }\n\n if (typeof value === 'string' && value !== '') {\n const cssValue = getComputedStyle(document.documentElement)\n .getPropertyValue(`--bs-breakpoint-${value}`)\n return Number.parseFloat(cssValue) || 0\n }\n\n return 0\n }\n\n _setupResizeObserver() {\n if (typeof ResizeObserver === 'undefined') {\n // Fallback for older browsers\n EventHandler.on(window, 'resize', () => this._calculateOverflow())\n return\n }\n\n this._resizeObserver = new ResizeObserver(() => {\n this._calculateOverflow()\n })\n\n this._resizeObserver.observe(this._element)\n }\n\n _calculateOverflow() {\n // First, restore all items to measure properly\n this._restoreItems()\n\n const navWidth = this._element.offsetWidth\n const overflowItem = this._overflowToggle?.closest('.nav-item')\n\n // When below the collapseBelow threshold, force all items into overflow\n if (this._collapseBelow > 0 && navWidth < this._collapseBelow) {\n const itemsToOverflow = this._items.filter(\n item => !item.classList.contains(CLASS_NAME_KEEP)\n )\n\n this._moveToOverflow(itemsToOverflow)\n\n if (overflowItem) {\n if (itemsToOverflow.length > 0) {\n overflowItem.classList.remove(CLASS_NAME_HIDDEN)\n } else {\n overflowItem.classList.add(CLASS_NAME_HIDDEN)\n }\n }\n\n if (itemsToOverflow.length > 0) {\n EventHandler.trigger(this._element, EVENT_OVERFLOW, {\n overflowCount: itemsToOverflow.length,\n visibleCount: this._items.length - itemsToOverflow.length\n })\n }\n\n return\n }\n\n const overflowWidth = overflowItem?.offsetWidth || 0\n\n // Keep items are always visible; subtract their widths so the threshold\n // reflects actual available space for non-keep items.\n const keepWidth = this._items\n .filter(item => item.classList.contains(CLASS_NAME_KEEP))\n .reduce((sum, item) => sum + item.offsetWidth, 0)\n\n let usedWidth = 0\n const itemsToOverflow = []\n const overflowThreshold = navWidth - overflowWidth - keepWidth - 10 // 10px buffer\n\n // Calculate which items need to overflow (skip items with keep class)\n for (const item of this._items) {\n // Never overflow items with the keep class\n if (item.classList.contains(CLASS_NAME_KEEP)) {\n continue\n }\n\n usedWidth += item.offsetWidth\n\n if (usedWidth > overflowThreshold) {\n itemsToOverflow.push(item)\n }\n }\n\n // Check if we need threshold minimum visible\n const visibleCount = this._items.length - itemsToOverflow.length\n if (visibleCount < this._config.threshold && this._items.length > this._config.threshold) {\n // Add more items to overflow until we reach threshold (but not keep items)\n const toMove = this._items.slice(this._config.threshold).filter(item => !item.classList.contains(CLASS_NAME_KEEP))\n itemsToOverflow.length = 0\n itemsToOverflow.push(...toMove)\n }\n\n // Move items to overflow menu\n this._moveToOverflow(itemsToOverflow)\n\n // Show/hide overflow toggle\n if (overflowItem) {\n if (itemsToOverflow.length > 0) {\n overflowItem.classList.remove(CLASS_NAME_HIDDEN)\n } else {\n overflowItem.classList.add(CLASS_NAME_HIDDEN)\n }\n }\n\n // Trigger overflow event if items changed\n if (itemsToOverflow.length > 0) {\n EventHandler.trigger(this._element, EVENT_OVERFLOW, {\n overflowCount: itemsToOverflow.length,\n visibleCount: this._items.length - itemsToOverflow.length\n })\n }\n }\n\n _moveToOverflow(items) {\n if (!this._overflowMenu) {\n return\n }\n\n // Clear existing overflow items\n this._overflowMenu.innerHTML = ''\n this._overflowItems = []\n\n for (const item of items) {\n const link = SelectorEngine.findOne(SELECTOR_NAV_LINK, item)\n if (!link) {\n continue\n }\n\n const clonedLink = link.cloneNode(true)\n clonedLink.className = 'menu-item'\n\n if (link.classList.contains('active')) {\n clonedLink.classList.add('active')\n }\n\n if (link.classList.contains('disabled') || link.hasAttribute('disabled')) {\n clonedLink.classList.add('disabled')\n }\n\n this._overflowMenu.append(clonedLink)\n\n // Hide original item\n item.classList.add(CLASS_NAME_HIDDEN)\n item.dataset.bsNavOverflow = 'true'\n\n this._overflowItems.push(item)\n }\n }\n\n _restoreItems() {\n for (const item of this._items) {\n item.classList.remove(CLASS_NAME_HIDDEN)\n delete item.dataset.bsNavOverflow\n }\n\n if (this._overflowMenu) {\n this._overflowMenu.innerHTML = ''\n }\n\n this._overflowItems = []\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, 'DOMContentLoaded', () => {\n for (const element of SelectorEngine.find('[data-bs-toggle=\"nav-overflow\"]')) {\n NavOverflow.getOrCreateInstance(element)\n }\n})\n\nexport default NavOverflow\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap drawer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport DialogBase from './dialog-base.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Swipe from './util/swipe.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport {\n isDisabled,\n isRTL,\n isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'drawer'\nconst DATA_KEY = 'bs.drawer'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"drawer\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Drawer extends DialogBase {\n constructor(element, config) {\n super(element, config)\n this._swipeHelper = null\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Protected — hook overrides\n\n _getShowOptions() {\n const useModal = Boolean(this._config.backdrop) || !this._config.scroll\n return {\n modal: useModal,\n preventBodyScroll: !this._config.scroll\n }\n }\n\n _onBeforeShow() {\n this._initSwipe()\n }\n\n _getInstantClassName() {\n return 'drawer-instant'\n }\n\n _getStaticClassName() {\n return 'drawer-static'\n }\n\n // Private\n\n _initSwipe() {\n if (this._swipeHelper || !Swipe.isSupported()) {\n return\n }\n\n // Determine which swipe direction dismisses based on placement\n const swipeConfig = {}\n const element = this._element\n\n if (element.classList.contains('drawer-bottom')) {\n swipeConfig.downCallback = () => this.hide()\n } else if (element.classList.contains('drawer-top')) {\n swipeConfig.upCallback = () => this.hide()\n } else if (element.classList.contains('drawer-end')) {\n // RTL: swipe left to dismiss end drawer\n if (isRTL()) {\n swipeConfig.leftCallback = () => this.hide()\n } else {\n swipeConfig.rightCallback = () => this.hide()\n }\n } else if (isRTL()) {\n // drawer-start (default): swipe right to dismiss in RTL\n swipeConfig.rightCallback = () => this.hide()\n } else {\n // drawer-start (default): swipe left to dismiss in LTR\n swipeConfig.leftCallback = () => this.hide()\n }\n\n this._swipeHelper = new Swipe(element, swipeConfig)\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n\n // Avoid conflict when clicking a toggler of a drawer, while another is open\n const alreadyOpen = SelectorEngine.findOne('dialog.drawer[open]')\n if (alreadyOpen && alreadyOpen !== target) {\n Drawer.getInstance(alreadyOpen).hide()\n }\n\n const data = Drawer.getOrCreateInstance(target)\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const selector of SelectorEngine.find('dialog.drawer[open]')) {\n Drawer.getOrCreateInstance(selector).show()\n }\n})\n\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('dialog[open][class*=\"\\\\:drawer\"]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Drawer.getOrCreateInstance(element).hide()\n }\n }\n})\n\nenableDismissTrigger(Drawer)\n\nexport default Drawer\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap strength.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'strength'\nconst DATA_KEY = 'bs.strength'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_STRENGTH_CHANGE = `strengthChange${EVENT_KEY}`\n\nconst SELECTOR_DATA_STRENGTH = '[data-bs-strength]'\n\nconst STRENGTH_LEVELS = ['weak', 'fair', 'good', 'strong']\n\nconst Default = {\n input: null, // Selector or element for password input\n minLength: 8,\n messages: {\n weak: 'Weak',\n fair: 'Fair',\n good: 'Good',\n strong: 'Strong'\n },\n weights: {\n minLength: 1,\n extraLength: 1,\n lowercase: 1,\n uppercase: 1,\n numbers: 1,\n special: 1,\n multipleSpecial: 1,\n longPassword: 1\n },\n thresholds: [2, 4, 6], // weak ≤2, fair ≤4, good ≤6, strong >6\n scorer: null // Custom scoring function (password) => number\n}\n\nconst DefaultType = {\n input: '(string|element|null)',\n minLength: 'number',\n messages: 'object',\n weights: 'object',\n thresholds: 'array',\n scorer: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Strength extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = this._getInput()\n this._segments = SelectorEngine.find('.strength-segment', this._element)\n this._textElement = SelectorEngine.findOne('.strength-text', this._element.parentElement)\n this._currentStrength = null\n\n if (this._input) {\n this._addEventListeners()\n // Check initial value\n this._evaluate()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getStrength() {\n return this._currentStrength\n }\n\n evaluate() {\n this._evaluate()\n }\n\n // Private\n _getInput() {\n if (this._config.input) {\n return typeof this._config.input === 'string' ?\n SelectorEngine.findOne(this._config.input) :\n this._config.input\n }\n\n // Look for preceding password input\n const parent = this._element.parentElement\n return SelectorEngine.findOne('input[type=\"password\"]', parent)\n }\n\n _addEventListeners() {\n EventHandler.on(this._input, 'input', () => this._evaluate())\n EventHandler.on(this._input, 'change', () => this._evaluate())\n }\n\n _evaluate() {\n const password = this._input.value\n const score = this._calculateScore(password)\n const strength = this._scoreToStrength(score)\n\n if (strength !== this._currentStrength) {\n this._currentStrength = strength\n this._updateUI(strength, score)\n\n EventHandler.trigger(this._element, EVENT_STRENGTH_CHANGE, {\n strength,\n score,\n password: password.length > 0 ? '***' : '' // Don't expose actual password\n })\n }\n }\n\n _calculateScore(password) {\n if (!password) {\n return 0\n }\n\n // Use custom scorer if provided\n if (typeof this._config.scorer === 'function') {\n return this._config.scorer(password)\n }\n\n const { weights } = this._config\n let score = 0\n\n // Length scoring\n if (password.length >= this._config.minLength) {\n score += weights.minLength\n }\n\n if (password.length >= this._config.minLength + 4) {\n score += weights.extraLength\n }\n\n // Character variety\n if (/[a-z]/.test(password)) {\n score += weights.lowercase\n }\n\n if (/[A-Z]/.test(password)) {\n score += weights.uppercase\n }\n\n if (/\\d/.test(password)) {\n score += weights.numbers\n }\n\n // Special characters\n if (/[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n score += weights.special\n }\n\n // Extra points for more special chars or length\n if (/[!@#$%^&*(),.?\":{}|<>].*[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n score += weights.multipleSpecial\n }\n\n if (password.length >= 16) {\n score += weights.longPassword\n }\n\n return score\n }\n\n _scoreToStrength(score) {\n if (score === 0) {\n return null\n }\n\n const [weak, fair, good] = this._config.thresholds\n\n if (score <= weak) {\n return 'weak'\n }\n\n if (score <= fair) {\n return 'fair'\n }\n\n if (score <= good) {\n return 'good'\n }\n\n return 'strong'\n }\n\n _updateUI(strength) {\n // Update data attribute on element\n if (strength) {\n this._element.dataset.bsStrength = strength\n } else {\n delete this._element.dataset.bsStrength\n }\n\n // Update segmented meter\n const strengthIndex = strength ? STRENGTH_LEVELS.indexOf(strength) : -1\n\n for (const [index, segment] of this._segments.entries()) {\n if (index <= strengthIndex) {\n segment.classList.add('active')\n } else {\n segment.classList.remove('active')\n }\n }\n\n // Update text feedback\n if (this._textElement) {\n if (strength && this._config.messages[strength]) {\n this._textElement.textContent = this._config.messages[strength]\n this._textElement.dataset.bsStrength = strength\n\n // Also set the color via inheriting from parent or using CSS variable\n const colorMap = {\n weak: 'danger',\n fair: 'warning',\n good: 'info',\n strong: 'success'\n }\n this._textElement.style.setProperty('--strength-color', `var(--${colorMap[strength]}-text)`)\n } else {\n this._textElement.textContent = ''\n delete this._textElement.dataset.bsStrength\n }\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_STRENGTH)) {\n Strength.getOrCreateInstance(element)\n }\n})\n\nexport default Strength\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap otp-input.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'otpInput'\nconst DATA_KEY = 'bs.otp-input'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_COMPLETE = `complete${EVENT_KEY}`\nconst EVENT_INPUT = `input${EVENT_KEY}`\n\nconst SELECTOR_DATA_OTP = '[data-bs-otp]'\nconst SELECTOR_INPUT = 'input'\n\nconst Default = {\n length: 6,\n mask: false\n}\n\nconst DefaultType = {\n length: 'number',\n mask: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass OtpInput extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._inputs = SelectorEngine.find(SELECTOR_INPUT, this._element)\n this._setupInputs()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getValue() {\n return this._inputs.map(input => input.value).join('')\n }\n\n setValue(value) {\n const chars = [...String(value)]\n for (const [index, input] of this._inputs.entries()) {\n input.value = chars[index] || ''\n }\n\n this._checkComplete()\n }\n\n clear() {\n for (const input of this._inputs) {\n input.value = ''\n }\n\n this._inputs[0]?.focus()\n }\n\n focus() {\n // Focus first empty input, or last input if all filled\n const emptyInput = this._inputs.find(input => !input.value)\n if (emptyInput) {\n emptyInput.focus()\n } else {\n this._inputs.at(-1)?.focus()\n }\n }\n\n // Private\n _setupInputs() {\n for (const input of this._inputs) {\n // Set attributes for proper OTP handling\n input.setAttribute('maxlength', '1')\n input.setAttribute('inputmode', 'numeric')\n input.setAttribute('pattern', '\\\\d*')\n\n // First input gets autocomplete for browser OTP autofill\n if (input === this._inputs[0]) {\n input.setAttribute('autocomplete', 'one-time-code')\n } else {\n input.setAttribute('autocomplete', 'off')\n }\n\n // Mask input if configured\n if (this._config.mask) {\n input.setAttribute('type', 'password')\n }\n }\n }\n\n _addEventListeners() {\n for (const [index, input] of this._inputs.entries()) {\n EventHandler.on(input, 'input', event => this._handleInput(event, index))\n EventHandler.on(input, 'keydown', event => this._handleKeydown(event, index))\n EventHandler.on(input, 'paste', event => this._handlePaste(event))\n EventHandler.on(input, 'focus', event => this._handleFocus(event))\n }\n }\n\n _handleInput(event, index) {\n const input = event.target\n\n // Only allow digits\n if (!/^\\d*$/.test(input.value)) {\n input.value = input.value.replace(/\\D/g, '')\n }\n\n const { value } = input\n\n // Handle multi-character input (some browsers/autofill)\n if (value.length > 1) {\n // Distribute characters across inputs\n const chars = [...value]\n input.value = chars[0] || ''\n\n for (let i = 1; i < chars.length && index + i < this._inputs.length; i++) {\n this._inputs[index + i].value = chars[i]\n }\n\n // Focus appropriate input\n const nextIndex = Math.min(index + chars.length, this._inputs.length - 1)\n this._inputs[nextIndex].focus()\n } else if (value && index < this._inputs.length - 1) {\n // Auto-advance to next input\n this._inputs[index + 1].focus()\n }\n\n EventHandler.trigger(this._element, EVENT_INPUT, {\n value: this.getValue(),\n index\n })\n\n this._checkComplete()\n }\n\n _handleKeydown(event, index) {\n const { key } = event\n\n switch (key) {\n case 'Backspace': {\n if (!this._inputs[index].value && index > 0) {\n // Move to previous input and clear it\n event.preventDefault()\n this._inputs[index - 1].value = ''\n this._inputs[index - 1].focus()\n }\n\n break\n }\n\n case 'Delete': {\n // Clear current and shift remaining values left\n event.preventDefault()\n for (let i = index; i < this._inputs.length - 1; i++) {\n this._inputs[i].value = this._inputs[i + 1].value\n }\n\n this._inputs.at(-1).value = ''\n break\n }\n\n case 'ArrowLeft': {\n if (index > 0) {\n event.preventDefault()\n this._inputs[index - 1].focus()\n }\n\n break\n }\n\n case 'ArrowRight': {\n if (index < this._inputs.length - 1) {\n event.preventDefault()\n this._inputs[index + 1].focus()\n }\n\n break\n }\n\n // No default\n }\n }\n\n _handlePaste(event) {\n event.preventDefault()\n const pastedData = (event.clipboardData || window.clipboardData).getData('text')\n const digits = pastedData.replace(/\\D/g, '').slice(0, this._inputs.length)\n\n if (digits) {\n this.setValue(digits)\n\n // Focus last filled input or last input\n const lastIndex = Math.min(digits.length, this._inputs.length) - 1\n this._inputs[lastIndex].focus()\n }\n }\n\n _handleFocus(event) {\n // Select the content on focus for easy replacement\n event.target.select()\n }\n\n _checkComplete() {\n const value = this.getValue()\n const isComplete = value.length === this._inputs.length &&\n this._inputs.every(input => input.value !== '')\n\n if (isComplete) {\n EventHandler.trigger(this._element, EVENT_COMPLETE, { value })\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_OTP)) {\n OtpInput.getOrCreateInstance(element)\n }\n})\n\nexport default OtpInput\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap chips.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'chips'\nconst DATA_KEY = 'bs.chips'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ADD = `add${EVENT_KEY}`\nconst EVENT_REMOVE = `remove${EVENT_KEY}`\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SELECT = `select${EVENT_KEY}`\n\nconst SELECTOR_DATA_CHIPS = '[data-bs-chips]'\nconst SELECTOR_GHOST_INPUT = '.form-ghost'\nconst SELECTOR_CHIP = '.chip'\nconst SELECTOR_CHIP_DISMISS = '.chip-dismiss'\n\nconst CLASS_NAME_CHIP = 'chip'\nconst CLASS_NAME_CHIP_DISMISS = 'chip-dismiss'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst DEFAULT_DISMISS_ICON = '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><line x1=\"4\" y1=\"4\" x2=\"12\" y2=\"12\"/><line x1=\"12\" y1=\"4\" x2=\"4\" y2=\"12\"/></svg>'\n\nconst Default = {\n separator: ',',\n allowDuplicates: false,\n maxChips: null,\n placeholder: '',\n dismissible: true,\n dismissIcon: DEFAULT_DISMISS_ICON,\n createOnBlur: true\n}\n\nconst DefaultType = {\n separator: '(string|null)',\n allowDuplicates: 'boolean',\n maxChips: '(number|null)',\n placeholder: 'string',\n dismissible: 'boolean',\n dismissIcon: 'string',\n createOnBlur: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Chips extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = SelectorEngine.findOne(SELECTOR_GHOST_INPUT, this._element)\n this._chips = []\n this._selectedChips = new Set()\n this._anchorChip = null // For shift+click range selection\n\n if (!this._input) {\n this._createInput()\n }\n\n this._initializeExistingChips()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n add(value) {\n const trimmedValue = String(value).trim()\n\n if (!trimmedValue) {\n return null\n }\n\n // Check for duplicates\n if (!this._config.allowDuplicates && this._chips.includes(trimmedValue)) {\n return null\n }\n\n // Check max chips limit\n if (this._config.maxChips !== null && this._chips.length >= this._config.maxChips) {\n return null\n }\n\n const addEvent = EventHandler.trigger(this._element, EVENT_ADD, {\n value: trimmedValue,\n relatedTarget: this._input\n })\n\n if (addEvent.defaultPrevented) {\n return null\n }\n\n const chip = this._createChip(trimmedValue)\n this._element.insertBefore(chip, this._input)\n this._chips.push(trimmedValue)\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: this.getValues()\n })\n\n return chip\n }\n\n remove(chipOrValue) {\n let chip\n let value\n\n if (typeof chipOrValue === 'string') {\n value = chipOrValue\n chip = this._findChipByValue(value)\n } else {\n chip = chipOrValue\n value = this._getChipValue(chip)\n }\n\n if (!chip || !value) {\n return false\n }\n\n const removeEvent = EventHandler.trigger(this._element, EVENT_REMOVE, {\n value,\n chip,\n relatedTarget: this._input\n })\n\n if (removeEvent.defaultPrevented) {\n return false\n }\n\n // Remove from selection\n this._selectedChips.delete(chip)\n if (this._anchorChip === chip) {\n this._anchorChip = null\n }\n\n // Remove from DOM and array\n chip.remove()\n this._chips = this._chips.filter(v => v !== value)\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: this.getValues()\n })\n\n return true\n }\n\n removeSelected() {\n const chipsToRemove = [...this._selectedChips]\n for (const chip of chipsToRemove) {\n this.remove(chip)\n }\n\n this._input?.focus()\n }\n\n getValues() {\n return [...this._chips]\n }\n\n getSelectedValues() {\n return [...this._selectedChips].map(chip => this._getChipValue(chip))\n }\n\n clear() {\n const chips = SelectorEngine.find(SELECTOR_CHIP, this._element)\n for (const chip of chips) {\n chip.remove()\n }\n\n this._chips = []\n this._selectedChips.clear()\n this._anchorChip = null\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: []\n })\n }\n\n clearSelection() {\n for (const chip of this._selectedChips) {\n chip.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n this._selectedChips.clear()\n this._anchorChip = null\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: []\n })\n }\n\n selectChip(chip, options = {}) {\n const { addToSelection = false, rangeSelect = false } = options\n const chipElements = this._getChipElements()\n\n if (!chipElements.includes(chip)) {\n return\n }\n\n if (rangeSelect && this._anchorChip) {\n // Range selection from anchor to chip\n const anchorIndex = chipElements.indexOf(this._anchorChip)\n const chipIndex = chipElements.indexOf(chip)\n const start = Math.min(anchorIndex, chipIndex)\n const end = Math.max(anchorIndex, chipIndex)\n\n if (!addToSelection) {\n this.clearSelection()\n }\n\n for (let i = start; i <= end; i++) {\n this._selectedChips.add(chipElements[i])\n chipElements[i].classList.add(CLASS_NAME_ACTIVE)\n }\n } else if (addToSelection) {\n // Toggle selection\n if (this._selectedChips.has(chip)) {\n this._selectedChips.delete(chip)\n chip.classList.remove(CLASS_NAME_ACTIVE)\n } else {\n this._selectedChips.add(chip)\n chip.classList.add(CLASS_NAME_ACTIVE)\n this._anchorChip = chip\n }\n } else {\n // Single selection\n this.clearSelection()\n this._selectedChips.add(chip)\n chip.classList.add(CLASS_NAME_ACTIVE)\n this._anchorChip = chip\n }\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: this.getSelectedValues()\n })\n }\n\n focus() {\n this._input?.focus()\n }\n\n // Private\n _getChipElements() {\n return SelectorEngine.find(SELECTOR_CHIP, this._element)\n }\n\n _createInput() {\n const input = document.createElement('input')\n input.type = 'text'\n input.className = 'form-ghost'\n if (this._config.placeholder) {\n input.placeholder = this._config.placeholder\n }\n\n this._element.append(input)\n this._input = input\n }\n\n _initializeExistingChips() {\n const existingChips = SelectorEngine.find(SELECTOR_CHIP, this._element)\n for (const chip of existingChips) {\n const value = this._getChipValue(chip)\n if (value) {\n this._chips.push(value)\n this._setupChip(chip)\n }\n }\n }\n\n _setupChip(chip) {\n // Make chip focusable\n chip.setAttribute('tabindex', '0')\n\n // Add dismiss button if needed\n if (this._config.dismissible && !SelectorEngine.findOne(SELECTOR_CHIP_DISMISS, chip)) {\n chip.append(this._createDismissButton())\n }\n }\n\n _createChip(value) {\n const chip = document.createElement('span')\n chip.className = CLASS_NAME_CHIP\n chip.dataset.bsChipValue = value\n\n // Add text node\n chip.append(document.createTextNode(value))\n\n // Setup chip (tabindex, dismiss button)\n this._setupChip(chip)\n\n return chip\n }\n\n _createDismissButton() {\n const button = document.createElement('button')\n button.type = 'button'\n button.className = CLASS_NAME_CHIP_DISMISS\n button.setAttribute('aria-label', 'Remove')\n button.setAttribute('tabindex', '-1') // Not in tab order, chips handle keyboard\n button.innerHTML = this._config.dismissIcon\n return button\n }\n\n _findChipByValue(value) {\n const chips = this._getChipElements()\n return chips.find(chip => this._getChipValue(chip) === value)\n }\n\n _getChipValue(chip) {\n if (chip.dataset.bsChipValue) {\n return chip.dataset.bsChipValue\n }\n\n const clone = chip.cloneNode(true)\n const dismiss = SelectorEngine.findOne(SELECTOR_CHIP_DISMISS, clone)\n if (dismiss) {\n dismiss.remove()\n }\n\n return clone.textContent?.trim() || ''\n }\n\n _addEventListeners() {\n // Input events\n EventHandler.on(this._input, 'keydown', event => this._handleInputKeydown(event))\n EventHandler.on(this._input, 'input', event => this._handleInput(event))\n EventHandler.on(this._input, 'paste', event => this._handlePaste(event))\n EventHandler.on(this._input, 'focus', () => this.clearSelection())\n\n if (this._config.createOnBlur) {\n EventHandler.on(this._input, 'blur', event => {\n // Don't create chip if clicking on a chip\n if (!event.relatedTarget?.closest(SELECTOR_CHIP)) {\n this._createChipFromInput()\n }\n })\n }\n\n // Chip click events (delegated)\n EventHandler.on(this._element, 'click', SELECTOR_CHIP, event => {\n // Ignore clicks on dismiss button\n if (event.target.closest(SELECTOR_CHIP_DISMISS)) {\n return\n }\n\n const chip = event.target.closest(SELECTOR_CHIP)\n if (chip) {\n event.preventDefault()\n this.selectChip(chip, {\n addToSelection: event.metaKey || event.ctrlKey,\n rangeSelect: event.shiftKey\n })\n chip.focus()\n }\n })\n\n // Dismiss button clicks (delegated)\n EventHandler.on(this._element, 'click', SELECTOR_CHIP_DISMISS, event => {\n event.stopPropagation()\n const chip = event.target.closest(SELECTOR_CHIP)\n if (chip) {\n this.remove(chip)\n this._input?.focus()\n }\n })\n\n // Chip keyboard events (delegated)\n EventHandler.on(this._element, 'keydown', SELECTOR_CHIP, event => {\n this._handleChipKeydown(event)\n })\n\n // Focus input when clicking container background\n EventHandler.on(this._element, 'click', event => {\n if (event.target === this._element) {\n this.clearSelection()\n this._input?.focus()\n }\n })\n }\n\n _handleInputKeydown(event) {\n const { key } = event\n\n switch (key) {\n case 'Enter': {\n event.preventDefault()\n this._createChipFromInput()\n break\n }\n\n case 'Backspace':\n case 'Delete': {\n if (this._input.value === '') {\n event.preventDefault()\n const chips = this._getChipElements()\n\n if (chips.length > 0) {\n // Select last chip and focus it\n const lastChip = chips.at(-1)\n this.selectChip(lastChip)\n lastChip.focus()\n }\n }\n\n break\n }\n\n case 'ArrowLeft': {\n if (this._input.selectionStart === 0 && this._input.selectionEnd === 0) {\n event.preventDefault()\n const chips = this._getChipElements()\n if (chips.length > 0) {\n const lastChip = chips.at(-1)\n if (event.shiftKey) {\n this.selectChip(lastChip, { addToSelection: true })\n } else {\n this.selectChip(lastChip)\n }\n\n lastChip.focus()\n }\n }\n\n break\n }\n\n case 'Escape': {\n this._input.value = ''\n this.clearSelection()\n this._input.blur()\n break\n }\n\n // No default\n }\n }\n\n _handleChipKeydown(event) {\n const { key } = event\n const chip = event.target.closest(SELECTOR_CHIP)\n if (!chip) {\n return\n }\n\n const chips = this._getChipElements()\n const currentIndex = chips.indexOf(chip)\n\n switch (key) {\n case 'Backspace':\n case 'Delete': {\n event.preventDefault()\n this._handleChipDelete(currentIndex, chips)\n break\n }\n\n case 'ArrowLeft': {\n event.preventDefault()\n this._navigateChip(chips, currentIndex, -1, event.shiftKey)\n break\n }\n\n case 'ArrowRight': {\n event.preventDefault()\n this._navigateChip(chips, currentIndex, 1, event.shiftKey)\n break\n }\n\n case 'Home': {\n event.preventDefault()\n this._navigateToEdge(chips, 0, event.shiftKey)\n break\n }\n\n case 'End': {\n event.preventDefault()\n this.clearSelection()\n this._input?.focus()\n break\n }\n\n case 'a': {\n this._handleSelectAll(event, chips)\n break\n }\n\n case 'Escape': {\n event.preventDefault()\n this.clearSelection()\n this._input?.focus()\n break\n }\n\n // No default\n }\n }\n\n _handleChipDelete(currentIndex, chips) {\n if (this._selectedChips.size === 0) {\n return\n }\n\n const nextIndex = Math.min(currentIndex, chips.length - this._selectedChips.size - 1)\n this.removeSelected()\n\n const remainingChips = this._getChipElements()\n if (remainingChips.length > 0) {\n const focusIndex = Math.max(0, Math.min(nextIndex, remainingChips.length - 1))\n remainingChips[focusIndex].focus()\n this.selectChip(remainingChips[focusIndex])\n } else {\n this._input?.focus()\n }\n }\n\n _navigateChip(chips, currentIndex, direction, shiftKey) {\n const targetIndex = currentIndex + direction\n\n if (direction < 0 && targetIndex >= 0) {\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { addToSelection: true, rangeSelect: true } : {})\n targetChip.focus()\n } else if (direction > 0 && targetIndex < chips.length) {\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { addToSelection: true, rangeSelect: true } : {})\n targetChip.focus()\n } else if (direction > 0) {\n this.clearSelection()\n this._input?.focus()\n }\n }\n\n _navigateToEdge(chips, targetIndex, shiftKey) {\n if (chips.length === 0) {\n return\n }\n\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { rangeSelect: true } : {})\n targetChip.focus()\n }\n\n _handleSelectAll(event, chips) {\n if (!(event.metaKey || event.ctrlKey)) {\n return\n }\n\n event.preventDefault()\n for (const c of chips) {\n this._selectedChips.add(c)\n c.classList.add(CLASS_NAME_ACTIVE)\n }\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: this.getSelectedValues()\n })\n }\n\n _handleInput(event) {\n const { value } = event.target\n const { separator } = this._config\n\n if (separator && value.includes(separator)) {\n const parts = value.split(separator)\n for (const part of parts.slice(0, -1)) {\n this.add(part.trim())\n }\n\n this._input.value = parts.at(-1)\n }\n }\n\n _handlePaste(event) {\n const { separator } = this._config\n if (!separator) {\n return\n }\n\n const pastedData = (event.clipboardData || window.clipboardData).getData('text')\n if (pastedData.includes(separator)) {\n event.preventDefault()\n\n const parts = pastedData.split(separator)\n for (const part of parts) {\n this.add(part.trim())\n }\n }\n }\n\n _createChipFromInput() {\n const value = this._input.value.trim()\n if (value) {\n this.add(value)\n this._input.value = ''\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_CHIPS)) {\n Chips.getOrCreateInstance(element)\n }\n})\n\nexport default Chips\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n// js-docs-end allow-list\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue))\n }\n\n return true\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n .some(regex => regex.test(attributeName))\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const elements = [...createdDocument.body.querySelectorAll('*')]\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n continue\n }\n\n const attributeList = [...element.attributes]\n const allowedAttributes = [...(allowList['*'] || []), ...(allowList[elementName] || [])]\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'\nimport { execute, getElement, isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'TemplateFactory'\n\nconst Default = {\n allowList: DefaultAllowlist,\n content: {}, // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '<div></div>'\n}\n\nconst DefaultType = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n}\n\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content)\n .map(config => this._resolvePossibleFunction(config))\n .filter(Boolean)\n }\n\n hasContent() {\n return this.getContent().length > 0\n }\n\n changeContent(content) {\n this._checkContent(content)\n this._config.content = { ...this._config.content, ...content }\n return this\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div')\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template)\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector)\n }\n\n const template = templateWrapper.children[0]\n const extraClass = this._resolvePossibleFunction(this._config.extraClass)\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '))\n }\n\n return template\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config)\n this._checkContent(config.content)\n }\n\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({ selector, entry: content }, DefaultContentType)\n }\n }\n\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template)\n\n if (!templateElement) {\n return\n }\n\n content = this._resolvePossibleFunction(content)\n\n if (!content) {\n templateElement.remove()\n return\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement)\n return\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content)\n return\n }\n\n templateElement.textContent = content\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [undefined, this])\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = ''\n templateElement.append(element)\n return\n }\n\n templateElement.textContent = element.textContent\n }\n}\n\nexport default TemplateFactory\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n computePosition,\n flip,\n shift,\n offset,\n arrow,\n autoUpdate\n} from '@floating-ui/dom'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport {\n execute, findShadowRoot, getElement, getUID, isRTL, noop\n} from './util/index.js'\nimport { DefaultAllowlist } from './util/sanitizer.js'\nimport TemplateFactory from './util/template-factory.js'\nimport {\n parseResponsivePlacement,\n getResponsivePlacement,\n createBreakpointListeners,\n disposeBreakpointListeners\n} from './util/floating-ui.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tooltip\"]'\n\nconst EVENT_MODAL_HIDE = 'hide.bs.modal'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\nconst EVENT_HIDE = 'hide'\nconst EVENT_HIDDEN = 'hidden'\nconst EVENT_SHOW = 'show'\nconst EVENT_SHOWN = 'shown'\nconst EVENT_INSERTED = 'inserted'\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_FOCUSOUT = 'focusout'\nconst EVENT_MOUSEENTER = 'mouseenter'\nconst EVENT_MOUSELEAVE = 'mouseleave'\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n}\n\nconst Default = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n floatingConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n title: '',\n trigger: 'hover focus'\n}\n\nconst DefaultType = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n floatingConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof computePosition === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Floating UI (https://floating-ui.com)')\n }\n\n super(element, config)\n\n // Private\n this._isEnabled = true\n this._timeout = 0\n this._isHovered = null\n this._activeTrigger = {}\n this._floatingCleanup = null\n this._templateFactory = null\n this._newContent = null\n this._mediaQueryListeners = []\n this._responsivePlacements = null\n\n // Protected\n this.tip = null\n\n this._parseResponsivePlacements()\n this._setListeners()\n\n if (!this._config.selector) {\n this._fixTitle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle() {\n if (!this._isEnabled) {\n return\n }\n\n if (this._isShown()) {\n this._leave()\n return\n }\n\n this._enter()\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'))\n }\n\n this._disposeFloating()\n this._disposeMediaQueryListeners()\n super.dispose()\n }\n\n async show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (!(this._isWithContent() && this._isEnabled)) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW))\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n this._disposeFloating()\n\n const tip = this._getTipElement()\n\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'))\n\n let { container } = this._config\n const closestDialog = this._element.closest('dialog[open]')\n if (closestDialog && container === document.body) {\n container = closestDialog\n }\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip)\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED))\n }\n\n await this._createFloating(tip)\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN))\n\n if (this._isHovered === false) {\n this._leave()\n }\n\n this._isHovered = false\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE))\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const tip = this._getTipElement()\n tip.classList.remove(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n this._isHovered = null // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (!this._isHovered) {\n this._disposeFloating()\n }\n\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN))\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n update() {\n if (this._floatingCleanup && this.tip) {\n this._updateFloatingPosition()\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle())\n }\n\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())\n }\n\n return this.tip\n }\n\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml()\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n tip.classList.add(`bs-${this.constructor.NAME}-auto`)\n\n const tipId = getUID(this.constructor.NAME).toString()\n\n tip.setAttribute('id', tipId)\n\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n return tip\n }\n\n setContent(content) {\n this._newContent = content\n if (this._isShown()) {\n this._disposeFloating()\n this.show()\n }\n }\n\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content)\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n })\n }\n\n return this._templateFactory\n }\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n }\n }\n\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title')\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\n }\n\n _isAnimated() {\n return this._config.animation || (this.tip && this.tip.classList.contains(CLASS_NAME_FADE))\n }\n\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement(tip) {\n // If we have responsive placements, get the one for current viewport\n if (this._responsivePlacements) {\n const placement = getResponsivePlacement(this._responsivePlacements, 'top')\n return AttachmentMap[placement.toUpperCase()] || placement\n }\n\n // Execute placement (can be a function)\n const placement = execute(this._config.placement, [this, tip, this._element])\n return AttachmentMap[placement.toUpperCase()] || placement\n }\n\n _parseResponsivePlacements() {\n // Only parse if placement is a string (not a function)\n if (typeof this._config.placement !== 'string') {\n this._responsivePlacements = null\n return\n }\n\n this._responsivePlacements = parseResponsivePlacement(this._config.placement, 'top')\n\n if (this._responsivePlacements) {\n this._setupMediaQueryListeners()\n }\n }\n\n _setupMediaQueryListeners() {\n this._disposeMediaQueryListeners()\n this._mediaQueryListeners = createBreakpointListeners(() => {\n if (this._isShown()) {\n this._updateFloatingPosition()\n }\n })\n }\n\n _disposeMediaQueryListeners() {\n disposeBreakpointListeners(this._mediaQueryListeners)\n this._mediaQueryListeners = []\n }\n\n async _createFloating(tip) {\n const placement = this._getPlacement(tip)\n const arrowElement = tip.querySelector(`.${this.constructor.NAME}-arrow`)\n\n // Initial position update\n await this._updateFloatingPosition(tip, placement, arrowElement)\n\n // Set up auto-update for scroll/resize\n this._floatingCleanup = autoUpdate(\n this._element,\n tip,\n () => this._updateFloatingPosition(tip, null, arrowElement)\n )\n }\n\n async _updateFloatingPosition(tip = this.tip, placement = null, arrowElement = null) {\n if (!tip) {\n return\n }\n\n if (!placement) {\n placement = this._getPlacement(tip)\n }\n\n if (!arrowElement) {\n arrowElement = tip.querySelector(`.${this.constructor.NAME}-arrow`)\n }\n\n const middleware = this._getFloatingMiddleware(arrowElement)\n const floatingConfig = this._getFloatingConfig(placement, middleware)\n\n const { x, y, placement: finalPlacement, middlewareData } = await computePosition(\n this._element,\n tip,\n floatingConfig\n )\n\n // Apply position to tooltip\n Object.assign(tip.style, {\n position: 'absolute',\n left: `${x}px`,\n top: `${y}px`\n })\n\n // Ensure arrow is absolutely positioned within tooltip\n if (arrowElement) {\n arrowElement.style.position = 'absolute'\n }\n\n // Set placement attribute for CSS arrow styling\n Manipulator.setDataAttribute(tip, 'placement', finalPlacement)\n\n // Position arrow along the edge (center it) if present\n // The CSS handles which edge to place it on via data-bs-placement\n if (arrowElement && middlewareData.arrow) {\n const { x: arrowX, y: arrowY } = middlewareData.arrow\n const isVertical = finalPlacement.startsWith('top') || finalPlacement.startsWith('bottom')\n\n // Only set the cross-axis position (centering along the edge)\n // The main-axis position (which edge) is handled by CSS\n Object.assign(arrowElement.style, {\n left: isVertical && arrowX !== null ? `${arrowX}px` : '',\n top: !isVertical && arrowY !== null ? `${arrowY}px` : '',\n // Reset the other axis to let CSS handle it\n right: '',\n bottom: ''\n })\n }\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offset === 'function') {\n // Floating UI passes different args, adapt the interface for offset function callbacks\n return ({ placement, rects }) => {\n const result = offset({ placement, reference: rects.reference, floating: rects.floating }, this._element)\n return result\n }\n }\n\n return offset\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element, this._element])\n }\n\n _getFloatingMiddleware(arrowElement) {\n const offsetValue = this._getOffset()\n\n const middleware = [\n // Offset middleware - handles distance from reference\n offset(\n typeof offsetValue === 'function' ?\n offsetValue :\n { mainAxis: offsetValue[1] || 0, crossAxis: offsetValue[0] || 0 }\n ),\n // Flip middleware - handles fallback placements\n flip({\n fallbackPlacements: this._config.fallbackPlacements\n }),\n // Shift middleware - prevents overflow\n shift({\n boundary: this._config.boundary === 'clippingParents' ? 'clippingAncestors' : this._config.boundary\n })\n ]\n\n // Arrow middleware - positions the arrow element\n if (arrowElement) {\n middleware.push(arrow({ element: arrowElement }))\n }\n\n return middleware\n }\n\n _getFloatingConfig(placement, middleware) {\n const defaultConfig = {\n placement,\n middleware\n }\n\n return {\n ...defaultConfig,\n ...execute(this._config.floatingConfig, [undefined, defaultConfig])\n }\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ')\n\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[TRIGGER_CLICK] = !(context._isShown() && context._activeTrigger[TRIGGER_CLICK])\n context.toggle()\n })\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSEENTER) :\n this.constructor.eventName(EVENT_FOCUSIN)\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSELEAVE) :\n this.constructor.eventName(EVENT_FOCUSOUT)\n\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true\n context._enter()\n })\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] =\n context._element.contains(event.relatedTarget)\n\n context._leave()\n })\n }\n }\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n\n if (!title) {\n return\n }\n\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('data-bs-original-title', title) // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title')\n }\n\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true\n return\n }\n\n this._isHovered = true\n\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show()\n }\n }, this._config.delay.show)\n }\n\n _leave() {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n this._isHovered = false\n\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide()\n }\n }, this._config.delay.hide)\n }\n\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout)\n this._timeout = setTimeout(handler, timeout)\n }\n\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true)\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute]\n }\n }\n\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container)\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value\n }\n }\n\n config.selector = false\n config.trigger = 'manual'\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config\n }\n\n _disposeFloating() {\n if (this._floatingCleanup) {\n this._floatingCleanup()\n this._floatingCleanup = null\n }\n\n if (this.tip) {\n this.tip.remove()\n this.tip = null\n }\n }\n}\n\n/**\n * Data API implementation - auto-initialize tooltips\n */\n\nconst initTooltip = event => {\n const target = event.target.closest(SELECTOR_DATA_TOGGLE)\n if (!target) {\n return\n }\n\n // Lazily create the instance. The instance's own `_setListeners()` registers\n // the appropriate listeners on the element for the configured triggers\n // (hover/focus by default), so we don't mutate `_activeTrigger` or call\n // `_enter` here — doing so would show tooltips for triggers the user didn't\n // opt into (e.g. `focusin` firing for click-focused buttons in Chromium,\n // even when `trigger=\"hover\"` or `trigger=\"manual\"`) and leave stale state\n // on `_activeTrigger`.\n Tooltip.getOrCreateInstance(target)\n}\n\n// Auto-initialize tooltips on first interaction for hover and focus triggers\nEventHandler.on(document, EVENT_FOCUSIN, SELECTOR_DATA_TOGGLE, initTooltip)\nEventHandler.on(document, EVENT_MOUSEENTER, SELECTOR_DATA_TOGGLE, initTooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Tooltip from './tooltip.js'\nimport EventHandler from './dom/event-handler.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'popover'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"popover\"]'\n\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_MOUSEENTER = 'mouseenter'\n\nconst Default = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div>' +\n '</div>',\n trigger: 'click'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n}\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent()\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n }\n }\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content)\n }\n}\n\n/**\n * Data API implementation - auto-initialize popovers\n */\n\nconst initPopover = event => {\n const target = event.target.closest(SELECTOR_DATA_TOGGLE)\n if (!target) {\n return\n }\n\n // Prevent default for click events to avoid navigation (e.g. <a href=\"#\">)\n if (event.type === 'click') {\n event.preventDefault()\n }\n\n // Lazily create the instance. The instance's own `_setListeners()` registers\n // the appropriate listeners on the element for the configured triggers\n // (click/focus/hover), so we don't toggle or call `_enter` here — doing so\n // would duplicate handlers and leave stale state on `_activeTrigger`.\n Popover.getOrCreateInstance(target)\n}\n\n// Auto-initialize popovers on first interaction for click, hover, and focus triggers\nEventHandler.on(document, EVENT_CLICK, SELECTOR_DATA_TOGGLE, initPopover)\nEventHandler.on(document, EVENT_FOCUSIN, SELECTOR_DATA_TOGGLE, initPopover)\nEventHandler.on(document, EVENT_MOUSEENTER, SELECTOR_DATA_TOGGLE, initPopover)\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getElement, isDisabled, isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_MENU_ITEM = 'menu-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]'\nconst SELECTOR_TARGET_LINKS = '[href]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\nconst SELECTOR_MENU_TOGGLE = '[data-bs-toggle=\"menu\"]'\n\nconst Default = {\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n}\n\nconst DefaultType = {\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n}\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map()\n this._observableSections = new Map()\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element\n this._activeTarget = null\n this._observer = null\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n }\n this.refresh() // initialize\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables()\n this._maybeEnableSmoothScroll()\n\n if (this._observer) {\n this._observer.disconnect()\n } else {\n this._observer = this._getNewObserver()\n }\n\n for (const section of this._observableSections.values()) {\n this._observer.observe(section)\n }\n }\n\n dispose() {\n this._observer.disconnect()\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n config.target = getElement(config.target) || document.body\n\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value))\n }\n\n return config\n }\n\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK)\n\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash)\n if (observableSection) {\n event.preventDefault()\n const root = this._rootElement || window\n const height = observableSection.offsetTop - this._element.offsetTop\n if (root.scrollTo) {\n root.scrollTo({ top: height, behavior: 'smooth' })\n return\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height\n }\n })\n }\n\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n }\n\n return new IntersectionObserver(entries => this._observerCallback(entries), options)\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`)\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop\n this._process(targetElement(entry))\n }\n\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop\n this._previousScrollData.parentScrollTop = parentScrollTop\n\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null\n this._clearActiveClass(targetElement(entry))\n\n continue\n }\n\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry)\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return\n }\n\n continue\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry)\n }\n }\n }\n\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map()\n this._observableSections = new Map()\n\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target)\n\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue\n }\n\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element)\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor)\n this._observableSections.set(anchor.hash, observableSection)\n }\n }\n }\n\n _process(target) {\n if (this._activeTarget === target) {\n return\n }\n\n this._clearActiveClass(this._config.target)\n this._activeTarget = target\n target.classList.add(CLASS_NAME_ACTIVE)\n this._activateParents(target)\n\n EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target })\n }\n\n _activateParents(target) {\n // Activate menu parents\n if (target.classList.contains(CLASS_NAME_MENU_ITEM)) {\n const menuToggle = target.closest('.menu')?.previousElementSibling\n if (menuToggle?.matches(SELECTOR_MENU_TOGGLE)) {\n menuToggle.classList.add(CLASS_NAME_ACTIVE)\n }\n\n return\n }\n\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {\n item.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _clearActiveClass(parent) {\n parent.classList.remove(CLASS_NAME_ACTIVE)\n\n const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE}`, parent)\n for (const node of activeNodes) {\n node.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {\n ScrollSpy.getOrCreateInstance(spy)\n }\n})\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { getNextActiveElement, isDisabled } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst SELECTOR_MENU_TOGGLE = '[data-bs-toggle=\"menu\"]'\nconst SELECTOR_MENU = '.menu'\nconst NOT_SELECTOR_MENU_TOGGLE = `:not(${SELECTOR_MENU_TOGGLE})`\n\nconst SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]'\nconst SELECTOR_OUTER = '.nav-item, .list-group-item'\nconst SELECTOR_INNER = `.nav-link${NOT_SELECTOR_MENU_TOGGLE}, .list-group-item${NOT_SELECTOR_MENU_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_MENU_TOGGLE}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"]'\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`\n\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"]`\n\n/**\n * Class definition\n */\n\nclass Tab extends BaseComponent {\n constructor(element) {\n super(element)\n this._parent = this._element.closest(SELECTOR_TAB_PANEL)\n\n if (!this._parent) {\n return\n // TODO: should throw exception in v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_TAB_PANEL}`)\n }\n\n // Set up initial aria attributes\n this._setInitialAttributes(this._parent, this._getChildren())\n\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n show() { // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element\n if (this._elemIsActive(innerElem)) {\n return\n }\n\n // Search for active tab on same parent to deactivate it\n const active = this._getActiveElem()\n\n const hideEvent = active ?\n EventHandler.trigger(active, EVENT_HIDE, { relatedTarget: innerElem }) :\n null\n\n const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { relatedTarget: active })\n\n if (showEvent.defaultPrevented || (hideEvent && hideEvent.defaultPrevented)) {\n return\n }\n\n this._deactivate(active, innerElem)\n this._activate(innerElem, active)\n }\n\n // Private\n _activate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n\n this._activate(SelectorEngine.getElementFromSelector(element)) // Search and activate/show the proper section\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW)\n return\n }\n\n element.removeAttribute('tabindex')\n element.setAttribute('aria-selected', true)\n this._toggleMenu(element, true)\n EventHandler.trigger(element, EVENT_SHOWN, {\n relatedTarget: relatedElem\n })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _deactivate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.remove(CLASS_NAME_ACTIVE)\n element.blur()\n\n this._deactivate(SelectorEngine.getElementFromSelector(element)) // Search and deactivate the shown section too\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW)\n return\n }\n\n element.setAttribute('aria-selected', false)\n element.setAttribute('tabindex', '-1')\n this._toggleMenu(element, false)\n EventHandler.trigger(element, EVENT_HIDDEN, { relatedTarget: relatedElem })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _keydown(event) {\n if (!([ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key))) {\n return\n }\n\n event.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n event.preventDefault()\n\n const children = this._getChildren().filter(element => !isDisabled(element))\n let nextActiveElement\n\n if ([HOME_KEY, END_KEY].includes(event.key)) {\n nextActiveElement = event.key === HOME_KEY ? children[0] : children.at(-1)\n } else {\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\n nextActiveElement = getNextActiveElement(children, event.target, isNext, true)\n }\n\n if (nextActiveElement) {\n nextActiveElement.focus({ preventScroll: true })\n Tab.getOrCreateInstance(nextActiveElement).show()\n }\n }\n\n _getChildren() { // collection of inner elements\n return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent)\n }\n\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null\n }\n\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist')\n\n for (const child of children) {\n this._setInitialAttributesOnChild(child)\n }\n }\n\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child)\n const isActive = this._elemIsActive(child)\n const outerElem = this._getOuterElement(child)\n child.setAttribute('aria-selected', isActive)\n\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation')\n }\n\n if (!isActive) {\n child.setAttribute('tabindex', '-1')\n }\n\n this._setAttributeIfNotExists(child, 'role', 'tab')\n\n // set attributes to the related panel too\n this._setInitialAttributesOnTargetPanel(child)\n }\n\n _setInitialAttributesOnTargetPanel(child) {\n const target = SelectorEngine.getElementFromSelector(child)\n\n if (!target) {\n return\n }\n\n this._setAttributeIfNotExists(target, 'role', 'tabpanel')\n\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`)\n }\n }\n\n _toggleMenu(element, open) {\n const outerElem = this._getOuterElement(element)\n const menuToggle = SelectorEngine.findOne(SELECTOR_MENU_TOGGLE, outerElem)\n if (!menuToggle) {\n return\n }\n\n const menu = SelectorEngine.findOne(SELECTOR_MENU, outerElem)\n\n menuToggle.classList.toggle(CLASS_NAME_ACTIVE, open)\n if (menu) {\n menu.classList.toggle(CLASS_NAME_SHOW, open)\n }\n\n menuToggle.setAttribute('aria-expanded', open)\n }\n\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value)\n }\n }\n\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n // Try to get the inner element (usually the .nav-link)\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem)\n }\n\n // Try to get the outer element (usually the .nav-item)\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n Tab.getOrCreateInstance(this).show()\n})\n\n/**\n * Initialize on focus\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element)\n }\n})\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { reflow } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`\nconst EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_FOCUSOUT = `focusout${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide' // @deprecated - kept here only for backwards compatibility\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 5000\n}\n\n/**\n * Class definition\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._timeout = null\n this._hasMouseInteraction = false\n this._hasKeyboardInteraction = false\n this._setListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n show() {\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n this._maybeScheduleHide()\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE) // @deprecated\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING)\n\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n hide() {\n if (!this.isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE) // @deprecated\n this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.add(CLASS_NAME_SHOWING)\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this.isShown()) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n super.dispose()\n }\n\n isShown() {\n return this._element.classList.contains(CLASS_NAME_SHOW)\n }\n\n // Private\n _maybeScheduleHide() {\n if (!this._config.autohide) {\n return\n }\n\n if (this._hasMouseInteraction || this._hasKeyboardInteraction) {\n return\n }\n\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n\n _onInteraction(event, isInteracting) {\n switch (event.type) {\n case 'mouseover':\n case 'mouseout': {\n this._hasMouseInteraction = isInteracting\n break\n }\n\n case 'focusin':\n case 'focusout': {\n this._hasKeyboardInteraction = isInteracting\n break\n }\n\n default: {\n break\n }\n }\n\n if (isInteracting) {\n this._clearTimeout()\n return\n }\n\n const nextElement = event.relatedTarget\n if (this._element === nextElement || this._element.contains(nextElement)) {\n return\n }\n\n this._maybeScheduleHide()\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false))\n EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false))\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Toast)\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap toggler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { eventActionOnPlugin } from './util/component-functions.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'toggler'\nconst DATA_KEY = 'bs.toggler'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_TOGGLE = `toggle${EVENT_KEY}`\nconst EVENT_TOGGLED = `toggled${EVENT_KEY}`\nconst EVENT_CLICK = 'click'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"toggler\"]'\n\nconst DefaultType = {\n attribute: 'string',\n value: '(string|number|boolean)'\n}\n\nconst Default = {\n attribute: 'class',\n value: null\n}\n\n/**\n * Class definition\n */\n\nclass Toggler extends BaseComponent {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n const toggleEvent = EventHandler.trigger(this._element, EVENT_TOGGLE)\n\n if (toggleEvent.defaultPrevented) {\n return\n }\n\n this._execute()\n\n EventHandler.trigger(this._element, EVENT_TOGGLED)\n }\n\n // Private\n _execute() {\n const { attribute, value } = this._config\n\n if (attribute === 'id') {\n return // You have to be kidding\n }\n\n if (attribute === 'class') {\n this._element.classList.toggle(value)\n return\n }\n\n // Compare as strings since getAttribute() always returns a string\n if (this._element.getAttribute(attribute) === String(value)) {\n this._element.removeAttribute(attribute)\n return\n }\n\n this._element.setAttribute(attribute, value)\n }\n}\n\n/**\n * Data API implementation\n */\n\neventActionOnPlugin(Toggler, EVENT_CLICK, SELECTOR_DATA_TOGGLE, 'toggle')\n\nexport default Toggler\n"],"names":["elementMap","Map","set","element","key","instance","has","instanceMap","get","size","console","error","keys","getAny","values","next","value","remove","delete","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","makeEventUid","uid","getElementEvents","bootstrapHandler","fn","handler","event","hydrateObj","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","selector","domElements","querySelectorAll","target","parentNode","domElement","findHandler","events","callable","delegationSelector","Object","find","normalizeParameters","originalTypeEvent","delegationFunction","isDelegated","typeEvent","getTypeEvent","addHandler","wrapFunction","relatedTarget","contains","call","handlers","previousFunction","replace","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","entries","includes","on","one","inNamespace","isNamespace","startsWith","length","elementEvent","slice","keyHandlers","trigger","args","evt","Event","bubbles","cancelable","dispatchEvent","obj","meta","defineProperty","configurable","normalizeData","Number","toString","JSON","parse","decodeURIComponent","normalizeDataKey","chr","toLowerCase","Manipulator","setDataAttribute","setAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","bsKeys","dataset","filter","pureKey","charAt","getDataAttribute","getAttribute","MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","parseSelector","window","CSS","escape","match","id","toType","object","undefined","prototype","getUID","prefix","Math","floor","random","document","getElementById","getTransitionDurationFromElement","transitionDuration","transitionDelay","getComputedStyle","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","isElement","nodeType","getElement","querySelector","isVisible","getClientRects","elementIsVisible","getPropertyValue","closedDetails","closest","summary","isDisabled","Node","ELEMENT_NODE","classList","disabled","hasAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","isRTL","dir","execute","possibleCallback","defaultValue","executeAfterTransition","callback","transitionElement","waitForTransition","durationPadding","emulatedDuration","called","setTimeout","getNextActiveElement","list","activeElement","shouldGetNext","isCycleAllowed","listLength","index","indexOf","max","min","Config","Default","DefaultType","NAME","Error","_getConfig","config","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","jsonConfig","constructor","configTypes","property","expectedTypes","valueType","RegExp","test","TypeError","toUpperCase","VERSION","BaseComponent","_element","_config","Data","DATA_KEY","dispose","EVENT_KEY","propertyName","getOwnPropertyNames","_queueCallback","isAnimated","getInstance","getOrCreateInstance","eventName","name","getSelector","hrefAttribute","trim","map","sel","join","SelectorEngine","Element","findOne","children","child","matches","parents","ancestor","push","prev","previous","previousElementSibling","nextElementSibling","focusableChildren","focusables","el","getSelectorFromElement","getElementFromSelector","getMultipleElementsFromSelector","enableDismissTrigger","component","method","clickEvent","tagName","preventDefault","eventActionOnPlugin","Plugin","onEvent","stringSelector","eventAction","data","instances","targets","EVENT_CLOSE","EVENT_CLOSED","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","close","closeEvent","defaultPrevented","_destroyElement","DATA_API_KEY","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE","EVENT_CLICK_DATA_API","Button","toggle","button","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","CLASS_NAME_POINTER_EVENT","SWIPE_THRESHOLD","endCallback","leftCallback","rightCallback","upCallback","downCallback","Swipe","isSupported","_deltaX","_deltaY","_supportPointerEvents","PointerEvent","_initEvents","_start","touches","clientX","clientY","_eventIsPointerPenTouch","_end","_handleSwipe","_move","absDeltaX","abs","absDeltaY","direction","add","pointerType","navigator","maxTouchPoints","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_DRAG_START","EVENT_LOAD_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_END","CLASS_NAME_START","CLASS_NAME_NEXT","CLASS_NAME_PREV","SELECTOR_ACTIVE","SELECTOR_ITEM","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM_IMG","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","KEY_TO_DIRECTION","interval","keyboard","pause","ride","touch","wrap","Carousel","_interval","_activeElement","_isSliding","touchTimeout","_swipeHelper","_indicatorsElement","_addEventListeners","cycle","_slide","nextWhenVisible","visibilityState","_clearInterval","_updateInterval","setInterval","_maybeEnableCycle","to","items","_getItems","activeIndex","_getItemIndex","_getActive","order","defaultInterval","_keydown","_addTouchEventListeners","img","endCallBack","clearTimeout","swipeConfig","_directionToOrder","_setActiveIndicatorElement","activeIndicator","newActiveIndicator","elementInterval","parseInt","isNext","nextElement","nextElementIndex","triggerEvent","_orderToDirection","from","slideEvent","isCycling","directionalClassName","orderClassName","completeCallBack","_isAnimated","clearInterval","carousel","slideIndex","carousels","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","CLASS_NAME_HORIZONTAL","WIDTH","HEIGHT","SELECTOR_ACTIVES","parent","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","_isShown","hide","show","activeChildren","_getFirstLevelChildren","startEvent","activeInstance","dimension","_getDimension","style","complete","capitalizedDimension","scrollSize","getBoundingClientRect","selected","triggerArray","isOpen","BREAKPOINTS","sm","md","lg","xl","parseResponsivePlacement","placementString","defaultPlacement","parts","placements","xs","part","breakpoint","placement","getResponsivePlacement","responsivePlacements","viewportWidth","innerWidth","activePlacement","breakpointOrder","minWidth","createBreakpointListeners","listeners","mql","matchMedia","disposeBreakpointListeners","ESCAPE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","HOME_KEY","END_KEY","ENTER_KEY","SPACE_KEY","RIGHT_MOUSE_BUTTON","SUBMENU_CLOSE_DELAY","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","SELECTOR_MENU","SELECTOR_SUBMENU","SELECTOR_SUBMENU_TOGGLE","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","DEFAULT_PLACEMENT","SUBMENU_PLACEMENT","resolveLogicalPlacement","triangleSign","p1","p2","p3","x","y","autoClose","boundary","container","display","offset","floatingConfig","menu","reference","strategy","submenuTrigger","submenuDelay","Menu","_openInstances","computePosition","_floatingCleanup","_mediaQueryListeners","_responsivePlacements","_parent","_isSubmenu","_openSubmenus","_submenuCloseTimeouts","_hoverIntentData","_menu","_findMenu","_menuOriginalParent","_parseResponsivePlacements","_setupSubmenuListeners","showEvent","_moveMenuToContainer","_createFloating","body","focus","focusVisible","_completeHide","_disposeFloating","_restoreMenuToOriginalParent","_disposeMediaQueryListeners","_closeAllSubmenus","_clearAllSubmenuTimeouts","update","_updateFloatingPosition","hideEvent","referenceElement","autoUpdate","_getPlacement","middleware","_getFloatingMiddleware","_getFloatingConfig","_applyFloatingPosition","_setupMediaQueryListeners","_getOffset","offsetConfig","rects","result","floating","offsetValue","mainAxis","crossAxis","flip","fallbackPlacements","_getFallbackPlacements","shift","fallbackMap","bottom","top","right","left","defaultConfig","_getContainer","append","isConnected","finalPlacement","assign","position","margin","_onSubmenuTriggerEnter","_onSubmenuLeave","_trackMousePosition","_onSubmenuTriggerClick","submenuWrapper","submenu","_cancelSubmenuCloseTimeout","_closeSiblingSubmenus","_openSubmenu","_isMovingTowardSubmenu","_scheduleSubmenuClose","stopPropagation","_closeSubmenu","cleanup","_createSubmenuFloating","nestedSubmenus","nested","nestedWrapper","currentSubmenuWrapper","siblingSubmenus","siblingMenu","siblingWrapper","padding","updatePosition","timeoutId","clear","timestamp","Date","now","submenuRect","currentPos","lastPos","isRtl","targetX","topCorner","bottomCorner","_pointInTriangle","point","v1","v2","v3","d1","d2","d3","hasNeg","hasPos","_selectMenuItem","currentMenu","_handleSubmenuKeydown","enterKey","exitKey","isSubmenuTrigger","requestAnimationFrame","firstItem","parentSubmenuWrapper","parentTrigger","targetItem","at","clearMenus","composedPath","isMenuTarget","dataApiKeydownHandler","isInput","isEscapeEvent","isUpOrDownEvent","isLeftOrRightEvent","isHomeOrEndEvent","isEnterOrSpaceEvent","getToggleButton","EVENT_CHANGE","CLASS_NAME_SELECTED","CLASS_NAME_PLACEHOLDER","SELECTOR_MENU_ITEM","SELECTOR_VALUE","SELECTOR_SEARCH_INPUT","SELECTOR_NO_RESULTS","multiple","placeholder","search","searchNormalize","Combobox","_toggle","_valueDisplay","_searchInput","_noResults","_hiddenInput","_menuInstance","_createHiddenInput","_createMenuInstance","_syncInitialSelection","_filterItems","createElement","insertBefore","selectedItems","_getSelectedItems","_updateToggleText","_updateHiddenInput","_showPlaceholder","item","_selectItem","_handleToggleKeydown","_handleMenuKeydown","_getVisibleItems","previouslySelected","bsValue","textContent","label","query","normalizedQuery","_normalizeText","visibleCount","text","normalize","jQueryInterface","each","EVENT_FOCUSIN_DATA_API","HIDE_DELAY","datepickerTheme","dateMin","dateMax","dateFormat","displayElement","displayMonthsCount","firstWeekday","inline","locale","positionElement","selectedDates","selectionMode","vcpOptions","Datepicker","_calendar","_initCalendar","_themeObserver","disconnect","destroy","getSelectedDates","dates","context","setSelectedDates","_isInput","_isInline","_boundInput","_positionElement","_resolvePositionElement","_displayElement","_resolveDisplayElement","calendarOptions","_buildCalendarOptions","Calendar","init","_setupThemeObserver","_parseInputValue","_updateDisplayWithSelectedDates","formattedDate","_formatDateForInput","displayChild","_getThemeAncestor","_getEffectiveTheme","_syncThemeAttribute","theme","MutationObserver","mainElement","observe","attributeFilter","vcpTheme","inputMode","positionToInput","selectionDatesMode","selectedTheme","themeAttrDetect","onClickDate","self","_handleDateClick","onInit","onShow","onHide","firstDate","_parseDate","selectedMonth","getMonth","selectedYear","getFullYear","_maybeHideAfterSelection","shouldHide","dateStr","year","month","day","_formatDate","date","Intl","DateTimeFormat","format","toLocaleDateString","separator","d","isNaN","getTime","String","padStart","getDate","formatted","bsInline","CLASS_NAME_OPEN","DialogBase","_openedAsModal","_addDialogListeners","open","_onBeforeShow","modal","preventBodyScroll","_getShowOptions","_showElement","_hideElement","_closeAndCleanup","_onAfterHide","_getInstantClassName","_getStaticClassName","_onCancel","showModal","_hideChildComponents","_shouldDeferClose","_triggerBackdropTransition","hidePreventedEvent","staticClass","eventKey","backdrop","EVENT_CANCEL","CLASS_NAME_NONMODAL","CLASS_NAME_INSTANT","CLASS_NAME_SWAP_IN","Dialog","handleUpdate","currentDialog","shouldSwap","newDialog","currentInstance","EVENT_UPDATE","EVENT_OVERFLOW","CLASS_NAME_OVERFLOW","CLASS_NAME_OVERFLOW_MENU","CLASS_NAME_HIDDEN","SELECTOR_NAV_ITEM","SELECTOR_NAV_LINK","SELECTOR_OVERFLOW_TOGGLE","SELECTOR_OVERFLOW_MENU","SELECTOR_CUSTOM_ICON","CLASS_NAME_KEEP","collapseBelow","iconPlacement","menuPlacement","moreText","moreIcon","threshold","NavOverflow","_items","_overflowItems","_overflowMenu","_overflowToggle","_resizeObserver","_collapseBelow","_isInitialized","_init","_calculateOverflow","_restoreItems","parentElement","bsNavOrder","_resolveCollapseBelow","_createOverflowMenu","_setupResizeObserver","iconHtml","_resolveIcon","iconSpan","textSpan","toggleContent","overflowItem","className","innerHTML","customIconElement","iconClone","cloneNode","outerHTML","cssValue","ResizeObserver","navWidth","offsetWidth","itemsToOverflow","_moveToOverflow","overflowCount","overflowWidth","keepWidth","reduce","sum","usedWidth","overflowThreshold","toMove","link","clonedLink","bsNavOverflow","EVENT_RESIZE","scroll","Drawer","useModal","_initSwipe","alreadyOpen","EVENT_STRENGTH_CHANGE","SELECTOR_DATA_STRENGTH","STRENGTH_LEVELS","input","minLength","messages","weak","fair","good","strong","weights","extraLength","lowercase","uppercase","numbers","special","multipleSpecial","longPassword","thresholds","scorer","Strength","_input","_getInput","_segments","_textElement","_currentStrength","_evaluate","getStrength","evaluate","password","score","_calculateScore","strength","_scoreToStrength","_updateUI","bsStrength","strengthIndex","segment","colorMap","setProperty","EVENT_COMPLETE","EVENT_INPUT","SELECTOR_DATA_OTP","SELECTOR_INPUT","mask","OtpInput","_inputs","_setupInputs","getValue","setValue","chars","_checkComplete","emptyInput","_handleInput","_handleKeydown","_handlePaste","_handleFocus","i","nextIndex","pastedData","clipboardData","getData","digits","lastIndex","select","isComplete","every","EVENT_ADD","EVENT_REMOVE","EVENT_SELECT","SELECTOR_DATA_CHIPS","SELECTOR_GHOST_INPUT","SELECTOR_CHIP","SELECTOR_CHIP_DISMISS","CLASS_NAME_CHIP","CLASS_NAME_CHIP_DISMISS","DEFAULT_DISMISS_ICON","allowDuplicates","maxChips","dismissible","dismissIcon","createOnBlur","Chips","_chips","_selectedChips","_anchorChip","_createInput","_initializeExistingChips","trimmedValue","addEvent","chip","_createChip","getValues","chipOrValue","_findChipByValue","_getChipValue","removeEvent","v","removeSelected","chipsToRemove","getSelectedValues","chips","clearSelection","selectChip","options","addToSelection","rangeSelect","chipElements","_getChipElements","anchorIndex","chipIndex","start","end","existingChips","_setupChip","_createDismissButton","bsChipValue","createTextNode","clone","dismiss","_handleInputKeydown","_createChipFromInput","metaKey","ctrlKey","shiftKey","_handleChipKeydown","lastChip","selectionStart","selectionEnd","blur","currentIndex","_handleChipDelete","_navigateChip","_navigateToEdge","_handleSelectAll","remainingChips","focusIndex","targetIndex","targetChip","c","ARIA_ATTRIBUTE_PATTERN","DefaultAllowlist","a","area","b","br","col","code","dd","div","dl","dt","em","hr","h1","h2","h3","h4","h5","h6","li","ol","p","pre","s","small","span","sub","sup","u","ul","uriAttributes","SAFE_URL_PATTERN","allowedAttribute","attribute","allowedAttributeList","attributeName","nodeName","nodeValue","attributeRegex","some","regex","sanitizeHtml","unsafeHtml","allowList","sanitizeFunction","domParser","DOMParser","createdDocument","parseFromString","elements","elementName","attributeList","allowedAttributes","content","extraClass","html","sanitize","sanitizeFn","template","DefaultContentType","entry","TemplateFactory","getContent","_resolvePossibleFunction","hasContent","changeContent","_checkContent","toHtml","templateWrapper","_maybeSanitize","_setContent","arg","templateElement","_putElementInTemplate","DISALLOWED_ATTRIBUTES","CLASS_NAME_MODAL","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","EVENT_INSERTED","EVENT_CLICK","EVENT_FOCUSIN","EVENT_FOCUSOUT","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","animation","customClass","delay","title","Tooltip","_isEnabled","_timeout","_isHovered","_activeTrigger","_templateFactory","_newContent","tip","_setListeners","_fixTitle","enable","disable","toggleEnabled","_leave","_enter","_hideModalHandler","_isWithContent","shadowRoot","isInTheDom","ownerDocument","_getTipElement","closestDialog","_isWithActiveTrigger","_getTitle","_createTipElement","_getContentForTemplate","_getTemplateFactory","tipId","setContent","_initializeOnDelegatedTarget","_getDelegateConfig","arrowElement","middlewareData","arrow","arrowX","arrowY","isVertical","triggers","eventIn","eventOut","_setTimeout","timeout","dataAttributes","dataAttribute","initTooltip","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","initPopover","EVENT_ACTIVATE","CLASS_NAME_MENU_ITEM","SELECTOR_DATA_SPY","SELECTOR_TARGET_LINKS","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","SELECTOR_MENU_TOGGLE","rootMargin","smoothScroll","ScrollSpy","_targetLinks","_observableSections","_rootElement","overflowY","_activeTarget","_observer","_previousScrollData","visibleEntryTop","parentScrollTop","refresh","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","_getNewObserver","section","observableSection","hash","height","offsetTop","scrollTo","behavior","scrollTop","IntersectionObserver","_observerCallback","targetElement","activate","_process","userScrollsDown","isIntersecting","_clearActiveClass","entryIsLowerThanPrevious","targetLinks","anchor","decodeURI","_activateParents","menuToggle","listGroup","activeNodes","node","spy","NOT_SELECTOR_MENU_TOGGLE","SELECTOR_TAB_PANEL","SELECTOR_OUTER","SELECTOR_INNER","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","Tab","_setInitialAttributes","_getChildren","innerElem","_elemIsActive","active","_getActiveElem","_deactivate","_activate","relatedElem","_toggleMenu","nextActiveElement","preventScroll","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","EVENT_MOUSEOVER","EVENT_MOUSEOUT","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_hasMouseInteraction","_hasKeyboardInteraction","_clearTimeout","_maybeScheduleHide","isShown","_onInteraction","isInteracting","EVENT_TOGGLE","EVENT_TOGGLED","Toggler","toggleEvent","_execute"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"bootstrap.js","sources":["../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/dom/manipulator.js","../../js/src/util/index.js","../../js/src/util/config.js","../../js/src/base-component.js","../../js/src/dom/selector-engine.js","../../js/src/util/component-functions.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/util/floating-ui.js","../../js/src/menu.js","../../js/src/combobox.js","../../js/src/datepicker.js","../../js/src/dialog-base.js","../../js/src/dialog.js","../../js/src/nav-overflow.js","../../js/src/util/swipe.js","../../js/src/drawer.js","../../js/src/strength.js","../../js/src/otp-input.js","../../js/src/chips.js","../../js/src/util/sanitizer.js","../../js/src/util/template-factory.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/src/toggler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${[...instanceMap.keys()][0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n getAny(element) {\n if (elementMap.has(element)) {\n return elementMap.get(element).values().next().value || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, { delegateTarget: element })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n hydrateObj(event, { delegateTarget: target })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events)\n .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'\n const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n let typeEvent = getTypeEvent(originalTypeEvent)\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n callable = wrapFunction(callable)\n }\n\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler, callable) :\n bootstrapHandler(element, callable)\n\n fn.delegationSelector = isDelegated ? handler : null\n fn.callable = callable\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false)\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getElementEvents(element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const evt = hydrateObj(new Event(event, { bubbles: true, cancelable: true }), args)\n element.dispatchEvent(evt)\n return evt\n }\n}\n\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value\n } catch {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value\n }\n })\n }\n }\n\n return obj\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n if (value === Number(value).toString()) {\n return Number(value)\n }\n\n if (value === '' || value === 'null') {\n return null\n }\n\n if (typeof value !== 'string') {\n return value\n }\n\n try {\n return JSON.parse(decodeURIComponent(value))\n } catch {\n return value\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'))\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1)\n attributes[pureKey] = normalizeData(element.dataset[key])\n }\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n if (isElement(object)) {\n return object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsely appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.harrytheo.com/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport { isElement, toType } from './index.js'\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {}\n }\n\n static get DefaultType() {\n return {}\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n return config\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n }\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property]\n const valueType = isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n }\n }\n}\n\nexport default Config\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '6.0.0-alpha1'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n // Private\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible, parseSelector } from '../util/index.js'\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`\n }\n\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null\n }\n\n return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null\n}\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [...Element.prototype.querySelectorAll.call(element, selector)]\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [...element.children].filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n let ancestor = element.parentNode.closest(selector)\n\n while (ancestor) {\n parents.push(ancestor)\n ancestor = ancestor.parentNode.closest(selector)\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n },\n\n getSelectorFromElement(element) {\n const selector = getSelector(element)\n\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null\n }\n\n return null\n },\n\n getElementFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.findOne(selector) : null\n },\n\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.find(selector) : []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport { isDisabled } from './index.js'\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`\n const name = component.NAME\n\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`)\n const instance = component.getOrCreateInstance(target)\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]()\n })\n}\n\nconst eventActionOnPlugin = (Plugin, onEvent, stringSelector, method, callback = null) => {\n eventAction(`${onEvent}.${Plugin.NAME}`, stringSelector, data => {\n const instances = data.targets.filter(Boolean).map(element => Plugin.getOrCreateInstance(element))\n if (typeof callback === 'function') {\n callback({ ...data, instances })\n }\n\n for (const instance of instances) {\n instance[method]()\n }\n })\n}\n\nconst eventAction = (onEvent, stringSelector, callback) => {\n const selector = `${stringSelector}:not(.disabled):not(:disabled)`\n EventHandler.on(document, onEvent, selector, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n const selector = SelectorEngine.getSelectorFromElement(this)\n const targets = selector ? SelectorEngine.find(selector) : [this]\n\n callback({ targets, event })\n })\n}\n\nexport {\n enableDismissTrigger,\n eventActionOnPlugin\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE)\n\n if (closeEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE)\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated)\n }\n\n // Private\n _destroyElement() {\n this._element.remove()\n EventHandler.trigger(this._element, EVENT_CLOSED)\n this.dispose()\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close')\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'button'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {\n event.preventDefault()\n\n const button = event.target.closest(SELECTOR_DATA_TOGGLE)\n const data = Button.getOrCreateInstance(button)\n\n data.toggle()\n})\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { isRTL, isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\n\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'carousel-fade'\nconst CLASS_NAME_CENTER = 'carousel-center'\nconst CLASS_NAME_AUTO = 'carousel-auto'\nconst CLASS_NAME_CLONE = 'carousel-item-clone'\nconst CLASS_NAME_PAUSED = 'paused'\n// Added to the root while the autoplay timer is running, so CSS can fill the\n// active indicator like a progress bar over the current slide's interval.\nconst CLASS_NAME_PLAYING = 'carousel-playing'\n\n// Shipped (`--bs-`-prefixed) custom property the indicator fill animation reads\n// for its duration. The build prefixes every custom property, so the bare\n// `--carousel-interval` used in the SCSS source becomes this at runtime.\nconst PROPERTY_INTERVAL = '--bs-carousel-interval'\n\n// How many frames the scroll-settle watcher waits when no movement is ever\n// detected (clamped programmatic scroll, or `scrollBy` stubbed in tests) before\n// it gives up and restores snapping anyway.\nconst SCROLL_SETTLE_MAX_FRAMES = 10\n\n// How far below the most-visible slide a slide's IntersectionRatio can be while\n// still counting as the active (left-most) slide. After a programmatic scroll\n// the viewport rests a sub-pixel past the snap offset, leaving the intended\n// slide a hair less visible than its fully-in neighbors; the tolerance prevents\n// that rounding from skipping the active index forward.\nconst ACTIVE_RATIO_TOLERANCE = 0.05\n\nconst SELECTOR_ACTIVE = '.active'\n// Exclude transient loop clones so index math, indicators, and active-slide\n// detection only ever see the real slides.\nconst SELECTOR_ITEM = `.carousel-item:not(.${CLASS_NAME_CLONE})`\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM\nconst SELECTOR_INNER = '.carousel-inner'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_PLAY_PAUSE = '.carousel-control-play-pause'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_SLIDE_PREV = '[data-bs-slide=\"prev\"]'\nconst SELECTOR_DATA_SLIDE_NEXT = '[data-bs-slide=\"next\"]'\nconst SELECTOR_DATA_AUTOPLAY = '[data-bs-autoplay=\"true\"]'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst ENDS_STOP = 'stop'\nconst ENDS_WRAP = 'wrap'\nconst ENDS_LOOP = 'loop'\n\nconst Default = {\n autoplay: false,\n ends: ENDS_LOOP,\n interval: 5000,\n keyboard: true,\n pause: 'hover'\n}\n\nconst DefaultType = {\n autoplay: 'boolean',\n ends: 'string',\n interval: 'number',\n keyboard: 'boolean',\n pause: '(string|boolean)'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // The scroll viewport. The browser owns sliding, dragging, momentum, and\n // keyboard scrolling; this controller only layers on autoplay, the\n // prev/next/indicator controls, and active-slide syncing.\n this._viewport = SelectorEngine.findOne(SELECTOR_INNER, this._element) || this._element\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._playPauseElement = SelectorEngine.findOne(SELECTOR_PLAY_PAUSE, this._element)\n // Prev/next controls scoped to the carousel root (covers inline and stacked\n // layouts). External controls placed outside `.carousel` aren't managed.\n this._prevControls = SelectorEngine.find(SELECTOR_DATA_SLIDE_PREV, this._element)\n this._nextControls = SelectorEngine.find(SELECTOR_DATA_SLIDE_NEXT, this._element)\n\n this._interval = null\n this._observer = null\n this._snapRestoreFrame = null\n // True while a seamless loop transition is animating, so the\n // IntersectionObserver and re-entrant navigation don't interfere.\n this._looping = false\n this._visibility = new Map()\n // Runtime autoplay intent. Starts from the `autoplay` option, but is turned\n // off once the user takes control (clicks a control, uses the keyboard,\n // swipes/drags, or presses pause) so we don't move content out from under\n // them (WCAG 2.2.2 Pause, Stop, Hide).\n this._playing = this._config.autoplay\n\n this._activeIndex = this._initialActiveIndex()\n\n this._addEventListeners()\n this._observeItems()\n this._refreshActiveState()\n\n if (this._playing) {\n this.cycle()\n }\n\n this._updatePlayPauseControl()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n next() {\n this.to(this._navIndex() + 1)\n }\n\n nextWhenVisible() {\n // Don't advance when the page or the carousel isn't visible\n if (document.visibilityState === 'visible' && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n this.to(this._navIndex() - 1)\n }\n\n pause() {\n this._clearInterval()\n // Freeze the indicator progress fill; it resets to empty until cycling\n // resumes and `_scheduleAutoplay` restarts it from scratch.\n this._element.classList.remove(CLASS_NAME_PLAYING)\n }\n\n cycle() {\n this._clearInterval()\n this._scheduleAutoplay()\n this._element.classList.add(CLASS_NAME_PLAYING)\n }\n\n to(index) {\n // Ignore navigation while a seamless loop transition is animating\n if (this._looping) {\n return\n }\n\n const items = this._getItems()\n const rawIndex = Number.parseInt(index, 10)\n\n // Seamless loop: continue forward/backward into a transient clone instead of\n // the visible `wrap` jump. Only the simple single-slide scroll layout\n // qualifies, and reduced motion falls back to the plain wrap below.\n if (this._config.ends === ENDS_LOOP && !this._prefersReducedMotion() && this._canLoop()) {\n if (rawIndex > items.length - 1) {\n this._loopTransition(true)\n return\n }\n\n if (rawIndex < 0) {\n this._loopTransition(false)\n return\n }\n }\n\n const targetIndex = this._normalizeIndex(rawIndex, items.length)\n // Measure \"current\" from the live scroll position: `_activeIndex` updates\n // asynchronously, so an indicator/control used mid-scroll must compare\n // against where the viewport actually rests (`_navIndex` returns the tracked\n // active index for fade/non-scrollable layouts).\n const currentIndex = this._navIndex()\n\n if (targetIndex === null || targetIndex === currentIndex) {\n return\n }\n\n const slideEvent = EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget: items[targetIndex],\n direction: this._direction(currentIndex, targetIndex),\n from: currentIndex,\n to: targetIndex\n })\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (this._isFade()) {\n this._fadeTo(targetIndex)\n return\n }\n\n // Scroll mode: the IntersectionObserver fires `slid` and syncs state once\n // the new slide settles into view.\n this._scrollToIndex(targetIndex)\n }\n\n dispose() {\n // Stop autoplay first: otherwise a pending timer would fire after the\n // instance is torn down and throw on the now-null `_element`.\n this._clearInterval()\n\n if (this._observer) {\n this._observer.disconnect()\n }\n\n if (this._snapRestoreFrame !== null) {\n cancelAnimationFrame(this._snapRestoreFrame)\n }\n\n // Tidy up any in-flight loop transition: drop a stray clone and restore\n // native snapping, so the viewport isn't left mid-animation.\n for (const clone of SelectorEngine.find(`.${CLASS_NAME_CLONE}`, this._viewport)) {\n clone.remove()\n }\n\n this._viewport.style.scrollSnapType = ''\n\n // The pointerdown listener lives on the viewport (`.carousel-inner`), which\n // `super.dispose()` doesn't clean up—it only drops listeners on `_element`.\n EventHandler.off(this._viewport, EVENT_KEY)\n\n super.dispose()\n }\n\n // Private\n // Normalize an unknown `ends` value so navigation and end-control logic can't\n // disagree about whether the carousel wraps.\n _configAfterMerge(config) {\n if (![ENDS_STOP, ENDS_WRAP, ENDS_LOOP].includes(config.ends)) {\n config.ends = Default.ends\n }\n\n return config\n }\n\n _initialActiveIndex() {\n const active = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const index = active ? this._getItems().indexOf(active) : 0\n return Math.max(index, 0)\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause())\n EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle())\n }\n\n // Dragging, swiping, or tapping the track is an explicit interaction\n EventHandler.on(this._viewport, EVENT_POINTERDOWN, () => this._pauseFromInteraction())\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n const direction = KEY_TO_DIRECTION[event.key]\n if (direction) {\n event.preventDefault()\n this._pauseFromInteraction()\n if (direction === DIRECTION_RIGHT) {\n this.prev()\n } else {\n this.next()\n }\n }\n }\n\n _observeItems() {\n // Fade mode stacks slides instead of scrolling, so there's nothing to observe\n if (this._isFade() || typeof IntersectionObserver === 'undefined') {\n return\n }\n\n this._observer = new IntersectionObserver(\n entries => this._handleIntersection(entries),\n { root: this._viewport, threshold: [0, 0.25, 0.5, 0.75, 1] }\n )\n\n for (const item of this._getItems()) {\n this._observer.observe(item)\n }\n }\n\n _handleIntersection(entries) {\n // A loop transition deliberately scrolls onto a transient clone; ignore the\n // visibility churn so it doesn't move the active index mid-animation.\n if (this._looping) {\n return\n }\n\n for (const entry of entries) {\n this._visibility.set(entry.target, entry.isIntersecting ? entry.intersectionRatio : 0)\n }\n\n const items = this._getItems()\n const ratios = items.map(item => this._visibility.get(item) ?? 0)\n const maxRatio = Math.max(...ratios)\n\n // Pick the left-most slide that's *near* fully visible rather than the strict\n // global maximum. After a programmatic scroll the viewport rests ~1px past\n // the target snap offset, so the intended left-most slide reports a ratio a\n // hair below the deeper, fully-visible ones (e.g. 0.997 vs 1.0). A strict max\n // would skip past it and inflate the active index by one, which breaks\n // multi-item next/prev. The tolerance keeps the intended slide active while\n // peeking slivers (well below the max) are still ignored.\n let bestIndex = this._activeIndex\n\n if (maxRatio > 0) {\n bestIndex = ratios.findIndex(ratio => ratio >= maxRatio - ACTIVE_RATIO_TOLERANCE)\n }\n\n this._setActive(bestIndex)\n // Keep the end controls in sync with the scroll position even when the\n // active index doesn't change (e.g. the final stretch of a multi-item\n // scroll, where the left-most slide is already the last reachable one).\n this._updateEndControls()\n }\n\n // The index a `next()`/`prev()` step is measured from. Scroll layouts read it\n // from the live scroll position instead of `this._activeIndex`, because the\n // IntersectionObserver updates that asynchronously: after one step the index\n // can still be stale, so the next step would compute the same target and\n // silently no-op (the \"the button does nothing / can't reach the end slide\"\n // symptom). Fade and non-scrollable layouts have no scroll position to read,\n // so they keep using the tracked active index (also what the unit tests rely\n // on when there's no real layout).\n _navIndex() {\n if (this._isFade() || (this._viewport.scrollWidth - this._viewport.clientWidth) <= 0) {\n return this._activeIndex\n }\n\n let index = this._activeIndex\n let smallestDelta = Number.POSITIVE_INFINITY\n\n for (const [itemIndex, item] of this._getItems().entries()) {\n // The slide currently resting at the active position has ~zero delta.\n const delta = Math.abs(this._scrollDelta(item))\n if (delta < smallestDelta) {\n smallestDelta = delta\n index = itemIndex\n }\n }\n\n return index\n }\n\n _scrollToIndex(index) {\n const item = this._getItems()[index]\n if (!item) {\n return\n }\n\n const left = this._scrollDelta(item)\n if (Math.abs(left) < 1) {\n return\n }\n\n // `scroll-snap-stop: always` keeps user wheel/touch flings to a single slide,\n // but it also clamps *programmatic* scrolls to one snap point — which would\n // break multi-slide jumps from an indicator click, `to()`, or wrapping from\n // the last slide back to the first. Disable snapping for the duration of the\n // programmatic scroll, then restore it once the scroll settles so the slide\n // still rests precisely (honouring peek/gap).\n const targetLeft = this._viewport.scrollLeft + left\n this._viewport.style.scrollSnapType = 'none'\n this._viewport.scrollBy({\n left,\n top: 0,\n // `'instant'` (not `'auto'`) for reduced motion: the viewport sets\n // `scroll-behavior: smooth` in CSS, and `'auto'` defers to it, so it would\n // still animate. `'instant'` forces an immediate, motion-free jump.\n behavior: this._prefersReducedMotion() ? 'instant' : 'smooth'\n })\n this._restoreSnapWhenSettled(targetLeft, index)\n }\n\n // Horizontal distance to scroll the viewport so `element` rests where the\n // active slide should sit. Scroll the viewport itself rather than calling\n // `element.scrollIntoView()`: the latter scrolls *every* scrollable ancestor\n // (including the page), so an autoplaying carousel below the fold would yank\n // the whole page to itself on each tick. Using bounding rects keeps it\n // direction-agnostic (works in RTL).\n _scrollDelta(element) {\n const viewportRect = this._viewport.getBoundingClientRect()\n const rect = element.getBoundingClientRect()\n\n if (this._element.classList.contains(CLASS_NAME_CENTER)) {\n return (rect.left + (rect.width / 2)) - (viewportRect.left + (viewportRect.width / 2))\n }\n\n // Start alignment: rest the slide at the scroll-padding (peek) offset, which\n // is exactly where scroll-snap will settle. Aligning flush to the edge\n // instead would make the browser re-snap by `peek` once snapping is restored,\n // producing a visible secondary nudge after the programmatic scroll.\n const padStart = Number.parseFloat(getComputedStyle(this._viewport).scrollPaddingInlineStart) || 0\n\n return isRTL() ?\n rect.right - (viewportRect.right - padStart) :\n rect.left - (viewportRect.left + padStart)\n }\n\n // Seamless loop: continue past an end into a one-off clone of the destination\n // slide, then teleport to the real slide so there's no visible backward jump.\n _loopTransition(isNext) {\n const items = this._getItems()\n const last = items.length - 1\n const fromIndex = this._activeIndex\n const toIndex = isNext ? 0 : last\n const direction = this._loopDirection(isNext)\n\n const slideEvent = EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget: items[toIndex],\n direction,\n from: fromIndex,\n to: toIndex\n })\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n this._looping = true\n\n const clone = (isNext ? items[0] : items[last]).cloneNode(true)\n clone.classList.add(CLASS_NAME_CLONE)\n clone.classList.remove(CLASS_NAME_ACTIVE)\n clone.removeAttribute('id')\n // Also strip ids from the cloned subtree to avoid duplicate ids while the\n // clone is on screen.\n for (const node of SelectorEngine.find('[id]', clone)) {\n node.removeAttribute('id')\n }\n\n clone.setAttribute('aria-hidden', 'true')\n clone.inert = true\n\n this._viewport.style.scrollSnapType = 'none'\n\n if (isNext) {\n this._viewport.append(clone)\n } else {\n this._viewport.prepend(clone)\n // Prepending shifts the real slides to the right; instantly re-align the\n // current slide so the insertion doesn't flash before we animate.\n this._jumpScroll(this._scrollDelta(items[fromIndex]))\n }\n\n this._viewport.scrollBy({\n left: this._scrollDelta(clone),\n top: 0,\n behavior: 'smooth'\n })\n\n this._afterScrollSettles(() => {\n // Teleport to the real destination without animation. JS runs to\n // completion before the browser paints, so removing the clone and the\n // compensating scroll land in a single frame (no visible flash).\n clone.remove()\n this._jumpScroll(this._scrollDelta(items[toIndex]))\n\n this._activeIndex = toIndex\n this._refreshActiveState()\n\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: items[toIndex],\n direction,\n from: fromIndex,\n to: toIndex\n })\n\n this._viewport.style.scrollSnapType = ''\n this._looping = false\n })\n }\n\n _loopDirection(isNext) {\n if (isRTL()) {\n return isNext ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n return isNext ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n // Instant (non-animated) scroll with snapping suspended, used to teleport the\n // viewport during a loop transition. `behavior: 'instant'` is required because\n // the viewport sets `scroll-behavior: smooth` in CSS, and `'auto'` would defer\n // to it and animate the teleport (a visible backward slide).\n _jumpScroll(delta) {\n this._viewport.style.scrollSnapType = 'none'\n this._viewport.scrollBy({ left: delta, top: 0, behavior: 'instant' })\n }\n\n // Re-enable scroll snapping once the viewport reaches `targetLeft` (or stops\n // moving). Passing the target matters: restoring `mandatory` snapping re-snaps\n // to the *nearest* snap point, so if we restored mid-animation the viewport\n // could jump back to the slide we came from — most visible stepping to the\n // first/last slide, where it looks like the control \"doesn't work\".\n _restoreSnapWhenSettled(targetLeft, index) {\n this._afterScrollSettles(() => {\n this._viewport.style.scrollSnapType = ''\n // Without IntersectionObserver nothing else fires `slid`/updates the active\n // slide after a programmatic scroll, so do it here. With the observer\n // present this is a no-op (it already moved the active index to `index`).\n if (!this._observer && index !== undefined) {\n this._setActive(index)\n }\n\n // The IntersectionObserver doesn't fire once the viewport has stopped, so\n // refresh the end controls here to catch the final ~1px settle landing\n // exactly on the scroll extent (e.g. disabling `next` at the last view).\n this._updateEndControls()\n }, targetLeft)\n }\n\n // Invoke `callback` once the viewport stops moving. We watch the scroll\n // position across frames instead of relying on the `scrollend` event, which\n // isn't available across our supported browsers yet.\n //\n // Crucially, we only start counting \"stable\" frames once the scroll has\n // actually moved. A smooth `scrollBy` doesn't update `scrollLeft` for the first\n // frame or two, so naively treating those initial unchanged frames as\n // \"settled\" would re-enable `mandatory` snapping mid-animation — which cancels\n // the in-flight programmatic scroll and lands on the wrong slide (most visible\n // in multi-item layouts). If the scroll never moves (delta clamped at an end,\n // or `scrollBy` stubbed out in unit tests), we fall back to a short frame cap.\n //\n // When `targetLeft` is known we also finish the moment we arrive there, so the\n // snap is restored exactly on the destination snap point and can't re-snap the\n // viewport backwards (the failure mode where stepping to the first/last slide\n // appears to do nothing).\n _afterScrollSettles(callback, targetLeft) {\n if (typeof requestAnimationFrame === 'undefined') {\n callback()\n return\n }\n\n if (this._snapRestoreFrame !== null) {\n cancelAnimationFrame(this._snapRestoreFrame)\n }\n\n const startLeft = this._viewport.scrollLeft\n let lastLeft = startLeft\n let stableFrames = 0\n let waited = 0\n let hasMoved = false\n\n const tick = () => {\n const currentLeft = this._viewport.scrollLeft\n const reachedTarget = targetLeft !== undefined && Math.abs(currentLeft - targetLeft) <= 1\n\n if (Math.abs(currentLeft - startLeft) > 1) {\n hasMoved = true\n }\n\n // Only accrue stable frames after movement begins, so the pre-animation\n // and ease-in frames don't prematurely count as settled.\n if (hasMoved) {\n stableFrames = Math.abs(currentLeft - lastLeft) < 1 ? stableFrames + 1 : 0\n }\n\n lastLeft = currentLeft\n waited += 1\n\n if (reachedTarget || (hasMoved && stableFrames >= 3) || (!hasMoved && waited >= SCROLL_SETTLE_MAX_FRAMES)) {\n this._snapRestoreFrame = null\n callback()\n return\n }\n\n this._snapRestoreFrame = requestAnimationFrame(tick)\n }\n\n this._snapRestoreFrame = requestAnimationFrame(tick)\n }\n\n // Fade mode just swaps the active class; the CSS opacity transition on\n // `.carousel-item` performs the crossfade over `--carousel-fade-duration` (and\n // collapses to an instant swap under reduced motion, via the `transition`\n // mixin). It deliberately avoids the View Transition API: a view transition\n // crossfades a page snapshot over its own (shorter) duration while this CSS\n // fade also runs underneath, so the two animations overlap and visibly stutter.\n _fadeTo(index) {\n this._setActive(index)\n }\n\n _setActive(index) {\n const items = this._getItems()\n if (index === this._activeIndex || !items[index]) {\n return\n }\n\n const from = this._activeIndex\n\n this._activeIndex = index\n this._refreshActiveState()\n\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: items[index],\n direction: this._direction(from, index),\n from,\n to: index\n })\n }\n\n _refreshActiveState() {\n const items = this._getItems()\n\n for (const [index, item] of items.entries()) {\n item.classList.toggle(CLASS_NAME_ACTIVE, index === this._activeIndex)\n }\n\n this._setActiveIndicatorElement(this._activeIndex)\n this._updateEndControls()\n }\n\n _updateEndControls() {\n // Only `ends: 'stop'` has real ends; under `wrap`/`loop` you can always\n // advance, so disabling end controls would be meaningless. When stopping,\n // disable the prev control at the start of the scroll range and the next\n // control at the end so there are no dead end-buttons.\n if (this._config.ends !== ENDS_STOP) {\n return\n }\n\n const viewport = this._viewport\n const maxScroll = viewport.scrollWidth - viewport.clientWidth\n\n let atStart\n let atEnd\n\n if (maxScroll > 0) {\n // Scrollable: measure the real scroll extent so this works for multi-item,\n // peek, and variable-width layouts where the last slide can never become\n // the left-most (active) one. `Math.abs` keeps it correct in RTL, where\n // `scrollLeft` runs from 0 down to negative.\n const progress = Math.abs(viewport.scrollLeft)\n atStart = progress <= 1\n atEnd = progress >= maxScroll - 1\n } else {\n // Not scrollable (or no layout yet, e.g. in unit tests): fall back to the\n // active index for the single-slide case.\n const last = this._getItems().length - 1\n atStart = this._activeIndex <= 0\n atEnd = this._activeIndex >= last\n }\n\n this._setControlsDisabled(this._prevControls, atStart)\n this._setControlsDisabled(this._nextControls, atEnd)\n }\n\n _setControlsDisabled(controls, disabled) {\n for (const control of controls) {\n // a11y: if we're about to disable the focused control, move focus to the\n // opposite (still-enabled) control so focus isn't lost.\n if (disabled && control === document.activeElement) {\n const opposite = controls === this._prevControls ? this._nextControls : this._prevControls\n const fallback = opposite[0] ?? this._viewport\n // `preventScroll` so moving focus doesn't yank the page/viewport to the\n // newly-focused control mid-navigation.\n fallback.focus({ preventScroll: true })\n }\n\n control.disabled = disabled\n }\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return\n }\n\n const active = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n active.removeAttribute('aria-current')\n }\n\n const newActive = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement)\n if (newActive) {\n newActive.classList.add(CLASS_NAME_ACTIVE)\n newActive.setAttribute('aria-current', 'true')\n }\n }\n\n _normalizeIndex(index, length) {\n if (Number.isNaN(index) || length === 0) {\n return null\n }\n\n if (index < 0) {\n return this._wrapsAround() ? length - 1 : null\n }\n\n if (index > length - 1) {\n return this._wrapsAround() ? 0 : null\n }\n\n return index\n }\n\n // Whether navigating past an end wraps to the other end. `loop` continues\n // seamlessly where it can (see `_canLoop`) and otherwise behaves like `wrap`.\n _wrapsAround() {\n return this._config.ends === ENDS_WRAP || this._config.ends === ENDS_LOOP\n }\n\n // Seamless looping is only supported for the simple single-slide scroll\n // layout. Multi-item, peek, center, and variable-width layouts fall back to\n // the plain `wrap` jump.\n _canLoop() {\n if (this._isFade() || this._getItems().length < 2) {\n return false\n }\n\n const styles = getComputedStyle(this._element)\n const num = name => Number.parseFloat(styles.getPropertyValue(name)) || 0\n\n // These are the shipped, `--bs-`-prefixed custom properties (the build\n // prefixes every custom property), not the bare names used in the SCSS source.\n return (num('--bs-carousel-items') || 1) === 1 &&\n num('--bs-carousel-items-peek') === 0 &&\n !this._element.classList.contains(CLASS_NAME_CENTER) &&\n !this._element.classList.contains(CLASS_NAME_AUTO)\n }\n\n _direction(from, to) {\n const isNext = to > from\n if (isRTL()) {\n return isNext ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n return isNext ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n _scheduleAutoplay(index = this._activeIndex) {\n const interval = this._itemInterval(index)\n // Expose the wait so the active indicator's CSS fill matches it.\n this._element.style.setProperty(PROPERTY_INTERVAL, `${interval}ms`)\n this._interval = setTimeout(() => {\n // Capture the slide the advance lands on *before* navigating: the active\n // index only updates once the scroll settles (asynchronously), so reading\n // it after `nextWhenVisible()` would schedule the next wait from the slide\n // we're leaving — making per-item `data-bs-interval`s lag by one slide.\n const upcoming = this._upcomingIndex()\n this.nextWhenVisible()\n\n // Nothing comes after the last slide when `ends: 'stop'`; stop cycling\n // instead of re-arming a timer that can never advance.\n if (upcoming === null) {\n this.pause()\n return\n }\n\n this._scheduleAutoplay(upcoming)\n }, interval)\n }\n\n // The slide the next autoplay tick will rest on, derived from the live scroll\n // position (which still reflects the current slide when the timer fires).\n // Returns `null` when there's nowhere left to advance (`ends: stop` at the end).\n _upcomingIndex() {\n return this._normalizeIndex(this._navIndex() + 1, this._getItems().length)\n }\n\n _itemInterval(index = this._activeIndex) {\n const item = this._getItems()[index]\n const interval = item ? Number.parseInt(item.getAttribute('data-bs-interval'), 10) : Number.NaN\n return Number.isNaN(interval) ? this._config.interval : interval\n }\n\n _maybeEnableCycle() {\n if (!this._playing) {\n return\n }\n\n this.cycle()\n }\n\n // Turn autoplay off for good once the user interacts with the carousel\n _pauseFromInteraction() {\n this._playing = false\n this.pause()\n this._updatePlayPauseControl()\n }\n\n _togglePlayPause() {\n if (this._playing) {\n this._pauseFromInteraction()\n return\n }\n\n this._playing = true\n this.cycle()\n this._updatePlayPauseControl()\n }\n\n _updatePlayPauseControl() {\n if (!this._playPauseElement) {\n return\n }\n\n this._playPauseElement.classList.toggle(CLASS_NAME_PAUSED, !this._playing)\n\n const label = this._playPauseElement.getAttribute(\n this._playing ? 'data-bs-pause-label' : 'data-bs-play-label'\n )\n\n if (label) {\n this._playPauseElement.setAttribute('aria-label', label)\n }\n }\n\n _isFade() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _prefersReducedMotion() {\n return typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element)\n }\n\n _clearInterval() {\n if (this._interval) {\n clearTimeout(this._interval)\n this._interval = null\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n const carousel = Carousel.getOrCreateInstance(target)\n\n // Manually cycling the carousel is an explicit interaction, so stop autoplay\n carousel._pauseFromInteraction()\n\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n carousel.to(slideIndex)\n return\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next()\n return\n }\n\n carousel.prev()\n})\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_PLAY_PAUSE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n Carousel.getOrCreateInstance(target)._togglePlayPause()\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_AUTOPLAY)\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel)\n }\n})\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getElement,\n reflow\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\nconst Default = {\n parent: null,\n toggle: true\n}\n\nconst DefaultType = {\n parent: '(null|element)',\n toggle: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._triggerArray = []\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElement => foundElement === this._element)\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem)\n }\n }\n\n this._initializeChildren()\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown())\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return\n }\n\n let activeChildren = []\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\n .filter(element => element !== this._element)\n .map(element => Collapse.getOrCreateInstance(element, { toggle: false }))\n }\n\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide()\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n this._addAriaAndCollapsedClass(this._triggerArray, true)\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n this._element.style[dimension] = ''\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n this._queueCallback(complete, this._element, true)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger)\n\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false)\n }\n }\n\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n this._queueCallback(complete, this._element, true)\n }\n\n // Private\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle) // Coerce string values\n config.parent = getElement(config.parent)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE)\n\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element)\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected))\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element))\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return\n }\n\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen)\n element.setAttribute('aria-expanded', isOpen)\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {\n event.preventDefault()\n }\n\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, { toggle: false }).toggle()\n }\n})\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/floating-ui.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isRTL } from './index.js'\n\n/**\n * Breakpoints for responsive placement (matches SCSS $breakpoints)\n */\nexport const BREAKPOINTS = {\n sm: 576,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536\n}\n\n/**\n * Default placement with RTL support\n */\nexport const getDefaultPlacement = (fallback = 'bottom') => {\n if (fallback.includes('-start') || fallback.includes('-end')) {\n const [side, alignment] = fallback.split('-')\n const flippedAlignment = alignment === 'start' ? 'end' : 'start'\n return isRTL() ? `${side}-${flippedAlignment}` : fallback\n }\n\n return fallback\n}\n\n/**\n * Parse a placement string that may contain responsive prefixes\n * Example: \"bottom-start md:top-end lg:right\" returns { xs: 'bottom-start', md: 'top-end', lg: 'right' }\n *\n * @param {string} placementString - The placement string to parse\n * @param {string} defaultPlacement - The default placement to use for xs/base\n * @returns {object|null} - Object with breakpoint keys and placement values, or null if not responsive\n */\nexport const parseResponsivePlacement = (placementString, defaultPlacement = 'bottom') => {\n // Check if placement contains responsive prefixes (e.g., \"bottom-start md:top-end\")\n if (!placementString || !placementString.includes(':')) {\n return null\n }\n\n // Parse the placement string into breakpoint-keyed object\n const parts = placementString.split(/\\s+/)\n const placements = { xs: defaultPlacement } // Default fallback\n\n for (const part of parts) {\n if (part.includes(':')) {\n // Responsive placement like \"md:top-end\"\n const [breakpoint, placement] = part.split(':')\n if (BREAKPOINTS[breakpoint] !== undefined) {\n placements[breakpoint] = placement\n }\n } else {\n // Base placement (no prefix = xs/default)\n placements.xs = part\n }\n }\n\n return placements\n}\n\n/**\n * Get the active placement for the current viewport width\n *\n * @param {object} responsivePlacements - Object with breakpoint keys and placement values\n * @param {string} defaultPlacement - Fallback placement\n * @returns {string} - The active placement for current viewport\n */\nexport const getResponsivePlacement = (responsivePlacements, defaultPlacement = 'bottom') => {\n if (!responsivePlacements) {\n return defaultPlacement\n }\n\n // Get current viewport width\n const viewportWidth = window.innerWidth\n\n // Find the largest breakpoint that matches\n let activePlacement = responsivePlacements.xs || defaultPlacement\n\n // Check breakpoints in order (sm, md, lg, xl, 2xl)\n const breakpointOrder = ['sm', 'md', 'lg', 'xl', '2xl']\n\n for (const breakpoint of breakpointOrder) {\n const minWidth = BREAKPOINTS[breakpoint]\n if (viewportWidth >= minWidth && responsivePlacements[breakpoint]) {\n activePlacement = responsivePlacements[breakpoint]\n }\n }\n\n return activePlacement\n}\n\n/**\n * Create media query listeners for responsive placement changes\n *\n * @param {Function} callback - Callback to run when breakpoint changes\n * @returns {Array} - Array of { mql, handler } objects for cleanup\n */\nexport const createBreakpointListeners = callback => {\n const listeners = []\n\n for (const breakpoint of Object.keys(BREAKPOINTS)) {\n const minWidth = BREAKPOINTS[breakpoint]\n const mql = window.matchMedia(`(min-width: ${minWidth}px)`)\n\n mql.addEventListener('change', callback)\n listeners.push({ mql, handler: callback })\n }\n\n return listeners\n}\n\n/**\n * Clean up media query listeners\n *\n * @param {Array} listeners - Array of { mql, handler } objects\n */\nexport const disposeBreakpointListeners = listeners => {\n for (const { mql, handler } of listeners) {\n mql.removeEventListener('change', handler)\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap menu.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n computePosition,\n flip,\n shift,\n offset,\n autoUpdate\n} from '@floating-ui/dom'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n execute,\n getElement,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop\n} from './util/index.js'\nimport {\n parseResponsivePlacement,\n getResponsivePlacement,\n createBreakpointListeners,\n disposeBreakpointListeners\n} from './util/floating-ui.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'menu'\nconst DATA_KEY = 'bs.menu'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\nconst ENTER_KEY = 'Enter'\nconst SPACE_KEY = ' '\nconst RIGHT_MOUSE_BUTTON = 2\n\nconst SUBMENU_CLOSE_DELAY = 100\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"menu\"]:not(.disabled):not(:disabled)'\n\nconst SELECTOR_MENU = '.menu'\nconst SELECTOR_SUBMENU = '.submenu'\nconst SELECTOR_SUBMENU_TOGGLE = '.submenu > .menu-item'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.menu-item:not(.disabled):not(:disabled)'\n\nconst DEFAULT_PLACEMENT = 'bottom-start'\nconst SUBMENU_PLACEMENT = 'end-start'\n\nconst resolveLogicalPlacement = placement => {\n if (isRTL()) {\n return placement.replace(/^start(?=-|$)/, 'right').replace(/^end(?=-|$)/, 'left')\n }\n\n return placement.replace(/^start(?=-|$)/, 'left').replace(/^end(?=-|$)/, 'right')\n}\n\nconst triangleSign = (p1, p2, p3) =>\n ((p1.x - p3.x) * (p2.y - p3.y)) - ((p2.x - p3.x) * (p1.y - p3.y))\n\nconst Default = {\n autoClose: true,\n boundary: 'clippingParents',\n container: false,\n display: 'dynamic',\n offset: [0, 2],\n floatingConfig: null,\n menu: null,\n placement: DEFAULT_PLACEMENT,\n reference: 'toggle',\n strategy: 'absolute',\n submenuTrigger: 'both',\n submenuDelay: SUBMENU_CLOSE_DELAY\n}\n\nconst DefaultType = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n display: 'string',\n offset: '(array|string|function)',\n floatingConfig: '(null|object|function)',\n menu: '(null|element)',\n placement: 'string',\n reference: '(string|element|object)',\n strategy: 'string',\n submenuTrigger: 'string',\n submenuDelay: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass Menu extends BaseComponent {\n static _openInstances = new Set()\n\n constructor(element, config) {\n if (typeof computePosition === 'undefined') {\n throw new TypeError('Bootstrap\\'s menus require Floating UI (https://floating-ui.com)')\n }\n\n super(element, config)\n\n this._floatingCleanup = null\n this._mediaQueryListeners = []\n this._responsivePlacements = null\n this._parent = this._element.parentNode\n this._isSubmenu = this._parent.classList?.contains('submenu')\n this._openSubmenus = new Map()\n this._submenuCloseTimeouts = new Map()\n this._hoverIntentData = null\n\n this._menu = this._config.menu || this._findMenu()\n\n this._menuOriginalParent = this._menu?.parentNode\n\n this._parseResponsivePlacements()\n this._setupSubmenuListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._moveMenuToContainer()\n this._createFloating()\n\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of document.body.children) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n this._element.focus({ focusVisible: false })\n this._element.setAttribute('aria-expanded', 'true')\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.add(CLASS_NAME_SHOW)\n }\n\n Menu._openInstances.add(this)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n this._disposeMediaQueryListeners()\n this._closeAllSubmenus()\n this._clearAllSubmenuTimeouts()\n Menu._openInstances.delete(this)\n super.dispose()\n }\n\n update() {\n if (this._floatingCleanup) {\n this._updateFloatingPosition()\n }\n }\n\n // Private\n _findMenu() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.prev(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.findOne(SELECTOR_MENU, this._parent)\n }\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._closeAllSubmenus()\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.remove(CLASS_NAME_SHOW)\n }\n\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'placement')\n Manipulator.removeDataAttribute(this._menu, 'display')\n Menu._openInstances.delete(this)\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = super._getConfig(config)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createFloating() {\n if (this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'display', 'static')\n return\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n this._updateFloatingPosition(referenceElement)\n\n this._floatingCleanup = autoUpdate(\n referenceElement,\n this._menu,\n () => this._updateFloatingPosition(referenceElement)\n )\n }\n\n async _updateFloatingPosition(referenceElement = null) {\n if (!this._menu) {\n return\n }\n\n if (!referenceElement) {\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n } else {\n referenceElement = this._element\n }\n }\n\n const placement = this._getPlacement()\n const middleware = this._getFloatingMiddleware()\n const floatingConfig = this._getFloatingConfig(placement, middleware)\n\n await this._applyFloatingPosition(\n referenceElement,\n this._menu,\n floatingConfig.placement,\n floatingConfig.middleware,\n floatingConfig.strategy\n )\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement() {\n const placement = this._responsivePlacements ?\n getResponsivePlacement(this._responsivePlacements, DEFAULT_PLACEMENT) :\n this._config.placement\n\n return resolveLogicalPlacement(placement)\n }\n\n _parseResponsivePlacements() {\n this._responsivePlacements = parseResponsivePlacement(this._config.placement, DEFAULT_PLACEMENT)\n\n if (this._responsivePlacements) {\n this._setupMediaQueryListeners()\n }\n }\n\n _setupMediaQueryListeners() {\n this._disposeMediaQueryListeners()\n this._mediaQueryListeners = createBreakpointListeners(() => {\n if (this._isShown()) {\n this._updateFloatingPosition()\n }\n })\n }\n\n _disposeMediaQueryListeners() {\n disposeBreakpointListeners(this._mediaQueryListeners)\n this._mediaQueryListeners = []\n }\n\n _getOffset() {\n const { offset: offsetConfig } = this._config\n\n if (typeof offsetConfig === 'string') {\n return offsetConfig.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offsetConfig === 'function') {\n return ({ placement, rects }) => {\n const result = offsetConfig({ placement, reference: rects.reference, floating: rects.floating }, this._element)\n return result\n }\n }\n\n return offsetConfig\n }\n\n _getFloatingMiddleware() {\n const offsetValue = this._getOffset()\n\n const middleware = [\n offset(\n typeof offsetValue === 'function' ?\n offsetValue :\n { mainAxis: offsetValue[1] || 0, crossAxis: offsetValue[0] || 0 }\n ),\n flip({\n fallbackPlacements: this._getFallbackPlacements()\n }),\n shift({\n boundary: this._config.boundary === 'clippingParents' ? 'clippingAncestors' : this._config.boundary\n })\n ]\n\n return middleware\n }\n\n _getFallbackPlacements() {\n const placement = this._getPlacement()\n\n const fallbackMap = {\n bottom: ['top', 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\n 'bottom-start': ['top-start', 'bottom-end', 'top-end'],\n 'bottom-end': ['top-end', 'bottom-start', 'top-start'],\n top: ['bottom', 'top-start', 'top-end', 'bottom-start', 'bottom-end'],\n 'top-start': ['bottom-start', 'top-end', 'bottom-end'],\n 'top-end': ['bottom-end', 'top-start', 'bottom-start'],\n right: ['left', 'right-start', 'right-end', 'left-start', 'left-end'],\n 'right-start': ['left-start', 'right-end', 'left-end', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'right-start', 'left-start', 'top-end', 'bottom-end'],\n left: ['right', 'left-start', 'left-end', 'right-start', 'right-end'],\n 'left-start': ['right-start', 'left-end', 'right-end', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'left-start', 'right-start', 'top-end', 'bottom-end']\n }\n\n return fallbackMap[placement] || ['top', 'bottom', 'right', 'left']\n }\n\n _getFloatingConfig(placement, middleware) {\n const defaultConfig = {\n placement,\n middleware,\n strategy: this._config.strategy\n }\n\n return {\n ...defaultConfig,\n ...execute(this._config.floatingConfig, [undefined, defaultConfig])\n }\n }\n\n _disposeFloating() {\n if (this._floatingCleanup) {\n this._floatingCleanup()\n this._floatingCleanup = null\n }\n }\n\n _getContainer() {\n const { container } = this._config\n if (container === false) {\n return null\n }\n\n return container === true ? document.body : getElement(container)\n }\n\n _moveMenuToContainer() {\n const container = this._getContainer()\n if (!container || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== container) {\n container.append(this._menu)\n }\n }\n\n _restoreMenuToOriginalParent() {\n if (!this._menuOriginalParent || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== this._menuOriginalParent) {\n this._menuOriginalParent.append(this._menu)\n }\n }\n\n async _applyFloatingPosition(reference, floating, placement, middleware, strategy = 'absolute') {\n if (!floating.isConnected) {\n return null\n }\n\n const { x, y, placement: finalPlacement } = await computePosition(\n reference,\n floating,\n { placement, middleware, strategy }\n )\n\n if (!floating.isConnected) {\n return null\n }\n\n Object.assign(floating.style, {\n position: strategy,\n left: `${x}px`,\n top: `${y}px`,\n margin: '0'\n })\n\n Manipulator.setDataAttribute(floating, 'placement', finalPlacement)\n return finalPlacement\n }\n\n // -------------------------------------------------------------------------\n // Submenu handling\n // -------------------------------------------------------------------------\n\n _setupSubmenuListeners() {\n if (this._config.submenuTrigger === 'hover' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'mouseenter', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerEnter(event)\n })\n\n EventHandler.on(this._menu, 'mouseleave', SELECTOR_SUBMENU, event => {\n this._onSubmenuLeave(event)\n })\n\n EventHandler.on(this._menu, 'mousemove', event => {\n this._trackMousePosition(event)\n })\n }\n\n if (this._config.submenuTrigger === 'click' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'click', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerClick(event)\n })\n }\n }\n\n _onSubmenuTriggerEnter(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n this._cancelSubmenuCloseTimeout(submenu)\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n\n _onSubmenuLeave(event) {\n const submenuWrapper = event.target.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu || !this._openSubmenus.has(submenu)) {\n return\n }\n\n if (this._isMovingTowardSubmenu(event, submenu)) {\n return\n }\n\n this._scheduleSubmenuClose(submenu, submenuWrapper)\n }\n\n _onSubmenuTriggerClick(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n if (this._openSubmenus.has(submenu)) {\n this._closeSubmenu(submenu, submenuWrapper)\n } else {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n }\n\n _openSubmenu(trigger, submenu, submenuWrapper) {\n if (this._openSubmenus.has(submenu)) {\n return\n }\n\n trigger.setAttribute('aria-expanded', 'true')\n trigger.setAttribute('aria-haspopup', 'true')\n\n submenu.classList.add(CLASS_NAME_SHOW)\n submenuWrapper.classList.add(CLASS_NAME_SHOW)\n\n const cleanup = this._createSubmenuFloating(trigger, submenu, submenuWrapper)\n this._openSubmenus.set(submenu, cleanup)\n\n EventHandler.on(submenu, 'mouseenter', () => {\n this._cancelSubmenuCloseTimeout(submenu)\n })\n }\n\n _closeSubmenu(submenu, submenuWrapper) {\n if (!this._openSubmenus.has(submenu)) {\n return\n }\n\n const nestedSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, submenu)\n for (const nested of nestedSubmenus) {\n const nestedWrapper = nested.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(nested, nestedWrapper)\n }\n\n const trigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, submenuWrapper)\n\n const cleanup = this._openSubmenus.get(submenu)\n if (cleanup) {\n cleanup()\n }\n\n this._openSubmenus.delete(submenu)\n EventHandler.off(submenu, 'mouseenter')\n\n if (trigger) {\n trigger.setAttribute('aria-expanded', 'false')\n }\n\n submenu.classList.remove(CLASS_NAME_SHOW)\n submenuWrapper.classList.remove(CLASS_NAME_SHOW)\n\n submenu.style.position = ''\n submenu.style.left = ''\n submenu.style.top = ''\n submenu.style.margin = ''\n }\n\n _closeAllSubmenus() {\n for (const [submenu] of this._openSubmenus) {\n const submenuWrapper = submenu.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(submenu, submenuWrapper)\n }\n }\n\n _closeSiblingSubmenus(currentSubmenuWrapper) {\n const parent = currentSubmenuWrapper.parentNode\n const siblingSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} > ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, parent)\n\n for (const siblingMenu of siblingSubmenus) {\n const siblingWrapper = siblingMenu.closest(SELECTOR_SUBMENU)\n if (siblingWrapper !== currentSubmenuWrapper) {\n this._closeSubmenu(siblingMenu, siblingWrapper)\n }\n }\n }\n\n _createSubmenuFloating(trigger, submenu, submenuWrapper) {\n const referenceElement = submenuWrapper\n const placement = resolveLogicalPlacement(SUBMENU_PLACEMENT)\n const middleware = [\n offset({ mainAxis: 0, crossAxis: -4 }),\n flip({\n fallbackPlacements: [\n resolveLogicalPlacement('start-start'),\n resolveLogicalPlacement('end-end'),\n resolveLogicalPlacement('start-end')\n ]\n }),\n shift({ padding: 8 })\n ]\n\n const updatePosition = () => this._applyFloatingPosition(referenceElement, submenu, placement, middleware)\n\n updatePosition()\n return autoUpdate(referenceElement, submenu, updatePosition)\n }\n\n _scheduleSubmenuClose(submenu, submenuWrapper) {\n this._cancelSubmenuCloseTimeout(submenu)\n\n const timeoutId = setTimeout(() => {\n this._closeSubmenu(submenu, submenuWrapper)\n this._submenuCloseTimeouts.delete(submenu)\n }, this._config.submenuDelay)\n\n this._submenuCloseTimeouts.set(submenu, timeoutId)\n }\n\n _cancelSubmenuCloseTimeout(submenu) {\n const timeoutId = this._submenuCloseTimeouts.get(submenu)\n if (timeoutId) {\n clearTimeout(timeoutId)\n this._submenuCloseTimeouts.delete(submenu)\n }\n }\n\n _clearAllSubmenuTimeouts() {\n for (const timeoutId of this._submenuCloseTimeouts.values()) {\n clearTimeout(timeoutId)\n }\n\n this._submenuCloseTimeouts.clear()\n }\n\n // -------------------------------------------------------------------------\n // Hover intent / Safe triangle\n // -------------------------------------------------------------------------\n\n _trackMousePosition(event) {\n this._hoverIntentData = {\n x: event.clientX,\n y: event.clientY,\n timestamp: Date.now()\n }\n }\n\n _isMovingTowardSubmenu(event, submenu) {\n if (!this._hoverIntentData) {\n return false\n }\n\n const submenuRect = submenu.getBoundingClientRect()\n const currentPos = { x: event.clientX, y: event.clientY }\n const lastPos = { x: this._hoverIntentData.x, y: this._hoverIntentData.y }\n\n const isRtl = isRTL()\n const targetX = isRtl ? submenuRect.right : submenuRect.left\n const topCorner = { x: targetX, y: submenuRect.top }\n const bottomCorner = { x: targetX, y: submenuRect.bottom }\n\n return this._pointInTriangle(currentPos, lastPos, topCorner, bottomCorner)\n }\n\n _pointInTriangle(point, v1, v2, v3) {\n const d1 = triangleSign(point, v1, v2)\n const d2 = triangleSign(point, v2, v3)\n const d3 = triangleSign(point, v3, v1)\n\n const hasNeg = (d1 < 0) || (d2 < 0) || (d3 < 0)\n const hasPos = (d1 > 0) || (d2 > 0) || (d3 > 0)\n\n return !(hasNeg && hasPos)\n }\n\n // -------------------------------------------------------------------------\n // Keyboard navigation\n // -------------------------------------------------------------------------\n\n _selectMenuItem({ key, target }) {\n const currentMenu = target.closest(SELECTOR_MENU) || this._menu\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (!items.length) {\n return\n }\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n _handleSubmenuKeydown(event) {\n const { key, target } = event\n const isRtl = isRTL()\n\n const enterKey = isRtl ? ARROW_LEFT_KEY : ARROW_RIGHT_KEY\n const exitKey = isRtl ? ARROW_RIGHT_KEY : ARROW_LEFT_KEY\n\n const submenuWrapper = target.closest(SELECTOR_SUBMENU)\n const isSubmenuTrigger = submenuWrapper && target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === enterKey && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === exitKey) {\n const currentMenu = target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper) {\n event.preventDefault()\n event.stopPropagation()\n\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n this._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return true\n }\n }\n\n if (key === HOME_KEY || key === END_KEY) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = target.closest(SELECTOR_MENU)\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (items.length) {\n const targetItem = key === HOME_KEY ? items[0] : items.at(-1)\n targetItem.focus()\n }\n\n return true\n }\n\n return false\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n for (const instance of Menu._openInstances) {\n if (instance._config.autoClose === false) {\n continue\n }\n\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(instance._menu)\n if (\n composedPath.includes(instance._element) ||\n (instance._config.autoClose === 'inside' && !isMenuTarget) ||\n (instance._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n if (instance._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n const relatedTarget = { relatedTarget: instance._element }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n instance._completeHide(relatedTarget)\n }\n }\n\n static dataApiKeydownHandler(event) {\n const isInput = /input|textarea/i.test(event.target.tagName)\n const isEscapeEvent = event.key === ESCAPE_KEY\n const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)\n const isLeftOrRightEvent = [ARROW_LEFT_KEY, ARROW_RIGHT_KEY].includes(event.key)\n const isHomeOrEndEvent = [HOME_KEY, END_KEY].includes(event.key)\n const isEnterOrSpaceEvent = [ENTER_KEY, SPACE_KEY].includes(event.key)\n\n const isSubmenuTrigger = event.target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if (!isUpOrDownEvent && !isEscapeEvent && !isLeftOrRightEvent && !isHomeOrEndEvent &&\n !(isEnterOrSpaceEvent && isSubmenuTrigger)) {\n return\n }\n\n if (isInput && !isEscapeEvent) {\n return\n }\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\n this :\n (SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.next(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\n\n if (!getToggleButton) {\n return\n }\n\n const instance = Menu.getOrCreateInstance(getToggleButton)\n\n if ((isLeftOrRightEvent || isHomeOrEndEvent || (isEnterOrSpaceEvent && isSubmenuTrigger)) && instance._handleSubmenuKeydown(event)) {\n return\n }\n\n if (isUpOrDownEvent) {\n event.preventDefault()\n event.stopPropagation()\n instance.show()\n instance._selectMenuItem(event)\n return\n }\n\n if (isEscapeEvent && instance._isShown()) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = event.target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper && instance._openSubmenus.size > 0) {\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n instance._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return\n }\n\n instance.hide()\n getToggleButton.focus()\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Menu.getOrCreateInstance(this).toggle()\n})\n\nexport default Menu\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap combobox.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Menu from './menu.js'\nimport { getNextActiveElement, isDisabled, isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'combobox'\nconst DATA_KEY = 'bs.combobox'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\nconst ENTER_KEY = 'Enter'\nconst SPACE_KEY = ' '\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SELECTED = 'selected'\nconst CLASS_NAME_PLACEHOLDER = 'combobox-placeholder'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"combobox\"]'\nconst SELECTOR_MENU = '.menu'\nconst SELECTOR_MENU_ITEM = '.menu-item[data-bs-value]'\nconst SELECTOR_VISIBLE_ITEMS = '.menu-item[data-bs-value]:not(.disabled):not(:disabled)'\nconst SELECTOR_VALUE = '.combobox-value'\nconst SELECTOR_SEARCH_INPUT = '.combobox-search-input'\nconst SELECTOR_NO_RESULTS = '.combobox-no-results'\n\nconst Default = {\n boundary: 'clippingParents',\n multiple: false,\n name: null,\n offset: [0, 2],\n placeholder: '',\n placement: 'bottom-start',\n search: false,\n searchNormalize: false\n}\n\nconst DefaultType = {\n boundary: '(string|element)',\n multiple: 'boolean',\n name: '(string|null)',\n offset: '(array|string|function)',\n placeholder: 'string',\n placement: 'string',\n search: 'boolean',\n searchNormalize: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Combobox extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._toggle = this._element\n this._menu = SelectorEngine.next(this._toggle, SELECTOR_MENU)[0]\n this._valueDisplay = SelectorEngine.findOne(SELECTOR_VALUE, this._toggle)\n this._searchInput = SelectorEngine.findOne(SELECTOR_SEARCH_INPUT, this._menu)\n this._noResults = SelectorEngine.findOne(SELECTOR_NO_RESULTS, this._menu)\n this._hiddenInput = null\n this._menuInstance = null\n\n this._createHiddenInput()\n this._createMenuInstance()\n this._syncInitialSelection()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._toggle) || this._isShown()) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._toggle, EVENT_SHOW)\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._menuInstance.show()\n\n if (this._searchInput) {\n this._searchInput.value = ''\n this._filterItems('')\n requestAnimationFrame(() => this._searchInput.focus())\n }\n\n EventHandler.trigger(this._toggle, EVENT_SHOWN)\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._toggle, EVENT_HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._menuInstance.hide()\n EventHandler.trigger(this._toggle, EVENT_HIDDEN)\n }\n\n dispose() {\n if (this._menuInstance) {\n this._menuInstance.dispose()\n this._menuInstance = null\n }\n\n if (this._hiddenInput) {\n this._hiddenInput.remove()\n this._hiddenInput = null\n }\n\n EventHandler.off(this._menu, EVENT_KEY)\n EventHandler.off(this._toggle, EVENT_KEY)\n\n super.dispose()\n }\n\n // Private\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _createHiddenInput() {\n const { name } = this._config\n if (!name) {\n return\n }\n\n this._hiddenInput = document.createElement('input')\n this._hiddenInput.type = 'hidden'\n this._hiddenInput.name = name\n this._hiddenInput.value = ''\n this._toggle.parentNode.insertBefore(this._hiddenInput, this._toggle)\n }\n\n _createMenuInstance() {\n this._menuInstance = new Menu(this._toggle, {\n menu: this._menu,\n autoClose: this._config.multiple ? 'outside' : true,\n boundary: this._config.boundary,\n offset: this._config.offset,\n placement: this._config.placement\n })\n }\n\n _syncInitialSelection() {\n const selectedItems = this._getSelectedItems()\n if (selectedItems.length > 0) {\n this._updateToggleText()\n this._updateHiddenInput()\n } else {\n this._showPlaceholder()\n }\n }\n\n _addEventListeners() {\n EventHandler.on(this._menu, 'click', SELECTOR_MENU_ITEM, event => {\n const item = event.target.closest(SELECTOR_MENU_ITEM)\n if (!item || isDisabled(item)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n this._selectItem(item)\n })\n\n EventHandler.on(this._toggle, 'keydown', event => {\n this._handleToggleKeydown(event)\n })\n\n EventHandler.on(this._menu, 'keydown', event => {\n this._handleMenuKeydown(event)\n })\n\n if (this._searchInput) {\n EventHandler.on(this._searchInput, 'input', () => {\n this._filterItems(this._searchInput.value)\n })\n\n EventHandler.on(this._searchInput, 'keydown', event => {\n if (event.key === ARROW_DOWN_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n items[0].focus()\n }\n }\n\n if (event.key === ESCAPE_KEY) {\n this.hide()\n this._toggle.focus()\n }\n })\n }\n }\n\n _selectItem(item) {\n if (this._config.multiple) {\n item.classList.toggle(CLASS_NAME_SELECTED)\n item.setAttribute('aria-selected', item.classList.contains(CLASS_NAME_SELECTED))\n } else {\n const previouslySelected = SelectorEngine.find(`.${CLASS_NAME_SELECTED}`, this._menu)\n for (const prev of previouslySelected) {\n prev.classList.remove(CLASS_NAME_SELECTED)\n prev.setAttribute('aria-selected', 'false')\n }\n\n item.classList.add(CLASS_NAME_SELECTED)\n item.setAttribute('aria-selected', 'true')\n }\n\n this._updateToggleText()\n this._updateHiddenInput()\n\n const value = this._config.multiple ?\n this._getSelectedItems().map(el => el.dataset.bsValue) :\n item.dataset.bsValue\n\n EventHandler.trigger(this._toggle, EVENT_CHANGE, {\n value,\n item\n })\n\n if (!this._config.multiple) {\n this.hide()\n this._toggle.focus()\n }\n }\n\n _updateToggleText() {\n const selectedItems = this._getSelectedItems()\n\n if (selectedItems.length === 0) {\n this._showPlaceholder()\n return\n }\n\n this._valueDisplay.classList.remove(CLASS_NAME_PLACEHOLDER)\n\n if (this._config.multiple && selectedItems.length > 1) {\n this._valueDisplay.textContent = `${selectedItems.length} selected`\n } else {\n const item = selectedItems[0]\n const label = SelectorEngine.findOne('.menu-item-content > span:first-child', item)\n this._valueDisplay.textContent = label ? label.textContent : item.textContent.trim()\n }\n }\n\n _showPlaceholder() {\n const { placeholder } = this._config\n if (placeholder) {\n this._valueDisplay.textContent = placeholder\n this._valueDisplay.classList.add(CLASS_NAME_PLACEHOLDER)\n }\n }\n\n _updateHiddenInput() {\n if (!this._hiddenInput) {\n return\n }\n\n const selectedItems = this._getSelectedItems()\n const values = selectedItems.map(el => el.dataset.bsValue)\n this._hiddenInput.value = this._config.multiple ? values.join(',') : (values[0] || '')\n }\n\n _getSelectedItems() {\n return SelectorEngine.find(`.${CLASS_NAME_SELECTED}`, this._menu)\n }\n\n _getVisibleItems() {\n return SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu)\n .filter(item => isVisible(item))\n }\n\n _filterItems(query) {\n const normalizedQuery = this._normalizeText(query.toLowerCase().trim())\n const items = SelectorEngine.find(SELECTOR_MENU_ITEM, this._menu)\n let visibleCount = 0\n\n for (const item of items) {\n const text = this._normalizeText(item.textContent.toLowerCase().trim())\n const matches = !normalizedQuery || text.includes(normalizedQuery)\n item.style.display = matches ? '' : 'none'\n if (matches) {\n visibleCount++\n }\n }\n\n if (this._noResults) {\n this._noResults.classList.toggle('d-none', visibleCount > 0)\n }\n }\n\n _normalizeText(text) {\n if (this._config.searchNormalize) {\n return text.normalize('NFD').replace(/[\\u0300-\\u036F]/g, '')\n }\n\n return text\n }\n\n _handleToggleKeydown(event) {\n const { key } = event\n\n if (key === ARROW_DOWN_KEY || key === ARROW_UP_KEY) {\n event.preventDefault()\n if (!this._isShown()) {\n this.show()\n }\n\n const items = this._getVisibleItems()\n if (items.length > 0) {\n const target = key === ARROW_DOWN_KEY ? items[0] : items.at(-1)\n target.focus()\n }\n\n return\n }\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && !this._isShown()) {\n event.preventDefault()\n this.show()\n }\n }\n\n _handleMenuKeydown(event) {\n const { key, target } = event\n\n if (key === ESCAPE_KEY) {\n event.preventDefault()\n event.stopPropagation()\n this.hide()\n this._toggle.focus()\n return\n }\n\n if (key === TAB_KEY) {\n this.hide()\n return\n }\n\n const isInput = target.matches('input')\n\n if (key === ARROW_DOWN_KEY || key === ARROW_UP_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n return\n }\n\n if (key === HOME_KEY || key === END_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n const targetItem = key === HOME_KEY ? items[0] : items.at(-1)\n targetItem.focus()\n }\n\n return\n }\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && !isInput) {\n event.preventDefault()\n const item = target.closest(SELECTOR_MENU_ITEM)\n if (item && !isDisabled(item)) {\n this._selectItem(item)\n }\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Combobox.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Combobox.getOrCreateInstance(this).toggle()\n})\n\nEventHandler.on(document, 'DOMContentLoaded', () => {\n for (const toggle of SelectorEngine.find(SELECTOR_DATA_TOGGLE)) {\n Combobox.getOrCreateInstance(toggle)\n }\n})\n\nexport default Combobox\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap datepicker.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { Calendar } from 'vanilla-calendar-pro'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { isDisabled } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'datepicker'\nconst DATA_KEY = 'bs.datepicker'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUSIN_DATA_API = `focusin${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"datepicker\"]'\n\nconst HIDE_DELAY = 100 // ms delay before hiding after selection\n\nconst Default = {\n datepickerTheme: null, // 'light', 'dark', 'auto' - explicit theme for datepicker popover only\n dateMin: null,\n dateMax: null,\n dateFormat: null, // Intl.DateTimeFormat options, or function(date, locale) => string\n displayElement: null, // Element to show formatted date (defaults to element for buttons)\n displayMonthsCount: 1, // Number of months to display side-by-side\n firstWeekday: 1, // Monday\n inline: false, // Render calendar inline (no popup)\n locale: 'default',\n positionElement: null, // Element to position calendar relative to (defaults to input)\n selectedDates: [],\n selectionMode: 'single', // 'single', 'multiple', 'multiple-ranged'\n placement: 'left', // 'left', 'center', 'right', 'auto'\n vcpOptions: {} // Pass-through for any VCP option\n}\n\nconst DefaultType = {\n datepickerTheme: '(null|string)',\n dateMin: '(null|string|number|object)',\n dateMax: '(null|string|number|object)',\n dateFormat: '(null|object|function)',\n displayElement: '(null|string|element|boolean)',\n displayMonthsCount: 'number',\n firstWeekday: 'number',\n inline: 'boolean',\n locale: 'string',\n positionElement: '(null|string|element)',\n selectedDates: 'array',\n selectionMode: 'string',\n placement: 'string',\n vcpOptions: 'object'\n}\n\n/**\n * Class definition\n */\n\nclass Datepicker extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._calendar = null\n this._isShown = false\n\n this._initCalendar()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n return this._isShown ? this.hide() : this.show()\n }\n\n show() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n if (!this._calendar || isDisabled(this._element) || this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._calendar.show()\n this._isShown = true\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n hide() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n if (!this._calendar || !this._isShown) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._calendar.hide()\n this._isShown = false\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n dispose() {\n if (this._themeObserver) {\n this._themeObserver.disconnect()\n this._themeObserver = null\n }\n\n if (this._calendar) {\n this._calendar.destroy()\n }\n\n this._calendar = null\n super.dispose()\n }\n\n getSelectedDates() {\n const dates = this._calendar?.context?.selectedDates\n return dates ? [...dates] : []\n }\n\n setSelectedDates(dates) {\n if (this._calendar) {\n this._calendar.set({ selectedDates: dates })\n }\n }\n\n // Private\n _initCalendar() {\n this._isInput = this._element.tagName === 'INPUT'\n this._isInline = this._config.inline\n\n // For inline mode, look for a hidden input child to bind to\n if (this._isInline && !this._isInput) {\n this._boundInput = this._element.querySelector('input[type=\"hidden\"], input[name]')\n }\n\n this._positionElement = this._resolvePositionElement()\n this._displayElement = this._resolveDisplayElement()\n\n const calendarOptions = this._buildCalendarOptions()\n\n // Create calendar on the position element (for correct popup positioning)\n // but value updates still go to this._element (the input)\n this._calendar = new Calendar(this._positionElement, calendarOptions)\n this._calendar.init()\n\n // Watch for theme changes on ancestor elements (for live theme switching)\n this._setupThemeObserver()\n\n // Set initial value if input has a value\n if (this._isInput && this._element.value) {\n this._parseInputValue()\n }\n\n // Populate input/display with preselected dates\n this._updateDisplayWithSelectedDates()\n }\n\n _updateDisplayWithSelectedDates() {\n const { selectedDates } = this._config\n if (!selectedDates || selectedDates.length === 0) {\n return\n }\n\n const formattedDate = this._formatDateForInput(selectedDates)\n\n if (this._isInput) {\n this._element.value = formattedDate\n }\n\n if (this._boundInput) {\n this._boundInput.value = selectedDates.join(',')\n }\n\n if (this._displayElement) {\n this._displayElement.textContent = formattedDate\n }\n }\n\n _resolvePositionElement() {\n let { positionElement } = this._config\n\n if (typeof positionElement === 'string') {\n positionElement = document.querySelector(positionElement)\n }\n\n // Use input's parent if in form-adorn\n if (!positionElement && this._isInput && !this._isInline) {\n const parent = this._element.closest('.form-adorn')\n if (parent) {\n positionElement = parent\n }\n }\n\n return positionElement || this._element\n }\n\n _resolveDisplayElement() {\n const { displayElement } = this._config\n\n if (typeof displayElement === 'string') {\n return document.querySelector(displayElement)\n }\n\n // For buttons/non-inputs (not inline), look for a [data-bs-datepicker-display] child\n if (displayElement === true || (displayElement === null && !this._isInput && !this._isInline)) {\n const displayChild = this._element.querySelector('[data-bs-datepicker-display]')\n return displayChild || this._element\n }\n\n return displayElement\n }\n\n _getThemeAncestor() {\n return this._element.closest('[data-bs-theme]')\n }\n\n _getEffectiveTheme() {\n // Priority: explicit datepickerTheme config > inherited from ancestor > none\n const { datepickerTheme } = this._config\n if (datepickerTheme) {\n return datepickerTheme\n }\n\n const ancestor = this._getThemeAncestor()\n return ancestor?.getAttribute('data-bs-theme') || null\n }\n\n _syncThemeAttribute(element) {\n if (!element) {\n return\n }\n\n const theme = this._getEffectiveTheme()\n\n if (theme) {\n // Copy theme to popover (needed because VCP appends to body, breaking CSS inheritance)\n element.setAttribute('data-bs-theme', theme)\n } else {\n // No theme - remove attribute to allow natural inheritance\n element.removeAttribute('data-bs-theme')\n }\n }\n\n _setupThemeObserver() {\n // Watch for theme changes on ancestor elements\n const ancestor = this._getThemeAncestor()\n if (!ancestor || this._config.datepickerTheme) {\n // No ancestor to watch, or explicit datepickerTheme overrides\n return\n }\n\n this._themeObserver = new MutationObserver(() => {\n this._syncThemeAttribute(this._calendar?.context?.mainElement)\n })\n\n this._themeObserver.observe(ancestor, {\n attributes: true,\n attributeFilter: ['data-bs-theme']\n })\n }\n\n _buildCalendarOptions() {\n // Get theme for VCP - use 'system' for auto-detection if no explicit theme\n const theme = this._getEffectiveTheme()\n // VCP uses 'system' for auto, Bootstrap uses 'auto'\n const vcpTheme = !theme || theme === 'auto' ? 'system' : theme\n\n const calendarOptions = {\n ...this._config.vcpOptions,\n inputMode: !this._isInline,\n positionToInput: this._config.placement,\n firstWeekday: this._config.firstWeekday,\n locale: this._config.locale,\n selectionDatesMode: this._config.selectionMode,\n selectedDates: this._config.selectedDates,\n displayMonthsCount: this._config.displayMonthsCount,\n type: this._config.displayMonthsCount > 1 ? 'multiple' : 'default',\n selectedTheme: vcpTheme,\n themeAttrDetect: '[data-bs-theme]',\n onClickDate: (self, event) => this._handleDateClick(self, event),\n onInit: self => {\n this._syncThemeAttribute(self.context.mainElement)\n },\n onShow: () => {\n this._isShown = true\n this._syncThemeAttribute(this._calendar.context.mainElement)\n },\n onHide: () => {\n this._isShown = false\n }\n }\n\n // Navigate to the month of the first selected date\n if (this._config.selectedDates.length > 0) {\n const firstDate = this._parseDate(this._config.selectedDates[0])\n calendarOptions.selectedMonth = firstDate.getMonth()\n calendarOptions.selectedYear = firstDate.getFullYear()\n }\n\n if (this._config.dateMin) {\n calendarOptions.dateMin = this._config.dateMin\n }\n\n if (this._config.dateMax) {\n calendarOptions.dateMax = this._config.dateMax\n }\n\n return calendarOptions\n }\n\n _handleDateClick(self, event) {\n const selectedDates = [...self.context.selectedDates]\n\n if (selectedDates.length > 0) {\n const formattedDate = this._formatDateForInput(selectedDates)\n\n if (this._isInput) {\n this._element.value = formattedDate\n }\n\n if (this._boundInput) {\n this._boundInput.value = selectedDates.join(',')\n }\n\n if (this._displayElement) {\n this._displayElement.textContent = formattedDate\n }\n }\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n dates: selectedDates,\n event\n })\n\n this._maybeHideAfterSelection(selectedDates)\n }\n\n _maybeHideAfterSelection(selectedDates) {\n if (this._isInline) {\n return\n }\n\n const shouldHide =\n (this._config.selectionMode === 'single' && selectedDates.length > 0) ||\n (this._config.selectionMode === 'multiple-ranged' && selectedDates.length >= 2)\n\n if (shouldHide) {\n setTimeout(() => this.hide(), HIDE_DELAY)\n }\n }\n\n _parseDate(dateStr) {\n const [year, month, day] = dateStr.split('-')\n return new Date(year, month - 1, day)\n }\n\n _formatDate(dateStr) {\n const date = this._parseDate(dateStr)\n const locale = this._config.locale === 'default' ? undefined : this._config.locale\n const { dateFormat } = this._config\n\n // Custom function formatter\n if (typeof dateFormat === 'function') {\n return dateFormat(date, locale)\n }\n\n // Intl.DateTimeFormat options object\n if (dateFormat && typeof dateFormat === 'object') {\n return new Intl.DateTimeFormat(locale, dateFormat).format(date)\n }\n\n // Default: locale-aware formatting\n return date.toLocaleDateString(locale)\n }\n\n _formatDateForInput(dates) {\n if (dates.length === 0) {\n return ''\n }\n\n if (dates.length === 1) {\n return this._formatDate(dates[0])\n }\n\n // For date ranges, use en-dash; for multiple dates, use comma\n const separator = this._config.selectionMode === 'multiple-ranged' ? ' – ' : ', '\n return dates.map(d => this._formatDate(d)).join(separator)\n }\n\n _parseInputValue() {\n // Try to parse the input value as a date\n const value = this._element.value.trim()\n if (!value) {\n return\n }\n\n const date = new Date(value)\n if (!Number.isNaN(date.getTime())) {\n const year = date.getFullYear()\n const month = String(date.getMonth() + 1).padStart(2, '0')\n const day = String(date.getDate()).padStart(2, '0')\n const formatted = `${year}-${month}-${day}`\n this._calendar.set({ selectedDates: [formatted] })\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // Only handle if not an input (inputs use focus)\n // Skip inline datepickers (they're always visible)\n if (this.tagName === 'INPUT' || this.dataset.bsInline === 'true') {\n return\n }\n\n event.preventDefault()\n Datepicker.getOrCreateInstance(this).toggle()\n})\n\nEventHandler.on(document, EVENT_FOCUSIN_DATA_API, SELECTOR_DATA_TOGGLE, function () {\n // Handle focus for input elements\n if (this.tagName !== 'INPUT') {\n return\n }\n\n Datepicker.getOrCreateInstance(this).show()\n})\n\n// Auto-initialize inline datepickers on DOMContentLoaded\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of document.querySelectorAll(`${SELECTOR_DATA_TOGGLE}[data-bs-inline=\"true\"]`)) {\n Datepicker.getOrCreateInstance(element)\n }\n})\n\nexport default Datepicker\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dialog-base.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst CLASS_NAME_OPEN = 'dialog-open'\n\n/**\n * Class definition\n *\n * Shared base class for Dialog and Drawer components that use\n * the native <dialog> element. Provides common behavior for:\n * - Show/hide/toggle lifecycle with events\n * - Opening/closing via showModal()/show()/close()\n * - Escape key handling (modal and non-modal)\n * - Backdrop click handling\n * - Static backdrop transition (\"bounce\")\n * - Body scroll prevention\n * - Transition coordination\n * - Child component cleanup (tooltips, popovers, toasts)\n */\n\nclass DialogBase extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._openedAsModal = false\n this._addDialogListeners()\n }\n\n // Getters — subclasses override NAME with their own component name.\n static get NAME() {\n return 'dialogbase'\n }\n\n // Public — shared lifecycle methods\n\n toggle(relatedTarget) {\n return this._element.open ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._element.open || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('show'),\n { relatedTarget }\n )\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isTransitioning = true\n this._onBeforeShow()\n\n const { modal, preventBodyScroll } = this._getShowOptions()\n this._showElement({ modal, preventBodyScroll })\n\n this._queueCallback(() => {\n this._isTransitioning = false\n EventHandler.trigger(\n this._element,\n this.constructor.eventName('shown'),\n { relatedTarget }\n )\n }, this._element, this._isAnimated())\n }\n\n hide() {\n if (!this._element.open || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('hide')\n )\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isTransitioning = true\n this._hideElement()\n\n this._queueCallback(() => {\n // For subclasses that defer close() until the exit transition ends\n // (so the dialog stays in the top layer with its ::backdrop), close()\n // happens here instead of in _hideElement().\n if (this._element.open) {\n this._closeAndCleanup()\n }\n\n this._element.classList.remove('hiding')\n this._onAfterHide()\n this._isTransitioning = false\n EventHandler.trigger(\n this._element,\n this.constructor.eventName('hidden')\n )\n }, this._element, this._isAnimated())\n }\n\n // Protected — hooks for subclasses to override\n\n _getShowOptions() {\n return { modal: true, preventBodyScroll: true }\n }\n\n _onBeforeShow() {\n // No-op by default — Dialog overrides to add nonmodal class\n }\n\n _onAfterHide() {\n // No-op by default — Dialog overrides to remove nonmodal class\n }\n\n _isAnimated() {\n return !this._element.classList.contains(this._getInstantClassName())\n }\n\n _getInstantClassName() {\n return 'dialog-instant'\n }\n\n _getStaticClassName() {\n return 'dialog-static'\n }\n\n _onCancel() {\n // No-op by default — Dialog overrides to fire cancel event\n }\n\n // Protected — shared mechanics\n\n _showElement({ modal = true, preventBodyScroll = true } = {}) {\n this._openedAsModal = modal\n\n if (modal) {\n this._element.showModal()\n } else {\n this._element.show()\n }\n\n if (preventBodyScroll) {\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n }\n\n _hideElement() {\n this._hideChildComponents()\n\n // Add .hiding before close() so CSS exit transitions can play.\n // Without this, the navbar's `:not([open])` transition-kill rule\n // would prevent the slide-out animation.\n this._element.classList.add('hiding')\n\n // Subclasses can defer close() until after the exit transition by\n // returning true from _shouldDeferClose(). This is needed for the\n // native modal <dialog> centered case: close() removes the dialog\n // from the top layer immediately, which strips its auto-centering\n // and the ::backdrop, breaking the exit animation.\n if (!this._shouldDeferClose()) {\n this._closeAndCleanup()\n }\n }\n\n // Closes the native <dialog> and tears down body-scroll prevention.\n // Safe to call multiple times — close() is a no-op on a closed dialog.\n _closeAndCleanup() {\n this._element.close()\n this._openedAsModal = false\n\n // Only restore body scroll if no other modal dialogs are open\n if (!document.querySelector('dialog[open]:modal')) {\n document.body.classList.remove(CLASS_NAME_OPEN)\n }\n }\n\n // Hook: return true to keep the dialog in the top layer (i.e., delay\n // calling close()) until the exit transition completes. The base class\n // closes synchronously; Dialog overrides this for animated modal cases.\n _shouldDeferClose() {\n return false\n }\n\n _triggerBackdropTransition() {\n const hidePreventedEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('hidePrevented')\n )\n\n if (hidePreventedEvent.defaultPrevented) {\n return\n }\n\n const staticClass = this._getStaticClassName()\n this._element.classList.add(staticClass)\n this._queueCallback(() => {\n this._element.classList.remove(staticClass)\n }, this._element)\n }\n\n // Hide any tooltips, popovers, or toasts inside the dialog before closing.\n // These components append to the dialog (for top-layer rendering) and would\n // otherwise persist visibly after close().\n _hideChildComponents() {\n const selector = '[data-bs-toggle=\"tooltip\"], [data-bs-toggle=\"popover\"]'\n\n for (const el of SelectorEngine.find(selector, this._element)) {\n const instance = Data.getAny(el)\n if (instance && typeof instance.hide === 'function') {\n instance.hide()\n }\n }\n\n // Hide any visible toasts\n for (const el of SelectorEngine.find('.toast.show', this._element)) {\n const instance = Data.getAny(el)\n if (instance && typeof instance.hide === 'function') {\n instance.hide()\n }\n }\n }\n\n // Private\n\n _addDialogListeners() {\n const eventKey = this.constructor.EVENT_KEY\n\n // Handle native cancel event (Escape key) — only fires for modal dialogs\n EventHandler.on(this._element, 'cancel', event => {\n event.preventDefault()\n\n if (!this._config.keyboard) {\n this._triggerBackdropTransition()\n return\n }\n\n this._onCancel()\n this.hide()\n })\n\n // Handle Escape key for non-modal dialogs (native cancel doesn't fire for show())\n EventHandler.on(this._element, `keydown${eventKey}`, event => {\n if (event.key !== 'Escape' || this._openedAsModal) {\n return\n }\n\n event.preventDefault()\n\n if (!this._config.keyboard) {\n return\n }\n\n this._onCancel()\n this.hide()\n })\n\n // Handle backdrop clicks — only applies to modal dialogs\n EventHandler.on(this._element, `click${eventKey}`, event => {\n if (event.target !== this._element || !this._openedAsModal) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n return\n }\n\n this.hide()\n })\n }\n}\n\nexport default DialogBase\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dialog.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport DialogBase from './dialog-base.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'dialog'\nconst DATA_KEY = 'bs.dialog'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CANCEL = `cancel${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_NONMODAL = 'dialog-nonmodal'\nconst CLASS_NAME_INSTANT = 'dialog-instant'\nconst CLASS_NAME_SWAP_IN = 'dialog-swap-in'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dialog\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n modal: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n modal: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Dialog extends DialogBase {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n handleUpdate() {\n // Provided for API consistency with Modal.\n }\n\n // Protected — hook overrides\n\n _getShowOptions() {\n return {\n modal: this._config.modal,\n preventBodyScroll: this._config.modal\n }\n }\n\n _onBeforeShow() {\n if (!this._config.modal) {\n this._element.classList.add(CLASS_NAME_NONMODAL)\n }\n }\n\n _onAfterHide() {\n this._element.classList.remove(CLASS_NAME_NONMODAL)\n }\n\n // Keep the dialog in the top layer until the exit transition ends. This\n // preserves the browser's modal centering and the native ::backdrop, both\n // of which disappear synchronously the moment close() is called. Without\n // this, the dialog would jump to the top of the page and the backdrop\n // blur would vanish instantly while the dialog faded — making the exit\n // animation appear to skip entirely.\n _shouldDeferClose() {\n return this._isAnimated()\n }\n\n _onCancel() {\n EventHandler.trigger(this._element, EVENT_CANCEL)\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n // Get config from trigger's data attributes\n const config = Manipulator.getDataAttributes(this)\n\n // Check if trigger is inside an open dialog (dialog swapping)\n const currentDialog = this.closest('dialog[open]')\n const shouldSwap = currentDialog && currentDialog !== target\n\n if (shouldSwap) {\n // Swap strategy (seamless backdrop, no flash):\n // 1. Mark the incoming dialog with .dialog-swap-in so its ::backdrop\n // skips the @starting-style fade-in and appears fully opaque on\n // its very first frame in the top layer.\n // 2. Open the incoming dialog (showModal).\n // 3. Close the outgoing dialog synchronously — no exit transition, no\n // .hiding — so its ::backdrop is removed in the same frame the\n // incoming dialog's backdrop appears. Since both backdrops render\n // the same color, the user sees one continuous backdrop. Two\n // simultaneously-visible backdrops would composite to ~75% darker,\n // and a fading-out + fading-in pair would dip to ~75% opacity —\n // either would look like a flash.\n // 4. Clean up the .dialog-swap-in flag once the incoming dialog\n // finishes its entry transition.\n const newDialog = Dialog.getOrCreateInstance(target, config)\n target.classList.add(CLASS_NAME_SWAP_IN)\n newDialog.show(this)\n EventHandler.one(target, `shown${EVENT_KEY}`, () => {\n target.classList.remove(CLASS_NAME_SWAP_IN)\n })\n\n const currentInstance = Dialog.getInstance(currentDialog)\n if (currentInstance) {\n // Force synchronous close: .dialog-instant makes _isAnimated() false,\n // which makes _shouldDeferClose() false, so hide() calls close()\n // immediately (no deferred .hiding path). The class is removed after\n // the (now-synchronous) hidden event fires.\n currentDialog.classList.add(CLASS_NAME_INSTANT)\n EventHandler.one(currentDialog, EVENT_HIDDEN, () => {\n currentDialog.classList.remove(CLASS_NAME_INSTANT)\n })\n currentInstance.hide()\n }\n\n return\n }\n\n const data = Dialog.getOrCreateInstance(target, config)\n data.toggle(this)\n})\n\nenableDismissTrigger(Dialog)\n\nexport default Dialog\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap nav-overflow.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'navoverflow'\nconst DATA_KEY = 'bs.navoverflow'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_UPDATE = `update${EVENT_KEY}`\nconst EVENT_OVERFLOW = `overflow${EVENT_KEY}`\n\nconst CLASS_NAME_OVERFLOW = 'nav-overflow'\nconst CLASS_NAME_OVERFLOW_MENU = 'nav-overflow-menu'\nconst CLASS_NAME_HIDDEN = 'd-none'\n\nconst SELECTOR_NAV_ITEM = '.nav-item'\nconst SELECTOR_NAV_LINK = '.nav-link'\nconst SELECTOR_OVERFLOW_TOGGLE = '.nav-overflow-toggle'\nconst SELECTOR_OVERFLOW_MENU = '.nav-overflow-menu'\nconst SELECTOR_CUSTOM_ICON = '[data-bs-overflow-icon]'\nconst CLASS_NAME_KEEP = 'nav-overflow-keep'\n\nconst Default = {\n collapseBelow: 0,\n iconPlacement: 'start',\n menuPlacement: 'bottom-end',\n moreText: 'More',\n moreIcon: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" viewBox=\"0 0 16 16\"><path d=\"M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3\"/></svg>',\n threshold: 0 // Minimum items to keep visible before showing overflow\n}\n\nconst DefaultType = {\n collapseBelow: '(number|string)',\n iconPlacement: 'string',\n menuPlacement: 'string',\n moreText: 'string',\n moreIcon: 'string',\n threshold: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass NavOverflow extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._items = []\n this._overflowItems = []\n this._overflowMenu = null\n this._overflowToggle = null\n this._resizeObserver = null\n this._collapseBelow = 0\n this._isInitialized = false\n\n this._init()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n update() {\n this._calculateOverflow()\n EventHandler.trigger(this._element, EVENT_UPDATE)\n }\n\n dispose() {\n if (this._resizeObserver) {\n this._resizeObserver.disconnect()\n }\n\n // Move items back to original positions\n this._restoreItems()\n\n // Remove overflow menu\n if (this._overflowToggle && this._overflowToggle.parentElement) {\n this._overflowToggle.parentElement.remove()\n }\n\n super.dispose()\n }\n\n // Private\n _init() {\n // Add overflow class to nav\n this._element.classList.add(CLASS_NAME_OVERFLOW)\n\n // Get all nav items\n this._items = [...SelectorEngine.find(SELECTOR_NAV_ITEM, this._element)]\n\n // Store original order data\n for (const [index, item] of this._items.entries()) {\n item.dataset.bsNavOrder = index\n }\n\n // Resolve collapseBelow threshold once\n this._collapseBelow = this._resolveCollapseBelow()\n\n // Create overflow menu if it doesn't exist\n this._createOverflowMenu()\n\n // Setup resize observer\n this._setupResizeObserver()\n\n // Initial calculation\n this._calculateOverflow()\n\n this._isInitialized = true\n }\n\n _createOverflowMenu() {\n // Check if overflow menu already exists\n this._overflowToggle = SelectorEngine.findOne(SELECTOR_OVERFLOW_TOGGLE, this._element)\n\n if (this._overflowToggle) {\n this._overflowMenu = SelectorEngine.findOne(SELECTOR_OVERFLOW_MENU, this._element)\n return\n }\n\n const iconHtml = this._resolveIcon()\n const iconSpan = `<span class=\"nav-overflow-icon\">${iconHtml}</span>`\n const textSpan = `<span class=\"nav-overflow-text\">${this._config.moreText}</span>`\n const toggleContent = this._config.iconPlacement === 'end' ?\n `${textSpan}${iconSpan}` :\n `${iconSpan}${textSpan}`\n\n const overflowItem = document.createElement('li')\n overflowItem.className = 'nav-item nav-overflow-item'\n overflowItem.innerHTML = `\n <button class=\"nav-link nav-overflow-toggle\" type=\"button\" data-bs-toggle=\"menu\" data-bs-placement=\"${this._config.menuPlacement}\" aria-expanded=\"false\">\n ${toggleContent}\n </button>\n <div class=\"${CLASS_NAME_OVERFLOW_MENU} menu\"></div>\n `\n\n this._element.append(overflowItem)\n this._overflowToggle = overflowItem.querySelector(SELECTOR_OVERFLOW_TOGGLE)\n this._overflowMenu = overflowItem.querySelector(SELECTOR_OVERFLOW_MENU)\n }\n\n _resolveIcon() {\n const customIconElement = SelectorEngine.findOne(SELECTOR_CUSTOM_ICON, this._element)\n\n if (!customIconElement) {\n return this._config.moreIcon\n }\n\n const iconClone = customIconElement.cloneNode(true)\n iconClone.removeAttribute('data-bs-overflow-icon')\n const iconHtml = iconClone.outerHTML\n\n customIconElement.remove()\n\n return iconHtml\n }\n\n _resolveCollapseBelow() {\n const value = this._config.collapseBelow\n\n if (typeof value === 'number') {\n return value\n }\n\n if (typeof value === 'string' && value !== '') {\n const cssValue = getComputedStyle(document.documentElement)\n .getPropertyValue(`--bs-breakpoint-${value}`)\n return Number.parseFloat(cssValue) || 0\n }\n\n return 0\n }\n\n _setupResizeObserver() {\n if (typeof ResizeObserver === 'undefined') {\n // Fallback for older browsers\n EventHandler.on(window, 'resize', () => this._calculateOverflow())\n return\n }\n\n this._resizeObserver = new ResizeObserver(() => {\n this._calculateOverflow()\n })\n\n this._resizeObserver.observe(this._element)\n }\n\n _calculateOverflow() {\n // First, restore all items to measure properly\n this._restoreItems()\n\n const navWidth = this._element.offsetWidth\n const overflowItem = this._overflowToggle?.closest('.nav-item')\n\n // When below the collapseBelow threshold, force all items into overflow\n if (this._collapseBelow > 0 && navWidth < this._collapseBelow) {\n const itemsToOverflow = this._items.filter(\n item => !item.classList.contains(CLASS_NAME_KEEP)\n )\n\n this._moveToOverflow(itemsToOverflow)\n\n if (overflowItem) {\n if (itemsToOverflow.length > 0) {\n overflowItem.classList.remove(CLASS_NAME_HIDDEN)\n } else {\n overflowItem.classList.add(CLASS_NAME_HIDDEN)\n }\n }\n\n if (itemsToOverflow.length > 0) {\n EventHandler.trigger(this._element, EVENT_OVERFLOW, {\n overflowCount: itemsToOverflow.length,\n visibleCount: this._items.length - itemsToOverflow.length\n })\n }\n\n return\n }\n\n const overflowWidth = overflowItem?.offsetWidth || 0\n\n // Keep items are always visible; subtract their widths so the threshold\n // reflects actual available space for non-keep items.\n const keepWidth = this._items\n .filter(item => item.classList.contains(CLASS_NAME_KEEP))\n .reduce((sum, item) => sum + item.offsetWidth, 0)\n\n let usedWidth = 0\n const itemsToOverflow = []\n const overflowThreshold = navWidth - overflowWidth - keepWidth - 10 // 10px buffer\n\n // Calculate which items need to overflow (skip items with keep class)\n for (const item of this._items) {\n // Never overflow items with the keep class\n if (item.classList.contains(CLASS_NAME_KEEP)) {\n continue\n }\n\n usedWidth += item.offsetWidth\n\n if (usedWidth > overflowThreshold) {\n itemsToOverflow.push(item)\n }\n }\n\n // Check if we need threshold minimum visible\n const visibleCount = this._items.length - itemsToOverflow.length\n if (visibleCount < this._config.threshold && this._items.length > this._config.threshold) {\n // Add more items to overflow until we reach threshold (but not keep items)\n const toMove = this._items.slice(this._config.threshold).filter(item => !item.classList.contains(CLASS_NAME_KEEP))\n itemsToOverflow.length = 0\n itemsToOverflow.push(...toMove)\n }\n\n // Move items to overflow menu\n this._moveToOverflow(itemsToOverflow)\n\n // Show/hide overflow toggle\n if (overflowItem) {\n if (itemsToOverflow.length > 0) {\n overflowItem.classList.remove(CLASS_NAME_HIDDEN)\n } else {\n overflowItem.classList.add(CLASS_NAME_HIDDEN)\n }\n }\n\n // Trigger overflow event if items changed\n if (itemsToOverflow.length > 0) {\n EventHandler.trigger(this._element, EVENT_OVERFLOW, {\n overflowCount: itemsToOverflow.length,\n visibleCount: this._items.length - itemsToOverflow.length\n })\n }\n }\n\n _moveToOverflow(items) {\n if (!this._overflowMenu) {\n return\n }\n\n // Clear existing overflow items\n this._overflowMenu.innerHTML = ''\n this._overflowItems = []\n\n for (const item of items) {\n const link = SelectorEngine.findOne(SELECTOR_NAV_LINK, item)\n if (!link) {\n continue\n }\n\n const clonedLink = link.cloneNode(true)\n clonedLink.className = 'menu-item'\n\n if (link.classList.contains('active')) {\n clonedLink.classList.add('active')\n }\n\n if (link.classList.contains('disabled') || link.hasAttribute('disabled')) {\n clonedLink.classList.add('disabled')\n }\n\n this._overflowMenu.append(clonedLink)\n\n // Hide original item\n item.classList.add(CLASS_NAME_HIDDEN)\n item.dataset.bsNavOverflow = 'true'\n\n this._overflowItems.push(item)\n }\n }\n\n _restoreItems() {\n for (const item of this._items) {\n item.classList.remove(CLASS_NAME_HIDDEN)\n delete item.dataset.bsNavOverflow\n }\n\n if (this._overflowMenu) {\n this._overflowMenu.innerHTML = ''\n }\n\n this._overflowItems = []\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, 'DOMContentLoaded', () => {\n for (const element of SelectorEngine.find('[data-bs-toggle=\"nav-overflow\"]')) {\n NavOverflow.getOrCreateInstance(element)\n }\n})\n\nexport default NavOverflow\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport Config from './config.js'\nimport { execute } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'swipe'\nconst EVENT_KEY = '.bs.swipe'\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null,\n upCallback: null,\n downCallback: null\n}\n\nconst DefaultType = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)',\n upCallback: '(function|null)',\n downCallback: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super()\n this._element = element\n\n if (!element || !Swipe.isSupported()) {\n return\n }\n\n this._config = this._getConfig(config)\n this._deltaX = 0\n this._deltaY = 0\n this._supportPointerEvents = Boolean(window.PointerEvent)\n this._initEvents()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX\n this._deltaY = event.touches[0].clientY\n\n return\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX\n this._deltaY = event.clientY\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX\n this._deltaY = event.clientY - this._deltaY\n }\n\n this._handleSwipe()\n execute(this._config.endCallback)\n }\n\n _move(event) {\n if (event.touches && event.touches.length > 1) {\n this._deltaX = 0\n this._deltaY = 0\n return\n }\n\n this._deltaX = event.touches[0].clientX - this._deltaX\n this._deltaY = event.touches[0].clientY - this._deltaY\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX)\n const absDeltaY = Math.abs(this._deltaY)\n\n // Determine primary axis: whichever has greater movement wins\n if (absDeltaY > absDeltaX && absDeltaY > SWIPE_THRESHOLD) {\n // Vertical swipe\n const direction = this._deltaY > 0 ? 'down' : 'up'\n this._deltaX = 0\n this._deltaY = 0\n execute(direction === 'down' ? this._config.downCallback : this._config.upCallback)\n return\n }\n\n if (absDeltaX > SWIPE_THRESHOLD) {\n // Horizontal swipe\n const direction = absDeltaX / this._deltaX\n this._deltaX = 0\n this._deltaY = 0\n\n if (!direction) {\n return\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback)\n return\n }\n\n this._deltaX = 0\n this._deltaY = 0\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event))\n }\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n }\n}\n\nexport default Swipe\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap drawer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport DialogBase from './dialog-base.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Swipe from './util/swipe.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport {\n isDisabled,\n isRTL,\n isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'drawer'\nconst DATA_KEY = 'bs.drawer'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"drawer\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Drawer extends DialogBase {\n constructor(element, config) {\n super(element, config)\n this._swipeHelper = null\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Protected — hook overrides\n\n _getShowOptions() {\n const useModal = Boolean(this._config.backdrop) || !this._config.scroll\n return {\n modal: useModal,\n preventBodyScroll: !this._config.scroll\n }\n }\n\n _onBeforeShow() {\n this._initSwipe()\n }\n\n _getInstantClassName() {\n return 'drawer-instant'\n }\n\n _getStaticClassName() {\n return 'drawer-static'\n }\n\n // Private\n\n _initSwipe() {\n if (this._swipeHelper || !Swipe.isSupported()) {\n return\n }\n\n // Determine which swipe direction dismisses based on placement\n const swipeConfig = {}\n const element = this._element\n\n if (element.classList.contains('drawer-bottom')) {\n swipeConfig.downCallback = () => this.hide()\n } else if (element.classList.contains('drawer-top')) {\n swipeConfig.upCallback = () => this.hide()\n } else if (element.classList.contains('drawer-end')) {\n // RTL: swipe left to dismiss end drawer\n if (isRTL()) {\n swipeConfig.leftCallback = () => this.hide()\n } else {\n swipeConfig.rightCallback = () => this.hide()\n }\n } else if (isRTL()) {\n // drawer-start (default): swipe right to dismiss in RTL\n swipeConfig.rightCallback = () => this.hide()\n } else {\n // drawer-start (default): swipe left to dismiss in LTR\n swipeConfig.leftCallback = () => this.hide()\n }\n\n this._swipeHelper = new Swipe(element, swipeConfig)\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n\n // Avoid conflict when clicking a toggler of a drawer, while another is open\n const alreadyOpen = SelectorEngine.findOne('dialog.drawer[open]')\n if (alreadyOpen && alreadyOpen !== target) {\n Drawer.getInstance(alreadyOpen).hide()\n }\n\n const data = Drawer.getOrCreateInstance(target)\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const selector of SelectorEngine.find('dialog.drawer[open]')) {\n Drawer.getOrCreateInstance(selector).show()\n }\n})\n\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('dialog[open][class*=\"\\\\:drawer\"]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Drawer.getOrCreateInstance(element).hide()\n }\n }\n})\n\nenableDismissTrigger(Drawer)\n\nexport default Drawer\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap strength.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'strength'\nconst DATA_KEY = 'bs.strength'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_STRENGTH_CHANGE = `strengthChange${EVENT_KEY}`\n\nconst SELECTOR_DATA_STRENGTH = '[data-bs-strength]'\n\nconst STRENGTH_LEVELS = ['weak', 'fair', 'good', 'strong']\n\nconst Default = {\n input: null, // Selector or element for password input\n minLength: 8,\n messages: {\n weak: 'Weak',\n fair: 'Fair',\n good: 'Good',\n strong: 'Strong'\n },\n weights: {\n minLength: 1,\n extraLength: 1,\n lowercase: 1,\n uppercase: 1,\n numbers: 1,\n special: 1,\n multipleSpecial: 1,\n longPassword: 1\n },\n thresholds: [2, 4, 6], // weak ≤2, fair ≤4, good ≤6, strong >6\n scorer: null // Custom scoring function (password) => number\n}\n\nconst DefaultType = {\n input: '(string|element|null)',\n minLength: 'number',\n messages: 'object',\n weights: 'object',\n thresholds: 'array',\n scorer: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Strength extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = this._getInput()\n this._segments = SelectorEngine.find('.strength-segment', this._element)\n this._textElement = SelectorEngine.findOne('.strength-text', this._element.parentElement)\n this._currentStrength = null\n\n if (this._input) {\n this._addEventListeners()\n // Check initial value\n this._evaluate()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getStrength() {\n return this._currentStrength\n }\n\n evaluate() {\n this._evaluate()\n }\n\n // Private\n _getInput() {\n if (this._config.input) {\n return typeof this._config.input === 'string' ?\n SelectorEngine.findOne(this._config.input) :\n this._config.input\n }\n\n // Look for preceding password input\n const parent = this._element.parentElement\n return SelectorEngine.findOne('input[type=\"password\"]', parent)\n }\n\n _addEventListeners() {\n EventHandler.on(this._input, 'input', () => this._evaluate())\n EventHandler.on(this._input, 'change', () => this._evaluate())\n }\n\n _evaluate() {\n const password = this._input.value\n const score = this._calculateScore(password)\n const strength = this._scoreToStrength(score)\n\n if (strength !== this._currentStrength) {\n this._currentStrength = strength\n this._updateUI(strength, score)\n\n EventHandler.trigger(this._element, EVENT_STRENGTH_CHANGE, {\n strength,\n score,\n password: password.length > 0 ? '***' : '' // Don't expose actual password\n })\n }\n }\n\n _calculateScore(password) {\n if (!password) {\n return 0\n }\n\n // Use custom scorer if provided\n if (typeof this._config.scorer === 'function') {\n return this._config.scorer(password)\n }\n\n const { weights } = this._config\n let score = 0\n\n // Length scoring\n if (password.length >= this._config.minLength) {\n score += weights.minLength\n }\n\n if (password.length >= this._config.minLength + 4) {\n score += weights.extraLength\n }\n\n // Character variety\n if (/[a-z]/.test(password)) {\n score += weights.lowercase\n }\n\n if (/[A-Z]/.test(password)) {\n score += weights.uppercase\n }\n\n if (/\\d/.test(password)) {\n score += weights.numbers\n }\n\n // Special characters\n if (/[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n score += weights.special\n }\n\n // Extra points for more special chars or length\n if (/[!@#$%^&*(),.?\":{}|<>].*[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n score += weights.multipleSpecial\n }\n\n if (password.length >= 16) {\n score += weights.longPassword\n }\n\n return score\n }\n\n _scoreToStrength(score) {\n if (score === 0) {\n return null\n }\n\n const [weak, fair, good] = this._config.thresholds\n\n if (score <= weak) {\n return 'weak'\n }\n\n if (score <= fair) {\n return 'fair'\n }\n\n if (score <= good) {\n return 'good'\n }\n\n return 'strong'\n }\n\n _updateUI(strength) {\n // Update data attribute on element\n if (strength) {\n this._element.dataset.bsStrength = strength\n } else {\n delete this._element.dataset.bsStrength\n }\n\n // Update segmented meter\n const strengthIndex = strength ? STRENGTH_LEVELS.indexOf(strength) : -1\n\n for (const [index, segment] of this._segments.entries()) {\n if (index <= strengthIndex) {\n segment.classList.add('active')\n } else {\n segment.classList.remove('active')\n }\n }\n\n // Update text feedback\n if (this._textElement) {\n if (strength && this._config.messages[strength]) {\n this._textElement.textContent = this._config.messages[strength]\n this._textElement.dataset.bsStrength = strength\n\n // Also set the color via inheriting from parent or using CSS variable\n const colorMap = {\n weak: 'danger',\n fair: 'warning',\n good: 'info',\n strong: 'success'\n }\n this._textElement.style.setProperty('--strength-color', `var(--${colorMap[strength]}-text)`)\n } else {\n this._textElement.textContent = ''\n delete this._textElement.dataset.bsStrength\n }\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_STRENGTH)) {\n Strength.getOrCreateInstance(element)\n }\n})\n\nexport default Strength\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap otp-input.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'otpInput'\nconst DATA_KEY = 'bs.otpInput'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_COMPLETE = `complete${EVENT_KEY}`\nconst EVENT_INPUT = `input${EVENT_KEY}`\nconst EVENT_DOMCONTENT_LOADED = `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_OTP = '[data-bs-otp]'\nconst SELECTOR_INPUT = 'input'\n\n// Events that should refresh the active-slot highlight as the caret moves\nconst SYNC_EVENTS = ['blur', 'keyup', 'click', 'select']\n\nconst CLASS_NAME_INPUT = 'otp-input'\nconst CLASS_NAME_RENDERED = 'otp-rendered'\nconst CLASS_NAME_SLOTS = 'otp-slots'\nconst CLASS_NAME_SLOT = 'otp-slot'\nconst CLASS_NAME_SLOT_FILLED = 'otp-slot-filled'\nconst CLASS_NAME_SLOT_ACTIVE = 'otp-slot-active'\nconst CLASS_NAME_SEPARATOR = 'otp-separator'\n\nconst MASK_CHARACTER = '•'\n\n// Per-type input mode, validation pattern, and a filter that strips disallowed characters\nconst TYPES = {\n numeric: { inputmode: 'numeric', pattern: '[0-9]*', filter: /[^0-9]/g },\n alphanumeric: { inputmode: 'text', pattern: '[A-Za-z0-9]*', filter: /[^A-Za-z0-9]/g },\n alpha: { inputmode: 'text', pattern: '[A-Za-z]*', filter: /[^A-Za-z]/g }\n}\n\nconst Default = {\n groups: null,\n length: null,\n mask: false,\n separator: '·',\n type: 'numeric'\n}\n\nconst DefaultType = {\n groups: '(array|null)',\n length: '(number|null)',\n mask: 'boolean',\n separator: 'string',\n type: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass OtpInput extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = SelectorEngine.findOne(SELECTOR_INPUT, this._element)\n if (!this._input) {\n return\n }\n\n this._type = TYPES[this._config.type] || TYPES.numeric\n this._length = this._resolveLength()\n this._slots = []\n\n this._setupInput()\n this._renderSlots()\n this._addEventListeners()\n this._render()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getValue() {\n return this._input.value\n }\n\n setValue(value) {\n this._input.value = this._sanitize(String(value))\n this._render()\n this._checkComplete()\n }\n\n clear() {\n this._input.value = ''\n this._render()\n this._input.focus()\n }\n\n focus() {\n this._input.focus()\n // Place the caret after the last entered character\n const end = this._input.value.length\n this._input.setSelectionRange(end, end)\n this._render()\n }\n\n dispose() {\n EventHandler.off(this._input, 'input', this._onInput)\n EventHandler.off(this._input, 'focus', this._onFocus)\n for (const type of SYNC_EVENTS) {\n EventHandler.off(this._input, type, this._onSync)\n }\n\n this._slotsContainer?.remove()\n this._element.classList.remove(CLASS_NAME_RENDERED)\n super.dispose()\n }\n\n // Private\n _resolveLength() {\n if (this._config.length) {\n return this._config.length\n }\n\n const maxLength = Number.parseInt(this._input.getAttribute('maxlength'), 10)\n return Number.isNaN(maxLength) || maxLength < 1 ? 6 : maxLength\n }\n\n _setupInput() {\n const input = this._input\n\n // A single text field backs the whole control so screen readers, password\n // managers, and SMS autofill treat it like any other input.\n if (input.type === 'number' || input.type === 'password') {\n input.type = 'text'\n }\n\n input.classList.add(CLASS_NAME_INPUT)\n input.setAttribute('maxlength', String(this._length))\n input.setAttribute('inputmode', this._type.inputmode)\n input.setAttribute('pattern', this._type.pattern)\n\n if (!input.getAttribute('autocomplete')) {\n input.setAttribute('autocomplete', 'one-time-code')\n }\n\n // Filter any pre-filled value through the configured type\n if (input.value) {\n input.value = this._sanitize(input.value)\n }\n }\n\n _renderSlots() {\n const container = document.createElement('div')\n container.className = CLASS_NAME_SLOTS\n container.setAttribute('aria-hidden', 'true')\n\n const { groups } = this._config\n let groupIndex = 0\n let inGroup = 0\n\n for (let i = 0; i < this._length; i++) {\n const slot = document.createElement('div')\n slot.className = CLASS_NAME_SLOT\n container.append(slot)\n this._slots.push(slot)\n\n // Insert a visual separator between configured groups\n if (Array.isArray(groups) && groups.length > 0) {\n inGroup++\n if (inGroup === groups[groupIndex] && i < this._length - 1) {\n const separator = document.createElement('div')\n separator.className = CLASS_NAME_SEPARATOR\n separator.textContent = this._config.separator\n container.append(separator)\n groupIndex = Math.min(groupIndex + 1, groups.length - 1)\n inGroup = 0\n }\n }\n }\n\n this._slotsContainer = container\n this._element.append(container)\n this._element.classList.add(CLASS_NAME_RENDERED)\n }\n\n _addEventListeners() {\n // Listeners are attached with bare event names (not namespaced) because\n // `input` is not in EventHandler's native-events list; we keep references\n // so they can be removed on dispose.\n this._onInput = () => this._handleInput()\n this._onFocus = () => this.focus()\n this._onSync = () => this._render()\n\n EventHandler.on(this._input, 'input', this._onInput)\n EventHandler.on(this._input, 'focus', this._onFocus)\n\n // Keep the active-slot highlight in sync with the caret\n for (const type of SYNC_EVENTS) {\n EventHandler.on(this._input, type, this._onSync)\n }\n }\n\n _handleInput() {\n const sanitized = this._sanitize(this._input.value)\n if (sanitized !== this._input.value) {\n this._input.value = sanitized\n }\n\n this._render()\n\n EventHandler.trigger(this._element, EVENT_INPUT, { value: this._input.value })\n\n this._checkComplete()\n }\n\n _sanitize(value) {\n return value.replace(this._type.filter, '').slice(0, this._length)\n }\n\n _render() {\n const { value } = this._input\n const isFocused = document.activeElement === this._input\n // The active slot follows the caret, clamped to the last slot when the value is full\n const caret = Math.min(this._input.selectionStart ?? value.length, this._length - 1)\n\n for (const [index, slot] of this._slots.entries()) {\n const char = value[index] ?? ''\n slot.textContent = char && this._config.mask ? MASK_CHARACTER : char\n slot.classList.toggle(CLASS_NAME_SLOT_FILLED, Boolean(char))\n slot.classList.toggle(CLASS_NAME_SLOT_ACTIVE, isFocused && index === caret)\n }\n }\n\n _checkComplete() {\n const { value } = this._input\n if (value.length === this._length) {\n EventHandler.trigger(this._element, EVENT_COMPLETE, { value })\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_DOMCONTENT_LOADED, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_OTP)) {\n OtpInput.getOrCreateInstance(element)\n }\n})\n\nexport default OtpInput\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap chips.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'chips'\nconst DATA_KEY = 'bs.chips'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ADD = `add${EVENT_KEY}`\nconst EVENT_REMOVE = `remove${EVENT_KEY}`\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SELECT = `select${EVENT_KEY}`\n\nconst SELECTOR_DATA_CHIPS = '[data-bs-chips]'\nconst SELECTOR_GHOST_INPUT = '.form-ghost'\nconst SELECTOR_CHIP = '.chip'\nconst SELECTOR_CHIP_DISMISS = '.chip-dismiss'\n\nconst CLASS_NAME_CHIP = 'chip'\nconst CLASS_NAME_CHIP_DISMISS = 'chip-dismiss'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst DEFAULT_DISMISS_ICON = '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><line x1=\"4\" y1=\"4\" x2=\"12\" y2=\"12\"/><line x1=\"12\" y1=\"4\" x2=\"4\" y2=\"12\"/></svg>'\n\nconst Default = {\n separator: ',',\n allowDuplicates: false,\n maxChips: null,\n placeholder: '',\n dismissible: true,\n dismissIcon: DEFAULT_DISMISS_ICON,\n createOnBlur: true\n}\n\nconst DefaultType = {\n separator: '(string|null)',\n allowDuplicates: 'boolean',\n maxChips: '(number|null)',\n placeholder: 'string',\n dismissible: 'boolean',\n dismissIcon: 'string',\n createOnBlur: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Chips extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = SelectorEngine.findOne(SELECTOR_GHOST_INPUT, this._element)\n this._chips = []\n this._selectedChips = new Set()\n this._anchorChip = null // For shift+click range selection\n\n if (!this._input) {\n this._createInput()\n }\n\n this._initializeExistingChips()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n add(value) {\n const trimmedValue = String(value).trim()\n\n if (!trimmedValue) {\n return null\n }\n\n // Check for duplicates\n if (!this._config.allowDuplicates && this._chips.includes(trimmedValue)) {\n return null\n }\n\n // Check max chips limit\n if (this._config.maxChips !== null && this._chips.length >= this._config.maxChips) {\n return null\n }\n\n const addEvent = EventHandler.trigger(this._element, EVENT_ADD, {\n value: trimmedValue,\n relatedTarget: this._input\n })\n\n if (addEvent.defaultPrevented) {\n return null\n }\n\n const chip = this._createChip(trimmedValue)\n this._element.insertBefore(chip, this._input)\n this._chips.push(trimmedValue)\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: this.getValues()\n })\n\n return chip\n }\n\n remove(chipOrValue) {\n let chip\n let value\n\n if (typeof chipOrValue === 'string') {\n value = chipOrValue\n chip = this._findChipByValue(value)\n } else {\n chip = chipOrValue\n value = this._getChipValue(chip)\n }\n\n if (!chip || !value) {\n return false\n }\n\n const removeEvent = EventHandler.trigger(this._element, EVENT_REMOVE, {\n value,\n chip,\n relatedTarget: this._input\n })\n\n if (removeEvent.defaultPrevented) {\n return false\n }\n\n // Remove from selection\n this._selectedChips.delete(chip)\n if (this._anchorChip === chip) {\n this._anchorChip = null\n }\n\n // Remove from DOM and array\n chip.remove()\n this._chips = this._chips.filter(v => v !== value)\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: this.getValues()\n })\n\n return true\n }\n\n removeSelected() {\n const chipsToRemove = [...this._selectedChips]\n for (const chip of chipsToRemove) {\n this.remove(chip)\n }\n\n this._input?.focus()\n }\n\n getValues() {\n return [...this._chips]\n }\n\n getSelectedValues() {\n return [...this._selectedChips].map(chip => this._getChipValue(chip))\n }\n\n clear() {\n const chips = SelectorEngine.find(SELECTOR_CHIP, this._element)\n for (const chip of chips) {\n chip.remove()\n }\n\n this._chips = []\n this._selectedChips.clear()\n this._anchorChip = null\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: []\n })\n }\n\n clearSelection() {\n for (const chip of this._selectedChips) {\n chip.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n this._selectedChips.clear()\n this._anchorChip = null\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: []\n })\n }\n\n selectChip(chip, options = {}) {\n const { addToSelection = false, rangeSelect = false } = options\n const chipElements = this._getChipElements()\n\n if (!chipElements.includes(chip)) {\n return\n }\n\n if (rangeSelect && this._anchorChip) {\n // Range selection from anchor to chip\n const anchorIndex = chipElements.indexOf(this._anchorChip)\n const chipIndex = chipElements.indexOf(chip)\n const start = Math.min(anchorIndex, chipIndex)\n const end = Math.max(anchorIndex, chipIndex)\n\n if (!addToSelection) {\n this.clearSelection()\n }\n\n for (let i = start; i <= end; i++) {\n this._selectedChips.add(chipElements[i])\n chipElements[i].classList.add(CLASS_NAME_ACTIVE)\n }\n } else if (addToSelection) {\n // Toggle selection\n if (this._selectedChips.has(chip)) {\n this._selectedChips.delete(chip)\n chip.classList.remove(CLASS_NAME_ACTIVE)\n } else {\n this._selectedChips.add(chip)\n chip.classList.add(CLASS_NAME_ACTIVE)\n this._anchorChip = chip\n }\n } else {\n // Single selection\n this.clearSelection()\n this._selectedChips.add(chip)\n chip.classList.add(CLASS_NAME_ACTIVE)\n this._anchorChip = chip\n }\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: this.getSelectedValues()\n })\n }\n\n focus() {\n this._input?.focus()\n }\n\n // Private\n _getChipElements() {\n return SelectorEngine.find(SELECTOR_CHIP, this._element)\n }\n\n _createInput() {\n const input = document.createElement('input')\n input.type = 'text'\n input.className = 'form-ghost'\n if (this._config.placeholder) {\n input.placeholder = this._config.placeholder\n }\n\n this._element.append(input)\n this._input = input\n }\n\n _initializeExistingChips() {\n const existingChips = SelectorEngine.find(SELECTOR_CHIP, this._element)\n for (const chip of existingChips) {\n const value = this._getChipValue(chip)\n if (value) {\n this._chips.push(value)\n this._setupChip(chip)\n }\n }\n }\n\n _setupChip(chip) {\n // Make chip focusable\n chip.setAttribute('tabindex', '0')\n\n // Add dismiss button if needed\n if (this._config.dismissible && !SelectorEngine.findOne(SELECTOR_CHIP_DISMISS, chip)) {\n chip.append(this._createDismissButton())\n }\n }\n\n _createChip(value) {\n const chip = document.createElement('span')\n chip.className = CLASS_NAME_CHIP\n chip.dataset.bsChipValue = value\n\n // Add text node\n chip.append(document.createTextNode(value))\n\n // Setup chip (tabindex, dismiss button)\n this._setupChip(chip)\n\n return chip\n }\n\n _createDismissButton() {\n const button = document.createElement('button')\n button.type = 'button'\n button.className = CLASS_NAME_CHIP_DISMISS\n button.setAttribute('aria-label', 'Remove')\n button.setAttribute('tabindex', '-1') // Not in tab order, chips handle keyboard\n button.innerHTML = this._config.dismissIcon\n return button\n }\n\n _findChipByValue(value) {\n const chips = this._getChipElements()\n return chips.find(chip => this._getChipValue(chip) === value)\n }\n\n _getChipValue(chip) {\n if (chip.dataset.bsChipValue) {\n return chip.dataset.bsChipValue\n }\n\n const clone = chip.cloneNode(true)\n const dismiss = SelectorEngine.findOne(SELECTOR_CHIP_DISMISS, clone)\n if (dismiss) {\n dismiss.remove()\n }\n\n return clone.textContent?.trim() || ''\n }\n\n _addEventListeners() {\n // Input events\n EventHandler.on(this._input, 'keydown', event => this._handleInputKeydown(event))\n EventHandler.on(this._input, 'input', event => this._handleInput(event))\n EventHandler.on(this._input, 'paste', event => this._handlePaste(event))\n EventHandler.on(this._input, 'focus', () => this.clearSelection())\n\n if (this._config.createOnBlur) {\n EventHandler.on(this._input, 'blur', event => {\n // Don't create chip if clicking on a chip\n if (!event.relatedTarget?.closest(SELECTOR_CHIP)) {\n this._createChipFromInput()\n }\n })\n }\n\n // Chip click events (delegated)\n EventHandler.on(this._element, 'click', SELECTOR_CHIP, event => {\n // Ignore clicks on dismiss button\n if (event.target.closest(SELECTOR_CHIP_DISMISS)) {\n return\n }\n\n const chip = event.target.closest(SELECTOR_CHIP)\n if (chip) {\n event.preventDefault()\n this.selectChip(chip, {\n addToSelection: event.metaKey || event.ctrlKey,\n rangeSelect: event.shiftKey\n })\n chip.focus()\n }\n })\n\n // Dismiss button clicks (delegated)\n EventHandler.on(this._element, 'click', SELECTOR_CHIP_DISMISS, event => {\n event.stopPropagation()\n const chip = event.target.closest(SELECTOR_CHIP)\n if (chip) {\n this.remove(chip)\n this._input?.focus()\n }\n })\n\n // Chip keyboard events (delegated)\n EventHandler.on(this._element, 'keydown', SELECTOR_CHIP, event => {\n this._handleChipKeydown(event)\n })\n\n // Focus input when clicking container background\n EventHandler.on(this._element, 'click', event => {\n if (event.target === this._element) {\n this.clearSelection()\n this._input?.focus()\n }\n })\n }\n\n _handleInputKeydown(event) {\n const { key } = event\n\n switch (key) {\n case 'Enter': {\n event.preventDefault()\n this._createChipFromInput()\n break\n }\n\n case 'Backspace':\n case 'Delete': {\n if (this._input.value === '') {\n event.preventDefault()\n const chips = this._getChipElements()\n\n if (chips.length > 0) {\n // Select last chip and focus it\n const lastChip = chips.at(-1)\n this.selectChip(lastChip)\n lastChip.focus()\n }\n }\n\n break\n }\n\n case 'ArrowLeft': {\n if (this._input.selectionStart === 0 && this._input.selectionEnd === 0) {\n event.preventDefault()\n const chips = this._getChipElements()\n if (chips.length > 0) {\n const lastChip = chips.at(-1)\n if (event.shiftKey) {\n this.selectChip(lastChip, { addToSelection: true })\n } else {\n this.selectChip(lastChip)\n }\n\n lastChip.focus()\n }\n }\n\n break\n }\n\n case 'Escape': {\n this._input.value = ''\n this.clearSelection()\n this._input.blur()\n break\n }\n\n // No default\n }\n }\n\n _handleChipKeydown(event) {\n const { key } = event\n const chip = event.target.closest(SELECTOR_CHIP)\n if (!chip) {\n return\n }\n\n const chips = this._getChipElements()\n const currentIndex = chips.indexOf(chip)\n\n switch (key) {\n case 'Backspace':\n case 'Delete': {\n event.preventDefault()\n this._handleChipDelete(currentIndex, chips)\n break\n }\n\n case 'ArrowLeft': {\n event.preventDefault()\n this._navigateChip(chips, currentIndex, -1, event.shiftKey)\n break\n }\n\n case 'ArrowRight': {\n event.preventDefault()\n this._navigateChip(chips, currentIndex, 1, event.shiftKey)\n break\n }\n\n case 'Home': {\n event.preventDefault()\n this._navigateToEdge(chips, 0, event.shiftKey)\n break\n }\n\n case 'End': {\n event.preventDefault()\n this.clearSelection()\n this._input?.focus()\n break\n }\n\n case 'a': {\n this._handleSelectAll(event, chips)\n break\n }\n\n case 'Escape': {\n event.preventDefault()\n this.clearSelection()\n this._input?.focus()\n break\n }\n\n // No default\n }\n }\n\n _handleChipDelete(currentIndex, chips) {\n if (this._selectedChips.size === 0) {\n return\n }\n\n const nextIndex = Math.min(currentIndex, chips.length - this._selectedChips.size - 1)\n this.removeSelected()\n\n const remainingChips = this._getChipElements()\n if (remainingChips.length > 0) {\n const focusIndex = Math.max(0, Math.min(nextIndex, remainingChips.length - 1))\n remainingChips[focusIndex].focus()\n this.selectChip(remainingChips[focusIndex])\n } else {\n this._input?.focus()\n }\n }\n\n _navigateChip(chips, currentIndex, direction, shiftKey) {\n const targetIndex = currentIndex + direction\n\n if (direction < 0 && targetIndex >= 0) {\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { addToSelection: true, rangeSelect: true } : {})\n targetChip.focus()\n } else if (direction > 0 && targetIndex < chips.length) {\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { addToSelection: true, rangeSelect: true } : {})\n targetChip.focus()\n } else if (direction > 0) {\n this.clearSelection()\n this._input?.focus()\n }\n }\n\n _navigateToEdge(chips, targetIndex, shiftKey) {\n if (chips.length === 0) {\n return\n }\n\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { rangeSelect: true } : {})\n targetChip.focus()\n }\n\n _handleSelectAll(event, chips) {\n if (!(event.metaKey || event.ctrlKey)) {\n return\n }\n\n event.preventDefault()\n for (const c of chips) {\n this._selectedChips.add(c)\n c.classList.add(CLASS_NAME_ACTIVE)\n }\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: this.getSelectedValues()\n })\n }\n\n _handleInput(event) {\n const { value } = event.target\n const { separator } = this._config\n\n if (separator && value.includes(separator)) {\n const parts = value.split(separator)\n for (const part of parts.slice(0, -1)) {\n this.add(part.trim())\n }\n\n this._input.value = parts.at(-1)\n }\n }\n\n _handlePaste(event) {\n const { separator } = this._config\n if (!separator) {\n return\n }\n\n const pastedData = (event.clipboardData || window.clipboardData).getData('text')\n if (pastedData.includes(separator)) {\n event.preventDefault()\n\n const parts = pastedData.split(separator)\n for (const part of parts) {\n this.add(part.trim())\n }\n }\n }\n\n _createChipFromInput() {\n const value = this._input.value.trim()\n if (value) {\n this.add(value)\n this._input.value = ''\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_CHIPS)) {\n Chips.getOrCreateInstance(element)\n }\n})\n\nexport default Chips\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n// js-docs-end allow-list\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue))\n }\n\n return true\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n .some(regex => regex.test(attributeName))\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const elements = [...createdDocument.body.querySelectorAll('*')]\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n continue\n }\n\n const attributeList = [...element.attributes]\n const allowedAttributes = [...(allowList['*'] || []), ...(allowList[elementName] || [])]\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'\nimport { execute, getElement, isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'TemplateFactory'\n\nconst Default = {\n allowList: DefaultAllowlist,\n content: {}, // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '<div></div>'\n}\n\nconst DefaultType = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n}\n\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content)\n .map(config => this._resolvePossibleFunction(config))\n .filter(Boolean)\n }\n\n hasContent() {\n return this.getContent().length > 0\n }\n\n changeContent(content) {\n this._checkContent(content)\n this._config.content = { ...this._config.content, ...content }\n return this\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div')\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template)\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector)\n }\n\n const template = templateWrapper.children[0]\n const extraClass = this._resolvePossibleFunction(this._config.extraClass)\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '))\n }\n\n return template\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config)\n this._checkContent(config.content)\n }\n\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({ selector, entry: content }, DefaultContentType)\n }\n }\n\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template)\n\n if (!templateElement) {\n return\n }\n\n content = this._resolvePossibleFunction(content)\n\n if (!content) {\n templateElement.remove()\n return\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement)\n return\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content)\n return\n }\n\n templateElement.textContent = content\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [undefined, this])\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = ''\n templateElement.append(element)\n return\n }\n\n templateElement.textContent = element.textContent\n }\n}\n\nexport default TemplateFactory\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n computePosition,\n flip,\n shift,\n offset,\n arrow,\n autoUpdate\n} from '@floating-ui/dom'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport {\n execute, findShadowRoot, getElement, getUID, isRTL, noop\n} from './util/index.js'\nimport { DefaultAllowlist } from './util/sanitizer.js'\nimport TemplateFactory from './util/template-factory.js'\nimport {\n parseResponsivePlacement,\n getResponsivePlacement,\n createBreakpointListeners,\n disposeBreakpointListeners\n} from './util/floating-ui.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tooltip\"]'\n\nconst EVENT_MODAL_HIDE = 'hide.bs.modal'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\nconst EVENT_HIDE = 'hide'\nconst EVENT_HIDDEN = 'hidden'\nconst EVENT_SHOW = 'show'\nconst EVENT_SHOWN = 'shown'\nconst EVENT_INSERTED = 'inserted'\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_FOCUSOUT = 'focusout'\nconst EVENT_MOUSEENTER = 'mouseenter'\nconst EVENT_MOUSELEAVE = 'mouseleave'\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n}\n\nconst Default = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n floatingConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n title: '',\n trigger: 'hover focus'\n}\n\nconst DefaultType = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n floatingConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof computePosition === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Floating UI (https://floating-ui.com)')\n }\n\n super(element, config)\n\n // Private\n this._isEnabled = true\n this._timeout = 0\n this._isHovered = null\n this._activeTrigger = {}\n this._floatingCleanup = null\n this._templateFactory = null\n this._newContent = null\n this._mediaQueryListeners = []\n this._responsivePlacements = null\n\n // Protected\n this.tip = null\n\n this._parseResponsivePlacements()\n this._setListeners()\n\n if (!this._config.selector) {\n this._fixTitle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle() {\n if (!this._isEnabled) {\n return\n }\n\n if (this._isShown()) {\n this._leave()\n return\n }\n\n this._enter()\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'))\n }\n\n this._disposeFloating()\n this._disposeMediaQueryListeners()\n super.dispose()\n }\n\n async show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (!(this._isWithContent() && this._isEnabled)) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW))\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n this._disposeFloating()\n\n const tip = this._getTipElement()\n\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'))\n\n let { container } = this._config\n const closestDialog = this._element.closest('dialog[open]')\n if (closestDialog && container === document.body) {\n container = closestDialog\n }\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip)\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED))\n }\n\n await this._createFloating(tip)\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN))\n\n if (this._isHovered === false) {\n this._leave()\n }\n\n this._isHovered = false\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE))\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const tip = this._getTipElement()\n tip.classList.remove(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n this._isHovered = null // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (!this._isHovered) {\n this._disposeFloating()\n }\n\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN))\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n update() {\n if (this._floatingCleanup && this.tip) {\n this._updateFloatingPosition()\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle())\n }\n\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())\n }\n\n return this.tip\n }\n\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml()\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n tip.classList.add(`bs-${this.constructor.NAME}-auto`)\n\n const tipId = getUID(this.constructor.NAME).toString()\n\n tip.setAttribute('id', tipId)\n\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n return tip\n }\n\n setContent(content) {\n this._newContent = content\n if (this._isShown()) {\n this._disposeFloating()\n this.show()\n }\n }\n\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content)\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n })\n }\n\n return this._templateFactory\n }\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n }\n }\n\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title')\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\n }\n\n _isAnimated() {\n return this._config.animation || (this.tip && this.tip.classList.contains(CLASS_NAME_FADE))\n }\n\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement(tip) {\n // If we have responsive placements, get the one for current viewport\n if (this._responsivePlacements) {\n const placement = getResponsivePlacement(this._responsivePlacements, 'top')\n return AttachmentMap[placement.toUpperCase()] || placement\n }\n\n // Execute placement (can be a function)\n const placement = execute(this._config.placement, [this, tip, this._element])\n return AttachmentMap[placement.toUpperCase()] || placement\n }\n\n _parseResponsivePlacements() {\n // Only parse if placement is a string (not a function)\n if (typeof this._config.placement !== 'string') {\n this._responsivePlacements = null\n return\n }\n\n this._responsivePlacements = parseResponsivePlacement(this._config.placement, 'top')\n\n if (this._responsivePlacements) {\n this._setupMediaQueryListeners()\n }\n }\n\n _setupMediaQueryListeners() {\n this._disposeMediaQueryListeners()\n this._mediaQueryListeners = createBreakpointListeners(() => {\n if (this._isShown()) {\n this._updateFloatingPosition()\n }\n })\n }\n\n _disposeMediaQueryListeners() {\n disposeBreakpointListeners(this._mediaQueryListeners)\n this._mediaQueryListeners = []\n }\n\n async _createFloating(tip) {\n const placement = this._getPlacement(tip)\n const arrowElement = tip.querySelector(`.${this.constructor.NAME}-arrow`)\n\n // Initial position update\n await this._updateFloatingPosition(tip, placement, arrowElement)\n\n // Set up auto-update for scroll/resize\n this._floatingCleanup = autoUpdate(\n this._element,\n tip,\n () => this._updateFloatingPosition(tip, null, arrowElement)\n )\n }\n\n async _updateFloatingPosition(tip = this.tip, placement = null, arrowElement = null) {\n if (!tip) {\n return\n }\n\n if (!placement) {\n placement = this._getPlacement(tip)\n }\n\n if (!arrowElement) {\n arrowElement = tip.querySelector(`.${this.constructor.NAME}-arrow`)\n }\n\n const middleware = this._getFloatingMiddleware(arrowElement)\n const floatingConfig = this._getFloatingConfig(placement, middleware)\n\n const { x, y, placement: finalPlacement, middlewareData } = await computePosition(\n this._element,\n tip,\n floatingConfig\n )\n\n // Apply position to tooltip\n Object.assign(tip.style, {\n position: 'absolute',\n left: `${x}px`,\n top: `${y}px`\n })\n\n // Ensure arrow is absolutely positioned within tooltip\n if (arrowElement) {\n arrowElement.style.position = 'absolute'\n }\n\n // Set placement attribute for CSS arrow styling\n Manipulator.setDataAttribute(tip, 'placement', finalPlacement)\n\n // Position arrow along the edge (center it) if present\n // The CSS handles which edge to place it on via data-bs-placement\n if (arrowElement && middlewareData.arrow) {\n const { x: arrowX, y: arrowY } = middlewareData.arrow\n const isVertical = finalPlacement.startsWith('top') || finalPlacement.startsWith('bottom')\n\n // Only set the cross-axis position (centering along the edge)\n // The main-axis position (which edge) is handled by CSS\n Object.assign(arrowElement.style, {\n left: isVertical && arrowX !== null ? `${arrowX}px` : '',\n top: !isVertical && arrowY !== null ? `${arrowY}px` : '',\n // Reset the other axis to let CSS handle it\n right: '',\n bottom: ''\n })\n }\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offset === 'function') {\n // Floating UI passes different args, adapt the interface for offset function callbacks\n return ({ placement, rects }) => {\n const result = offset({ placement, reference: rects.reference, floating: rects.floating }, this._element)\n return result\n }\n }\n\n return offset\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element, this._element])\n }\n\n _getFloatingMiddleware(arrowElement) {\n const offsetValue = this._getOffset()\n\n const middleware = [\n // Offset middleware - handles distance from reference\n offset(\n typeof offsetValue === 'function' ?\n offsetValue :\n { mainAxis: offsetValue[1] || 0, crossAxis: offsetValue[0] || 0 }\n ),\n // Flip middleware - handles fallback placements\n flip({\n fallbackPlacements: this._config.fallbackPlacements\n }),\n // Shift middleware - prevents overflow\n shift({\n boundary: this._config.boundary === 'clippingParents' ? 'clippingAncestors' : this._config.boundary\n })\n ]\n\n // Arrow middleware - positions the arrow element\n if (arrowElement) {\n middleware.push(arrow({ element: arrowElement }))\n }\n\n return middleware\n }\n\n _getFloatingConfig(placement, middleware) {\n const defaultConfig = {\n placement,\n middleware\n }\n\n return {\n ...defaultConfig,\n ...execute(this._config.floatingConfig, [undefined, defaultConfig])\n }\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ')\n\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[TRIGGER_CLICK] = !(context._isShown() && context._activeTrigger[TRIGGER_CLICK])\n context.toggle()\n })\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSEENTER) :\n this.constructor.eventName(EVENT_FOCUSIN)\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSELEAVE) :\n this.constructor.eventName(EVENT_FOCUSOUT)\n\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true\n context._enter()\n })\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] =\n context._element.contains(event.relatedTarget)\n\n context._leave()\n })\n }\n }\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n\n if (!title) {\n return\n }\n\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('data-bs-original-title', title) // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title')\n }\n\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true\n return\n }\n\n this._isHovered = true\n\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show()\n }\n }, this._config.delay.show)\n }\n\n _leave() {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n this._isHovered = false\n\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide()\n }\n }, this._config.delay.hide)\n }\n\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout)\n this._timeout = setTimeout(handler, timeout)\n }\n\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true)\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute]\n }\n }\n\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container)\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value\n }\n }\n\n config.selector = false\n config.trigger = 'manual'\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config\n }\n\n _disposeFloating() {\n if (this._floatingCleanup) {\n this._floatingCleanup()\n this._floatingCleanup = null\n }\n\n if (this.tip) {\n this.tip.remove()\n this.tip = null\n }\n }\n}\n\n/**\n * Data API implementation - auto-initialize tooltips\n */\n\nconst initTooltip = event => {\n const target = event.target.closest(SELECTOR_DATA_TOGGLE)\n if (!target) {\n return\n }\n\n // Lazily create the instance. The instance's own `_setListeners()` registers\n // the appropriate listeners on the element for the configured triggers\n // (hover/focus by default), so we don't mutate `_activeTrigger` or call\n // `_enter` here — doing so would show tooltips for triggers the user didn't\n // opt into (e.g. `focusin` firing for click-focused buttons in Chromium,\n // even when `trigger=\"hover\"` or `trigger=\"manual\"`) and leave stale state\n // on `_activeTrigger`.\n Tooltip.getOrCreateInstance(target)\n}\n\n// Auto-initialize tooltips on first interaction for hover and focus triggers\nEventHandler.on(document, EVENT_FOCUSIN, SELECTOR_DATA_TOGGLE, initTooltip)\nEventHandler.on(document, EVENT_MOUSEENTER, SELECTOR_DATA_TOGGLE, initTooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Tooltip from './tooltip.js'\nimport EventHandler from './dom/event-handler.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'popover'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"popover\"]'\n\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_MOUSEENTER = 'mouseenter'\n\nconst Default = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div>' +\n '</div>',\n trigger: 'click'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n}\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent()\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n }\n }\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content)\n }\n}\n\n/**\n * Data API implementation - auto-initialize popovers\n */\n\nconst initPopover = event => {\n const target = event.target.closest(SELECTOR_DATA_TOGGLE)\n if (!target) {\n return\n }\n\n // Prevent default for click events to avoid navigation (e.g. <a href=\"#\">)\n if (event.type === 'click') {\n event.preventDefault()\n }\n\n // Lazily create the instance. The instance's own `_setListeners()` registers\n // the appropriate listeners on the element for the configured triggers\n // (click/focus/hover), so we don't toggle or call `_enter` here — doing so\n // would duplicate handlers and leave stale state on `_activeTrigger`.\n Popover.getOrCreateInstance(target)\n}\n\n// Auto-initialize popovers on first interaction for click, hover, and focus triggers\nEventHandler.on(document, EVENT_CLICK, SELECTOR_DATA_TOGGLE, initPopover)\nEventHandler.on(document, EVENT_FOCUSIN, SELECTOR_DATA_TOGGLE, initPopover)\nEventHandler.on(document, EVENT_MOUSEENTER, SELECTOR_DATA_TOGGLE, initPopover)\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getElement, isDisabled, isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_MENU_ITEM = 'menu-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]'\nconst SELECTOR_TARGET_LINKS = '[href]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\nconst SELECTOR_MENU_TOGGLE = '[data-bs-toggle=\"menu\"]'\n\nconst Default = {\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n}\n\nconst DefaultType = {\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n}\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map()\n this._observableSections = new Map()\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element\n this._activeTarget = null\n this._observer = null\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n }\n this.refresh() // initialize\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables()\n this._maybeEnableSmoothScroll()\n\n if (this._observer) {\n this._observer.disconnect()\n } else {\n this._observer = this._getNewObserver()\n }\n\n for (const section of this._observableSections.values()) {\n this._observer.observe(section)\n }\n }\n\n dispose() {\n this._observer.disconnect()\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n config.target = getElement(config.target) || document.body\n\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value))\n }\n\n return config\n }\n\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK)\n\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash)\n if (observableSection) {\n event.preventDefault()\n const root = this._rootElement || window\n const height = observableSection.offsetTop - this._element.offsetTop\n if (root.scrollTo) {\n root.scrollTo({ top: height, behavior: 'smooth' })\n return\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height\n }\n })\n }\n\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n }\n\n return new IntersectionObserver(entries => this._observerCallback(entries), options)\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`)\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop\n this._process(targetElement(entry))\n }\n\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop\n this._previousScrollData.parentScrollTop = parentScrollTop\n\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null\n this._clearActiveClass(targetElement(entry))\n\n continue\n }\n\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry)\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return\n }\n\n continue\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry)\n }\n }\n }\n\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map()\n this._observableSections = new Map()\n\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target)\n\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue\n }\n\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element)\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor)\n this._observableSections.set(anchor.hash, observableSection)\n }\n }\n }\n\n _process(target) {\n if (this._activeTarget === target) {\n return\n }\n\n this._clearActiveClass(this._config.target)\n this._activeTarget = target\n target.classList.add(CLASS_NAME_ACTIVE)\n this._activateParents(target)\n\n EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target })\n }\n\n _activateParents(target) {\n // Activate menu parents\n if (target.classList.contains(CLASS_NAME_MENU_ITEM)) {\n const menuToggle = target.closest('.menu')?.previousElementSibling\n if (menuToggle?.matches(SELECTOR_MENU_TOGGLE)) {\n menuToggle.classList.add(CLASS_NAME_ACTIVE)\n }\n\n return\n }\n\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {\n item.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _clearActiveClass(parent) {\n parent.classList.remove(CLASS_NAME_ACTIVE)\n\n const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE}`, parent)\n for (const node of activeNodes) {\n node.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {\n ScrollSpy.getOrCreateInstance(spy)\n }\n})\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { getNextActiveElement, isDisabled } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst SELECTOR_MENU_TOGGLE = '[data-bs-toggle=\"menu\"]'\nconst SELECTOR_MENU = '.menu'\nconst NOT_SELECTOR_MENU_TOGGLE = `:not(${SELECTOR_MENU_TOGGLE})`\n\nconst SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]'\nconst SELECTOR_OUTER = '.nav-item, .list-group-item'\nconst SELECTOR_INNER = `.nav-link${NOT_SELECTOR_MENU_TOGGLE}, .list-group-item${NOT_SELECTOR_MENU_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_MENU_TOGGLE}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"]'\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`\n\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"]`\n\n/**\n * Class definition\n */\n\nclass Tab extends BaseComponent {\n constructor(element) {\n super(element)\n this._parent = this._element.closest(SELECTOR_TAB_PANEL)\n\n if (!this._parent) {\n return\n // TODO: should throw exception in v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_TAB_PANEL}`)\n }\n\n // Set up initial aria attributes\n this._setInitialAttributes(this._parent, this._getChildren())\n\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n show() { // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element\n if (this._elemIsActive(innerElem)) {\n return\n }\n\n // Search for active tab on same parent to deactivate it\n const active = this._getActiveElem()\n\n const hideEvent = active ?\n EventHandler.trigger(active, EVENT_HIDE, { relatedTarget: innerElem }) :\n null\n\n const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { relatedTarget: active })\n\n if (showEvent.defaultPrevented || (hideEvent && hideEvent.defaultPrevented)) {\n return\n }\n\n this._deactivate(active, innerElem)\n this._activate(innerElem, active)\n }\n\n // Private\n _activate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n\n this._activate(SelectorEngine.getElementFromSelector(element)) // Search and activate/show the proper section\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW)\n return\n }\n\n element.removeAttribute('tabindex')\n element.setAttribute('aria-selected', true)\n this._toggleMenu(element, true)\n EventHandler.trigger(element, EVENT_SHOWN, {\n relatedTarget: relatedElem\n })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _deactivate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.remove(CLASS_NAME_ACTIVE)\n element.blur()\n\n this._deactivate(SelectorEngine.getElementFromSelector(element)) // Search and deactivate the shown section too\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW)\n return\n }\n\n element.setAttribute('aria-selected', false)\n element.setAttribute('tabindex', '-1')\n this._toggleMenu(element, false)\n EventHandler.trigger(element, EVENT_HIDDEN, { relatedTarget: relatedElem })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _keydown(event) {\n if (!([ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key))) {\n return\n }\n\n event.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n event.preventDefault()\n\n const children = this._getChildren().filter(element => !isDisabled(element))\n let nextActiveElement\n\n if ([HOME_KEY, END_KEY].includes(event.key)) {\n nextActiveElement = event.key === HOME_KEY ? children[0] : children.at(-1)\n } else {\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\n nextActiveElement = getNextActiveElement(children, event.target, isNext, true)\n }\n\n if (nextActiveElement) {\n nextActiveElement.focus({ preventScroll: true })\n Tab.getOrCreateInstance(nextActiveElement).show()\n }\n }\n\n _getChildren() { // collection of inner elements\n return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent)\n }\n\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null\n }\n\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist')\n\n for (const child of children) {\n this._setInitialAttributesOnChild(child)\n }\n }\n\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child)\n const isActive = this._elemIsActive(child)\n const outerElem = this._getOuterElement(child)\n child.setAttribute('aria-selected', isActive)\n\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation')\n }\n\n if (!isActive) {\n child.setAttribute('tabindex', '-1')\n }\n\n this._setAttributeIfNotExists(child, 'role', 'tab')\n\n // set attributes to the related panel too\n this._setInitialAttributesOnTargetPanel(child)\n }\n\n _setInitialAttributesOnTargetPanel(child) {\n const target = SelectorEngine.getElementFromSelector(child)\n\n if (!target) {\n return\n }\n\n this._setAttributeIfNotExists(target, 'role', 'tabpanel')\n\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`)\n }\n }\n\n _toggleMenu(element, open) {\n const outerElem = this._getOuterElement(element)\n const menuToggle = SelectorEngine.findOne(SELECTOR_MENU_TOGGLE, outerElem)\n if (!menuToggle) {\n return\n }\n\n const menu = SelectorEngine.findOne(SELECTOR_MENU, outerElem)\n\n menuToggle.classList.toggle(CLASS_NAME_ACTIVE, open)\n if (menu) {\n menu.classList.toggle(CLASS_NAME_SHOW, open)\n }\n\n menuToggle.setAttribute('aria-expanded', open)\n }\n\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value)\n }\n }\n\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n // Try to get the inner element (usually the .nav-link)\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem)\n }\n\n // Try to get the outer element (usually the .nav-item)\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n Tab.getOrCreateInstance(this).show()\n})\n\n/**\n * Initialize on focus\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element)\n }\n})\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { reflow } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`\nconst EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_FOCUSOUT = `focusout${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide' // @deprecated - kept here only for backwards compatibility\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 5000\n}\n\n/**\n * Class definition\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._timeout = null\n this._hasMouseInteraction = false\n this._hasKeyboardInteraction = false\n this._setListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n show() {\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n this._maybeScheduleHide()\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE) // @deprecated\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING)\n\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n hide() {\n if (!this.isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE) // @deprecated\n this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.add(CLASS_NAME_SHOWING)\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this.isShown()) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n super.dispose()\n }\n\n isShown() {\n return this._element.classList.contains(CLASS_NAME_SHOW)\n }\n\n // Private\n _maybeScheduleHide() {\n if (!this._config.autohide) {\n return\n }\n\n if (this._hasMouseInteraction || this._hasKeyboardInteraction) {\n return\n }\n\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n\n _onInteraction(event, isInteracting) {\n switch (event.type) {\n case 'mouseover':\n case 'mouseout': {\n this._hasMouseInteraction = isInteracting\n break\n }\n\n case 'focusin':\n case 'focusout': {\n this._hasKeyboardInteraction = isInteracting\n break\n }\n\n default: {\n break\n }\n }\n\n if (isInteracting) {\n this._clearTimeout()\n return\n }\n\n const nextElement = event.relatedTarget\n if (this._element === nextElement || this._element.contains(nextElement)) {\n return\n }\n\n this._maybeScheduleHide()\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false))\n EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false))\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Toast)\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap toggler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { eventActionOnPlugin } from './util/component-functions.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'toggler'\nconst DATA_KEY = 'bs.toggler'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_TOGGLE = `toggle${EVENT_KEY}`\nconst EVENT_TOGGLED = `toggled${EVENT_KEY}`\nconst EVENT_CLICK = 'click'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"toggler\"]'\n\nconst DefaultType = {\n attribute: 'string',\n value: '(string|number|boolean)'\n}\n\nconst Default = {\n attribute: 'class',\n value: null\n}\n\n/**\n * Class definition\n */\n\nclass Toggler extends BaseComponent {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n const toggleEvent = EventHandler.trigger(this._element, EVENT_TOGGLE)\n\n if (toggleEvent.defaultPrevented) {\n return\n }\n\n this._execute()\n\n EventHandler.trigger(this._element, EVENT_TOGGLED)\n }\n\n // Private\n _execute() {\n const { attribute, value } = this._config\n\n if (attribute === 'id') {\n return // You have to be kidding\n }\n\n if (attribute === 'class') {\n this._element.classList.toggle(value)\n return\n }\n\n // Compare as strings since getAttribute() always returns a string\n if (this._element.getAttribute(attribute) === String(value)) {\n this._element.removeAttribute(attribute)\n return\n }\n\n this._element.setAttribute(attribute, value)\n }\n}\n\n/**\n * Data API implementation\n */\n\neventActionOnPlugin(Toggler, EVENT_CLICK, SELECTOR_DATA_TOGGLE, 'toggle')\n\nexport default Toggler\n"],"names":["elementMap","Map","set","element","key","instance","has","instanceMap","get","size","console","error","keys","getAny","values","next","value","remove","delete","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","makeEventUid","uid","getElementEvents","bootstrapHandler","fn","handler","event","hydrateObj","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","selector","domElements","querySelectorAll","target","parentNode","domElement","findHandler","events","callable","delegationSelector","Object","find","normalizeParameters","originalTypeEvent","delegationFunction","isDelegated","typeEvent","getTypeEvent","addHandler","wrapFunction","relatedTarget","contains","call","handlers","previousFunction","replace","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","entries","includes","on","one","inNamespace","isNamespace","startsWith","length","elementEvent","slice","keyHandlers","trigger","args","evt","Event","bubbles","cancelable","dispatchEvent","obj","meta","defineProperty","configurable","normalizeData","Number","toString","JSON","parse","decodeURIComponent","normalizeDataKey","chr","toLowerCase","Manipulator","setDataAttribute","setAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","bsKeys","dataset","filter","pureKey","charAt","getDataAttribute","getAttribute","MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","parseSelector","window","CSS","escape","match","id","toType","object","undefined","prototype","getUID","prefix","Math","floor","random","document","getElementById","getTransitionDurationFromElement","transitionDuration","transitionDelay","getComputedStyle","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","isElement","nodeType","getElement","querySelector","isVisible","getClientRects","elementIsVisible","getPropertyValue","closedDetails","closest","summary","isDisabled","Node","ELEMENT_NODE","classList","disabled","hasAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","isRTL","dir","execute","possibleCallback","defaultValue","executeAfterTransition","callback","transitionElement","waitForTransition","durationPadding","emulatedDuration","called","setTimeout","getNextActiveElement","list","activeElement","shouldGetNext","isCycleAllowed","listLength","index","indexOf","max","min","Config","Default","DefaultType","NAME","Error","_getConfig","config","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","jsonConfig","constructor","configTypes","property","expectedTypes","valueType","RegExp","test","TypeError","toUpperCase","VERSION","BaseComponent","_element","_config","Data","DATA_KEY","dispose","EVENT_KEY","propertyName","getOwnPropertyNames","_queueCallback","isAnimated","getInstance","getOrCreateInstance","eventName","name","getSelector","hrefAttribute","trim","map","sel","join","SelectorEngine","Element","findOne","children","child","matches","parents","ancestor","push","prev","previous","previousElementSibling","nextElementSibling","focusableChildren","focusables","el","getSelectorFromElement","getElementFromSelector","getMultipleElementsFromSelector","enableDismissTrigger","component","method","clickEvent","tagName","preventDefault","eventActionOnPlugin","Plugin","onEvent","stringSelector","eventAction","data","instances","targets","EVENT_CLOSE","EVENT_CLOSED","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","close","closeEvent","defaultPrevented","_destroyElement","DATA_API_KEY","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE","EVENT_CLICK_DATA_API","Button","toggle","button","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_POINTERDOWN","EVENT_LOAD_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_CENTER","CLASS_NAME_AUTO","CLASS_NAME_CLONE","CLASS_NAME_PAUSED","CLASS_NAME_PLAYING","PROPERTY_INTERVAL","SCROLL_SETTLE_MAX_FRAMES","ACTIVE_RATIO_TOLERANCE","SELECTOR_ACTIVE","SELECTOR_ITEM","SELECTOR_ACTIVE_ITEM","SELECTOR_INNER","SELECTOR_INDICATORS","SELECTOR_PLAY_PAUSE","SELECTOR_DATA_SLIDE","SELECTOR_DATA_SLIDE_PREV","SELECTOR_DATA_SLIDE_NEXT","SELECTOR_DATA_AUTOPLAY","KEY_TO_DIRECTION","ENDS_STOP","ENDS_WRAP","ENDS_LOOP","autoplay","ends","interval","keyboard","pause","Carousel","_viewport","_indicatorsElement","_playPauseElement","_prevControls","_nextControls","_interval","_observer","_snapRestoreFrame","_looping","_visibility","_playing","_activeIndex","_initialActiveIndex","_addEventListeners","_observeItems","_refreshActiveState","cycle","_updatePlayPauseControl","to","_navIndex","nextWhenVisible","visibilityState","_clearInterval","_scheduleAutoplay","add","items","_getItems","rawIndex","parseInt","_prefersReducedMotion","_canLoop","_loopTransition","targetIndex","_normalizeIndex","currentIndex","slideEvent","direction","_direction","from","_isFade","_fadeTo","_scrollToIndex","disconnect","cancelAnimationFrame","clone","style","scrollSnapType","active","_keydown","_maybeEnableCycle","_pauseFromInteraction","IntersectionObserver","_handleIntersection","threshold","item","observe","entry","isIntersecting","intersectionRatio","ratios","maxRatio","bestIndex","findIndex","ratio","_setActive","_updateEndControls","scrollWidth","clientWidth","smallestDelta","POSITIVE_INFINITY","itemIndex","delta","abs","_scrollDelta","left","targetLeft","scrollLeft","scrollBy","top","behavior","_restoreSnapWhenSettled","viewportRect","getBoundingClientRect","rect","width","padStart","scrollPaddingInlineStart","right","isNext","last","fromIndex","toIndex","_loopDirection","cloneNode","node","inert","append","prepend","_jumpScroll","_afterScrollSettles","requestAnimationFrame","startLeft","lastLeft","stableFrames","waited","hasMoved","tick","currentLeft","reachedTarget","_setActiveIndicatorElement","viewport","maxScroll","atStart","atEnd","progress","_setControlsDisabled","controls","control","opposite","fallback","focus","preventScroll","newActive","isNaN","_wrapsAround","styles","num","_itemInterval","setProperty","upcoming","_upcomingIndex","NaN","_togglePlayPause","label","matchMedia","clearTimeout","carousel","slideIndex","carousels","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","CLASS_NAME_HORIZONTAL","WIDTH","HEIGHT","SELECTOR_ACTIVES","parent","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","_isShown","hide","show","activeChildren","_getFirstLevelChildren","startEvent","activeInstance","dimension","_getDimension","complete","capitalizedDimension","scrollSize","selected","triggerArray","isOpen","BREAKPOINTS","sm","md","lg","xl","parseResponsivePlacement","placementString","defaultPlacement","parts","placements","xs","part","breakpoint","placement","getResponsivePlacement","responsivePlacements","viewportWidth","innerWidth","activePlacement","breakpointOrder","minWidth","createBreakpointListeners","listeners","mql","disposeBreakpointListeners","ESCAPE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","HOME_KEY","END_KEY","ENTER_KEY","SPACE_KEY","RIGHT_MOUSE_BUTTON","SUBMENU_CLOSE_DELAY","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","SELECTOR_MENU","SELECTOR_SUBMENU","SELECTOR_SUBMENU_TOGGLE","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","DEFAULT_PLACEMENT","SUBMENU_PLACEMENT","resolveLogicalPlacement","triangleSign","p1","p2","p3","x","y","autoClose","boundary","container","display","offset","floatingConfig","menu","reference","strategy","submenuTrigger","submenuDelay","Menu","_openInstances","computePosition","_floatingCleanup","_mediaQueryListeners","_responsivePlacements","_parent","_isSubmenu","_openSubmenus","_submenuCloseTimeouts","_hoverIntentData","_menu","_findMenu","_menuOriginalParent","_parseResponsivePlacements","_setupSubmenuListeners","showEvent","_moveMenuToContainer","_createFloating","body","focusVisible","_completeHide","_disposeFloating","_restoreMenuToOriginalParent","_disposeMediaQueryListeners","_closeAllSubmenus","_clearAllSubmenuTimeouts","update","_updateFloatingPosition","hideEvent","referenceElement","autoUpdate","_getPlacement","middleware","_getFloatingMiddleware","_getFloatingConfig","_applyFloatingPosition","_setupMediaQueryListeners","_getOffset","offsetConfig","rects","result","floating","offsetValue","mainAxis","crossAxis","flip","fallbackPlacements","_getFallbackPlacements","shift","fallbackMap","bottom","defaultConfig","_getContainer","isConnected","finalPlacement","assign","position","margin","_onSubmenuTriggerEnter","_onSubmenuLeave","_trackMousePosition","_onSubmenuTriggerClick","submenuWrapper","submenu","_cancelSubmenuCloseTimeout","_closeSiblingSubmenus","_openSubmenu","_isMovingTowardSubmenu","_scheduleSubmenuClose","stopPropagation","_closeSubmenu","cleanup","_createSubmenuFloating","nestedSubmenus","nested","nestedWrapper","currentSubmenuWrapper","siblingSubmenus","siblingMenu","siblingWrapper","padding","updatePosition","timeoutId","clear","clientX","clientY","timestamp","Date","now","submenuRect","currentPos","lastPos","isRtl","targetX","topCorner","bottomCorner","_pointInTriangle","point","v1","v2","v3","d1","d2","d3","hasNeg","hasPos","_selectMenuItem","currentMenu","_handleSubmenuKeydown","enterKey","exitKey","isSubmenuTrigger","firstItem","parentSubmenuWrapper","parentTrigger","targetItem","at","clearMenus","composedPath","isMenuTarget","dataApiKeydownHandler","isInput","isEscapeEvent","isUpOrDownEvent","isLeftOrRightEvent","isHomeOrEndEvent","isEnterOrSpaceEvent","getToggleButton","EVENT_CHANGE","CLASS_NAME_SELECTED","CLASS_NAME_PLACEHOLDER","SELECTOR_MENU_ITEM","SELECTOR_VALUE","SELECTOR_SEARCH_INPUT","SELECTOR_NO_RESULTS","multiple","placeholder","search","searchNormalize","Combobox","_toggle","_valueDisplay","_searchInput","_noResults","_hiddenInput","_menuInstance","_createHiddenInput","_createMenuInstance","_syncInitialSelection","_filterItems","createElement","insertBefore","selectedItems","_getSelectedItems","_updateToggleText","_updateHiddenInput","_showPlaceholder","_selectItem","_handleToggleKeydown","_handleMenuKeydown","_getVisibleItems","previouslySelected","bsValue","textContent","query","normalizedQuery","_normalizeText","visibleCount","text","normalize","jQueryInterface","each","EVENT_FOCUSIN_DATA_API","HIDE_DELAY","datepickerTheme","dateMin","dateMax","dateFormat","displayElement","displayMonthsCount","firstWeekday","inline","locale","positionElement","selectedDates","selectionMode","vcpOptions","Datepicker","_calendar","_initCalendar","_themeObserver","destroy","getSelectedDates","dates","context","setSelectedDates","_isInput","_isInline","_boundInput","_positionElement","_resolvePositionElement","_displayElement","_resolveDisplayElement","calendarOptions","_buildCalendarOptions","Calendar","init","_setupThemeObserver","_parseInputValue","_updateDisplayWithSelectedDates","formattedDate","_formatDateForInput","displayChild","_getThemeAncestor","_getEffectiveTheme","_syncThemeAttribute","theme","MutationObserver","mainElement","attributeFilter","vcpTheme","inputMode","positionToInput","selectionDatesMode","selectedTheme","themeAttrDetect","onClickDate","self","_handleDateClick","onInit","onShow","onHide","firstDate","_parseDate","selectedMonth","getMonth","selectedYear","getFullYear","_maybeHideAfterSelection","shouldHide","dateStr","year","month","day","_formatDate","date","Intl","DateTimeFormat","format","toLocaleDateString","separator","d","getTime","String","getDate","formatted","bsInline","CLASS_NAME_OPEN","DialogBase","_openedAsModal","_addDialogListeners","open","_onBeforeShow","modal","preventBodyScroll","_getShowOptions","_showElement","_isAnimated","_hideElement","_closeAndCleanup","_onAfterHide","_getInstantClassName","_getStaticClassName","_onCancel","showModal","_hideChildComponents","_shouldDeferClose","_triggerBackdropTransition","hidePreventedEvent","staticClass","eventKey","backdrop","EVENT_CANCEL","CLASS_NAME_NONMODAL","CLASS_NAME_INSTANT","CLASS_NAME_SWAP_IN","Dialog","handleUpdate","currentDialog","shouldSwap","newDialog","currentInstance","EVENT_UPDATE","EVENT_OVERFLOW","CLASS_NAME_OVERFLOW","CLASS_NAME_OVERFLOW_MENU","CLASS_NAME_HIDDEN","SELECTOR_NAV_ITEM","SELECTOR_NAV_LINK","SELECTOR_OVERFLOW_TOGGLE","SELECTOR_OVERFLOW_MENU","SELECTOR_CUSTOM_ICON","CLASS_NAME_KEEP","collapseBelow","iconPlacement","menuPlacement","moreText","moreIcon","NavOverflow","_items","_overflowItems","_overflowMenu","_overflowToggle","_resizeObserver","_collapseBelow","_isInitialized","_init","_calculateOverflow","_restoreItems","parentElement","bsNavOrder","_resolveCollapseBelow","_createOverflowMenu","_setupResizeObserver","iconHtml","_resolveIcon","iconSpan","textSpan","toggleContent","overflowItem","className","innerHTML","customIconElement","iconClone","outerHTML","cssValue","ResizeObserver","navWidth","offsetWidth","itemsToOverflow","_moveToOverflow","overflowCount","overflowWidth","keepWidth","reduce","sum","usedWidth","overflowThreshold","toMove","link","clonedLink","bsNavOverflow","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERUP","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","CLASS_NAME_POINTER_EVENT","SWIPE_THRESHOLD","endCallback","leftCallback","rightCallback","upCallback","downCallback","Swipe","isSupported","_deltaX","_deltaY","_supportPointerEvents","PointerEvent","_initEvents","_start","touches","_eventIsPointerPenTouch","_end","_handleSwipe","_move","absDeltaX","absDeltaY","pointerType","navigator","maxTouchPoints","EVENT_RESIZE","scroll","Drawer","_swipeHelper","useModal","_initSwipe","swipeConfig","alreadyOpen","EVENT_STRENGTH_CHANGE","SELECTOR_DATA_STRENGTH","STRENGTH_LEVELS","input","minLength","messages","weak","fair","good","strong","weights","extraLength","lowercase","uppercase","numbers","special","multipleSpecial","longPassword","thresholds","scorer","Strength","_input","_getInput","_segments","_textElement","_currentStrength","_evaluate","getStrength","evaluate","password","score","_calculateScore","strength","_scoreToStrength","_updateUI","bsStrength","strengthIndex","segment","colorMap","EVENT_COMPLETE","EVENT_INPUT","EVENT_DOMCONTENT_LOADED","SELECTOR_DATA_OTP","SELECTOR_INPUT","SYNC_EVENTS","CLASS_NAME_INPUT","CLASS_NAME_RENDERED","CLASS_NAME_SLOTS","CLASS_NAME_SLOT","CLASS_NAME_SLOT_FILLED","CLASS_NAME_SLOT_ACTIVE","CLASS_NAME_SEPARATOR","MASK_CHARACTER","TYPES","numeric","inputmode","pattern","alphanumeric","alpha","groups","mask","OtpInput","_type","_length","_resolveLength","_slots","_setupInput","_renderSlots","_render","getValue","setValue","_sanitize","_checkComplete","end","setSelectionRange","_onInput","_onFocus","_onSync","_slotsContainer","maxLength","groupIndex","inGroup","i","slot","Array","isArray","_handleInput","sanitized","isFocused","caret","selectionStart","char","EVENT_ADD","EVENT_REMOVE","EVENT_SELECT","SELECTOR_DATA_CHIPS","SELECTOR_GHOST_INPUT","SELECTOR_CHIP","SELECTOR_CHIP_DISMISS","CLASS_NAME_CHIP","CLASS_NAME_CHIP_DISMISS","DEFAULT_DISMISS_ICON","allowDuplicates","maxChips","dismissible","dismissIcon","createOnBlur","Chips","_chips","_selectedChips","_anchorChip","_createInput","_initializeExistingChips","trimmedValue","addEvent","chip","_createChip","getValues","chipOrValue","_findChipByValue","_getChipValue","removeEvent","v","removeSelected","chipsToRemove","getSelectedValues","chips","clearSelection","selectChip","options","addToSelection","rangeSelect","chipElements","_getChipElements","anchorIndex","chipIndex","start","existingChips","_setupChip","_createDismissButton","bsChipValue","createTextNode","dismiss","_handleInputKeydown","_handlePaste","_createChipFromInput","metaKey","ctrlKey","shiftKey","_handleChipKeydown","lastChip","selectionEnd","blur","_handleChipDelete","_navigateChip","_navigateToEdge","_handleSelectAll","nextIndex","remainingChips","focusIndex","targetChip","c","pastedData","clipboardData","getData","ARIA_ATTRIBUTE_PATTERN","DefaultAllowlist","a","area","b","br","col","code","dd","div","dl","dt","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","u","ul","uriAttributes","SAFE_URL_PATTERN","allowedAttribute","attribute","allowedAttributeList","attributeName","nodeName","nodeValue","attributeRegex","some","regex","sanitizeHtml","unsafeHtml","allowList","sanitizeFunction","domParser","DOMParser","createdDocument","parseFromString","elements","elementName","attributeList","allowedAttributes","content","extraClass","html","sanitize","sanitizeFn","template","DefaultContentType","TemplateFactory","getContent","_resolvePossibleFunction","hasContent","changeContent","_checkContent","toHtml","templateWrapper","_maybeSanitize","_setContent","arg","templateElement","_putElementInTemplate","DISALLOWED_ATTRIBUTES","CLASS_NAME_MODAL","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","EVENT_INSERTED","EVENT_CLICK","EVENT_FOCUSIN","EVENT_FOCUSOUT","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","animation","customClass","delay","title","Tooltip","_isEnabled","_timeout","_isHovered","_activeTrigger","_templateFactory","_newContent","tip","_setListeners","_fixTitle","enable","disable","toggleEnabled","_leave","_enter","_hideModalHandler","_isWithContent","shadowRoot","isInTheDom","ownerDocument","_getTipElement","closestDialog","_isWithActiveTrigger","_getTitle","_createTipElement","_getContentForTemplate","_getTemplateFactory","tipId","setContent","_initializeOnDelegatedTarget","_getDelegateConfig","arrowElement","middlewareData","arrow","arrowX","arrowY","isVertical","triggers","eventIn","eventOut","_setTimeout","timeout","dataAttributes","dataAttribute","initTooltip","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","initPopover","EVENT_ACTIVATE","CLASS_NAME_MENU_ITEM","SELECTOR_DATA_SPY","SELECTOR_TARGET_LINKS","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","SELECTOR_MENU_TOGGLE","rootMargin","smoothScroll","ScrollSpy","_targetLinks","_observableSections","_rootElement","overflowY","_activeTarget","_previousScrollData","visibleEntryTop","parentScrollTop","refresh","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","_getNewObserver","section","observableSection","hash","height","offsetTop","scrollTo","scrollTop","_observerCallback","targetElement","activate","_process","userScrollsDown","_clearActiveClass","entryIsLowerThanPrevious","targetLinks","anchor","decodeURI","_activateParents","menuToggle","listGroup","activeNodes","spy","NOT_SELECTOR_MENU_TOGGLE","SELECTOR_TAB_PANEL","SELECTOR_OUTER","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","Tab","_setInitialAttributes","_getChildren","innerElem","_elemIsActive","_getActiveElem","_deactivate","_activate","relatedElem","_toggleMenu","nextActiveElement","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","EVENT_MOUSEOVER","EVENT_MOUSEOUT","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_hasMouseInteraction","_hasKeyboardInteraction","_clearTimeout","_maybeScheduleHide","isShown","_onInteraction","isInteracting","nextElement","EVENT_TOGGLE","EVENT_TOGGLED","Toggler","toggleEvent","_execute"],"mappings":"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"}
\ No newline at end of file
* Copyright 2011-2026 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
-import{computePosition,autoUpdate,offset,flip,shift,arrow}from"@floating-ui/dom";import{Calendar}from"vanilla-calendar-pro";const elementMap=new Map,Data={set(e,t,n){elementMap.has(e)||elementMap.set(e,new Map);const s=elementMap.get(e);s.has(t)||0===s.size?s.set(t,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${[...s.keys()][0]}.`)},get:(e,t)=>elementMap.has(e)&&elementMap.get(e).get(t)||null,getAny:e=>elementMap.has(e)&&elementMap.get(e).values().next().value||null,remove(e,t){if(!elementMap.has(e))return;const n=elementMap.get(e);n.delete(t),0===n.size&&elementMap.delete(e)}},namespaceRegex=/[^.]*(?=\..*)\.|.*/,stripNameRegex=/\..*/,stripUidRegex=/::\d+$/,eventRegistry={};let uidEvent=1;const customEvents={mouseenter:"mouseover",mouseleave:"mouseout"},nativeEvents=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function makeEventUid(e,t){return t&&`${t}::${uidEvent++}`||e.uidEvent||uidEvent++}function getElementEvents(e){const t=makeEventUid(e);return e.uidEvent=t,eventRegistry[t]=eventRegistry[t]||{},eventRegistry[t]}function bootstrapHandler(e,t){return function n(s){return hydrateObj(s,{delegateTarget:e}),n.oneOff&&EventHandler.off(e,s.type,t),t.apply(e,[s])}}function bootstrapDelegationHandler(e,t,n){return function s(i){const o=e.querySelectorAll(t);for(let{target:a}=i;a&&a!==this;a=a.parentNode)for(const r of o)if(r===a)return hydrateObj(i,{delegateTarget:a}),s.oneOff&&EventHandler.off(e,i.type,t,n),n.apply(a,[i])}}function findHandler(e,t,n=null){return Object.values(e).find(e=>e.callable===t&&e.delegationSelector===n)}function normalizeParameters(e,t,n){const s="string"==typeof t,i=s?n:t||n;let o=getTypeEvent(e);return nativeEvents.has(o)||(o=e),[s,i,o]}function addHandler(e,t,n,s,i){if("string"!=typeof t||!e)return;let[o,a,r]=normalizeParameters(t,n,s);if(t in customEvents){const e=e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};a=e(a)}const l=getElementEvents(e),c=l[r]||(l[r]={}),h=findHandler(c,a,o?n:null);if(h)return void(h.oneOff=h.oneOff&&i);const _=makeEventUid(a,t.replace(namespaceRegex,"")),u=o?bootstrapDelegationHandler(e,n,a):bootstrapHandler(e,a);u.delegationSelector=o?n:null,u.callable=a,u.oneOff=i,u.uidEvent=_,c[_]=u,e.addEventListener(r,u,o)}function removeHandler(e,t,n,s,i){const o=findHandler(t[n],s,i);o&&(e.removeEventListener(n,o,Boolean(i)),delete t[n][o.uidEvent])}function removeNamespacedHandlers(e,t,n,s){const i=t[n]||{};for(const[o,a]of Object.entries(i))o.includes(s)&&removeHandler(e,t,n,a.callable,a.delegationSelector)}function getTypeEvent(e){return e=e.replace(stripNameRegex,""),customEvents[e]||e}const EventHandler={on(e,t,n,s){addHandler(e,t,n,s,!1)},one(e,t,n,s){addHandler(e,t,n,s,!0)},off(e,t,n,s){if("string"!=typeof t||!e)return;const[i,o,a]=normalizeParameters(t,n,s),r=a!==t,l=getElementEvents(e),c=l[a]||{},h=t.startsWith(".");if(void 0===o){if(h)for(const n of Object.keys(l))removeNamespacedHandlers(e,l,n,t.slice(1));for(const[n,s]of Object.entries(c)){const i=n.replace(stripUidRegex,"");r&&!t.includes(i)||removeHandler(e,l,a,s.callable,s.delegationSelector)}}else{if(!Object.keys(c).length)return;removeHandler(e,l,a,o,i?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const s=hydrateObj(new Event(t,{bubbles:!0,cancelable:!0}),n);return e.dispatchEvent(s),s}};function hydrateObj(e,t={}){for(const[n,s]of Object.entries(t))try{e[n]=s}catch{Object.defineProperty(e,n,{configurable:!0,get:()=>s})}return e}function normalizeData(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function normalizeDataKey(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}const Manipulator={setDataAttribute(e,t,n){e.setAttribute(`data-bs-${normalizeDataKey(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${normalizeDataKey(t)}`)},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter(e=>e.startsWith("bs")&&!e.startsWith("bsConfig"));for(const s of n){let n=s.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1),t[n]=normalizeData(e.dataset[s])}return t},getDataAttribute:(e,t)=>normalizeData(e.getAttribute(`data-bs-${normalizeDataKey(t)}`))},MAX_UID=1e6,MILLISECONDS_MULTIPLIER=1e3,TRANSITION_END="transitionend",parseSelector=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,(e,t)=>`#${CSS.escape(t)}`)),e),toType=e=>null==e?`${e}`:Object.prototype.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase(),getUID=e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e},getTransitionDurationFromElement=e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const s=Number.parseFloat(t),i=Number.parseFloat(n);return s||i?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0},triggerTransitionEnd=e=>{e.dispatchEvent(new Event(TRANSITION_END))},isElement=e=>!(!e||"object"!=typeof e)&&void 0!==e.nodeType,getElement=e=>isElement(e)?e:"string"==typeof e&&e.length>0?document.querySelector(parseSelector(e)):null,isVisible=e=>{if(!isElement(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t},isDisabled=e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")),findShadowRoot=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?findShadowRoot(e.parentNode):null},noop=()=>{},reflow=e=>{e.offsetHeight},isRTL=()=>"rtl"===document.documentElement.dir,execute=(e,t=[],n=e)=>"function"==typeof e?e.call(...t):n,executeAfterTransition=(e,t,n=!0)=>{if(!n)return void execute(e);const s=getTransitionDurationFromElement(t)+5;let i=!1;const o=({target:n})=>{n===t&&(i=!0,t.removeEventListener(TRANSITION_END,o),execute(e))};t.addEventListener(TRANSITION_END,o),setTimeout(()=>{i||triggerTransitionEnd(t)},s)},getNextActiveElement=(e,t,n,s)=>{const i=e.length;let o=e.indexOf(t);return-1===o?!n&&s?e[i-1]:e[0]:(o+=n?1:-1,s&&(o=(o+i)%i),e[Math.max(0,Math.min(o,i-1))])};class Config{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=isElement(t)?Manipulator.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...isElement(t)?Manipulator.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e,t=this.constructor.DefaultType){for(const[n,s]of Object.entries(t)){const t=e[n],i=isElement(t)?"element":toType(t);if(!new RegExp(s).test(i))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${i}" but expected type "${s}".`)}}}const VERSION="6.0.0-alpha1";class BaseComponent extends Config{constructor(e,t){super(),(e=getElement(e))&&(this._element=e,this._config=this._getConfig(t),Data.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Data.remove(this._element,this.constructor.DATA_KEY),EventHandler.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t,n=!0){executeAfterTransition(e,t,n)}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return Data.get(getElement(e),this.DATA_KEY)}static getOrCreateInstance(e,t={}){return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return VERSION}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}}const getSelector=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),t=n&&"#"!==n?n.trim():null}return t?t.split(",").map(e=>parseSelector(e)).join(","):null},SelectorEngine={find:(e,t=document.documentElement)=>[...Element.prototype.querySelectorAll.call(t,e)],findOne:(e,t=document.documentElement)=>Element.prototype.querySelector.call(t,e),children:(e,t)=>[...e.children].filter(e=>e.matches(t)),parents(e,t){const n=[];let s=e.parentNode.closest(t);for(;s;)n.push(s),s=s.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(e=>`${e}:not([tabindex^="-"])`).join(",");return this.find(t,e).filter(e=>!isDisabled(e)&&isVisible(e))},getSelectorFromElement(e){const t=getSelector(e);return t&&SelectorEngine.findOne(t)?t:null},getElementFromSelector(e){const t=getSelector(e);return t?SelectorEngine.findOne(t):null},getMultipleElementsFromSelector(e){const t=getSelector(e);return t?SelectorEngine.find(t):[]}},enableDismissTrigger=(e,t="hide")=>{const n=`click.dismiss${e.EVENT_KEY}`,s=e.NAME;EventHandler.on(document,n,`[data-bs-dismiss="${s}"]`,function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),isDisabled(this))return;const i=SelectorEngine.getElementFromSelector(this)||this.closest(`.${s}`);e.getOrCreateInstance(i)[t]()})},eventActionOnPlugin=(e,t,n,s,i=null)=>{eventAction(`${t}.${e.NAME}`,n,t=>{const n=t.targets.filter(Boolean).map(t=>e.getOrCreateInstance(t));"function"==typeof i&&i({...t,instances:n});for(const e of n)e[s]()})},eventAction=(e,t,n)=>{const s=`${t}:not(.disabled):not(:disabled)`;EventHandler.on(document,e,s,function(e){["A","AREA"].includes(this.tagName)&&e.preventDefault();const t=SelectorEngine.getSelectorFromElement(this),s=t?SelectorEngine.find(t):[this];n({targets:s,event:e})})},NAME$k="alert",DATA_KEY$g="bs.alert",EVENT_KEY$h=".bs.alert",EVENT_CLOSE="close.bs.alert",EVENT_CLOSED="closed.bs.alert",CLASS_NAME_FADE$3="fade",CLASS_NAME_SHOW$6="show";class Alert extends BaseComponent{static get NAME(){return NAME$k}close(){if(EventHandler.trigger(this._element,EVENT_CLOSE).defaultPrevented)return;this._element.classList.remove("show");const e=this._element.classList.contains("fade");this._queueCallback(()=>this._destroyElement(),this._element,e)}_destroyElement(){this._element.remove(),EventHandler.trigger(this._element,EVENT_CLOSED),this.dispose()}}enableDismissTrigger(Alert,"close");const NAME$j="button",DATA_KEY$f="bs.button",EVENT_KEY$g=`.${DATA_KEY$f}`,DATA_API_KEY$b=".data-api",CLASS_NAME_ACTIVE$4="active",SELECTOR_DATA_TOGGLE$a='[data-bs-toggle="button"]',EVENT_CLICK_DATA_API$8=`click${EVENT_KEY$g}.data-api`;class Button extends BaseComponent{static get NAME(){return NAME$j}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}}EventHandler.on(document,EVENT_CLICK_DATA_API$8,SELECTOR_DATA_TOGGLE$a,e=>{e.preventDefault();const t=e.target.closest(SELECTOR_DATA_TOGGLE$a);Button.getOrCreateInstance(t).toggle()});const NAME$i="swipe",EVENT_KEY$f=".bs.swipe",EVENT_TOUCHSTART="touchstart.bs.swipe",EVENT_TOUCHMOVE="touchmove.bs.swipe",EVENT_TOUCHEND="touchend.bs.swipe",EVENT_POINTERDOWN="pointerdown.bs.swipe",EVENT_POINTERUP="pointerup.bs.swipe",POINTER_TYPE_TOUCH="touch",POINTER_TYPE_PEN="pen",CLASS_NAME_POINTER_EVENT="pointer-event",SWIPE_THRESHOLD=40,Default$h={endCallback:null,leftCallback:null,rightCallback:null,upCallback:null,downCallback:null},DefaultType$h={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)",upCallback:"(function|null)",downCallback:"(function|null)"};class Swipe extends Config{constructor(e,t){super(),this._element=e,e&&Swipe.isSupported()&&(this._config=this._getConfig(t),this._deltaX=0,this._deltaY=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Default$h}static get DefaultType(){return DefaultType$h}static get NAME(){return NAME$i}dispose(){EventHandler.off(this._element,".bs.swipe")}_start(e){if(!this._supportPointerEvents)return this._deltaX=e.touches[0].clientX,void(this._deltaY=e.touches[0].clientY);this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX,this._deltaY=e.clientY)}_end(e){this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX-this._deltaX,this._deltaY=e.clientY-this._deltaY),this._handleSwipe(),execute(this._config.endCallback)}_move(e){if(e.touches&&e.touches.length>1)return this._deltaX=0,void(this._deltaY=0);this._deltaX=e.touches[0].clientX-this._deltaX,this._deltaY=e.touches[0].clientY-this._deltaY}_handleSwipe(){const e=Math.abs(this._deltaX),t=Math.abs(this._deltaY);if(t>e&&t>40){const e=this._deltaY>0?"down":"up";return this._deltaX=0,this._deltaY=0,void execute("down"===e?this._config.downCallback:this._config.upCallback)}if(e>40){const t=e/this._deltaX;if(this._deltaX=0,this._deltaY=0,!t)return;return void execute(t>0?this._config.rightCallback:this._config.leftCallback)}this._deltaX=0,this._deltaY=0}_initEvents(){this._supportPointerEvents?(EventHandler.on(this._element,EVENT_POINTERDOWN,e=>this._start(e)),EventHandler.on(this._element,EVENT_POINTERUP,e=>this._end(e)),this._element.classList.add("pointer-event")):(EventHandler.on(this._element,EVENT_TOUCHSTART,e=>this._start(e)),EventHandler.on(this._element,EVENT_TOUCHMOVE,e=>this._move(e)),EventHandler.on(this._element,EVENT_TOUCHEND,e=>this._end(e)))}_eventIsPointerPenTouch(e){return this._supportPointerEvents&&("pen"===e.pointerType||"touch"===e.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const NAME$h="carousel",DATA_KEY$e="bs.carousel",EVENT_KEY$e=`.${DATA_KEY$e}`,DATA_API_KEY$a=".data-api",ARROW_LEFT_KEY$2="ArrowLeft",ARROW_RIGHT_KEY$2="ArrowRight",TOUCHEVENT_COMPAT_WAIT=500,ORDER_NEXT="next",ORDER_PREV="prev",DIRECTION_LEFT="left",DIRECTION_RIGHT="right",EVENT_SLIDE=`slide${EVENT_KEY$e}`,EVENT_SLID=`slid${EVENT_KEY$e}`,EVENT_KEYDOWN$1=`keydown${EVENT_KEY$e}`,EVENT_MOUSEENTER$2=`mouseenter${EVENT_KEY$e}`,EVENT_MOUSELEAVE$1=`mouseleave${EVENT_KEY$e}`,EVENT_DRAG_START=`dragstart${EVENT_KEY$e}`,EVENT_LOAD_DATA_API$3=`load${EVENT_KEY$e}.data-api`,EVENT_CLICK_DATA_API$7=`click${EVENT_KEY$e}.data-api`,CLASS_NAME_CAROUSEL="carousel",CLASS_NAME_ACTIVE$3="active",CLASS_NAME_SLIDE="slide",CLASS_NAME_END="carousel-item-end",CLASS_NAME_START="carousel-item-start",CLASS_NAME_NEXT="carousel-item-next",CLASS_NAME_PREV="carousel-item-prev",SELECTOR_ACTIVE=".active",SELECTOR_ITEM=".carousel-item",SELECTOR_ACTIVE_ITEM=".active.carousel-item",SELECTOR_ITEM_IMG=".carousel-item img",SELECTOR_INDICATORS=".carousel-indicators",SELECTOR_DATA_SLIDE="[data-bs-slide], [data-bs-slide-to]",SELECTOR_DATA_RIDE='[data-bs-ride="carousel"]',KEY_TO_DIRECTION={[ARROW_LEFT_KEY$2]:"right",[ARROW_RIGHT_KEY$2]:"left"},Default$g={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},DefaultType$g={interval:"number",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class Carousel extends BaseComponent{constructor(e,t){super(e,t),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=SelectorEngine.findOne(SELECTOR_INDICATORS,this._element),this._addEventListeners(),"carousel"===this._config.ride&&this.cycle()}static get Default(){return Default$g}static get DefaultType(){return DefaultType$g}static get NAME(){return NAME$h}next(){this._slide("next")}nextWhenVisible(){"visible"===document.visibilityState&&isVisible(this._element)&&this.next()}prev(){this._slide("prev")}pause(){this._isSliding&&triggerTransitionEnd(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?EventHandler.one(this._element,EVENT_SLID,()=>this.cycle()):this.cycle())}to(e){const t=this._getItems();if(e>t.length-1||e<0)return;if(this._isSliding)return void EventHandler.one(this._element,EVENT_SLID,()=>this.to(e));const n=this._getItemIndex(this._getActive());if(n===e)return;const s=e>n?"next":"prev";this._slide(s,t[e])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(e){return e.defaultInterval=e.interval,e}_addEventListeners(){this._config.keyboard&&EventHandler.on(this._element,EVENT_KEYDOWN$1,e=>this._keydown(e)),"hover"===this._config.pause&&(EventHandler.on(this._element,EVENT_MOUSEENTER$2,()=>this.pause()),EventHandler.on(this._element,EVENT_MOUSELEAVE$1,()=>this._maybeEnableCycle())),this._config.touch&&Swipe.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const e of SelectorEngine.find(SELECTOR_ITEM_IMG,this._element))EventHandler.on(e,EVENT_DRAG_START,e=>e.preventDefault());const e={leftCallback:()=>this._slide(this._directionToOrder("left")),rightCallback:()=>this._slide(this._directionToOrder("right")),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),500+this._config.interval))}};this._swipeHelper=new Swipe(this._element,e)}_keydown(e){if(/input|textarea/i.test(e.target.tagName))return;const t=KEY_TO_DIRECTION[e.key];t&&(e.preventDefault(),this._slide(this._directionToOrder(t)))}_getItemIndex(e){return this._getItems().indexOf(e)}_setActiveIndicatorElement(e){if(!this._indicatorsElement)return;const t=SelectorEngine.findOne(".active",this._indicatorsElement);t.classList.remove("active"),t.removeAttribute("aria-current");const n=SelectorEngine.findOne(`[data-bs-slide-to="${e}"]`,this._indicatorsElement);n&&(n.classList.add("active"),n.setAttribute("aria-current","true"))}_updateInterval(){const e=this._activeElement||this._getActive();if(!e)return;const t=Number.parseInt(e.getAttribute("data-bs-interval"),10);this._config.interval=t||this._config.defaultInterval}_slide(e,t=null){if(this._isSliding)return;const n=this._getActive(),s="next"===e,i=t||getNextActiveElement(this._getItems(),n,s,this._config.wrap);if(i===n)return;const o=this._getItemIndex(i),a=t=>EventHandler.trigger(this._element,t,{relatedTarget:i,direction:this._orderToDirection(e),from:this._getItemIndex(n),to:o});if(a(EVENT_SLIDE).defaultPrevented)return;if(!n||!i)return;const r=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=i;const l=s?CLASS_NAME_START:CLASS_NAME_END,c=s?CLASS_NAME_NEXT:CLASS_NAME_PREV;i.classList.add(c),reflow(i),n.classList.add(l),i.classList.add(l),this._queueCallback(()=>{i.classList.remove(l,c),i.classList.add("active"),n.classList.remove("active",c,l),this._isSliding=!1,a(EVENT_SLID)},n,this._isAnimated()),r&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element)}_getItems(){return SelectorEngine.find(SELECTOR_ITEM,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(e){return isRTL()?"left"===e?"prev":"next":"left"===e?"next":"prev"}_orderToDirection(e){return isRTL()?"prev"===e?"left":"right":"prev"===e?"right":"left"}}EventHandler.on(document,EVENT_CLICK_DATA_API$7,SELECTOR_DATA_SLIDE,function(e){const t=SelectorEngine.getElementFromSelector(this);if(!t||!t.classList.contains("carousel"))return;e.preventDefault();const n=Carousel.getOrCreateInstance(t),s=this.getAttribute("data-bs-slide-to");return s?(n.to(s),void n._maybeEnableCycle()):"next"===Manipulator.getDataAttribute(this,"slide")?(n.next(),void n._maybeEnableCycle()):(n.prev(),void n._maybeEnableCycle())}),EventHandler.on(window,EVENT_LOAD_DATA_API$3,()=>{const e=SelectorEngine.find(SELECTOR_DATA_RIDE);for(const t of e)Carousel.getOrCreateInstance(t)});const NAME$g="collapse",DATA_KEY$d="bs.collapse",EVENT_KEY$d=`.${DATA_KEY$d}`,DATA_API_KEY$9=".data-api",EVENT_SHOW$7=`show${EVENT_KEY$d}`,EVENT_SHOWN$6=`shown${EVENT_KEY$d}`,EVENT_HIDE$6=`hide${EVENT_KEY$d}`,EVENT_HIDDEN$8=`hidden${EVENT_KEY$d}`,EVENT_CLICK_DATA_API$6=`click${EVENT_KEY$d}.data-api`,CLASS_NAME_SHOW$5="show",CLASS_NAME_COLLAPSE="collapse",CLASS_NAME_COLLAPSING="collapsing",CLASS_NAME_COLLAPSED="collapsed",CLASS_NAME_DEEPER_CHILDREN=":scope .collapse .collapse",CLASS_NAME_HORIZONTAL="collapse-horizontal",WIDTH="width",HEIGHT="height",SELECTOR_ACTIVES=".collapse.show, .collapse.collapsing",SELECTOR_DATA_TOGGLE$9='[data-bs-toggle="collapse"]',Default$f={parent:null,toggle:!0},DefaultType$f={parent:"(null|element)",toggle:"boolean"};class Collapse extends BaseComponent{constructor(e,t){super(e,t),this._isTransitioning=!1,this._triggerArray=[];const n=SelectorEngine.find(SELECTOR_DATA_TOGGLE$9);for(const e of n){const t=SelectorEngine.getSelectorFromElement(e),n=SelectorEngine.find(t).filter(e=>e===this._element);null!==t&&n.length&&this._triggerArray.push(e)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Default$f}static get DefaultType(){return DefaultType$f}static get NAME(){return NAME$g}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e=[];if(this._config.parent&&(e=this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(e=>e!==this._element).map(e=>Collapse.getOrCreateInstance(e,{toggle:!1}))),e.length&&e[0]._isTransitioning)return;if(EventHandler.trigger(this._element,EVENT_SHOW$7).defaultPrevented)return;for(const t of e)t.hide();const t=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[t]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n=`scroll${t[0].toUpperCase()+t.slice(1)}`;this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove("collapsing"),this._element.classList.add("collapse","show"),this._element.style[t]="",EventHandler.trigger(this._element,EVENT_SHOWN$6)},this._element,!0),this._element.style[t]=`${this._element[n]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(EventHandler.trigger(this._element,EVENT_HIDE$6).defaultPrevented)return;const e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,reflow(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");for(const e of this._triggerArray){const t=SelectorEngine.getElementFromSelector(e);t&&!this._isShown(t)&&this._addAriaAndCollapsedClass([e],!1)}this._isTransitioning=!0,this._element.style[e]="",this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove("collapsing"),this._element.classList.add("collapse"),EventHandler.trigger(this._element,EVENT_HIDDEN$8)},this._element,!0)}_isShown(e=this._element){return e.classList.contains("show")}_configAfterMerge(e){return e.toggle=Boolean(e.toggle),e.parent=getElement(e.parent),e}_getDimension(){return this._element.classList.contains("collapse-horizontal")?WIDTH:HEIGHT}_initializeChildren(){if(!this._config.parent)return;const e=this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$9);for(const t of e){const e=SelectorEngine.getElementFromSelector(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}}_getFirstLevelChildren(e){const t=SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN,this._config.parent);return SelectorEngine.find(e,this._config.parent).filter(e=>!t.includes(e))}_addAriaAndCollapsedClass(e,t){if(e.length)for(const n of e)n.classList.toggle("collapsed",!t),n.setAttribute("aria-expanded",t)}}EventHandler.on(document,EVENT_CLICK_DATA_API$6,SELECTOR_DATA_TOGGLE$9,function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();for(const e of SelectorEngine.getMultipleElementsFromSelector(this))Collapse.getOrCreateInstance(e,{toggle:!1}).toggle()});const BREAKPOINTS={sm:576,md:768,lg:1024,xl:1280,"2xl":1536},parseResponsivePlacement=(e,t="bottom")=>{if(!e||!e.includes(":"))return null;const n=e.split(/\s+/),s={xs:t};for(const e of n)if(e.includes(":")){const[t,n]=e.split(":");void 0!==BREAKPOINTS[t]&&(s[t]=n)}else s.xs=e;return s},getResponsivePlacement=(e,t="bottom")=>{if(!e)return t;const n=window.innerWidth;let s=e.xs||t;const i=["sm","md","lg","xl","2xl"];for(const t of i)n>=BREAKPOINTS[t]&&e[t]&&(s=e[t]);return s},createBreakpointListeners=e=>{const t=[];for(const n of Object.keys(BREAKPOINTS)){const s=BREAKPOINTS[n],i=window.matchMedia(`(min-width: ${s}px)`);i.addEventListener("change",e),t.push({mql:i,handler:e})}return t},disposeBreakpointListeners=e=>{for(const{mql:t,handler:n}of e)t.removeEventListener("change",n)},NAME$f="menu",DATA_KEY$c="bs.menu",EVENT_KEY$c=".bs.menu",DATA_API_KEY$8=".data-api",ESCAPE_KEY$1="Escape",TAB_KEY$1="Tab",ARROW_UP_KEY$2="ArrowUp",ARROW_DOWN_KEY$2="ArrowDown",ARROW_LEFT_KEY$1="ArrowLeft",ARROW_RIGHT_KEY$1="ArrowRight",HOME_KEY$2="Home",END_KEY$2="End",ENTER_KEY$1="Enter",SPACE_KEY$1=" ",RIGHT_MOUSE_BUTTON=2,SUBMENU_CLOSE_DELAY=100,EVENT_HIDE$5="hide.bs.menu",EVENT_HIDDEN$7="hidden.bs.menu",EVENT_SHOW$6="show.bs.menu",EVENT_SHOWN$5="shown.bs.menu",EVENT_CLICK_DATA_API$5="click.bs.menu.data-api",EVENT_KEYDOWN_DATA_API="keydown.bs.menu.data-api",EVENT_KEYUP_DATA_API="keyup.bs.menu.data-api",CLASS_NAME_SHOW$4="show",SELECTOR_DATA_TOGGLE$8='[data-bs-toggle="menu"]:not(.disabled):not(:disabled)',SELECTOR_MENU$2=".menu",SELECTOR_SUBMENU=".submenu",SELECTOR_SUBMENU_TOGGLE=".submenu > .menu-item",SELECTOR_NAVBAR_NAV=".navbar-nav",SELECTOR_VISIBLE_ITEMS$1=".menu-item:not(.disabled):not(:disabled)",DEFAULT_PLACEMENT="bottom-start",SUBMENU_PLACEMENT="end-start",resolveLogicalPlacement=e=>isRTL()?e.replace(/^start(?=-|$)/,"right").replace(/^end(?=-|$)/,"left"):e.replace(/^start(?=-|$)/,"left").replace(/^end(?=-|$)/,"right"),triangleSign=(e,t,n)=>(e.x-n.x)*(t.y-n.y)-(t.x-n.x)*(e.y-n.y),Default$e={autoClose:!0,boundary:"clippingParents",container:!1,display:"dynamic",offset:[0,2],floatingConfig:null,menu:null,placement:"bottom-start",reference:"toggle",strategy:"absolute",submenuTrigger:"both",submenuDelay:100},DefaultType$e={autoClose:"(boolean|string)",boundary:"(string|element)",container:"(string|element|boolean)",display:"string",offset:"(array|string|function)",floatingConfig:"(null|object|function)",menu:"(null|element)",placement:"string",reference:"(string|element|object)",strategy:"string",submenuTrigger:"string",submenuDelay:"number"};class Menu extends BaseComponent{static _openInstances=(()=>new Set)();constructor(e,t){if(void 0===computePosition)throw new TypeError("Bootstrap's menus require Floating UI (https://floating-ui.com)");super(e,t),this._floatingCleanup=null,this._mediaQueryListeners=[],this._responsivePlacements=null,this._parent=this._element.parentNode,this._isSubmenu=this._parent.classList?.contains("submenu"),this._openSubmenus=new Map,this._submenuCloseTimeouts=new Map,this._hoverIntentData=null,this._menu=this._config.menu||this._findMenu(),this._menuOriginalParent=this._menu?.parentNode,this._parseResponsivePlacements(),this._setupSubmenuListeners()}static get Default(){return Default$e}static get DefaultType(){return DefaultType$e}static get NAME(){return"menu"}toggle(){return this._isShown()?this.hide():this.show()}show(){if(isDisabled(this._element)||this._isShown())return;const e={relatedTarget:this._element};if(!EventHandler.trigger(this._element,EVENT_SHOW$6,e).defaultPrevented){if(this._moveMenuToContainer(),this._createFloating(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const e of document.body.children)EventHandler.on(e,"mouseover",noop);this._element.focus({focusVisible:!1}),this._element.setAttribute("aria-expanded","true"),this._menu.classList.add("show"),this._element.classList.add("show"),this._parent&&this._parent.classList.add("show"),Menu._openInstances.add(this),EventHandler.trigger(this._element,EVENT_SHOWN$5,e)}}hide(){if(isDisabled(this._element)||!this._isShown())return;const e={relatedTarget:this._element};this._completeHide(e)}dispose(){this._disposeFloating(),this._restoreMenuToOriginalParent(),this._disposeMediaQueryListeners(),this._closeAllSubmenus(),this._clearAllSubmenuTimeouts(),Menu._openInstances.delete(this),super.dispose()}update(){this._floatingCleanup&&this._updateFloatingPosition()}_findMenu(){return SelectorEngine.next(this._element,".menu")[0]||SelectorEngine.prev(this._element,".menu")[0]||SelectorEngine.findOne(".menu",this._parent)}_completeHide(e){if(!EventHandler.trigger(this._element,EVENT_HIDE$5,e).defaultPrevented){if(this._closeAllSubmenus(),"ontouchstart"in document.documentElement)for(const e of document.body.children)EventHandler.off(e,"mouseover",noop);this._disposeFloating(),this._restoreMenuToOriginalParent(),this._menu.classList.remove("show"),this._element.classList.remove("show"),this._parent&&this._parent.classList.remove("show"),this._element.setAttribute("aria-expanded","false"),Manipulator.removeDataAttribute(this._menu,"placement"),Manipulator.removeDataAttribute(this._menu,"display"),Menu._openInstances.delete(this),EventHandler.trigger(this._element,EVENT_HIDDEN$7,e)}}_getConfig(e){if("object"==typeof(e=super._getConfig(e)).reference&&!isElement(e.reference)&&"function"!=typeof e.reference.getBoundingClientRect)throw new TypeError(`${"menu".toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return e}_createFloating(){if("static"===this._config.display)return void Manipulator.setDataAttribute(this._menu,"display","static");let e=this._element;"parent"===this._config.reference?e=this._parent:isElement(this._config.reference)?e=getElement(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference),this._updateFloatingPosition(e),this._floatingCleanup=autoUpdate(e,this._menu,()=>this._updateFloatingPosition(e))}async _updateFloatingPosition(e=null){if(!this._menu)return;e||(e="parent"===this._config.reference?this._parent:isElement(this._config.reference)?getElement(this._config.reference):"object"==typeof this._config.reference?this._config.reference:this._element);const t=this._getPlacement(),n=this._getFloatingMiddleware(),s=this._getFloatingConfig(t,n);await this._applyFloatingPosition(e,this._menu,s.placement,s.middleware,s.strategy)}_isShown(){return this._menu.classList.contains("show")}_getPlacement(){const e=this._responsivePlacements?getResponsivePlacement(this._responsivePlacements,"bottom-start"):this._config.placement;return resolveLogicalPlacement(e)}_parseResponsivePlacements(){this._responsivePlacements=parseResponsivePlacement(this._config.placement,"bottom-start"),this._responsivePlacements&&this._setupMediaQueryListeners()}_setupMediaQueryListeners(){this._disposeMediaQueryListeners(),this._mediaQueryListeners=createBreakpointListeners(()=>{this._isShown()&&this._updateFloatingPosition()})}_disposeMediaQueryListeners(){disposeBreakpointListeners(this._mediaQueryListeners),this._mediaQueryListeners=[]}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?({placement:t,rects:n})=>e({placement:t,reference:n.reference,floating:n.floating},this._element):e}_getFloatingMiddleware(){const e=this._getOffset();return[offset("function"==typeof e?e:{mainAxis:e[1]||0,crossAxis:e[0]||0}),flip({fallbackPlacements:this._getFallbackPlacements()}),shift({boundary:"clippingParents"===this._config.boundary?"clippingAncestors":this._config.boundary})]}_getFallbackPlacements(){return{bottom:["top","bottom-start","bottom-end","top-start","top-end"],"bottom-start":["top-start","bottom-end","top-end"],"bottom-end":["top-end","bottom-start","top-start"],top:["bottom","top-start","top-end","bottom-start","bottom-end"],"top-start":["bottom-start","top-end","bottom-end"],"top-end":["bottom-end","top-start","bottom-start"],right:["left","right-start","right-end","left-start","left-end"],"right-start":["left-start","right-end","left-end","top-start","bottom-start"],"right-end":["left-end","right-start","left-start","top-end","bottom-end"],left:["right","left-start","left-end","right-start","right-end"],"left-start":["right-start","left-end","right-end","top-start","bottom-start"],"left-end":["right-end","left-start","right-start","top-end","bottom-end"]}[this._getPlacement()]||["top","bottom","right","left"]}_getFloatingConfig(e,t){const n={placement:e,middleware:t,strategy:this._config.strategy};return{...n,...execute(this._config.floatingConfig,[void 0,n])}}_disposeFloating(){this._floatingCleanup&&(this._floatingCleanup(),this._floatingCleanup=null)}_getContainer(){const{container:e}=this._config;return!1===e?null:!0===e?document.body:getElement(e)}_moveMenuToContainer(){const e=this._getContainer();e&&this._menu&&this._menu.parentNode!==e&&e.append(this._menu)}_restoreMenuToOriginalParent(){this._menuOriginalParent&&this._menu&&this._menu.parentNode!==this._menuOriginalParent&&this._menuOriginalParent.append(this._menu)}async _applyFloatingPosition(e,t,n,s,i="absolute"){if(!t.isConnected)return null;const{x:o,y:a,placement:r}=await computePosition(e,t,{placement:n,middleware:s,strategy:i});return t.isConnected?(Object.assign(t.style,{position:i,left:`${o}px`,top:`${a}px`,margin:"0"}),Manipulator.setDataAttribute(t,"placement",r),r):null}_setupSubmenuListeners(){"hover"!==this._config.submenuTrigger&&"both"!==this._config.submenuTrigger||(EventHandler.on(this._menu,"mouseenter",".submenu > .menu-item",e=>{this._onSubmenuTriggerEnter(e)}),EventHandler.on(this._menu,"mouseleave",".submenu",e=>{this._onSubmenuLeave(e)}),EventHandler.on(this._menu,"mousemove",e=>{this._trackMousePosition(e)})),"click"!==this._config.submenuTrigger&&"both"!==this._config.submenuTrigger||EventHandler.on(this._menu,"click",".submenu > .menu-item",e=>{this._onSubmenuTriggerClick(e)})}_onSubmenuTriggerEnter(e){const t=e.target.closest(".submenu > .menu-item");if(!t)return;const n=t.closest(".submenu"),s=SelectorEngine.findOne(".menu",n);s&&(this._cancelSubmenuCloseTimeout(s),this._closeSiblingSubmenus(n),this._openSubmenu(t,s,n))}_onSubmenuLeave(e){const t=e.target.closest(".submenu"),n=SelectorEngine.findOne(".menu",t);n&&this._openSubmenus.has(n)&&(this._isMovingTowardSubmenu(e,n)||this._scheduleSubmenuClose(n,t))}_onSubmenuTriggerClick(e){const t=e.target.closest(".submenu > .menu-item");if(!t)return;e.preventDefault(),e.stopPropagation();const n=t.closest(".submenu"),s=SelectorEngine.findOne(".menu",n);s&&(this._openSubmenus.has(s)?this._closeSubmenu(s,n):(this._closeSiblingSubmenus(n),this._openSubmenu(t,s,n)))}_openSubmenu(e,t,n){if(this._openSubmenus.has(t))return;e.setAttribute("aria-expanded","true"),e.setAttribute("aria-haspopup","true"),t.classList.add("show"),n.classList.add("show");const s=this._createSubmenuFloating(e,t,n);this._openSubmenus.set(t,s),EventHandler.on(t,"mouseenter",()=>{this._cancelSubmenuCloseTimeout(t)})}_closeSubmenu(e,t){if(!this._openSubmenus.has(e))return;const n=SelectorEngine.find(".submenu .menu.show",e);for(const e of n){const t=e.closest(".submenu");this._closeSubmenu(e,t)}const s=SelectorEngine.findOne(".submenu > .menu-item",t),i=this._openSubmenus.get(e);i&&i(),this._openSubmenus.delete(e),EventHandler.off(e,"mouseenter"),s&&s.setAttribute("aria-expanded","false"),e.classList.remove("show"),t.classList.remove("show"),e.style.position="",e.style.left="",e.style.top="",e.style.margin=""}_closeAllSubmenus(){for(const[e]of this._openSubmenus){const t=e.closest(".submenu");this._closeSubmenu(e,t)}}_closeSiblingSubmenus(e){const t=e.parentNode,n=SelectorEngine.find(".submenu > .menu.show",t);for(const t of n){const n=t.closest(".submenu");n!==e&&this._closeSubmenu(t,n)}}_createSubmenuFloating(e,t,n){const s=n,i=resolveLogicalPlacement("end-start"),o=[offset({mainAxis:0,crossAxis:-4}),flip({fallbackPlacements:[resolveLogicalPlacement("start-start"),resolveLogicalPlacement("end-end"),resolveLogicalPlacement("start-end")]}),shift({padding:8})],a=()=>this._applyFloatingPosition(s,t,i,o);return a(),autoUpdate(s,t,a)}_scheduleSubmenuClose(e,t){this._cancelSubmenuCloseTimeout(e);const n=setTimeout(()=>{this._closeSubmenu(e,t),this._submenuCloseTimeouts.delete(e)},this._config.submenuDelay);this._submenuCloseTimeouts.set(e,n)}_cancelSubmenuCloseTimeout(e){const t=this._submenuCloseTimeouts.get(e);t&&(clearTimeout(t),this._submenuCloseTimeouts.delete(e))}_clearAllSubmenuTimeouts(){for(const e of this._submenuCloseTimeouts.values())clearTimeout(e);this._submenuCloseTimeouts.clear()}_trackMousePosition(e){this._hoverIntentData={x:e.clientX,y:e.clientY,timestamp:Date.now()}}_isMovingTowardSubmenu(e,t){if(!this._hoverIntentData)return!1;const n=t.getBoundingClientRect(),s={x:e.clientX,y:e.clientY},i={x:this._hoverIntentData.x,y:this._hoverIntentData.y},o=isRTL()?n.right:n.left,a={x:o,y:n.top},r={x:o,y:n.bottom};return this._pointInTriangle(s,i,a,r)}_pointInTriangle(e,t,n,s){const i=triangleSign(e,t,n),o=triangleSign(e,n,s),a=triangleSign(e,s,t);return!((i<0||o<0||a<0)&&(i>0||o>0||a>0))}_selectMenuItem({key:e,target:t}){const n=t.closest(".menu")||this._menu,s=SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS$1}`,n).filter(e=>isVisible(e));s.length&&getNextActiveElement(s,t,e===ARROW_DOWN_KEY$2,!s.includes(t)).focus()}_handleSubmenuKeydown(e){const{key:t,target:n}=e,s=isRTL(),i=s?ARROW_LEFT_KEY$1:ARROW_RIGHT_KEY$1,o=s?ARROW_RIGHT_KEY$1:ARROW_LEFT_KEY$1,a=n.closest(".submenu"),r=a&&n.matches(".submenu > .menu-item");if((t===ENTER_KEY$1||t===SPACE_KEY$1)&&r){e.preventDefault(),e.stopPropagation();const t=SelectorEngine.findOne(".menu",a);return t&&(this._closeSiblingSubmenus(a),this._openSubmenu(n,t,a),requestAnimationFrame(()=>{const e=SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS$1,t);e&&e.focus()})),!0}if(t===i&&r){e.preventDefault(),e.stopPropagation();const t=SelectorEngine.findOne(".menu",a);return t&&(this._closeSiblingSubmenus(a),this._openSubmenu(n,t,a),requestAnimationFrame(()=>{const e=SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS$1,t);e&&e.focus()})),!0}if(t===o){const t=n.closest(".menu"),s=t?.closest(".submenu");if(s){e.preventDefault(),e.stopPropagation();const n=SelectorEngine.findOne(".submenu > .menu-item",s);return this._closeSubmenu(t,s),n&&n.focus(),!0}}if(t===HOME_KEY$2||t===END_KEY$2){e.preventDefault(),e.stopPropagation();const s=n.closest(".menu"),i=SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS$1}`,s).filter(e=>isVisible(e));return i.length&&(t===HOME_KEY$2?i[0]:i.at(-1)).focus(),!0}return!1}static clearMenus(e){if(2!==e.button&&("keyup"!==e.type||"Tab"===e.key))for(const t of Menu._openInstances){if(!1===t._config.autoClose)continue;const n=e.composedPath(),s=n.includes(t._menu);if(n.includes(t._element)||"inside"===t._config.autoClose&&!s||"outside"===t._config.autoClose&&s)continue;if(t._menu.contains(e.target)&&("keyup"===e.type&&"Tab"===e.key||/input|select|option|textarea|form/i.test(e.target.tagName)))continue;const i={relatedTarget:t._element};"click"===e.type&&(i.clickEvent=e),t._completeHide(i)}}static dataApiKeydownHandler(e){const t=/input|textarea/i.test(e.target.tagName),n="Escape"===e.key,s=[ARROW_UP_KEY$2,ARROW_DOWN_KEY$2].includes(e.key),i=[ARROW_LEFT_KEY$1,ARROW_RIGHT_KEY$1].includes(e.key),o=[HOME_KEY$2,END_KEY$2].includes(e.key),a=[ENTER_KEY$1,SPACE_KEY$1].includes(e.key),r=e.target.matches(".submenu > .menu-item");if(!(s||n||i||o||a&&r))return;if(t&&!n)return;const l=this.matches(SELECTOR_DATA_TOGGLE$8)?this:SelectorEngine.prev(this,SELECTOR_DATA_TOGGLE$8)[0]||SelectorEngine.next(this,SELECTOR_DATA_TOGGLE$8)[0]||SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$8,e.delegateTarget.parentNode);if(!l)return;const c=Menu.getOrCreateInstance(l);if(!(i||o||a&&r)||!c._handleSubmenuKeydown(e)){if(s)return e.preventDefault(),e.stopPropagation(),c.show(),void c._selectMenuItem(e);if(n&&c._isShown()){e.preventDefault(),e.stopPropagation();const t=e.target.closest(".menu"),n=t?.closest(".submenu");if(n&&c._openSubmenus.size>0){const e=SelectorEngine.findOne(".submenu > .menu-item",n);return c._closeSubmenu(t,n),void(e&&e.focus())}c.hide(),l.focus()}}}}EventHandler.on(document,EVENT_KEYDOWN_DATA_API,SELECTOR_DATA_TOGGLE$8,Menu.dataApiKeydownHandler),EventHandler.on(document,EVENT_KEYDOWN_DATA_API,".menu",Menu.dataApiKeydownHandler),EventHandler.on(document,EVENT_CLICK_DATA_API$5,Menu.clearMenus),EventHandler.on(document,EVENT_KEYUP_DATA_API,Menu.clearMenus),EventHandler.on(document,EVENT_CLICK_DATA_API$5,SELECTOR_DATA_TOGGLE$8,function(e){e.preventDefault(),Menu.getOrCreateInstance(this).toggle()});const NAME$e="combobox",DATA_KEY$b="bs.combobox",EVENT_KEY$b=`.${DATA_KEY$b}`,DATA_API_KEY$7=".data-api",ESCAPE_KEY="Escape",TAB_KEY="Tab",ARROW_UP_KEY$1="ArrowUp",ARROW_DOWN_KEY$1="ArrowDown",HOME_KEY$1="Home",END_KEY$1="End",ENTER_KEY="Enter",SPACE_KEY=" ",EVENT_CHANGE$2=`change${EVENT_KEY$b}`,EVENT_SHOW$5=`show${EVENT_KEY$b}`,EVENT_SHOWN$4=`shown${EVENT_KEY$b}`,EVENT_HIDE$4=`hide${EVENT_KEY$b}`,EVENT_HIDDEN$6=`hidden${EVENT_KEY$b}`,EVENT_CLICK_DATA_API$4=`click${EVENT_KEY$b}.data-api`,CLASS_NAME_SHOW$3="show",CLASS_NAME_SELECTED="selected",CLASS_NAME_PLACEHOLDER="combobox-placeholder",SELECTOR_DATA_TOGGLE$7='[data-bs-toggle="combobox"]',SELECTOR_MENU$1=".menu",SELECTOR_MENU_ITEM=".menu-item[data-bs-value]",SELECTOR_VISIBLE_ITEMS=".menu-item[data-bs-value]:not(.disabled):not(:disabled)",SELECTOR_VALUE=".combobox-value",SELECTOR_SEARCH_INPUT=".combobox-search-input",SELECTOR_NO_RESULTS=".combobox-no-results",Default$d={boundary:"clippingParents",multiple:!1,name:null,offset:[0,2],placeholder:"",placement:"bottom-start",search:!1,searchNormalize:!1},DefaultType$d={boundary:"(string|element)",multiple:"boolean",name:"(string|null)",offset:"(array|string|function)",placeholder:"string",placement:"string",search:"boolean",searchNormalize:"boolean"};class Combobox extends BaseComponent{constructor(e,t){super(e,t),this._toggle=this._element,this._menu=SelectorEngine.next(this._toggle,".menu")[0],this._valueDisplay=SelectorEngine.findOne(SELECTOR_VALUE,this._toggle),this._searchInput=SelectorEngine.findOne(SELECTOR_SEARCH_INPUT,this._menu),this._noResults=SelectorEngine.findOne(SELECTOR_NO_RESULTS,this._menu),this._hiddenInput=null,this._menuInstance=null,this._createHiddenInput(),this._createMenuInstance(),this._syncInitialSelection(),this._addEventListeners()}static get Default(){return Default$d}static get DefaultType(){return DefaultType$d}static get NAME(){return NAME$e}toggle(){return this._isShown()?this.hide():this.show()}show(){isDisabled(this._toggle)||this._isShown()||EventHandler.trigger(this._toggle,EVENT_SHOW$5).defaultPrevented||(this._menuInstance.show(),this._searchInput&&(this._searchInput.value="",this._filterItems(""),requestAnimationFrame(()=>this._searchInput.focus())),EventHandler.trigger(this._toggle,EVENT_SHOWN$4))}hide(){this._isShown()&&(EventHandler.trigger(this._toggle,EVENT_HIDE$4).defaultPrevented||(this._menuInstance.hide(),EventHandler.trigger(this._toggle,EVENT_HIDDEN$6)))}dispose(){this._menuInstance&&(this._menuInstance.dispose(),this._menuInstance=null),this._hiddenInput&&(this._hiddenInput.remove(),this._hiddenInput=null),EventHandler.off(this._menu,EVENT_KEY$b),EventHandler.off(this._toggle,EVENT_KEY$b),super.dispose()}_isShown(){return this._menu.classList.contains("show")}_createHiddenInput(){const{name:e}=this._config;e&&(this._hiddenInput=document.createElement("input"),this._hiddenInput.type="hidden",this._hiddenInput.name=e,this._hiddenInput.value="",this._toggle.parentNode.insertBefore(this._hiddenInput,this._toggle))}_createMenuInstance(){this._menuInstance=new Menu(this._toggle,{menu:this._menu,autoClose:!this._config.multiple||"outside",boundary:this._config.boundary,offset:this._config.offset,placement:this._config.placement})}_syncInitialSelection(){this._getSelectedItems().length>0?(this._updateToggleText(),this._updateHiddenInput()):this._showPlaceholder()}_addEventListeners(){EventHandler.on(this._menu,"click",SELECTOR_MENU_ITEM,e=>{const t=e.target.closest(SELECTOR_MENU_ITEM);t&&!isDisabled(t)&&(e.preventDefault(),e.stopPropagation(),this._selectItem(t))}),EventHandler.on(this._toggle,"keydown",e=>{this._handleToggleKeydown(e)}),EventHandler.on(this._menu,"keydown",e=>{this._handleMenuKeydown(e)}),this._searchInput&&(EventHandler.on(this._searchInput,"input",()=>{this._filterItems(this._searchInput.value)}),EventHandler.on(this._searchInput,"keydown",e=>{if("ArrowDown"===e.key){e.preventDefault();const t=this._getVisibleItems();t.length>0&&t[0].focus()}"Escape"===e.key&&(this.hide(),this._toggle.focus())}))}_selectItem(e){if(this._config.multiple)e.classList.toggle("selected"),e.setAttribute("aria-selected",e.classList.contains("selected"));else{const t=SelectorEngine.find(".selected",this._menu);for(const e of t)e.classList.remove("selected"),e.setAttribute("aria-selected","false");e.classList.add("selected"),e.setAttribute("aria-selected","true")}this._updateToggleText(),this._updateHiddenInput();const t=this._config.multiple?this._getSelectedItems().map(e=>e.dataset.bsValue):e.dataset.bsValue;EventHandler.trigger(this._toggle,EVENT_CHANGE$2,{value:t,item:e}),this._config.multiple||(this.hide(),this._toggle.focus())}_updateToggleText(){const e=this._getSelectedItems();if(0!==e.length)if(this._valueDisplay.classList.remove("combobox-placeholder"),this._config.multiple&&e.length>1)this._valueDisplay.textContent=`${e.length} selected`;else{const t=e[0],n=SelectorEngine.findOne(".menu-item-content > span:first-child",t);this._valueDisplay.textContent=n?n.textContent:t.textContent.trim()}else this._showPlaceholder()}_showPlaceholder(){const{placeholder:e}=this._config;e&&(this._valueDisplay.textContent=e,this._valueDisplay.classList.add("combobox-placeholder"))}_updateHiddenInput(){if(!this._hiddenInput)return;const e=this._getSelectedItems().map(e=>e.dataset.bsValue);this._hiddenInput.value=this._config.multiple?e.join(","):e[0]||""}_getSelectedItems(){return SelectorEngine.find(".selected",this._menu)}_getVisibleItems(){return SelectorEngine.find(SELECTOR_VISIBLE_ITEMS,this._menu).filter(e=>isVisible(e))}_filterItems(e){const t=this._normalizeText(e.toLowerCase().trim()),n=SelectorEngine.find(SELECTOR_MENU_ITEM,this._menu);let s=0;for(const e of n){const n=this._normalizeText(e.textContent.toLowerCase().trim()),i=!t||n.includes(t);e.style.display=i?"":"none",i&&s++}this._noResults&&this._noResults.classList.toggle("d-none",s>0)}_normalizeText(e){return this._config.searchNormalize?e.normalize("NFD").replace(/[\u0300-\u036F]/g,""):e}_handleToggleKeydown(e){const{key:t}=e;if("ArrowDown"===t||"ArrowUp"===t){e.preventDefault(),this._isShown()||this.show();const n=this._getVisibleItems();return void(n.length>0&&("ArrowDown"===t?n[0]:n.at(-1)).focus())}"Enter"!==t&&" "!==t||this._isShown()||(e.preventDefault(),this.show())}_handleMenuKeydown(e){const{key:t,target:n}=e;if("Escape"===t)return e.preventDefault(),e.stopPropagation(),this.hide(),void this._toggle.focus();if("Tab"===t)return void this.hide();const s=n.matches("input");if("ArrowDown"===t||"ArrowUp"===t){e.preventDefault();const s=this._getVisibleItems();return void(s.length>0&&getNextActiveElement(s,n,"ArrowDown"===t,!s.includes(n)).focus())}if("Home"===t||"End"===t){e.preventDefault();const n=this._getVisibleItems();return void(n.length>0&&("Home"===t?n[0]:n.at(-1)).focus())}if(("Enter"===t||" "===t)&&!s){e.preventDefault();const t=n.closest(SELECTOR_MENU_ITEM);t&&!isDisabled(t)&&this._selectItem(t)}}static jQueryInterface(e){return this.each(function(){const t=Combobox.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}EventHandler.on(document,EVENT_CLICK_DATA_API$4,SELECTOR_DATA_TOGGLE$7,function(e){e.preventDefault(),Combobox.getOrCreateInstance(this).toggle()}),EventHandler.on(document,"DOMContentLoaded",()=>{for(const e of SelectorEngine.find(SELECTOR_DATA_TOGGLE$7))Combobox.getOrCreateInstance(e)});const NAME$d="datepicker",DATA_KEY$a="bs.datepicker",EVENT_KEY$a=`.${DATA_KEY$a}`,DATA_API_KEY$6=".data-api",EVENT_CHANGE$1=`change${EVENT_KEY$a}`,EVENT_SHOW$4=`show${EVENT_KEY$a}`,EVENT_SHOWN$3=`shown${EVENT_KEY$a}`,EVENT_HIDE$3=`hide${EVENT_KEY$a}`,EVENT_HIDDEN$5=`hidden${EVENT_KEY$a}`,EVENT_CLICK_DATA_API$3=`click${EVENT_KEY$a}.data-api`,EVENT_FOCUSIN_DATA_API=`focusin${EVENT_KEY$a}.data-api`,SELECTOR_DATA_TOGGLE$6='[data-bs-toggle="datepicker"]',HIDE_DELAY=100,Default$c={datepickerTheme:null,dateMin:null,dateMax:null,dateFormat:null,displayElement:null,displayMonthsCount:1,firstWeekday:1,inline:!1,locale:"default",positionElement:null,selectedDates:[],selectionMode:"single",placement:"left",vcpOptions:{}},DefaultType$c={datepickerTheme:"(null|string)",dateMin:"(null|string|number|object)",dateMax:"(null|string|number|object)",dateFormat:"(null|object|function)",displayElement:"(null|string|element|boolean)",displayMonthsCount:"number",firstWeekday:"number",inline:"boolean",locale:"string",positionElement:"(null|string|element)",selectedDates:"array",selectionMode:"string",placement:"string",vcpOptions:"object"};class Datepicker extends BaseComponent{constructor(e,t){super(e,t),this._calendar=null,this._isShown=!1,this._initCalendar()}static get Default(){return Default$c}static get DefaultType(){return DefaultType$c}static get NAME(){return NAME$d}toggle(){if(!this._config.inline)return this._isShown?this.hide():this.show()}show(){this._config.inline||!this._calendar||isDisabled(this._element)||this._isShown||EventHandler.trigger(this._element,EVENT_SHOW$4).defaultPrevented||(this._calendar.show(),this._isShown=!0,EventHandler.trigger(this._element,EVENT_SHOWN$3))}hide(){this._config.inline||this._calendar&&this._isShown&&(EventHandler.trigger(this._element,EVENT_HIDE$3).defaultPrevented||(this._calendar.hide(),this._isShown=!1,EventHandler.trigger(this._element,EVENT_HIDDEN$5)))}dispose(){this._themeObserver&&(this._themeObserver.disconnect(),this._themeObserver=null),this._calendar&&this._calendar.destroy(),this._calendar=null,super.dispose()}getSelectedDates(){const e=this._calendar?.context?.selectedDates;return e?[...e]:[]}setSelectedDates(e){this._calendar&&this._calendar.set({selectedDates:e})}_initCalendar(){this._isInput="INPUT"===this._element.tagName,this._isInline=this._config.inline,this._isInline&&!this._isInput&&(this._boundInput=this._element.querySelector('input[type="hidden"], input[name]')),this._positionElement=this._resolvePositionElement(),this._displayElement=this._resolveDisplayElement();const e=this._buildCalendarOptions();this._calendar=new Calendar(this._positionElement,e),this._calendar.init(),this._setupThemeObserver(),this._isInput&&this._element.value&&this._parseInputValue(),this._updateDisplayWithSelectedDates()}_updateDisplayWithSelectedDates(){const{selectedDates:e}=this._config;if(!e||0===e.length)return;const t=this._formatDateForInput(e);this._isInput&&(this._element.value=t),this._boundInput&&(this._boundInput.value=e.join(",")),this._displayElement&&(this._displayElement.textContent=t)}_resolvePositionElement(){let{positionElement:e}=this._config;if("string"==typeof e&&(e=document.querySelector(e)),!e&&this._isInput&&!this._isInline){const t=this._element.closest(".form-adorn");t&&(e=t)}return e||this._element}_resolveDisplayElement(){const{displayElement:e}=this._config;return"string"==typeof e?document.querySelector(e):!0===e||null===e&&!this._isInput&&!this._isInline?this._element.querySelector("[data-bs-datepicker-display]")||this._element:e}_getThemeAncestor(){return this._element.closest("[data-bs-theme]")}_getEffectiveTheme(){const{datepickerTheme:e}=this._config;if(e)return e;const t=this._getThemeAncestor();return t?.getAttribute("data-bs-theme")||null}_syncThemeAttribute(e){if(!e)return;const t=this._getEffectiveTheme();t?e.setAttribute("data-bs-theme",t):e.removeAttribute("data-bs-theme")}_setupThemeObserver(){const e=this._getThemeAncestor();e&&!this._config.datepickerTheme&&(this._themeObserver=new MutationObserver(()=>{this._syncThemeAttribute(this._calendar?.context?.mainElement)}),this._themeObserver.observe(e,{attributes:!0,attributeFilter:["data-bs-theme"]}))}_buildCalendarOptions(){const e=this._getEffectiveTheme(),t=e&&"auto"!==e?e:"system",n={...this._config.vcpOptions,inputMode:!this._isInline,positionToInput:this._config.placement,firstWeekday:this._config.firstWeekday,locale:this._config.locale,selectionDatesMode:this._config.selectionMode,selectedDates:this._config.selectedDates,displayMonthsCount:this._config.displayMonthsCount,type:this._config.displayMonthsCount>1?"multiple":"default",selectedTheme:t,themeAttrDetect:"[data-bs-theme]",onClickDate:(e,t)=>this._handleDateClick(e,t),onInit:e=>{this._syncThemeAttribute(e.context.mainElement)},onShow:()=>{this._isShown=!0,this._syncThemeAttribute(this._calendar.context.mainElement)},onHide:()=>{this._isShown=!1}};if(this._config.selectedDates.length>0){const e=this._parseDate(this._config.selectedDates[0]);n.selectedMonth=e.getMonth(),n.selectedYear=e.getFullYear()}return this._config.dateMin&&(n.dateMin=this._config.dateMin),this._config.dateMax&&(n.dateMax=this._config.dateMax),n}_handleDateClick(e,t){const n=[...e.context.selectedDates];if(n.length>0){const e=this._formatDateForInput(n);this._isInput&&(this._element.value=e),this._boundInput&&(this._boundInput.value=n.join(",")),this._displayElement&&(this._displayElement.textContent=e)}EventHandler.trigger(this._element,EVENT_CHANGE$1,{dates:n,event:t}),this._maybeHideAfterSelection(n)}_maybeHideAfterSelection(e){this._isInline||("single"===this._config.selectionMode&&e.length>0||"multiple-ranged"===this._config.selectionMode&&e.length>=2)&&setTimeout(()=>this.hide(),100)}_parseDate(e){const[t,n,s]=e.split("-");return new Date(t,n-1,s)}_formatDate(e){const t=this._parseDate(e),n="default"===this._config.locale?void 0:this._config.locale,{dateFormat:s}=this._config;return"function"==typeof s?s(t,n):s&&"object"==typeof s?new Intl.DateTimeFormat(n,s).format(t):t.toLocaleDateString(n)}_formatDateForInput(e){if(0===e.length)return"";if(1===e.length)return this._formatDate(e[0]);const t="multiple-ranged"===this._config.selectionMode?" – ":", ";return e.map(e=>this._formatDate(e)).join(t)}_parseInputValue(){const e=this._element.value.trim();if(!e)return;const t=new Date(e);if(!Number.isNaN(t.getTime())){const e=`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`;this._calendar.set({selectedDates:[e]})}}}EventHandler.on(document,EVENT_CLICK_DATA_API$3,SELECTOR_DATA_TOGGLE$6,function(e){"INPUT"!==this.tagName&&"true"!==this.dataset.bsInline&&(e.preventDefault(),Datepicker.getOrCreateInstance(this).toggle())}),EventHandler.on(document,EVENT_FOCUSIN_DATA_API,SELECTOR_DATA_TOGGLE$6,function(){"INPUT"===this.tagName&&Datepicker.getOrCreateInstance(this).show()}),EventHandler.on(document,`DOMContentLoaded${EVENT_KEY$a}.data-api`,()=>{for(const e of document.querySelectorAll(`${SELECTOR_DATA_TOGGLE$6}[data-bs-inline="true"]`))Datepicker.getOrCreateInstance(e)});const CLASS_NAME_OPEN="dialog-open";class DialogBase extends BaseComponent{constructor(e,t){super(e,t),this._isTransitioning=!1,this._openedAsModal=!1,this._addDialogListeners()}static get NAME(){return"dialogbase"}toggle(e){return this._element.open?this.hide():this.show(e)}show(e){if(this._element.open||this._isTransitioning)return;if(EventHandler.trigger(this._element,this.constructor.eventName("show"),{relatedTarget:e}).defaultPrevented)return;this._isTransitioning=!0,this._onBeforeShow();const{modal:t,preventBodyScroll:n}=this._getShowOptions();this._showElement({modal:t,preventBodyScroll:n}),this._queueCallback(()=>{this._isTransitioning=!1,EventHandler.trigger(this._element,this.constructor.eventName("shown"),{relatedTarget:e})},this._element,this._isAnimated())}hide(){this._element.open&&!this._isTransitioning&&(EventHandler.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented||(this._isTransitioning=!0,this._hideElement(),this._queueCallback(()=>{this._element.open&&this._closeAndCleanup(),this._element.classList.remove("hiding"),this._onAfterHide(),this._isTransitioning=!1,EventHandler.trigger(this._element,this.constructor.eventName("hidden"))},this._element,this._isAnimated())))}_getShowOptions(){return{modal:!0,preventBodyScroll:!0}}_onBeforeShow(){}_onAfterHide(){}_isAnimated(){return!this._element.classList.contains(this._getInstantClassName())}_getInstantClassName(){return"dialog-instant"}_getStaticClassName(){return"dialog-static"}_onCancel(){}_showElement({modal:e=!0,preventBodyScroll:t=!0}={}){this._openedAsModal=e,e?this._element.showModal():this._element.show(),t&&document.body.classList.add("dialog-open")}_hideElement(){this._hideChildComponents(),this._element.classList.add("hiding"),this._shouldDeferClose()||this._closeAndCleanup()}_closeAndCleanup(){this._element.close(),this._openedAsModal=!1,document.querySelector("dialog[open]:modal")||document.body.classList.remove("dialog-open")}_shouldDeferClose(){return!1}_triggerBackdropTransition(){if(EventHandler.trigger(this._element,this.constructor.eventName("hidePrevented")).defaultPrevented)return;const e=this._getStaticClassName();this._element.classList.add(e),this._queueCallback(()=>{this._element.classList.remove(e)},this._element)}_hideChildComponents(){for(const e of SelectorEngine.find('[data-bs-toggle="tooltip"], [data-bs-toggle="popover"]',this._element)){const t=Data.getAny(e);t&&"function"==typeof t.hide&&t.hide()}for(const e of SelectorEngine.find(".toast.show",this._element)){const t=Data.getAny(e);t&&"function"==typeof t.hide&&t.hide()}}_addDialogListeners(){const e=this.constructor.EVENT_KEY;EventHandler.on(this._element,"cancel",e=>{e.preventDefault(),this._config.keyboard?(this._onCancel(),this.hide()):this._triggerBackdropTransition()}),EventHandler.on(this._element,`keydown${e}`,e=>{"Escape"!==e.key||this._openedAsModal||(e.preventDefault(),this._config.keyboard&&(this._onCancel(),this.hide()))}),EventHandler.on(this._element,`click${e}`,e=>{e.target===this._element&&this._openedAsModal&&("static"!==this._config.backdrop?this.hide():this._triggerBackdropTransition())})}}const NAME$c="dialog",DATA_KEY$9="bs.dialog",EVENT_KEY$9=`.${DATA_KEY$9}`,DATA_API_KEY$5=".data-api",EVENT_SHOW$3=`show${EVENT_KEY$9}`,EVENT_HIDDEN$4=`hidden${EVENT_KEY$9}`,EVENT_CANCEL=`cancel${EVENT_KEY$9}`,EVENT_CLICK_DATA_API$2=`click${EVENT_KEY$9}.data-api`,CLASS_NAME_NONMODAL="dialog-nonmodal",CLASS_NAME_INSTANT="dialog-instant",CLASS_NAME_SWAP_IN="dialog-swap-in",SELECTOR_DATA_TOGGLE$5='[data-bs-toggle="dialog"]',Default$b={backdrop:!0,keyboard:!0,modal:!0},DefaultType$b={backdrop:"(boolean|string)",keyboard:"boolean",modal:"boolean"};class Dialog extends DialogBase{static get Default(){return Default$b}static get DefaultType(){return DefaultType$b}static get NAME(){return NAME$c}handleUpdate(){}_getShowOptions(){return{modal:this._config.modal,preventBodyScroll:this._config.modal}}_onBeforeShow(){this._config.modal||this._element.classList.add("dialog-nonmodal")}_onAfterHide(){this._element.classList.remove("dialog-nonmodal")}_shouldDeferClose(){return this._isAnimated()}_onCancel(){EventHandler.trigger(this._element,EVENT_CANCEL)}}EventHandler.on(document,EVENT_CLICK_DATA_API$2,SELECTOR_DATA_TOGGLE$5,function(e){const t=SelectorEngine.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&e.preventDefault(),EventHandler.one(t,EVENT_SHOW$3,e=>{e.defaultPrevented||EventHandler.one(t,EVENT_HIDDEN$4,()=>{isVisible(this)&&this.focus()})});const n=Manipulator.getDataAttributes(this),s=this.closest("dialog[open]");if(s&&s!==t){const e=Dialog.getOrCreateInstance(t,n);t.classList.add("dialog-swap-in"),e.show(this),EventHandler.one(t,`shown${EVENT_KEY$9}`,()=>{t.classList.remove("dialog-swap-in")});const i=Dialog.getInstance(s);return void(i&&(s.classList.add("dialog-instant"),EventHandler.one(s,EVENT_HIDDEN$4,()=>{s.classList.remove("dialog-instant")}),i.hide()))}Dialog.getOrCreateInstance(t,n).toggle(this)}),enableDismissTrigger(Dialog);const NAME$b="navoverflow",DATA_KEY$8="bs.navoverflow",EVENT_KEY$8=`.${DATA_KEY$8}`,EVENT_UPDATE=`update${EVENT_KEY$8}`,EVENT_OVERFLOW=`overflow${EVENT_KEY$8}`,CLASS_NAME_OVERFLOW="nav-overflow",CLASS_NAME_OVERFLOW_MENU="nav-overflow-menu",CLASS_NAME_HIDDEN="d-none",SELECTOR_NAV_ITEM=".nav-item",SELECTOR_NAV_LINK=".nav-link",SELECTOR_OVERFLOW_TOGGLE=".nav-overflow-toggle",SELECTOR_OVERFLOW_MENU=".nav-overflow-menu",SELECTOR_CUSTOM_ICON="[data-bs-overflow-icon]",CLASS_NAME_KEEP="nav-overflow-keep",Default$a={collapseBelow:0,iconPlacement:"start",menuPlacement:"bottom-end",moreText:"More",moreIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3"/></svg>',threshold:0},DefaultType$a={collapseBelow:"(number|string)",iconPlacement:"string",menuPlacement:"string",moreText:"string",moreIcon:"string",threshold:"number"};class NavOverflow extends BaseComponent{constructor(e,t){super(e,t),this._items=[],this._overflowItems=[],this._overflowMenu=null,this._overflowToggle=null,this._resizeObserver=null,this._collapseBelow=0,this._isInitialized=!1,this._init()}static get Default(){return Default$a}static get DefaultType(){return DefaultType$a}static get NAME(){return NAME$b}update(){this._calculateOverflow(),EventHandler.trigger(this._element,EVENT_UPDATE)}dispose(){this._resizeObserver&&this._resizeObserver.disconnect(),this._restoreItems(),this._overflowToggle&&this._overflowToggle.parentElement&&this._overflowToggle.parentElement.remove(),super.dispose()}_init(){this._element.classList.add("nav-overflow"),this._items=[...SelectorEngine.find(".nav-item",this._element)];for(const[e,t]of this._items.entries())t.dataset.bsNavOrder=e;this._collapseBelow=this._resolveCollapseBelow(),this._createOverflowMenu(),this._setupResizeObserver(),this._calculateOverflow(),this._isInitialized=!0}_createOverflowMenu(){if(this._overflowToggle=SelectorEngine.findOne(".nav-overflow-toggle",this._element),this._overflowToggle)return void(this._overflowMenu=SelectorEngine.findOne(".nav-overflow-menu",this._element));const e=`<span class="nav-overflow-icon">${this._resolveIcon()}</span>`,t=`<span class="nav-overflow-text">${this._config.moreText}</span>`,n="end"===this._config.iconPlacement?`${t}${e}`:`${e}${t}`,s=document.createElement("li");s.className="nav-item nav-overflow-item",s.innerHTML=`\n <button class="nav-link nav-overflow-toggle" type="button" data-bs-toggle="menu" data-bs-placement="${this._config.menuPlacement}" aria-expanded="false">\n ${n}\n </button>\n <div class="nav-overflow-menu menu"></div>\n `,this._element.append(s),this._overflowToggle=s.querySelector(".nav-overflow-toggle"),this._overflowMenu=s.querySelector(".nav-overflow-menu")}_resolveIcon(){const e=SelectorEngine.findOne(SELECTOR_CUSTOM_ICON,this._element);if(!e)return this._config.moreIcon;const t=e.cloneNode(!0);t.removeAttribute("data-bs-overflow-icon");const n=t.outerHTML;return e.remove(),n}_resolveCollapseBelow(){const e=this._config.collapseBelow;if("number"==typeof e)return e;if("string"==typeof e&&""!==e){const t=getComputedStyle(document.documentElement).getPropertyValue(`--bs-breakpoint-${e}`);return Number.parseFloat(t)||0}return 0}_setupResizeObserver(){"undefined"!=typeof ResizeObserver?(this._resizeObserver=new ResizeObserver(()=>{this._calculateOverflow()}),this._resizeObserver.observe(this._element)):EventHandler.on(window,"resize",()=>this._calculateOverflow())}_calculateOverflow(){this._restoreItems();const e=this._element.offsetWidth,t=this._overflowToggle?.closest(".nav-item");if(this._collapseBelow>0&&e<this._collapseBelow){const e=this._items.filter(e=>!e.classList.contains(CLASS_NAME_KEEP));return this._moveToOverflow(e),t&&(e.length>0?t.classList.remove("d-none"):t.classList.add("d-none")),void(e.length>0&&EventHandler.trigger(this._element,EVENT_OVERFLOW,{overflowCount:e.length,visibleCount:this._items.length-e.length}))}let n=0;const s=[],i=e-(t?.offsetWidth||0)-this._items.filter(e=>e.classList.contains(CLASS_NAME_KEEP)).reduce((e,t)=>e+t.offsetWidth,0)-10;for(const e of this._items)e.classList.contains(CLASS_NAME_KEEP)||(n+=e.offsetWidth,n>i&&s.push(e));if(this._items.length-s.length<this._config.threshold&&this._items.length>this._config.threshold){const e=this._items.slice(this._config.threshold).filter(e=>!e.classList.contains(CLASS_NAME_KEEP));s.length=0,s.push(...e)}this._moveToOverflow(s),t&&(s.length>0?t.classList.remove("d-none"):t.classList.add("d-none")),s.length>0&&EventHandler.trigger(this._element,EVENT_OVERFLOW,{overflowCount:s.length,visibleCount:this._items.length-s.length})}_moveToOverflow(e){if(this._overflowMenu){this._overflowMenu.innerHTML="",this._overflowItems=[];for(const t of e){const e=SelectorEngine.findOne(".nav-link",t);if(!e)continue;const n=e.cloneNode(!0);n.className="menu-item",e.classList.contains("active")&&n.classList.add("active"),(e.classList.contains("disabled")||e.hasAttribute("disabled"))&&n.classList.add("disabled"),this._overflowMenu.append(n),t.classList.add("d-none"),t.dataset.bsNavOverflow="true",this._overflowItems.push(t)}}}_restoreItems(){for(const e of this._items)e.classList.remove("d-none"),delete e.dataset.bsNavOverflow;this._overflowMenu&&(this._overflowMenu.innerHTML=""),this._overflowItems=[]}}EventHandler.on(document,"DOMContentLoaded",()=>{for(const e of SelectorEngine.find('[data-bs-toggle="nav-overflow"]'))NavOverflow.getOrCreateInstance(e)});const NAME$a="drawer",DATA_KEY$7="bs.drawer",EVENT_KEY$7=`.${DATA_KEY$7}`,DATA_API_KEY$4=".data-api",EVENT_LOAD_DATA_API$2=`load${EVENT_KEY$7}.data-api`,EVENT_HIDDEN$3=`hidden${EVENT_KEY$7}`,EVENT_RESIZE=`resize${EVENT_KEY$7}`,EVENT_CLICK_DATA_API$1=`click${EVENT_KEY$7}.data-api`,SELECTOR_DATA_TOGGLE$4='[data-bs-toggle="drawer"]',Default$9={backdrop:!0,keyboard:!0,scroll:!1},DefaultType$9={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Drawer extends DialogBase{constructor(e,t){super(e,t),this._swipeHelper=null}static get Default(){return Default$9}static get DefaultType(){return DefaultType$9}static get NAME(){return NAME$a}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_getShowOptions(){return{modal:Boolean(this._config.backdrop)||!this._config.scroll,preventBodyScroll:!this._config.scroll}}_onBeforeShow(){this._initSwipe()}_getInstantClassName(){return"drawer-instant"}_getStaticClassName(){return"drawer-static"}_initSwipe(){if(this._swipeHelper||!Swipe.isSupported())return;const e={},t=this._element;t.classList.contains("drawer-bottom")?e.downCallback=()=>this.hide():t.classList.contains("drawer-top")?e.upCallback=()=>this.hide():t.classList.contains("drawer-end")?isRTL()?e.leftCallback=()=>this.hide():e.rightCallback=()=>this.hide():isRTL()?e.rightCallback=()=>this.hide():e.leftCallback=()=>this.hide(),this._swipeHelper=new Swipe(t,e)}}EventHandler.on(document,EVENT_CLICK_DATA_API$1,SELECTOR_DATA_TOGGLE$4,function(e){const t=SelectorEngine.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),isDisabled(this))return;EventHandler.one(t,EVENT_HIDDEN$3,()=>{isVisible(this)&&this.focus()});const n=SelectorEngine.findOne("dialog.drawer[open]");n&&n!==t&&Drawer.getInstance(n).hide(),Drawer.getOrCreateInstance(t).toggle(this)}),EventHandler.on(window,EVENT_LOAD_DATA_API$2,()=>{for(const e of SelectorEngine.find("dialog.drawer[open]"))Drawer.getOrCreateInstance(e).show()}),EventHandler.on(window,EVENT_RESIZE,()=>{for(const e of SelectorEngine.find('dialog[open][class*="\\:drawer"]'))"fixed"!==getComputedStyle(e).position&&Drawer.getOrCreateInstance(e).hide()}),enableDismissTrigger(Drawer);const NAME$9="strength",DATA_KEY$6="bs.strength",EVENT_KEY$6=`.${DATA_KEY$6}`,DATA_API_KEY$3=".data-api",EVENT_STRENGTH_CHANGE=`strengthChange${EVENT_KEY$6}`,SELECTOR_DATA_STRENGTH="[data-bs-strength]",STRENGTH_LEVELS=["weak","fair","good","strong"],Default$8={input:null,minLength:8,messages:{weak:"Weak",fair:"Fair",good:"Good",strong:"Strong"},weights:{minLength:1,extraLength:1,lowercase:1,uppercase:1,numbers:1,special:1,multipleSpecial:1,longPassword:1},thresholds:[2,4,6],scorer:null},DefaultType$8={input:"(string|element|null)",minLength:"number",messages:"object",weights:"object",thresholds:"array",scorer:"(function|null)"};class Strength extends BaseComponent{constructor(e,t){super(e,t),this._input=this._getInput(),this._segments=SelectorEngine.find(".strength-segment",this._element),this._textElement=SelectorEngine.findOne(".strength-text",this._element.parentElement),this._currentStrength=null,this._input&&(this._addEventListeners(),this._evaluate())}static get Default(){return Default$8}static get DefaultType(){return DefaultType$8}static get NAME(){return NAME$9}getStrength(){return this._currentStrength}evaluate(){this._evaluate()}_getInput(){if(this._config.input)return"string"==typeof this._config.input?SelectorEngine.findOne(this._config.input):this._config.input;const e=this._element.parentElement;return SelectorEngine.findOne('input[type="password"]',e)}_addEventListeners(){EventHandler.on(this._input,"input",()=>this._evaluate()),EventHandler.on(this._input,"change",()=>this._evaluate())}_evaluate(){const e=this._input.value,t=this._calculateScore(e),n=this._scoreToStrength(t);n!==this._currentStrength&&(this._currentStrength=n,this._updateUI(n,t),EventHandler.trigger(this._element,EVENT_STRENGTH_CHANGE,{strength:n,score:t,password:e.length>0?"***":""}))}_calculateScore(e){if(!e)return 0;if("function"==typeof this._config.scorer)return this._config.scorer(e);const{weights:t}=this._config;let n=0;return e.length>=this._config.minLength&&(n+=t.minLength),e.length>=this._config.minLength+4&&(n+=t.extraLength),/[a-z]/.test(e)&&(n+=t.lowercase),/[A-Z]/.test(e)&&(n+=t.uppercase),/\d/.test(e)&&(n+=t.numbers),/[!@#$%^&*(),.?":{}|<>]/.test(e)&&(n+=t.special),/[!@#$%^&*(),.?":{}|<>].*[!@#$%^&*(),.?":{}|<>]/.test(e)&&(n+=t.multipleSpecial),e.length>=16&&(n+=t.longPassword),n}_scoreToStrength(e){if(0===e)return null;const[t,n,s]=this._config.thresholds;return e<=t?"weak":e<=n?"fair":e<=s?"good":"strong"}_updateUI(e){e?this._element.dataset.bsStrength=e:delete this._element.dataset.bsStrength;const t=e?STRENGTH_LEVELS.indexOf(e):-1;for(const[e,n]of this._segments.entries())e<=t?n.classList.add("active"):n.classList.remove("active");if(this._textElement)if(e&&this._config.messages[e]){this._textElement.textContent=this._config.messages[e],this._textElement.dataset.bsStrength=e;const t={weak:"danger",fair:"warning",good:"info",strong:"success"};this._textElement.style.setProperty("--strength-color",`var(--${t[e]}-text)`)}else this._textElement.textContent="",delete this._textElement.dataset.bsStrength}}EventHandler.on(document,`DOMContentLoaded${EVENT_KEY$6}.data-api`,()=>{for(const e of SelectorEngine.find("[data-bs-strength]"))Strength.getOrCreateInstance(e)});const NAME$8="otpInput",DATA_KEY$5="bs.otp-input",EVENT_KEY$5=`.${DATA_KEY$5}`,DATA_API_KEY$2=".data-api",EVENT_COMPLETE=`complete${EVENT_KEY$5}`,EVENT_INPUT=`input${EVENT_KEY$5}`,SELECTOR_DATA_OTP="[data-bs-otp]",SELECTOR_INPUT="input",Default$7={length:6,mask:!1},DefaultType$7={length:"number",mask:"boolean"};class OtpInput extends BaseComponent{constructor(e,t){super(e,t),this._inputs=SelectorEngine.find("input",this._element),this._setupInputs(),this._addEventListeners()}static get Default(){return Default$7}static get DefaultType(){return DefaultType$7}static get NAME(){return NAME$8}getValue(){return this._inputs.map(e=>e.value).join("")}setValue(e){const t=[...String(e)];for(const[e,n]of this._inputs.entries())n.value=t[e]||"";this._checkComplete()}clear(){for(const e of this._inputs)e.value="";this._inputs[0]?.focus()}focus(){const e=this._inputs.find(e=>!e.value);e?e.focus():this._inputs.at(-1)?.focus()}_setupInputs(){for(const e of this._inputs)e.setAttribute("maxlength","1"),e.setAttribute("inputmode","numeric"),e.setAttribute("pattern","\\d*"),e===this._inputs[0]?e.setAttribute("autocomplete","one-time-code"):e.setAttribute("autocomplete","off"),this._config.mask&&e.setAttribute("type","password")}_addEventListeners(){for(const[e,t]of this._inputs.entries())EventHandler.on(t,"input",t=>this._handleInput(t,e)),EventHandler.on(t,"keydown",t=>this._handleKeydown(t,e)),EventHandler.on(t,"paste",e=>this._handlePaste(e)),EventHandler.on(t,"focus",e=>this._handleFocus(e))}_handleInput(e,t){const n=e.target;/^\d*$/.test(n.value)||(n.value=n.value.replace(/\D/g,""));const{value:s}=n;if(s.length>1){const e=[...s];n.value=e[0]||"";for(let n=1;n<e.length&&t+n<this._inputs.length;n++)this._inputs[t+n].value=e[n];const i=Math.min(t+e.length,this._inputs.length-1);this._inputs[i].focus()}else s&&t<this._inputs.length-1&&this._inputs[t+1].focus();EventHandler.trigger(this._element,EVENT_INPUT,{value:this.getValue(),index:t}),this._checkComplete()}_handleKeydown(e,t){const{key:n}=e;switch(n){case"Backspace":!this._inputs[t].value&&t>0&&(e.preventDefault(),this._inputs[t-1].value="",this._inputs[t-1].focus());break;case"Delete":e.preventDefault();for(let e=t;e<this._inputs.length-1;e++)this._inputs[e].value=this._inputs[e+1].value;this._inputs.at(-1).value="";break;case"ArrowLeft":t>0&&(e.preventDefault(),this._inputs[t-1].focus());break;case"ArrowRight":t<this._inputs.length-1&&(e.preventDefault(),this._inputs[t+1].focus())}}_handlePaste(e){e.preventDefault();const t=(e.clipboardData||window.clipboardData).getData("text").replace(/\D/g,"").slice(0,this._inputs.length);if(t){this.setValue(t);const e=Math.min(t.length,this._inputs.length)-1;this._inputs[e].focus()}}_handleFocus(e){e.target.select()}_checkComplete(){const e=this.getValue();e.length===this._inputs.length&&this._inputs.every(e=>""!==e.value)&&EventHandler.trigger(this._element,EVENT_COMPLETE,{value:e})}}EventHandler.on(document,`DOMContentLoaded${EVENT_KEY$5}.data-api`,()=>{for(const e of SelectorEngine.find("[data-bs-otp]"))OtpInput.getOrCreateInstance(e)});const NAME$7="chips",DATA_KEY$4="bs.chips",EVENT_KEY$4=".bs.chips",DATA_API_KEY$1=".data-api",EVENT_ADD="add.bs.chips",EVENT_REMOVE="remove.bs.chips",EVENT_CHANGE="change.bs.chips",EVENT_SELECT="select.bs.chips",SELECTOR_DATA_CHIPS="[data-bs-chips]",SELECTOR_GHOST_INPUT=".form-ghost",SELECTOR_CHIP=".chip",SELECTOR_CHIP_DISMISS=".chip-dismiss",CLASS_NAME_CHIP="chip",CLASS_NAME_CHIP_DISMISS="chip-dismiss",CLASS_NAME_ACTIVE$2="active",DEFAULT_DISMISS_ICON='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="4" y1="4" x2="12" y2="12"/><line x1="12" y1="4" x2="4" y2="12"/></svg>',Default$6={separator:",",allowDuplicates:!1,maxChips:null,placeholder:"",dismissible:!0,dismissIcon:DEFAULT_DISMISS_ICON,createOnBlur:!0},DefaultType$6={separator:"(string|null)",allowDuplicates:"boolean",maxChips:"(number|null)",placeholder:"string",dismissible:"boolean",dismissIcon:"string",createOnBlur:"boolean"};class Chips extends BaseComponent{constructor(e,t){super(e,t),this._input=SelectorEngine.findOne(".form-ghost",this._element),this._chips=[],this._selectedChips=new Set,this._anchorChip=null,this._input||this._createInput(),this._initializeExistingChips(),this._addEventListeners()}static get Default(){return Default$6}static get DefaultType(){return DefaultType$6}static get NAME(){return NAME$7}add(e){const t=String(e).trim();if(!t)return null;if(!this._config.allowDuplicates&&this._chips.includes(t))return null;if(null!==this._config.maxChips&&this._chips.length>=this._config.maxChips)return null;if(EventHandler.trigger(this._element,EVENT_ADD,{value:t,relatedTarget:this._input}).defaultPrevented)return null;const n=this._createChip(t);return this._element.insertBefore(n,this._input),this._chips.push(t),EventHandler.trigger(this._element,EVENT_CHANGE,{values:this.getValues()}),n}remove(e){let t,n;return"string"==typeof e?(n=e,t=this._findChipByValue(n)):(t=e,n=this._getChipValue(t)),!(!t||!n)&&(!EventHandler.trigger(this._element,EVENT_REMOVE,{value:n,chip:t,relatedTarget:this._input}).defaultPrevented&&(this._selectedChips.delete(t),this._anchorChip===t&&(this._anchorChip=null),t.remove(),this._chips=this._chips.filter(e=>e!==n),EventHandler.trigger(this._element,EVENT_CHANGE,{values:this.getValues()}),!0))}removeSelected(){const e=[...this._selectedChips];for(const t of e)this.remove(t);this._input?.focus()}getValues(){return[...this._chips]}getSelectedValues(){return[...this._selectedChips].map(e=>this._getChipValue(e))}clear(){const e=SelectorEngine.find(".chip",this._element);for(const t of e)t.remove();this._chips=[],this._selectedChips.clear(),this._anchorChip=null,EventHandler.trigger(this._element,EVENT_CHANGE,{values:[]})}clearSelection(){for(const e of this._selectedChips)e.classList.remove("active");this._selectedChips.clear(),this._anchorChip=null,EventHandler.trigger(this._element,EVENT_SELECT,{selected:[]})}selectChip(e,t={}){const{addToSelection:n=!1,rangeSelect:s=!1}=t,i=this._getChipElements();if(i.includes(e)){if(s&&this._anchorChip){const t=i.indexOf(this._anchorChip),s=i.indexOf(e),o=Math.min(t,s),a=Math.max(t,s);n||this.clearSelection();for(let e=o;e<=a;e++)this._selectedChips.add(i[e]),i[e].classList.add("active")}else n?this._selectedChips.has(e)?(this._selectedChips.delete(e),e.classList.remove("active")):(this._selectedChips.add(e),e.classList.add("active"),this._anchorChip=e):(this.clearSelection(),this._selectedChips.add(e),e.classList.add("active"),this._anchorChip=e);EventHandler.trigger(this._element,EVENT_SELECT,{selected:this.getSelectedValues()})}}focus(){this._input?.focus()}_getChipElements(){return SelectorEngine.find(".chip",this._element)}_createInput(){const e=document.createElement("input");e.type="text",e.className="form-ghost",this._config.placeholder&&(e.placeholder=this._config.placeholder),this._element.append(e),this._input=e}_initializeExistingChips(){const e=SelectorEngine.find(".chip",this._element);for(const t of e){const e=this._getChipValue(t);e&&(this._chips.push(e),this._setupChip(t))}}_setupChip(e){e.setAttribute("tabindex","0"),this._config.dismissible&&!SelectorEngine.findOne(".chip-dismiss",e)&&e.append(this._createDismissButton())}_createChip(e){const t=document.createElement("span");return t.className="chip",t.dataset.bsChipValue=e,t.append(document.createTextNode(e)),this._setupChip(t),t}_createDismissButton(){const e=document.createElement("button");return e.type="button",e.className="chip-dismiss",e.setAttribute("aria-label","Remove"),e.setAttribute("tabindex","-1"),e.innerHTML=this._config.dismissIcon,e}_findChipByValue(e){return this._getChipElements().find(t=>this._getChipValue(t)===e)}_getChipValue(e){if(e.dataset.bsChipValue)return e.dataset.bsChipValue;const t=e.cloneNode(!0),n=SelectorEngine.findOne(".chip-dismiss",t);return n&&n.remove(),t.textContent?.trim()||""}_addEventListeners(){EventHandler.on(this._input,"keydown",e=>this._handleInputKeydown(e)),EventHandler.on(this._input,"input",e=>this._handleInput(e)),EventHandler.on(this._input,"paste",e=>this._handlePaste(e)),EventHandler.on(this._input,"focus",()=>this.clearSelection()),this._config.createOnBlur&&EventHandler.on(this._input,"blur",e=>{e.relatedTarget?.closest(".chip")||this._createChipFromInput()}),EventHandler.on(this._element,"click",".chip",e=>{if(e.target.closest(".chip-dismiss"))return;const t=e.target.closest(".chip");t&&(e.preventDefault(),this.selectChip(t,{addToSelection:e.metaKey||e.ctrlKey,rangeSelect:e.shiftKey}),t.focus())}),EventHandler.on(this._element,"click",".chip-dismiss",e=>{e.stopPropagation();const t=e.target.closest(".chip");t&&(this.remove(t),this._input?.focus())}),EventHandler.on(this._element,"keydown",".chip",e=>{this._handleChipKeydown(e)}),EventHandler.on(this._element,"click",e=>{e.target===this._element&&(this.clearSelection(),this._input?.focus())})}_handleInputKeydown(e){const{key:t}=e;switch(t){case"Enter":e.preventDefault(),this._createChipFromInput();break;case"Backspace":case"Delete":if(""===this._input.value){e.preventDefault();const t=this._getChipElements();if(t.length>0){const e=t.at(-1);this.selectChip(e),e.focus()}}break;case"ArrowLeft":if(0===this._input.selectionStart&&0===this._input.selectionEnd){e.preventDefault();const t=this._getChipElements();if(t.length>0){const n=t.at(-1);e.shiftKey?this.selectChip(n,{addToSelection:!0}):this.selectChip(n),n.focus()}}break;case"Escape":this._input.value="",this.clearSelection(),this._input.blur()}}_handleChipKeydown(e){const{key:t}=e,n=e.target.closest(".chip");if(!n)return;const s=this._getChipElements(),i=s.indexOf(n);switch(t){case"Backspace":case"Delete":e.preventDefault(),this._handleChipDelete(i,s);break;case"ArrowLeft":e.preventDefault(),this._navigateChip(s,i,-1,e.shiftKey);break;case"ArrowRight":e.preventDefault(),this._navigateChip(s,i,1,e.shiftKey);break;case"Home":e.preventDefault(),this._navigateToEdge(s,0,e.shiftKey);break;case"End":case"Escape":e.preventDefault(),this.clearSelection(),this._input?.focus();break;case"a":this._handleSelectAll(e,s)}}_handleChipDelete(e,t){if(0===this._selectedChips.size)return;const n=Math.min(e,t.length-this._selectedChips.size-1);this.removeSelected();const s=this._getChipElements();if(s.length>0){const e=Math.max(0,Math.min(n,s.length-1));s[e].focus(),this.selectChip(s[e])}else this._input?.focus()}_navigateChip(e,t,n,s){const i=t+n;if(n<0&&i>=0){const t=e[i];this.selectChip(t,s?{addToSelection:!0,rangeSelect:!0}:{}),t.focus()}else if(n>0&&i<e.length){const t=e[i];this.selectChip(t,s?{addToSelection:!0,rangeSelect:!0}:{}),t.focus()}else n>0&&(this.clearSelection(),this._input?.focus())}_navigateToEdge(e,t,n){if(0===e.length)return;const s=e[t];this.selectChip(s,n?{rangeSelect:!0}:{}),s.focus()}_handleSelectAll(e,t){if(e.metaKey||e.ctrlKey){e.preventDefault();for(const e of t)this._selectedChips.add(e),e.classList.add("active");EventHandler.trigger(this._element,EVENT_SELECT,{selected:this.getSelectedValues()})}}_handleInput(e){const{value:t}=e.target,{separator:n}=this._config;if(n&&t.includes(n)){const e=t.split(n);for(const t of e.slice(0,-1))this.add(t.trim());this._input.value=e.at(-1)}}_handlePaste(e){const{separator:t}=this._config;if(!t)return;const n=(e.clipboardData||window.clipboardData).getData("text");if(n.includes(t)){e.preventDefault();const s=n.split(t);for(const e of s)this.add(e.trim())}}_createChipFromInput(){const e=this._input.value.trim();e&&(this.add(e),this._input.value="")}}EventHandler.on(document,"DOMContentLoaded.bs.chips.data-api",()=>{for(const e of SelectorEngine.find("[data-bs-chips]"))Chips.getOrCreateInstance(e)});const ARIA_ATTRIBUTE_PATTERN=/^aria-[\w-]*$/i,DefaultAllowlist={"*":["class","dir","id","lang","role",ARIA_ATTRIBUTE_PATTERN],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},uriAttributes=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),SAFE_URL_PATTERN=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,allowedAttribute=(e,t)=>{const n=e.nodeName.toLowerCase();return t.includes(n)?!uriAttributes.has(n)||Boolean(SAFE_URL_PATTERN.test(e.nodeValue)):t.filter(e=>e instanceof RegExp).some(e=>e.test(n))};function sanitizeHtml(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const s=(new window.DOMParser).parseFromString(e,"text/html"),i=[...s.body.querySelectorAll("*")];for(const e of i){const n=e.nodeName.toLowerCase();if(!Object.keys(t).includes(n)){e.remove();continue}const s=[...e.attributes],i=[...t["*"]||[],...t[n]||[]];for(const t of s)allowedAttribute(t,i)||e.removeAttribute(t.nodeName)}return s.body.innerHTML}const NAME$6="TemplateFactory",Default$5={allowList:DefaultAllowlist,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"<div></div>"},DefaultType$5={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},DefaultContentType={entry:"(string|element|function|null)",selector:"(string|element)"};class TemplateFactory extends Config{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return Default$5}static get DefaultType(){return DefaultType$5}static get NAME(){return NAME$6}getContent(){return Object.values(this._config.content).map(e=>this._resolvePossibleFunction(e)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[t,n]of Object.entries(this._config.content))this._setContent(e,n,t);const t=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&t.classList.add(...n.split(" ")),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[t,n]of Object.entries(e))super._typeCheckConfig({selector:t,entry:n},DefaultContentType)}_setContent(e,t,n){const s=SelectorEngine.findOne(n,e);s&&((t=this._resolvePossibleFunction(t))?isElement(t)?this._putElementInTemplate(getElement(t),s):this._config.html?s.innerHTML=this._maybeSanitize(t):s.textContent=t:s.remove())}_maybeSanitize(e){return this._config.sanitize?sanitizeHtml(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return execute(e,[void 0,this])}_putElementInTemplate(e,t){if(this._config.html)return t.innerHTML="",void t.append(e);t.textContent=e.textContent}}const NAME$5="tooltip",DISALLOWED_ATTRIBUTES=new Set(["sanitize","allowList","sanitizeFn"]),CLASS_NAME_FADE$2="fade",CLASS_NAME_MODAL="modal",CLASS_NAME_SHOW$2="show",SELECTOR_TOOLTIP_INNER=".tooltip-inner",SELECTOR_MODAL=".modal",SELECTOR_DATA_TOGGLE$3='[data-bs-toggle="tooltip"]',EVENT_MODAL_HIDE="hide.bs.modal",TRIGGER_HOVER="hover",TRIGGER_FOCUS="focus",TRIGGER_CLICK="click",TRIGGER_MANUAL="manual",EVENT_HIDE$2="hide",EVENT_HIDDEN$2="hidden",EVENT_SHOW$2="show",EVENT_SHOWN$2="shown",EVENT_INSERTED="inserted",EVENT_CLICK$3="click",EVENT_FOCUSIN$2="focusin",EVENT_FOCUSOUT$1="focusout",EVENT_MOUSEENTER$1="mouseenter",EVENT_MOUSELEAVE="mouseleave",AttachmentMap={AUTO:"auto",TOP:"top",RIGHT:isRTL()?"left":"right",BOTTOM:"bottom",LEFT:isRTL()?"right":"left"},Default$4={allowList:DefaultAllowlist,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",floatingConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',title:"",trigger:"hover focus"},DefaultType$4={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",floatingConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Tooltip extends BaseComponent{constructor(e,t){if(void 0===computePosition)throw new TypeError("Bootstrap's tooltips require Floating UI (https://floating-ui.com)");super(e,t),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._floatingCleanup=null,this._templateFactory=null,this._newContent=null,this._mediaQueryListeners=[],this._responsivePlacements=null,this.tip=null,this._parseResponsivePlacements(),this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Default$4}static get DefaultType(){return DefaultType$4}static get NAME(){return NAME$5}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),EventHandler.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposeFloating(),this._disposeMediaQueryListeners(),super.dispose()}async show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const e=EventHandler.trigger(this._element,this.constructor.eventName("show")),t=(findShadowRoot(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this._disposeFloating();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));let{container:s}=this._config;const i=this._element.closest("dialog[open]");if(i&&s===document.body&&(s=i),this._element.ownerDocument.documentElement.contains(this.tip)||(s.append(n),EventHandler.trigger(this._element,this.constructor.eventName("inserted"))),await this._createFloating(n),n.classList.add("show"),"ontouchstart"in document.documentElement)for(const e of document.body.children)EventHandler.on(e,"mouseover",noop);this._queueCallback(()=>{EventHandler.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1},this.tip,this._isAnimated())}hide(){if(this._isShown()&&!EventHandler.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove("show"),"ontouchstart"in document.documentElement)for(const e of document.body.children)EventHandler.off(e,"mouseover",noop);this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this._isHovered=null,this._queueCallback(()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposeFloating(),this._element.removeAttribute("aria-describedby"),EventHandler.trigger(this._element,this.constructor.eventName("hidden")))},this.tip,this._isAnimated())}}update(){this._floatingCleanup&&this.tip&&this._updateFloatingPosition()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const t=this._getTemplateFactory(e).toHtml();t.classList.remove("fade","show"),t.classList.add(`bs-${this.constructor.NAME}-auto`);const n=getUID(this.constructor.NAME).toString();return t.setAttribute("id",n),this._isAnimated()&&t.classList.add("fade"),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposeFloating(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new TemplateFactory({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[SELECTOR_TOOLTIP_INNER]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains("fade")}_isShown(){return this.tip&&this.tip.classList.contains("show")}_getPlacement(e){if(this._responsivePlacements){const e=getResponsivePlacement(this._responsivePlacements,"top");return AttachmentMap[e.toUpperCase()]||e}const t=execute(this._config.placement,[this,e,this._element]);return AttachmentMap[t.toUpperCase()]||t}_parseResponsivePlacements(){"string"==typeof this._config.placement?(this._responsivePlacements=parseResponsivePlacement(this._config.placement,"top"),this._responsivePlacements&&this._setupMediaQueryListeners()):this._responsivePlacements=null}_setupMediaQueryListeners(){this._disposeMediaQueryListeners(),this._mediaQueryListeners=createBreakpointListeners(()=>{this._isShown()&&this._updateFloatingPosition()})}_disposeMediaQueryListeners(){disposeBreakpointListeners(this._mediaQueryListeners),this._mediaQueryListeners=[]}async _createFloating(e){const t=this._getPlacement(e),n=e.querySelector(`.${this.constructor.NAME}-arrow`);await this._updateFloatingPosition(e,t,n),this._floatingCleanup=autoUpdate(this._element,e,()=>this._updateFloatingPosition(e,null,n))}async _updateFloatingPosition(e=this.tip,t=null,n=null){if(!e)return;t||(t=this._getPlacement(e)),n||(n=e.querySelector(`.${this.constructor.NAME}-arrow`));const s=this._getFloatingMiddleware(n),i=this._getFloatingConfig(t,s),{x:o,y:a,placement:r,middlewareData:l}=await computePosition(this._element,e,i);if(Object.assign(e.style,{position:"absolute",left:`${o}px`,top:`${a}px`}),n&&(n.style.position="absolute"),Manipulator.setDataAttribute(e,"placement",r),n&&l.arrow){const{x:e,y:t}=l.arrow,s=r.startsWith("top")||r.startsWith("bottom");Object.assign(n.style,{left:s&&null!==e?`${e}px`:"",top:s||null===t?"":`${t}px`,right:"",bottom:""})}}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?({placement:t,rects:n})=>e({placement:t,reference:n.reference,floating:n.floating},this._element):e}_resolvePossibleFunction(e){return execute(e,[this._element,this._element])}_getFloatingMiddleware(e){const t=this._getOffset(),n=[offset("function"==typeof t?t:{mainAxis:t[1]||0,crossAxis:t[0]||0}),flip({fallbackPlacements:this._config.fallbackPlacements}),shift({boundary:"clippingParents"===this._config.boundary?"clippingAncestors":this._config.boundary})];return e&&n.push(arrow({element:e})),n}_getFloatingConfig(e,t){const n={placement:e,middleware:t};return{...n,...execute(this._config.floatingConfig,[void 0,n])}}_setListeners(){const e=this._config.trigger.split(" ");for(const t of e)if("click"===t)EventHandler.on(this._element,this.constructor.eventName("click"),this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger.click=!(t._isShown()&&t._activeTrigger.click),t.toggle()});else if("manual"!==t){const e="hover"===t?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n="hover"===t?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");EventHandler.on(this._element,e,this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?"focus":"hover"]=!0,t._enter()}),EventHandler.on(this._element,n,this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?"focus":"hover"]=t._element.contains(e.relatedTarget),t._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},EventHandler.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const t=Manipulator.getDataAttributes(this._element);for(const e of Object.keys(t))DISALLOWED_ATTRIBUTES.has(e)&&delete t[e];return e={...t,..."object"==typeof e&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=!1===e.container?document.body:getElement(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[t,n]of Object.entries(this._config))this.constructor.Default[t]!==n&&(e[t]=n);return e.selector=!1,e.trigger="manual",e}_disposeFloating(){this._floatingCleanup&&(this._floatingCleanup(),this._floatingCleanup=null),this.tip&&(this.tip.remove(),this.tip=null)}}const initTooltip=e=>{const t=e.target.closest(SELECTOR_DATA_TOGGLE$3);t&&Tooltip.getOrCreateInstance(t)};EventHandler.on(document,"focusin",SELECTOR_DATA_TOGGLE$3,initTooltip),EventHandler.on(document,"mouseenter",SELECTOR_DATA_TOGGLE$3,initTooltip);const NAME$4="popover",SELECTOR_TITLE=".popover-header",SELECTOR_CONTENT=".popover-body",SELECTOR_DATA_TOGGLE$2='[data-bs-toggle="popover"]',EVENT_CLICK$2="click",EVENT_FOCUSIN$1="focusin",EVENT_MOUSEENTER="mouseenter",Default$3={...Tooltip.Default,content:"",offset:[0,8],placement:"right",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',trigger:"click"},DefaultType$3={...Tooltip.DefaultType,content:"(null|string|element|function)"};class Popover extends Tooltip{static get Default(){return Default$3}static get DefaultType(){return DefaultType$3}static get NAME(){return NAME$4}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[SELECTOR_TITLE]:this._getTitle(),[SELECTOR_CONTENT]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}}const initPopover=e=>{const t=e.target.closest(SELECTOR_DATA_TOGGLE$2);t&&("click"===e.type&&e.preventDefault(),Popover.getOrCreateInstance(t))};EventHandler.on(document,"click",SELECTOR_DATA_TOGGLE$2,initPopover),EventHandler.on(document,"focusin",SELECTOR_DATA_TOGGLE$2,initPopover),EventHandler.on(document,"mouseenter",SELECTOR_DATA_TOGGLE$2,initPopover);const NAME$3="scrollspy",DATA_KEY$3="bs.scrollspy",EVENT_KEY$3=`.${DATA_KEY$3}`,DATA_API_KEY=".data-api",EVENT_ACTIVATE=`activate${EVENT_KEY$3}`,EVENT_CLICK$1=`click${EVENT_KEY$3}`,EVENT_LOAD_DATA_API$1=`load${EVENT_KEY$3}.data-api`,CLASS_NAME_MENU_ITEM="menu-item",CLASS_NAME_ACTIVE$1="active",SELECTOR_DATA_SPY='[data-bs-spy="scroll"]',SELECTOR_TARGET_LINKS="[href]",SELECTOR_NAV_LIST_GROUP=".nav, .list-group",SELECTOR_NAV_LINKS=".nav-link",SELECTOR_NAV_ITEMS=".nav-item",SELECTOR_LIST_ITEMS=".list-group-item",SELECTOR_LINK_ITEMS=".nav-link, .nav-item > .nav-link, .list-group-item",SELECTOR_MENU_TOGGLE$1='[data-bs-toggle="menu"]',Default$2={rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},DefaultType$2={rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class ScrollSpy extends BaseComponent{constructor(e,t){super(e,t),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return Default$2}static get DefaultType(){return DefaultType$2}static get NAME(){return NAME$3}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const e of this._observableSections.values())this._observer.observe(e)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(e){return e.target=getElement(e.target)||document.body,"string"==typeof e.threshold&&(e.threshold=e.threshold.split(",").map(e=>Number.parseFloat(e))),e}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(EventHandler.off(this._config.target,EVENT_CLICK$1),EventHandler.on(this._config.target,EVENT_CLICK$1,"[href]",e=>{const t=this._observableSections.get(e.target.hash);if(t){e.preventDefault();const n=this._rootElement||window,s=t.offsetTop-this._element.offsetTop;if(n.scrollTo)return void n.scrollTo({top:s,behavior:"smooth"});n.scrollTop=s}}))}_getNewObserver(){const e={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(e=>this._observerCallback(e),e)}_observerCallback(e){const t=e=>this._targetLinks.get(`#${e.target.id}`),n=e=>{this._previousScrollData.visibleEntryTop=e.target.offsetTop,this._process(t(e))},s=(this._rootElement||document.documentElement).scrollTop,i=s>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=s;for(const o of e){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(t(o));continue}const e=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(i&&e){if(n(o),!s)return}else i||e||n(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const e=SelectorEngine.find("[href]",this._config.target);for(const t of e){if(!t.hash||isDisabled(t))continue;const e=SelectorEngine.findOne(decodeURI(t.hash),this._element);isVisible(e)&&(this._targetLinks.set(decodeURI(t.hash),t),this._observableSections.set(t.hash,e))}}_process(e){this._activeTarget!==e&&(this._clearActiveClass(this._config.target),this._activeTarget=e,e.classList.add("active"),this._activateParents(e),EventHandler.trigger(this._element,EVENT_ACTIVATE,{relatedTarget:e}))}_activateParents(e){if(e.classList.contains("menu-item")){const t=e.closest(".menu")?.previousElementSibling;return void(t?.matches(SELECTOR_MENU_TOGGLE$1)&&t.classList.add("active"))}for(const t of SelectorEngine.parents(e,".nav, .list-group"))for(const e of SelectorEngine.prev(t,SELECTOR_LINK_ITEMS))e.classList.add("active")}_clearActiveClass(e){e.classList.remove("active");const t=SelectorEngine.find("[href].active",e);for(const e of t)e.classList.remove("active")}}EventHandler.on(window,EVENT_LOAD_DATA_API$1,()=>{for(const e of SelectorEngine.find(SELECTOR_DATA_SPY))ScrollSpy.getOrCreateInstance(e)});const NAME$2="tab",DATA_KEY$2="bs.tab",EVENT_KEY$2=".bs.tab",EVENT_HIDE$1="hide.bs.tab",EVENT_HIDDEN$1="hidden.bs.tab",EVENT_SHOW$1="show.bs.tab",EVENT_SHOWN$1="shown.bs.tab",EVENT_CLICK_DATA_API="click.bs.tab",EVENT_KEYDOWN="keydown.bs.tab",EVENT_LOAD_DATA_API="load.bs.tab",ARROW_LEFT_KEY="ArrowLeft",ARROW_RIGHT_KEY="ArrowRight",ARROW_UP_KEY="ArrowUp",ARROW_DOWN_KEY="ArrowDown",HOME_KEY="Home",END_KEY="End",CLASS_NAME_ACTIVE="active",CLASS_NAME_FADE$1="fade",CLASS_NAME_SHOW$1="show",SELECTOR_MENU_TOGGLE='[data-bs-toggle="menu"]',SELECTOR_MENU=".menu",NOT_SELECTOR_MENU_TOGGLE=`:not(${SELECTOR_MENU_TOGGLE})`,SELECTOR_TAB_PANEL='.list-group, .nav, [role="tablist"]',SELECTOR_OUTER=".nav-item, .list-group-item",SELECTOR_INNER=`.nav-link${NOT_SELECTOR_MENU_TOGGLE}, .list-group-item${NOT_SELECTOR_MENU_TOGGLE}, [role="tab"]${NOT_SELECTOR_MENU_TOGGLE}`,SELECTOR_DATA_TOGGLE$1='[data-bs-toggle="tab"]',SELECTOR_INNER_ELEM=`${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE$1}`,SELECTOR_DATA_TOGGLE_ACTIVE='.active[data-bs-toggle="tab"]';class Tab extends BaseComponent{constructor(e){super(e),this._parent=this._element.closest(SELECTOR_TAB_PANEL),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),EventHandler.on(this._element,EVENT_KEYDOWN,e=>this._keydown(e)))}static get NAME(){return"tab"}show(){const e=this._element;if(this._elemIsActive(e))return;const t=this._getActiveElem(),n=t?EventHandler.trigger(t,EVENT_HIDE$1,{relatedTarget:e}):null;EventHandler.trigger(e,EVENT_SHOW$1,{relatedTarget:t}).defaultPrevented||n&&n.defaultPrevented||(this._deactivate(t,e),this._activate(e,t))}_activate(e,t){e&&(e.classList.add("active"),this._activate(SelectorEngine.getElementFromSelector(e)),this._queueCallback(()=>{"tab"===e.getAttribute("role")?(e.removeAttribute("tabindex"),e.setAttribute("aria-selected",!0),this._toggleMenu(e,!0),EventHandler.trigger(e,EVENT_SHOWN$1,{relatedTarget:t})):e.classList.add("show")},e,e.classList.contains("fade")))}_deactivate(e,t){e&&(e.classList.remove("active"),e.blur(),this._deactivate(SelectorEngine.getElementFromSelector(e)),this._queueCallback(()=>{"tab"===e.getAttribute("role")?(e.setAttribute("aria-selected",!1),e.setAttribute("tabindex","-1"),this._toggleMenu(e,!1),EventHandler.trigger(e,EVENT_HIDDEN$1,{relatedTarget:t})):e.classList.remove("show")},e,e.classList.contains("fade")))}_keydown(e){if(![ARROW_LEFT_KEY,ARROW_RIGHT_KEY,ARROW_UP_KEY,ARROW_DOWN_KEY,HOME_KEY,END_KEY].includes(e.key))return;e.stopPropagation(),e.preventDefault();const t=this._getChildren().filter(e=>!isDisabled(e));let n;if([HOME_KEY,END_KEY].includes(e.key))n=e.key===HOME_KEY?t[0]:t.at(-1);else{const s=[ARROW_RIGHT_KEY,ARROW_DOWN_KEY].includes(e.key);n=getNextActiveElement(t,e.target,s,!0)}n&&(n.focus({preventScroll:!0}),Tab.getOrCreateInstance(n).show())}_getChildren(){return SelectorEngine.find(SELECTOR_INNER_ELEM,this._parent)}_getActiveElem(){return this._getChildren().find(e=>this._elemIsActive(e))||null}_setInitialAttributes(e,t){this._setAttributeIfNotExists(e,"role","tablist");for(const e of t)this._setInitialAttributesOnChild(e)}_setInitialAttributesOnChild(e){e=this._getInnerElement(e);const t=this._elemIsActive(e),n=this._getOuterElement(e);e.setAttribute("aria-selected",t),n!==e&&this._setAttributeIfNotExists(n,"role","presentation"),t||e.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(e,"role","tab"),this._setInitialAttributesOnTargetPanel(e)}_setInitialAttributesOnTargetPanel(e){const t=SelectorEngine.getElementFromSelector(e);t&&(this._setAttributeIfNotExists(t,"role","tabpanel"),e.id&&this._setAttributeIfNotExists(t,"aria-labelledby",`${e.id}`))}_toggleMenu(e,t){const n=this._getOuterElement(e),s=SelectorEngine.findOne(SELECTOR_MENU_TOGGLE,n);if(!s)return;const i=SelectorEngine.findOne(".menu",n);s.classList.toggle("active",t),i&&i.classList.toggle("show",t),s.setAttribute("aria-expanded",t)}_setAttributeIfNotExists(e,t,n){e.hasAttribute(t)||e.setAttribute(t,n)}_elemIsActive(e){return e.classList.contains("active")}_getInnerElement(e){return e.matches(SELECTOR_INNER_ELEM)?e:SelectorEngine.findOne(SELECTOR_INNER_ELEM,e)}_getOuterElement(e){return e.closest(SELECTOR_OUTER)||e}}EventHandler.on(document,"click.bs.tab",SELECTOR_DATA_TOGGLE$1,function(e){["A","AREA"].includes(this.tagName)&&e.preventDefault(),isDisabled(this)||Tab.getOrCreateInstance(this).show()}),EventHandler.on(window,"load.bs.tab",()=>{for(const e of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE))Tab.getOrCreateInstance(e)});const NAME$1="toast",DATA_KEY$1="bs.toast",EVENT_KEY$1=".bs.toast",EVENT_MOUSEOVER="mouseover.bs.toast",EVENT_MOUSEOUT="mouseout.bs.toast",EVENT_FOCUSIN="focusin.bs.toast",EVENT_FOCUSOUT="focusout.bs.toast",EVENT_HIDE="hide.bs.toast",EVENT_HIDDEN="hidden.bs.toast",EVENT_SHOW="show.bs.toast",EVENT_SHOWN="shown.bs.toast",CLASS_NAME_FADE="fade",CLASS_NAME_HIDE="hide",CLASS_NAME_SHOW="show",CLASS_NAME_SHOWING="showing",DefaultType$1={animation:"boolean",autohide:"boolean",delay:"number"},Default$1={animation:!0,autohide:!0,delay:5e3};class Toast extends BaseComponent{constructor(e,t){super(e,t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return Default$1}static get DefaultType(){return DefaultType$1}static get NAME(){return NAME$1}show(){EventHandler.trigger(this._element,EVENT_SHOW).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove("hide"),reflow(this._element),this._element.classList.add("show","showing"),this._queueCallback(()=>{this._element.classList.remove("showing"),EventHandler.trigger(this._element,EVENT_SHOWN),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this.isShown()&&(EventHandler.trigger(this._element,EVENT_HIDE).defaultPrevented||(this._element.classList.add("showing"),this._queueCallback(()=>{this._element.classList.add("hide"),this._element.classList.remove("showing","show"),EventHandler.trigger(this._element,EVENT_HIDDEN)},this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove("show"),super.dispose()}isShown(){return this._element.classList.contains("show")}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}if(t)return void this._clearTimeout();const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){EventHandler.on(this._element,EVENT_MOUSEOVER,e=>this._onInteraction(e,!0)),EventHandler.on(this._element,EVENT_MOUSEOUT,e=>this._onInteraction(e,!1)),EventHandler.on(this._element,EVENT_FOCUSIN,e=>this._onInteraction(e,!0)),EventHandler.on(this._element,EVENT_FOCUSOUT,e=>this._onInteraction(e,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}}enableDismissTrigger(Toast);const NAME="toggler",DATA_KEY="bs.toggler",EVENT_KEY=`.${DATA_KEY}`,EVENT_TOGGLE=`toggle${EVENT_KEY}`,EVENT_TOGGLED=`toggled${EVENT_KEY}`,EVENT_CLICK="click",SELECTOR_DATA_TOGGLE='[data-bs-toggle="toggler"]',DefaultType={attribute:"string",value:"(string|number|boolean)"},Default={attribute:"class",value:null};class Toggler extends BaseComponent{static get Default(){return Default}static get DefaultType(){return DefaultType}static get NAME(){return NAME}toggle(){EventHandler.trigger(this._element,EVENT_TOGGLE).defaultPrevented||(this._execute(),EventHandler.trigger(this._element,EVENT_TOGGLED))}_execute(){const{attribute:e,value:t}=this._config;"id"!==e&&("class"!==e?this._element.getAttribute(e)!==String(t)?this._element.setAttribute(e,t):this._element.removeAttribute(e):this._element.classList.toggle(t))}}eventActionOnPlugin(Toggler,"click",SELECTOR_DATA_TOGGLE,"toggle");export{Alert,Button,Carousel,Chips,Collapse,Combobox,Datepicker,Dialog,Drawer,Menu,NavOverflow,OtpInput,Popover,ScrollSpy,Strength,Tab,Toast,Toggler,Tooltip};
+import{computePosition,autoUpdate,offset,flip,shift,arrow}from"@floating-ui/dom";import{Calendar}from"vanilla-calendar-pro";const elementMap=new Map,Data={set(e,t,n){elementMap.has(e)||elementMap.set(e,new Map);const s=elementMap.get(e);s.has(t)||0===s.size?s.set(t,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${[...s.keys()][0]}.`)},get:(e,t)=>elementMap.has(e)&&elementMap.get(e).get(t)||null,getAny:e=>elementMap.has(e)&&elementMap.get(e).values().next().value||null,remove(e,t){if(!elementMap.has(e))return;const n=elementMap.get(e);n.delete(t),0===n.size&&elementMap.delete(e)}},namespaceRegex=/[^.]*(?=\..*)\.|.*/,stripNameRegex=/\..*/,stripUidRegex=/::\d+$/,eventRegistry={};let uidEvent=1;const customEvents={mouseenter:"mouseover",mouseleave:"mouseout"},nativeEvents=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function makeEventUid(e,t){return t&&`${t}::${uidEvent++}`||e.uidEvent||uidEvent++}function getElementEvents(e){const t=makeEventUid(e);return e.uidEvent=t,eventRegistry[t]=eventRegistry[t]||{},eventRegistry[t]}function bootstrapHandler(e,t){return function n(s){return hydrateObj(s,{delegateTarget:e}),n.oneOff&&EventHandler.off(e,s.type,t),t.apply(e,[s])}}function bootstrapDelegationHandler(e,t,n){return function s(i){const o=e.querySelectorAll(t);for(let{target:r}=i;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return hydrateObj(i,{delegateTarget:r}),s.oneOff&&EventHandler.off(e,i.type,t,n),n.apply(r,[i])}}function findHandler(e,t,n=null){return Object.values(e).find(e=>e.callable===t&&e.delegationSelector===n)}function normalizeParameters(e,t,n){const s="string"==typeof t,i=s?n:t||n;let o=getTypeEvent(e);return nativeEvents.has(o)||(o=e),[s,i,o]}function addHandler(e,t,n,s,i){if("string"!=typeof t||!e)return;let[o,r,a]=normalizeParameters(t,n,s);if(t in customEvents){const e=e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};r=e(r)}const l=getElementEvents(e),c=l[a]||(l[a]={}),_=findHandler(c,r,o?n:null);if(_)return void(_.oneOff=_.oneOff&&i);const h=makeEventUid(r,t.replace(namespaceRegex,"")),u=o?bootstrapDelegationHandler(e,n,r):bootstrapHandler(e,r);u.delegationSelector=o?n:null,u.callable=r,u.oneOff=i,u.uidEvent=h,c[h]=u,e.addEventListener(a,u,o)}function removeHandler(e,t,n,s,i){const o=findHandler(t[n],s,i);o&&(e.removeEventListener(n,o,Boolean(i)),delete t[n][o.uidEvent])}function removeNamespacedHandlers(e,t,n,s){const i=t[n]||{};for(const[o,r]of Object.entries(i))o.includes(s)&&removeHandler(e,t,n,r.callable,r.delegationSelector)}function getTypeEvent(e){return e=e.replace(stripNameRegex,""),customEvents[e]||e}const EventHandler={on(e,t,n,s){addHandler(e,t,n,s,!1)},one(e,t,n,s){addHandler(e,t,n,s,!0)},off(e,t,n,s){if("string"!=typeof t||!e)return;const[i,o,r]=normalizeParameters(t,n,s),a=r!==t,l=getElementEvents(e),c=l[r]||{},_=t.startsWith(".");if(void 0===o){if(_)for(const n of Object.keys(l))removeNamespacedHandlers(e,l,n,t.slice(1));for(const[n,s]of Object.entries(c)){const i=n.replace(stripUidRegex,"");a&&!t.includes(i)||removeHandler(e,l,r,s.callable,s.delegationSelector)}}else{if(!Object.keys(c).length)return;removeHandler(e,l,r,o,i?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const s=hydrateObj(new Event(t,{bubbles:!0,cancelable:!0}),n);return e.dispatchEvent(s),s}};function hydrateObj(e,t={}){for(const[n,s]of Object.entries(t))try{e[n]=s}catch{Object.defineProperty(e,n,{configurable:!0,get:()=>s})}return e}function normalizeData(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function normalizeDataKey(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}const Manipulator={setDataAttribute(e,t,n){e.setAttribute(`data-bs-${normalizeDataKey(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${normalizeDataKey(t)}`)},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter(e=>e.startsWith("bs")&&!e.startsWith("bsConfig"));for(const s of n){let n=s.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1),t[n]=normalizeData(e.dataset[s])}return t},getDataAttribute:(e,t)=>normalizeData(e.getAttribute(`data-bs-${normalizeDataKey(t)}`))},MAX_UID=1e6,MILLISECONDS_MULTIPLIER=1e3,TRANSITION_END="transitionend",parseSelector=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,(e,t)=>`#${CSS.escape(t)}`)),e),toType=e=>null==e?`${e}`:Object.prototype.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase(),getUID=e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e},getTransitionDurationFromElement=e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const s=Number.parseFloat(t),i=Number.parseFloat(n);return s||i?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0},triggerTransitionEnd=e=>{e.dispatchEvent(new Event(TRANSITION_END))},isElement=e=>!(!e||"object"!=typeof e)&&void 0!==e.nodeType,getElement=e=>isElement(e)?e:"string"==typeof e&&e.length>0?document.querySelector(parseSelector(e)):null,isVisible=e=>{if(!isElement(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t},isDisabled=e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")),findShadowRoot=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?findShadowRoot(e.parentNode):null},noop=()=>{},reflow=e=>{e.offsetHeight},isRTL=()=>"rtl"===document.documentElement.dir,execute=(e,t=[],n=e)=>"function"==typeof e?e.call(...t):n,executeAfterTransition=(e,t,n=!0)=>{if(!n)return void execute(e);const s=getTransitionDurationFromElement(t)+5;let i=!1;const o=({target:n})=>{n===t&&(i=!0,t.removeEventListener(TRANSITION_END,o),execute(e))};t.addEventListener(TRANSITION_END,o),setTimeout(()=>{i||triggerTransitionEnd(t)},s)},getNextActiveElement=(e,t,n,s)=>{const i=e.length;let o=e.indexOf(t);return-1===o?!n&&s?e[i-1]:e[0]:(o+=n?1:-1,s&&(o=(o+i)%i),e[Math.max(0,Math.min(o,i-1))])};class Config{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=isElement(t)?Manipulator.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...isElement(t)?Manipulator.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e,t=this.constructor.DefaultType){for(const[n,s]of Object.entries(t)){const t=e[n],i=isElement(t)?"element":toType(t);if(!new RegExp(s).test(i))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${i}" but expected type "${s}".`)}}}const VERSION="6.0.0-alpha1";class BaseComponent extends Config{constructor(e,t){super(),(e=getElement(e))&&(this._element=e,this._config=this._getConfig(t),Data.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Data.remove(this._element,this.constructor.DATA_KEY),EventHandler.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t,n=!0){executeAfterTransition(e,t,n)}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return Data.get(getElement(e),this.DATA_KEY)}static getOrCreateInstance(e,t={}){return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return VERSION}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}}const getSelector=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),t=n&&"#"!==n?n.trim():null}return t?t.split(",").map(e=>parseSelector(e)).join(","):null},SelectorEngine={find:(e,t=document.documentElement)=>[...Element.prototype.querySelectorAll.call(t,e)],findOne:(e,t=document.documentElement)=>Element.prototype.querySelector.call(t,e),children:(e,t)=>[...e.children].filter(e=>e.matches(t)),parents(e,t){const n=[];let s=e.parentNode.closest(t);for(;s;)n.push(s),s=s.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(e=>`${e}:not([tabindex^="-"])`).join(",");return this.find(t,e).filter(e=>!isDisabled(e)&&isVisible(e))},getSelectorFromElement(e){const t=getSelector(e);return t&&SelectorEngine.findOne(t)?t:null},getElementFromSelector(e){const t=getSelector(e);return t?SelectorEngine.findOne(t):null},getMultipleElementsFromSelector(e){const t=getSelector(e);return t?SelectorEngine.find(t):[]}},enableDismissTrigger=(e,t="hide")=>{const n=`click.dismiss${e.EVENT_KEY}`,s=e.NAME;EventHandler.on(document,n,`[data-bs-dismiss="${s}"]`,function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),isDisabled(this))return;const i=SelectorEngine.getElementFromSelector(this)||this.closest(`.${s}`);e.getOrCreateInstance(i)[t]()})},eventActionOnPlugin=(e,t,n,s,i=null)=>{eventAction(`${t}.${e.NAME}`,n,t=>{const n=t.targets.filter(Boolean).map(t=>e.getOrCreateInstance(t));"function"==typeof i&&i({...t,instances:n});for(const e of n)e[s]()})},eventAction=(e,t,n)=>{const s=`${t}:not(.disabled):not(:disabled)`;EventHandler.on(document,e,s,function(e){["A","AREA"].includes(this.tagName)&&e.preventDefault();const t=SelectorEngine.getSelectorFromElement(this),s=t?SelectorEngine.find(t):[this];n({targets:s,event:e})})},NAME$k="alert",DATA_KEY$g="bs.alert",EVENT_KEY$h=".bs.alert",EVENT_CLOSE="close.bs.alert",EVENT_CLOSED="closed.bs.alert",CLASS_NAME_FADE$4="fade",CLASS_NAME_SHOW$6="show";class Alert extends BaseComponent{static get NAME(){return NAME$k}close(){if(EventHandler.trigger(this._element,EVENT_CLOSE).defaultPrevented)return;this._element.classList.remove("show");const e=this._element.classList.contains("fade");this._queueCallback(()=>this._destroyElement(),this._element,e)}_destroyElement(){this._element.remove(),EventHandler.trigger(this._element,EVENT_CLOSED),this.dispose()}}enableDismissTrigger(Alert,"close");const NAME$j="button",DATA_KEY$f="bs.button",EVENT_KEY$g=`.${DATA_KEY$f}`,DATA_API_KEY$b=".data-api",CLASS_NAME_ACTIVE$4="active",SELECTOR_DATA_TOGGLE$a='[data-bs-toggle="button"]',EVENT_CLICK_DATA_API$8=`click${EVENT_KEY$g}.data-api`;class Button extends BaseComponent{static get NAME(){return NAME$j}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}}EventHandler.on(document,EVENT_CLICK_DATA_API$8,SELECTOR_DATA_TOGGLE$a,e=>{e.preventDefault();const t=e.target.closest(SELECTOR_DATA_TOGGLE$a);Button.getOrCreateInstance(t).toggle()});const NAME$i="carousel",DATA_KEY$e="bs.carousel",EVENT_KEY$f=`.${DATA_KEY$e}`,DATA_API_KEY$a=".data-api",ARROW_LEFT_KEY$2="ArrowLeft",ARROW_RIGHT_KEY$2="ArrowRight",DIRECTION_LEFT="left",DIRECTION_RIGHT="right",EVENT_SLIDE=`slide${EVENT_KEY$f}`,EVENT_SLID=`slid${EVENT_KEY$f}`,EVENT_KEYDOWN$1=`keydown${EVENT_KEY$f}`,EVENT_MOUSEENTER$2=`mouseenter${EVENT_KEY$f}`,EVENT_MOUSELEAVE$1=`mouseleave${EVENT_KEY$f}`,EVENT_POINTERDOWN$1=`pointerdown${EVENT_KEY$f}`,EVENT_LOAD_DATA_API$3=`load${EVENT_KEY$f}.data-api`,EVENT_CLICK_DATA_API$7=`click${EVENT_KEY$f}.data-api`,CLASS_NAME_CAROUSEL="carousel",CLASS_NAME_ACTIVE$3="active",CLASS_NAME_FADE$3="carousel-fade",CLASS_NAME_CENTER="carousel-center",CLASS_NAME_AUTO="carousel-auto",CLASS_NAME_CLONE="carousel-item-clone",CLASS_NAME_PAUSED="paused",CLASS_NAME_PLAYING="carousel-playing",PROPERTY_INTERVAL="--bs-carousel-interval",SCROLL_SETTLE_MAX_FRAMES=10,ACTIVE_RATIO_TOLERANCE=.05,SELECTOR_ACTIVE=".active",SELECTOR_ITEM=`.carousel-item:not(.${CLASS_NAME_CLONE})`,SELECTOR_ACTIVE_ITEM=".active"+SELECTOR_ITEM,SELECTOR_INNER$1=".carousel-inner",SELECTOR_INDICATORS=".carousel-indicators",SELECTOR_PLAY_PAUSE=".carousel-control-play-pause",SELECTOR_DATA_SLIDE="[data-bs-slide], [data-bs-slide-to]",SELECTOR_DATA_SLIDE_PREV='[data-bs-slide="prev"]',SELECTOR_DATA_SLIDE_NEXT='[data-bs-slide="next"]',SELECTOR_DATA_AUTOPLAY='[data-bs-autoplay="true"]',KEY_TO_DIRECTION={[ARROW_LEFT_KEY$2]:"right",[ARROW_RIGHT_KEY$2]:"left"},ENDS_STOP="stop",ENDS_WRAP="wrap",ENDS_LOOP="loop",Default$h={autoplay:!1,ends:ENDS_LOOP,interval:5e3,keyboard:!0,pause:"hover"},DefaultType$h={autoplay:"boolean",ends:"string",interval:"number",keyboard:"boolean",pause:"(string|boolean)"};class Carousel extends BaseComponent{constructor(e,t){super(e,t),this._viewport=SelectorEngine.findOne(SELECTOR_INNER$1,this._element)||this._element,this._indicatorsElement=SelectorEngine.findOne(SELECTOR_INDICATORS,this._element),this._playPauseElement=SelectorEngine.findOne(SELECTOR_PLAY_PAUSE,this._element),this._prevControls=SelectorEngine.find('[data-bs-slide="prev"]',this._element),this._nextControls=SelectorEngine.find('[data-bs-slide="next"]',this._element),this._interval=null,this._observer=null,this._snapRestoreFrame=null,this._looping=!1,this._visibility=new Map,this._playing=this._config.autoplay,this._activeIndex=this._initialActiveIndex(),this._addEventListeners(),this._observeItems(),this._refreshActiveState(),this._playing&&this.cycle(),this._updatePlayPauseControl()}static get Default(){return Default$h}static get DefaultType(){return DefaultType$h}static get NAME(){return NAME$i}next(){this.to(this._navIndex()+1)}nextWhenVisible(){"visible"===document.visibilityState&&isVisible(this._element)&&this.next()}prev(){this.to(this._navIndex()-1)}pause(){this._clearInterval(),this._element.classList.remove("carousel-playing")}cycle(){this._clearInterval(),this._scheduleAutoplay(),this._element.classList.add("carousel-playing")}to(e){if(this._looping)return;const t=this._getItems(),n=Number.parseInt(e,10);if(this._config.ends===ENDS_LOOP&&!this._prefersReducedMotion()&&this._canLoop()){if(n>t.length-1)return void this._loopTransition(!0);if(n<0)return void this._loopTransition(!1)}const s=this._normalizeIndex(n,t.length),i=this._navIndex();null!==s&&s!==i&&(EventHandler.trigger(this._element,EVENT_SLIDE,{relatedTarget:t[s],direction:this._direction(i,s),from:i,to:s}).defaultPrevented||(this._isFade()?this._fadeTo(s):this._scrollToIndex(s)))}dispose(){this._clearInterval(),this._observer&&this._observer.disconnect(),null!==this._snapRestoreFrame&&cancelAnimationFrame(this._snapRestoreFrame);for(const e of SelectorEngine.find(`.${CLASS_NAME_CLONE}`,this._viewport))e.remove();this._viewport.style.scrollSnapType="",EventHandler.off(this._viewport,EVENT_KEY$f),super.dispose()}_configAfterMerge(e){return[ENDS_STOP,ENDS_WRAP,ENDS_LOOP].includes(e.ends)||(e.ends=Default$h.ends),e}_initialActiveIndex(){const e=SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element),t=e?this._getItems().indexOf(e):0;return Math.max(t,0)}_addEventListeners(){this._config.keyboard&&EventHandler.on(this._element,EVENT_KEYDOWN$1,e=>this._keydown(e)),"hover"===this._config.pause&&(EventHandler.on(this._element,EVENT_MOUSEENTER$2,()=>this.pause()),EventHandler.on(this._element,EVENT_MOUSELEAVE$1,()=>this._maybeEnableCycle())),EventHandler.on(this._viewport,EVENT_POINTERDOWN$1,()=>this._pauseFromInteraction())}_keydown(e){if(/input|textarea/i.test(e.target.tagName))return;const t=KEY_TO_DIRECTION[e.key];t&&(e.preventDefault(),this._pauseFromInteraction(),"right"===t?this.prev():this.next())}_observeItems(){if(!this._isFade()&&"undefined"!=typeof IntersectionObserver){this._observer=new IntersectionObserver(e=>this._handleIntersection(e),{root:this._viewport,threshold:[0,.25,.5,.75,1]});for(const e of this._getItems())this._observer.observe(e)}}_handleIntersection(e){if(this._looping)return;for(const t of e)this._visibility.set(t.target,t.isIntersecting?t.intersectionRatio:0);const t=this._getItems().map(e=>this._visibility.get(e)??0),n=Math.max(...t);let s=this._activeIndex;n>0&&(s=t.findIndex(e=>e>=n-.05)),this._setActive(s),this._updateEndControls()}_navIndex(){if(this._isFade()||this._viewport.scrollWidth-this._viewport.clientWidth<=0)return this._activeIndex;let e=this._activeIndex,t=Number.POSITIVE_INFINITY;for(const[n,s]of this._getItems().entries()){const i=Math.abs(this._scrollDelta(s));i<t&&(t=i,e=n)}return e}_scrollToIndex(e){const t=this._getItems()[e];if(!t)return;const n=this._scrollDelta(t);if(Math.abs(n)<1)return;const s=this._viewport.scrollLeft+n;this._viewport.style.scrollSnapType="none",this._viewport.scrollBy({left:n,top:0,behavior:this._prefersReducedMotion()?"instant":"smooth"}),this._restoreSnapWhenSettled(s,e)}_scrollDelta(e){const t=this._viewport.getBoundingClientRect(),n=e.getBoundingClientRect();if(this._element.classList.contains("carousel-center"))return n.left+n.width/2-(t.left+t.width/2);const s=Number.parseFloat(getComputedStyle(this._viewport).scrollPaddingInlineStart)||0;return isRTL()?n.right-(t.right-s):n.left-(t.left+s)}_loopTransition(e){const t=this._getItems(),n=t.length-1,s=this._activeIndex,i=e?0:n,o=this._loopDirection(e);if(EventHandler.trigger(this._element,EVENT_SLIDE,{relatedTarget:t[i],direction:o,from:s,to:i}).defaultPrevented)return;this._looping=!0;const r=(e?t[0]:t[n]).cloneNode(!0);r.classList.add(CLASS_NAME_CLONE),r.classList.remove("active"),r.removeAttribute("id");for(const e of SelectorEngine.find("[id]",r))e.removeAttribute("id");r.setAttribute("aria-hidden","true"),r.inert=!0,this._viewport.style.scrollSnapType="none",e?this._viewport.append(r):(this._viewport.prepend(r),this._jumpScroll(this._scrollDelta(t[s]))),this._viewport.scrollBy({left:this._scrollDelta(r),top:0,behavior:"smooth"}),this._afterScrollSettles(()=>{r.remove(),this._jumpScroll(this._scrollDelta(t[i])),this._activeIndex=i,this._refreshActiveState(),EventHandler.trigger(this._element,EVENT_SLID,{relatedTarget:t[i],direction:o,from:s,to:i}),this._viewport.style.scrollSnapType="",this._looping=!1})}_loopDirection(e){return isRTL()?e?"right":"left":e?"left":"right"}_jumpScroll(e){this._viewport.style.scrollSnapType="none",this._viewport.scrollBy({left:e,top:0,behavior:"instant"})}_restoreSnapWhenSettled(e,t){this._afterScrollSettles(()=>{this._viewport.style.scrollSnapType="",this._observer||void 0===t||this._setActive(t),this._updateEndControls()},e)}_afterScrollSettles(e,t){if("undefined"==typeof requestAnimationFrame)return void e();null!==this._snapRestoreFrame&&cancelAnimationFrame(this._snapRestoreFrame);const n=this._viewport.scrollLeft;let s=n,i=0,o=0,r=!1;const a=()=>{const l=this._viewport.scrollLeft,c=void 0!==t&&Math.abs(l-t)<=1;if(Math.abs(l-n)>1&&(r=!0),r&&(i=Math.abs(l-s)<1?i+1:0),s=l,o+=1,c||r&&i>=3||!r&&o>=10)return this._snapRestoreFrame=null,void e();this._snapRestoreFrame=requestAnimationFrame(a)};this._snapRestoreFrame=requestAnimationFrame(a)}_fadeTo(e){this._setActive(e)}_setActive(e){const t=this._getItems();if(e===this._activeIndex||!t[e])return;const n=this._activeIndex;this._activeIndex=e,this._refreshActiveState(),EventHandler.trigger(this._element,EVENT_SLID,{relatedTarget:t[e],direction:this._direction(n,e),from:n,to:e})}_refreshActiveState(){const e=this._getItems();for(const[t,n]of e.entries())n.classList.toggle("active",t===this._activeIndex);this._setActiveIndicatorElement(this._activeIndex),this._updateEndControls()}_updateEndControls(){if(this._config.ends!==ENDS_STOP)return;const e=this._viewport,t=e.scrollWidth-e.clientWidth;let n,s;if(t>0){const i=Math.abs(e.scrollLeft);n=i<=1,s=i>=t-1}else{const e=this._getItems().length-1;n=this._activeIndex<=0,s=this._activeIndex>=e}this._setControlsDisabled(this._prevControls,n),this._setControlsDisabled(this._nextControls,s)}_setControlsDisabled(e,t){for(const n of e)t&&n===document.activeElement&&((e===this._prevControls?this._nextControls:this._prevControls)[0]??this._viewport).focus({preventScroll:!0}),n.disabled=t}_setActiveIndicatorElement(e){if(!this._indicatorsElement)return;const t=SelectorEngine.findOne(".active",this._indicatorsElement);t&&(t.classList.remove("active"),t.removeAttribute("aria-current"));const n=SelectorEngine.findOne(`[data-bs-slide-to="${e}"]`,this._indicatorsElement);n&&(n.classList.add("active"),n.setAttribute("aria-current","true"))}_normalizeIndex(e,t){return Number.isNaN(e)||0===t?null:e<0?this._wrapsAround()?t-1:null:e>t-1?this._wrapsAround()?0:null:e}_wrapsAround(){return this._config.ends===ENDS_WRAP||this._config.ends===ENDS_LOOP}_canLoop(){if(this._isFade()||this._getItems().length<2)return!1;const e=getComputedStyle(this._element),t=t=>Number.parseFloat(e.getPropertyValue(t))||0;return 1===(t("--bs-carousel-items")||1)&&0===t("--bs-carousel-items-peek")&&!this._element.classList.contains("carousel-center")&&!this._element.classList.contains("carousel-auto")}_direction(e,t){const n=t>e;return isRTL()?n?"right":"left":n?"left":"right"}_scheduleAutoplay(e=this._activeIndex){const t=this._itemInterval(e);this._element.style.setProperty(PROPERTY_INTERVAL,`${t}ms`),this._interval=setTimeout(()=>{const e=this._upcomingIndex();this.nextWhenVisible(),null!==e?this._scheduleAutoplay(e):this.pause()},t)}_upcomingIndex(){return this._normalizeIndex(this._navIndex()+1,this._getItems().length)}_itemInterval(e=this._activeIndex){const t=this._getItems()[e],n=t?Number.parseInt(t.getAttribute("data-bs-interval"),10):Number.NaN;return Number.isNaN(n)?this._config.interval:n}_maybeEnableCycle(){this._playing&&this.cycle()}_pauseFromInteraction(){this._playing=!1,this.pause(),this._updatePlayPauseControl()}_togglePlayPause(){this._playing?this._pauseFromInteraction():(this._playing=!0,this.cycle(),this._updatePlayPauseControl())}_updatePlayPauseControl(){if(!this._playPauseElement)return;this._playPauseElement.classList.toggle("paused",!this._playing);const e=this._playPauseElement.getAttribute(this._playing?"data-bs-pause-label":"data-bs-play-label");e&&this._playPauseElement.setAttribute("aria-label",e)}_isFade(){return this._element.classList.contains("carousel-fade")}_prefersReducedMotion(){return"undefined"!=typeof window&&"function"==typeof window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}_getItems(){return SelectorEngine.find(SELECTOR_ITEM,this._element)}_clearInterval(){this._interval&&(clearTimeout(this._interval),this._interval=null)}}EventHandler.on(document,EVENT_CLICK_DATA_API$7,SELECTOR_DATA_SLIDE,function(e){const t=SelectorEngine.getElementFromSelector(this);if(!t||!t.classList.contains("carousel"))return;e.preventDefault();const n=Carousel.getOrCreateInstance(t);n._pauseFromInteraction();const s=this.getAttribute("data-bs-slide-to");s?n.to(s):"next"!==Manipulator.getDataAttribute(this,"slide")?n.prev():n.next()}),EventHandler.on(document,EVENT_CLICK_DATA_API$7,SELECTOR_PLAY_PAUSE,function(e){const t=SelectorEngine.getElementFromSelector(this);t&&t.classList.contains("carousel")&&(e.preventDefault(),Carousel.getOrCreateInstance(t)._togglePlayPause())}),EventHandler.on(window,EVENT_LOAD_DATA_API$3,()=>{const e=SelectorEngine.find(SELECTOR_DATA_AUTOPLAY);for(const t of e)Carousel.getOrCreateInstance(t)});const NAME$h="collapse",DATA_KEY$d="bs.collapse",EVENT_KEY$e=`.${DATA_KEY$d}`,DATA_API_KEY$9=".data-api",EVENT_SHOW$7=`show${EVENT_KEY$e}`,EVENT_SHOWN$6=`shown${EVENT_KEY$e}`,EVENT_HIDE$6=`hide${EVENT_KEY$e}`,EVENT_HIDDEN$8=`hidden${EVENT_KEY$e}`,EVENT_CLICK_DATA_API$6=`click${EVENT_KEY$e}.data-api`,CLASS_NAME_SHOW$5="show",CLASS_NAME_COLLAPSE="collapse",CLASS_NAME_COLLAPSING="collapsing",CLASS_NAME_COLLAPSED="collapsed",CLASS_NAME_DEEPER_CHILDREN=":scope .collapse .collapse",CLASS_NAME_HORIZONTAL="collapse-horizontal",WIDTH="width",HEIGHT="height",SELECTOR_ACTIVES=".collapse.show, .collapse.collapsing",SELECTOR_DATA_TOGGLE$9='[data-bs-toggle="collapse"]',Default$g={parent:null,toggle:!0},DefaultType$g={parent:"(null|element)",toggle:"boolean"};class Collapse extends BaseComponent{constructor(e,t){super(e,t),this._isTransitioning=!1,this._triggerArray=[];const n=SelectorEngine.find(SELECTOR_DATA_TOGGLE$9);for(const e of n){const t=SelectorEngine.getSelectorFromElement(e),n=SelectorEngine.find(t).filter(e=>e===this._element);null!==t&&n.length&&this._triggerArray.push(e)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Default$g}static get DefaultType(){return DefaultType$g}static get NAME(){return NAME$h}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e=[];if(this._config.parent&&(e=this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(e=>e!==this._element).map(e=>Collapse.getOrCreateInstance(e,{toggle:!1}))),e.length&&e[0]._isTransitioning)return;if(EventHandler.trigger(this._element,EVENT_SHOW$7).defaultPrevented)return;for(const t of e)t.hide();const t=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[t]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n=`scroll${t[0].toUpperCase()+t.slice(1)}`;this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove("collapsing"),this._element.classList.add("collapse","show"),this._element.style[t]="",EventHandler.trigger(this._element,EVENT_SHOWN$6)},this._element,!0),this._element.style[t]=`${this._element[n]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(EventHandler.trigger(this._element,EVENT_HIDE$6).defaultPrevented)return;const e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,reflow(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");for(const e of this._triggerArray){const t=SelectorEngine.getElementFromSelector(e);t&&!this._isShown(t)&&this._addAriaAndCollapsedClass([e],!1)}this._isTransitioning=!0,this._element.style[e]="",this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove("collapsing"),this._element.classList.add("collapse"),EventHandler.trigger(this._element,EVENT_HIDDEN$8)},this._element,!0)}_isShown(e=this._element){return e.classList.contains("show")}_configAfterMerge(e){return e.toggle=Boolean(e.toggle),e.parent=getElement(e.parent),e}_getDimension(){return this._element.classList.contains("collapse-horizontal")?WIDTH:HEIGHT}_initializeChildren(){if(!this._config.parent)return;const e=this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$9);for(const t of e){const e=SelectorEngine.getElementFromSelector(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}}_getFirstLevelChildren(e){const t=SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN,this._config.parent);return SelectorEngine.find(e,this._config.parent).filter(e=>!t.includes(e))}_addAriaAndCollapsedClass(e,t){if(e.length)for(const n of e)n.classList.toggle("collapsed",!t),n.setAttribute("aria-expanded",t)}}EventHandler.on(document,EVENT_CLICK_DATA_API$6,SELECTOR_DATA_TOGGLE$9,function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();for(const e of SelectorEngine.getMultipleElementsFromSelector(this))Collapse.getOrCreateInstance(e,{toggle:!1}).toggle()});const BREAKPOINTS={sm:576,md:768,lg:1024,xl:1280,"2xl":1536},parseResponsivePlacement=(e,t="bottom")=>{if(!e||!e.includes(":"))return null;const n=e.split(/\s+/),s={xs:t};for(const e of n)if(e.includes(":")){const[t,n]=e.split(":");void 0!==BREAKPOINTS[t]&&(s[t]=n)}else s.xs=e;return s},getResponsivePlacement=(e,t="bottom")=>{if(!e)return t;const n=window.innerWidth;let s=e.xs||t;const i=["sm","md","lg","xl","2xl"];for(const t of i)n>=BREAKPOINTS[t]&&e[t]&&(s=e[t]);return s},createBreakpointListeners=e=>{const t=[];for(const n of Object.keys(BREAKPOINTS)){const s=BREAKPOINTS[n],i=window.matchMedia(`(min-width: ${s}px)`);i.addEventListener("change",e),t.push({mql:i,handler:e})}return t},disposeBreakpointListeners=e=>{for(const{mql:t,handler:n}of e)t.removeEventListener("change",n)},NAME$g="menu",DATA_KEY$c="bs.menu",EVENT_KEY$d=".bs.menu",DATA_API_KEY$8=".data-api",ESCAPE_KEY$1="Escape",TAB_KEY$1="Tab",ARROW_UP_KEY$2="ArrowUp",ARROW_DOWN_KEY$2="ArrowDown",ARROW_LEFT_KEY$1="ArrowLeft",ARROW_RIGHT_KEY$1="ArrowRight",HOME_KEY$2="Home",END_KEY$2="End",ENTER_KEY$1="Enter",SPACE_KEY$1=" ",RIGHT_MOUSE_BUTTON=2,SUBMENU_CLOSE_DELAY=100,EVENT_HIDE$5="hide.bs.menu",EVENT_HIDDEN$7="hidden.bs.menu",EVENT_SHOW$6="show.bs.menu",EVENT_SHOWN$5="shown.bs.menu",EVENT_CLICK_DATA_API$5="click.bs.menu.data-api",EVENT_KEYDOWN_DATA_API="keydown.bs.menu.data-api",EVENT_KEYUP_DATA_API="keyup.bs.menu.data-api",CLASS_NAME_SHOW$4="show",SELECTOR_DATA_TOGGLE$8='[data-bs-toggle="menu"]:not(.disabled):not(:disabled)',SELECTOR_MENU$2=".menu",SELECTOR_SUBMENU=".submenu",SELECTOR_SUBMENU_TOGGLE=".submenu > .menu-item",SELECTOR_NAVBAR_NAV=".navbar-nav",SELECTOR_VISIBLE_ITEMS$1=".menu-item:not(.disabled):not(:disabled)",DEFAULT_PLACEMENT="bottom-start",SUBMENU_PLACEMENT="end-start",resolveLogicalPlacement=e=>isRTL()?e.replace(/^start(?=-|$)/,"right").replace(/^end(?=-|$)/,"left"):e.replace(/^start(?=-|$)/,"left").replace(/^end(?=-|$)/,"right"),triangleSign=(e,t,n)=>(e.x-n.x)*(t.y-n.y)-(t.x-n.x)*(e.y-n.y),Default$f={autoClose:!0,boundary:"clippingParents",container:!1,display:"dynamic",offset:[0,2],floatingConfig:null,menu:null,placement:"bottom-start",reference:"toggle",strategy:"absolute",submenuTrigger:"both",submenuDelay:100},DefaultType$f={autoClose:"(boolean|string)",boundary:"(string|element)",container:"(string|element|boolean)",display:"string",offset:"(array|string|function)",floatingConfig:"(null|object|function)",menu:"(null|element)",placement:"string",reference:"(string|element|object)",strategy:"string",submenuTrigger:"string",submenuDelay:"number"};class Menu extends BaseComponent{static _openInstances=new Set;constructor(e,t){if(void 0===computePosition)throw new TypeError("Bootstrap's menus require Floating UI (https://floating-ui.com)");super(e,t),this._floatingCleanup=null,this._mediaQueryListeners=[],this._responsivePlacements=null,this._parent=this._element.parentNode,this._isSubmenu=this._parent.classList?.contains("submenu"),this._openSubmenus=new Map,this._submenuCloseTimeouts=new Map,this._hoverIntentData=null,this._menu=this._config.menu||this._findMenu(),this._menuOriginalParent=this._menu?.parentNode,this._parseResponsivePlacements(),this._setupSubmenuListeners()}static get Default(){return Default$f}static get DefaultType(){return DefaultType$f}static get NAME(){return"menu"}toggle(){return this._isShown()?this.hide():this.show()}show(){if(isDisabled(this._element)||this._isShown())return;const e={relatedTarget:this._element};if(!EventHandler.trigger(this._element,EVENT_SHOW$6,e).defaultPrevented){if(this._moveMenuToContainer(),this._createFloating(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const e of document.body.children)EventHandler.on(e,"mouseover",noop);this._element.focus({focusVisible:!1}),this._element.setAttribute("aria-expanded","true"),this._menu.classList.add("show"),this._element.classList.add("show"),this._parent&&this._parent.classList.add("show"),Menu._openInstances.add(this),EventHandler.trigger(this._element,EVENT_SHOWN$5,e)}}hide(){if(isDisabled(this._element)||!this._isShown())return;const e={relatedTarget:this._element};this._completeHide(e)}dispose(){this._disposeFloating(),this._restoreMenuToOriginalParent(),this._disposeMediaQueryListeners(),this._closeAllSubmenus(),this._clearAllSubmenuTimeouts(),Menu._openInstances.delete(this),super.dispose()}update(){this._floatingCleanup&&this._updateFloatingPosition()}_findMenu(){return SelectorEngine.next(this._element,".menu")[0]||SelectorEngine.prev(this._element,".menu")[0]||SelectorEngine.findOne(".menu",this._parent)}_completeHide(e){if(!EventHandler.trigger(this._element,EVENT_HIDE$5,e).defaultPrevented){if(this._closeAllSubmenus(),"ontouchstart"in document.documentElement)for(const e of document.body.children)EventHandler.off(e,"mouseover",noop);this._disposeFloating(),this._restoreMenuToOriginalParent(),this._menu.classList.remove("show"),this._element.classList.remove("show"),this._parent&&this._parent.classList.remove("show"),this._element.setAttribute("aria-expanded","false"),Manipulator.removeDataAttribute(this._menu,"placement"),Manipulator.removeDataAttribute(this._menu,"display"),Menu._openInstances.delete(this),EventHandler.trigger(this._element,EVENT_HIDDEN$7,e)}}_getConfig(e){if("object"==typeof(e=super._getConfig(e)).reference&&!isElement(e.reference)&&"function"!=typeof e.reference.getBoundingClientRect)throw new TypeError(`${"menu".toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return e}_createFloating(){if("static"===this._config.display)return void Manipulator.setDataAttribute(this._menu,"display","static");let e=this._element;"parent"===this._config.reference?e=this._parent:isElement(this._config.reference)?e=getElement(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference),this._updateFloatingPosition(e),this._floatingCleanup=autoUpdate(e,this._menu,()=>this._updateFloatingPosition(e))}async _updateFloatingPosition(e=null){if(!this._menu)return;e||(e="parent"===this._config.reference?this._parent:isElement(this._config.reference)?getElement(this._config.reference):"object"==typeof this._config.reference?this._config.reference:this._element);const t=this._getPlacement(),n=this._getFloatingMiddleware(),s=this._getFloatingConfig(t,n);await this._applyFloatingPosition(e,this._menu,s.placement,s.middleware,s.strategy)}_isShown(){return this._menu.classList.contains("show")}_getPlacement(){const e=this._responsivePlacements?getResponsivePlacement(this._responsivePlacements,"bottom-start"):this._config.placement;return resolveLogicalPlacement(e)}_parseResponsivePlacements(){this._responsivePlacements=parseResponsivePlacement(this._config.placement,"bottom-start"),this._responsivePlacements&&this._setupMediaQueryListeners()}_setupMediaQueryListeners(){this._disposeMediaQueryListeners(),this._mediaQueryListeners=createBreakpointListeners(()=>{this._isShown()&&this._updateFloatingPosition()})}_disposeMediaQueryListeners(){disposeBreakpointListeners(this._mediaQueryListeners),this._mediaQueryListeners=[]}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?({placement:t,rects:n})=>e({placement:t,reference:n.reference,floating:n.floating},this._element):e}_getFloatingMiddleware(){const e=this._getOffset();return[offset("function"==typeof e?e:{mainAxis:e[1]||0,crossAxis:e[0]||0}),flip({fallbackPlacements:this._getFallbackPlacements()}),shift({boundary:"clippingParents"===this._config.boundary?"clippingAncestors":this._config.boundary})]}_getFallbackPlacements(){return{bottom:["top","bottom-start","bottom-end","top-start","top-end"],"bottom-start":["top-start","bottom-end","top-end"],"bottom-end":["top-end","bottom-start","top-start"],top:["bottom","top-start","top-end","bottom-start","bottom-end"],"top-start":["bottom-start","top-end","bottom-end"],"top-end":["bottom-end","top-start","bottom-start"],right:["left","right-start","right-end","left-start","left-end"],"right-start":["left-start","right-end","left-end","top-start","bottom-start"],"right-end":["left-end","right-start","left-start","top-end","bottom-end"],left:["right","left-start","left-end","right-start","right-end"],"left-start":["right-start","left-end","right-end","top-start","bottom-start"],"left-end":["right-end","left-start","right-start","top-end","bottom-end"]}[this._getPlacement()]||["top","bottom","right","left"]}_getFloatingConfig(e,t){const n={placement:e,middleware:t,strategy:this._config.strategy};return{...n,...execute(this._config.floatingConfig,[void 0,n])}}_disposeFloating(){this._floatingCleanup&&(this._floatingCleanup(),this._floatingCleanup=null)}_getContainer(){const{container:e}=this._config;return!1===e?null:!0===e?document.body:getElement(e)}_moveMenuToContainer(){const e=this._getContainer();e&&this._menu&&this._menu.parentNode!==e&&e.append(this._menu)}_restoreMenuToOriginalParent(){this._menuOriginalParent&&this._menu&&this._menu.parentNode!==this._menuOriginalParent&&this._menuOriginalParent.append(this._menu)}async _applyFloatingPosition(e,t,n,s,i="absolute"){if(!t.isConnected)return null;const{x:o,y:r,placement:a}=await computePosition(e,t,{placement:n,middleware:s,strategy:i});return t.isConnected?(Object.assign(t.style,{position:i,left:`${o}px`,top:`${r}px`,margin:"0"}),Manipulator.setDataAttribute(t,"placement",a),a):null}_setupSubmenuListeners(){"hover"!==this._config.submenuTrigger&&"both"!==this._config.submenuTrigger||(EventHandler.on(this._menu,"mouseenter",".submenu > .menu-item",e=>{this._onSubmenuTriggerEnter(e)}),EventHandler.on(this._menu,"mouseleave",".submenu",e=>{this._onSubmenuLeave(e)}),EventHandler.on(this._menu,"mousemove",e=>{this._trackMousePosition(e)})),"click"!==this._config.submenuTrigger&&"both"!==this._config.submenuTrigger||EventHandler.on(this._menu,"click",".submenu > .menu-item",e=>{this._onSubmenuTriggerClick(e)})}_onSubmenuTriggerEnter(e){const t=e.target.closest(".submenu > .menu-item");if(!t)return;const n=t.closest(".submenu"),s=SelectorEngine.findOne(".menu",n);s&&(this._cancelSubmenuCloseTimeout(s),this._closeSiblingSubmenus(n),this._openSubmenu(t,s,n))}_onSubmenuLeave(e){const t=e.target.closest(".submenu"),n=SelectorEngine.findOne(".menu",t);n&&this._openSubmenus.has(n)&&(this._isMovingTowardSubmenu(e,n)||this._scheduleSubmenuClose(n,t))}_onSubmenuTriggerClick(e){const t=e.target.closest(".submenu > .menu-item");if(!t)return;e.preventDefault(),e.stopPropagation();const n=t.closest(".submenu"),s=SelectorEngine.findOne(".menu",n);s&&(this._openSubmenus.has(s)?this._closeSubmenu(s,n):(this._closeSiblingSubmenus(n),this._openSubmenu(t,s,n)))}_openSubmenu(e,t,n){if(this._openSubmenus.has(t))return;e.setAttribute("aria-expanded","true"),e.setAttribute("aria-haspopup","true"),t.classList.add("show"),n.classList.add("show");const s=this._createSubmenuFloating(e,t,n);this._openSubmenus.set(t,s),EventHandler.on(t,"mouseenter",()=>{this._cancelSubmenuCloseTimeout(t)})}_closeSubmenu(e,t){if(!this._openSubmenus.has(e))return;const n=SelectorEngine.find(".submenu .menu.show",e);for(const e of n){const t=e.closest(".submenu");this._closeSubmenu(e,t)}const s=SelectorEngine.findOne(".submenu > .menu-item",t),i=this._openSubmenus.get(e);i&&i(),this._openSubmenus.delete(e),EventHandler.off(e,"mouseenter"),s&&s.setAttribute("aria-expanded","false"),e.classList.remove("show"),t.classList.remove("show"),e.style.position="",e.style.left="",e.style.top="",e.style.margin=""}_closeAllSubmenus(){for(const[e]of this._openSubmenus){const t=e.closest(".submenu");this._closeSubmenu(e,t)}}_closeSiblingSubmenus(e){const t=e.parentNode,n=SelectorEngine.find(".submenu > .menu.show",t);for(const t of n){const n=t.closest(".submenu");n!==e&&this._closeSubmenu(t,n)}}_createSubmenuFloating(e,t,n){const s=n,i=resolveLogicalPlacement("end-start"),o=[offset({mainAxis:0,crossAxis:-4}),flip({fallbackPlacements:[resolveLogicalPlacement("start-start"),resolveLogicalPlacement("end-end"),resolveLogicalPlacement("start-end")]}),shift({padding:8})],r=()=>this._applyFloatingPosition(s,t,i,o);return r(),autoUpdate(s,t,r)}_scheduleSubmenuClose(e,t){this._cancelSubmenuCloseTimeout(e);const n=setTimeout(()=>{this._closeSubmenu(e,t),this._submenuCloseTimeouts.delete(e)},this._config.submenuDelay);this._submenuCloseTimeouts.set(e,n)}_cancelSubmenuCloseTimeout(e){const t=this._submenuCloseTimeouts.get(e);t&&(clearTimeout(t),this._submenuCloseTimeouts.delete(e))}_clearAllSubmenuTimeouts(){for(const e of this._submenuCloseTimeouts.values())clearTimeout(e);this._submenuCloseTimeouts.clear()}_trackMousePosition(e){this._hoverIntentData={x:e.clientX,y:e.clientY,timestamp:Date.now()}}_isMovingTowardSubmenu(e,t){if(!this._hoverIntentData)return!1;const n=t.getBoundingClientRect(),s={x:e.clientX,y:e.clientY},i={x:this._hoverIntentData.x,y:this._hoverIntentData.y},o=isRTL()?n.right:n.left,r={x:o,y:n.top},a={x:o,y:n.bottom};return this._pointInTriangle(s,i,r,a)}_pointInTriangle(e,t,n,s){const i=triangleSign(e,t,n),o=triangleSign(e,n,s),r=triangleSign(e,s,t);return!((i<0||o<0||r<0)&&(i>0||o>0||r>0))}_selectMenuItem({key:e,target:t}){const n=t.closest(".menu")||this._menu,s=SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS$1}`,n).filter(e=>isVisible(e));s.length&&getNextActiveElement(s,t,e===ARROW_DOWN_KEY$2,!s.includes(t)).focus()}_handleSubmenuKeydown(e){const{key:t,target:n}=e,s=isRTL(),i=s?ARROW_LEFT_KEY$1:ARROW_RIGHT_KEY$1,o=s?ARROW_RIGHT_KEY$1:ARROW_LEFT_KEY$1,r=n.closest(".submenu"),a=r&&n.matches(".submenu > .menu-item");if((t===ENTER_KEY$1||t===SPACE_KEY$1)&&a){e.preventDefault(),e.stopPropagation();const t=SelectorEngine.findOne(".menu",r);return t&&(this._closeSiblingSubmenus(r),this._openSubmenu(n,t,r),requestAnimationFrame(()=>{const e=SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS$1,t);e&&e.focus()})),!0}if(t===i&&a){e.preventDefault(),e.stopPropagation();const t=SelectorEngine.findOne(".menu",r);return t&&(this._closeSiblingSubmenus(r),this._openSubmenu(n,t,r),requestAnimationFrame(()=>{const e=SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS$1,t);e&&e.focus()})),!0}if(t===o){const t=n.closest(".menu"),s=t?.closest(".submenu");if(s){e.preventDefault(),e.stopPropagation();const n=SelectorEngine.findOne(".submenu > .menu-item",s);return this._closeSubmenu(t,s),n&&n.focus(),!0}}if(t===HOME_KEY$2||t===END_KEY$2){e.preventDefault(),e.stopPropagation();const s=n.closest(".menu"),i=SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS$1}`,s).filter(e=>isVisible(e));return i.length&&(t===HOME_KEY$2?i[0]:i.at(-1)).focus(),!0}return!1}static clearMenus(e){if(2!==e.button&&("keyup"!==e.type||"Tab"===e.key))for(const t of Menu._openInstances){if(!1===t._config.autoClose)continue;const n=e.composedPath(),s=n.includes(t._menu);if(n.includes(t._element)||"inside"===t._config.autoClose&&!s||"outside"===t._config.autoClose&&s)continue;if(t._menu.contains(e.target)&&("keyup"===e.type&&"Tab"===e.key||/input|select|option|textarea|form/i.test(e.target.tagName)))continue;const i={relatedTarget:t._element};"click"===e.type&&(i.clickEvent=e),t._completeHide(i)}}static dataApiKeydownHandler(e){const t=/input|textarea/i.test(e.target.tagName),n="Escape"===e.key,s=[ARROW_UP_KEY$2,ARROW_DOWN_KEY$2].includes(e.key),i=[ARROW_LEFT_KEY$1,ARROW_RIGHT_KEY$1].includes(e.key),o=[HOME_KEY$2,END_KEY$2].includes(e.key),r=[ENTER_KEY$1,SPACE_KEY$1].includes(e.key),a=e.target.matches(".submenu > .menu-item");if(!(s||n||i||o||r&&a))return;if(t&&!n)return;const l=this.matches(SELECTOR_DATA_TOGGLE$8)?this:SelectorEngine.prev(this,SELECTOR_DATA_TOGGLE$8)[0]||SelectorEngine.next(this,SELECTOR_DATA_TOGGLE$8)[0]||SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$8,e.delegateTarget.parentNode);if(!l)return;const c=Menu.getOrCreateInstance(l);if(!(i||o||r&&a)||!c._handleSubmenuKeydown(e)){if(s)return e.preventDefault(),e.stopPropagation(),c.show(),void c._selectMenuItem(e);if(n&&c._isShown()){e.preventDefault(),e.stopPropagation();const t=e.target.closest(".menu"),n=t?.closest(".submenu");if(n&&c._openSubmenus.size>0){const e=SelectorEngine.findOne(".submenu > .menu-item",n);return c._closeSubmenu(t,n),void(e&&e.focus())}c.hide(),l.focus()}}}}EventHandler.on(document,EVENT_KEYDOWN_DATA_API,SELECTOR_DATA_TOGGLE$8,Menu.dataApiKeydownHandler),EventHandler.on(document,EVENT_KEYDOWN_DATA_API,".menu",Menu.dataApiKeydownHandler),EventHandler.on(document,EVENT_CLICK_DATA_API$5,Menu.clearMenus),EventHandler.on(document,EVENT_KEYUP_DATA_API,Menu.clearMenus),EventHandler.on(document,EVENT_CLICK_DATA_API$5,SELECTOR_DATA_TOGGLE$8,function(e){e.preventDefault(),Menu.getOrCreateInstance(this).toggle()});const NAME$f="combobox",DATA_KEY$b="bs.combobox",EVENT_KEY$c=`.${DATA_KEY$b}`,DATA_API_KEY$7=".data-api",ESCAPE_KEY="Escape",TAB_KEY="Tab",ARROW_UP_KEY$1="ArrowUp",ARROW_DOWN_KEY$1="ArrowDown",HOME_KEY$1="Home",END_KEY$1="End",ENTER_KEY="Enter",SPACE_KEY=" ",EVENT_CHANGE$2=`change${EVENT_KEY$c}`,EVENT_SHOW$5=`show${EVENT_KEY$c}`,EVENT_SHOWN$4=`shown${EVENT_KEY$c}`,EVENT_HIDE$4=`hide${EVENT_KEY$c}`,EVENT_HIDDEN$6=`hidden${EVENT_KEY$c}`,EVENT_CLICK_DATA_API$4=`click${EVENT_KEY$c}.data-api`,CLASS_NAME_SHOW$3="show",CLASS_NAME_SELECTED="selected",CLASS_NAME_PLACEHOLDER="combobox-placeholder",SELECTOR_DATA_TOGGLE$7='[data-bs-toggle="combobox"]',SELECTOR_MENU$1=".menu",SELECTOR_MENU_ITEM=".menu-item[data-bs-value]",SELECTOR_VISIBLE_ITEMS=".menu-item[data-bs-value]:not(.disabled):not(:disabled)",SELECTOR_VALUE=".combobox-value",SELECTOR_SEARCH_INPUT=".combobox-search-input",SELECTOR_NO_RESULTS=".combobox-no-results",Default$e={boundary:"clippingParents",multiple:!1,name:null,offset:[0,2],placeholder:"",placement:"bottom-start",search:!1,searchNormalize:!1},DefaultType$e={boundary:"(string|element)",multiple:"boolean",name:"(string|null)",offset:"(array|string|function)",placeholder:"string",placement:"string",search:"boolean",searchNormalize:"boolean"};class Combobox extends BaseComponent{constructor(e,t){super(e,t),this._toggle=this._element,this._menu=SelectorEngine.next(this._toggle,".menu")[0],this._valueDisplay=SelectorEngine.findOne(SELECTOR_VALUE,this._toggle),this._searchInput=SelectorEngine.findOne(SELECTOR_SEARCH_INPUT,this._menu),this._noResults=SelectorEngine.findOne(SELECTOR_NO_RESULTS,this._menu),this._hiddenInput=null,this._menuInstance=null,this._createHiddenInput(),this._createMenuInstance(),this._syncInitialSelection(),this._addEventListeners()}static get Default(){return Default$e}static get DefaultType(){return DefaultType$e}static get NAME(){return NAME$f}toggle(){return this._isShown()?this.hide():this.show()}show(){isDisabled(this._toggle)||this._isShown()||EventHandler.trigger(this._toggle,EVENT_SHOW$5).defaultPrevented||(this._menuInstance.show(),this._searchInput&&(this._searchInput.value="",this._filterItems(""),requestAnimationFrame(()=>this._searchInput.focus())),EventHandler.trigger(this._toggle,EVENT_SHOWN$4))}hide(){this._isShown()&&(EventHandler.trigger(this._toggle,EVENT_HIDE$4).defaultPrevented||(this._menuInstance.hide(),EventHandler.trigger(this._toggle,EVENT_HIDDEN$6)))}dispose(){this._menuInstance&&(this._menuInstance.dispose(),this._menuInstance=null),this._hiddenInput&&(this._hiddenInput.remove(),this._hiddenInput=null),EventHandler.off(this._menu,EVENT_KEY$c),EventHandler.off(this._toggle,EVENT_KEY$c),super.dispose()}_isShown(){return this._menu.classList.contains("show")}_createHiddenInput(){const{name:e}=this._config;e&&(this._hiddenInput=document.createElement("input"),this._hiddenInput.type="hidden",this._hiddenInput.name=e,this._hiddenInput.value="",this._toggle.parentNode.insertBefore(this._hiddenInput,this._toggle))}_createMenuInstance(){this._menuInstance=new Menu(this._toggle,{menu:this._menu,autoClose:!this._config.multiple||"outside",boundary:this._config.boundary,offset:this._config.offset,placement:this._config.placement})}_syncInitialSelection(){this._getSelectedItems().length>0?(this._updateToggleText(),this._updateHiddenInput()):this._showPlaceholder()}_addEventListeners(){EventHandler.on(this._menu,"click",SELECTOR_MENU_ITEM,e=>{const t=e.target.closest(SELECTOR_MENU_ITEM);t&&!isDisabled(t)&&(e.preventDefault(),e.stopPropagation(),this._selectItem(t))}),EventHandler.on(this._toggle,"keydown",e=>{this._handleToggleKeydown(e)}),EventHandler.on(this._menu,"keydown",e=>{this._handleMenuKeydown(e)}),this._searchInput&&(EventHandler.on(this._searchInput,"input",()=>{this._filterItems(this._searchInput.value)}),EventHandler.on(this._searchInput,"keydown",e=>{if("ArrowDown"===e.key){e.preventDefault();const t=this._getVisibleItems();t.length>0&&t[0].focus()}"Escape"===e.key&&(this.hide(),this._toggle.focus())}))}_selectItem(e){if(this._config.multiple)e.classList.toggle("selected"),e.setAttribute("aria-selected",e.classList.contains("selected"));else{const t=SelectorEngine.find(".selected",this._menu);for(const e of t)e.classList.remove("selected"),e.setAttribute("aria-selected","false");e.classList.add("selected"),e.setAttribute("aria-selected","true")}this._updateToggleText(),this._updateHiddenInput();const t=this._config.multiple?this._getSelectedItems().map(e=>e.dataset.bsValue):e.dataset.bsValue;EventHandler.trigger(this._toggle,EVENT_CHANGE$2,{value:t,item:e}),this._config.multiple||(this.hide(),this._toggle.focus())}_updateToggleText(){const e=this._getSelectedItems();if(0!==e.length)if(this._valueDisplay.classList.remove("combobox-placeholder"),this._config.multiple&&e.length>1)this._valueDisplay.textContent=`${e.length} selected`;else{const t=e[0],n=SelectorEngine.findOne(".menu-item-content > span:first-child",t);this._valueDisplay.textContent=n?n.textContent:t.textContent.trim()}else this._showPlaceholder()}_showPlaceholder(){const{placeholder:e}=this._config;e&&(this._valueDisplay.textContent=e,this._valueDisplay.classList.add("combobox-placeholder"))}_updateHiddenInput(){if(!this._hiddenInput)return;const e=this._getSelectedItems().map(e=>e.dataset.bsValue);this._hiddenInput.value=this._config.multiple?e.join(","):e[0]||""}_getSelectedItems(){return SelectorEngine.find(".selected",this._menu)}_getVisibleItems(){return SelectorEngine.find(SELECTOR_VISIBLE_ITEMS,this._menu).filter(e=>isVisible(e))}_filterItems(e){const t=this._normalizeText(e.toLowerCase().trim()),n=SelectorEngine.find(SELECTOR_MENU_ITEM,this._menu);let s=0;for(const e of n){const n=this._normalizeText(e.textContent.toLowerCase().trim()),i=!t||n.includes(t);e.style.display=i?"":"none",i&&s++}this._noResults&&this._noResults.classList.toggle("d-none",s>0)}_normalizeText(e){return this._config.searchNormalize?e.normalize("NFD").replace(/[\u0300-\u036F]/g,""):e}_handleToggleKeydown(e){const{key:t}=e;if("ArrowDown"===t||"ArrowUp"===t){e.preventDefault(),this._isShown()||this.show();const n=this._getVisibleItems();return void(n.length>0&&("ArrowDown"===t?n[0]:n.at(-1)).focus())}"Enter"!==t&&" "!==t||this._isShown()||(e.preventDefault(),this.show())}_handleMenuKeydown(e){const{key:t,target:n}=e;if("Escape"===t)return e.preventDefault(),e.stopPropagation(),this.hide(),void this._toggle.focus();if("Tab"===t)return void this.hide();const s=n.matches("input");if("ArrowDown"===t||"ArrowUp"===t){e.preventDefault();const s=this._getVisibleItems();return void(s.length>0&&getNextActiveElement(s,n,"ArrowDown"===t,!s.includes(n)).focus())}if("Home"===t||"End"===t){e.preventDefault();const n=this._getVisibleItems();return void(n.length>0&&("Home"===t?n[0]:n.at(-1)).focus())}if(("Enter"===t||" "===t)&&!s){e.preventDefault();const t=n.closest(SELECTOR_MENU_ITEM);t&&!isDisabled(t)&&this._selectItem(t)}}static jQueryInterface(e){return this.each(function(){const t=Combobox.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}EventHandler.on(document,EVENT_CLICK_DATA_API$4,SELECTOR_DATA_TOGGLE$7,function(e){e.preventDefault(),Combobox.getOrCreateInstance(this).toggle()}),EventHandler.on(document,"DOMContentLoaded",()=>{for(const e of SelectorEngine.find(SELECTOR_DATA_TOGGLE$7))Combobox.getOrCreateInstance(e)});const NAME$e="datepicker",DATA_KEY$a="bs.datepicker",EVENT_KEY$b=`.${DATA_KEY$a}`,DATA_API_KEY$6=".data-api",EVENT_CHANGE$1=`change${EVENT_KEY$b}`,EVENT_SHOW$4=`show${EVENT_KEY$b}`,EVENT_SHOWN$3=`shown${EVENT_KEY$b}`,EVENT_HIDE$3=`hide${EVENT_KEY$b}`,EVENT_HIDDEN$5=`hidden${EVENT_KEY$b}`,EVENT_CLICK_DATA_API$3=`click${EVENT_KEY$b}.data-api`,EVENT_FOCUSIN_DATA_API=`focusin${EVENT_KEY$b}.data-api`,SELECTOR_DATA_TOGGLE$6='[data-bs-toggle="datepicker"]',HIDE_DELAY=100,Default$d={datepickerTheme:null,dateMin:null,dateMax:null,dateFormat:null,displayElement:null,displayMonthsCount:1,firstWeekday:1,inline:!1,locale:"default",positionElement:null,selectedDates:[],selectionMode:"single",placement:"left",vcpOptions:{}},DefaultType$d={datepickerTheme:"(null|string)",dateMin:"(null|string|number|object)",dateMax:"(null|string|number|object)",dateFormat:"(null|object|function)",displayElement:"(null|string|element|boolean)",displayMonthsCount:"number",firstWeekday:"number",inline:"boolean",locale:"string",positionElement:"(null|string|element)",selectedDates:"array",selectionMode:"string",placement:"string",vcpOptions:"object"};class Datepicker extends BaseComponent{constructor(e,t){super(e,t),this._calendar=null,this._isShown=!1,this._initCalendar()}static get Default(){return Default$d}static get DefaultType(){return DefaultType$d}static get NAME(){return NAME$e}toggle(){if(!this._config.inline)return this._isShown?this.hide():this.show()}show(){this._config.inline||!this._calendar||isDisabled(this._element)||this._isShown||EventHandler.trigger(this._element,EVENT_SHOW$4).defaultPrevented||(this._calendar.show(),this._isShown=!0,EventHandler.trigger(this._element,EVENT_SHOWN$3))}hide(){this._config.inline||this._calendar&&this._isShown&&(EventHandler.trigger(this._element,EVENT_HIDE$3).defaultPrevented||(this._calendar.hide(),this._isShown=!1,EventHandler.trigger(this._element,EVENT_HIDDEN$5)))}dispose(){this._themeObserver&&(this._themeObserver.disconnect(),this._themeObserver=null),this._calendar&&this._calendar.destroy(),this._calendar=null,super.dispose()}getSelectedDates(){const e=this._calendar?.context?.selectedDates;return e?[...e]:[]}setSelectedDates(e){this._calendar&&this._calendar.set({selectedDates:e})}_initCalendar(){this._isInput="INPUT"===this._element.tagName,this._isInline=this._config.inline,this._isInline&&!this._isInput&&(this._boundInput=this._element.querySelector('input[type="hidden"], input[name]')),this._positionElement=this._resolvePositionElement(),this._displayElement=this._resolveDisplayElement();const e=this._buildCalendarOptions();this._calendar=new Calendar(this._positionElement,e),this._calendar.init(),this._setupThemeObserver(),this._isInput&&this._element.value&&this._parseInputValue(),this._updateDisplayWithSelectedDates()}_updateDisplayWithSelectedDates(){const{selectedDates:e}=this._config;if(!e||0===e.length)return;const t=this._formatDateForInput(e);this._isInput&&(this._element.value=t),this._boundInput&&(this._boundInput.value=e.join(",")),this._displayElement&&(this._displayElement.textContent=t)}_resolvePositionElement(){let{positionElement:e}=this._config;if("string"==typeof e&&(e=document.querySelector(e)),!e&&this._isInput&&!this._isInline){const t=this._element.closest(".form-adorn");t&&(e=t)}return e||this._element}_resolveDisplayElement(){const{displayElement:e}=this._config;return"string"==typeof e?document.querySelector(e):!0===e||null===e&&!this._isInput&&!this._isInline?this._element.querySelector("[data-bs-datepicker-display]")||this._element:e}_getThemeAncestor(){return this._element.closest("[data-bs-theme]")}_getEffectiveTheme(){const{datepickerTheme:e}=this._config;if(e)return e;const t=this._getThemeAncestor();return t?.getAttribute("data-bs-theme")||null}_syncThemeAttribute(e){if(!e)return;const t=this._getEffectiveTheme();t?e.setAttribute("data-bs-theme",t):e.removeAttribute("data-bs-theme")}_setupThemeObserver(){const e=this._getThemeAncestor();e&&!this._config.datepickerTheme&&(this._themeObserver=new MutationObserver(()=>{this._syncThemeAttribute(this._calendar?.context?.mainElement)}),this._themeObserver.observe(e,{attributes:!0,attributeFilter:["data-bs-theme"]}))}_buildCalendarOptions(){const e=this._getEffectiveTheme(),t=e&&"auto"!==e?e:"system",n={...this._config.vcpOptions,inputMode:!this._isInline,positionToInput:this._config.placement,firstWeekday:this._config.firstWeekday,locale:this._config.locale,selectionDatesMode:this._config.selectionMode,selectedDates:this._config.selectedDates,displayMonthsCount:this._config.displayMonthsCount,type:this._config.displayMonthsCount>1?"multiple":"default",selectedTheme:t,themeAttrDetect:"[data-bs-theme]",onClickDate:(e,t)=>this._handleDateClick(e,t),onInit:e=>{this._syncThemeAttribute(e.context.mainElement)},onShow:()=>{this._isShown=!0,this._syncThemeAttribute(this._calendar.context.mainElement)},onHide:()=>{this._isShown=!1}};if(this._config.selectedDates.length>0){const e=this._parseDate(this._config.selectedDates[0]);n.selectedMonth=e.getMonth(),n.selectedYear=e.getFullYear()}return this._config.dateMin&&(n.dateMin=this._config.dateMin),this._config.dateMax&&(n.dateMax=this._config.dateMax),n}_handleDateClick(e,t){const n=[...e.context.selectedDates];if(n.length>0){const e=this._formatDateForInput(n);this._isInput&&(this._element.value=e),this._boundInput&&(this._boundInput.value=n.join(",")),this._displayElement&&(this._displayElement.textContent=e)}EventHandler.trigger(this._element,EVENT_CHANGE$1,{dates:n,event:t}),this._maybeHideAfterSelection(n)}_maybeHideAfterSelection(e){this._isInline||("single"===this._config.selectionMode&&e.length>0||"multiple-ranged"===this._config.selectionMode&&e.length>=2)&&setTimeout(()=>this.hide(),100)}_parseDate(e){const[t,n,s]=e.split("-");return new Date(t,n-1,s)}_formatDate(e){const t=this._parseDate(e),n="default"===this._config.locale?void 0:this._config.locale,{dateFormat:s}=this._config;return"function"==typeof s?s(t,n):s&&"object"==typeof s?new Intl.DateTimeFormat(n,s).format(t):t.toLocaleDateString(n)}_formatDateForInput(e){if(0===e.length)return"";if(1===e.length)return this._formatDate(e[0]);const t="multiple-ranged"===this._config.selectionMode?" – ":", ";return e.map(e=>this._formatDate(e)).join(t)}_parseInputValue(){const e=this._element.value.trim();if(!e)return;const t=new Date(e);if(!Number.isNaN(t.getTime())){const e=`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`;this._calendar.set({selectedDates:[e]})}}}EventHandler.on(document,EVENT_CLICK_DATA_API$3,SELECTOR_DATA_TOGGLE$6,function(e){"INPUT"!==this.tagName&&"true"!==this.dataset.bsInline&&(e.preventDefault(),Datepicker.getOrCreateInstance(this).toggle())}),EventHandler.on(document,EVENT_FOCUSIN_DATA_API,SELECTOR_DATA_TOGGLE$6,function(){"INPUT"===this.tagName&&Datepicker.getOrCreateInstance(this).show()}),EventHandler.on(document,`DOMContentLoaded${EVENT_KEY$b}.data-api`,()=>{for(const e of document.querySelectorAll(`${SELECTOR_DATA_TOGGLE$6}[data-bs-inline="true"]`))Datepicker.getOrCreateInstance(e)});const CLASS_NAME_OPEN="dialog-open";class DialogBase extends BaseComponent{constructor(e,t){super(e,t),this._isTransitioning=!1,this._openedAsModal=!1,this._addDialogListeners()}static get NAME(){return"dialogbase"}toggle(e){return this._element.open?this.hide():this.show(e)}show(e){if(this._element.open||this._isTransitioning)return;if(EventHandler.trigger(this._element,this.constructor.eventName("show"),{relatedTarget:e}).defaultPrevented)return;this._isTransitioning=!0,this._onBeforeShow();const{modal:t,preventBodyScroll:n}=this._getShowOptions();this._showElement({modal:t,preventBodyScroll:n}),this._queueCallback(()=>{this._isTransitioning=!1,EventHandler.trigger(this._element,this.constructor.eventName("shown"),{relatedTarget:e})},this._element,this._isAnimated())}hide(){this._element.open&&!this._isTransitioning&&(EventHandler.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented||(this._isTransitioning=!0,this._hideElement(),this._queueCallback(()=>{this._element.open&&this._closeAndCleanup(),this._element.classList.remove("hiding"),this._onAfterHide(),this._isTransitioning=!1,EventHandler.trigger(this._element,this.constructor.eventName("hidden"))},this._element,this._isAnimated())))}_getShowOptions(){return{modal:!0,preventBodyScroll:!0}}_onBeforeShow(){}_onAfterHide(){}_isAnimated(){return!this._element.classList.contains(this._getInstantClassName())}_getInstantClassName(){return"dialog-instant"}_getStaticClassName(){return"dialog-static"}_onCancel(){}_showElement({modal:e=!0,preventBodyScroll:t=!0}={}){this._openedAsModal=e,e?this._element.showModal():this._element.show(),t&&document.body.classList.add("dialog-open")}_hideElement(){this._hideChildComponents(),this._element.classList.add("hiding"),this._shouldDeferClose()||this._closeAndCleanup()}_closeAndCleanup(){this._element.close(),this._openedAsModal=!1,document.querySelector("dialog[open]:modal")||document.body.classList.remove("dialog-open")}_shouldDeferClose(){return!1}_triggerBackdropTransition(){if(EventHandler.trigger(this._element,this.constructor.eventName("hidePrevented")).defaultPrevented)return;const e=this._getStaticClassName();this._element.classList.add(e),this._queueCallback(()=>{this._element.classList.remove(e)},this._element)}_hideChildComponents(){for(const e of SelectorEngine.find('[data-bs-toggle="tooltip"], [data-bs-toggle="popover"]',this._element)){const t=Data.getAny(e);t&&"function"==typeof t.hide&&t.hide()}for(const e of SelectorEngine.find(".toast.show",this._element)){const t=Data.getAny(e);t&&"function"==typeof t.hide&&t.hide()}}_addDialogListeners(){const e=this.constructor.EVENT_KEY;EventHandler.on(this._element,"cancel",e=>{e.preventDefault(),this._config.keyboard?(this._onCancel(),this.hide()):this._triggerBackdropTransition()}),EventHandler.on(this._element,`keydown${e}`,e=>{"Escape"!==e.key||this._openedAsModal||(e.preventDefault(),this._config.keyboard&&(this._onCancel(),this.hide()))}),EventHandler.on(this._element,`click${e}`,e=>{e.target===this._element&&this._openedAsModal&&("static"!==this._config.backdrop?this.hide():this._triggerBackdropTransition())})}}const NAME$d="dialog",DATA_KEY$9="bs.dialog",EVENT_KEY$a=`.${DATA_KEY$9}`,DATA_API_KEY$5=".data-api",EVENT_SHOW$3=`show${EVENT_KEY$a}`,EVENT_HIDDEN$4=`hidden${EVENT_KEY$a}`,EVENT_CANCEL=`cancel${EVENT_KEY$a}`,EVENT_CLICK_DATA_API$2=`click${EVENT_KEY$a}.data-api`,CLASS_NAME_NONMODAL="dialog-nonmodal",CLASS_NAME_INSTANT="dialog-instant",CLASS_NAME_SWAP_IN="dialog-swap-in",SELECTOR_DATA_TOGGLE$5='[data-bs-toggle="dialog"]',Default$c={backdrop:!0,keyboard:!0,modal:!0},DefaultType$c={backdrop:"(boolean|string)",keyboard:"boolean",modal:"boolean"};class Dialog extends DialogBase{static get Default(){return Default$c}static get DefaultType(){return DefaultType$c}static get NAME(){return NAME$d}handleUpdate(){}_getShowOptions(){return{modal:this._config.modal,preventBodyScroll:this._config.modal}}_onBeforeShow(){this._config.modal||this._element.classList.add("dialog-nonmodal")}_onAfterHide(){this._element.classList.remove("dialog-nonmodal")}_shouldDeferClose(){return this._isAnimated()}_onCancel(){EventHandler.trigger(this._element,EVENT_CANCEL)}}EventHandler.on(document,EVENT_CLICK_DATA_API$2,SELECTOR_DATA_TOGGLE$5,function(e){const t=SelectorEngine.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&e.preventDefault(),EventHandler.one(t,EVENT_SHOW$3,e=>{e.defaultPrevented||EventHandler.one(t,EVENT_HIDDEN$4,()=>{isVisible(this)&&this.focus()})});const n=Manipulator.getDataAttributes(this),s=this.closest("dialog[open]");if(s&&s!==t){const e=Dialog.getOrCreateInstance(t,n);t.classList.add("dialog-swap-in"),e.show(this),EventHandler.one(t,`shown${EVENT_KEY$a}`,()=>{t.classList.remove("dialog-swap-in")});const i=Dialog.getInstance(s);return void(i&&(s.classList.add("dialog-instant"),EventHandler.one(s,EVENT_HIDDEN$4,()=>{s.classList.remove("dialog-instant")}),i.hide()))}Dialog.getOrCreateInstance(t,n).toggle(this)}),enableDismissTrigger(Dialog);const NAME$c="navoverflow",DATA_KEY$8="bs.navoverflow",EVENT_KEY$9=`.${DATA_KEY$8}`,EVENT_UPDATE=`update${EVENT_KEY$9}`,EVENT_OVERFLOW=`overflow${EVENT_KEY$9}`,CLASS_NAME_OVERFLOW="nav-overflow",CLASS_NAME_OVERFLOW_MENU="nav-overflow-menu",CLASS_NAME_HIDDEN="d-none",SELECTOR_NAV_ITEM=".nav-item",SELECTOR_NAV_LINK=".nav-link",SELECTOR_OVERFLOW_TOGGLE=".nav-overflow-toggle",SELECTOR_OVERFLOW_MENU=".nav-overflow-menu",SELECTOR_CUSTOM_ICON="[data-bs-overflow-icon]",CLASS_NAME_KEEP="nav-overflow-keep",Default$b={collapseBelow:0,iconPlacement:"start",menuPlacement:"bottom-end",moreText:"More",moreIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3"/></svg>',threshold:0},DefaultType$b={collapseBelow:"(number|string)",iconPlacement:"string",menuPlacement:"string",moreText:"string",moreIcon:"string",threshold:"number"};class NavOverflow extends BaseComponent{constructor(e,t){super(e,t),this._items=[],this._overflowItems=[],this._overflowMenu=null,this._overflowToggle=null,this._resizeObserver=null,this._collapseBelow=0,this._isInitialized=!1,this._init()}static get Default(){return Default$b}static get DefaultType(){return DefaultType$b}static get NAME(){return NAME$c}update(){this._calculateOverflow(),EventHandler.trigger(this._element,EVENT_UPDATE)}dispose(){this._resizeObserver&&this._resizeObserver.disconnect(),this._restoreItems(),this._overflowToggle&&this._overflowToggle.parentElement&&this._overflowToggle.parentElement.remove(),super.dispose()}_init(){this._element.classList.add("nav-overflow"),this._items=[...SelectorEngine.find(".nav-item",this._element)];for(const[e,t]of this._items.entries())t.dataset.bsNavOrder=e;this._collapseBelow=this._resolveCollapseBelow(),this._createOverflowMenu(),this._setupResizeObserver(),this._calculateOverflow(),this._isInitialized=!0}_createOverflowMenu(){if(this._overflowToggle=SelectorEngine.findOne(".nav-overflow-toggle",this._element),this._overflowToggle)return void(this._overflowMenu=SelectorEngine.findOne(".nav-overflow-menu",this._element));const e=`<span class="nav-overflow-icon">${this._resolveIcon()}</span>`,t=`<span class="nav-overflow-text">${this._config.moreText}</span>`,n="end"===this._config.iconPlacement?`${t}${e}`:`${e}${t}`,s=document.createElement("li");s.className="nav-item nav-overflow-item",s.innerHTML=`\n <button class="nav-link nav-overflow-toggle" type="button" data-bs-toggle="menu" data-bs-placement="${this._config.menuPlacement}" aria-expanded="false">\n ${n}\n </button>\n <div class="nav-overflow-menu menu"></div>\n `,this._element.append(s),this._overflowToggle=s.querySelector(".nav-overflow-toggle"),this._overflowMenu=s.querySelector(".nav-overflow-menu")}_resolveIcon(){const e=SelectorEngine.findOne(SELECTOR_CUSTOM_ICON,this._element);if(!e)return this._config.moreIcon;const t=e.cloneNode(!0);t.removeAttribute("data-bs-overflow-icon");const n=t.outerHTML;return e.remove(),n}_resolveCollapseBelow(){const e=this._config.collapseBelow;if("number"==typeof e)return e;if("string"==typeof e&&""!==e){const t=getComputedStyle(document.documentElement).getPropertyValue(`--bs-breakpoint-${e}`);return Number.parseFloat(t)||0}return 0}_setupResizeObserver(){"undefined"!=typeof ResizeObserver?(this._resizeObserver=new ResizeObserver(()=>{this._calculateOverflow()}),this._resizeObserver.observe(this._element)):EventHandler.on(window,"resize",()=>this._calculateOverflow())}_calculateOverflow(){this._restoreItems();const e=this._element.offsetWidth,t=this._overflowToggle?.closest(".nav-item");if(this._collapseBelow>0&&e<this._collapseBelow){const e=this._items.filter(e=>!e.classList.contains(CLASS_NAME_KEEP));return this._moveToOverflow(e),t&&(e.length>0?t.classList.remove("d-none"):t.classList.add("d-none")),void(e.length>0&&EventHandler.trigger(this._element,EVENT_OVERFLOW,{overflowCount:e.length,visibleCount:this._items.length-e.length}))}let n=0;const s=[],i=e-(t?.offsetWidth||0)-this._items.filter(e=>e.classList.contains(CLASS_NAME_KEEP)).reduce((e,t)=>e+t.offsetWidth,0)-10;for(const e of this._items)e.classList.contains(CLASS_NAME_KEEP)||(n+=e.offsetWidth,n>i&&s.push(e));if(this._items.length-s.length<this._config.threshold&&this._items.length>this._config.threshold){const e=this._items.slice(this._config.threshold).filter(e=>!e.classList.contains(CLASS_NAME_KEEP));s.length=0,s.push(...e)}this._moveToOverflow(s),t&&(s.length>0?t.classList.remove("d-none"):t.classList.add("d-none")),s.length>0&&EventHandler.trigger(this._element,EVENT_OVERFLOW,{overflowCount:s.length,visibleCount:this._items.length-s.length})}_moveToOverflow(e){if(this._overflowMenu){this._overflowMenu.innerHTML="",this._overflowItems=[];for(const t of e){const e=SelectorEngine.findOne(".nav-link",t);if(!e)continue;const n=e.cloneNode(!0);n.className="menu-item",e.classList.contains("active")&&n.classList.add("active"),(e.classList.contains("disabled")||e.hasAttribute("disabled"))&&n.classList.add("disabled"),this._overflowMenu.append(n),t.classList.add("d-none"),t.dataset.bsNavOverflow="true",this._overflowItems.push(t)}}}_restoreItems(){for(const e of this._items)e.classList.remove("d-none"),delete e.dataset.bsNavOverflow;this._overflowMenu&&(this._overflowMenu.innerHTML=""),this._overflowItems=[]}}EventHandler.on(document,"DOMContentLoaded",()=>{for(const e of SelectorEngine.find('[data-bs-toggle="nav-overflow"]'))NavOverflow.getOrCreateInstance(e)});const NAME$b="swipe",EVENT_KEY$8=".bs.swipe",EVENT_TOUCHSTART="touchstart.bs.swipe",EVENT_TOUCHMOVE="touchmove.bs.swipe",EVENT_TOUCHEND="touchend.bs.swipe",EVENT_POINTERDOWN="pointerdown.bs.swipe",EVENT_POINTERUP="pointerup.bs.swipe",POINTER_TYPE_TOUCH="touch",POINTER_TYPE_PEN="pen",CLASS_NAME_POINTER_EVENT="pointer-event",SWIPE_THRESHOLD=40,Default$a={endCallback:null,leftCallback:null,rightCallback:null,upCallback:null,downCallback:null},DefaultType$a={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)",upCallback:"(function|null)",downCallback:"(function|null)"};class Swipe extends Config{constructor(e,t){super(),this._element=e,e&&Swipe.isSupported()&&(this._config=this._getConfig(t),this._deltaX=0,this._deltaY=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Default$a}static get DefaultType(){return DefaultType$a}static get NAME(){return NAME$b}dispose(){EventHandler.off(this._element,".bs.swipe")}_start(e){if(!this._supportPointerEvents)return this._deltaX=e.touches[0].clientX,void(this._deltaY=e.touches[0].clientY);this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX,this._deltaY=e.clientY)}_end(e){this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX-this._deltaX,this._deltaY=e.clientY-this._deltaY),this._handleSwipe(),execute(this._config.endCallback)}_move(e){if(e.touches&&e.touches.length>1)return this._deltaX=0,void(this._deltaY=0);this._deltaX=e.touches[0].clientX-this._deltaX,this._deltaY=e.touches[0].clientY-this._deltaY}_handleSwipe(){const e=Math.abs(this._deltaX),t=Math.abs(this._deltaY);if(t>e&&t>40){const e=this._deltaY>0?"down":"up";return this._deltaX=0,this._deltaY=0,void execute("down"===e?this._config.downCallback:this._config.upCallback)}if(e>40){const t=e/this._deltaX;if(this._deltaX=0,this._deltaY=0,!t)return;return void execute(t>0?this._config.rightCallback:this._config.leftCallback)}this._deltaX=0,this._deltaY=0}_initEvents(){this._supportPointerEvents?(EventHandler.on(this._element,EVENT_POINTERDOWN,e=>this._start(e)),EventHandler.on(this._element,EVENT_POINTERUP,e=>this._end(e)),this._element.classList.add("pointer-event")):(EventHandler.on(this._element,EVENT_TOUCHSTART,e=>this._start(e)),EventHandler.on(this._element,EVENT_TOUCHMOVE,e=>this._move(e)),EventHandler.on(this._element,EVENT_TOUCHEND,e=>this._end(e)))}_eventIsPointerPenTouch(e){return this._supportPointerEvents&&("pen"===e.pointerType||"touch"===e.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const NAME$a="drawer",DATA_KEY$7="bs.drawer",EVENT_KEY$7=`.${DATA_KEY$7}`,DATA_API_KEY$4=".data-api",EVENT_LOAD_DATA_API$2=`load${EVENT_KEY$7}.data-api`,EVENT_HIDDEN$3=`hidden${EVENT_KEY$7}`,EVENT_RESIZE=`resize${EVENT_KEY$7}`,EVENT_CLICK_DATA_API$1=`click${EVENT_KEY$7}.data-api`,SELECTOR_DATA_TOGGLE$4='[data-bs-toggle="drawer"]',Default$9={backdrop:!0,keyboard:!0,scroll:!1},DefaultType$9={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Drawer extends DialogBase{constructor(e,t){super(e,t),this._swipeHelper=null}static get Default(){return Default$9}static get DefaultType(){return DefaultType$9}static get NAME(){return NAME$a}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_getShowOptions(){return{modal:Boolean(this._config.backdrop)||!this._config.scroll,preventBodyScroll:!this._config.scroll}}_onBeforeShow(){this._initSwipe()}_getInstantClassName(){return"drawer-instant"}_getStaticClassName(){return"drawer-static"}_initSwipe(){if(this._swipeHelper||!Swipe.isSupported())return;const e={},t=this._element;t.classList.contains("drawer-bottom")?e.downCallback=()=>this.hide():t.classList.contains("drawer-top")?e.upCallback=()=>this.hide():t.classList.contains("drawer-end")?isRTL()?e.leftCallback=()=>this.hide():e.rightCallback=()=>this.hide():isRTL()?e.rightCallback=()=>this.hide():e.leftCallback=()=>this.hide(),this._swipeHelper=new Swipe(t,e)}}EventHandler.on(document,EVENT_CLICK_DATA_API$1,SELECTOR_DATA_TOGGLE$4,function(e){const t=SelectorEngine.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),isDisabled(this))return;EventHandler.one(t,EVENT_HIDDEN$3,()=>{isVisible(this)&&this.focus()});const n=SelectorEngine.findOne("dialog.drawer[open]");n&&n!==t&&Drawer.getInstance(n).hide(),Drawer.getOrCreateInstance(t).toggle(this)}),EventHandler.on(window,EVENT_LOAD_DATA_API$2,()=>{for(const e of SelectorEngine.find("dialog.drawer[open]"))Drawer.getOrCreateInstance(e).show()}),EventHandler.on(window,EVENT_RESIZE,()=>{for(const e of SelectorEngine.find('dialog[open][class*="\\:drawer"]'))"fixed"!==getComputedStyle(e).position&&Drawer.getOrCreateInstance(e).hide()}),enableDismissTrigger(Drawer);const NAME$9="strength",DATA_KEY$6="bs.strength",EVENT_KEY$6=`.${DATA_KEY$6}`,DATA_API_KEY$3=".data-api",EVENT_STRENGTH_CHANGE=`strengthChange${EVENT_KEY$6}`,SELECTOR_DATA_STRENGTH="[data-bs-strength]",STRENGTH_LEVELS=["weak","fair","good","strong"],Default$8={input:null,minLength:8,messages:{weak:"Weak",fair:"Fair",good:"Good",strong:"Strong"},weights:{minLength:1,extraLength:1,lowercase:1,uppercase:1,numbers:1,special:1,multipleSpecial:1,longPassword:1},thresholds:[2,4,6],scorer:null},DefaultType$8={input:"(string|element|null)",minLength:"number",messages:"object",weights:"object",thresholds:"array",scorer:"(function|null)"};class Strength extends BaseComponent{constructor(e,t){super(e,t),this._input=this._getInput(),this._segments=SelectorEngine.find(".strength-segment",this._element),this._textElement=SelectorEngine.findOne(".strength-text",this._element.parentElement),this._currentStrength=null,this._input&&(this._addEventListeners(),this._evaluate())}static get Default(){return Default$8}static get DefaultType(){return DefaultType$8}static get NAME(){return NAME$9}getStrength(){return this._currentStrength}evaluate(){this._evaluate()}_getInput(){if(this._config.input)return"string"==typeof this._config.input?SelectorEngine.findOne(this._config.input):this._config.input;const e=this._element.parentElement;return SelectorEngine.findOne('input[type="password"]',e)}_addEventListeners(){EventHandler.on(this._input,"input",()=>this._evaluate()),EventHandler.on(this._input,"change",()=>this._evaluate())}_evaluate(){const e=this._input.value,t=this._calculateScore(e),n=this._scoreToStrength(t);n!==this._currentStrength&&(this._currentStrength=n,this._updateUI(n,t),EventHandler.trigger(this._element,EVENT_STRENGTH_CHANGE,{strength:n,score:t,password:e.length>0?"***":""}))}_calculateScore(e){if(!e)return 0;if("function"==typeof this._config.scorer)return this._config.scorer(e);const{weights:t}=this._config;let n=0;return e.length>=this._config.minLength&&(n+=t.minLength),e.length>=this._config.minLength+4&&(n+=t.extraLength),/[a-z]/.test(e)&&(n+=t.lowercase),/[A-Z]/.test(e)&&(n+=t.uppercase),/\d/.test(e)&&(n+=t.numbers),/[!@#$%^&*(),.?":{}|<>]/.test(e)&&(n+=t.special),/[!@#$%^&*(),.?":{}|<>].*[!@#$%^&*(),.?":{}|<>]/.test(e)&&(n+=t.multipleSpecial),e.length>=16&&(n+=t.longPassword),n}_scoreToStrength(e){if(0===e)return null;const[t,n,s]=this._config.thresholds;return e<=t?"weak":e<=n?"fair":e<=s?"good":"strong"}_updateUI(e){e?this._element.dataset.bsStrength=e:delete this._element.dataset.bsStrength;const t=e?STRENGTH_LEVELS.indexOf(e):-1;for(const[e,n]of this._segments.entries())e<=t?n.classList.add("active"):n.classList.remove("active");if(this._textElement)if(e&&this._config.messages[e]){this._textElement.textContent=this._config.messages[e],this._textElement.dataset.bsStrength=e;const t={weak:"danger",fair:"warning",good:"info",strong:"success"};this._textElement.style.setProperty("--strength-color",`var(--${t[e]}-text)`)}else this._textElement.textContent="",delete this._textElement.dataset.bsStrength}}EventHandler.on(document,`DOMContentLoaded${EVENT_KEY$6}.data-api`,()=>{for(const e of SelectorEngine.find("[data-bs-strength]"))Strength.getOrCreateInstance(e)});const NAME$8="otpInput",DATA_KEY$5="bs.otpInput",EVENT_KEY$5=`.${DATA_KEY$5}`,DATA_API_KEY$2=".data-api",EVENT_COMPLETE=`complete${EVENT_KEY$5}`,EVENT_INPUT=`input${EVENT_KEY$5}`,EVENT_DOMCONTENT_LOADED=`DOMContentLoaded${EVENT_KEY$5}.data-api`,SELECTOR_DATA_OTP="[data-bs-otp]",SELECTOR_INPUT="input",SYNC_EVENTS=["blur","keyup","click","select"],CLASS_NAME_INPUT="otp-input",CLASS_NAME_RENDERED="otp-rendered",CLASS_NAME_SLOTS="otp-slots",CLASS_NAME_SLOT="otp-slot",CLASS_NAME_SLOT_FILLED="otp-slot-filled",CLASS_NAME_SLOT_ACTIVE="otp-slot-active",CLASS_NAME_SEPARATOR="otp-separator",MASK_CHARACTER="•",TYPES={numeric:{inputmode:"numeric",pattern:"[0-9]*",filter:/[^0-9]/g},alphanumeric:{inputmode:"text",pattern:"[A-Za-z0-9]*",filter:/[^A-Za-z0-9]/g},alpha:{inputmode:"text",pattern:"[A-Za-z]*",filter:/[^A-Za-z]/g}},Default$7={groups:null,length:null,mask:!1,separator:"·",type:"numeric"},DefaultType$7={groups:"(array|null)",length:"(number|null)",mask:"boolean",separator:"string",type:"string"};class OtpInput extends BaseComponent{constructor(e,t){super(e,t),this._input=SelectorEngine.findOne("input",this._element),this._input&&(this._type=TYPES[this._config.type]||TYPES.numeric,this._length=this._resolveLength(),this._slots=[],this._setupInput(),this._renderSlots(),this._addEventListeners(),this._render())}static get Default(){return Default$7}static get DefaultType(){return DefaultType$7}static get NAME(){return NAME$8}getValue(){return this._input.value}setValue(e){this._input.value=this._sanitize(String(e)),this._render(),this._checkComplete()}clear(){this._input.value="",this._render(),this._input.focus()}focus(){this._input.focus();const e=this._input.value.length;this._input.setSelectionRange(e,e),this._render()}dispose(){EventHandler.off(this._input,"input",this._onInput),EventHandler.off(this._input,"focus",this._onFocus);for(const e of SYNC_EVENTS)EventHandler.off(this._input,e,this._onSync);this._slotsContainer?.remove(),this._element.classList.remove("otp-rendered"),super.dispose()}_resolveLength(){if(this._config.length)return this._config.length;const e=Number.parseInt(this._input.getAttribute("maxlength"),10);return Number.isNaN(e)||e<1?6:e}_setupInput(){const e=this._input;"number"!==e.type&&"password"!==e.type||(e.type="text"),e.classList.add("otp-input"),e.setAttribute("maxlength",String(this._length)),e.setAttribute("inputmode",this._type.inputmode),e.setAttribute("pattern",this._type.pattern),e.getAttribute("autocomplete")||e.setAttribute("autocomplete","one-time-code"),e.value&&(e.value=this._sanitize(e.value))}_renderSlots(){const e=document.createElement("div");e.className="otp-slots",e.setAttribute("aria-hidden","true");const{groups:t}=this._config;let n=0,s=0;for(let i=0;i<this._length;i++){const o=document.createElement("div");if(o.className="otp-slot",e.append(o),this._slots.push(o),Array.isArray(t)&&t.length>0&&(s++,s===t[n]&&i<this._length-1)){const i=document.createElement("div");i.className="otp-separator",i.textContent=this._config.separator,e.append(i),n=Math.min(n+1,t.length-1),s=0}}this._slotsContainer=e,this._element.append(e),this._element.classList.add("otp-rendered")}_addEventListeners(){this._onInput=()=>this._handleInput(),this._onFocus=()=>this.focus(),this._onSync=()=>this._render(),EventHandler.on(this._input,"input",this._onInput),EventHandler.on(this._input,"focus",this._onFocus);for(const e of SYNC_EVENTS)EventHandler.on(this._input,e,this._onSync)}_handleInput(){const e=this._sanitize(this._input.value);e!==this._input.value&&(this._input.value=e),this._render(),EventHandler.trigger(this._element,EVENT_INPUT,{value:this._input.value}),this._checkComplete()}_sanitize(e){return e.replace(this._type.filter,"").slice(0,this._length)}_render(){const{value:e}=this._input,t=document.activeElement===this._input,n=Math.min(this._input.selectionStart??e.length,this._length-1);for(const[s,i]of this._slots.entries()){const o=e[s]??"";i.textContent=o&&this._config.mask?"•":o,i.classList.toggle("otp-slot-filled",Boolean(o)),i.classList.toggle("otp-slot-active",t&&s===n)}}_checkComplete(){const{value:e}=this._input;e.length===this._length&&EventHandler.trigger(this._element,EVENT_COMPLETE,{value:e})}}EventHandler.on(document,EVENT_DOMCONTENT_LOADED,()=>{for(const e of SelectorEngine.find("[data-bs-otp]"))OtpInput.getOrCreateInstance(e)});const NAME$7="chips",DATA_KEY$4="bs.chips",EVENT_KEY$4=".bs.chips",DATA_API_KEY$1=".data-api",EVENT_ADD="add.bs.chips",EVENT_REMOVE="remove.bs.chips",EVENT_CHANGE="change.bs.chips",EVENT_SELECT="select.bs.chips",SELECTOR_DATA_CHIPS="[data-bs-chips]",SELECTOR_GHOST_INPUT=".form-ghost",SELECTOR_CHIP=".chip",SELECTOR_CHIP_DISMISS=".chip-dismiss",CLASS_NAME_CHIP="chip",CLASS_NAME_CHIP_DISMISS="chip-dismiss",CLASS_NAME_ACTIVE$2="active",DEFAULT_DISMISS_ICON='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="4" y1="4" x2="12" y2="12"/><line x1="12" y1="4" x2="4" y2="12"/></svg>',Default$6={separator:",",allowDuplicates:!1,maxChips:null,placeholder:"",dismissible:!0,dismissIcon:DEFAULT_DISMISS_ICON,createOnBlur:!0},DefaultType$6={separator:"(string|null)",allowDuplicates:"boolean",maxChips:"(number|null)",placeholder:"string",dismissible:"boolean",dismissIcon:"string",createOnBlur:"boolean"};class Chips extends BaseComponent{constructor(e,t){super(e,t),this._input=SelectorEngine.findOne(".form-ghost",this._element),this._chips=[],this._selectedChips=new Set,this._anchorChip=null,this._input||this._createInput(),this._initializeExistingChips(),this._addEventListeners()}static get Default(){return Default$6}static get DefaultType(){return DefaultType$6}static get NAME(){return NAME$7}add(e){const t=String(e).trim();if(!t)return null;if(!this._config.allowDuplicates&&this._chips.includes(t))return null;if(null!==this._config.maxChips&&this._chips.length>=this._config.maxChips)return null;if(EventHandler.trigger(this._element,EVENT_ADD,{value:t,relatedTarget:this._input}).defaultPrevented)return null;const n=this._createChip(t);return this._element.insertBefore(n,this._input),this._chips.push(t),EventHandler.trigger(this._element,EVENT_CHANGE,{values:this.getValues()}),n}remove(e){let t,n;return"string"==typeof e?(n=e,t=this._findChipByValue(n)):(t=e,n=this._getChipValue(t)),!(!t||!n)&&(!EventHandler.trigger(this._element,EVENT_REMOVE,{value:n,chip:t,relatedTarget:this._input}).defaultPrevented&&(this._selectedChips.delete(t),this._anchorChip===t&&(this._anchorChip=null),t.remove(),this._chips=this._chips.filter(e=>e!==n),EventHandler.trigger(this._element,EVENT_CHANGE,{values:this.getValues()}),!0))}removeSelected(){const e=[...this._selectedChips];for(const t of e)this.remove(t);this._input?.focus()}getValues(){return[...this._chips]}getSelectedValues(){return[...this._selectedChips].map(e=>this._getChipValue(e))}clear(){const e=SelectorEngine.find(".chip",this._element);for(const t of e)t.remove();this._chips=[],this._selectedChips.clear(),this._anchorChip=null,EventHandler.trigger(this._element,EVENT_CHANGE,{values:[]})}clearSelection(){for(const e of this._selectedChips)e.classList.remove("active");this._selectedChips.clear(),this._anchorChip=null,EventHandler.trigger(this._element,EVENT_SELECT,{selected:[]})}selectChip(e,t={}){const{addToSelection:n=!1,rangeSelect:s=!1}=t,i=this._getChipElements();if(i.includes(e)){if(s&&this._anchorChip){const t=i.indexOf(this._anchorChip),s=i.indexOf(e),o=Math.min(t,s),r=Math.max(t,s);n||this.clearSelection();for(let e=o;e<=r;e++)this._selectedChips.add(i[e]),i[e].classList.add("active")}else n?this._selectedChips.has(e)?(this._selectedChips.delete(e),e.classList.remove("active")):(this._selectedChips.add(e),e.classList.add("active"),this._anchorChip=e):(this.clearSelection(),this._selectedChips.add(e),e.classList.add("active"),this._anchorChip=e);EventHandler.trigger(this._element,EVENT_SELECT,{selected:this.getSelectedValues()})}}focus(){this._input?.focus()}_getChipElements(){return SelectorEngine.find(".chip",this._element)}_createInput(){const e=document.createElement("input");e.type="text",e.className="form-ghost",this._config.placeholder&&(e.placeholder=this._config.placeholder),this._element.append(e),this._input=e}_initializeExistingChips(){const e=SelectorEngine.find(".chip",this._element);for(const t of e){const e=this._getChipValue(t);e&&(this._chips.push(e),this._setupChip(t))}}_setupChip(e){e.setAttribute("tabindex","0"),this._config.dismissible&&!SelectorEngine.findOne(".chip-dismiss",e)&&e.append(this._createDismissButton())}_createChip(e){const t=document.createElement("span");return t.className="chip",t.dataset.bsChipValue=e,t.append(document.createTextNode(e)),this._setupChip(t),t}_createDismissButton(){const e=document.createElement("button");return e.type="button",e.className="chip-dismiss",e.setAttribute("aria-label","Remove"),e.setAttribute("tabindex","-1"),e.innerHTML=this._config.dismissIcon,e}_findChipByValue(e){return this._getChipElements().find(t=>this._getChipValue(t)===e)}_getChipValue(e){if(e.dataset.bsChipValue)return e.dataset.bsChipValue;const t=e.cloneNode(!0),n=SelectorEngine.findOne(".chip-dismiss",t);return n&&n.remove(),t.textContent?.trim()||""}_addEventListeners(){EventHandler.on(this._input,"keydown",e=>this._handleInputKeydown(e)),EventHandler.on(this._input,"input",e=>this._handleInput(e)),EventHandler.on(this._input,"paste",e=>this._handlePaste(e)),EventHandler.on(this._input,"focus",()=>this.clearSelection()),this._config.createOnBlur&&EventHandler.on(this._input,"blur",e=>{e.relatedTarget?.closest(".chip")||this._createChipFromInput()}),EventHandler.on(this._element,"click",".chip",e=>{if(e.target.closest(".chip-dismiss"))return;const t=e.target.closest(".chip");t&&(e.preventDefault(),this.selectChip(t,{addToSelection:e.metaKey||e.ctrlKey,rangeSelect:e.shiftKey}),t.focus())}),EventHandler.on(this._element,"click",".chip-dismiss",e=>{e.stopPropagation();const t=e.target.closest(".chip");t&&(this.remove(t),this._input?.focus())}),EventHandler.on(this._element,"keydown",".chip",e=>{this._handleChipKeydown(e)}),EventHandler.on(this._element,"click",e=>{e.target===this._element&&(this.clearSelection(),this._input?.focus())})}_handleInputKeydown(e){const{key:t}=e;switch(t){case"Enter":e.preventDefault(),this._createChipFromInput();break;case"Backspace":case"Delete":if(""===this._input.value){e.preventDefault();const t=this._getChipElements();if(t.length>0){const e=t.at(-1);this.selectChip(e),e.focus()}}break;case"ArrowLeft":if(0===this._input.selectionStart&&0===this._input.selectionEnd){e.preventDefault();const t=this._getChipElements();if(t.length>0){const n=t.at(-1);e.shiftKey?this.selectChip(n,{addToSelection:!0}):this.selectChip(n),n.focus()}}break;case"Escape":this._input.value="",this.clearSelection(),this._input.blur()}}_handleChipKeydown(e){const{key:t}=e,n=e.target.closest(".chip");if(!n)return;const s=this._getChipElements(),i=s.indexOf(n);switch(t){case"Backspace":case"Delete":e.preventDefault(),this._handleChipDelete(i,s);break;case"ArrowLeft":e.preventDefault(),this._navigateChip(s,i,-1,e.shiftKey);break;case"ArrowRight":e.preventDefault(),this._navigateChip(s,i,1,e.shiftKey);break;case"Home":e.preventDefault(),this._navigateToEdge(s,0,e.shiftKey);break;case"End":case"Escape":e.preventDefault(),this.clearSelection(),this._input?.focus();break;case"a":this._handleSelectAll(e,s)}}_handleChipDelete(e,t){if(0===this._selectedChips.size)return;const n=Math.min(e,t.length-this._selectedChips.size-1);this.removeSelected();const s=this._getChipElements();if(s.length>0){const e=Math.max(0,Math.min(n,s.length-1));s[e].focus(),this.selectChip(s[e])}else this._input?.focus()}_navigateChip(e,t,n,s){const i=t+n;if(n<0&&i>=0){const t=e[i];this.selectChip(t,s?{addToSelection:!0,rangeSelect:!0}:{}),t.focus()}else if(n>0&&i<e.length){const t=e[i];this.selectChip(t,s?{addToSelection:!0,rangeSelect:!0}:{}),t.focus()}else n>0&&(this.clearSelection(),this._input?.focus())}_navigateToEdge(e,t,n){if(0===e.length)return;const s=e[t];this.selectChip(s,n?{rangeSelect:!0}:{}),s.focus()}_handleSelectAll(e,t){if(e.metaKey||e.ctrlKey){e.preventDefault();for(const e of t)this._selectedChips.add(e),e.classList.add("active");EventHandler.trigger(this._element,EVENT_SELECT,{selected:this.getSelectedValues()})}}_handleInput(e){const{value:t}=e.target,{separator:n}=this._config;if(n&&t.includes(n)){const e=t.split(n);for(const t of e.slice(0,-1))this.add(t.trim());this._input.value=e.at(-1)}}_handlePaste(e){const{separator:t}=this._config;if(!t)return;const n=(e.clipboardData||window.clipboardData).getData("text");if(n.includes(t)){e.preventDefault();const s=n.split(t);for(const e of s)this.add(e.trim())}}_createChipFromInput(){const e=this._input.value.trim();e&&(this.add(e),this._input.value="")}}EventHandler.on(document,"DOMContentLoaded.bs.chips.data-api",()=>{for(const e of SelectorEngine.find("[data-bs-chips]"))Chips.getOrCreateInstance(e)});const ARIA_ATTRIBUTE_PATTERN=/^aria-[\w-]*$/i,DefaultAllowlist={"*":["class","dir","id","lang","role",ARIA_ATTRIBUTE_PATTERN],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},uriAttributes=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),SAFE_URL_PATTERN=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,allowedAttribute=(e,t)=>{const n=e.nodeName.toLowerCase();return t.includes(n)?!uriAttributes.has(n)||Boolean(SAFE_URL_PATTERN.test(e.nodeValue)):t.filter(e=>e instanceof RegExp).some(e=>e.test(n))};function sanitizeHtml(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const s=(new window.DOMParser).parseFromString(e,"text/html"),i=[...s.body.querySelectorAll("*")];for(const e of i){const n=e.nodeName.toLowerCase();if(!Object.keys(t).includes(n)){e.remove();continue}const s=[...e.attributes],i=[...t["*"]||[],...t[n]||[]];for(const t of s)allowedAttribute(t,i)||e.removeAttribute(t.nodeName)}return s.body.innerHTML}const NAME$6="TemplateFactory",Default$5={allowList:DefaultAllowlist,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"<div></div>"},DefaultType$5={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},DefaultContentType={entry:"(string|element|function|null)",selector:"(string|element)"};class TemplateFactory extends Config{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return Default$5}static get DefaultType(){return DefaultType$5}static get NAME(){return NAME$6}getContent(){return Object.values(this._config.content).map(e=>this._resolvePossibleFunction(e)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[t,n]of Object.entries(this._config.content))this._setContent(e,n,t);const t=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&t.classList.add(...n.split(" ")),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[t,n]of Object.entries(e))super._typeCheckConfig({selector:t,entry:n},DefaultContentType)}_setContent(e,t,n){const s=SelectorEngine.findOne(n,e);s&&((t=this._resolvePossibleFunction(t))?isElement(t)?this._putElementInTemplate(getElement(t),s):this._config.html?s.innerHTML=this._maybeSanitize(t):s.textContent=t:s.remove())}_maybeSanitize(e){return this._config.sanitize?sanitizeHtml(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return execute(e,[void 0,this])}_putElementInTemplate(e,t){if(this._config.html)return t.innerHTML="",void t.append(e);t.textContent=e.textContent}}const NAME$5="tooltip",DISALLOWED_ATTRIBUTES=new Set(["sanitize","allowList","sanitizeFn"]),CLASS_NAME_FADE$2="fade",CLASS_NAME_MODAL="modal",CLASS_NAME_SHOW$2="show",SELECTOR_TOOLTIP_INNER=".tooltip-inner",SELECTOR_MODAL=".modal",SELECTOR_DATA_TOGGLE$3='[data-bs-toggle="tooltip"]',EVENT_MODAL_HIDE="hide.bs.modal",TRIGGER_HOVER="hover",TRIGGER_FOCUS="focus",TRIGGER_CLICK="click",TRIGGER_MANUAL="manual",EVENT_HIDE$2="hide",EVENT_HIDDEN$2="hidden",EVENT_SHOW$2="show",EVENT_SHOWN$2="shown",EVENT_INSERTED="inserted",EVENT_CLICK$3="click",EVENT_FOCUSIN$2="focusin",EVENT_FOCUSOUT$1="focusout",EVENT_MOUSEENTER$1="mouseenter",EVENT_MOUSELEAVE="mouseleave",AttachmentMap={AUTO:"auto",TOP:"top",RIGHT:isRTL()?"left":"right",BOTTOM:"bottom",LEFT:isRTL()?"right":"left"},Default$4={allowList:DefaultAllowlist,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",floatingConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',title:"",trigger:"hover focus"},DefaultType$4={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",floatingConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Tooltip extends BaseComponent{constructor(e,t){if(void 0===computePosition)throw new TypeError("Bootstrap's tooltips require Floating UI (https://floating-ui.com)");super(e,t),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._floatingCleanup=null,this._templateFactory=null,this._newContent=null,this._mediaQueryListeners=[],this._responsivePlacements=null,this.tip=null,this._parseResponsivePlacements(),this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Default$4}static get DefaultType(){return DefaultType$4}static get NAME(){return NAME$5}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),EventHandler.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposeFloating(),this._disposeMediaQueryListeners(),super.dispose()}async show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const e=EventHandler.trigger(this._element,this.constructor.eventName("show")),t=(findShadowRoot(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this._disposeFloating();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));let{container:s}=this._config;const i=this._element.closest("dialog[open]");if(i&&s===document.body&&(s=i),this._element.ownerDocument.documentElement.contains(this.tip)||(s.append(n),EventHandler.trigger(this._element,this.constructor.eventName("inserted"))),await this._createFloating(n),n.classList.add("show"),"ontouchstart"in document.documentElement)for(const e of document.body.children)EventHandler.on(e,"mouseover",noop);this._queueCallback(()=>{EventHandler.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1},this.tip,this._isAnimated())}hide(){if(this._isShown()&&!EventHandler.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove("show"),"ontouchstart"in document.documentElement)for(const e of document.body.children)EventHandler.off(e,"mouseover",noop);this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this._isHovered=null,this._queueCallback(()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposeFloating(),this._element.removeAttribute("aria-describedby"),EventHandler.trigger(this._element,this.constructor.eventName("hidden")))},this.tip,this._isAnimated())}}update(){this._floatingCleanup&&this.tip&&this._updateFloatingPosition()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const t=this._getTemplateFactory(e).toHtml();t.classList.remove("fade","show"),t.classList.add(`bs-${this.constructor.NAME}-auto`);const n=getUID(this.constructor.NAME).toString();return t.setAttribute("id",n),this._isAnimated()&&t.classList.add("fade"),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposeFloating(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new TemplateFactory({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[SELECTOR_TOOLTIP_INNER]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains("fade")}_isShown(){return this.tip&&this.tip.classList.contains("show")}_getPlacement(e){if(this._responsivePlacements){const e=getResponsivePlacement(this._responsivePlacements,"top");return AttachmentMap[e.toUpperCase()]||e}const t=execute(this._config.placement,[this,e,this._element]);return AttachmentMap[t.toUpperCase()]||t}_parseResponsivePlacements(){"string"==typeof this._config.placement?(this._responsivePlacements=parseResponsivePlacement(this._config.placement,"top"),this._responsivePlacements&&this._setupMediaQueryListeners()):this._responsivePlacements=null}_setupMediaQueryListeners(){this._disposeMediaQueryListeners(),this._mediaQueryListeners=createBreakpointListeners(()=>{this._isShown()&&this._updateFloatingPosition()})}_disposeMediaQueryListeners(){disposeBreakpointListeners(this._mediaQueryListeners),this._mediaQueryListeners=[]}async _createFloating(e){const t=this._getPlacement(e),n=e.querySelector(`.${this.constructor.NAME}-arrow`);await this._updateFloatingPosition(e,t,n),this._floatingCleanup=autoUpdate(this._element,e,()=>this._updateFloatingPosition(e,null,n))}async _updateFloatingPosition(e=this.tip,t=null,n=null){if(!e)return;t||(t=this._getPlacement(e)),n||(n=e.querySelector(`.${this.constructor.NAME}-arrow`));const s=this._getFloatingMiddleware(n),i=this._getFloatingConfig(t,s),{x:o,y:r,placement:a,middlewareData:l}=await computePosition(this._element,e,i);if(Object.assign(e.style,{position:"absolute",left:`${o}px`,top:`${r}px`}),n&&(n.style.position="absolute"),Manipulator.setDataAttribute(e,"placement",a),n&&l.arrow){const{x:e,y:t}=l.arrow,s=a.startsWith("top")||a.startsWith("bottom");Object.assign(n.style,{left:s&&null!==e?`${e}px`:"",top:s||null===t?"":`${t}px`,right:"",bottom:""})}}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?({placement:t,rects:n})=>e({placement:t,reference:n.reference,floating:n.floating},this._element):e}_resolvePossibleFunction(e){return execute(e,[this._element,this._element])}_getFloatingMiddleware(e){const t=this._getOffset(),n=[offset("function"==typeof t?t:{mainAxis:t[1]||0,crossAxis:t[0]||0}),flip({fallbackPlacements:this._config.fallbackPlacements}),shift({boundary:"clippingParents"===this._config.boundary?"clippingAncestors":this._config.boundary})];return e&&n.push(arrow({element:e})),n}_getFloatingConfig(e,t){const n={placement:e,middleware:t};return{...n,...execute(this._config.floatingConfig,[void 0,n])}}_setListeners(){const e=this._config.trigger.split(" ");for(const t of e)if("click"===t)EventHandler.on(this._element,this.constructor.eventName("click"),this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger.click=!(t._isShown()&&t._activeTrigger.click),t.toggle()});else if("manual"!==t){const e="hover"===t?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n="hover"===t?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");EventHandler.on(this._element,e,this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?"focus":"hover"]=!0,t._enter()}),EventHandler.on(this._element,n,this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?"focus":"hover"]=t._element.contains(e.relatedTarget),t._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},EventHandler.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const t=Manipulator.getDataAttributes(this._element);for(const e of Object.keys(t))DISALLOWED_ATTRIBUTES.has(e)&&delete t[e];return e={...t,..."object"==typeof e&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=!1===e.container?document.body:getElement(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[t,n]of Object.entries(this._config))this.constructor.Default[t]!==n&&(e[t]=n);return e.selector=!1,e.trigger="manual",e}_disposeFloating(){this._floatingCleanup&&(this._floatingCleanup(),this._floatingCleanup=null),this.tip&&(this.tip.remove(),this.tip=null)}}const initTooltip=e=>{const t=e.target.closest(SELECTOR_DATA_TOGGLE$3);t&&Tooltip.getOrCreateInstance(t)};EventHandler.on(document,"focusin",SELECTOR_DATA_TOGGLE$3,initTooltip),EventHandler.on(document,"mouseenter",SELECTOR_DATA_TOGGLE$3,initTooltip);const NAME$4="popover",SELECTOR_TITLE=".popover-header",SELECTOR_CONTENT=".popover-body",SELECTOR_DATA_TOGGLE$2='[data-bs-toggle="popover"]',EVENT_CLICK$2="click",EVENT_FOCUSIN$1="focusin",EVENT_MOUSEENTER="mouseenter",Default$3={...Tooltip.Default,content:"",offset:[0,8],placement:"right",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',trigger:"click"},DefaultType$3={...Tooltip.DefaultType,content:"(null|string|element|function)"};class Popover extends Tooltip{static get Default(){return Default$3}static get DefaultType(){return DefaultType$3}static get NAME(){return NAME$4}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[SELECTOR_TITLE]:this._getTitle(),[SELECTOR_CONTENT]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}}const initPopover=e=>{const t=e.target.closest(SELECTOR_DATA_TOGGLE$2);t&&("click"===e.type&&e.preventDefault(),Popover.getOrCreateInstance(t))};EventHandler.on(document,"click",SELECTOR_DATA_TOGGLE$2,initPopover),EventHandler.on(document,"focusin",SELECTOR_DATA_TOGGLE$2,initPopover),EventHandler.on(document,"mouseenter",SELECTOR_DATA_TOGGLE$2,initPopover);const NAME$3="scrollspy",DATA_KEY$3="bs.scrollspy",EVENT_KEY$3=`.${DATA_KEY$3}`,DATA_API_KEY=".data-api",EVENT_ACTIVATE=`activate${EVENT_KEY$3}`,EVENT_CLICK$1=`click${EVENT_KEY$3}`,EVENT_LOAD_DATA_API$1=`load${EVENT_KEY$3}.data-api`,CLASS_NAME_MENU_ITEM="menu-item",CLASS_NAME_ACTIVE$1="active",SELECTOR_DATA_SPY='[data-bs-spy="scroll"]',SELECTOR_TARGET_LINKS="[href]",SELECTOR_NAV_LIST_GROUP=".nav, .list-group",SELECTOR_NAV_LINKS=".nav-link",SELECTOR_NAV_ITEMS=".nav-item",SELECTOR_LIST_ITEMS=".list-group-item",SELECTOR_LINK_ITEMS=".nav-link, .nav-item > .nav-link, .list-group-item",SELECTOR_MENU_TOGGLE$1='[data-bs-toggle="menu"]',Default$2={rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},DefaultType$2={rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class ScrollSpy extends BaseComponent{constructor(e,t){super(e,t),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return Default$2}static get DefaultType(){return DefaultType$2}static get NAME(){return NAME$3}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const e of this._observableSections.values())this._observer.observe(e)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(e){return e.target=getElement(e.target)||document.body,"string"==typeof e.threshold&&(e.threshold=e.threshold.split(",").map(e=>Number.parseFloat(e))),e}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(EventHandler.off(this._config.target,EVENT_CLICK$1),EventHandler.on(this._config.target,EVENT_CLICK$1,"[href]",e=>{const t=this._observableSections.get(e.target.hash);if(t){e.preventDefault();const n=this._rootElement||window,s=t.offsetTop-this._element.offsetTop;if(n.scrollTo)return void n.scrollTo({top:s,behavior:"smooth"});n.scrollTop=s}}))}_getNewObserver(){const e={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(e=>this._observerCallback(e),e)}_observerCallback(e){const t=e=>this._targetLinks.get(`#${e.target.id}`),n=e=>{this._previousScrollData.visibleEntryTop=e.target.offsetTop,this._process(t(e))},s=(this._rootElement||document.documentElement).scrollTop,i=s>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=s;for(const o of e){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(t(o));continue}const e=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(i&&e){if(n(o),!s)return}else i||e||n(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const e=SelectorEngine.find("[href]",this._config.target);for(const t of e){if(!t.hash||isDisabled(t))continue;const e=SelectorEngine.findOne(decodeURI(t.hash),this._element);isVisible(e)&&(this._targetLinks.set(decodeURI(t.hash),t),this._observableSections.set(t.hash,e))}}_process(e){this._activeTarget!==e&&(this._clearActiveClass(this._config.target),this._activeTarget=e,e.classList.add("active"),this._activateParents(e),EventHandler.trigger(this._element,EVENT_ACTIVATE,{relatedTarget:e}))}_activateParents(e){if(e.classList.contains("menu-item")){const t=e.closest(".menu")?.previousElementSibling;return void(t?.matches(SELECTOR_MENU_TOGGLE$1)&&t.classList.add("active"))}for(const t of SelectorEngine.parents(e,".nav, .list-group"))for(const e of SelectorEngine.prev(t,SELECTOR_LINK_ITEMS))e.classList.add("active")}_clearActiveClass(e){e.classList.remove("active");const t=SelectorEngine.find("[href].active",e);for(const e of t)e.classList.remove("active")}}EventHandler.on(window,EVENT_LOAD_DATA_API$1,()=>{for(const e of SelectorEngine.find(SELECTOR_DATA_SPY))ScrollSpy.getOrCreateInstance(e)});const NAME$2="tab",DATA_KEY$2="bs.tab",EVENT_KEY$2=".bs.tab",EVENT_HIDE$1="hide.bs.tab",EVENT_HIDDEN$1="hidden.bs.tab",EVENT_SHOW$1="show.bs.tab",EVENT_SHOWN$1="shown.bs.tab",EVENT_CLICK_DATA_API="click.bs.tab",EVENT_KEYDOWN="keydown.bs.tab",EVENT_LOAD_DATA_API="load.bs.tab",ARROW_LEFT_KEY="ArrowLeft",ARROW_RIGHT_KEY="ArrowRight",ARROW_UP_KEY="ArrowUp",ARROW_DOWN_KEY="ArrowDown",HOME_KEY="Home",END_KEY="End",CLASS_NAME_ACTIVE="active",CLASS_NAME_FADE$1="fade",CLASS_NAME_SHOW$1="show",SELECTOR_MENU_TOGGLE='[data-bs-toggle="menu"]',SELECTOR_MENU=".menu",NOT_SELECTOR_MENU_TOGGLE=`:not(${SELECTOR_MENU_TOGGLE})`,SELECTOR_TAB_PANEL='.list-group, .nav, [role="tablist"]',SELECTOR_OUTER=".nav-item, .list-group-item",SELECTOR_INNER=`.nav-link${NOT_SELECTOR_MENU_TOGGLE}, .list-group-item${NOT_SELECTOR_MENU_TOGGLE}, [role="tab"]${NOT_SELECTOR_MENU_TOGGLE}`,SELECTOR_DATA_TOGGLE$1='[data-bs-toggle="tab"]',SELECTOR_INNER_ELEM=`${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE$1}`,SELECTOR_DATA_TOGGLE_ACTIVE='.active[data-bs-toggle="tab"]';class Tab extends BaseComponent{constructor(e){super(e),this._parent=this._element.closest(SELECTOR_TAB_PANEL),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),EventHandler.on(this._element,EVENT_KEYDOWN,e=>this._keydown(e)))}static get NAME(){return"tab"}show(){const e=this._element;if(this._elemIsActive(e))return;const t=this._getActiveElem(),n=t?EventHandler.trigger(t,EVENT_HIDE$1,{relatedTarget:e}):null;EventHandler.trigger(e,EVENT_SHOW$1,{relatedTarget:t}).defaultPrevented||n&&n.defaultPrevented||(this._deactivate(t,e),this._activate(e,t))}_activate(e,t){e&&(e.classList.add("active"),this._activate(SelectorEngine.getElementFromSelector(e)),this._queueCallback(()=>{"tab"===e.getAttribute("role")?(e.removeAttribute("tabindex"),e.setAttribute("aria-selected",!0),this._toggleMenu(e,!0),EventHandler.trigger(e,EVENT_SHOWN$1,{relatedTarget:t})):e.classList.add("show")},e,e.classList.contains("fade")))}_deactivate(e,t){e&&(e.classList.remove("active"),e.blur(),this._deactivate(SelectorEngine.getElementFromSelector(e)),this._queueCallback(()=>{"tab"===e.getAttribute("role")?(e.setAttribute("aria-selected",!1),e.setAttribute("tabindex","-1"),this._toggleMenu(e,!1),EventHandler.trigger(e,EVENT_HIDDEN$1,{relatedTarget:t})):e.classList.remove("show")},e,e.classList.contains("fade")))}_keydown(e){if(![ARROW_LEFT_KEY,ARROW_RIGHT_KEY,ARROW_UP_KEY,ARROW_DOWN_KEY,HOME_KEY,END_KEY].includes(e.key))return;e.stopPropagation(),e.preventDefault();const t=this._getChildren().filter(e=>!isDisabled(e));let n;if([HOME_KEY,END_KEY].includes(e.key))n=e.key===HOME_KEY?t[0]:t.at(-1);else{const s=[ARROW_RIGHT_KEY,ARROW_DOWN_KEY].includes(e.key);n=getNextActiveElement(t,e.target,s,!0)}n&&(n.focus({preventScroll:!0}),Tab.getOrCreateInstance(n).show())}_getChildren(){return SelectorEngine.find(SELECTOR_INNER_ELEM,this._parent)}_getActiveElem(){return this._getChildren().find(e=>this._elemIsActive(e))||null}_setInitialAttributes(e,t){this._setAttributeIfNotExists(e,"role","tablist");for(const e of t)this._setInitialAttributesOnChild(e)}_setInitialAttributesOnChild(e){e=this._getInnerElement(e);const t=this._elemIsActive(e),n=this._getOuterElement(e);e.setAttribute("aria-selected",t),n!==e&&this._setAttributeIfNotExists(n,"role","presentation"),t||e.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(e,"role","tab"),this._setInitialAttributesOnTargetPanel(e)}_setInitialAttributesOnTargetPanel(e){const t=SelectorEngine.getElementFromSelector(e);t&&(this._setAttributeIfNotExists(t,"role","tabpanel"),e.id&&this._setAttributeIfNotExists(t,"aria-labelledby",`${e.id}`))}_toggleMenu(e,t){const n=this._getOuterElement(e),s=SelectorEngine.findOne(SELECTOR_MENU_TOGGLE,n);if(!s)return;const i=SelectorEngine.findOne(".menu",n);s.classList.toggle("active",t),i&&i.classList.toggle("show",t),s.setAttribute("aria-expanded",t)}_setAttributeIfNotExists(e,t,n){e.hasAttribute(t)||e.setAttribute(t,n)}_elemIsActive(e){return e.classList.contains("active")}_getInnerElement(e){return e.matches(SELECTOR_INNER_ELEM)?e:SelectorEngine.findOne(SELECTOR_INNER_ELEM,e)}_getOuterElement(e){return e.closest(SELECTOR_OUTER)||e}}EventHandler.on(document,"click.bs.tab",SELECTOR_DATA_TOGGLE$1,function(e){["A","AREA"].includes(this.tagName)&&e.preventDefault(),isDisabled(this)||Tab.getOrCreateInstance(this).show()}),EventHandler.on(window,"load.bs.tab",()=>{for(const e of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE))Tab.getOrCreateInstance(e)});const NAME$1="toast",DATA_KEY$1="bs.toast",EVENT_KEY$1=".bs.toast",EVENT_MOUSEOVER="mouseover.bs.toast",EVENT_MOUSEOUT="mouseout.bs.toast",EVENT_FOCUSIN="focusin.bs.toast",EVENT_FOCUSOUT="focusout.bs.toast",EVENT_HIDE="hide.bs.toast",EVENT_HIDDEN="hidden.bs.toast",EVENT_SHOW="show.bs.toast",EVENT_SHOWN="shown.bs.toast",CLASS_NAME_FADE="fade",CLASS_NAME_HIDE="hide",CLASS_NAME_SHOW="show",CLASS_NAME_SHOWING="showing",DefaultType$1={animation:"boolean",autohide:"boolean",delay:"number"},Default$1={animation:!0,autohide:!0,delay:5e3};class Toast extends BaseComponent{constructor(e,t){super(e,t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return Default$1}static get DefaultType(){return DefaultType$1}static get NAME(){return NAME$1}show(){EventHandler.trigger(this._element,EVENT_SHOW).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove("hide"),reflow(this._element),this._element.classList.add("show","showing"),this._queueCallback(()=>{this._element.classList.remove("showing"),EventHandler.trigger(this._element,EVENT_SHOWN),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this.isShown()&&(EventHandler.trigger(this._element,EVENT_HIDE).defaultPrevented||(this._element.classList.add("showing"),this._queueCallback(()=>{this._element.classList.add("hide"),this._element.classList.remove("showing","show"),EventHandler.trigger(this._element,EVENT_HIDDEN)},this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove("show"),super.dispose()}isShown(){return this._element.classList.contains("show")}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}if(t)return void this._clearTimeout();const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){EventHandler.on(this._element,EVENT_MOUSEOVER,e=>this._onInteraction(e,!0)),EventHandler.on(this._element,EVENT_MOUSEOUT,e=>this._onInteraction(e,!1)),EventHandler.on(this._element,EVENT_FOCUSIN,e=>this._onInteraction(e,!0)),EventHandler.on(this._element,EVENT_FOCUSOUT,e=>this._onInteraction(e,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}}enableDismissTrigger(Toast);const NAME="toggler",DATA_KEY="bs.toggler",EVENT_KEY=`.${DATA_KEY}`,EVENT_TOGGLE=`toggle${EVENT_KEY}`,EVENT_TOGGLED=`toggled${EVENT_KEY}`,EVENT_CLICK="click",SELECTOR_DATA_TOGGLE='[data-bs-toggle="toggler"]',DefaultType={attribute:"string",value:"(string|number|boolean)"},Default={attribute:"class",value:null};class Toggler extends BaseComponent{static get Default(){return Default}static get DefaultType(){return DefaultType}static get NAME(){return NAME}toggle(){EventHandler.trigger(this._element,EVENT_TOGGLE).defaultPrevented||(this._execute(),EventHandler.trigger(this._element,EVENT_TOGGLED))}_execute(){const{attribute:e,value:t}=this._config;"id"!==e&&("class"!==e?this._element.getAttribute(e)!==String(t)?this._element.setAttribute(e,t):this._element.removeAttribute(e):this._element.classList.toggle(t))}}eventActionOnPlugin(Toggler,"click",SELECTOR_DATA_TOGGLE,"toggle");export{Alert,Button,Carousel,Chips,Collapse,Combobox,Datepicker,Dialog,Drawer,Menu,NavOverflow,OtpInput,Popover,ScrollSpy,Strength,Tab,Toast,Toggler,Tooltip};
//# sourceMappingURL=bootstrap.min.js.map
\ No newline at end of file
-{"version":3,"names":["elementMap","Map","Data","set","element","key","instance","has","instanceMap","get","size","console","error","keys","getAny","values","next","value","remove","delete","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","makeEventUid","uid","getElementEvents","bootstrapHandler","fn","handler","event","hydrateObj","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","selector","domElements","querySelectorAll","target","this","parentNode","domElement","findHandler","events","callable","delegationSelector","Object","find","normalizeParameters","originalTypeEvent","delegationFunction","isDelegated","typeEvent","getTypeEvent","addHandler","wrapFunction","relatedTarget","contains","call","handlers","previousFunction","replace","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","entries","includes","on","one","inNamespace","isNamespace","startsWith","elementEvent","slice","keyHandlers","length","trigger","args","evt","Event","bubbles","cancelable","dispatchEvent","obj","meta","defineProperty","configurable","normalizeData","Number","toString","JSON","parse","decodeURIComponent","normalizeDataKey","chr","toLowerCase","Manipulator","setDataAttribute","setAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","bsKeys","dataset","filter","pureKey","charAt","getDataAttribute","getAttribute","MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","parseSelector","window","CSS","escape","match","id","toType","object","prototype","getUID","prefix","Math","floor","random","document","getElementById","getTransitionDurationFromElement","transitionDuration","transitionDelay","getComputedStyle","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","isElement","nodeType","getElement","querySelector","isVisible","getClientRects","elementIsVisible","getPropertyValue","closedDetails","closest","summary","isDisabled","Node","ELEMENT_NODE","classList","disabled","hasAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","isRTL","dir","execute","possibleCallback","defaultValue","executeAfterTransition","callback","transitionElement","waitForTransition","emulatedDuration","called","setTimeout","getNextActiveElement","list","activeElement","shouldGetNext","isCycleAllowed","listLength","index","indexOf","max","min","Config","Default","DefaultType","NAME","Error","_getConfig","config","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","jsonConfig","constructor","configTypes","property","expectedTypes","valueType","RegExp","test","TypeError","toUpperCase","VERSION","BaseComponent","super","_element","_config","DATA_KEY","dispose","EVENT_KEY","propertyName","getOwnPropertyNames","_queueCallback","isAnimated","getInstance","getOrCreateInstance","eventName","name","getSelector","hrefAttribute","trim","map","sel","join","SelectorEngine","Element","findOne","children","child","matches","parents","ancestor","push","prev","previous","previousElementSibling","nextElementSibling","focusableChildren","focusables","el","getSelectorFromElement","getElementFromSelector","getMultipleElementsFromSelector","enableDismissTrigger","component","method","clickEvent","tagName","preventDefault","eventActionOnPlugin","Plugin","onEvent","stringSelector","eventAction","data","instances","targets","EVENT_CLOSE","EVENT_CLOSED","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","close","defaultPrevented","_destroyElement","DATA_API_KEY","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE","EVENT_CLICK_DATA_API","Button","toggle","button","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","CLASS_NAME_POINTER_EVENT","SWIPE_THRESHOLD","endCallback","leftCallback","rightCallback","upCallback","downCallback","Swipe","isSupported","_deltaX","_deltaY","_supportPointerEvents","PointerEvent","_initEvents","_start","touches","clientX","clientY","_eventIsPointerPenTouch","_end","_handleSwipe","_move","absDeltaX","abs","absDeltaY","direction","add","pointerType","navigator","maxTouchPoints","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_DRAG_START","EVENT_LOAD_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_END","CLASS_NAME_START","CLASS_NAME_NEXT","CLASS_NAME_PREV","SELECTOR_ACTIVE","SELECTOR_ITEM","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM_IMG","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","KEY_TO_DIRECTION","ARROW_LEFT_KEY$2","ARROW_RIGHT_KEY$2","interval","keyboard","pause","ride","touch","wrap","Carousel","_interval","_activeElement","_isSliding","touchTimeout","_swipeHelper","_indicatorsElement","_addEventListeners","cycle","_slide","nextWhenVisible","visibilityState","_clearInterval","_updateInterval","setInterval","_maybeEnableCycle","to","items","_getItems","activeIndex","_getItemIndex","_getActive","order","defaultInterval","_keydown","_addTouchEventListeners","img","swipeConfig","_directionToOrder","endCallBack","clearTimeout","_setActiveIndicatorElement","activeIndicator","newActiveIndicator","elementInterval","parseInt","isNext","nextElement","nextElementIndex","triggerEvent","_orderToDirection","from","isCycling","directionalClassName","orderClassName","completeCallBack","_isAnimated","clearInterval","carousel","slideIndex","carousels","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","CLASS_NAME_HORIZONTAL","WIDTH","HEIGHT","SELECTOR_ACTIVES","parent","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","_isShown","hide","show","activeChildren","_getFirstLevelChildren","activeInstance","dimension","_getDimension","style","scrollSize","complete","getBoundingClientRect","selected","triggerArray","isOpen","BREAKPOINTS","sm","md","lg","xl","parseResponsivePlacement","placementString","defaultPlacement","parts","placements","xs","part","breakpoint","placement","undefined","getResponsivePlacement","responsivePlacements","viewportWidth","innerWidth","activePlacement","breakpointOrder","createBreakpointListeners","listeners","minWidth","mql","matchMedia","disposeBreakpointListeners","ESCAPE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","HOME_KEY","END_KEY","ENTER_KEY","SPACE_KEY","RIGHT_MOUSE_BUTTON","SUBMENU_CLOSE_DELAY","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","SELECTOR_MENU","SELECTOR_SUBMENU","SELECTOR_SUBMENU_TOGGLE","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","DEFAULT_PLACEMENT","SUBMENU_PLACEMENT","resolveLogicalPlacement","triangleSign","p1","p2","p3","x","y","autoClose","boundary","container","display","offset","floatingConfig","menu","reference","strategy","submenuTrigger","submenuDelay","Menu","static","computePosition","_floatingCleanup","_mediaQueryListeners","_responsivePlacements","_parent","_isSubmenu","_openSubmenus","_submenuCloseTimeouts","_hoverIntentData","_menu","_findMenu","_menuOriginalParent","_parseResponsivePlacements","_setupSubmenuListeners","_moveMenuToContainer","_createFloating","body","focus","focusVisible","_openInstances","_completeHide","_disposeFloating","_restoreMenuToOriginalParent","_disposeMediaQueryListeners","_closeAllSubmenus","_clearAllSubmenuTimeouts","update","_updateFloatingPosition","referenceElement","autoUpdate","_getPlacement","middleware","_getFloatingMiddleware","_getFloatingConfig","_applyFloatingPosition","_setupMediaQueryListeners","_getOffset","offsetConfig","rects","floating","offsetValue","mainAxis","crossAxis","flip","fallbackPlacements","_getFallbackPlacements","shift","bottom","top","right","left","defaultConfig","_getContainer","append","isConnected","finalPlacement","assign","position","margin","_onSubmenuTriggerEnter","_onSubmenuLeave","_trackMousePosition","_onSubmenuTriggerClick","submenuWrapper","submenu","_cancelSubmenuCloseTimeout","_closeSiblingSubmenus","_openSubmenu","_isMovingTowardSubmenu","_scheduleSubmenuClose","stopPropagation","_closeSubmenu","cleanup","_createSubmenuFloating","nestedSubmenus","nested","nestedWrapper","currentSubmenuWrapper","siblingSubmenus","siblingMenu","siblingWrapper","padding","updatePosition","timeoutId","clear","timestamp","Date","now","submenuRect","currentPos","lastPos","targetX","topCorner","bottomCorner","_pointInTriangle","point","v1","v2","v3","d1","d2","d3","_selectMenuItem","currentMenu","_handleSubmenuKeydown","isRtl","enterKey","exitKey","isSubmenuTrigger","requestAnimationFrame","firstItem","parentSubmenuWrapper","parentTrigger","at","clearMenus","composedPath","isMenuTarget","dataApiKeydownHandler","isInput","isEscapeEvent","isUpOrDownEvent","isLeftOrRightEvent","isHomeOrEndEvent","isEnterOrSpaceEvent","getToggleButton","EVENT_CHANGE","CLASS_NAME_SELECTED","CLASS_NAME_PLACEHOLDER","SELECTOR_MENU_ITEM","SELECTOR_VALUE","SELECTOR_SEARCH_INPUT","SELECTOR_NO_RESULTS","multiple","placeholder","search","searchNormalize","Combobox","_toggle","_valueDisplay","_searchInput","_noResults","_hiddenInput","_menuInstance","_createHiddenInput","_createMenuInstance","_syncInitialSelection","_filterItems","createElement","insertBefore","_getSelectedItems","_updateToggleText","_updateHiddenInput","_showPlaceholder","item","_selectItem","_handleToggleKeydown","_handleMenuKeydown","_getVisibleItems","previouslySelected","bsValue","selectedItems","textContent","label","query","normalizedQuery","_normalizeText","visibleCount","text","normalize","jQueryInterface","each","EVENT_FOCUSIN_DATA_API","HIDE_DELAY","datepickerTheme","dateMin","dateMax","dateFormat","displayElement","displayMonthsCount","firstWeekday","inline","locale","positionElement","selectedDates","selectionMode","vcpOptions","Datepicker","_calendar","_initCalendar","_themeObserver","disconnect","destroy","getSelectedDates","dates","context","setSelectedDates","_isInput","_isInline","_boundInput","_positionElement","_resolvePositionElement","_displayElement","_resolveDisplayElement","calendarOptions","_buildCalendarOptions","Calendar","init","_setupThemeObserver","_parseInputValue","_updateDisplayWithSelectedDates","formattedDate","_formatDateForInput","_getThemeAncestor","_getEffectiveTheme","_syncThemeAttribute","theme","MutationObserver","mainElement","observe","attributeFilter","vcpTheme","inputMode","positionToInput","selectionDatesMode","selectedTheme","themeAttrDetect","onClickDate","self","_handleDateClick","onInit","onShow","onHide","firstDate","_parseDate","selectedMonth","getMonth","selectedYear","getFullYear","_maybeHideAfterSelection","dateStr","year","month","day","_formatDate","date","Intl","DateTimeFormat","format","toLocaleDateString","separator","d","isNaN","getTime","formatted","String","padStart","getDate","bsInline","CLASS_NAME_OPEN","DialogBase","_openedAsModal","_addDialogListeners","open","_onBeforeShow","modal","preventBodyScroll","_getShowOptions","_showElement","_hideElement","_closeAndCleanup","_onAfterHide","_getInstantClassName","_getStaticClassName","_onCancel","showModal","_hideChildComponents","_shouldDeferClose","_triggerBackdropTransition","staticClass","eventKey","backdrop","EVENT_CANCEL","CLASS_NAME_NONMODAL","CLASS_NAME_INSTANT","CLASS_NAME_SWAP_IN","Dialog","handleUpdate","showEvent","currentDialog","newDialog","currentInstance","EVENT_UPDATE","EVENT_OVERFLOW","CLASS_NAME_OVERFLOW","CLASS_NAME_OVERFLOW_MENU","CLASS_NAME_HIDDEN","SELECTOR_NAV_ITEM","SELECTOR_NAV_LINK","SELECTOR_OVERFLOW_TOGGLE","SELECTOR_OVERFLOW_MENU","SELECTOR_CUSTOM_ICON","CLASS_NAME_KEEP","collapseBelow","iconPlacement","menuPlacement","moreText","moreIcon","threshold","NavOverflow","_items","_overflowItems","_overflowMenu","_overflowToggle","_resizeObserver","_collapseBelow","_isInitialized","_init","_calculateOverflow","_restoreItems","parentElement","bsNavOrder","_resolveCollapseBelow","_createOverflowMenu","_setupResizeObserver","iconSpan","_resolveIcon","textSpan","toggleContent","overflowItem","className","innerHTML","customIconElement","iconClone","cloneNode","iconHtml","outerHTML","cssValue","ResizeObserver","navWidth","offsetWidth","itemsToOverflow","_moveToOverflow","overflowCount","usedWidth","overflowThreshold","reduce","sum","toMove","link","clonedLink","bsNavOverflow","EVENT_RESIZE","scroll","Drawer","_initSwipe","alreadyOpen","EVENT_STRENGTH_CHANGE","SELECTOR_DATA_STRENGTH","STRENGTH_LEVELS","input","minLength","messages","weak","fair","good","strong","weights","extraLength","lowercase","uppercase","numbers","special","multipleSpecial","longPassword","thresholds","scorer","Strength","_input","_getInput","_segments","_textElement","_currentStrength","_evaluate","getStrength","evaluate","password","score","_calculateScore","strength","_scoreToStrength","_updateUI","bsStrength","strengthIndex","segment","colorMap","setProperty","EVENT_COMPLETE","EVENT_INPUT","SELECTOR_DATA_OTP","SELECTOR_INPUT","mask","OtpInput","_inputs","_setupInputs","getValue","setValue","chars","_checkComplete","emptyInput","_handleInput","_handleKeydown","_handlePaste","_handleFocus","i","nextIndex","digits","clipboardData","getData","lastIndex","select","every","EVENT_ADD","EVENT_REMOVE","EVENT_SELECT","SELECTOR_DATA_CHIPS","SELECTOR_GHOST_INPUT","SELECTOR_CHIP","SELECTOR_CHIP_DISMISS","CLASS_NAME_CHIP","CLASS_NAME_CHIP_DISMISS","DEFAULT_DISMISS_ICON","allowDuplicates","maxChips","dismissible","dismissIcon","createOnBlur","Chips","_chips","_selectedChips","_anchorChip","_createInput","_initializeExistingChips","trimmedValue","chip","_createChip","getValues","chipOrValue","_findChipByValue","_getChipValue","v","removeSelected","chipsToRemove","getSelectedValues","chips","clearSelection","selectChip","options","addToSelection","rangeSelect","chipElements","_getChipElements","anchorIndex","chipIndex","start","end","existingChips","_setupChip","_createDismissButton","bsChipValue","createTextNode","clone","dismiss","_handleInputKeydown","_createChipFromInput","metaKey","ctrlKey","shiftKey","_handleChipKeydown","lastChip","selectionStart","selectionEnd","blur","currentIndex","_handleChipDelete","_navigateChip","_navigateToEdge","_handleSelectAll","remainingChips","focusIndex","targetIndex","targetChip","c","pastedData","ARIA_ATTRIBUTE_PATTERN","DefaultAllowlist","a","area","b","br","col","code","dd","div","dl","dt","em","hr","h1","h2","h3","h4","h5","h6","li","ol","p","pre","s","small","span","sub","sup","u","ul","uriAttributes","SAFE_URL_PATTERN","allowedAttribute","attribute","allowedAttributeList","attributeName","nodeName","nodeValue","attributeRegex","some","regex","sanitizeHtml","unsafeHtml","allowList","sanitizeFunction","createdDocument","DOMParser","parseFromString","elements","elementName","attributeList","allowedAttributes","content","extraClass","html","sanitize","sanitizeFn","template","DefaultContentType","entry","TemplateFactory","getContent","_resolvePossibleFunction","hasContent","changeContent","_checkContent","toHtml","templateWrapper","_maybeSanitize","_setContent","arg","templateElement","_putElementInTemplate","DISALLOWED_ATTRIBUTES","CLASS_NAME_MODAL","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","EVENT_INSERTED","EVENT_CLICK","EVENT_FOCUSIN","EVENT_FOCUSOUT","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","animation","customClass","delay","title","Tooltip","_isEnabled","_timeout","_isHovered","_activeTrigger","_templateFactory","_newContent","tip","_setListeners","_fixTitle","enable","disable","toggleEnabled","_leave","_enter","_hideModalHandler","_isWithContent","isInTheDom","ownerDocument","_getTipElement","closestDialog","_isWithActiveTrigger","_getTitle","_createTipElement","_getContentForTemplate","_getTemplateFactory","tipId","setContent","_initializeOnDelegatedTarget","_getDelegateConfig","arrowElement","middlewareData","arrow","arrowX","arrowY","isVertical","triggers","eventIn","eventOut","_setTimeout","timeout","dataAttributes","dataAttribute","initTooltip","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","initPopover","EVENT_ACTIVATE","CLASS_NAME_MENU_ITEM","SELECTOR_DATA_SPY","SELECTOR_TARGET_LINKS","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","SELECTOR_MENU_TOGGLE","rootMargin","smoothScroll","ScrollSpy","_targetLinks","_observableSections","_rootElement","overflowY","_activeTarget","_observer","_previousScrollData","visibleEntryTop","parentScrollTop","refresh","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","_getNewObserver","section","observableSection","hash","height","offsetTop","scrollTo","behavior","scrollTop","IntersectionObserver","_observerCallback","targetElement","activate","_process","userScrollsDown","isIntersecting","_clearActiveClass","entryIsLowerThanPrevious","targetLinks","anchor","decodeURI","_activateParents","menuToggle","listGroup","activeNodes","node","spy","NOT_SELECTOR_MENU_TOGGLE","SELECTOR_TAB_PANEL","SELECTOR_OUTER","SELECTOR_INNER","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","Tab","_setInitialAttributes","_getChildren","innerElem","_elemIsActive","active","_getActiveElem","hideEvent","_deactivate","_activate","relatedElem","_toggleMenu","nextActiveElement","preventScroll","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","EVENT_MOUSEOVER","EVENT_MOUSEOUT","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_hasMouseInteraction","_hasKeyboardInteraction","_clearTimeout","_maybeScheduleHide","isShown","_onInteraction","isInteracting","EVENT_TOGGLE","EVENT_TOGGLED","Toggler","_execute"],"sources":["../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/dom/manipulator.js","../../js/src/util/index.js","../../js/src/util/config.js","../../js/src/base-component.js","../../js/src/dom/selector-engine.js","../../js/src/util/component-functions.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/util/swipe.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/util/floating-ui.js","../../js/src/menu.js","../../js/src/combobox.js","../../js/src/datepicker.js","../../js/src/dialog-base.js","../../js/src/dialog.js","../../js/src/nav-overflow.js","../../js/src/drawer.js","../../js/src/strength.js","../../js/src/otp-input.js","../../js/src/chips.js","../../js/src/util/sanitizer.js","../../js/src/util/template-factory.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/src/toggler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${[...instanceMap.keys()][0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n getAny(element) {\n if (elementMap.has(element)) {\n return elementMap.get(element).values().next().value || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, { delegateTarget: element })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n hydrateObj(event, { delegateTarget: target })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events)\n .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'\n const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n let typeEvent = getTypeEvent(originalTypeEvent)\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n callable = wrapFunction(callable)\n }\n\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler, callable) :\n bootstrapHandler(element, callable)\n\n fn.delegationSelector = isDelegated ? handler : null\n fn.callable = callable\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false)\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getElementEvents(element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const evt = hydrateObj(new Event(event, { bubbles: true, cancelable: true }), args)\n element.dispatchEvent(evt)\n return evt\n }\n}\n\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value\n } catch {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value\n }\n })\n }\n }\n\n return obj\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n if (value === Number(value).toString()) {\n return Number(value)\n }\n\n if (value === '' || value === 'null') {\n return null\n }\n\n if (typeof value !== 'string') {\n return value\n }\n\n try {\n return JSON.parse(decodeURIComponent(value))\n } catch {\n return value\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'))\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1)\n attributes[pureKey] = normalizeData(element.dataset[key])\n }\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n if (isElement(object)) {\n return object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.harrytheo.com/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport { isElement, toType } from './index.js'\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {}\n }\n\n static get DefaultType() {\n return {}\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n return config\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n }\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property]\n const valueType = isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n }\n }\n}\n\nexport default Config\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '6.0.0-alpha1'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n // Private\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible, parseSelector } from '../util/index.js'\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`\n }\n\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null\n }\n\n return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null\n}\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [...Element.prototype.querySelectorAll.call(element, selector)]\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [...element.children].filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n let ancestor = element.parentNode.closest(selector)\n\n while (ancestor) {\n parents.push(ancestor)\n ancestor = ancestor.parentNode.closest(selector)\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n },\n\n getSelectorFromElement(element) {\n const selector = getSelector(element)\n\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null\n }\n\n return null\n },\n\n getElementFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.findOne(selector) : null\n },\n\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.find(selector) : []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport { isDisabled } from './index.js'\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`\n const name = component.NAME\n\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`)\n const instance = component.getOrCreateInstance(target)\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]()\n })\n}\n\nconst eventActionOnPlugin = (Plugin, onEvent, stringSelector, method, callback = null) => {\n eventAction(`${onEvent}.${Plugin.NAME}`, stringSelector, data => {\n const instances = data.targets.filter(Boolean).map(element => Plugin.getOrCreateInstance(element))\n if (typeof callback === 'function') {\n callback({ ...data, instances })\n }\n\n for (const instance of instances) {\n instance[method]()\n }\n })\n}\n\nconst eventAction = (onEvent, stringSelector, callback) => {\n const selector = `${stringSelector}:not(.disabled):not(:disabled)`\n EventHandler.on(document, onEvent, selector, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n const selector = SelectorEngine.getSelectorFromElement(this)\n const targets = selector ? SelectorEngine.find(selector) : [this]\n\n callback({ targets, event })\n })\n}\n\nexport {\n enableDismissTrigger,\n eventActionOnPlugin\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE)\n\n if (closeEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE)\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated)\n }\n\n // Private\n _destroyElement() {\n this._element.remove()\n EventHandler.trigger(this._element, EVENT_CLOSED)\n this.dispose()\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close')\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'button'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {\n event.preventDefault()\n\n const button = event.target.closest(SELECTOR_DATA_TOGGLE)\n const data = Button.getOrCreateInstance(button)\n\n data.toggle()\n})\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport Config from './config.js'\nimport { execute } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'swipe'\nconst EVENT_KEY = '.bs.swipe'\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null,\n upCallback: null,\n downCallback: null\n}\n\nconst DefaultType = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)',\n upCallback: '(function|null)',\n downCallback: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super()\n this._element = element\n\n if (!element || !Swipe.isSupported()) {\n return\n }\n\n this._config = this._getConfig(config)\n this._deltaX = 0\n this._deltaY = 0\n this._supportPointerEvents = Boolean(window.PointerEvent)\n this._initEvents()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX\n this._deltaY = event.touches[0].clientY\n\n return\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX\n this._deltaY = event.clientY\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX\n this._deltaY = event.clientY - this._deltaY\n }\n\n this._handleSwipe()\n execute(this._config.endCallback)\n }\n\n _move(event) {\n if (event.touches && event.touches.length > 1) {\n this._deltaX = 0\n this._deltaY = 0\n return\n }\n\n this._deltaX = event.touches[0].clientX - this._deltaX\n this._deltaY = event.touches[0].clientY - this._deltaY\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX)\n const absDeltaY = Math.abs(this._deltaY)\n\n // Determine primary axis: whichever has greater movement wins\n if (absDeltaY > absDeltaX && absDeltaY > SWIPE_THRESHOLD) {\n // Vertical swipe\n const direction = this._deltaY > 0 ? 'down' : 'up'\n this._deltaX = 0\n this._deltaY = 0\n execute(direction === 'down' ? this._config.downCallback : this._config.upCallback)\n return\n }\n\n if (absDeltaX > SWIPE_THRESHOLD) {\n // Horizontal swipe\n const direction = absDeltaX / this._deltaX\n this._deltaX = 0\n this._deltaY = 0\n\n if (!direction) {\n return\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback)\n return\n }\n\n this._deltaX = 0\n this._deltaY = 0\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event))\n }\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n }\n}\n\nexport default Swipe\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getNextActiveElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd\n} from './util/index.js'\nimport Swipe from './util/swipe.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next'\nconst ORDER_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_END = 'carousel-item-end'\nconst CLASS_NAME_START = 'carousel-item-start'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n}\n\nconst DefaultType = {\n interval: 'number',\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._interval = null\n this._activeElement = null\n this._isSliding = false\n this.touchTimeout = null\n this._swipeHelper = null\n\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._addEventListeners()\n\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT)\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (document.visibilityState === 'visible' && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n this._slide(ORDER_PREV)\n }\n\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element)\n }\n\n this._clearInterval()\n }\n\n cycle() {\n this._clearInterval()\n this._updateInterval()\n\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval)\n }\n\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle())\n return\n }\n\n this.cycle()\n }\n\n to(index) {\n const items = this._getItems()\n if (index > items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index))\n return\n }\n\n const activeIndex = this._getItemIndex(this._getActive())\n if (activeIndex === index) {\n return\n }\n\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV\n\n this._slide(order, items[index])\n }\n\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause())\n EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle())\n }\n\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault())\n }\n\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return\n }\n\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n }\n\n this._swipeHelper = new Swipe(this._element, swipeConfig)\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n const direction = KEY_TO_DIRECTION[event.key]\n if (direction) {\n event.preventDefault()\n this._slide(this._directionToOrder(direction))\n }\n }\n\n _getItemIndex(element) {\n return this._getItems().indexOf(element)\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return\n }\n\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE)\n activeIndicator.removeAttribute('aria-current')\n\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement)\n\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE)\n newActiveIndicator.setAttribute('aria-current', 'true')\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._getActive()\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n this._config.interval = elementInterval || this._config.defaultInterval\n }\n\n _slide(order, element = null) {\n if (this._isSliding) {\n return\n }\n\n const activeElement = this._getActive()\n const isNext = order === ORDER_NEXT\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap)\n\n if (nextElement === activeElement) {\n return\n }\n\n const nextElementIndex = this._getItemIndex(nextElement)\n\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n })\n }\n\n const slideEvent = triggerEvent(EVENT_SLIDE)\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n const isCycling = Boolean(this._interval)\n this.pause()\n\n this._isSliding = true\n\n this._setActiveIndicatorElement(nextElementIndex)\n this._activeElement = nextElement\n\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n this._isSliding = false\n\n triggerEvent(EVENT_SLID)\n }\n\n this._queueCallback(completeCallBack, activeElement, this._isAnimated())\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE)\n }\n\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element)\n }\n\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n }\n\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n const carousel = Carousel.getOrCreateInstance(target)\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n carousel.to(slideIndex)\n carousel._maybeEnableCycle()\n return\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next()\n carousel._maybeEnableCycle()\n return\n }\n\n carousel.prev()\n carousel._maybeEnableCycle()\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel)\n }\n})\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getElement,\n reflow\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\nconst Default = {\n parent: null,\n toggle: true\n}\n\nconst DefaultType = {\n parent: '(null|element)',\n toggle: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._triggerArray = []\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElement => foundElement === this._element)\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem)\n }\n }\n\n this._initializeChildren()\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown())\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return\n }\n\n let activeChildren = []\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\n .filter(element => element !== this._element)\n .map(element => Collapse.getOrCreateInstance(element, { toggle: false }))\n }\n\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide()\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n this._addAriaAndCollapsedClass(this._triggerArray, true)\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n this._element.style[dimension] = ''\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n this._queueCallback(complete, this._element, true)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger)\n\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false)\n }\n }\n\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n this._queueCallback(complete, this._element, true)\n }\n\n // Private\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle) // Coerce string values\n config.parent = getElement(config.parent)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE)\n\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element)\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected))\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element))\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return\n }\n\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen)\n element.setAttribute('aria-expanded', isOpen)\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {\n event.preventDefault()\n }\n\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, { toggle: false }).toggle()\n }\n})\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/floating-ui.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isRTL } from './index.js'\n\n/**\n * Breakpoints for responsive placement (matches SCSS $breakpoints)\n */\nexport const BREAKPOINTS = {\n sm: 576,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536\n}\n\n/**\n * Default placement with RTL support\n */\nexport const getDefaultPlacement = (fallback = 'bottom') => {\n if (fallback.includes('-start') || fallback.includes('-end')) {\n const [side, alignment] = fallback.split('-')\n const flippedAlignment = alignment === 'start' ? 'end' : 'start'\n return isRTL() ? `${side}-${flippedAlignment}` : fallback\n }\n\n return fallback\n}\n\n/**\n * Parse a placement string that may contain responsive prefixes\n * Example: \"bottom-start md:top-end lg:right\" returns { xs: 'bottom-start', md: 'top-end', lg: 'right' }\n *\n * @param {string} placementString - The placement string to parse\n * @param {string} defaultPlacement - The default placement to use for xs/base\n * @returns {object|null} - Object with breakpoint keys and placement values, or null if not responsive\n */\nexport const parseResponsivePlacement = (placementString, defaultPlacement = 'bottom') => {\n // Check if placement contains responsive prefixes (e.g., \"bottom-start md:top-end\")\n if (!placementString || !placementString.includes(':')) {\n return null\n }\n\n // Parse the placement string into breakpoint-keyed object\n const parts = placementString.split(/\\s+/)\n const placements = { xs: defaultPlacement } // Default fallback\n\n for (const part of parts) {\n if (part.includes(':')) {\n // Responsive placement like \"md:top-end\"\n const [breakpoint, placement] = part.split(':')\n if (BREAKPOINTS[breakpoint] !== undefined) {\n placements[breakpoint] = placement\n }\n } else {\n // Base placement (no prefix = xs/default)\n placements.xs = part\n }\n }\n\n return placements\n}\n\n/**\n * Get the active placement for the current viewport width\n *\n * @param {object} responsivePlacements - Object with breakpoint keys and placement values\n * @param {string} defaultPlacement - Fallback placement\n * @returns {string} - The active placement for current viewport\n */\nexport const getResponsivePlacement = (responsivePlacements, defaultPlacement = 'bottom') => {\n if (!responsivePlacements) {\n return defaultPlacement\n }\n\n // Get current viewport width\n const viewportWidth = window.innerWidth\n\n // Find the largest breakpoint that matches\n let activePlacement = responsivePlacements.xs || defaultPlacement\n\n // Check breakpoints in order (sm, md, lg, xl, 2xl)\n const breakpointOrder = ['sm', 'md', 'lg', 'xl', '2xl']\n\n for (const breakpoint of breakpointOrder) {\n const minWidth = BREAKPOINTS[breakpoint]\n if (viewportWidth >= minWidth && responsivePlacements[breakpoint]) {\n activePlacement = responsivePlacements[breakpoint]\n }\n }\n\n return activePlacement\n}\n\n/**\n * Create media query listeners for responsive placement changes\n *\n * @param {Function} callback - Callback to run when breakpoint changes\n * @returns {Array} - Array of { mql, handler } objects for cleanup\n */\nexport const createBreakpointListeners = callback => {\n const listeners = []\n\n for (const breakpoint of Object.keys(BREAKPOINTS)) {\n const minWidth = BREAKPOINTS[breakpoint]\n const mql = window.matchMedia(`(min-width: ${minWidth}px)`)\n\n mql.addEventListener('change', callback)\n listeners.push({ mql, handler: callback })\n }\n\n return listeners\n}\n\n/**\n * Clean up media query listeners\n *\n * @param {Array} listeners - Array of { mql, handler } objects\n */\nexport const disposeBreakpointListeners = listeners => {\n for (const { mql, handler } of listeners) {\n mql.removeEventListener('change', handler)\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap menu.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n computePosition,\n flip,\n shift,\n offset,\n autoUpdate\n} from '@floating-ui/dom'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n execute,\n getElement,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop\n} from './util/index.js'\nimport {\n parseResponsivePlacement,\n getResponsivePlacement,\n createBreakpointListeners,\n disposeBreakpointListeners\n} from './util/floating-ui.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'menu'\nconst DATA_KEY = 'bs.menu'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\nconst ENTER_KEY = 'Enter'\nconst SPACE_KEY = ' '\nconst RIGHT_MOUSE_BUTTON = 2\n\nconst SUBMENU_CLOSE_DELAY = 100\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"menu\"]:not(.disabled):not(:disabled)'\n\nconst SELECTOR_MENU = '.menu'\nconst SELECTOR_SUBMENU = '.submenu'\nconst SELECTOR_SUBMENU_TOGGLE = '.submenu > .menu-item'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.menu-item:not(.disabled):not(:disabled)'\n\nconst DEFAULT_PLACEMENT = 'bottom-start'\nconst SUBMENU_PLACEMENT = 'end-start'\n\nconst resolveLogicalPlacement = placement => {\n if (isRTL()) {\n return placement.replace(/^start(?=-|$)/, 'right').replace(/^end(?=-|$)/, 'left')\n }\n\n return placement.replace(/^start(?=-|$)/, 'left').replace(/^end(?=-|$)/, 'right')\n}\n\nconst triangleSign = (p1, p2, p3) =>\n ((p1.x - p3.x) * (p2.y - p3.y)) - ((p2.x - p3.x) * (p1.y - p3.y))\n\nconst Default = {\n autoClose: true,\n boundary: 'clippingParents',\n container: false,\n display: 'dynamic',\n offset: [0, 2],\n floatingConfig: null,\n menu: null,\n placement: DEFAULT_PLACEMENT,\n reference: 'toggle',\n strategy: 'absolute',\n submenuTrigger: 'both',\n submenuDelay: SUBMENU_CLOSE_DELAY\n}\n\nconst DefaultType = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n display: 'string',\n offset: '(array|string|function)',\n floatingConfig: '(null|object|function)',\n menu: '(null|element)',\n placement: 'string',\n reference: '(string|element|object)',\n strategy: 'string',\n submenuTrigger: 'string',\n submenuDelay: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass Menu extends BaseComponent {\n static _openInstances = new Set()\n\n constructor(element, config) {\n if (typeof computePosition === 'undefined') {\n throw new TypeError('Bootstrap\\'s menus require Floating UI (https://floating-ui.com)')\n }\n\n super(element, config)\n\n this._floatingCleanup = null\n this._mediaQueryListeners = []\n this._responsivePlacements = null\n this._parent = this._element.parentNode\n this._isSubmenu = this._parent.classList?.contains('submenu')\n this._openSubmenus = new Map()\n this._submenuCloseTimeouts = new Map()\n this._hoverIntentData = null\n\n this._menu = this._config.menu || this._findMenu()\n\n this._menuOriginalParent = this._menu?.parentNode\n\n this._parseResponsivePlacements()\n this._setupSubmenuListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._moveMenuToContainer()\n this._createFloating()\n\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of document.body.children) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n this._element.focus({ focusVisible: false })\n this._element.setAttribute('aria-expanded', 'true')\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.add(CLASS_NAME_SHOW)\n }\n\n Menu._openInstances.add(this)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n this._disposeMediaQueryListeners()\n this._closeAllSubmenus()\n this._clearAllSubmenuTimeouts()\n Menu._openInstances.delete(this)\n super.dispose()\n }\n\n update() {\n if (this._floatingCleanup) {\n this._updateFloatingPosition()\n }\n }\n\n // Private\n _findMenu() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.prev(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.findOne(SELECTOR_MENU, this._parent)\n }\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._closeAllSubmenus()\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.remove(CLASS_NAME_SHOW)\n }\n\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'placement')\n Manipulator.removeDataAttribute(this._menu, 'display')\n Menu._openInstances.delete(this)\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = super._getConfig(config)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createFloating() {\n if (this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'display', 'static')\n return\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n this._updateFloatingPosition(referenceElement)\n\n this._floatingCleanup = autoUpdate(\n referenceElement,\n this._menu,\n () => this._updateFloatingPosition(referenceElement)\n )\n }\n\n async _updateFloatingPosition(referenceElement = null) {\n if (!this._menu) {\n return\n }\n\n if (!referenceElement) {\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n } else {\n referenceElement = this._element\n }\n }\n\n const placement = this._getPlacement()\n const middleware = this._getFloatingMiddleware()\n const floatingConfig = this._getFloatingConfig(placement, middleware)\n\n await this._applyFloatingPosition(\n referenceElement,\n this._menu,\n floatingConfig.placement,\n floatingConfig.middleware,\n floatingConfig.strategy\n )\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement() {\n const placement = this._responsivePlacements ?\n getResponsivePlacement(this._responsivePlacements, DEFAULT_PLACEMENT) :\n this._config.placement\n\n return resolveLogicalPlacement(placement)\n }\n\n _parseResponsivePlacements() {\n this._responsivePlacements = parseResponsivePlacement(this._config.placement, DEFAULT_PLACEMENT)\n\n if (this._responsivePlacements) {\n this._setupMediaQueryListeners()\n }\n }\n\n _setupMediaQueryListeners() {\n this._disposeMediaQueryListeners()\n this._mediaQueryListeners = createBreakpointListeners(() => {\n if (this._isShown()) {\n this._updateFloatingPosition()\n }\n })\n }\n\n _disposeMediaQueryListeners() {\n disposeBreakpointListeners(this._mediaQueryListeners)\n this._mediaQueryListeners = []\n }\n\n _getOffset() {\n const { offset: offsetConfig } = this._config\n\n if (typeof offsetConfig === 'string') {\n return offsetConfig.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offsetConfig === 'function') {\n return ({ placement, rects }) => {\n const result = offsetConfig({ placement, reference: rects.reference, floating: rects.floating }, this._element)\n return result\n }\n }\n\n return offsetConfig\n }\n\n _getFloatingMiddleware() {\n const offsetValue = this._getOffset()\n\n const middleware = [\n offset(\n typeof offsetValue === 'function' ?\n offsetValue :\n { mainAxis: offsetValue[1] || 0, crossAxis: offsetValue[0] || 0 }\n ),\n flip({\n fallbackPlacements: this._getFallbackPlacements()\n }),\n shift({\n boundary: this._config.boundary === 'clippingParents' ? 'clippingAncestors' : this._config.boundary\n })\n ]\n\n return middleware\n }\n\n _getFallbackPlacements() {\n const placement = this._getPlacement()\n\n const fallbackMap = {\n bottom: ['top', 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\n 'bottom-start': ['top-start', 'bottom-end', 'top-end'],\n 'bottom-end': ['top-end', 'bottom-start', 'top-start'],\n top: ['bottom', 'top-start', 'top-end', 'bottom-start', 'bottom-end'],\n 'top-start': ['bottom-start', 'top-end', 'bottom-end'],\n 'top-end': ['bottom-end', 'top-start', 'bottom-start'],\n right: ['left', 'right-start', 'right-end', 'left-start', 'left-end'],\n 'right-start': ['left-start', 'right-end', 'left-end', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'right-start', 'left-start', 'top-end', 'bottom-end'],\n left: ['right', 'left-start', 'left-end', 'right-start', 'right-end'],\n 'left-start': ['right-start', 'left-end', 'right-end', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'left-start', 'right-start', 'top-end', 'bottom-end']\n }\n\n return fallbackMap[placement] || ['top', 'bottom', 'right', 'left']\n }\n\n _getFloatingConfig(placement, middleware) {\n const defaultConfig = {\n placement,\n middleware,\n strategy: this._config.strategy\n }\n\n return {\n ...defaultConfig,\n ...execute(this._config.floatingConfig, [undefined, defaultConfig])\n }\n }\n\n _disposeFloating() {\n if (this._floatingCleanup) {\n this._floatingCleanup()\n this._floatingCleanup = null\n }\n }\n\n _getContainer() {\n const { container } = this._config\n if (container === false) {\n return null\n }\n\n return container === true ? document.body : getElement(container)\n }\n\n _moveMenuToContainer() {\n const container = this._getContainer()\n if (!container || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== container) {\n container.append(this._menu)\n }\n }\n\n _restoreMenuToOriginalParent() {\n if (!this._menuOriginalParent || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== this._menuOriginalParent) {\n this._menuOriginalParent.append(this._menu)\n }\n }\n\n async _applyFloatingPosition(reference, floating, placement, middleware, strategy = 'absolute') {\n if (!floating.isConnected) {\n return null\n }\n\n const { x, y, placement: finalPlacement } = await computePosition(\n reference,\n floating,\n { placement, middleware, strategy }\n )\n\n if (!floating.isConnected) {\n return null\n }\n\n Object.assign(floating.style, {\n position: strategy,\n left: `${x}px`,\n top: `${y}px`,\n margin: '0'\n })\n\n Manipulator.setDataAttribute(floating, 'placement', finalPlacement)\n return finalPlacement\n }\n\n // -------------------------------------------------------------------------\n // Submenu handling\n // -------------------------------------------------------------------------\n\n _setupSubmenuListeners() {\n if (this._config.submenuTrigger === 'hover' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'mouseenter', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerEnter(event)\n })\n\n EventHandler.on(this._menu, 'mouseleave', SELECTOR_SUBMENU, event => {\n this._onSubmenuLeave(event)\n })\n\n EventHandler.on(this._menu, 'mousemove', event => {\n this._trackMousePosition(event)\n })\n }\n\n if (this._config.submenuTrigger === 'click' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'click', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerClick(event)\n })\n }\n }\n\n _onSubmenuTriggerEnter(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n this._cancelSubmenuCloseTimeout(submenu)\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n\n _onSubmenuLeave(event) {\n const submenuWrapper = event.target.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu || !this._openSubmenus.has(submenu)) {\n return\n }\n\n if (this._isMovingTowardSubmenu(event, submenu)) {\n return\n }\n\n this._scheduleSubmenuClose(submenu, submenuWrapper)\n }\n\n _onSubmenuTriggerClick(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n if (this._openSubmenus.has(submenu)) {\n this._closeSubmenu(submenu, submenuWrapper)\n } else {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n }\n\n _openSubmenu(trigger, submenu, submenuWrapper) {\n if (this._openSubmenus.has(submenu)) {\n return\n }\n\n trigger.setAttribute('aria-expanded', 'true')\n trigger.setAttribute('aria-haspopup', 'true')\n\n submenu.classList.add(CLASS_NAME_SHOW)\n submenuWrapper.classList.add(CLASS_NAME_SHOW)\n\n const cleanup = this._createSubmenuFloating(trigger, submenu, submenuWrapper)\n this._openSubmenus.set(submenu, cleanup)\n\n EventHandler.on(submenu, 'mouseenter', () => {\n this._cancelSubmenuCloseTimeout(submenu)\n })\n }\n\n _closeSubmenu(submenu, submenuWrapper) {\n if (!this._openSubmenus.has(submenu)) {\n return\n }\n\n const nestedSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, submenu)\n for (const nested of nestedSubmenus) {\n const nestedWrapper = nested.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(nested, nestedWrapper)\n }\n\n const trigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, submenuWrapper)\n\n const cleanup = this._openSubmenus.get(submenu)\n if (cleanup) {\n cleanup()\n }\n\n this._openSubmenus.delete(submenu)\n EventHandler.off(submenu, 'mouseenter')\n\n if (trigger) {\n trigger.setAttribute('aria-expanded', 'false')\n }\n\n submenu.classList.remove(CLASS_NAME_SHOW)\n submenuWrapper.classList.remove(CLASS_NAME_SHOW)\n\n submenu.style.position = ''\n submenu.style.left = ''\n submenu.style.top = ''\n submenu.style.margin = ''\n }\n\n _closeAllSubmenus() {\n for (const [submenu] of this._openSubmenus) {\n const submenuWrapper = submenu.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(submenu, submenuWrapper)\n }\n }\n\n _closeSiblingSubmenus(currentSubmenuWrapper) {\n const parent = currentSubmenuWrapper.parentNode\n const siblingSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} > ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, parent)\n\n for (const siblingMenu of siblingSubmenus) {\n const siblingWrapper = siblingMenu.closest(SELECTOR_SUBMENU)\n if (siblingWrapper !== currentSubmenuWrapper) {\n this._closeSubmenu(siblingMenu, siblingWrapper)\n }\n }\n }\n\n _createSubmenuFloating(trigger, submenu, submenuWrapper) {\n const referenceElement = submenuWrapper\n const placement = resolveLogicalPlacement(SUBMENU_PLACEMENT)\n const middleware = [\n offset({ mainAxis: 0, crossAxis: -4 }),\n flip({\n fallbackPlacements: [\n resolveLogicalPlacement('start-start'),\n resolveLogicalPlacement('end-end'),\n resolveLogicalPlacement('start-end')\n ]\n }),\n shift({ padding: 8 })\n ]\n\n const updatePosition = () => this._applyFloatingPosition(referenceElement, submenu, placement, middleware)\n\n updatePosition()\n return autoUpdate(referenceElement, submenu, updatePosition)\n }\n\n _scheduleSubmenuClose(submenu, submenuWrapper) {\n this._cancelSubmenuCloseTimeout(submenu)\n\n const timeoutId = setTimeout(() => {\n this._closeSubmenu(submenu, submenuWrapper)\n this._submenuCloseTimeouts.delete(submenu)\n }, this._config.submenuDelay)\n\n this._submenuCloseTimeouts.set(submenu, timeoutId)\n }\n\n _cancelSubmenuCloseTimeout(submenu) {\n const timeoutId = this._submenuCloseTimeouts.get(submenu)\n if (timeoutId) {\n clearTimeout(timeoutId)\n this._submenuCloseTimeouts.delete(submenu)\n }\n }\n\n _clearAllSubmenuTimeouts() {\n for (const timeoutId of this._submenuCloseTimeouts.values()) {\n clearTimeout(timeoutId)\n }\n\n this._submenuCloseTimeouts.clear()\n }\n\n // -------------------------------------------------------------------------\n // Hover intent / Safe triangle\n // -------------------------------------------------------------------------\n\n _trackMousePosition(event) {\n this._hoverIntentData = {\n x: event.clientX,\n y: event.clientY,\n timestamp: Date.now()\n }\n }\n\n _isMovingTowardSubmenu(event, submenu) {\n if (!this._hoverIntentData) {\n return false\n }\n\n const submenuRect = submenu.getBoundingClientRect()\n const currentPos = { x: event.clientX, y: event.clientY }\n const lastPos = { x: this._hoverIntentData.x, y: this._hoverIntentData.y }\n\n const isRtl = isRTL()\n const targetX = isRtl ? submenuRect.right : submenuRect.left\n const topCorner = { x: targetX, y: submenuRect.top }\n const bottomCorner = { x: targetX, y: submenuRect.bottom }\n\n return this._pointInTriangle(currentPos, lastPos, topCorner, bottomCorner)\n }\n\n _pointInTriangle(point, v1, v2, v3) {\n const d1 = triangleSign(point, v1, v2)\n const d2 = triangleSign(point, v2, v3)\n const d3 = triangleSign(point, v3, v1)\n\n const hasNeg = (d1 < 0) || (d2 < 0) || (d3 < 0)\n const hasPos = (d1 > 0) || (d2 > 0) || (d3 > 0)\n\n return !(hasNeg && hasPos)\n }\n\n // -------------------------------------------------------------------------\n // Keyboard navigation\n // -------------------------------------------------------------------------\n\n _selectMenuItem({ key, target }) {\n const currentMenu = target.closest(SELECTOR_MENU) || this._menu\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (!items.length) {\n return\n }\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n _handleSubmenuKeydown(event) {\n const { key, target } = event\n const isRtl = isRTL()\n\n const enterKey = isRtl ? ARROW_LEFT_KEY : ARROW_RIGHT_KEY\n const exitKey = isRtl ? ARROW_RIGHT_KEY : ARROW_LEFT_KEY\n\n const submenuWrapper = target.closest(SELECTOR_SUBMENU)\n const isSubmenuTrigger = submenuWrapper && target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === enterKey && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === exitKey) {\n const currentMenu = target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper) {\n event.preventDefault()\n event.stopPropagation()\n\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n this._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return true\n }\n }\n\n if (key === HOME_KEY || key === END_KEY) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = target.closest(SELECTOR_MENU)\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (items.length) {\n const targetItem = key === HOME_KEY ? items[0] : items.at(-1)\n targetItem.focus()\n }\n\n return true\n }\n\n return false\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n for (const instance of Menu._openInstances) {\n if (instance._config.autoClose === false) {\n continue\n }\n\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(instance._menu)\n if (\n composedPath.includes(instance._element) ||\n (instance._config.autoClose === 'inside' && !isMenuTarget) ||\n (instance._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n if (instance._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n const relatedTarget = { relatedTarget: instance._element }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n instance._completeHide(relatedTarget)\n }\n }\n\n static dataApiKeydownHandler(event) {\n const isInput = /input|textarea/i.test(event.target.tagName)\n const isEscapeEvent = event.key === ESCAPE_KEY\n const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)\n const isLeftOrRightEvent = [ARROW_LEFT_KEY, ARROW_RIGHT_KEY].includes(event.key)\n const isHomeOrEndEvent = [HOME_KEY, END_KEY].includes(event.key)\n const isEnterOrSpaceEvent = [ENTER_KEY, SPACE_KEY].includes(event.key)\n\n const isSubmenuTrigger = event.target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if (!isUpOrDownEvent && !isEscapeEvent && !isLeftOrRightEvent && !isHomeOrEndEvent &&\n !(isEnterOrSpaceEvent && isSubmenuTrigger)) {\n return\n }\n\n if (isInput && !isEscapeEvent) {\n return\n }\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\n this :\n (SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.next(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\n\n if (!getToggleButton) {\n return\n }\n\n const instance = Menu.getOrCreateInstance(getToggleButton)\n\n if ((isLeftOrRightEvent || isHomeOrEndEvent || (isEnterOrSpaceEvent && isSubmenuTrigger)) && instance._handleSubmenuKeydown(event)) {\n return\n }\n\n if (isUpOrDownEvent) {\n event.preventDefault()\n event.stopPropagation()\n instance.show()\n instance._selectMenuItem(event)\n return\n }\n\n if (isEscapeEvent && instance._isShown()) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = event.target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper && instance._openSubmenus.size > 0) {\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n instance._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return\n }\n\n instance.hide()\n getToggleButton.focus()\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Menu.getOrCreateInstance(this).toggle()\n})\n\nexport default Menu\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap combobox.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Menu from './menu.js'\nimport { getNextActiveElement, isDisabled, isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'combobox'\nconst DATA_KEY = 'bs.combobox'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\nconst ENTER_KEY = 'Enter'\nconst SPACE_KEY = ' '\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SELECTED = 'selected'\nconst CLASS_NAME_PLACEHOLDER = 'combobox-placeholder'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"combobox\"]'\nconst SELECTOR_MENU = '.menu'\nconst SELECTOR_MENU_ITEM = '.menu-item[data-bs-value]'\nconst SELECTOR_VISIBLE_ITEMS = '.menu-item[data-bs-value]:not(.disabled):not(:disabled)'\nconst SELECTOR_VALUE = '.combobox-value'\nconst SELECTOR_SEARCH_INPUT = '.combobox-search-input'\nconst SELECTOR_NO_RESULTS = '.combobox-no-results'\n\nconst Default = {\n boundary: 'clippingParents',\n multiple: false,\n name: null,\n offset: [0, 2],\n placeholder: '',\n placement: 'bottom-start',\n search: false,\n searchNormalize: false\n}\n\nconst DefaultType = {\n boundary: '(string|element)',\n multiple: 'boolean',\n name: '(string|null)',\n offset: '(array|string|function)',\n placeholder: 'string',\n placement: 'string',\n search: 'boolean',\n searchNormalize: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Combobox extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._toggle = this._element\n this._menu = SelectorEngine.next(this._toggle, SELECTOR_MENU)[0]\n this._valueDisplay = SelectorEngine.findOne(SELECTOR_VALUE, this._toggle)\n this._searchInput = SelectorEngine.findOne(SELECTOR_SEARCH_INPUT, this._menu)\n this._noResults = SelectorEngine.findOne(SELECTOR_NO_RESULTS, this._menu)\n this._hiddenInput = null\n this._menuInstance = null\n\n this._createHiddenInput()\n this._createMenuInstance()\n this._syncInitialSelection()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._toggle) || this._isShown()) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._toggle, EVENT_SHOW)\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._menuInstance.show()\n\n if (this._searchInput) {\n this._searchInput.value = ''\n this._filterItems('')\n requestAnimationFrame(() => this._searchInput.focus())\n }\n\n EventHandler.trigger(this._toggle, EVENT_SHOWN)\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._toggle, EVENT_HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._menuInstance.hide()\n EventHandler.trigger(this._toggle, EVENT_HIDDEN)\n }\n\n dispose() {\n if (this._menuInstance) {\n this._menuInstance.dispose()\n this._menuInstance = null\n }\n\n if (this._hiddenInput) {\n this._hiddenInput.remove()\n this._hiddenInput = null\n }\n\n EventHandler.off(this._menu, EVENT_KEY)\n EventHandler.off(this._toggle, EVENT_KEY)\n\n super.dispose()\n }\n\n // Private\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _createHiddenInput() {\n const { name } = this._config\n if (!name) {\n return\n }\n\n this._hiddenInput = document.createElement('input')\n this._hiddenInput.type = 'hidden'\n this._hiddenInput.name = name\n this._hiddenInput.value = ''\n this._toggle.parentNode.insertBefore(this._hiddenInput, this._toggle)\n }\n\n _createMenuInstance() {\n this._menuInstance = new Menu(this._toggle, {\n menu: this._menu,\n autoClose: this._config.multiple ? 'outside' : true,\n boundary: this._config.boundary,\n offset: this._config.offset,\n placement: this._config.placement\n })\n }\n\n _syncInitialSelection() {\n const selectedItems = this._getSelectedItems()\n if (selectedItems.length > 0) {\n this._updateToggleText()\n this._updateHiddenInput()\n } else {\n this._showPlaceholder()\n }\n }\n\n _addEventListeners() {\n EventHandler.on(this._menu, 'click', SELECTOR_MENU_ITEM, event => {\n const item = event.target.closest(SELECTOR_MENU_ITEM)\n if (!item || isDisabled(item)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n this._selectItem(item)\n })\n\n EventHandler.on(this._toggle, 'keydown', event => {\n this._handleToggleKeydown(event)\n })\n\n EventHandler.on(this._menu, 'keydown', event => {\n this._handleMenuKeydown(event)\n })\n\n if (this._searchInput) {\n EventHandler.on(this._searchInput, 'input', () => {\n this._filterItems(this._searchInput.value)\n })\n\n EventHandler.on(this._searchInput, 'keydown', event => {\n if (event.key === ARROW_DOWN_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n items[0].focus()\n }\n }\n\n if (event.key === ESCAPE_KEY) {\n this.hide()\n this._toggle.focus()\n }\n })\n }\n }\n\n _selectItem(item) {\n if (this._config.multiple) {\n item.classList.toggle(CLASS_NAME_SELECTED)\n item.setAttribute('aria-selected', item.classList.contains(CLASS_NAME_SELECTED))\n } else {\n const previouslySelected = SelectorEngine.find(`.${CLASS_NAME_SELECTED}`, this._menu)\n for (const prev of previouslySelected) {\n prev.classList.remove(CLASS_NAME_SELECTED)\n prev.setAttribute('aria-selected', 'false')\n }\n\n item.classList.add(CLASS_NAME_SELECTED)\n item.setAttribute('aria-selected', 'true')\n }\n\n this._updateToggleText()\n this._updateHiddenInput()\n\n const value = this._config.multiple ?\n this._getSelectedItems().map(el => el.dataset.bsValue) :\n item.dataset.bsValue\n\n EventHandler.trigger(this._toggle, EVENT_CHANGE, {\n value,\n item\n })\n\n if (!this._config.multiple) {\n this.hide()\n this._toggle.focus()\n }\n }\n\n _updateToggleText() {\n const selectedItems = this._getSelectedItems()\n\n if (selectedItems.length === 0) {\n this._showPlaceholder()\n return\n }\n\n this._valueDisplay.classList.remove(CLASS_NAME_PLACEHOLDER)\n\n if (this._config.multiple && selectedItems.length > 1) {\n this._valueDisplay.textContent = `${selectedItems.length} selected`\n } else {\n const item = selectedItems[0]\n const label = SelectorEngine.findOne('.menu-item-content > span:first-child', item)\n this._valueDisplay.textContent = label ? label.textContent : item.textContent.trim()\n }\n }\n\n _showPlaceholder() {\n const { placeholder } = this._config\n if (placeholder) {\n this._valueDisplay.textContent = placeholder\n this._valueDisplay.classList.add(CLASS_NAME_PLACEHOLDER)\n }\n }\n\n _updateHiddenInput() {\n if (!this._hiddenInput) {\n return\n }\n\n const selectedItems = this._getSelectedItems()\n const values = selectedItems.map(el => el.dataset.bsValue)\n this._hiddenInput.value = this._config.multiple ? values.join(',') : (values[0] || '')\n }\n\n _getSelectedItems() {\n return SelectorEngine.find(`.${CLASS_NAME_SELECTED}`, this._menu)\n }\n\n _getVisibleItems() {\n return SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu)\n .filter(item => isVisible(item))\n }\n\n _filterItems(query) {\n const normalizedQuery = this._normalizeText(query.toLowerCase().trim())\n const items = SelectorEngine.find(SELECTOR_MENU_ITEM, this._menu)\n let visibleCount = 0\n\n for (const item of items) {\n const text = this._normalizeText(item.textContent.toLowerCase().trim())\n const matches = !normalizedQuery || text.includes(normalizedQuery)\n item.style.display = matches ? '' : 'none'\n if (matches) {\n visibleCount++\n }\n }\n\n if (this._noResults) {\n this._noResults.classList.toggle('d-none', visibleCount > 0)\n }\n }\n\n _normalizeText(text) {\n if (this._config.searchNormalize) {\n return text.normalize('NFD').replace(/[\\u0300-\\u036F]/g, '')\n }\n\n return text\n }\n\n _handleToggleKeydown(event) {\n const { key } = event\n\n if (key === ARROW_DOWN_KEY || key === ARROW_UP_KEY) {\n event.preventDefault()\n if (!this._isShown()) {\n this.show()\n }\n\n const items = this._getVisibleItems()\n if (items.length > 0) {\n const target = key === ARROW_DOWN_KEY ? items[0] : items.at(-1)\n target.focus()\n }\n\n return\n }\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && !this._isShown()) {\n event.preventDefault()\n this.show()\n }\n }\n\n _handleMenuKeydown(event) {\n const { key, target } = event\n\n if (key === ESCAPE_KEY) {\n event.preventDefault()\n event.stopPropagation()\n this.hide()\n this._toggle.focus()\n return\n }\n\n if (key === TAB_KEY) {\n this.hide()\n return\n }\n\n const isInput = target.matches('input')\n\n if (key === ARROW_DOWN_KEY || key === ARROW_UP_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n return\n }\n\n if (key === HOME_KEY || key === END_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n const targetItem = key === HOME_KEY ? items[0] : items.at(-1)\n targetItem.focus()\n }\n\n return\n }\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && !isInput) {\n event.preventDefault()\n const item = target.closest(SELECTOR_MENU_ITEM)\n if (item && !isDisabled(item)) {\n this._selectItem(item)\n }\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Combobox.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Combobox.getOrCreateInstance(this).toggle()\n})\n\nEventHandler.on(document, 'DOMContentLoaded', () => {\n for (const toggle of SelectorEngine.find(SELECTOR_DATA_TOGGLE)) {\n Combobox.getOrCreateInstance(toggle)\n }\n})\n\nexport default Combobox\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap datepicker.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { Calendar } from 'vanilla-calendar-pro'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { isDisabled } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'datepicker'\nconst DATA_KEY = 'bs.datepicker'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUSIN_DATA_API = `focusin${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"datepicker\"]'\n\nconst HIDE_DELAY = 100 // ms delay before hiding after selection\n\nconst Default = {\n datepickerTheme: null, // 'light', 'dark', 'auto' - explicit theme for datepicker popover only\n dateMin: null,\n dateMax: null,\n dateFormat: null, // Intl.DateTimeFormat options, or function(date, locale) => string\n displayElement: null, // Element to show formatted date (defaults to element for buttons)\n displayMonthsCount: 1, // Number of months to display side-by-side\n firstWeekday: 1, // Monday\n inline: false, // Render calendar inline (no popup)\n locale: 'default',\n positionElement: null, // Element to position calendar relative to (defaults to input)\n selectedDates: [],\n selectionMode: 'single', // 'single', 'multiple', 'multiple-ranged'\n placement: 'left', // 'left', 'center', 'right', 'auto'\n vcpOptions: {} // Pass-through for any VCP option\n}\n\nconst DefaultType = {\n datepickerTheme: '(null|string)',\n dateMin: '(null|string|number|object)',\n dateMax: '(null|string|number|object)',\n dateFormat: '(null|object|function)',\n displayElement: '(null|string|element|boolean)',\n displayMonthsCount: 'number',\n firstWeekday: 'number',\n inline: 'boolean',\n locale: 'string',\n positionElement: '(null|string|element)',\n selectedDates: 'array',\n selectionMode: 'string',\n placement: 'string',\n vcpOptions: 'object'\n}\n\n/**\n * Class definition\n */\n\nclass Datepicker extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._calendar = null\n this._isShown = false\n\n this._initCalendar()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n return this._isShown ? this.hide() : this.show()\n }\n\n show() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n if (!this._calendar || isDisabled(this._element) || this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._calendar.show()\n this._isShown = true\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n hide() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n if (!this._calendar || !this._isShown) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._calendar.hide()\n this._isShown = false\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n dispose() {\n if (this._themeObserver) {\n this._themeObserver.disconnect()\n this._themeObserver = null\n }\n\n if (this._calendar) {\n this._calendar.destroy()\n }\n\n this._calendar = null\n super.dispose()\n }\n\n getSelectedDates() {\n const dates = this._calendar?.context?.selectedDates\n return dates ? [...dates] : []\n }\n\n setSelectedDates(dates) {\n if (this._calendar) {\n this._calendar.set({ selectedDates: dates })\n }\n }\n\n // Private\n _initCalendar() {\n this._isInput = this._element.tagName === 'INPUT'\n this._isInline = this._config.inline\n\n // For inline mode, look for a hidden input child to bind to\n if (this._isInline && !this._isInput) {\n this._boundInput = this._element.querySelector('input[type=\"hidden\"], input[name]')\n }\n\n this._positionElement = this._resolvePositionElement()\n this._displayElement = this._resolveDisplayElement()\n\n const calendarOptions = this._buildCalendarOptions()\n\n // Create calendar on the position element (for correct popup positioning)\n // but value updates still go to this._element (the input)\n this._calendar = new Calendar(this._positionElement, calendarOptions)\n this._calendar.init()\n\n // Watch for theme changes on ancestor elements (for live theme switching)\n this._setupThemeObserver()\n\n // Set initial value if input has a value\n if (this._isInput && this._element.value) {\n this._parseInputValue()\n }\n\n // Populate input/display with preselected dates\n this._updateDisplayWithSelectedDates()\n }\n\n _updateDisplayWithSelectedDates() {\n const { selectedDates } = this._config\n if (!selectedDates || selectedDates.length === 0) {\n return\n }\n\n const formattedDate = this._formatDateForInput(selectedDates)\n\n if (this._isInput) {\n this._element.value = formattedDate\n }\n\n if (this._boundInput) {\n this._boundInput.value = selectedDates.join(',')\n }\n\n if (this._displayElement) {\n this._displayElement.textContent = formattedDate\n }\n }\n\n _resolvePositionElement() {\n let { positionElement } = this._config\n\n if (typeof positionElement === 'string') {\n positionElement = document.querySelector(positionElement)\n }\n\n // Use input's parent if in form-adorn\n if (!positionElement && this._isInput && !this._isInline) {\n const parent = this._element.closest('.form-adorn')\n if (parent) {\n positionElement = parent\n }\n }\n\n return positionElement || this._element\n }\n\n _resolveDisplayElement() {\n const { displayElement } = this._config\n\n if (typeof displayElement === 'string') {\n return document.querySelector(displayElement)\n }\n\n // For buttons/non-inputs (not inline), look for a [data-bs-datepicker-display] child\n if (displayElement === true || (displayElement === null && !this._isInput && !this._isInline)) {\n const displayChild = this._element.querySelector('[data-bs-datepicker-display]')\n return displayChild || this._element\n }\n\n return displayElement\n }\n\n _getThemeAncestor() {\n return this._element.closest('[data-bs-theme]')\n }\n\n _getEffectiveTheme() {\n // Priority: explicit datepickerTheme config > inherited from ancestor > none\n const { datepickerTheme } = this._config\n if (datepickerTheme) {\n return datepickerTheme\n }\n\n const ancestor = this._getThemeAncestor()\n return ancestor?.getAttribute('data-bs-theme') || null\n }\n\n _syncThemeAttribute(element) {\n if (!element) {\n return\n }\n\n const theme = this._getEffectiveTheme()\n\n if (theme) {\n // Copy theme to popover (needed because VCP appends to body, breaking CSS inheritance)\n element.setAttribute('data-bs-theme', theme)\n } else {\n // No theme - remove attribute to allow natural inheritance\n element.removeAttribute('data-bs-theme')\n }\n }\n\n _setupThemeObserver() {\n // Watch for theme changes on ancestor elements\n const ancestor = this._getThemeAncestor()\n if (!ancestor || this._config.datepickerTheme) {\n // No ancestor to watch, or explicit datepickerTheme overrides\n return\n }\n\n this._themeObserver = new MutationObserver(() => {\n this._syncThemeAttribute(this._calendar?.context?.mainElement)\n })\n\n this._themeObserver.observe(ancestor, {\n attributes: true,\n attributeFilter: ['data-bs-theme']\n })\n }\n\n _buildCalendarOptions() {\n // Get theme for VCP - use 'system' for auto-detection if no explicit theme\n const theme = this._getEffectiveTheme()\n // VCP uses 'system' for auto, Bootstrap uses 'auto'\n const vcpTheme = !theme || theme === 'auto' ? 'system' : theme\n\n const calendarOptions = {\n ...this._config.vcpOptions,\n inputMode: !this._isInline,\n positionToInput: this._config.placement,\n firstWeekday: this._config.firstWeekday,\n locale: this._config.locale,\n selectionDatesMode: this._config.selectionMode,\n selectedDates: this._config.selectedDates,\n displayMonthsCount: this._config.displayMonthsCount,\n type: this._config.displayMonthsCount > 1 ? 'multiple' : 'default',\n selectedTheme: vcpTheme,\n themeAttrDetect: '[data-bs-theme]',\n onClickDate: (self, event) => this._handleDateClick(self, event),\n onInit: self => {\n this._syncThemeAttribute(self.context.mainElement)\n },\n onShow: () => {\n this._isShown = true\n this._syncThemeAttribute(this._calendar.context.mainElement)\n },\n onHide: () => {\n this._isShown = false\n }\n }\n\n // Navigate to the month of the first selected date\n if (this._config.selectedDates.length > 0) {\n const firstDate = this._parseDate(this._config.selectedDates[0])\n calendarOptions.selectedMonth = firstDate.getMonth()\n calendarOptions.selectedYear = firstDate.getFullYear()\n }\n\n if (this._config.dateMin) {\n calendarOptions.dateMin = this._config.dateMin\n }\n\n if (this._config.dateMax) {\n calendarOptions.dateMax = this._config.dateMax\n }\n\n return calendarOptions\n }\n\n _handleDateClick(self, event) {\n const selectedDates = [...self.context.selectedDates]\n\n if (selectedDates.length > 0) {\n const formattedDate = this._formatDateForInput(selectedDates)\n\n if (this._isInput) {\n this._element.value = formattedDate\n }\n\n if (this._boundInput) {\n this._boundInput.value = selectedDates.join(',')\n }\n\n if (this._displayElement) {\n this._displayElement.textContent = formattedDate\n }\n }\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n dates: selectedDates,\n event\n })\n\n this._maybeHideAfterSelection(selectedDates)\n }\n\n _maybeHideAfterSelection(selectedDates) {\n if (this._isInline) {\n return\n }\n\n const shouldHide =\n (this._config.selectionMode === 'single' && selectedDates.length > 0) ||\n (this._config.selectionMode === 'multiple-ranged' && selectedDates.length >= 2)\n\n if (shouldHide) {\n setTimeout(() => this.hide(), HIDE_DELAY)\n }\n }\n\n _parseDate(dateStr) {\n const [year, month, day] = dateStr.split('-')\n return new Date(year, month - 1, day)\n }\n\n _formatDate(dateStr) {\n const date = this._parseDate(dateStr)\n const locale = this._config.locale === 'default' ? undefined : this._config.locale\n const { dateFormat } = this._config\n\n // Custom function formatter\n if (typeof dateFormat === 'function') {\n return dateFormat(date, locale)\n }\n\n // Intl.DateTimeFormat options object\n if (dateFormat && typeof dateFormat === 'object') {\n return new Intl.DateTimeFormat(locale, dateFormat).format(date)\n }\n\n // Default: locale-aware formatting\n return date.toLocaleDateString(locale)\n }\n\n _formatDateForInput(dates) {\n if (dates.length === 0) {\n return ''\n }\n\n if (dates.length === 1) {\n return this._formatDate(dates[0])\n }\n\n // For date ranges, use en-dash; for multiple dates, use comma\n const separator = this._config.selectionMode === 'multiple-ranged' ? ' – ' : ', '\n return dates.map(d => this._formatDate(d)).join(separator)\n }\n\n _parseInputValue() {\n // Try to parse the input value as a date\n const value = this._element.value.trim()\n if (!value) {\n return\n }\n\n const date = new Date(value)\n if (!Number.isNaN(date.getTime())) {\n const year = date.getFullYear()\n const month = String(date.getMonth() + 1).padStart(2, '0')\n const day = String(date.getDate()).padStart(2, '0')\n const formatted = `${year}-${month}-${day}`\n this._calendar.set({ selectedDates: [formatted] })\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // Only handle if not an input (inputs use focus)\n // Skip inline datepickers (they're always visible)\n if (this.tagName === 'INPUT' || this.dataset.bsInline === 'true') {\n return\n }\n\n event.preventDefault()\n Datepicker.getOrCreateInstance(this).toggle()\n})\n\nEventHandler.on(document, EVENT_FOCUSIN_DATA_API, SELECTOR_DATA_TOGGLE, function () {\n // Handle focus for input elements\n if (this.tagName !== 'INPUT') {\n return\n }\n\n Datepicker.getOrCreateInstance(this).show()\n})\n\n// Auto-initialize inline datepickers on DOMContentLoaded\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of document.querySelectorAll(`${SELECTOR_DATA_TOGGLE}[data-bs-inline=\"true\"]`)) {\n Datepicker.getOrCreateInstance(element)\n }\n})\n\nexport default Datepicker\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dialog-base.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst CLASS_NAME_OPEN = 'dialog-open'\n\n/**\n * Class definition\n *\n * Shared base class for Dialog and Drawer components that use\n * the native <dialog> element. Provides common behavior for:\n * - Show/hide/toggle lifecycle with events\n * - Opening/closing via showModal()/show()/close()\n * - Escape key handling (modal and non-modal)\n * - Backdrop click handling\n * - Static backdrop transition (\"bounce\")\n * - Body scroll prevention\n * - Transition coordination\n * - Child component cleanup (tooltips, popovers, toasts)\n */\n\nclass DialogBase extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._openedAsModal = false\n this._addDialogListeners()\n }\n\n // Getters — subclasses override NAME with their own component name.\n static get NAME() {\n return 'dialogbase'\n }\n\n // Public — shared lifecycle methods\n\n toggle(relatedTarget) {\n return this._element.open ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._element.open || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('show'),\n { relatedTarget }\n )\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isTransitioning = true\n this._onBeforeShow()\n\n const { modal, preventBodyScroll } = this._getShowOptions()\n this._showElement({ modal, preventBodyScroll })\n\n this._queueCallback(() => {\n this._isTransitioning = false\n EventHandler.trigger(\n this._element,\n this.constructor.eventName('shown'),\n { relatedTarget }\n )\n }, this._element, this._isAnimated())\n }\n\n hide() {\n if (!this._element.open || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('hide')\n )\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isTransitioning = true\n this._hideElement()\n\n this._queueCallback(() => {\n // For subclasses that defer close() until the exit transition ends\n // (so the dialog stays in the top layer with its ::backdrop), close()\n // happens here instead of in _hideElement().\n if (this._element.open) {\n this._closeAndCleanup()\n }\n\n this._element.classList.remove('hiding')\n this._onAfterHide()\n this._isTransitioning = false\n EventHandler.trigger(\n this._element,\n this.constructor.eventName('hidden')\n )\n }, this._element, this._isAnimated())\n }\n\n // Protected — hooks for subclasses to override\n\n _getShowOptions() {\n return { modal: true, preventBodyScroll: true }\n }\n\n _onBeforeShow() {\n // No-op by default — Dialog overrides to add nonmodal class\n }\n\n _onAfterHide() {\n // No-op by default — Dialog overrides to remove nonmodal class\n }\n\n _isAnimated() {\n return !this._element.classList.contains(this._getInstantClassName())\n }\n\n _getInstantClassName() {\n return 'dialog-instant'\n }\n\n _getStaticClassName() {\n return 'dialog-static'\n }\n\n _onCancel() {\n // No-op by default — Dialog overrides to fire cancel event\n }\n\n // Protected — shared mechanics\n\n _showElement({ modal = true, preventBodyScroll = true } = {}) {\n this._openedAsModal = modal\n\n if (modal) {\n this._element.showModal()\n } else {\n this._element.show()\n }\n\n if (preventBodyScroll) {\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n }\n\n _hideElement() {\n this._hideChildComponents()\n\n // Add .hiding before close() so CSS exit transitions can play.\n // Without this, the navbar's `:not([open])` transition-kill rule\n // would prevent the slide-out animation.\n this._element.classList.add('hiding')\n\n // Subclasses can defer close() until after the exit transition by\n // returning true from _shouldDeferClose(). This is needed for the\n // native modal <dialog> centered case: close() removes the dialog\n // from the top layer immediately, which strips its auto-centering\n // and the ::backdrop, breaking the exit animation.\n if (!this._shouldDeferClose()) {\n this._closeAndCleanup()\n }\n }\n\n // Closes the native <dialog> and tears down body-scroll prevention.\n // Safe to call multiple times — close() is a no-op on a closed dialog.\n _closeAndCleanup() {\n this._element.close()\n this._openedAsModal = false\n\n // Only restore body scroll if no other modal dialogs are open\n if (!document.querySelector('dialog[open]:modal')) {\n document.body.classList.remove(CLASS_NAME_OPEN)\n }\n }\n\n // Hook: return true to keep the dialog in the top layer (i.e., delay\n // calling close()) until the exit transition completes. The base class\n // closes synchronously; Dialog overrides this for animated modal cases.\n _shouldDeferClose() {\n return false\n }\n\n _triggerBackdropTransition() {\n const hidePreventedEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('hidePrevented')\n )\n\n if (hidePreventedEvent.defaultPrevented) {\n return\n }\n\n const staticClass = this._getStaticClassName()\n this._element.classList.add(staticClass)\n this._queueCallback(() => {\n this._element.classList.remove(staticClass)\n }, this._element)\n }\n\n // Hide any tooltips, popovers, or toasts inside the dialog before closing.\n // These components append to the dialog (for top-layer rendering) and would\n // otherwise persist visibly after close().\n _hideChildComponents() {\n const selector = '[data-bs-toggle=\"tooltip\"], [data-bs-toggle=\"popover\"]'\n\n for (const el of SelectorEngine.find(selector, this._element)) {\n const instance = Data.getAny(el)\n if (instance && typeof instance.hide === 'function') {\n instance.hide()\n }\n }\n\n // Hide any visible toasts\n for (const el of SelectorEngine.find('.toast.show', this._element)) {\n const instance = Data.getAny(el)\n if (instance && typeof instance.hide === 'function') {\n instance.hide()\n }\n }\n }\n\n // Private\n\n _addDialogListeners() {\n const eventKey = this.constructor.EVENT_KEY\n\n // Handle native cancel event (Escape key) — only fires for modal dialogs\n EventHandler.on(this._element, 'cancel', event => {\n event.preventDefault()\n\n if (!this._config.keyboard) {\n this._triggerBackdropTransition()\n return\n }\n\n this._onCancel()\n this.hide()\n })\n\n // Handle Escape key for non-modal dialogs (native cancel doesn't fire for show())\n EventHandler.on(this._element, `keydown${eventKey}`, event => {\n if (event.key !== 'Escape' || this._openedAsModal) {\n return\n }\n\n event.preventDefault()\n\n if (!this._config.keyboard) {\n return\n }\n\n this._onCancel()\n this.hide()\n })\n\n // Handle backdrop clicks — only applies to modal dialogs\n EventHandler.on(this._element, `click${eventKey}`, event => {\n if (event.target !== this._element || !this._openedAsModal) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n return\n }\n\n this.hide()\n })\n }\n}\n\nexport default DialogBase\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dialog.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport DialogBase from './dialog-base.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'dialog'\nconst DATA_KEY = 'bs.dialog'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CANCEL = `cancel${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_NONMODAL = 'dialog-nonmodal'\nconst CLASS_NAME_INSTANT = 'dialog-instant'\nconst CLASS_NAME_SWAP_IN = 'dialog-swap-in'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dialog\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n modal: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n modal: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Dialog extends DialogBase {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n handleUpdate() {\n // Provided for API consistency with Modal.\n }\n\n // Protected — hook overrides\n\n _getShowOptions() {\n return {\n modal: this._config.modal,\n preventBodyScroll: this._config.modal\n }\n }\n\n _onBeforeShow() {\n if (!this._config.modal) {\n this._element.classList.add(CLASS_NAME_NONMODAL)\n }\n }\n\n _onAfterHide() {\n this._element.classList.remove(CLASS_NAME_NONMODAL)\n }\n\n // Keep the dialog in the top layer until the exit transition ends. This\n // preserves the browser's modal centering and the native ::backdrop, both\n // of which disappear synchronously the moment close() is called. Without\n // this, the dialog would jump to the top of the page and the backdrop\n // blur would vanish instantly while the dialog faded — making the exit\n // animation appear to skip entirely.\n _shouldDeferClose() {\n return this._isAnimated()\n }\n\n _onCancel() {\n EventHandler.trigger(this._element, EVENT_CANCEL)\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n // Get config from trigger's data attributes\n const config = Manipulator.getDataAttributes(this)\n\n // Check if trigger is inside an open dialog (dialog swapping)\n const currentDialog = this.closest('dialog[open]')\n const shouldSwap = currentDialog && currentDialog !== target\n\n if (shouldSwap) {\n // Swap strategy (seamless backdrop, no flash):\n // 1. Mark the incoming dialog with .dialog-swap-in so its ::backdrop\n // skips the @starting-style fade-in and appears fully opaque on\n // its very first frame in the top layer.\n // 2. Open the incoming dialog (showModal).\n // 3. Close the outgoing dialog synchronously — no exit transition, no\n // .hiding — so its ::backdrop is removed in the same frame the\n // incoming dialog's backdrop appears. Since both backdrops render\n // the same color, the user sees one continuous backdrop. Two\n // simultaneously-visible backdrops would composite to ~75% darker,\n // and a fading-out + fading-in pair would dip to ~75% opacity —\n // either would look like a flash.\n // 4. Clean up the .dialog-swap-in flag once the incoming dialog\n // finishes its entry transition.\n const newDialog = Dialog.getOrCreateInstance(target, config)\n target.classList.add(CLASS_NAME_SWAP_IN)\n newDialog.show(this)\n EventHandler.one(target, `shown${EVENT_KEY}`, () => {\n target.classList.remove(CLASS_NAME_SWAP_IN)\n })\n\n const currentInstance = Dialog.getInstance(currentDialog)\n if (currentInstance) {\n // Force synchronous close: .dialog-instant makes _isAnimated() false,\n // which makes _shouldDeferClose() false, so hide() calls close()\n // immediately (no deferred .hiding path). The class is removed after\n // the (now-synchronous) hidden event fires.\n currentDialog.classList.add(CLASS_NAME_INSTANT)\n EventHandler.one(currentDialog, EVENT_HIDDEN, () => {\n currentDialog.classList.remove(CLASS_NAME_INSTANT)\n })\n currentInstance.hide()\n }\n\n return\n }\n\n const data = Dialog.getOrCreateInstance(target, config)\n data.toggle(this)\n})\n\nenableDismissTrigger(Dialog)\n\nexport default Dialog\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap nav-overflow.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'navoverflow'\nconst DATA_KEY = 'bs.navoverflow'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_UPDATE = `update${EVENT_KEY}`\nconst EVENT_OVERFLOW = `overflow${EVENT_KEY}`\n\nconst CLASS_NAME_OVERFLOW = 'nav-overflow'\nconst CLASS_NAME_OVERFLOW_MENU = 'nav-overflow-menu'\nconst CLASS_NAME_HIDDEN = 'd-none'\n\nconst SELECTOR_NAV_ITEM = '.nav-item'\nconst SELECTOR_NAV_LINK = '.nav-link'\nconst SELECTOR_OVERFLOW_TOGGLE = '.nav-overflow-toggle'\nconst SELECTOR_OVERFLOW_MENU = '.nav-overflow-menu'\nconst SELECTOR_CUSTOM_ICON = '[data-bs-overflow-icon]'\nconst CLASS_NAME_KEEP = 'nav-overflow-keep'\n\nconst Default = {\n collapseBelow: 0,\n iconPlacement: 'start',\n menuPlacement: 'bottom-end',\n moreText: 'More',\n moreIcon: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" viewBox=\"0 0 16 16\"><path d=\"M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3\"/></svg>',\n threshold: 0 // Minimum items to keep visible before showing overflow\n}\n\nconst DefaultType = {\n collapseBelow: '(number|string)',\n iconPlacement: 'string',\n menuPlacement: 'string',\n moreText: 'string',\n moreIcon: 'string',\n threshold: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass NavOverflow extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._items = []\n this._overflowItems = []\n this._overflowMenu = null\n this._overflowToggle = null\n this._resizeObserver = null\n this._collapseBelow = 0\n this._isInitialized = false\n\n this._init()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n update() {\n this._calculateOverflow()\n EventHandler.trigger(this._element, EVENT_UPDATE)\n }\n\n dispose() {\n if (this._resizeObserver) {\n this._resizeObserver.disconnect()\n }\n\n // Move items back to original positions\n this._restoreItems()\n\n // Remove overflow menu\n if (this._overflowToggle && this._overflowToggle.parentElement) {\n this._overflowToggle.parentElement.remove()\n }\n\n super.dispose()\n }\n\n // Private\n _init() {\n // Add overflow class to nav\n this._element.classList.add(CLASS_NAME_OVERFLOW)\n\n // Get all nav items\n this._items = [...SelectorEngine.find(SELECTOR_NAV_ITEM, this._element)]\n\n // Store original order data\n for (const [index, item] of this._items.entries()) {\n item.dataset.bsNavOrder = index\n }\n\n // Resolve collapseBelow threshold once\n this._collapseBelow = this._resolveCollapseBelow()\n\n // Create overflow menu if it doesn't exist\n this._createOverflowMenu()\n\n // Setup resize observer\n this._setupResizeObserver()\n\n // Initial calculation\n this._calculateOverflow()\n\n this._isInitialized = true\n }\n\n _createOverflowMenu() {\n // Check if overflow menu already exists\n this._overflowToggle = SelectorEngine.findOne(SELECTOR_OVERFLOW_TOGGLE, this._element)\n\n if (this._overflowToggle) {\n this._overflowMenu = SelectorEngine.findOne(SELECTOR_OVERFLOW_MENU, this._element)\n return\n }\n\n const iconHtml = this._resolveIcon()\n const iconSpan = `<span class=\"nav-overflow-icon\">${iconHtml}</span>`\n const textSpan = `<span class=\"nav-overflow-text\">${this._config.moreText}</span>`\n const toggleContent = this._config.iconPlacement === 'end' ?\n `${textSpan}${iconSpan}` :\n `${iconSpan}${textSpan}`\n\n const overflowItem = document.createElement('li')\n overflowItem.className = 'nav-item nav-overflow-item'\n overflowItem.innerHTML = `\n <button class=\"nav-link nav-overflow-toggle\" type=\"button\" data-bs-toggle=\"menu\" data-bs-placement=\"${this._config.menuPlacement}\" aria-expanded=\"false\">\n ${toggleContent}\n </button>\n <div class=\"${CLASS_NAME_OVERFLOW_MENU} menu\"></div>\n `\n\n this._element.append(overflowItem)\n this._overflowToggle = overflowItem.querySelector(SELECTOR_OVERFLOW_TOGGLE)\n this._overflowMenu = overflowItem.querySelector(SELECTOR_OVERFLOW_MENU)\n }\n\n _resolveIcon() {\n const customIconElement = SelectorEngine.findOne(SELECTOR_CUSTOM_ICON, this._element)\n\n if (!customIconElement) {\n return this._config.moreIcon\n }\n\n const iconClone = customIconElement.cloneNode(true)\n iconClone.removeAttribute('data-bs-overflow-icon')\n const iconHtml = iconClone.outerHTML\n\n customIconElement.remove()\n\n return iconHtml\n }\n\n _resolveCollapseBelow() {\n const value = this._config.collapseBelow\n\n if (typeof value === 'number') {\n return value\n }\n\n if (typeof value === 'string' && value !== '') {\n const cssValue = getComputedStyle(document.documentElement)\n .getPropertyValue(`--bs-breakpoint-${value}`)\n return Number.parseFloat(cssValue) || 0\n }\n\n return 0\n }\n\n _setupResizeObserver() {\n if (typeof ResizeObserver === 'undefined') {\n // Fallback for older browsers\n EventHandler.on(window, 'resize', () => this._calculateOverflow())\n return\n }\n\n this._resizeObserver = new ResizeObserver(() => {\n this._calculateOverflow()\n })\n\n this._resizeObserver.observe(this._element)\n }\n\n _calculateOverflow() {\n // First, restore all items to measure properly\n this._restoreItems()\n\n const navWidth = this._element.offsetWidth\n const overflowItem = this._overflowToggle?.closest('.nav-item')\n\n // When below the collapseBelow threshold, force all items into overflow\n if (this._collapseBelow > 0 && navWidth < this._collapseBelow) {\n const itemsToOverflow = this._items.filter(\n item => !item.classList.contains(CLASS_NAME_KEEP)\n )\n\n this._moveToOverflow(itemsToOverflow)\n\n if (overflowItem) {\n if (itemsToOverflow.length > 0) {\n overflowItem.classList.remove(CLASS_NAME_HIDDEN)\n } else {\n overflowItem.classList.add(CLASS_NAME_HIDDEN)\n }\n }\n\n if (itemsToOverflow.length > 0) {\n EventHandler.trigger(this._element, EVENT_OVERFLOW, {\n overflowCount: itemsToOverflow.length,\n visibleCount: this._items.length - itemsToOverflow.length\n })\n }\n\n return\n }\n\n const overflowWidth = overflowItem?.offsetWidth || 0\n\n // Keep items are always visible; subtract their widths so the threshold\n // reflects actual available space for non-keep items.\n const keepWidth = this._items\n .filter(item => item.classList.contains(CLASS_NAME_KEEP))\n .reduce((sum, item) => sum + item.offsetWidth, 0)\n\n let usedWidth = 0\n const itemsToOverflow = []\n const overflowThreshold = navWidth - overflowWidth - keepWidth - 10 // 10px buffer\n\n // Calculate which items need to overflow (skip items with keep class)\n for (const item of this._items) {\n // Never overflow items with the keep class\n if (item.classList.contains(CLASS_NAME_KEEP)) {\n continue\n }\n\n usedWidth += item.offsetWidth\n\n if (usedWidth > overflowThreshold) {\n itemsToOverflow.push(item)\n }\n }\n\n // Check if we need threshold minimum visible\n const visibleCount = this._items.length - itemsToOverflow.length\n if (visibleCount < this._config.threshold && this._items.length > this._config.threshold) {\n // Add more items to overflow until we reach threshold (but not keep items)\n const toMove = this._items.slice(this._config.threshold).filter(item => !item.classList.contains(CLASS_NAME_KEEP))\n itemsToOverflow.length = 0\n itemsToOverflow.push(...toMove)\n }\n\n // Move items to overflow menu\n this._moveToOverflow(itemsToOverflow)\n\n // Show/hide overflow toggle\n if (overflowItem) {\n if (itemsToOverflow.length > 0) {\n overflowItem.classList.remove(CLASS_NAME_HIDDEN)\n } else {\n overflowItem.classList.add(CLASS_NAME_HIDDEN)\n }\n }\n\n // Trigger overflow event if items changed\n if (itemsToOverflow.length > 0) {\n EventHandler.trigger(this._element, EVENT_OVERFLOW, {\n overflowCount: itemsToOverflow.length,\n visibleCount: this._items.length - itemsToOverflow.length\n })\n }\n }\n\n _moveToOverflow(items) {\n if (!this._overflowMenu) {\n return\n }\n\n // Clear existing overflow items\n this._overflowMenu.innerHTML = ''\n this._overflowItems = []\n\n for (const item of items) {\n const link = SelectorEngine.findOne(SELECTOR_NAV_LINK, item)\n if (!link) {\n continue\n }\n\n const clonedLink = link.cloneNode(true)\n clonedLink.className = 'menu-item'\n\n if (link.classList.contains('active')) {\n clonedLink.classList.add('active')\n }\n\n if (link.classList.contains('disabled') || link.hasAttribute('disabled')) {\n clonedLink.classList.add('disabled')\n }\n\n this._overflowMenu.append(clonedLink)\n\n // Hide original item\n item.classList.add(CLASS_NAME_HIDDEN)\n item.dataset.bsNavOverflow = 'true'\n\n this._overflowItems.push(item)\n }\n }\n\n _restoreItems() {\n for (const item of this._items) {\n item.classList.remove(CLASS_NAME_HIDDEN)\n delete item.dataset.bsNavOverflow\n }\n\n if (this._overflowMenu) {\n this._overflowMenu.innerHTML = ''\n }\n\n this._overflowItems = []\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, 'DOMContentLoaded', () => {\n for (const element of SelectorEngine.find('[data-bs-toggle=\"nav-overflow\"]')) {\n NavOverflow.getOrCreateInstance(element)\n }\n})\n\nexport default NavOverflow\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap drawer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport DialogBase from './dialog-base.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Swipe from './util/swipe.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport {\n isDisabled,\n isRTL,\n isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'drawer'\nconst DATA_KEY = 'bs.drawer'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"drawer\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Drawer extends DialogBase {\n constructor(element, config) {\n super(element, config)\n this._swipeHelper = null\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Protected — hook overrides\n\n _getShowOptions() {\n const useModal = Boolean(this._config.backdrop) || !this._config.scroll\n return {\n modal: useModal,\n preventBodyScroll: !this._config.scroll\n }\n }\n\n _onBeforeShow() {\n this._initSwipe()\n }\n\n _getInstantClassName() {\n return 'drawer-instant'\n }\n\n _getStaticClassName() {\n return 'drawer-static'\n }\n\n // Private\n\n _initSwipe() {\n if (this._swipeHelper || !Swipe.isSupported()) {\n return\n }\n\n // Determine which swipe direction dismisses based on placement\n const swipeConfig = {}\n const element = this._element\n\n if (element.classList.contains('drawer-bottom')) {\n swipeConfig.downCallback = () => this.hide()\n } else if (element.classList.contains('drawer-top')) {\n swipeConfig.upCallback = () => this.hide()\n } else if (element.classList.contains('drawer-end')) {\n // RTL: swipe left to dismiss end drawer\n if (isRTL()) {\n swipeConfig.leftCallback = () => this.hide()\n } else {\n swipeConfig.rightCallback = () => this.hide()\n }\n } else if (isRTL()) {\n // drawer-start (default): swipe right to dismiss in RTL\n swipeConfig.rightCallback = () => this.hide()\n } else {\n // drawer-start (default): swipe left to dismiss in LTR\n swipeConfig.leftCallback = () => this.hide()\n }\n\n this._swipeHelper = new Swipe(element, swipeConfig)\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n\n // Avoid conflict when clicking a toggler of a drawer, while another is open\n const alreadyOpen = SelectorEngine.findOne('dialog.drawer[open]')\n if (alreadyOpen && alreadyOpen !== target) {\n Drawer.getInstance(alreadyOpen).hide()\n }\n\n const data = Drawer.getOrCreateInstance(target)\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const selector of SelectorEngine.find('dialog.drawer[open]')) {\n Drawer.getOrCreateInstance(selector).show()\n }\n})\n\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('dialog[open][class*=\"\\\\:drawer\"]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Drawer.getOrCreateInstance(element).hide()\n }\n }\n})\n\nenableDismissTrigger(Drawer)\n\nexport default Drawer\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap strength.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'strength'\nconst DATA_KEY = 'bs.strength'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_STRENGTH_CHANGE = `strengthChange${EVENT_KEY}`\n\nconst SELECTOR_DATA_STRENGTH = '[data-bs-strength]'\n\nconst STRENGTH_LEVELS = ['weak', 'fair', 'good', 'strong']\n\nconst Default = {\n input: null, // Selector or element for password input\n minLength: 8,\n messages: {\n weak: 'Weak',\n fair: 'Fair',\n good: 'Good',\n strong: 'Strong'\n },\n weights: {\n minLength: 1,\n extraLength: 1,\n lowercase: 1,\n uppercase: 1,\n numbers: 1,\n special: 1,\n multipleSpecial: 1,\n longPassword: 1\n },\n thresholds: [2, 4, 6], // weak ≤2, fair ≤4, good ≤6, strong >6\n scorer: null // Custom scoring function (password) => number\n}\n\nconst DefaultType = {\n input: '(string|element|null)',\n minLength: 'number',\n messages: 'object',\n weights: 'object',\n thresholds: 'array',\n scorer: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Strength extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = this._getInput()\n this._segments = SelectorEngine.find('.strength-segment', this._element)\n this._textElement = SelectorEngine.findOne('.strength-text', this._element.parentElement)\n this._currentStrength = null\n\n if (this._input) {\n this._addEventListeners()\n // Check initial value\n this._evaluate()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getStrength() {\n return this._currentStrength\n }\n\n evaluate() {\n this._evaluate()\n }\n\n // Private\n _getInput() {\n if (this._config.input) {\n return typeof this._config.input === 'string' ?\n SelectorEngine.findOne(this._config.input) :\n this._config.input\n }\n\n // Look for preceding password input\n const parent = this._element.parentElement\n return SelectorEngine.findOne('input[type=\"password\"]', parent)\n }\n\n _addEventListeners() {\n EventHandler.on(this._input, 'input', () => this._evaluate())\n EventHandler.on(this._input, 'change', () => this._evaluate())\n }\n\n _evaluate() {\n const password = this._input.value\n const score = this._calculateScore(password)\n const strength = this._scoreToStrength(score)\n\n if (strength !== this._currentStrength) {\n this._currentStrength = strength\n this._updateUI(strength, score)\n\n EventHandler.trigger(this._element, EVENT_STRENGTH_CHANGE, {\n strength,\n score,\n password: password.length > 0 ? '***' : '' // Don't expose actual password\n })\n }\n }\n\n _calculateScore(password) {\n if (!password) {\n return 0\n }\n\n // Use custom scorer if provided\n if (typeof this._config.scorer === 'function') {\n return this._config.scorer(password)\n }\n\n const { weights } = this._config\n let score = 0\n\n // Length scoring\n if (password.length >= this._config.minLength) {\n score += weights.minLength\n }\n\n if (password.length >= this._config.minLength + 4) {\n score += weights.extraLength\n }\n\n // Character variety\n if (/[a-z]/.test(password)) {\n score += weights.lowercase\n }\n\n if (/[A-Z]/.test(password)) {\n score += weights.uppercase\n }\n\n if (/\\d/.test(password)) {\n score += weights.numbers\n }\n\n // Special characters\n if (/[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n score += weights.special\n }\n\n // Extra points for more special chars or length\n if (/[!@#$%^&*(),.?\":{}|<>].*[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n score += weights.multipleSpecial\n }\n\n if (password.length >= 16) {\n score += weights.longPassword\n }\n\n return score\n }\n\n _scoreToStrength(score) {\n if (score === 0) {\n return null\n }\n\n const [weak, fair, good] = this._config.thresholds\n\n if (score <= weak) {\n return 'weak'\n }\n\n if (score <= fair) {\n return 'fair'\n }\n\n if (score <= good) {\n return 'good'\n }\n\n return 'strong'\n }\n\n _updateUI(strength) {\n // Update data attribute on element\n if (strength) {\n this._element.dataset.bsStrength = strength\n } else {\n delete this._element.dataset.bsStrength\n }\n\n // Update segmented meter\n const strengthIndex = strength ? STRENGTH_LEVELS.indexOf(strength) : -1\n\n for (const [index, segment] of this._segments.entries()) {\n if (index <= strengthIndex) {\n segment.classList.add('active')\n } else {\n segment.classList.remove('active')\n }\n }\n\n // Update text feedback\n if (this._textElement) {\n if (strength && this._config.messages[strength]) {\n this._textElement.textContent = this._config.messages[strength]\n this._textElement.dataset.bsStrength = strength\n\n // Also set the color via inheriting from parent or using CSS variable\n const colorMap = {\n weak: 'danger',\n fair: 'warning',\n good: 'info',\n strong: 'success'\n }\n this._textElement.style.setProperty('--strength-color', `var(--${colorMap[strength]}-text)`)\n } else {\n this._textElement.textContent = ''\n delete this._textElement.dataset.bsStrength\n }\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_STRENGTH)) {\n Strength.getOrCreateInstance(element)\n }\n})\n\nexport default Strength\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap otp-input.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'otpInput'\nconst DATA_KEY = 'bs.otp-input'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_COMPLETE = `complete${EVENT_KEY}`\nconst EVENT_INPUT = `input${EVENT_KEY}`\n\nconst SELECTOR_DATA_OTP = '[data-bs-otp]'\nconst SELECTOR_INPUT = 'input'\n\nconst Default = {\n length: 6,\n mask: false\n}\n\nconst DefaultType = {\n length: 'number',\n mask: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass OtpInput extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._inputs = SelectorEngine.find(SELECTOR_INPUT, this._element)\n this._setupInputs()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getValue() {\n return this._inputs.map(input => input.value).join('')\n }\n\n setValue(value) {\n const chars = [...String(value)]\n for (const [index, input] of this._inputs.entries()) {\n input.value = chars[index] || ''\n }\n\n this._checkComplete()\n }\n\n clear() {\n for (const input of this._inputs) {\n input.value = ''\n }\n\n this._inputs[0]?.focus()\n }\n\n focus() {\n // Focus first empty input, or last input if all filled\n const emptyInput = this._inputs.find(input => !input.value)\n if (emptyInput) {\n emptyInput.focus()\n } else {\n this._inputs.at(-1)?.focus()\n }\n }\n\n // Private\n _setupInputs() {\n for (const input of this._inputs) {\n // Set attributes for proper OTP handling\n input.setAttribute('maxlength', '1')\n input.setAttribute('inputmode', 'numeric')\n input.setAttribute('pattern', '\\\\d*')\n\n // First input gets autocomplete for browser OTP autofill\n if (input === this._inputs[0]) {\n input.setAttribute('autocomplete', 'one-time-code')\n } else {\n input.setAttribute('autocomplete', 'off')\n }\n\n // Mask input if configured\n if (this._config.mask) {\n input.setAttribute('type', 'password')\n }\n }\n }\n\n _addEventListeners() {\n for (const [index, input] of this._inputs.entries()) {\n EventHandler.on(input, 'input', event => this._handleInput(event, index))\n EventHandler.on(input, 'keydown', event => this._handleKeydown(event, index))\n EventHandler.on(input, 'paste', event => this._handlePaste(event))\n EventHandler.on(input, 'focus', event => this._handleFocus(event))\n }\n }\n\n _handleInput(event, index) {\n const input = event.target\n\n // Only allow digits\n if (!/^\\d*$/.test(input.value)) {\n input.value = input.value.replace(/\\D/g, '')\n }\n\n const { value } = input\n\n // Handle multi-character input (some browsers/autofill)\n if (value.length > 1) {\n // Distribute characters across inputs\n const chars = [...value]\n input.value = chars[0] || ''\n\n for (let i = 1; i < chars.length && index + i < this._inputs.length; i++) {\n this._inputs[index + i].value = chars[i]\n }\n\n // Focus appropriate input\n const nextIndex = Math.min(index + chars.length, this._inputs.length - 1)\n this._inputs[nextIndex].focus()\n } else if (value && index < this._inputs.length - 1) {\n // Auto-advance to next input\n this._inputs[index + 1].focus()\n }\n\n EventHandler.trigger(this._element, EVENT_INPUT, {\n value: this.getValue(),\n index\n })\n\n this._checkComplete()\n }\n\n _handleKeydown(event, index) {\n const { key } = event\n\n switch (key) {\n case 'Backspace': {\n if (!this._inputs[index].value && index > 0) {\n // Move to previous input and clear it\n event.preventDefault()\n this._inputs[index - 1].value = ''\n this._inputs[index - 1].focus()\n }\n\n break\n }\n\n case 'Delete': {\n // Clear current and shift remaining values left\n event.preventDefault()\n for (let i = index; i < this._inputs.length - 1; i++) {\n this._inputs[i].value = this._inputs[i + 1].value\n }\n\n this._inputs.at(-1).value = ''\n break\n }\n\n case 'ArrowLeft': {\n if (index > 0) {\n event.preventDefault()\n this._inputs[index - 1].focus()\n }\n\n break\n }\n\n case 'ArrowRight': {\n if (index < this._inputs.length - 1) {\n event.preventDefault()\n this._inputs[index + 1].focus()\n }\n\n break\n }\n\n // No default\n }\n }\n\n _handlePaste(event) {\n event.preventDefault()\n const pastedData = (event.clipboardData || window.clipboardData).getData('text')\n const digits = pastedData.replace(/\\D/g, '').slice(0, this._inputs.length)\n\n if (digits) {\n this.setValue(digits)\n\n // Focus last filled input or last input\n const lastIndex = Math.min(digits.length, this._inputs.length) - 1\n this._inputs[lastIndex].focus()\n }\n }\n\n _handleFocus(event) {\n // Select the content on focus for easy replacement\n event.target.select()\n }\n\n _checkComplete() {\n const value = this.getValue()\n const isComplete = value.length === this._inputs.length &&\n this._inputs.every(input => input.value !== '')\n\n if (isComplete) {\n EventHandler.trigger(this._element, EVENT_COMPLETE, { value })\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_OTP)) {\n OtpInput.getOrCreateInstance(element)\n }\n})\n\nexport default OtpInput\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap chips.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'chips'\nconst DATA_KEY = 'bs.chips'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ADD = `add${EVENT_KEY}`\nconst EVENT_REMOVE = `remove${EVENT_KEY}`\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SELECT = `select${EVENT_KEY}`\n\nconst SELECTOR_DATA_CHIPS = '[data-bs-chips]'\nconst SELECTOR_GHOST_INPUT = '.form-ghost'\nconst SELECTOR_CHIP = '.chip'\nconst SELECTOR_CHIP_DISMISS = '.chip-dismiss'\n\nconst CLASS_NAME_CHIP = 'chip'\nconst CLASS_NAME_CHIP_DISMISS = 'chip-dismiss'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst DEFAULT_DISMISS_ICON = '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><line x1=\"4\" y1=\"4\" x2=\"12\" y2=\"12\"/><line x1=\"12\" y1=\"4\" x2=\"4\" y2=\"12\"/></svg>'\n\nconst Default = {\n separator: ',',\n allowDuplicates: false,\n maxChips: null,\n placeholder: '',\n dismissible: true,\n dismissIcon: DEFAULT_DISMISS_ICON,\n createOnBlur: true\n}\n\nconst DefaultType = {\n separator: '(string|null)',\n allowDuplicates: 'boolean',\n maxChips: '(number|null)',\n placeholder: 'string',\n dismissible: 'boolean',\n dismissIcon: 'string',\n createOnBlur: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Chips extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = SelectorEngine.findOne(SELECTOR_GHOST_INPUT, this._element)\n this._chips = []\n this._selectedChips = new Set()\n this._anchorChip = null // For shift+click range selection\n\n if (!this._input) {\n this._createInput()\n }\n\n this._initializeExistingChips()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n add(value) {\n const trimmedValue = String(value).trim()\n\n if (!trimmedValue) {\n return null\n }\n\n // Check for duplicates\n if (!this._config.allowDuplicates && this._chips.includes(trimmedValue)) {\n return null\n }\n\n // Check max chips limit\n if (this._config.maxChips !== null && this._chips.length >= this._config.maxChips) {\n return null\n }\n\n const addEvent = EventHandler.trigger(this._element, EVENT_ADD, {\n value: trimmedValue,\n relatedTarget: this._input\n })\n\n if (addEvent.defaultPrevented) {\n return null\n }\n\n const chip = this._createChip(trimmedValue)\n this._element.insertBefore(chip, this._input)\n this._chips.push(trimmedValue)\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: this.getValues()\n })\n\n return chip\n }\n\n remove(chipOrValue) {\n let chip\n let value\n\n if (typeof chipOrValue === 'string') {\n value = chipOrValue\n chip = this._findChipByValue(value)\n } else {\n chip = chipOrValue\n value = this._getChipValue(chip)\n }\n\n if (!chip || !value) {\n return false\n }\n\n const removeEvent = EventHandler.trigger(this._element, EVENT_REMOVE, {\n value,\n chip,\n relatedTarget: this._input\n })\n\n if (removeEvent.defaultPrevented) {\n return false\n }\n\n // Remove from selection\n this._selectedChips.delete(chip)\n if (this._anchorChip === chip) {\n this._anchorChip = null\n }\n\n // Remove from DOM and array\n chip.remove()\n this._chips = this._chips.filter(v => v !== value)\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: this.getValues()\n })\n\n return true\n }\n\n removeSelected() {\n const chipsToRemove = [...this._selectedChips]\n for (const chip of chipsToRemove) {\n this.remove(chip)\n }\n\n this._input?.focus()\n }\n\n getValues() {\n return [...this._chips]\n }\n\n getSelectedValues() {\n return [...this._selectedChips].map(chip => this._getChipValue(chip))\n }\n\n clear() {\n const chips = SelectorEngine.find(SELECTOR_CHIP, this._element)\n for (const chip of chips) {\n chip.remove()\n }\n\n this._chips = []\n this._selectedChips.clear()\n this._anchorChip = null\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: []\n })\n }\n\n clearSelection() {\n for (const chip of this._selectedChips) {\n chip.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n this._selectedChips.clear()\n this._anchorChip = null\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: []\n })\n }\n\n selectChip(chip, options = {}) {\n const { addToSelection = false, rangeSelect = false } = options\n const chipElements = this._getChipElements()\n\n if (!chipElements.includes(chip)) {\n return\n }\n\n if (rangeSelect && this._anchorChip) {\n // Range selection from anchor to chip\n const anchorIndex = chipElements.indexOf(this._anchorChip)\n const chipIndex = chipElements.indexOf(chip)\n const start = Math.min(anchorIndex, chipIndex)\n const end = Math.max(anchorIndex, chipIndex)\n\n if (!addToSelection) {\n this.clearSelection()\n }\n\n for (let i = start; i <= end; i++) {\n this._selectedChips.add(chipElements[i])\n chipElements[i].classList.add(CLASS_NAME_ACTIVE)\n }\n } else if (addToSelection) {\n // Toggle selection\n if (this._selectedChips.has(chip)) {\n this._selectedChips.delete(chip)\n chip.classList.remove(CLASS_NAME_ACTIVE)\n } else {\n this._selectedChips.add(chip)\n chip.classList.add(CLASS_NAME_ACTIVE)\n this._anchorChip = chip\n }\n } else {\n // Single selection\n this.clearSelection()\n this._selectedChips.add(chip)\n chip.classList.add(CLASS_NAME_ACTIVE)\n this._anchorChip = chip\n }\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: this.getSelectedValues()\n })\n }\n\n focus() {\n this._input?.focus()\n }\n\n // Private\n _getChipElements() {\n return SelectorEngine.find(SELECTOR_CHIP, this._element)\n }\n\n _createInput() {\n const input = document.createElement('input')\n input.type = 'text'\n input.className = 'form-ghost'\n if (this._config.placeholder) {\n input.placeholder = this._config.placeholder\n }\n\n this._element.append(input)\n this._input = input\n }\n\n _initializeExistingChips() {\n const existingChips = SelectorEngine.find(SELECTOR_CHIP, this._element)\n for (const chip of existingChips) {\n const value = this._getChipValue(chip)\n if (value) {\n this._chips.push(value)\n this._setupChip(chip)\n }\n }\n }\n\n _setupChip(chip) {\n // Make chip focusable\n chip.setAttribute('tabindex', '0')\n\n // Add dismiss button if needed\n if (this._config.dismissible && !SelectorEngine.findOne(SELECTOR_CHIP_DISMISS, chip)) {\n chip.append(this._createDismissButton())\n }\n }\n\n _createChip(value) {\n const chip = document.createElement('span')\n chip.className = CLASS_NAME_CHIP\n chip.dataset.bsChipValue = value\n\n // Add text node\n chip.append(document.createTextNode(value))\n\n // Setup chip (tabindex, dismiss button)\n this._setupChip(chip)\n\n return chip\n }\n\n _createDismissButton() {\n const button = document.createElement('button')\n button.type = 'button'\n button.className = CLASS_NAME_CHIP_DISMISS\n button.setAttribute('aria-label', 'Remove')\n button.setAttribute('tabindex', '-1') // Not in tab order, chips handle keyboard\n button.innerHTML = this._config.dismissIcon\n return button\n }\n\n _findChipByValue(value) {\n const chips = this._getChipElements()\n return chips.find(chip => this._getChipValue(chip) === value)\n }\n\n _getChipValue(chip) {\n if (chip.dataset.bsChipValue) {\n return chip.dataset.bsChipValue\n }\n\n const clone = chip.cloneNode(true)\n const dismiss = SelectorEngine.findOne(SELECTOR_CHIP_DISMISS, clone)\n if (dismiss) {\n dismiss.remove()\n }\n\n return clone.textContent?.trim() || ''\n }\n\n _addEventListeners() {\n // Input events\n EventHandler.on(this._input, 'keydown', event => this._handleInputKeydown(event))\n EventHandler.on(this._input, 'input', event => this._handleInput(event))\n EventHandler.on(this._input, 'paste', event => this._handlePaste(event))\n EventHandler.on(this._input, 'focus', () => this.clearSelection())\n\n if (this._config.createOnBlur) {\n EventHandler.on(this._input, 'blur', event => {\n // Don't create chip if clicking on a chip\n if (!event.relatedTarget?.closest(SELECTOR_CHIP)) {\n this._createChipFromInput()\n }\n })\n }\n\n // Chip click events (delegated)\n EventHandler.on(this._element, 'click', SELECTOR_CHIP, event => {\n // Ignore clicks on dismiss button\n if (event.target.closest(SELECTOR_CHIP_DISMISS)) {\n return\n }\n\n const chip = event.target.closest(SELECTOR_CHIP)\n if (chip) {\n event.preventDefault()\n this.selectChip(chip, {\n addToSelection: event.metaKey || event.ctrlKey,\n rangeSelect: event.shiftKey\n })\n chip.focus()\n }\n })\n\n // Dismiss button clicks (delegated)\n EventHandler.on(this._element, 'click', SELECTOR_CHIP_DISMISS, event => {\n event.stopPropagation()\n const chip = event.target.closest(SELECTOR_CHIP)\n if (chip) {\n this.remove(chip)\n this._input?.focus()\n }\n })\n\n // Chip keyboard events (delegated)\n EventHandler.on(this._element, 'keydown', SELECTOR_CHIP, event => {\n this._handleChipKeydown(event)\n })\n\n // Focus input when clicking container background\n EventHandler.on(this._element, 'click', event => {\n if (event.target === this._element) {\n this.clearSelection()\n this._input?.focus()\n }\n })\n }\n\n _handleInputKeydown(event) {\n const { key } = event\n\n switch (key) {\n case 'Enter': {\n event.preventDefault()\n this._createChipFromInput()\n break\n }\n\n case 'Backspace':\n case 'Delete': {\n if (this._input.value === '') {\n event.preventDefault()\n const chips = this._getChipElements()\n\n if (chips.length > 0) {\n // Select last chip and focus it\n const lastChip = chips.at(-1)\n this.selectChip(lastChip)\n lastChip.focus()\n }\n }\n\n break\n }\n\n case 'ArrowLeft': {\n if (this._input.selectionStart === 0 && this._input.selectionEnd === 0) {\n event.preventDefault()\n const chips = this._getChipElements()\n if (chips.length > 0) {\n const lastChip = chips.at(-1)\n if (event.shiftKey) {\n this.selectChip(lastChip, { addToSelection: true })\n } else {\n this.selectChip(lastChip)\n }\n\n lastChip.focus()\n }\n }\n\n break\n }\n\n case 'Escape': {\n this._input.value = ''\n this.clearSelection()\n this._input.blur()\n break\n }\n\n // No default\n }\n }\n\n _handleChipKeydown(event) {\n const { key } = event\n const chip = event.target.closest(SELECTOR_CHIP)\n if (!chip) {\n return\n }\n\n const chips = this._getChipElements()\n const currentIndex = chips.indexOf(chip)\n\n switch (key) {\n case 'Backspace':\n case 'Delete': {\n event.preventDefault()\n this._handleChipDelete(currentIndex, chips)\n break\n }\n\n case 'ArrowLeft': {\n event.preventDefault()\n this._navigateChip(chips, currentIndex, -1, event.shiftKey)\n break\n }\n\n case 'ArrowRight': {\n event.preventDefault()\n this._navigateChip(chips, currentIndex, 1, event.shiftKey)\n break\n }\n\n case 'Home': {\n event.preventDefault()\n this._navigateToEdge(chips, 0, event.shiftKey)\n break\n }\n\n case 'End': {\n event.preventDefault()\n this.clearSelection()\n this._input?.focus()\n break\n }\n\n case 'a': {\n this._handleSelectAll(event, chips)\n break\n }\n\n case 'Escape': {\n event.preventDefault()\n this.clearSelection()\n this._input?.focus()\n break\n }\n\n // No default\n }\n }\n\n _handleChipDelete(currentIndex, chips) {\n if (this._selectedChips.size === 0) {\n return\n }\n\n const nextIndex = Math.min(currentIndex, chips.length - this._selectedChips.size - 1)\n this.removeSelected()\n\n const remainingChips = this._getChipElements()\n if (remainingChips.length > 0) {\n const focusIndex = Math.max(0, Math.min(nextIndex, remainingChips.length - 1))\n remainingChips[focusIndex].focus()\n this.selectChip(remainingChips[focusIndex])\n } else {\n this._input?.focus()\n }\n }\n\n _navigateChip(chips, currentIndex, direction, shiftKey) {\n const targetIndex = currentIndex + direction\n\n if (direction < 0 && targetIndex >= 0) {\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { addToSelection: true, rangeSelect: true } : {})\n targetChip.focus()\n } else if (direction > 0 && targetIndex < chips.length) {\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { addToSelection: true, rangeSelect: true } : {})\n targetChip.focus()\n } else if (direction > 0) {\n this.clearSelection()\n this._input?.focus()\n }\n }\n\n _navigateToEdge(chips, targetIndex, shiftKey) {\n if (chips.length === 0) {\n return\n }\n\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { rangeSelect: true } : {})\n targetChip.focus()\n }\n\n _handleSelectAll(event, chips) {\n if (!(event.metaKey || event.ctrlKey)) {\n return\n }\n\n event.preventDefault()\n for (const c of chips) {\n this._selectedChips.add(c)\n c.classList.add(CLASS_NAME_ACTIVE)\n }\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: this.getSelectedValues()\n })\n }\n\n _handleInput(event) {\n const { value } = event.target\n const { separator } = this._config\n\n if (separator && value.includes(separator)) {\n const parts = value.split(separator)\n for (const part of parts.slice(0, -1)) {\n this.add(part.trim())\n }\n\n this._input.value = parts.at(-1)\n }\n }\n\n _handlePaste(event) {\n const { separator } = this._config\n if (!separator) {\n return\n }\n\n const pastedData = (event.clipboardData || window.clipboardData).getData('text')\n if (pastedData.includes(separator)) {\n event.preventDefault()\n\n const parts = pastedData.split(separator)\n for (const part of parts) {\n this.add(part.trim())\n }\n }\n }\n\n _createChipFromInput() {\n const value = this._input.value.trim()\n if (value) {\n this.add(value)\n this._input.value = ''\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_CHIPS)) {\n Chips.getOrCreateInstance(element)\n }\n})\n\nexport default Chips\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n// js-docs-end allow-list\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue))\n }\n\n return true\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n .some(regex => regex.test(attributeName))\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const elements = [...createdDocument.body.querySelectorAll('*')]\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n continue\n }\n\n const attributeList = [...element.attributes]\n const allowedAttributes = [...(allowList['*'] || []), ...(allowList[elementName] || [])]\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'\nimport { execute, getElement, isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'TemplateFactory'\n\nconst Default = {\n allowList: DefaultAllowlist,\n content: {}, // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '<div></div>'\n}\n\nconst DefaultType = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n}\n\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content)\n .map(config => this._resolvePossibleFunction(config))\n .filter(Boolean)\n }\n\n hasContent() {\n return this.getContent().length > 0\n }\n\n changeContent(content) {\n this._checkContent(content)\n this._config.content = { ...this._config.content, ...content }\n return this\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div')\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template)\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector)\n }\n\n const template = templateWrapper.children[0]\n const extraClass = this._resolvePossibleFunction(this._config.extraClass)\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '))\n }\n\n return template\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config)\n this._checkContent(config.content)\n }\n\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({ selector, entry: content }, DefaultContentType)\n }\n }\n\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template)\n\n if (!templateElement) {\n return\n }\n\n content = this._resolvePossibleFunction(content)\n\n if (!content) {\n templateElement.remove()\n return\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement)\n return\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content)\n return\n }\n\n templateElement.textContent = content\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [undefined, this])\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = ''\n templateElement.append(element)\n return\n }\n\n templateElement.textContent = element.textContent\n }\n}\n\nexport default TemplateFactory\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n computePosition,\n flip,\n shift,\n offset,\n arrow,\n autoUpdate\n} from '@floating-ui/dom'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport {\n execute, findShadowRoot, getElement, getUID, isRTL, noop\n} from './util/index.js'\nimport { DefaultAllowlist } from './util/sanitizer.js'\nimport TemplateFactory from './util/template-factory.js'\nimport {\n parseResponsivePlacement,\n getResponsivePlacement,\n createBreakpointListeners,\n disposeBreakpointListeners\n} from './util/floating-ui.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tooltip\"]'\n\nconst EVENT_MODAL_HIDE = 'hide.bs.modal'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\nconst EVENT_HIDE = 'hide'\nconst EVENT_HIDDEN = 'hidden'\nconst EVENT_SHOW = 'show'\nconst EVENT_SHOWN = 'shown'\nconst EVENT_INSERTED = 'inserted'\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_FOCUSOUT = 'focusout'\nconst EVENT_MOUSEENTER = 'mouseenter'\nconst EVENT_MOUSELEAVE = 'mouseleave'\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n}\n\nconst Default = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n floatingConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n title: '',\n trigger: 'hover focus'\n}\n\nconst DefaultType = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n floatingConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof computePosition === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Floating UI (https://floating-ui.com)')\n }\n\n super(element, config)\n\n // Private\n this._isEnabled = true\n this._timeout = 0\n this._isHovered = null\n this._activeTrigger = {}\n this._floatingCleanup = null\n this._templateFactory = null\n this._newContent = null\n this._mediaQueryListeners = []\n this._responsivePlacements = null\n\n // Protected\n this.tip = null\n\n this._parseResponsivePlacements()\n this._setListeners()\n\n if (!this._config.selector) {\n this._fixTitle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle() {\n if (!this._isEnabled) {\n return\n }\n\n if (this._isShown()) {\n this._leave()\n return\n }\n\n this._enter()\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'))\n }\n\n this._disposeFloating()\n this._disposeMediaQueryListeners()\n super.dispose()\n }\n\n async show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (!(this._isWithContent() && this._isEnabled)) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW))\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n this._disposeFloating()\n\n const tip = this._getTipElement()\n\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'))\n\n let { container } = this._config\n const closestDialog = this._element.closest('dialog[open]')\n if (closestDialog && container === document.body) {\n container = closestDialog\n }\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip)\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED))\n }\n\n await this._createFloating(tip)\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN))\n\n if (this._isHovered === false) {\n this._leave()\n }\n\n this._isHovered = false\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE))\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const tip = this._getTipElement()\n tip.classList.remove(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n this._isHovered = null // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (!this._isHovered) {\n this._disposeFloating()\n }\n\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN))\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n update() {\n if (this._floatingCleanup && this.tip) {\n this._updateFloatingPosition()\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle())\n }\n\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())\n }\n\n return this.tip\n }\n\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml()\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n tip.classList.add(`bs-${this.constructor.NAME}-auto`)\n\n const tipId = getUID(this.constructor.NAME).toString()\n\n tip.setAttribute('id', tipId)\n\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n return tip\n }\n\n setContent(content) {\n this._newContent = content\n if (this._isShown()) {\n this._disposeFloating()\n this.show()\n }\n }\n\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content)\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n })\n }\n\n return this._templateFactory\n }\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n }\n }\n\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title')\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\n }\n\n _isAnimated() {\n return this._config.animation || (this.tip && this.tip.classList.contains(CLASS_NAME_FADE))\n }\n\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement(tip) {\n // If we have responsive placements, get the one for current viewport\n if (this._responsivePlacements) {\n const placement = getResponsivePlacement(this._responsivePlacements, 'top')\n return AttachmentMap[placement.toUpperCase()] || placement\n }\n\n // Execute placement (can be a function)\n const placement = execute(this._config.placement, [this, tip, this._element])\n return AttachmentMap[placement.toUpperCase()] || placement\n }\n\n _parseResponsivePlacements() {\n // Only parse if placement is a string (not a function)\n if (typeof this._config.placement !== 'string') {\n this._responsivePlacements = null\n return\n }\n\n this._responsivePlacements = parseResponsivePlacement(this._config.placement, 'top')\n\n if (this._responsivePlacements) {\n this._setupMediaQueryListeners()\n }\n }\n\n _setupMediaQueryListeners() {\n this._disposeMediaQueryListeners()\n this._mediaQueryListeners = createBreakpointListeners(() => {\n if (this._isShown()) {\n this._updateFloatingPosition()\n }\n })\n }\n\n _disposeMediaQueryListeners() {\n disposeBreakpointListeners(this._mediaQueryListeners)\n this._mediaQueryListeners = []\n }\n\n async _createFloating(tip) {\n const placement = this._getPlacement(tip)\n const arrowElement = tip.querySelector(`.${this.constructor.NAME}-arrow`)\n\n // Initial position update\n await this._updateFloatingPosition(tip, placement, arrowElement)\n\n // Set up auto-update for scroll/resize\n this._floatingCleanup = autoUpdate(\n this._element,\n tip,\n () => this._updateFloatingPosition(tip, null, arrowElement)\n )\n }\n\n async _updateFloatingPosition(tip = this.tip, placement = null, arrowElement = null) {\n if (!tip) {\n return\n }\n\n if (!placement) {\n placement = this._getPlacement(tip)\n }\n\n if (!arrowElement) {\n arrowElement = tip.querySelector(`.${this.constructor.NAME}-arrow`)\n }\n\n const middleware = this._getFloatingMiddleware(arrowElement)\n const floatingConfig = this._getFloatingConfig(placement, middleware)\n\n const { x, y, placement: finalPlacement, middlewareData } = await computePosition(\n this._element,\n tip,\n floatingConfig\n )\n\n // Apply position to tooltip\n Object.assign(tip.style, {\n position: 'absolute',\n left: `${x}px`,\n top: `${y}px`\n })\n\n // Ensure arrow is absolutely positioned within tooltip\n if (arrowElement) {\n arrowElement.style.position = 'absolute'\n }\n\n // Set placement attribute for CSS arrow styling\n Manipulator.setDataAttribute(tip, 'placement', finalPlacement)\n\n // Position arrow along the edge (center it) if present\n // The CSS handles which edge to place it on via data-bs-placement\n if (arrowElement && middlewareData.arrow) {\n const { x: arrowX, y: arrowY } = middlewareData.arrow\n const isVertical = finalPlacement.startsWith('top') || finalPlacement.startsWith('bottom')\n\n // Only set the cross-axis position (centering along the edge)\n // The main-axis position (which edge) is handled by CSS\n Object.assign(arrowElement.style, {\n left: isVertical && arrowX !== null ? `${arrowX}px` : '',\n top: !isVertical && arrowY !== null ? `${arrowY}px` : '',\n // Reset the other axis to let CSS handle it\n right: '',\n bottom: ''\n })\n }\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offset === 'function') {\n // Floating UI passes different args, adapt the interface for offset function callbacks\n return ({ placement, rects }) => {\n const result = offset({ placement, reference: rects.reference, floating: rects.floating }, this._element)\n return result\n }\n }\n\n return offset\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element, this._element])\n }\n\n _getFloatingMiddleware(arrowElement) {\n const offsetValue = this._getOffset()\n\n const middleware = [\n // Offset middleware - handles distance from reference\n offset(\n typeof offsetValue === 'function' ?\n offsetValue :\n { mainAxis: offsetValue[1] || 0, crossAxis: offsetValue[0] || 0 }\n ),\n // Flip middleware - handles fallback placements\n flip({\n fallbackPlacements: this._config.fallbackPlacements\n }),\n // Shift middleware - prevents overflow\n shift({\n boundary: this._config.boundary === 'clippingParents' ? 'clippingAncestors' : this._config.boundary\n })\n ]\n\n // Arrow middleware - positions the arrow element\n if (arrowElement) {\n middleware.push(arrow({ element: arrowElement }))\n }\n\n return middleware\n }\n\n _getFloatingConfig(placement, middleware) {\n const defaultConfig = {\n placement,\n middleware\n }\n\n return {\n ...defaultConfig,\n ...execute(this._config.floatingConfig, [undefined, defaultConfig])\n }\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ')\n\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[TRIGGER_CLICK] = !(context._isShown() && context._activeTrigger[TRIGGER_CLICK])\n context.toggle()\n })\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSEENTER) :\n this.constructor.eventName(EVENT_FOCUSIN)\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSELEAVE) :\n this.constructor.eventName(EVENT_FOCUSOUT)\n\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true\n context._enter()\n })\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] =\n context._element.contains(event.relatedTarget)\n\n context._leave()\n })\n }\n }\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n\n if (!title) {\n return\n }\n\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('data-bs-original-title', title) // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title')\n }\n\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true\n return\n }\n\n this._isHovered = true\n\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show()\n }\n }, this._config.delay.show)\n }\n\n _leave() {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n this._isHovered = false\n\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide()\n }\n }, this._config.delay.hide)\n }\n\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout)\n this._timeout = setTimeout(handler, timeout)\n }\n\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true)\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute]\n }\n }\n\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container)\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value\n }\n }\n\n config.selector = false\n config.trigger = 'manual'\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config\n }\n\n _disposeFloating() {\n if (this._floatingCleanup) {\n this._floatingCleanup()\n this._floatingCleanup = null\n }\n\n if (this.tip) {\n this.tip.remove()\n this.tip = null\n }\n }\n}\n\n/**\n * Data API implementation - auto-initialize tooltips\n */\n\nconst initTooltip = event => {\n const target = event.target.closest(SELECTOR_DATA_TOGGLE)\n if (!target) {\n return\n }\n\n // Lazily create the instance. The instance's own `_setListeners()` registers\n // the appropriate listeners on the element for the configured triggers\n // (hover/focus by default), so we don't mutate `_activeTrigger` or call\n // `_enter` here — doing so would show tooltips for triggers the user didn't\n // opt into (e.g. `focusin` firing for click-focused buttons in Chromium,\n // even when `trigger=\"hover\"` or `trigger=\"manual\"`) and leave stale state\n // on `_activeTrigger`.\n Tooltip.getOrCreateInstance(target)\n}\n\n// Auto-initialize tooltips on first interaction for hover and focus triggers\nEventHandler.on(document, EVENT_FOCUSIN, SELECTOR_DATA_TOGGLE, initTooltip)\nEventHandler.on(document, EVENT_MOUSEENTER, SELECTOR_DATA_TOGGLE, initTooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Tooltip from './tooltip.js'\nimport EventHandler from './dom/event-handler.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'popover'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"popover\"]'\n\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_MOUSEENTER = 'mouseenter'\n\nconst Default = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div>' +\n '</div>',\n trigger: 'click'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n}\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent()\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n }\n }\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content)\n }\n}\n\n/**\n * Data API implementation - auto-initialize popovers\n */\n\nconst initPopover = event => {\n const target = event.target.closest(SELECTOR_DATA_TOGGLE)\n if (!target) {\n return\n }\n\n // Prevent default for click events to avoid navigation (e.g. <a href=\"#\">)\n if (event.type === 'click') {\n event.preventDefault()\n }\n\n // Lazily create the instance. The instance's own `_setListeners()` registers\n // the appropriate listeners on the element for the configured triggers\n // (click/focus/hover), so we don't toggle or call `_enter` here — doing so\n // would duplicate handlers and leave stale state on `_activeTrigger`.\n Popover.getOrCreateInstance(target)\n}\n\n// Auto-initialize popovers on first interaction for click, hover, and focus triggers\nEventHandler.on(document, EVENT_CLICK, SELECTOR_DATA_TOGGLE, initPopover)\nEventHandler.on(document, EVENT_FOCUSIN, SELECTOR_DATA_TOGGLE, initPopover)\nEventHandler.on(document, EVENT_MOUSEENTER, SELECTOR_DATA_TOGGLE, initPopover)\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getElement, isDisabled, isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_MENU_ITEM = 'menu-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]'\nconst SELECTOR_TARGET_LINKS = '[href]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\nconst SELECTOR_MENU_TOGGLE = '[data-bs-toggle=\"menu\"]'\n\nconst Default = {\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n}\n\nconst DefaultType = {\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n}\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map()\n this._observableSections = new Map()\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element\n this._activeTarget = null\n this._observer = null\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n }\n this.refresh() // initialize\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables()\n this._maybeEnableSmoothScroll()\n\n if (this._observer) {\n this._observer.disconnect()\n } else {\n this._observer = this._getNewObserver()\n }\n\n for (const section of this._observableSections.values()) {\n this._observer.observe(section)\n }\n }\n\n dispose() {\n this._observer.disconnect()\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n config.target = getElement(config.target) || document.body\n\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value))\n }\n\n return config\n }\n\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK)\n\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash)\n if (observableSection) {\n event.preventDefault()\n const root = this._rootElement || window\n const height = observableSection.offsetTop - this._element.offsetTop\n if (root.scrollTo) {\n root.scrollTo({ top: height, behavior: 'smooth' })\n return\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height\n }\n })\n }\n\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n }\n\n return new IntersectionObserver(entries => this._observerCallback(entries), options)\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`)\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop\n this._process(targetElement(entry))\n }\n\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop\n this._previousScrollData.parentScrollTop = parentScrollTop\n\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null\n this._clearActiveClass(targetElement(entry))\n\n continue\n }\n\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry)\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return\n }\n\n continue\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry)\n }\n }\n }\n\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map()\n this._observableSections = new Map()\n\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target)\n\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue\n }\n\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element)\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor)\n this._observableSections.set(anchor.hash, observableSection)\n }\n }\n }\n\n _process(target) {\n if (this._activeTarget === target) {\n return\n }\n\n this._clearActiveClass(this._config.target)\n this._activeTarget = target\n target.classList.add(CLASS_NAME_ACTIVE)\n this._activateParents(target)\n\n EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target })\n }\n\n _activateParents(target) {\n // Activate menu parents\n if (target.classList.contains(CLASS_NAME_MENU_ITEM)) {\n const menuToggle = target.closest('.menu')?.previousElementSibling\n if (menuToggle?.matches(SELECTOR_MENU_TOGGLE)) {\n menuToggle.classList.add(CLASS_NAME_ACTIVE)\n }\n\n return\n }\n\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {\n item.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _clearActiveClass(parent) {\n parent.classList.remove(CLASS_NAME_ACTIVE)\n\n const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE}`, parent)\n for (const node of activeNodes) {\n node.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {\n ScrollSpy.getOrCreateInstance(spy)\n }\n})\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { getNextActiveElement, isDisabled } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst SELECTOR_MENU_TOGGLE = '[data-bs-toggle=\"menu\"]'\nconst SELECTOR_MENU = '.menu'\nconst NOT_SELECTOR_MENU_TOGGLE = `:not(${SELECTOR_MENU_TOGGLE})`\n\nconst SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]'\nconst SELECTOR_OUTER = '.nav-item, .list-group-item'\nconst SELECTOR_INNER = `.nav-link${NOT_SELECTOR_MENU_TOGGLE}, .list-group-item${NOT_SELECTOR_MENU_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_MENU_TOGGLE}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"]'\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`\n\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"]`\n\n/**\n * Class definition\n */\n\nclass Tab extends BaseComponent {\n constructor(element) {\n super(element)\n this._parent = this._element.closest(SELECTOR_TAB_PANEL)\n\n if (!this._parent) {\n return\n // TODO: should throw exception in v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_TAB_PANEL}`)\n }\n\n // Set up initial aria attributes\n this._setInitialAttributes(this._parent, this._getChildren())\n\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n show() { // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element\n if (this._elemIsActive(innerElem)) {\n return\n }\n\n // Search for active tab on same parent to deactivate it\n const active = this._getActiveElem()\n\n const hideEvent = active ?\n EventHandler.trigger(active, EVENT_HIDE, { relatedTarget: innerElem }) :\n null\n\n const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { relatedTarget: active })\n\n if (showEvent.defaultPrevented || (hideEvent && hideEvent.defaultPrevented)) {\n return\n }\n\n this._deactivate(active, innerElem)\n this._activate(innerElem, active)\n }\n\n // Private\n _activate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n\n this._activate(SelectorEngine.getElementFromSelector(element)) // Search and activate/show the proper section\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW)\n return\n }\n\n element.removeAttribute('tabindex')\n element.setAttribute('aria-selected', true)\n this._toggleMenu(element, true)\n EventHandler.trigger(element, EVENT_SHOWN, {\n relatedTarget: relatedElem\n })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _deactivate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.remove(CLASS_NAME_ACTIVE)\n element.blur()\n\n this._deactivate(SelectorEngine.getElementFromSelector(element)) // Search and deactivate the shown section too\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW)\n return\n }\n\n element.setAttribute('aria-selected', false)\n element.setAttribute('tabindex', '-1')\n this._toggleMenu(element, false)\n EventHandler.trigger(element, EVENT_HIDDEN, { relatedTarget: relatedElem })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _keydown(event) {\n if (!([ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key))) {\n return\n }\n\n event.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n event.preventDefault()\n\n const children = this._getChildren().filter(element => !isDisabled(element))\n let nextActiveElement\n\n if ([HOME_KEY, END_KEY].includes(event.key)) {\n nextActiveElement = event.key === HOME_KEY ? children[0] : children.at(-1)\n } else {\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\n nextActiveElement = getNextActiveElement(children, event.target, isNext, true)\n }\n\n if (nextActiveElement) {\n nextActiveElement.focus({ preventScroll: true })\n Tab.getOrCreateInstance(nextActiveElement).show()\n }\n }\n\n _getChildren() { // collection of inner elements\n return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent)\n }\n\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null\n }\n\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist')\n\n for (const child of children) {\n this._setInitialAttributesOnChild(child)\n }\n }\n\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child)\n const isActive = this._elemIsActive(child)\n const outerElem = this._getOuterElement(child)\n child.setAttribute('aria-selected', isActive)\n\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation')\n }\n\n if (!isActive) {\n child.setAttribute('tabindex', '-1')\n }\n\n this._setAttributeIfNotExists(child, 'role', 'tab')\n\n // set attributes to the related panel too\n this._setInitialAttributesOnTargetPanel(child)\n }\n\n _setInitialAttributesOnTargetPanel(child) {\n const target = SelectorEngine.getElementFromSelector(child)\n\n if (!target) {\n return\n }\n\n this._setAttributeIfNotExists(target, 'role', 'tabpanel')\n\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`)\n }\n }\n\n _toggleMenu(element, open) {\n const outerElem = this._getOuterElement(element)\n const menuToggle = SelectorEngine.findOne(SELECTOR_MENU_TOGGLE, outerElem)\n if (!menuToggle) {\n return\n }\n\n const menu = SelectorEngine.findOne(SELECTOR_MENU, outerElem)\n\n menuToggle.classList.toggle(CLASS_NAME_ACTIVE, open)\n if (menu) {\n menu.classList.toggle(CLASS_NAME_SHOW, open)\n }\n\n menuToggle.setAttribute('aria-expanded', open)\n }\n\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value)\n }\n }\n\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n // Try to get the inner element (usually the .nav-link)\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem)\n }\n\n // Try to get the outer element (usually the .nav-item)\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n Tab.getOrCreateInstance(this).show()\n})\n\n/**\n * Initialize on focus\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element)\n }\n})\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { reflow } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`\nconst EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_FOCUSOUT = `focusout${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide' // @deprecated - kept here only for backwards compatibility\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 5000\n}\n\n/**\n * Class definition\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._timeout = null\n this._hasMouseInteraction = false\n this._hasKeyboardInteraction = false\n this._setListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n show() {\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n this._maybeScheduleHide()\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE) // @deprecated\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING)\n\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n hide() {\n if (!this.isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE) // @deprecated\n this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.add(CLASS_NAME_SHOWING)\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this.isShown()) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n super.dispose()\n }\n\n isShown() {\n return this._element.classList.contains(CLASS_NAME_SHOW)\n }\n\n // Private\n _maybeScheduleHide() {\n if (!this._config.autohide) {\n return\n }\n\n if (this._hasMouseInteraction || this._hasKeyboardInteraction) {\n return\n }\n\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n\n _onInteraction(event, isInteracting) {\n switch (event.type) {\n case 'mouseover':\n case 'mouseout': {\n this._hasMouseInteraction = isInteracting\n break\n }\n\n case 'focusin':\n case 'focusout': {\n this._hasKeyboardInteraction = isInteracting\n break\n }\n\n default: {\n break\n }\n }\n\n if (isInteracting) {\n this._clearTimeout()\n return\n }\n\n const nextElement = event.relatedTarget\n if (this._element === nextElement || this._element.contains(nextElement)) {\n return\n }\n\n this._maybeScheduleHide()\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false))\n EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false))\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Toast)\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap toggler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { eventActionOnPlugin } from './util/component-functions.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'toggler'\nconst DATA_KEY = 'bs.toggler'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_TOGGLE = `toggle${EVENT_KEY}`\nconst EVENT_TOGGLED = `toggled${EVENT_KEY}`\nconst EVENT_CLICK = 'click'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"toggler\"]'\n\nconst DefaultType = {\n attribute: 'string',\n value: '(string|number|boolean)'\n}\n\nconst Default = {\n attribute: 'class',\n value: null\n}\n\n/**\n * Class definition\n */\n\nclass Toggler extends BaseComponent {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n const toggleEvent = EventHandler.trigger(this._element, EVENT_TOGGLE)\n\n if (toggleEvent.defaultPrevented) {\n return\n }\n\n this._execute()\n\n EventHandler.trigger(this._element, EVENT_TOGGLED)\n }\n\n // Private\n _execute() {\n const { attribute, value } = this._config\n\n if (attribute === 'id') {\n return // You have to be kidding\n }\n\n if (attribute === 'class') {\n this._element.classList.toggle(value)\n return\n }\n\n // Compare as strings since getAttribute() always returns a string\n if (this._element.getAttribute(attribute) === String(value)) {\n this._element.removeAttribute(attribute)\n return\n }\n\n this._element.setAttribute(attribute, value)\n }\n}\n\n/**\n * Data API implementation\n */\n\neventActionOnPlugin(Toggler, EVENT_CLICK, SELECTOR_DATA_TOGGLE, 'toggle')\n\nexport default Toggler\n"],"mappings":"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","ignoreList":[]}
\ No newline at end of file
+{"version":3,"names":["elementMap","Map","Data","set","element","key","instance","has","instanceMap","get","size","console","error","keys","getAny","values","next","value","remove","delete","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","makeEventUid","uid","getElementEvents","bootstrapHandler","fn","handler","event","hydrateObj","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","selector","domElements","querySelectorAll","target","this","parentNode","domElement","findHandler","events","callable","delegationSelector","Object","find","normalizeParameters","originalTypeEvent","delegationFunction","isDelegated","typeEvent","getTypeEvent","addHandler","wrapFunction","relatedTarget","contains","call","handlers","previousFunction","replace","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","entries","includes","on","one","inNamespace","isNamespace","startsWith","elementEvent","slice","keyHandlers","length","trigger","args","evt","Event","bubbles","cancelable","dispatchEvent","obj","meta","defineProperty","configurable","normalizeData","Number","toString","JSON","parse","decodeURIComponent","normalizeDataKey","chr","toLowerCase","Manipulator","setDataAttribute","setAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","bsKeys","dataset","filter","pureKey","charAt","getDataAttribute","getAttribute","MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","parseSelector","window","CSS","escape","match","id","toType","object","prototype","getUID","prefix","Math","floor","random","document","getElementById","getTransitionDurationFromElement","transitionDuration","transitionDelay","getComputedStyle","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","isElement","nodeType","getElement","querySelector","isVisible","getClientRects","elementIsVisible","getPropertyValue","closedDetails","closest","summary","isDisabled","Node","ELEMENT_NODE","classList","disabled","hasAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","isRTL","dir","execute","possibleCallback","defaultValue","executeAfterTransition","callback","transitionElement","waitForTransition","emulatedDuration","called","setTimeout","getNextActiveElement","list","activeElement","shouldGetNext","isCycleAllowed","listLength","index","indexOf","max","min","Config","Default","DefaultType","NAME","Error","_getConfig","config","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","jsonConfig","constructor","configTypes","property","expectedTypes","valueType","RegExp","test","TypeError","toUpperCase","VERSION","BaseComponent","super","_element","_config","DATA_KEY","dispose","EVENT_KEY","propertyName","getOwnPropertyNames","_queueCallback","isAnimated","getInstance","getOrCreateInstance","eventName","name","getSelector","hrefAttribute","trim","map","sel","join","SelectorEngine","Element","findOne","children","child","matches","parents","ancestor","push","prev","previous","previousElementSibling","nextElementSibling","focusableChildren","focusables","el","getSelectorFromElement","getElementFromSelector","getMultipleElementsFromSelector","enableDismissTrigger","component","method","clickEvent","tagName","preventDefault","eventActionOnPlugin","Plugin","onEvent","stringSelector","eventAction","data","instances","targets","EVENT_CLOSE","EVENT_CLOSED","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","close","defaultPrevented","_destroyElement","DATA_API_KEY","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE","EVENT_CLICK_DATA_API","Button","toggle","button","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_POINTERDOWN","EVENT_LOAD_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_CENTER","CLASS_NAME_AUTO","CLASS_NAME_CLONE","CLASS_NAME_PAUSED","CLASS_NAME_PLAYING","PROPERTY_INTERVAL","SCROLL_SETTLE_MAX_FRAMES","ACTIVE_RATIO_TOLERANCE","SELECTOR_ACTIVE","SELECTOR_ITEM","SELECTOR_ACTIVE_ITEM","SELECTOR_INNER","SELECTOR_INDICATORS","SELECTOR_PLAY_PAUSE","SELECTOR_DATA_SLIDE","SELECTOR_DATA_SLIDE_PREV","SELECTOR_DATA_SLIDE_NEXT","SELECTOR_DATA_AUTOPLAY","KEY_TO_DIRECTION","ARROW_LEFT_KEY$2","ARROW_RIGHT_KEY$2","ENDS_STOP","ENDS_WRAP","ENDS_LOOP","autoplay","ends","interval","keyboard","pause","Carousel","_viewport","_indicatorsElement","_playPauseElement","_prevControls","_nextControls","_interval","_observer","_snapRestoreFrame","_looping","_visibility","_playing","_activeIndex","_initialActiveIndex","_addEventListeners","_observeItems","_refreshActiveState","cycle","_updatePlayPauseControl","to","_navIndex","nextWhenVisible","visibilityState","_clearInterval","_scheduleAutoplay","add","items","_getItems","rawIndex","parseInt","_prefersReducedMotion","_canLoop","_loopTransition","targetIndex","_normalizeIndex","currentIndex","direction","_direction","from","_isFade","_fadeTo","_scrollToIndex","disconnect","cancelAnimationFrame","clone","style","scrollSnapType","active","_keydown","_maybeEnableCycle","_pauseFromInteraction","IntersectionObserver","_handleIntersection","threshold","item","observe","entry","isIntersecting","intersectionRatio","ratios","maxRatio","bestIndex","findIndex","ratio","_setActive","_updateEndControls","scrollWidth","clientWidth","smallestDelta","POSITIVE_INFINITY","itemIndex","delta","abs","_scrollDelta","left","targetLeft","scrollLeft","scrollBy","top","behavior","_restoreSnapWhenSettled","viewportRect","getBoundingClientRect","rect","width","padStart","scrollPaddingInlineStart","right","isNext","last","fromIndex","toIndex","_loopDirection","cloneNode","node","inert","append","prepend","_jumpScroll","_afterScrollSettles","undefined","requestAnimationFrame","startLeft","lastLeft","stableFrames","waited","hasMoved","tick","currentLeft","reachedTarget","_setActiveIndicatorElement","viewport","maxScroll","atStart","atEnd","progress","_setControlsDisabled","controls","control","focus","preventScroll","newActive","isNaN","_wrapsAround","styles","num","_itemInterval","setProperty","upcoming","_upcomingIndex","NaN","_togglePlayPause","label","matchMedia","clearTimeout","carousel","slideIndex","carousels","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","CLASS_NAME_HORIZONTAL","WIDTH","HEIGHT","SELECTOR_ACTIVES","parent","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","_isShown","hide","show","activeChildren","_getFirstLevelChildren","activeInstance","dimension","_getDimension","scrollSize","complete","selected","triggerArray","isOpen","BREAKPOINTS","sm","md","lg","xl","parseResponsivePlacement","placementString","defaultPlacement","parts","placements","xs","part","breakpoint","placement","getResponsivePlacement","responsivePlacements","viewportWidth","innerWidth","activePlacement","breakpointOrder","createBreakpointListeners","listeners","minWidth","mql","disposeBreakpointListeners","ESCAPE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","HOME_KEY","END_KEY","ENTER_KEY","SPACE_KEY","RIGHT_MOUSE_BUTTON","SUBMENU_CLOSE_DELAY","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","SELECTOR_MENU","SELECTOR_SUBMENU","SELECTOR_SUBMENU_TOGGLE","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","DEFAULT_PLACEMENT","SUBMENU_PLACEMENT","resolveLogicalPlacement","triangleSign","p1","p2","p3","x","y","autoClose","boundary","container","display","offset","floatingConfig","menu","reference","strategy","submenuTrigger","submenuDelay","Menu","static","computePosition","_floatingCleanup","_mediaQueryListeners","_responsivePlacements","_parent","_isSubmenu","_openSubmenus","_submenuCloseTimeouts","_hoverIntentData","_menu","_findMenu","_menuOriginalParent","_parseResponsivePlacements","_setupSubmenuListeners","_moveMenuToContainer","_createFloating","body","focusVisible","_openInstances","_completeHide","_disposeFloating","_restoreMenuToOriginalParent","_disposeMediaQueryListeners","_closeAllSubmenus","_clearAllSubmenuTimeouts","update","_updateFloatingPosition","referenceElement","autoUpdate","_getPlacement","middleware","_getFloatingMiddleware","_getFloatingConfig","_applyFloatingPosition","_setupMediaQueryListeners","_getOffset","offsetConfig","rects","floating","offsetValue","mainAxis","crossAxis","flip","fallbackPlacements","_getFallbackPlacements","shift","bottom","defaultConfig","_getContainer","isConnected","finalPlacement","assign","position","margin","_onSubmenuTriggerEnter","_onSubmenuLeave","_trackMousePosition","_onSubmenuTriggerClick","submenuWrapper","submenu","_cancelSubmenuCloseTimeout","_closeSiblingSubmenus","_openSubmenu","_isMovingTowardSubmenu","_scheduleSubmenuClose","stopPropagation","_closeSubmenu","cleanup","_createSubmenuFloating","nestedSubmenus","nested","nestedWrapper","currentSubmenuWrapper","siblingSubmenus","siblingMenu","siblingWrapper","padding","updatePosition","timeoutId","clear","clientX","clientY","timestamp","Date","now","submenuRect","currentPos","lastPos","targetX","topCorner","bottomCorner","_pointInTriangle","point","v1","v2","v3","d1","d2","d3","_selectMenuItem","currentMenu","_handleSubmenuKeydown","isRtl","enterKey","exitKey","isSubmenuTrigger","firstItem","parentSubmenuWrapper","parentTrigger","at","clearMenus","composedPath","isMenuTarget","dataApiKeydownHandler","isInput","isEscapeEvent","isUpOrDownEvent","isLeftOrRightEvent","isHomeOrEndEvent","isEnterOrSpaceEvent","getToggleButton","EVENT_CHANGE","CLASS_NAME_SELECTED","CLASS_NAME_PLACEHOLDER","SELECTOR_MENU_ITEM","SELECTOR_VALUE","SELECTOR_SEARCH_INPUT","SELECTOR_NO_RESULTS","multiple","placeholder","search","searchNormalize","Combobox","_toggle","_valueDisplay","_searchInput","_noResults","_hiddenInput","_menuInstance","_createHiddenInput","_createMenuInstance","_syncInitialSelection","_filterItems","createElement","insertBefore","_getSelectedItems","_updateToggleText","_updateHiddenInput","_showPlaceholder","_selectItem","_handleToggleKeydown","_handleMenuKeydown","_getVisibleItems","previouslySelected","bsValue","selectedItems","textContent","query","normalizedQuery","_normalizeText","visibleCount","text","normalize","jQueryInterface","each","EVENT_FOCUSIN_DATA_API","HIDE_DELAY","datepickerTheme","dateMin","dateMax","dateFormat","displayElement","displayMonthsCount","firstWeekday","inline","locale","positionElement","selectedDates","selectionMode","vcpOptions","Datepicker","_calendar","_initCalendar","_themeObserver","destroy","getSelectedDates","dates","context","setSelectedDates","_isInput","_isInline","_boundInput","_positionElement","_resolvePositionElement","_displayElement","_resolveDisplayElement","calendarOptions","_buildCalendarOptions","Calendar","init","_setupThemeObserver","_parseInputValue","_updateDisplayWithSelectedDates","formattedDate","_formatDateForInput","_getThemeAncestor","_getEffectiveTheme","_syncThemeAttribute","theme","MutationObserver","mainElement","attributeFilter","vcpTheme","inputMode","positionToInput","selectionDatesMode","selectedTheme","themeAttrDetect","onClickDate","self","_handleDateClick","onInit","onShow","onHide","firstDate","_parseDate","selectedMonth","getMonth","selectedYear","getFullYear","_maybeHideAfterSelection","dateStr","year","month","day","_formatDate","date","Intl","DateTimeFormat","format","toLocaleDateString","separator","d","getTime","formatted","String","getDate","bsInline","CLASS_NAME_OPEN","DialogBase","_openedAsModal","_addDialogListeners","open","_onBeforeShow","modal","preventBodyScroll","_getShowOptions","_showElement","_isAnimated","_hideElement","_closeAndCleanup","_onAfterHide","_getInstantClassName","_getStaticClassName","_onCancel","showModal","_hideChildComponents","_shouldDeferClose","_triggerBackdropTransition","staticClass","eventKey","backdrop","EVENT_CANCEL","CLASS_NAME_NONMODAL","CLASS_NAME_INSTANT","CLASS_NAME_SWAP_IN","Dialog","handleUpdate","showEvent","currentDialog","newDialog","currentInstance","EVENT_UPDATE","EVENT_OVERFLOW","CLASS_NAME_OVERFLOW","CLASS_NAME_OVERFLOW_MENU","CLASS_NAME_HIDDEN","SELECTOR_NAV_ITEM","SELECTOR_NAV_LINK","SELECTOR_OVERFLOW_TOGGLE","SELECTOR_OVERFLOW_MENU","SELECTOR_CUSTOM_ICON","CLASS_NAME_KEEP","collapseBelow","iconPlacement","menuPlacement","moreText","moreIcon","NavOverflow","_items","_overflowItems","_overflowMenu","_overflowToggle","_resizeObserver","_collapseBelow","_isInitialized","_init","_calculateOverflow","_restoreItems","parentElement","bsNavOrder","_resolveCollapseBelow","_createOverflowMenu","_setupResizeObserver","iconSpan","_resolveIcon","textSpan","toggleContent","overflowItem","className","innerHTML","customIconElement","iconClone","iconHtml","outerHTML","cssValue","ResizeObserver","navWidth","offsetWidth","itemsToOverflow","_moveToOverflow","overflowCount","usedWidth","overflowThreshold","reduce","sum","toMove","link","clonedLink","bsNavOverflow","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERUP","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","CLASS_NAME_POINTER_EVENT","SWIPE_THRESHOLD","endCallback","leftCallback","rightCallback","upCallback","downCallback","Swipe","isSupported","_deltaX","_deltaY","_supportPointerEvents","PointerEvent","_initEvents","_start","touches","_eventIsPointerPenTouch","_end","_handleSwipe","_move","absDeltaX","absDeltaY","pointerType","navigator","maxTouchPoints","EVENT_RESIZE","scroll","Drawer","_swipeHelper","_initSwipe","swipeConfig","alreadyOpen","EVENT_STRENGTH_CHANGE","SELECTOR_DATA_STRENGTH","STRENGTH_LEVELS","input","minLength","messages","weak","fair","good","strong","weights","extraLength","lowercase","uppercase","numbers","special","multipleSpecial","longPassword","thresholds","scorer","Strength","_input","_getInput","_segments","_textElement","_currentStrength","_evaluate","getStrength","evaluate","password","score","_calculateScore","strength","_scoreToStrength","_updateUI","bsStrength","strengthIndex","segment","colorMap","EVENT_COMPLETE","EVENT_INPUT","EVENT_DOMCONTENT_LOADED","SELECTOR_DATA_OTP","SELECTOR_INPUT","SYNC_EVENTS","CLASS_NAME_INPUT","CLASS_NAME_RENDERED","CLASS_NAME_SLOTS","CLASS_NAME_SLOT","CLASS_NAME_SLOT_FILLED","CLASS_NAME_SLOT_ACTIVE","CLASS_NAME_SEPARATOR","MASK_CHARACTER","TYPES","numeric","inputmode","pattern","alphanumeric","alpha","groups","mask","OtpInput","_type","_length","_resolveLength","_slots","_setupInput","_renderSlots","_render","getValue","setValue","_sanitize","_checkComplete","end","setSelectionRange","_onInput","_onFocus","_onSync","_slotsContainer","maxLength","groupIndex","inGroup","i","slot","Array","isArray","_handleInput","sanitized","isFocused","caret","selectionStart","char","EVENT_ADD","EVENT_REMOVE","EVENT_SELECT","SELECTOR_DATA_CHIPS","SELECTOR_GHOST_INPUT","SELECTOR_CHIP","SELECTOR_CHIP_DISMISS","CLASS_NAME_CHIP","CLASS_NAME_CHIP_DISMISS","DEFAULT_DISMISS_ICON","allowDuplicates","maxChips","dismissible","dismissIcon","createOnBlur","Chips","_chips","_selectedChips","_anchorChip","_createInput","_initializeExistingChips","trimmedValue","chip","_createChip","getValues","chipOrValue","_findChipByValue","_getChipValue","v","removeSelected","chipsToRemove","getSelectedValues","chips","clearSelection","selectChip","options","addToSelection","rangeSelect","chipElements","_getChipElements","anchorIndex","chipIndex","start","existingChips","_setupChip","_createDismissButton","bsChipValue","createTextNode","dismiss","_handleInputKeydown","_handlePaste","_createChipFromInput","metaKey","ctrlKey","shiftKey","_handleChipKeydown","lastChip","selectionEnd","blur","_handleChipDelete","_navigateChip","_navigateToEdge","_handleSelectAll","nextIndex","remainingChips","focusIndex","targetChip","c","pastedData","clipboardData","getData","ARIA_ATTRIBUTE_PATTERN","DefaultAllowlist","a","area","b","br","col","code","dd","div","dl","dt","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","u","ul","uriAttributes","SAFE_URL_PATTERN","allowedAttribute","attribute","allowedAttributeList","attributeName","nodeName","nodeValue","attributeRegex","some","regex","sanitizeHtml","unsafeHtml","allowList","sanitizeFunction","createdDocument","DOMParser","parseFromString","elements","elementName","attributeList","allowedAttributes","content","extraClass","html","sanitize","sanitizeFn","template","DefaultContentType","TemplateFactory","getContent","_resolvePossibleFunction","hasContent","changeContent","_checkContent","toHtml","templateWrapper","_maybeSanitize","_setContent","arg","templateElement","_putElementInTemplate","DISALLOWED_ATTRIBUTES","CLASS_NAME_MODAL","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","EVENT_INSERTED","EVENT_CLICK","EVENT_FOCUSIN","EVENT_FOCUSOUT","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","animation","customClass","delay","title","Tooltip","_isEnabled","_timeout","_isHovered","_activeTrigger","_templateFactory","_newContent","tip","_setListeners","_fixTitle","enable","disable","toggleEnabled","_leave","_enter","_hideModalHandler","_isWithContent","isInTheDom","ownerDocument","_getTipElement","closestDialog","_isWithActiveTrigger","_getTitle","_createTipElement","_getContentForTemplate","_getTemplateFactory","tipId","setContent","_initializeOnDelegatedTarget","_getDelegateConfig","arrowElement","middlewareData","arrow","arrowX","arrowY","isVertical","triggers","eventIn","eventOut","_setTimeout","timeout","dataAttributes","dataAttribute","initTooltip","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","initPopover","EVENT_ACTIVATE","CLASS_NAME_MENU_ITEM","SELECTOR_DATA_SPY","SELECTOR_TARGET_LINKS","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","SELECTOR_MENU_TOGGLE","rootMargin","smoothScroll","ScrollSpy","_targetLinks","_observableSections","_rootElement","overflowY","_activeTarget","_previousScrollData","visibleEntryTop","parentScrollTop","refresh","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","_getNewObserver","section","observableSection","hash","height","offsetTop","scrollTo","scrollTop","_observerCallback","targetElement","activate","_process","userScrollsDown","_clearActiveClass","entryIsLowerThanPrevious","targetLinks","anchor","decodeURI","_activateParents","menuToggle","listGroup","activeNodes","spy","NOT_SELECTOR_MENU_TOGGLE","SELECTOR_TAB_PANEL","SELECTOR_OUTER","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","Tab","_setInitialAttributes","_getChildren","innerElem","_elemIsActive","_getActiveElem","hideEvent","_deactivate","_activate","relatedElem","_toggleMenu","nextActiveElement","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","EVENT_MOUSEOVER","EVENT_MOUSEOUT","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_hasMouseInteraction","_hasKeyboardInteraction","_clearTimeout","_maybeScheduleHide","isShown","_onInteraction","isInteracting","nextElement","EVENT_TOGGLE","EVENT_TOGGLED","Toggler","_execute"],"sources":["../../js/src/dom/data.js","../../js/src/dom/event-handler.js","../../js/src/dom/manipulator.js","../../js/src/util/index.js","../../js/src/util/config.js","../../js/src/base-component.js","../../js/src/dom/selector-engine.js","../../js/src/util/component-functions.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/util/floating-ui.js","../../js/src/menu.js","../../js/src/combobox.js","../../js/src/datepicker.js","../../js/src/dialog-base.js","../../js/src/dialog.js","../../js/src/nav-overflow.js","../../js/src/util/swipe.js","../../js/src/drawer.js","../../js/src/strength.js","../../js/src/otp-input.js","../../js/src/chips.js","../../js/src/util/sanitizer.js","../../js/src/util/template-factory.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/src/toggler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${[...instanceMap.keys()][0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n getAny(element) {\n if (elementMap.has(element)) {\n return elementMap.get(element).values().next().value || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, { delegateTarget: element })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n hydrateObj(event, { delegateTarget: target })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events)\n .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'\n const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n let typeEvent = getTypeEvent(originalTypeEvent)\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n callable = wrapFunction(callable)\n }\n\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler, callable) :\n bootstrapHandler(element, callable)\n\n fn.delegationSelector = isDelegated ? handler : null\n fn.callable = callable\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false)\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getElementEvents(element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const evt = hydrateObj(new Event(event, { bubbles: true, cancelable: true }), args)\n element.dispatchEvent(evt)\n return evt\n }\n}\n\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value\n } catch {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value\n }\n })\n }\n }\n\n return obj\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n if (value === Number(value).toString()) {\n return Number(value)\n }\n\n if (value === '' || value === 'null') {\n return null\n }\n\n if (typeof value !== 'string') {\n return value\n }\n\n try {\n return JSON.parse(decodeURIComponent(value))\n } catch {\n return value\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'))\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1)\n attributes[pureKey] = normalizeData(element.dataset[key])\n }\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n if (isElement(object)) {\n return object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsely appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.harrytheo.com/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport { isElement, toType } from './index.js'\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {}\n }\n\n static get DefaultType() {\n return {}\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n return config\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n }\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property]\n const valueType = isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n }\n }\n}\n\nexport default Config\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '6.0.0-alpha1'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n // Private\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible, parseSelector } from '../util/index.js'\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`\n }\n\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null\n }\n\n return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null\n}\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [...Element.prototype.querySelectorAll.call(element, selector)]\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [...element.children].filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n let ancestor = element.parentNode.closest(selector)\n\n while (ancestor) {\n parents.push(ancestor)\n ancestor = ancestor.parentNode.closest(selector)\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n },\n\n getSelectorFromElement(element) {\n const selector = getSelector(element)\n\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null\n }\n\n return null\n },\n\n getElementFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.findOne(selector) : null\n },\n\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.find(selector) : []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport { isDisabled } from './index.js'\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`\n const name = component.NAME\n\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`)\n const instance = component.getOrCreateInstance(target)\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]()\n })\n}\n\nconst eventActionOnPlugin = (Plugin, onEvent, stringSelector, method, callback = null) => {\n eventAction(`${onEvent}.${Plugin.NAME}`, stringSelector, data => {\n const instances = data.targets.filter(Boolean).map(element => Plugin.getOrCreateInstance(element))\n if (typeof callback === 'function') {\n callback({ ...data, instances })\n }\n\n for (const instance of instances) {\n instance[method]()\n }\n })\n}\n\nconst eventAction = (onEvent, stringSelector, callback) => {\n const selector = `${stringSelector}:not(.disabled):not(:disabled)`\n EventHandler.on(document, onEvent, selector, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n const selector = SelectorEngine.getSelectorFromElement(this)\n const targets = selector ? SelectorEngine.find(selector) : [this]\n\n callback({ targets, event })\n })\n}\n\nexport {\n enableDismissTrigger,\n eventActionOnPlugin\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE)\n\n if (closeEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE)\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated)\n }\n\n // Private\n _destroyElement() {\n this._element.remove()\n EventHandler.trigger(this._element, EVENT_CLOSED)\n this.dispose()\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close')\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'button'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {\n event.preventDefault()\n\n const button = event.target.closest(SELECTOR_DATA_TOGGLE)\n const data = Button.getOrCreateInstance(button)\n\n data.toggle()\n})\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { isRTL, isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\n\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'carousel-fade'\nconst CLASS_NAME_CENTER = 'carousel-center'\nconst CLASS_NAME_AUTO = 'carousel-auto'\nconst CLASS_NAME_CLONE = 'carousel-item-clone'\nconst CLASS_NAME_PAUSED = 'paused'\n// Added to the root while the autoplay timer is running, so CSS can fill the\n// active indicator like a progress bar over the current slide's interval.\nconst CLASS_NAME_PLAYING = 'carousel-playing'\n\n// Shipped (`--bs-`-prefixed) custom property the indicator fill animation reads\n// for its duration. The build prefixes every custom property, so the bare\n// `--carousel-interval` used in the SCSS source becomes this at runtime.\nconst PROPERTY_INTERVAL = '--bs-carousel-interval'\n\n// How many frames the scroll-settle watcher waits when no movement is ever\n// detected (clamped programmatic scroll, or `scrollBy` stubbed in tests) before\n// it gives up and restores snapping anyway.\nconst SCROLL_SETTLE_MAX_FRAMES = 10\n\n// How far below the most-visible slide a slide's IntersectionRatio can be while\n// still counting as the active (left-most) slide. After a programmatic scroll\n// the viewport rests a sub-pixel past the snap offset, leaving the intended\n// slide a hair less visible than its fully-in neighbors; the tolerance prevents\n// that rounding from skipping the active index forward.\nconst ACTIVE_RATIO_TOLERANCE = 0.05\n\nconst SELECTOR_ACTIVE = '.active'\n// Exclude transient loop clones so index math, indicators, and active-slide\n// detection only ever see the real slides.\nconst SELECTOR_ITEM = `.carousel-item:not(.${CLASS_NAME_CLONE})`\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM\nconst SELECTOR_INNER = '.carousel-inner'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_PLAY_PAUSE = '.carousel-control-play-pause'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_SLIDE_PREV = '[data-bs-slide=\"prev\"]'\nconst SELECTOR_DATA_SLIDE_NEXT = '[data-bs-slide=\"next\"]'\nconst SELECTOR_DATA_AUTOPLAY = '[data-bs-autoplay=\"true\"]'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst ENDS_STOP = 'stop'\nconst ENDS_WRAP = 'wrap'\nconst ENDS_LOOP = 'loop'\n\nconst Default = {\n autoplay: false,\n ends: ENDS_LOOP,\n interval: 5000,\n keyboard: true,\n pause: 'hover'\n}\n\nconst DefaultType = {\n autoplay: 'boolean',\n ends: 'string',\n interval: 'number',\n keyboard: 'boolean',\n pause: '(string|boolean)'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // The scroll viewport. The browser owns sliding, dragging, momentum, and\n // keyboard scrolling; this controller only layers on autoplay, the\n // prev/next/indicator controls, and active-slide syncing.\n this._viewport = SelectorEngine.findOne(SELECTOR_INNER, this._element) || this._element\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._playPauseElement = SelectorEngine.findOne(SELECTOR_PLAY_PAUSE, this._element)\n // Prev/next controls scoped to the carousel root (covers inline and stacked\n // layouts). External controls placed outside `.carousel` aren't managed.\n this._prevControls = SelectorEngine.find(SELECTOR_DATA_SLIDE_PREV, this._element)\n this._nextControls = SelectorEngine.find(SELECTOR_DATA_SLIDE_NEXT, this._element)\n\n this._interval = null\n this._observer = null\n this._snapRestoreFrame = null\n // True while a seamless loop transition is animating, so the\n // IntersectionObserver and re-entrant navigation don't interfere.\n this._looping = false\n this._visibility = new Map()\n // Runtime autoplay intent. Starts from the `autoplay` option, but is turned\n // off once the user takes control (clicks a control, uses the keyboard,\n // swipes/drags, or presses pause) so we don't move content out from under\n // them (WCAG 2.2.2 Pause, Stop, Hide).\n this._playing = this._config.autoplay\n\n this._activeIndex = this._initialActiveIndex()\n\n this._addEventListeners()\n this._observeItems()\n this._refreshActiveState()\n\n if (this._playing) {\n this.cycle()\n }\n\n this._updatePlayPauseControl()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n next() {\n this.to(this._navIndex() + 1)\n }\n\n nextWhenVisible() {\n // Don't advance when the page or the carousel isn't visible\n if (document.visibilityState === 'visible' && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n this.to(this._navIndex() - 1)\n }\n\n pause() {\n this._clearInterval()\n // Freeze the indicator progress fill; it resets to empty until cycling\n // resumes and `_scheduleAutoplay` restarts it from scratch.\n this._element.classList.remove(CLASS_NAME_PLAYING)\n }\n\n cycle() {\n this._clearInterval()\n this._scheduleAutoplay()\n this._element.classList.add(CLASS_NAME_PLAYING)\n }\n\n to(index) {\n // Ignore navigation while a seamless loop transition is animating\n if (this._looping) {\n return\n }\n\n const items = this._getItems()\n const rawIndex = Number.parseInt(index, 10)\n\n // Seamless loop: continue forward/backward into a transient clone instead of\n // the visible `wrap` jump. Only the simple single-slide scroll layout\n // qualifies, and reduced motion falls back to the plain wrap below.\n if (this._config.ends === ENDS_LOOP && !this._prefersReducedMotion() && this._canLoop()) {\n if (rawIndex > items.length - 1) {\n this._loopTransition(true)\n return\n }\n\n if (rawIndex < 0) {\n this._loopTransition(false)\n return\n }\n }\n\n const targetIndex = this._normalizeIndex(rawIndex, items.length)\n // Measure \"current\" from the live scroll position: `_activeIndex` updates\n // asynchronously, so an indicator/control used mid-scroll must compare\n // against where the viewport actually rests (`_navIndex` returns the tracked\n // active index for fade/non-scrollable layouts).\n const currentIndex = this._navIndex()\n\n if (targetIndex === null || targetIndex === currentIndex) {\n return\n }\n\n const slideEvent = EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget: items[targetIndex],\n direction: this._direction(currentIndex, targetIndex),\n from: currentIndex,\n to: targetIndex\n })\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (this._isFade()) {\n this._fadeTo(targetIndex)\n return\n }\n\n // Scroll mode: the IntersectionObserver fires `slid` and syncs state once\n // the new slide settles into view.\n this._scrollToIndex(targetIndex)\n }\n\n dispose() {\n // Stop autoplay first: otherwise a pending timer would fire after the\n // instance is torn down and throw on the now-null `_element`.\n this._clearInterval()\n\n if (this._observer) {\n this._observer.disconnect()\n }\n\n if (this._snapRestoreFrame !== null) {\n cancelAnimationFrame(this._snapRestoreFrame)\n }\n\n // Tidy up any in-flight loop transition: drop a stray clone and restore\n // native snapping, so the viewport isn't left mid-animation.\n for (const clone of SelectorEngine.find(`.${CLASS_NAME_CLONE}`, this._viewport)) {\n clone.remove()\n }\n\n this._viewport.style.scrollSnapType = ''\n\n // The pointerdown listener lives on the viewport (`.carousel-inner`), which\n // `super.dispose()` doesn't clean up—it only drops listeners on `_element`.\n EventHandler.off(this._viewport, EVENT_KEY)\n\n super.dispose()\n }\n\n // Private\n // Normalize an unknown `ends` value so navigation and end-control logic can't\n // disagree about whether the carousel wraps.\n _configAfterMerge(config) {\n if (![ENDS_STOP, ENDS_WRAP, ENDS_LOOP].includes(config.ends)) {\n config.ends = Default.ends\n }\n\n return config\n }\n\n _initialActiveIndex() {\n const active = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const index = active ? this._getItems().indexOf(active) : 0\n return Math.max(index, 0)\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause())\n EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle())\n }\n\n // Dragging, swiping, or tapping the track is an explicit interaction\n EventHandler.on(this._viewport, EVENT_POINTERDOWN, () => this._pauseFromInteraction())\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n const direction = KEY_TO_DIRECTION[event.key]\n if (direction) {\n event.preventDefault()\n this._pauseFromInteraction()\n if (direction === DIRECTION_RIGHT) {\n this.prev()\n } else {\n this.next()\n }\n }\n }\n\n _observeItems() {\n // Fade mode stacks slides instead of scrolling, so there's nothing to observe\n if (this._isFade() || typeof IntersectionObserver === 'undefined') {\n return\n }\n\n this._observer = new IntersectionObserver(\n entries => this._handleIntersection(entries),\n { root: this._viewport, threshold: [0, 0.25, 0.5, 0.75, 1] }\n )\n\n for (const item of this._getItems()) {\n this._observer.observe(item)\n }\n }\n\n _handleIntersection(entries) {\n // A loop transition deliberately scrolls onto a transient clone; ignore the\n // visibility churn so it doesn't move the active index mid-animation.\n if (this._looping) {\n return\n }\n\n for (const entry of entries) {\n this._visibility.set(entry.target, entry.isIntersecting ? entry.intersectionRatio : 0)\n }\n\n const items = this._getItems()\n const ratios = items.map(item => this._visibility.get(item) ?? 0)\n const maxRatio = Math.max(...ratios)\n\n // Pick the left-most slide that's *near* fully visible rather than the strict\n // global maximum. After a programmatic scroll the viewport rests ~1px past\n // the target snap offset, so the intended left-most slide reports a ratio a\n // hair below the deeper, fully-visible ones (e.g. 0.997 vs 1.0). A strict max\n // would skip past it and inflate the active index by one, which breaks\n // multi-item next/prev. The tolerance keeps the intended slide active while\n // peeking slivers (well below the max) are still ignored.\n let bestIndex = this._activeIndex\n\n if (maxRatio > 0) {\n bestIndex = ratios.findIndex(ratio => ratio >= maxRatio - ACTIVE_RATIO_TOLERANCE)\n }\n\n this._setActive(bestIndex)\n // Keep the end controls in sync with the scroll position even when the\n // active index doesn't change (e.g. the final stretch of a multi-item\n // scroll, where the left-most slide is already the last reachable one).\n this._updateEndControls()\n }\n\n // The index a `next()`/`prev()` step is measured from. Scroll layouts read it\n // from the live scroll position instead of `this._activeIndex`, because the\n // IntersectionObserver updates that asynchronously: after one step the index\n // can still be stale, so the next step would compute the same target and\n // silently no-op (the \"the button does nothing / can't reach the end slide\"\n // symptom). Fade and non-scrollable layouts have no scroll position to read,\n // so they keep using the tracked active index (also what the unit tests rely\n // on when there's no real layout).\n _navIndex() {\n if (this._isFade() || (this._viewport.scrollWidth - this._viewport.clientWidth) <= 0) {\n return this._activeIndex\n }\n\n let index = this._activeIndex\n let smallestDelta = Number.POSITIVE_INFINITY\n\n for (const [itemIndex, item] of this._getItems().entries()) {\n // The slide currently resting at the active position has ~zero delta.\n const delta = Math.abs(this._scrollDelta(item))\n if (delta < smallestDelta) {\n smallestDelta = delta\n index = itemIndex\n }\n }\n\n return index\n }\n\n _scrollToIndex(index) {\n const item = this._getItems()[index]\n if (!item) {\n return\n }\n\n const left = this._scrollDelta(item)\n if (Math.abs(left) < 1) {\n return\n }\n\n // `scroll-snap-stop: always` keeps user wheel/touch flings to a single slide,\n // but it also clamps *programmatic* scrolls to one snap point — which would\n // break multi-slide jumps from an indicator click, `to()`, or wrapping from\n // the last slide back to the first. Disable snapping for the duration of the\n // programmatic scroll, then restore it once the scroll settles so the slide\n // still rests precisely (honouring peek/gap).\n const targetLeft = this._viewport.scrollLeft + left\n this._viewport.style.scrollSnapType = 'none'\n this._viewport.scrollBy({\n left,\n top: 0,\n // `'instant'` (not `'auto'`) for reduced motion: the viewport sets\n // `scroll-behavior: smooth` in CSS, and `'auto'` defers to it, so it would\n // still animate. `'instant'` forces an immediate, motion-free jump.\n behavior: this._prefersReducedMotion() ? 'instant' : 'smooth'\n })\n this._restoreSnapWhenSettled(targetLeft, index)\n }\n\n // Horizontal distance to scroll the viewport so `element` rests where the\n // active slide should sit. Scroll the viewport itself rather than calling\n // `element.scrollIntoView()`: the latter scrolls *every* scrollable ancestor\n // (including the page), so an autoplaying carousel below the fold would yank\n // the whole page to itself on each tick. Using bounding rects keeps it\n // direction-agnostic (works in RTL).\n _scrollDelta(element) {\n const viewportRect = this._viewport.getBoundingClientRect()\n const rect = element.getBoundingClientRect()\n\n if (this._element.classList.contains(CLASS_NAME_CENTER)) {\n return (rect.left + (rect.width / 2)) - (viewportRect.left + (viewportRect.width / 2))\n }\n\n // Start alignment: rest the slide at the scroll-padding (peek) offset, which\n // is exactly where scroll-snap will settle. Aligning flush to the edge\n // instead would make the browser re-snap by `peek` once snapping is restored,\n // producing a visible secondary nudge after the programmatic scroll.\n const padStart = Number.parseFloat(getComputedStyle(this._viewport).scrollPaddingInlineStart) || 0\n\n return isRTL() ?\n rect.right - (viewportRect.right - padStart) :\n rect.left - (viewportRect.left + padStart)\n }\n\n // Seamless loop: continue past an end into a one-off clone of the destination\n // slide, then teleport to the real slide so there's no visible backward jump.\n _loopTransition(isNext) {\n const items = this._getItems()\n const last = items.length - 1\n const fromIndex = this._activeIndex\n const toIndex = isNext ? 0 : last\n const direction = this._loopDirection(isNext)\n\n const slideEvent = EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget: items[toIndex],\n direction,\n from: fromIndex,\n to: toIndex\n })\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n this._looping = true\n\n const clone = (isNext ? items[0] : items[last]).cloneNode(true)\n clone.classList.add(CLASS_NAME_CLONE)\n clone.classList.remove(CLASS_NAME_ACTIVE)\n clone.removeAttribute('id')\n // Also strip ids from the cloned subtree to avoid duplicate ids while the\n // clone is on screen.\n for (const node of SelectorEngine.find('[id]', clone)) {\n node.removeAttribute('id')\n }\n\n clone.setAttribute('aria-hidden', 'true')\n clone.inert = true\n\n this._viewport.style.scrollSnapType = 'none'\n\n if (isNext) {\n this._viewport.append(clone)\n } else {\n this._viewport.prepend(clone)\n // Prepending shifts the real slides to the right; instantly re-align the\n // current slide so the insertion doesn't flash before we animate.\n this._jumpScroll(this._scrollDelta(items[fromIndex]))\n }\n\n this._viewport.scrollBy({\n left: this._scrollDelta(clone),\n top: 0,\n behavior: 'smooth'\n })\n\n this._afterScrollSettles(() => {\n // Teleport to the real destination without animation. JS runs to\n // completion before the browser paints, so removing the clone and the\n // compensating scroll land in a single frame (no visible flash).\n clone.remove()\n this._jumpScroll(this._scrollDelta(items[toIndex]))\n\n this._activeIndex = toIndex\n this._refreshActiveState()\n\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: items[toIndex],\n direction,\n from: fromIndex,\n to: toIndex\n })\n\n this._viewport.style.scrollSnapType = ''\n this._looping = false\n })\n }\n\n _loopDirection(isNext) {\n if (isRTL()) {\n return isNext ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n return isNext ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n // Instant (non-animated) scroll with snapping suspended, used to teleport the\n // viewport during a loop transition. `behavior: 'instant'` is required because\n // the viewport sets `scroll-behavior: smooth` in CSS, and `'auto'` would defer\n // to it and animate the teleport (a visible backward slide).\n _jumpScroll(delta) {\n this._viewport.style.scrollSnapType = 'none'\n this._viewport.scrollBy({ left: delta, top: 0, behavior: 'instant' })\n }\n\n // Re-enable scroll snapping once the viewport reaches `targetLeft` (or stops\n // moving). Passing the target matters: restoring `mandatory` snapping re-snaps\n // to the *nearest* snap point, so if we restored mid-animation the viewport\n // could jump back to the slide we came from — most visible stepping to the\n // first/last slide, where it looks like the control \"doesn't work\".\n _restoreSnapWhenSettled(targetLeft, index) {\n this._afterScrollSettles(() => {\n this._viewport.style.scrollSnapType = ''\n // Without IntersectionObserver nothing else fires `slid`/updates the active\n // slide after a programmatic scroll, so do it here. With the observer\n // present this is a no-op (it already moved the active index to `index`).\n if (!this._observer && index !== undefined) {\n this._setActive(index)\n }\n\n // The IntersectionObserver doesn't fire once the viewport has stopped, so\n // refresh the end controls here to catch the final ~1px settle landing\n // exactly on the scroll extent (e.g. disabling `next` at the last view).\n this._updateEndControls()\n }, targetLeft)\n }\n\n // Invoke `callback` once the viewport stops moving. We watch the scroll\n // position across frames instead of relying on the `scrollend` event, which\n // isn't available across our supported browsers yet.\n //\n // Crucially, we only start counting \"stable\" frames once the scroll has\n // actually moved. A smooth `scrollBy` doesn't update `scrollLeft` for the first\n // frame or two, so naively treating those initial unchanged frames as\n // \"settled\" would re-enable `mandatory` snapping mid-animation — which cancels\n // the in-flight programmatic scroll and lands on the wrong slide (most visible\n // in multi-item layouts). If the scroll never moves (delta clamped at an end,\n // or `scrollBy` stubbed out in unit tests), we fall back to a short frame cap.\n //\n // When `targetLeft` is known we also finish the moment we arrive there, so the\n // snap is restored exactly on the destination snap point and can't re-snap the\n // viewport backwards (the failure mode where stepping to the first/last slide\n // appears to do nothing).\n _afterScrollSettles(callback, targetLeft) {\n if (typeof requestAnimationFrame === 'undefined') {\n callback()\n return\n }\n\n if (this._snapRestoreFrame !== null) {\n cancelAnimationFrame(this._snapRestoreFrame)\n }\n\n const startLeft = this._viewport.scrollLeft\n let lastLeft = startLeft\n let stableFrames = 0\n let waited = 0\n let hasMoved = false\n\n const tick = () => {\n const currentLeft = this._viewport.scrollLeft\n const reachedTarget = targetLeft !== undefined && Math.abs(currentLeft - targetLeft) <= 1\n\n if (Math.abs(currentLeft - startLeft) > 1) {\n hasMoved = true\n }\n\n // Only accrue stable frames after movement begins, so the pre-animation\n // and ease-in frames don't prematurely count as settled.\n if (hasMoved) {\n stableFrames = Math.abs(currentLeft - lastLeft) < 1 ? stableFrames + 1 : 0\n }\n\n lastLeft = currentLeft\n waited += 1\n\n if (reachedTarget || (hasMoved && stableFrames >= 3) || (!hasMoved && waited >= SCROLL_SETTLE_MAX_FRAMES)) {\n this._snapRestoreFrame = null\n callback()\n return\n }\n\n this._snapRestoreFrame = requestAnimationFrame(tick)\n }\n\n this._snapRestoreFrame = requestAnimationFrame(tick)\n }\n\n // Fade mode just swaps the active class; the CSS opacity transition on\n // `.carousel-item` performs the crossfade over `--carousel-fade-duration` (and\n // collapses to an instant swap under reduced motion, via the `transition`\n // mixin). It deliberately avoids the View Transition API: a view transition\n // crossfades a page snapshot over its own (shorter) duration while this CSS\n // fade also runs underneath, so the two animations overlap and visibly stutter.\n _fadeTo(index) {\n this._setActive(index)\n }\n\n _setActive(index) {\n const items = this._getItems()\n if (index === this._activeIndex || !items[index]) {\n return\n }\n\n const from = this._activeIndex\n\n this._activeIndex = index\n this._refreshActiveState()\n\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: items[index],\n direction: this._direction(from, index),\n from,\n to: index\n })\n }\n\n _refreshActiveState() {\n const items = this._getItems()\n\n for (const [index, item] of items.entries()) {\n item.classList.toggle(CLASS_NAME_ACTIVE, index === this._activeIndex)\n }\n\n this._setActiveIndicatorElement(this._activeIndex)\n this._updateEndControls()\n }\n\n _updateEndControls() {\n // Only `ends: 'stop'` has real ends; under `wrap`/`loop` you can always\n // advance, so disabling end controls would be meaningless. When stopping,\n // disable the prev control at the start of the scroll range and the next\n // control at the end so there are no dead end-buttons.\n if (this._config.ends !== ENDS_STOP) {\n return\n }\n\n const viewport = this._viewport\n const maxScroll = viewport.scrollWidth - viewport.clientWidth\n\n let atStart\n let atEnd\n\n if (maxScroll > 0) {\n // Scrollable: measure the real scroll extent so this works for multi-item,\n // peek, and variable-width layouts where the last slide can never become\n // the left-most (active) one. `Math.abs` keeps it correct in RTL, where\n // `scrollLeft` runs from 0 down to negative.\n const progress = Math.abs(viewport.scrollLeft)\n atStart = progress <= 1\n atEnd = progress >= maxScroll - 1\n } else {\n // Not scrollable (or no layout yet, e.g. in unit tests): fall back to the\n // active index for the single-slide case.\n const last = this._getItems().length - 1\n atStart = this._activeIndex <= 0\n atEnd = this._activeIndex >= last\n }\n\n this._setControlsDisabled(this._prevControls, atStart)\n this._setControlsDisabled(this._nextControls, atEnd)\n }\n\n _setControlsDisabled(controls, disabled) {\n for (const control of controls) {\n // a11y: if we're about to disable the focused control, move focus to the\n // opposite (still-enabled) control so focus isn't lost.\n if (disabled && control === document.activeElement) {\n const opposite = controls === this._prevControls ? this._nextControls : this._prevControls\n const fallback = opposite[0] ?? this._viewport\n // `preventScroll` so moving focus doesn't yank the page/viewport to the\n // newly-focused control mid-navigation.\n fallback.focus({ preventScroll: true })\n }\n\n control.disabled = disabled\n }\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return\n }\n\n const active = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n active.removeAttribute('aria-current')\n }\n\n const newActive = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement)\n if (newActive) {\n newActive.classList.add(CLASS_NAME_ACTIVE)\n newActive.setAttribute('aria-current', 'true')\n }\n }\n\n _normalizeIndex(index, length) {\n if (Number.isNaN(index) || length === 0) {\n return null\n }\n\n if (index < 0) {\n return this._wrapsAround() ? length - 1 : null\n }\n\n if (index > length - 1) {\n return this._wrapsAround() ? 0 : null\n }\n\n return index\n }\n\n // Whether navigating past an end wraps to the other end. `loop` continues\n // seamlessly where it can (see `_canLoop`) and otherwise behaves like `wrap`.\n _wrapsAround() {\n return this._config.ends === ENDS_WRAP || this._config.ends === ENDS_LOOP\n }\n\n // Seamless looping is only supported for the simple single-slide scroll\n // layout. Multi-item, peek, center, and variable-width layouts fall back to\n // the plain `wrap` jump.\n _canLoop() {\n if (this._isFade() || this._getItems().length < 2) {\n return false\n }\n\n const styles = getComputedStyle(this._element)\n const num = name => Number.parseFloat(styles.getPropertyValue(name)) || 0\n\n // These are the shipped, `--bs-`-prefixed custom properties (the build\n // prefixes every custom property), not the bare names used in the SCSS source.\n return (num('--bs-carousel-items') || 1) === 1 &&\n num('--bs-carousel-items-peek') === 0 &&\n !this._element.classList.contains(CLASS_NAME_CENTER) &&\n !this._element.classList.contains(CLASS_NAME_AUTO)\n }\n\n _direction(from, to) {\n const isNext = to > from\n if (isRTL()) {\n return isNext ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n return isNext ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n _scheduleAutoplay(index = this._activeIndex) {\n const interval = this._itemInterval(index)\n // Expose the wait so the active indicator's CSS fill matches it.\n this._element.style.setProperty(PROPERTY_INTERVAL, `${interval}ms`)\n this._interval = setTimeout(() => {\n // Capture the slide the advance lands on *before* navigating: the active\n // index only updates once the scroll settles (asynchronously), so reading\n // it after `nextWhenVisible()` would schedule the next wait from the slide\n // we're leaving — making per-item `data-bs-interval`s lag by one slide.\n const upcoming = this._upcomingIndex()\n this.nextWhenVisible()\n\n // Nothing comes after the last slide when `ends: 'stop'`; stop cycling\n // instead of re-arming a timer that can never advance.\n if (upcoming === null) {\n this.pause()\n return\n }\n\n this._scheduleAutoplay(upcoming)\n }, interval)\n }\n\n // The slide the next autoplay tick will rest on, derived from the live scroll\n // position (which still reflects the current slide when the timer fires).\n // Returns `null` when there's nowhere left to advance (`ends: stop` at the end).\n _upcomingIndex() {\n return this._normalizeIndex(this._navIndex() + 1, this._getItems().length)\n }\n\n _itemInterval(index = this._activeIndex) {\n const item = this._getItems()[index]\n const interval = item ? Number.parseInt(item.getAttribute('data-bs-interval'), 10) : Number.NaN\n return Number.isNaN(interval) ? this._config.interval : interval\n }\n\n _maybeEnableCycle() {\n if (!this._playing) {\n return\n }\n\n this.cycle()\n }\n\n // Turn autoplay off for good once the user interacts with the carousel\n _pauseFromInteraction() {\n this._playing = false\n this.pause()\n this._updatePlayPauseControl()\n }\n\n _togglePlayPause() {\n if (this._playing) {\n this._pauseFromInteraction()\n return\n }\n\n this._playing = true\n this.cycle()\n this._updatePlayPauseControl()\n }\n\n _updatePlayPauseControl() {\n if (!this._playPauseElement) {\n return\n }\n\n this._playPauseElement.classList.toggle(CLASS_NAME_PAUSED, !this._playing)\n\n const label = this._playPauseElement.getAttribute(\n this._playing ? 'data-bs-pause-label' : 'data-bs-play-label'\n )\n\n if (label) {\n this._playPauseElement.setAttribute('aria-label', label)\n }\n }\n\n _isFade() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _prefersReducedMotion() {\n return typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element)\n }\n\n _clearInterval() {\n if (this._interval) {\n clearTimeout(this._interval)\n this._interval = null\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n const carousel = Carousel.getOrCreateInstance(target)\n\n // Manually cycling the carousel is an explicit interaction, so stop autoplay\n carousel._pauseFromInteraction()\n\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n carousel.to(slideIndex)\n return\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next()\n return\n }\n\n carousel.prev()\n})\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_PLAY_PAUSE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n Carousel.getOrCreateInstance(target)._togglePlayPause()\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_AUTOPLAY)\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel)\n }\n})\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getElement,\n reflow\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\nconst Default = {\n parent: null,\n toggle: true\n}\n\nconst DefaultType = {\n parent: '(null|element)',\n toggle: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._triggerArray = []\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElement => foundElement === this._element)\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem)\n }\n }\n\n this._initializeChildren()\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown())\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return\n }\n\n let activeChildren = []\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\n .filter(element => element !== this._element)\n .map(element => Collapse.getOrCreateInstance(element, { toggle: false }))\n }\n\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide()\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n this._addAriaAndCollapsedClass(this._triggerArray, true)\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n this._element.style[dimension] = ''\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n this._queueCallback(complete, this._element, true)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger)\n\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false)\n }\n }\n\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n this._queueCallback(complete, this._element, true)\n }\n\n // Private\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle) // Coerce string values\n config.parent = getElement(config.parent)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE)\n\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element)\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected))\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element))\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return\n }\n\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen)\n element.setAttribute('aria-expanded', isOpen)\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {\n event.preventDefault()\n }\n\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, { toggle: false }).toggle()\n }\n})\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/floating-ui.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isRTL } from './index.js'\n\n/**\n * Breakpoints for responsive placement (matches SCSS $breakpoints)\n */\nexport const BREAKPOINTS = {\n sm: 576,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536\n}\n\n/**\n * Default placement with RTL support\n */\nexport const getDefaultPlacement = (fallback = 'bottom') => {\n if (fallback.includes('-start') || fallback.includes('-end')) {\n const [side, alignment] = fallback.split('-')\n const flippedAlignment = alignment === 'start' ? 'end' : 'start'\n return isRTL() ? `${side}-${flippedAlignment}` : fallback\n }\n\n return fallback\n}\n\n/**\n * Parse a placement string that may contain responsive prefixes\n * Example: \"bottom-start md:top-end lg:right\" returns { xs: 'bottom-start', md: 'top-end', lg: 'right' }\n *\n * @param {string} placementString - The placement string to parse\n * @param {string} defaultPlacement - The default placement to use for xs/base\n * @returns {object|null} - Object with breakpoint keys and placement values, or null if not responsive\n */\nexport const parseResponsivePlacement = (placementString, defaultPlacement = 'bottom') => {\n // Check if placement contains responsive prefixes (e.g., \"bottom-start md:top-end\")\n if (!placementString || !placementString.includes(':')) {\n return null\n }\n\n // Parse the placement string into breakpoint-keyed object\n const parts = placementString.split(/\\s+/)\n const placements = { xs: defaultPlacement } // Default fallback\n\n for (const part of parts) {\n if (part.includes(':')) {\n // Responsive placement like \"md:top-end\"\n const [breakpoint, placement] = part.split(':')\n if (BREAKPOINTS[breakpoint] !== undefined) {\n placements[breakpoint] = placement\n }\n } else {\n // Base placement (no prefix = xs/default)\n placements.xs = part\n }\n }\n\n return placements\n}\n\n/**\n * Get the active placement for the current viewport width\n *\n * @param {object} responsivePlacements - Object with breakpoint keys and placement values\n * @param {string} defaultPlacement - Fallback placement\n * @returns {string} - The active placement for current viewport\n */\nexport const getResponsivePlacement = (responsivePlacements, defaultPlacement = 'bottom') => {\n if (!responsivePlacements) {\n return defaultPlacement\n }\n\n // Get current viewport width\n const viewportWidth = window.innerWidth\n\n // Find the largest breakpoint that matches\n let activePlacement = responsivePlacements.xs || defaultPlacement\n\n // Check breakpoints in order (sm, md, lg, xl, 2xl)\n const breakpointOrder = ['sm', 'md', 'lg', 'xl', '2xl']\n\n for (const breakpoint of breakpointOrder) {\n const minWidth = BREAKPOINTS[breakpoint]\n if (viewportWidth >= minWidth && responsivePlacements[breakpoint]) {\n activePlacement = responsivePlacements[breakpoint]\n }\n }\n\n return activePlacement\n}\n\n/**\n * Create media query listeners for responsive placement changes\n *\n * @param {Function} callback - Callback to run when breakpoint changes\n * @returns {Array} - Array of { mql, handler } objects for cleanup\n */\nexport const createBreakpointListeners = callback => {\n const listeners = []\n\n for (const breakpoint of Object.keys(BREAKPOINTS)) {\n const minWidth = BREAKPOINTS[breakpoint]\n const mql = window.matchMedia(`(min-width: ${minWidth}px)`)\n\n mql.addEventListener('change', callback)\n listeners.push({ mql, handler: callback })\n }\n\n return listeners\n}\n\n/**\n * Clean up media query listeners\n *\n * @param {Array} listeners - Array of { mql, handler } objects\n */\nexport const disposeBreakpointListeners = listeners => {\n for (const { mql, handler } of listeners) {\n mql.removeEventListener('change', handler)\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap menu.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n computePosition,\n flip,\n shift,\n offset,\n autoUpdate\n} from '@floating-ui/dom'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n execute,\n getElement,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop\n} from './util/index.js'\nimport {\n parseResponsivePlacement,\n getResponsivePlacement,\n createBreakpointListeners,\n disposeBreakpointListeners\n} from './util/floating-ui.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'menu'\nconst DATA_KEY = 'bs.menu'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\nconst ENTER_KEY = 'Enter'\nconst SPACE_KEY = ' '\nconst RIGHT_MOUSE_BUTTON = 2\n\nconst SUBMENU_CLOSE_DELAY = 100\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"menu\"]:not(.disabled):not(:disabled)'\n\nconst SELECTOR_MENU = '.menu'\nconst SELECTOR_SUBMENU = '.submenu'\nconst SELECTOR_SUBMENU_TOGGLE = '.submenu > .menu-item'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.menu-item:not(.disabled):not(:disabled)'\n\nconst DEFAULT_PLACEMENT = 'bottom-start'\nconst SUBMENU_PLACEMENT = 'end-start'\n\nconst resolveLogicalPlacement = placement => {\n if (isRTL()) {\n return placement.replace(/^start(?=-|$)/, 'right').replace(/^end(?=-|$)/, 'left')\n }\n\n return placement.replace(/^start(?=-|$)/, 'left').replace(/^end(?=-|$)/, 'right')\n}\n\nconst triangleSign = (p1, p2, p3) =>\n ((p1.x - p3.x) * (p2.y - p3.y)) - ((p2.x - p3.x) * (p1.y - p3.y))\n\nconst Default = {\n autoClose: true,\n boundary: 'clippingParents',\n container: false,\n display: 'dynamic',\n offset: [0, 2],\n floatingConfig: null,\n menu: null,\n placement: DEFAULT_PLACEMENT,\n reference: 'toggle',\n strategy: 'absolute',\n submenuTrigger: 'both',\n submenuDelay: SUBMENU_CLOSE_DELAY\n}\n\nconst DefaultType = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n display: 'string',\n offset: '(array|string|function)',\n floatingConfig: '(null|object|function)',\n menu: '(null|element)',\n placement: 'string',\n reference: '(string|element|object)',\n strategy: 'string',\n submenuTrigger: 'string',\n submenuDelay: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass Menu extends BaseComponent {\n static _openInstances = new Set()\n\n constructor(element, config) {\n if (typeof computePosition === 'undefined') {\n throw new TypeError('Bootstrap\\'s menus require Floating UI (https://floating-ui.com)')\n }\n\n super(element, config)\n\n this._floatingCleanup = null\n this._mediaQueryListeners = []\n this._responsivePlacements = null\n this._parent = this._element.parentNode\n this._isSubmenu = this._parent.classList?.contains('submenu')\n this._openSubmenus = new Map()\n this._submenuCloseTimeouts = new Map()\n this._hoverIntentData = null\n\n this._menu = this._config.menu || this._findMenu()\n\n this._menuOriginalParent = this._menu?.parentNode\n\n this._parseResponsivePlacements()\n this._setupSubmenuListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._moveMenuToContainer()\n this._createFloating()\n\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of document.body.children) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n this._element.focus({ focusVisible: false })\n this._element.setAttribute('aria-expanded', 'true')\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.add(CLASS_NAME_SHOW)\n }\n\n Menu._openInstances.add(this)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n this._disposeMediaQueryListeners()\n this._closeAllSubmenus()\n this._clearAllSubmenuTimeouts()\n Menu._openInstances.delete(this)\n super.dispose()\n }\n\n update() {\n if (this._floatingCleanup) {\n this._updateFloatingPosition()\n }\n }\n\n // Private\n _findMenu() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.prev(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.findOne(SELECTOR_MENU, this._parent)\n }\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._closeAllSubmenus()\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.remove(CLASS_NAME_SHOW)\n }\n\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'placement')\n Manipulator.removeDataAttribute(this._menu, 'display')\n Menu._openInstances.delete(this)\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = super._getConfig(config)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createFloating() {\n if (this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'display', 'static')\n return\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n this._updateFloatingPosition(referenceElement)\n\n this._floatingCleanup = autoUpdate(\n referenceElement,\n this._menu,\n () => this._updateFloatingPosition(referenceElement)\n )\n }\n\n async _updateFloatingPosition(referenceElement = null) {\n if (!this._menu) {\n return\n }\n\n if (!referenceElement) {\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n } else {\n referenceElement = this._element\n }\n }\n\n const placement = this._getPlacement()\n const middleware = this._getFloatingMiddleware()\n const floatingConfig = this._getFloatingConfig(placement, middleware)\n\n await this._applyFloatingPosition(\n referenceElement,\n this._menu,\n floatingConfig.placement,\n floatingConfig.middleware,\n floatingConfig.strategy\n )\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement() {\n const placement = this._responsivePlacements ?\n getResponsivePlacement(this._responsivePlacements, DEFAULT_PLACEMENT) :\n this._config.placement\n\n return resolveLogicalPlacement(placement)\n }\n\n _parseResponsivePlacements() {\n this._responsivePlacements = parseResponsivePlacement(this._config.placement, DEFAULT_PLACEMENT)\n\n if (this._responsivePlacements) {\n this._setupMediaQueryListeners()\n }\n }\n\n _setupMediaQueryListeners() {\n this._disposeMediaQueryListeners()\n this._mediaQueryListeners = createBreakpointListeners(() => {\n if (this._isShown()) {\n this._updateFloatingPosition()\n }\n })\n }\n\n _disposeMediaQueryListeners() {\n disposeBreakpointListeners(this._mediaQueryListeners)\n this._mediaQueryListeners = []\n }\n\n _getOffset() {\n const { offset: offsetConfig } = this._config\n\n if (typeof offsetConfig === 'string') {\n return offsetConfig.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offsetConfig === 'function') {\n return ({ placement, rects }) => {\n const result = offsetConfig({ placement, reference: rects.reference, floating: rects.floating }, this._element)\n return result\n }\n }\n\n return offsetConfig\n }\n\n _getFloatingMiddleware() {\n const offsetValue = this._getOffset()\n\n const middleware = [\n offset(\n typeof offsetValue === 'function' ?\n offsetValue :\n { mainAxis: offsetValue[1] || 0, crossAxis: offsetValue[0] || 0 }\n ),\n flip({\n fallbackPlacements: this._getFallbackPlacements()\n }),\n shift({\n boundary: this._config.boundary === 'clippingParents' ? 'clippingAncestors' : this._config.boundary\n })\n ]\n\n return middleware\n }\n\n _getFallbackPlacements() {\n const placement = this._getPlacement()\n\n const fallbackMap = {\n bottom: ['top', 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\n 'bottom-start': ['top-start', 'bottom-end', 'top-end'],\n 'bottom-end': ['top-end', 'bottom-start', 'top-start'],\n top: ['bottom', 'top-start', 'top-end', 'bottom-start', 'bottom-end'],\n 'top-start': ['bottom-start', 'top-end', 'bottom-end'],\n 'top-end': ['bottom-end', 'top-start', 'bottom-start'],\n right: ['left', 'right-start', 'right-end', 'left-start', 'left-end'],\n 'right-start': ['left-start', 'right-end', 'left-end', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'right-start', 'left-start', 'top-end', 'bottom-end'],\n left: ['right', 'left-start', 'left-end', 'right-start', 'right-end'],\n 'left-start': ['right-start', 'left-end', 'right-end', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'left-start', 'right-start', 'top-end', 'bottom-end']\n }\n\n return fallbackMap[placement] || ['top', 'bottom', 'right', 'left']\n }\n\n _getFloatingConfig(placement, middleware) {\n const defaultConfig = {\n placement,\n middleware,\n strategy: this._config.strategy\n }\n\n return {\n ...defaultConfig,\n ...execute(this._config.floatingConfig, [undefined, defaultConfig])\n }\n }\n\n _disposeFloating() {\n if (this._floatingCleanup) {\n this._floatingCleanup()\n this._floatingCleanup = null\n }\n }\n\n _getContainer() {\n const { container } = this._config\n if (container === false) {\n return null\n }\n\n return container === true ? document.body : getElement(container)\n }\n\n _moveMenuToContainer() {\n const container = this._getContainer()\n if (!container || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== container) {\n container.append(this._menu)\n }\n }\n\n _restoreMenuToOriginalParent() {\n if (!this._menuOriginalParent || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== this._menuOriginalParent) {\n this._menuOriginalParent.append(this._menu)\n }\n }\n\n async _applyFloatingPosition(reference, floating, placement, middleware, strategy = 'absolute') {\n if (!floating.isConnected) {\n return null\n }\n\n const { x, y, placement: finalPlacement } = await computePosition(\n reference,\n floating,\n { placement, middleware, strategy }\n )\n\n if (!floating.isConnected) {\n return null\n }\n\n Object.assign(floating.style, {\n position: strategy,\n left: `${x}px`,\n top: `${y}px`,\n margin: '0'\n })\n\n Manipulator.setDataAttribute(floating, 'placement', finalPlacement)\n return finalPlacement\n }\n\n // -------------------------------------------------------------------------\n // Submenu handling\n // -------------------------------------------------------------------------\n\n _setupSubmenuListeners() {\n if (this._config.submenuTrigger === 'hover' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'mouseenter', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerEnter(event)\n })\n\n EventHandler.on(this._menu, 'mouseleave', SELECTOR_SUBMENU, event => {\n this._onSubmenuLeave(event)\n })\n\n EventHandler.on(this._menu, 'mousemove', event => {\n this._trackMousePosition(event)\n })\n }\n\n if (this._config.submenuTrigger === 'click' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'click', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerClick(event)\n })\n }\n }\n\n _onSubmenuTriggerEnter(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n this._cancelSubmenuCloseTimeout(submenu)\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n\n _onSubmenuLeave(event) {\n const submenuWrapper = event.target.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu || !this._openSubmenus.has(submenu)) {\n return\n }\n\n if (this._isMovingTowardSubmenu(event, submenu)) {\n return\n }\n\n this._scheduleSubmenuClose(submenu, submenuWrapper)\n }\n\n _onSubmenuTriggerClick(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n if (this._openSubmenus.has(submenu)) {\n this._closeSubmenu(submenu, submenuWrapper)\n } else {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n }\n\n _openSubmenu(trigger, submenu, submenuWrapper) {\n if (this._openSubmenus.has(submenu)) {\n return\n }\n\n trigger.setAttribute('aria-expanded', 'true')\n trigger.setAttribute('aria-haspopup', 'true')\n\n submenu.classList.add(CLASS_NAME_SHOW)\n submenuWrapper.classList.add(CLASS_NAME_SHOW)\n\n const cleanup = this._createSubmenuFloating(trigger, submenu, submenuWrapper)\n this._openSubmenus.set(submenu, cleanup)\n\n EventHandler.on(submenu, 'mouseenter', () => {\n this._cancelSubmenuCloseTimeout(submenu)\n })\n }\n\n _closeSubmenu(submenu, submenuWrapper) {\n if (!this._openSubmenus.has(submenu)) {\n return\n }\n\n const nestedSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, submenu)\n for (const nested of nestedSubmenus) {\n const nestedWrapper = nested.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(nested, nestedWrapper)\n }\n\n const trigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, submenuWrapper)\n\n const cleanup = this._openSubmenus.get(submenu)\n if (cleanup) {\n cleanup()\n }\n\n this._openSubmenus.delete(submenu)\n EventHandler.off(submenu, 'mouseenter')\n\n if (trigger) {\n trigger.setAttribute('aria-expanded', 'false')\n }\n\n submenu.classList.remove(CLASS_NAME_SHOW)\n submenuWrapper.classList.remove(CLASS_NAME_SHOW)\n\n submenu.style.position = ''\n submenu.style.left = ''\n submenu.style.top = ''\n submenu.style.margin = ''\n }\n\n _closeAllSubmenus() {\n for (const [submenu] of this._openSubmenus) {\n const submenuWrapper = submenu.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(submenu, submenuWrapper)\n }\n }\n\n _closeSiblingSubmenus(currentSubmenuWrapper) {\n const parent = currentSubmenuWrapper.parentNode\n const siblingSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} > ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, parent)\n\n for (const siblingMenu of siblingSubmenus) {\n const siblingWrapper = siblingMenu.closest(SELECTOR_SUBMENU)\n if (siblingWrapper !== currentSubmenuWrapper) {\n this._closeSubmenu(siblingMenu, siblingWrapper)\n }\n }\n }\n\n _createSubmenuFloating(trigger, submenu, submenuWrapper) {\n const referenceElement = submenuWrapper\n const placement = resolveLogicalPlacement(SUBMENU_PLACEMENT)\n const middleware = [\n offset({ mainAxis: 0, crossAxis: -4 }),\n flip({\n fallbackPlacements: [\n resolveLogicalPlacement('start-start'),\n resolveLogicalPlacement('end-end'),\n resolveLogicalPlacement('start-end')\n ]\n }),\n shift({ padding: 8 })\n ]\n\n const updatePosition = () => this._applyFloatingPosition(referenceElement, submenu, placement, middleware)\n\n updatePosition()\n return autoUpdate(referenceElement, submenu, updatePosition)\n }\n\n _scheduleSubmenuClose(submenu, submenuWrapper) {\n this._cancelSubmenuCloseTimeout(submenu)\n\n const timeoutId = setTimeout(() => {\n this._closeSubmenu(submenu, submenuWrapper)\n this._submenuCloseTimeouts.delete(submenu)\n }, this._config.submenuDelay)\n\n this._submenuCloseTimeouts.set(submenu, timeoutId)\n }\n\n _cancelSubmenuCloseTimeout(submenu) {\n const timeoutId = this._submenuCloseTimeouts.get(submenu)\n if (timeoutId) {\n clearTimeout(timeoutId)\n this._submenuCloseTimeouts.delete(submenu)\n }\n }\n\n _clearAllSubmenuTimeouts() {\n for (const timeoutId of this._submenuCloseTimeouts.values()) {\n clearTimeout(timeoutId)\n }\n\n this._submenuCloseTimeouts.clear()\n }\n\n // -------------------------------------------------------------------------\n // Hover intent / Safe triangle\n // -------------------------------------------------------------------------\n\n _trackMousePosition(event) {\n this._hoverIntentData = {\n x: event.clientX,\n y: event.clientY,\n timestamp: Date.now()\n }\n }\n\n _isMovingTowardSubmenu(event, submenu) {\n if (!this._hoverIntentData) {\n return false\n }\n\n const submenuRect = submenu.getBoundingClientRect()\n const currentPos = { x: event.clientX, y: event.clientY }\n const lastPos = { x: this._hoverIntentData.x, y: this._hoverIntentData.y }\n\n const isRtl = isRTL()\n const targetX = isRtl ? submenuRect.right : submenuRect.left\n const topCorner = { x: targetX, y: submenuRect.top }\n const bottomCorner = { x: targetX, y: submenuRect.bottom }\n\n return this._pointInTriangle(currentPos, lastPos, topCorner, bottomCorner)\n }\n\n _pointInTriangle(point, v1, v2, v3) {\n const d1 = triangleSign(point, v1, v2)\n const d2 = triangleSign(point, v2, v3)\n const d3 = triangleSign(point, v3, v1)\n\n const hasNeg = (d1 < 0) || (d2 < 0) || (d3 < 0)\n const hasPos = (d1 > 0) || (d2 > 0) || (d3 > 0)\n\n return !(hasNeg && hasPos)\n }\n\n // -------------------------------------------------------------------------\n // Keyboard navigation\n // -------------------------------------------------------------------------\n\n _selectMenuItem({ key, target }) {\n const currentMenu = target.closest(SELECTOR_MENU) || this._menu\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (!items.length) {\n return\n }\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n _handleSubmenuKeydown(event) {\n const { key, target } = event\n const isRtl = isRTL()\n\n const enterKey = isRtl ? ARROW_LEFT_KEY : ARROW_RIGHT_KEY\n const exitKey = isRtl ? ARROW_RIGHT_KEY : ARROW_LEFT_KEY\n\n const submenuWrapper = target.closest(SELECTOR_SUBMENU)\n const isSubmenuTrigger = submenuWrapper && target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === enterKey && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === exitKey) {\n const currentMenu = target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper) {\n event.preventDefault()\n event.stopPropagation()\n\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n this._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return true\n }\n }\n\n if (key === HOME_KEY || key === END_KEY) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = target.closest(SELECTOR_MENU)\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (items.length) {\n const targetItem = key === HOME_KEY ? items[0] : items.at(-1)\n targetItem.focus()\n }\n\n return true\n }\n\n return false\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n for (const instance of Menu._openInstances) {\n if (instance._config.autoClose === false) {\n continue\n }\n\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(instance._menu)\n if (\n composedPath.includes(instance._element) ||\n (instance._config.autoClose === 'inside' && !isMenuTarget) ||\n (instance._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n if (instance._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n const relatedTarget = { relatedTarget: instance._element }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n instance._completeHide(relatedTarget)\n }\n }\n\n static dataApiKeydownHandler(event) {\n const isInput = /input|textarea/i.test(event.target.tagName)\n const isEscapeEvent = event.key === ESCAPE_KEY\n const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)\n const isLeftOrRightEvent = [ARROW_LEFT_KEY, ARROW_RIGHT_KEY].includes(event.key)\n const isHomeOrEndEvent = [HOME_KEY, END_KEY].includes(event.key)\n const isEnterOrSpaceEvent = [ENTER_KEY, SPACE_KEY].includes(event.key)\n\n const isSubmenuTrigger = event.target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if (!isUpOrDownEvent && !isEscapeEvent && !isLeftOrRightEvent && !isHomeOrEndEvent &&\n !(isEnterOrSpaceEvent && isSubmenuTrigger)) {\n return\n }\n\n if (isInput && !isEscapeEvent) {\n return\n }\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\n this :\n (SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.next(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\n\n if (!getToggleButton) {\n return\n }\n\n const instance = Menu.getOrCreateInstance(getToggleButton)\n\n if ((isLeftOrRightEvent || isHomeOrEndEvent || (isEnterOrSpaceEvent && isSubmenuTrigger)) && instance._handleSubmenuKeydown(event)) {\n return\n }\n\n if (isUpOrDownEvent) {\n event.preventDefault()\n event.stopPropagation()\n instance.show()\n instance._selectMenuItem(event)\n return\n }\n\n if (isEscapeEvent && instance._isShown()) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = event.target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper && instance._openSubmenus.size > 0) {\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n instance._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return\n }\n\n instance.hide()\n getToggleButton.focus()\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Menu.getOrCreateInstance(this).toggle()\n})\n\nexport default Menu\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap combobox.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Menu from './menu.js'\nimport { getNextActiveElement, isDisabled, isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'combobox'\nconst DATA_KEY = 'bs.combobox'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\nconst ENTER_KEY = 'Enter'\nconst SPACE_KEY = ' '\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SELECTED = 'selected'\nconst CLASS_NAME_PLACEHOLDER = 'combobox-placeholder'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"combobox\"]'\nconst SELECTOR_MENU = '.menu'\nconst SELECTOR_MENU_ITEM = '.menu-item[data-bs-value]'\nconst SELECTOR_VISIBLE_ITEMS = '.menu-item[data-bs-value]:not(.disabled):not(:disabled)'\nconst SELECTOR_VALUE = '.combobox-value'\nconst SELECTOR_SEARCH_INPUT = '.combobox-search-input'\nconst SELECTOR_NO_RESULTS = '.combobox-no-results'\n\nconst Default = {\n boundary: 'clippingParents',\n multiple: false,\n name: null,\n offset: [0, 2],\n placeholder: '',\n placement: 'bottom-start',\n search: false,\n searchNormalize: false\n}\n\nconst DefaultType = {\n boundary: '(string|element)',\n multiple: 'boolean',\n name: '(string|null)',\n offset: '(array|string|function)',\n placeholder: 'string',\n placement: 'string',\n search: 'boolean',\n searchNormalize: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Combobox extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._toggle = this._element\n this._menu = SelectorEngine.next(this._toggle, SELECTOR_MENU)[0]\n this._valueDisplay = SelectorEngine.findOne(SELECTOR_VALUE, this._toggle)\n this._searchInput = SelectorEngine.findOne(SELECTOR_SEARCH_INPUT, this._menu)\n this._noResults = SelectorEngine.findOne(SELECTOR_NO_RESULTS, this._menu)\n this._hiddenInput = null\n this._menuInstance = null\n\n this._createHiddenInput()\n this._createMenuInstance()\n this._syncInitialSelection()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._toggle) || this._isShown()) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._toggle, EVENT_SHOW)\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._menuInstance.show()\n\n if (this._searchInput) {\n this._searchInput.value = ''\n this._filterItems('')\n requestAnimationFrame(() => this._searchInput.focus())\n }\n\n EventHandler.trigger(this._toggle, EVENT_SHOWN)\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._toggle, EVENT_HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._menuInstance.hide()\n EventHandler.trigger(this._toggle, EVENT_HIDDEN)\n }\n\n dispose() {\n if (this._menuInstance) {\n this._menuInstance.dispose()\n this._menuInstance = null\n }\n\n if (this._hiddenInput) {\n this._hiddenInput.remove()\n this._hiddenInput = null\n }\n\n EventHandler.off(this._menu, EVENT_KEY)\n EventHandler.off(this._toggle, EVENT_KEY)\n\n super.dispose()\n }\n\n // Private\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _createHiddenInput() {\n const { name } = this._config\n if (!name) {\n return\n }\n\n this._hiddenInput = document.createElement('input')\n this._hiddenInput.type = 'hidden'\n this._hiddenInput.name = name\n this._hiddenInput.value = ''\n this._toggle.parentNode.insertBefore(this._hiddenInput, this._toggle)\n }\n\n _createMenuInstance() {\n this._menuInstance = new Menu(this._toggle, {\n menu: this._menu,\n autoClose: this._config.multiple ? 'outside' : true,\n boundary: this._config.boundary,\n offset: this._config.offset,\n placement: this._config.placement\n })\n }\n\n _syncInitialSelection() {\n const selectedItems = this._getSelectedItems()\n if (selectedItems.length > 0) {\n this._updateToggleText()\n this._updateHiddenInput()\n } else {\n this._showPlaceholder()\n }\n }\n\n _addEventListeners() {\n EventHandler.on(this._menu, 'click', SELECTOR_MENU_ITEM, event => {\n const item = event.target.closest(SELECTOR_MENU_ITEM)\n if (!item || isDisabled(item)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n this._selectItem(item)\n })\n\n EventHandler.on(this._toggle, 'keydown', event => {\n this._handleToggleKeydown(event)\n })\n\n EventHandler.on(this._menu, 'keydown', event => {\n this._handleMenuKeydown(event)\n })\n\n if (this._searchInput) {\n EventHandler.on(this._searchInput, 'input', () => {\n this._filterItems(this._searchInput.value)\n })\n\n EventHandler.on(this._searchInput, 'keydown', event => {\n if (event.key === ARROW_DOWN_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n items[0].focus()\n }\n }\n\n if (event.key === ESCAPE_KEY) {\n this.hide()\n this._toggle.focus()\n }\n })\n }\n }\n\n _selectItem(item) {\n if (this._config.multiple) {\n item.classList.toggle(CLASS_NAME_SELECTED)\n item.setAttribute('aria-selected', item.classList.contains(CLASS_NAME_SELECTED))\n } else {\n const previouslySelected = SelectorEngine.find(`.${CLASS_NAME_SELECTED}`, this._menu)\n for (const prev of previouslySelected) {\n prev.classList.remove(CLASS_NAME_SELECTED)\n prev.setAttribute('aria-selected', 'false')\n }\n\n item.classList.add(CLASS_NAME_SELECTED)\n item.setAttribute('aria-selected', 'true')\n }\n\n this._updateToggleText()\n this._updateHiddenInput()\n\n const value = this._config.multiple ?\n this._getSelectedItems().map(el => el.dataset.bsValue) :\n item.dataset.bsValue\n\n EventHandler.trigger(this._toggle, EVENT_CHANGE, {\n value,\n item\n })\n\n if (!this._config.multiple) {\n this.hide()\n this._toggle.focus()\n }\n }\n\n _updateToggleText() {\n const selectedItems = this._getSelectedItems()\n\n if (selectedItems.length === 0) {\n this._showPlaceholder()\n return\n }\n\n this._valueDisplay.classList.remove(CLASS_NAME_PLACEHOLDER)\n\n if (this._config.multiple && selectedItems.length > 1) {\n this._valueDisplay.textContent = `${selectedItems.length} selected`\n } else {\n const item = selectedItems[0]\n const label = SelectorEngine.findOne('.menu-item-content > span:first-child', item)\n this._valueDisplay.textContent = label ? label.textContent : item.textContent.trim()\n }\n }\n\n _showPlaceholder() {\n const { placeholder } = this._config\n if (placeholder) {\n this._valueDisplay.textContent = placeholder\n this._valueDisplay.classList.add(CLASS_NAME_PLACEHOLDER)\n }\n }\n\n _updateHiddenInput() {\n if (!this._hiddenInput) {\n return\n }\n\n const selectedItems = this._getSelectedItems()\n const values = selectedItems.map(el => el.dataset.bsValue)\n this._hiddenInput.value = this._config.multiple ? values.join(',') : (values[0] || '')\n }\n\n _getSelectedItems() {\n return SelectorEngine.find(`.${CLASS_NAME_SELECTED}`, this._menu)\n }\n\n _getVisibleItems() {\n return SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu)\n .filter(item => isVisible(item))\n }\n\n _filterItems(query) {\n const normalizedQuery = this._normalizeText(query.toLowerCase().trim())\n const items = SelectorEngine.find(SELECTOR_MENU_ITEM, this._menu)\n let visibleCount = 0\n\n for (const item of items) {\n const text = this._normalizeText(item.textContent.toLowerCase().trim())\n const matches = !normalizedQuery || text.includes(normalizedQuery)\n item.style.display = matches ? '' : 'none'\n if (matches) {\n visibleCount++\n }\n }\n\n if (this._noResults) {\n this._noResults.classList.toggle('d-none', visibleCount > 0)\n }\n }\n\n _normalizeText(text) {\n if (this._config.searchNormalize) {\n return text.normalize('NFD').replace(/[\\u0300-\\u036F]/g, '')\n }\n\n return text\n }\n\n _handleToggleKeydown(event) {\n const { key } = event\n\n if (key === ARROW_DOWN_KEY || key === ARROW_UP_KEY) {\n event.preventDefault()\n if (!this._isShown()) {\n this.show()\n }\n\n const items = this._getVisibleItems()\n if (items.length > 0) {\n const target = key === ARROW_DOWN_KEY ? items[0] : items.at(-1)\n target.focus()\n }\n\n return\n }\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && !this._isShown()) {\n event.preventDefault()\n this.show()\n }\n }\n\n _handleMenuKeydown(event) {\n const { key, target } = event\n\n if (key === ESCAPE_KEY) {\n event.preventDefault()\n event.stopPropagation()\n this.hide()\n this._toggle.focus()\n return\n }\n\n if (key === TAB_KEY) {\n this.hide()\n return\n }\n\n const isInput = target.matches('input')\n\n if (key === ARROW_DOWN_KEY || key === ARROW_UP_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n return\n }\n\n if (key === HOME_KEY || key === END_KEY) {\n event.preventDefault()\n const items = this._getVisibleItems()\n if (items.length > 0) {\n const targetItem = key === HOME_KEY ? items[0] : items.at(-1)\n targetItem.focus()\n }\n\n return\n }\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && !isInput) {\n event.preventDefault()\n const item = target.closest(SELECTOR_MENU_ITEM)\n if (item && !isDisabled(item)) {\n this._selectItem(item)\n }\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Combobox.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Combobox.getOrCreateInstance(this).toggle()\n})\n\nEventHandler.on(document, 'DOMContentLoaded', () => {\n for (const toggle of SelectorEngine.find(SELECTOR_DATA_TOGGLE)) {\n Combobox.getOrCreateInstance(toggle)\n }\n})\n\nexport default Combobox\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap datepicker.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { Calendar } from 'vanilla-calendar-pro'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { isDisabled } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'datepicker'\nconst DATA_KEY = 'bs.datepicker'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUSIN_DATA_API = `focusin${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"datepicker\"]'\n\nconst HIDE_DELAY = 100 // ms delay before hiding after selection\n\nconst Default = {\n datepickerTheme: null, // 'light', 'dark', 'auto' - explicit theme for datepicker popover only\n dateMin: null,\n dateMax: null,\n dateFormat: null, // Intl.DateTimeFormat options, or function(date, locale) => string\n displayElement: null, // Element to show formatted date (defaults to element for buttons)\n displayMonthsCount: 1, // Number of months to display side-by-side\n firstWeekday: 1, // Monday\n inline: false, // Render calendar inline (no popup)\n locale: 'default',\n positionElement: null, // Element to position calendar relative to (defaults to input)\n selectedDates: [],\n selectionMode: 'single', // 'single', 'multiple', 'multiple-ranged'\n placement: 'left', // 'left', 'center', 'right', 'auto'\n vcpOptions: {} // Pass-through for any VCP option\n}\n\nconst DefaultType = {\n datepickerTheme: '(null|string)',\n dateMin: '(null|string|number|object)',\n dateMax: '(null|string|number|object)',\n dateFormat: '(null|object|function)',\n displayElement: '(null|string|element|boolean)',\n displayMonthsCount: 'number',\n firstWeekday: 'number',\n inline: 'boolean',\n locale: 'string',\n positionElement: '(null|string|element)',\n selectedDates: 'array',\n selectionMode: 'string',\n placement: 'string',\n vcpOptions: 'object'\n}\n\n/**\n * Class definition\n */\n\nclass Datepicker extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._calendar = null\n this._isShown = false\n\n this._initCalendar()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n return this._isShown ? this.hide() : this.show()\n }\n\n show() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n if (!this._calendar || isDisabled(this._element) || this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._calendar.show()\n this._isShown = true\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n hide() {\n if (this._config.inline) {\n return // Inline calendars are always visible\n }\n\n if (!this._calendar || !this._isShown) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._calendar.hide()\n this._isShown = false\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n dispose() {\n if (this._themeObserver) {\n this._themeObserver.disconnect()\n this._themeObserver = null\n }\n\n if (this._calendar) {\n this._calendar.destroy()\n }\n\n this._calendar = null\n super.dispose()\n }\n\n getSelectedDates() {\n const dates = this._calendar?.context?.selectedDates\n return dates ? [...dates] : []\n }\n\n setSelectedDates(dates) {\n if (this._calendar) {\n this._calendar.set({ selectedDates: dates })\n }\n }\n\n // Private\n _initCalendar() {\n this._isInput = this._element.tagName === 'INPUT'\n this._isInline = this._config.inline\n\n // For inline mode, look for a hidden input child to bind to\n if (this._isInline && !this._isInput) {\n this._boundInput = this._element.querySelector('input[type=\"hidden\"], input[name]')\n }\n\n this._positionElement = this._resolvePositionElement()\n this._displayElement = this._resolveDisplayElement()\n\n const calendarOptions = this._buildCalendarOptions()\n\n // Create calendar on the position element (for correct popup positioning)\n // but value updates still go to this._element (the input)\n this._calendar = new Calendar(this._positionElement, calendarOptions)\n this._calendar.init()\n\n // Watch for theme changes on ancestor elements (for live theme switching)\n this._setupThemeObserver()\n\n // Set initial value if input has a value\n if (this._isInput && this._element.value) {\n this._parseInputValue()\n }\n\n // Populate input/display with preselected dates\n this._updateDisplayWithSelectedDates()\n }\n\n _updateDisplayWithSelectedDates() {\n const { selectedDates } = this._config\n if (!selectedDates || selectedDates.length === 0) {\n return\n }\n\n const formattedDate = this._formatDateForInput(selectedDates)\n\n if (this._isInput) {\n this._element.value = formattedDate\n }\n\n if (this._boundInput) {\n this._boundInput.value = selectedDates.join(',')\n }\n\n if (this._displayElement) {\n this._displayElement.textContent = formattedDate\n }\n }\n\n _resolvePositionElement() {\n let { positionElement } = this._config\n\n if (typeof positionElement === 'string') {\n positionElement = document.querySelector(positionElement)\n }\n\n // Use input's parent if in form-adorn\n if (!positionElement && this._isInput && !this._isInline) {\n const parent = this._element.closest('.form-adorn')\n if (parent) {\n positionElement = parent\n }\n }\n\n return positionElement || this._element\n }\n\n _resolveDisplayElement() {\n const { displayElement } = this._config\n\n if (typeof displayElement === 'string') {\n return document.querySelector(displayElement)\n }\n\n // For buttons/non-inputs (not inline), look for a [data-bs-datepicker-display] child\n if (displayElement === true || (displayElement === null && !this._isInput && !this._isInline)) {\n const displayChild = this._element.querySelector('[data-bs-datepicker-display]')\n return displayChild || this._element\n }\n\n return displayElement\n }\n\n _getThemeAncestor() {\n return this._element.closest('[data-bs-theme]')\n }\n\n _getEffectiveTheme() {\n // Priority: explicit datepickerTheme config > inherited from ancestor > none\n const { datepickerTheme } = this._config\n if (datepickerTheme) {\n return datepickerTheme\n }\n\n const ancestor = this._getThemeAncestor()\n return ancestor?.getAttribute('data-bs-theme') || null\n }\n\n _syncThemeAttribute(element) {\n if (!element) {\n return\n }\n\n const theme = this._getEffectiveTheme()\n\n if (theme) {\n // Copy theme to popover (needed because VCP appends to body, breaking CSS inheritance)\n element.setAttribute('data-bs-theme', theme)\n } else {\n // No theme - remove attribute to allow natural inheritance\n element.removeAttribute('data-bs-theme')\n }\n }\n\n _setupThemeObserver() {\n // Watch for theme changes on ancestor elements\n const ancestor = this._getThemeAncestor()\n if (!ancestor || this._config.datepickerTheme) {\n // No ancestor to watch, or explicit datepickerTheme overrides\n return\n }\n\n this._themeObserver = new MutationObserver(() => {\n this._syncThemeAttribute(this._calendar?.context?.mainElement)\n })\n\n this._themeObserver.observe(ancestor, {\n attributes: true,\n attributeFilter: ['data-bs-theme']\n })\n }\n\n _buildCalendarOptions() {\n // Get theme for VCP - use 'system' for auto-detection if no explicit theme\n const theme = this._getEffectiveTheme()\n // VCP uses 'system' for auto, Bootstrap uses 'auto'\n const vcpTheme = !theme || theme === 'auto' ? 'system' : theme\n\n const calendarOptions = {\n ...this._config.vcpOptions,\n inputMode: !this._isInline,\n positionToInput: this._config.placement,\n firstWeekday: this._config.firstWeekday,\n locale: this._config.locale,\n selectionDatesMode: this._config.selectionMode,\n selectedDates: this._config.selectedDates,\n displayMonthsCount: this._config.displayMonthsCount,\n type: this._config.displayMonthsCount > 1 ? 'multiple' : 'default',\n selectedTheme: vcpTheme,\n themeAttrDetect: '[data-bs-theme]',\n onClickDate: (self, event) => this._handleDateClick(self, event),\n onInit: self => {\n this._syncThemeAttribute(self.context.mainElement)\n },\n onShow: () => {\n this._isShown = true\n this._syncThemeAttribute(this._calendar.context.mainElement)\n },\n onHide: () => {\n this._isShown = false\n }\n }\n\n // Navigate to the month of the first selected date\n if (this._config.selectedDates.length > 0) {\n const firstDate = this._parseDate(this._config.selectedDates[0])\n calendarOptions.selectedMonth = firstDate.getMonth()\n calendarOptions.selectedYear = firstDate.getFullYear()\n }\n\n if (this._config.dateMin) {\n calendarOptions.dateMin = this._config.dateMin\n }\n\n if (this._config.dateMax) {\n calendarOptions.dateMax = this._config.dateMax\n }\n\n return calendarOptions\n }\n\n _handleDateClick(self, event) {\n const selectedDates = [...self.context.selectedDates]\n\n if (selectedDates.length > 0) {\n const formattedDate = this._formatDateForInput(selectedDates)\n\n if (this._isInput) {\n this._element.value = formattedDate\n }\n\n if (this._boundInput) {\n this._boundInput.value = selectedDates.join(',')\n }\n\n if (this._displayElement) {\n this._displayElement.textContent = formattedDate\n }\n }\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n dates: selectedDates,\n event\n })\n\n this._maybeHideAfterSelection(selectedDates)\n }\n\n _maybeHideAfterSelection(selectedDates) {\n if (this._isInline) {\n return\n }\n\n const shouldHide =\n (this._config.selectionMode === 'single' && selectedDates.length > 0) ||\n (this._config.selectionMode === 'multiple-ranged' && selectedDates.length >= 2)\n\n if (shouldHide) {\n setTimeout(() => this.hide(), HIDE_DELAY)\n }\n }\n\n _parseDate(dateStr) {\n const [year, month, day] = dateStr.split('-')\n return new Date(year, month - 1, day)\n }\n\n _formatDate(dateStr) {\n const date = this._parseDate(dateStr)\n const locale = this._config.locale === 'default' ? undefined : this._config.locale\n const { dateFormat } = this._config\n\n // Custom function formatter\n if (typeof dateFormat === 'function') {\n return dateFormat(date, locale)\n }\n\n // Intl.DateTimeFormat options object\n if (dateFormat && typeof dateFormat === 'object') {\n return new Intl.DateTimeFormat(locale, dateFormat).format(date)\n }\n\n // Default: locale-aware formatting\n return date.toLocaleDateString(locale)\n }\n\n _formatDateForInput(dates) {\n if (dates.length === 0) {\n return ''\n }\n\n if (dates.length === 1) {\n return this._formatDate(dates[0])\n }\n\n // For date ranges, use en-dash; for multiple dates, use comma\n const separator = this._config.selectionMode === 'multiple-ranged' ? ' – ' : ', '\n return dates.map(d => this._formatDate(d)).join(separator)\n }\n\n _parseInputValue() {\n // Try to parse the input value as a date\n const value = this._element.value.trim()\n if (!value) {\n return\n }\n\n const date = new Date(value)\n if (!Number.isNaN(date.getTime())) {\n const year = date.getFullYear()\n const month = String(date.getMonth() + 1).padStart(2, '0')\n const day = String(date.getDate()).padStart(2, '0')\n const formatted = `${year}-${month}-${day}`\n this._calendar.set({ selectedDates: [formatted] })\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // Only handle if not an input (inputs use focus)\n // Skip inline datepickers (they're always visible)\n if (this.tagName === 'INPUT' || this.dataset.bsInline === 'true') {\n return\n }\n\n event.preventDefault()\n Datepicker.getOrCreateInstance(this).toggle()\n})\n\nEventHandler.on(document, EVENT_FOCUSIN_DATA_API, SELECTOR_DATA_TOGGLE, function () {\n // Handle focus for input elements\n if (this.tagName !== 'INPUT') {\n return\n }\n\n Datepicker.getOrCreateInstance(this).show()\n})\n\n// Auto-initialize inline datepickers on DOMContentLoaded\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of document.querySelectorAll(`${SELECTOR_DATA_TOGGLE}[data-bs-inline=\"true\"]`)) {\n Datepicker.getOrCreateInstance(element)\n }\n})\n\nexport default Datepicker\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dialog-base.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst CLASS_NAME_OPEN = 'dialog-open'\n\n/**\n * Class definition\n *\n * Shared base class for Dialog and Drawer components that use\n * the native <dialog> element. Provides common behavior for:\n * - Show/hide/toggle lifecycle with events\n * - Opening/closing via showModal()/show()/close()\n * - Escape key handling (modal and non-modal)\n * - Backdrop click handling\n * - Static backdrop transition (\"bounce\")\n * - Body scroll prevention\n * - Transition coordination\n * - Child component cleanup (tooltips, popovers, toasts)\n */\n\nclass DialogBase extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._openedAsModal = false\n this._addDialogListeners()\n }\n\n // Getters — subclasses override NAME with their own component name.\n static get NAME() {\n return 'dialogbase'\n }\n\n // Public — shared lifecycle methods\n\n toggle(relatedTarget) {\n return this._element.open ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._element.open || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('show'),\n { relatedTarget }\n )\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isTransitioning = true\n this._onBeforeShow()\n\n const { modal, preventBodyScroll } = this._getShowOptions()\n this._showElement({ modal, preventBodyScroll })\n\n this._queueCallback(() => {\n this._isTransitioning = false\n EventHandler.trigger(\n this._element,\n this.constructor.eventName('shown'),\n { relatedTarget }\n )\n }, this._element, this._isAnimated())\n }\n\n hide() {\n if (!this._element.open || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('hide')\n )\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isTransitioning = true\n this._hideElement()\n\n this._queueCallback(() => {\n // For subclasses that defer close() until the exit transition ends\n // (so the dialog stays in the top layer with its ::backdrop), close()\n // happens here instead of in _hideElement().\n if (this._element.open) {\n this._closeAndCleanup()\n }\n\n this._element.classList.remove('hiding')\n this._onAfterHide()\n this._isTransitioning = false\n EventHandler.trigger(\n this._element,\n this.constructor.eventName('hidden')\n )\n }, this._element, this._isAnimated())\n }\n\n // Protected — hooks for subclasses to override\n\n _getShowOptions() {\n return { modal: true, preventBodyScroll: true }\n }\n\n _onBeforeShow() {\n // No-op by default — Dialog overrides to add nonmodal class\n }\n\n _onAfterHide() {\n // No-op by default — Dialog overrides to remove nonmodal class\n }\n\n _isAnimated() {\n return !this._element.classList.contains(this._getInstantClassName())\n }\n\n _getInstantClassName() {\n return 'dialog-instant'\n }\n\n _getStaticClassName() {\n return 'dialog-static'\n }\n\n _onCancel() {\n // No-op by default — Dialog overrides to fire cancel event\n }\n\n // Protected — shared mechanics\n\n _showElement({ modal = true, preventBodyScroll = true } = {}) {\n this._openedAsModal = modal\n\n if (modal) {\n this._element.showModal()\n } else {\n this._element.show()\n }\n\n if (preventBodyScroll) {\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n }\n\n _hideElement() {\n this._hideChildComponents()\n\n // Add .hiding before close() so CSS exit transitions can play.\n // Without this, the navbar's `:not([open])` transition-kill rule\n // would prevent the slide-out animation.\n this._element.classList.add('hiding')\n\n // Subclasses can defer close() until after the exit transition by\n // returning true from _shouldDeferClose(). This is needed for the\n // native modal <dialog> centered case: close() removes the dialog\n // from the top layer immediately, which strips its auto-centering\n // and the ::backdrop, breaking the exit animation.\n if (!this._shouldDeferClose()) {\n this._closeAndCleanup()\n }\n }\n\n // Closes the native <dialog> and tears down body-scroll prevention.\n // Safe to call multiple times — close() is a no-op on a closed dialog.\n _closeAndCleanup() {\n this._element.close()\n this._openedAsModal = false\n\n // Only restore body scroll if no other modal dialogs are open\n if (!document.querySelector('dialog[open]:modal')) {\n document.body.classList.remove(CLASS_NAME_OPEN)\n }\n }\n\n // Hook: return true to keep the dialog in the top layer (i.e., delay\n // calling close()) until the exit transition completes. The base class\n // closes synchronously; Dialog overrides this for animated modal cases.\n _shouldDeferClose() {\n return false\n }\n\n _triggerBackdropTransition() {\n const hidePreventedEvent = EventHandler.trigger(\n this._element,\n this.constructor.eventName('hidePrevented')\n )\n\n if (hidePreventedEvent.defaultPrevented) {\n return\n }\n\n const staticClass = this._getStaticClassName()\n this._element.classList.add(staticClass)\n this._queueCallback(() => {\n this._element.classList.remove(staticClass)\n }, this._element)\n }\n\n // Hide any tooltips, popovers, or toasts inside the dialog before closing.\n // These components append to the dialog (for top-layer rendering) and would\n // otherwise persist visibly after close().\n _hideChildComponents() {\n const selector = '[data-bs-toggle=\"tooltip\"], [data-bs-toggle=\"popover\"]'\n\n for (const el of SelectorEngine.find(selector, this._element)) {\n const instance = Data.getAny(el)\n if (instance && typeof instance.hide === 'function') {\n instance.hide()\n }\n }\n\n // Hide any visible toasts\n for (const el of SelectorEngine.find('.toast.show', this._element)) {\n const instance = Data.getAny(el)\n if (instance && typeof instance.hide === 'function') {\n instance.hide()\n }\n }\n }\n\n // Private\n\n _addDialogListeners() {\n const eventKey = this.constructor.EVENT_KEY\n\n // Handle native cancel event (Escape key) — only fires for modal dialogs\n EventHandler.on(this._element, 'cancel', event => {\n event.preventDefault()\n\n if (!this._config.keyboard) {\n this._triggerBackdropTransition()\n return\n }\n\n this._onCancel()\n this.hide()\n })\n\n // Handle Escape key for non-modal dialogs (native cancel doesn't fire for show())\n EventHandler.on(this._element, `keydown${eventKey}`, event => {\n if (event.key !== 'Escape' || this._openedAsModal) {\n return\n }\n\n event.preventDefault()\n\n if (!this._config.keyboard) {\n return\n }\n\n this._onCancel()\n this.hide()\n })\n\n // Handle backdrop clicks — only applies to modal dialogs\n EventHandler.on(this._element, `click${eventKey}`, event => {\n if (event.target !== this._element || !this._openedAsModal) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n return\n }\n\n this.hide()\n })\n }\n}\n\nexport default DialogBase\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dialog.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport DialogBase from './dialog-base.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'dialog'\nconst DATA_KEY = 'bs.dialog'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CANCEL = `cancel${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_NONMODAL = 'dialog-nonmodal'\nconst CLASS_NAME_INSTANT = 'dialog-instant'\nconst CLASS_NAME_SWAP_IN = 'dialog-swap-in'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dialog\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n modal: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n modal: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Dialog extends DialogBase {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n handleUpdate() {\n // Provided for API consistency with Modal.\n }\n\n // Protected — hook overrides\n\n _getShowOptions() {\n return {\n modal: this._config.modal,\n preventBodyScroll: this._config.modal\n }\n }\n\n _onBeforeShow() {\n if (!this._config.modal) {\n this._element.classList.add(CLASS_NAME_NONMODAL)\n }\n }\n\n _onAfterHide() {\n this._element.classList.remove(CLASS_NAME_NONMODAL)\n }\n\n // Keep the dialog in the top layer until the exit transition ends. This\n // preserves the browser's modal centering and the native ::backdrop, both\n // of which disappear synchronously the moment close() is called. Without\n // this, the dialog would jump to the top of the page and the backdrop\n // blur would vanish instantly while the dialog faded — making the exit\n // animation appear to skip entirely.\n _shouldDeferClose() {\n return this._isAnimated()\n }\n\n _onCancel() {\n EventHandler.trigger(this._element, EVENT_CANCEL)\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n // Get config from trigger's data attributes\n const config = Manipulator.getDataAttributes(this)\n\n // Check if trigger is inside an open dialog (dialog swapping)\n const currentDialog = this.closest('dialog[open]')\n const shouldSwap = currentDialog && currentDialog !== target\n\n if (shouldSwap) {\n // Swap strategy (seamless backdrop, no flash):\n // 1. Mark the incoming dialog with .dialog-swap-in so its ::backdrop\n // skips the @starting-style fade-in and appears fully opaque on\n // its very first frame in the top layer.\n // 2. Open the incoming dialog (showModal).\n // 3. Close the outgoing dialog synchronously — no exit transition, no\n // .hiding — so its ::backdrop is removed in the same frame the\n // incoming dialog's backdrop appears. Since both backdrops render\n // the same color, the user sees one continuous backdrop. Two\n // simultaneously-visible backdrops would composite to ~75% darker,\n // and a fading-out + fading-in pair would dip to ~75% opacity —\n // either would look like a flash.\n // 4. Clean up the .dialog-swap-in flag once the incoming dialog\n // finishes its entry transition.\n const newDialog = Dialog.getOrCreateInstance(target, config)\n target.classList.add(CLASS_NAME_SWAP_IN)\n newDialog.show(this)\n EventHandler.one(target, `shown${EVENT_KEY}`, () => {\n target.classList.remove(CLASS_NAME_SWAP_IN)\n })\n\n const currentInstance = Dialog.getInstance(currentDialog)\n if (currentInstance) {\n // Force synchronous close: .dialog-instant makes _isAnimated() false,\n // which makes _shouldDeferClose() false, so hide() calls close()\n // immediately (no deferred .hiding path). The class is removed after\n // the (now-synchronous) hidden event fires.\n currentDialog.classList.add(CLASS_NAME_INSTANT)\n EventHandler.one(currentDialog, EVENT_HIDDEN, () => {\n currentDialog.classList.remove(CLASS_NAME_INSTANT)\n })\n currentInstance.hide()\n }\n\n return\n }\n\n const data = Dialog.getOrCreateInstance(target, config)\n data.toggle(this)\n})\n\nenableDismissTrigger(Dialog)\n\nexport default Dialog\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap nav-overflow.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'navoverflow'\nconst DATA_KEY = 'bs.navoverflow'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_UPDATE = `update${EVENT_KEY}`\nconst EVENT_OVERFLOW = `overflow${EVENT_KEY}`\n\nconst CLASS_NAME_OVERFLOW = 'nav-overflow'\nconst CLASS_NAME_OVERFLOW_MENU = 'nav-overflow-menu'\nconst CLASS_NAME_HIDDEN = 'd-none'\n\nconst SELECTOR_NAV_ITEM = '.nav-item'\nconst SELECTOR_NAV_LINK = '.nav-link'\nconst SELECTOR_OVERFLOW_TOGGLE = '.nav-overflow-toggle'\nconst SELECTOR_OVERFLOW_MENU = '.nav-overflow-menu'\nconst SELECTOR_CUSTOM_ICON = '[data-bs-overflow-icon]'\nconst CLASS_NAME_KEEP = 'nav-overflow-keep'\n\nconst Default = {\n collapseBelow: 0,\n iconPlacement: 'start',\n menuPlacement: 'bottom-end',\n moreText: 'More',\n moreIcon: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" viewBox=\"0 0 16 16\"><path d=\"M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3\"/></svg>',\n threshold: 0 // Minimum items to keep visible before showing overflow\n}\n\nconst DefaultType = {\n collapseBelow: '(number|string)',\n iconPlacement: 'string',\n menuPlacement: 'string',\n moreText: 'string',\n moreIcon: 'string',\n threshold: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass NavOverflow extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._items = []\n this._overflowItems = []\n this._overflowMenu = null\n this._overflowToggle = null\n this._resizeObserver = null\n this._collapseBelow = 0\n this._isInitialized = false\n\n this._init()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n update() {\n this._calculateOverflow()\n EventHandler.trigger(this._element, EVENT_UPDATE)\n }\n\n dispose() {\n if (this._resizeObserver) {\n this._resizeObserver.disconnect()\n }\n\n // Move items back to original positions\n this._restoreItems()\n\n // Remove overflow menu\n if (this._overflowToggle && this._overflowToggle.parentElement) {\n this._overflowToggle.parentElement.remove()\n }\n\n super.dispose()\n }\n\n // Private\n _init() {\n // Add overflow class to nav\n this._element.classList.add(CLASS_NAME_OVERFLOW)\n\n // Get all nav items\n this._items = [...SelectorEngine.find(SELECTOR_NAV_ITEM, this._element)]\n\n // Store original order data\n for (const [index, item] of this._items.entries()) {\n item.dataset.bsNavOrder = index\n }\n\n // Resolve collapseBelow threshold once\n this._collapseBelow = this._resolveCollapseBelow()\n\n // Create overflow menu if it doesn't exist\n this._createOverflowMenu()\n\n // Setup resize observer\n this._setupResizeObserver()\n\n // Initial calculation\n this._calculateOverflow()\n\n this._isInitialized = true\n }\n\n _createOverflowMenu() {\n // Check if overflow menu already exists\n this._overflowToggle = SelectorEngine.findOne(SELECTOR_OVERFLOW_TOGGLE, this._element)\n\n if (this._overflowToggle) {\n this._overflowMenu = SelectorEngine.findOne(SELECTOR_OVERFLOW_MENU, this._element)\n return\n }\n\n const iconHtml = this._resolveIcon()\n const iconSpan = `<span class=\"nav-overflow-icon\">${iconHtml}</span>`\n const textSpan = `<span class=\"nav-overflow-text\">${this._config.moreText}</span>`\n const toggleContent = this._config.iconPlacement === 'end' ?\n `${textSpan}${iconSpan}` :\n `${iconSpan}${textSpan}`\n\n const overflowItem = document.createElement('li')\n overflowItem.className = 'nav-item nav-overflow-item'\n overflowItem.innerHTML = `\n <button class=\"nav-link nav-overflow-toggle\" type=\"button\" data-bs-toggle=\"menu\" data-bs-placement=\"${this._config.menuPlacement}\" aria-expanded=\"false\">\n ${toggleContent}\n </button>\n <div class=\"${CLASS_NAME_OVERFLOW_MENU} menu\"></div>\n `\n\n this._element.append(overflowItem)\n this._overflowToggle = overflowItem.querySelector(SELECTOR_OVERFLOW_TOGGLE)\n this._overflowMenu = overflowItem.querySelector(SELECTOR_OVERFLOW_MENU)\n }\n\n _resolveIcon() {\n const customIconElement = SelectorEngine.findOne(SELECTOR_CUSTOM_ICON, this._element)\n\n if (!customIconElement) {\n return this._config.moreIcon\n }\n\n const iconClone = customIconElement.cloneNode(true)\n iconClone.removeAttribute('data-bs-overflow-icon')\n const iconHtml = iconClone.outerHTML\n\n customIconElement.remove()\n\n return iconHtml\n }\n\n _resolveCollapseBelow() {\n const value = this._config.collapseBelow\n\n if (typeof value === 'number') {\n return value\n }\n\n if (typeof value === 'string' && value !== '') {\n const cssValue = getComputedStyle(document.documentElement)\n .getPropertyValue(`--bs-breakpoint-${value}`)\n return Number.parseFloat(cssValue) || 0\n }\n\n return 0\n }\n\n _setupResizeObserver() {\n if (typeof ResizeObserver === 'undefined') {\n // Fallback for older browsers\n EventHandler.on(window, 'resize', () => this._calculateOverflow())\n return\n }\n\n this._resizeObserver = new ResizeObserver(() => {\n this._calculateOverflow()\n })\n\n this._resizeObserver.observe(this._element)\n }\n\n _calculateOverflow() {\n // First, restore all items to measure properly\n this._restoreItems()\n\n const navWidth = this._element.offsetWidth\n const overflowItem = this._overflowToggle?.closest('.nav-item')\n\n // When below the collapseBelow threshold, force all items into overflow\n if (this._collapseBelow > 0 && navWidth < this._collapseBelow) {\n const itemsToOverflow = this._items.filter(\n item => !item.classList.contains(CLASS_NAME_KEEP)\n )\n\n this._moveToOverflow(itemsToOverflow)\n\n if (overflowItem) {\n if (itemsToOverflow.length > 0) {\n overflowItem.classList.remove(CLASS_NAME_HIDDEN)\n } else {\n overflowItem.classList.add(CLASS_NAME_HIDDEN)\n }\n }\n\n if (itemsToOverflow.length > 0) {\n EventHandler.trigger(this._element, EVENT_OVERFLOW, {\n overflowCount: itemsToOverflow.length,\n visibleCount: this._items.length - itemsToOverflow.length\n })\n }\n\n return\n }\n\n const overflowWidth = overflowItem?.offsetWidth || 0\n\n // Keep items are always visible; subtract their widths so the threshold\n // reflects actual available space for non-keep items.\n const keepWidth = this._items\n .filter(item => item.classList.contains(CLASS_NAME_KEEP))\n .reduce((sum, item) => sum + item.offsetWidth, 0)\n\n let usedWidth = 0\n const itemsToOverflow = []\n const overflowThreshold = navWidth - overflowWidth - keepWidth - 10 // 10px buffer\n\n // Calculate which items need to overflow (skip items with keep class)\n for (const item of this._items) {\n // Never overflow items with the keep class\n if (item.classList.contains(CLASS_NAME_KEEP)) {\n continue\n }\n\n usedWidth += item.offsetWidth\n\n if (usedWidth > overflowThreshold) {\n itemsToOverflow.push(item)\n }\n }\n\n // Check if we need threshold minimum visible\n const visibleCount = this._items.length - itemsToOverflow.length\n if (visibleCount < this._config.threshold && this._items.length > this._config.threshold) {\n // Add more items to overflow until we reach threshold (but not keep items)\n const toMove = this._items.slice(this._config.threshold).filter(item => !item.classList.contains(CLASS_NAME_KEEP))\n itemsToOverflow.length = 0\n itemsToOverflow.push(...toMove)\n }\n\n // Move items to overflow menu\n this._moveToOverflow(itemsToOverflow)\n\n // Show/hide overflow toggle\n if (overflowItem) {\n if (itemsToOverflow.length > 0) {\n overflowItem.classList.remove(CLASS_NAME_HIDDEN)\n } else {\n overflowItem.classList.add(CLASS_NAME_HIDDEN)\n }\n }\n\n // Trigger overflow event if items changed\n if (itemsToOverflow.length > 0) {\n EventHandler.trigger(this._element, EVENT_OVERFLOW, {\n overflowCount: itemsToOverflow.length,\n visibleCount: this._items.length - itemsToOverflow.length\n })\n }\n }\n\n _moveToOverflow(items) {\n if (!this._overflowMenu) {\n return\n }\n\n // Clear existing overflow items\n this._overflowMenu.innerHTML = ''\n this._overflowItems = []\n\n for (const item of items) {\n const link = SelectorEngine.findOne(SELECTOR_NAV_LINK, item)\n if (!link) {\n continue\n }\n\n const clonedLink = link.cloneNode(true)\n clonedLink.className = 'menu-item'\n\n if (link.classList.contains('active')) {\n clonedLink.classList.add('active')\n }\n\n if (link.classList.contains('disabled') || link.hasAttribute('disabled')) {\n clonedLink.classList.add('disabled')\n }\n\n this._overflowMenu.append(clonedLink)\n\n // Hide original item\n item.classList.add(CLASS_NAME_HIDDEN)\n item.dataset.bsNavOverflow = 'true'\n\n this._overflowItems.push(item)\n }\n }\n\n _restoreItems() {\n for (const item of this._items) {\n item.classList.remove(CLASS_NAME_HIDDEN)\n delete item.dataset.bsNavOverflow\n }\n\n if (this._overflowMenu) {\n this._overflowMenu.innerHTML = ''\n }\n\n this._overflowItems = []\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, 'DOMContentLoaded', () => {\n for (const element of SelectorEngine.find('[data-bs-toggle=\"nav-overflow\"]')) {\n NavOverflow.getOrCreateInstance(element)\n }\n})\n\nexport default NavOverflow\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport Config from './config.js'\nimport { execute } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'swipe'\nconst EVENT_KEY = '.bs.swipe'\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null,\n upCallback: null,\n downCallback: null\n}\n\nconst DefaultType = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)',\n upCallback: '(function|null)',\n downCallback: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super()\n this._element = element\n\n if (!element || !Swipe.isSupported()) {\n return\n }\n\n this._config = this._getConfig(config)\n this._deltaX = 0\n this._deltaY = 0\n this._supportPointerEvents = Boolean(window.PointerEvent)\n this._initEvents()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX\n this._deltaY = event.touches[0].clientY\n\n return\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX\n this._deltaY = event.clientY\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX\n this._deltaY = event.clientY - this._deltaY\n }\n\n this._handleSwipe()\n execute(this._config.endCallback)\n }\n\n _move(event) {\n if (event.touches && event.touches.length > 1) {\n this._deltaX = 0\n this._deltaY = 0\n return\n }\n\n this._deltaX = event.touches[0].clientX - this._deltaX\n this._deltaY = event.touches[0].clientY - this._deltaY\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX)\n const absDeltaY = Math.abs(this._deltaY)\n\n // Determine primary axis: whichever has greater movement wins\n if (absDeltaY > absDeltaX && absDeltaY > SWIPE_THRESHOLD) {\n // Vertical swipe\n const direction = this._deltaY > 0 ? 'down' : 'up'\n this._deltaX = 0\n this._deltaY = 0\n execute(direction === 'down' ? this._config.downCallback : this._config.upCallback)\n return\n }\n\n if (absDeltaX > SWIPE_THRESHOLD) {\n // Horizontal swipe\n const direction = absDeltaX / this._deltaX\n this._deltaX = 0\n this._deltaY = 0\n\n if (!direction) {\n return\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback)\n return\n }\n\n this._deltaX = 0\n this._deltaY = 0\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event))\n }\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n }\n}\n\nexport default Swipe\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap drawer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport DialogBase from './dialog-base.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Swipe from './util/swipe.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport {\n isDisabled,\n isRTL,\n isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'drawer'\nconst DATA_KEY = 'bs.drawer'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"drawer\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Drawer extends DialogBase {\n constructor(element, config) {\n super(element, config)\n this._swipeHelper = null\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Protected — hook overrides\n\n _getShowOptions() {\n const useModal = Boolean(this._config.backdrop) || !this._config.scroll\n return {\n modal: useModal,\n preventBodyScroll: !this._config.scroll\n }\n }\n\n _onBeforeShow() {\n this._initSwipe()\n }\n\n _getInstantClassName() {\n return 'drawer-instant'\n }\n\n _getStaticClassName() {\n return 'drawer-static'\n }\n\n // Private\n\n _initSwipe() {\n if (this._swipeHelper || !Swipe.isSupported()) {\n return\n }\n\n // Determine which swipe direction dismisses based on placement\n const swipeConfig = {}\n const element = this._element\n\n if (element.classList.contains('drawer-bottom')) {\n swipeConfig.downCallback = () => this.hide()\n } else if (element.classList.contains('drawer-top')) {\n swipeConfig.upCallback = () => this.hide()\n } else if (element.classList.contains('drawer-end')) {\n // RTL: swipe left to dismiss end drawer\n if (isRTL()) {\n swipeConfig.leftCallback = () => this.hide()\n } else {\n swipeConfig.rightCallback = () => this.hide()\n }\n } else if (isRTL()) {\n // drawer-start (default): swipe right to dismiss in RTL\n swipeConfig.rightCallback = () => this.hide()\n } else {\n // drawer-start (default): swipe left to dismiss in LTR\n swipeConfig.leftCallback = () => this.hide()\n }\n\n this._swipeHelper = new Swipe(element, swipeConfig)\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n\n // Avoid conflict when clicking a toggler of a drawer, while another is open\n const alreadyOpen = SelectorEngine.findOne('dialog.drawer[open]')\n if (alreadyOpen && alreadyOpen !== target) {\n Drawer.getInstance(alreadyOpen).hide()\n }\n\n const data = Drawer.getOrCreateInstance(target)\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const selector of SelectorEngine.find('dialog.drawer[open]')) {\n Drawer.getOrCreateInstance(selector).show()\n }\n})\n\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('dialog[open][class*=\"\\\\:drawer\"]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Drawer.getOrCreateInstance(element).hide()\n }\n }\n})\n\nenableDismissTrigger(Drawer)\n\nexport default Drawer\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap strength.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'strength'\nconst DATA_KEY = 'bs.strength'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_STRENGTH_CHANGE = `strengthChange${EVENT_KEY}`\n\nconst SELECTOR_DATA_STRENGTH = '[data-bs-strength]'\n\nconst STRENGTH_LEVELS = ['weak', 'fair', 'good', 'strong']\n\nconst Default = {\n input: null, // Selector or element for password input\n minLength: 8,\n messages: {\n weak: 'Weak',\n fair: 'Fair',\n good: 'Good',\n strong: 'Strong'\n },\n weights: {\n minLength: 1,\n extraLength: 1,\n lowercase: 1,\n uppercase: 1,\n numbers: 1,\n special: 1,\n multipleSpecial: 1,\n longPassword: 1\n },\n thresholds: [2, 4, 6], // weak ≤2, fair ≤4, good ≤6, strong >6\n scorer: null // Custom scoring function (password) => number\n}\n\nconst DefaultType = {\n input: '(string|element|null)',\n minLength: 'number',\n messages: 'object',\n weights: 'object',\n thresholds: 'array',\n scorer: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Strength extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = this._getInput()\n this._segments = SelectorEngine.find('.strength-segment', this._element)\n this._textElement = SelectorEngine.findOne('.strength-text', this._element.parentElement)\n this._currentStrength = null\n\n if (this._input) {\n this._addEventListeners()\n // Check initial value\n this._evaluate()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getStrength() {\n return this._currentStrength\n }\n\n evaluate() {\n this._evaluate()\n }\n\n // Private\n _getInput() {\n if (this._config.input) {\n return typeof this._config.input === 'string' ?\n SelectorEngine.findOne(this._config.input) :\n this._config.input\n }\n\n // Look for preceding password input\n const parent = this._element.parentElement\n return SelectorEngine.findOne('input[type=\"password\"]', parent)\n }\n\n _addEventListeners() {\n EventHandler.on(this._input, 'input', () => this._evaluate())\n EventHandler.on(this._input, 'change', () => this._evaluate())\n }\n\n _evaluate() {\n const password = this._input.value\n const score = this._calculateScore(password)\n const strength = this._scoreToStrength(score)\n\n if (strength !== this._currentStrength) {\n this._currentStrength = strength\n this._updateUI(strength, score)\n\n EventHandler.trigger(this._element, EVENT_STRENGTH_CHANGE, {\n strength,\n score,\n password: password.length > 0 ? '***' : '' // Don't expose actual password\n })\n }\n }\n\n _calculateScore(password) {\n if (!password) {\n return 0\n }\n\n // Use custom scorer if provided\n if (typeof this._config.scorer === 'function') {\n return this._config.scorer(password)\n }\n\n const { weights } = this._config\n let score = 0\n\n // Length scoring\n if (password.length >= this._config.minLength) {\n score += weights.minLength\n }\n\n if (password.length >= this._config.minLength + 4) {\n score += weights.extraLength\n }\n\n // Character variety\n if (/[a-z]/.test(password)) {\n score += weights.lowercase\n }\n\n if (/[A-Z]/.test(password)) {\n score += weights.uppercase\n }\n\n if (/\\d/.test(password)) {\n score += weights.numbers\n }\n\n // Special characters\n if (/[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n score += weights.special\n }\n\n // Extra points for more special chars or length\n if (/[!@#$%^&*(),.?\":{}|<>].*[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\n score += weights.multipleSpecial\n }\n\n if (password.length >= 16) {\n score += weights.longPassword\n }\n\n return score\n }\n\n _scoreToStrength(score) {\n if (score === 0) {\n return null\n }\n\n const [weak, fair, good] = this._config.thresholds\n\n if (score <= weak) {\n return 'weak'\n }\n\n if (score <= fair) {\n return 'fair'\n }\n\n if (score <= good) {\n return 'good'\n }\n\n return 'strong'\n }\n\n _updateUI(strength) {\n // Update data attribute on element\n if (strength) {\n this._element.dataset.bsStrength = strength\n } else {\n delete this._element.dataset.bsStrength\n }\n\n // Update segmented meter\n const strengthIndex = strength ? STRENGTH_LEVELS.indexOf(strength) : -1\n\n for (const [index, segment] of this._segments.entries()) {\n if (index <= strengthIndex) {\n segment.classList.add('active')\n } else {\n segment.classList.remove('active')\n }\n }\n\n // Update text feedback\n if (this._textElement) {\n if (strength && this._config.messages[strength]) {\n this._textElement.textContent = this._config.messages[strength]\n this._textElement.dataset.bsStrength = strength\n\n // Also set the color via inheriting from parent or using CSS variable\n const colorMap = {\n weak: 'danger',\n fair: 'warning',\n good: 'info',\n strong: 'success'\n }\n this._textElement.style.setProperty('--strength-color', `var(--${colorMap[strength]}-text)`)\n } else {\n this._textElement.textContent = ''\n delete this._textElement.dataset.bsStrength\n }\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_STRENGTH)) {\n Strength.getOrCreateInstance(element)\n }\n})\n\nexport default Strength\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap otp-input.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'otpInput'\nconst DATA_KEY = 'bs.otpInput'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_COMPLETE = `complete${EVENT_KEY}`\nconst EVENT_INPUT = `input${EVENT_KEY}`\nconst EVENT_DOMCONTENT_LOADED = `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_OTP = '[data-bs-otp]'\nconst SELECTOR_INPUT = 'input'\n\n// Events that should refresh the active-slot highlight as the caret moves\nconst SYNC_EVENTS = ['blur', 'keyup', 'click', 'select']\n\nconst CLASS_NAME_INPUT = 'otp-input'\nconst CLASS_NAME_RENDERED = 'otp-rendered'\nconst CLASS_NAME_SLOTS = 'otp-slots'\nconst CLASS_NAME_SLOT = 'otp-slot'\nconst CLASS_NAME_SLOT_FILLED = 'otp-slot-filled'\nconst CLASS_NAME_SLOT_ACTIVE = 'otp-slot-active'\nconst CLASS_NAME_SEPARATOR = 'otp-separator'\n\nconst MASK_CHARACTER = '•'\n\n// Per-type input mode, validation pattern, and a filter that strips disallowed characters\nconst TYPES = {\n numeric: { inputmode: 'numeric', pattern: '[0-9]*', filter: /[^0-9]/g },\n alphanumeric: { inputmode: 'text', pattern: '[A-Za-z0-9]*', filter: /[^A-Za-z0-9]/g },\n alpha: { inputmode: 'text', pattern: '[A-Za-z]*', filter: /[^A-Za-z]/g }\n}\n\nconst Default = {\n groups: null,\n length: null,\n mask: false,\n separator: '·',\n type: 'numeric'\n}\n\nconst DefaultType = {\n groups: '(array|null)',\n length: '(number|null)',\n mask: 'boolean',\n separator: 'string',\n type: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass OtpInput extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = SelectorEngine.findOne(SELECTOR_INPUT, this._element)\n if (!this._input) {\n return\n }\n\n this._type = TYPES[this._config.type] || TYPES.numeric\n this._length = this._resolveLength()\n this._slots = []\n\n this._setupInput()\n this._renderSlots()\n this._addEventListeners()\n this._render()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getValue() {\n return this._input.value\n }\n\n setValue(value) {\n this._input.value = this._sanitize(String(value))\n this._render()\n this._checkComplete()\n }\n\n clear() {\n this._input.value = ''\n this._render()\n this._input.focus()\n }\n\n focus() {\n this._input.focus()\n // Place the caret after the last entered character\n const end = this._input.value.length\n this._input.setSelectionRange(end, end)\n this._render()\n }\n\n dispose() {\n EventHandler.off(this._input, 'input', this._onInput)\n EventHandler.off(this._input, 'focus', this._onFocus)\n for (const type of SYNC_EVENTS) {\n EventHandler.off(this._input, type, this._onSync)\n }\n\n this._slotsContainer?.remove()\n this._element.classList.remove(CLASS_NAME_RENDERED)\n super.dispose()\n }\n\n // Private\n _resolveLength() {\n if (this._config.length) {\n return this._config.length\n }\n\n const maxLength = Number.parseInt(this._input.getAttribute('maxlength'), 10)\n return Number.isNaN(maxLength) || maxLength < 1 ? 6 : maxLength\n }\n\n _setupInput() {\n const input = this._input\n\n // A single text field backs the whole control so screen readers, password\n // managers, and SMS autofill treat it like any other input.\n if (input.type === 'number' || input.type === 'password') {\n input.type = 'text'\n }\n\n input.classList.add(CLASS_NAME_INPUT)\n input.setAttribute('maxlength', String(this._length))\n input.setAttribute('inputmode', this._type.inputmode)\n input.setAttribute('pattern', this._type.pattern)\n\n if (!input.getAttribute('autocomplete')) {\n input.setAttribute('autocomplete', 'one-time-code')\n }\n\n // Filter any pre-filled value through the configured type\n if (input.value) {\n input.value = this._sanitize(input.value)\n }\n }\n\n _renderSlots() {\n const container = document.createElement('div')\n container.className = CLASS_NAME_SLOTS\n container.setAttribute('aria-hidden', 'true')\n\n const { groups } = this._config\n let groupIndex = 0\n let inGroup = 0\n\n for (let i = 0; i < this._length; i++) {\n const slot = document.createElement('div')\n slot.className = CLASS_NAME_SLOT\n container.append(slot)\n this._slots.push(slot)\n\n // Insert a visual separator between configured groups\n if (Array.isArray(groups) && groups.length > 0) {\n inGroup++\n if (inGroup === groups[groupIndex] && i < this._length - 1) {\n const separator = document.createElement('div')\n separator.className = CLASS_NAME_SEPARATOR\n separator.textContent = this._config.separator\n container.append(separator)\n groupIndex = Math.min(groupIndex + 1, groups.length - 1)\n inGroup = 0\n }\n }\n }\n\n this._slotsContainer = container\n this._element.append(container)\n this._element.classList.add(CLASS_NAME_RENDERED)\n }\n\n _addEventListeners() {\n // Listeners are attached with bare event names (not namespaced) because\n // `input` is not in EventHandler's native-events list; we keep references\n // so they can be removed on dispose.\n this._onInput = () => this._handleInput()\n this._onFocus = () => this.focus()\n this._onSync = () => this._render()\n\n EventHandler.on(this._input, 'input', this._onInput)\n EventHandler.on(this._input, 'focus', this._onFocus)\n\n // Keep the active-slot highlight in sync with the caret\n for (const type of SYNC_EVENTS) {\n EventHandler.on(this._input, type, this._onSync)\n }\n }\n\n _handleInput() {\n const sanitized = this._sanitize(this._input.value)\n if (sanitized !== this._input.value) {\n this._input.value = sanitized\n }\n\n this._render()\n\n EventHandler.trigger(this._element, EVENT_INPUT, { value: this._input.value })\n\n this._checkComplete()\n }\n\n _sanitize(value) {\n return value.replace(this._type.filter, '').slice(0, this._length)\n }\n\n _render() {\n const { value } = this._input\n const isFocused = document.activeElement === this._input\n // The active slot follows the caret, clamped to the last slot when the value is full\n const caret = Math.min(this._input.selectionStart ?? value.length, this._length - 1)\n\n for (const [index, slot] of this._slots.entries()) {\n const char = value[index] ?? ''\n slot.textContent = char && this._config.mask ? MASK_CHARACTER : char\n slot.classList.toggle(CLASS_NAME_SLOT_FILLED, Boolean(char))\n slot.classList.toggle(CLASS_NAME_SLOT_ACTIVE, isFocused && index === caret)\n }\n }\n\n _checkComplete() {\n const { value } = this._input\n if (value.length === this._length) {\n EventHandler.trigger(this._element, EVENT_COMPLETE, { value })\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_DOMCONTENT_LOADED, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_OTP)) {\n OtpInput.getOrCreateInstance(element)\n }\n})\n\nexport default OtpInput\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap chips.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'chips'\nconst DATA_KEY = 'bs.chips'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ADD = `add${EVENT_KEY}`\nconst EVENT_REMOVE = `remove${EVENT_KEY}`\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_SELECT = `select${EVENT_KEY}`\n\nconst SELECTOR_DATA_CHIPS = '[data-bs-chips]'\nconst SELECTOR_GHOST_INPUT = '.form-ghost'\nconst SELECTOR_CHIP = '.chip'\nconst SELECTOR_CHIP_DISMISS = '.chip-dismiss'\n\nconst CLASS_NAME_CHIP = 'chip'\nconst CLASS_NAME_CHIP_DISMISS = 'chip-dismiss'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst DEFAULT_DISMISS_ICON = '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><line x1=\"4\" y1=\"4\" x2=\"12\" y2=\"12\"/><line x1=\"12\" y1=\"4\" x2=\"4\" y2=\"12\"/></svg>'\n\nconst Default = {\n separator: ',',\n allowDuplicates: false,\n maxChips: null,\n placeholder: '',\n dismissible: true,\n dismissIcon: DEFAULT_DISMISS_ICON,\n createOnBlur: true\n}\n\nconst DefaultType = {\n separator: '(string|null)',\n allowDuplicates: 'boolean',\n maxChips: '(number|null)',\n placeholder: 'string',\n dismissible: 'boolean',\n dismissIcon: 'string',\n createOnBlur: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Chips extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = SelectorEngine.findOne(SELECTOR_GHOST_INPUT, this._element)\n this._chips = []\n this._selectedChips = new Set()\n this._anchorChip = null // For shift+click range selection\n\n if (!this._input) {\n this._createInput()\n }\n\n this._initializeExistingChips()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n add(value) {\n const trimmedValue = String(value).trim()\n\n if (!trimmedValue) {\n return null\n }\n\n // Check for duplicates\n if (!this._config.allowDuplicates && this._chips.includes(trimmedValue)) {\n return null\n }\n\n // Check max chips limit\n if (this._config.maxChips !== null && this._chips.length >= this._config.maxChips) {\n return null\n }\n\n const addEvent = EventHandler.trigger(this._element, EVENT_ADD, {\n value: trimmedValue,\n relatedTarget: this._input\n })\n\n if (addEvent.defaultPrevented) {\n return null\n }\n\n const chip = this._createChip(trimmedValue)\n this._element.insertBefore(chip, this._input)\n this._chips.push(trimmedValue)\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: this.getValues()\n })\n\n return chip\n }\n\n remove(chipOrValue) {\n let chip\n let value\n\n if (typeof chipOrValue === 'string') {\n value = chipOrValue\n chip = this._findChipByValue(value)\n } else {\n chip = chipOrValue\n value = this._getChipValue(chip)\n }\n\n if (!chip || !value) {\n return false\n }\n\n const removeEvent = EventHandler.trigger(this._element, EVENT_REMOVE, {\n value,\n chip,\n relatedTarget: this._input\n })\n\n if (removeEvent.defaultPrevented) {\n return false\n }\n\n // Remove from selection\n this._selectedChips.delete(chip)\n if (this._anchorChip === chip) {\n this._anchorChip = null\n }\n\n // Remove from DOM and array\n chip.remove()\n this._chips = this._chips.filter(v => v !== value)\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: this.getValues()\n })\n\n return true\n }\n\n removeSelected() {\n const chipsToRemove = [...this._selectedChips]\n for (const chip of chipsToRemove) {\n this.remove(chip)\n }\n\n this._input?.focus()\n }\n\n getValues() {\n return [...this._chips]\n }\n\n getSelectedValues() {\n return [...this._selectedChips].map(chip => this._getChipValue(chip))\n }\n\n clear() {\n const chips = SelectorEngine.find(SELECTOR_CHIP, this._element)\n for (const chip of chips) {\n chip.remove()\n }\n\n this._chips = []\n this._selectedChips.clear()\n this._anchorChip = null\n\n EventHandler.trigger(this._element, EVENT_CHANGE, {\n values: []\n })\n }\n\n clearSelection() {\n for (const chip of this._selectedChips) {\n chip.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n this._selectedChips.clear()\n this._anchorChip = null\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: []\n })\n }\n\n selectChip(chip, options = {}) {\n const { addToSelection = false, rangeSelect = false } = options\n const chipElements = this._getChipElements()\n\n if (!chipElements.includes(chip)) {\n return\n }\n\n if (rangeSelect && this._anchorChip) {\n // Range selection from anchor to chip\n const anchorIndex = chipElements.indexOf(this._anchorChip)\n const chipIndex = chipElements.indexOf(chip)\n const start = Math.min(anchorIndex, chipIndex)\n const end = Math.max(anchorIndex, chipIndex)\n\n if (!addToSelection) {\n this.clearSelection()\n }\n\n for (let i = start; i <= end; i++) {\n this._selectedChips.add(chipElements[i])\n chipElements[i].classList.add(CLASS_NAME_ACTIVE)\n }\n } else if (addToSelection) {\n // Toggle selection\n if (this._selectedChips.has(chip)) {\n this._selectedChips.delete(chip)\n chip.classList.remove(CLASS_NAME_ACTIVE)\n } else {\n this._selectedChips.add(chip)\n chip.classList.add(CLASS_NAME_ACTIVE)\n this._anchorChip = chip\n }\n } else {\n // Single selection\n this.clearSelection()\n this._selectedChips.add(chip)\n chip.classList.add(CLASS_NAME_ACTIVE)\n this._anchorChip = chip\n }\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: this.getSelectedValues()\n })\n }\n\n focus() {\n this._input?.focus()\n }\n\n // Private\n _getChipElements() {\n return SelectorEngine.find(SELECTOR_CHIP, this._element)\n }\n\n _createInput() {\n const input = document.createElement('input')\n input.type = 'text'\n input.className = 'form-ghost'\n if (this._config.placeholder) {\n input.placeholder = this._config.placeholder\n }\n\n this._element.append(input)\n this._input = input\n }\n\n _initializeExistingChips() {\n const existingChips = SelectorEngine.find(SELECTOR_CHIP, this._element)\n for (const chip of existingChips) {\n const value = this._getChipValue(chip)\n if (value) {\n this._chips.push(value)\n this._setupChip(chip)\n }\n }\n }\n\n _setupChip(chip) {\n // Make chip focusable\n chip.setAttribute('tabindex', '0')\n\n // Add dismiss button if needed\n if (this._config.dismissible && !SelectorEngine.findOne(SELECTOR_CHIP_DISMISS, chip)) {\n chip.append(this._createDismissButton())\n }\n }\n\n _createChip(value) {\n const chip = document.createElement('span')\n chip.className = CLASS_NAME_CHIP\n chip.dataset.bsChipValue = value\n\n // Add text node\n chip.append(document.createTextNode(value))\n\n // Setup chip (tabindex, dismiss button)\n this._setupChip(chip)\n\n return chip\n }\n\n _createDismissButton() {\n const button = document.createElement('button')\n button.type = 'button'\n button.className = CLASS_NAME_CHIP_DISMISS\n button.setAttribute('aria-label', 'Remove')\n button.setAttribute('tabindex', '-1') // Not in tab order, chips handle keyboard\n button.innerHTML = this._config.dismissIcon\n return button\n }\n\n _findChipByValue(value) {\n const chips = this._getChipElements()\n return chips.find(chip => this._getChipValue(chip) === value)\n }\n\n _getChipValue(chip) {\n if (chip.dataset.bsChipValue) {\n return chip.dataset.bsChipValue\n }\n\n const clone = chip.cloneNode(true)\n const dismiss = SelectorEngine.findOne(SELECTOR_CHIP_DISMISS, clone)\n if (dismiss) {\n dismiss.remove()\n }\n\n return clone.textContent?.trim() || ''\n }\n\n _addEventListeners() {\n // Input events\n EventHandler.on(this._input, 'keydown', event => this._handleInputKeydown(event))\n EventHandler.on(this._input, 'input', event => this._handleInput(event))\n EventHandler.on(this._input, 'paste', event => this._handlePaste(event))\n EventHandler.on(this._input, 'focus', () => this.clearSelection())\n\n if (this._config.createOnBlur) {\n EventHandler.on(this._input, 'blur', event => {\n // Don't create chip if clicking on a chip\n if (!event.relatedTarget?.closest(SELECTOR_CHIP)) {\n this._createChipFromInput()\n }\n })\n }\n\n // Chip click events (delegated)\n EventHandler.on(this._element, 'click', SELECTOR_CHIP, event => {\n // Ignore clicks on dismiss button\n if (event.target.closest(SELECTOR_CHIP_DISMISS)) {\n return\n }\n\n const chip = event.target.closest(SELECTOR_CHIP)\n if (chip) {\n event.preventDefault()\n this.selectChip(chip, {\n addToSelection: event.metaKey || event.ctrlKey,\n rangeSelect: event.shiftKey\n })\n chip.focus()\n }\n })\n\n // Dismiss button clicks (delegated)\n EventHandler.on(this._element, 'click', SELECTOR_CHIP_DISMISS, event => {\n event.stopPropagation()\n const chip = event.target.closest(SELECTOR_CHIP)\n if (chip) {\n this.remove(chip)\n this._input?.focus()\n }\n })\n\n // Chip keyboard events (delegated)\n EventHandler.on(this._element, 'keydown', SELECTOR_CHIP, event => {\n this._handleChipKeydown(event)\n })\n\n // Focus input when clicking container background\n EventHandler.on(this._element, 'click', event => {\n if (event.target === this._element) {\n this.clearSelection()\n this._input?.focus()\n }\n })\n }\n\n _handleInputKeydown(event) {\n const { key } = event\n\n switch (key) {\n case 'Enter': {\n event.preventDefault()\n this._createChipFromInput()\n break\n }\n\n case 'Backspace':\n case 'Delete': {\n if (this._input.value === '') {\n event.preventDefault()\n const chips = this._getChipElements()\n\n if (chips.length > 0) {\n // Select last chip and focus it\n const lastChip = chips.at(-1)\n this.selectChip(lastChip)\n lastChip.focus()\n }\n }\n\n break\n }\n\n case 'ArrowLeft': {\n if (this._input.selectionStart === 0 && this._input.selectionEnd === 0) {\n event.preventDefault()\n const chips = this._getChipElements()\n if (chips.length > 0) {\n const lastChip = chips.at(-1)\n if (event.shiftKey) {\n this.selectChip(lastChip, { addToSelection: true })\n } else {\n this.selectChip(lastChip)\n }\n\n lastChip.focus()\n }\n }\n\n break\n }\n\n case 'Escape': {\n this._input.value = ''\n this.clearSelection()\n this._input.blur()\n break\n }\n\n // No default\n }\n }\n\n _handleChipKeydown(event) {\n const { key } = event\n const chip = event.target.closest(SELECTOR_CHIP)\n if (!chip) {\n return\n }\n\n const chips = this._getChipElements()\n const currentIndex = chips.indexOf(chip)\n\n switch (key) {\n case 'Backspace':\n case 'Delete': {\n event.preventDefault()\n this._handleChipDelete(currentIndex, chips)\n break\n }\n\n case 'ArrowLeft': {\n event.preventDefault()\n this._navigateChip(chips, currentIndex, -1, event.shiftKey)\n break\n }\n\n case 'ArrowRight': {\n event.preventDefault()\n this._navigateChip(chips, currentIndex, 1, event.shiftKey)\n break\n }\n\n case 'Home': {\n event.preventDefault()\n this._navigateToEdge(chips, 0, event.shiftKey)\n break\n }\n\n case 'End': {\n event.preventDefault()\n this.clearSelection()\n this._input?.focus()\n break\n }\n\n case 'a': {\n this._handleSelectAll(event, chips)\n break\n }\n\n case 'Escape': {\n event.preventDefault()\n this.clearSelection()\n this._input?.focus()\n break\n }\n\n // No default\n }\n }\n\n _handleChipDelete(currentIndex, chips) {\n if (this._selectedChips.size === 0) {\n return\n }\n\n const nextIndex = Math.min(currentIndex, chips.length - this._selectedChips.size - 1)\n this.removeSelected()\n\n const remainingChips = this._getChipElements()\n if (remainingChips.length > 0) {\n const focusIndex = Math.max(0, Math.min(nextIndex, remainingChips.length - 1))\n remainingChips[focusIndex].focus()\n this.selectChip(remainingChips[focusIndex])\n } else {\n this._input?.focus()\n }\n }\n\n _navigateChip(chips, currentIndex, direction, shiftKey) {\n const targetIndex = currentIndex + direction\n\n if (direction < 0 && targetIndex >= 0) {\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { addToSelection: true, rangeSelect: true } : {})\n targetChip.focus()\n } else if (direction > 0 && targetIndex < chips.length) {\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { addToSelection: true, rangeSelect: true } : {})\n targetChip.focus()\n } else if (direction > 0) {\n this.clearSelection()\n this._input?.focus()\n }\n }\n\n _navigateToEdge(chips, targetIndex, shiftKey) {\n if (chips.length === 0) {\n return\n }\n\n const targetChip = chips[targetIndex]\n this.selectChip(targetChip, shiftKey ? { rangeSelect: true } : {})\n targetChip.focus()\n }\n\n _handleSelectAll(event, chips) {\n if (!(event.metaKey || event.ctrlKey)) {\n return\n }\n\n event.preventDefault()\n for (const c of chips) {\n this._selectedChips.add(c)\n c.classList.add(CLASS_NAME_ACTIVE)\n }\n\n EventHandler.trigger(this._element, EVENT_SELECT, {\n selected: this.getSelectedValues()\n })\n }\n\n _handleInput(event) {\n const { value } = event.target\n const { separator } = this._config\n\n if (separator && value.includes(separator)) {\n const parts = value.split(separator)\n for (const part of parts.slice(0, -1)) {\n this.add(part.trim())\n }\n\n this._input.value = parts.at(-1)\n }\n }\n\n _handlePaste(event) {\n const { separator } = this._config\n if (!separator) {\n return\n }\n\n const pastedData = (event.clipboardData || window.clipboardData).getData('text')\n if (pastedData.includes(separator)) {\n event.preventDefault()\n\n const parts = pastedData.split(separator)\n for (const part of parts) {\n this.add(part.trim())\n }\n }\n }\n\n _createChipFromInput() {\n const value = this._input.value.trim()\n if (value) {\n this.add(value)\n this._input.value = ''\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_CHIPS)) {\n Chips.getOrCreateInstance(element)\n }\n})\n\nexport default Chips\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n// js-docs-end allow-list\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue))\n }\n\n return true\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n .some(regex => regex.test(attributeName))\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const elements = [...createdDocument.body.querySelectorAll('*')]\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n continue\n }\n\n const attributeList = [...element.attributes]\n const allowedAttributes = [...(allowList['*'] || []), ...(allowList[elementName] || [])]\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'\nimport { execute, getElement, isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'TemplateFactory'\n\nconst Default = {\n allowList: DefaultAllowlist,\n content: {}, // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '<div></div>'\n}\n\nconst DefaultType = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n}\n\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content)\n .map(config => this._resolvePossibleFunction(config))\n .filter(Boolean)\n }\n\n hasContent() {\n return this.getContent().length > 0\n }\n\n changeContent(content) {\n this._checkContent(content)\n this._config.content = { ...this._config.content, ...content }\n return this\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div')\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template)\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector)\n }\n\n const template = templateWrapper.children[0]\n const extraClass = this._resolvePossibleFunction(this._config.extraClass)\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '))\n }\n\n return template\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config)\n this._checkContent(config.content)\n }\n\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({ selector, entry: content }, DefaultContentType)\n }\n }\n\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template)\n\n if (!templateElement) {\n return\n }\n\n content = this._resolvePossibleFunction(content)\n\n if (!content) {\n templateElement.remove()\n return\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement)\n return\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content)\n return\n }\n\n templateElement.textContent = content\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [undefined, this])\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = ''\n templateElement.append(element)\n return\n }\n\n templateElement.textContent = element.textContent\n }\n}\n\nexport default TemplateFactory\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n computePosition,\n flip,\n shift,\n offset,\n arrow,\n autoUpdate\n} from '@floating-ui/dom'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport {\n execute, findShadowRoot, getElement, getUID, isRTL, noop\n} from './util/index.js'\nimport { DefaultAllowlist } from './util/sanitizer.js'\nimport TemplateFactory from './util/template-factory.js'\nimport {\n parseResponsivePlacement,\n getResponsivePlacement,\n createBreakpointListeners,\n disposeBreakpointListeners\n} from './util/floating-ui.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tooltip\"]'\n\nconst EVENT_MODAL_HIDE = 'hide.bs.modal'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\nconst EVENT_HIDE = 'hide'\nconst EVENT_HIDDEN = 'hidden'\nconst EVENT_SHOW = 'show'\nconst EVENT_SHOWN = 'shown'\nconst EVENT_INSERTED = 'inserted'\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_FOCUSOUT = 'focusout'\nconst EVENT_MOUSEENTER = 'mouseenter'\nconst EVENT_MOUSELEAVE = 'mouseleave'\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n}\n\nconst Default = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n floatingConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n title: '',\n trigger: 'hover focus'\n}\n\nconst DefaultType = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n floatingConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof computePosition === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Floating UI (https://floating-ui.com)')\n }\n\n super(element, config)\n\n // Private\n this._isEnabled = true\n this._timeout = 0\n this._isHovered = null\n this._activeTrigger = {}\n this._floatingCleanup = null\n this._templateFactory = null\n this._newContent = null\n this._mediaQueryListeners = []\n this._responsivePlacements = null\n\n // Protected\n this.tip = null\n\n this._parseResponsivePlacements()\n this._setListeners()\n\n if (!this._config.selector) {\n this._fixTitle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle() {\n if (!this._isEnabled) {\n return\n }\n\n if (this._isShown()) {\n this._leave()\n return\n }\n\n this._enter()\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'))\n }\n\n this._disposeFloating()\n this._disposeMediaQueryListeners()\n super.dispose()\n }\n\n async show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (!(this._isWithContent() && this._isEnabled)) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW))\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n this._disposeFloating()\n\n const tip = this._getTipElement()\n\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'))\n\n let { container } = this._config\n const closestDialog = this._element.closest('dialog[open]')\n if (closestDialog && container === document.body) {\n container = closestDialog\n }\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip)\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED))\n }\n\n await this._createFloating(tip)\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN))\n\n if (this._isHovered === false) {\n this._leave()\n }\n\n this._isHovered = false\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE))\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const tip = this._getTipElement()\n tip.classList.remove(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n this._isHovered = null // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (!this._isHovered) {\n this._disposeFloating()\n }\n\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN))\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n update() {\n if (this._floatingCleanup && this.tip) {\n this._updateFloatingPosition()\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle())\n }\n\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())\n }\n\n return this.tip\n }\n\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml()\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n tip.classList.add(`bs-${this.constructor.NAME}-auto`)\n\n const tipId = getUID(this.constructor.NAME).toString()\n\n tip.setAttribute('id', tipId)\n\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n return tip\n }\n\n setContent(content) {\n this._newContent = content\n if (this._isShown()) {\n this._disposeFloating()\n this.show()\n }\n }\n\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content)\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n })\n }\n\n return this._templateFactory\n }\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n }\n }\n\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title')\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\n }\n\n _isAnimated() {\n return this._config.animation || (this.tip && this.tip.classList.contains(CLASS_NAME_FADE))\n }\n\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement(tip) {\n // If we have responsive placements, get the one for current viewport\n if (this._responsivePlacements) {\n const placement = getResponsivePlacement(this._responsivePlacements, 'top')\n return AttachmentMap[placement.toUpperCase()] || placement\n }\n\n // Execute placement (can be a function)\n const placement = execute(this._config.placement, [this, tip, this._element])\n return AttachmentMap[placement.toUpperCase()] || placement\n }\n\n _parseResponsivePlacements() {\n // Only parse if placement is a string (not a function)\n if (typeof this._config.placement !== 'string') {\n this._responsivePlacements = null\n return\n }\n\n this._responsivePlacements = parseResponsivePlacement(this._config.placement, 'top')\n\n if (this._responsivePlacements) {\n this._setupMediaQueryListeners()\n }\n }\n\n _setupMediaQueryListeners() {\n this._disposeMediaQueryListeners()\n this._mediaQueryListeners = createBreakpointListeners(() => {\n if (this._isShown()) {\n this._updateFloatingPosition()\n }\n })\n }\n\n _disposeMediaQueryListeners() {\n disposeBreakpointListeners(this._mediaQueryListeners)\n this._mediaQueryListeners = []\n }\n\n async _createFloating(tip) {\n const placement = this._getPlacement(tip)\n const arrowElement = tip.querySelector(`.${this.constructor.NAME}-arrow`)\n\n // Initial position update\n await this._updateFloatingPosition(tip, placement, arrowElement)\n\n // Set up auto-update for scroll/resize\n this._floatingCleanup = autoUpdate(\n this._element,\n tip,\n () => this._updateFloatingPosition(tip, null, arrowElement)\n )\n }\n\n async _updateFloatingPosition(tip = this.tip, placement = null, arrowElement = null) {\n if (!tip) {\n return\n }\n\n if (!placement) {\n placement = this._getPlacement(tip)\n }\n\n if (!arrowElement) {\n arrowElement = tip.querySelector(`.${this.constructor.NAME}-arrow`)\n }\n\n const middleware = this._getFloatingMiddleware(arrowElement)\n const floatingConfig = this._getFloatingConfig(placement, middleware)\n\n const { x, y, placement: finalPlacement, middlewareData } = await computePosition(\n this._element,\n tip,\n floatingConfig\n )\n\n // Apply position to tooltip\n Object.assign(tip.style, {\n position: 'absolute',\n left: `${x}px`,\n top: `${y}px`\n })\n\n // Ensure arrow is absolutely positioned within tooltip\n if (arrowElement) {\n arrowElement.style.position = 'absolute'\n }\n\n // Set placement attribute for CSS arrow styling\n Manipulator.setDataAttribute(tip, 'placement', finalPlacement)\n\n // Position arrow along the edge (center it) if present\n // The CSS handles which edge to place it on via data-bs-placement\n if (arrowElement && middlewareData.arrow) {\n const { x: arrowX, y: arrowY } = middlewareData.arrow\n const isVertical = finalPlacement.startsWith('top') || finalPlacement.startsWith('bottom')\n\n // Only set the cross-axis position (centering along the edge)\n // The main-axis position (which edge) is handled by CSS\n Object.assign(arrowElement.style, {\n left: isVertical && arrowX !== null ? `${arrowX}px` : '',\n top: !isVertical && arrowY !== null ? `${arrowY}px` : '',\n // Reset the other axis to let CSS handle it\n right: '',\n bottom: ''\n })\n }\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offset === 'function') {\n // Floating UI passes different args, adapt the interface for offset function callbacks\n return ({ placement, rects }) => {\n const result = offset({ placement, reference: rects.reference, floating: rects.floating }, this._element)\n return result\n }\n }\n\n return offset\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element, this._element])\n }\n\n _getFloatingMiddleware(arrowElement) {\n const offsetValue = this._getOffset()\n\n const middleware = [\n // Offset middleware - handles distance from reference\n offset(\n typeof offsetValue === 'function' ?\n offsetValue :\n { mainAxis: offsetValue[1] || 0, crossAxis: offsetValue[0] || 0 }\n ),\n // Flip middleware - handles fallback placements\n flip({\n fallbackPlacements: this._config.fallbackPlacements\n }),\n // Shift middleware - prevents overflow\n shift({\n boundary: this._config.boundary === 'clippingParents' ? 'clippingAncestors' : this._config.boundary\n })\n ]\n\n // Arrow middleware - positions the arrow element\n if (arrowElement) {\n middleware.push(arrow({ element: arrowElement }))\n }\n\n return middleware\n }\n\n _getFloatingConfig(placement, middleware) {\n const defaultConfig = {\n placement,\n middleware\n }\n\n return {\n ...defaultConfig,\n ...execute(this._config.floatingConfig, [undefined, defaultConfig])\n }\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ')\n\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[TRIGGER_CLICK] = !(context._isShown() && context._activeTrigger[TRIGGER_CLICK])\n context.toggle()\n })\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSEENTER) :\n this.constructor.eventName(EVENT_FOCUSIN)\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSELEAVE) :\n this.constructor.eventName(EVENT_FOCUSOUT)\n\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true\n context._enter()\n })\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] =\n context._element.contains(event.relatedTarget)\n\n context._leave()\n })\n }\n }\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n\n if (!title) {\n return\n }\n\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('data-bs-original-title', title) // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title')\n }\n\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true\n return\n }\n\n this._isHovered = true\n\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show()\n }\n }, this._config.delay.show)\n }\n\n _leave() {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n this._isHovered = false\n\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide()\n }\n }, this._config.delay.hide)\n }\n\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout)\n this._timeout = setTimeout(handler, timeout)\n }\n\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true)\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute]\n }\n }\n\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container)\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value\n }\n }\n\n config.selector = false\n config.trigger = 'manual'\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config\n }\n\n _disposeFloating() {\n if (this._floatingCleanup) {\n this._floatingCleanup()\n this._floatingCleanup = null\n }\n\n if (this.tip) {\n this.tip.remove()\n this.tip = null\n }\n }\n}\n\n/**\n * Data API implementation - auto-initialize tooltips\n */\n\nconst initTooltip = event => {\n const target = event.target.closest(SELECTOR_DATA_TOGGLE)\n if (!target) {\n return\n }\n\n // Lazily create the instance. The instance's own `_setListeners()` registers\n // the appropriate listeners on the element for the configured triggers\n // (hover/focus by default), so we don't mutate `_activeTrigger` or call\n // `_enter` here — doing so would show tooltips for triggers the user didn't\n // opt into (e.g. `focusin` firing for click-focused buttons in Chromium,\n // even when `trigger=\"hover\"` or `trigger=\"manual\"`) and leave stale state\n // on `_activeTrigger`.\n Tooltip.getOrCreateInstance(target)\n}\n\n// Auto-initialize tooltips on first interaction for hover and focus triggers\nEventHandler.on(document, EVENT_FOCUSIN, SELECTOR_DATA_TOGGLE, initTooltip)\nEventHandler.on(document, EVENT_MOUSEENTER, SELECTOR_DATA_TOGGLE, initTooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Tooltip from './tooltip.js'\nimport EventHandler from './dom/event-handler.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'popover'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"popover\"]'\n\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_MOUSEENTER = 'mouseenter'\n\nconst Default = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div>' +\n '</div>',\n trigger: 'click'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n}\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent()\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n }\n }\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content)\n }\n}\n\n/**\n * Data API implementation - auto-initialize popovers\n */\n\nconst initPopover = event => {\n const target = event.target.closest(SELECTOR_DATA_TOGGLE)\n if (!target) {\n return\n }\n\n // Prevent default for click events to avoid navigation (e.g. <a href=\"#\">)\n if (event.type === 'click') {\n event.preventDefault()\n }\n\n // Lazily create the instance. The instance's own `_setListeners()` registers\n // the appropriate listeners on the element for the configured triggers\n // (click/focus/hover), so we don't toggle or call `_enter` here — doing so\n // would duplicate handlers and leave stale state on `_activeTrigger`.\n Popover.getOrCreateInstance(target)\n}\n\n// Auto-initialize popovers on first interaction for click, hover, and focus triggers\nEventHandler.on(document, EVENT_CLICK, SELECTOR_DATA_TOGGLE, initPopover)\nEventHandler.on(document, EVENT_FOCUSIN, SELECTOR_DATA_TOGGLE, initPopover)\nEventHandler.on(document, EVENT_MOUSEENTER, SELECTOR_DATA_TOGGLE, initPopover)\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getElement, isDisabled, isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_MENU_ITEM = 'menu-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]'\nconst SELECTOR_TARGET_LINKS = '[href]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\nconst SELECTOR_MENU_TOGGLE = '[data-bs-toggle=\"menu\"]'\n\nconst Default = {\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n}\n\nconst DefaultType = {\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n}\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map()\n this._observableSections = new Map()\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element\n this._activeTarget = null\n this._observer = null\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n }\n this.refresh() // initialize\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables()\n this._maybeEnableSmoothScroll()\n\n if (this._observer) {\n this._observer.disconnect()\n } else {\n this._observer = this._getNewObserver()\n }\n\n for (const section of this._observableSections.values()) {\n this._observer.observe(section)\n }\n }\n\n dispose() {\n this._observer.disconnect()\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n config.target = getElement(config.target) || document.body\n\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value))\n }\n\n return config\n }\n\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK)\n\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash)\n if (observableSection) {\n event.preventDefault()\n const root = this._rootElement || window\n const height = observableSection.offsetTop - this._element.offsetTop\n if (root.scrollTo) {\n root.scrollTo({ top: height, behavior: 'smooth' })\n return\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height\n }\n })\n }\n\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n }\n\n return new IntersectionObserver(entries => this._observerCallback(entries), options)\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`)\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop\n this._process(targetElement(entry))\n }\n\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop\n this._previousScrollData.parentScrollTop = parentScrollTop\n\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null\n this._clearActiveClass(targetElement(entry))\n\n continue\n }\n\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry)\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return\n }\n\n continue\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry)\n }\n }\n }\n\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map()\n this._observableSections = new Map()\n\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target)\n\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue\n }\n\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element)\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor)\n this._observableSections.set(anchor.hash, observableSection)\n }\n }\n }\n\n _process(target) {\n if (this._activeTarget === target) {\n return\n }\n\n this._clearActiveClass(this._config.target)\n this._activeTarget = target\n target.classList.add(CLASS_NAME_ACTIVE)\n this._activateParents(target)\n\n EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target })\n }\n\n _activateParents(target) {\n // Activate menu parents\n if (target.classList.contains(CLASS_NAME_MENU_ITEM)) {\n const menuToggle = target.closest('.menu')?.previousElementSibling\n if (menuToggle?.matches(SELECTOR_MENU_TOGGLE)) {\n menuToggle.classList.add(CLASS_NAME_ACTIVE)\n }\n\n return\n }\n\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {\n item.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _clearActiveClass(parent) {\n parent.classList.remove(CLASS_NAME_ACTIVE)\n\n const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE}`, parent)\n for (const node of activeNodes) {\n node.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {\n ScrollSpy.getOrCreateInstance(spy)\n }\n})\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { getNextActiveElement, isDisabled } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst SELECTOR_MENU_TOGGLE = '[data-bs-toggle=\"menu\"]'\nconst SELECTOR_MENU = '.menu'\nconst NOT_SELECTOR_MENU_TOGGLE = `:not(${SELECTOR_MENU_TOGGLE})`\n\nconst SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]'\nconst SELECTOR_OUTER = '.nav-item, .list-group-item'\nconst SELECTOR_INNER = `.nav-link${NOT_SELECTOR_MENU_TOGGLE}, .list-group-item${NOT_SELECTOR_MENU_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_MENU_TOGGLE}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"]'\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`\n\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"]`\n\n/**\n * Class definition\n */\n\nclass Tab extends BaseComponent {\n constructor(element) {\n super(element)\n this._parent = this._element.closest(SELECTOR_TAB_PANEL)\n\n if (!this._parent) {\n return\n // TODO: should throw exception in v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_TAB_PANEL}`)\n }\n\n // Set up initial aria attributes\n this._setInitialAttributes(this._parent, this._getChildren())\n\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n show() { // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element\n if (this._elemIsActive(innerElem)) {\n return\n }\n\n // Search for active tab on same parent to deactivate it\n const active = this._getActiveElem()\n\n const hideEvent = active ?\n EventHandler.trigger(active, EVENT_HIDE, { relatedTarget: innerElem }) :\n null\n\n const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { relatedTarget: active })\n\n if (showEvent.defaultPrevented || (hideEvent && hideEvent.defaultPrevented)) {\n return\n }\n\n this._deactivate(active, innerElem)\n this._activate(innerElem, active)\n }\n\n // Private\n _activate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n\n this._activate(SelectorEngine.getElementFromSelector(element)) // Search and activate/show the proper section\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW)\n return\n }\n\n element.removeAttribute('tabindex')\n element.setAttribute('aria-selected', true)\n this._toggleMenu(element, true)\n EventHandler.trigger(element, EVENT_SHOWN, {\n relatedTarget: relatedElem\n })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _deactivate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.remove(CLASS_NAME_ACTIVE)\n element.blur()\n\n this._deactivate(SelectorEngine.getElementFromSelector(element)) // Search and deactivate the shown section too\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW)\n return\n }\n\n element.setAttribute('aria-selected', false)\n element.setAttribute('tabindex', '-1')\n this._toggleMenu(element, false)\n EventHandler.trigger(element, EVENT_HIDDEN, { relatedTarget: relatedElem })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _keydown(event) {\n if (!([ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key))) {\n return\n }\n\n event.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n event.preventDefault()\n\n const children = this._getChildren().filter(element => !isDisabled(element))\n let nextActiveElement\n\n if ([HOME_KEY, END_KEY].includes(event.key)) {\n nextActiveElement = event.key === HOME_KEY ? children[0] : children.at(-1)\n } else {\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\n nextActiveElement = getNextActiveElement(children, event.target, isNext, true)\n }\n\n if (nextActiveElement) {\n nextActiveElement.focus({ preventScroll: true })\n Tab.getOrCreateInstance(nextActiveElement).show()\n }\n }\n\n _getChildren() { // collection of inner elements\n return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent)\n }\n\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null\n }\n\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist')\n\n for (const child of children) {\n this._setInitialAttributesOnChild(child)\n }\n }\n\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child)\n const isActive = this._elemIsActive(child)\n const outerElem = this._getOuterElement(child)\n child.setAttribute('aria-selected', isActive)\n\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation')\n }\n\n if (!isActive) {\n child.setAttribute('tabindex', '-1')\n }\n\n this._setAttributeIfNotExists(child, 'role', 'tab')\n\n // set attributes to the related panel too\n this._setInitialAttributesOnTargetPanel(child)\n }\n\n _setInitialAttributesOnTargetPanel(child) {\n const target = SelectorEngine.getElementFromSelector(child)\n\n if (!target) {\n return\n }\n\n this._setAttributeIfNotExists(target, 'role', 'tabpanel')\n\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`)\n }\n }\n\n _toggleMenu(element, open) {\n const outerElem = this._getOuterElement(element)\n const menuToggle = SelectorEngine.findOne(SELECTOR_MENU_TOGGLE, outerElem)\n if (!menuToggle) {\n return\n }\n\n const menu = SelectorEngine.findOne(SELECTOR_MENU, outerElem)\n\n menuToggle.classList.toggle(CLASS_NAME_ACTIVE, open)\n if (menu) {\n menu.classList.toggle(CLASS_NAME_SHOW, open)\n }\n\n menuToggle.setAttribute('aria-expanded', open)\n }\n\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value)\n }\n }\n\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n // Try to get the inner element (usually the .nav-link)\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem)\n }\n\n // Try to get the outer element (usually the .nav-item)\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n Tab.getOrCreateInstance(this).show()\n})\n\n/**\n * Initialize on focus\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element)\n }\n})\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { reflow } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`\nconst EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_FOCUSOUT = `focusout${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide' // @deprecated - kept here only for backwards compatibility\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 5000\n}\n\n/**\n * Class definition\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._timeout = null\n this._hasMouseInteraction = false\n this._hasKeyboardInteraction = false\n this._setListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n show() {\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n this._maybeScheduleHide()\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE) // @deprecated\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING)\n\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n hide() {\n if (!this.isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE) // @deprecated\n this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.add(CLASS_NAME_SHOWING)\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this.isShown()) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n super.dispose()\n }\n\n isShown() {\n return this._element.classList.contains(CLASS_NAME_SHOW)\n }\n\n // Private\n _maybeScheduleHide() {\n if (!this._config.autohide) {\n return\n }\n\n if (this._hasMouseInteraction || this._hasKeyboardInteraction) {\n return\n }\n\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n\n _onInteraction(event, isInteracting) {\n switch (event.type) {\n case 'mouseover':\n case 'mouseout': {\n this._hasMouseInteraction = isInteracting\n break\n }\n\n case 'focusin':\n case 'focusout': {\n this._hasKeyboardInteraction = isInteracting\n break\n }\n\n default: {\n break\n }\n }\n\n if (isInteracting) {\n this._clearTimeout()\n return\n }\n\n const nextElement = event.relatedTarget\n if (this._element === nextElement || this._element.contains(nextElement)) {\n return\n }\n\n this._maybeScheduleHide()\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false))\n EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false))\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Toast)\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap toggler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { eventActionOnPlugin } from './util/component-functions.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'toggler'\nconst DATA_KEY = 'bs.toggler'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_TOGGLE = `toggle${EVENT_KEY}`\nconst EVENT_TOGGLED = `toggled${EVENT_KEY}`\nconst EVENT_CLICK = 'click'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"toggler\"]'\n\nconst DefaultType = {\n attribute: 'string',\n value: '(string|number|boolean)'\n}\n\nconst Default = {\n attribute: 'class',\n value: null\n}\n\n/**\n * Class definition\n */\n\nclass Toggler extends BaseComponent {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n const toggleEvent = EventHandler.trigger(this._element, EVENT_TOGGLE)\n\n if (toggleEvent.defaultPrevented) {\n return\n }\n\n this._execute()\n\n EventHandler.trigger(this._element, EVENT_TOGGLED)\n }\n\n // Private\n _execute() {\n const { attribute, value } = this._config\n\n if (attribute === 'id') {\n return // You have to be kidding\n }\n\n if (attribute === 'class') {\n this._element.classList.toggle(value)\n return\n }\n\n // Compare as strings since getAttribute() always returns a string\n if (this._element.getAttribute(attribute) === String(value)) {\n this._element.removeAttribute(attribute)\n return\n }\n\n this._element.setAttribute(attribute, value)\n }\n}\n\n/**\n * Data API implementation\n */\n\neventActionOnPlugin(Toggler, EVENT_CLICK, SELECTOR_DATA_TOGGLE, 'toggle')\n\nexport default Toggler\n"],"mappings":"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","ignoreList":[]}
\ No newline at end of file
import EventHandler from './dom/event-handler.js';
import Manipulator from './dom/manipulator.js';
import SelectorEngine from './dom/selector-engine.js';
-import { isVisible, triggerTransitionEnd, getNextActiveElement, reflow, isRTL } from './util/index.js';
-import Swipe from './util/swipe.js';
+import { isVisible, isRTL } from './util/index.js';
/**
* --------------------------------------------------------------------------
const DATA_API_KEY = '.data-api';
const ARROW_LEFT_KEY = 'ArrowLeft';
const ARROW_RIGHT_KEY = 'ArrowRight';
-const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
-
-const ORDER_NEXT = 'next';
-const ORDER_PREV = 'prev';
const DIRECTION_LEFT = 'left';
const DIRECTION_RIGHT = 'right';
const EVENT_SLIDE = `slide${EVENT_KEY}`;
const EVENT_KEYDOWN = `keydown${EVENT_KEY}`;
const EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`;
const EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`;
-const EVENT_DRAG_START = `dragstart${EVENT_KEY}`;
+const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`;
const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
const CLASS_NAME_CAROUSEL = 'carousel';
const CLASS_NAME_ACTIVE = 'active';
-const CLASS_NAME_SLIDE = 'slide';
-const CLASS_NAME_END = 'carousel-item-end';
-const CLASS_NAME_START = 'carousel-item-start';
-const CLASS_NAME_NEXT = 'carousel-item-next';
-const CLASS_NAME_PREV = 'carousel-item-prev';
+const CLASS_NAME_FADE = 'carousel-fade';
+const CLASS_NAME_CENTER = 'carousel-center';
+const CLASS_NAME_AUTO = 'carousel-auto';
+const CLASS_NAME_CLONE = 'carousel-item-clone';
+const CLASS_NAME_PAUSED = 'paused';
+// Added to the root while the autoplay timer is running, so CSS can fill the
+// active indicator like a progress bar over the current slide's interval.
+const CLASS_NAME_PLAYING = 'carousel-playing';
+
+// Shipped (`--bs-`-prefixed) custom property the indicator fill animation reads
+// for its duration. The build prefixes every custom property, so the bare
+// `--carousel-interval` used in the SCSS source becomes this at runtime.
+const PROPERTY_INTERVAL = '--bs-carousel-interval';
+
+// How many frames the scroll-settle watcher waits when no movement is ever
+// detected (clamped programmatic scroll, or `scrollBy` stubbed in tests) before
+// it gives up and restores snapping anyway.
+const SCROLL_SETTLE_MAX_FRAMES = 10;
+
+// How far below the most-visible slide a slide's IntersectionRatio can be while
+// still counting as the active (left-most) slide. After a programmatic scroll
+// the viewport rests a sub-pixel past the snap offset, leaving the intended
+// slide a hair less visible than its fully-in neighbors; the tolerance prevents
+// that rounding from skipping the active index forward.
+const ACTIVE_RATIO_TOLERANCE = 0.05;
const SELECTOR_ACTIVE = '.active';
-const SELECTOR_ITEM = '.carousel-item';
+// Exclude transient loop clones so index math, indicators, and active-slide
+// detection only ever see the real slides.
+const SELECTOR_ITEM = `.carousel-item:not(.${CLASS_NAME_CLONE})`;
const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;
-const SELECTOR_ITEM_IMG = '.carousel-item img';
+const SELECTOR_INNER = '.carousel-inner';
const SELECTOR_INDICATORS = '.carousel-indicators';
+const SELECTOR_PLAY_PAUSE = '.carousel-control-play-pause';
const SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';
-const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
+const SELECTOR_DATA_SLIDE_PREV = '[data-bs-slide="prev"]';
+const SELECTOR_DATA_SLIDE_NEXT = '[data-bs-slide="next"]';
+const SELECTOR_DATA_AUTOPLAY = '[data-bs-autoplay="true"]';
const KEY_TO_DIRECTION = {
[ARROW_LEFT_KEY]: DIRECTION_RIGHT,
[ARROW_RIGHT_KEY]: DIRECTION_LEFT
};
+const ENDS_STOP = 'stop';
+const ENDS_WRAP = 'wrap';
+const ENDS_LOOP = 'loop';
const Default = {
+ autoplay: false,
+ ends: ENDS_LOOP,
interval: 5000,
keyboard: true,
- pause: 'hover',
- ride: false,
- touch: true,
- wrap: true
+ pause: 'hover'
};
const DefaultType = {
+ autoplay: 'boolean',
+ ends: 'string',
interval: 'number',
keyboard: 'boolean',
- pause: '(string|boolean)',
- ride: '(boolean|string)',
- touch: 'boolean',
- wrap: 'boolean'
+ pause: '(string|boolean)'
};
/**
class Carousel extends BaseComponent {
constructor(element, config) {
super(element, config);
- this._interval = null;
- this._activeElement = null;
- this._isSliding = false;
- this.touchTimeout = null;
- this._swipeHelper = null;
+
+ // The scroll viewport. The browser owns sliding, dragging, momentum, and
+ // keyboard scrolling; this controller only layers on autoplay, the
+ // prev/next/indicator controls, and active-slide syncing.
+ this._viewport = SelectorEngine.findOne(SELECTOR_INNER, this._element) || this._element;
this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
+ this._playPauseElement = SelectorEngine.findOne(SELECTOR_PLAY_PAUSE, this._element);
+ // Prev/next controls scoped to the carousel root (covers inline and stacked
+ // layouts). External controls placed outside `.carousel` aren't managed.
+ this._prevControls = SelectorEngine.find(SELECTOR_DATA_SLIDE_PREV, this._element);
+ this._nextControls = SelectorEngine.find(SELECTOR_DATA_SLIDE_NEXT, this._element);
+ this._interval = null;
+ this._observer = null;
+ this._snapRestoreFrame = null;
+ // True while a seamless loop transition is animating, so the
+ // IntersectionObserver and re-entrant navigation don't interfere.
+ this._looping = false;
+ this._visibility = new Map();
+ // Runtime autoplay intent. Starts from the `autoplay` option, but is turned
+ // off once the user takes control (clicks a control, uses the keyboard,
+ // swipes/drags, or presses pause) so we don't move content out from under
+ // them (WCAG 2.2.2 Pause, Stop, Hide).
+ this._playing = this._config.autoplay;
+ this._activeIndex = this._initialActiveIndex();
this._addEventListeners();
- if (this._config.ride === CLASS_NAME_CAROUSEL) {
+ this._observeItems();
+ this._refreshActiveState();
+ if (this._playing) {
this.cycle();
}
+ this._updatePlayPauseControl();
}
// Getters
// Public
next() {
- this._slide(ORDER_NEXT);
+ this.to(this._navIndex() + 1);
}
nextWhenVisible() {
- // Don't call next when the page isn't visible
- // or the carousel or its parent isn't visible
+ // Don't advance when the page or the carousel isn't visible
if (document.visibilityState === 'visible' && isVisible(this._element)) {
this.next();
}
}
prev() {
- this._slide(ORDER_PREV);
+ this.to(this._navIndex() - 1);
}
pause() {
- if (this._isSliding) {
- triggerTransitionEnd(this._element);
- }
this._clearInterval();
+ // Freeze the indicator progress fill; it resets to empty until cycling
+ // resumes and `_scheduleAutoplay` restarts it from scratch.
+ this._element.classList.remove(CLASS_NAME_PLAYING);
}
cycle() {
this._clearInterval();
- this._updateInterval();
- this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);
+ this._scheduleAutoplay();
+ this._element.classList.add(CLASS_NAME_PLAYING);
}
- _maybeEnableCycle() {
- if (!this._config.ride) {
- return;
- }
- if (this._isSliding) {
- EventHandler.one(this._element, EVENT_SLID, () => this.cycle());
+ to(index) {
+ // Ignore navigation while a seamless loop transition is animating
+ if (this._looping) {
return;
}
- this.cycle();
- }
- to(index) {
const items = this._getItems();
- if (index > items.length - 1 || index < 0) {
+ const rawIndex = Number.parseInt(index, 10);
+
+ // Seamless loop: continue forward/backward into a transient clone instead of
+ // the visible `wrap` jump. Only the simple single-slide scroll layout
+ // qualifies, and reduced motion falls back to the plain wrap below.
+ if (this._config.ends === ENDS_LOOP && !this._prefersReducedMotion() && this._canLoop()) {
+ if (rawIndex > items.length - 1) {
+ this._loopTransition(true);
+ return;
+ }
+ if (rawIndex < 0) {
+ this._loopTransition(false);
+ return;
+ }
+ }
+ const targetIndex = this._normalizeIndex(rawIndex, items.length);
+ // Measure "current" from the live scroll position: `_activeIndex` updates
+ // asynchronously, so an indicator/control used mid-scroll must compare
+ // against where the viewport actually rests (`_navIndex` returns the tracked
+ // active index for fade/non-scrollable layouts).
+ const currentIndex = this._navIndex();
+ if (targetIndex === null || targetIndex === currentIndex) {
return;
}
- if (this._isSliding) {
- EventHandler.one(this._element, EVENT_SLID, () => this.to(index));
+ const slideEvent = EventHandler.trigger(this._element, EVENT_SLIDE, {
+ relatedTarget: items[targetIndex],
+ direction: this._direction(currentIndex, targetIndex),
+ from: currentIndex,
+ to: targetIndex
+ });
+ if (slideEvent.defaultPrevented) {
return;
}
- const activeIndex = this._getItemIndex(this._getActive());
- if (activeIndex === index) {
+ if (this._isFade()) {
+ this._fadeTo(targetIndex);
return;
}
- const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;
- this._slide(order, items[index]);
+
+ // Scroll mode: the IntersectionObserver fires `slid` and syncs state once
+ // the new slide settles into view.
+ this._scrollToIndex(targetIndex);
}
dispose() {
- if (this._swipeHelper) {
- this._swipeHelper.dispose();
+ // Stop autoplay first: otherwise a pending timer would fire after the
+ // instance is torn down and throw on the now-null `_element`.
+ this._clearInterval();
+ if (this._observer) {
+ this._observer.disconnect();
}
+ if (this._snapRestoreFrame !== null) {
+ cancelAnimationFrame(this._snapRestoreFrame);
+ }
+
+ // Tidy up any in-flight loop transition: drop a stray clone and restore
+ // native snapping, so the viewport isn't left mid-animation.
+ for (const clone of SelectorEngine.find(`.${CLASS_NAME_CLONE}`, this._viewport)) {
+ clone.remove();
+ }
+ this._viewport.style.scrollSnapType = '';
+
+ // The pointerdown listener lives on the viewport (`.carousel-inner`), which
+ // `super.dispose()` doesn't clean up—it only drops listeners on `_element`.
+ EventHandler.off(this._viewport, EVENT_KEY);
super.dispose();
}
// Private
+ // Normalize an unknown `ends` value so navigation and end-control logic can't
+ // disagree about whether the carousel wraps.
_configAfterMerge(config) {
- config.defaultInterval = config.interval;
+ if (![ENDS_STOP, ENDS_WRAP, ENDS_LOOP].includes(config.ends)) {
+ config.ends = Default.ends;
+ }
return config;
}
+ _initialActiveIndex() {
+ const active = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
+ const index = active ? this._getItems().indexOf(active) : 0;
+ return Math.max(index, 0);
+ }
_addEventListeners() {
if (this._config.keyboard) {
EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));
EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause());
EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle());
}
- if (this._config.touch && Swipe.isSupported()) {
- this._addTouchEventListeners();
- }
- }
- _addTouchEventListeners() {
- for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {
- EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault());
- }
- const endCallBack = () => {
- if (this._config.pause !== 'hover') {
- return;
- }
- // If it's a touch-enabled device, mouseenter/leave are fired as
- // part of the mouse compatibility events on first tap - the carousel
- // would stop cycling until user tapped out of it;
- // here, we listen for touchend, explicitly pause the carousel
- // (as if it's the second time we tap on it, mouseenter compat event
- // is NOT fired) and after a timeout (to allow for mouse compatibility
- // events to fire) we explicitly restart cycling
-
- this.pause();
- if (this.touchTimeout) {
- clearTimeout(this.touchTimeout);
- }
- this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);
- };
- const swipeConfig = {
- leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),
- rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),
- endCallback: endCallBack
- };
- this._swipeHelper = new Swipe(this._element, swipeConfig);
+ // Dragging, swiping, or tapping the track is an explicit interaction
+ EventHandler.on(this._viewport, EVENT_POINTERDOWN, () => this._pauseFromInteraction());
}
_keydown(event) {
if (/input|textarea/i.test(event.target.tagName)) {
const direction = KEY_TO_DIRECTION[event.key];
if (direction) {
event.preventDefault();
- this._slide(this._directionToOrder(direction));
+ this._pauseFromInteraction();
+ if (direction === DIRECTION_RIGHT) {
+ this.prev();
+ } else {
+ this.next();
+ }
}
}
- _getItemIndex(element) {
- return this._getItems().indexOf(element);
- }
- _setActiveIndicatorElement(index) {
- if (!this._indicatorsElement) {
+ _observeItems() {
+ // Fade mode stacks slides instead of scrolling, so there's nothing to observe
+ if (this._isFade() || typeof IntersectionObserver === 'undefined') {
return;
}
- const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
- activeIndicator.classList.remove(CLASS_NAME_ACTIVE);
- activeIndicator.removeAttribute('aria-current');
- const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement);
- if (newActiveIndicator) {
- newActiveIndicator.classList.add(CLASS_NAME_ACTIVE);
- newActiveIndicator.setAttribute('aria-current', 'true');
+ this._observer = new IntersectionObserver(entries => this._handleIntersection(entries), {
+ root: this._viewport,
+ threshold: [0, 0.25, 0.5, 0.75, 1]
+ });
+ for (const item of this._getItems()) {
+ this._observer.observe(item);
}
}
- _updateInterval() {
- const element = this._activeElement || this._getActive();
- if (!element) {
+ _handleIntersection(entries) {
+ // A loop transition deliberately scrolls onto a transient clone; ignore the
+ // visibility churn so it doesn't move the active index mid-animation.
+ if (this._looping) {
return;
}
- const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);
- this._config.interval = elementInterval || this._config.defaultInterval;
+ for (const entry of entries) {
+ this._visibility.set(entry.target, entry.isIntersecting ? entry.intersectionRatio : 0);
+ }
+ const items = this._getItems();
+ const ratios = items.map(item => this._visibility.get(item) ?? 0);
+ const maxRatio = Math.max(...ratios);
+
+ // Pick the left-most slide that's *near* fully visible rather than the strict
+ // global maximum. After a programmatic scroll the viewport rests ~1px past
+ // the target snap offset, so the intended left-most slide reports a ratio a
+ // hair below the deeper, fully-visible ones (e.g. 0.997 vs 1.0). A strict max
+ // would skip past it and inflate the active index by one, which breaks
+ // multi-item next/prev. The tolerance keeps the intended slide active while
+ // peeking slivers (well below the max) are still ignored.
+ let bestIndex = this._activeIndex;
+ if (maxRatio > 0) {
+ bestIndex = ratios.findIndex(ratio => ratio >= maxRatio - ACTIVE_RATIO_TOLERANCE);
+ }
+ this._setActive(bestIndex);
+ // Keep the end controls in sync with the scroll position even when the
+ // active index doesn't change (e.g. the final stretch of a multi-item
+ // scroll, where the left-most slide is already the last reachable one).
+ this._updateEndControls();
}
- _slide(order, element = null) {
- if (this._isSliding) {
+
+ // The index a `next()`/`prev()` step is measured from. Scroll layouts read it
+ // from the live scroll position instead of `this._activeIndex`, because the
+ // IntersectionObserver updates that asynchronously: after one step the index
+ // can still be stale, so the next step would compute the same target and
+ // silently no-op (the "the button does nothing / can't reach the end slide"
+ // symptom). Fade and non-scrollable layouts have no scroll position to read,
+ // so they keep using the tracked active index (also what the unit tests rely
+ // on when there's no real layout).
+ _navIndex() {
+ if (this._isFade() || this._viewport.scrollWidth - this._viewport.clientWidth <= 0) {
+ return this._activeIndex;
+ }
+ let index = this._activeIndex;
+ let smallestDelta = Number.POSITIVE_INFINITY;
+ for (const [itemIndex, item] of this._getItems().entries()) {
+ // The slide currently resting at the active position has ~zero delta.
+ const delta = Math.abs(this._scrollDelta(item));
+ if (delta < smallestDelta) {
+ smallestDelta = delta;
+ index = itemIndex;
+ }
+ }
+ return index;
+ }
+ _scrollToIndex(index) {
+ const item = this._getItems()[index];
+ if (!item) {
+ return;
+ }
+ const left = this._scrollDelta(item);
+ if (Math.abs(left) < 1) {
return;
}
- const activeElement = this._getActive();
- const isNext = order === ORDER_NEXT;
- const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);
- if (nextElement === activeElement) {
+
+ // `scroll-snap-stop: always` keeps user wheel/touch flings to a single slide,
+ // but it also clamps *programmatic* scrolls to one snap point — which would
+ // break multi-slide jumps from an indicator click, `to()`, or wrapping from
+ // the last slide back to the first. Disable snapping for the duration of the
+ // programmatic scroll, then restore it once the scroll settles so the slide
+ // still rests precisely (honouring peek/gap).
+ const targetLeft = this._viewport.scrollLeft + left;
+ this._viewport.style.scrollSnapType = 'none';
+ this._viewport.scrollBy({
+ left,
+ top: 0,
+ // `'instant'` (not `'auto'`) for reduced motion: the viewport sets
+ // `scroll-behavior: smooth` in CSS, and `'auto'` defers to it, so it would
+ // still animate. `'instant'` forces an immediate, motion-free jump.
+ behavior: this._prefersReducedMotion() ? 'instant' : 'smooth'
+ });
+ this._restoreSnapWhenSettled(targetLeft, index);
+ }
+
+ // Horizontal distance to scroll the viewport so `element` rests where the
+ // active slide should sit. Scroll the viewport itself rather than calling
+ // `element.scrollIntoView()`: the latter scrolls *every* scrollable ancestor
+ // (including the page), so an autoplaying carousel below the fold would yank
+ // the whole page to itself on each tick. Using bounding rects keeps it
+ // direction-agnostic (works in RTL).
+ _scrollDelta(element) {
+ const viewportRect = this._viewport.getBoundingClientRect();
+ const rect = element.getBoundingClientRect();
+ if (this._element.classList.contains(CLASS_NAME_CENTER)) {
+ return rect.left + rect.width / 2 - (viewportRect.left + viewportRect.width / 2);
+ }
+
+ // Start alignment: rest the slide at the scroll-padding (peek) offset, which
+ // is exactly where scroll-snap will settle. Aligning flush to the edge
+ // instead would make the browser re-snap by `peek` once snapping is restored,
+ // producing a visible secondary nudge after the programmatic scroll.
+ const padStart = Number.parseFloat(getComputedStyle(this._viewport).scrollPaddingInlineStart) || 0;
+ return isRTL() ? rect.right - (viewportRect.right - padStart) : rect.left - (viewportRect.left + padStart);
+ }
+
+ // Seamless loop: continue past an end into a one-off clone of the destination
+ // slide, then teleport to the real slide so there's no visible backward jump.
+ _loopTransition(isNext) {
+ const items = this._getItems();
+ const last = items.length - 1;
+ const fromIndex = this._activeIndex;
+ const toIndex = isNext ? 0 : last;
+ const direction = this._loopDirection(isNext);
+ const slideEvent = EventHandler.trigger(this._element, EVENT_SLIDE, {
+ relatedTarget: items[toIndex],
+ direction,
+ from: fromIndex,
+ to: toIndex
+ });
+ if (slideEvent.defaultPrevented) {
return;
}
- const nextElementIndex = this._getItemIndex(nextElement);
- const triggerEvent = eventName => {
- return EventHandler.trigger(this._element, eventName, {
- relatedTarget: nextElement,
- direction: this._orderToDirection(order),
- from: this._getItemIndex(activeElement),
- to: nextElementIndex
+ this._looping = true;
+ const clone = (isNext ? items[0] : items[last]).cloneNode(true);
+ clone.classList.add(CLASS_NAME_CLONE);
+ clone.classList.remove(CLASS_NAME_ACTIVE);
+ clone.removeAttribute('id');
+ // Also strip ids from the cloned subtree to avoid duplicate ids while the
+ // clone is on screen.
+ for (const node of SelectorEngine.find('[id]', clone)) {
+ node.removeAttribute('id');
+ }
+ clone.setAttribute('aria-hidden', 'true');
+ clone.inert = true;
+ this._viewport.style.scrollSnapType = 'none';
+ if (isNext) {
+ this._viewport.append(clone);
+ } else {
+ this._viewport.prepend(clone);
+ // Prepending shifts the real slides to the right; instantly re-align the
+ // current slide so the insertion doesn't flash before we animate.
+ this._jumpScroll(this._scrollDelta(items[fromIndex]));
+ }
+ this._viewport.scrollBy({
+ left: this._scrollDelta(clone),
+ top: 0,
+ behavior: 'smooth'
+ });
+ this._afterScrollSettles(() => {
+ // Teleport to the real destination without animation. JS runs to
+ // completion before the browser paints, so removing the clone and the
+ // compensating scroll land in a single frame (no visible flash).
+ clone.remove();
+ this._jumpScroll(this._scrollDelta(items[toIndex]));
+ this._activeIndex = toIndex;
+ this._refreshActiveState();
+ EventHandler.trigger(this._element, EVENT_SLID, {
+ relatedTarget: items[toIndex],
+ direction,
+ from: fromIndex,
+ to: toIndex
});
+ this._viewport.style.scrollSnapType = '';
+ this._looping = false;
+ });
+ }
+ _loopDirection(isNext) {
+ if (isRTL()) {
+ return isNext ? DIRECTION_RIGHT : DIRECTION_LEFT;
+ }
+ return isNext ? DIRECTION_LEFT : DIRECTION_RIGHT;
+ }
+
+ // Instant (non-animated) scroll with snapping suspended, used to teleport the
+ // viewport during a loop transition. `behavior: 'instant'` is required because
+ // the viewport sets `scroll-behavior: smooth` in CSS, and `'auto'` would defer
+ // to it and animate the teleport (a visible backward slide).
+ _jumpScroll(delta) {
+ this._viewport.style.scrollSnapType = 'none';
+ this._viewport.scrollBy({
+ left: delta,
+ top: 0,
+ behavior: 'instant'
+ });
+ }
+
+ // Re-enable scroll snapping once the viewport reaches `targetLeft` (or stops
+ // moving). Passing the target matters: restoring `mandatory` snapping re-snaps
+ // to the *nearest* snap point, so if we restored mid-animation the viewport
+ // could jump back to the slide we came from — most visible stepping to the
+ // first/last slide, where it looks like the control "doesn't work".
+ _restoreSnapWhenSettled(targetLeft, index) {
+ this._afterScrollSettles(() => {
+ this._viewport.style.scrollSnapType = '';
+ // Without IntersectionObserver nothing else fires `slid`/updates the active
+ // slide after a programmatic scroll, so do it here. With the observer
+ // present this is a no-op (it already moved the active index to `index`).
+ if (!this._observer && index !== undefined) {
+ this._setActive(index);
+ }
+
+ // The IntersectionObserver doesn't fire once the viewport has stopped, so
+ // refresh the end controls here to catch the final ~1px settle landing
+ // exactly on the scroll extent (e.g. disabling `next` at the last view).
+ this._updateEndControls();
+ }, targetLeft);
+ }
+
+ // Invoke `callback` once the viewport stops moving. We watch the scroll
+ // position across frames instead of relying on the `scrollend` event, which
+ // isn't available across our supported browsers yet.
+ //
+ // Crucially, we only start counting "stable" frames once the scroll has
+ // actually moved. A smooth `scrollBy` doesn't update `scrollLeft` for the first
+ // frame or two, so naively treating those initial unchanged frames as
+ // "settled" would re-enable `mandatory` snapping mid-animation — which cancels
+ // the in-flight programmatic scroll and lands on the wrong slide (most visible
+ // in multi-item layouts). If the scroll never moves (delta clamped at an end,
+ // or `scrollBy` stubbed out in unit tests), we fall back to a short frame cap.
+ //
+ // When `targetLeft` is known we also finish the moment we arrive there, so the
+ // snap is restored exactly on the destination snap point and can't re-snap the
+ // viewport backwards (the failure mode where stepping to the first/last slide
+ // appears to do nothing).
+ _afterScrollSettles(callback, targetLeft) {
+ if (typeof requestAnimationFrame === 'undefined') {
+ callback();
+ return;
+ }
+ if (this._snapRestoreFrame !== null) {
+ cancelAnimationFrame(this._snapRestoreFrame);
+ }
+ const startLeft = this._viewport.scrollLeft;
+ let lastLeft = startLeft;
+ let stableFrames = 0;
+ let waited = 0;
+ let hasMoved = false;
+ const tick = () => {
+ const currentLeft = this._viewport.scrollLeft;
+ const reachedTarget = targetLeft !== undefined && Math.abs(currentLeft - targetLeft) <= 1;
+ if (Math.abs(currentLeft - startLeft) > 1) {
+ hasMoved = true;
+ }
+
+ // Only accrue stable frames after movement begins, so the pre-animation
+ // and ease-in frames don't prematurely count as settled.
+ if (hasMoved) {
+ stableFrames = Math.abs(currentLeft - lastLeft) < 1 ? stableFrames + 1 : 0;
+ }
+ lastLeft = currentLeft;
+ waited += 1;
+ if (reachedTarget || hasMoved && stableFrames >= 3 || !hasMoved && waited >= SCROLL_SETTLE_MAX_FRAMES) {
+ this._snapRestoreFrame = null;
+ callback();
+ return;
+ }
+ this._snapRestoreFrame = requestAnimationFrame(tick);
};
- const slideEvent = triggerEvent(EVENT_SLIDE);
- if (slideEvent.defaultPrevented) {
+ this._snapRestoreFrame = requestAnimationFrame(tick);
+ }
+
+ // Fade mode just swaps the active class; the CSS opacity transition on
+ // `.carousel-item` performs the crossfade over `--carousel-fade-duration` (and
+ // collapses to an instant swap under reduced motion, via the `transition`
+ // mixin). It deliberately avoids the View Transition API: a view transition
+ // crossfades a page snapshot over its own (shorter) duration while this CSS
+ // fade also runs underneath, so the two animations overlap and visibly stutter.
+ _fadeTo(index) {
+ this._setActive(index);
+ }
+ _setActive(index) {
+ const items = this._getItems();
+ if (index === this._activeIndex || !items[index]) {
+ return;
+ }
+ const from = this._activeIndex;
+ this._activeIndex = index;
+ this._refreshActiveState();
+ EventHandler.trigger(this._element, EVENT_SLID, {
+ relatedTarget: items[index],
+ direction: this._direction(from, index),
+ from,
+ to: index
+ });
+ }
+ _refreshActiveState() {
+ const items = this._getItems();
+ for (const [index, item] of items.entries()) {
+ item.classList.toggle(CLASS_NAME_ACTIVE, index === this._activeIndex);
+ }
+ this._setActiveIndicatorElement(this._activeIndex);
+ this._updateEndControls();
+ }
+ _updateEndControls() {
+ // Only `ends: 'stop'` has real ends; under `wrap`/`loop` you can always
+ // advance, so disabling end controls would be meaningless. When stopping,
+ // disable the prev control at the start of the scroll range and the next
+ // control at the end so there are no dead end-buttons.
+ if (this._config.ends !== ENDS_STOP) {
+ return;
+ }
+ const viewport = this._viewport;
+ const maxScroll = viewport.scrollWidth - viewport.clientWidth;
+ let atStart;
+ let atEnd;
+ if (maxScroll > 0) {
+ // Scrollable: measure the real scroll extent so this works for multi-item,
+ // peek, and variable-width layouts where the last slide can never become
+ // the left-most (active) one. `Math.abs` keeps it correct in RTL, where
+ // `scrollLeft` runs from 0 down to negative.
+ const progress = Math.abs(viewport.scrollLeft);
+ atStart = progress <= 1;
+ atEnd = progress >= maxScroll - 1;
+ } else {
+ // Not scrollable (or no layout yet, e.g. in unit tests): fall back to the
+ // active index for the single-slide case.
+ const last = this._getItems().length - 1;
+ atStart = this._activeIndex <= 0;
+ atEnd = this._activeIndex >= last;
+ }
+ this._setControlsDisabled(this._prevControls, atStart);
+ this._setControlsDisabled(this._nextControls, atEnd);
+ }
+ _setControlsDisabled(controls, disabled) {
+ for (const control of controls) {
+ // a11y: if we're about to disable the focused control, move focus to the
+ // opposite (still-enabled) control so focus isn't lost.
+ if (disabled && control === document.activeElement) {
+ const opposite = controls === this._prevControls ? this._nextControls : this._prevControls;
+ const fallback = opposite[0] ?? this._viewport;
+ // `preventScroll` so moving focus doesn't yank the page/viewport to the
+ // newly-focused control mid-navigation.
+ fallback.focus({
+ preventScroll: true
+ });
+ }
+ control.disabled = disabled;
+ }
+ }
+ _setActiveIndicatorElement(index) {
+ if (!this._indicatorsElement) {
return;
}
- if (!activeElement || !nextElement) {
- // Some weirdness is happening, so we bail
+ const active = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
+ if (active) {
+ active.classList.remove(CLASS_NAME_ACTIVE);
+ active.removeAttribute('aria-current');
+ }
+ const newActive = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement);
+ if (newActive) {
+ newActive.classList.add(CLASS_NAME_ACTIVE);
+ newActive.setAttribute('aria-current', 'true');
+ }
+ }
+ _normalizeIndex(index, length) {
+ if (Number.isNaN(index) || length === 0) {
+ return null;
+ }
+ if (index < 0) {
+ return this._wrapsAround() ? length - 1 : null;
+ }
+ if (index > length - 1) {
+ return this._wrapsAround() ? 0 : null;
+ }
+ return index;
+ }
+
+ // Whether navigating past an end wraps to the other end. `loop` continues
+ // seamlessly where it can (see `_canLoop`) and otherwise behaves like `wrap`.
+ _wrapsAround() {
+ return this._config.ends === ENDS_WRAP || this._config.ends === ENDS_LOOP;
+ }
+
+ // Seamless looping is only supported for the simple single-slide scroll
+ // layout. Multi-item, peek, center, and variable-width layouts fall back to
+ // the plain `wrap` jump.
+ _canLoop() {
+ if (this._isFade() || this._getItems().length < 2) {
+ return false;
+ }
+ const styles = getComputedStyle(this._element);
+ const num = name => Number.parseFloat(styles.getPropertyValue(name)) || 0;
+
+ // These are the shipped, `--bs-`-prefixed custom properties (the build
+ // prefixes every custom property), not the bare names used in the SCSS source.
+ return (num('--bs-carousel-items') || 1) === 1 && num('--bs-carousel-items-peek') === 0 && !this._element.classList.contains(CLASS_NAME_CENTER) && !this._element.classList.contains(CLASS_NAME_AUTO);
+ }
+ _direction(from, to) {
+ const isNext = to > from;
+ if (isRTL()) {
+ return isNext ? DIRECTION_RIGHT : DIRECTION_LEFT;
+ }
+ return isNext ? DIRECTION_LEFT : DIRECTION_RIGHT;
+ }
+ _scheduleAutoplay(index = this._activeIndex) {
+ const interval = this._itemInterval(index);
+ // Expose the wait so the active indicator's CSS fill matches it.
+ this._element.style.setProperty(PROPERTY_INTERVAL, `${interval}ms`);
+ this._interval = setTimeout(() => {
+ // Capture the slide the advance lands on *before* navigating: the active
+ // index only updates once the scroll settles (asynchronously), so reading
+ // it after `nextWhenVisible()` would schedule the next wait from the slide
+ // we're leaving — making per-item `data-bs-interval`s lag by one slide.
+ const upcoming = this._upcomingIndex();
+ this.nextWhenVisible();
+
+ // Nothing comes after the last slide when `ends: 'stop'`; stop cycling
+ // instead of re-arming a timer that can never advance.
+ if (upcoming === null) {
+ this.pause();
+ return;
+ }
+ this._scheduleAutoplay(upcoming);
+ }, interval);
+ }
+
+ // The slide the next autoplay tick will rest on, derived from the live scroll
+ // position (which still reflects the current slide when the timer fires).
+ // Returns `null` when there's nowhere left to advance (`ends: stop` at the end).
+ _upcomingIndex() {
+ return this._normalizeIndex(this._navIndex() + 1, this._getItems().length);
+ }
+ _itemInterval(index = this._activeIndex) {
+ const item = this._getItems()[index];
+ const interval = item ? Number.parseInt(item.getAttribute('data-bs-interval'), 10) : Number.NaN;
+ return Number.isNaN(interval) ? this._config.interval : interval;
+ }
+ _maybeEnableCycle() {
+ if (!this._playing) {
return;
}
- const isCycling = Boolean(this._interval);
+ this.cycle();
+ }
+
+ // Turn autoplay off for good once the user interacts with the carousel
+ _pauseFromInteraction() {
+ this._playing = false;
this.pause();
- this._isSliding = true;
- this._setActiveIndicatorElement(nextElementIndex);
- this._activeElement = nextElement;
- const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;
- const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;
- nextElement.classList.add(orderClassName);
- reflow(nextElement);
- activeElement.classList.add(directionalClassName);
- nextElement.classList.add(directionalClassName);
- const completeCallBack = () => {
- nextElement.classList.remove(directionalClassName, orderClassName);
- nextElement.classList.add(CLASS_NAME_ACTIVE);
- activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);
- this._isSliding = false;
- triggerEvent(EVENT_SLID);
- };
- this._queueCallback(completeCallBack, activeElement, this._isAnimated());
- if (isCycling) {
- this.cycle();
+ this._updatePlayPauseControl();
+ }
+ _togglePlayPause() {
+ if (this._playing) {
+ this._pauseFromInteraction();
+ return;
+ }
+ this._playing = true;
+ this.cycle();
+ this._updatePlayPauseControl();
+ }
+ _updatePlayPauseControl() {
+ if (!this._playPauseElement) {
+ return;
+ }
+ this._playPauseElement.classList.toggle(CLASS_NAME_PAUSED, !this._playing);
+ const label = this._playPauseElement.getAttribute(this._playing ? 'data-bs-pause-label' : 'data-bs-play-label');
+ if (label) {
+ this._playPauseElement.setAttribute('aria-label', label);
}
}
- _isAnimated() {
- return this._element.classList.contains(CLASS_NAME_SLIDE);
+ _isFade() {
+ return this._element.classList.contains(CLASS_NAME_FADE);
}
- _getActive() {
- return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
+ _prefersReducedMotion() {
+ return typeof window !== 'undefined' && typeof window.matchMedia === 'function' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
}
_getItems() {
return SelectorEngine.find(SELECTOR_ITEM, this._element);
}
_clearInterval() {
if (this._interval) {
- clearInterval(this._interval);
+ clearTimeout(this._interval);
this._interval = null;
}
}
- _directionToOrder(direction) {
- if (isRTL()) {
- return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;
- }
- return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;
- }
- _orderToDirection(order) {
- if (isRTL()) {
- return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;
- }
- return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;
- }
}
/**
}
event.preventDefault();
const carousel = Carousel.getOrCreateInstance(target);
+
+ // Manually cycling the carousel is an explicit interaction, so stop autoplay
+ carousel._pauseFromInteraction();
const slideIndex = this.getAttribute('data-bs-slide-to');
if (slideIndex) {
carousel.to(slideIndex);
- carousel._maybeEnableCycle();
return;
}
if (Manipulator.getDataAttribute(this, 'slide') === 'next') {
carousel.next();
- carousel._maybeEnableCycle();
return;
}
carousel.prev();
- carousel._maybeEnableCycle();
+});
+EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_PLAY_PAUSE, function (event) {
+ const target = SelectorEngine.getElementFromSelector(this);
+ if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
+ return;
+ }
+ event.preventDefault();
+ Carousel.getOrCreateInstance(target)._togglePlayPause();
});
EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
- const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);
+ const carousels = SelectorEngine.find(SELECTOR_DATA_AUTOPLAY);
for (const carousel of carousels) {
Carousel.getOrCreateInstance(carousel);
}
-{"version":3,"file":"carousel.js","sources":["../src/carousel.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n getNextActiveElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd\n} from './util/index.js'\nimport Swipe from './util/swipe.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next'\nconst ORDER_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_END = 'carousel-item-end'\nconst CLASS_NAME_START = 'carousel-item-start'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n}\n\nconst DefaultType = {\n interval: 'number',\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._interval = null\n this._activeElement = null\n this._isSliding = false\n this.touchTimeout = null\n this._swipeHelper = null\n\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._addEventListeners()\n\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT)\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (document.visibilityState === 'visible' && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n this._slide(ORDER_PREV)\n }\n\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element)\n }\n\n this._clearInterval()\n }\n\n cycle() {\n this._clearInterval()\n this._updateInterval()\n\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval)\n }\n\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle())\n return\n }\n\n this.cycle()\n }\n\n to(index) {\n const items = this._getItems()\n if (index > items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index))\n return\n }\n\n const activeIndex = this._getItemIndex(this._getActive())\n if (activeIndex === index) {\n return\n }\n\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV\n\n this._slide(order, items[index])\n }\n\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause())\n EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle())\n }\n\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault())\n }\n\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return\n }\n\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n }\n\n this._swipeHelper = new Swipe(this._element, swipeConfig)\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n const direction = KEY_TO_DIRECTION[event.key]\n if (direction) {\n event.preventDefault()\n this._slide(this._directionToOrder(direction))\n }\n }\n\n _getItemIndex(element) {\n return this._getItems().indexOf(element)\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return\n }\n\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE)\n activeIndicator.removeAttribute('aria-current')\n\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement)\n\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE)\n newActiveIndicator.setAttribute('aria-current', 'true')\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._getActive()\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n this._config.interval = elementInterval || this._config.defaultInterval\n }\n\n _slide(order, element = null) {\n if (this._isSliding) {\n return\n }\n\n const activeElement = this._getActive()\n const isNext = order === ORDER_NEXT\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap)\n\n if (nextElement === activeElement) {\n return\n }\n\n const nextElementIndex = this._getItemIndex(nextElement)\n\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n })\n }\n\n const slideEvent = triggerEvent(EVENT_SLIDE)\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n const isCycling = Boolean(this._interval)\n this.pause()\n\n this._isSliding = true\n\n this._setActiveIndicatorElement(nextElementIndex)\n this._activeElement = nextElement\n\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n this._isSliding = false\n\n triggerEvent(EVENT_SLID)\n }\n\n this._queueCallback(completeCallBack, activeElement, this._isAnimated())\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE)\n }\n\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element)\n }\n\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n }\n\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n const carousel = Carousel.getOrCreateInstance(target)\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n carousel.to(slideIndex)\n carousel._maybeEnableCycle()\n return\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next()\n carousel._maybeEnableCycle()\n return\n }\n\n carousel.prev()\n carousel._maybeEnableCycle()\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel)\n }\n})\n\nexport default Carousel\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_DRAG_START","EVENT_LOAD_DATA_API","EVENT_CLICK_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE","CLASS_NAME_SLIDE","CLASS_NAME_END","CLASS_NAME_START","CLASS_NAME_NEXT","CLASS_NAME_PREV","SELECTOR_ACTIVE","SELECTOR_ITEM","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM_IMG","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","KEY_TO_DIRECTION","Default","interval","keyboard","pause","ride","touch","wrap","DefaultType","Carousel","BaseComponent","constructor","element","config","_interval","_activeElement","_isSliding","touchTimeout","_swipeHelper","_indicatorsElement","SelectorEngine","findOne","_element","_addEventListeners","_config","cycle","next","_slide","nextWhenVisible","document","visibilityState","isVisible","prev","triggerTransitionEnd","_clearInterval","_updateInterval","setInterval","_maybeEnableCycle","EventHandler","one","to","index","items","_getItems","length","activeIndex","_getItemIndex","_getActive","order","dispose","_configAfterMerge","defaultInterval","on","event","_keydown","Swipe","isSupported","_addTouchEventListeners","img","find","preventDefault","endCallBack","clearTimeout","setTimeout","swipeConfig","leftCallback","_directionToOrder","rightCallback","endCallback","test","target","tagName","direction","key","indexOf","_setActiveIndicatorElement","activeIndicator","classList","remove","removeAttribute","newActiveIndicator","add","setAttribute","elementInterval","Number","parseInt","getAttribute","activeElement","isNext","nextElement","getNextActiveElement","nextElementIndex","triggerEvent","eventName","trigger","relatedTarget","_orderToDirection","from","slideEvent","defaultPrevented","isCycling","Boolean","directionalClassName","orderClassName","reflow","completeCallBack","_queueCallback","_isAnimated","contains","clearInterval","isRTL","getElementFromSelector","carousel","getOrCreateInstance","slideIndex","Manipulator","getDataAttribute","window","carousels"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"carousel.js","sources":["../src/carousel.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { isRTL, isVisible } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\n\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'carousel-fade'\nconst CLASS_NAME_CENTER = 'carousel-center'\nconst CLASS_NAME_AUTO = 'carousel-auto'\nconst CLASS_NAME_CLONE = 'carousel-item-clone'\nconst CLASS_NAME_PAUSED = 'paused'\n// Added to the root while the autoplay timer is running, so CSS can fill the\n// active indicator like a progress bar over the current slide's interval.\nconst CLASS_NAME_PLAYING = 'carousel-playing'\n\n// Shipped (`--bs-`-prefixed) custom property the indicator fill animation reads\n// for its duration. The build prefixes every custom property, so the bare\n// `--carousel-interval` used in the SCSS source becomes this at runtime.\nconst PROPERTY_INTERVAL = '--bs-carousel-interval'\n\n// How many frames the scroll-settle watcher waits when no movement is ever\n// detected (clamped programmatic scroll, or `scrollBy` stubbed in tests) before\n// it gives up and restores snapping anyway.\nconst SCROLL_SETTLE_MAX_FRAMES = 10\n\n// How far below the most-visible slide a slide's IntersectionRatio can be while\n// still counting as the active (left-most) slide. After a programmatic scroll\n// the viewport rests a sub-pixel past the snap offset, leaving the intended\n// slide a hair less visible than its fully-in neighbors; the tolerance prevents\n// that rounding from skipping the active index forward.\nconst ACTIVE_RATIO_TOLERANCE = 0.05\n\nconst SELECTOR_ACTIVE = '.active'\n// Exclude transient loop clones so index math, indicators, and active-slide\n// detection only ever see the real slides.\nconst SELECTOR_ITEM = `.carousel-item:not(.${CLASS_NAME_CLONE})`\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM\nconst SELECTOR_INNER = '.carousel-inner'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_PLAY_PAUSE = '.carousel-control-play-pause'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_SLIDE_PREV = '[data-bs-slide=\"prev\"]'\nconst SELECTOR_DATA_SLIDE_NEXT = '[data-bs-slide=\"next\"]'\nconst SELECTOR_DATA_AUTOPLAY = '[data-bs-autoplay=\"true\"]'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst ENDS_STOP = 'stop'\nconst ENDS_WRAP = 'wrap'\nconst ENDS_LOOP = 'loop'\n\nconst Default = {\n autoplay: false,\n ends: ENDS_LOOP,\n interval: 5000,\n keyboard: true,\n pause: 'hover'\n}\n\nconst DefaultType = {\n autoplay: 'boolean',\n ends: 'string',\n interval: 'number',\n keyboard: 'boolean',\n pause: '(string|boolean)'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // The scroll viewport. The browser owns sliding, dragging, momentum, and\n // keyboard scrolling; this controller only layers on autoplay, the\n // prev/next/indicator controls, and active-slide syncing.\n this._viewport = SelectorEngine.findOne(SELECTOR_INNER, this._element) || this._element\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._playPauseElement = SelectorEngine.findOne(SELECTOR_PLAY_PAUSE, this._element)\n // Prev/next controls scoped to the carousel root (covers inline and stacked\n // layouts). External controls placed outside `.carousel` aren't managed.\n this._prevControls = SelectorEngine.find(SELECTOR_DATA_SLIDE_PREV, this._element)\n this._nextControls = SelectorEngine.find(SELECTOR_DATA_SLIDE_NEXT, this._element)\n\n this._interval = null\n this._observer = null\n this._snapRestoreFrame = null\n // True while a seamless loop transition is animating, so the\n // IntersectionObserver and re-entrant navigation don't interfere.\n this._looping = false\n this._visibility = new Map()\n // Runtime autoplay intent. Starts from the `autoplay` option, but is turned\n // off once the user takes control (clicks a control, uses the keyboard,\n // swipes/drags, or presses pause) so we don't move content out from under\n // them (WCAG 2.2.2 Pause, Stop, Hide).\n this._playing = this._config.autoplay\n\n this._activeIndex = this._initialActiveIndex()\n\n this._addEventListeners()\n this._observeItems()\n this._refreshActiveState()\n\n if (this._playing) {\n this.cycle()\n }\n\n this._updatePlayPauseControl()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n next() {\n this.to(this._navIndex() + 1)\n }\n\n nextWhenVisible() {\n // Don't advance when the page or the carousel isn't visible\n if (document.visibilityState === 'visible' && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n this.to(this._navIndex() - 1)\n }\n\n pause() {\n this._clearInterval()\n // Freeze the indicator progress fill; it resets to empty until cycling\n // resumes and `_scheduleAutoplay` restarts it from scratch.\n this._element.classList.remove(CLASS_NAME_PLAYING)\n }\n\n cycle() {\n this._clearInterval()\n this._scheduleAutoplay()\n this._element.classList.add(CLASS_NAME_PLAYING)\n }\n\n to(index) {\n // Ignore navigation while a seamless loop transition is animating\n if (this._looping) {\n return\n }\n\n const items = this._getItems()\n const rawIndex = Number.parseInt(index, 10)\n\n // Seamless loop: continue forward/backward into a transient clone instead of\n // the visible `wrap` jump. Only the simple single-slide scroll layout\n // qualifies, and reduced motion falls back to the plain wrap below.\n if (this._config.ends === ENDS_LOOP && !this._prefersReducedMotion() && this._canLoop()) {\n if (rawIndex > items.length - 1) {\n this._loopTransition(true)\n return\n }\n\n if (rawIndex < 0) {\n this._loopTransition(false)\n return\n }\n }\n\n const targetIndex = this._normalizeIndex(rawIndex, items.length)\n // Measure \"current\" from the live scroll position: `_activeIndex` updates\n // asynchronously, so an indicator/control used mid-scroll must compare\n // against where the viewport actually rests (`_navIndex` returns the tracked\n // active index for fade/non-scrollable layouts).\n const currentIndex = this._navIndex()\n\n if (targetIndex === null || targetIndex === currentIndex) {\n return\n }\n\n const slideEvent = EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget: items[targetIndex],\n direction: this._direction(currentIndex, targetIndex),\n from: currentIndex,\n to: targetIndex\n })\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (this._isFade()) {\n this._fadeTo(targetIndex)\n return\n }\n\n // Scroll mode: the IntersectionObserver fires `slid` and syncs state once\n // the new slide settles into view.\n this._scrollToIndex(targetIndex)\n }\n\n dispose() {\n // Stop autoplay first: otherwise a pending timer would fire after the\n // instance is torn down and throw on the now-null `_element`.\n this._clearInterval()\n\n if (this._observer) {\n this._observer.disconnect()\n }\n\n if (this._snapRestoreFrame !== null) {\n cancelAnimationFrame(this._snapRestoreFrame)\n }\n\n // Tidy up any in-flight loop transition: drop a stray clone and restore\n // native snapping, so the viewport isn't left mid-animation.\n for (const clone of SelectorEngine.find(`.${CLASS_NAME_CLONE}`, this._viewport)) {\n clone.remove()\n }\n\n this._viewport.style.scrollSnapType = ''\n\n // The pointerdown listener lives on the viewport (`.carousel-inner`), which\n // `super.dispose()` doesn't clean up—it only drops listeners on `_element`.\n EventHandler.off(this._viewport, EVENT_KEY)\n\n super.dispose()\n }\n\n // Private\n // Normalize an unknown `ends` value so navigation and end-control logic can't\n // disagree about whether the carousel wraps.\n _configAfterMerge(config) {\n if (![ENDS_STOP, ENDS_WRAP, ENDS_LOOP].includes(config.ends)) {\n config.ends = Default.ends\n }\n\n return config\n }\n\n _initialActiveIndex() {\n const active = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const index = active ? this._getItems().indexOf(active) : 0\n return Math.max(index, 0)\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause())\n EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle())\n }\n\n // Dragging, swiping, or tapping the track is an explicit interaction\n EventHandler.on(this._viewport, EVENT_POINTERDOWN, () => this._pauseFromInteraction())\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n const direction = KEY_TO_DIRECTION[event.key]\n if (direction) {\n event.preventDefault()\n this._pauseFromInteraction()\n if (direction === DIRECTION_RIGHT) {\n this.prev()\n } else {\n this.next()\n }\n }\n }\n\n _observeItems() {\n // Fade mode stacks slides instead of scrolling, so there's nothing to observe\n if (this._isFade() || typeof IntersectionObserver === 'undefined') {\n return\n }\n\n this._observer = new IntersectionObserver(\n entries => this._handleIntersection(entries),\n { root: this._viewport, threshold: [0, 0.25, 0.5, 0.75, 1] }\n )\n\n for (const item of this._getItems()) {\n this._observer.observe(item)\n }\n }\n\n _handleIntersection(entries) {\n // A loop transition deliberately scrolls onto a transient clone; ignore the\n // visibility churn so it doesn't move the active index mid-animation.\n if (this._looping) {\n return\n }\n\n for (const entry of entries) {\n this._visibility.set(entry.target, entry.isIntersecting ? entry.intersectionRatio : 0)\n }\n\n const items = this._getItems()\n const ratios = items.map(item => this._visibility.get(item) ?? 0)\n const maxRatio = Math.max(...ratios)\n\n // Pick the left-most slide that's *near* fully visible rather than the strict\n // global maximum. After a programmatic scroll the viewport rests ~1px past\n // the target snap offset, so the intended left-most slide reports a ratio a\n // hair below the deeper, fully-visible ones (e.g. 0.997 vs 1.0). A strict max\n // would skip past it and inflate the active index by one, which breaks\n // multi-item next/prev. The tolerance keeps the intended slide active while\n // peeking slivers (well below the max) are still ignored.\n let bestIndex = this._activeIndex\n\n if (maxRatio > 0) {\n bestIndex = ratios.findIndex(ratio => ratio >= maxRatio - ACTIVE_RATIO_TOLERANCE)\n }\n\n this._setActive(bestIndex)\n // Keep the end controls in sync with the scroll position even when the\n // active index doesn't change (e.g. the final stretch of a multi-item\n // scroll, where the left-most slide is already the last reachable one).\n this._updateEndControls()\n }\n\n // The index a `next()`/`prev()` step is measured from. Scroll layouts read it\n // from the live scroll position instead of `this._activeIndex`, because the\n // IntersectionObserver updates that asynchronously: after one step the index\n // can still be stale, so the next step would compute the same target and\n // silently no-op (the \"the button does nothing / can't reach the end slide\"\n // symptom). Fade and non-scrollable layouts have no scroll position to read,\n // so they keep using the tracked active index (also what the unit tests rely\n // on when there's no real layout).\n _navIndex() {\n if (this._isFade() || (this._viewport.scrollWidth - this._viewport.clientWidth) <= 0) {\n return this._activeIndex\n }\n\n let index = this._activeIndex\n let smallestDelta = Number.POSITIVE_INFINITY\n\n for (const [itemIndex, item] of this._getItems().entries()) {\n // The slide currently resting at the active position has ~zero delta.\n const delta = Math.abs(this._scrollDelta(item))\n if (delta < smallestDelta) {\n smallestDelta = delta\n index = itemIndex\n }\n }\n\n return index\n }\n\n _scrollToIndex(index) {\n const item = this._getItems()[index]\n if (!item) {\n return\n }\n\n const left = this._scrollDelta(item)\n if (Math.abs(left) < 1) {\n return\n }\n\n // `scroll-snap-stop: always` keeps user wheel/touch flings to a single slide,\n // but it also clamps *programmatic* scrolls to one snap point — which would\n // break multi-slide jumps from an indicator click, `to()`, or wrapping from\n // the last slide back to the first. Disable snapping for the duration of the\n // programmatic scroll, then restore it once the scroll settles so the slide\n // still rests precisely (honouring peek/gap).\n const targetLeft = this._viewport.scrollLeft + left\n this._viewport.style.scrollSnapType = 'none'\n this._viewport.scrollBy({\n left,\n top: 0,\n // `'instant'` (not `'auto'`) for reduced motion: the viewport sets\n // `scroll-behavior: smooth` in CSS, and `'auto'` defers to it, so it would\n // still animate. `'instant'` forces an immediate, motion-free jump.\n behavior: this._prefersReducedMotion() ? 'instant' : 'smooth'\n })\n this._restoreSnapWhenSettled(targetLeft, index)\n }\n\n // Horizontal distance to scroll the viewport so `element` rests where the\n // active slide should sit. Scroll the viewport itself rather than calling\n // `element.scrollIntoView()`: the latter scrolls *every* scrollable ancestor\n // (including the page), so an autoplaying carousel below the fold would yank\n // the whole page to itself on each tick. Using bounding rects keeps it\n // direction-agnostic (works in RTL).\n _scrollDelta(element) {\n const viewportRect = this._viewport.getBoundingClientRect()\n const rect = element.getBoundingClientRect()\n\n if (this._element.classList.contains(CLASS_NAME_CENTER)) {\n return (rect.left + (rect.width / 2)) - (viewportRect.left + (viewportRect.width / 2))\n }\n\n // Start alignment: rest the slide at the scroll-padding (peek) offset, which\n // is exactly where scroll-snap will settle. Aligning flush to the edge\n // instead would make the browser re-snap by `peek` once snapping is restored,\n // producing a visible secondary nudge after the programmatic scroll.\n const padStart = Number.parseFloat(getComputedStyle(this._viewport).scrollPaddingInlineStart) || 0\n\n return isRTL() ?\n rect.right - (viewportRect.right - padStart) :\n rect.left - (viewportRect.left + padStart)\n }\n\n // Seamless loop: continue past an end into a one-off clone of the destination\n // slide, then teleport to the real slide so there's no visible backward jump.\n _loopTransition(isNext) {\n const items = this._getItems()\n const last = items.length - 1\n const fromIndex = this._activeIndex\n const toIndex = isNext ? 0 : last\n const direction = this._loopDirection(isNext)\n\n const slideEvent = EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget: items[toIndex],\n direction,\n from: fromIndex,\n to: toIndex\n })\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n this._looping = true\n\n const clone = (isNext ? items[0] : items[last]).cloneNode(true)\n clone.classList.add(CLASS_NAME_CLONE)\n clone.classList.remove(CLASS_NAME_ACTIVE)\n clone.removeAttribute('id')\n // Also strip ids from the cloned subtree to avoid duplicate ids while the\n // clone is on screen.\n for (const node of SelectorEngine.find('[id]', clone)) {\n node.removeAttribute('id')\n }\n\n clone.setAttribute('aria-hidden', 'true')\n clone.inert = true\n\n this._viewport.style.scrollSnapType = 'none'\n\n if (isNext) {\n this._viewport.append(clone)\n } else {\n this._viewport.prepend(clone)\n // Prepending shifts the real slides to the right; instantly re-align the\n // current slide so the insertion doesn't flash before we animate.\n this._jumpScroll(this._scrollDelta(items[fromIndex]))\n }\n\n this._viewport.scrollBy({\n left: this._scrollDelta(clone),\n top: 0,\n behavior: 'smooth'\n })\n\n this._afterScrollSettles(() => {\n // Teleport to the real destination without animation. JS runs to\n // completion before the browser paints, so removing the clone and the\n // compensating scroll land in a single frame (no visible flash).\n clone.remove()\n this._jumpScroll(this._scrollDelta(items[toIndex]))\n\n this._activeIndex = toIndex\n this._refreshActiveState()\n\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: items[toIndex],\n direction,\n from: fromIndex,\n to: toIndex\n })\n\n this._viewport.style.scrollSnapType = ''\n this._looping = false\n })\n }\n\n _loopDirection(isNext) {\n if (isRTL()) {\n return isNext ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n return isNext ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n // Instant (non-animated) scroll with snapping suspended, used to teleport the\n // viewport during a loop transition. `behavior: 'instant'` is required because\n // the viewport sets `scroll-behavior: smooth` in CSS, and `'auto'` would defer\n // to it and animate the teleport (a visible backward slide).\n _jumpScroll(delta) {\n this._viewport.style.scrollSnapType = 'none'\n this._viewport.scrollBy({ left: delta, top: 0, behavior: 'instant' })\n }\n\n // Re-enable scroll snapping once the viewport reaches `targetLeft` (or stops\n // moving). Passing the target matters: restoring `mandatory` snapping re-snaps\n // to the *nearest* snap point, so if we restored mid-animation the viewport\n // could jump back to the slide we came from — most visible stepping to the\n // first/last slide, where it looks like the control \"doesn't work\".\n _restoreSnapWhenSettled(targetLeft, index) {\n this._afterScrollSettles(() => {\n this._viewport.style.scrollSnapType = ''\n // Without IntersectionObserver nothing else fires `slid`/updates the active\n // slide after a programmatic scroll, so do it here. With the observer\n // present this is a no-op (it already moved the active index to `index`).\n if (!this._observer && index !== undefined) {\n this._setActive(index)\n }\n\n // The IntersectionObserver doesn't fire once the viewport has stopped, so\n // refresh the end controls here to catch the final ~1px settle landing\n // exactly on the scroll extent (e.g. disabling `next` at the last view).\n this._updateEndControls()\n }, targetLeft)\n }\n\n // Invoke `callback` once the viewport stops moving. We watch the scroll\n // position across frames instead of relying on the `scrollend` event, which\n // isn't available across our supported browsers yet.\n //\n // Crucially, we only start counting \"stable\" frames once the scroll has\n // actually moved. A smooth `scrollBy` doesn't update `scrollLeft` for the first\n // frame or two, so naively treating those initial unchanged frames as\n // \"settled\" would re-enable `mandatory` snapping mid-animation — which cancels\n // the in-flight programmatic scroll and lands on the wrong slide (most visible\n // in multi-item layouts). If the scroll never moves (delta clamped at an end,\n // or `scrollBy` stubbed out in unit tests), we fall back to a short frame cap.\n //\n // When `targetLeft` is known we also finish the moment we arrive there, so the\n // snap is restored exactly on the destination snap point and can't re-snap the\n // viewport backwards (the failure mode where stepping to the first/last slide\n // appears to do nothing).\n _afterScrollSettles(callback, targetLeft) {\n if (typeof requestAnimationFrame === 'undefined') {\n callback()\n return\n }\n\n if (this._snapRestoreFrame !== null) {\n cancelAnimationFrame(this._snapRestoreFrame)\n }\n\n const startLeft = this._viewport.scrollLeft\n let lastLeft = startLeft\n let stableFrames = 0\n let waited = 0\n let hasMoved = false\n\n const tick = () => {\n const currentLeft = this._viewport.scrollLeft\n const reachedTarget = targetLeft !== undefined && Math.abs(currentLeft - targetLeft) <= 1\n\n if (Math.abs(currentLeft - startLeft) > 1) {\n hasMoved = true\n }\n\n // Only accrue stable frames after movement begins, so the pre-animation\n // and ease-in frames don't prematurely count as settled.\n if (hasMoved) {\n stableFrames = Math.abs(currentLeft - lastLeft) < 1 ? stableFrames + 1 : 0\n }\n\n lastLeft = currentLeft\n waited += 1\n\n if (reachedTarget || (hasMoved && stableFrames >= 3) || (!hasMoved && waited >= SCROLL_SETTLE_MAX_FRAMES)) {\n this._snapRestoreFrame = null\n callback()\n return\n }\n\n this._snapRestoreFrame = requestAnimationFrame(tick)\n }\n\n this._snapRestoreFrame = requestAnimationFrame(tick)\n }\n\n // Fade mode just swaps the active class; the CSS opacity transition on\n // `.carousel-item` performs the crossfade over `--carousel-fade-duration` (and\n // collapses to an instant swap under reduced motion, via the `transition`\n // mixin). It deliberately avoids the View Transition API: a view transition\n // crossfades a page snapshot over its own (shorter) duration while this CSS\n // fade also runs underneath, so the two animations overlap and visibly stutter.\n _fadeTo(index) {\n this._setActive(index)\n }\n\n _setActive(index) {\n const items = this._getItems()\n if (index === this._activeIndex || !items[index]) {\n return\n }\n\n const from = this._activeIndex\n\n this._activeIndex = index\n this._refreshActiveState()\n\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: items[index],\n direction: this._direction(from, index),\n from,\n to: index\n })\n }\n\n _refreshActiveState() {\n const items = this._getItems()\n\n for (const [index, item] of items.entries()) {\n item.classList.toggle(CLASS_NAME_ACTIVE, index === this._activeIndex)\n }\n\n this._setActiveIndicatorElement(this._activeIndex)\n this._updateEndControls()\n }\n\n _updateEndControls() {\n // Only `ends: 'stop'` has real ends; under `wrap`/`loop` you can always\n // advance, so disabling end controls would be meaningless. When stopping,\n // disable the prev control at the start of the scroll range and the next\n // control at the end so there are no dead end-buttons.\n if (this._config.ends !== ENDS_STOP) {\n return\n }\n\n const viewport = this._viewport\n const maxScroll = viewport.scrollWidth - viewport.clientWidth\n\n let atStart\n let atEnd\n\n if (maxScroll > 0) {\n // Scrollable: measure the real scroll extent so this works for multi-item,\n // peek, and variable-width layouts where the last slide can never become\n // the left-most (active) one. `Math.abs` keeps it correct in RTL, where\n // `scrollLeft` runs from 0 down to negative.\n const progress = Math.abs(viewport.scrollLeft)\n atStart = progress <= 1\n atEnd = progress >= maxScroll - 1\n } else {\n // Not scrollable (or no layout yet, e.g. in unit tests): fall back to the\n // active index for the single-slide case.\n const last = this._getItems().length - 1\n atStart = this._activeIndex <= 0\n atEnd = this._activeIndex >= last\n }\n\n this._setControlsDisabled(this._prevControls, atStart)\n this._setControlsDisabled(this._nextControls, atEnd)\n }\n\n _setControlsDisabled(controls, disabled) {\n for (const control of controls) {\n // a11y: if we're about to disable the focused control, move focus to the\n // opposite (still-enabled) control so focus isn't lost.\n if (disabled && control === document.activeElement) {\n const opposite = controls === this._prevControls ? this._nextControls : this._prevControls\n const fallback = opposite[0] ?? this._viewport\n // `preventScroll` so moving focus doesn't yank the page/viewport to the\n // newly-focused control mid-navigation.\n fallback.focus({ preventScroll: true })\n }\n\n control.disabled = disabled\n }\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return\n }\n\n const active = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n active.removeAttribute('aria-current')\n }\n\n const newActive = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement)\n if (newActive) {\n newActive.classList.add(CLASS_NAME_ACTIVE)\n newActive.setAttribute('aria-current', 'true')\n }\n }\n\n _normalizeIndex(index, length) {\n if (Number.isNaN(index) || length === 0) {\n return null\n }\n\n if (index < 0) {\n return this._wrapsAround() ? length - 1 : null\n }\n\n if (index > length - 1) {\n return this._wrapsAround() ? 0 : null\n }\n\n return index\n }\n\n // Whether navigating past an end wraps to the other end. `loop` continues\n // seamlessly where it can (see `_canLoop`) and otherwise behaves like `wrap`.\n _wrapsAround() {\n return this._config.ends === ENDS_WRAP || this._config.ends === ENDS_LOOP\n }\n\n // Seamless looping is only supported for the simple single-slide scroll\n // layout. Multi-item, peek, center, and variable-width layouts fall back to\n // the plain `wrap` jump.\n _canLoop() {\n if (this._isFade() || this._getItems().length < 2) {\n return false\n }\n\n const styles = getComputedStyle(this._element)\n const num = name => Number.parseFloat(styles.getPropertyValue(name)) || 0\n\n // These are the shipped, `--bs-`-prefixed custom properties (the build\n // prefixes every custom property), not the bare names used in the SCSS source.\n return (num('--bs-carousel-items') || 1) === 1 &&\n num('--bs-carousel-items-peek') === 0 &&\n !this._element.classList.contains(CLASS_NAME_CENTER) &&\n !this._element.classList.contains(CLASS_NAME_AUTO)\n }\n\n _direction(from, to) {\n const isNext = to > from\n if (isRTL()) {\n return isNext ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n return isNext ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n _scheduleAutoplay(index = this._activeIndex) {\n const interval = this._itemInterval(index)\n // Expose the wait so the active indicator's CSS fill matches it.\n this._element.style.setProperty(PROPERTY_INTERVAL, `${interval}ms`)\n this._interval = setTimeout(() => {\n // Capture the slide the advance lands on *before* navigating: the active\n // index only updates once the scroll settles (asynchronously), so reading\n // it after `nextWhenVisible()` would schedule the next wait from the slide\n // we're leaving — making per-item `data-bs-interval`s lag by one slide.\n const upcoming = this._upcomingIndex()\n this.nextWhenVisible()\n\n // Nothing comes after the last slide when `ends: 'stop'`; stop cycling\n // instead of re-arming a timer that can never advance.\n if (upcoming === null) {\n this.pause()\n return\n }\n\n this._scheduleAutoplay(upcoming)\n }, interval)\n }\n\n // The slide the next autoplay tick will rest on, derived from the live scroll\n // position (which still reflects the current slide when the timer fires).\n // Returns `null` when there's nowhere left to advance (`ends: stop` at the end).\n _upcomingIndex() {\n return this._normalizeIndex(this._navIndex() + 1, this._getItems().length)\n }\n\n _itemInterval(index = this._activeIndex) {\n const item = this._getItems()[index]\n const interval = item ? Number.parseInt(item.getAttribute('data-bs-interval'), 10) : Number.NaN\n return Number.isNaN(interval) ? this._config.interval : interval\n }\n\n _maybeEnableCycle() {\n if (!this._playing) {\n return\n }\n\n this.cycle()\n }\n\n // Turn autoplay off for good once the user interacts with the carousel\n _pauseFromInteraction() {\n this._playing = false\n this.pause()\n this._updatePlayPauseControl()\n }\n\n _togglePlayPause() {\n if (this._playing) {\n this._pauseFromInteraction()\n return\n }\n\n this._playing = true\n this.cycle()\n this._updatePlayPauseControl()\n }\n\n _updatePlayPauseControl() {\n if (!this._playPauseElement) {\n return\n }\n\n this._playPauseElement.classList.toggle(CLASS_NAME_PAUSED, !this._playing)\n\n const label = this._playPauseElement.getAttribute(\n this._playing ? 'data-bs-pause-label' : 'data-bs-play-label'\n )\n\n if (label) {\n this._playPauseElement.setAttribute('aria-label', label)\n }\n }\n\n _isFade() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _prefersReducedMotion() {\n return typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element)\n }\n\n _clearInterval() {\n if (this._interval) {\n clearTimeout(this._interval)\n this._interval = null\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n const carousel = Carousel.getOrCreateInstance(target)\n\n // Manually cycling the carousel is an explicit interaction, so stop autoplay\n carousel._pauseFromInteraction()\n\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n carousel.to(slideIndex)\n return\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next()\n return\n }\n\n carousel.prev()\n})\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_PLAY_PAUSE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n Carousel.getOrCreateInstance(target)._togglePlayPause()\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_AUTOPLAY)\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel)\n }\n})\n\nexport default Carousel\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_POINTERDOWN","EVENT_LOAD_DATA_API","EVENT_CLICK_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE","CLASS_NAME_FADE","CLASS_NAME_CENTER","CLASS_NAME_AUTO","CLASS_NAME_CLONE","CLASS_NAME_PAUSED","CLASS_NAME_PLAYING","PROPERTY_INTERVAL","SCROLL_SETTLE_MAX_FRAMES","ACTIVE_RATIO_TOLERANCE","SELECTOR_ACTIVE","SELECTOR_ITEM","SELECTOR_ACTIVE_ITEM","SELECTOR_INNER","SELECTOR_INDICATORS","SELECTOR_PLAY_PAUSE","SELECTOR_DATA_SLIDE","SELECTOR_DATA_SLIDE_PREV","SELECTOR_DATA_SLIDE_NEXT","SELECTOR_DATA_AUTOPLAY","KEY_TO_DIRECTION","ENDS_STOP","ENDS_WRAP","ENDS_LOOP","Default","autoplay","ends","interval","keyboard","pause","DefaultType","Carousel","BaseComponent","constructor","element","config","_viewport","SelectorEngine","findOne","_element","_indicatorsElement","_playPauseElement","_prevControls","find","_nextControls","_interval","_observer","_snapRestoreFrame","_looping","_visibility","Map","_playing","_config","_activeIndex","_initialActiveIndex","_addEventListeners","_observeItems","_refreshActiveState","cycle","_updatePlayPauseControl","next","to","_navIndex","nextWhenVisible","document","visibilityState","isVisible","prev","_clearInterval","classList","remove","_scheduleAutoplay","add","index","items","_getItems","rawIndex","Number","parseInt","_prefersReducedMotion","_canLoop","length","_loopTransition","targetIndex","_normalizeIndex","currentIndex","slideEvent","EventHandler","trigger","relatedTarget","direction","_direction","from","defaultPrevented","_isFade","_fadeTo","_scrollToIndex","dispose","disconnect","cancelAnimationFrame","clone","style","scrollSnapType","off","_configAfterMerge","includes","active","indexOf","Math","max","on","event","_keydown","_maybeEnableCycle","_pauseFromInteraction","test","target","tagName","key","preventDefault","IntersectionObserver","entries","_handleIntersection","root","threshold","item","observe","entry","set","isIntersecting","intersectionRatio","ratios","map","get","maxRatio","bestIndex","findIndex","ratio","_setActive","_updateEndControls","scrollWidth","clientWidth","smallestDelta","POSITIVE_INFINITY","itemIndex","delta","abs","_scrollDelta","left","targetLeft","scrollLeft","scrollBy","top","behavior","_restoreSnapWhenSettled","viewportRect","getBoundingClientRect","rect","contains","width","padStart","parseFloat","getComputedStyle","scrollPaddingInlineStart","isRTL","right","isNext","last","fromIndex","toIndex","_loopDirection","cloneNode","removeAttribute","node","setAttribute","inert","append","prepend","_jumpScroll","_afterScrollSettles","undefined","callback","requestAnimationFrame","startLeft","lastLeft","stableFrames","waited","hasMoved","tick","currentLeft","reachedTarget","toggle","_setActiveIndicatorElement","viewport","maxScroll","atStart","atEnd","progress","_setControlsDisabled","controls","disabled","control","activeElement","opposite","fallback","focus","preventScroll","newActive","isNaN","_wrapsAround","styles","num","name","getPropertyValue","_itemInterval","setProperty","setTimeout","upcoming","_upcomingIndex","getAttribute","NaN","_togglePlayPause","label","window","matchMedia","matches","clearTimeout","getElementFromSelector","carousel","getOrCreateInstance","slideIndex","Manipulator","getDataAttribute","carousels"],"mappings":"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"}
\ No newline at end of file
*/
class Menu extends BaseComponent {
- static _openInstances = (() => new Set())();
+ static _openInstances = new Set();
constructor(element, config) {
if (typeof computePosition === 'undefined') {
throw new TypeError('Bootstrap\'s menus require Floating UI (https://floating-ui.com)');
-{"version":3,"file":"menu.js","sources":["../src/menu.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap menu.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n computePosition,\n flip,\n shift,\n offset,\n autoUpdate\n} from '@floating-ui/dom'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n execute,\n getElement,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop\n} from './util/index.js'\nimport {\n parseResponsivePlacement,\n getResponsivePlacement,\n createBreakpointListeners,\n disposeBreakpointListeners\n} from './util/floating-ui.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'menu'\nconst DATA_KEY = 'bs.menu'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\nconst ENTER_KEY = 'Enter'\nconst SPACE_KEY = ' '\nconst RIGHT_MOUSE_BUTTON = 2\n\nconst SUBMENU_CLOSE_DELAY = 100\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"menu\"]:not(.disabled):not(:disabled)'\n\nconst SELECTOR_MENU = '.menu'\nconst SELECTOR_SUBMENU = '.submenu'\nconst SELECTOR_SUBMENU_TOGGLE = '.submenu > .menu-item'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.menu-item:not(.disabled):not(:disabled)'\n\nconst DEFAULT_PLACEMENT = 'bottom-start'\nconst SUBMENU_PLACEMENT = 'end-start'\n\nconst resolveLogicalPlacement = placement => {\n if (isRTL()) {\n return placement.replace(/^start(?=-|$)/, 'right').replace(/^end(?=-|$)/, 'left')\n }\n\n return placement.replace(/^start(?=-|$)/, 'left').replace(/^end(?=-|$)/, 'right')\n}\n\nconst triangleSign = (p1, p2, p3) =>\n ((p1.x - p3.x) * (p2.y - p3.y)) - ((p2.x - p3.x) * (p1.y - p3.y))\n\nconst Default = {\n autoClose: true,\n boundary: 'clippingParents',\n container: false,\n display: 'dynamic',\n offset: [0, 2],\n floatingConfig: null,\n menu: null,\n placement: DEFAULT_PLACEMENT,\n reference: 'toggle',\n strategy: 'absolute',\n submenuTrigger: 'both',\n submenuDelay: SUBMENU_CLOSE_DELAY\n}\n\nconst DefaultType = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n display: 'string',\n offset: '(array|string|function)',\n floatingConfig: '(null|object|function)',\n menu: '(null|element)',\n placement: 'string',\n reference: '(string|element|object)',\n strategy: 'string',\n submenuTrigger: 'string',\n submenuDelay: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass Menu extends BaseComponent {\n static _openInstances = new Set()\n\n constructor(element, config) {\n if (typeof computePosition === 'undefined') {\n throw new TypeError('Bootstrap\\'s menus require Floating UI (https://floating-ui.com)')\n }\n\n super(element, config)\n\n this._floatingCleanup = null\n this._mediaQueryListeners = []\n this._responsivePlacements = null\n this._parent = this._element.parentNode\n this._isSubmenu = this._parent.classList?.contains('submenu')\n this._openSubmenus = new Map()\n this._submenuCloseTimeouts = new Map()\n this._hoverIntentData = null\n\n this._menu = this._config.menu || this._findMenu()\n\n this._menuOriginalParent = this._menu?.parentNode\n\n this._parseResponsivePlacements()\n this._setupSubmenuListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._moveMenuToContainer()\n this._createFloating()\n\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of document.body.children) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n this._element.focus({ focusVisible: false })\n this._element.setAttribute('aria-expanded', 'true')\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.add(CLASS_NAME_SHOW)\n }\n\n Menu._openInstances.add(this)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n this._disposeMediaQueryListeners()\n this._closeAllSubmenus()\n this._clearAllSubmenuTimeouts()\n Menu._openInstances.delete(this)\n super.dispose()\n }\n\n update() {\n if (this._floatingCleanup) {\n this._updateFloatingPosition()\n }\n }\n\n // Private\n _findMenu() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.prev(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.findOne(SELECTOR_MENU, this._parent)\n }\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._closeAllSubmenus()\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.remove(CLASS_NAME_SHOW)\n }\n\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'placement')\n Manipulator.removeDataAttribute(this._menu, 'display')\n Menu._openInstances.delete(this)\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = super._getConfig(config)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createFloating() {\n if (this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'display', 'static')\n return\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n this._updateFloatingPosition(referenceElement)\n\n this._floatingCleanup = autoUpdate(\n referenceElement,\n this._menu,\n () => this._updateFloatingPosition(referenceElement)\n )\n }\n\n async _updateFloatingPosition(referenceElement = null) {\n if (!this._menu) {\n return\n }\n\n if (!referenceElement) {\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n } else {\n referenceElement = this._element\n }\n }\n\n const placement = this._getPlacement()\n const middleware = this._getFloatingMiddleware()\n const floatingConfig = this._getFloatingConfig(placement, middleware)\n\n await this._applyFloatingPosition(\n referenceElement,\n this._menu,\n floatingConfig.placement,\n floatingConfig.middleware,\n floatingConfig.strategy\n )\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement() {\n const placement = this._responsivePlacements ?\n getResponsivePlacement(this._responsivePlacements, DEFAULT_PLACEMENT) :\n this._config.placement\n\n return resolveLogicalPlacement(placement)\n }\n\n _parseResponsivePlacements() {\n this._responsivePlacements = parseResponsivePlacement(this._config.placement, DEFAULT_PLACEMENT)\n\n if (this._responsivePlacements) {\n this._setupMediaQueryListeners()\n }\n }\n\n _setupMediaQueryListeners() {\n this._disposeMediaQueryListeners()\n this._mediaQueryListeners = createBreakpointListeners(() => {\n if (this._isShown()) {\n this._updateFloatingPosition()\n }\n })\n }\n\n _disposeMediaQueryListeners() {\n disposeBreakpointListeners(this._mediaQueryListeners)\n this._mediaQueryListeners = []\n }\n\n _getOffset() {\n const { offset: offsetConfig } = this._config\n\n if (typeof offsetConfig === 'string') {\n return offsetConfig.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offsetConfig === 'function') {\n return ({ placement, rects }) => {\n const result = offsetConfig({ placement, reference: rects.reference, floating: rects.floating }, this._element)\n return result\n }\n }\n\n return offsetConfig\n }\n\n _getFloatingMiddleware() {\n const offsetValue = this._getOffset()\n\n const middleware = [\n offset(\n typeof offsetValue === 'function' ?\n offsetValue :\n { mainAxis: offsetValue[1] || 0, crossAxis: offsetValue[0] || 0 }\n ),\n flip({\n fallbackPlacements: this._getFallbackPlacements()\n }),\n shift({\n boundary: this._config.boundary === 'clippingParents' ? 'clippingAncestors' : this._config.boundary\n })\n ]\n\n return middleware\n }\n\n _getFallbackPlacements() {\n const placement = this._getPlacement()\n\n const fallbackMap = {\n bottom: ['top', 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\n 'bottom-start': ['top-start', 'bottom-end', 'top-end'],\n 'bottom-end': ['top-end', 'bottom-start', 'top-start'],\n top: ['bottom', 'top-start', 'top-end', 'bottom-start', 'bottom-end'],\n 'top-start': ['bottom-start', 'top-end', 'bottom-end'],\n 'top-end': ['bottom-end', 'top-start', 'bottom-start'],\n right: ['left', 'right-start', 'right-end', 'left-start', 'left-end'],\n 'right-start': ['left-start', 'right-end', 'left-end', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'right-start', 'left-start', 'top-end', 'bottom-end'],\n left: ['right', 'left-start', 'left-end', 'right-start', 'right-end'],\n 'left-start': ['right-start', 'left-end', 'right-end', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'left-start', 'right-start', 'top-end', 'bottom-end']\n }\n\n return fallbackMap[placement] || ['top', 'bottom', 'right', 'left']\n }\n\n _getFloatingConfig(placement, middleware) {\n const defaultConfig = {\n placement,\n middleware,\n strategy: this._config.strategy\n }\n\n return {\n ...defaultConfig,\n ...execute(this._config.floatingConfig, [undefined, defaultConfig])\n }\n }\n\n _disposeFloating() {\n if (this._floatingCleanup) {\n this._floatingCleanup()\n this._floatingCleanup = null\n }\n }\n\n _getContainer() {\n const { container } = this._config\n if (container === false) {\n return null\n }\n\n return container === true ? document.body : getElement(container)\n }\n\n _moveMenuToContainer() {\n const container = this._getContainer()\n if (!container || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== container) {\n container.append(this._menu)\n }\n }\n\n _restoreMenuToOriginalParent() {\n if (!this._menuOriginalParent || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== this._menuOriginalParent) {\n this._menuOriginalParent.append(this._menu)\n }\n }\n\n async _applyFloatingPosition(reference, floating, placement, middleware, strategy = 'absolute') {\n if (!floating.isConnected) {\n return null\n }\n\n const { x, y, placement: finalPlacement } = await computePosition(\n reference,\n floating,\n { placement, middleware, strategy }\n )\n\n if (!floating.isConnected) {\n return null\n }\n\n Object.assign(floating.style, {\n position: strategy,\n left: `${x}px`,\n top: `${y}px`,\n margin: '0'\n })\n\n Manipulator.setDataAttribute(floating, 'placement', finalPlacement)\n return finalPlacement\n }\n\n // -------------------------------------------------------------------------\n // Submenu handling\n // -------------------------------------------------------------------------\n\n _setupSubmenuListeners() {\n if (this._config.submenuTrigger === 'hover' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'mouseenter', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerEnter(event)\n })\n\n EventHandler.on(this._menu, 'mouseleave', SELECTOR_SUBMENU, event => {\n this._onSubmenuLeave(event)\n })\n\n EventHandler.on(this._menu, 'mousemove', event => {\n this._trackMousePosition(event)\n })\n }\n\n if (this._config.submenuTrigger === 'click' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'click', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerClick(event)\n })\n }\n }\n\n _onSubmenuTriggerEnter(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n this._cancelSubmenuCloseTimeout(submenu)\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n\n _onSubmenuLeave(event) {\n const submenuWrapper = event.target.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu || !this._openSubmenus.has(submenu)) {\n return\n }\n\n if (this._isMovingTowardSubmenu(event, submenu)) {\n return\n }\n\n this._scheduleSubmenuClose(submenu, submenuWrapper)\n }\n\n _onSubmenuTriggerClick(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n if (this._openSubmenus.has(submenu)) {\n this._closeSubmenu(submenu, submenuWrapper)\n } else {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n }\n\n _openSubmenu(trigger, submenu, submenuWrapper) {\n if (this._openSubmenus.has(submenu)) {\n return\n }\n\n trigger.setAttribute('aria-expanded', 'true')\n trigger.setAttribute('aria-haspopup', 'true')\n\n submenu.classList.add(CLASS_NAME_SHOW)\n submenuWrapper.classList.add(CLASS_NAME_SHOW)\n\n const cleanup = this._createSubmenuFloating(trigger, submenu, submenuWrapper)\n this._openSubmenus.set(submenu, cleanup)\n\n EventHandler.on(submenu, 'mouseenter', () => {\n this._cancelSubmenuCloseTimeout(submenu)\n })\n }\n\n _closeSubmenu(submenu, submenuWrapper) {\n if (!this._openSubmenus.has(submenu)) {\n return\n }\n\n const nestedSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, submenu)\n for (const nested of nestedSubmenus) {\n const nestedWrapper = nested.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(nested, nestedWrapper)\n }\n\n const trigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, submenuWrapper)\n\n const cleanup = this._openSubmenus.get(submenu)\n if (cleanup) {\n cleanup()\n }\n\n this._openSubmenus.delete(submenu)\n EventHandler.off(submenu, 'mouseenter')\n\n if (trigger) {\n trigger.setAttribute('aria-expanded', 'false')\n }\n\n submenu.classList.remove(CLASS_NAME_SHOW)\n submenuWrapper.classList.remove(CLASS_NAME_SHOW)\n\n submenu.style.position = ''\n submenu.style.left = ''\n submenu.style.top = ''\n submenu.style.margin = ''\n }\n\n _closeAllSubmenus() {\n for (const [submenu] of this._openSubmenus) {\n const submenuWrapper = submenu.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(submenu, submenuWrapper)\n }\n }\n\n _closeSiblingSubmenus(currentSubmenuWrapper) {\n const parent = currentSubmenuWrapper.parentNode\n const siblingSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} > ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, parent)\n\n for (const siblingMenu of siblingSubmenus) {\n const siblingWrapper = siblingMenu.closest(SELECTOR_SUBMENU)\n if (siblingWrapper !== currentSubmenuWrapper) {\n this._closeSubmenu(siblingMenu, siblingWrapper)\n }\n }\n }\n\n _createSubmenuFloating(trigger, submenu, submenuWrapper) {\n const referenceElement = submenuWrapper\n const placement = resolveLogicalPlacement(SUBMENU_PLACEMENT)\n const middleware = [\n offset({ mainAxis: 0, crossAxis: -4 }),\n flip({\n fallbackPlacements: [\n resolveLogicalPlacement('start-start'),\n resolveLogicalPlacement('end-end'),\n resolveLogicalPlacement('start-end')\n ]\n }),\n shift({ padding: 8 })\n ]\n\n const updatePosition = () => this._applyFloatingPosition(referenceElement, submenu, placement, middleware)\n\n updatePosition()\n return autoUpdate(referenceElement, submenu, updatePosition)\n }\n\n _scheduleSubmenuClose(submenu, submenuWrapper) {\n this._cancelSubmenuCloseTimeout(submenu)\n\n const timeoutId = setTimeout(() => {\n this._closeSubmenu(submenu, submenuWrapper)\n this._submenuCloseTimeouts.delete(submenu)\n }, this._config.submenuDelay)\n\n this._submenuCloseTimeouts.set(submenu, timeoutId)\n }\n\n _cancelSubmenuCloseTimeout(submenu) {\n const timeoutId = this._submenuCloseTimeouts.get(submenu)\n if (timeoutId) {\n clearTimeout(timeoutId)\n this._submenuCloseTimeouts.delete(submenu)\n }\n }\n\n _clearAllSubmenuTimeouts() {\n for (const timeoutId of this._submenuCloseTimeouts.values()) {\n clearTimeout(timeoutId)\n }\n\n this._submenuCloseTimeouts.clear()\n }\n\n // -------------------------------------------------------------------------\n // Hover intent / Safe triangle\n // -------------------------------------------------------------------------\n\n _trackMousePosition(event) {\n this._hoverIntentData = {\n x: event.clientX,\n y: event.clientY,\n timestamp: Date.now()\n }\n }\n\n _isMovingTowardSubmenu(event, submenu) {\n if (!this._hoverIntentData) {\n return false\n }\n\n const submenuRect = submenu.getBoundingClientRect()\n const currentPos = { x: event.clientX, y: event.clientY }\n const lastPos = { x: this._hoverIntentData.x, y: this._hoverIntentData.y }\n\n const isRtl = isRTL()\n const targetX = isRtl ? submenuRect.right : submenuRect.left\n const topCorner = { x: targetX, y: submenuRect.top }\n const bottomCorner = { x: targetX, y: submenuRect.bottom }\n\n return this._pointInTriangle(currentPos, lastPos, topCorner, bottomCorner)\n }\n\n _pointInTriangle(point, v1, v2, v3) {\n const d1 = triangleSign(point, v1, v2)\n const d2 = triangleSign(point, v2, v3)\n const d3 = triangleSign(point, v3, v1)\n\n const hasNeg = (d1 < 0) || (d2 < 0) || (d3 < 0)\n const hasPos = (d1 > 0) || (d2 > 0) || (d3 > 0)\n\n return !(hasNeg && hasPos)\n }\n\n // -------------------------------------------------------------------------\n // Keyboard navigation\n // -------------------------------------------------------------------------\n\n _selectMenuItem({ key, target }) {\n const currentMenu = target.closest(SELECTOR_MENU) || this._menu\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (!items.length) {\n return\n }\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n _handleSubmenuKeydown(event) {\n const { key, target } = event\n const isRtl = isRTL()\n\n const enterKey = isRtl ? ARROW_LEFT_KEY : ARROW_RIGHT_KEY\n const exitKey = isRtl ? ARROW_RIGHT_KEY : ARROW_LEFT_KEY\n\n const submenuWrapper = target.closest(SELECTOR_SUBMENU)\n const isSubmenuTrigger = submenuWrapper && target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === enterKey && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === exitKey) {\n const currentMenu = target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper) {\n event.preventDefault()\n event.stopPropagation()\n\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n this._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return true\n }\n }\n\n if (key === HOME_KEY || key === END_KEY) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = target.closest(SELECTOR_MENU)\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (items.length) {\n const targetItem = key === HOME_KEY ? items[0] : items.at(-1)\n targetItem.focus()\n }\n\n return true\n }\n\n return false\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n for (const instance of Menu._openInstances) {\n if (instance._config.autoClose === false) {\n continue\n }\n\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(instance._menu)\n if (\n composedPath.includes(instance._element) ||\n (instance._config.autoClose === 'inside' && !isMenuTarget) ||\n (instance._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n if (instance._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n const relatedTarget = { relatedTarget: instance._element }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n instance._completeHide(relatedTarget)\n }\n }\n\n static dataApiKeydownHandler(event) {\n const isInput = /input|textarea/i.test(event.target.tagName)\n const isEscapeEvent = event.key === ESCAPE_KEY\n const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)\n const isLeftOrRightEvent = [ARROW_LEFT_KEY, ARROW_RIGHT_KEY].includes(event.key)\n const isHomeOrEndEvent = [HOME_KEY, END_KEY].includes(event.key)\n const isEnterOrSpaceEvent = [ENTER_KEY, SPACE_KEY].includes(event.key)\n\n const isSubmenuTrigger = event.target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if (!isUpOrDownEvent && !isEscapeEvent && !isLeftOrRightEvent && !isHomeOrEndEvent &&\n !(isEnterOrSpaceEvent && isSubmenuTrigger)) {\n return\n }\n\n if (isInput && !isEscapeEvent) {\n return\n }\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\n this :\n (SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.next(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\n\n if (!getToggleButton) {\n return\n }\n\n const instance = Menu.getOrCreateInstance(getToggleButton)\n\n if ((isLeftOrRightEvent || isHomeOrEndEvent || (isEnterOrSpaceEvent && isSubmenuTrigger)) && instance._handleSubmenuKeydown(event)) {\n return\n }\n\n if (isUpOrDownEvent) {\n event.preventDefault()\n event.stopPropagation()\n instance.show()\n instance._selectMenuItem(event)\n return\n }\n\n if (isEscapeEvent && instance._isShown()) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = event.target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper && instance._openSubmenus.size > 0) {\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n instance._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return\n }\n\n instance.hide()\n getToggleButton.focus()\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Menu.getOrCreateInstance(this).toggle()\n})\n\nexport default Menu\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","HOME_KEY","END_KEY","ENTER_KEY","SPACE_KEY","RIGHT_MOUSE_BUTTON","SUBMENU_CLOSE_DELAY","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_SHOW","SELECTOR_DATA_TOGGLE","SELECTOR_MENU","SELECTOR_SUBMENU","SELECTOR_SUBMENU_TOGGLE","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","DEFAULT_PLACEMENT","SUBMENU_PLACEMENT","resolveLogicalPlacement","placement","isRTL","replace","triangleSign","p1","p2","p3","x","y","Default","autoClose","boundary","container","display","offset","floatingConfig","menu","reference","strategy","submenuTrigger","submenuDelay","DefaultType","Menu","BaseComponent","_openInstances","Set","constructor","element","config","computePosition","TypeError","_floatingCleanup","_mediaQueryListeners","_responsivePlacements","_parent","_element","parentNode","_isSubmenu","classList","contains","_openSubmenus","Map","_submenuCloseTimeouts","_hoverIntentData","_menu","_config","_findMenu","_menuOriginalParent","_parseResponsivePlacements","_setupSubmenuListeners","toggle","_isShown","hide","show","isDisabled","relatedTarget","showEvent","EventHandler","trigger","defaultPrevented","_moveMenuToContainer","_createFloating","document","documentElement","closest","body","children","on","noop","focus","focusVisible","setAttribute","add","_completeHide","dispose","_disposeFloating","_restoreMenuToOriginalParent","_disposeMediaQueryListeners","_closeAllSubmenus","_clearAllSubmenuTimeouts","delete","update","_updateFloatingPosition","SelectorEngine","next","prev","findOne","hideEvent","off","remove","Manipulator","removeDataAttribute","_getConfig","isElement","getBoundingClientRect","toUpperCase","setDataAttribute","referenceElement","getElement","autoUpdate","_getPlacement","middleware","_getFloatingMiddleware","_getFloatingConfig","_applyFloatingPosition","getResponsivePlacement","parseResponsivePlacement","_setupMediaQueryListeners","createBreakpointListeners","disposeBreakpointListeners","_getOffset","offsetConfig","split","map","value","Number","parseInt","rects","result","floating","offsetValue","mainAxis","crossAxis","flip","fallbackPlacements","_getFallbackPlacements","shift","fallbackMap","bottom","top","right","left","defaultConfig","execute","undefined","_getContainer","append","isConnected","finalPlacement","Object","assign","style","position","margin","event","_onSubmenuTriggerEnter","_onSubmenuLeave","_trackMousePosition","_onSubmenuTriggerClick","target","submenuWrapper","submenu","_cancelSubmenuCloseTimeout","_closeSiblingSubmenus","_openSubmenu","has","_isMovingTowardSubmenu","_scheduleSubmenuClose","preventDefault","stopPropagation","_closeSubmenu","cleanup","_createSubmenuFloating","set","nestedSubmenus","find","nested","nestedWrapper","get","currentSubmenuWrapper","parent","siblingSubmenus","siblingMenu","siblingWrapper","padding","updatePosition","timeoutId","setTimeout","clearTimeout","values","clear","clientX","clientY","timestamp","Date","now","submenuRect","currentPos","lastPos","isRtl","targetX","topCorner","bottomCorner","_pointInTriangle","point","v1","v2","v3","d1","d2","d3","hasNeg","hasPos","_selectMenuItem","key","currentMenu","items","filter","isVisible","length","getNextActiveElement","includes","_handleSubmenuKeydown","enterKey","exitKey","isSubmenuTrigger","matches","requestAnimationFrame","firstItem","parentSubmenuWrapper","parentTrigger","targetItem","at","clearMenus","button","type","instance","composedPath","isMenuTarget","test","tagName","clickEvent","dataApiKeydownHandler","isInput","isEscapeEvent","isUpOrDownEvent","isLeftOrRightEvent","isHomeOrEndEvent","isEnterOrSpaceEvent","getToggleButton","delegateTarget","getOrCreateInstance","size"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"menu.js","sources":["../src/menu.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap menu.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n computePosition,\n flip,\n shift,\n offset,\n autoUpdate\n} from '@floating-ui/dom'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n execute,\n getElement,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop\n} from './util/index.js'\nimport {\n parseResponsivePlacement,\n getResponsivePlacement,\n createBreakpointListeners,\n disposeBreakpointListeners\n} from './util/floating-ui.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'menu'\nconst DATA_KEY = 'bs.menu'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\nconst ENTER_KEY = 'Enter'\nconst SPACE_KEY = ' '\nconst RIGHT_MOUSE_BUTTON = 2\n\nconst SUBMENU_CLOSE_DELAY = 100\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"menu\"]:not(.disabled):not(:disabled)'\n\nconst SELECTOR_MENU = '.menu'\nconst SELECTOR_SUBMENU = '.submenu'\nconst SELECTOR_SUBMENU_TOGGLE = '.submenu > .menu-item'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.menu-item:not(.disabled):not(:disabled)'\n\nconst DEFAULT_PLACEMENT = 'bottom-start'\nconst SUBMENU_PLACEMENT = 'end-start'\n\nconst resolveLogicalPlacement = placement => {\n if (isRTL()) {\n return placement.replace(/^start(?=-|$)/, 'right').replace(/^end(?=-|$)/, 'left')\n }\n\n return placement.replace(/^start(?=-|$)/, 'left').replace(/^end(?=-|$)/, 'right')\n}\n\nconst triangleSign = (p1, p2, p3) =>\n ((p1.x - p3.x) * (p2.y - p3.y)) - ((p2.x - p3.x) * (p1.y - p3.y))\n\nconst Default = {\n autoClose: true,\n boundary: 'clippingParents',\n container: false,\n display: 'dynamic',\n offset: [0, 2],\n floatingConfig: null,\n menu: null,\n placement: DEFAULT_PLACEMENT,\n reference: 'toggle',\n strategy: 'absolute',\n submenuTrigger: 'both',\n submenuDelay: SUBMENU_CLOSE_DELAY\n}\n\nconst DefaultType = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n display: 'string',\n offset: '(array|string|function)',\n floatingConfig: '(null|object|function)',\n menu: '(null|element)',\n placement: 'string',\n reference: '(string|element|object)',\n strategy: 'string',\n submenuTrigger: 'string',\n submenuDelay: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass Menu extends BaseComponent {\n static _openInstances = new Set()\n\n constructor(element, config) {\n if (typeof computePosition === 'undefined') {\n throw new TypeError('Bootstrap\\'s menus require Floating UI (https://floating-ui.com)')\n }\n\n super(element, config)\n\n this._floatingCleanup = null\n this._mediaQueryListeners = []\n this._responsivePlacements = null\n this._parent = this._element.parentNode\n this._isSubmenu = this._parent.classList?.contains('submenu')\n this._openSubmenus = new Map()\n this._submenuCloseTimeouts = new Map()\n this._hoverIntentData = null\n\n this._menu = this._config.menu || this._findMenu()\n\n this._menuOriginalParent = this._menu?.parentNode\n\n this._parseResponsivePlacements()\n this._setupSubmenuListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._moveMenuToContainer()\n this._createFloating()\n\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of document.body.children) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n this._element.focus({ focusVisible: false })\n this._element.setAttribute('aria-expanded', 'true')\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.add(CLASS_NAME_SHOW)\n }\n\n Menu._openInstances.add(this)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n this._disposeMediaQueryListeners()\n this._closeAllSubmenus()\n this._clearAllSubmenuTimeouts()\n Menu._openInstances.delete(this)\n super.dispose()\n }\n\n update() {\n if (this._floatingCleanup) {\n this._updateFloatingPosition()\n }\n }\n\n // Private\n _findMenu() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.prev(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.findOne(SELECTOR_MENU, this._parent)\n }\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._closeAllSubmenus()\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of document.body.children) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._disposeFloating()\n this._restoreMenuToOriginalParent()\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n if (this._parent) {\n this._parent.classList.remove(CLASS_NAME_SHOW)\n }\n\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'placement')\n Manipulator.removeDataAttribute(this._menu, 'display')\n Menu._openInstances.delete(this)\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = super._getConfig(config)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createFloating() {\n if (this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'display', 'static')\n return\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n this._updateFloatingPosition(referenceElement)\n\n this._floatingCleanup = autoUpdate(\n referenceElement,\n this._menu,\n () => this._updateFloatingPosition(referenceElement)\n )\n }\n\n async _updateFloatingPosition(referenceElement = null) {\n if (!this._menu) {\n return\n }\n\n if (!referenceElement) {\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n } else {\n referenceElement = this._element\n }\n }\n\n const placement = this._getPlacement()\n const middleware = this._getFloatingMiddleware()\n const floatingConfig = this._getFloatingConfig(placement, middleware)\n\n await this._applyFloatingPosition(\n referenceElement,\n this._menu,\n floatingConfig.placement,\n floatingConfig.middleware,\n floatingConfig.strategy\n )\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement() {\n const placement = this._responsivePlacements ?\n getResponsivePlacement(this._responsivePlacements, DEFAULT_PLACEMENT) :\n this._config.placement\n\n return resolveLogicalPlacement(placement)\n }\n\n _parseResponsivePlacements() {\n this._responsivePlacements = parseResponsivePlacement(this._config.placement, DEFAULT_PLACEMENT)\n\n if (this._responsivePlacements) {\n this._setupMediaQueryListeners()\n }\n }\n\n _setupMediaQueryListeners() {\n this._disposeMediaQueryListeners()\n this._mediaQueryListeners = createBreakpointListeners(() => {\n if (this._isShown()) {\n this._updateFloatingPosition()\n }\n })\n }\n\n _disposeMediaQueryListeners() {\n disposeBreakpointListeners(this._mediaQueryListeners)\n this._mediaQueryListeners = []\n }\n\n _getOffset() {\n const { offset: offsetConfig } = this._config\n\n if (typeof offsetConfig === 'string') {\n return offsetConfig.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offsetConfig === 'function') {\n return ({ placement, rects }) => {\n const result = offsetConfig({ placement, reference: rects.reference, floating: rects.floating }, this._element)\n return result\n }\n }\n\n return offsetConfig\n }\n\n _getFloatingMiddleware() {\n const offsetValue = this._getOffset()\n\n const middleware = [\n offset(\n typeof offsetValue === 'function' ?\n offsetValue :\n { mainAxis: offsetValue[1] || 0, crossAxis: offsetValue[0] || 0 }\n ),\n flip({\n fallbackPlacements: this._getFallbackPlacements()\n }),\n shift({\n boundary: this._config.boundary === 'clippingParents' ? 'clippingAncestors' : this._config.boundary\n })\n ]\n\n return middleware\n }\n\n _getFallbackPlacements() {\n const placement = this._getPlacement()\n\n const fallbackMap = {\n bottom: ['top', 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\n 'bottom-start': ['top-start', 'bottom-end', 'top-end'],\n 'bottom-end': ['top-end', 'bottom-start', 'top-start'],\n top: ['bottom', 'top-start', 'top-end', 'bottom-start', 'bottom-end'],\n 'top-start': ['bottom-start', 'top-end', 'bottom-end'],\n 'top-end': ['bottom-end', 'top-start', 'bottom-start'],\n right: ['left', 'right-start', 'right-end', 'left-start', 'left-end'],\n 'right-start': ['left-start', 'right-end', 'left-end', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'right-start', 'left-start', 'top-end', 'bottom-end'],\n left: ['right', 'left-start', 'left-end', 'right-start', 'right-end'],\n 'left-start': ['right-start', 'left-end', 'right-end', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'left-start', 'right-start', 'top-end', 'bottom-end']\n }\n\n return fallbackMap[placement] || ['top', 'bottom', 'right', 'left']\n }\n\n _getFloatingConfig(placement, middleware) {\n const defaultConfig = {\n placement,\n middleware,\n strategy: this._config.strategy\n }\n\n return {\n ...defaultConfig,\n ...execute(this._config.floatingConfig, [undefined, defaultConfig])\n }\n }\n\n _disposeFloating() {\n if (this._floatingCleanup) {\n this._floatingCleanup()\n this._floatingCleanup = null\n }\n }\n\n _getContainer() {\n const { container } = this._config\n if (container === false) {\n return null\n }\n\n return container === true ? document.body : getElement(container)\n }\n\n _moveMenuToContainer() {\n const container = this._getContainer()\n if (!container || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== container) {\n container.append(this._menu)\n }\n }\n\n _restoreMenuToOriginalParent() {\n if (!this._menuOriginalParent || !this._menu) {\n return\n }\n\n if (this._menu.parentNode !== this._menuOriginalParent) {\n this._menuOriginalParent.append(this._menu)\n }\n }\n\n async _applyFloatingPosition(reference, floating, placement, middleware, strategy = 'absolute') {\n if (!floating.isConnected) {\n return null\n }\n\n const { x, y, placement: finalPlacement } = await computePosition(\n reference,\n floating,\n { placement, middleware, strategy }\n )\n\n if (!floating.isConnected) {\n return null\n }\n\n Object.assign(floating.style, {\n position: strategy,\n left: `${x}px`,\n top: `${y}px`,\n margin: '0'\n })\n\n Manipulator.setDataAttribute(floating, 'placement', finalPlacement)\n return finalPlacement\n }\n\n // -------------------------------------------------------------------------\n // Submenu handling\n // -------------------------------------------------------------------------\n\n _setupSubmenuListeners() {\n if (this._config.submenuTrigger === 'hover' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'mouseenter', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerEnter(event)\n })\n\n EventHandler.on(this._menu, 'mouseleave', SELECTOR_SUBMENU, event => {\n this._onSubmenuLeave(event)\n })\n\n EventHandler.on(this._menu, 'mousemove', event => {\n this._trackMousePosition(event)\n })\n }\n\n if (this._config.submenuTrigger === 'click' || this._config.submenuTrigger === 'both') {\n EventHandler.on(this._menu, 'click', SELECTOR_SUBMENU_TOGGLE, event => {\n this._onSubmenuTriggerClick(event)\n })\n }\n }\n\n _onSubmenuTriggerEnter(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n this._cancelSubmenuCloseTimeout(submenu)\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n\n _onSubmenuLeave(event) {\n const submenuWrapper = event.target.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu || !this._openSubmenus.has(submenu)) {\n return\n }\n\n if (this._isMovingTowardSubmenu(event, submenu)) {\n return\n }\n\n this._scheduleSubmenuClose(submenu, submenuWrapper)\n }\n\n _onSubmenuTriggerClick(event) {\n const trigger = event.target.closest(SELECTOR_SUBMENU_TOGGLE)\n if (!trigger) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n const submenuWrapper = trigger.closest(SELECTOR_SUBMENU)\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (!submenu) {\n return\n }\n\n if (this._openSubmenus.has(submenu)) {\n this._closeSubmenu(submenu, submenuWrapper)\n } else {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(trigger, submenu, submenuWrapper)\n }\n }\n\n _openSubmenu(trigger, submenu, submenuWrapper) {\n if (this._openSubmenus.has(submenu)) {\n return\n }\n\n trigger.setAttribute('aria-expanded', 'true')\n trigger.setAttribute('aria-haspopup', 'true')\n\n submenu.classList.add(CLASS_NAME_SHOW)\n submenuWrapper.classList.add(CLASS_NAME_SHOW)\n\n const cleanup = this._createSubmenuFloating(trigger, submenu, submenuWrapper)\n this._openSubmenus.set(submenu, cleanup)\n\n EventHandler.on(submenu, 'mouseenter', () => {\n this._cancelSubmenuCloseTimeout(submenu)\n })\n }\n\n _closeSubmenu(submenu, submenuWrapper) {\n if (!this._openSubmenus.has(submenu)) {\n return\n }\n\n const nestedSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, submenu)\n for (const nested of nestedSubmenus) {\n const nestedWrapper = nested.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(nested, nestedWrapper)\n }\n\n const trigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, submenuWrapper)\n\n const cleanup = this._openSubmenus.get(submenu)\n if (cleanup) {\n cleanup()\n }\n\n this._openSubmenus.delete(submenu)\n EventHandler.off(submenu, 'mouseenter')\n\n if (trigger) {\n trigger.setAttribute('aria-expanded', 'false')\n }\n\n submenu.classList.remove(CLASS_NAME_SHOW)\n submenuWrapper.classList.remove(CLASS_NAME_SHOW)\n\n submenu.style.position = ''\n submenu.style.left = ''\n submenu.style.top = ''\n submenu.style.margin = ''\n }\n\n _closeAllSubmenus() {\n for (const [submenu] of this._openSubmenus) {\n const submenuWrapper = submenu.closest(SELECTOR_SUBMENU)\n this._closeSubmenu(submenu, submenuWrapper)\n }\n }\n\n _closeSiblingSubmenus(currentSubmenuWrapper) {\n const parent = currentSubmenuWrapper.parentNode\n const siblingSubmenus = SelectorEngine.find(`${SELECTOR_SUBMENU} > ${SELECTOR_MENU}.${CLASS_NAME_SHOW}`, parent)\n\n for (const siblingMenu of siblingSubmenus) {\n const siblingWrapper = siblingMenu.closest(SELECTOR_SUBMENU)\n if (siblingWrapper !== currentSubmenuWrapper) {\n this._closeSubmenu(siblingMenu, siblingWrapper)\n }\n }\n }\n\n _createSubmenuFloating(trigger, submenu, submenuWrapper) {\n const referenceElement = submenuWrapper\n const placement = resolveLogicalPlacement(SUBMENU_PLACEMENT)\n const middleware = [\n offset({ mainAxis: 0, crossAxis: -4 }),\n flip({\n fallbackPlacements: [\n resolveLogicalPlacement('start-start'),\n resolveLogicalPlacement('end-end'),\n resolveLogicalPlacement('start-end')\n ]\n }),\n shift({ padding: 8 })\n ]\n\n const updatePosition = () => this._applyFloatingPosition(referenceElement, submenu, placement, middleware)\n\n updatePosition()\n return autoUpdate(referenceElement, submenu, updatePosition)\n }\n\n _scheduleSubmenuClose(submenu, submenuWrapper) {\n this._cancelSubmenuCloseTimeout(submenu)\n\n const timeoutId = setTimeout(() => {\n this._closeSubmenu(submenu, submenuWrapper)\n this._submenuCloseTimeouts.delete(submenu)\n }, this._config.submenuDelay)\n\n this._submenuCloseTimeouts.set(submenu, timeoutId)\n }\n\n _cancelSubmenuCloseTimeout(submenu) {\n const timeoutId = this._submenuCloseTimeouts.get(submenu)\n if (timeoutId) {\n clearTimeout(timeoutId)\n this._submenuCloseTimeouts.delete(submenu)\n }\n }\n\n _clearAllSubmenuTimeouts() {\n for (const timeoutId of this._submenuCloseTimeouts.values()) {\n clearTimeout(timeoutId)\n }\n\n this._submenuCloseTimeouts.clear()\n }\n\n // -------------------------------------------------------------------------\n // Hover intent / Safe triangle\n // -------------------------------------------------------------------------\n\n _trackMousePosition(event) {\n this._hoverIntentData = {\n x: event.clientX,\n y: event.clientY,\n timestamp: Date.now()\n }\n }\n\n _isMovingTowardSubmenu(event, submenu) {\n if (!this._hoverIntentData) {\n return false\n }\n\n const submenuRect = submenu.getBoundingClientRect()\n const currentPos = { x: event.clientX, y: event.clientY }\n const lastPos = { x: this._hoverIntentData.x, y: this._hoverIntentData.y }\n\n const isRtl = isRTL()\n const targetX = isRtl ? submenuRect.right : submenuRect.left\n const topCorner = { x: targetX, y: submenuRect.top }\n const bottomCorner = { x: targetX, y: submenuRect.bottom }\n\n return this._pointInTriangle(currentPos, lastPos, topCorner, bottomCorner)\n }\n\n _pointInTriangle(point, v1, v2, v3) {\n const d1 = triangleSign(point, v1, v2)\n const d2 = triangleSign(point, v2, v3)\n const d3 = triangleSign(point, v3, v1)\n\n const hasNeg = (d1 < 0) || (d2 < 0) || (d3 < 0)\n const hasPos = (d1 > 0) || (d2 > 0) || (d3 > 0)\n\n return !(hasNeg && hasPos)\n }\n\n // -------------------------------------------------------------------------\n // Keyboard navigation\n // -------------------------------------------------------------------------\n\n _selectMenuItem({ key, target }) {\n const currentMenu = target.closest(SELECTOR_MENU) || this._menu\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (!items.length) {\n return\n }\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n _handleSubmenuKeydown(event) {\n const { key, target } = event\n const isRtl = isRTL()\n\n const enterKey = isRtl ? ARROW_LEFT_KEY : ARROW_RIGHT_KEY\n const exitKey = isRtl ? ARROW_RIGHT_KEY : ARROW_LEFT_KEY\n\n const submenuWrapper = target.closest(SELECTOR_SUBMENU)\n const isSubmenuTrigger = submenuWrapper && target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if ((key === ENTER_KEY || key === SPACE_KEY) && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === enterKey && isSubmenuTrigger) {\n event.preventDefault()\n event.stopPropagation()\n\n const submenu = SelectorEngine.findOne(SELECTOR_MENU, submenuWrapper)\n if (submenu) {\n this._closeSiblingSubmenus(submenuWrapper)\n this._openSubmenu(target, submenu, submenuWrapper)\n requestAnimationFrame(() => {\n const firstItem = SelectorEngine.findOne(SELECTOR_VISIBLE_ITEMS, submenu)\n if (firstItem) {\n firstItem.focus()\n }\n })\n }\n\n return true\n }\n\n if (key === exitKey) {\n const currentMenu = target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper) {\n event.preventDefault()\n event.stopPropagation()\n\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n this._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return true\n }\n }\n\n if (key === HOME_KEY || key === END_KEY) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = target.closest(SELECTOR_MENU)\n const items = SelectorEngine.find(`:scope > ${SELECTOR_VISIBLE_ITEMS}`, currentMenu)\n .filter(element => isVisible(element))\n\n if (items.length) {\n const targetItem = key === HOME_KEY ? items[0] : items.at(-1)\n targetItem.focus()\n }\n\n return true\n }\n\n return false\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n for (const instance of Menu._openInstances) {\n if (instance._config.autoClose === false) {\n continue\n }\n\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(instance._menu)\n if (\n composedPath.includes(instance._element) ||\n (instance._config.autoClose === 'inside' && !isMenuTarget) ||\n (instance._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n if (instance._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n const relatedTarget = { relatedTarget: instance._element }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n instance._completeHide(relatedTarget)\n }\n }\n\n static dataApiKeydownHandler(event) {\n const isInput = /input|textarea/i.test(event.target.tagName)\n const isEscapeEvent = event.key === ESCAPE_KEY\n const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)\n const isLeftOrRightEvent = [ARROW_LEFT_KEY, ARROW_RIGHT_KEY].includes(event.key)\n const isHomeOrEndEvent = [HOME_KEY, END_KEY].includes(event.key)\n const isEnterOrSpaceEvent = [ENTER_KEY, SPACE_KEY].includes(event.key)\n\n const isSubmenuTrigger = event.target.matches(SELECTOR_SUBMENU_TOGGLE)\n\n if (!isUpOrDownEvent && !isEscapeEvent && !isLeftOrRightEvent && !isHomeOrEndEvent &&\n !(isEnterOrSpaceEvent && isSubmenuTrigger)) {\n return\n }\n\n if (isInput && !isEscapeEvent) {\n return\n }\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\n this :\n (SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.next(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\n\n if (!getToggleButton) {\n return\n }\n\n const instance = Menu.getOrCreateInstance(getToggleButton)\n\n if ((isLeftOrRightEvent || isHomeOrEndEvent || (isEnterOrSpaceEvent && isSubmenuTrigger)) && instance._handleSubmenuKeydown(event)) {\n return\n }\n\n if (isUpOrDownEvent) {\n event.preventDefault()\n event.stopPropagation()\n instance.show()\n instance._selectMenuItem(event)\n return\n }\n\n if (isEscapeEvent && instance._isShown()) {\n event.preventDefault()\n event.stopPropagation()\n\n const currentMenu = event.target.closest(SELECTOR_MENU)\n const parentSubmenuWrapper = currentMenu?.closest(SELECTOR_SUBMENU)\n\n if (parentSubmenuWrapper && instance._openSubmenus.size > 0) {\n const parentTrigger = SelectorEngine.findOne(SELECTOR_SUBMENU_TOGGLE, parentSubmenuWrapper)\n instance._closeSubmenu(currentMenu, parentSubmenuWrapper)\n if (parentTrigger) {\n parentTrigger.focus()\n }\n\n return\n }\n\n instance.hide()\n getToggleButton.focus()\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Menu.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Menu.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Menu.getOrCreateInstance(this).toggle()\n})\n\nexport default Menu\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","HOME_KEY","END_KEY","ENTER_KEY","SPACE_KEY","RIGHT_MOUSE_BUTTON","SUBMENU_CLOSE_DELAY","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_SHOW","SELECTOR_DATA_TOGGLE","SELECTOR_MENU","SELECTOR_SUBMENU","SELECTOR_SUBMENU_TOGGLE","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","DEFAULT_PLACEMENT","SUBMENU_PLACEMENT","resolveLogicalPlacement","placement","isRTL","replace","triangleSign","p1","p2","p3","x","y","Default","autoClose","boundary","container","display","offset","floatingConfig","menu","reference","strategy","submenuTrigger","submenuDelay","DefaultType","Menu","BaseComponent","_openInstances","Set","constructor","element","config","computePosition","TypeError","_floatingCleanup","_mediaQueryListeners","_responsivePlacements","_parent","_element","parentNode","_isSubmenu","classList","contains","_openSubmenus","Map","_submenuCloseTimeouts","_hoverIntentData","_menu","_config","_findMenu","_menuOriginalParent","_parseResponsivePlacements","_setupSubmenuListeners","toggle","_isShown","hide","show","isDisabled","relatedTarget","showEvent","EventHandler","trigger","defaultPrevented","_moveMenuToContainer","_createFloating","document","documentElement","closest","body","children","on","noop","focus","focusVisible","setAttribute","add","_completeHide","dispose","_disposeFloating","_restoreMenuToOriginalParent","_disposeMediaQueryListeners","_closeAllSubmenus","_clearAllSubmenuTimeouts","delete","update","_updateFloatingPosition","SelectorEngine","next","prev","findOne","hideEvent","off","remove","Manipulator","removeDataAttribute","_getConfig","isElement","getBoundingClientRect","toUpperCase","setDataAttribute","referenceElement","getElement","autoUpdate","_getPlacement","middleware","_getFloatingMiddleware","_getFloatingConfig","_applyFloatingPosition","getResponsivePlacement","parseResponsivePlacement","_setupMediaQueryListeners","createBreakpointListeners","disposeBreakpointListeners","_getOffset","offsetConfig","split","map","value","Number","parseInt","rects","result","floating","offsetValue","mainAxis","crossAxis","flip","fallbackPlacements","_getFallbackPlacements","shift","fallbackMap","bottom","top","right","left","defaultConfig","execute","undefined","_getContainer","append","isConnected","finalPlacement","Object","assign","style","position","margin","event","_onSubmenuTriggerEnter","_onSubmenuLeave","_trackMousePosition","_onSubmenuTriggerClick","target","submenuWrapper","submenu","_cancelSubmenuCloseTimeout","_closeSiblingSubmenus","_openSubmenu","has","_isMovingTowardSubmenu","_scheduleSubmenuClose","preventDefault","stopPropagation","_closeSubmenu","cleanup","_createSubmenuFloating","set","nestedSubmenus","find","nested","nestedWrapper","get","currentSubmenuWrapper","parent","siblingSubmenus","siblingMenu","siblingWrapper","padding","updatePosition","timeoutId","setTimeout","clearTimeout","values","clear","clientX","clientY","timestamp","Date","now","submenuRect","currentPos","lastPos","isRtl","targetX","topCorner","bottomCorner","_pointInTriangle","point","v1","v2","v3","d1","d2","d3","hasNeg","hasPos","_selectMenuItem","key","currentMenu","items","filter","isVisible","length","getNextActiveElement","includes","_handleSubmenuKeydown","enterKey","exitKey","isSubmenuTrigger","matches","requestAnimationFrame","firstItem","parentSubmenuWrapper","parentTrigger","targetItem","at","clearMenus","button","type","instance","composedPath","isMenuTarget","test","tagName","clickEvent","dataApiKeydownHandler","isInput","isEscapeEvent","isUpOrDownEvent","isLeftOrRightEvent","isHomeOrEndEvent","isEnterOrSpaceEvent","getToggleButton","delegateTarget","getOrCreateInstance","size"],"mappings":"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"}
\ No newline at end of file
*/
const NAME = 'otpInput';
-const DATA_KEY = 'bs.otp-input';
+const DATA_KEY = 'bs.otpInput';
const EVENT_KEY = `.${DATA_KEY}`;
const DATA_API_KEY = '.data-api';
const EVENT_COMPLETE = `complete${EVENT_KEY}`;
const EVENT_INPUT = `input${EVENT_KEY}`;
+const EVENT_DOMCONTENT_LOADED = `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`;
const SELECTOR_DATA_OTP = '[data-bs-otp]';
const SELECTOR_INPUT = 'input';
+
+// Events that should refresh the active-slot highlight as the caret moves
+const SYNC_EVENTS = ['blur', 'keyup', 'click', 'select'];
+const CLASS_NAME_INPUT = 'otp-input';
+const CLASS_NAME_RENDERED = 'otp-rendered';
+const CLASS_NAME_SLOTS = 'otp-slots';
+const CLASS_NAME_SLOT = 'otp-slot';
+const CLASS_NAME_SLOT_FILLED = 'otp-slot-filled';
+const CLASS_NAME_SLOT_ACTIVE = 'otp-slot-active';
+const CLASS_NAME_SEPARATOR = 'otp-separator';
+const MASK_CHARACTER = '•';
+
+// Per-type input mode, validation pattern, and a filter that strips disallowed characters
+const TYPES = {
+ numeric: {
+ inputmode: 'numeric',
+ pattern: '[0-9]*',
+ filter: /[^0-9]/g
+ },
+ alphanumeric: {
+ inputmode: 'text',
+ pattern: '[A-Za-z0-9]*',
+ filter: /[^A-Za-z0-9]/g
+ },
+ alpha: {
+ inputmode: 'text',
+ pattern: '[A-Za-z]*',
+ filter: /[^A-Za-z]/g
+ }
+};
const Default = {
- length: 6,
- mask: false
+ groups: null,
+ length: null,
+ mask: false,
+ separator: '·',
+ type: 'numeric'
};
const DefaultType = {
- length: 'number',
- mask: 'boolean'
+ groups: '(array|null)',
+ length: '(number|null)',
+ mask: 'boolean',
+ separator: 'string',
+ type: 'string'
};
/**
class OtpInput extends BaseComponent {
constructor(element, config) {
super(element, config);
- this._inputs = SelectorEngine.find(SELECTOR_INPUT, this._element);
- this._setupInputs();
+ this._input = SelectorEngine.findOne(SELECTOR_INPUT, this._element);
+ if (!this._input) {
+ return;
+ }
+ this._type = TYPES[this._config.type] || TYPES.numeric;
+ this._length = this._resolveLength();
+ this._slots = [];
+ this._setupInput();
+ this._renderSlots();
this._addEventListeners();
+ this._render();
}
// Getters
// Public
getValue() {
- return this._inputs.map(input => input.value).join('');
+ return this._input.value;
}
setValue(value) {
- const chars = [...String(value)];
- for (const [index, input] of this._inputs.entries()) {
- input.value = chars[index] || '';
- }
+ this._input.value = this._sanitize(String(value));
+ this._render();
this._checkComplete();
}
clear() {
- for (const input of this._inputs) {
- input.value = '';
- }
- this._inputs[0]?.focus();
+ this._input.value = '';
+ this._render();
+ this._input.focus();
}
focus() {
- // Focus first empty input, or last input if all filled
- const emptyInput = this._inputs.find(input => !input.value);
- if (emptyInput) {
- emptyInput.focus();
- } else {
- this._inputs.at(-1)?.focus();
+ this._input.focus();
+ // Place the caret after the last entered character
+ const end = this._input.value.length;
+ this._input.setSelectionRange(end, end);
+ this._render();
+ }
+ dispose() {
+ EventHandler.off(this._input, 'input', this._onInput);
+ EventHandler.off(this._input, 'focus', this._onFocus);
+ for (const type of SYNC_EVENTS) {
+ EventHandler.off(this._input, type, this._onSync);
}
+ this._slotsContainer?.remove();
+ this._element.classList.remove(CLASS_NAME_RENDERED);
+ super.dispose();
}
// Private
- _setupInputs() {
- for (const input of this._inputs) {
- // Set attributes for proper OTP handling
- input.setAttribute('maxlength', '1');
- input.setAttribute('inputmode', 'numeric');
- input.setAttribute('pattern', '\\d*');
-
- // First input gets autocomplete for browser OTP autofill
- if (input === this._inputs[0]) {
- input.setAttribute('autocomplete', 'one-time-code');
- } else {
- input.setAttribute('autocomplete', 'off');
- }
-
- // Mask input if configured
- if (this._config.mask) {
- input.setAttribute('type', 'password');
- }
+ _resolveLength() {
+ if (this._config.length) {
+ return this._config.length;
}
+ const maxLength = Number.parseInt(this._input.getAttribute('maxlength'), 10);
+ return Number.isNaN(maxLength) || maxLength < 1 ? 6 : maxLength;
}
- _addEventListeners() {
- for (const [index, input] of this._inputs.entries()) {
- EventHandler.on(input, 'input', event => this._handleInput(event, index));
- EventHandler.on(input, 'keydown', event => this._handleKeydown(event, index));
- EventHandler.on(input, 'paste', event => this._handlePaste(event));
- EventHandler.on(input, 'focus', event => this._handleFocus(event));
+ _setupInput() {
+ const input = this._input;
+
+ // A single text field backs the whole control so screen readers, password
+ // managers, and SMS autofill treat it like any other input.
+ if (input.type === 'number' || input.type === 'password') {
+ input.type = 'text';
+ }
+ input.classList.add(CLASS_NAME_INPUT);
+ input.setAttribute('maxlength', String(this._length));
+ input.setAttribute('inputmode', this._type.inputmode);
+ input.setAttribute('pattern', this._type.pattern);
+ if (!input.getAttribute('autocomplete')) {
+ input.setAttribute('autocomplete', 'one-time-code');
}
- }
- _handleInput(event, index) {
- const input = event.target;
- // Only allow digits
- if (!/^\d*$/.test(input.value)) {
- input.value = input.value.replace(/\D/g, '');
+ // Filter any pre-filled value through the configured type
+ if (input.value) {
+ input.value = this._sanitize(input.value);
}
+ }
+ _renderSlots() {
+ const container = document.createElement('div');
+ container.className = CLASS_NAME_SLOTS;
+ container.setAttribute('aria-hidden', 'true');
const {
- value
- } = input;
-
- // Handle multi-character input (some browsers/autofill)
- if (value.length > 1) {
- // Distribute characters across inputs
- const chars = [...value];
- input.value = chars[0] || '';
- for (let i = 1; i < chars.length && index + i < this._inputs.length; i++) {
- this._inputs[index + i].value = chars[i];
+ groups
+ } = this._config;
+ let groupIndex = 0;
+ let inGroup = 0;
+ for (let i = 0; i < this._length; i++) {
+ const slot = document.createElement('div');
+ slot.className = CLASS_NAME_SLOT;
+ container.append(slot);
+ this._slots.push(slot);
+
+ // Insert a visual separator between configured groups
+ if (Array.isArray(groups) && groups.length > 0) {
+ inGroup++;
+ if (inGroup === groups[groupIndex] && i < this._length - 1) {
+ const separator = document.createElement('div');
+ separator.className = CLASS_NAME_SEPARATOR;
+ separator.textContent = this._config.separator;
+ container.append(separator);
+ groupIndex = Math.min(groupIndex + 1, groups.length - 1);
+ inGroup = 0;
+ }
}
+ }
+ this._slotsContainer = container;
+ this._element.append(container);
+ this._element.classList.add(CLASS_NAME_RENDERED);
+ }
+ _addEventListeners() {
+ // Listeners are attached with bare event names (not namespaced) because
+ // `input` is not in EventHandler's native-events list; we keep references
+ // so they can be removed on dispose.
+ this._onInput = () => this._handleInput();
+ this._onFocus = () => this.focus();
+ this._onSync = () => this._render();
+ EventHandler.on(this._input, 'input', this._onInput);
+ EventHandler.on(this._input, 'focus', this._onFocus);
- // Focus appropriate input
- const nextIndex = Math.min(index + chars.length, this._inputs.length - 1);
- this._inputs[nextIndex].focus();
- } else if (value && index < this._inputs.length - 1) {
- // Auto-advance to next input
- this._inputs[index + 1].focus();
+ // Keep the active-slot highlight in sync with the caret
+ for (const type of SYNC_EVENTS) {
+ EventHandler.on(this._input, type, this._onSync);
+ }
+ }
+ _handleInput() {
+ const sanitized = this._sanitize(this._input.value);
+ if (sanitized !== this._input.value) {
+ this._input.value = sanitized;
}
+ this._render();
EventHandler.trigger(this._element, EVENT_INPUT, {
- value: this.getValue(),
- index
+ value: this._input.value
});
this._checkComplete();
}
- _handleKeydown(event, index) {
- const {
- key
- } = event;
- switch (key) {
- case 'Backspace':
- {
- if (!this._inputs[index].value && index > 0) {
- // Move to previous input and clear it
- event.preventDefault();
- this._inputs[index - 1].value = '';
- this._inputs[index - 1].focus();
- }
- break;
- }
- case 'Delete':
- {
- // Clear current and shift remaining values left
- event.preventDefault();
- for (let i = index; i < this._inputs.length - 1; i++) {
- this._inputs[i].value = this._inputs[i + 1].value;
- }
- this._inputs.at(-1).value = '';
- break;
- }
- case 'ArrowLeft':
- {
- if (index > 0) {
- event.preventDefault();
- this._inputs[index - 1].focus();
- }
- break;
- }
- case 'ArrowRight':
- {
- if (index < this._inputs.length - 1) {
- event.preventDefault();
- this._inputs[index + 1].focus();
- }
- break;
- }
-
- // No default
- }
+ _sanitize(value) {
+ return value.replace(this._type.filter, '').slice(0, this._length);
}
- _handlePaste(event) {
- event.preventDefault();
- const pastedData = (event.clipboardData || window.clipboardData).getData('text');
- const digits = pastedData.replace(/\D/g, '').slice(0, this._inputs.length);
- if (digits) {
- this.setValue(digits);
-
- // Focus last filled input or last input
- const lastIndex = Math.min(digits.length, this._inputs.length) - 1;
- this._inputs[lastIndex].focus();
+ _render() {
+ const {
+ value
+ } = this._input;
+ const isFocused = document.activeElement === this._input;
+ // The active slot follows the caret, clamped to the last slot when the value is full
+ const caret = Math.min(this._input.selectionStart ?? value.length, this._length - 1);
+ for (const [index, slot] of this._slots.entries()) {
+ const char = value[index] ?? '';
+ slot.textContent = char && this._config.mask ? MASK_CHARACTER : char;
+ slot.classList.toggle(CLASS_NAME_SLOT_FILLED, Boolean(char));
+ slot.classList.toggle(CLASS_NAME_SLOT_ACTIVE, isFocused && index === caret);
}
}
- _handleFocus(event) {
- // Select the content on focus for easy replacement
- event.target.select();
- }
_checkComplete() {
- const value = this.getValue();
- const isComplete = value.length === this._inputs.length && this._inputs.every(input => input.value !== '');
- if (isComplete) {
+ const {
+ value
+ } = this._input;
+ if (value.length === this._length) {
EventHandler.trigger(this._element, EVENT_COMPLETE, {
value
});
* Data API implementation
*/
-EventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {
+EventHandler.on(document, EVENT_DOMCONTENT_LOADED, () => {
for (const element of SelectorEngine.find(SELECTOR_DATA_OTP)) {
OtpInput.getOrCreateInstance(element);
}
-{"version":3,"file":"otp-input.js","sources":["../src/otp-input.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap otp-input.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'otpInput'\nconst DATA_KEY = 'bs.otp-input'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_COMPLETE = `complete${EVENT_KEY}`\nconst EVENT_INPUT = `input${EVENT_KEY}`\n\nconst SELECTOR_DATA_OTP = '[data-bs-otp]'\nconst SELECTOR_INPUT = 'input'\n\nconst Default = {\n length: 6,\n mask: false\n}\n\nconst DefaultType = {\n length: 'number',\n mask: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass OtpInput extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._inputs = SelectorEngine.find(SELECTOR_INPUT, this._element)\n this._setupInputs()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getValue() {\n return this._inputs.map(input => input.value).join('')\n }\n\n setValue(value) {\n const chars = [...String(value)]\n for (const [index, input] of this._inputs.entries()) {\n input.value = chars[index] || ''\n }\n\n this._checkComplete()\n }\n\n clear() {\n for (const input of this._inputs) {\n input.value = ''\n }\n\n this._inputs[0]?.focus()\n }\n\n focus() {\n // Focus first empty input, or last input if all filled\n const emptyInput = this._inputs.find(input => !input.value)\n if (emptyInput) {\n emptyInput.focus()\n } else {\n this._inputs.at(-1)?.focus()\n }\n }\n\n // Private\n _setupInputs() {\n for (const input of this._inputs) {\n // Set attributes for proper OTP handling\n input.setAttribute('maxlength', '1')\n input.setAttribute('inputmode', 'numeric')\n input.setAttribute('pattern', '\\\\d*')\n\n // First input gets autocomplete for browser OTP autofill\n if (input === this._inputs[0]) {\n input.setAttribute('autocomplete', 'one-time-code')\n } else {\n input.setAttribute('autocomplete', 'off')\n }\n\n // Mask input if configured\n if (this._config.mask) {\n input.setAttribute('type', 'password')\n }\n }\n }\n\n _addEventListeners() {\n for (const [index, input] of this._inputs.entries()) {\n EventHandler.on(input, 'input', event => this._handleInput(event, index))\n EventHandler.on(input, 'keydown', event => this._handleKeydown(event, index))\n EventHandler.on(input, 'paste', event => this._handlePaste(event))\n EventHandler.on(input, 'focus', event => this._handleFocus(event))\n }\n }\n\n _handleInput(event, index) {\n const input = event.target\n\n // Only allow digits\n if (!/^\\d*$/.test(input.value)) {\n input.value = input.value.replace(/\\D/g, '')\n }\n\n const { value } = input\n\n // Handle multi-character input (some browsers/autofill)\n if (value.length > 1) {\n // Distribute characters across inputs\n const chars = [...value]\n input.value = chars[0] || ''\n\n for (let i = 1; i < chars.length && index + i < this._inputs.length; i++) {\n this._inputs[index + i].value = chars[i]\n }\n\n // Focus appropriate input\n const nextIndex = Math.min(index + chars.length, this._inputs.length - 1)\n this._inputs[nextIndex].focus()\n } else if (value && index < this._inputs.length - 1) {\n // Auto-advance to next input\n this._inputs[index + 1].focus()\n }\n\n EventHandler.trigger(this._element, EVENT_INPUT, {\n value: this.getValue(),\n index\n })\n\n this._checkComplete()\n }\n\n _handleKeydown(event, index) {\n const { key } = event\n\n switch (key) {\n case 'Backspace': {\n if (!this._inputs[index].value && index > 0) {\n // Move to previous input and clear it\n event.preventDefault()\n this._inputs[index - 1].value = ''\n this._inputs[index - 1].focus()\n }\n\n break\n }\n\n case 'Delete': {\n // Clear current and shift remaining values left\n event.preventDefault()\n for (let i = index; i < this._inputs.length - 1; i++) {\n this._inputs[i].value = this._inputs[i + 1].value\n }\n\n this._inputs.at(-1).value = ''\n break\n }\n\n case 'ArrowLeft': {\n if (index > 0) {\n event.preventDefault()\n this._inputs[index - 1].focus()\n }\n\n break\n }\n\n case 'ArrowRight': {\n if (index < this._inputs.length - 1) {\n event.preventDefault()\n this._inputs[index + 1].focus()\n }\n\n break\n }\n\n // No default\n }\n }\n\n _handlePaste(event) {\n event.preventDefault()\n const pastedData = (event.clipboardData || window.clipboardData).getData('text')\n const digits = pastedData.replace(/\\D/g, '').slice(0, this._inputs.length)\n\n if (digits) {\n this.setValue(digits)\n\n // Focus last filled input or last input\n const lastIndex = Math.min(digits.length, this._inputs.length) - 1\n this._inputs[lastIndex].focus()\n }\n }\n\n _handleFocus(event) {\n // Select the content on focus for easy replacement\n event.target.select()\n }\n\n _checkComplete() {\n const value = this.getValue()\n const isComplete = value.length === this._inputs.length &&\n this._inputs.every(input => input.value !== '')\n\n if (isComplete) {\n EventHandler.trigger(this._element, EVENT_COMPLETE, { value })\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_OTP)) {\n OtpInput.getOrCreateInstance(element)\n }\n})\n\nexport default OtpInput\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","EVENT_COMPLETE","EVENT_INPUT","SELECTOR_DATA_OTP","SELECTOR_INPUT","Default","length","mask","DefaultType","OtpInput","BaseComponent","constructor","element","config","_inputs","SelectorEngine","find","_element","_setupInputs","_addEventListeners","getValue","map","input","value","join","setValue","chars","String","index","entries","_checkComplete","clear","focus","emptyInput","at","setAttribute","_config","EventHandler","on","event","_handleInput","_handleKeydown","_handlePaste","_handleFocus","target","test","replace","i","nextIndex","Math","min","trigger","key","preventDefault","pastedData","clipboardData","window","getData","digits","slice","lastIndex","select","isComplete","every","document","getOrCreateInstance"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"otp-input.js","sources":["../src/otp-input.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap otp-input.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'otpInput'\nconst DATA_KEY = 'bs.otpInput'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_COMPLETE = `complete${EVENT_KEY}`\nconst EVENT_INPUT = `input${EVENT_KEY}`\nconst EVENT_DOMCONTENT_LOADED = `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_OTP = '[data-bs-otp]'\nconst SELECTOR_INPUT = 'input'\n\n// Events that should refresh the active-slot highlight as the caret moves\nconst SYNC_EVENTS = ['blur', 'keyup', 'click', 'select']\n\nconst CLASS_NAME_INPUT = 'otp-input'\nconst CLASS_NAME_RENDERED = 'otp-rendered'\nconst CLASS_NAME_SLOTS = 'otp-slots'\nconst CLASS_NAME_SLOT = 'otp-slot'\nconst CLASS_NAME_SLOT_FILLED = 'otp-slot-filled'\nconst CLASS_NAME_SLOT_ACTIVE = 'otp-slot-active'\nconst CLASS_NAME_SEPARATOR = 'otp-separator'\n\nconst MASK_CHARACTER = '•'\n\n// Per-type input mode, validation pattern, and a filter that strips disallowed characters\nconst TYPES = {\n numeric: { inputmode: 'numeric', pattern: '[0-9]*', filter: /[^0-9]/g },\n alphanumeric: { inputmode: 'text', pattern: '[A-Za-z0-9]*', filter: /[^A-Za-z0-9]/g },\n alpha: { inputmode: 'text', pattern: '[A-Za-z]*', filter: /[^A-Za-z]/g }\n}\n\nconst Default = {\n groups: null,\n length: null,\n mask: false,\n separator: '·',\n type: 'numeric'\n}\n\nconst DefaultType = {\n groups: '(array|null)',\n length: '(number|null)',\n mask: 'boolean',\n separator: 'string',\n type: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass OtpInput extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._input = SelectorEngine.findOne(SELECTOR_INPUT, this._element)\n if (!this._input) {\n return\n }\n\n this._type = TYPES[this._config.type] || TYPES.numeric\n this._length = this._resolveLength()\n this._slots = []\n\n this._setupInput()\n this._renderSlots()\n this._addEventListeners()\n this._render()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getValue() {\n return this._input.value\n }\n\n setValue(value) {\n this._input.value = this._sanitize(String(value))\n this._render()\n this._checkComplete()\n }\n\n clear() {\n this._input.value = ''\n this._render()\n this._input.focus()\n }\n\n focus() {\n this._input.focus()\n // Place the caret after the last entered character\n const end = this._input.value.length\n this._input.setSelectionRange(end, end)\n this._render()\n }\n\n dispose() {\n EventHandler.off(this._input, 'input', this._onInput)\n EventHandler.off(this._input, 'focus', this._onFocus)\n for (const type of SYNC_EVENTS) {\n EventHandler.off(this._input, type, this._onSync)\n }\n\n this._slotsContainer?.remove()\n this._element.classList.remove(CLASS_NAME_RENDERED)\n super.dispose()\n }\n\n // Private\n _resolveLength() {\n if (this._config.length) {\n return this._config.length\n }\n\n const maxLength = Number.parseInt(this._input.getAttribute('maxlength'), 10)\n return Number.isNaN(maxLength) || maxLength < 1 ? 6 : maxLength\n }\n\n _setupInput() {\n const input = this._input\n\n // A single text field backs the whole control so screen readers, password\n // managers, and SMS autofill treat it like any other input.\n if (input.type === 'number' || input.type === 'password') {\n input.type = 'text'\n }\n\n input.classList.add(CLASS_NAME_INPUT)\n input.setAttribute('maxlength', String(this._length))\n input.setAttribute('inputmode', this._type.inputmode)\n input.setAttribute('pattern', this._type.pattern)\n\n if (!input.getAttribute('autocomplete')) {\n input.setAttribute('autocomplete', 'one-time-code')\n }\n\n // Filter any pre-filled value through the configured type\n if (input.value) {\n input.value = this._sanitize(input.value)\n }\n }\n\n _renderSlots() {\n const container = document.createElement('div')\n container.className = CLASS_NAME_SLOTS\n container.setAttribute('aria-hidden', 'true')\n\n const { groups } = this._config\n let groupIndex = 0\n let inGroup = 0\n\n for (let i = 0; i < this._length; i++) {\n const slot = document.createElement('div')\n slot.className = CLASS_NAME_SLOT\n container.append(slot)\n this._slots.push(slot)\n\n // Insert a visual separator between configured groups\n if (Array.isArray(groups) && groups.length > 0) {\n inGroup++\n if (inGroup === groups[groupIndex] && i < this._length - 1) {\n const separator = document.createElement('div')\n separator.className = CLASS_NAME_SEPARATOR\n separator.textContent = this._config.separator\n container.append(separator)\n groupIndex = Math.min(groupIndex + 1, groups.length - 1)\n inGroup = 0\n }\n }\n }\n\n this._slotsContainer = container\n this._element.append(container)\n this._element.classList.add(CLASS_NAME_RENDERED)\n }\n\n _addEventListeners() {\n // Listeners are attached with bare event names (not namespaced) because\n // `input` is not in EventHandler's native-events list; we keep references\n // so they can be removed on dispose.\n this._onInput = () => this._handleInput()\n this._onFocus = () => this.focus()\n this._onSync = () => this._render()\n\n EventHandler.on(this._input, 'input', this._onInput)\n EventHandler.on(this._input, 'focus', this._onFocus)\n\n // Keep the active-slot highlight in sync with the caret\n for (const type of SYNC_EVENTS) {\n EventHandler.on(this._input, type, this._onSync)\n }\n }\n\n _handleInput() {\n const sanitized = this._sanitize(this._input.value)\n if (sanitized !== this._input.value) {\n this._input.value = sanitized\n }\n\n this._render()\n\n EventHandler.trigger(this._element, EVENT_INPUT, { value: this._input.value })\n\n this._checkComplete()\n }\n\n _sanitize(value) {\n return value.replace(this._type.filter, '').slice(0, this._length)\n }\n\n _render() {\n const { value } = this._input\n const isFocused = document.activeElement === this._input\n // The active slot follows the caret, clamped to the last slot when the value is full\n const caret = Math.min(this._input.selectionStart ?? value.length, this._length - 1)\n\n for (const [index, slot] of this._slots.entries()) {\n const char = value[index] ?? ''\n slot.textContent = char && this._config.mask ? MASK_CHARACTER : char\n slot.classList.toggle(CLASS_NAME_SLOT_FILLED, Boolean(char))\n slot.classList.toggle(CLASS_NAME_SLOT_ACTIVE, isFocused && index === caret)\n }\n }\n\n _checkComplete() {\n const { value } = this._input\n if (value.length === this._length) {\n EventHandler.trigger(this._element, EVENT_COMPLETE, { value })\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_DOMCONTENT_LOADED, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_OTP)) {\n OtpInput.getOrCreateInstance(element)\n }\n})\n\nexport default OtpInput\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","EVENT_COMPLETE","EVENT_INPUT","EVENT_DOMCONTENT_LOADED","SELECTOR_DATA_OTP","SELECTOR_INPUT","SYNC_EVENTS","CLASS_NAME_INPUT","CLASS_NAME_RENDERED","CLASS_NAME_SLOTS","CLASS_NAME_SLOT","CLASS_NAME_SLOT_FILLED","CLASS_NAME_SLOT_ACTIVE","CLASS_NAME_SEPARATOR","MASK_CHARACTER","TYPES","numeric","inputmode","pattern","filter","alphanumeric","alpha","Default","groups","length","mask","separator","type","DefaultType","OtpInput","BaseComponent","constructor","element","config","_input","SelectorEngine","findOne","_element","_type","_config","_length","_resolveLength","_slots","_setupInput","_renderSlots","_addEventListeners","_render","getValue","value","setValue","_sanitize","String","_checkComplete","clear","focus","end","setSelectionRange","dispose","EventHandler","off","_onInput","_onFocus","_onSync","_slotsContainer","remove","classList","maxLength","Number","parseInt","getAttribute","isNaN","input","add","setAttribute","container","document","createElement","className","groupIndex","inGroup","i","slot","append","push","Array","isArray","textContent","Math","min","_handleInput","on","sanitized","trigger","replace","slice","isFocused","activeElement","caret","selectionStart","index","entries","char","toggle","Boolean","find","getOrCreateInstance"],"mappings":"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"}
\ No newline at end of file
return false;
}
const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible';
- // Handle `details` element as its content may falsie appear visible when it is closed
+ // Handle `details` element as its content may falsely appear visible when it is closed
const closedDetails = element.closest('details:not([open])');
if (!closedDetails) {
return elementIsVisible;
-{"version":3,"file":"index.js","sources":["../../src/util/index.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n if (isElement(object)) {\n return object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.harrytheo.com/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","parseSelector","selector","window","CSS","escape","replace","match","id","toType","object","undefined","Object","prototype","toString","call","toLowerCase","getUID","prefix","Math","floor","random","document","getElementById","getTransitionDurationFromElement","element","transitionDuration","transitionDelay","getComputedStyle","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","getElement","length","querySelector","isVisible","getClientRects","elementIsVisible","getPropertyValue","closedDetails","closest","summary","parentNode","isDisabled","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","getAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","DOMContentLoadedCallbacks","onDOMContentLoaded","callback","readyState","addEventListener","push","isRTL","dir","execute","possibleCallback","args","defaultValue","executeAfterTransition","transitionElement","waitForTransition","durationPadding","emulatedDuration","called","handler","target","removeEventListener","setTimeout","getNextActiveElement","list","activeElement","shouldGetNext","isCycleAllowed","listLength","index","indexOf","max","min"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.js","sources":["../../src/util/index.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n if (isElement(object)) {\n return object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsely appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.harrytheo.com/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","parseSelector","selector","window","CSS","escape","replace","match","id","toType","object","undefined","Object","prototype","toString","call","toLowerCase","getUID","prefix","Math","floor","random","document","getElementById","getTransitionDurationFromElement","element","transitionDuration","transitionDelay","getComputedStyle","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","getElement","length","querySelector","isVisible","getClientRects","elementIsVisible","getPropertyValue","closedDetails","closest","summary","parentNode","isDisabled","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","getAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","DOMContentLoadedCallbacks","onDOMContentLoaded","callback","readyState","addEventListener","push","isRTL","dir","execute","possibleCallback","args","defaultValue","executeAfterTransition","transitionElement","waitForTransition","durationPadding","emulatedDuration","called","handler","target","removeEventListener","setTimeout","getNextActiveElement","list","activeElement","shouldGetNext","isCycleAllowed","listLength","index","indexOf","max","min"],"mappings":"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"}
\ No newline at end of file
"arm"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
"arm"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
"arm64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
"arm64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
"loong64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
"loong64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
"ppc64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
"ppc64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
"riscv64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
"riscv64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
"s390x"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
"x64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
"x64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
@use "config" as *;
@use "functions" as *;
@use "mixins/border-radius" as *;
-@use "layout/breakpoints" as *;
@use "mixins/transition" as *;
@use "mixins/mask-icon" as *;
@use "mixins/tokens" as *;
}
}
- // Responsive items-per-view helpers, e.g. `.carousel-items-2` or `.md:carousel-items-3`.
- // Defined after `.carousel` so they win on equal specificity.
- @include loop-breakpoints-up() using ($breakpoint, $prefix) {
- @include media-breakpoint-up($breakpoint) {
- @for $i from 1 through 6 {
- .#{$prefix}carousel-items-#{$i} {
- --carousel-items: #{$i};
- }
- }
- }
- }
-
//
// Alternate transitions
//
--menu-item-padding-y: .25rem,
--menu-item-border-radius: var(--radius-5),
--menu-icon-size: 1rem,
- --menu-image-size: 1.5rem,
--menu-description-font-size: var(--font-size-xs),
--menu-check-color: currentcolor,
--menu-header-color: var(--fg-3),
margin-top: .125rem;
}
- .menu-image {
- width: var(--menu-image-size);
- height: var(--menu-image-size);
- object-fit: cover;
- @include border-radius(var(--radius-5));
- }
-
.menu-item-content {
display: flex;
flex: 1;
background-color: var(--menu-item-hover-bg);
}
}
-
- // Mobile stacking: submenu covers the parent menu in-place
- @media (max-width: 575.98px) {
- .submenu:has(.submenu-stacked) {
- position: static;
- }
-
- .submenu-stacked {
- position: absolute;
- inset: 0;
- z-index: 1;
- display: flex;
- flex-direction: column;
- gap: var(--menu-gap);
- min-width: 0;
- padding: var(--menu-padding-y) var(--menu-padding-x);
- background-color: var(--menu-bg);
- border: 0;
- @include border-radius(0);
- box-shadow: none;
- }
-
- .submenu-back {
- display: flex;
- gap: var(--menu-item-gap);
- align-items: center;
- padding: var(--menu-item-padding-y) var(--menu-item-padding-x);
- font-weight: var(--font-weight-semibold, 600);
- color: var(--menu-item-color);
-
- &::before {
- display: inline-block;
- flex-shrink: 0;
- width: .375em;
- height: .375em;
- content: "";
- border-color: currentcolor;
- border-style: solid;
- border-width: .125em 0 0 .125em;
- transform: rotate(-45deg);
-
- [dir="rtl"] & {
- border-width: 0 .125em .125em 0;
- }
- }
- }
-
- .submenu-dimmed {
- pointer-events: none;
- filter: blur(2px);
- opacity: .3;
- }
- }
// scss-docs-end submenu
}
// scss-docs-start root-border-var
--border-width: #{$border-width},
--border-style: #{$border-style},
- --border-color: light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-700)),
+ --border-color: light-dark(var(--gray-200), var(--gray-700)),
--border-color-translucent: color-mix(in oklch, var(--fg-body) 15%, transparent),
// scss-docs-end root-border-var
"bg": var(--bg-body),
"body": light-dark(var(--gray-300), var(--gray-800)),
"muted": light-dark(var(--gray-200), var(--gray-800)),
- "subtle": light-dark(var(--gray-100), var(--gray-900)),
+ "subtle": light-dark(color-mix(in oklch, var(--gray-100), var(--gray-200)), var(--gray-900)),
"emphasized": light-dark(var(--gray-400), var(--gray-600)),
"white": var(--white),
"black": var(--black),
--check-margin-block: .125rem,
--check-bg: var(--bg-body),
--check-border-color: var(--border-color),
- --check-border-radius: .375rem,
+ --check-border-radius: var(--radius-5),
--check-icon-checked: #{escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m5.5 10 3 3 6-6'/></svg>"))},
--check-icon-indeterminate: #{escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 10h8'/></svg>"))},
--check-checked-bg: var(--control-checked-bg),
background-color: var(--theme-bg, var(--check-bg));
border: 1px solid var(--theme-bg, var(--check-border-color));
// stylelint-disable-next-line property-disallowed-list
- border-radius: .3em;
+ border-radius: 33%;
&:checked,
&:indeterminate {
.check-sm {
--check-size: 1rem;
+
+ + label {
+ font-size: var(--font-size-sm);
+ }
}
.check-lg {
--check-size: 1.5rem;
- --check-margin-block: 0;
+ --check-margin-block: .375rem;
+
+ + label {
+ font-size: var(--font-size-lg);
+ }
}
}
&::before {
position: absolute;
- inset: .25rem;
+ inset: calc(var(--radio-size) * .25);
content: "";
background-color: currentcolor;
// stylelint-disable-next-line property-disallowed-list
.radio-sm {
--radio-size: 1rem;
+
+ + label {
+ font-size: var(--font-size-sm);
+ }
}
.radio-lg {
--radio-size: 1.5rem;
- --radio-margin-block: 0;
+ --radio-margin-block: .375rem;
+
+ + label {
+ font-size: var(--font-size-lg);
+ }
}
}
}
.switch-sm {
--switch-height: 1rem;
+
+ + label {
+ font-size: var(--font-size-sm);
+ }
}
.switch-lg {
--switch-height: 1.5rem;
- --switch-margin-block: 0;
+ --switch-margin-block: .375rem;
+
+ + label {
+ font-size: var(--font-size-lg);
+ }
}
}
.site-header {
background-color: rgba(0, 0, 0, .85);
- -webkit-backdrop-filter: saturate(180%) blur(20px);
backdrop-filter: saturate(180%) blur(20px);
}
.site-header a {
</div>
</div>`} />
-Use the responsive `.carousel-items-*` utilities to vary the count per breakpoint, e.g. `class="carousel carousel-items-1 md:carousel-items-3"`.
+Set `--bs-carousel-items` inline to control the count, e.g. `style="--bs-carousel-items: 3;"`.
### Peeking
Add `.check-sm` or `.check-lg` to make your checkbox appear smaller or larger.
-<Example class="d-flex flex-column gap-3" code={`<input type="checkbox" id="checkSizeSm" class="check check-sm" checked />
- <input type="checkbox" id="checkSizeMd" class="check" checked />
- <input type="checkbox" id="checkSizeLg" class="check check-lg" checked />`} />
+<Example class="d-flex flex-column gap-3" code={`<div class="form-field">
+ <input type="checkbox" id="checkSizeSm" class="check check-sm" checked />
+ <label for="checkSizeSm">Small checkbox</label>
+ </div>
+ <div class="form-field">
+ <input type="checkbox" id="checkSizeMd" class="check" checked />
+ <label for="checkSizeMd">Default checkbox</label>
+ </div>
+ <div class="form-field">
+ <input type="checkbox" id="checkSizeLg" class="check check-lg" checked />
+ <label for="checkSizeLg">Large checkbox</label>
+ </div>`} />
## CSS
</div>
`} />
+## Sizes
+
+Add `.radio-sm` or `.radio-lg` to make your radio appear smaller or larger.
+
+<Example class="d-flex flex-column gap-3" code={`<div class="form-field">
+ <input type="radio" id="radioSizeSm" class="radio radio-sm" checked />
+ <label for="radioSizeSm">Small radio</label>
+ </div>
+ <div class="form-field">
+ <input type="radio" id="radioSizeMd" class="radio" checked />
+ <label for="radioSizeMd">Default radio</label>
+ </div>
+ <div class="form-field">
+ <input type="radio" id="radioSizeLg" class="radio radio-lg" checked />
+ <label for="radioSizeLg">Large radio</label>
+ </div>`} />
+
## CSS
### Variables
<Example class="d-flex flex-column gap-3" code={`<div class="form-field">
<div class="switch switch-sm">
- <input type="checkbox" value="" id="switchSizeSm" role="switch" switch>
+ <input type="checkbox" value="" id="switchSizeSm" role="switch" switch>
</div>
<label for="switchSizeSm">Small switch</label>
</div>
- **Updated breadcrumb markup.** Breadcrumbs now use `.breadcrumb-link` as an interactive element with padding, min-height, and hover background, and explicit `.breadcrumb-divider` elements as separators between items. An empty `.breadcrumb-divider` renders a default chevron via a CSS `mask-image` (`--breadcrumb-divider-icon`) tinted with `background-color: currentcolor`; add your own SVG, text, or markup inside it to override. This replaces the v5 `--bs-breadcrumb-divider` content string on the `.breadcrumb-item::before` pseudo-element.
- **Navbar toggler icon now uses a CSS mask.** `.navbar-toggler-icon` renders via `mask-image` (`--navbar-toggler-icon`) tinted with `background-color: currentcolor` instead of an embedded `background-image` SVG. The markup stays an empty `<span class="navbar-toggler-icon">`, but the icon now inherits the current text color (including dark mode), so the separate light/dark toggler SVGs are no longer needed.
- **Rebuilt the carousel on CSS scroll snap.** The slide engine no longer uses `float` + `translateX` class juggling or a custom swipe handler—`.carousel-inner` is now a native horizontal scroll-snap container, so sliding, touch dragging, momentum, and keyboard scrolling come from the browser. The markup is unchanged (`.carousel` → `.carousel-inner` → `.carousel-item`), and the public JavaScript API (`next`, `prev`, `to`, `cycle`, `pause`) plus the `slide.bs.carousel` / `slid.bs.carousel` events are preserved.
- - **New capabilities:** show multiple slides at once, reveal a “peek” of adjacent slides, gaps, center mode, and variable-width slides—all via CSS custom properties (`--carousel-items`, `--carousel-items-gap`, `--carousel-items-peek`), the `.carousel-center` / `.carousel-auto` variants, and responsive `.carousel-items-*` utilities.
+ - **New capabilities:** show multiple slides at once, reveal a “peek” of adjacent slides, gaps, center mode, and variable-width slides—all via CSS custom properties (`--carousel-items`, `--carousel-items-gap`, `--carousel-items-peek`) and the `.carousel-center` / `.carousel-auto` variants.
- **Removed transitional classes** `.carousel-item-start`, `.carousel-item-end`, `.carousel-item-next`, and `.carousel-item-prev`, plus the `.carousel.pointer-event` helper—the browser tracks scroll position instead of an `.active` layout class. (The active slide still gets `.active` for styling.)
- **`.carousel-fade`** is now a stacked-opacity (grid) crossfade animated with a CSS opacity transition over `--bs-carousel-fade-duration` (it collapses to an instant swap under reduced motion).
- **Removed the `touch` option.** Because `.carousel-inner` is a native scroll-snap container, horizontal touch dragging is part of the browser’s native scrolling and is no longer toggled by JavaScript.
- **Form Adorn** — new `.form-adorn` component for adding icons or text decoration to form inputs.
- **Prose** — new `.prose` class for rich typography scoping and `.not-prose` to opt out of prose styles within a prose container.
- **NavOverflow** — `NavOverflow` JavaScript plugin for handling overflowing navigation items.
-- **Submenu** — nested menu support via `.submenu` class within Menu, with `submenuTrigger` (`hover`, `click`, or `both`) and `submenuDelay` options. Mobile-friendly stacking with `.submenu-stacked` and `.submenu-back`.
+- **Submenu** — nested menu support via `.submenu` class within Menu, with `submenuTrigger` (`hover`, `click`, or `both`) and `submenuDelay` options.
### Docs
@layer custom {
.bd-code-snippet {
--bd-example-padding: 1.25rem;
+ --bd-example-border-color: var(--bs-border-subtle);
--bd-example-inner-radius: calc(var(--radius-5) - 1px);
margin: 0;
background-color: var(--bd-pre-bg);
- border: 1px solid var(--bs-border-color);
+ border: 1px solid var(--bd-example-border-color);
@include border-radius(var(--radius-5));
.bd-example {
padding-inline-start: var(--bd-example-padding);
padding-inline-end: calc(var(--bd-example-padding) - .5em);
background-color: var(--bs-bg-1);
- border-bottom: 1px solid var(--bs-border-color);
+ border-bottom: 1px solid var(--bd-example-border-color);
&:first-child {
@include border-top-radius(calc(var(--radius-5) - 1px));
}
&:not(:first-child) {
- border-top: 1px solid var(--bs-border-color);
+ border-top: 1px solid var(--bd-example-border-color);
}
}